From 5647ca687b92954dcf37a6ea6bfbc9a341c32de4 Mon Sep 17 00:00:00 2001 From: dannye <33dannye@gmail.com> Date: Wed, 4 Nov 2020 00:06:44 -0600 Subject: [PATCH] Sync with pokered --- .gitattributes | 3 +- .gitignore | 62 +- .travis.yml | 24 +- .travis/webhook.sh | 15 + INSTALL.md | 153 +- Makefile | 85 +- README.md | 33 +- audio.asm | 254 +- audio/alternate_tempo.asm | 53 + audio/engine_1.asm | 131 +- audio/engine_2.asm | 69 +- audio/engine_3.asm | 6 +- audio/engine_4.asm | 4 +- audio/low_health_alarm.asm | 80 + audio/notes.asm | 14 + audio/play_battle_music.asm | 32 + audio/poke_flute.asm | 18 + audio/pokedex_rating_sfx.asm | 34 + audio/wave_instruments.asm | 4 +- charmap.asm | 651 ++- constants.asm | 25 +- constants/audio_constants.asm | 67 + constants/battle_constants.asm | 75 + constants/connection_constants.asm | 9 - constants/credits_constants.asm | 15 +- constants/event_constants.asm | 3354 +++-------- constants/evolution_constants.asm | 9 - constants/gfx_constants.asm | 43 + constants/hardware_constants.asm | 29 + constants/hide_show_constants.asm | 5 +- constants/icon_constants.asm | 18 + constants/input_constants.asm | 20 + constants/item_constants.asm | 182 +- constants/list_constants.asm | 40 +- constants/map_constants.asm | 17 + constants/map_data_constants.asm | 16 + constants/map_object_constants.asm | 57 + constants/menu_constants.asm | 88 + constants/misc_constants.asm | 222 +- constants/move_animation_constants.asm | 424 +- constants/move_constants.asm | 14 +- constants/move_effect_constants.asm | 26 +- constants/music_constants.asm | 63 +- constants/oam_constants.asm | 7 +- constants/palette_constants.asm | 39 +- constants/pokedex_constants.asm | 10 +- constants/pokemon_constants.asm | 396 +- constants/pokemon_data_constants.asm | 41 + constants/script_constants.asm | 63 + constants/serial_constants.asm | 27 + constants/sprite_constants.asm | 198 +- constants/sprite_data_constants.asm | 26 + constants/starter_mons.asm | 3 - constants/status_constants.asm | 32 - constants/text_constants.asm | 25 +- constants/tileset_constants.asm | 28 + constants/tilesets.asm | 27 - constants/trainer_constants.asm | 111 +- constants/type_constants.asm | 40 +- data/animations.asm | 3623 ------------ data/baseStats/abra.asm | 28 - data/baseStats/aerodactyl.asm | 28 - data/baseStats/alakazam.asm | 28 - data/baseStats/arbok.asm | 28 - data/baseStats/arcanine.asm | 28 - data/baseStats/articuno.asm | 28 - data/baseStats/beedrill.asm | 28 - data/baseStats/bellsprout.asm | 28 - data/baseStats/blastoise.asm | 28 - data/baseStats/bulbasaur.asm | 30 - data/baseStats/butterfree.asm | 28 - data/baseStats/caterpie.asm | 28 - data/baseStats/chansey.asm | 28 - data/baseStats/charizard.asm | 28 - data/baseStats/charmander.asm | 28 - data/baseStats/charmeleon.asm | 28 - data/baseStats/clefable.asm | 28 - data/baseStats/clefairy.asm | 28 - data/baseStats/cloyster.asm | 28 - data/baseStats/cubone.asm | 28 - data/baseStats/dewgong.asm | 28 - data/baseStats/diglett.asm | 28 - data/baseStats/ditto.asm | 28 - data/baseStats/dodrio.asm | 28 - data/baseStats/doduo.asm | 28 - data/baseStats/dragonair.asm | 28 - data/baseStats/dragonite.asm | 28 - data/baseStats/dratini.asm | 28 - data/baseStats/drowzee.asm | 28 - data/baseStats/dugtrio.asm | 28 - data/baseStats/eevee.asm | 28 - data/baseStats/ekans.asm | 28 - data/baseStats/electabuzz.asm | 28 - data/baseStats/electrode.asm | 28 - data/baseStats/exeggcute.asm | 28 - data/baseStats/exeggutor.asm | 28 - data/baseStats/farfetchd.asm | 28 - data/baseStats/fearow.asm | 28 - data/baseStats/flareon.asm | 28 - data/baseStats/gastly.asm | 28 - data/baseStats/gengar.asm | 28 - data/baseStats/geodude.asm | 28 - data/baseStats/gloom.asm | 28 - data/baseStats/golbat.asm | 28 - data/baseStats/goldeen.asm | 28 - data/baseStats/golduck.asm | 28 - data/baseStats/golem.asm | 28 - data/baseStats/graveler.asm | 28 - data/baseStats/grimer.asm | 28 - data/baseStats/growlithe.asm | 28 - data/baseStats/gyarados.asm | 28 - data/baseStats/haunter.asm | 28 - data/baseStats/hitmonchan.asm | 28 - data/baseStats/hitmonlee.asm | 28 - data/baseStats/horsea.asm | 28 - data/baseStats/hypno.asm | 28 - data/baseStats/ivysaur.asm | 28 - data/baseStats/jigglypuff.asm | 28 - data/baseStats/jolteon.asm | 28 - data/baseStats/jynx.asm | 28 - data/baseStats/kabuto.asm | 28 - data/baseStats/kabutops.asm | 28 - data/baseStats/kadabra.asm | 28 - data/baseStats/kakuna.asm | 28 - data/baseStats/kangaskhan.asm | 28 - data/baseStats/kingler.asm | 28 - data/baseStats/koffing.asm | 28 - data/baseStats/krabby.asm | 28 - data/baseStats/lapras.asm | 28 - data/baseStats/lickitung.asm | 28 - data/baseStats/machamp.asm | 28 - data/baseStats/machoke.asm | 28 - data/baseStats/machop.asm | 28 - data/baseStats/magikarp.asm | 28 - data/baseStats/magmar.asm | 28 - data/baseStats/magnemite.asm | 28 - data/baseStats/magneton.asm | 28 - data/baseStats/mankey.asm | 28 - data/baseStats/marowak.asm | 28 - data/baseStats/meowth.asm | 28 - data/baseStats/metapod.asm | 28 - data/baseStats/mew.asm | 28 - data/baseStats/mewtwo.asm | 28 - data/baseStats/moltres.asm | 28 - data/baseStats/mrmime.asm | 28 - data/baseStats/muk.asm | 28 - data/baseStats/nidoking.asm | 28 - data/baseStats/nidoqueen.asm | 28 - data/baseStats/nidoranf.asm | 28 - data/baseStats/nidoranm.asm | 28 - data/baseStats/nidorina.asm | 28 - data/baseStats/nidorino.asm | 28 - data/baseStats/ninetales.asm | 28 - data/baseStats/oddish.asm | 28 - data/baseStats/omanyte.asm | 28 - data/baseStats/omastar.asm | 28 - data/baseStats/onix.asm | 28 - data/baseStats/paras.asm | 28 - data/baseStats/parasect.asm | 28 - data/baseStats/persian.asm | 28 - data/baseStats/pidgeot.asm | 28 - data/baseStats/pidgeotto.asm | 28 - data/baseStats/pidgey.asm | 28 - data/baseStats/pikachu.asm | 28 - data/baseStats/pinsir.asm | 28 - data/baseStats/poliwag.asm | 28 - data/baseStats/poliwhirl.asm | 28 - data/baseStats/poliwrath.asm | 28 - data/baseStats/ponyta.asm | 28 - data/baseStats/porygon.asm | 28 - data/baseStats/primeape.asm | 28 - data/baseStats/psyduck.asm | 28 - data/baseStats/raichu.asm | 28 - data/baseStats/rapidash.asm | 28 - data/baseStats/raticate.asm | 28 - data/baseStats/rattata.asm | 28 - data/baseStats/rhydon.asm | 28 - data/baseStats/rhyhorn.asm | 28 - data/baseStats/sandshrew.asm | 28 - data/baseStats/sandslash.asm | 28 - data/baseStats/scyther.asm | 28 - data/baseStats/seadra.asm | 28 - data/baseStats/seaking.asm | 28 - data/baseStats/seel.asm | 28 - data/baseStats/shellder.asm | 28 - data/baseStats/slowbro.asm | 28 - data/baseStats/slowpoke.asm | 28 - data/baseStats/snorlax.asm | 28 - data/baseStats/spearow.asm | 28 - data/baseStats/squirtle.asm | 28 - data/baseStats/starmie.asm | 28 - data/baseStats/staryu.asm | 28 - data/baseStats/tangela.asm | 28 - data/baseStats/tauros.asm | 28 - data/baseStats/tentacool.asm | 28 - data/baseStats/tentacruel.asm | 28 - data/baseStats/vaporeon.asm | 28 - data/baseStats/venomoth.asm | 28 - data/baseStats/venonat.asm | 28 - data/baseStats/venusaur.asm | 28 - data/baseStats/victreebel.asm | 28 - data/baseStats/vileplume.asm | 28 - data/baseStats/voltorb.asm | 28 - data/baseStats/vulpix.asm | 28 - data/baseStats/wartortle.asm | 28 - data/baseStats/weedle.asm | 28 - data/baseStats/weepinbell.asm | 28 - data/baseStats/weezing.asm | 28 - data/baseStats/wigglytuff.asm | 28 - data/baseStats/zapdos.asm | 28 - data/baseStats/zubat.asm | 28 - data/base_stats.asm | 151 - data/battle/always_happen_effects.asm | 13 + data/battle/critical_hit_moves.asm | 6 + data/battle/residual_effects_1.asm | 20 + data/battle/residual_effects_2.asm | 32 + data/battle/set_damage_effects.asm | 6 + data/battle/special_effects.asm | 24 + data/battle/stat_modifiers.asm | 15 + data/battle/stat_names.asm | 7 + data/battle/unused_critical_hit_moves.asm | 6 + data/battle_anims/base_coords.asm | 178 + data/battle_anims/frame_blocks.asm | 1238 ++++ data/battle_anims/special_effect_pointers.asm | 47 + data/battle_anims/special_effects.asm | 32 + data/battle_anims/subanimations.asm | 954 ++++ data/bike_riding_tilesets.asm | 2 - data/collision.asm | 25 - .../credits_mons.asm} | 0 data/{ => credits}/credits_order.asm | 7 +- {text => data/credits}/credits_text.asm | 1 + data/cries.asm | 192 - data/dungeon_tilesets.asm | 2 - data/events/bench_guys.asm | 23 + data/events/card_key_coords.asm | 36 + data/events/card_key_maps.asm | 12 + data/events/hidden_coins.asm | 19 + data/events/hidden_item_coords.asm | 62 + data/events/hidden_objects.asm | 560 ++ data/events/prize_mon_levels.asm | 8 + data/events/prizes.asm | 40 + data/{ => events}/slot_machine_wheels.asm | 0 data/events/trades.asm | 13 + data/evos_moves.asm | 2161 ------- data/facing.asm | 133 - data/force_bike_surf.asm | 11 - data/good_rod.asm | 3 - data/growth_rates.asm | 19 + data/hidden_coins.asm | 14 - data/hidden_item_coords.asm | 58 - data/hidden_objects.asm | 545 -- data/hide_show_data.asm | 593 -- data/icon_pointers.asm | 39 + data/item_prices.asm | 98 - data/items/guard_drink_items.asm | 5 + data/items/key_items.asm | 103 + data/items/marts.asm | 64 + data/items/names.asm | 98 + data/items/prices.asm | 98 + data/items/tm_prices.asm | 27 + data/items/use_overworld.asm | 9 + data/items/use_party.asm | 39 + data/items/vending_prices.asm | 10 + data/key_items.asm | 12 - data/mapHeaders/AgathasRoom.asm | 8 - data/mapHeaders/BikeShop.asm | 8 - data/mapHeaders/BillsHouse.asm | 8 - data/mapHeaders/BluesHouse.asm | 8 - data/mapHeaders/BrunosRoom.asm | 8 - data/mapHeaders/CeladonChiefHouse.asm | 8 - data/mapHeaders/CeladonCity.asm | 10 - data/mapHeaders/CeladonDiner.asm | 8 - data/mapHeaders/CeladonGym.asm | 8 - data/mapHeaders/CeladonHotel.asm | 8 - data/mapHeaders/CeladonMansion1F.asm | 8 - data/mapHeaders/CeladonMansion2F.asm | 8 - data/mapHeaders/CeladonMansion3F.asm | 8 - data/mapHeaders/CeladonMansionRoof.asm | 8 - data/mapHeaders/CeladonMansionRoofHouse.asm | 8 - data/mapHeaders/CeladonMart1F.asm | 8 - data/mapHeaders/CeladonMart2F.asm | 8 - data/mapHeaders/CeladonMart3F.asm | 8 - data/mapHeaders/CeladonMart4F.asm | 8 - data/mapHeaders/CeladonMart5F.asm | 8 - data/mapHeaders/CeladonMartElevator.asm | 8 - data/mapHeaders/CeladonMartRoof.asm | 8 - data/mapHeaders/CeladonPokecenter.asm | 8 - data/mapHeaders/CeruleanBadgeHouse.asm | 8 - data/mapHeaders/CeruleanCave1F.asm | 8 - data/mapHeaders/CeruleanCave2F.asm | 8 - data/mapHeaders/CeruleanCaveB1F.asm | 8 - data/mapHeaders/CeruleanCity.asm | 12 - data/mapHeaders/CeruleanGym.asm | 8 - data/mapHeaders/CeruleanMart.asm | 8 - data/mapHeaders/CeruleanPokecenter.asm | 8 - data/mapHeaders/CeruleanTradeHouse.asm | 8 - data/mapHeaders/CeruleanTrashedHouse.asm | 8 - data/mapHeaders/ChampionsRoom.asm | 8 - data/mapHeaders/CinnabarGym.asm | 8 - data/mapHeaders/CinnabarIsland.asm | 10 - data/mapHeaders/CinnabarLab.asm | 8 - data/mapHeaders/CinnabarLabFossilRoom.asm | 8 - data/mapHeaders/CinnabarLabMetronomeRoom.asm | 8 - data/mapHeaders/CinnabarLabTradeRoom.asm | 8 - data/mapHeaders/CinnabarMart.asm | 8 - data/mapHeaders/CinnabarPokecenter.asm | 8 - data/mapHeaders/Colosseum.asm | 8 - data/mapHeaders/CopycatsHouse1F.asm | 8 - data/mapHeaders/CopycatsHouse2F.asm | 8 - data/mapHeaders/Daycare.asm | 8 - data/mapHeaders/DiglettsCave.asm | 8 - data/mapHeaders/DiglettsCaveRoute11.asm | 8 - data/mapHeaders/DiglettsCaveRoute2.asm | 8 - data/mapHeaders/FightingDojo.asm | 8 - data/mapHeaders/FuchsiaBillsGrandpasHouse.asm | 8 - data/mapHeaders/FuchsiaCity.asm | 11 - data/mapHeaders/FuchsiaGoodRodHouse.asm | 8 - data/mapHeaders/FuchsiaGym.asm | 8 - data/mapHeaders/FuchsiaMart.asm | 8 - data/mapHeaders/FuchsiaMeetingRoom.asm | 8 - data/mapHeaders/FuchsiaPokecenter.asm | 8 - data/mapHeaders/GameCorner.asm | 8 - data/mapHeaders/GameCornerPrizeRoom.asm | 8 - data/mapHeaders/HallOfFame.asm | 8 - data/mapHeaders/IndigoPlateau.asm | 9 - data/mapHeaders/IndigoPlateauLobby.asm | 8 - data/mapHeaders/LancesRoom.asm | 8 - data/mapHeaders/LavenderCuboneHouse.asm | 8 - data/mapHeaders/LavenderMart.asm | 8 - data/mapHeaders/LavenderPokecenter.asm | 8 - data/mapHeaders/LavenderTown.asm | 11 - data/mapHeaders/LoreleisRoom.asm | 8 - data/mapHeaders/MrFujisHouse.asm | 8 - data/mapHeaders/MrPsychicsHouse.asm | 8 - data/mapHeaders/MtMoon1F.asm | 8 - data/mapHeaders/MtMoonB1F.asm | 8 - data/mapHeaders/MtMoonB2F.asm | 8 - data/mapHeaders/MtMoonPokecenter.asm | 8 - data/mapHeaders/Museum1F.asm | 8 - data/mapHeaders/Museum2F.asm | 8 - data/mapHeaders/NameRatersHouse.asm | 8 - data/mapHeaders/OaksLab.asm | 8 - data/mapHeaders/PalletTown.asm | 10 - data/mapHeaders/PewterCity.asm | 10 - data/mapHeaders/PewterGym.asm | 8 - data/mapHeaders/PewterMart.asm | 8 - data/mapHeaders/PewterNidoranHouse.asm | 8 - data/mapHeaders/PewterPokecenter.asm | 8 - data/mapHeaders/PewterSpeechHouse.asm | 8 - data/mapHeaders/PokemonFanClub.asm | 8 - data/mapHeaders/PokemonMansion1F.asm | 8 - data/mapHeaders/PokemonMansion2F.asm | 8 - data/mapHeaders/PokemonMansion3F.asm | 8 - data/mapHeaders/PokemonMansionB1F.asm | 8 - data/mapHeaders/PokemonTower1F.asm | 8 - data/mapHeaders/PokemonTower2F.asm | 8 - data/mapHeaders/PokemonTower3F.asm | 8 - data/mapHeaders/PokemonTower4F.asm | 8 - data/mapHeaders/PokemonTower5F.asm | 8 - data/mapHeaders/PokemonTower6F.asm | 8 - data/mapHeaders/PokemonTower7F.asm | 8 - data/mapHeaders/PowerPlant.asm | 8 - data/mapHeaders/RedsHouse1F.asm | 8 - data/mapHeaders/RedsHouse2F.asm | 8 - data/mapHeaders/RockTunnel1F.asm | 8 - data/mapHeaders/RockTunnelB1F.asm | 8 - data/mapHeaders/RockTunnelPokecenter.asm | 8 - data/mapHeaders/RocketHideoutB1F.asm | 8 - data/mapHeaders/RocketHideoutB2F.asm | 8 - data/mapHeaders/RocketHideoutB3F.asm | 8 - data/mapHeaders/RocketHideoutB4F.asm | 8 - data/mapHeaders/RocketHideoutElevator.asm | 8 - data/mapHeaders/Route1.asm | 10 - data/mapHeaders/Route10.asm | 10 - data/mapHeaders/Route11.asm | 10 - data/mapHeaders/Route11Gate1F.asm | 8 - data/mapHeaders/Route11Gate2F.asm | 8 - data/mapHeaders/Route12.asm | 11 - data/mapHeaders/Route12Gate1F.asm | 8 - data/mapHeaders/Route12Gate2F.asm | 8 - data/mapHeaders/Route12SuperRodHouse.asm | 8 - data/mapHeaders/Route13.asm | 10 - data/mapHeaders/Route14.asm | 10 - data/mapHeaders/Route15.asm | 10 - data/mapHeaders/Route15Gate1F.asm | 8 - data/mapHeaders/Route15Gate2F.asm | 8 - data/mapHeaders/Route16.asm | 10 - data/mapHeaders/Route16FlyHouse.asm | 8 - data/mapHeaders/Route16Gate1F.asm | 8 - data/mapHeaders/Route16Gate2F.asm | 8 - data/mapHeaders/Route17.asm | 10 - data/mapHeaders/Route18.asm | 10 - data/mapHeaders/Route18Gate1F.asm | 8 - data/mapHeaders/Route18Gate2F.asm | 8 - data/mapHeaders/Route19.asm | 10 - data/mapHeaders/Route2.asm | 10 - data/mapHeaders/Route20.asm | 10 - data/mapHeaders/Route21.asm | 10 - data/mapHeaders/Route22.asm | 10 - data/mapHeaders/Route22Gate.asm | 8 - data/mapHeaders/Route23.asm | 10 - data/mapHeaders/Route24.asm | 10 - data/mapHeaders/Route25.asm | 9 - data/mapHeaders/Route2Gate.asm | 8 - data/mapHeaders/Route2TradeHouse.asm | 8 - data/mapHeaders/Route3.asm | 10 - data/mapHeaders/Route4.asm | 10 - data/mapHeaders/Route5.asm | 10 - data/mapHeaders/Route5Gate.asm | 8 - data/mapHeaders/Route6.asm | 10 - data/mapHeaders/Route6Gate.asm | 8 - data/mapHeaders/Route7.asm | 10 - data/mapHeaders/Route7Gate.asm | 8 - data/mapHeaders/Route8.asm | 10 - data/mapHeaders/Route8Gate.asm | 8 - data/mapHeaders/Route9.asm | 10 - data/mapHeaders/SSAnne1F.asm | 8 - data/mapHeaders/SSAnne1FRooms.asm | 8 - data/mapHeaders/SSAnne2F.asm | 8 - data/mapHeaders/SSAnne2FRooms.asm | 8 - data/mapHeaders/SSAnne3F.asm | 8 - data/mapHeaders/SSAnneB1F.asm | 8 - data/mapHeaders/SSAnneB1FRooms.asm | 8 - data/mapHeaders/SSAnneBow.asm | 8 - data/mapHeaders/SSAnneCaptainsRoom.asm | 8 - data/mapHeaders/SSAnneKitchen.asm | 8 - data/mapHeaders/SafariZoneCenter.asm | 8 - data/mapHeaders/SafariZoneCenterRestHouse.asm | 8 - data/mapHeaders/SafariZoneEast.asm | 8 - data/mapHeaders/SafariZoneEastRestHouse.asm | 8 - data/mapHeaders/SafariZoneGate.asm | 8 - data/mapHeaders/SafariZoneNorth.asm | 8 - data/mapHeaders/SafariZoneNorthRestHouse.asm | 8 - data/mapHeaders/SafariZoneSecretHouse.asm | 8 - data/mapHeaders/SafariZoneWest.asm | 8 - data/mapHeaders/SafariZoneWestRestHouse.asm | 8 - data/mapHeaders/SaffronCity.asm | 12 - data/mapHeaders/SaffronGym.asm | 8 - data/mapHeaders/SaffronMart.asm | 8 - data/mapHeaders/SaffronPidgeyHouse.asm | 8 - data/mapHeaders/SaffronPokecenter.asm | 8 - data/mapHeaders/SeafoamIslands1F.asm | 8 - data/mapHeaders/SeafoamIslandsB1F.asm | 8 - data/mapHeaders/SeafoamIslandsB2F.asm | 8 - data/mapHeaders/SeafoamIslandsB3F.asm | 8 - data/mapHeaders/SeafoamIslandsB4F.asm | 8 - data/mapHeaders/SilphCo10F.asm | 8 - data/mapHeaders/SilphCo11F.asm | 8 - data/mapHeaders/SilphCo1F.asm | 8 - data/mapHeaders/SilphCo2F.asm | 8 - data/mapHeaders/SilphCo3F.asm | 8 - data/mapHeaders/SilphCo4F.asm | 8 - data/mapHeaders/SilphCo5F.asm | 8 - data/mapHeaders/SilphCo6F.asm | 8 - data/mapHeaders/SilphCo7F.asm | 8 - data/mapHeaders/SilphCo8F.asm | 8 - data/mapHeaders/SilphCo9F.asm | 8 - data/mapHeaders/SilphCoElevator.asm | 8 - data/mapHeaders/TradeCenter.asm | 8 - data/mapHeaders/UndergroundPathNorthSouth.asm | 8 - data/mapHeaders/UndergroundPathRoute5.asm | 8 - data/mapHeaders/UndergroundPathRoute6.asm | 8 - data/mapHeaders/UndergroundPathRoute7.asm | 8 - data/mapHeaders/UndergroundPathRoute7Copy.asm | 8 - data/mapHeaders/UndergroundPathRoute8.asm | 8 - data/mapHeaders/UndergroundPathWestEast.asm | 8 - data/mapHeaders/VermilionCity.asm | 10 - data/mapHeaders/VermilionDock.asm | 8 - data/mapHeaders/VermilionGym.asm | 8 - data/mapHeaders/VermilionMart.asm | 8 - data/mapHeaders/VermilionOldRodHouse.asm | 8 - data/mapHeaders/VermilionPidgeyHouse.asm | 8 - data/mapHeaders/VermilionPokecenter.asm | 8 - data/mapHeaders/VermilionTradeHouse.asm | 8 - data/mapHeaders/VictoryRoad1F.asm | 8 - data/mapHeaders/VictoryRoad2F.asm | 8 - data/mapHeaders/VictoryRoad3F.asm | 8 - data/mapHeaders/ViridianCity.asm | 11 - data/mapHeaders/ViridianForest.asm | 8 - data/mapHeaders/ViridianForestNorthGate.asm | 8 - data/mapHeaders/ViridianForestSouthGate.asm | 8 - data/mapHeaders/ViridianGym.asm | 8 - data/mapHeaders/ViridianMart.asm | 8 - data/mapHeaders/ViridianNicknameHouse.asm | 8 - data/mapHeaders/ViridianPokecenter.asm | 8 - data/mapHeaders/ViridianSchoolHouse.asm | 8 - data/mapHeaders/WardensHouse.asm | 8 - data/mapObjects/AgathasRoom.asm | 19 - data/mapObjects/BeachHouse.asm | 20 - data/mapObjects/BikeShop.asm | 17 - data/mapObjects/BillsHouse.asm | 17 - data/mapObjects/BluesHouse.asm | 17 - data/mapObjects/BrunosRoom.asm | 19 - data/mapObjects/CeladonChiefHouse.asm | 17 - data/mapObjects/CeladonCity.asm | 54 - data/mapObjects/CeladonDiner.asm | 19 - data/mapObjects/CeladonGym.asm | 22 - data/mapObjects/CeladonHotel.asm | 17 - data/mapObjects/CeladonMansion1F.asm | 25 - data/mapObjects/CeladonMansion2F.asm | 19 - data/mapObjects/CeladonMansion3F.asm | 26 - data/mapObjects/CeladonMansionRoof.asm | 17 - data/mapObjects/CeladonMansionRoofHouse.asm | 16 - data/mapObjects/CeladonMart1F.asm | 25 - data/mapObjects/CeladonMart2F.asm | 21 - data/mapObjects/CeladonMart3F.asm | 33 - data/mapObjects/CeladonMart4F.asm | 20 - data/mapObjects/CeladonMart5F.asm | 21 - data/mapObjects/CeladonMartElevator.asm | 15 - data/mapObjects/CeladonMartRoof.asm | 18 - data/mapObjects/CeladonPokecenter.asm | 19 - data/mapObjects/CeruleanBadgeHouse.asm | 17 - data/mapObjects/CeruleanCave1F.asm | 32 - data/mapObjects/CeruleanCave2F.asm | 26 - data/mapObjects/CeruleanCaveB1F.asm | 17 - data/mapObjects/CeruleanCity.asm | 47 - data/mapObjects/CeruleanGym.asm | 18 - data/mapObjects/CeruleanMart.asm | 17 - data/mapObjects/CeruleanPokecenter.asm | 19 - data/mapObjects/CeruleanTradeHouse.asm | 18 - data/mapObjects/CeruleanTrashedHouse.asm | 19 - data/mapObjects/ChampionsRoom.asm | 20 - data/mapObjects/CinnabarGym.asm | 23 - data/mapObjects/CinnabarIsland.asm | 27 - data/mapObjects/CinnabarLab.asm | 25 - data/mapObjects/CinnabarLabFossilRoom.asm | 16 - data/mapObjects/CinnabarLabMetronomeRoom.asm | 19 - data/mapObjects/CinnabarLabTradeRoom.asm | 17 - data/mapObjects/CinnabarMart.asm | 17 - data/mapObjects/CinnabarPokecenter.asm | 19 - data/mapObjects/Colosseum.asm | 9 - data/mapObjects/CopycatsHouse1F.asm | 19 - data/mapObjects/CopycatsHouse2F.asm | 19 - data/mapObjects/Daycare.asm | 15 - data/mapObjects/DiglettsCave.asm | 14 - data/mapObjects/DiglettsCaveRoute11.asm | 17 - data/mapObjects/DiglettsCaveRoute2.asm | 17 - data/mapObjects/FightingDojo.asm | 21 - data/mapObjects/FuchsiaBillsGrandpasHouse.asm | 17 - data/mapObjects/FuchsiaCity.asm | 52 - data/mapObjects/FuchsiaGoodRodHouse.asm | 17 - data/mapObjects/FuchsiaGym.asm | 22 - data/mapObjects/FuchsiaMart.asm | 17 - data/mapObjects/FuchsiaMeetingRoom.asm | 17 - data/mapObjects/FuchsiaPokecenter.asm | 19 - data/mapObjects/GameCorner.asm | 28 - data/mapObjects/GameCornerPrizeRoom.asm | 19 - data/mapObjects/HallOfFame.asm | 15 - data/mapObjects/IndigoPlateau.asm | 14 - data/mapObjects/IndigoPlateauLobby.asm | 22 - data/mapObjects/LancesRoom.asm | 17 - data/mapObjects/LavenderCuboneHouse.asm | 16 - data/mapObjects/LavenderMart.asm | 17 - data/mapObjects/LavenderPokecenter.asm | 19 - data/mapObjects/LavenderTown.asm | 31 - data/mapObjects/LoreleisRoom.asm | 19 - data/mapObjects/MrFujisHouse.asm | 20 - data/mapObjects/MrPsychicsHouse.asm | 15 - data/mapObjects/MtMoon1F.asm | 34 - data/mapObjects/MtMoonB1F.asm | 26 - data/mapObjects/MtMoonB2F.asm | 28 - data/mapObjects/MtMoonPokecenter.asm | 21 - data/mapObjects/Museum1F.asm | 25 - data/mapObjects/Museum2F.asm | 19 - data/mapObjects/NameRatersHouse.asm | 15 - data/mapObjects/OaksLab.asm | 23 - data/mapObjects/PalletTown.asm | 23 - data/mapObjects/PewterCity.asm | 36 - data/mapObjects/PewterGym.asm | 17 - data/mapObjects/PewterMart.asm | 17 - data/mapObjects/PewterNidoranHouse.asm | 17 - data/mapObjects/PewterPokecenter.asm | 20 - data/mapObjects/PewterSpeechHouse.asm | 16 - data/mapObjects/PokemonFanClub.asm | 20 - data/mapObjects/PokemonMansion1F.asm | 29 - data/mapObjects/PokemonMansion2F.asm | 22 - data/mapObjects/PokemonMansion3F.asm | 21 - data/mapObjects/PokemonMansionB1F.asm | 20 - data/mapObjects/PokemonTower1F.asm | 21 - data/mapObjects/PokemonTower2F.asm | 16 - data/mapObjects/PokemonTower3F.asm | 18 - data/mapObjects/PokemonTower4F.asm | 20 - data/mapObjects/PokemonTower5F.asm | 20 - data/mapObjects/PokemonTower6F.asm | 19 - data/mapObjects/PokemonTower7F.asm | 15 - data/mapObjects/PowerPlant.asm | 30 - data/mapObjects/RedsHouse1F.asm | 18 - data/mapObjects/RedsHouse2F.asm | 12 - data/mapObjects/RockTunnel1F.asm | 34 - data/mapObjects/RockTunnelB1F.asm | 26 - data/mapObjects/RockTunnelPokecenter.asm | 19 - data/mapObjects/RocketHideoutB1F.asm | 27 - data/mapObjects/RocketHideoutB2F.asm | 25 - data/mapObjects/RocketHideoutB3F.asm | 18 - data/mapObjects/RocketHideoutB4F.asm | 25 - data/mapObjects/RocketHideoutElevator.asm | 15 - data/mapObjects/Route1.asm | 14 - data/mapObjects/Route10.asm | 28 - data/mapObjects/Route11.asm | 31 - data/mapObjects/Route11Gate1F.asm | 21 - data/mapObjects/Route11Gate2F.asm | 16 - data/mapObjects/Route12.asm | 30 - data/mapObjects/Route12Gate1F.asm | 21 - data/mapObjects/Route12Gate2F.asm | 15 - data/mapObjects/Route12SuperRodHouse.asm | 15 - data/mapObjects/Route13.asm | 21 - data/mapObjects/Route14.asm | 19 - data/mapObjects/Route15.asm | 30 - data/mapObjects/Route15Gate1F.asm | 21 - data/mapObjects/Route15Gate2F.asm | 14 - data/mapObjects/Route16.asm | 37 - data/mapObjects/Route16FlyHouse.asm | 16 - data/mapObjects/Route16Gate1F.asm | 30 - data/mapObjects/Route16Gate2F.asm | 16 - data/mapObjects/Route17.asm | 24 - data/mapObjects/Route18.asm | 23 - data/mapObjects/Route18Gate1F.asm | 21 - data/mapObjects/Route18Gate2F.asm | 15 - data/mapObjects/Route19.asm | 23 - data/mapObjects/Route2.asm | 36 - data/mapObjects/Route20.asm | 26 - data/mapObjects/Route21.asm | 17 - data/mapObjects/Route22.asm | 15 - data/mapObjects/Route22Gate.asm | 19 - data/mapObjects/Route23.asm | 26 - data/mapObjects/Route24.asm | 17 - data/mapObjects/Route25.asm | 23 - data/mapObjects/Route2Gate.asm | 20 - data/mapObjects/Route2TradeHouse.asm | 16 - data/mapObjects/Route3.asm | 18 - data/mapObjects/Route4.asm | 22 - data/mapObjects/Route5.asm | 21 - data/mapObjects/Route5Gate.asm | 19 - data/mapObjects/Route6.asm | 25 - data/mapObjects/Route6Gate.asm | 19 - data/mapObjects/Route7.asm | 21 - data/mapObjects/Route7Gate.asm | 19 - data/mapObjects/Route8.asm | 30 - data/mapObjects/Route8Gate.asm | 19 - data/mapObjects/Route9.asm | 19 - data/mapObjects/SSAnne1F.asm | 34 - data/mapObjects/SSAnne1FRooms.asm | 33 - data/mapObjects/SSAnne2F.asm | 30 - data/mapObjects/SSAnne2FRooms.asm | 47 - data/mapObjects/SSAnne3F.asm | 15 - data/mapObjects/SSAnneB1F.asm | 22 - data/mapObjects/SSAnneB1FRooms.asm | 41 - data/mapObjects/SSAnneBow.asm | 19 - data/mapObjects/SSAnneCaptainsRoom.asm | 15 - data/mapObjects/SSAnneKitchen.asm | 19 - data/mapObjects/SafariZoneCenter.asm | 31 - data/mapObjects/SafariZoneCenterRestHouse.asm | 16 - data/mapObjects/SafariZoneEast.asm | 27 - data/mapObjects/SafariZoneEastRestHouse.asm | 17 - data/mapObjects/SafariZoneGate.asm | 20 - data/mapObjects/SafariZoneNorth.asm | 35 - data/mapObjects/SafariZoneNorthRestHouse.asm | 17 - data/mapObjects/SafariZoneSecretHouse.asm | 15 - data/mapObjects/SafariZoneWest.asm | 34 - data/mapObjects/SafariZoneWestRestHouse.asm | 17 - data/mapObjects/SaffronCity.asm | 50 - data/mapObjects/SaffronGym.asm | 83 - data/mapObjects/SaffronMart.asm | 17 - data/mapObjects/SaffronPidgeyHouse.asm | 18 - data/mapObjects/SaffronPokecenter.asm | 19 - data/mapObjects/SeafoamIslands1F.asm | 26 - data/mapObjects/SeafoamIslandsB1F.asm | 26 - data/mapObjects/SeafoamIslandsB2F.asm | 26 - data/mapObjects/SeafoamIslandsB3F.asm | 30 - data/mapObjects/SeafoamIslandsB4F.asm | 23 - data/mapObjects/SilphCo10F.asm | 28 - data/mapObjects/SilphCo11F.asm | 24 - data/mapObjects/SilphCo1F.asm | 21 - data/mapObjects/SilphCo2F.asm | 29 - data/mapObjects/SilphCo3F.asm | 34 - data/mapObjects/SilphCo4F.asm | 31 - data/mapObjects/SilphCo5F.asm | 35 - data/mapObjects/SilphCo6F.asm | 30 - data/mapObjects/SilphCo7F.asm | 33 - data/mapObjects/SilphCo8F.asm | 28 - data/mapObjects/SilphCo9F.asm | 24 - data/mapObjects/SilphCoElevator.asm | 15 - data/mapObjects/TradeCenter.asm | 9 - data/mapObjects/UndergroundPathNorthSouth.asm | 14 - data/mapObjects/UndergroundPathRoute5.asm | 17 - data/mapObjects/UndergroundPathRoute6.asm | 17 - data/mapObjects/UndergroundPathRoute7.asm | 17 - data/mapObjects/UndergroundPathRoute7Copy.asm | 18 - data/mapObjects/UndergroundPathRoute8.asm | 17 - data/mapObjects/UndergroundPathWestEast.asm | 14 - data/mapObjects/VermilionCity.asm | 42 - data/mapObjects/VermilionDock.asm | 14 - data/mapObjects/VermilionGym.asm | 19 - data/mapObjects/VermilionMart.asm | 17 - data/mapObjects/VermilionOldRodHouse.asm | 15 - data/mapObjects/VermilionPidgeyHouse.asm | 17 - data/mapObjects/VermilionPokecenter.asm | 19 - data/mapObjects/VermilionTradeHouse.asm | 15 - data/mapObjects/VictoryRoad1F.asm | 23 - data/mapObjects/VictoryRoad2F.asm | 37 - data/mapObjects/VictoryRoad3F.asm | 28 - data/mapObjects/ViridianCity.asm | 34 - data/mapObjects/ViridianForest.asm | 38 - data/mapObjects/ViridianForestNorthGate.asm | 20 - data/mapObjects/ViridianForestSouthGate.asm | 20 - data/mapObjects/ViridianGym.asm | 25 - data/mapObjects/ViridianMart.asm | 17 - data/mapObjects/ViridianNicknameHouse.asm | 18 - data/mapObjects/ViridianPokecenter.asm | 19 - data/mapObjects/ViridianSchoolHouse.asm | 17 - data/mapObjects/WardensHouse.asm | 19 - data/map_songs.asm | 250 - data/maps/badge_maps.asm | 10 + data/maps/dungeon_maps.asm | 27 + data/maps/force_bike_surf.asm | 15 + data/maps/headers/AgathasRoom.asm | 3 + .../headers}/BeachHouse.asm | 0 data/maps/headers/BikeShop.asm | 3 + data/maps/headers/BillsHouse.asm | 3 + data/maps/headers/BluesHouse.asm | 3 + data/maps/headers/BrunosRoom.asm | 3 + data/maps/headers/CeladonChiefHouse.asm | 3 + data/maps/headers/CeladonCity.asm | 5 + data/maps/headers/CeladonDiner.asm | 3 + data/maps/headers/CeladonGym.asm | 3 + data/maps/headers/CeladonHotel.asm | 3 + data/maps/headers/CeladonMansion1F.asm | 3 + data/maps/headers/CeladonMansion2F.asm | 3 + data/maps/headers/CeladonMansion3F.asm | 3 + data/maps/headers/CeladonMansionRoof.asm | 3 + data/maps/headers/CeladonMansionRoofHouse.asm | 3 + data/maps/headers/CeladonMart1F.asm | 3 + data/maps/headers/CeladonMart2F.asm | 3 + data/maps/headers/CeladonMart3F.asm | 3 + data/maps/headers/CeladonMart4F.asm | 3 + data/maps/headers/CeladonMart5F.asm | 3 + data/maps/headers/CeladonMartElevator.asm | 3 + data/maps/headers/CeladonMartRoof.asm | 3 + data/maps/headers/CeladonPokecenter.asm | 3 + data/maps/headers/CeruleanBadgeHouse.asm | 3 + data/maps/headers/CeruleanCave1F.asm | 3 + data/maps/headers/CeruleanCave2F.asm | 3 + data/maps/headers/CeruleanCaveB1F.asm | 3 + data/maps/headers/CeruleanCity.asm | 7 + data/maps/headers/CeruleanGym.asm | 3 + data/maps/headers/CeruleanMart.asm | 3 + data/maps/headers/CeruleanPokecenter.asm | 3 + data/maps/headers/CeruleanTradeHouse.asm | 3 + data/maps/headers/CeruleanTrashedHouse.asm | 3 + data/maps/headers/ChampionsRoom.asm | 3 + data/maps/headers/CinnabarGym.asm | 3 + data/maps/headers/CinnabarIsland.asm | 5 + data/maps/headers/CinnabarLab.asm | 3 + data/maps/headers/CinnabarLabFossilRoom.asm | 3 + .../maps/headers/CinnabarLabMetronomeRoom.asm | 3 + data/maps/headers/CinnabarLabTradeRoom.asm | 3 + data/maps/headers/CinnabarMart.asm | 3 + data/maps/headers/CinnabarPokecenter.asm | 3 + data/maps/headers/Colosseum.asm | 3 + data/maps/headers/CopycatsHouse1F.asm | 3 + data/maps/headers/CopycatsHouse2F.asm | 3 + data/maps/headers/Daycare.asm | 3 + data/maps/headers/DiglettsCave.asm | 3 + data/maps/headers/DiglettsCaveRoute11.asm | 3 + data/maps/headers/DiglettsCaveRoute2.asm | 3 + data/maps/headers/FightingDojo.asm | 3 + .../headers/FuchsiaBillsGrandpasHouse.asm | 3 + data/maps/headers/FuchsiaCity.asm | 6 + data/maps/headers/FuchsiaGoodRodHouse.asm | 3 + data/maps/headers/FuchsiaGym.asm | 3 + data/maps/headers/FuchsiaMart.asm | 3 + data/maps/headers/FuchsiaMeetingRoom.asm | 3 + data/maps/headers/FuchsiaPokecenter.asm | 3 + data/maps/headers/GameCorner.asm | 3 + data/maps/headers/GameCornerPrizeRoom.asm | 3 + data/maps/headers/HallOfFame.asm | 3 + data/maps/headers/IndigoPlateau.asm | 4 + data/maps/headers/IndigoPlateauLobby.asm | 3 + data/maps/headers/LancesRoom.asm | 3 + data/maps/headers/LavenderCuboneHouse.asm | 3 + data/maps/headers/LavenderMart.asm | 3 + data/maps/headers/LavenderPokecenter.asm | 3 + data/maps/headers/LavenderTown.asm | 6 + data/maps/headers/LoreleisRoom.asm | 3 + data/maps/headers/MrFujisHouse.asm | 3 + data/maps/headers/MrPsychicsHouse.asm | 3 + data/maps/headers/MtMoon1F.asm | 3 + data/maps/headers/MtMoonB1F.asm | 3 + data/maps/headers/MtMoonB2F.asm | 3 + data/maps/headers/MtMoonPokecenter.asm | 3 + data/maps/headers/Museum1F.asm | 3 + data/maps/headers/Museum2F.asm | 3 + data/maps/headers/NameRatersHouse.asm | 3 + data/maps/headers/OaksLab.asm | 3 + data/maps/headers/PalletTown.asm | 5 + data/maps/headers/PewterCity.asm | 5 + data/maps/headers/PewterGym.asm | 3 + data/maps/headers/PewterMart.asm | 3 + data/maps/headers/PewterNidoranHouse.asm | 3 + data/maps/headers/PewterPokecenter.asm | 3 + data/maps/headers/PewterSpeechHouse.asm | 3 + data/maps/headers/PokemonFanClub.asm | 3 + data/maps/headers/PokemonMansion1F.asm | 3 + data/maps/headers/PokemonMansion2F.asm | 3 + data/maps/headers/PokemonMansion3F.asm | 3 + data/maps/headers/PokemonMansionB1F.asm | 3 + data/maps/headers/PokemonTower1F.asm | 3 + data/maps/headers/PokemonTower2F.asm | 3 + data/maps/headers/PokemonTower3F.asm | 3 + data/maps/headers/PokemonTower4F.asm | 3 + data/maps/headers/PokemonTower5F.asm | 3 + data/maps/headers/PokemonTower6F.asm | 3 + data/maps/headers/PokemonTower7F.asm | 3 + data/maps/headers/PowerPlant.asm | 3 + data/maps/headers/RedsHouse1F.asm | 3 + data/maps/headers/RedsHouse2F.asm | 3 + data/maps/headers/RockTunnel1F.asm | 3 + data/maps/headers/RockTunnelB1F.asm | 3 + data/maps/headers/RockTunnelPokecenter.asm | 3 + data/maps/headers/RocketHideoutB1F.asm | 3 + data/maps/headers/RocketHideoutB2F.asm | 3 + data/maps/headers/RocketHideoutB3F.asm | 3 + data/maps/headers/RocketHideoutB4F.asm | 3 + data/maps/headers/RocketHideoutElevator.asm | 3 + data/maps/headers/Route1.asm | 5 + data/maps/headers/Route10.asm | 5 + data/maps/headers/Route11.asm | 5 + data/maps/headers/Route11Gate1F.asm | 3 + data/maps/headers/Route11Gate2F.asm | 3 + data/maps/headers/Route12.asm | 6 + data/maps/headers/Route12Gate1F.asm | 3 + data/maps/headers/Route12Gate2F.asm | 3 + data/maps/headers/Route12SuperRodHouse.asm | 3 + data/maps/headers/Route13.asm | 5 + data/maps/headers/Route14.asm | 5 + data/maps/headers/Route15.asm | 5 + data/maps/headers/Route15Gate1F.asm | 3 + data/maps/headers/Route15Gate2F.asm | 3 + data/maps/headers/Route16.asm | 5 + data/maps/headers/Route16FlyHouse.asm | 3 + data/maps/headers/Route16Gate1F.asm | 3 + data/maps/headers/Route16Gate2F.asm | 3 + data/maps/headers/Route17.asm | 5 + data/maps/headers/Route18.asm | 5 + data/maps/headers/Route18Gate1F.asm | 3 + data/maps/headers/Route18Gate2F.asm | 3 + data/maps/headers/Route19.asm | 5 + data/maps/headers/Route2.asm | 5 + data/maps/headers/Route20.asm | 5 + data/maps/headers/Route21.asm | 5 + data/maps/headers/Route22.asm | 5 + data/maps/headers/Route22Gate.asm | 3 + data/maps/headers/Route23.asm | 5 + data/maps/headers/Route24.asm | 5 + data/maps/headers/Route25.asm | 4 + data/maps/headers/Route2Gate.asm | 3 + data/maps/headers/Route2TradeHouse.asm | 3 + data/maps/headers/Route3.asm | 5 + data/maps/headers/Route4.asm | 5 + data/maps/headers/Route5.asm | 5 + data/maps/headers/Route5Gate.asm | 3 + data/maps/headers/Route6.asm | 5 + data/maps/headers/Route6Gate.asm | 3 + data/maps/headers/Route7.asm | 5 + data/maps/headers/Route7Gate.asm | 3 + data/maps/headers/Route8.asm | 5 + data/maps/headers/Route8Gate.asm | 3 + data/maps/headers/Route9.asm | 5 + data/maps/headers/SSAnne1F.asm | 3 + data/maps/headers/SSAnne1FRooms.asm | 3 + data/maps/headers/SSAnne2F.asm | 3 + data/maps/headers/SSAnne2FRooms.asm | 3 + data/maps/headers/SSAnne3F.asm | 3 + data/maps/headers/SSAnneB1F.asm | 3 + data/maps/headers/SSAnneB1FRooms.asm | 3 + data/maps/headers/SSAnneBow.asm | 3 + data/maps/headers/SSAnneCaptainsRoom.asm | 3 + data/maps/headers/SSAnneKitchen.asm | 3 + data/maps/headers/SafariZoneCenter.asm | 3 + .../headers/SafariZoneCenterRestHouse.asm | 3 + data/maps/headers/SafariZoneEast.asm | 3 + data/maps/headers/SafariZoneEastRestHouse.asm | 3 + data/maps/headers/SafariZoneGate.asm | 3 + data/maps/headers/SafariZoneNorth.asm | 3 + .../maps/headers/SafariZoneNorthRestHouse.asm | 3 + data/maps/headers/SafariZoneSecretHouse.asm | 3 + data/maps/headers/SafariZoneWest.asm | 3 + data/maps/headers/SafariZoneWestRestHouse.asm | 3 + data/maps/headers/SaffronCity.asm | 7 + data/maps/headers/SaffronGym.asm | 3 + data/maps/headers/SaffronMart.asm | 3 + data/maps/headers/SaffronPidgeyHouse.asm | 3 + data/maps/headers/SaffronPokecenter.asm | 3 + data/maps/headers/SeafoamIslands1F.asm | 3 + data/maps/headers/SeafoamIslandsB1F.asm | 3 + data/maps/headers/SeafoamIslandsB2F.asm | 3 + data/maps/headers/SeafoamIslandsB3F.asm | 3 + data/maps/headers/SeafoamIslandsB4F.asm | 3 + data/maps/headers/SilphCo10F.asm | 3 + data/maps/headers/SilphCo11F.asm | 3 + data/maps/headers/SilphCo1F.asm | 3 + data/maps/headers/SilphCo2F.asm | 3 + data/maps/headers/SilphCo3F.asm | 3 + data/maps/headers/SilphCo4F.asm | 3 + data/maps/headers/SilphCo5F.asm | 3 + data/maps/headers/SilphCo6F.asm | 3 + data/maps/headers/SilphCo7F.asm | 3 + data/maps/headers/SilphCo8F.asm | 3 + data/maps/headers/SilphCo9F.asm | 3 + data/maps/headers/SilphCoElevator.asm | 3 + data/maps/headers/TradeCenter.asm | 3 + .../headers/UndergroundPathNorthSouth.asm | 3 + data/maps/headers/UndergroundPathRoute5.asm | 3 + data/maps/headers/UndergroundPathRoute6.asm | 3 + data/maps/headers/UndergroundPathRoute7.asm | 3 + .../headers/UndergroundPathRoute7Copy.asm | 3 + data/maps/headers/UndergroundPathRoute8.asm | 3 + data/maps/headers/UndergroundPathWestEast.asm | 3 + data/maps/headers/VermilionCity.asm | 5 + data/maps/headers/VermilionDock.asm | 3 + data/maps/headers/VermilionGym.asm | 3 + data/maps/headers/VermilionMart.asm | 3 + data/maps/headers/VermilionOldRodHouse.asm | 3 + data/maps/headers/VermilionPidgeyHouse.asm | 3 + data/maps/headers/VermilionPokecenter.asm | 3 + data/maps/headers/VermilionTradeHouse.asm | 3 + data/maps/headers/VictoryRoad1F.asm | 3 + data/maps/headers/VictoryRoad2F.asm | 3 + data/maps/headers/VictoryRoad3F.asm | 3 + data/maps/headers/ViridianCity.asm | 6 + data/maps/headers/ViridianForest.asm | 3 + data/maps/headers/ViridianForestNorthGate.asm | 3 + data/maps/headers/ViridianForestSouthGate.asm | 3 + data/maps/headers/ViridianGym.asm | 3 + data/maps/headers/ViridianMart.asm | 3 + data/maps/headers/ViridianNicknameHouse.asm | 3 + data/maps/headers/ViridianPokecenter.asm | 3 + data/maps/headers/ViridianSchoolHouse.asm | 3 + data/maps/headers/WardensHouse.asm | 3 + data/maps/hide_show_data.asm | 581 ++ data/{ => maps}/map_header_banks.asm | 2 +- data/{ => maps}/map_header_pointers.asm | 0 data/maps/names.asm | 54 + data/maps/objects/AgathasRoom.asm | 15 + data/maps/objects/BeachHouse.asm | 18 + data/maps/objects/BikeShop.asm | 15 + data/maps/objects/BillsHouse.asm | 15 + data/maps/objects/BluesHouse.asm | 15 + data/maps/objects/BrunosRoom.asm | 15 + data/maps/objects/CeladonChiefHouse.asm | 15 + data/maps/objects/CeladonCity.asm | 41 + data/maps/objects/CeladonDiner.asm | 17 + data/maps/objects/CeladonGym.asm | 20 + data/maps/objects/CeladonHotel.asm | 15 + data/maps/objects/CeladonMansion1F.asm | 20 + data/maps/objects/CeladonMansion2F.asm | 15 + data/maps/objects/CeladonMansion3F.asm | 22 + data/maps/objects/CeladonMansionRoof.asm | 14 + data/maps/objects/CeladonMansionRoofHouse.asm | 14 + data/maps/objects/CeladonMart1F.asm | 19 + data/maps/objects/CeladonMart2F.asm | 18 + data/maps/objects/CeladonMart3F.asm | 30 + data/maps/objects/CeladonMart4F.asm | 17 + data/maps/objects/CeladonMart5F.asm | 18 + data/maps/objects/CeladonMartElevator.asm | 13 + data/maps/objects/CeladonMartRoof.asm | 17 + data/maps/objects/CeladonPokecenter.asm | 17 + data/maps/objects/CeruleanBadgeHouse.asm | 14 + data/maps/objects/CeruleanCave1F.asm | 23 + data/maps/objects/CeruleanCave2F.asm | 20 + data/maps/objects/CeruleanCaveB1F.asm | 16 + data/maps/objects/CeruleanCity.asm | 37 + data/maps/objects/CeruleanGym.asm | 16 + data/maps/objects/CeruleanMart.asm | 15 + data/maps/objects/CeruleanPokecenter.asm | 17 + data/maps/objects/CeruleanTradeHouse.asm | 16 + data/maps/objects/CeruleanTrashedHouse.asm | 16 + data/maps/objects/ChampionsRoom.asm | 16 + data/maps/objects/CinnabarGym.asm | 21 + data/maps/objects/CinnabarIsland.asm | 22 + data/maps/objects/CinnabarLab.asm | 20 + data/maps/objects/CinnabarLabFossilRoom.asm | 14 + .../maps/objects/CinnabarLabMetronomeRoom.asm | 17 + data/maps/objects/CinnabarLabTradeRoom.asm | 15 + data/maps/objects/CinnabarMart.asm | 15 + data/maps/objects/CinnabarPokecenter.asm | 17 + data/maps/objects/Colosseum.asm | 11 + data/maps/objects/CopycatsHouse1F.asm | 16 + data/maps/objects/CopycatsHouse2F.asm | 18 + data/maps/objects/Daycare.asm | 13 + data/maps/objects/DiglettsCave.asm | 12 + data/maps/objects/DiglettsCaveRoute11.asm | 14 + data/maps/objects/DiglettsCaveRoute2.asm | 14 + data/maps/objects/FightingDojo.asm | 19 + .../objects/FuchsiaBillsGrandpasHouse.asm | 15 + data/maps/objects/FuchsiaCity.asm | 43 + data/maps/objects/FuchsiaGoodRodHouse.asm | 14 + data/maps/objects/FuchsiaGym.asm | 20 + data/maps/objects/FuchsiaMart.asm | 15 + data/maps/objects/FuchsiaMeetingRoom.asm | 15 + data/maps/objects/FuchsiaPokecenter.asm | 17 + data/maps/objects/GameCorner.asm | 25 + data/maps/objects/GameCornerPrizeRoom.asm | 17 + data/maps/objects/HallOfFame.asm | 13 + data/maps/objects/IndigoPlateau.asm | 12 + data/maps/objects/IndigoPlateauLobby.asm | 19 + data/maps/objects/LancesRoom.asm | 14 + data/maps/objects/LavenderCuboneHouse.asm | 14 + data/maps/objects/LavenderMart.asm | 15 + data/maps/objects/LavenderPokecenter.asm | 17 + data/maps/objects/LavenderTown.asm | 25 + data/maps/objects/LoreleisRoom.asm | 15 + data/maps/objects/MrFujisHouse.asm | 18 + data/maps/objects/MrPsychicsHouse.asm | 13 + data/maps/objects/MtMoon1F.asm | 29 + data/maps/objects/MtMoonB1F.asm | 18 + data/maps/objects/MtMoonB2F.asm | 24 + data/maps/objects/MtMoonPokecenter.asm | 19 + data/maps/objects/Museum1F.asm | 20 + data/maps/objects/Museum2F.asm | 18 + data/maps/objects/NameRatersHouse.asm | 13 + data/maps/objects/OaksLab.asm | 21 + data/maps/objects/PalletTown.asm | 20 + data/maps/objects/PewterCity.asm | 29 + data/maps/objects/PewterGym.asm | 15 + data/maps/objects/PewterMart.asm | 15 + data/maps/objects/PewterNidoranHouse.asm | 15 + data/maps/objects/PewterPokecenter.asm | 18 + data/maps/objects/PewterSpeechHouse.asm | 14 + data/maps/objects/PokemonFanClub.asm | 18 + data/maps/objects/PokemonMansion1F.asm | 21 + data/maps/objects/PokemonMansion2F.asm | 18 + data/maps/objects/PokemonMansion3F.asm | 18 + data/maps/objects/PokemonMansionB1F.asm | 19 + data/maps/objects/PokemonTower1F.asm | 18 + data/maps/objects/PokemonTower2F.asm | 14 + data/maps/objects/PokemonTower3F.asm | 16 + data/maps/objects/PokemonTower4F.asm | 18 + data/maps/objects/PokemonTower5F.asm | 18 + data/maps/objects/PokemonTower6F.asm | 17 + data/maps/objects/PokemonTower7F.asm | 14 + data/maps/objects/PowerPlant.asm | 27 + data/maps/objects/RedsHouse1F.asm | 15 + data/maps/objects/RedsHouse2F.asm | 11 + data/maps/objects/RockTunnel1F.asm | 26 + data/maps/objects/RockTunnelB1F.asm | 22 + data/maps/objects/RockTunnelPokecenter.asm | 17 + data/maps/objects/RocketHideoutB1F.asm | 22 + data/maps/objects/RocketHideoutB2F.asm | 20 + data/maps/objects/RocketHideoutB3F.asm | 16 + data/maps/objects/RocketHideoutB4F.asm | 22 + data/maps/objects/RocketHideoutElevator.asm | 13 + data/maps/objects/Route1.asm | 16 + data/maps/objects/Route10.asm | 24 + data/maps/objects/Route11.asm | 26 + data/maps/objects/Route11Gate1F.asm | 16 + data/maps/objects/Route11Gate2F.asm | 15 + data/maps/objects/Route12.asm | 26 + data/maps/objects/Route12Gate1F.asm | 16 + data/maps/objects/Route12Gate2F.asm | 14 + data/maps/objects/Route12SuperRodHouse.asm | 13 + data/maps/objects/Route13.asm | 23 + data/maps/objects/Route14.asm | 21 + data/maps/objects/Route15.asm | 26 + data/maps/objects/Route15Gate1F.asm | 16 + data/maps/objects/Route15Gate2F.asm | 13 + data/maps/objects/Route16.asm | 28 + data/maps/objects/Route16FlyHouse.asm | 14 + data/maps/objects/Route16Gate1F.asm | 21 + data/maps/objects/Route16Gate2F.asm | 15 + data/maps/objects/Route17.asm | 26 + data/maps/objects/Route18.asm | 19 + data/maps/objects/Route18Gate1F.asm | 16 + data/maps/objects/Route18Gate2F.asm | 14 + data/maps/objects/Route19.asm | 22 + data/maps/objects/Route2.asm | 29 + data/maps/objects/Route20.asm | 24 + data/maps/objects/Route21.asm | 19 + data/maps/objects/Route22.asm | 14 + data/maps/objects/Route22Gate.asm | 15 + data/maps/objects/Route23.asm | 22 + data/maps/objects/Route24.asm | 19 + data/maps/objects/Route25.asm | 22 + data/maps/objects/Route2Gate.asm | 16 + data/maps/objects/Route2TradeHouse.asm | 14 + data/maps/objects/Route3.asm | 20 + data/maps/objects/Route4.asm | 19 + data/maps/objects/Route5.asm | 16 + data/maps/objects/Route5Gate.asm | 15 + data/maps/objects/Route6.asm | 21 + data/maps/objects/Route6Gate.asm | 15 + data/maps/objects/Route7.asm | 16 + data/maps/objects/Route7Gate.asm | 15 + data/maps/objects/Route8.asm | 25 + data/maps/objects/Route8Gate.asm | 15 + data/maps/objects/Route9.asm | 21 + data/maps/objects/SSAnne1F.asm | 23 + data/maps/objects/SSAnne1FRooms.asm | 27 + data/maps/objects/SSAnne2F.asm | 21 + data/maps/objects/SSAnne2FRooms.asm | 35 + data/maps/objects/SSAnne3F.asm | 13 + data/maps/objects/SSAnneB1F.asm | 16 + data/maps/objects/SSAnneB1FRooms.asm | 31 + data/maps/objects/SSAnneBow.asm | 17 + data/maps/objects/SSAnneCaptainsRoom.asm | 14 + data/maps/objects/SSAnneKitchen.asm | 18 + data/maps/objects/SafariZoneCenter.asm | 22 + .../objects/SafariZoneCenterRestHouse.asm | 14 + data/maps/objects/SafariZoneEast.asm | 22 + data/maps/objects/SafariZoneEastRestHouse.asm | 15 + data/maps/objects/SafariZoneGate.asm | 16 + data/maps/objects/SafariZoneNorth.asm | 26 + .../maps/objects/SafariZoneNorthRestHouse.asm | 15 + data/maps/objects/SafariZoneSecretHouse.asm | 13 + data/maps/objects/SafariZoneWest.asm | 26 + data/maps/objects/SafariZoneWestRestHouse.asm | 15 + data/maps/objects/SaffronCity.asm | 42 + data/maps/objects/SaffronGym.asm | 51 + data/maps/objects/SaffronMart.asm | 15 + data/maps/objects/SaffronPidgeyHouse.asm | 16 + data/maps/objects/SaffronPokecenter.asm | 17 + data/maps/objects/SeafoamIslands1F.asm | 19 + data/maps/objects/SeafoamIslandsB1F.asm | 19 + data/maps/objects/SeafoamIslandsB2F.asm | 19 + data/maps/objects/SeafoamIslandsB3F.asm | 23 + data/maps/objects/SeafoamIslandsB4F.asm | 19 + data/maps/objects/SilphCo10F.asm | 22 + data/maps/objects/SilphCo11F.asm | 20 + data/maps/objects/SilphCo1F.asm | 16 + data/maps/objects/SilphCo2F.asm | 22 + data/maps/objects/SilphCo3F.asm | 24 + data/maps/objects/SilphCo4F.asm | 24 + data/maps/objects/SilphCo5F.asm | 28 + data/maps/objects/SilphCo6F.asm | 25 + data/maps/objects/SilphCo7F.asm | 27 + data/maps/objects/SilphCo8F.asm | 21 + data/maps/objects/SilphCo9F.asm | 19 + data/maps/objects/SilphCoElevator.asm | 13 + data/maps/objects/TradeCenter.asm | 11 + .../objects/UndergroundPathNorthSouth.asm | 12 + data/maps/objects/UndergroundPathRoute5.asm | 14 + data/maps/objects/UndergroundPathRoute6.asm | 14 + data/maps/objects/UndergroundPathRoute7.asm | 14 + .../objects/UndergroundPathRoute7Copy.asm | 15 + data/maps/objects/UndergroundPathRoute8.asm | 14 + data/maps/objects/UndergroundPathWestEast.asm | 12 + data/maps/objects/VermilionCity.asm | 33 + data/maps/objects/VermilionDock.asm | 12 + data/maps/objects/VermilionGym.asm | 17 + data/maps/objects/VermilionMart.asm | 15 + data/maps/objects/VermilionOldRodHouse.asm | 13 + data/maps/objects/VermilionPidgeyHouse.asm | 15 + data/maps/objects/VermilionPokecenter.asm | 17 + data/maps/objects/VermilionTradeHouse.asm | 13 + data/maps/objects/VictoryRoad1F.asm | 20 + data/maps/objects/VictoryRoad2F.asm | 30 + data/maps/objects/VictoryRoad3F.asm | 24 + data/maps/objects/ViridianCity.asm | 29 + data/maps/objects/ViridianForest.asm | 32 + data/maps/objects/ViridianForestNorthGate.asm | 16 + data/maps/objects/ViridianForestSouthGate.asm | 16 + data/maps/objects/ViridianGym.asm | 23 + data/maps/objects/ViridianMart.asm | 15 + data/maps/objects/ViridianNicknameHouse.asm | 16 + data/maps/objects/ViridianPokecenter.asm | 17 + data/maps/objects/ViridianSchoolHouse.asm | 15 + data/maps/objects/WardensHouse.asm | 17 + data/maps/rest_house_maps.asm | 5 + data/maps/songs.asm | 250 + data/maps/special_warps.asm | 91 + data/maps/sprite_sets.asm | 191 + data/maps/town_map_entries.asm | 118 + data/{ => maps}/town_map_order.asm | 0 data/mart_inventories.asm | 64 - data/mon_party_sprites.asm | 77 - data/moves.asm | 178 - data/moves/animations.asm | 1269 +++++ data/moves/effects_pointers.asm | 88 + data/moves/field_move_names.asm | 10 + data/moves/field_moves.asm | 14 + data/moves/grammar.asm | 74 + data/moves/hm_moves.asm | 10 + data/moves/moves.asm | 178 + text/move_names.asm => data/moves/names.asm | 0 data/moves/sfx.asm | 168 + data/moves/tmhm_moves.asm | 30 + data/player_names.asm | 13 + data/player_names_list.asm | 11 + data/pokedex_entries.asm | 1265 ----- data/pokemon/base_stats.asm | 154 + data/pokemon/base_stats/abra.asm | 24 + data/pokemon/base_stats/aerodactyl.asm | 23 + data/pokemon/base_stats/alakazam.asm | 25 + data/pokemon/base_stats/arbok.asm | 23 + data/pokemon/base_stats/arcanine.asm | 23 + data/pokemon/base_stats/articuno.asm | 23 + data/pokemon/base_stats/beedrill.asm | 23 + data/pokemon/base_stats/bellsprout.asm | 22 + data/pokemon/base_stats/blastoise.asm | 25 + data/pokemon/base_stats/bulbasaur.asm | 22 + data/pokemon/base_stats/butterfree.asm | 23 + data/pokemon/base_stats/caterpie.asm | 20 + data/pokemon/base_stats/chansey.asm | 27 + data/pokemon/base_stats/charizard.asm | 25 + data/pokemon/base_stats/charmander.asm | 24 + data/pokemon/base_stats/charmeleon.asm | 24 + data/pokemon/base_stats/clefable.asm | 26 + data/pokemon/base_stats/clefairy.asm | 26 + data/pokemon/base_stats/cloyster.asm | 24 + data/pokemon/base_stats/cubone.asm | 24 + data/pokemon/base_stats/dewgong.asm | 23 + data/pokemon/base_stats/diglett.asm | 22 + data/pokemon/base_stats/ditto.asm | 20 + data/pokemon/base_stats/dodrio.asm | 23 + data/pokemon/base_stats/doduo.asm | 23 + data/pokemon/base_stats/dragonair.asm | 24 + data/pokemon/base_stats/dragonite.asm | 25 + data/pokemon/base_stats/dratini.asm | 24 + data/pokemon/base_stats/drowzee.asm | 24 + data/pokemon/base_stats/dugtrio.asm | 23 + data/pokemon/base_stats/eevee.asm | 22 + data/pokemon/base_stats/ekans.asm | 23 + data/pokemon/base_stats/electabuzz.asm | 25 + data/pokemon/base_stats/electrode.asm | 23 + data/pokemon/base_stats/exeggcute.asm | 23 + data/pokemon/base_stats/exeggutor.asm | 23 + data/pokemon/base_stats/farfetchd.asm | 23 + data/pokemon/base_stats/fearow.asm | 22 + data/pokemon/base_stats/flareon.asm | 22 + data/pokemon/base_stats/gastly.asm | 22 + data/pokemon/base_stats/gengar.asm | 25 + data/pokemon/base_stats/geodude.asm | 24 + data/pokemon/base_stats/gloom.asm | 22 + data/pokemon/base_stats/golbat.asm | 22 + data/pokemon/base_stats/goldeen.asm | 23 + data/pokemon/base_stats/golduck.asm | 25 + data/pokemon/base_stats/golem.asm | 24 + data/pokemon/base_stats/graveler.asm | 24 + data/pokemon/base_stats/grimer.asm | 22 + data/pokemon/base_stats/growlithe.asm | 23 + data/pokemon/base_stats/gyarados.asm | 24 + data/pokemon/base_stats/haunter.asm | 22 + data/pokemon/base_stats/hitmonchan.asm | 23 + data/pokemon/base_stats/hitmonlee.asm | 23 + data/pokemon/base_stats/horsea.asm | 23 + data/pokemon/base_stats/hypno.asm | 25 + data/pokemon/base_stats/ivysaur.asm | 22 + data/pokemon/base_stats/jigglypuff.asm | 26 + data/pokemon/base_stats/jolteon.asm | 23 + data/pokemon/base_stats/jynx.asm | 25 + data/pokemon/base_stats/kabuto.asm | 23 + data/pokemon/base_stats/kabutops.asm | 24 + data/pokemon/base_stats/kadabra.asm | 24 + data/pokemon/base_stats/kakuna.asm | 20 + data/pokemon/base_stats/kangaskhan.asm | 25 + data/pokemon/base_stats/kingler.asm | 23 + data/pokemon/base_stats/koffing.asm | 22 + data/pokemon/base_stats/krabby.asm | 23 + data/pokemon/base_stats/lapras.asm | 25 + data/pokemon/base_stats/lickitung.asm | 25 + data/pokemon/base_stats/machamp.asm | 24 + data/pokemon/base_stats/machoke.asm | 24 + data/pokemon/base_stats/machop.asm | 24 + data/pokemon/base_stats/magikarp.asm | 20 + data/pokemon/base_stats/magmar.asm | 24 + data/pokemon/base_stats/magnemite.asm | 23 + data/pokemon/base_stats/magneton.asm | 23 + data/pokemon/base_stats/mankey.asm | 24 + data/pokemon/base_stats/marowak.asm | 25 + data/pokemon/base_stats/meowth.asm | 23 + data/pokemon/base_stats/metapod.asm | 20 + data/pokemon/base_stats/mew.asm | 30 + data/pokemon/base_stats/mewtwo.asm | 26 + data/pokemon/base_stats/moltres.asm | 23 + data/pokemon/base_stats/mrmime.asm | 25 + data/pokemon/base_stats/muk.asm | 22 + data/pokemon/base_stats/nidoking.asm | 26 + data/pokemon/base_stats/nidoqueen.asm | 26 + data/pokemon/base_stats/nidoranf.asm | 22 + data/pokemon/base_stats/nidoranm.asm | 23 + data/pokemon/base_stats/nidorina.asm | 23 + data/pokemon/base_stats/nidorino.asm | 23 + data/pokemon/base_stats/ninetales.asm | 23 + data/pokemon/base_stats/oddish.asm | 22 + data/pokemon/base_stats/omanyte.asm | 23 + data/pokemon/base_stats/omastar.asm | 24 + data/pokemon/base_stats/onix.asm | 23 + data/pokemon/base_stats/paras.asm | 23 + data/pokemon/base_stats/parasect.asm | 23 + data/pokemon/base_stats/persian.asm | 23 + data/pokemon/base_stats/pidgeot.asm | 23 + data/pokemon/base_stats/pidgeotto.asm | 22 + data/pokemon/base_stats/pidgey.asm | 22 + data/pokemon/base_stats/pikachu.asm | 24 + data/pokemon/base_stats/pinsir.asm | 23 + data/pokemon/base_stats/poliwag.asm | 23 + data/pokemon/base_stats/poliwhirl.asm | 25 + data/pokemon/base_stats/poliwrath.asm | 25 + data/pokemon/base_stats/ponyta.asm | 22 + data/pokemon/base_stats/porygon.asm | 24 + data/pokemon/base_stats/primeape.asm | 24 + data/pokemon/base_stats/psyduck.asm | 24 + data/pokemon/base_stats/raichu.asm | 24 + data/pokemon/base_stats/rapidash.asm | 23 + data/pokemon/base_stats/raticate.asm | 23 + data/pokemon/base_stats/rattata.asm | 23 + data/pokemon/base_stats/rhydon.asm | 26 + data/pokemon/base_stats/rhyhorn.asm | 23 + data/pokemon/base_stats/sandshrew.asm | 24 + data/pokemon/base_stats/sandslash.asm | 24 + data/pokemon/base_stats/scyther.asm | 22 + data/pokemon/base_stats/seadra.asm | 23 + data/pokemon/base_stats/seaking.asm | 23 + data/pokemon/base_stats/seel.asm | 23 + data/pokemon/base_stats/shellder.asm | 23 + data/pokemon/base_stats/slowbro.asm | 27 + data/pokemon/base_stats/slowpoke.asm | 25 + data/pokemon/base_stats/snorlax.asm | 27 + data/pokemon/base_stats/spearow.asm | 22 + data/pokemon/base_stats/squirtle.asm | 24 + data/pokemon/base_stats/starmie.asm | 25 + data/pokemon/base_stats/staryu.asm | 24 + data/pokemon/base_stats/tangela.asm | 23 + data/pokemon/base_stats/tauros.asm | 24 + data/pokemon/base_stats/tentacool.asm | 23 + data/pokemon/base_stats/tentacruel.asm | 23 + data/pokemon/base_stats/vaporeon.asm | 23 + data/pokemon/base_stats/venomoth.asm | 23 + data/pokemon/base_stats/venonat.asm | 22 + data/pokemon/base_stats/venusaur.asm | 23 + data/pokemon/base_stats/victreebel.asm | 23 + data/pokemon/base_stats/vileplume.asm | 23 + data/pokemon/base_stats/voltorb.asm | 23 + data/pokemon/base_stats/vulpix.asm | 22 + data/pokemon/base_stats/wartortle.asm | 24 + data/pokemon/base_stats/weedle.asm | 20 + data/pokemon/base_stats/weepinbell.asm | 22 + data/pokemon/base_stats/weezing.asm | 22 + data/pokemon/base_stats/wigglytuff.asm | 26 + data/pokemon/base_stats/zapdos.asm | 23 + data/pokemon/base_stats/zubat.asm | 22 + data/pokemon/cries.asm | 197 + data/pokemon/dex_entries.asm | 1259 +++++ .../dex_order.asm} | 0 text/pokedex.asm => data/pokemon/dex_text.asm | 0 data/pokemon/evos_moves.asm | 2161 +++++++ data/pokemon/menu_icons.asm | 77 + data/pokemon/names.asm | 191 + .../palettes.asm} | 0 data/predef_pointers.asm | 111 + data/prize_mon_levels.asm | 8 - data/prizes.asm | 45 - data/{ => sgb}/sgb_border.asm | 4 +- data/{ => sgb}/sgb_packets.asm | 59 +- data/sgb/sgb_palettes.asm | 84 + data/special_warps.asm | 119 - data/sprite_sets.asm | 601 -- data/sprites/facings.asm | 131 + data/sprites/sprites.asm | 90 + data/super_palettes.asm | 481 -- data/super_rod.asm | 33 - data/text/alphabets.asm | 15 + data/text/dakutens.asm | 15 + data/text/text_1.asm | 154 + data/text/text_2.asm | 1322 +++++ data/text/text_3.asm | 637 +++ data/text/text_4.asm | 56 + data/text/text_5.asm | 277 + data/text/text_6.asm | 10 + data/text/text_7.asm | 216 + data/text/text_8.asm | 118 + data/text/text_9.asm | 442 ++ data/text/unused_names.asm | 22 + data/text_boxes.asm | 88 + data/text_predef_pointers.asm | 74 + data/tilemaps.asm | 46 + data/tilesets/bike_riding_tilesets.asm | 7 + data/tilesets/bookshelf_tile_ids.asm | 25 + data/tilesets/collision_tile_ids.asm | 74 + data/tilesets/cut_tree_blocks.asm | 13 + data/tilesets/door_tile_ids.asm | 60 + data/tilesets/dungeon_tilesets.asm | 13 + data/tilesets/escape_rope_tilesets.asm | 7 + data/tilesets/ledge_tiles.asm | 11 + data/tilesets/pair_collision_tile_ids.asm | 24 + data/tilesets/spinner_tiles.asm | 29 + data/{ => tilesets}/tileset_headers.asm | 10 +- data/tilesets/warp_carpet_tile_ids.asm | 25 + data/tilesets/warp_pad_hole_tile_ids.asm | 7 + data/tilesets/warp_tile_ids.asm | 97 + data/tilesets/water_tilesets.asm | 12 + data/tm_prices.asm | 27 - data/tms.asm | 57 - data/town_map_entries.asm | 102 - data/trades.asm | 12 - data/trainer_moves.asm | 160 - data/trainer_parties.asm | 699 --- data/trainer_types.asm | 17 - data/trainers/ai_pointers.asm | 52 + data/trainers/encounter_types.asm | 17 + data/trainers/move_choices.asm | 57 + data/trainers/name_pointers.asm | 71 + data/trainers/names.asm | 48 + data/trainers/parties.asm | 749 +++ data/trainers/pic_pointers_money.asm | 55 + data/trainers/special_moves.asm | 160 + data/type_effects.asm | 89 - data/types/names.asm | 40 + data/types/type_matchups.asm | 85 + data/warp_tile_ids.asm | 89 - data/wild/good_rod.asm | 5 + data/wild/grass_water.asm | 323 ++ data/wild/maps/CeruleanCave1F.asm | 14 + data/wild/maps/CeruleanCave2F.asm | 14 + data/wild/maps/CeruleanCaveB1F.asm | 14 + data/wild/maps/DiglettsCave.asm | 14 + data/wild/maps/MtMoon1F.asm | 14 + data/wild/maps/MtMoonB1F.asm | 14 + data/wild/maps/MtMoonB2F.asm | 14 + data/wild/maps/PokemonMansion1F.asm | 14 + data/wild/maps/PokemonMansion2F.asm | 14 + data/wild/maps/PokemonMansion3F.asm | 14 + data/wild/maps/PokemonMansionB1F.asm | 14 + data/wild/maps/PokemonTower1F.asm | 4 + data/wild/maps/PokemonTower2F.asm | 4 + data/wild/maps/PokemonTower3F.asm | 14 + data/wild/maps/PokemonTower4F.asm | 14 + data/wild/maps/PokemonTower5F.asm | 14 + data/wild/maps/PokemonTower6F.asm | 14 + data/wild/maps/PokemonTower7F.asm | 14 + data/wild/maps/PowerPlant.asm | 14 + data/wild/maps/RockTunnel1F.asm | 14 + data/wild/maps/RockTunnelB1F.asm | 14 + data/wild/maps/Route1.asm | 14 + data/wild/maps/Route10.asm | 14 + data/wild/maps/Route11.asm | 14 + data/wild/maps/Route12.asm | 24 + data/wild/maps/Route13.asm | 24 + data/wild/maps/Route14.asm | 14 + data/wild/maps/Route15.asm | 14 + data/wild/maps/Route16.asm | 14 + data/wild/maps/Route17.asm | 14 + data/wild/maps/Route18.asm | 14 + data/wild/maps/Route19.asm | 14 + data/wild/maps/Route2.asm | 14 + .../route20.asm => wild/maps/Route20.asm} | 0 data/wild/maps/Route21.asm | 24 + data/wild/maps/Route22.asm | 14 + data/wild/maps/Route23.asm | 14 + data/wild/maps/Route24.asm | 14 + data/wild/maps/Route25.asm | 14 + data/wild/maps/Route3.asm | 14 + data/wild/maps/Route4.asm | 14 + data/wild/maps/Route5.asm | 14 + data/wild/maps/Route6.asm | 24 + data/wild/maps/Route7.asm | 14 + data/wild/maps/Route8.asm | 14 + data/wild/maps/Route9.asm | 14 + data/wild/maps/SafariZoneCenter.asm | 14 + data/wild/maps/SafariZoneEast.asm | 14 + data/wild/maps/SafariZoneNorth.asm | 14 + data/wild/maps/SafariZoneWest.asm | 14 + data/wild/maps/SeafoamIslands1F.asm | 14 + data/wild/maps/SeafoamIslandsB1F.asm | 14 + data/wild/maps/SeafoamIslandsB2F.asm | 14 + data/wild/maps/SeafoamIslandsB3F.asm | 24 + data/wild/maps/SeafoamIslandsB4F.asm | 24 + data/wild/maps/VictoryRoad1F.asm | 14 + data/wild/maps/VictoryRoad2F.asm | 14 + data/wild/maps/VictoryRoad3F.asm | 14 + data/wild/maps/ViridianForest.asm | 14 + data/wild/maps/nothing.asm | 4 + data/wild/probabilities.asm | 15 + data/wild/super_rod.asm | 33 + data/wildPokemon/ceruleancave1.asm | 14 - data/wildPokemon/ceruleancave2.asm | 14 - data/wildPokemon/ceruleancaveb1.asm | 14 - data/wildPokemon/diglettscave.asm | 14 - data/wildPokemon/mansion1.asm | 14 - data/wildPokemon/mansion2.asm | 14 - data/wildPokemon/mansion3.asm | 14 - data/wildPokemon/mansionb1.asm | 13 - data/wildPokemon/mtmoon1.asm | 14 - data/wildPokemon/mtmoonb1.asm | 14 - data/wildPokemon/mtmoonb2.asm | 14 - data/wildPokemon/nomons.asm | 4 - data/wildPokemon/pokemontower1.asm | 4 - data/wildPokemon/pokemontower2.asm | 4 - data/wildPokemon/pokemontower3.asm | 14 - data/wildPokemon/pokemontower4.asm | 14 - data/wildPokemon/pokemontower5.asm | 14 - data/wildPokemon/pokemontower6.asm | 14 - data/wildPokemon/pokemontower7.asm | 14 - data/wildPokemon/powerplant.asm | 13 - data/wildPokemon/rocktunnel1.asm | 14 - data/wildPokemon/rocktunnel2.asm | 14 - data/wildPokemon/route1.asm | 14 - data/wildPokemon/route10.asm | 14 - data/wildPokemon/route11.asm | 14 - data/wildPokemon/route12.asm | 25 - data/wildPokemon/route13.asm | 25 - data/wildPokemon/route14.asm | 14 - data/wildPokemon/route15.asm | 14 - data/wildPokemon/route16.asm | 14 - data/wildPokemon/route17.asm | 14 - data/wildPokemon/route18.asm | 14 - data/wildPokemon/route19.asm | 15 - data/wildPokemon/route2.asm | 14 - data/wildPokemon/route21.asm | 25 - data/wildPokemon/route22.asm | 14 - data/wildPokemon/route23.asm | 14 - data/wildPokemon/route24.asm | 14 - data/wildPokemon/route25.asm | 14 - data/wildPokemon/route3.asm | 14 - data/wildPokemon/route4.asm | 14 - data/wildPokemon/route5.asm | 14 - data/wildPokemon/route6.asm | 25 - data/wildPokemon/route7.asm | 14 - data/wildPokemon/route8.asm | 14 - data/wildPokemon/route9.asm | 14 - data/wildPokemon/safarizone1.asm | 14 - data/wildPokemon/safarizone2.asm | 14 - data/wildPokemon/safarizone3.asm | 14 - data/wildPokemon/safarizonecenter.asm | 14 - data/wildPokemon/seafoamisland1.asm | 14 - data/wildPokemon/seafoamislandb1.asm | 14 - data/wildPokemon/seafoamislandb2.asm | 14 - data/wildPokemon/seafoamislandb3.asm | 25 - data/wildPokemon/seafoamislandb4.asm | 25 - data/wildPokemon/victoryroad1.asm | 14 - data/wildPokemon/victoryroad2.asm | 14 - data/wildPokemon/victoryroad3.asm | 14 - data/wildPokemon/viridianforest.asm | 14 - data/wild_mons.asm | 323 -- data/yes_no_menu_strings.asm | 44 + docs/bugs_and_glitches.md | 2 +- engine/HoF_room_pc.asm | 323 -- engine/bank3c.asm | 24 +- engine/bank3d.asm | 72 +- engine/bank3f.asm | 10 +- engine/battle/animations.asm | 794 +-- engine/battle/bank3d_battle.asm | 111 +- engine/battle/battle_transitions.asm | 263 +- engine/battle/common_text.asm | 110 +- engine/battle/core.asm | 2840 ++-------- engine/battle/decrement_pp.asm | 2 +- engine/battle/display_effectiveness.asm | 8 +- engine/battle/draw_hud_pokeball_gfx.asm | 8 +- engine/battle/effects.asm | 1551 +++++ engine/battle/end_of_battle.asm | 10 +- engine/battle/experience.asm | 64 +- engine/battle/get_trainer_name.asm | 8 +- engine/battle/ghost_marowak_anim.asm | 20 +- engine/battle/init_battle_variables.asm | 4 +- engine/battle/link_battle_versus_text.asm | 10 +- engine/battle/{bank_e_misc.asm => misc.asm} | 0 .../battle/moveEffects/conversion_effect.asm | 35 - engine/battle/moveEffects/drain_hp_effect.asm | 104 - .../moveEffects/focus_energy_effect.asm | 22 - engine/battle/moveEffects/haze_effect.asm | 81 - engine/battle/moveEffects/heal_effect.asm | 120 - .../battle/moveEffects/leech_seed_effect.asm | 40 - engine/battle/moveEffects/mist_effect.asm | 19 - .../battle/moveEffects/one_hit_ko_effect.asm | 38 - engine/battle/moveEffects/paralyze_effect.asm | 47 - engine/battle/moveEffects/pay_day_effect.asm | 45 - engine/battle/moveEffects/recoil_effect.asm | 70 - .../reflect_light_screen_effect.asm | 45 - .../battle/moveEffects/substitute_effect.asm | 77 - .../battle/moveEffects/transform_effect.asm | 141 - engine/battle/move_effects/conversion.asm | 35 + engine/battle/move_effects/drain_hp.asm | 104 + engine/battle/move_effects/focus_energy.asm | 22 + engine/battle/move_effects/haze.asm | 81 + engine/battle/move_effects/heal.asm | 120 + engine/battle/move_effects/leech_seed.asm | 40 + engine/battle/move_effects/mist.asm | 19 + engine/battle/move_effects/one_hit_ko.asm | 38 + engine/battle/move_effects/paralyze.asm | 47 + engine/battle/move_effects/pay_day.asm | 45 + engine/battle/move_effects/recoil.asm | 70 + .../move_effects/reflect_light_screen.asm | 45 + engine/battle/move_effects/substitute.asm | 77 + engine/battle/move_effects/transform.asm | 141 + engine/battle/print_type.asm | 2 +- engine/battle/read_trainer_party.asm | 2 +- engine/battle/safari_zone.asm | 8 +- engine/battle/save_trainer_name.asm | 95 +- engine/battle/scale_sprites.asm | 30 +- engine/battle/scroll_draw_trainer_pic.asm | 4 +- engine/battle/trainer_ai.asm | 157 +- engine/battle/trainer_pic_money_pointers.asm | 143 - engine/battle/unused_stats_functions.asm | 4 +- engine/battle/wild_encounters.asm | 32 +- engine/bcd.asm | 218 - engine/bg_map_attributes.asm | 40 +- engine/black_out.asm | 48 - engine/debug/debug_menu.asm | 46 + engine/debug/debug_party.asm | 24 + engine/debug1.asm | 24 - engine/diploma_3a.asm | 46 +- engine/display_text_id_init.asm | 75 - engine/events/black_out.asm | 48 + engine/events/card_key.asm | 102 + engine/{overworld => events}/cinnabar_lab.asm | 34 +- engine/{menu => events}/diploma.asm | 4 +- engine/{ => events}/display_pokedex.asm | 2 +- engine/events/elevator.asm | 54 + engine/{ => events}/give_pokemon.asm | 26 +- engine/{ => events}/heal_party.asm | 0 engine/{overworld => events}/hidden_items.asm | 54 +- engine/events/hidden_objects/bench_guys.asm | 98 + .../events/hidden_objects/bills_house_pc.asm | 131 + engine/events/hidden_objects/blues_room.asm | 13 + .../hidden_objects/book_or_sculpture.asm | 21 + engine/events/hidden_objects/bookshelves.asm | 39 + .../hidden_objects/cinnabar_gym_quiz.asm | 246 + engine/events/hidden_objects/elevator.asm | 3 + .../hidden_objects/fanclub_pictures.asm | 23 + .../events/hidden_objects/fighting_dojo.asm | 23 + engine/events/hidden_objects/gym_statues.asm | 39 + .../hidden_objects/indigo_plateau_hq.asm | 10 + .../hidden_objects/indigo_plateau_statues.asm | 24 + engine/events/hidden_objects/magazines.asm | 8 + .../events/hidden_objects/museum_fossils.asm | 23 + .../events/hidden_objects/museum_fossils2.asm | 28 + engine/events/hidden_objects/new_bike.asm | 7 + .../events/hidden_objects/oaks_lab_email.asm | 11 + .../hidden_objects/oaks_lab_posters.asm | 29 + .../events/hidden_objects/pokecenter_pc.asm | 11 + .../events/hidden_objects/pokemon_stuff.asm | 3 + engine/events/hidden_objects/reds_room.asm | 14 + .../hidden_objects/route_15_binoculars.asm | 17 + engine/events/hidden_objects/safari_game.asm | 78 + .../hidden_objects/school_blackboard.asm | 223 + .../hidden_objects/school_notebooks.asm | 65 + engine/events/hidden_objects/town_map.asm | 22 + .../hidden_objects/vermilion_gym_trash.asm | 134 + engine/{ => events}/in_game_trades.asm | 114 +- engine/events/oaks_aide.asm | 71 + engine/{overworld => events}/pewter_guys.asm | 0 engine/events/pick_up_item.asm | 54 + engine/{overworld => events}/poison.asm | 8 +- engine/events/pokecenter.asm | 149 + engine/events/pokedex_rating.asm | 138 + engine/{overworld => events}/pokemart.asm | 58 +- engine/{menu => events}/prize_menu.asm | 90 +- engine/events/saffron_guards.asm | 15 + engine/events/set_blackout_map.asm | 25 + engine/events/starter_dex.asm | 9 + engine/{menu => events}/vending_machine.asm | 52 +- engine/evos_moves.asm | 668 --- engine/experience.asm | 160 - engine/game_corner_slots.asm | 54 - engine/game_corner_slots2.asm | 31 - engine/gamefreak.asm | 263 - engine/{ => gfx}/hp_bar.asm | 16 +- engine/{ => gfx}/load_pokedex_tiles.asm | 6 +- engine/gfx/mon_icons.asm | 307 + engine/gfx/oam_dma.asm | 28 + engine/gfx/palettes.asm | 1117 ++++ engine/gfx/screen_effects.asm | 73 + engine/gfx/sprite_oam.asm | 232 + engine/hidden_object_functions14.asm | 100 - engine/hidden_object_functions17.asm | 466 -- engine/hidden_object_functions18.asm | 204 - engine/hidden_object_functions3.asm | 153 - engine/hidden_object_functions7.asm | 510 -- engine/{ => items}/get_bag_item_quantity.asm | 0 engine/items/inventory.asm | 8 +- engine/items/item_effects.asm | 3186 +++++++++++ engine/items/items.asm | 3235 ----------- engine/{ => items}/subtract_paid_money.asm | 4 +- engine/items/tm_prices.asm | 14 +- engine/items/tmhm.asm | 4 +- engine/items/tms.asm | 2 +- engine/items/town_map.asm | 629 +++ engine/joypad.asm | 52 +- engine/{ => link}/cable_club.asm | 120 +- engine/{overworld => link}/cable_club_npc.asm | 60 +- engine/{ => link}/print_waiting_text.asm | 6 +- engine/math/bcd.asm | 218 + engine/math/multiply_divide.asm | 143 + engine/math/random.asm | 13 + engine/menu/link_menu.asm | 910 --- engine/menu/oaks_pc.asm | 28 - engine/menu/party_menu.asm | 333 -- engine/menu/text_box.asm | 739 --- engine/menus/display_text_id_init.asm | 76 + engine/{menu => menus}/draw_badges.asm | 14 +- engine/{menu => menus}/draw_start_menu.asm | 10 +- engine/{menu => menus}/league_pc.asm | 24 +- engine/menus/link_menu.asm | 910 +++ engine/{menu => menus}/main_menu.asm | 67 +- engine/{menu => menus}/naming_screen.asm | 76 +- engine/menus/oaks_pc.asm | 28 + engine/{menu => menus}/options.asm | 40 +- engine/menus/party_menu.asm | 314 ++ engine/{menu => menus}/pc.asm | 40 +- engine/{menu => menus}/players_pc.asm | 62 +- engine/{menu => menus}/pokedex.asm | 160 +- engine/{ => menus}/save.asm | 76 +- engine/{menu => menus}/start_sub_menus.asm | 210 +- engine/{menu => menus}/swap_items.asm | 10 +- engine/menus/text_box.asm | 533 ++ engine/mon_party_sprites.asm | 445 -- engine/movie/credits.asm | 322 ++ engine/{ => movie}/evolution.asm | 18 +- engine/{ => movie}/hall_of_fame.asm | 74 +- engine/{ => movie}/intro.asm | 41 +- engine/{ => movie/oak_speech}/clear_save.asm | 8 +- .../oak_speech}/init_player_data.asm | 8 +- engine/{ => movie/oak_speech}/oak_speech.asm | 64 +- engine/{ => movie/oak_speech}/oak_speech2.asm | 76 +- engine/movie/splash.asm | 259 + engine/movie/title.asm | 370 ++ engine/movie/title2.asm | 122 + engine/movie/trade.asm | 859 +++ engine/{ => movie}/trade2.asm | 25 +- engine/multiply_divide.asm | 144 - engine/oam_dma.asm | 26 - engine/overworld/advance_player_sprite.asm | 247 +- engine/overworld/auto_movement.asm | 270 + engine/overworld/card_key.asm | 113 - engine/overworld/clear_variables.asm | 16 +- engine/overworld/cut.asm | 66 +- engine/overworld/cut2.asm | 8 +- engine/overworld/doors.asm | 55 +- engine/overworld/dungeon_warps.asm | 2 +- engine/overworld/dust_smoke.asm | 95 + engine/overworld/elevator.asm | 10 +- engine/overworld/emotion_bubbles.asm | 19 +- engine/overworld/field_move_messages.asm | 23 +- engine/overworld/healing_machine.asm | 43 +- engine/overworld/hidden_objects.asm | 20 +- engine/overworld/item.asm | 54 - engine/overworld/ledges.asm | 26 +- engine/overworld/map_sprite_functions1.asm | 390 -- engine/overworld/map_sprites.asm | 32 +- engine/overworld/missable_objects.asm | 36 +- engine/overworld/movement.asm | 459 +- engine/overworld/npc_movement.asm | 270 - engine/overworld/npc_movement_2.asm | 14 +- engine/overworld/oaks_aide.asm | 71 - engine/overworld/oam.asm | 232 - engine/overworld/pathfinding.asm | 201 + engine/overworld/player_animations.asm | 118 +- engine/overworld/player_state.asm | 122 +- engine/overworld/pokecenter.asm | 149 - engine/overworld/push_boulder.asm | 34 +- engine/overworld/saffron_guards.asm | 16 - engine/overworld/set_blackout_map.asm | 29 - engine/overworld/special_warps.asm | 149 + engine/overworld/spinners.asm | 65 + engine/overworld/sprite_collisions.asm | 392 ++ engine/overworld/ssanne.asm | 95 - engine/overworld/tileset_header.asm | 51 - engine/overworld/tilesets.asm | 51 + engine/overworld/trainer_sight.asm | 349 ++ engine/overworld/trainers.asm | 349 -- engine/overworld/update_map.asm | 32 +- engine/overworld/wild_mons.asm | 10 +- engine/palettes.asm | 1116 ---- engine/pathfinding.asm | 201 - engine/pikachu_emotions.asm | 26 +- engine/pikachu_follow.asm | 16 +- engine/pikachu_movement.asm | 8 +- engine/pikachu_pcm.asm | 38 +- engine/pikachu_pic_animation.asm | 38 +- engine/pokedex_rating.asm | 154 - engine/{ => pokemon}/add_mon.asm | 32 +- engine/{menu => pokemon}/bills_pc.asm | 157 +- engine/pokemon/evos_moves.asm | 668 +++ engine/pokemon/experience.asm | 149 + engine/{ => pokemon}/learn_move.asm | 64 +- engine/{ => pokemon}/load_mon_data.asm | 2 +- engine/pokemon/remove_mon.asm | 95 + .../set_types.asm} | 0 engine/{ => pokemon}/status_ailments.asm | 2 +- engine/{menu => pokemon}/status_screen.asm | 151 +- engine/predefs.asm | 113 +- engine/predefs17.asm | 9 - engine/predefs7.asm | 54 - engine/predefsA.asm | 73 - engine/printer.asm | 208 +- engine/printer/serial.asm | 24 +- engine/random.asm | 13 - engine/remove_pokemon.asm | 95 - engine/slots/game_corner_slots.asm | 54 + engine/slots/game_corner_slots2.asm | 31 + engine/{ => slots}/slot_machine.asm | 109 +- engine/special_warps.asm | 149 - engine/surfing_minigame.asm | 218 +- engine/test_battle.asm | 45 - engine/titlescreen.asm | 370 -- engine/titlescreen2.asm | 122 - engine/town_map.asm | 628 --- engine/trade.asm | 857 --- engine/unknown_ea3ea.asm | 66 +- engine/vermilion_gym_trash_cans.asm | 2 +- engine/yellow_intro.asm | 164 +- gfx/attack_anim_1.png | Bin 1042 -> 0 bytes gfx/attack_anim_2.png | Bin 999 -> 0 bytes gfx/battle/attack_anim_1.png | Bin 0 -> 977 bytes gfx/battle/attack_anim_2.png | Bin 0 -> 936 bytes gfx/battle/balls.png | Bin 0 -> 115 bytes gfx/battle/battle_hud_1.png | Bin 0 -> 102 bytes gfx/battle/battle_hud_2.png | Bin 0 -> 88 bytes gfx/battle/battle_hud_3.png | Bin 0 -> 93 bytes {pic/other => gfx/battle}/ghost.png | Bin .../minimize.png} | Bin {pic/trainer => gfx/battle}/oldman.png | Bin {pic/ytrainer => gfx/battle}/prof.oakb.png | Bin gfx/battle_hud1.png | Bin 94 -> 0 bytes gfx/battle_hud2.png | Bin 79 -> 0 bytes gfx/battle_hud3.png | Bin 88 -> 0 bytes gfx/{theend.png => credits/the_end.png} | Bin gfx/emotes/bolt.png | Bin 0 -> 126 bytes gfx/emotes/fish.png | Bin 0 -> 123 bytes gfx/emotes/happy.png | Bin 0 -> 125 bytes gfx/emotes/heart.png | Bin 0 -> 133 bytes gfx/emotes/question.png | Bin 0 -> 126 bytes gfx/emotes/shock.png | Bin 0 -> 110 bytes gfx/emotes/skull.png | Bin 0 -> 127 bytes gfx/emotes/zzz.png | Bin 0 -> 123 bytes gfx/emotion_bubbles.png | Bin 269 -> 0 bytes gfx/fishing.asm | 4 + gfx/font.asm | 33 + gfx/{ => font}/AB.png | Bin gfx/{ED_tile.png => font/ED.png} | Bin gfx/{p_tile.png => font/P.png} | Bin gfx/{ => font}/font.png | Bin gfx/font/font_battle_extra.png | Bin 0 -> 252 bytes gfx/font/font_extra.png | Bin 0 -> 283 bytes gfx/hp_bar_and_status.png | Bin 262 -> 0 bytes gfx/icons/bug.png | Bin 0 -> 131 bytes gfx/icons/plant.png | Bin 0 -> 140 bytes gfx/icons/quadruped.png | Bin 0 -> 129 bytes gfx/icons/snake.png | Bin 0 -> 123 bytes gfx/intro/gengar_1.tilemap | Bin 0 -> 49 bytes gfx/intro/gengar_2.tilemap | Bin 0 -> 49 bytes gfx/intro/gengar_3.tilemap | Bin 0 -> 49 bytes gfx/mon_ow_sprites.png | Bin 324 -> 0 bytes gfx/{ => overworld}/battle_transition.png | Bin .../fishing_rod.png} | Bin .../heal_machine.png} | Bin .../red_fish_back.png} | Bin .../red_fish_front.png} | Bin .../red_fish_side.png} | Bin .../shadow.png} | Bin .../smoke.png} | Bin gfx/overworld/spinners.png | Bin 0 -> 128 bytes gfx/pics.asm | 376 ++ gfx/player.asm | 3 + {pic/trainer => gfx/player}/red.png | Bin {pic/trainer => gfx/player}/redb.png | Bin {pic/trainer => gfx/player}/shrink1.png | Bin {pic/trainer => gfx/player}/shrink2.png | Bin {pic/ytrainer => gfx/player/yellow}/red.png | Bin gfx/pokeball.png | Bin 124 -> 0 bytes gfx/{ => pokedex}/pokedex.png | Bin {pic/monback => gfx/pokemon/back}/abrab.png | Bin .../pokemon/back}/aerodactylb.png | Bin .../pokemon/back}/alakazamb.png | Bin {pic/monback => gfx/pokemon/back}/arbokb.png | Bin .../pokemon/back}/arcanineb.png | Bin .../pokemon/back}/articunob.png | Bin .../pokemon/back}/beedrillb.png | Bin .../pokemon/back}/bellsproutb.png | Bin .../pokemon/back}/blastoiseb.png | Bin .../pokemon/back}/bulbasaurb.png | Bin .../pokemon/back}/butterfreeb.png | Bin .../pokemon/back}/caterpieb.png | Bin .../monback => gfx/pokemon/back}/chanseyb.png | Bin .../pokemon/back}/charizardb.png | Bin .../pokemon/back}/charmanderb.png | Bin .../pokemon/back}/charmeleonb.png | Bin .../pokemon/back}/clefableb.png | Bin .../pokemon/back}/clefairyb.png | Bin .../pokemon/back}/cloysterb.png | Bin {pic/monback => gfx/pokemon/back}/cuboneb.png | Bin .../monback => gfx/pokemon/back}/dewgongb.png | Bin .../monback => gfx/pokemon/back}/diglettb.png | Bin {pic/monback => gfx/pokemon/back}/dittob.png | Bin {pic/monback => gfx/pokemon/back}/dodriob.png | Bin {pic/monback => gfx/pokemon/back}/doduob.png | Bin .../pokemon/back}/dragonairb.png | Bin .../pokemon/back}/dragoniteb.png | Bin .../monback => gfx/pokemon/back}/dratinib.png | Bin .../monback => gfx/pokemon/back}/drowzeeb.png | Bin .../monback => gfx/pokemon/back}/dugtriob.png | Bin {pic/monback => gfx/pokemon/back}/eeveeb.png | Bin {pic/monback => gfx/pokemon/back}/ekansb.png | Bin .../pokemon/back}/electabuzzb.png | Bin .../pokemon/back}/electrodeb.png | Bin .../pokemon/back}/exeggcuteb.png | Bin .../pokemon/back}/exeggutorb.png | Bin .../pokemon/back}/farfetchdb.png | Bin {pic/monback => gfx/pokemon/back}/fearowb.png | Bin .../monback => gfx/pokemon/back}/flareonb.png | Bin {pic/monback => gfx/pokemon/back}/gastlyb.png | Bin {pic/monback => gfx/pokemon/back}/gengarb.png | Bin .../monback => gfx/pokemon/back}/geodudeb.png | Bin {pic/monback => gfx/pokemon/back}/gloomb.png | Bin {pic/monback => gfx/pokemon/back}/golbatb.png | Bin .../monback => gfx/pokemon/back}/goldeenb.png | Bin .../monback => gfx/pokemon/back}/golduckb.png | Bin {pic/monback => gfx/pokemon/back}/golemb.png | Bin .../pokemon/back}/gravelerb.png | Bin {pic/monback => gfx/pokemon/back}/grimerb.png | Bin .../pokemon/back}/growlitheb.png | Bin .../pokemon/back}/gyaradosb.png | Bin .../monback => gfx/pokemon/back}/haunterb.png | Bin .../pokemon/back}/hitmonchanb.png | Bin .../pokemon/back}/hitmonleeb.png | Bin {pic/monback => gfx/pokemon/back}/horseab.png | Bin {pic/monback => gfx/pokemon/back}/hypnob.png | Bin .../monback => gfx/pokemon/back}/ivysaurb.png | Bin .../pokemon/back}/jigglypuffb.png | Bin .../monback => gfx/pokemon/back}/jolteonb.png | Bin {pic/monback => gfx/pokemon/back}/jynxb.png | Bin {pic/monback => gfx/pokemon/back}/kabutob.png | Bin .../pokemon/back}/kabutopsb.png | Bin .../monback => gfx/pokemon/back}/kadabrab.png | Bin {pic/monback => gfx/pokemon/back}/kakunab.png | Bin .../pokemon/back}/kangaskhanb.png | Bin .../monback => gfx/pokemon/back}/kinglerb.png | Bin .../monback => gfx/pokemon/back}/koffingb.png | Bin {pic/monback => gfx/pokemon/back}/krabbyb.png | Bin {pic/monback => gfx/pokemon/back}/laprasb.png | Bin .../pokemon/back}/lickitungb.png | Bin .../monback => gfx/pokemon/back}/machampb.png | Bin .../monback => gfx/pokemon/back}/machokeb.png | Bin {pic/monback => gfx/pokemon/back}/machopb.png | Bin .../pokemon/back}/magikarpb.png | Bin {pic/monback => gfx/pokemon/back}/magmarb.png | Bin .../pokemon/back}/magnemiteb.png | Bin .../pokemon/back}/magnetonb.png | Bin {pic/monback => gfx/pokemon/back}/mankeyb.png | Bin .../monback => gfx/pokemon/back}/marowakb.png | Bin {pic/monback => gfx/pokemon/back}/meowthb.png | Bin .../monback => gfx/pokemon/back}/metapodb.png | Bin {pic/monback => gfx/pokemon/back}/mewb.png | Bin {pic/monback => gfx/pokemon/back}/mewtwob.png | Bin .../monback => gfx/pokemon/back}/moltresb.png | Bin .../monback => gfx/pokemon/back}/mr.mimeb.png | Bin {pic/monback => gfx/pokemon/back}/mukb.png | Bin .../pokemon/back}/nidokingb.png | Bin .../pokemon/back}/nidoqueenb.png | Bin .../pokemon/back}/nidoranfb.png | Bin .../pokemon/back}/nidoranmb.png | Bin .../pokemon/back}/nidorinab.png | Bin .../pokemon/back}/nidorinob.png | Bin .../pokemon/back}/ninetalesb.png | Bin {pic/monback => gfx/pokemon/back}/oddishb.png | Bin .../monback => gfx/pokemon/back}/omanyteb.png | Bin .../monback => gfx/pokemon/back}/omastarb.png | Bin {pic/monback => gfx/pokemon/back}/onixb.png | Bin {pic/monback => gfx/pokemon/back}/parasb.png | Bin .../pokemon/back}/parasectb.png | Bin .../monback => gfx/pokemon/back}/persianb.png | Bin .../monback => gfx/pokemon/back}/pidgeotb.png | Bin .../pokemon/back}/pidgeottob.png | Bin {pic/monback => gfx/pokemon/back}/pidgeyb.png | Bin .../monback => gfx/pokemon/back}/pikachub.png | Bin {pic/monback => gfx/pokemon/back}/pinsirb.png | Bin .../monback => gfx/pokemon/back}/poliwagb.png | Bin .../pokemon/back}/poliwhirlb.png | Bin .../pokemon/back}/poliwrathb.png | Bin {pic/monback => gfx/pokemon/back}/ponytab.png | Bin .../monback => gfx/pokemon/back}/porygonb.png | Bin .../pokemon/back}/primeapeb.png | Bin .../monback => gfx/pokemon/back}/psyduckb.png | Bin {pic/monback => gfx/pokemon/back}/raichub.png | Bin .../pokemon/back}/rapidashb.png | Bin .../pokemon/back}/raticateb.png | Bin .../monback => gfx/pokemon/back}/rattatab.png | Bin {pic/monback => gfx/pokemon/back}/rhydonb.png | Bin .../monback => gfx/pokemon/back}/rhyhornb.png | Bin .../pokemon/back}/sandshrewb.png | Bin .../pokemon/back}/sandslashb.png | Bin .../monback => gfx/pokemon/back}/scytherb.png | Bin {pic/monback => gfx/pokemon/back}/seadrab.png | Bin .../monback => gfx/pokemon/back}/seakingb.png | Bin {pic/monback => gfx/pokemon/back}/seelb.png | Bin .../pokemon/back}/shellderb.png | Bin .../monback => gfx/pokemon/back}/slowbrob.png | Bin .../pokemon/back}/slowpokeb.png | Bin .../monback => gfx/pokemon/back}/snorlaxb.png | Bin .../monback => gfx/pokemon/back}/spearowb.png | Bin .../pokemon/back}/squirtleb.png | Bin .../monback => gfx/pokemon/back}/starmieb.png | Bin {pic/monback => gfx/pokemon/back}/staryub.png | Bin .../monback => gfx/pokemon/back}/tangelab.png | Bin {pic/monback => gfx/pokemon/back}/taurosb.png | Bin .../pokemon/back}/tentacoolb.png | Bin .../pokemon/back}/tentacruelb.png | Bin .../pokemon/back}/vaporeonb.png | Bin .../pokemon/back}/venomothb.png | Bin .../monback => gfx/pokemon/back}/venonatb.png | Bin .../pokemon/back}/venusaurb.png | Bin .../pokemon/back}/victreebelb.png | Bin .../pokemon/back}/vileplumeb.png | Bin .../monback => gfx/pokemon/back}/voltorbb.png | Bin {pic/monback => gfx/pokemon/back}/vulpixb.png | Bin .../pokemon/back}/wartortleb.png | Bin {pic/monback => gfx/pokemon/back}/weedleb.png | Bin .../pokemon/back}/weepinbellb.png | Bin .../monback => gfx/pokemon/back}/weezingb.png | Bin .../pokemon/back}/wigglytuffb.png | Bin {pic/monback => gfx/pokemon/back}/zapdosb.png | Bin {pic/monback => gfx/pokemon/back}/zubatb.png | Bin gfx/pokemon/downscaled_3x3.tilemap | 1 + gfx/pokemon/downscaled_5x5.tilemap | 1 + gfx/pokemon/front.tilemap | Bin 0 -> 49 bytes gfx/pokemon/front/abra.png | Bin 0 -> 390 bytes gfx/pokemon/front/aerodactyl.png | Bin 0 -> 583 bytes gfx/pokemon/front/alakazam.png | Bin 0 -> 688 bytes gfx/pokemon/front/arbok.png | Bin 0 -> 728 bytes gfx/pokemon/front/arcanine.png | Bin 0 -> 722 bytes gfx/pokemon/front/articuno.png | Bin 0 -> 705 bytes gfx/pokemon/front/beedrill.png | Bin 0 -> 666 bytes gfx/pokemon/front/bellsprout.png | Bin 0 -> 313 bytes gfx/pokemon/front/blastoise.png | Bin 0 -> 685 bytes gfx/pokemon/front/bulbasaur.png | Bin 0 -> 362 bytes gfx/pokemon/front/butterfree.png | Bin 0 -> 628 bytes gfx/pokemon/front/caterpie.png | Bin 0 -> 243 bytes gfx/pokemon/front/chansey.png | Bin 0 -> 496 bytes gfx/pokemon/front/charizard.png | Bin 0 -> 676 bytes gfx/pokemon/front/charmander.png | Bin 0 -> 394 bytes gfx/pokemon/front/charmeleon.png | Bin 0 -> 461 bytes gfx/pokemon/front/clefable.png | Bin 0 -> 425 bytes gfx/pokemon/front/clefairy.png | Bin 0 -> 375 bytes gfx/pokemon/front/cloyster.png | Bin 0 -> 690 bytes gfx/pokemon/front/cubone.png | Bin 0 -> 360 bytes gfx/pokemon/front/dewgong.png | Bin 0 -> 460 bytes gfx/pokemon/front/diglett.png | Bin 0 -> 314 bytes gfx/pokemon/front/ditto.png | Bin 0 -> 275 bytes gfx/pokemon/front/dodrio.png | Bin 0 -> 592 bytes gfx/pokemon/front/doduo.png | Bin 0 -> 348 bytes gfx/pokemon/front/dragonair.png | Bin 0 -> 459 bytes gfx/pokemon/front/dragonite.png | Bin 0 -> 638 bytes gfx/pokemon/front/dratini.png | Bin 0 -> 357 bytes gfx/pokemon/front/drowzee.png | Bin 0 -> 499 bytes gfx/pokemon/front/dugtrio.png | Bin 0 -> 565 bytes gfx/pokemon/front/eevee.png | Bin 0 -> 374 bytes gfx/pokemon/front/ekans.png | Bin 0 -> 376 bytes gfx/pokemon/front/electabuzz.png | Bin 0 -> 515 bytes gfx/pokemon/front/electrode.png | Bin 0 -> 323 bytes gfx/pokemon/front/exeggcute.png | Bin 0 -> 664 bytes gfx/pokemon/front/exeggutor.png | Bin 0 -> 713 bytes gfx/pokemon/front/farfetchd.png | Bin 0 -> 614 bytes gfx/pokemon/front/fearow.png | Bin 0 -> 564 bytes gfx/pokemon/front/flareon.png | Bin 0 -> 515 bytes .../pokemon/front}/fossilaerodactyl.png | Bin .../pokemon/front}/fossilkabutops.png | Bin gfx/pokemon/front/gastly.png | Bin 0 -> 668 bytes gfx/pokemon/front/gengar.png | Bin 0 -> 447 bytes gfx/pokemon/front/geodude.png | Bin 0 -> 321 bytes gfx/pokemon/front/gloom.png | Bin 0 -> 429 bytes gfx/pokemon/front/golbat.png | Bin 0 -> 691 bytes gfx/pokemon/front/goldeen.png | Bin 0 -> 415 bytes gfx/pokemon/front/golduck.png | Bin 0 -> 596 bytes gfx/pokemon/front/golem.png | Bin 0 -> 519 bytes gfx/pokemon/front/graveler.png | Bin 0 -> 568 bytes gfx/pokemon/front/grimer.png | Bin 0 -> 441 bytes gfx/pokemon/front/growlithe.png | Bin 0 -> 388 bytes gfx/pokemon/front/gyarados.png | Bin 0 -> 759 bytes gfx/pokemon/front/haunter.png | Bin 0 -> 555 bytes gfx/pokemon/front/hitmonchan.png | Bin 0 -> 538 bytes gfx/pokemon/front/hitmonlee.png | Bin 0 -> 587 bytes gfx/pokemon/front/horsea.png | Bin 0 -> 291 bytes gfx/pokemon/front/hypno.png | Bin 0 -> 638 bytes gfx/pokemon/front/ivysaur.png | Bin 0 -> 431 bytes gfx/pokemon/front/jigglypuff.png | Bin 0 -> 348 bytes gfx/pokemon/front/jolteon.png | Bin 0 -> 514 bytes gfx/pokemon/front/jynx.png | Bin 0 -> 578 bytes gfx/pokemon/front/kabuto.png | Bin 0 -> 326 bytes gfx/pokemon/front/kabutops.png | Bin 0 -> 560 bytes gfx/pokemon/front/kadabra.png | Bin 0 -> 523 bytes gfx/pokemon/front/kakuna.png | Bin 0 -> 316 bytes gfx/pokemon/front/kangaskhan.png | Bin 0 -> 673 bytes gfx/pokemon/front/kingler.png | Bin 0 -> 616 bytes gfx/pokemon/front/koffing.png | Bin 0 -> 599 bytes gfx/pokemon/front/krabby.png | Bin 0 -> 436 bytes gfx/pokemon/front/lapras.png | Bin 0 -> 574 bytes gfx/pokemon/front/lickitung.png | Bin 0 -> 514 bytes gfx/pokemon/front/machamp.png | Bin 0 -> 653 bytes gfx/pokemon/front/machoke.png | Bin 0 -> 633 bytes gfx/pokemon/front/machop.png | Bin 0 -> 381 bytes gfx/pokemon/front/magikarp.png | Bin 0 -> 533 bytes gfx/pokemon/front/magmar.png | Bin 0 -> 496 bytes gfx/pokemon/front/magnemite.png | Bin 0 -> 215 bytes gfx/pokemon/front/magneton.png | Bin 0 -> 552 bytes gfx/pokemon/front/mankey.png | Bin 0 -> 395 bytes gfx/pokemon/front/marowak.png | Bin 0 -> 501 bytes gfx/pokemon/front/meowth.png | Bin 0 -> 383 bytes gfx/pokemon/front/metapod.png | Bin 0 -> 259 bytes gfx/pokemon/front/mew.png | Bin 0 -> 365 bytes gfx/pokemon/front/mewtwo.png | Bin 0 -> 652 bytes gfx/pokemon/front/moltres.png | Bin 0 -> 747 bytes gfx/pokemon/front/mr.mime.png | Bin 0 -> 475 bytes gfx/pokemon/front/muk.png | Bin 0 -> 685 bytes gfx/pokemon/front/nidoking.png | Bin 0 -> 752 bytes gfx/pokemon/front/nidoqueen.png | Bin 0 -> 652 bytes gfx/pokemon/front/nidoranf.png | Bin 0 -> 264 bytes gfx/pokemon/front/nidoranm.png | Bin 0 -> 353 bytes gfx/pokemon/front/nidorina.png | Bin 0 -> 438 bytes gfx/pokemon/front/nidorino.png | Bin 0 -> 517 bytes gfx/pokemon/front/ninetales.png | Bin 0 -> 658 bytes gfx/pokemon/front/oddish.png | Bin 0 -> 267 bytes gfx/pokemon/front/omanyte.png | Bin 0 -> 331 bytes gfx/pokemon/front/omastar.png | Bin 0 -> 585 bytes gfx/pokemon/front/onix.png | Bin 0 -> 558 bytes gfx/pokemon/front/paras.png | Bin 0 -> 307 bytes gfx/pokemon/front/parasect.png | Bin 0 -> 598 bytes gfx/pokemon/front/persian.png | Bin 0 -> 619 bytes gfx/pokemon/front/pidgeot.png | Bin 0 -> 581 bytes gfx/pokemon/front/pidgeotto.png | Bin 0 -> 487 bytes gfx/pokemon/front/pidgey.png | Bin 0 -> 303 bytes gfx/pokemon/front/pikachu.png | Bin 0 -> 396 bytes gfx/pokemon/front/pinsir.png | Bin 0 -> 617 bytes gfx/pokemon/front/poliwag.png | Bin 0 -> 318 bytes gfx/pokemon/front/poliwhirl.png | Bin 0 -> 478 bytes gfx/pokemon/front/poliwrath.png | Bin 0 -> 513 bytes gfx/pokemon/front/ponyta.png | Bin 0 -> 503 bytes gfx/pokemon/front/porygon.png | Bin 0 -> 496 bytes gfx/pokemon/front/primeape.png | Bin 0 -> 607 bytes gfx/pokemon/front/psyduck.png | Bin 0 -> 423 bytes gfx/pokemon/front/raichu.png | Bin 0 -> 595 bytes gfx/pokemon/front/rapidash.png | Bin 0 -> 710 bytes gfx/pokemon/front/raticate.png | Bin 0 -> 539 bytes gfx/pokemon/front/rattata.png | Bin 0 -> 325 bytes gfx/pokemon/front/rhydon.png | Bin 0 -> 657 bytes gfx/pokemon/front/rhyhorn.png | Bin 0 -> 661 bytes gfx/pokemon/front/sandshrew.png | Bin 0 -> 407 bytes gfx/pokemon/front/sandslash.png | Bin 0 -> 556 bytes gfx/pokemon/front/scyther.png | Bin 0 -> 690 bytes gfx/pokemon/front/seadra.png | Bin 0 -> 482 bytes gfx/pokemon/front/seaking.png | Bin 0 -> 627 bytes gfx/pokemon/front/seel.png | Bin 0 -> 490 bytes gfx/pokemon/front/shellder.png | Bin 0 -> 396 bytes gfx/pokemon/front/slowbro.png | Bin 0 -> 765 bytes gfx/pokemon/front/slowpoke.png | Bin 0 -> 428 bytes gfx/pokemon/front/snorlax.png | Bin 0 -> 610 bytes gfx/pokemon/front/spearow.png | Bin 0 -> 337 bytes gfx/pokemon/front/squirtle.png | Bin 0 -> 318 bytes gfx/pokemon/front/starmie.png | Bin 0 -> 537 bytes gfx/pokemon/front/staryu.png | Bin 0 -> 401 bytes gfx/pokemon/front/tangela.png | Bin 0 -> 532 bytes gfx/pokemon/front/tauros.png | Bin 0 -> 622 bytes gfx/pokemon/front/tentacool.png | Bin 0 -> 364 bytes gfx/pokemon/front/tentacruel.png | Bin 0 -> 483 bytes gfx/pokemon/front/vaporeon.png | Bin 0 -> 492 bytes gfx/pokemon/front/venomoth.png | Bin 0 -> 597 bytes gfx/pokemon/front/venonat.png | Bin 0 -> 390 bytes gfx/pokemon/front/venusaur.png | Bin 0 -> 658 bytes gfx/pokemon/front/victreebel.png | Bin 0 -> 603 bytes gfx/pokemon/front/vileplume.png | Bin 0 -> 473 bytes gfx/pokemon/front/voltorb.png | Bin 0 -> 245 bytes gfx/pokemon/front/vulpix.png | Bin 0 -> 501 bytes gfx/pokemon/front/wartortle.png | Bin 0 -> 451 bytes gfx/pokemon/front/weedle.png | Bin 0 -> 286 bytes gfx/pokemon/front/weepinbell.png | Bin 0 -> 436 bytes gfx/pokemon/front/weezing.png | Bin 0 -> 709 bytes gfx/pokemon/front/wigglytuff.png | Bin 0 -> 513 bytes gfx/pokemon/front/zapdos.png | Bin 0 -> 621 bytes gfx/pokemon/front/zubat.png | Bin 0 -> 389 bytes {pic/rgmon => gfx/pokemon/front_rg}/abra.png | Bin .../pokemon/front_rg}/aerodactyl.png | Bin .../pokemon/front_rg}/alakazam.png | Bin {pic/rgmon => gfx/pokemon/front_rg}/arbok.png | Bin .../pokemon/front_rg}/arcanine.png | Bin .../pokemon/front_rg}/articuno.png | Bin .../pokemon/front_rg}/beedrill.png | Bin .../pokemon/front_rg}/bellsprout.png | Bin .../pokemon/front_rg}/blastoise.png | Bin .../pokemon/front_rg}/bulbasaur.png | Bin .../pokemon/front_rg}/butterfree.png | Bin .../pokemon/front_rg}/caterpie.png | Bin .../pokemon/front_rg}/chansey.png | Bin .../pokemon/front_rg}/charizard.png | Bin .../pokemon/front_rg}/charmander.png | Bin .../pokemon/front_rg}/charmeleon.png | Bin .../pokemon/front_rg}/clefable.png | Bin .../pokemon/front_rg}/clefairy.png | Bin .../pokemon/front_rg}/cloyster.png | Bin .../rgmon => gfx/pokemon/front_rg}/cubone.png | Bin .../pokemon/front_rg}/dewgong.png | Bin .../pokemon/front_rg}/diglett.png | Bin {pic/rgmon => gfx/pokemon/front_rg}/ditto.png | Bin .../rgmon => gfx/pokemon/front_rg}/dodrio.png | Bin {pic/rgmon => gfx/pokemon/front_rg}/doduo.png | Bin .../pokemon/front_rg}/dragonair.png | Bin .../pokemon/front_rg}/dragonite.png | Bin .../pokemon/front_rg}/dratini.png | Bin .../pokemon/front_rg}/drowzee.png | Bin .../pokemon/front_rg}/dugtrio.png | Bin {pic/rgmon => gfx/pokemon/front_rg}/eevee.png | Bin {pic/rgmon => gfx/pokemon/front_rg}/ekans.png | Bin .../pokemon/front_rg}/electabuzz.png | Bin .../pokemon/front_rg}/electrode.png | Bin .../pokemon/front_rg}/exeggcute.png | Bin .../pokemon/front_rg}/exeggutor.png | Bin .../pokemon/front_rg}/farfetchd.png | Bin .../rgmon => gfx/pokemon/front_rg}/fearow.png | Bin .../pokemon/front_rg}/flareon.png | Bin .../pokemon/front_rg}/fossilaerodactyl.png | Bin .../pokemon/front_rg}/fossilkabutops.png | Bin .../rgmon => gfx/pokemon/front_rg}/gastly.png | Bin .../rgmon => gfx/pokemon/front_rg}/gengar.png | Bin .../pokemon/front_rg}/geodude.png | Bin {pic/rgmon => gfx/pokemon/front_rg}/gloom.png | Bin .../rgmon => gfx/pokemon/front_rg}/golbat.png | Bin .../pokemon/front_rg}/goldeen.png | Bin .../pokemon/front_rg}/golduck.png | Bin {pic/rgmon => gfx/pokemon/front_rg}/golem.png | Bin .../pokemon/front_rg}/graveler.png | Bin .../rgmon => gfx/pokemon/front_rg}/grimer.png | Bin .../pokemon/front_rg}/growlithe.png | Bin .../pokemon/front_rg}/gyarados.png | Bin .../pokemon/front_rg}/haunter.png | Bin .../pokemon/front_rg}/hitmonchan.png | Bin .../pokemon/front_rg}/hitmonlee.png | Bin .../rgmon => gfx/pokemon/front_rg}/horsea.png | Bin {pic/rgmon => gfx/pokemon/front_rg}/hypno.png | Bin .../pokemon/front_rg}/ivysaur.png | Bin .../pokemon/front_rg}/jigglypuff.png | Bin .../pokemon/front_rg}/jolteon.png | Bin {pic/rgmon => gfx/pokemon/front_rg}/jynx.png | Bin .../rgmon => gfx/pokemon/front_rg}/kabuto.png | Bin .../pokemon/front_rg}/kabutops.png | Bin .../pokemon/front_rg}/kadabra.png | Bin .../rgmon => gfx/pokemon/front_rg}/kakuna.png | Bin .../pokemon/front_rg}/kangaskhan.png | Bin .../pokemon/front_rg}/kingler.png | Bin .../pokemon/front_rg}/koffing.png | Bin .../rgmon => gfx/pokemon/front_rg}/krabby.png | Bin .../rgmon => gfx/pokemon/front_rg}/lapras.png | Bin .../pokemon/front_rg}/lickitung.png | Bin .../pokemon/front_rg}/machamp.png | Bin .../pokemon/front_rg}/machoke.png | Bin .../rgmon => gfx/pokemon/front_rg}/machop.png | Bin .../pokemon/front_rg}/magikarp.png | Bin .../rgmon => gfx/pokemon/front_rg}/magmar.png | Bin .../pokemon/front_rg}/magnemite.png | Bin .../pokemon/front_rg}/magneton.png | Bin .../rgmon => gfx/pokemon/front_rg}/mankey.png | Bin .../pokemon/front_rg}/marowak.png | Bin .../rgmon => gfx/pokemon/front_rg}/meowth.png | Bin .../pokemon/front_rg}/metapod.png | Bin {pic/rgmon => gfx/pokemon/front_rg}/mew.png | Bin .../rgmon => gfx/pokemon/front_rg}/mewtwo.png | Bin .../pokemon/front_rg}/moltres.png | Bin .../pokemon/front_rg}/mr.mime.png | Bin {pic/rgmon => gfx/pokemon/front_rg}/muk.png | Bin .../pokemon/front_rg}/nidoking.png | Bin .../pokemon/front_rg}/nidoqueen.png | Bin .../pokemon/front_rg}/nidoranf.png | Bin .../pokemon/front_rg}/nidoranm.png | Bin .../pokemon/front_rg}/nidorina.png | Bin .../pokemon/front_rg}/nidorino.png | Bin .../pokemon/front_rg}/ninetales.png | Bin .../rgmon => gfx/pokemon/front_rg}/oddish.png | Bin .../pokemon/front_rg}/omanyte.png | Bin .../pokemon/front_rg}/omastar.png | Bin {pic/rgmon => gfx/pokemon/front_rg}/onix.png | Bin {pic/rgmon => gfx/pokemon/front_rg}/paras.png | Bin .../pokemon/front_rg}/parasect.png | Bin .../pokemon/front_rg}/persian.png | Bin .../pokemon/front_rg}/pidgeot.png | Bin .../pokemon/front_rg}/pidgeotto.png | Bin .../rgmon => gfx/pokemon/front_rg}/pidgey.png | Bin .../pokemon/front_rg}/pikachu.png | Bin .../rgmon => gfx/pokemon/front_rg}/pinsir.png | Bin .../pokemon/front_rg}/poliwag.png | Bin .../pokemon/front_rg}/poliwhirl.png | Bin .../pokemon/front_rg}/poliwrath.png | Bin .../rgmon => gfx/pokemon/front_rg}/ponyta.png | Bin .../pokemon/front_rg}/porygon.png | Bin .../pokemon/front_rg}/primeape.png | Bin .../pokemon/front_rg}/psyduck.png | Bin .../rgmon => gfx/pokemon/front_rg}/raichu.png | Bin .../pokemon/front_rg}/rapidash.png | Bin .../pokemon/front_rg}/raticate.png | Bin .../pokemon/front_rg}/rattata.png | Bin .../rgmon => gfx/pokemon/front_rg}/rhydon.png | Bin .../pokemon/front_rg}/rhyhorn.png | Bin .../pokemon/front_rg}/sandshrew.png | Bin .../pokemon/front_rg}/sandslash.png | Bin .../pokemon/front_rg}/scyther.png | Bin .../rgmon => gfx/pokemon/front_rg}/seadra.png | Bin .../pokemon/front_rg}/seaking.png | Bin {pic/rgmon => gfx/pokemon/front_rg}/seel.png | Bin .../pokemon/front_rg}/shellder.png | Bin .../pokemon/front_rg}/slowbro.png | Bin .../pokemon/front_rg}/slowpoke.png | Bin .../pokemon/front_rg}/snorlax.png | Bin .../pokemon/front_rg}/spearow.png | Bin .../pokemon/front_rg}/squirtle.png | Bin .../pokemon/front_rg}/starmie.png | Bin .../rgmon => gfx/pokemon/front_rg}/staryu.png | Bin .../pokemon/front_rg}/tangela.png | Bin .../rgmon => gfx/pokemon/front_rg}/tauros.png | Bin .../pokemon/front_rg}/tentacool.png | Bin .../pokemon/front_rg}/tentacruel.png | Bin .../pokemon/front_rg}/vaporeon.png | Bin .../pokemon/front_rg}/venomoth.png | Bin .../pokemon/front_rg}/venonat.png | Bin .../pokemon/front_rg}/venusaur.png | Bin .../pokemon/front_rg}/victreebel.png | Bin .../pokemon/front_rg}/vileplume.png | Bin .../pokemon/front_rg}/voltorb.png | Bin .../rgmon => gfx/pokemon/front_rg}/vulpix.png | Bin .../pokemon/front_rg}/wartortle.png | Bin .../rgmon => gfx/pokemon/front_rg}/weedle.png | Bin .../pokemon/front_rg}/weepinbell.png | Bin .../pokemon/front_rg}/weezing.png | Bin .../pokemon/front_rg}/wigglytuff.png | Bin .../rgmon => gfx/pokemon/front_rg}/zapdos.png | Bin {pic/rgmon => gfx/pokemon/front_rg}/zubat.png | Bin .../pokemon/front_yellow}/abra.png | Bin .../pokemon/front_yellow}/aerodactyl.png | Bin .../pokemon/front_yellow}/alakazam.png | Bin .../pokemon/front_yellow}/arbok.png | Bin .../pokemon/front_yellow}/arcanine.png | Bin .../pokemon/front_yellow}/articuno.png | Bin .../pokemon/front_yellow}/beedrill.png | Bin .../pokemon/front_yellow}/bellsprout.png | Bin .../pokemon/front_yellow}/blastoise.png | Bin .../pokemon/front_yellow}/bulbasaur.png | Bin .../pokemon/front_yellow}/butterfree.png | Bin .../pokemon/front_yellow}/caterpie.png | Bin .../pokemon/front_yellow}/chansey.png | Bin .../pokemon/front_yellow}/charizard.png | Bin .../pokemon/front_yellow}/charmander.png | Bin .../pokemon/front_yellow}/charmeleon.png | Bin .../pokemon/front_yellow}/clefable.png | Bin .../pokemon/front_yellow}/clefairy.png | Bin .../pokemon/front_yellow}/cloyster.png | Bin .../pokemon/front_yellow}/cubone.png | Bin .../pokemon/front_yellow}/dewgong.png | Bin .../pokemon/front_yellow}/diglett.png | Bin .../pokemon/front_yellow}/ditto.png | Bin .../pokemon/front_yellow}/dodrio.png | Bin .../pokemon/front_yellow}/doduo.png | Bin .../pokemon/front_yellow}/dragonair.png | Bin .../pokemon/front_yellow}/dragonite.png | Bin .../pokemon/front_yellow}/dratini.png | Bin .../pokemon/front_yellow}/drowzee.png | Bin .../pokemon/front_yellow}/dugtrio.png | Bin .../pokemon/front_yellow}/eevee.png | Bin .../pokemon/front_yellow}/ekans.png | Bin .../pokemon/front_yellow}/electabuzz.png | Bin .../pokemon/front_yellow}/electrode.png | Bin .../pokemon/front_yellow}/exeggcute.png | Bin .../pokemon/front_yellow}/exeggutor.png | Bin .../pokemon/front_yellow}/farfetchd.png | Bin .../pokemon/front_yellow}/fearow.png | Bin .../pokemon/front_yellow}/flareon.png | Bin gfx/pokemon/front_yellow/fossilaerodactyl.png | Bin 0 -> 539 bytes gfx/pokemon/front_yellow/fossilkabutops.png | Bin 0 -> 546 bytes .../pokemon/front_yellow}/gastly.png | Bin .../pokemon/front_yellow}/gengar.png | Bin .../pokemon/front_yellow}/geodude.png | Bin .../pokemon/front_yellow}/gloom.png | Bin .../pokemon/front_yellow}/golbat.png | Bin .../pokemon/front_yellow}/goldeen.png | Bin .../pokemon/front_yellow}/golduck.png | Bin .../pokemon/front_yellow}/golem.png | Bin .../pokemon/front_yellow}/graveler.png | Bin .../pokemon/front_yellow}/grimer.png | Bin .../pokemon/front_yellow}/growlithe.png | Bin .../pokemon/front_yellow}/gyarados.png | Bin .../pokemon/front_yellow}/haunter.png | Bin .../pokemon/front_yellow}/hitmonchan.png | Bin .../pokemon/front_yellow}/hitmonlee.png | Bin .../pokemon/front_yellow}/horsea.png | Bin .../pokemon/front_yellow}/hypno.png | Bin .../pokemon/front_yellow}/ivysaur.png | Bin .../pokemon/front_yellow}/jigglypuff.png | Bin .../pokemon/front_yellow}/jolteon.png | Bin .../pokemon/front_yellow}/jynx.png | Bin .../pokemon/front_yellow}/kabuto.png | Bin .../pokemon/front_yellow}/kabutops.png | Bin .../pokemon/front_yellow}/kadabra.png | Bin .../pokemon/front_yellow}/kakuna.png | Bin .../pokemon/front_yellow}/kangaskhan.png | Bin .../pokemon/front_yellow}/kingler.png | Bin .../pokemon/front_yellow}/koffing.png | Bin .../pokemon/front_yellow}/krabby.png | Bin .../pokemon/front_yellow}/lapras.png | Bin .../pokemon/front_yellow}/lickitung.png | Bin .../pokemon/front_yellow}/machamp.png | Bin .../pokemon/front_yellow}/machoke.png | Bin .../pokemon/front_yellow}/machop.png | Bin .../pokemon/front_yellow}/magikarp.png | Bin .../pokemon/front_yellow}/magmar.png | Bin .../pokemon/front_yellow}/magnemite.png | Bin .../pokemon/front_yellow}/magneton.png | Bin .../pokemon/front_yellow}/mankey.png | Bin .../pokemon/front_yellow}/marowak.png | Bin .../pokemon/front_yellow}/meowth.png | Bin .../pokemon/front_yellow}/metapod.png | Bin .../ymon => gfx/pokemon/front_yellow}/mew.png | Bin .../pokemon/front_yellow}/mewtwo.png | Bin .../pokemon/front_yellow}/moltres.png | Bin .../pokemon/front_yellow}/mr.mime.png | Bin .../ymon => gfx/pokemon/front_yellow}/muk.png | Bin .../pokemon/front_yellow}/nidoking.png | Bin .../pokemon/front_yellow}/nidoqueen.png | Bin .../pokemon/front_yellow}/nidoranf.png | Bin .../pokemon/front_yellow}/nidoranm.png | Bin .../pokemon/front_yellow}/nidorina.png | Bin .../pokemon/front_yellow}/nidorino.png | Bin .../pokemon/front_yellow}/ninetales.png | Bin .../pokemon/front_yellow}/oddish.png | Bin .../pokemon/front_yellow}/omanyte.png | Bin .../pokemon/front_yellow}/omastar.png | Bin .../pokemon/front_yellow}/onix.png | Bin .../pokemon/front_yellow}/paras.png | Bin .../pokemon/front_yellow}/parasect.png | Bin .../pokemon/front_yellow}/persian.png | Bin .../pokemon/front_yellow}/pidgeot.png | Bin .../pokemon/front_yellow}/pidgeotto.png | Bin .../pokemon/front_yellow}/pidgey.png | Bin .../pokemon/front_yellow}/pikachu.png | Bin .../pokemon/front_yellow}/pinsir.png | Bin .../pokemon/front_yellow}/poliwag.png | Bin .../pokemon/front_yellow}/poliwhirl.png | Bin .../pokemon/front_yellow}/poliwrath.png | Bin .../pokemon/front_yellow}/ponyta.png | Bin .../pokemon/front_yellow}/porygon.png | Bin .../pokemon/front_yellow}/primeape.png | Bin .../pokemon/front_yellow}/psyduck.png | Bin .../pokemon/front_yellow}/raichu.png | Bin .../pokemon/front_yellow}/rapidash.png | Bin .../pokemon/front_yellow}/raticate.png | Bin .../pokemon/front_yellow}/rattata.png | Bin .../pokemon/front_yellow}/rhydon.png | Bin .../pokemon/front_yellow}/rhyhorn.png | Bin .../pokemon/front_yellow}/sandshrew.png | Bin .../pokemon/front_yellow}/sandslash.png | Bin .../pokemon/front_yellow}/scyther.png | Bin .../pokemon/front_yellow}/seadra.png | Bin .../pokemon/front_yellow}/seaking.png | Bin .../pokemon/front_yellow}/seel.png | Bin .../pokemon/front_yellow}/shellder.png | Bin .../pokemon/front_yellow}/slowbro.png | Bin .../pokemon/front_yellow}/slowpoke.png | Bin .../pokemon/front_yellow}/snorlax.png | Bin .../pokemon/front_yellow}/spearow.png | Bin .../pokemon/front_yellow}/squirtle.png | Bin .../pokemon/front_yellow}/starmie.png | Bin .../pokemon/front_yellow}/staryu.png | Bin .../pokemon/front_yellow}/tangela.png | Bin .../pokemon/front_yellow}/tauros.png | Bin .../pokemon/front_yellow}/tentacool.png | Bin .../pokemon/front_yellow}/tentacruel.png | Bin .../pokemon/front_yellow}/vaporeon.png | Bin .../pokemon/front_yellow}/venomoth.png | Bin .../pokemon/front_yellow}/venonat.png | Bin .../pokemon/front_yellow}/venusaur.png | Bin .../pokemon/front_yellow}/victreebel.png | Bin .../pokemon/front_yellow}/vileplume.png | Bin .../pokemon/front_yellow}/voltorb.png | Bin .../pokemon/front_yellow}/vulpix.png | Bin .../pokemon/front_yellow}/wartortle.png | Bin .../pokemon/front_yellow}/weedle.png | Bin .../pokemon/front_yellow}/weepinbell.png | Bin .../pokemon/front_yellow}/weezing.png | Bin .../pokemon/front_yellow}/wigglytuff.png | Bin .../pokemon/front_yellow}/zapdos.png | Bin .../pokemon/front_yellow}/zubat.png | Bin gfx/pokemon/slide_down_7x3.tilemap | Bin 0 -> 21 bytes gfx/pokemon/slide_down_7x5.tilemap | Bin 0 -> 35 bytes gfx/{pokemon_yellow.png => sgb/border.png} | Bin .../sgbborder.map => sgb/border.tilemap} | Bin gfx/sgb/green_border.png | Bin 0 -> 1051 bytes gfx/sgb/green_border.tilemap | Bin 0 -> 1792 bytes gfx/slotmachine1.png | Bin 470 -> 0 bytes gfx/slots/green_slots_1.png | Bin 0 -> 461 bytes gfx/slots/green_slots_2.png | Bin 0 -> 308 bytes .../slotmachine.map => slots/slots.tilemap} | Bin gfx/slots/slots_1.png | Bin 0 -> 478 bytes gfx/{slotmachine2.png => slots/slots_2.png} | Bin gfx/spinner_arrow.png | Bin 131 -> 0 bytes gfx/{ => splash}/copyright.png | Bin gfx/{ => splash}/falling_star.png | Bin gfx/{ => splash}/gamefreak_logo.png | Bin .../gamefreak_presents.png} | Bin gfx/sprites.asm | 74 + gfx/sprites/{foulard_woman.png => beauty.png} | Bin ...{bike_shop_guy.png => bike_shop_clerk.png} | Bin gfx/sprites/{ss_captain.png => captain.png} | Bin gfx/sprites/{medium.png => channeler.png} | Bin gfx/sprites/clefairy.png | Bin 317 -> 554 bytes gfx/sprites/clefairy2.png | Bin 554 -> 0 bytes gfx/sprites/{mart_guy.png => clerk.png} | Bin gfx/sprites/{lass.png => cooltrainer_f.png} | Bin ...black_hair_boy_1.png => cooltrainer_m.png} | Bin gfx/sprites/fairy.png | Bin 0 -> 317 bytes gfx/sprites/fisher.png | Bin 213 -> 308 bytes gfx/sprites/fisher2.png | Bin 308 -> 0 bytes gfx/sprites/fishing_guru.png | Bin 0 -> 213 bytes gfx/sprites/{omanyte.png => fossil.png} | Bin .../{lying_old_man.png => gambler_asleep.png} | Bin gfx/sprites/{old_person.png => gramps.png} | Bin .../{old_medium_woman.png => granny.png} | Bin gfx/sprites/{gym_helper.png => gym_guide.png} | Bin gfx/sprites/{blackbelt.png => koga.png} | Bin ...e_club_woman.png => link_receptionist.png} | Bin gfx/sprites/{young_boy.png => little_boy.png} | Bin .../{fat_bald_guy.png => middle_aged_man.png} | Bin .../{mom_geisha.png => middle_aged_woman.png} | Bin gfx/sprites/{slowbro.png => monster.png} | Bin gfx/sprites/{paper_sheet.png => paper.png} | Bin gfx/sprites/{ball.png => poke_ball.png} | Bin gfx/sprites/{book_map_dex.png => pokedex.png} | Bin gfx/sprites/{cycling.png => red_bike.png} | Bin ...hite_player.png => safari_zone_worker.png} | Bin gfx/sprites/{oak_aide.png => scientist.png} | Bin ...{mr_masterball.png => silph_president.png} | Bin .../{lapras_giver.png => silph_worker.png} | Bin .../{black_hair_boy_2.png => super_nerd.png} | Bin .../{bug_catcher.png => youngster.png} | Bin gfx/surfing_pikachu_1.png | Bin 3766 -> 0 bytes gfx/text_box.png | Bin 295 -> 0 bytes gfx/tilesets.asm | 64 + gfx/tilesets/beachhouse.tilecoll | 1 - gfx/tilesets/cavern.tilecoll | 1 - gfx/tilesets/cemetery.tilecoll | 1 - gfx/tilesets/club.tilecoll | 1 - gfx/tilesets/facility.tilecoll | 1 - gfx/tilesets/forest.tilecoll | 1 - gfx/tilesets/gate.tilecoll | 1 - gfx/tilesets/gym.tilecoll | 1 - gfx/tilesets/house.tilecoll | 1 - gfx/tilesets/interior.tilecoll | 1 - gfx/tilesets/lab.tilecoll | 1 - gfx/tilesets/lobby.tilecoll | 1 - gfx/tilesets/mansion.tilecoll | 1 - gfx/tilesets/overworld.tilecoll | Bin 20 -> 0 bytes gfx/tilesets/plateau.tilecoll | 1 - gfx/tilesets/pokecenter.tilecoll | 1 - gfx/tilesets/reds_house.tilecoll | 1 - gfx/tilesets/ship.tilecoll | 1 - gfx/tilesets/ship_port.tilecoll | 2 - gfx/tilesets/tilesets_rg/flower.png | Bin 0 -> 108 bytes gfx/tilesets/tilesets_rg/forest.png | Bin 0 -> 1416 bytes gfx/tilesets/tilesets_rg/overworld.png | Bin 0 -> 1288 bytes gfx/tilesets/underground.tilecoll | 1 - .../blue_version.png} | Bin .../gamefreak_inc.png} | Bin gfx/{player_title.png => title/player.png} | Bin gfx/{ => title}/pokemon_logo.png | Bin gfx/{ => title}/pokemon_logo_japan.png | Bin gfx/{ => town_map}/mon_nest_icon.png | Bin gfx/{ => town_map}/town_map.png | Bin gfx/{ => town_map}/town_map.rle | Bin gfx/{ => town_map}/town_map_cursor.png | Bin gfx/{ => town_map}/up_arrow.png | Bin gfx/trade.asm | 7 + gfx/trade/bubble.png | Bin 0 -> 143 bytes gfx/{trade2.png => trade/cable_ball.png} | Bin gfx/{ => trade}/game_boy.png | Bin gfx/trade/game_boy.tilemap | 1 + gfx/{ => trade}/link_cable.png | Bin gfx/trade/link_cable.tilemap | 1 + gfx/trainer_card.asm | 8 + gfx/{ => trainer_card}/badge_numbers.png | Bin gfx/{ => trainer_card}/badges.png | Bin gfx/{ => trainer_card}/blank_leader_names.png | Bin gfx/{ => trainer_card}/circle_tile.png | Bin gfx/{ => trainer_card}/trainer_info.png | Bin {pic/trainer => gfx/trainers}/agatha.png | Bin {pic/trainer => gfx/trainers}/beauty.png | Bin {pic/trainer => gfx/trainers}/biker.png | Bin {pic/trainer => gfx/trainers}/birdkeeper.png | Bin {pic/trainer => gfx/trainers}/blackbelt.png | Bin {pic/trainer => gfx/trainers}/blaine.png | Bin {pic/trainer => gfx/trainers}/brock.png | Bin {pic/trainer => gfx/trainers}/bruno.png | Bin {pic/trainer => gfx/trainers}/bugcatcher.png | Bin {pic/trainer => gfx/trainers}/burglar.png | Bin {pic/trainer => gfx/trainers}/channeler.png | Bin .../trainer => gfx/trainers}/cooltrainerf.png | Bin .../trainer => gfx/trainers}/cooltrainerm.png | Bin {pic/trainer => gfx/trainers}/cueball.png | Bin {pic/trainer => gfx/trainers}/engineer.png | Bin {pic/trainer => gfx/trainers}/erika.png | Bin {pic/trainer => gfx/trainers}/fisher.png | Bin {pic/trainer => gfx/trainers}/gambler.png | Bin {pic/trainer => gfx/trainers}/gentleman.png | Bin {pic/trainer => gfx/trainers}/giovanni.png | Bin {pic/trainer => gfx/trainers}/hiker.png | Bin {pic/trainer => gfx/trainers}/jr.trainerf.png | Bin {pic/trainer => gfx/trainers}/jr.trainerm.png | Bin {pic/trainer => gfx/trainers}/juggler.png | Bin {pic/trainer => gfx/trainers}/koga.png | Bin {pic/trainer => gfx/trainers}/lance.png | Bin {pic/trainer => gfx/trainers}/lass.png | Bin {pic/trainer => gfx/trainers}/lorelei.png | Bin {pic/trainer => gfx/trainers}/lt.surge.png | Bin {pic/trainer => gfx/trainers}/misty.png | Bin {pic/trainer => gfx/trainers}/pokemaniac.png | Bin {pic/trainer => gfx/trainers}/prof.oak.png | Bin {pic/trainer => gfx/trainers}/psychic.png | Bin {pic/trainer => gfx/trainers}/rival1.png | Bin {pic/trainer => gfx/trainers}/rival2.png | Bin {pic/trainer => gfx/trainers}/rival3.png | Bin {pic/trainer => gfx/trainers}/rocker.png | Bin {pic/trainer => gfx/trainers}/rocket.png | Bin {pic/trainer => gfx/trainers}/sabrina.png | Bin {pic/trainer => gfx/trainers}/sailor.png | Bin {pic/trainer => gfx/trainers}/scientist.png | Bin {pic/trainer => gfx/trainers}/supernerd.png | Bin {pic/trainer => gfx/trainers}/swimmer.png | Bin {pic/trainer => gfx/trainers}/tamer.png | Bin .../trainers/yellow}/brock.png | Bin .../trainers/yellow}/erika.png | Bin .../trainers/yellow}/jessiejames.png | Bin .../trainers/yellow}/misty.png | Bin .../trainers/yellow}/rival1.png | Bin .../trainers/yellow}/rival2.png | Bin .../trainers/yellow}/rival3.png | Bin {pic/trainer => gfx/trainers}/youngster.png | Bin gfx/version.asm | 3 + home.asm | 4989 +---------------- home/array.asm | 21 + home/array2.asm | 47 + home/audio.asm | 10 +- home/bankswitch.asm | 15 + home/clear_sprites.asm | 21 + home/compare.asm | 11 + home/copy.asm | 50 +- home/copy2.asm | 68 +- home/copy_string.asm | 13 + home/count_set_bits.asm | 24 + home/delay.asm | 32 + home/fade.asm | 18 +- home/fade_audio.asm | 46 + home/give.asm | 26 + home/header.asm | 81 + home/hidden_objects.asm | 35 + home/init.asm | 80 +- home/inventory.asm | 38 + home/item.asm | 49 + home/item_price.asm | 39 + home/joypad.asm | 5 + home/joypad2.asm | 100 + home/lcd.asm | 25 + home/lcdc.asm | 6 +- home/list_menu.asm | 523 ++ home/load_font.asm | 47 + home/map_objects.asm | 322 ++ home/math.asm | 33 + home/money.asm | 15 + home/move_mon.asm | 239 + home/names.asm | 141 + home/names2.asm | 92 + home/npc_movement.asm | 52 + home/oam.asm | 36 + home/overworld.asm | 371 +- home/overworld_text.asm | 31 + home/palettes.asm | 63 + home/pathfinding.asm | 65 + home/pic.asm | 588 -- home/pics.asm | 198 + home/pikachu.asm | 6 +- home/play_time.asm | 10 +- home/pokemon.asm | 474 ++ home/predef.asm | 4 +- home/predef_text.asm | 28 + home/print_bcd.asm | 77 + home/print_num.asm | 219 + home/print_text.asm | 45 + home/random.asm | 12 + home/reload_sprites.asm | 19 + home/reload_tiles.asm | 67 + home/reset_player_sprite.asm | 21 + home/serial.asm | 98 +- home/start.asm | 10 + {engine/menu => home}/start_menu.asm | 8 +- home/text.asm | 533 +- home/text_script.asm | 225 + home/textbox.asm | 7 + home/tilemap.asm | 45 + home/trainers.asm | 426 ++ home/trainers2.asm | 54 + home/uncompress.asm | 588 ++ home/update_sprites.asm | 15 + home/vblank.asm | 38 +- home/vcopy.asm | 150 +- home/window.asm | 292 + home/yes_no.asm | 40 + hram.asm | 499 +- layout.link | 241 + macros.asm | 41 +- macros/asm_macros.asm | 190 - macros/audio_macros.asm | 214 - macros/code.asm | 20 + macros/const.asm | 40 + macros/coords.asm | 90 + macros/data.asm | 80 + macros/data_macros.asm | 242 - macros/event_macros.asm | 502 -- macros/farcall.asm | 33 + macros/gfx.asm | 22 + macros/predef.asm | 36 + macros/scripts/audio.asm | 233 + macros/scripts/events.asm | 532 ++ macros/scripts/maps.asm | 225 + macros/scripts/text.asm | 213 + macros/text_macros.asm | 80 - macros/wram.asm | 97 + main.asm | 2053 +------ maps.asm | 1226 ++++ maps/green/CeruleanCave1F.blk | 3 + maps/green/CeruleanCave2F.blk | 1 + maps/green/CeruleanCaveB1F.blk | 1 + pokeyellow.link | 345 -- rgbdscheck.asm | 12 + roms.md5 | 1 - roms.sha1 | 1 + scripts/AgathasRoom.asm | 47 +- scripts/BeachHouse.asm | 78 +- scripts/BeachHouse2.asm | 16 +- scripts/BikeShop.asm | 62 +- scripts/BillsHouse.asm | 60 +- scripts/BillsHouse2.asm | 48 +- scripts/BluesHouse.asm | 65 +- scripts/BrunosRoom.asm | 47 +- scripts/CeladonChiefHouse.asm | 12 +- scripts/CeladonCity.asm | 86 +- scripts/CeladonCity2.asm | 6 +- scripts/CeladonDiner.asm | 20 +- scripts/CeladonDiner2.asm | 34 +- scripts/CeladonGym.asm | 219 +- scripts/CeladonHotel.asm | 12 +- scripts/CeladonMansion1F.asm | 22 +- scripts/CeladonMansion1F_2.asm | 42 +- scripts/CeladonMansion2F.asm | 4 +- scripts/CeladonMansion3F.asm | 94 +- scripts/CeladonMansion3F_2.asm | 24 +- scripts/CeladonMansionRoof.asm | 4 +- scripts/CeladonMansionRoofHouse.asm | 10 +- scripts/CeladonMart1F.asm | 12 +- scripts/CeladonMart2F.asm | 12 +- scripts/CeladonMart3F.asm | 50 +- scripts/CeladonMart3F_2.asm | 54 +- scripts/CeladonMart4F.asm | 12 +- scripts/CeladonMart5F.asm | 12 +- scripts/CeladonMartElevator.asm | 23 +- scripts/CeladonMartRoof.asm | 104 +- scripts/CeladonPokecenter.asm | 16 +- scripts/CeruleanBadgeHouse.asm | 61 +- scripts/CeruleanCaveB1F.asm | 17 +- scripts/CeruleanCity.asm | 186 +- scripts/CeruleanGym.asm | 114 +- scripts/CeruleanMart.asm | 8 +- scripts/CeruleanPokecenter.asm | 16 +- scripts/CeruleanTradeHouse.asm | 42 +- scripts/CeruleanTrashedHouse.asm | 28 +- scripts/ChampionsRoom.asm | 86 +- scripts/CinnabarGym.asm | 180 +- scripts/CinnabarGym3.asm | 40 +- scripts/CinnabarGym_2.asm | 2 +- scripts/CinnabarIsland.asm | 32 +- scripts/CinnabarLab.asm | 20 +- scripts/CinnabarLabFossilRoom.asm | 28 +- scripts/CinnabarLabMetronomeRoom.asm | 48 +- scripts/CinnabarLabTradeRoom.asm | 12 +- scripts/CinnabarMart.asm | 8 +- scripts/CinnabarPokecenter.asm | 16 +- scripts/Colosseum.asm | 4 +- scripts/CopycatsHouse1F.asm | 12 +- scripts/CopycatsHouse2F.asm | 76 +- scripts/Daycare.asm | 86 +- scripts/DiglettsCave.asm | 3 +- scripts/DiglettsCaveRoute11.asm | 4 +- scripts/DiglettsCaveRoute2.asm | 4 +- scripts/FightingDojo.asm | 148 +- scripts/FuchsiaBillsGrandpasHouse.asm | 12 +- scripts/FuchsiaCity.asm | 84 +- scripts/FuchsiaGoodRodHouse.asm | 63 +- scripts/FuchsiaGym.asm | 209 +- scripts/FuchsiaMart.asm | 8 +- scripts/FuchsiaMeetingRoom.asm | 12 +- scripts/FuchsiaPokecenter.asm | 16 +- scripts/GameCorner.asm | 222 +- scripts/GameCorner2.asm | 2 +- scripts/GameCornerPrizeRoom.asm | 10 +- scripts/HallOfFame.asm | 16 +- scripts/IndigoPlateauLobby.asm | 16 +- scripts/LancesRoom.asm | 53 +- scripts/LavenderCuboneHouse.asm | 22 +- scripts/LavenderMart.asm | 14 +- scripts/LavenderPokecenter.asm | 16 +- scripts/LavenderTown.asm | 42 +- scripts/LoreleisRoom.asm | 47 +- scripts/MrFujisHouse.asm | 84 +- scripts/MrPsychicsHouse.asm | 36 +- scripts/MtMoon1F.asm | 167 +- scripts/MtMoonB1F.asm | 4 +- scripts/MtMoonB2F.asm | 231 +- scripts/MtMoonB2F_2.asm | 4 +- scripts/MtMoonPokecenter.asm | 24 +- scripts/MtMoonPokecenter2.asm | 24 +- scripts/Museum1F.asm | 32 +- scripts/Museum1F2.asm | 122 +- scripts/Museum2F.asm | 38 +- scripts/NameRatersHouse.asm | 32 +- scripts/OaksLab.asm | 376 +- scripts/OaksLab2.asm | 2 +- scripts/PalletTown.asm | 68 +- scripts/PewterCity.asm | 138 +- scripts/PewterGym.asm | 115 +- scripts/PewterMart.asm | 14 +- scripts/PewterNidoranHouse.asm | 12 +- scripts/PewterPokecenter.asm | 20 +- scripts/PewterPokecenter2.asm | 31 +- scripts/PewterSpeechHouse.asm | 8 +- scripts/PokemonFanClub.asm | 141 +- scripts/PokemonMansion1F.asm | 45 +- scripts/PokemonMansion2F.asm | 53 +- scripts/PokemonMansion3F.asm | 66 +- scripts/PokemonMansionB1F.asm | 58 +- scripts/PokemonTower1F.asm | 20 +- scripts/PokemonTower2F.asm | 52 +- scripts/PokemonTower2F_2.asm | 2 +- scripts/PokemonTower3F.asm | 70 +- scripts/PokemonTower4F.asm | 71 +- scripts/PokemonTower5F.asm | 116 +- scripts/PokemonTower6F.asm | 96 +- scripts/PokemonTower7F.asm | 44 +- scripts/PowerPlant.asm | 109 +- scripts/RedsHouse1F.asm | 16 +- scripts/RedsHouse1F2.asm | 36 +- scripts/RedsHouse2F.asm | 3 +- scripts/RockTunnel1F.asm | 167 +- scripts/RockTunnelB1F.asm | 186 +- scripts/RockTunnelPokecenter.asm | 16 +- scripts/RocketHideoutB1F.asm | 121 +- scripts/RocketHideoutB2F.asm | 463 +- scripts/RocketHideoutB3F.asm | 169 +- scripts/RocketHideoutB4F.asm | 82 +- scripts/RocketHideoutElevator.asm | 25 +- scripts/Route1.asm | 12 +- scripts/Route10.asm | 148 +- scripts/Route11.asm | 236 +- scripts/Route11Gate1F.asm | 4 +- scripts/Route11Gate2F.asm | 46 +- scripts/Route12.asm | 187 +- scripts/Route12Gate1F.asm | 4 +- scripts/Route12Gate2F.asm | 50 +- scripts/Route12SuperRodHouse.asm | 50 +- scripts/Route13.asm | 244 +- scripts/Route14.asm | 236 +- scripts/Route15.asm | 236 +- scripts/Route15Gate1F.asm | 4 +- scripts/Route15Gate2F.asm | 32 +- scripts/Route16.asm | 164 +- scripts/Route16FlyHouse.asm | 38 +- scripts/Route16Gate1F.asm | 34 +- scripts/Route16Gate2F.asm | 24 +- scripts/Route17.asm | 256 +- scripts/Route18.asm | 79 +- scripts/Route18Gate1F.asm | 30 +- scripts/Route18Gate2F.asm | 16 +- scripts/Route19.asm | 236 +- scripts/Route1_2.asm | 58 +- scripts/Route2.asm | 8 +- scripts/Route20.asm | 238 +- scripts/Route21.asm | 209 +- scripts/Route22.asm | 89 +- scripts/Route22Gate.asm | 28 +- scripts/Route22_2.asm | 26 +- scripts/Route23.asm | 49 +- scripts/Route24.asm | 216 +- scripts/Route25.asm | 213 +- scripts/Route2Gate.asm | 30 +- scripts/Route2TradeHouse.asm | 8 +- scripts/Route3.asm | 194 +- scripts/Route4.asm | 37 +- scripts/Route5.asm | 4 +- scripts/Route5Gate.asm | 38 +- scripts/Route6.asm | 144 +- scripts/Route6Gate.asm | 17 +- scripts/Route7.asm | 4 +- scripts/Route7Gate.asm | 18 +- scripts/Route8.asm | 213 +- scripts/Route8Gate.asm | 18 +- scripts/Route9.asm | 213 +- scripts/SSAnne1F.asm | 8 +- scripts/SSAnne1FRooms.asm | 118 +- scripts/SSAnne2F.asm | 62 +- scripts/SSAnne2FRooms.asm | 128 +- scripts/SSAnne2FRooms_2.asm | 24 +- scripts/SSAnne3F.asm | 4 +- scripts/SSAnneB1F.asm | 3 +- scripts/SSAnneB1FRooms.asm | 148 +- scripts/SSAnneBow.asm | 60 +- scripts/SSAnneCaptainsRoom.asm | 48 +- scripts/SSAnneKitchen.asm | 58 +- scripts/SafariZoneCenter.asm | 8 +- scripts/SafariZoneCenterRestHouse.asm | 8 +- scripts/SafariZoneEast.asm | 12 +- scripts/SafariZoneEastRestHouse.asm | 12 +- scripts/SafariZoneGate.asm | 46 +- scripts/SafariZoneGate2.asm | 82 +- scripts/SafariZoneNorth.asm | 20 +- scripts/SafariZoneNorthRestHouse.asm | 12 +- scripts/SafariZoneSecretHouse.asm | 36 +- scripts/SafariZoneWest.asm | 16 +- scripts/SafariZoneWestRestHouse.asm | 12 +- scripts/SaffronCity.asm | 94 +- scripts/SaffronGym.asm | 233 +- scripts/SaffronMart.asm | 8 +- scripts/SaffronPidgeyHouse.asm | 16 +- scripts/SaffronPokecenter.asm | 16 +- scripts/SeafoamIslands1F.asm | 6 +- scripts/SeafoamIslandsB1F.asm | 6 +- scripts/SeafoamIslandsB2F.asm | 6 +- scripts/SeafoamIslandsB3F.asm | 42 +- scripts/SeafoamIslandsB4F.asm | 57 +- scripts/SilphCo10F.asm | 64 +- scripts/SilphCo11F.asm | 158 +- scripts/SilphCo11F_2.asm | 4 +- scripts/SilphCo1F.asm | 4 +- scripts/SilphCo2F.asm | 130 +- scripts/SilphCo3F.asm | 66 +- scripts/SilphCo4F.asm | 95 +- scripts/SilphCo5F.asm | 126 +- scripts/SilphCo6F.asm | 127 +- scripts/SilphCo7F.asm | 214 +- scripts/SilphCo8F.asm | 93 +- scripts/SilphCo9F.asm | 103 +- scripts/SilphCoElevator.asm | 35 +- scripts/TradeCenter.asm | 26 +- scripts/UndergroundPathNorthSouth.asm | 3 +- scripts/UndergroundPathRoute5.asm | 10 +- scripts/UndergroundPathRoute6.asm | 4 +- scripts/UndergroundPathRoute7.asm | 4 +- scripts/UndergroundPathRoute7Copy.asm | 16 +- scripts/UndergroundPathRoute8.asm | 4 +- scripts/UndergroundPathWestEast.asm | 3 +- scripts/VermilionCity.asm | 96 +- scripts/VermilionCity2.asm | 54 +- scripts/VermilionDock.asm | 37 +- scripts/VermilionGym.asm | 141 +- scripts/VermilionMart.asm | 8 +- scripts/VermilionOldRodHouse.asm | 50 +- scripts/VermilionPidgeyHouse.asm | 12 +- scripts/VermilionPokecenter.asm | 16 +- scripts/VermilionTradeHouse.asm | 4 +- scripts/VictoryRoad1F.asm | 53 +- scripts/VictoryRoad2F.asm | 140 +- scripts/VictoryRoad3F.asm | 102 +- scripts/ViridianCity.asm | 122 +- scripts/ViridianCity2.asm | 158 +- scripts/ViridianForest.asm | 139 +- scripts/ViridianForest2.asm | 34 +- scripts/ViridianForestNorthGate.asm | 8 +- scripts/ViridianForestSouthGate.asm | 8 +- scripts/ViridianGym.asm | 335 +- scripts/ViridianMart.asm | 41 +- scripts/ViridianNicknameHouse.asm | 18 +- scripts/ViridianPokecenter.asm | 16 +- scripts/ViridianSchoolHouse.asm | 12 +- scripts/ViridianSchoolHouse2.asm | 12 +- scripts/WardensHouse.asm | 86 +- sram.asm | 54 +- text.asm | 3666 +----------- text/{maps => }/AgathasRoom.asm | 0 text/BeachHouse.asm | 107 + text/BikeShop.asm | 71 + text/BillsHouse.asm | 93 + text/BluesHouse.asm | 42 + text/{maps => }/BrunosRoom.asm | 0 text/{maps => }/CeladonChiefHouse.asm | 0 text/CeladonCity.asm | 154 + text/CeladonDiner.asm | 60 + text/CeladonGym.asm | 220 + text/{maps => }/CeladonHotel.asm | 0 text/CeladonMansion1F.asm | 68 + text/{maps => }/CeladonMansion2F.asm | 0 text/CeladonMansion3F.asm | 118 + text/{maps => }/CeladonMansionRoof.asm | 0 text/{maps => }/CeladonMansionRoofHouse.asm | 0 text/{maps => }/CeladonMart1F.asm | 0 text/{maps => }/CeladonMart2F.asm | 0 text/CeladonMart3F.asm | 99 + text/{maps => }/CeladonMart4F.asm | 0 text/{maps => }/CeladonMart5F.asm | 0 text/CeladonMartRoof.asm | 149 + text/{maps => }/CeladonPokecenter.asm | 0 text/{maps => }/CeruleanBadgeHouse.asm | 0 text/{maps => }/CeruleanBadgeHouse_2.asm | 0 text/CeruleanCaveB1F.asm | 3 + text/CeruleanCity.asm | 235 + text/CeruleanGym.asm | 135 + text/{maps => }/CeruleanMart.asm | 0 text/{maps => }/CeruleanPokecenter.asm | 0 text/CeruleanTradeHouse.asm | 46 + text/{maps => }/CeruleanTrashedHouse.asm | 0 text/ChampionsRoom.asm | 146 + text/CinnabarGym.asm | 255 + text/{maps => }/CinnabarIsland.asm | 0 text/{maps => }/CinnabarLab.asm | 0 text/CinnabarLabFossilRoom.asm | 78 + text/CinnabarLabMetronomeRoom.asm | 64 + text/{maps => }/CinnabarLabTradeRoom.asm | 0 text/{maps => }/CinnabarMart.asm | 0 text/{maps => }/CinnabarPokecenter.asm | 0 text/CopycatsHouse1F.asm | 21 + text/CopycatsHouse2F.asm | 100 + text/Daycare.asm | 97 + text/{maps => }/DiglettsCaveRoute11.asm | 0 text/{maps => }/DiglettsCaveRoute2.asm | 0 text/{maps => }/FightingDojo.asm | 0 text/{maps => }/FuchsiaBillsGrandpasHouse.asm | 0 text/{maps => }/FuchsiaCity.asm | 0 text/FuchsiaGoodRodHouse.asm | 44 + text/FuchsiaGym.asm | 221 + text/{maps => }/FuchsiaMart.asm | 0 text/{maps => }/FuchsiaMeetingRoom.asm | 0 text/{maps => }/FuchsiaPokecenter.asm | 0 text/GameCorner.asm | 185 + text/{maps => }/GameCornerPrizeRoom.asm | 0 text/{maps => }/GameCorner_2.asm | 0 text/{maps => }/HallOfFame.asm | 0 text/{maps => }/IndigoPlateauLobby.asm | 0 text/LancesRoom.asm | 64 + text/LavenderCuboneHouse.asm | 25 + text/{maps => }/LavenderMart.asm | 0 text/{maps => }/LavenderPokecenter.asm | 0 text/{maps => }/LavenderTown.asm | 0 text/{maps => }/LoreleisRoom.asm | 0 text/MrFujisHouse.asm | 89 + text/MrPsychicsHouse.asm | 26 + text/{maps => }/MtMoon1F.asm | 0 text/MtMoonB1F.asm | 3 + text/MtMoonB2F.asm | 130 + text/MtMoonPokecenter.asm | 48 + text/Museum1F.asm | 108 + text/{maps => }/Museum2F.asm | 0 text/NameRatersHouse.asm | 60 + text/OaksLab.asm | 401 ++ text/PalletTown.asm | 68 + text/{maps => }/PewterCity.asm | 0 text/PewterGym.asm | 186 + text/{maps => }/PewterMart.asm | 0 text/PewterNidoranHouse.asm | 25 + text/{maps => }/PewterPokecenter.asm | 0 text/{maps => }/PewterSpeechHouse.asm | 0 text/PokemonFanClub.asm | 179 + text/{maps => }/PokemonMansion1F.asm | 0 text/{maps => }/PokemonMansion2F.asm | 0 text/{maps => }/PokemonMansion3F.asm | 0 text/{maps => }/PokemonMansionB1F.asm | 0 text/{maps => }/PokemonTower1F.asm | 0 text/{maps => }/PokemonTower2F.asm | 0 text/{maps => }/PokemonTower3F.asm | 0 text/{maps => }/PokemonTower4F.asm | 0 text/{maps => }/PokemonTower5F.asm | 0 text/{maps => }/PokemonTower6F.asm | 0 text/PokemonTower7F.asm | 51 + text/PowerPlant.asm | 7 + text/{maps => }/RedsHouse1F.asm | 0 text/{maps => }/RockTunnel1F.asm | 0 text/{maps => }/RockTunnelB1F.asm | 0 text/{maps => }/RockTunnelPokecenter.asm | 0 text/RocketHideoutB1F.asm | 74 + text/{maps => }/RocketHideoutB2F.asm | 0 text/{maps => }/RocketHideoutB3F.asm | 0 text/RocketHideoutB4F.asm | 67 + text/RocketHideoutElevator.asm | 4 + text/Route1.asm | 50 + text/{maps => }/Route10.asm | 0 text/{maps => }/Route11.asm | 0 text/{maps => }/Route11Gate1F.asm | 0 text/{maps => }/Route11Gate2F.asm | 0 text/{maps => }/Route12.asm | 0 text/{maps => }/Route12Gate1F.asm | 0 text/Route12Gate2F.asm | 43 + text/Route12SuperRodHouse.asm | 62 + text/{maps => }/Route13.asm | 0 text/{maps => }/Route14.asm | 0 text/Route15.asm | 172 + text/{maps => }/Route15Gate1F.asm | 0 text/{maps => }/Route15Gate2F.asm | 0 text/{maps => }/Route16.asm | 0 text/Route16FlyHouse.asm | 32 + text/{maps => }/Route16Gate1F.asm | 0 text/{maps => }/Route16Gate2F.asm | 0 text/{maps => }/Route17.asm | 0 text/{maps => }/Route18.asm | 0 text/{maps => }/Route18Gate1F.asm | 0 text/{maps => }/Route18Gate2F.asm | 0 text/{maps => }/Route19.asm | 0 text/{maps => }/Route2.asm | 0 text/{maps => }/Route20.asm | 0 text/{maps => }/Route21.asm | 0 text/{maps => }/Route22.asm | 0 text/Route22Gate.asm | 22 + text/Route23.asm | 41 + text/Route24.asm | 187 + text/{maps => }/Route25.asm | 0 text/{maps => }/Route2Gate.asm | 0 text/{maps => }/Route2TradeHouse.asm | 0 text/{maps => }/Route3.asm | 0 text/{maps => }/Route4.asm | 0 text/{maps => }/Route5.asm | 0 text/{maps => }/Route6.asm | 0 text/{maps => }/Route7.asm | 0 text/{maps => }/Route8.asm | 0 text/{maps => }/Route9.asm | 0 text/{maps => }/Route9_2.asm | 0 text/{maps => }/SSAnne1F.asm | 0 text/SSAnne1FRooms.asm | 105 + text/{maps => }/SSAnne2F.asm | 0 text/{maps => }/SSAnne2FRooms.asm | 0 text/{maps => }/SSAnne3F.asm | 0 text/SSAnneB1FRooms.asm | 114 + text/{maps => }/SSAnneBow.asm | 0 text/SSAnneCaptainsRoom.asm | 64 + text/{maps => }/SSAnneKitchen.asm | 0 text/{maps => }/SafariZoneCenter.asm | 0 text/{maps => }/SafariZoneCenterRestHouse.asm | 0 text/{maps => }/SafariZoneEast.asm | 0 text/{maps => }/SafariZoneEastRestHouse.asm | 0 text/SafariZoneGate.asm | 147 + text/{maps => }/SafariZoneNorth.asm | 0 text/{maps => }/SafariZoneNorthRestHouse.asm | 0 text/SafariZoneSecretHouse.asm | 45 + text/{maps => }/SafariZoneWest.asm | 0 text/{maps => }/SafariZoneWestRestHouse.asm | 0 text/SaffronCity.asm | 152 + text/{maps => }/SaffronGates.asm | 5 +- text/SaffronGym.asm | 238 + text/{maps => }/SaffronMart.asm | 0 text/SaffronPidgeyHouse.asm | 27 + text/{maps => }/SaffronPokecenter.asm | 0 text/SeafoamIslandsB4F.asm | 14 + text/SilphCo10F.asm | 68 + text/SilphCo11F.asm | 115 + text/{maps => }/SilphCo1F.asm | 0 text/SilphCo2F.asm | 97 + text/{maps => }/SilphCo3F.asm | 0 text/{maps => }/SilphCo4F.asm | 0 text/{maps => }/SilphCo5F.asm | 0 text/{maps => }/SilphCo6F.asm | 0 text/{maps => }/SilphCo7F.asm | 0 text/{maps => }/SilphCo8F.asm | 0 text/{maps => }/SilphCo9F.asm | 0 text/{maps => }/UndergroundPathRoute6.asm | 0 text/{maps => }/UndergroundPathRoute7.asm | 0 text/{maps => }/UndergroundPathRoute7Copy.asm | 0 text/{maps => }/UndergroundPathRoute8.asm | 0 text/VermilionCity.asm | 169 + text/VermilionDock.asm | 3 + text/VermilionGym.asm | 167 + text/{maps => }/VermilionMart.asm | 0 text/VermilionOldRodHouse.asm | 55 + text/VermilionPidgeyHouse.asm | 22 + text/{maps => }/VermilionPokecenter.asm | 0 text/{maps => }/VictoryRoad1F.asm | 0 text/VictoryRoad2F.asm | 86 + text/{maps => }/VictoryRoad3F.asm | 0 text/ViridianCity.asm | 195 + text/{maps => }/ViridianForest.asm | 0 text/{maps => }/ViridianForestNorthGate.asm | 0 text/{maps => }/ViridianForestSouthGate.asm | 0 text/ViridianGym.asm | 240 + text/ViridianMart.asm | 33 + text/{maps => }/ViridianNicknameHouse.asm | 0 text/{maps => }/ViridianPokecenter.asm | 0 text/{maps => }/ViridianSchoolHouse.asm | 0 text/WardensHouse.asm | 86 + text/item_names.asm | 98 - text/map_names.asm | 107 - text/maps/BeachHouse.asm | 103 - text/maps/BikeShop.asm | 70 - text/maps/BillsHouse.asm | 92 - text/maps/BluesHouse.asm | 41 - text/maps/CeladonCity.asm | 152 - text/maps/CeladonDiner.asm | 59 - text/maps/CeladonGym.asm | 219 - text/maps/CeladonMansion1F.asm | 64 - text/maps/CeladonMansion3F.asm | 117 - text/maps/CeladonMart3F.asm | 98 - text/maps/CeladonMartRoof.asm | 138 - text/maps/CeruleanCaveB1F.asm | 2 - text/maps/CeruleanCity.asm | 233 - text/maps/CeruleanGym.asm | 134 - text/maps/CeruleanTradeHouse.asm | 39 - text/maps/ChampionsRoom.asm | 146 - text/maps/CinnabarGym.asm | 253 - text/maps/CinnabarLabFossilRoom.asm | 78 - text/maps/CinnabarLabMetronomeRoom.asm | 63 - text/maps/CopycatsHouse1F.asm | 20 - text/maps/CopycatsHouse2F.asm | 97 - text/maps/Daycare.asm | 96 - text/maps/FuchsiaGoodRodHouse.asm | 43 - text/maps/FuchsiaGym.asm | 220 - text/maps/GameCorner.asm | 181 - text/maps/LancesRoom.asm | 63 - text/maps/LavenderCuboneHouse.asm | 24 - text/maps/MrFujisHouse.asm | 86 - text/maps/MrPsychicsHouse.asm | 25 - text/maps/MtMoonB1F.asm | 3 - text/maps/MtMoonB2F.asm | 125 - text/maps/MtMoonPokecenter.asm | 48 - text/maps/Museum1F.asm | 107 - text/maps/NameRatersHouse.asm | 60 - text/maps/OaksLab.asm | 396 -- text/maps/PalletTown.asm | 67 - text/maps/PewterGym.asm | 184 - text/maps/PewterNidoranHouse.asm | 24 - text/maps/PokemonFanClub.asm | 178 - text/maps/PokemonTower7F.asm | 49 - text/maps/PowerPlant.asm | 6 - text/maps/RocketHideoutB1F.asm | 73 - text/maps/RocketHideoutB4F.asm | 65 - text/maps/RocketHideoutElevator.asm | 3 - text/maps/Route1.asm | 49 - text/maps/Route12Gate2F.asm | 42 - text/maps/Route12SuperRodHouse.asm | 61 - text/maps/Route15.asm | 171 - text/maps/Route16FlyHouse.asm | 31 - text/maps/Route22Gate.asm | 20 - text/maps/Route23.asm | 39 - text/maps/Route24.asm | 184 - text/maps/SSAnne1FRooms.asm | 104 - text/maps/SSAnneB1FRooms.asm | 112 - text/maps/SSAnneCaptainsRoom.asm | 62 - text/maps/SafariZoneGate.asm | 143 - text/maps/SafariZoneSecretHouse.asm | 44 - text/maps/SaffronCity.asm | 151 - text/maps/SaffronGym.asm | 236 - text/maps/SaffronPidgeyHouse.asm | 26 - text/maps/SeafoamIslandsB4F.asm | 13 - text/maps/SilphCo10F.asm | 66 - text/maps/SilphCo11F.asm | 114 - text/maps/SilphCo2F.asm | 96 - text/maps/VermilionCity.asm | 167 - text/maps/VermilionDock.asm | 3 - text/maps/VermilionGym.asm | 166 - text/maps/VermilionOldRodHouse.asm | 54 - text/maps/VermilionPidgeyHouse.asm | 21 - text/maps/VictoryRoad2F.asm | 85 - text/maps/ViridianCity.asm | 194 - text/maps/ViridianGym.asm | 237 - text/maps/ViridianMart.asm | 32 - text/maps/WardensHouse.asm | 84 - text/monster_names.asm | 191 - text/oakspeech.asm | 55 - text/pokedex_ratings.asm | 4 +- text/trainer_names.asm | 48 - text/type_names.asm | 48 - text/unused_names.asm | 20 - tools/gfx.c | 71 +- tools/pic.py | 491 ++ tools/unnamed.py | 109 + vram.asm | 44 +- wram.asm | 2369 ++++---- 3267 files changed, 76665 insertions(+), 81932 deletions(-) create mode 100755 .travis/webhook.sh create mode 100644 audio/alternate_tempo.asm create mode 100644 audio/low_health_alarm.asm create mode 100644 audio/notes.asm create mode 100644 audio/play_battle_music.asm create mode 100644 audio/poke_flute.asm create mode 100644 audio/pokedex_rating_sfx.asm create mode 100644 constants/audio_constants.asm create mode 100644 constants/battle_constants.asm delete mode 100755 constants/connection_constants.asm delete mode 100755 constants/evolution_constants.asm create mode 100644 constants/gfx_constants.asm create mode 100644 constants/icon_constants.asm create mode 100644 constants/input_constants.asm create mode 100755 constants/map_data_constants.asm create mode 100644 constants/map_object_constants.asm create mode 100644 constants/menu_constants.asm create mode 100755 constants/pokemon_data_constants.asm create mode 100644 constants/script_constants.asm create mode 100644 constants/serial_constants.asm create mode 100644 constants/sprite_data_constants.asm delete mode 100755 constants/starter_mons.asm delete mode 100755 constants/status_constants.asm create mode 100644 constants/tileset_constants.asm delete mode 100644 constants/tilesets.asm delete mode 100755 data/animations.asm delete mode 100644 data/baseStats/abra.asm delete mode 100644 data/baseStats/aerodactyl.asm delete mode 100644 data/baseStats/alakazam.asm delete mode 100644 data/baseStats/arbok.asm delete mode 100644 data/baseStats/arcanine.asm delete mode 100644 data/baseStats/articuno.asm delete mode 100644 data/baseStats/beedrill.asm delete mode 100644 data/baseStats/bellsprout.asm delete mode 100644 data/baseStats/blastoise.asm delete mode 100644 data/baseStats/bulbasaur.asm delete mode 100644 data/baseStats/butterfree.asm delete mode 100644 data/baseStats/caterpie.asm delete mode 100644 data/baseStats/chansey.asm delete mode 100644 data/baseStats/charizard.asm delete mode 100644 data/baseStats/charmander.asm delete mode 100644 data/baseStats/charmeleon.asm delete mode 100644 data/baseStats/clefable.asm delete mode 100644 data/baseStats/clefairy.asm delete mode 100644 data/baseStats/cloyster.asm delete mode 100644 data/baseStats/cubone.asm delete mode 100644 data/baseStats/dewgong.asm delete mode 100644 data/baseStats/diglett.asm delete mode 100644 data/baseStats/ditto.asm delete mode 100644 data/baseStats/dodrio.asm delete mode 100644 data/baseStats/doduo.asm delete mode 100644 data/baseStats/dragonair.asm delete mode 100644 data/baseStats/dragonite.asm delete mode 100644 data/baseStats/dratini.asm delete mode 100644 data/baseStats/drowzee.asm delete mode 100644 data/baseStats/dugtrio.asm delete mode 100644 data/baseStats/eevee.asm delete mode 100644 data/baseStats/ekans.asm delete mode 100644 data/baseStats/electabuzz.asm delete mode 100644 data/baseStats/electrode.asm delete mode 100644 data/baseStats/exeggcute.asm delete mode 100644 data/baseStats/exeggutor.asm delete mode 100644 data/baseStats/farfetchd.asm delete mode 100644 data/baseStats/fearow.asm delete mode 100644 data/baseStats/flareon.asm delete mode 100644 data/baseStats/gastly.asm delete mode 100644 data/baseStats/gengar.asm delete mode 100644 data/baseStats/geodude.asm delete mode 100644 data/baseStats/gloom.asm delete mode 100644 data/baseStats/golbat.asm delete mode 100644 data/baseStats/goldeen.asm delete mode 100644 data/baseStats/golduck.asm delete mode 100644 data/baseStats/golem.asm delete mode 100644 data/baseStats/graveler.asm delete mode 100644 data/baseStats/grimer.asm delete mode 100644 data/baseStats/growlithe.asm delete mode 100644 data/baseStats/gyarados.asm delete mode 100644 data/baseStats/haunter.asm delete mode 100644 data/baseStats/hitmonchan.asm delete mode 100644 data/baseStats/hitmonlee.asm delete mode 100644 data/baseStats/horsea.asm delete mode 100644 data/baseStats/hypno.asm delete mode 100644 data/baseStats/ivysaur.asm delete mode 100644 data/baseStats/jigglypuff.asm delete mode 100644 data/baseStats/jolteon.asm delete mode 100644 data/baseStats/jynx.asm delete mode 100644 data/baseStats/kabuto.asm delete mode 100644 data/baseStats/kabutops.asm delete mode 100644 data/baseStats/kadabra.asm delete mode 100644 data/baseStats/kakuna.asm delete mode 100644 data/baseStats/kangaskhan.asm delete mode 100644 data/baseStats/kingler.asm delete mode 100644 data/baseStats/koffing.asm delete mode 100644 data/baseStats/krabby.asm delete mode 100644 data/baseStats/lapras.asm delete mode 100644 data/baseStats/lickitung.asm delete mode 100644 data/baseStats/machamp.asm delete mode 100644 data/baseStats/machoke.asm delete mode 100644 data/baseStats/machop.asm delete mode 100644 data/baseStats/magikarp.asm delete mode 100644 data/baseStats/magmar.asm delete mode 100644 data/baseStats/magnemite.asm delete mode 100644 data/baseStats/magneton.asm delete mode 100644 data/baseStats/mankey.asm delete mode 100644 data/baseStats/marowak.asm delete mode 100644 data/baseStats/meowth.asm delete mode 100644 data/baseStats/metapod.asm delete mode 100644 data/baseStats/mew.asm delete mode 100644 data/baseStats/mewtwo.asm delete mode 100644 data/baseStats/moltres.asm delete mode 100644 data/baseStats/mrmime.asm delete mode 100644 data/baseStats/muk.asm delete mode 100644 data/baseStats/nidoking.asm delete mode 100644 data/baseStats/nidoqueen.asm delete mode 100644 data/baseStats/nidoranf.asm delete mode 100644 data/baseStats/nidoranm.asm delete mode 100644 data/baseStats/nidorina.asm delete mode 100644 data/baseStats/nidorino.asm delete mode 100644 data/baseStats/ninetales.asm delete mode 100644 data/baseStats/oddish.asm delete mode 100644 data/baseStats/omanyte.asm delete mode 100644 data/baseStats/omastar.asm delete mode 100644 data/baseStats/onix.asm delete mode 100644 data/baseStats/paras.asm delete mode 100644 data/baseStats/parasect.asm delete mode 100644 data/baseStats/persian.asm delete mode 100644 data/baseStats/pidgeot.asm delete mode 100644 data/baseStats/pidgeotto.asm delete mode 100644 data/baseStats/pidgey.asm delete mode 100644 data/baseStats/pikachu.asm delete mode 100644 data/baseStats/pinsir.asm delete mode 100644 data/baseStats/poliwag.asm delete mode 100644 data/baseStats/poliwhirl.asm delete mode 100644 data/baseStats/poliwrath.asm delete mode 100644 data/baseStats/ponyta.asm delete mode 100644 data/baseStats/porygon.asm delete mode 100644 data/baseStats/primeape.asm delete mode 100644 data/baseStats/psyduck.asm delete mode 100644 data/baseStats/raichu.asm delete mode 100644 data/baseStats/rapidash.asm delete mode 100644 data/baseStats/raticate.asm delete mode 100644 data/baseStats/rattata.asm delete mode 100644 data/baseStats/rhydon.asm delete mode 100644 data/baseStats/rhyhorn.asm delete mode 100644 data/baseStats/sandshrew.asm delete mode 100644 data/baseStats/sandslash.asm delete mode 100644 data/baseStats/scyther.asm delete mode 100644 data/baseStats/seadra.asm delete mode 100644 data/baseStats/seaking.asm delete mode 100644 data/baseStats/seel.asm delete mode 100644 data/baseStats/shellder.asm delete mode 100644 data/baseStats/slowbro.asm delete mode 100644 data/baseStats/slowpoke.asm delete mode 100644 data/baseStats/snorlax.asm delete mode 100644 data/baseStats/spearow.asm delete mode 100644 data/baseStats/squirtle.asm delete mode 100644 data/baseStats/starmie.asm delete mode 100644 data/baseStats/staryu.asm delete mode 100644 data/baseStats/tangela.asm delete mode 100644 data/baseStats/tauros.asm delete mode 100644 data/baseStats/tentacool.asm delete mode 100644 data/baseStats/tentacruel.asm delete mode 100644 data/baseStats/vaporeon.asm delete mode 100644 data/baseStats/venomoth.asm delete mode 100644 data/baseStats/venonat.asm delete mode 100644 data/baseStats/venusaur.asm delete mode 100644 data/baseStats/victreebel.asm delete mode 100644 data/baseStats/vileplume.asm delete mode 100644 data/baseStats/voltorb.asm delete mode 100644 data/baseStats/vulpix.asm delete mode 100644 data/baseStats/wartortle.asm delete mode 100644 data/baseStats/weedle.asm delete mode 100644 data/baseStats/weepinbell.asm delete mode 100644 data/baseStats/weezing.asm delete mode 100644 data/baseStats/wigglytuff.asm delete mode 100644 data/baseStats/zapdos.asm delete mode 100644 data/baseStats/zubat.asm delete mode 100755 data/base_stats.asm create mode 100644 data/battle/always_happen_effects.asm create mode 100644 data/battle/critical_hit_moves.asm create mode 100644 data/battle/residual_effects_1.asm create mode 100644 data/battle/residual_effects_2.asm create mode 100644 data/battle/set_damage_effects.asm create mode 100644 data/battle/special_effects.asm create mode 100644 data/battle/stat_modifiers.asm create mode 100644 data/battle/stat_names.asm create mode 100644 data/battle/unused_critical_hit_moves.asm create mode 100644 data/battle_anims/base_coords.asm create mode 100644 data/battle_anims/frame_blocks.asm create mode 100644 data/battle_anims/special_effect_pointers.asm create mode 100644 data/battle_anims/special_effects.asm create mode 100644 data/battle_anims/subanimations.asm delete mode 100755 data/bike_riding_tilesets.asm delete mode 100644 data/collision.asm rename data/{credit_mons.asm => credits/credits_mons.asm} (100%) rename data/{ => credits}/credits_order.asm (91%) rename {text => data/credits}/credits_text.asm (99%) delete mode 100755 data/cries.asm delete mode 100755 data/dungeon_tilesets.asm create mode 100644 data/events/bench_guys.asm create mode 100644 data/events/card_key_coords.asm create mode 100644 data/events/card_key_maps.asm create mode 100755 data/events/hidden_coins.asm create mode 100755 data/events/hidden_item_coords.asm create mode 100755 data/events/hidden_objects.asm create mode 100755 data/events/prize_mon_levels.asm create mode 100755 data/events/prizes.asm rename data/{ => events}/slot_machine_wheels.asm (100%) create mode 100755 data/events/trades.asm delete mode 100755 data/evos_moves.asm delete mode 100644 data/facing.asm delete mode 100755 data/force_bike_surf.asm delete mode 100755 data/good_rod.asm create mode 100644 data/growth_rates.asm delete mode 100755 data/hidden_coins.asm delete mode 100755 data/hidden_item_coords.asm delete mode 100755 data/hidden_objects.asm delete mode 100755 data/hide_show_data.asm create mode 100644 data/icon_pointers.asm delete mode 100755 data/item_prices.asm create mode 100644 data/items/guard_drink_items.asm create mode 100755 data/items/key_items.asm create mode 100755 data/items/marts.asm create mode 100755 data/items/names.asm create mode 100755 data/items/prices.asm create mode 100755 data/items/tm_prices.asm create mode 100644 data/items/use_overworld.asm create mode 100644 data/items/use_party.asm create mode 100644 data/items/vending_prices.asm delete mode 100755 data/key_items.asm delete mode 100755 data/mapHeaders/AgathasRoom.asm delete mode 100755 data/mapHeaders/BikeShop.asm delete mode 100755 data/mapHeaders/BillsHouse.asm delete mode 100755 data/mapHeaders/BluesHouse.asm delete mode 100755 data/mapHeaders/BrunosRoom.asm delete mode 100755 data/mapHeaders/CeladonChiefHouse.asm delete mode 100755 data/mapHeaders/CeladonCity.asm delete mode 100755 data/mapHeaders/CeladonDiner.asm delete mode 100755 data/mapHeaders/CeladonGym.asm delete mode 100755 data/mapHeaders/CeladonHotel.asm delete mode 100755 data/mapHeaders/CeladonMansion1F.asm delete mode 100755 data/mapHeaders/CeladonMansion2F.asm delete mode 100755 data/mapHeaders/CeladonMansion3F.asm delete mode 100755 data/mapHeaders/CeladonMansionRoof.asm delete mode 100755 data/mapHeaders/CeladonMansionRoofHouse.asm delete mode 100755 data/mapHeaders/CeladonMart1F.asm delete mode 100755 data/mapHeaders/CeladonMart2F.asm delete mode 100755 data/mapHeaders/CeladonMart3F.asm delete mode 100755 data/mapHeaders/CeladonMart4F.asm delete mode 100755 data/mapHeaders/CeladonMart5F.asm delete mode 100755 data/mapHeaders/CeladonMartElevator.asm delete mode 100755 data/mapHeaders/CeladonMartRoof.asm delete mode 100755 data/mapHeaders/CeladonPokecenter.asm delete mode 100755 data/mapHeaders/CeruleanBadgeHouse.asm delete mode 100755 data/mapHeaders/CeruleanCave1F.asm delete mode 100755 data/mapHeaders/CeruleanCave2F.asm delete mode 100755 data/mapHeaders/CeruleanCaveB1F.asm delete mode 100755 data/mapHeaders/CeruleanCity.asm delete mode 100755 data/mapHeaders/CeruleanGym.asm delete mode 100755 data/mapHeaders/CeruleanMart.asm delete mode 100755 data/mapHeaders/CeruleanPokecenter.asm delete mode 100755 data/mapHeaders/CeruleanTradeHouse.asm delete mode 100755 data/mapHeaders/CeruleanTrashedHouse.asm delete mode 100755 data/mapHeaders/ChampionsRoom.asm delete mode 100755 data/mapHeaders/CinnabarGym.asm delete mode 100755 data/mapHeaders/CinnabarIsland.asm delete mode 100755 data/mapHeaders/CinnabarLab.asm delete mode 100755 data/mapHeaders/CinnabarLabFossilRoom.asm delete mode 100755 data/mapHeaders/CinnabarLabMetronomeRoom.asm delete mode 100755 data/mapHeaders/CinnabarLabTradeRoom.asm delete mode 100755 data/mapHeaders/CinnabarMart.asm delete mode 100755 data/mapHeaders/CinnabarPokecenter.asm delete mode 100755 data/mapHeaders/Colosseum.asm delete mode 100755 data/mapHeaders/CopycatsHouse1F.asm delete mode 100755 data/mapHeaders/CopycatsHouse2F.asm delete mode 100755 data/mapHeaders/Daycare.asm delete mode 100755 data/mapHeaders/DiglettsCave.asm delete mode 100755 data/mapHeaders/DiglettsCaveRoute11.asm delete mode 100755 data/mapHeaders/DiglettsCaveRoute2.asm delete mode 100755 data/mapHeaders/FightingDojo.asm delete mode 100755 data/mapHeaders/FuchsiaBillsGrandpasHouse.asm delete mode 100755 data/mapHeaders/FuchsiaCity.asm delete mode 100755 data/mapHeaders/FuchsiaGoodRodHouse.asm delete mode 100755 data/mapHeaders/FuchsiaGym.asm delete mode 100755 data/mapHeaders/FuchsiaMart.asm delete mode 100755 data/mapHeaders/FuchsiaMeetingRoom.asm delete mode 100755 data/mapHeaders/FuchsiaPokecenter.asm delete mode 100755 data/mapHeaders/GameCorner.asm delete mode 100755 data/mapHeaders/GameCornerPrizeRoom.asm delete mode 100755 data/mapHeaders/HallOfFame.asm delete mode 100755 data/mapHeaders/IndigoPlateau.asm delete mode 100755 data/mapHeaders/IndigoPlateauLobby.asm delete mode 100755 data/mapHeaders/LancesRoom.asm delete mode 100755 data/mapHeaders/LavenderCuboneHouse.asm delete mode 100755 data/mapHeaders/LavenderMart.asm delete mode 100755 data/mapHeaders/LavenderPokecenter.asm delete mode 100755 data/mapHeaders/LavenderTown.asm delete mode 100755 data/mapHeaders/LoreleisRoom.asm delete mode 100755 data/mapHeaders/MrFujisHouse.asm delete mode 100755 data/mapHeaders/MrPsychicsHouse.asm delete mode 100755 data/mapHeaders/MtMoon1F.asm delete mode 100755 data/mapHeaders/MtMoonB1F.asm delete mode 100755 data/mapHeaders/MtMoonB2F.asm delete mode 100755 data/mapHeaders/MtMoonPokecenter.asm delete mode 100755 data/mapHeaders/Museum1F.asm delete mode 100755 data/mapHeaders/Museum2F.asm delete mode 100755 data/mapHeaders/NameRatersHouse.asm delete mode 100755 data/mapHeaders/OaksLab.asm delete mode 100755 data/mapHeaders/PalletTown.asm delete mode 100755 data/mapHeaders/PewterCity.asm delete mode 100755 data/mapHeaders/PewterGym.asm delete mode 100755 data/mapHeaders/PewterMart.asm delete mode 100755 data/mapHeaders/PewterNidoranHouse.asm delete mode 100755 data/mapHeaders/PewterPokecenter.asm delete mode 100755 data/mapHeaders/PewterSpeechHouse.asm delete mode 100755 data/mapHeaders/PokemonFanClub.asm delete mode 100755 data/mapHeaders/PokemonMansion1F.asm delete mode 100755 data/mapHeaders/PokemonMansion2F.asm delete mode 100755 data/mapHeaders/PokemonMansion3F.asm delete mode 100755 data/mapHeaders/PokemonMansionB1F.asm delete mode 100755 data/mapHeaders/PokemonTower1F.asm delete mode 100755 data/mapHeaders/PokemonTower2F.asm delete mode 100755 data/mapHeaders/PokemonTower3F.asm delete mode 100755 data/mapHeaders/PokemonTower4F.asm delete mode 100755 data/mapHeaders/PokemonTower5F.asm delete mode 100755 data/mapHeaders/PokemonTower6F.asm delete mode 100755 data/mapHeaders/PokemonTower7F.asm delete mode 100755 data/mapHeaders/PowerPlant.asm delete mode 100755 data/mapHeaders/RedsHouse1F.asm delete mode 100755 data/mapHeaders/RedsHouse2F.asm delete mode 100755 data/mapHeaders/RockTunnel1F.asm delete mode 100755 data/mapHeaders/RockTunnelB1F.asm delete mode 100755 data/mapHeaders/RockTunnelPokecenter.asm delete mode 100755 data/mapHeaders/RocketHideoutB1F.asm delete mode 100755 data/mapHeaders/RocketHideoutB2F.asm delete mode 100755 data/mapHeaders/RocketHideoutB3F.asm delete mode 100755 data/mapHeaders/RocketHideoutB4F.asm delete mode 100755 data/mapHeaders/RocketHideoutElevator.asm delete mode 100755 data/mapHeaders/Route1.asm delete mode 100755 data/mapHeaders/Route10.asm delete mode 100755 data/mapHeaders/Route11.asm delete mode 100755 data/mapHeaders/Route11Gate1F.asm delete mode 100755 data/mapHeaders/Route11Gate2F.asm delete mode 100755 data/mapHeaders/Route12.asm delete mode 100755 data/mapHeaders/Route12Gate1F.asm delete mode 100755 data/mapHeaders/Route12Gate2F.asm delete mode 100755 data/mapHeaders/Route12SuperRodHouse.asm delete mode 100755 data/mapHeaders/Route13.asm delete mode 100755 data/mapHeaders/Route14.asm delete mode 100755 data/mapHeaders/Route15.asm delete mode 100755 data/mapHeaders/Route15Gate1F.asm delete mode 100755 data/mapHeaders/Route15Gate2F.asm delete mode 100755 data/mapHeaders/Route16.asm delete mode 100755 data/mapHeaders/Route16FlyHouse.asm delete mode 100755 data/mapHeaders/Route16Gate1F.asm delete mode 100755 data/mapHeaders/Route16Gate2F.asm delete mode 100755 data/mapHeaders/Route17.asm delete mode 100755 data/mapHeaders/Route18.asm delete mode 100755 data/mapHeaders/Route18Gate1F.asm delete mode 100755 data/mapHeaders/Route18Gate2F.asm delete mode 100755 data/mapHeaders/Route19.asm delete mode 100755 data/mapHeaders/Route2.asm delete mode 100755 data/mapHeaders/Route20.asm delete mode 100755 data/mapHeaders/Route21.asm delete mode 100755 data/mapHeaders/Route22.asm delete mode 100755 data/mapHeaders/Route22Gate.asm delete mode 100755 data/mapHeaders/Route23.asm delete mode 100755 data/mapHeaders/Route24.asm delete mode 100755 data/mapHeaders/Route25.asm delete mode 100755 data/mapHeaders/Route2Gate.asm delete mode 100755 data/mapHeaders/Route2TradeHouse.asm delete mode 100755 data/mapHeaders/Route3.asm delete mode 100755 data/mapHeaders/Route4.asm delete mode 100755 data/mapHeaders/Route5.asm delete mode 100755 data/mapHeaders/Route5Gate.asm delete mode 100755 data/mapHeaders/Route6.asm delete mode 100755 data/mapHeaders/Route6Gate.asm delete mode 100755 data/mapHeaders/Route7.asm delete mode 100755 data/mapHeaders/Route7Gate.asm delete mode 100755 data/mapHeaders/Route8.asm delete mode 100755 data/mapHeaders/Route8Gate.asm delete mode 100755 data/mapHeaders/Route9.asm delete mode 100755 data/mapHeaders/SSAnne1F.asm delete mode 100755 data/mapHeaders/SSAnne1FRooms.asm delete mode 100755 data/mapHeaders/SSAnne2F.asm delete mode 100755 data/mapHeaders/SSAnne2FRooms.asm delete mode 100755 data/mapHeaders/SSAnne3F.asm delete mode 100755 data/mapHeaders/SSAnneB1F.asm delete mode 100755 data/mapHeaders/SSAnneB1FRooms.asm delete mode 100755 data/mapHeaders/SSAnneBow.asm delete mode 100755 data/mapHeaders/SSAnneCaptainsRoom.asm delete mode 100755 data/mapHeaders/SSAnneKitchen.asm delete mode 100755 data/mapHeaders/SafariZoneCenter.asm delete mode 100755 data/mapHeaders/SafariZoneCenterRestHouse.asm delete mode 100755 data/mapHeaders/SafariZoneEast.asm delete mode 100755 data/mapHeaders/SafariZoneEastRestHouse.asm delete mode 100755 data/mapHeaders/SafariZoneGate.asm delete mode 100755 data/mapHeaders/SafariZoneNorth.asm delete mode 100755 data/mapHeaders/SafariZoneNorthRestHouse.asm delete mode 100755 data/mapHeaders/SafariZoneSecretHouse.asm delete mode 100755 data/mapHeaders/SafariZoneWest.asm delete mode 100755 data/mapHeaders/SafariZoneWestRestHouse.asm delete mode 100755 data/mapHeaders/SaffronCity.asm delete mode 100755 data/mapHeaders/SaffronGym.asm delete mode 100755 data/mapHeaders/SaffronMart.asm delete mode 100755 data/mapHeaders/SaffronPidgeyHouse.asm delete mode 100755 data/mapHeaders/SaffronPokecenter.asm delete mode 100755 data/mapHeaders/SeafoamIslands1F.asm delete mode 100755 data/mapHeaders/SeafoamIslandsB1F.asm delete mode 100755 data/mapHeaders/SeafoamIslandsB2F.asm delete mode 100755 data/mapHeaders/SeafoamIslandsB3F.asm delete mode 100755 data/mapHeaders/SeafoamIslandsB4F.asm delete mode 100755 data/mapHeaders/SilphCo10F.asm delete mode 100755 data/mapHeaders/SilphCo11F.asm delete mode 100755 data/mapHeaders/SilphCo1F.asm delete mode 100755 data/mapHeaders/SilphCo2F.asm delete mode 100755 data/mapHeaders/SilphCo3F.asm delete mode 100755 data/mapHeaders/SilphCo4F.asm delete mode 100755 data/mapHeaders/SilphCo5F.asm delete mode 100755 data/mapHeaders/SilphCo6F.asm delete mode 100755 data/mapHeaders/SilphCo7F.asm delete mode 100755 data/mapHeaders/SilphCo8F.asm delete mode 100755 data/mapHeaders/SilphCo9F.asm delete mode 100755 data/mapHeaders/SilphCoElevator.asm delete mode 100755 data/mapHeaders/TradeCenter.asm delete mode 100755 data/mapHeaders/UndergroundPathNorthSouth.asm delete mode 100755 data/mapHeaders/UndergroundPathRoute5.asm delete mode 100755 data/mapHeaders/UndergroundPathRoute6.asm delete mode 100755 data/mapHeaders/UndergroundPathRoute7.asm delete mode 100755 data/mapHeaders/UndergroundPathRoute7Copy.asm delete mode 100755 data/mapHeaders/UndergroundPathRoute8.asm delete mode 100755 data/mapHeaders/UndergroundPathWestEast.asm delete mode 100755 data/mapHeaders/VermilionCity.asm delete mode 100755 data/mapHeaders/VermilionDock.asm delete mode 100755 data/mapHeaders/VermilionGym.asm delete mode 100755 data/mapHeaders/VermilionMart.asm delete mode 100755 data/mapHeaders/VermilionOldRodHouse.asm delete mode 100755 data/mapHeaders/VermilionPidgeyHouse.asm delete mode 100755 data/mapHeaders/VermilionPokecenter.asm delete mode 100755 data/mapHeaders/VermilionTradeHouse.asm delete mode 100755 data/mapHeaders/VictoryRoad1F.asm delete mode 100755 data/mapHeaders/VictoryRoad2F.asm delete mode 100755 data/mapHeaders/VictoryRoad3F.asm delete mode 100755 data/mapHeaders/ViridianCity.asm delete mode 100755 data/mapHeaders/ViridianForest.asm delete mode 100755 data/mapHeaders/ViridianForestNorthGate.asm delete mode 100755 data/mapHeaders/ViridianForestSouthGate.asm delete mode 100755 data/mapHeaders/ViridianGym.asm delete mode 100755 data/mapHeaders/ViridianMart.asm delete mode 100755 data/mapHeaders/ViridianNicknameHouse.asm delete mode 100755 data/mapHeaders/ViridianPokecenter.asm delete mode 100755 data/mapHeaders/ViridianSchoolHouse.asm delete mode 100755 data/mapHeaders/WardensHouse.asm delete mode 100755 data/mapObjects/AgathasRoom.asm delete mode 100644 data/mapObjects/BeachHouse.asm delete mode 100755 data/mapObjects/BikeShop.asm delete mode 100755 data/mapObjects/BillsHouse.asm delete mode 100755 data/mapObjects/BluesHouse.asm delete mode 100755 data/mapObjects/BrunosRoom.asm delete mode 100755 data/mapObjects/CeladonChiefHouse.asm delete mode 100755 data/mapObjects/CeladonCity.asm delete mode 100755 data/mapObjects/CeladonDiner.asm delete mode 100755 data/mapObjects/CeladonGym.asm delete mode 100755 data/mapObjects/CeladonHotel.asm delete mode 100755 data/mapObjects/CeladonMansion1F.asm delete mode 100755 data/mapObjects/CeladonMansion2F.asm delete mode 100755 data/mapObjects/CeladonMansion3F.asm delete mode 100755 data/mapObjects/CeladonMansionRoof.asm delete mode 100755 data/mapObjects/CeladonMansionRoofHouse.asm delete mode 100755 data/mapObjects/CeladonMart1F.asm delete mode 100755 data/mapObjects/CeladonMart2F.asm delete mode 100755 data/mapObjects/CeladonMart3F.asm delete mode 100755 data/mapObjects/CeladonMart4F.asm delete mode 100755 data/mapObjects/CeladonMart5F.asm delete mode 100755 data/mapObjects/CeladonMartElevator.asm delete mode 100755 data/mapObjects/CeladonMartRoof.asm delete mode 100755 data/mapObjects/CeladonPokecenter.asm delete mode 100755 data/mapObjects/CeruleanBadgeHouse.asm delete mode 100755 data/mapObjects/CeruleanCave1F.asm delete mode 100755 data/mapObjects/CeruleanCave2F.asm delete mode 100755 data/mapObjects/CeruleanCaveB1F.asm delete mode 100755 data/mapObjects/CeruleanCity.asm delete mode 100755 data/mapObjects/CeruleanGym.asm delete mode 100755 data/mapObjects/CeruleanMart.asm delete mode 100755 data/mapObjects/CeruleanPokecenter.asm delete mode 100755 data/mapObjects/CeruleanTradeHouse.asm delete mode 100755 data/mapObjects/CeruleanTrashedHouse.asm delete mode 100755 data/mapObjects/ChampionsRoom.asm delete mode 100755 data/mapObjects/CinnabarGym.asm delete mode 100755 data/mapObjects/CinnabarIsland.asm delete mode 100755 data/mapObjects/CinnabarLab.asm delete mode 100755 data/mapObjects/CinnabarLabFossilRoom.asm delete mode 100755 data/mapObjects/CinnabarLabMetronomeRoom.asm delete mode 100755 data/mapObjects/CinnabarLabTradeRoom.asm delete mode 100755 data/mapObjects/CinnabarMart.asm delete mode 100755 data/mapObjects/CinnabarPokecenter.asm delete mode 100644 data/mapObjects/Colosseum.asm delete mode 100755 data/mapObjects/CopycatsHouse1F.asm delete mode 100755 data/mapObjects/CopycatsHouse2F.asm delete mode 100755 data/mapObjects/Daycare.asm delete mode 100755 data/mapObjects/DiglettsCave.asm delete mode 100755 data/mapObjects/DiglettsCaveRoute11.asm delete mode 100755 data/mapObjects/DiglettsCaveRoute2.asm delete mode 100755 data/mapObjects/FightingDojo.asm delete mode 100755 data/mapObjects/FuchsiaBillsGrandpasHouse.asm delete mode 100755 data/mapObjects/FuchsiaCity.asm delete mode 100755 data/mapObjects/FuchsiaGoodRodHouse.asm delete mode 100755 data/mapObjects/FuchsiaGym.asm delete mode 100755 data/mapObjects/FuchsiaMart.asm delete mode 100755 data/mapObjects/FuchsiaMeetingRoom.asm delete mode 100755 data/mapObjects/FuchsiaPokecenter.asm delete mode 100755 data/mapObjects/GameCorner.asm delete mode 100755 data/mapObjects/GameCornerPrizeRoom.asm delete mode 100755 data/mapObjects/HallOfFame.asm delete mode 100755 data/mapObjects/IndigoPlateau.asm delete mode 100755 data/mapObjects/IndigoPlateauLobby.asm delete mode 100755 data/mapObjects/LancesRoom.asm delete mode 100755 data/mapObjects/LavenderCuboneHouse.asm delete mode 100755 data/mapObjects/LavenderMart.asm delete mode 100755 data/mapObjects/LavenderPokecenter.asm delete mode 100755 data/mapObjects/LavenderTown.asm delete mode 100755 data/mapObjects/LoreleisRoom.asm delete mode 100755 data/mapObjects/MrFujisHouse.asm delete mode 100755 data/mapObjects/MrPsychicsHouse.asm delete mode 100755 data/mapObjects/MtMoon1F.asm delete mode 100755 data/mapObjects/MtMoonB1F.asm delete mode 100755 data/mapObjects/MtMoonB2F.asm delete mode 100755 data/mapObjects/MtMoonPokecenter.asm delete mode 100755 data/mapObjects/Museum1F.asm delete mode 100755 data/mapObjects/Museum2F.asm delete mode 100755 data/mapObjects/NameRatersHouse.asm delete mode 100755 data/mapObjects/OaksLab.asm delete mode 100755 data/mapObjects/PalletTown.asm delete mode 100755 data/mapObjects/PewterCity.asm delete mode 100755 data/mapObjects/PewterGym.asm delete mode 100755 data/mapObjects/PewterMart.asm delete mode 100755 data/mapObjects/PewterNidoranHouse.asm delete mode 100755 data/mapObjects/PewterPokecenter.asm delete mode 100755 data/mapObjects/PewterSpeechHouse.asm delete mode 100755 data/mapObjects/PokemonFanClub.asm delete mode 100755 data/mapObjects/PokemonMansion1F.asm delete mode 100755 data/mapObjects/PokemonMansion2F.asm delete mode 100755 data/mapObjects/PokemonMansion3F.asm delete mode 100755 data/mapObjects/PokemonMansionB1F.asm delete mode 100755 data/mapObjects/PokemonTower1F.asm delete mode 100755 data/mapObjects/PokemonTower2F.asm delete mode 100755 data/mapObjects/PokemonTower3F.asm delete mode 100755 data/mapObjects/PokemonTower4F.asm delete mode 100755 data/mapObjects/PokemonTower5F.asm delete mode 100755 data/mapObjects/PokemonTower6F.asm delete mode 100755 data/mapObjects/PokemonTower7F.asm delete mode 100755 data/mapObjects/PowerPlant.asm delete mode 100755 data/mapObjects/RedsHouse1F.asm delete mode 100755 data/mapObjects/RedsHouse2F.asm delete mode 100755 data/mapObjects/RockTunnel1F.asm delete mode 100755 data/mapObjects/RockTunnelB1F.asm delete mode 100755 data/mapObjects/RockTunnelPokecenter.asm delete mode 100755 data/mapObjects/RocketHideoutB1F.asm delete mode 100755 data/mapObjects/RocketHideoutB2F.asm delete mode 100755 data/mapObjects/RocketHideoutB3F.asm delete mode 100755 data/mapObjects/RocketHideoutB4F.asm delete mode 100755 data/mapObjects/RocketHideoutElevator.asm delete mode 100755 data/mapObjects/Route1.asm delete mode 100755 data/mapObjects/Route10.asm delete mode 100755 data/mapObjects/Route11.asm delete mode 100755 data/mapObjects/Route11Gate1F.asm delete mode 100755 data/mapObjects/Route11Gate2F.asm delete mode 100755 data/mapObjects/Route12.asm delete mode 100755 data/mapObjects/Route12Gate1F.asm delete mode 100755 data/mapObjects/Route12Gate2F.asm delete mode 100755 data/mapObjects/Route12SuperRodHouse.asm delete mode 100755 data/mapObjects/Route13.asm delete mode 100755 data/mapObjects/Route14.asm delete mode 100755 data/mapObjects/Route15.asm delete mode 100755 data/mapObjects/Route15Gate1F.asm delete mode 100755 data/mapObjects/Route15Gate2F.asm delete mode 100755 data/mapObjects/Route16.asm delete mode 100755 data/mapObjects/Route16FlyHouse.asm delete mode 100755 data/mapObjects/Route16Gate1F.asm delete mode 100755 data/mapObjects/Route16Gate2F.asm delete mode 100755 data/mapObjects/Route17.asm delete mode 100755 data/mapObjects/Route18.asm delete mode 100755 data/mapObjects/Route18Gate1F.asm delete mode 100755 data/mapObjects/Route18Gate2F.asm delete mode 100755 data/mapObjects/Route19.asm delete mode 100755 data/mapObjects/Route2.asm delete mode 100755 data/mapObjects/Route20.asm delete mode 100755 data/mapObjects/Route21.asm delete mode 100755 data/mapObjects/Route22.asm delete mode 100755 data/mapObjects/Route22Gate.asm delete mode 100755 data/mapObjects/Route23.asm delete mode 100755 data/mapObjects/Route24.asm delete mode 100755 data/mapObjects/Route25.asm delete mode 100755 data/mapObjects/Route2Gate.asm delete mode 100755 data/mapObjects/Route2TradeHouse.asm delete mode 100755 data/mapObjects/Route3.asm delete mode 100755 data/mapObjects/Route4.asm delete mode 100755 data/mapObjects/Route5.asm delete mode 100755 data/mapObjects/Route5Gate.asm delete mode 100755 data/mapObjects/Route6.asm delete mode 100755 data/mapObjects/Route6Gate.asm delete mode 100755 data/mapObjects/Route7.asm delete mode 100755 data/mapObjects/Route7Gate.asm delete mode 100755 data/mapObjects/Route8.asm delete mode 100755 data/mapObjects/Route8Gate.asm delete mode 100755 data/mapObjects/Route9.asm delete mode 100755 data/mapObjects/SSAnne1F.asm delete mode 100755 data/mapObjects/SSAnne1FRooms.asm delete mode 100755 data/mapObjects/SSAnne2F.asm delete mode 100755 data/mapObjects/SSAnne2FRooms.asm delete mode 100755 data/mapObjects/SSAnne3F.asm delete mode 100755 data/mapObjects/SSAnneB1F.asm delete mode 100755 data/mapObjects/SSAnneB1FRooms.asm delete mode 100755 data/mapObjects/SSAnneBow.asm delete mode 100755 data/mapObjects/SSAnneCaptainsRoom.asm delete mode 100755 data/mapObjects/SSAnneKitchen.asm delete mode 100755 data/mapObjects/SafariZoneCenter.asm delete mode 100755 data/mapObjects/SafariZoneCenterRestHouse.asm delete mode 100755 data/mapObjects/SafariZoneEast.asm delete mode 100755 data/mapObjects/SafariZoneEastRestHouse.asm delete mode 100755 data/mapObjects/SafariZoneGate.asm delete mode 100755 data/mapObjects/SafariZoneNorth.asm delete mode 100755 data/mapObjects/SafariZoneNorthRestHouse.asm delete mode 100755 data/mapObjects/SafariZoneSecretHouse.asm delete mode 100755 data/mapObjects/SafariZoneWest.asm delete mode 100755 data/mapObjects/SafariZoneWestRestHouse.asm delete mode 100755 data/mapObjects/SaffronCity.asm delete mode 100755 data/mapObjects/SaffronGym.asm delete mode 100755 data/mapObjects/SaffronMart.asm delete mode 100755 data/mapObjects/SaffronPidgeyHouse.asm delete mode 100755 data/mapObjects/SaffronPokecenter.asm delete mode 100755 data/mapObjects/SeafoamIslands1F.asm delete mode 100755 data/mapObjects/SeafoamIslandsB1F.asm delete mode 100755 data/mapObjects/SeafoamIslandsB2F.asm delete mode 100755 data/mapObjects/SeafoamIslandsB3F.asm delete mode 100755 data/mapObjects/SeafoamIslandsB4F.asm delete mode 100755 data/mapObjects/SilphCo10F.asm delete mode 100755 data/mapObjects/SilphCo11F.asm delete mode 100755 data/mapObjects/SilphCo1F.asm delete mode 100755 data/mapObjects/SilphCo2F.asm delete mode 100755 data/mapObjects/SilphCo3F.asm delete mode 100755 data/mapObjects/SilphCo4F.asm delete mode 100755 data/mapObjects/SilphCo5F.asm delete mode 100755 data/mapObjects/SilphCo6F.asm delete mode 100755 data/mapObjects/SilphCo7F.asm delete mode 100755 data/mapObjects/SilphCo8F.asm delete mode 100755 data/mapObjects/SilphCo9F.asm delete mode 100755 data/mapObjects/SilphCoElevator.asm delete mode 100644 data/mapObjects/TradeCenter.asm delete mode 100755 data/mapObjects/UndergroundPathNorthSouth.asm delete mode 100755 data/mapObjects/UndergroundPathRoute5.asm delete mode 100755 data/mapObjects/UndergroundPathRoute6.asm delete mode 100755 data/mapObjects/UndergroundPathRoute7.asm delete mode 100755 data/mapObjects/UndergroundPathRoute7Copy.asm delete mode 100755 data/mapObjects/UndergroundPathRoute8.asm delete mode 100755 data/mapObjects/UndergroundPathWestEast.asm delete mode 100755 data/mapObjects/VermilionCity.asm delete mode 100755 data/mapObjects/VermilionDock.asm delete mode 100755 data/mapObjects/VermilionGym.asm delete mode 100755 data/mapObjects/VermilionMart.asm delete mode 100755 data/mapObjects/VermilionOldRodHouse.asm delete mode 100755 data/mapObjects/VermilionPidgeyHouse.asm delete mode 100755 data/mapObjects/VermilionPokecenter.asm delete mode 100755 data/mapObjects/VermilionTradeHouse.asm delete mode 100755 data/mapObjects/VictoryRoad1F.asm delete mode 100755 data/mapObjects/VictoryRoad2F.asm delete mode 100755 data/mapObjects/VictoryRoad3F.asm delete mode 100755 data/mapObjects/ViridianCity.asm delete mode 100755 data/mapObjects/ViridianForest.asm delete mode 100755 data/mapObjects/ViridianForestNorthGate.asm delete mode 100755 data/mapObjects/ViridianForestSouthGate.asm delete mode 100755 data/mapObjects/ViridianGym.asm delete mode 100755 data/mapObjects/ViridianMart.asm delete mode 100755 data/mapObjects/ViridianNicknameHouse.asm delete mode 100755 data/mapObjects/ViridianPokecenter.asm delete mode 100755 data/mapObjects/ViridianSchoolHouse.asm delete mode 100755 data/mapObjects/WardensHouse.asm delete mode 100644 data/map_songs.asm create mode 100644 data/maps/badge_maps.asm create mode 100644 data/maps/dungeon_maps.asm create mode 100755 data/maps/force_bike_surf.asm create mode 100755 data/maps/headers/AgathasRoom.asm rename data/{mapHeaders => maps/headers}/BeachHouse.asm (100%) create mode 100755 data/maps/headers/BikeShop.asm create mode 100755 data/maps/headers/BillsHouse.asm create mode 100755 data/maps/headers/BluesHouse.asm create mode 100755 data/maps/headers/BrunosRoom.asm create mode 100755 data/maps/headers/CeladonChiefHouse.asm create mode 100755 data/maps/headers/CeladonCity.asm create mode 100755 data/maps/headers/CeladonDiner.asm create mode 100755 data/maps/headers/CeladonGym.asm create mode 100755 data/maps/headers/CeladonHotel.asm create mode 100755 data/maps/headers/CeladonMansion1F.asm create mode 100755 data/maps/headers/CeladonMansion2F.asm create mode 100755 data/maps/headers/CeladonMansion3F.asm create mode 100755 data/maps/headers/CeladonMansionRoof.asm create mode 100755 data/maps/headers/CeladonMansionRoofHouse.asm create mode 100755 data/maps/headers/CeladonMart1F.asm create mode 100755 data/maps/headers/CeladonMart2F.asm create mode 100755 data/maps/headers/CeladonMart3F.asm create mode 100755 data/maps/headers/CeladonMart4F.asm create mode 100755 data/maps/headers/CeladonMart5F.asm create mode 100755 data/maps/headers/CeladonMartElevator.asm create mode 100755 data/maps/headers/CeladonMartRoof.asm create mode 100755 data/maps/headers/CeladonPokecenter.asm create mode 100755 data/maps/headers/CeruleanBadgeHouse.asm create mode 100755 data/maps/headers/CeruleanCave1F.asm create mode 100755 data/maps/headers/CeruleanCave2F.asm create mode 100755 data/maps/headers/CeruleanCaveB1F.asm create mode 100755 data/maps/headers/CeruleanCity.asm create mode 100755 data/maps/headers/CeruleanGym.asm create mode 100755 data/maps/headers/CeruleanMart.asm create mode 100755 data/maps/headers/CeruleanPokecenter.asm create mode 100755 data/maps/headers/CeruleanTradeHouse.asm create mode 100755 data/maps/headers/CeruleanTrashedHouse.asm create mode 100755 data/maps/headers/ChampionsRoom.asm create mode 100755 data/maps/headers/CinnabarGym.asm create mode 100755 data/maps/headers/CinnabarIsland.asm create mode 100755 data/maps/headers/CinnabarLab.asm create mode 100755 data/maps/headers/CinnabarLabFossilRoom.asm create mode 100755 data/maps/headers/CinnabarLabMetronomeRoom.asm create mode 100755 data/maps/headers/CinnabarLabTradeRoom.asm create mode 100755 data/maps/headers/CinnabarMart.asm create mode 100755 data/maps/headers/CinnabarPokecenter.asm create mode 100755 data/maps/headers/Colosseum.asm create mode 100755 data/maps/headers/CopycatsHouse1F.asm create mode 100755 data/maps/headers/CopycatsHouse2F.asm create mode 100755 data/maps/headers/Daycare.asm create mode 100755 data/maps/headers/DiglettsCave.asm create mode 100755 data/maps/headers/DiglettsCaveRoute11.asm create mode 100755 data/maps/headers/DiglettsCaveRoute2.asm create mode 100755 data/maps/headers/FightingDojo.asm create mode 100755 data/maps/headers/FuchsiaBillsGrandpasHouse.asm create mode 100755 data/maps/headers/FuchsiaCity.asm create mode 100755 data/maps/headers/FuchsiaGoodRodHouse.asm create mode 100755 data/maps/headers/FuchsiaGym.asm create mode 100755 data/maps/headers/FuchsiaMart.asm create mode 100755 data/maps/headers/FuchsiaMeetingRoom.asm create mode 100755 data/maps/headers/FuchsiaPokecenter.asm create mode 100755 data/maps/headers/GameCorner.asm create mode 100755 data/maps/headers/GameCornerPrizeRoom.asm create mode 100755 data/maps/headers/HallOfFame.asm create mode 100755 data/maps/headers/IndigoPlateau.asm create mode 100755 data/maps/headers/IndigoPlateauLobby.asm create mode 100755 data/maps/headers/LancesRoom.asm create mode 100755 data/maps/headers/LavenderCuboneHouse.asm create mode 100755 data/maps/headers/LavenderMart.asm create mode 100755 data/maps/headers/LavenderPokecenter.asm create mode 100755 data/maps/headers/LavenderTown.asm create mode 100755 data/maps/headers/LoreleisRoom.asm create mode 100755 data/maps/headers/MrFujisHouse.asm create mode 100755 data/maps/headers/MrPsychicsHouse.asm create mode 100755 data/maps/headers/MtMoon1F.asm create mode 100755 data/maps/headers/MtMoonB1F.asm create mode 100755 data/maps/headers/MtMoonB2F.asm create mode 100755 data/maps/headers/MtMoonPokecenter.asm create mode 100755 data/maps/headers/Museum1F.asm create mode 100755 data/maps/headers/Museum2F.asm create mode 100755 data/maps/headers/NameRatersHouse.asm create mode 100755 data/maps/headers/OaksLab.asm create mode 100755 data/maps/headers/PalletTown.asm create mode 100755 data/maps/headers/PewterCity.asm create mode 100755 data/maps/headers/PewterGym.asm create mode 100755 data/maps/headers/PewterMart.asm create mode 100755 data/maps/headers/PewterNidoranHouse.asm create mode 100755 data/maps/headers/PewterPokecenter.asm create mode 100755 data/maps/headers/PewterSpeechHouse.asm create mode 100755 data/maps/headers/PokemonFanClub.asm create mode 100755 data/maps/headers/PokemonMansion1F.asm create mode 100755 data/maps/headers/PokemonMansion2F.asm create mode 100755 data/maps/headers/PokemonMansion3F.asm create mode 100755 data/maps/headers/PokemonMansionB1F.asm create mode 100755 data/maps/headers/PokemonTower1F.asm create mode 100755 data/maps/headers/PokemonTower2F.asm create mode 100755 data/maps/headers/PokemonTower3F.asm create mode 100755 data/maps/headers/PokemonTower4F.asm create mode 100755 data/maps/headers/PokemonTower5F.asm create mode 100755 data/maps/headers/PokemonTower6F.asm create mode 100755 data/maps/headers/PokemonTower7F.asm create mode 100755 data/maps/headers/PowerPlant.asm create mode 100755 data/maps/headers/RedsHouse1F.asm create mode 100755 data/maps/headers/RedsHouse2F.asm create mode 100755 data/maps/headers/RockTunnel1F.asm create mode 100755 data/maps/headers/RockTunnelB1F.asm create mode 100755 data/maps/headers/RockTunnelPokecenter.asm create mode 100755 data/maps/headers/RocketHideoutB1F.asm create mode 100755 data/maps/headers/RocketHideoutB2F.asm create mode 100755 data/maps/headers/RocketHideoutB3F.asm create mode 100755 data/maps/headers/RocketHideoutB4F.asm create mode 100755 data/maps/headers/RocketHideoutElevator.asm create mode 100755 data/maps/headers/Route1.asm create mode 100755 data/maps/headers/Route10.asm create mode 100755 data/maps/headers/Route11.asm create mode 100755 data/maps/headers/Route11Gate1F.asm create mode 100755 data/maps/headers/Route11Gate2F.asm create mode 100755 data/maps/headers/Route12.asm create mode 100755 data/maps/headers/Route12Gate1F.asm create mode 100755 data/maps/headers/Route12Gate2F.asm create mode 100755 data/maps/headers/Route12SuperRodHouse.asm create mode 100755 data/maps/headers/Route13.asm create mode 100755 data/maps/headers/Route14.asm create mode 100755 data/maps/headers/Route15.asm create mode 100755 data/maps/headers/Route15Gate1F.asm create mode 100755 data/maps/headers/Route15Gate2F.asm create mode 100755 data/maps/headers/Route16.asm create mode 100755 data/maps/headers/Route16FlyHouse.asm create mode 100755 data/maps/headers/Route16Gate1F.asm create mode 100755 data/maps/headers/Route16Gate2F.asm create mode 100755 data/maps/headers/Route17.asm create mode 100755 data/maps/headers/Route18.asm create mode 100755 data/maps/headers/Route18Gate1F.asm create mode 100755 data/maps/headers/Route18Gate2F.asm create mode 100755 data/maps/headers/Route19.asm create mode 100755 data/maps/headers/Route2.asm create mode 100755 data/maps/headers/Route20.asm create mode 100755 data/maps/headers/Route21.asm create mode 100755 data/maps/headers/Route22.asm create mode 100755 data/maps/headers/Route22Gate.asm create mode 100755 data/maps/headers/Route23.asm create mode 100755 data/maps/headers/Route24.asm create mode 100755 data/maps/headers/Route25.asm create mode 100755 data/maps/headers/Route2Gate.asm create mode 100755 data/maps/headers/Route2TradeHouse.asm create mode 100755 data/maps/headers/Route3.asm create mode 100755 data/maps/headers/Route4.asm create mode 100755 data/maps/headers/Route5.asm create mode 100755 data/maps/headers/Route5Gate.asm create mode 100755 data/maps/headers/Route6.asm create mode 100755 data/maps/headers/Route6Gate.asm create mode 100755 data/maps/headers/Route7.asm create mode 100755 data/maps/headers/Route7Gate.asm create mode 100755 data/maps/headers/Route8.asm create mode 100755 data/maps/headers/Route8Gate.asm create mode 100755 data/maps/headers/Route9.asm create mode 100755 data/maps/headers/SSAnne1F.asm create mode 100755 data/maps/headers/SSAnne1FRooms.asm create mode 100755 data/maps/headers/SSAnne2F.asm create mode 100755 data/maps/headers/SSAnne2FRooms.asm create mode 100755 data/maps/headers/SSAnne3F.asm create mode 100755 data/maps/headers/SSAnneB1F.asm create mode 100755 data/maps/headers/SSAnneB1FRooms.asm create mode 100755 data/maps/headers/SSAnneBow.asm create mode 100755 data/maps/headers/SSAnneCaptainsRoom.asm create mode 100755 data/maps/headers/SSAnneKitchen.asm create mode 100755 data/maps/headers/SafariZoneCenter.asm create mode 100755 data/maps/headers/SafariZoneCenterRestHouse.asm create mode 100755 data/maps/headers/SafariZoneEast.asm create mode 100755 data/maps/headers/SafariZoneEastRestHouse.asm create mode 100755 data/maps/headers/SafariZoneGate.asm create mode 100755 data/maps/headers/SafariZoneNorth.asm create mode 100755 data/maps/headers/SafariZoneNorthRestHouse.asm create mode 100755 data/maps/headers/SafariZoneSecretHouse.asm create mode 100755 data/maps/headers/SafariZoneWest.asm create mode 100755 data/maps/headers/SafariZoneWestRestHouse.asm create mode 100755 data/maps/headers/SaffronCity.asm create mode 100755 data/maps/headers/SaffronGym.asm create mode 100755 data/maps/headers/SaffronMart.asm create mode 100755 data/maps/headers/SaffronPidgeyHouse.asm create mode 100755 data/maps/headers/SaffronPokecenter.asm create mode 100755 data/maps/headers/SeafoamIslands1F.asm create mode 100755 data/maps/headers/SeafoamIslandsB1F.asm create mode 100755 data/maps/headers/SeafoamIslandsB2F.asm create mode 100755 data/maps/headers/SeafoamIslandsB3F.asm create mode 100755 data/maps/headers/SeafoamIslandsB4F.asm create mode 100755 data/maps/headers/SilphCo10F.asm create mode 100755 data/maps/headers/SilphCo11F.asm create mode 100755 data/maps/headers/SilphCo1F.asm create mode 100755 data/maps/headers/SilphCo2F.asm create mode 100755 data/maps/headers/SilphCo3F.asm create mode 100755 data/maps/headers/SilphCo4F.asm create mode 100755 data/maps/headers/SilphCo5F.asm create mode 100755 data/maps/headers/SilphCo6F.asm create mode 100755 data/maps/headers/SilphCo7F.asm create mode 100755 data/maps/headers/SilphCo8F.asm create mode 100755 data/maps/headers/SilphCo9F.asm create mode 100755 data/maps/headers/SilphCoElevator.asm create mode 100755 data/maps/headers/TradeCenter.asm create mode 100755 data/maps/headers/UndergroundPathNorthSouth.asm create mode 100755 data/maps/headers/UndergroundPathRoute5.asm create mode 100755 data/maps/headers/UndergroundPathRoute6.asm create mode 100755 data/maps/headers/UndergroundPathRoute7.asm create mode 100755 data/maps/headers/UndergroundPathRoute7Copy.asm create mode 100755 data/maps/headers/UndergroundPathRoute8.asm create mode 100755 data/maps/headers/UndergroundPathWestEast.asm create mode 100755 data/maps/headers/VermilionCity.asm create mode 100755 data/maps/headers/VermilionDock.asm create mode 100755 data/maps/headers/VermilionGym.asm create mode 100755 data/maps/headers/VermilionMart.asm create mode 100755 data/maps/headers/VermilionOldRodHouse.asm create mode 100755 data/maps/headers/VermilionPidgeyHouse.asm create mode 100755 data/maps/headers/VermilionPokecenter.asm create mode 100755 data/maps/headers/VermilionTradeHouse.asm create mode 100755 data/maps/headers/VictoryRoad1F.asm create mode 100755 data/maps/headers/VictoryRoad2F.asm create mode 100755 data/maps/headers/VictoryRoad3F.asm create mode 100755 data/maps/headers/ViridianCity.asm create mode 100755 data/maps/headers/ViridianForest.asm create mode 100755 data/maps/headers/ViridianForestNorthGate.asm create mode 100755 data/maps/headers/ViridianForestSouthGate.asm create mode 100755 data/maps/headers/ViridianGym.asm create mode 100755 data/maps/headers/ViridianMart.asm create mode 100755 data/maps/headers/ViridianNicknameHouse.asm create mode 100755 data/maps/headers/ViridianPokecenter.asm create mode 100755 data/maps/headers/ViridianSchoolHouse.asm create mode 100755 data/maps/headers/WardensHouse.asm create mode 100755 data/maps/hide_show_data.asm rename data/{ => maps}/map_header_banks.asm (99%) rename data/{ => maps}/map_header_pointers.asm (100%) create mode 100755 data/maps/names.asm create mode 100755 data/maps/objects/AgathasRoom.asm create mode 100644 data/maps/objects/BeachHouse.asm create mode 100755 data/maps/objects/BikeShop.asm create mode 100755 data/maps/objects/BillsHouse.asm create mode 100755 data/maps/objects/BluesHouse.asm create mode 100755 data/maps/objects/BrunosRoom.asm create mode 100755 data/maps/objects/CeladonChiefHouse.asm create mode 100755 data/maps/objects/CeladonCity.asm create mode 100755 data/maps/objects/CeladonDiner.asm create mode 100755 data/maps/objects/CeladonGym.asm create mode 100755 data/maps/objects/CeladonHotel.asm create mode 100755 data/maps/objects/CeladonMansion1F.asm create mode 100755 data/maps/objects/CeladonMansion2F.asm create mode 100755 data/maps/objects/CeladonMansion3F.asm create mode 100755 data/maps/objects/CeladonMansionRoof.asm create mode 100755 data/maps/objects/CeladonMansionRoofHouse.asm create mode 100755 data/maps/objects/CeladonMart1F.asm create mode 100755 data/maps/objects/CeladonMart2F.asm create mode 100755 data/maps/objects/CeladonMart3F.asm create mode 100755 data/maps/objects/CeladonMart4F.asm create mode 100755 data/maps/objects/CeladonMart5F.asm create mode 100755 data/maps/objects/CeladonMartElevator.asm create mode 100755 data/maps/objects/CeladonMartRoof.asm create mode 100755 data/maps/objects/CeladonPokecenter.asm create mode 100755 data/maps/objects/CeruleanBadgeHouse.asm create mode 100755 data/maps/objects/CeruleanCave1F.asm create mode 100755 data/maps/objects/CeruleanCave2F.asm create mode 100755 data/maps/objects/CeruleanCaveB1F.asm create mode 100755 data/maps/objects/CeruleanCity.asm create mode 100755 data/maps/objects/CeruleanGym.asm create mode 100755 data/maps/objects/CeruleanMart.asm create mode 100755 data/maps/objects/CeruleanPokecenter.asm create mode 100755 data/maps/objects/CeruleanTradeHouse.asm create mode 100755 data/maps/objects/CeruleanTrashedHouse.asm create mode 100755 data/maps/objects/ChampionsRoom.asm create mode 100755 data/maps/objects/CinnabarGym.asm create mode 100755 data/maps/objects/CinnabarIsland.asm create mode 100755 data/maps/objects/CinnabarLab.asm create mode 100755 data/maps/objects/CinnabarLabFossilRoom.asm create mode 100755 data/maps/objects/CinnabarLabMetronomeRoom.asm create mode 100755 data/maps/objects/CinnabarLabTradeRoom.asm create mode 100755 data/maps/objects/CinnabarMart.asm create mode 100755 data/maps/objects/CinnabarPokecenter.asm create mode 100644 data/maps/objects/Colosseum.asm create mode 100755 data/maps/objects/CopycatsHouse1F.asm create mode 100755 data/maps/objects/CopycatsHouse2F.asm create mode 100755 data/maps/objects/Daycare.asm create mode 100755 data/maps/objects/DiglettsCave.asm create mode 100755 data/maps/objects/DiglettsCaveRoute11.asm create mode 100755 data/maps/objects/DiglettsCaveRoute2.asm create mode 100755 data/maps/objects/FightingDojo.asm create mode 100755 data/maps/objects/FuchsiaBillsGrandpasHouse.asm create mode 100755 data/maps/objects/FuchsiaCity.asm create mode 100755 data/maps/objects/FuchsiaGoodRodHouse.asm create mode 100755 data/maps/objects/FuchsiaGym.asm create mode 100755 data/maps/objects/FuchsiaMart.asm create mode 100755 data/maps/objects/FuchsiaMeetingRoom.asm create mode 100755 data/maps/objects/FuchsiaPokecenter.asm create mode 100755 data/maps/objects/GameCorner.asm create mode 100755 data/maps/objects/GameCornerPrizeRoom.asm create mode 100755 data/maps/objects/HallOfFame.asm create mode 100755 data/maps/objects/IndigoPlateau.asm create mode 100755 data/maps/objects/IndigoPlateauLobby.asm create mode 100755 data/maps/objects/LancesRoom.asm create mode 100755 data/maps/objects/LavenderCuboneHouse.asm create mode 100755 data/maps/objects/LavenderMart.asm create mode 100755 data/maps/objects/LavenderPokecenter.asm create mode 100755 data/maps/objects/LavenderTown.asm create mode 100755 data/maps/objects/LoreleisRoom.asm create mode 100755 data/maps/objects/MrFujisHouse.asm create mode 100755 data/maps/objects/MrPsychicsHouse.asm create mode 100755 data/maps/objects/MtMoon1F.asm create mode 100755 data/maps/objects/MtMoonB1F.asm create mode 100755 data/maps/objects/MtMoonB2F.asm create mode 100755 data/maps/objects/MtMoonPokecenter.asm create mode 100755 data/maps/objects/Museum1F.asm create mode 100755 data/maps/objects/Museum2F.asm create mode 100755 data/maps/objects/NameRatersHouse.asm create mode 100755 data/maps/objects/OaksLab.asm create mode 100755 data/maps/objects/PalletTown.asm create mode 100755 data/maps/objects/PewterCity.asm create mode 100755 data/maps/objects/PewterGym.asm create mode 100755 data/maps/objects/PewterMart.asm create mode 100755 data/maps/objects/PewterNidoranHouse.asm create mode 100755 data/maps/objects/PewterPokecenter.asm create mode 100755 data/maps/objects/PewterSpeechHouse.asm create mode 100755 data/maps/objects/PokemonFanClub.asm create mode 100755 data/maps/objects/PokemonMansion1F.asm create mode 100755 data/maps/objects/PokemonMansion2F.asm create mode 100755 data/maps/objects/PokemonMansion3F.asm create mode 100755 data/maps/objects/PokemonMansionB1F.asm create mode 100755 data/maps/objects/PokemonTower1F.asm create mode 100755 data/maps/objects/PokemonTower2F.asm create mode 100755 data/maps/objects/PokemonTower3F.asm create mode 100755 data/maps/objects/PokemonTower4F.asm create mode 100755 data/maps/objects/PokemonTower5F.asm create mode 100755 data/maps/objects/PokemonTower6F.asm create mode 100755 data/maps/objects/PokemonTower7F.asm create mode 100755 data/maps/objects/PowerPlant.asm create mode 100755 data/maps/objects/RedsHouse1F.asm create mode 100755 data/maps/objects/RedsHouse2F.asm create mode 100755 data/maps/objects/RockTunnel1F.asm create mode 100755 data/maps/objects/RockTunnelB1F.asm create mode 100755 data/maps/objects/RockTunnelPokecenter.asm create mode 100755 data/maps/objects/RocketHideoutB1F.asm create mode 100755 data/maps/objects/RocketHideoutB2F.asm create mode 100755 data/maps/objects/RocketHideoutB3F.asm create mode 100755 data/maps/objects/RocketHideoutB4F.asm create mode 100755 data/maps/objects/RocketHideoutElevator.asm create mode 100755 data/maps/objects/Route1.asm create mode 100755 data/maps/objects/Route10.asm create mode 100755 data/maps/objects/Route11.asm create mode 100755 data/maps/objects/Route11Gate1F.asm create mode 100755 data/maps/objects/Route11Gate2F.asm create mode 100755 data/maps/objects/Route12.asm create mode 100755 data/maps/objects/Route12Gate1F.asm create mode 100755 data/maps/objects/Route12Gate2F.asm create mode 100755 data/maps/objects/Route12SuperRodHouse.asm create mode 100755 data/maps/objects/Route13.asm create mode 100755 data/maps/objects/Route14.asm create mode 100755 data/maps/objects/Route15.asm create mode 100755 data/maps/objects/Route15Gate1F.asm create mode 100755 data/maps/objects/Route15Gate2F.asm create mode 100755 data/maps/objects/Route16.asm create mode 100755 data/maps/objects/Route16FlyHouse.asm create mode 100755 data/maps/objects/Route16Gate1F.asm create mode 100755 data/maps/objects/Route16Gate2F.asm create mode 100755 data/maps/objects/Route17.asm create mode 100755 data/maps/objects/Route18.asm create mode 100755 data/maps/objects/Route18Gate1F.asm create mode 100755 data/maps/objects/Route18Gate2F.asm create mode 100755 data/maps/objects/Route19.asm create mode 100755 data/maps/objects/Route2.asm create mode 100755 data/maps/objects/Route20.asm create mode 100755 data/maps/objects/Route21.asm create mode 100755 data/maps/objects/Route22.asm create mode 100755 data/maps/objects/Route22Gate.asm create mode 100755 data/maps/objects/Route23.asm create mode 100755 data/maps/objects/Route24.asm create mode 100755 data/maps/objects/Route25.asm create mode 100755 data/maps/objects/Route2Gate.asm create mode 100755 data/maps/objects/Route2TradeHouse.asm create mode 100755 data/maps/objects/Route3.asm create mode 100755 data/maps/objects/Route4.asm create mode 100755 data/maps/objects/Route5.asm create mode 100755 data/maps/objects/Route5Gate.asm create mode 100755 data/maps/objects/Route6.asm create mode 100755 data/maps/objects/Route6Gate.asm create mode 100755 data/maps/objects/Route7.asm create mode 100755 data/maps/objects/Route7Gate.asm create mode 100755 data/maps/objects/Route8.asm create mode 100755 data/maps/objects/Route8Gate.asm create mode 100755 data/maps/objects/Route9.asm create mode 100755 data/maps/objects/SSAnne1F.asm create mode 100755 data/maps/objects/SSAnne1FRooms.asm create mode 100755 data/maps/objects/SSAnne2F.asm create mode 100755 data/maps/objects/SSAnne2FRooms.asm create mode 100755 data/maps/objects/SSAnne3F.asm create mode 100755 data/maps/objects/SSAnneB1F.asm create mode 100755 data/maps/objects/SSAnneB1FRooms.asm create mode 100755 data/maps/objects/SSAnneBow.asm create mode 100755 data/maps/objects/SSAnneCaptainsRoom.asm create mode 100755 data/maps/objects/SSAnneKitchen.asm create mode 100755 data/maps/objects/SafariZoneCenter.asm create mode 100755 data/maps/objects/SafariZoneCenterRestHouse.asm create mode 100755 data/maps/objects/SafariZoneEast.asm create mode 100755 data/maps/objects/SafariZoneEastRestHouse.asm create mode 100755 data/maps/objects/SafariZoneGate.asm create mode 100755 data/maps/objects/SafariZoneNorth.asm create mode 100755 data/maps/objects/SafariZoneNorthRestHouse.asm create mode 100755 data/maps/objects/SafariZoneSecretHouse.asm create mode 100755 data/maps/objects/SafariZoneWest.asm create mode 100755 data/maps/objects/SafariZoneWestRestHouse.asm create mode 100755 data/maps/objects/SaffronCity.asm create mode 100755 data/maps/objects/SaffronGym.asm create mode 100755 data/maps/objects/SaffronMart.asm create mode 100755 data/maps/objects/SaffronPidgeyHouse.asm create mode 100755 data/maps/objects/SaffronPokecenter.asm create mode 100755 data/maps/objects/SeafoamIslands1F.asm create mode 100755 data/maps/objects/SeafoamIslandsB1F.asm create mode 100755 data/maps/objects/SeafoamIslandsB2F.asm create mode 100755 data/maps/objects/SeafoamIslandsB3F.asm create mode 100755 data/maps/objects/SeafoamIslandsB4F.asm create mode 100755 data/maps/objects/SilphCo10F.asm create mode 100755 data/maps/objects/SilphCo11F.asm create mode 100755 data/maps/objects/SilphCo1F.asm create mode 100755 data/maps/objects/SilphCo2F.asm create mode 100755 data/maps/objects/SilphCo3F.asm create mode 100755 data/maps/objects/SilphCo4F.asm create mode 100755 data/maps/objects/SilphCo5F.asm create mode 100755 data/maps/objects/SilphCo6F.asm create mode 100755 data/maps/objects/SilphCo7F.asm create mode 100755 data/maps/objects/SilphCo8F.asm create mode 100755 data/maps/objects/SilphCo9F.asm create mode 100755 data/maps/objects/SilphCoElevator.asm create mode 100644 data/maps/objects/TradeCenter.asm create mode 100755 data/maps/objects/UndergroundPathNorthSouth.asm create mode 100755 data/maps/objects/UndergroundPathRoute5.asm create mode 100755 data/maps/objects/UndergroundPathRoute6.asm create mode 100755 data/maps/objects/UndergroundPathRoute7.asm create mode 100755 data/maps/objects/UndergroundPathRoute7Copy.asm create mode 100755 data/maps/objects/UndergroundPathRoute8.asm create mode 100755 data/maps/objects/UndergroundPathWestEast.asm create mode 100755 data/maps/objects/VermilionCity.asm create mode 100755 data/maps/objects/VermilionDock.asm create mode 100755 data/maps/objects/VermilionGym.asm create mode 100755 data/maps/objects/VermilionMart.asm create mode 100755 data/maps/objects/VermilionOldRodHouse.asm create mode 100755 data/maps/objects/VermilionPidgeyHouse.asm create mode 100755 data/maps/objects/VermilionPokecenter.asm create mode 100755 data/maps/objects/VermilionTradeHouse.asm create mode 100755 data/maps/objects/VictoryRoad1F.asm create mode 100755 data/maps/objects/VictoryRoad2F.asm create mode 100755 data/maps/objects/VictoryRoad3F.asm create mode 100755 data/maps/objects/ViridianCity.asm create mode 100755 data/maps/objects/ViridianForest.asm create mode 100755 data/maps/objects/ViridianForestNorthGate.asm create mode 100755 data/maps/objects/ViridianForestSouthGate.asm create mode 100755 data/maps/objects/ViridianGym.asm create mode 100755 data/maps/objects/ViridianMart.asm create mode 100755 data/maps/objects/ViridianNicknameHouse.asm create mode 100755 data/maps/objects/ViridianPokecenter.asm create mode 100755 data/maps/objects/ViridianSchoolHouse.asm create mode 100755 data/maps/objects/WardensHouse.asm create mode 100644 data/maps/rest_house_maps.asm create mode 100644 data/maps/songs.asm create mode 100755 data/maps/special_warps.asm create mode 100755 data/maps/sprite_sets.asm create mode 100755 data/maps/town_map_entries.asm rename data/{ => maps}/town_map_order.asm (100%) delete mode 100755 data/mart_inventories.asm delete mode 100755 data/mon_party_sprites.asm delete mode 100755 data/moves.asm create mode 100755 data/moves/animations.asm create mode 100644 data/moves/effects_pointers.asm create mode 100644 data/moves/field_move_names.asm create mode 100644 data/moves/field_moves.asm create mode 100644 data/moves/grammar.asm create mode 100644 data/moves/hm_moves.asm create mode 100755 data/moves/moves.asm rename text/move_names.asm => data/moves/names.asm (100%) create mode 100644 data/moves/sfx.asm create mode 100755 data/moves/tmhm_moves.asm create mode 100644 data/player_names.asm create mode 100644 data/player_names_list.asm delete mode 100755 data/pokedex_entries.asm create mode 100755 data/pokemon/base_stats.asm create mode 100644 data/pokemon/base_stats/abra.asm create mode 100644 data/pokemon/base_stats/aerodactyl.asm create mode 100644 data/pokemon/base_stats/alakazam.asm create mode 100644 data/pokemon/base_stats/arbok.asm create mode 100644 data/pokemon/base_stats/arcanine.asm create mode 100644 data/pokemon/base_stats/articuno.asm create mode 100644 data/pokemon/base_stats/beedrill.asm create mode 100644 data/pokemon/base_stats/bellsprout.asm create mode 100644 data/pokemon/base_stats/blastoise.asm create mode 100644 data/pokemon/base_stats/bulbasaur.asm create mode 100644 data/pokemon/base_stats/butterfree.asm create mode 100644 data/pokemon/base_stats/caterpie.asm create mode 100644 data/pokemon/base_stats/chansey.asm create mode 100644 data/pokemon/base_stats/charizard.asm create mode 100644 data/pokemon/base_stats/charmander.asm create mode 100644 data/pokemon/base_stats/charmeleon.asm create mode 100644 data/pokemon/base_stats/clefable.asm create mode 100644 data/pokemon/base_stats/clefairy.asm create mode 100644 data/pokemon/base_stats/cloyster.asm create mode 100644 data/pokemon/base_stats/cubone.asm create mode 100644 data/pokemon/base_stats/dewgong.asm create mode 100644 data/pokemon/base_stats/diglett.asm create mode 100644 data/pokemon/base_stats/ditto.asm create mode 100644 data/pokemon/base_stats/dodrio.asm create mode 100644 data/pokemon/base_stats/doduo.asm create mode 100644 data/pokemon/base_stats/dragonair.asm create mode 100644 data/pokemon/base_stats/dragonite.asm create mode 100644 data/pokemon/base_stats/dratini.asm create mode 100644 data/pokemon/base_stats/drowzee.asm create mode 100644 data/pokemon/base_stats/dugtrio.asm create mode 100644 data/pokemon/base_stats/eevee.asm create mode 100644 data/pokemon/base_stats/ekans.asm create mode 100644 data/pokemon/base_stats/electabuzz.asm create mode 100644 data/pokemon/base_stats/electrode.asm create mode 100644 data/pokemon/base_stats/exeggcute.asm create mode 100644 data/pokemon/base_stats/exeggutor.asm create mode 100644 data/pokemon/base_stats/farfetchd.asm create mode 100644 data/pokemon/base_stats/fearow.asm create mode 100644 data/pokemon/base_stats/flareon.asm create mode 100644 data/pokemon/base_stats/gastly.asm create mode 100644 data/pokemon/base_stats/gengar.asm create mode 100644 data/pokemon/base_stats/geodude.asm create mode 100644 data/pokemon/base_stats/gloom.asm create mode 100644 data/pokemon/base_stats/golbat.asm create mode 100644 data/pokemon/base_stats/goldeen.asm create mode 100644 data/pokemon/base_stats/golduck.asm create mode 100644 data/pokemon/base_stats/golem.asm create mode 100644 data/pokemon/base_stats/graveler.asm create mode 100644 data/pokemon/base_stats/grimer.asm create mode 100644 data/pokemon/base_stats/growlithe.asm create mode 100644 data/pokemon/base_stats/gyarados.asm create mode 100644 data/pokemon/base_stats/haunter.asm create mode 100644 data/pokemon/base_stats/hitmonchan.asm create mode 100644 data/pokemon/base_stats/hitmonlee.asm create mode 100644 data/pokemon/base_stats/horsea.asm create mode 100644 data/pokemon/base_stats/hypno.asm create mode 100644 data/pokemon/base_stats/ivysaur.asm create mode 100644 data/pokemon/base_stats/jigglypuff.asm create mode 100644 data/pokemon/base_stats/jolteon.asm create mode 100644 data/pokemon/base_stats/jynx.asm create mode 100644 data/pokemon/base_stats/kabuto.asm create mode 100644 data/pokemon/base_stats/kabutops.asm create mode 100644 data/pokemon/base_stats/kadabra.asm create mode 100644 data/pokemon/base_stats/kakuna.asm create mode 100644 data/pokemon/base_stats/kangaskhan.asm create mode 100644 data/pokemon/base_stats/kingler.asm create mode 100644 data/pokemon/base_stats/koffing.asm create mode 100644 data/pokemon/base_stats/krabby.asm create mode 100644 data/pokemon/base_stats/lapras.asm create mode 100644 data/pokemon/base_stats/lickitung.asm create mode 100644 data/pokemon/base_stats/machamp.asm create mode 100644 data/pokemon/base_stats/machoke.asm create mode 100644 data/pokemon/base_stats/machop.asm create mode 100644 data/pokemon/base_stats/magikarp.asm create mode 100644 data/pokemon/base_stats/magmar.asm create mode 100644 data/pokemon/base_stats/magnemite.asm create mode 100644 data/pokemon/base_stats/magneton.asm create mode 100644 data/pokemon/base_stats/mankey.asm create mode 100644 data/pokemon/base_stats/marowak.asm create mode 100644 data/pokemon/base_stats/meowth.asm create mode 100644 data/pokemon/base_stats/metapod.asm create mode 100644 data/pokemon/base_stats/mew.asm create mode 100644 data/pokemon/base_stats/mewtwo.asm create mode 100644 data/pokemon/base_stats/moltres.asm create mode 100644 data/pokemon/base_stats/mrmime.asm create mode 100644 data/pokemon/base_stats/muk.asm create mode 100644 data/pokemon/base_stats/nidoking.asm create mode 100644 data/pokemon/base_stats/nidoqueen.asm create mode 100644 data/pokemon/base_stats/nidoranf.asm create mode 100644 data/pokemon/base_stats/nidoranm.asm create mode 100644 data/pokemon/base_stats/nidorina.asm create mode 100644 data/pokemon/base_stats/nidorino.asm create mode 100644 data/pokemon/base_stats/ninetales.asm create mode 100644 data/pokemon/base_stats/oddish.asm create mode 100644 data/pokemon/base_stats/omanyte.asm create mode 100644 data/pokemon/base_stats/omastar.asm create mode 100644 data/pokemon/base_stats/onix.asm create mode 100644 data/pokemon/base_stats/paras.asm create mode 100644 data/pokemon/base_stats/parasect.asm create mode 100644 data/pokemon/base_stats/persian.asm create mode 100644 data/pokemon/base_stats/pidgeot.asm create mode 100644 data/pokemon/base_stats/pidgeotto.asm create mode 100644 data/pokemon/base_stats/pidgey.asm create mode 100644 data/pokemon/base_stats/pikachu.asm create mode 100644 data/pokemon/base_stats/pinsir.asm create mode 100644 data/pokemon/base_stats/poliwag.asm create mode 100644 data/pokemon/base_stats/poliwhirl.asm create mode 100644 data/pokemon/base_stats/poliwrath.asm create mode 100644 data/pokemon/base_stats/ponyta.asm create mode 100644 data/pokemon/base_stats/porygon.asm create mode 100644 data/pokemon/base_stats/primeape.asm create mode 100644 data/pokemon/base_stats/psyduck.asm create mode 100644 data/pokemon/base_stats/raichu.asm create mode 100644 data/pokemon/base_stats/rapidash.asm create mode 100644 data/pokemon/base_stats/raticate.asm create mode 100644 data/pokemon/base_stats/rattata.asm create mode 100644 data/pokemon/base_stats/rhydon.asm create mode 100644 data/pokemon/base_stats/rhyhorn.asm create mode 100644 data/pokemon/base_stats/sandshrew.asm create mode 100644 data/pokemon/base_stats/sandslash.asm create mode 100644 data/pokemon/base_stats/scyther.asm create mode 100644 data/pokemon/base_stats/seadra.asm create mode 100644 data/pokemon/base_stats/seaking.asm create mode 100644 data/pokemon/base_stats/seel.asm create mode 100644 data/pokemon/base_stats/shellder.asm create mode 100644 data/pokemon/base_stats/slowbro.asm create mode 100644 data/pokemon/base_stats/slowpoke.asm create mode 100644 data/pokemon/base_stats/snorlax.asm create mode 100644 data/pokemon/base_stats/spearow.asm create mode 100644 data/pokemon/base_stats/squirtle.asm create mode 100644 data/pokemon/base_stats/starmie.asm create mode 100644 data/pokemon/base_stats/staryu.asm create mode 100644 data/pokemon/base_stats/tangela.asm create mode 100644 data/pokemon/base_stats/tauros.asm create mode 100644 data/pokemon/base_stats/tentacool.asm create mode 100644 data/pokemon/base_stats/tentacruel.asm create mode 100644 data/pokemon/base_stats/vaporeon.asm create mode 100644 data/pokemon/base_stats/venomoth.asm create mode 100644 data/pokemon/base_stats/venonat.asm create mode 100644 data/pokemon/base_stats/venusaur.asm create mode 100644 data/pokemon/base_stats/victreebel.asm create mode 100644 data/pokemon/base_stats/vileplume.asm create mode 100644 data/pokemon/base_stats/voltorb.asm create mode 100644 data/pokemon/base_stats/vulpix.asm create mode 100644 data/pokemon/base_stats/wartortle.asm create mode 100644 data/pokemon/base_stats/weedle.asm create mode 100644 data/pokemon/base_stats/weepinbell.asm create mode 100644 data/pokemon/base_stats/weezing.asm create mode 100644 data/pokemon/base_stats/wigglytuff.asm create mode 100644 data/pokemon/base_stats/zapdos.asm create mode 100644 data/pokemon/base_stats/zubat.asm create mode 100755 data/pokemon/cries.asm create mode 100755 data/pokemon/dex_entries.asm rename data/{pokedex_order.asm => pokemon/dex_order.asm} (100%) rename text/pokedex.asm => data/pokemon/dex_text.asm (100%) create mode 100755 data/pokemon/evos_moves.asm create mode 100755 data/pokemon/menu_icons.asm create mode 100755 data/pokemon/names.asm rename data/{mon_palettes.asm => pokemon/palettes.asm} (100%) create mode 100644 data/predef_pointers.asm delete mode 100755 data/prize_mon_levels.asm delete mode 100755 data/prizes.asm rename data/{ => sgb}/sgb_border.asm (93%) rename data/{ => sgb}/sgb_packets.asm (92%) create mode 100755 data/sgb/sgb_palettes.asm delete mode 100755 data/special_warps.asm delete mode 100755 data/sprite_sets.asm create mode 100644 data/sprites/facings.asm create mode 100644 data/sprites/sprites.asm delete mode 100755 data/super_palettes.asm delete mode 100755 data/super_rod.asm create mode 100644 data/text/alphabets.asm create mode 100644 data/text/dakutens.asm create mode 100644 data/text/text_1.asm create mode 100644 data/text/text_2.asm create mode 100644 data/text/text_3.asm create mode 100644 data/text/text_4.asm create mode 100644 data/text/text_5.asm create mode 100644 data/text/text_6.asm create mode 100644 data/text/text_7.asm create mode 100644 data/text/text_8.asm create mode 100644 data/text/text_9.asm create mode 100644 data/text/unused_names.asm create mode 100644 data/text_boxes.asm create mode 100644 data/text_predef_pointers.asm create mode 100644 data/tilemaps.asm create mode 100755 data/tilesets/bike_riding_tilesets.asm create mode 100644 data/tilesets/bookshelf_tile_ids.asm create mode 100644 data/tilesets/collision_tile_ids.asm create mode 100644 data/tilesets/cut_tree_blocks.asm create mode 100644 data/tilesets/door_tile_ids.asm create mode 100755 data/tilesets/dungeon_tilesets.asm create mode 100644 data/tilesets/escape_rope_tilesets.asm create mode 100644 data/tilesets/ledge_tiles.asm create mode 100644 data/tilesets/pair_collision_tile_ids.asm create mode 100644 data/tilesets/spinner_tiles.asm rename data/{ => tilesets}/tileset_headers.asm (89%) create mode 100644 data/tilesets/warp_carpet_tile_ids.asm create mode 100644 data/tilesets/warp_pad_hole_tile_ids.asm create mode 100755 data/tilesets/warp_tile_ids.asm create mode 100644 data/tilesets/water_tilesets.asm delete mode 100755 data/tm_prices.asm delete mode 100755 data/tms.asm delete mode 100755 data/town_map_entries.asm delete mode 100755 data/trades.asm delete mode 100755 data/trainer_moves.asm delete mode 100755 data/trainer_parties.asm delete mode 100755 data/trainer_types.asm create mode 100644 data/trainers/ai_pointers.asm create mode 100755 data/trainers/encounter_types.asm create mode 100644 data/trainers/move_choices.asm create mode 100644 data/trainers/name_pointers.asm create mode 100755 data/trainers/names.asm create mode 100755 data/trainers/parties.asm create mode 100755 data/trainers/pic_pointers_money.asm create mode 100755 data/trainers/special_moves.asm delete mode 100755 data/type_effects.asm create mode 100755 data/types/names.asm create mode 100755 data/types/type_matchups.asm delete mode 100755 data/warp_tile_ids.asm create mode 100755 data/wild/good_rod.asm create mode 100755 data/wild/grass_water.asm create mode 100644 data/wild/maps/CeruleanCave1F.asm create mode 100644 data/wild/maps/CeruleanCave2F.asm create mode 100644 data/wild/maps/CeruleanCaveB1F.asm create mode 100755 data/wild/maps/DiglettsCave.asm create mode 100755 data/wild/maps/MtMoon1F.asm create mode 100755 data/wild/maps/MtMoonB1F.asm create mode 100755 data/wild/maps/MtMoonB2F.asm create mode 100755 data/wild/maps/PokemonMansion1F.asm create mode 100755 data/wild/maps/PokemonMansion2F.asm create mode 100755 data/wild/maps/PokemonMansion3F.asm create mode 100755 data/wild/maps/PokemonMansionB1F.asm create mode 100755 data/wild/maps/PokemonTower1F.asm create mode 100755 data/wild/maps/PokemonTower2F.asm create mode 100755 data/wild/maps/PokemonTower3F.asm create mode 100755 data/wild/maps/PokemonTower4F.asm create mode 100755 data/wild/maps/PokemonTower5F.asm create mode 100755 data/wild/maps/PokemonTower6F.asm create mode 100755 data/wild/maps/PokemonTower7F.asm create mode 100755 data/wild/maps/PowerPlant.asm create mode 100755 data/wild/maps/RockTunnel1F.asm create mode 100755 data/wild/maps/RockTunnelB1F.asm create mode 100755 data/wild/maps/Route1.asm create mode 100755 data/wild/maps/Route10.asm create mode 100755 data/wild/maps/Route11.asm create mode 100755 data/wild/maps/Route12.asm create mode 100755 data/wild/maps/Route13.asm create mode 100755 data/wild/maps/Route14.asm create mode 100755 data/wild/maps/Route15.asm create mode 100755 data/wild/maps/Route16.asm create mode 100755 data/wild/maps/Route17.asm create mode 100755 data/wild/maps/Route18.asm create mode 100644 data/wild/maps/Route19.asm create mode 100755 data/wild/maps/Route2.asm rename data/{wildPokemon/route20.asm => wild/maps/Route20.asm} (100%) create mode 100755 data/wild/maps/Route21.asm create mode 100755 data/wild/maps/Route22.asm create mode 100755 data/wild/maps/Route23.asm create mode 100755 data/wild/maps/Route24.asm create mode 100755 data/wild/maps/Route25.asm create mode 100755 data/wild/maps/Route3.asm create mode 100755 data/wild/maps/Route4.asm create mode 100755 data/wild/maps/Route5.asm create mode 100755 data/wild/maps/Route6.asm create mode 100755 data/wild/maps/Route7.asm create mode 100755 data/wild/maps/Route8.asm create mode 100755 data/wild/maps/Route9.asm create mode 100755 data/wild/maps/SafariZoneCenter.asm create mode 100755 data/wild/maps/SafariZoneEast.asm create mode 100755 data/wild/maps/SafariZoneNorth.asm create mode 100755 data/wild/maps/SafariZoneWest.asm create mode 100755 data/wild/maps/SeafoamIslands1F.asm create mode 100755 data/wild/maps/SeafoamIslandsB1F.asm create mode 100755 data/wild/maps/SeafoamIslandsB2F.asm create mode 100755 data/wild/maps/SeafoamIslandsB3F.asm create mode 100755 data/wild/maps/SeafoamIslandsB4F.asm create mode 100755 data/wild/maps/VictoryRoad1F.asm create mode 100755 data/wild/maps/VictoryRoad2F.asm create mode 100755 data/wild/maps/VictoryRoad3F.asm create mode 100755 data/wild/maps/ViridianForest.asm create mode 100755 data/wild/maps/nothing.asm create mode 100644 data/wild/probabilities.asm create mode 100755 data/wild/super_rod.asm delete mode 100644 data/wildPokemon/ceruleancave1.asm delete mode 100644 data/wildPokemon/ceruleancave2.asm delete mode 100644 data/wildPokemon/ceruleancaveb1.asm delete mode 100755 data/wildPokemon/diglettscave.asm delete mode 100755 data/wildPokemon/mansion1.asm delete mode 100755 data/wildPokemon/mansion2.asm delete mode 100755 data/wildPokemon/mansion3.asm delete mode 100755 data/wildPokemon/mansionb1.asm delete mode 100755 data/wildPokemon/mtmoon1.asm delete mode 100755 data/wildPokemon/mtmoonb1.asm delete mode 100755 data/wildPokemon/mtmoonb2.asm delete mode 100755 data/wildPokemon/nomons.asm delete mode 100755 data/wildPokemon/pokemontower1.asm delete mode 100755 data/wildPokemon/pokemontower2.asm delete mode 100755 data/wildPokemon/pokemontower3.asm delete mode 100755 data/wildPokemon/pokemontower4.asm delete mode 100755 data/wildPokemon/pokemontower5.asm delete mode 100755 data/wildPokemon/pokemontower6.asm delete mode 100755 data/wildPokemon/pokemontower7.asm delete mode 100755 data/wildPokemon/powerplant.asm delete mode 100755 data/wildPokemon/rocktunnel1.asm delete mode 100755 data/wildPokemon/rocktunnel2.asm delete mode 100755 data/wildPokemon/route1.asm delete mode 100755 data/wildPokemon/route10.asm delete mode 100755 data/wildPokemon/route11.asm delete mode 100755 data/wildPokemon/route12.asm delete mode 100755 data/wildPokemon/route13.asm delete mode 100755 data/wildPokemon/route14.asm delete mode 100755 data/wildPokemon/route15.asm delete mode 100755 data/wildPokemon/route16.asm delete mode 100755 data/wildPokemon/route17.asm delete mode 100755 data/wildPokemon/route18.asm delete mode 100644 data/wildPokemon/route19.asm delete mode 100755 data/wildPokemon/route2.asm delete mode 100755 data/wildPokemon/route21.asm delete mode 100755 data/wildPokemon/route22.asm delete mode 100755 data/wildPokemon/route23.asm delete mode 100755 data/wildPokemon/route24.asm delete mode 100755 data/wildPokemon/route25.asm delete mode 100755 data/wildPokemon/route3.asm delete mode 100755 data/wildPokemon/route4.asm delete mode 100755 data/wildPokemon/route5.asm delete mode 100755 data/wildPokemon/route6.asm delete mode 100755 data/wildPokemon/route7.asm delete mode 100755 data/wildPokemon/route8.asm delete mode 100755 data/wildPokemon/route9.asm delete mode 100755 data/wildPokemon/safarizone1.asm delete mode 100755 data/wildPokemon/safarizone2.asm delete mode 100755 data/wildPokemon/safarizone3.asm delete mode 100755 data/wildPokemon/safarizonecenter.asm delete mode 100755 data/wildPokemon/seafoamisland1.asm delete mode 100755 data/wildPokemon/seafoamislandb1.asm delete mode 100755 data/wildPokemon/seafoamislandb2.asm delete mode 100755 data/wildPokemon/seafoamislandb3.asm delete mode 100755 data/wildPokemon/seafoamislandb4.asm delete mode 100755 data/wildPokemon/victoryroad1.asm delete mode 100755 data/wildPokemon/victoryroad2.asm delete mode 100755 data/wildPokemon/victoryroad3.asm delete mode 100755 data/wildPokemon/viridianforest.asm delete mode 100755 data/wild_mons.asm create mode 100644 data/yes_no_menu_strings.asm delete mode 100755 engine/HoF_room_pc.asm create mode 100644 engine/battle/effects.asm rename engine/battle/{bank_e_misc.asm => misc.asm} (100%) delete mode 100644 engine/battle/moveEffects/conversion_effect.asm delete mode 100644 engine/battle/moveEffects/drain_hp_effect.asm delete mode 100644 engine/battle/moveEffects/focus_energy_effect.asm delete mode 100644 engine/battle/moveEffects/haze_effect.asm delete mode 100644 engine/battle/moveEffects/heal_effect.asm delete mode 100644 engine/battle/moveEffects/leech_seed_effect.asm delete mode 100644 engine/battle/moveEffects/mist_effect.asm delete mode 100644 engine/battle/moveEffects/one_hit_ko_effect.asm delete mode 100644 engine/battle/moveEffects/paralyze_effect.asm delete mode 100644 engine/battle/moveEffects/pay_day_effect.asm delete mode 100644 engine/battle/moveEffects/recoil_effect.asm delete mode 100644 engine/battle/moveEffects/reflect_light_screen_effect.asm delete mode 100644 engine/battle/moveEffects/substitute_effect.asm delete mode 100644 engine/battle/moveEffects/transform_effect.asm create mode 100644 engine/battle/move_effects/conversion.asm create mode 100644 engine/battle/move_effects/drain_hp.asm create mode 100644 engine/battle/move_effects/focus_energy.asm create mode 100644 engine/battle/move_effects/haze.asm create mode 100644 engine/battle/move_effects/heal.asm create mode 100644 engine/battle/move_effects/leech_seed.asm create mode 100644 engine/battle/move_effects/mist.asm create mode 100644 engine/battle/move_effects/one_hit_ko.asm create mode 100644 engine/battle/move_effects/paralyze.asm create mode 100644 engine/battle/move_effects/pay_day.asm create mode 100644 engine/battle/move_effects/recoil.asm create mode 100644 engine/battle/move_effects/reflect_light_screen.asm create mode 100644 engine/battle/move_effects/substitute.asm create mode 100644 engine/battle/move_effects/transform.asm delete mode 100755 engine/battle/trainer_pic_money_pointers.asm delete mode 100644 engine/bcd.asm delete mode 100644 engine/black_out.asm create mode 100644 engine/debug/debug_menu.asm create mode 100644 engine/debug/debug_party.asm delete mode 100644 engine/debug1.asm delete mode 100644 engine/display_text_id_init.asm create mode 100644 engine/events/black_out.asm create mode 100755 engine/events/card_key.asm rename engine/{overworld => events}/cinnabar_lab.asm (84%) rename engine/{menu => events}/diploma.asm (89%) rename engine/{ => events}/display_pokedex.asm (94%) create mode 100755 engine/events/elevator.asm rename engine/{ => events}/give_pokemon.asm (83%) rename engine/{ => events}/heal_party.asm (100%) rename engine/{overworld => events}/hidden_items.asm (79%) create mode 100644 engine/events/hidden_objects/bench_guys.asm create mode 100644 engine/events/hidden_objects/bills_house_pc.asm create mode 100644 engine/events/hidden_objects/blues_room.asm create mode 100644 engine/events/hidden_objects/book_or_sculpture.asm create mode 100644 engine/events/hidden_objects/bookshelves.asm create mode 100644 engine/events/hidden_objects/cinnabar_gym_quiz.asm create mode 100644 engine/events/hidden_objects/elevator.asm create mode 100644 engine/events/hidden_objects/fanclub_pictures.asm create mode 100644 engine/events/hidden_objects/fighting_dojo.asm create mode 100644 engine/events/hidden_objects/gym_statues.asm create mode 100644 engine/events/hidden_objects/indigo_plateau_hq.asm create mode 100644 engine/events/hidden_objects/indigo_plateau_statues.asm create mode 100644 engine/events/hidden_objects/magazines.asm create mode 100644 engine/events/hidden_objects/museum_fossils.asm create mode 100644 engine/events/hidden_objects/museum_fossils2.asm create mode 100644 engine/events/hidden_objects/new_bike.asm create mode 100644 engine/events/hidden_objects/oaks_lab_email.asm create mode 100644 engine/events/hidden_objects/oaks_lab_posters.asm create mode 100644 engine/events/hidden_objects/pokecenter_pc.asm create mode 100644 engine/events/hidden_objects/pokemon_stuff.asm create mode 100644 engine/events/hidden_objects/reds_room.asm create mode 100644 engine/events/hidden_objects/route_15_binoculars.asm create mode 100644 engine/events/hidden_objects/safari_game.asm create mode 100644 engine/events/hidden_objects/school_blackboard.asm create mode 100644 engine/events/hidden_objects/school_notebooks.asm create mode 100644 engine/events/hidden_objects/town_map.asm create mode 100644 engine/events/hidden_objects/vermilion_gym_trash.asm rename engine/{ => events}/in_game_trades.asm (83%) create mode 100755 engine/events/oaks_aide.asm rename engine/{overworld => events}/pewter_guys.asm (100%) create mode 100644 engine/events/pick_up_item.asm rename engine/{overworld => events}/poison.asm (94%) create mode 100755 engine/events/pokecenter.asm create mode 100755 engine/events/pokedex_rating.asm rename engine/{overworld => events}/pokemart.asm (88%) rename engine/{menu => events}/prize_menu.asm (84%) create mode 100755 engine/events/saffron_guards.asm create mode 100644 engine/events/set_blackout_map.asm create mode 100755 engine/events/starter_dex.asm rename engine/{menu => events}/vending_machine.asm (75%) delete mode 100755 engine/evos_moves.asm delete mode 100755 engine/experience.asm delete mode 100755 engine/game_corner_slots.asm delete mode 100755 engine/game_corner_slots2.asm delete mode 100755 engine/gamefreak.asm rename engine/{ => gfx}/hp_bar.asm (95%) rename engine/{ => gfx}/load_pokedex_tiles.asm (79%) create mode 100755 engine/gfx/mon_icons.asm create mode 100644 engine/gfx/oam_dma.asm create mode 100755 engine/gfx/palettes.asm create mode 100644 engine/gfx/screen_effects.asm create mode 100644 engine/gfx/sprite_oam.asm delete mode 100755 engine/hidden_object_functions14.asm delete mode 100755 engine/hidden_object_functions17.asm delete mode 100755 engine/hidden_object_functions18.asm delete mode 100755 engine/hidden_object_functions3.asm delete mode 100755 engine/hidden_object_functions7.asm rename engine/{ => items}/get_bag_item_quantity.asm (100%) create mode 100755 engine/items/item_effects.asm delete mode 100755 engine/items/items.asm rename engine/{ => items}/subtract_paid_money.asm (80%) create mode 100755 engine/items/town_map.asm rename engine/{ => link}/cable_club.asm (94%) rename engine/{overworld => link}/cable_club_npc.asm (83%) rename engine/{ => link}/print_waiting_text.asm (82%) create mode 100644 engine/math/bcd.asm create mode 100755 engine/math/multiply_divide.asm create mode 100755 engine/math/random.asm delete mode 100644 engine/menu/link_menu.asm delete mode 100755 engine/menu/oaks_pc.asm delete mode 100755 engine/menu/party_menu.asm delete mode 100644 engine/menu/text_box.asm create mode 100644 engine/menus/display_text_id_init.asm rename engine/{menu => menus}/draw_badges.asm (92%) rename engine/{menu => menus}/draw_start_menu.asm (95%) rename engine/{menu => menus}/league_pc.asm (88%) create mode 100644 engine/menus/link_menu.asm rename engine/{menu => menus}/main_menu.asm (87%) rename engine/{menu => menus}/naming_screen.asm (86%) create mode 100755 engine/menus/oaks_pc.asm rename engine/{menu => menus}/options.asm (94%) create mode 100755 engine/menus/party_menu.asm rename engine/{menu => menus}/pc.asm (86%) rename engine/{menu => menus}/players_pc.asm (89%) rename engine/{menu => menus}/pokedex.asm (88%) rename engine/{ => menus}/save.asm (93%) rename engine/{menu => menus}/start_sub_menus.asm (86%) rename engine/{menu => menus}/swap_items.asm (95%) create mode 100644 engine/menus/text_box.asm delete mode 100755 engine/mon_party_sprites.asm create mode 100755 engine/movie/credits.asm rename engine/{ => movie}/evolution.asm (91%) rename engine/{ => movie}/hall_of_fame.asm (87%) rename engine/{ => movie}/intro.asm (82%) rename engine/{ => movie/oak_speech}/clear_save.asm (85%) rename engine/{ => movie/oak_speech}/init_player_data.asm (90%) rename engine/{ => movie/oak_speech}/oak_speech.asm (85%) rename engine/{ => movie/oak_speech}/oak_speech2.asm (77%) create mode 100755 engine/movie/splash.asm create mode 100755 engine/movie/title.asm create mode 100755 engine/movie/title2.asm create mode 100755 engine/movie/trade.asm rename engine/{ => movie}/trade2.asm (77%) delete mode 100755 engine/multiply_divide.asm delete mode 100644 engine/oam_dma.asm create mode 100755 engine/overworld/auto_movement.asm delete mode 100755 engine/overworld/card_key.asm create mode 100755 engine/overworld/dust_smoke.asm delete mode 100644 engine/overworld/item.asm delete mode 100644 engine/overworld/map_sprite_functions1.asm delete mode 100755 engine/overworld/npc_movement.asm delete mode 100755 engine/overworld/oaks_aide.asm delete mode 100644 engine/overworld/oam.asm create mode 100644 engine/overworld/pathfinding.asm delete mode 100755 engine/overworld/pokecenter.asm delete mode 100755 engine/overworld/saffron_guards.asm delete mode 100644 engine/overworld/set_blackout_map.asm create mode 100644 engine/overworld/special_warps.asm create mode 100644 engine/overworld/spinners.asm create mode 100644 engine/overworld/sprite_collisions.asm delete mode 100755 engine/overworld/ssanne.asm delete mode 100644 engine/overworld/tileset_header.asm create mode 100644 engine/overworld/tilesets.asm create mode 100755 engine/overworld/trainer_sight.asm delete mode 100755 engine/overworld/trainers.asm delete mode 100755 engine/palettes.asm delete mode 100644 engine/pathfinding.asm delete mode 100755 engine/pokedex_rating.asm rename engine/{ => pokemon}/add_mon.asm (95%) rename engine/{menu => pokemon}/bills_pc.asm (83%) create mode 100755 engine/pokemon/evos_moves.asm create mode 100755 engine/pokemon/experience.asm rename engine/{ => pokemon}/learn_move.asm (83%) rename engine/{ => pokemon}/load_mon_data.asm (98%) create mode 100644 engine/pokemon/remove_mon.asm rename engine/{predefs17_2.asm => pokemon/set_types.asm} (100%) rename engine/{ => pokemon}/status_ailments.asm (95%) rename engine/{menu => pokemon}/status_screen.asm (80%) delete mode 100755 engine/predefs17.asm delete mode 100755 engine/predefs7.asm delete mode 100644 engine/predefsA.asm delete mode 100755 engine/random.asm delete mode 100644 engine/remove_pokemon.asm create mode 100755 engine/slots/game_corner_slots.asm create mode 100755 engine/slots/game_corner_slots2.asm rename engine/{ => slots}/slot_machine.asm (92%) delete mode 100644 engine/special_warps.asm delete mode 100644 engine/test_battle.asm delete mode 100755 engine/titlescreen.asm delete mode 100755 engine/titlescreen2.asm delete mode 100755 engine/town_map.asm delete mode 100755 engine/trade.asm delete mode 100644 gfx/attack_anim_1.png delete mode 100644 gfx/attack_anim_2.png create mode 100644 gfx/battle/attack_anim_1.png create mode 100644 gfx/battle/attack_anim_2.png create mode 100644 gfx/battle/balls.png create mode 100644 gfx/battle/battle_hud_1.png create mode 100644 gfx/battle/battle_hud_2.png create mode 100644 gfx/battle/battle_hud_3.png rename {pic/other => gfx/battle}/ghost.png (100%) rename gfx/{minimized_mon_sprite.png => battle/minimize.png} (100%) rename {pic/trainer => gfx/battle}/oldman.png (100%) rename {pic/ytrainer => gfx/battle}/prof.oakb.png (100%) delete mode 100644 gfx/battle_hud1.png delete mode 100644 gfx/battle_hud2.png delete mode 100644 gfx/battle_hud3.png rename gfx/{theend.png => credits/the_end.png} (100%) create mode 100644 gfx/emotes/bolt.png create mode 100644 gfx/emotes/fish.png create mode 100644 gfx/emotes/happy.png create mode 100644 gfx/emotes/heart.png create mode 100644 gfx/emotes/question.png create mode 100644 gfx/emotes/shock.png create mode 100644 gfx/emotes/skull.png create mode 100644 gfx/emotes/zzz.png delete mode 100644 gfx/emotion_bubbles.png create mode 100644 gfx/fishing.asm create mode 100644 gfx/font.asm rename gfx/{ => font}/AB.png (100%) rename gfx/{ED_tile.png => font/ED.png} (100%) rename gfx/{p_tile.png => font/P.png} (100%) rename gfx/{ => font}/font.png (100%) create mode 100644 gfx/font/font_battle_extra.png create mode 100644 gfx/font/font_extra.png delete mode 100644 gfx/hp_bar_and_status.png create mode 100644 gfx/icons/bug.png create mode 100644 gfx/icons/plant.png create mode 100644 gfx/icons/quadruped.png create mode 100644 gfx/icons/snake.png create mode 100644 gfx/intro/gengar_1.tilemap create mode 100644 gfx/intro/gengar_2.tilemap create mode 100644 gfx/intro/gengar_3.tilemap delete mode 100644 gfx/mon_ow_sprites.png rename gfx/{ => overworld}/battle_transition.png (100%) rename gfx/{red_fishingrod_tiles.png => overworld/fishing_rod.png} (100%) rename gfx/{pokecenter_ball.png => overworld/heal_machine.png} (100%) rename gfx/{red_fishing_tile_back.png => overworld/red_fish_back.png} (100%) rename gfx/{red_fishing_tile_front.png => overworld/red_fish_front.png} (100%) rename gfx/{red_fishing_tile_side.png => overworld/red_fish_side.png} (100%) rename gfx/{ledge_hopping_shadow.png => overworld/shadow.png} (100%) rename gfx/{ss_anne_smoke_puff.png => overworld/smoke.png} (100%) create mode 100644 gfx/overworld/spinners.png create mode 100644 gfx/pics.asm create mode 100644 gfx/player.asm rename {pic/trainer => gfx/player}/red.png (100%) rename {pic/trainer => gfx/player}/redb.png (100%) rename {pic/trainer => gfx/player}/shrink1.png (100%) rename {pic/trainer => gfx/player}/shrink2.png (100%) rename {pic/ytrainer => gfx/player/yellow}/red.png (100%) delete mode 100644 gfx/pokeball.png rename gfx/{ => pokedex}/pokedex.png (100%) rename {pic/monback => gfx/pokemon/back}/abrab.png (100%) rename {pic/monback => gfx/pokemon/back}/aerodactylb.png (100%) rename {pic/monback => gfx/pokemon/back}/alakazamb.png (100%) rename {pic/monback => gfx/pokemon/back}/arbokb.png (100%) rename {pic/monback => gfx/pokemon/back}/arcanineb.png (100%) rename {pic/monback => gfx/pokemon/back}/articunob.png (100%) rename {pic/monback => gfx/pokemon/back}/beedrillb.png (100%) rename {pic/monback => gfx/pokemon/back}/bellsproutb.png (100%) rename {pic/monback => gfx/pokemon/back}/blastoiseb.png (100%) rename {pic/monback => gfx/pokemon/back}/bulbasaurb.png (100%) rename {pic/monback => gfx/pokemon/back}/butterfreeb.png (100%) rename {pic/monback => gfx/pokemon/back}/caterpieb.png (100%) rename {pic/monback => gfx/pokemon/back}/chanseyb.png (100%) rename {pic/monback => gfx/pokemon/back}/charizardb.png (100%) rename {pic/monback => gfx/pokemon/back}/charmanderb.png (100%) rename {pic/monback => gfx/pokemon/back}/charmeleonb.png (100%) rename {pic/monback => gfx/pokemon/back}/clefableb.png (100%) rename {pic/monback => gfx/pokemon/back}/clefairyb.png (100%) rename {pic/monback => gfx/pokemon/back}/cloysterb.png (100%) rename {pic/monback => gfx/pokemon/back}/cuboneb.png (100%) rename {pic/monback => gfx/pokemon/back}/dewgongb.png (100%) rename {pic/monback => gfx/pokemon/back}/diglettb.png (100%) rename {pic/monback => gfx/pokemon/back}/dittob.png (100%) rename {pic/monback => gfx/pokemon/back}/dodriob.png (100%) rename {pic/monback => gfx/pokemon/back}/doduob.png (100%) rename {pic/monback => gfx/pokemon/back}/dragonairb.png (100%) rename {pic/monback => gfx/pokemon/back}/dragoniteb.png (100%) rename {pic/monback => gfx/pokemon/back}/dratinib.png (100%) rename {pic/monback => gfx/pokemon/back}/drowzeeb.png (100%) rename {pic/monback => gfx/pokemon/back}/dugtriob.png (100%) rename {pic/monback => gfx/pokemon/back}/eeveeb.png (100%) rename {pic/monback => gfx/pokemon/back}/ekansb.png (100%) rename {pic/monback => gfx/pokemon/back}/electabuzzb.png (100%) rename {pic/monback => gfx/pokemon/back}/electrodeb.png (100%) rename {pic/monback => gfx/pokemon/back}/exeggcuteb.png (100%) rename {pic/monback => gfx/pokemon/back}/exeggutorb.png (100%) rename {pic/monback => gfx/pokemon/back}/farfetchdb.png (100%) rename {pic/monback => gfx/pokemon/back}/fearowb.png (100%) rename {pic/monback => gfx/pokemon/back}/flareonb.png (100%) rename {pic/monback => gfx/pokemon/back}/gastlyb.png (100%) rename {pic/monback => gfx/pokemon/back}/gengarb.png (100%) rename {pic/monback => gfx/pokemon/back}/geodudeb.png (100%) rename {pic/monback => gfx/pokemon/back}/gloomb.png (100%) rename {pic/monback => gfx/pokemon/back}/golbatb.png (100%) rename {pic/monback => gfx/pokemon/back}/goldeenb.png (100%) rename {pic/monback => gfx/pokemon/back}/golduckb.png (100%) rename {pic/monback => gfx/pokemon/back}/golemb.png (100%) rename {pic/monback => gfx/pokemon/back}/gravelerb.png (100%) rename {pic/monback => gfx/pokemon/back}/grimerb.png (100%) rename {pic/monback => gfx/pokemon/back}/growlitheb.png (100%) rename {pic/monback => gfx/pokemon/back}/gyaradosb.png (100%) rename {pic/monback => gfx/pokemon/back}/haunterb.png (100%) rename {pic/monback => gfx/pokemon/back}/hitmonchanb.png (100%) rename {pic/monback => gfx/pokemon/back}/hitmonleeb.png (100%) rename {pic/monback => gfx/pokemon/back}/horseab.png (100%) rename {pic/monback => gfx/pokemon/back}/hypnob.png (100%) rename {pic/monback => gfx/pokemon/back}/ivysaurb.png (100%) rename {pic/monback => gfx/pokemon/back}/jigglypuffb.png (100%) rename {pic/monback => gfx/pokemon/back}/jolteonb.png (100%) rename {pic/monback => gfx/pokemon/back}/jynxb.png (100%) rename {pic/monback => gfx/pokemon/back}/kabutob.png (100%) rename {pic/monback => gfx/pokemon/back}/kabutopsb.png (100%) rename {pic/monback => gfx/pokemon/back}/kadabrab.png (100%) rename {pic/monback => gfx/pokemon/back}/kakunab.png (100%) rename {pic/monback => gfx/pokemon/back}/kangaskhanb.png (100%) rename {pic/monback => gfx/pokemon/back}/kinglerb.png (100%) rename {pic/monback => gfx/pokemon/back}/koffingb.png (100%) rename {pic/monback => gfx/pokemon/back}/krabbyb.png (100%) rename {pic/monback => gfx/pokemon/back}/laprasb.png (100%) rename {pic/monback => gfx/pokemon/back}/lickitungb.png (100%) rename {pic/monback => gfx/pokemon/back}/machampb.png (100%) rename {pic/monback => gfx/pokemon/back}/machokeb.png (100%) rename {pic/monback => gfx/pokemon/back}/machopb.png (100%) rename {pic/monback => gfx/pokemon/back}/magikarpb.png (100%) rename {pic/monback => gfx/pokemon/back}/magmarb.png (100%) rename {pic/monback => gfx/pokemon/back}/magnemiteb.png (100%) rename {pic/monback => gfx/pokemon/back}/magnetonb.png (100%) rename {pic/monback => gfx/pokemon/back}/mankeyb.png (100%) rename {pic/monback => gfx/pokemon/back}/marowakb.png (100%) rename {pic/monback => gfx/pokemon/back}/meowthb.png (100%) rename {pic/monback => gfx/pokemon/back}/metapodb.png (100%) rename {pic/monback => gfx/pokemon/back}/mewb.png (100%) rename {pic/monback => gfx/pokemon/back}/mewtwob.png (100%) rename {pic/monback => gfx/pokemon/back}/moltresb.png (100%) rename {pic/monback => gfx/pokemon/back}/mr.mimeb.png (100%) rename {pic/monback => gfx/pokemon/back}/mukb.png (100%) rename {pic/monback => gfx/pokemon/back}/nidokingb.png (100%) rename {pic/monback => gfx/pokemon/back}/nidoqueenb.png (100%) rename {pic/monback => gfx/pokemon/back}/nidoranfb.png (100%) rename {pic/monback => gfx/pokemon/back}/nidoranmb.png (100%) rename {pic/monback => gfx/pokemon/back}/nidorinab.png (100%) rename {pic/monback => gfx/pokemon/back}/nidorinob.png (100%) rename {pic/monback => gfx/pokemon/back}/ninetalesb.png (100%) rename {pic/monback => gfx/pokemon/back}/oddishb.png (100%) rename {pic/monback => gfx/pokemon/back}/omanyteb.png (100%) rename {pic/monback => gfx/pokemon/back}/omastarb.png (100%) rename {pic/monback => gfx/pokemon/back}/onixb.png (100%) rename {pic/monback => gfx/pokemon/back}/parasb.png (100%) rename {pic/monback => gfx/pokemon/back}/parasectb.png (100%) rename {pic/monback => gfx/pokemon/back}/persianb.png (100%) rename {pic/monback => gfx/pokemon/back}/pidgeotb.png (100%) rename {pic/monback => gfx/pokemon/back}/pidgeottob.png (100%) rename {pic/monback => gfx/pokemon/back}/pidgeyb.png (100%) rename {pic/monback => gfx/pokemon/back}/pikachub.png (100%) rename {pic/monback => gfx/pokemon/back}/pinsirb.png (100%) rename {pic/monback => gfx/pokemon/back}/poliwagb.png (100%) rename {pic/monback => gfx/pokemon/back}/poliwhirlb.png (100%) rename {pic/monback => gfx/pokemon/back}/poliwrathb.png (100%) rename {pic/monback => gfx/pokemon/back}/ponytab.png (100%) rename {pic/monback => gfx/pokemon/back}/porygonb.png (100%) rename {pic/monback => gfx/pokemon/back}/primeapeb.png (100%) rename {pic/monback => gfx/pokemon/back}/psyduckb.png (100%) rename {pic/monback => gfx/pokemon/back}/raichub.png (100%) rename {pic/monback => gfx/pokemon/back}/rapidashb.png (100%) rename {pic/monback => gfx/pokemon/back}/raticateb.png (100%) rename {pic/monback => gfx/pokemon/back}/rattatab.png (100%) rename {pic/monback => gfx/pokemon/back}/rhydonb.png (100%) rename {pic/monback => gfx/pokemon/back}/rhyhornb.png (100%) rename {pic/monback => gfx/pokemon/back}/sandshrewb.png (100%) rename {pic/monback => gfx/pokemon/back}/sandslashb.png (100%) rename {pic/monback => gfx/pokemon/back}/scytherb.png (100%) rename {pic/monback => gfx/pokemon/back}/seadrab.png (100%) rename {pic/monback => gfx/pokemon/back}/seakingb.png (100%) rename {pic/monback => gfx/pokemon/back}/seelb.png (100%) rename {pic/monback => gfx/pokemon/back}/shellderb.png (100%) rename {pic/monback => gfx/pokemon/back}/slowbrob.png (100%) rename {pic/monback => gfx/pokemon/back}/slowpokeb.png (100%) rename {pic/monback => gfx/pokemon/back}/snorlaxb.png (100%) rename {pic/monback => gfx/pokemon/back}/spearowb.png (100%) rename {pic/monback => gfx/pokemon/back}/squirtleb.png (100%) rename {pic/monback => gfx/pokemon/back}/starmieb.png (100%) rename {pic/monback => gfx/pokemon/back}/staryub.png (100%) rename {pic/monback => gfx/pokemon/back}/tangelab.png (100%) rename {pic/monback => gfx/pokemon/back}/taurosb.png (100%) rename {pic/monback => gfx/pokemon/back}/tentacoolb.png (100%) rename {pic/monback => gfx/pokemon/back}/tentacruelb.png (100%) rename {pic/monback => gfx/pokemon/back}/vaporeonb.png (100%) rename {pic/monback => gfx/pokemon/back}/venomothb.png (100%) rename {pic/monback => gfx/pokemon/back}/venonatb.png (100%) rename {pic/monback => gfx/pokemon/back}/venusaurb.png (100%) rename {pic/monback => gfx/pokemon/back}/victreebelb.png (100%) rename {pic/monback => gfx/pokemon/back}/vileplumeb.png (100%) rename {pic/monback => gfx/pokemon/back}/voltorbb.png (100%) rename {pic/monback => gfx/pokemon/back}/vulpixb.png (100%) rename {pic/monback => gfx/pokemon/back}/wartortleb.png (100%) rename {pic/monback => gfx/pokemon/back}/weedleb.png (100%) rename {pic/monback => gfx/pokemon/back}/weepinbellb.png (100%) rename {pic/monback => gfx/pokemon/back}/weezingb.png (100%) rename {pic/monback => gfx/pokemon/back}/wigglytuffb.png (100%) rename {pic/monback => gfx/pokemon/back}/zapdosb.png (100%) rename {pic/monback => gfx/pokemon/back}/zubatb.png (100%) create mode 100644 gfx/pokemon/downscaled_3x3.tilemap create mode 100644 gfx/pokemon/downscaled_5x5.tilemap create mode 100644 gfx/pokemon/front.tilemap create mode 100644 gfx/pokemon/front/abra.png create mode 100644 gfx/pokemon/front/aerodactyl.png create mode 100644 gfx/pokemon/front/alakazam.png create mode 100644 gfx/pokemon/front/arbok.png create mode 100644 gfx/pokemon/front/arcanine.png create mode 100644 gfx/pokemon/front/articuno.png create mode 100644 gfx/pokemon/front/beedrill.png create mode 100644 gfx/pokemon/front/bellsprout.png create mode 100644 gfx/pokemon/front/blastoise.png create mode 100644 gfx/pokemon/front/bulbasaur.png create mode 100644 gfx/pokemon/front/butterfree.png create mode 100644 gfx/pokemon/front/caterpie.png create mode 100644 gfx/pokemon/front/chansey.png create mode 100644 gfx/pokemon/front/charizard.png create mode 100644 gfx/pokemon/front/charmander.png create mode 100644 gfx/pokemon/front/charmeleon.png create mode 100644 gfx/pokemon/front/clefable.png create mode 100644 gfx/pokemon/front/clefairy.png create mode 100644 gfx/pokemon/front/cloyster.png create mode 100644 gfx/pokemon/front/cubone.png create mode 100644 gfx/pokemon/front/dewgong.png create mode 100644 gfx/pokemon/front/diglett.png create mode 100644 gfx/pokemon/front/ditto.png create mode 100644 gfx/pokemon/front/dodrio.png create mode 100644 gfx/pokemon/front/doduo.png create mode 100644 gfx/pokemon/front/dragonair.png create mode 100644 gfx/pokemon/front/dragonite.png create mode 100644 gfx/pokemon/front/dratini.png create mode 100644 gfx/pokemon/front/drowzee.png create mode 100644 gfx/pokemon/front/dugtrio.png create mode 100644 gfx/pokemon/front/eevee.png create mode 100644 gfx/pokemon/front/ekans.png create mode 100644 gfx/pokemon/front/electabuzz.png create mode 100644 gfx/pokemon/front/electrode.png create mode 100644 gfx/pokemon/front/exeggcute.png create mode 100644 gfx/pokemon/front/exeggutor.png create mode 100644 gfx/pokemon/front/farfetchd.png create mode 100644 gfx/pokemon/front/fearow.png create mode 100644 gfx/pokemon/front/flareon.png rename {pic/ymon => gfx/pokemon/front}/fossilaerodactyl.png (100%) rename {pic/ymon => gfx/pokemon/front}/fossilkabutops.png (100%) create mode 100644 gfx/pokemon/front/gastly.png create mode 100644 gfx/pokemon/front/gengar.png create mode 100644 gfx/pokemon/front/geodude.png create mode 100644 gfx/pokemon/front/gloom.png create mode 100644 gfx/pokemon/front/golbat.png create mode 100644 gfx/pokemon/front/goldeen.png create mode 100644 gfx/pokemon/front/golduck.png create mode 100644 gfx/pokemon/front/golem.png create mode 100644 gfx/pokemon/front/graveler.png create mode 100644 gfx/pokemon/front/grimer.png create mode 100644 gfx/pokemon/front/growlithe.png create mode 100644 gfx/pokemon/front/gyarados.png create mode 100644 gfx/pokemon/front/haunter.png create mode 100644 gfx/pokemon/front/hitmonchan.png create mode 100644 gfx/pokemon/front/hitmonlee.png create mode 100644 gfx/pokemon/front/horsea.png create mode 100644 gfx/pokemon/front/hypno.png create mode 100644 gfx/pokemon/front/ivysaur.png create mode 100644 gfx/pokemon/front/jigglypuff.png create mode 100644 gfx/pokemon/front/jolteon.png create mode 100644 gfx/pokemon/front/jynx.png create mode 100644 gfx/pokemon/front/kabuto.png create mode 100644 gfx/pokemon/front/kabutops.png create mode 100644 gfx/pokemon/front/kadabra.png create mode 100644 gfx/pokemon/front/kakuna.png create mode 100644 gfx/pokemon/front/kangaskhan.png create mode 100644 gfx/pokemon/front/kingler.png create mode 100644 gfx/pokemon/front/koffing.png create mode 100644 gfx/pokemon/front/krabby.png create mode 100644 gfx/pokemon/front/lapras.png create mode 100644 gfx/pokemon/front/lickitung.png create mode 100644 gfx/pokemon/front/machamp.png create mode 100644 gfx/pokemon/front/machoke.png create mode 100644 gfx/pokemon/front/machop.png create mode 100644 gfx/pokemon/front/magikarp.png create mode 100644 gfx/pokemon/front/magmar.png create mode 100644 gfx/pokemon/front/magnemite.png create mode 100644 gfx/pokemon/front/magneton.png create mode 100644 gfx/pokemon/front/mankey.png create mode 100644 gfx/pokemon/front/marowak.png create mode 100644 gfx/pokemon/front/meowth.png create mode 100644 gfx/pokemon/front/metapod.png create mode 100644 gfx/pokemon/front/mew.png create mode 100644 gfx/pokemon/front/mewtwo.png create mode 100644 gfx/pokemon/front/moltres.png create mode 100644 gfx/pokemon/front/mr.mime.png create mode 100644 gfx/pokemon/front/muk.png create mode 100644 gfx/pokemon/front/nidoking.png create mode 100644 gfx/pokemon/front/nidoqueen.png create mode 100644 gfx/pokemon/front/nidoranf.png create mode 100644 gfx/pokemon/front/nidoranm.png create mode 100644 gfx/pokemon/front/nidorina.png create mode 100644 gfx/pokemon/front/nidorino.png create mode 100644 gfx/pokemon/front/ninetales.png create mode 100644 gfx/pokemon/front/oddish.png create mode 100644 gfx/pokemon/front/omanyte.png create mode 100644 gfx/pokemon/front/omastar.png create mode 100644 gfx/pokemon/front/onix.png create mode 100644 gfx/pokemon/front/paras.png create mode 100644 gfx/pokemon/front/parasect.png create mode 100644 gfx/pokemon/front/persian.png create mode 100644 gfx/pokemon/front/pidgeot.png create mode 100644 gfx/pokemon/front/pidgeotto.png create mode 100644 gfx/pokemon/front/pidgey.png create mode 100644 gfx/pokemon/front/pikachu.png create mode 100644 gfx/pokemon/front/pinsir.png create mode 100644 gfx/pokemon/front/poliwag.png create mode 100644 gfx/pokemon/front/poliwhirl.png create mode 100644 gfx/pokemon/front/poliwrath.png create mode 100644 gfx/pokemon/front/ponyta.png create mode 100644 gfx/pokemon/front/porygon.png create mode 100644 gfx/pokemon/front/primeape.png create mode 100644 gfx/pokemon/front/psyduck.png create mode 100644 gfx/pokemon/front/raichu.png create mode 100644 gfx/pokemon/front/rapidash.png create mode 100644 gfx/pokemon/front/raticate.png create mode 100644 gfx/pokemon/front/rattata.png create mode 100644 gfx/pokemon/front/rhydon.png create mode 100644 gfx/pokemon/front/rhyhorn.png create mode 100644 gfx/pokemon/front/sandshrew.png create mode 100644 gfx/pokemon/front/sandslash.png create mode 100644 gfx/pokemon/front/scyther.png create mode 100644 gfx/pokemon/front/seadra.png create mode 100644 gfx/pokemon/front/seaking.png create mode 100644 gfx/pokemon/front/seel.png create mode 100644 gfx/pokemon/front/shellder.png create mode 100644 gfx/pokemon/front/slowbro.png create mode 100644 gfx/pokemon/front/slowpoke.png create mode 100644 gfx/pokemon/front/snorlax.png create mode 100644 gfx/pokemon/front/spearow.png create mode 100644 gfx/pokemon/front/squirtle.png create mode 100644 gfx/pokemon/front/starmie.png create mode 100644 gfx/pokemon/front/staryu.png create mode 100644 gfx/pokemon/front/tangela.png create mode 100644 gfx/pokemon/front/tauros.png create mode 100644 gfx/pokemon/front/tentacool.png create mode 100644 gfx/pokemon/front/tentacruel.png create mode 100644 gfx/pokemon/front/vaporeon.png create mode 100644 gfx/pokemon/front/venomoth.png create mode 100644 gfx/pokemon/front/venonat.png create mode 100644 gfx/pokemon/front/venusaur.png create mode 100644 gfx/pokemon/front/victreebel.png create mode 100644 gfx/pokemon/front/vileplume.png create mode 100644 gfx/pokemon/front/voltorb.png create mode 100644 gfx/pokemon/front/vulpix.png create mode 100644 gfx/pokemon/front/wartortle.png create mode 100644 gfx/pokemon/front/weedle.png create mode 100644 gfx/pokemon/front/weepinbell.png create mode 100644 gfx/pokemon/front/weezing.png create mode 100644 gfx/pokemon/front/wigglytuff.png create mode 100644 gfx/pokemon/front/zapdos.png create mode 100644 gfx/pokemon/front/zubat.png rename {pic/rgmon => gfx/pokemon/front_rg}/abra.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/aerodactyl.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/alakazam.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/arbok.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/arcanine.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/articuno.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/beedrill.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/bellsprout.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/blastoise.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/bulbasaur.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/butterfree.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/caterpie.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/chansey.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/charizard.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/charmander.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/charmeleon.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/clefable.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/clefairy.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/cloyster.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/cubone.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/dewgong.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/diglett.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/ditto.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/dodrio.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/doduo.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/dragonair.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/dragonite.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/dratini.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/drowzee.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/dugtrio.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/eevee.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/ekans.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/electabuzz.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/electrode.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/exeggcute.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/exeggutor.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/farfetchd.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/fearow.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/flareon.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/fossilaerodactyl.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/fossilkabutops.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/gastly.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/gengar.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/geodude.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/gloom.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/golbat.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/goldeen.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/golduck.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/golem.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/graveler.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/grimer.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/growlithe.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/gyarados.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/haunter.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/hitmonchan.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/hitmonlee.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/horsea.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/hypno.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/ivysaur.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/jigglypuff.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/jolteon.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/jynx.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/kabuto.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/kabutops.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/kadabra.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/kakuna.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/kangaskhan.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/kingler.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/koffing.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/krabby.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/lapras.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/lickitung.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/machamp.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/machoke.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/machop.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/magikarp.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/magmar.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/magnemite.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/magneton.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/mankey.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/marowak.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/meowth.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/metapod.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/mew.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/mewtwo.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/moltres.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/mr.mime.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/muk.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/nidoking.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/nidoqueen.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/nidoranf.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/nidoranm.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/nidorina.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/nidorino.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/ninetales.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/oddish.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/omanyte.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/omastar.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/onix.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/paras.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/parasect.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/persian.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/pidgeot.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/pidgeotto.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/pidgey.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/pikachu.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/pinsir.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/poliwag.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/poliwhirl.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/poliwrath.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/ponyta.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/porygon.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/primeape.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/psyduck.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/raichu.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/rapidash.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/raticate.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/rattata.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/rhydon.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/rhyhorn.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/sandshrew.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/sandslash.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/scyther.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/seadra.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/seaking.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/seel.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/shellder.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/slowbro.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/slowpoke.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/snorlax.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/spearow.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/squirtle.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/starmie.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/staryu.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/tangela.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/tauros.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/tentacool.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/tentacruel.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/vaporeon.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/venomoth.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/venonat.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/venusaur.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/victreebel.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/vileplume.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/voltorb.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/vulpix.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/wartortle.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/weedle.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/weepinbell.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/weezing.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/wigglytuff.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/zapdos.png (100%) rename {pic/rgmon => gfx/pokemon/front_rg}/zubat.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/abra.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/aerodactyl.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/alakazam.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/arbok.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/arcanine.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/articuno.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/beedrill.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/bellsprout.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/blastoise.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/bulbasaur.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/butterfree.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/caterpie.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/chansey.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/charizard.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/charmander.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/charmeleon.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/clefable.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/clefairy.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/cloyster.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/cubone.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/dewgong.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/diglett.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/ditto.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/dodrio.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/doduo.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/dragonair.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/dragonite.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/dratini.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/drowzee.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/dugtrio.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/eevee.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/ekans.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/electabuzz.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/electrode.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/exeggcute.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/exeggutor.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/farfetchd.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/fearow.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/flareon.png (100%) create mode 100644 gfx/pokemon/front_yellow/fossilaerodactyl.png create mode 100644 gfx/pokemon/front_yellow/fossilkabutops.png rename {pic/ymon => gfx/pokemon/front_yellow}/gastly.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/gengar.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/geodude.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/gloom.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/golbat.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/goldeen.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/golduck.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/golem.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/graveler.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/grimer.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/growlithe.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/gyarados.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/haunter.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/hitmonchan.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/hitmonlee.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/horsea.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/hypno.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/ivysaur.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/jigglypuff.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/jolteon.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/jynx.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/kabuto.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/kabutops.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/kadabra.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/kakuna.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/kangaskhan.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/kingler.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/koffing.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/krabby.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/lapras.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/lickitung.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/machamp.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/machoke.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/machop.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/magikarp.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/magmar.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/magnemite.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/magneton.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/mankey.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/marowak.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/meowth.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/metapod.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/mew.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/mewtwo.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/moltres.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/mr.mime.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/muk.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/nidoking.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/nidoqueen.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/nidoranf.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/nidoranm.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/nidorina.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/nidorino.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/ninetales.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/oddish.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/omanyte.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/omastar.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/onix.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/paras.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/parasect.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/persian.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/pidgeot.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/pidgeotto.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/pidgey.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/pikachu.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/pinsir.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/poliwag.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/poliwhirl.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/poliwrath.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/ponyta.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/porygon.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/primeape.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/psyduck.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/raichu.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/rapidash.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/raticate.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/rattata.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/rhydon.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/rhyhorn.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/sandshrew.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/sandslash.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/scyther.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/seadra.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/seaking.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/seel.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/shellder.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/slowbro.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/slowpoke.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/snorlax.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/spearow.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/squirtle.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/starmie.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/staryu.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/tangela.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/tauros.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/tentacool.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/tentacruel.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/vaporeon.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/venomoth.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/venonat.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/venusaur.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/victreebel.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/vileplume.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/voltorb.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/vulpix.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/wartortle.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/weedle.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/weepinbell.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/weezing.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/wigglytuff.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/zapdos.png (100%) rename {pic/ymon => gfx/pokemon/front_yellow}/zubat.png (100%) create mode 100644 gfx/pokemon/slide_down_7x3.tilemap create mode 100644 gfx/pokemon/slide_down_7x5.tilemap rename gfx/{pokemon_yellow.png => sgb/border.png} (100%) rename gfx/{tilemaps/sgbborder.map => sgb/border.tilemap} (100%) create mode 100644 gfx/sgb/green_border.png create mode 100644 gfx/sgb/green_border.tilemap delete mode 100644 gfx/slotmachine1.png create mode 100644 gfx/slots/green_slots_1.png create mode 100644 gfx/slots/green_slots_2.png rename gfx/{tilemaps/slotmachine.map => slots/slots.tilemap} (100%) create mode 100644 gfx/slots/slots_1.png rename gfx/{slotmachine2.png => slots/slots_2.png} (100%) delete mode 100644 gfx/spinner_arrow.png rename gfx/{ => splash}/copyright.png (100%) rename gfx/{ => splash}/falling_star.png (100%) rename gfx/{ => splash}/gamefreak_logo.png (100%) rename gfx/{gamefreak_intro.png => splash/gamefreak_presents.png} (100%) create mode 100644 gfx/sprites.asm rename gfx/sprites/{foulard_woman.png => beauty.png} (100%) rename gfx/sprites/{bike_shop_guy.png => bike_shop_clerk.png} (100%) rename gfx/sprites/{ss_captain.png => captain.png} (100%) rename gfx/sprites/{medium.png => channeler.png} (100%) delete mode 100644 gfx/sprites/clefairy2.png rename gfx/sprites/{mart_guy.png => clerk.png} (100%) rename gfx/sprites/{lass.png => cooltrainer_f.png} (100%) rename gfx/sprites/{black_hair_boy_1.png => cooltrainer_m.png} (100%) create mode 100644 gfx/sprites/fairy.png delete mode 100644 gfx/sprites/fisher2.png create mode 100644 gfx/sprites/fishing_guru.png rename gfx/sprites/{omanyte.png => fossil.png} (100%) rename gfx/sprites/{lying_old_man.png => gambler_asleep.png} (100%) rename gfx/sprites/{old_person.png => gramps.png} (100%) rename gfx/sprites/{old_medium_woman.png => granny.png} (100%) rename gfx/sprites/{gym_helper.png => gym_guide.png} (100%) rename gfx/sprites/{blackbelt.png => koga.png} (100%) rename gfx/sprites/{cable_club_woman.png => link_receptionist.png} (100%) rename gfx/sprites/{young_boy.png => little_boy.png} (100%) rename gfx/sprites/{fat_bald_guy.png => middle_aged_man.png} (100%) rename gfx/sprites/{mom_geisha.png => middle_aged_woman.png} (100%) rename gfx/sprites/{slowbro.png => monster.png} (100%) rename gfx/sprites/{paper_sheet.png => paper.png} (100%) rename gfx/sprites/{ball.png => poke_ball.png} (100%) rename gfx/sprites/{book_map_dex.png => pokedex.png} (100%) rename gfx/sprites/{cycling.png => red_bike.png} (100%) rename gfx/sprites/{white_player.png => safari_zone_worker.png} (100%) rename gfx/sprites/{oak_aide.png => scientist.png} (100%) rename gfx/sprites/{mr_masterball.png => silph_president.png} (100%) rename gfx/sprites/{lapras_giver.png => silph_worker.png} (100%) rename gfx/sprites/{black_hair_boy_2.png => super_nerd.png} (100%) rename gfx/sprites/{bug_catcher.png => youngster.png} (100%) delete mode 100644 gfx/surfing_pikachu_1.png delete mode 100644 gfx/text_box.png create mode 100644 gfx/tilesets.asm delete mode 100644 gfx/tilesets/beachhouse.tilecoll delete mode 100644 gfx/tilesets/cavern.tilecoll delete mode 100644 gfx/tilesets/cemetery.tilecoll delete mode 100644 gfx/tilesets/club.tilecoll delete mode 100644 gfx/tilesets/facility.tilecoll delete mode 100644 gfx/tilesets/forest.tilecoll delete mode 100644 gfx/tilesets/gate.tilecoll delete mode 100644 gfx/tilesets/gym.tilecoll delete mode 100644 gfx/tilesets/house.tilecoll delete mode 100644 gfx/tilesets/interior.tilecoll delete mode 100644 gfx/tilesets/lab.tilecoll delete mode 100644 gfx/tilesets/lobby.tilecoll delete mode 100644 gfx/tilesets/mansion.tilecoll delete mode 100644 gfx/tilesets/overworld.tilecoll delete mode 100644 gfx/tilesets/plateau.tilecoll delete mode 100644 gfx/tilesets/pokecenter.tilecoll delete mode 100644 gfx/tilesets/reds_house.tilecoll delete mode 100644 gfx/tilesets/ship.tilecoll delete mode 100644 gfx/tilesets/ship_port.tilecoll create mode 100644 gfx/tilesets/tilesets_rg/flower.png create mode 100644 gfx/tilesets/tilesets_rg/forest.png create mode 100644 gfx/tilesets/tilesets_rg/overworld.png delete mode 100644 gfx/tilesets/underground.tilecoll rename gfx/{blueversion.png => title/blue_version.png} (100%) rename gfx/{gamefreak.png => title/gamefreak_inc.png} (100%) rename gfx/{player_title.png => title/player.png} (100%) rename gfx/{ => title}/pokemon_logo.png (100%) rename gfx/{ => title}/pokemon_logo_japan.png (100%) rename gfx/{ => town_map}/mon_nest_icon.png (100%) rename gfx/{ => town_map}/town_map.png (100%) rename gfx/{ => town_map}/town_map.rle (100%) rename gfx/{ => town_map}/town_map_cursor.png (100%) rename gfx/{ => town_map}/up_arrow.png (100%) create mode 100644 gfx/trade.asm create mode 100644 gfx/trade/bubble.png rename gfx/{trade2.png => trade/cable_ball.png} (100%) rename gfx/{ => trade}/game_boy.png (100%) create mode 100644 gfx/trade/game_boy.tilemap rename gfx/{ => trade}/link_cable.png (100%) create mode 100644 gfx/trade/link_cable.tilemap create mode 100644 gfx/trainer_card.asm rename gfx/{ => trainer_card}/badge_numbers.png (100%) rename gfx/{ => trainer_card}/badges.png (100%) rename gfx/{ => trainer_card}/blank_leader_names.png (100%) rename gfx/{ => trainer_card}/circle_tile.png (100%) rename gfx/{ => trainer_card}/trainer_info.png (100%) rename {pic/trainer => gfx/trainers}/agatha.png (100%) rename {pic/trainer => gfx/trainers}/beauty.png (100%) rename {pic/trainer => gfx/trainers}/biker.png (100%) rename {pic/trainer => gfx/trainers}/birdkeeper.png (100%) rename {pic/trainer => gfx/trainers}/blackbelt.png (100%) rename {pic/trainer => gfx/trainers}/blaine.png (100%) rename {pic/trainer => gfx/trainers}/brock.png (100%) rename {pic/trainer => gfx/trainers}/bruno.png (100%) rename {pic/trainer => gfx/trainers}/bugcatcher.png (100%) rename {pic/trainer => gfx/trainers}/burglar.png (100%) rename {pic/trainer => gfx/trainers}/channeler.png (100%) rename {pic/trainer => gfx/trainers}/cooltrainerf.png (100%) rename {pic/trainer => gfx/trainers}/cooltrainerm.png (100%) rename {pic/trainer => gfx/trainers}/cueball.png (100%) rename {pic/trainer => gfx/trainers}/engineer.png (100%) rename {pic/trainer => gfx/trainers}/erika.png (100%) rename {pic/trainer => gfx/trainers}/fisher.png (100%) rename {pic/trainer => gfx/trainers}/gambler.png (100%) rename {pic/trainer => gfx/trainers}/gentleman.png (100%) rename {pic/trainer => gfx/trainers}/giovanni.png (100%) rename {pic/trainer => gfx/trainers}/hiker.png (100%) rename {pic/trainer => gfx/trainers}/jr.trainerf.png (100%) rename {pic/trainer => gfx/trainers}/jr.trainerm.png (100%) rename {pic/trainer => gfx/trainers}/juggler.png (100%) rename {pic/trainer => gfx/trainers}/koga.png (100%) rename {pic/trainer => gfx/trainers}/lance.png (100%) rename {pic/trainer => gfx/trainers}/lass.png (100%) rename {pic/trainer => gfx/trainers}/lorelei.png (100%) rename {pic/trainer => gfx/trainers}/lt.surge.png (100%) rename {pic/trainer => gfx/trainers}/misty.png (100%) rename {pic/trainer => gfx/trainers}/pokemaniac.png (100%) rename {pic/trainer => gfx/trainers}/prof.oak.png (100%) rename {pic/trainer => gfx/trainers}/psychic.png (100%) rename {pic/trainer => gfx/trainers}/rival1.png (100%) rename {pic/trainer => gfx/trainers}/rival2.png (100%) rename {pic/trainer => gfx/trainers}/rival3.png (100%) rename {pic/trainer => gfx/trainers}/rocker.png (100%) rename {pic/trainer => gfx/trainers}/rocket.png (100%) rename {pic/trainer => gfx/trainers}/sabrina.png (100%) rename {pic/trainer => gfx/trainers}/sailor.png (100%) rename {pic/trainer => gfx/trainers}/scientist.png (100%) rename {pic/trainer => gfx/trainers}/supernerd.png (100%) rename {pic/trainer => gfx/trainers}/swimmer.png (100%) rename {pic/trainer => gfx/trainers}/tamer.png (100%) rename {pic/ytrainer => gfx/trainers/yellow}/brock.png (100%) rename {pic/ytrainer => gfx/trainers/yellow}/erika.png (100%) rename {pic/ytrainer => gfx/trainers/yellow}/jessiejames.png (100%) rename {pic/ytrainer => gfx/trainers/yellow}/misty.png (100%) rename {pic/ytrainer => gfx/trainers/yellow}/rival1.png (100%) rename {pic/ytrainer => gfx/trainers/yellow}/rival2.png (100%) rename {pic/ytrainer => gfx/trainers/yellow}/rival3.png (100%) rename {pic/trainer => gfx/trainers}/youngster.png (100%) create mode 100644 gfx/version.asm create mode 100644 home/array.asm create mode 100644 home/array2.asm create mode 100644 home/bankswitch.asm create mode 100644 home/clear_sprites.asm create mode 100644 home/compare.asm create mode 100644 home/copy_string.asm create mode 100644 home/count_set_bits.asm create mode 100644 home/delay.asm create mode 100644 home/fade_audio.asm create mode 100644 home/give.asm create mode 100644 home/header.asm create mode 100644 home/hidden_objects.asm create mode 100644 home/inventory.asm create mode 100644 home/item.asm create mode 100644 home/item_price.asm create mode 100644 home/joypad.asm create mode 100644 home/joypad2.asm create mode 100644 home/lcd.asm create mode 100644 home/list_menu.asm create mode 100644 home/load_font.asm create mode 100644 home/map_objects.asm create mode 100644 home/math.asm create mode 100644 home/money.asm create mode 100644 home/move_mon.asm create mode 100644 home/names.asm create mode 100644 home/names2.asm create mode 100644 home/npc_movement.asm create mode 100644 home/oam.asm create mode 100644 home/overworld_text.asm create mode 100644 home/palettes.asm create mode 100644 home/pathfinding.asm delete mode 100644 home/pic.asm create mode 100644 home/pics.asm create mode 100644 home/pokemon.asm create mode 100644 home/predef_text.asm create mode 100644 home/print_bcd.asm create mode 100644 home/print_num.asm create mode 100644 home/print_text.asm create mode 100644 home/random.asm create mode 100644 home/reload_sprites.asm create mode 100644 home/reload_tiles.asm create mode 100644 home/reset_player_sprite.asm create mode 100644 home/start.asm rename {engine/menu => home}/start_menu.asm (93%) create mode 100644 home/text_script.asm create mode 100644 home/textbox.asm create mode 100644 home/tilemap.asm create mode 100644 home/trainers.asm create mode 100644 home/trainers2.asm create mode 100644 home/uncompress.asm create mode 100644 home/update_sprites.asm create mode 100644 home/window.asm create mode 100644 home/yes_no.asm create mode 100644 layout.link delete mode 100755 macros/asm_macros.asm delete mode 100755 macros/audio_macros.asm create mode 100755 macros/code.asm create mode 100644 macros/const.asm create mode 100644 macros/coords.asm create mode 100755 macros/data.asm delete mode 100755 macros/data_macros.asm delete mode 100644 macros/event_macros.asm create mode 100644 macros/farcall.asm create mode 100644 macros/gfx.asm create mode 100644 macros/predef.asm create mode 100755 macros/scripts/audio.asm create mode 100644 macros/scripts/events.asm create mode 100644 macros/scripts/maps.asm create mode 100755 macros/scripts/text.asm delete mode 100755 macros/text_macros.asm create mode 100644 macros/wram.asm create mode 100644 maps.asm create mode 100644 maps/green/CeruleanCave1F.blk create mode 100644 maps/green/CeruleanCave2F.blk create mode 100644 maps/green/CeruleanCaveB1F.blk delete mode 100644 pokeyellow.link create mode 100644 rgbdscheck.asm delete mode 100644 roms.md5 create mode 100644 roms.sha1 rename text/{maps => }/AgathasRoom.asm (100%) create mode 100644 text/BeachHouse.asm create mode 100644 text/BikeShop.asm create mode 100644 text/BillsHouse.asm create mode 100644 text/BluesHouse.asm rename text/{maps => }/BrunosRoom.asm (100%) rename text/{maps => }/CeladonChiefHouse.asm (100%) create mode 100644 text/CeladonCity.asm create mode 100644 text/CeladonDiner.asm create mode 100644 text/CeladonGym.asm rename text/{maps => }/CeladonHotel.asm (100%) create mode 100644 text/CeladonMansion1F.asm rename text/{maps => }/CeladonMansion2F.asm (100%) create mode 100644 text/CeladonMansion3F.asm rename text/{maps => }/CeladonMansionRoof.asm (100%) rename text/{maps => }/CeladonMansionRoofHouse.asm (100%) rename text/{maps => }/CeladonMart1F.asm (100%) rename text/{maps => }/CeladonMart2F.asm (100%) create mode 100644 text/CeladonMart3F.asm rename text/{maps => }/CeladonMart4F.asm (100%) rename text/{maps => }/CeladonMart5F.asm (100%) create mode 100644 text/CeladonMartRoof.asm rename text/{maps => }/CeladonPokecenter.asm (100%) rename text/{maps => }/CeruleanBadgeHouse.asm (100%) rename text/{maps => }/CeruleanBadgeHouse_2.asm (100%) mode change 100755 => 100644 create mode 100644 text/CeruleanCaveB1F.asm create mode 100644 text/CeruleanCity.asm create mode 100644 text/CeruleanGym.asm rename text/{maps => }/CeruleanMart.asm (100%) rename text/{maps => }/CeruleanPokecenter.asm (100%) create mode 100644 text/CeruleanTradeHouse.asm rename text/{maps => }/CeruleanTrashedHouse.asm (100%) create mode 100644 text/ChampionsRoom.asm create mode 100644 text/CinnabarGym.asm rename text/{maps => }/CinnabarIsland.asm (100%) rename text/{maps => }/CinnabarLab.asm (100%) create mode 100644 text/CinnabarLabFossilRoom.asm create mode 100644 text/CinnabarLabMetronomeRoom.asm rename text/{maps => }/CinnabarLabTradeRoom.asm (100%) rename text/{maps => }/CinnabarMart.asm (100%) rename text/{maps => }/CinnabarPokecenter.asm (100%) create mode 100644 text/CopycatsHouse1F.asm create mode 100644 text/CopycatsHouse2F.asm create mode 100644 text/Daycare.asm rename text/{maps => }/DiglettsCaveRoute11.asm (100%) rename text/{maps => }/DiglettsCaveRoute2.asm (100%) rename text/{maps => }/FightingDojo.asm (100%) rename text/{maps => }/FuchsiaBillsGrandpasHouse.asm (100%) rename text/{maps => }/FuchsiaCity.asm (100%) create mode 100644 text/FuchsiaGoodRodHouse.asm create mode 100644 text/FuchsiaGym.asm rename text/{maps => }/FuchsiaMart.asm (100%) rename text/{maps => }/FuchsiaMeetingRoom.asm (100%) rename text/{maps => }/FuchsiaPokecenter.asm (100%) create mode 100644 text/GameCorner.asm rename text/{maps => }/GameCornerPrizeRoom.asm (100%) rename text/{maps => }/GameCorner_2.asm (100%) mode change 100755 => 100644 rename text/{maps => }/HallOfFame.asm (100%) rename text/{maps => }/IndigoPlateauLobby.asm (100%) create mode 100644 text/LancesRoom.asm create mode 100644 text/LavenderCuboneHouse.asm rename text/{maps => }/LavenderMart.asm (100%) rename text/{maps => }/LavenderPokecenter.asm (100%) rename text/{maps => }/LavenderTown.asm (100%) rename text/{maps => }/LoreleisRoom.asm (100%) create mode 100644 text/MrFujisHouse.asm create mode 100644 text/MrPsychicsHouse.asm rename text/{maps => }/MtMoon1F.asm (100%) create mode 100644 text/MtMoonB1F.asm create mode 100644 text/MtMoonB2F.asm create mode 100644 text/MtMoonPokecenter.asm create mode 100644 text/Museum1F.asm rename text/{maps => }/Museum2F.asm (100%) create mode 100644 text/NameRatersHouse.asm create mode 100644 text/OaksLab.asm create mode 100644 text/PalletTown.asm rename text/{maps => }/PewterCity.asm (100%) create mode 100644 text/PewterGym.asm rename text/{maps => }/PewterMart.asm (100%) create mode 100644 text/PewterNidoranHouse.asm rename text/{maps => }/PewterPokecenter.asm (100%) rename text/{maps => }/PewterSpeechHouse.asm (100%) create mode 100644 text/PokemonFanClub.asm rename text/{maps => }/PokemonMansion1F.asm (100%) rename text/{maps => }/PokemonMansion2F.asm (100%) rename text/{maps => }/PokemonMansion3F.asm (100%) rename text/{maps => }/PokemonMansionB1F.asm (100%) rename text/{maps => }/PokemonTower1F.asm (100%) rename text/{maps => }/PokemonTower2F.asm (100%) rename text/{maps => }/PokemonTower3F.asm (100%) rename text/{maps => }/PokemonTower4F.asm (100%) rename text/{maps => }/PokemonTower5F.asm (100%) rename text/{maps => }/PokemonTower6F.asm (100%) create mode 100644 text/PokemonTower7F.asm create mode 100644 text/PowerPlant.asm rename text/{maps => }/RedsHouse1F.asm (100%) rename text/{maps => }/RockTunnel1F.asm (100%) rename text/{maps => }/RockTunnelB1F.asm (100%) rename text/{maps => }/RockTunnelPokecenter.asm (100%) create mode 100644 text/RocketHideoutB1F.asm rename text/{maps => }/RocketHideoutB2F.asm (100%) rename text/{maps => }/RocketHideoutB3F.asm (100%) create mode 100644 text/RocketHideoutB4F.asm create mode 100644 text/RocketHideoutElevator.asm create mode 100644 text/Route1.asm rename text/{maps => }/Route10.asm (100%) rename text/{maps => }/Route11.asm (100%) rename text/{maps => }/Route11Gate1F.asm (100%) rename text/{maps => }/Route11Gate2F.asm (100%) rename text/{maps => }/Route12.asm (100%) rename text/{maps => }/Route12Gate1F.asm (100%) create mode 100644 text/Route12Gate2F.asm create mode 100644 text/Route12SuperRodHouse.asm rename text/{maps => }/Route13.asm (100%) rename text/{maps => }/Route14.asm (100%) create mode 100644 text/Route15.asm rename text/{maps => }/Route15Gate1F.asm (100%) rename text/{maps => }/Route15Gate2F.asm (100%) rename text/{maps => }/Route16.asm (100%) create mode 100644 text/Route16FlyHouse.asm rename text/{maps => }/Route16Gate1F.asm (100%) rename text/{maps => }/Route16Gate2F.asm (100%) rename text/{maps => }/Route17.asm (100%) rename text/{maps => }/Route18.asm (100%) rename text/{maps => }/Route18Gate1F.asm (100%) rename text/{maps => }/Route18Gate2F.asm (100%) rename text/{maps => }/Route19.asm (100%) rename text/{maps => }/Route2.asm (100%) rename text/{maps => }/Route20.asm (100%) rename text/{maps => }/Route21.asm (100%) rename text/{maps => }/Route22.asm (100%) create mode 100644 text/Route22Gate.asm create mode 100644 text/Route23.asm create mode 100644 text/Route24.asm rename text/{maps => }/Route25.asm (100%) rename text/{maps => }/Route2Gate.asm (100%) rename text/{maps => }/Route2TradeHouse.asm (100%) rename text/{maps => }/Route3.asm (100%) rename text/{maps => }/Route4.asm (100%) rename text/{maps => }/Route5.asm (100%) rename text/{maps => }/Route6.asm (100%) rename text/{maps => }/Route7.asm (100%) rename text/{maps => }/Route8.asm (100%) rename text/{maps => }/Route9.asm (100%) rename text/{maps => }/Route9_2.asm (100%) mode change 100755 => 100644 rename text/{maps => }/SSAnne1F.asm (100%) create mode 100644 text/SSAnne1FRooms.asm rename text/{maps => }/SSAnne2F.asm (100%) rename text/{maps => }/SSAnne2FRooms.asm (100%) rename text/{maps => }/SSAnne3F.asm (100%) create mode 100644 text/SSAnneB1FRooms.asm rename text/{maps => }/SSAnneBow.asm (100%) create mode 100644 text/SSAnneCaptainsRoom.asm rename text/{maps => }/SSAnneKitchen.asm (100%) rename text/{maps => }/SafariZoneCenter.asm (100%) rename text/{maps => }/SafariZoneCenterRestHouse.asm (100%) rename text/{maps => }/SafariZoneEast.asm (100%) rename text/{maps => }/SafariZoneEastRestHouse.asm (100%) create mode 100644 text/SafariZoneGate.asm rename text/{maps => }/SafariZoneNorth.asm (100%) rename text/{maps => }/SafariZoneNorthRestHouse.asm (100%) create mode 100644 text/SafariZoneSecretHouse.asm rename text/{maps => }/SafariZoneWest.asm (100%) rename text/{maps => }/SafariZoneWestRestHouse.asm (100%) create mode 100644 text/SaffronCity.asm rename text/{maps => }/SaffronGates.asm (93%) create mode 100644 text/SaffronGym.asm rename text/{maps => }/SaffronMart.asm (100%) create mode 100644 text/SaffronPidgeyHouse.asm rename text/{maps => }/SaffronPokecenter.asm (100%) create mode 100644 text/SeafoamIslandsB4F.asm create mode 100644 text/SilphCo10F.asm create mode 100644 text/SilphCo11F.asm rename text/{maps => }/SilphCo1F.asm (100%) create mode 100644 text/SilphCo2F.asm rename text/{maps => }/SilphCo3F.asm (100%) rename text/{maps => }/SilphCo4F.asm (100%) rename text/{maps => }/SilphCo5F.asm (100%) rename text/{maps => }/SilphCo6F.asm (100%) rename text/{maps => }/SilphCo7F.asm (100%) rename text/{maps => }/SilphCo8F.asm (100%) rename text/{maps => }/SilphCo9F.asm (100%) rename text/{maps => }/UndergroundPathRoute6.asm (100%) rename text/{maps => }/UndergroundPathRoute7.asm (100%) rename text/{maps => }/UndergroundPathRoute7Copy.asm (100%) rename text/{maps => }/UndergroundPathRoute8.asm (100%) create mode 100644 text/VermilionCity.asm create mode 100644 text/VermilionDock.asm create mode 100644 text/VermilionGym.asm rename text/{maps => }/VermilionMart.asm (100%) create mode 100644 text/VermilionOldRodHouse.asm create mode 100644 text/VermilionPidgeyHouse.asm rename text/{maps => }/VermilionPokecenter.asm (100%) rename text/{maps => }/VictoryRoad1F.asm (100%) create mode 100644 text/VictoryRoad2F.asm rename text/{maps => }/VictoryRoad3F.asm (100%) create mode 100644 text/ViridianCity.asm rename text/{maps => }/ViridianForest.asm (100%) rename text/{maps => }/ViridianForestNorthGate.asm (100%) rename text/{maps => }/ViridianForestSouthGate.asm (100%) create mode 100644 text/ViridianGym.asm create mode 100644 text/ViridianMart.asm rename text/{maps => }/ViridianNicknameHouse.asm (100%) rename text/{maps => }/ViridianPokecenter.asm (100%) rename text/{maps => }/ViridianSchoolHouse.asm (100%) create mode 100644 text/WardensHouse.asm delete mode 100755 text/item_names.asm delete mode 100755 text/map_names.asm delete mode 100644 text/maps/BeachHouse.asm delete mode 100644 text/maps/BikeShop.asm delete mode 100644 text/maps/BillsHouse.asm delete mode 100644 text/maps/BluesHouse.asm delete mode 100644 text/maps/CeladonCity.asm delete mode 100644 text/maps/CeladonDiner.asm delete mode 100644 text/maps/CeladonGym.asm delete mode 100644 text/maps/CeladonMansion1F.asm delete mode 100644 text/maps/CeladonMansion3F.asm delete mode 100644 text/maps/CeladonMart3F.asm delete mode 100644 text/maps/CeladonMartRoof.asm delete mode 100644 text/maps/CeruleanCaveB1F.asm delete mode 100644 text/maps/CeruleanCity.asm delete mode 100644 text/maps/CeruleanGym.asm delete mode 100644 text/maps/CeruleanTradeHouse.asm delete mode 100644 text/maps/ChampionsRoom.asm delete mode 100644 text/maps/CinnabarGym.asm delete mode 100644 text/maps/CinnabarLabFossilRoom.asm delete mode 100644 text/maps/CinnabarLabMetronomeRoom.asm delete mode 100644 text/maps/CopycatsHouse1F.asm delete mode 100644 text/maps/CopycatsHouse2F.asm delete mode 100644 text/maps/Daycare.asm delete mode 100644 text/maps/FuchsiaGoodRodHouse.asm delete mode 100644 text/maps/FuchsiaGym.asm delete mode 100644 text/maps/GameCorner.asm delete mode 100644 text/maps/LancesRoom.asm delete mode 100644 text/maps/LavenderCuboneHouse.asm delete mode 100644 text/maps/MrFujisHouse.asm delete mode 100644 text/maps/MrPsychicsHouse.asm delete mode 100644 text/maps/MtMoonB1F.asm delete mode 100644 text/maps/MtMoonB2F.asm delete mode 100644 text/maps/MtMoonPokecenter.asm delete mode 100644 text/maps/Museum1F.asm delete mode 100644 text/maps/NameRatersHouse.asm delete mode 100644 text/maps/OaksLab.asm delete mode 100644 text/maps/PalletTown.asm delete mode 100644 text/maps/PewterGym.asm delete mode 100644 text/maps/PewterNidoranHouse.asm delete mode 100644 text/maps/PokemonFanClub.asm delete mode 100644 text/maps/PokemonTower7F.asm delete mode 100644 text/maps/PowerPlant.asm delete mode 100644 text/maps/RocketHideoutB1F.asm delete mode 100644 text/maps/RocketHideoutB4F.asm delete mode 100644 text/maps/RocketHideoutElevator.asm delete mode 100644 text/maps/Route1.asm delete mode 100644 text/maps/Route12Gate2F.asm delete mode 100644 text/maps/Route12SuperRodHouse.asm delete mode 100644 text/maps/Route15.asm delete mode 100644 text/maps/Route16FlyHouse.asm delete mode 100644 text/maps/Route22Gate.asm delete mode 100644 text/maps/Route23.asm delete mode 100644 text/maps/Route24.asm delete mode 100644 text/maps/SSAnne1FRooms.asm delete mode 100644 text/maps/SSAnneB1FRooms.asm delete mode 100644 text/maps/SSAnneCaptainsRoom.asm delete mode 100644 text/maps/SafariZoneGate.asm delete mode 100644 text/maps/SafariZoneSecretHouse.asm delete mode 100644 text/maps/SaffronCity.asm delete mode 100644 text/maps/SaffronGym.asm delete mode 100644 text/maps/SaffronPidgeyHouse.asm delete mode 100644 text/maps/SeafoamIslandsB4F.asm delete mode 100644 text/maps/SilphCo10F.asm delete mode 100644 text/maps/SilphCo11F.asm delete mode 100644 text/maps/SilphCo2F.asm delete mode 100644 text/maps/VermilionCity.asm delete mode 100644 text/maps/VermilionDock.asm delete mode 100644 text/maps/VermilionGym.asm delete mode 100644 text/maps/VermilionOldRodHouse.asm delete mode 100644 text/maps/VermilionPidgeyHouse.asm delete mode 100644 text/maps/VictoryRoad2F.asm delete mode 100644 text/maps/ViridianCity.asm delete mode 100644 text/maps/ViridianGym.asm delete mode 100644 text/maps/ViridianMart.asm delete mode 100644 text/maps/WardensHouse.asm delete mode 100755 text/monster_names.asm delete mode 100644 text/oakspeech.asm delete mode 100755 text/trainer_names.asm delete mode 100755 text/type_names.asm delete mode 100644 text/unused_names.asm create mode 100644 tools/pic.py create mode 100755 tools/unnamed.py diff --git a/.gitattributes b/.gitattributes index 3b2890899..dca901b76 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,9 +10,8 @@ *.2bpp binary *.1bpp binary *.rle binary -*.tilecoll binary *.bst binary -*.map binary +*.tilemap binary *.wav binary *.blk binary *.pic binary \ No newline at end of file diff --git a/.gitignore b/.gitignore index faf283c72..c5e70143c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,59 +1,33 @@ -# precompiled python -*.pyc - -# compiled object file +# compiled objects *.o -# no binaries -*.exe +# compiled graphics +*.1bpp +*.2bpp +*.pic -# roms +# compiled roms *.gbc *.gb # rgbds extras +*.map *.sym -# converted image data -*.2bpp -*.1bpp -*.pic +# tool binaries +*.exe + +# precompiled python +*.pyc +*$py.class # converted audio data *.pcm -# swap files for vim -.*.swp - -# no data from extras/ -*.json - -# for any of the poor souls with save game files in their working directory +# save game files *.sgm *.sav -*.sys - -# lol bgb -*.sn1 -*.sn2 -*.sn3 -*.sn4 -*.sn5 -*.sn6 -*.sn7 -*.sn8 -*.sn9 -*.sn0 - -# replace.sh -replace.sh - -# leftover txt files from diff -*.txt - -# for vim configuration -# url: http://www.vim.org/scripts/script.php?script_id=441 -.lvimrc - -# extras is a submodule, don't include -extras/ +*.rtc +*.sn* +*.sa* +*.sg1 diff --git a/.travis.yml b/.travis.yml index d3cce3749..1147a1170 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,14 @@ language: c +os: + - linux + - osx install: - |- - path="$(pwd)"; cd; - wget https://github.com/rednex/rgbds/archive/v0.3.3.tar.gz -O rgbds.tar.gz && - tar xf rgbds.tar.gz && - cd rgbds-0.3.3 && - sudo make install && - cd - && - rm -rf rgbds && - cd "$path" + ( cd + git clone -b v0.4.1 --depth=1 https://github.com/gbdev/rgbds + sudo make -C rgbds install + rm -rf rgbds + ) before_script: - |- function check_status() { @@ -19,6 +19,10 @@ before_script: fi; } script: - - make -j2 - - make compare + - make DEBUG=1 -j2 compare - check_status +after_success: + - |- + if [ "$TRAVIS_BRANCH" = master -a "$TRAVIS_PULL_REQUEST" = false -a "$TRAVIS_OS_NAME" = linux ]; then + ./.travis/webhook.sh + fi diff --git a/.travis/webhook.sh b/.travis/webhook.sh new file mode 100755 index 000000000..c19a321be --- /dev/null +++ b/.travis/webhook.sh @@ -0,0 +1,15 @@ +#!/bin/sh +set -e + +root="$(readlink -e "$(dirname "$0")/..")" + +# Report unnamed symbols +content="$("$root/tools/unnamed.py" -r "$root" "$root/pokeyellow.sym" | head)" + +curl -H 'Content-Type: application/json' -X POST "$POKERED_DISCORD_WEBHOOK_URL" -d@- << EOF +{ + "username": "$POKERED_DISCORD_WEBHOOK_USERNAME", + "avatar_url": "$POKERED_DISCORD_WEBHOOK_AVATAR_URL", + "content": "\`\`\`$(echo "$content" | sed -E ':a;N;$!ba;s/\r{0,1}\n/\\n/g')\`\`\`" +} +EOF diff --git a/INSTALL.md b/INSTALL.md index 713f5fe82..f640e31e4 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,56 +1,155 @@ -# Linux +# Instructions - sudo apt-get install make git gcc python +These instructions explain how to set up the tools required to build **pokeyellow**, including [**rgbds**](https://github.com/gbdev/rgbds), which assembles the source files into a ROM. - sudo apt-get install byacc flex pkg-config libpng-dev - git clone https://github.com/rednex/rgbds - cd rgbds - sudo make install - cd .. +If you run into trouble, ask for help on IRC or Discord (see [README.md](README.md)). - git clone https://github.com/pret/pokeyellow - cd pokeyellow -To build **pokeyellow.gbc**: +## Windows 10 - make +Download and install [**Windows Subsystem for Linux**](https://docs.microsoft.com/en-us/windows/wsl/install-win10). Then open the **WSL terminal**. +Update WSL's software before continuing. If you chose Debian, Ubuntu, or another distribution that uses `apt-get`, then enter this command: -# Mac +```bash +apt-get update && apt-get upgrade +``` -Get [**Homebrew**](http://brew.sh/). +WSL has its own file system that's not accessible from Windows, but Windows files *are* accessible from WSL. So you're going to want to install pokeyellow within Windows. You'll have to change the **current working directory** every time you open WSL. -Then in **Terminal**, run: +For example, if you want to store pokeyellow in **C:\Users\\*\*\Desktop**, enter this command: - xcode-select --install - brew install rgbds +```bash +cd /mnt/c/Users//Desktop +``` - git clone https://github.com/pret/pokeyellow - cd pokeyellow +(The Windows `C:\` drive is called `/mnt/c/` in WSL. Replace *\* in the example path with your username.) -To build **pokeyellow.gbc**: +If this works, then follow [the instructions for **Linux**](#linux) below for whatever distribution you installed for WSL. - make +Otherwise, continue reading below for [the older Windows instructions](#windows). -# Windows +## Windows Download [**Cygwin**](http://cygwin.com/install.html): **setup-x86_64.exe** for 64-bit Windows, **setup-x86.exe** for 32-bit. -Run setup and leave the default settings. At "Select Packages", choose to install the following: +Run setup and leave the default settings. At the "**Select Packages**" step, choose to install the following, all of which are in the "**Devel**" category: - `make` - `git` - `gcc-core` - `python` -Then download [**rgbds**](https://github.com/rednex/rgbds/releases/): the latest **win64.tar.gz** or **win32.tar.gz** release. Extract it and put all the `exe` and `dll` files individually in **C:\cygwin64\usr\local\bin**. +Double click on the text that says "**Skip**" next to each package to select the most recent version to install. + +Then follow the [**rgbds** install instructions](https://rgbds.gbdev.io/install/windows) for Windows with Cygwin to install **rgbds 0.4.1**. + +**Note:** If you already have an older rgbds, you will need to update to 0.4.1. Ignore this if you have never installed rgbds before. If a version newer than 0.4.1 does not work, try downloading 0.4.1. + +Now open the **Cygwin terminal** and enter the following commands. + +Cygwin has its own file system that's within Windows, at **C:\cygwin64\home\\*\***. If you don't want to store pokeyellow there, you'll have to change the **current working directory** every time you open Cygwin. + +For example, if you want to store pokeyellow in **C:\Users\\*\*\Desktop**: + +```bash +cd /cygdrive/c/Users//Desktop +``` + +(The Windows `C:\` drive is called `/cygdrive/c/` in Cygwin. Replace *\* in the example path with your username.) + +Now you're ready to [build **pokeyellow**](#build-pokeyellow). + + +## macOS + +Install [**Homebrew**](https://brew.sh/). Follow the official instructions. + +Open **Terminal** and prepare to enter commands. + +Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/macos) for macOS to install **rgbds 0.4.1**. + +Now you're ready to [build **pokeyellow**](#build-pokeyellow). + + +## Linux + +Open **Terminal** and enter the following commands, depending on which distro you're using. + +### Debian or Ubuntu + +To install the software required for **pokeyellow**: + +```bash +sudo apt-get install make gcc git +``` + +Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.4.1** from source. + +### OpenSUSE + +To install the software required for **pokeyellow**: + +```bash +sudo zypper install make gcc git +``` + +Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.4.1** from source. + +### Arch Linux + +To install the software required for **pokeyellow**: + +```bash +sudo pacman -S make gcc git +``` + +Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/arch) for Arch Linux to install **rgbds 0.4.1**. + +If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.4.1** from source. + +### Termux + +To install the software required for **pokeyellow**: + +```bash +sudo apt install make clang git sed +``` + +To install **rgbds**: + +```bash +sudo apt install rgbds +``` + +If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.4.1** from source. + +### Other distros + +If your distro is not listed here, try to find the required software in its repositories: + +- `make` +- `gcc` (or `clang`) +- `git` +- `rgbds` + +If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.4.1** from source. + +Now you're ready to [build **pokeyellow**](#build-pokeyellow). + + +## Build pokeyellow -In the **Cygwin terminal**, enter these commands: +To download the **pokeyellow** source files: - git clone https://github.com/pret/pokeyellow - cd pokeyellow +```bash +git clone https://github.com/pret/pokeyellow +cd pokeyellow +``` To build **pokeyellow.gbc**: - make +```bash +make +``` diff --git a/Makefile b/Makefile index 27363d870..a5366069f 100644 --- a/Makefile +++ b/Makefile @@ -3,12 +3,25 @@ pcm := $(PYTHON) tools/pokemontools/pcm.py pcm rom := pokeyellow.gbc -objs := audio.o main.o text.o wram.o +rom_obj := \ +audio.o \ +home.o \ +main.o \ +maps.o \ +text.o \ +wram.o \ +gfx/pics.o \ +gfx/sprites.o \ +gfx/tilesets.o ### Build tools -MD5 := md5sum -c +ifeq (,$(shell which sha1sum)) +SHA1 := shasum +else +SHA1 := sha1sum +endif RGBDS ?= RGBASM ?= $(RGBDS)rgbasm @@ -28,53 +41,75 @@ RGBLINK ?= $(RGBDS)rgblink all: $(rom) yellow: $(rom) -# For contributors to make sure a change didn't affect the contents of the rom. -compare: $(rom) - @$(MD5) roms.md5 - -clean: - rm -f $(rom) $(objs) $(rom:.gbc=.sym) - find . \( -iname '*.1bpp' -o -iname '*.2bpp' -o -iname '*.pic' -o -iname '*.pcm' \) -exec rm {} + - $(MAKE) clean -C tools/ +clean: tidy + find . \( -iname '*.1bpp' -o -iname '*.2bpp' -o -iname '*.pic' -o -iname '*.pcm' \) -delete tidy: - rm -f $(rom) $(objs) $(rom:.gbc=.sym) + rm -f $(rom) $(rom_obj) $(rom:.gbc=.map) $(rom:.gbc=.sym) rgbdscheck.o $(MAKE) clean -C tools/ +compare: $(rom) + @$(SHA1) -c roms.sha1 + tools: $(MAKE) -C tools/ +RGBASMFLAGS = -h -L -Weverything +# Create a sym/map for debug purposes if `make` run with `DEBUG=1` +ifeq ($(DEBUG),1) +RGBASMFLAGS += -E +endif + +rgbdscheck.o: rgbdscheck.asm + $(RGBASM) -o $@ $< + +# The dep rules have to be explicit or else missing files won't be reported. +# As a side effect, they're evaluated immediately instead of when the rule is invoked. +# It doesn't look like $(shell) can be deferred so there might not be a better way. +define DEP +$1: $2 $$(shell tools/scan_includes $2) | rgbdscheck.o + $$(RGBASM) $$(RGBASMFLAGS) -o $$@ $$< +endef + # Build tools when building the rom. # This has to happen before the rules are processed, since that's when scan_includes is run. -ifeq (,$(filter clean tools,$(MAKECMDGOALS))) +ifeq (,$(filter clean tidy tools,$(MAKECMDGOALS))) + $(info $(shell $(MAKE) -C tools)) + +# Dependencies for objects +$(foreach obj, $(rom_obj), $(eval $(call DEP,$(obj),$(obj:.o=.asm)))) + endif %.asm: ; -%.o: dep = $(shell tools/scan_includes $(@D)/$*.asm) -$(objs): %.o: %.asm $$(dep) - $(RGBASM) -h -o $@ $*.asm - opts = -cjsv -k 01 -l 0x33 -m 0x1b -p 0 -r 03 -t "POKEMON YELLOW" -$(rom): $(objs) - $(RGBLINK) -n pokeyellow.sym -l pokeyellow.link -o $@ $^ +$(rom): $(rom_obj) layout.link + $(RGBLINK) -m $(rom:.gbc=.map) -n $(rom:.gbc=.sym) -l layout.link -o $@ $(filter %.o,$^) $(RGBFIX) $(opts) $@ - sort $(rom:.gbc=.sym) -o $(rom:.gbc=.sym) ### Misc file-specific graphics rules -gfx/game_boy.2bpp: tools/gfx += --remove-duplicates -gfx/theend.2bpp: tools/gfx += --interleave --png=$< +gfx/battle/attack_anim_1.2bpp: tools/gfx += --trim-whitespace +gfx/battle/attack_anim_2.2bpp: tools/gfx += --trim-whitespace + +gfx/credits/the_end.2bpp: tools/gfx += --interleave --png=$< + +gfx/slots/slots_1.2bpp: tools/gfx += --trim-whitespace + gfx/tilesets/%.2bpp: tools/gfx += --trim-whitespace -gfx/pokemon_yellow.2bpp: tools/gfx += --trim-whitespace +gfx/tilesets/reds_house.2bpp: tools/gfx += --preserve=0x48 + +gfx/trade/game_boy.2bpp: tools/gfx += --remove-duplicates + +gfx/sgb/border.2bpp: tools/gfx += --trim-whitespace gfx/surfing_pikachu_1c.2bpp: tools/gfx += --trim-whitespace gfx/surfing_pikachu_3.2bpp: tools/gfx += --trim-whitespace -gfx/surfing_pikachu_1.2bpp: tools/gfx += --trim-whitespace ### Catch-all graphics rules @@ -87,11 +122,11 @@ gfx/surfing_pikachu_1.2bpp: tools/gfx += --trim-whitespace tools/gfx $(tools/gfx) -o $@ $@) %.1bpp: %.png - $(RGBGFX) -d1 $(rgbgfx) -o $@ $< + $(RGBGFX) $(rgbgfx) -d1 -o $@ $< $(if $(tools/gfx),\ tools/gfx $(tools/gfx) -d1 -o $@ $@) -%.pic: %.2bpp +%.pic: %.2bpp tools/pkmncompress $< $@ diff --git a/README.md b/README.md index 0d2cb2d79..dbcc27abe 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,29 @@ -# Pokémon Yellow +# Pokémon Yellow [![Build Status][travis-badge]][travis] This is a disassembly of Pokémon Yellow. -It builds the following rom: +It builds the following ROM: -* Pokemon Yellow (UE) [C][!].gbc `md5: d9290db87b1f0a23b89f99ee4469e34b` +- Pokemon Yellow (UE) [C][!].gbc `sha1: cc7d03262ebfaf2f06772c1a480c7d9d5f4a38e1` To set up the repository, see [**INSTALL.md**](INSTALL.md). ## See also -* Disassembly of [**Pokémon Red/Blue**][pokered] -* Disassembly of [**Pokémon Gold**][pokegold] -* Disassembly of [**Pokémon Crystal**][pokecrystal] -* Disassembly of [**Pokémon Pinball**][pokepinball] -* Disassembly of [**Pokémon TCG**][poketcg] -* Disassembly of [**Pokémon Ruby**][pokeruby] -* Disassembly of [**Pokémon Fire Red**][pokefirered] -* Disassembly of [**Pokémon Emerald**][pokeemerald] -* Discord: [**pret**][Discord] -* irc: **irc.freenode.net** [**#pret**][irc] +- **Discord:** [pret][discord] +- **IRC:** [freenode#pret][irc] + +Other disassembly projects: + +- [**Pokémon Red/Blue**][pokered] +- [**Pokémon Gold/Silver**][pokegold] +- [**Pokémon Crystal**][pokecrystal] +- [**Pokémon Pinball**][pokepinball] +- [**Pokémon TCG**][poketcg] +- [**Pokémon Ruby**][pokeruby] +- [**Pokémon FireRed**][pokefirered] +- [**Pokémon Emerald**][pokeemerald] [pokered]: https://github.com/pret/pokered [pokegold]: https://github.com/pret/pokegold @@ -30,5 +33,7 @@ To set up the repository, see [**INSTALL.md**](INSTALL.md). [pokeruby]: https://github.com/pret/pokeruby [pokefirered]: https://github.com/pret/pokefirered [pokeemerald]: https://github.com/pret/pokeemerald -[Discord]: https://discord.gg/d5dubZ3 +[discord]: https://discord.gg/d5dubZ3 [irc]: https://kiwiirc.com/client/irc.freenode.net/?#pret +[travis]: https://travis-ci.org/pret/pokeyellow +[travis-badge]: https://travis-ci.org/pret/pokeyellow.svg?branch=master diff --git a/audio.asm b/audio.asm index cff600d21..737e9f704 100644 --- a/audio.asm +++ b/audio.asm @@ -1,33 +1,33 @@ INCLUDE "constants.asm" -SECTION "Sound Effect Headers 1", ROMX ; BANK $02 +SECTION "Sound Effect Headers 1", ROMX INCLUDE "audio/headers/sfxheaders1.asm" -SECTION "Sound Effect Headers 2", ROMX ; BANK $08 +SECTION "Sound Effect Headers 2", ROMX INCLUDE "audio/headers/sfxheaders2.asm" -SECTION "Sound Effect Headers 3", ROMX ; BANK $1f +SECTION "Sound Effect Headers 3", ROMX INCLUDE "audio/headers/sfxheaders3.asm" -SECTION "Sound Effect Headers 4", ROMX ; BANK $20 +SECTION "Sound Effect Headers 4", ROMX INCLUDE "audio/headers/sfxheaders4.asm" -SECTION "Music Headers 1", ROMX ; BANK $02 +SECTION "Music Headers 1", ROMX INCLUDE "audio/headers/musicheaders1.asm" -SECTION "Music Headers 2", ROMX ; BANK $08 +SECTION "Music Headers 2", ROMX INCLUDE "audio/headers/musicheaders2.asm" -SECTION "Music Headers 3", ROMX ; BANK $1f +SECTION "Music Headers 3", ROMX INCLUDE "audio/headers/musicheaders3.asm" -SECTION "Music Headers 4", ROMX ; BANK $20 +SECTION "Music Headers 4", ROMX INCLUDE "audio/headers/musicheaders4.asm" -SECTION "Sound Effects 1", ROMX ; BANK $02 +SECTION "Sound Effects 1", ROMX INCLUDE "audio/sfx/noise_instrument01_1.asm" INCLUDE "audio/sfx/noise_instrument02_1.asm" @@ -49,8 +49,6 @@ INCLUDE "audio/sfx/noise_instrument17_1.asm" INCLUDE "audio/sfx/noise_instrument18_1.asm" INCLUDE "audio/sfx/noise_instrument19_1.asm" -; Audio1_WavePointers: INCLUDE "audio/wave_instruments.asm" - INCLUDE "audio/sfx/start_menu_1.asm" INCLUDE "audio/sfx/pokeflute.asm" INCLUDE "audio/sfx/cut_1.asm" @@ -126,7 +124,7 @@ INCLUDE "audio/sfx/cry21_1.asm" INCLUDE "audio/sfx/cry22_1.asm" -SECTION "Sound Effects 2", ROMX ; BANK $08 +SECTION "Sound Effects 2", ROMX INCLUDE "audio/sfx/noise_instrument01_2.asm" INCLUDE "audio/sfx/noise_instrument02_2.asm" @@ -148,8 +146,6 @@ INCLUDE "audio/sfx/noise_instrument17_2.asm" INCLUDE "audio/sfx/noise_instrument18_2.asm" INCLUDE "audio/sfx/noise_instrument19_2.asm" -; Audio2_WavePointers: INCLUDE "audio/wave_instruments.asm" - INCLUDE "audio/sfx/press_ab_2.asm" INCLUDE "audio/sfx/start_menu_2.asm" INCLUDE "audio/sfx/tink_2.asm" @@ -252,7 +248,7 @@ INCLUDE "audio/sfx/cry21_2.asm" INCLUDE "audio/sfx/cry22_2.asm" -SECTION "Sound Effects 3", ROMX ; BANK $1f +SECTION "Sound Effects 3", ROMX INCLUDE "audio/sfx/noise_instrument01_3.asm" INCLUDE "audio/sfx/noise_instrument02_3.asm" @@ -274,8 +270,6 @@ INCLUDE "audio/sfx/noise_instrument17_3.asm" INCLUDE "audio/sfx/noise_instrument18_3.asm" INCLUDE "audio/sfx/noise_instrument19_3.asm" -; Audio3_WavePointers: INCLUDE "audio/wave_instruments.asm" - INCLUDE "audio/sfx/start_menu_3.asm" INCLUDE "audio/sfx/cut_3.asm" INCLUDE "audio/sfx/go_inside_3.asm" @@ -359,7 +353,7 @@ INCLUDE "audio/sfx/cry21_3.asm" INCLUDE "audio/sfx/cry22_3.asm" -SECTION "Sound Effects 4", ROMX ; BANK $20 +SECTION "Sound Effects 4", ROMX INCLUDE "audio/sfx/noise_instrument01_4.asm" INCLUDE "audio/sfx/noise_instrument02_4.asm" @@ -437,230 +431,36 @@ INCLUDE "audio/sfx/get_item1_4_2.asm" INCLUDE "audio/sfx/get_item2_4.asm" -SECTION "Audio Engine 1", ROMX ; BANK $02 +SECTION "Audio Engine 1", ROMX AudioEngine1:: -PlayBattleMusic:: - xor a - ld [wAudioFadeOutControl], a - ld [wLowHealthAlarm], a - call StopAllMusic - call DelayFrame - ld c, BANK(Music_GymLeaderBattle) - ld a, [wGymLeaderNo] - and a - jr z, .notGymLeaderBattle - ld a, MUSIC_GYM_LEADER_BATTLE - jr .playSong -.notGymLeaderBattle - ld a, [wCurOpponent] - cp OPP_ID_OFFSET - jr c, .wildBattle - cp OPP_SONY3 - jr z, .finalBattle - cp OPP_LANCE - jr nz, .normalTrainerBattle - ld a, MUSIC_GYM_LEADER_BATTLE ; lance also plays gym leader theme - jr .playSong -.normalTrainerBattle - ld a, MUSIC_TRAINER_BATTLE - jr .playSong -.finalBattle - ld a, MUSIC_FINAL_BATTLE - jr .playSong -.wildBattle - ld a, MUSIC_WILD_BATTLE -.playSong - jp PlayMusic +INCLUDE "audio/play_battle_music.asm" +INCLUDE "audio/engine_1.asm" +INCLUDE "audio/alternate_tempo.asm" + +SECTION "Low Health Alarm (Audio Engine 2)", ROMX -INCLUDE "audio/engine_1.asm" +INCLUDE "audio/low_health_alarm.asm" -; an alternate start for MeetRival which has a different first measure -Music_RivalAlternateStart:: - ld c, BANK(Music_MeetRival) - ld a, MUSIC_MEET_RIVAL - call PlayMusic - ld hl, wChannelCommandPointers - ld de, Music_MeetRival_branch_b1a2 - call Audio1_OverwriteChannelPointer - ld de, Music_MeetRival_branch_b21d - call Audio1_OverwriteChannelPointer - ld de, Music_MeetRival_branch_b2b5 - -Audio1_OverwriteChannelPointer: - ld a, e - ld [hli], a - ld a, d - ld [hli], a - ret - -; an alternate tempo for MeetRival which is slightly slower -Music_RivalAlternateTempo:: - ld c, BANK(Music_MeetRival) - ld a, MUSIC_MEET_RIVAL - call PlayMusic - ld de, Music_MeetRival_branch_b119 - jr asm_99ed - -; applies both the alternate start and alternate tempo -Music_RivalAlternateStartAndTempo:: - call Music_RivalAlternateStart - ld de, Music_MeetRival_branch_b19b -asm_99ed: - ld hl, wChannelCommandPointers - jp Audio1_OverwriteChannelPointer - -; XXX - ret - -; an alternate tempo for Cities1 which is used for the Hall of Fame room -Music_Cities1AlternateTempo:: - ld a, 10 - ld [wAudioFadeOutCounterReloadValue], a - ld [wAudioFadeOutCounter], a - ld a, $ff ; stop playing music after the fade-out is finished - ld [wAudioFadeOutControl], a - ld c, 100 - call DelayFrames ; wait for the fade-out to finish - ld c, BANK(Music_Cities1) - ld a, MUSIC_CITIES1 - call PlayMusic - ld hl, wChannelCommandPointers - ld de, Music_Cities1_branch_aa6f - jp Audio1_OverwriteChannelPointer - - -SECTION "Audio Engine 2", ROMX ; BANK $08 +SECTION "Audio Engine 2", ROMX AudioEngine2:: -Music_DoLowHealthAlarm:: - ld a, [wLowHealthAlarm] - cp $ff - jr z, .disableAlarm - - bit 7, a ;alarm enabled? - ret z ;nope - - and $7f ;low 7 bits are the timer. - jr nz, .asm_21383 ;if timer > 0, play low tone. - - call .playToneHi - ld a, 30 ;keep this tone for 30 frames. - jr .asm_21395 ;reset the timer. - -.asm_21383 - cp 20 - jr nz, .asm_2138a ;if timer == 20, - call .playToneLo ;actually set the sound registers. - -.asm_2138a - ld a, $86 - ld [wChannelSoundIDs + Ch5], a ;disable sound channel? - ld a, [wLowHealthAlarm] - and $7f ;decrement alarm timer. - dec a - -.asm_21395 - ; reset the timer and enable flag. - set 7, a - ld [wLowHealthAlarm], a - ret - -.disableAlarm - xor a - ld [wLowHealthAlarm], a ;disable alarm - ld [wChannelSoundIDs + Ch5], a ;re-enable sound channel? - ld de, .toneDataSilence - jr .playTone - -;update the sound registers to change the frequency. -;the tone set here stays until we change it. -.playToneHi - ld de, .toneDataHi - jr .playTone - -.playToneLo - ld de, .toneDataLo - -;update sound channel 1 to play the alarm, overriding all other sounds. -.playTone - ld hl, rNR10 ;channel 1 sound register - ld c, $5 - xor a - -.copyLoop - ld [hli], a - ld a, [de] - inc de - dec c - jr nz, .copyLoop - ret - -;bytes to write to sound channel 1 registers for health alarm. -;starting at FF11 (FF10 is always zeroed), so these bytes are: -;length, envelope, freq lo, freq hi -.toneDataHi - db $A0,$E2,$50,$87 - -.toneDataLo - db $B0,$E2,$EE,$86 - -;written to stop the alarm -.toneDataSilence - db $00,$00,$00,$80 - -INCLUDE "engine/menu/bills_pc.asm" - INCLUDE "audio/engine_2.asm" -SECTION "Audio Engine 3", ROMX ; BANK $1f +SECTION "Audio Engine 3", ROMX AudioEngine3:: -PlayPokedexRatingSfx:: - ld a, [$ffdc] - ld c, $0 - ld hl, OwnedMonValues -.getSfxPointer - cp [hl] - jr c, .gotSfxPointer - inc c - inc hl - jr .getSfxPointer -.gotSfxPointer - push bc - call StopAllMusic - pop bc - ld b, $0 - ld hl, PokedexRatingSfxPointers - add hl, bc - add hl, bc - ld a, [hli] - ld c, [hl] - call PlayMusic - jp PlayDefaultMusic - -PokedexRatingSfxPointers: - db SFX_DENIED, BANK(SFX_Denied_3) - db SFX_POKEDEX_RATING, BANK(SFX_Pokedex_Rating_1) - db SFX_GET_ITEM_1, BANK(SFX_Get_Item1_1) - db SFX_CAUGHT_MON, BANK(SFX_Caught_Mon) - db SFX_LEVEL_UP, BANK(SFX_Level_Up) - db SFX_GET_KEY_ITEM, BANK(SFX_Get_Key_Item_1) - db SFX_GET_ITEM_2, BANK(SFX_Get_Item2_1) - -OwnedMonValues: - db 10, 40, 60, 90, 120, 150, $ff - +INCLUDE "audio/pokedex_rating_sfx.asm" INCLUDE "audio/engine_3.asm" -SECTION "Audio Engine 4", ROMX ; BANK $20 +SECTION "Audio Engine 4", ROMX SurfingPikachu1Graphics1:: INCBIN "gfx/surfing_pikachu_1a.2bpp" SurfingPikachu1Graphics2:: INCBIN "gfx/surfing_pikachu_1b.2bpp" @@ -669,7 +469,7 @@ SurfingPikachu1Graphics3:: INCBIN "gfx/surfing_pikachu_1c.2bpp" INCLUDE "audio/engine_4.asm" -SECTION "Music 1", ROMX ; BANK $02 +SECTION "Music 1", ROMX Audio1_WavePointers: INCLUDE "audio/wave_instruments.asm" @@ -700,7 +500,7 @@ INCLUDE "audio/music/gym.asm" INCLUDE "audio/music/pokecenter.asm" -SECTION "Music 2", ROMX ; BANK $08 +SECTION "Music 2", ROMX INCLUDE "audio/sfx/unused2_2.asm" INCLUDE "audio/music/gymleaderbattle.asm" @@ -715,7 +515,7 @@ INCLUDE "audio/music/defeatedwildmon.asm" INCLUDE "audio/music/defeatedgymleader.asm" -SECTION "Music 3", ROMX ; BANK $1f +SECTION "Music 3", ROMX INCLUDE "audio/music/bikeriding.asm" INCLUDE "audio/music/dungeon1.asm" @@ -742,7 +542,7 @@ INCLUDE "audio/music/credits.asm" INCLUDE "audio/music/yellowintro.asm" -SECTION "Music 4", ROMX ; BANK $20 +SECTION "Music 4", ROMX INCLUDE "audio/music/surfingpikachu.asm" INCLUDE "audio/music/yellowunusedsong.asm" diff --git a/audio/alternate_tempo.asm b/audio/alternate_tempo.asm new file mode 100644 index 000000000..87d08e18f --- /dev/null +++ b/audio/alternate_tempo.asm @@ -0,0 +1,53 @@ +; an alternate start for MeetRival which has a different first measure +Music_RivalAlternateStart:: + ld c, BANK(Music_MeetRival) + ld a, MUSIC_MEET_RIVAL + call PlayMusic + ld hl, wChannelCommandPointers + ld de, Music_MeetRival_branch_b1a2 + call Audio1_OverwriteChannelPointer + ld de, Music_MeetRival_branch_b21d + call Audio1_OverwriteChannelPointer + ld de, Music_MeetRival_branch_b2b5 + +Audio1_OverwriteChannelPointer: + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ret + +; an alternate tempo for MeetRival which is slightly slower +Music_RivalAlternateTempo:: + ld c, BANK(Music_MeetRival) + ld a, MUSIC_MEET_RIVAL + call PlayMusic + ld de, Music_MeetRival_branch_b119 + jr asm_99ed + +; applies both the alternate start and alternate tempo +Music_RivalAlternateStartAndTempo:: + call Music_RivalAlternateStart + ld de, Music_MeetRival_branch_b19b +asm_99ed: + ld hl, wChannelCommandPointers + jp Audio1_OverwriteChannelPointer + +; XXX + ret + +; an alternate tempo for Cities1 which is used for the Hall of Fame room +Music_Cities1AlternateTempo:: + ld a, 10 + ld [wAudioFadeOutCounterReloadValue], a + ld [wAudioFadeOutCounter], a + ld a, $ff ; stop playing music after the fade-out is finished + ld [wAudioFadeOutControl], a + ld c, 100 + call DelayFrames ; wait for the fade-out to finish + ld c, BANK(Music_Cities1) + ld a, MUSIC_CITIES1 + call PlayMusic + ld hl, wChannelCommandPointers + ld de, Music_Cities1_branch_aa6f + jp Audio1_OverwriteChannelPointer diff --git a/audio/engine_1.asm b/audio/engine_1.asm index bd021ab3f..a585cd43e 100644 --- a/audio/engine_1.asm +++ b/audio/engine_1.asm @@ -20,10 +20,10 @@ Audio1_UpdateMusic:: set 7, a ld [wMuteAudioAndPauseMusic], a xor a ; disable all channels' output - ld [rNR51], a - ld [rNR30], a + ldh [rNR51], a + ldh [rNR30], a ld a, $80 - ld [rNR30], a + ldh [rNR30], a jr .nextChannel .applyAffects call Audio1_ApplyMusicAffects @@ -41,7 +41,7 @@ Audio1_ApplyMusicAffects: ld hl, wChannelNoteDelayCounters ; delay until next note add hl, bc ld a, [hl] - cp $1 ; if the delay is 1, play next note + cp 1 ; if the delay is 1, play next note jp z, Audio1_PlayNextNote dec a ; otherwise, decrease the delay timer ld [hl], a @@ -172,8 +172,8 @@ Audio1_PlayNextNote: Audio1_sound_ret: call Audio1_GetNextMusicByte ld d, a - cp $ff ; is this command a sound_ret? - jp nz, Audio1_sound_call ; no + cp sound_ret_cmd + jp nz, Audio1_sound_call ld b, 0 ld hl, wChannelFlags1 add hl, bc @@ -192,9 +192,9 @@ Audio1_sound_ret: jr nz, .skipSfxChannel3 ; restart hardware channel 3 (wave channel) output ld a, $0 - ld [rNR30], a + ldh [rNR30], a ld a, $80 - ld [rNR30], a + ldh [rNR30], a .skipSfxChannel3 jr nz, .dontDisable ld a, [wDisableChannelOutputWhenSfxEnds] @@ -228,9 +228,9 @@ Audio1_sound_ret: .disableChannelOutput ld hl, Audio1_HWChannelDisableMasks add hl, bc - ld a, [rNR51] + ldh a, [rNR51] and [hl] - ld [rNR51], a + ldh [rNR51], a .afterDisable ld a, [wChannelSoundIDs + Ch5] cp CRY_SFX_START @@ -250,7 +250,7 @@ Audio1_sound_ret: ret c .skipRewind ld a, [wSavedVolume] - ld [rNR50], a + ldh [rNR50], a xor a ld [wSavedVolume], a .skipCry @@ -260,8 +260,8 @@ Audio1_sound_ret: ret Audio1_sound_call: - cp $fd ; is this command a sound_call? - jp nz, Audio1_sound_loop ; no + cp sound_call_cmd + jp nz, Audio1_sound_loop call Audio1_GetNextMusicByte push af call Audio1_GetNextMusicByte @@ -297,8 +297,8 @@ Audio1_sound_call: jp Audio1_sound_ret Audio1_sound_loop: - cp $fe ; is this command a sound_loop? - jp nz, Audio1_note_type ; no + cp sound_loop_cmd + jp nz, Audio1_note_type call Audio1_GetNextMusicByte ld e, a and a @@ -336,8 +336,8 @@ Audio1_sound_loop: Audio1_note_type: and $f0 - cp $d0 ; is this command a note_type? - jp nz, Audio1_toggle_perfect_pitch ; no + cp note_type_cmd + jp nz, Audio1_toggle_perfect_pitch ld a, d and $f ld b, $0 @@ -380,8 +380,8 @@ Audio1_note_type: Audio1_toggle_perfect_pitch: ld a, d - cp $e8 ; is this command a toggle_perfect_pitch? - jr nz, Audio1_vibrato ; no + cp toggle_perfect_pitch_cmd + jr nz, Audio1_vibrato ld b, 0 ld hl, wChannelFlags1 add hl, bc @@ -391,8 +391,8 @@ Audio1_toggle_perfect_pitch: jp Audio1_sound_ret Audio1_vibrato: - cp $ea ; is this command a vibrato? - jr nz, Audio1_pitch_slide ; no + cp vibrato_cmd + jr nz, Audio1_pitch_slide call Audio1_GetNextMusicByte ld b, 0 ld hl, wChannelVibratoDelayCounters @@ -439,8 +439,8 @@ Audio1_vibrato: jp Audio1_sound_ret Audio1_pitch_slide: - cp $eb ; is this command a pitch_slide? - jr nz, Audio1_duty_cycle ; no + cp pitch_slide_cmd + jr nz, Audio1_duty_cycle call Audio1_GetNextMusicByte ld b, 0 ld hl, wChannelPitchSlideLengthModifiers @@ -470,8 +470,8 @@ Audio1_pitch_slide: jp Audio1_note_length Audio1_duty_cycle: - cp $ec ; is this command a duty_cycle? - jr nz, Audio1_tempo ; no + cp duty_cycle_cmd + jr nz, Audio1_tempo call Audio1_GetNextMusicByte rrca rrca @@ -483,8 +483,8 @@ Audio1_duty_cycle: jp Audio1_sound_ret Audio1_tempo: - cp $ed ; is this command a tempo? - jr nz, Audio1_stereo_panning ; no + cp tempo_cmd + jr nz, Audio1_stereo_panning ld a, c cp Ch5 jr nc, .sfxChannel @@ -512,16 +512,16 @@ Audio1_tempo: jp Audio1_sound_ret Audio1_stereo_panning: - cp $ee ; is this command a stereo_panning? - jr nz, Audio1_unknownmusic0xef ; no + cp stereo_panning_cmd + jr nz, Audio1_unknownmusic0xef call Audio1_GetNextMusicByte ld [wStereoPanning], a ; store panning jp Audio1_sound_ret ; this appears to never be used Audio1_unknownmusic0xef: - cp $ef ; is this command an unknownmusic0xef? - jr nz, Audio1_duty_cycle_pattern ; no + cp unknownmusic0xef_cmd + jr nz, Audio1_duty_cycle_pattern call Audio1_GetNextMusicByte push bc ld b, a @@ -538,8 +538,8 @@ Audio1_unknownmusic0xef: jp Audio1_sound_ret Audio1_duty_cycle_pattern: - cp $fc ; is this command a duty_cycle_pattern? - jr nz, Audio1_volume ; no + cp duty_cycle_pattern_cmd + jr nz, Audio1_volume call Audio1_GetNextMusicByte ld b, 0 ld hl, wChannelDutyCyclePatterns @@ -555,15 +555,15 @@ Audio1_duty_cycle_pattern: jp Audio1_sound_ret Audio1_volume: - cp $f0 ; is this command a volume? - jr nz, Audio1_execute_music ; no + cp volume_cmd + jr nz, Audio1_execute_music call Audio1_GetNextMusicByte - ld [rNR50], a ; store volume + ldh [rNR50], a ; store volume jp Audio1_sound_ret Audio1_execute_music: - cp $f8 ; is this command an execute_music? - jr nz, Audio1_octave ; no + cp execute_music_cmd + jr nz, Audio1_octave ld b, $0 ld hl, wChannelFlags2 add hl, bc @@ -572,8 +572,8 @@ Audio1_execute_music: Audio1_octave: and $f0 - cp $e0 ; is this command an octave? - jr nz, Audio1_sfx_note ; no + cp octave_cmd + jr nz, Audio1_sfx_note ld hl, wChannelOctaves ld b, 0 add hl, bc @@ -584,7 +584,7 @@ Audio1_octave: ; sfx_note is either square_note or noise_note depending on the channel Audio1_sfx_note: - cp $20 ; is this command a sfx_note? + cp sfx_note_cmd jr nz, Audio1_pitch_sweep ld a, c cp Ch4 ; is this a noise or sfx channel? @@ -640,15 +640,15 @@ Audio1_pitch_sweep: cp Ch5 jr c, Audio1_note ; if not a sfx ld a, d - cp $10 ; is this command a pitch_sweep? - jr nz, Audio1_note ; no + cp pitch_sweep_cmd + jr nz, Audio1_note ld b, $0 ld hl, wChannelFlags2 add hl, bc bit BIT_EXECUTE_MUSIC, [hl] jr nz, Audio1_note ; no call Audio1_GetNextMusicByte - ld [rNR10], a + ldh [rNR10], a jp Audio1_sound_ret Audio1_note: @@ -657,12 +657,12 @@ Audio1_note: jr nz, Audio1_note_length ; if not noise channel ld a, d and $f0 - cp $b0 ; is this command a drum_note? + cp drum_note_cmd jr z, .drum_note - jr nc, Audio1_note_length ; no + jr nc, Audio1_note_length ; this executes when on the noise channel and - ; the command id is less than $b0 + ; the command id is less than drum_note_cmd ($b0) ; in this case, the upper nybble is used as the noise instrument ($1-$a) ; and the lower nybble is the length minus 1 (0-15) ; however, this doesn't work for instrument #2 because the command id @@ -758,7 +758,7 @@ Audio1_note_length: Audio1_note_pitch: pop af and $f0 - cp $c0 ; compare to rest + cp rest_cmd jr nz, .notRest ld a, c cp Ch5 @@ -780,9 +780,9 @@ Audio1_note_pitch: ld b, 0 ld hl, Audio1_HWChannelDisableMasks add hl, bc - ld a, [rNR51] + ldh a, [rNR51] and [hl] - ld [rNR51], a ; disable hardware channel 3's output + ldh [rNR51], a ; disable hardware channel 3's output jr .done .notChannel3 ld b, REG_VOLUME_ENVELOPE @@ -854,7 +854,7 @@ Audio1_EnableChannelOutput: ld b, 0 call Audio1_9972 add hl, bc - ld a, [rNR51] + ldh a, [rNR51] or [hl] ; set this channel's bits ld d, a ld a, c @@ -876,7 +876,7 @@ Audio1_EnableChannelOutput: add hl, bc and [hl] ld d, a - ld a, [rNR51] + ldh a, [rNR51] ld hl, Audio1_HWChannelDisableMasks add hl, bc and [hl] ; reset this channel's output bits @@ -884,7 +884,7 @@ Audio1_EnableChannelOutput: ld d, a .skip ld a, d - ld [rNR51], a + ldh [rNR51], a ret Audio1_ApplyDutyCycleAndSoundLength: @@ -935,10 +935,10 @@ Audio1_ApplyWavePatternAndFrequency: ld e, [hl] inc hl ld d, [hl] - ld hl, $ff30 ; wave pattern RAM + ld hl, rWave_0 ld b, $f ld a, $0 ; stop hardware channel 3 - ld [rNR30], a + ldh [rNR30], a .loop ld a, [de] inc de @@ -948,7 +948,7 @@ Audio1_ApplyWavePatternAndFrequency: and a jr nz, .loop ld a, $80 ; start hardware channel 3 - ld [rNR30], a + ldh [rNR30], a pop de .notChannel3 ld a, d @@ -1367,7 +1367,7 @@ Audio1_CalculateFrequency: Audio1_PlaySound:: ld [wSoundID], a ld a, [wSoundID] - cp $ff + cp SFX_STOP_ALL_MUSIC jp z, .stopAllAudio cp MAX_SFX_ID_1 jp z, .playSfx @@ -1544,10 +1544,10 @@ Audio1_PlaySound:: ld a, [wSavedVolume] and a jr nz, .done - ld a, [rNR50] + ldh a, [rNR50] ld [wSavedVolume], a ld a, $77 - ld [rNR50], a ; full volume + ldh [rNR50], a ; full volume .done ret @@ -1588,15 +1588,4 @@ Audio1_HWChannelEnableMasks: db $01,$02,$40,$80 Audio1_Pitches: - dw $F82C ; C_ - dw $F89D ; C# - dw $F907 ; D_ - dw $F96B ; D# - dw $F9CA ; E_ - dw $FA23 ; F_ - dw $FA77 ; F# - dw $FAC7 ; G_ - dw $FB12 ; G# - dw $FB58 ; A_ - dw $FB9B ; A# - dw $FBDA ; B_ +INCLUDE "audio/notes.asm" diff --git a/audio/engine_2.asm b/audio/engine_2.asm index 5fe686a8f..65c25c209 100644 --- a/audio/engine_2.asm +++ b/audio/engine_2.asm @@ -5,7 +5,7 @@ Audio2_PlaySound:: ld [wSoundID], a ld a, [wSoundID] - cp $ff + cp SFX_STOP_ALL_MUSIC jp z, .stopAllAudio cp MAX_SFX_ID_2 jp z, .playSfx @@ -182,34 +182,17 @@ Audio2_PlaySound:: ld a, [wSavedVolume] and a jr nz, .done - ld a, [rNR50] + ldh a, [rNR50] ld [wSavedVolume], a ld a, $77 - ld [rNR50], a + ldh [rNR50], a .done ret Audio2_CryRet: sound_ret -Music_PokeFluteInBattle:: - ; begin playing the "caught mon" sound effect - ld a, SFX_CAUGHT_MON - call PlaySoundWaitForCurrent - ; then immediately overwrtie the channel pointers - ld hl, wChannelCommandPointers + Ch5 * 2 - ld de, SFX_Pokeflute_Ch5 - call Audio2_OverwriteChannelPointer - ld de, SFX_Pokeflute_Ch6 - call Audio2_OverwriteChannelPointer - ld de, SFX_Pokeflute_Ch7 - -Audio2_OverwriteChannelPointer: - ld a, e - ld [hli], a - ld a, d - ld [hli], a - ret +INCLUDE "audio/poke_flute.asm" INCLUDE "audio/sfx/pokeflute_ch5_ch6.asm" @@ -220,12 +203,12 @@ Audio2_InitMusicVariables:: ld [wMusicTempo + 1], a ld [wMusicWaveInstrument], a ld [wSfxWaveInstrument], a - ld d, $8 + ld d, NUM_CHANNELS ld hl, wChannelReturnAddresses call Audio2_FillMem ld hl, wChannelCommandPointers call Audio2_FillMem - ld d, $4 + ld d, NUM_MUSIC_CHANS ld hl, wChannelSoundIDs call Audio2_FillMem ld hl, wChannelFlags1 @@ -273,17 +256,17 @@ Audio2_InitMusicVariables:: ld a, $ff ld [wStereoPanning], a xor a - ld [rNR50], a + ldh [rNR50], a ld a, $8 - ld [rNR10], a + ldh [rNR10], a ld a, 0 - ld [rNR51], a + ldh [rNR51], a xor a - ld [rNR30], a + ldh [rNR30], a ld a, $80 - ld [rNR30], a + ldh [rNR30], a ld a, $77 - ld [rNR50], a + ldh [rNR50], a ret Audio2_InitSFXVariables:: @@ -371,27 +354,27 @@ Audio2_InitSFXVariables:: cp Ch5 ret nz ld a, $8 - ld [rNR10], a ; sweep off + ldh [rNR10], a ; sweep off ret Audio2_StopAllAudio:: ld a, $80 - ld [rNR52], a ; sound hardware on - ld [rNR30], a ; wave playback on + ldh [rNR52], a ; sound hardware on + ldh [rNR30], a ; wave playback on xor a - ld [rNR51], a ; no sound output - ld [rNR32], a ; mute channel 3 (wave channel) + ldh [rNR51], a ; no sound output + ldh [rNR32], a ; mute channel 3 (wave channel) ld a, $8 - ld [rNR10], a ; sweep off - ld [rNR12], a ; mute channel 1 (pulse channel 1) - ld [rNR22], a ; mute channel 2 (pulse channel 2) - ld [rNR42], a ; mute channel 4 (noise channel) + ldh [rNR10], a ; sweep off + ldh [rNR12], a ; mute channel 1 (pulse channel 1) + ldh [rNR22], a ; mute channel 2 (pulse channel 2) + ldh [rNR42], a ; mute channel 4 (noise channel) ld a, $40 - ld [rNR14], a ; counter mode - ld [rNR24], a - ld [rNR44], a + ldh [rNR14], a ; counter mode + ldh [rNR24], a + ldh [rNR44], a ld a, $77 - ld [rNR50], a ; full volume + ldh [rNR50], a ; full volume xor a ld [wUnusedC000], a ld [wDisableChannelOutputWhenSfxEnds], a @@ -414,7 +397,7 @@ Audio2_StopAllAudio:: ret ; fills d bytes at hl with a -Audio2_FillMem +Audio2_FillMem: ld b, d .loop ld [hli], a diff --git a/audio/engine_3.asm b/audio/engine_3.asm index 2d4a30e32..108938683 100644 --- a/audio/engine_3.asm +++ b/audio/engine_3.asm @@ -3,7 +3,7 @@ Audio3_PlaySound:: ld [wSoundID], a ld a, [wSoundID] - cp $ff + cp SFX_STOP_ALL_MUSIC jp z, .stopAllAudio cp MAX_SFX_ID_3 jp z, .playSfx @@ -180,10 +180,10 @@ Audio3_PlaySound:: ld a, [wSavedVolume] and a jr nz, .done - ld a, [rNR50] + ldh a, [rNR50] ld [wSavedVolume], a ld a, $77 - ld [rNR50], a ; full volume + ldh [rNR50], a ; full volume .done ret diff --git a/audio/engine_4.asm b/audio/engine_4.asm index 2f0d9ade8..850bb66a2 100644 --- a/audio/engine_4.asm +++ b/audio/engine_4.asm @@ -180,10 +180,10 @@ Audio4_PlaySound:: ld a, [wSavedVolume] and a jr nz, .done - ld a, [rNR50] + ldh a, [rNR50] ld [wSavedVolume], a ld a, $77 - ld [rNR50], a ; full volume + ldh [rNR50], a ; full volume .done ret diff --git a/audio/low_health_alarm.asm b/audio/low_health_alarm.asm new file mode 100644 index 000000000..a550cf700 --- /dev/null +++ b/audio/low_health_alarm.asm @@ -0,0 +1,80 @@ +Music_DoLowHealthAlarm:: + ld a, [wLowHealthAlarm] + cp $ff + jr z, .disableAlarm + + bit 7, a ;alarm enabled? + ret z ;nope + + and $7f ;low 7 bits are the timer. + jr nz, .asm_21383 ;if timer > 0, play low tone. + + call .playToneHi + ld a, 30 ;keep this tone for 30 frames. + jr .asm_21395 ;reset the timer. + +.asm_21383 + cp 20 + jr nz, .asm_2138a ;if timer == 20, + call .playToneLo ;actually set the sound registers. + +.asm_2138a + ld a, $86 + ld [wChannelSoundIDs + Ch5], a ;disable sound channel? + ld a, [wLowHealthAlarm] + and $7f ;decrement alarm timer. + dec a + +.asm_21395 + ; reset the timer and enable flag. + set 7, a + ld [wLowHealthAlarm], a + ret + +.disableAlarm + xor a + ld [wLowHealthAlarm], a ;disable alarm + ld [wChannelSoundIDs + Ch5], a ;re-enable sound channel? + ld de, .toneDataSilence + jr .playTone + +;update the sound registers to change the frequency. +;the tone set here stays until we change it. +.playToneHi + ld de, .toneDataHi + jr .playTone + +.playToneLo + ld de, .toneDataLo + +;update sound channel 1 to play the alarm, overriding all other sounds. +.playTone + ld hl, rNR10 ;channel 1 sound register + ld c, $5 + xor a + +.copyLoop + ld [hli], a + ld a, [de] + inc de + dec c + jr nz, .copyLoop + ret + +alarm_tone: MACRO + db \1 ; length + db \2 ; envelope + dw \3 ; frequency +ENDM + +;bytes to write to sound channel 1 registers for health alarm. +;starting at FF11 (FF10 is always zeroed). +.toneDataHi + alarm_tone $A0, $E2, $8750 + +.toneDataLo + alarm_tone $B0, $E2, $86EE + +;written to stop the alarm +.toneDataSilence + alarm_tone $00, $00, $8000 diff --git a/audio/notes.asm b/audio/notes.asm new file mode 100644 index 000000000..75e1a0b78 --- /dev/null +++ b/audio/notes.asm @@ -0,0 +1,14 @@ +; This file is INCLUDEd three times, once in each audio engine. + + dw $F82C ; C_ + dw $F89D ; C# + dw $F907 ; D_ + dw $F96B ; D# + dw $F9CA ; E_ + dw $FA23 ; F_ + dw $FA77 ; F# + dw $FAC7 ; G_ + dw $FB12 ; G# + dw $FB58 ; A_ + dw $FB9B ; A# + dw $FBDA ; B_ diff --git a/audio/play_battle_music.asm b/audio/play_battle_music.asm new file mode 100644 index 000000000..bf86c9ae4 --- /dev/null +++ b/audio/play_battle_music.asm @@ -0,0 +1,32 @@ +PlayBattleMusic:: + xor a + ld [wAudioFadeOutControl], a + ld [wLowHealthAlarm], a + call StopAllMusic + call DelayFrame + ld c, BANK(Music_GymLeaderBattle) + ld a, [wGymLeaderNo] + and a + jr z, .notGymLeaderBattle + ld a, MUSIC_GYM_LEADER_BATTLE + jr .playSong +.notGymLeaderBattle + ld a, [wCurOpponent] + cp OPP_ID_OFFSET + jr c, .wildBattle + cp OPP_RIVAL3 + jr z, .finalBattle + cp OPP_LANCE + jr nz, .normalTrainerBattle + ld a, MUSIC_GYM_LEADER_BATTLE ; lance also plays gym leader theme + jr .playSong +.normalTrainerBattle + ld a, MUSIC_TRAINER_BATTLE + jr .playSong +.finalBattle + ld a, MUSIC_FINAL_BATTLE + jr .playSong +.wildBattle + ld a, MUSIC_WILD_BATTLE +.playSong + jp PlayMusic diff --git a/audio/poke_flute.asm b/audio/poke_flute.asm new file mode 100644 index 000000000..f55a2a1f6 --- /dev/null +++ b/audio/poke_flute.asm @@ -0,0 +1,18 @@ +Music_PokeFluteInBattle:: + ; begin playing the "caught mon" sound effect + ld a, SFX_CAUGHT_MON + call PlaySoundWaitForCurrent + ; then immediately overwrite the channel pointers + ld hl, wChannelCommandPointers + Ch5 * 2 + ld de, SFX_Pokeflute_Ch5 + call Audio2_OverwriteChannelPointer + ld de, SFX_Pokeflute_Ch6 + call Audio2_OverwriteChannelPointer + ld de, SFX_Pokeflute_Ch7 + +Audio2_OverwriteChannelPointer: + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ret diff --git a/audio/pokedex_rating_sfx.asm b/audio/pokedex_rating_sfx.asm new file mode 100644 index 000000000..aefbd066b --- /dev/null +++ b/audio/pokedex_rating_sfx.asm @@ -0,0 +1,34 @@ +PlayPokedexRatingSfx:: + ldh a, [hDexRatingNumMonsOwned] + ld c, $0 + ld hl, OwnedMonValues +.getSfxPointer + cp [hl] + jr c, .gotSfxPointer + inc c + inc hl + jr .getSfxPointer +.gotSfxPointer + push bc + call StopAllMusic + pop bc + ld b, $0 + ld hl, PokedexRatingSfxPointers + add hl, bc + add hl, bc + ld a, [hli] + ld c, [hl] + call PlayMusic + jp PlayDefaultMusic + +PokedexRatingSfxPointers: + db SFX_DENIED, BANK(SFX_Denied_3) + db SFX_POKEDEX_RATING, BANK(SFX_Pokedex_Rating_1) + db SFX_GET_ITEM_1, BANK(SFX_Get_Item1_1) + db SFX_CAUGHT_MON, BANK(SFX_Caught_Mon) + db SFX_LEVEL_UP, BANK(SFX_Level_Up) + db SFX_GET_KEY_ITEM, BANK(SFX_Get_Key_Item_1) + db SFX_GET_ITEM_2, BANK(SFX_Get_Item2_1) + +OwnedMonValues: + db 10, 40, 60, 90, 120, 150, $ff diff --git a/audio/wave_instruments.asm b/audio/wave_instruments.asm index 9f34d3ac3..5095cceda 100644 --- a/audio/wave_instruments.asm +++ b/audio/wave_instruments.asm @@ -1,3 +1,5 @@ +; This file is INCLUDEd three times, once for each audio engine. + dw .wave0 dw .wave1 dw .wave2 @@ -11,7 +13,7 @@ ; these are the definitions for the channel 3 instruments ; each instrument definition is made up of 32 points (nibbles) that form ; the graph of the wave -; the current instrument is copied to $FF30 +; the current instrument is copied to rWave_0--rWave_f .wave0 db $02,$46,$8A,$CE,$FF,$FE,$ED,$DC,$CB,$A9,$87,$65,$44,$33,$22,$11 diff --git a/charmap.asm b/charmap.asm index 4b5278c6d..f09679782 100644 --- a/charmap.asm +++ b/charmap.asm @@ -1,265 +1,386 @@ -charmap "ガ", $05 -charmap "ギ", $06 -charmap "グ", $07 -charmap "ゲ", $08 -charmap "ゴ", $09 -charmap "ザ", $0A -charmap "ジ", $0B -charmap "ズ", $0C -charmap "ゼ", $0D -charmap "ゾ", $0E -charmap "ダ", $0F -charmap "ヂ", $10 -charmap "ヅ", $11 -charmap "デ", $12 -charmap "ド", $13 -charmap "バ", $19 -charmap "ビ", $1A -charmap "ブ", $1B -charmap "ボ", $1C -charmap "が", $26 -charmap "ぎ", $27 -charmap "ぐ", $28 -charmap "げ", $29 -charmap "ご", $2A -charmap "ざ", $2B -charmap "じ", $2C -charmap "ず", $2D -charmap "ぜ", $2E -charmap "ぞ", $2F -charmap "だ", $30 -charmap "ぢ", $31 -charmap "づ", $32 -charmap "で", $33 -charmap "ど", $34 -charmap "ば", $3A -charmap "び", $3B -charmap "ぶ", $3C -charmap "べ", $3D -charmap "ぼ", $3E -charmap "パ", $40 -charmap "ピ", $41 -charmap "プ", $42 -charmap "ポ", $43 -charmap "ぱ", $44 -charmap "ぴ", $45 -charmap "ぷ", $46 -charmap "ぺ", $47 -charmap "ぽ", $48 -charmap "ア", $80 -charmap "イ", $81 -charmap "ウ", $82 -charmap "エ", $83 -charmap "ォ", $84 -charmap "カ", $85 -charmap "キ", $86 -charmap "ク", $87 -charmap "ケ", $88 -charmap "コ", $89 -charmap "サ", $8A -charmap "シ", $8B -charmap "ス", $8C -charmap "セ", $8D -charmap "ソ", $8E -charmap "タ", $8F -charmap "チ", $90 -charmap "ツ", $91 -charmap "テ", $92 -charmap "ト", $93 -charmap "ナ", $94 -charmap "ニ", $95 -charmap "ヌ", $96 -charmap "ネ", $97 -charmap "ノ", $98 -charmap "ハ", $99 -charmap "ヒ", $9A -charmap "フ", $9B -charmap "ホ", $9C -charmap "マ", $9D -charmap "ミ", $9E -charmap "ム", $9F -charmap "メ", $A0 -charmap "モ", $A1 -charmap "ヤ", $A2 -charmap "ユ", $A3 -charmap "ヨ", $A4 -charmap "ラ", $A5 -charmap "ル", $A6 -charmap "レ", $A7 -charmap "ロ", $A8 -charmap "ワ", $A9 -charmap "ヲ", $AA -charmap "ン", $AB -charmap "ッ", $AC -charmap "ャ", $AD -charmap "ュ", $AE -charmap "ョ", $AF -charmap "ィ", $B0 -charmap "あ", $B1 -charmap "い", $B2 -charmap "う", $B3 -charmap "え", $B4 -charmap "お", $B5 -charmap "か", $B6 -charmap "き", $B7 -charmap "く", $B8 -charmap "け", $B9 -charmap "こ", $BA -charmap "さ", $BB -charmap "し", $BC -charmap "す", $BD -charmap "せ", $BE -charmap "そ", $BF -charmap "た", $C0 -charmap "ち", $C1 -charmap "つ", $C2 -charmap "て", $C3 -charmap "と", $C4 -charmap "な", $C5 -charmap "に", $C6 -charmap "ぬ", $C7 -charmap "ね", $C8 -charmap "の", $C9 -charmap "は", $CA -charmap "ひ", $CB -charmap "ふ", $CC -charmap "へ", $CD -charmap "ほ", $CE -charmap "ま", $CF -charmap "み", $D0 -charmap "む", $D1 -charmap "め", $D2 -charmap "も", $D3 -charmap "や", $D4 -charmap "ゆ", $D5 -charmap "よ", $D6 -charmap "ら", $D7 -charmap "り", $D8 -charmap "る", $D9 -charmap "れ", $DA -charmap "ろ", $DB -charmap "わ", $DC -charmap "を", $DD -charmap "ん", $DE -charmap "っ", $DF -charmap "ゃ", $E0 -charmap "ゅ", $E1 -charmap "ょ", $E2 -charmap "ー", $E3 - -charmap "", $4A ; PkMn -charmap "@", $50 -charmap "", $52 -charmap "", $53 -charmap "#", $54 -;charmap "POKé", $54 -charmap "", $59 -charmap "", $5A -charmap "′", $71 -charmap "″", $73 -charmap "№", $74 -charmap "…", $75 - -charmap "┌", $79 -charmap "─", $7A -charmap "┐", $7B -charmap "│", $7C -charmap "└", $7D -charmap "┘", $7E - -charmap " ", $7F -charmap "A", $80 -charmap "B", $81 -charmap "C", $82 -charmap "D", $83 -charmap "E", $84 -charmap "F", $85 -charmap "G", $86 -charmap "H", $87 -charmap "I", $88 -charmap "J", $89 -charmap "K", $8A -charmap "L", $8B -charmap "M", $8C -charmap "N", $8D -charmap "O", $8E -charmap "P", $8F -charmap "Q", $90 -charmap "R", $91 -charmap "S", $92 -charmap "T", $93 -charmap "U", $94 -charmap "V", $95 -charmap "W", $96 -charmap "X", $97 -charmap "Y", $98 -charmap "Z", $99 -charmap "(", $9A -charmap ")", $9B -charmap ":", $9C -charmap ";", $9D -charmap "[", $9E -charmap "]", $9F -charmap "a", $A0 -charmap "b", $A1 -charmap "c", $A2 -charmap "d", $A3 -charmap "e", $A4 -charmap "f", $A5 -charmap "g", $A6 -charmap "h", $A7 -charmap "i", $A8 -charmap "j", $A9 -charmap "k", $AA -charmap "l", $AB -charmap "m", $AC -charmap "n", $AD -charmap "o", $AE -charmap "p", $AF -charmap "q", $B0 -charmap "r", $B1 -charmap "s", $B2 -charmap "t", $B3 -charmap "u", $B4 -charmap "v", $B5 -charmap "w", $B6 -charmap "x", $B7 -charmap "y", $B8 -charmap "z", $B9 -charmap "é", $BA -charmap "'d", $BB -charmap "'l", $BC -charmap "'s", $BD -charmap "'t", $BE -charmap "'v", $BF - -charmap "'", $E0 - -charmap "-", $E3 -charmap "'r", $E4 -charmap "'m", $E5 -charmap "?", $E6 -charmap "!", $E7 -charmap ".", $E8 - -charmap "▷", $EC -charmap "▶", $ED -charmap "▲", $ED -charmap "▼", $EE -charmap "♂", $EF -charmap "¥", $F0 -charmap "×", $F1 -charmap "⠄", $F2 -charmap "/", $F3 -charmap ",", $F4 -charmap "♀", $F5 -charmap "0", $F6 -charmap "1", $F7 -charmap "2", $F8 -charmap "3", $F9 -charmap "4", $FA -charmap "5", $FB -charmap "6", $FC -charmap "7", $FD -charmap "8", $FE -charmap "9", $FF +; $00-$17 are TX_* constants (see macros/scripts/text.asm) + +; Control characters (see home/text.asm) + + charmap "", $00 + charmap "", $49 + charmap "", $4a ; "" + charmap "<_CONT>", $4b ; implements "" + charmap "", $4c + charmap "", $4e + charmap "", $4f + charmap "@", $50 ; string terminator + charmap "", $51 + charmap "", $52 ; wPlayerName + charmap "", $53 ; wRivalName + charmap "#", $54 ; "POKé" + charmap "", $55 + charmap "<……>", $56 ; "……" + charmap "", $57 + charmap "", $58 + charmap "", $59 + charmap "", $5a + charmap "", $5b ; "PC" + charmap "", $5c ; "TM" + charmap "", $5d ; "TRAINER" + charmap "", $5e ; "ROCKET" + charmap "", $5f + +; Actual characters (from gfx/font/font_extra.png) + + charmap "", $60 ; unused + charmap "", $61 ; unused + charmap "", $62 ; unused + charmap "", $63 ; unused + charmap "", $64 ; unused + charmap "", $65 ; unused + charmap "", $66 ; unused + charmap "", $67 ; unused + charmap "", $68 ; unused + charmap "", $69 + charmap "", $6a + charmap "", $6b ; unused + charmap "", $6c ; unused + charmap "", $6d ; colon with tinier dots than ":" + charmap "ぃ", $6e ; hiragana small i, unused + charmap "ぅ", $6f ; hiragana small u, unused + charmap "‘", $70 ; opening single quote + charmap "’", $71 ; closing single quote + charmap "“", $72 ; opening quote + charmap "”", $73 ; closing quote + charmap "·", $74 ; middle dot, unused + charmap "…", $75 ; ellipsis + charmap "ぁ", $76 ; hiragana small a, unused + charmap "ぇ", $77 ; hiragana small e, unused + charmap "ぉ", $78 ; hiragana small o, unused + + charmap "┌", $79 + charmap "─", $7a + charmap "┐", $7b + charmap "│", $7c + charmap "└", $7d + charmap "┘", $7e + charmap " ", $7f + +; Actual characters (from gfx/font/font_battle_extra.png) + + charmap "", $6e + + charmap "", $70 ; narrow "to" + + charmap "『", $72 ; Japanese opening quote, unused + charmap "", $73 + charmap "№", $74 + +; Actual characters (from other graphics files) + + ; needed for ShowPokedexDataInternal (see engine/menus/pokedex.asm) + charmap "′", $60 ; gfx/pokedex/pokedex.png + charmap "″", $61 ; gfx/pokedex/pokedex.png + + ; needed for StatusScreen (see engine/pokemon/status_screen.asm) + charmap "", $72 ; gfx/font/P.1bpp + + ; needed for LoadTownMap_Fly (see engine/items/town_map.asm) + charmap "▲", $ed ; gfx/town_map/up_arrow.1bpp + + ; needed for PrintAlphabet (see engine/menus/naming_screen.asm) + charmap "", $f0 ; gfx/font/ED.1bpp + +; Actual characters (from gfx/font/font.png) + + charmap "A", $80 + charmap "B", $81 + charmap "C", $82 + charmap "D", $83 + charmap "E", $84 + charmap "F", $85 + charmap "G", $86 + charmap "H", $87 + charmap "I", $88 + charmap "J", $89 + charmap "K", $8a + charmap "L", $8b + charmap "M", $8c + charmap "N", $8d + charmap "O", $8e + charmap "P", $8f + charmap "Q", $90 + charmap "R", $91 + charmap "S", $92 + charmap "T", $93 + charmap "U", $94 + charmap "V", $95 + charmap "W", $96 + charmap "X", $97 + charmap "Y", $98 + charmap "Z", $99 + + charmap "(", $9a + charmap ")", $9b + charmap ":", $9c + charmap ";", $9d + charmap "[", $9e + charmap "]", $9f + + charmap "a", $a0 + charmap "b", $a1 + charmap "c", $a2 + charmap "d", $a3 + charmap "e", $a4 + charmap "f", $a5 + charmap "g", $a6 + charmap "h", $a7 + charmap "i", $a8 + charmap "j", $a9 + charmap "k", $aa + charmap "l", $ab + charmap "m", $ac + charmap "n", $ad + charmap "o", $ae + charmap "p", $af + charmap "q", $b0 + charmap "r", $b1 + charmap "s", $b2 + charmap "t", $b3 + charmap "u", $b4 + charmap "v", $b5 + charmap "w", $b6 + charmap "x", $b7 + charmap "y", $b8 + charmap "z", $b9 + + charmap "é", $ba + charmap "'d", $bb + charmap "'l", $bc + charmap "'s", $bd + charmap "'t", $be + charmap "'v", $bf + + charmap "'", $e0 + charmap "", $e1 + charmap "", $e2 + charmap "-", $e3 + + charmap "'r", $e4 + charmap "'m", $e5 + + charmap "?", $e6 + charmap "!", $e7 + charmap ".", $e8 + + charmap "ァ", $e9 ; katakana small a, unused + charmap "ゥ", $ea ; katakana small u, unused + charmap "ェ", $eb ; katakana small e, unused + + charmap "▷", $ec + charmap "▶", $ed + charmap "▼", $ee + charmap "♂", $ef + charmap "¥", $f0 + charmap "×", $f1 + charmap "", $f2 ; decimal point; same as "." in English + charmap "/", $f3 + charmap ",", $f4 + charmap "♀", $f5 + + charmap "0", $f6 + charmap "1", $f7 + charmap "2", $f8 + charmap "3", $f9 + charmap "4", $fa + charmap "5", $fb + charmap "6", $fc + charmap "7", $fd + charmap "8", $fe + charmap "9", $ff + + +; Japanese kana, for those bits of text that were not translated to English + + charmap "ガ", $05 + charmap "ギ", $06 + charmap "グ", $07 + charmap "ゲ", $08 + charmap "ゴ", $09 + charmap "ザ", $0a + charmap "ジ", $0b + charmap "ズ", $0c + charmap "ゼ", $0d + charmap "ゾ", $0e + charmap "ダ", $0f + charmap "ヂ", $10 + charmap "ヅ", $11 + charmap "デ", $12 + charmap "ド", $13 + + charmap "バ", $19 + charmap "ビ", $1a + charmap "ブ", $1b + charmap "ボ", $1c + + charmap "が", $26 + charmap "ぎ", $27 + charmap "ぐ", $28 + charmap "げ", $29 + charmap "ご", $2a + charmap "ざ", $2b + charmap "じ", $2c + charmap "ず", $2d + charmap "ぜ", $2e + charmap "ぞ", $2f + charmap "だ", $30 + charmap "ぢ", $31 + charmap "づ", $32 + charmap "で", $33 + charmap "ど", $34 + + charmap "ば", $3a + charmap "び", $3b + charmap "ぶ", $3c + charmap "べ", $3d + charmap "ぼ", $3e + + charmap "パ", $40 + charmap "ピ", $41 + charmap "プ", $42 + charmap "ポ", $43 + charmap "ぱ", $44 + charmap "ぴ", $45 + charmap "ぷ", $46 + charmap "ぺ", $47 + charmap "ぽ", $48 + + charmap "「", $70 + charmap "」", $71 + charmap "』", $73 + charmap "⋯", $75 + + charmap " ", $7f + + charmap "ア", $80 + charmap "イ", $81 + charmap "ウ", $82 + charmap "エ", $83 + charmap "オ", $84 + charmap "カ", $85 + charmap "キ", $86 + charmap "ク", $87 + charmap "ケ", $88 + charmap "コ", $89 + charmap "サ", $8a + charmap "シ", $8b + charmap "ス", $8c + charmap "セ", $8d + charmap "ソ", $8e + charmap "タ", $8f + charmap "チ", $90 + charmap "ツ", $91 + charmap "テ", $92 + charmap "ト", $93 + charmap "ナ", $94 + charmap "ニ", $95 + charmap "ヌ", $96 + charmap "ネ", $97 + charmap "ノ", $98 + charmap "ハ", $99 + charmap "ヒ", $9a + charmap "フ", $9b + charmap "ホ", $9c + charmap "マ", $9d + charmap "ミ", $9e + charmap "ム", $9f + charmap "メ", $a0 + charmap "モ", $a1 + charmap "ヤ", $a2 + charmap "ユ", $a3 + charmap "ヨ", $a4 + charmap "ラ", $a5 + charmap "ル", $a6 + charmap "レ", $a7 + charmap "ロ", $a8 + charmap "ワ", $a9 + charmap "ヲ", $aa + charmap "ン", $ab + charmap "ッ", $ac + charmap "ャ", $ad + charmap "ュ", $ae + charmap "ョ", $af + charmap "ィ", $b0 + + charmap "あ", $b1 + charmap "い", $b2 + charmap "う", $b3 + charmap "え", $b4 + charmap "お", $b5 + charmap "か", $b6 + charmap "き", $b7 + charmap "く", $b8 + charmap "け", $b9 + charmap "こ", $ba + charmap "さ", $bb + charmap "し", $bc + charmap "す", $bd + charmap "せ", $be + charmap "そ", $bf + charmap "た", $c0 + charmap "ち", $c1 + charmap "つ", $c2 + charmap "て", $c3 + charmap "と", $c4 + charmap "な", $c5 + charmap "に", $c6 + charmap "ぬ", $c7 + charmap "ね", $c8 + charmap "の", $c9 + charmap "は", $ca + charmap "ひ", $cb + charmap "ふ", $cc + charmap "へ", $cd + charmap "ほ", $ce + charmap "ま", $cf + charmap "み", $d0 + charmap "む", $d1 + charmap "め", $d2 + charmap "も", $d3 + charmap "や", $d4 + charmap "ゆ", $d5 + charmap "よ", $d6 + charmap "ら", $d7 + charmap "り", $d8 + charmap "る", $d9 + charmap "れ", $da + charmap "ろ", $db + charmap "わ", $dc + charmap "を", $dd + charmap "ん", $de + charmap "っ", $df + charmap "ゃ", $e0 + charmap "ゅ", $e1 + charmap "ょ", $e2 + + charmap "ー", $e3 + charmap "゚", $e4 + charmap "゙", $e5 + + charmap "?", $e6 + charmap "!", $e7 + charmap "。", $e8 + + charmap "円", $f0 + + charmap ".", $f2 + charmap "/", $f3 + + charmap "ォ", $f4 + + charmap "0", $f6 + charmap "1", $f7 + charmap "2", $f8 + charmap "3", $f9 + charmap "4", $fa + charmap "5", $fb + charmap "6", $fc + charmap "7", $fd + charmap "8", $fe + charmap "9", $ff diff --git a/constants.asm b/constants.asm index fa32422b2..21cd64004 100644 --- a/constants.asm +++ b/constants.asm @@ -1,33 +1,38 @@ -INCLUDE "macros.asm" INCLUDE "charmap.asm" -INCLUDE "hram.asm" -INCLUDE "vram.asm" +INCLUDE "macros.asm" INCLUDE "constants/hardware_constants.asm" INCLUDE "constants/oam_constants.asm" INCLUDE "constants/misc_constants.asm" - +INCLUDE "constants/gfx_constants.asm" +INCLUDE "constants/input_constants.asm" +INCLUDE "constants/serial_constants.asm" +INCLUDE "constants/script_constants.asm" INCLUDE "constants/pokemon_constants.asm" INCLUDE "constants/pokedex_constants.asm" +INCLUDE "constants/pokemon_data_constants.asm" INCLUDE "constants/trainer_constants.asm" -INCLUDE "constants/item_constants.asm" INCLUDE "constants/type_constants.asm" INCLUDE "constants/move_constants.asm" INCLUDE "constants/move_animation_constants.asm" INCLUDE "constants/move_effect_constants.asm" -INCLUDE "constants/status_constants.asm" +INCLUDE "constants/battle_constants.asm" +INCLUDE "constants/item_constants.asm" +INCLUDE "constants/icon_constants.asm" INCLUDE "constants/sprite_constants.asm" +INCLUDE "constants/sprite_data_constants.asm" INCLUDE "constants/palette_constants.asm" -INCLUDE "constants/evolution_constants.asm" INCLUDE "constants/list_constants.asm" INCLUDE "constants/map_constants.asm" -INCLUDE "constants/connection_constants.asm" +INCLUDE "constants/map_data_constants.asm" +INCLUDE "constants/map_object_constants.asm" INCLUDE "constants/hide_show_constants.asm" INCLUDE "constants/credits_constants.asm" +INCLUDE "constants/audio_constants.asm" INCLUDE "constants/music_constants.asm" -INCLUDE "constants/tilesets.asm" -INCLUDE "constants/starter_mons.asm" +INCLUDE "constants/tileset_constants.asm" INCLUDE "constants/event_constants.asm" INCLUDE "constants/text_constants.asm" +INCLUDE "constants/menu_constants.asm" INCLUDE "constants/pikachu_emotion_constants.asm" diff --git a/constants/audio_constants.asm b/constants/audio_constants.asm new file mode 100644 index 000000000..e36d2d5fe --- /dev/null +++ b/constants/audio_constants.asm @@ -0,0 +1,67 @@ +; pitch +; Audio[1|2|3]_Pitches indexes (see audio/notes.asm) + const_def + const C_ ; 0 + const C# ; 1 + const D_ ; 2 + const D# ; 3 + const E_ ; 4 + const F_ ; 5 + const F# ; 6 + const G_ ; 7 + const G# ; 8 + const A_ ; 9 + const A# ; A + const B_ ; B + +; channel +; Audio[1|2|3]_HWChannelBaseAddresses, Audio[1|2|3]_HWChannelDisableMasks, +; and Audio[1|2|3]_HWChannelEnableMasks indexes (see audio/engine_[1|2|3].asm) + const_def + const Ch1 ; 0 + const Ch2 ; 1 + const Ch3 ; 2 + const Ch4 ; 3 +NUM_MUSIC_CHANS EQU const_value + const Ch5 ; 4 + const Ch6 ; 5 + const Ch7 ; 6 + const Ch8 ; 7 +NUM_NOISE_CHANS EQU const_value - NUM_MUSIC_CHANS +NUM_CHANNELS EQU const_value + +; HW sound channel register base addresses +HW_CH1_BASE EQU LOW(rNR10) +HW_CH2_BASE EQU LOW(rNR21) - 1 +HW_CH3_BASE EQU LOW(rNR30) +HW_CH4_BASE EQU LOW(rNR41) - 1 + +; HW sound channel enable bit masks +HW_CH1_ENABLE_MASK EQU %00010001 +HW_CH2_ENABLE_MASK EQU %00100010 +HW_CH3_ENABLE_MASK EQU %01000100 +HW_CH4_ENABLE_MASK EQU %10001000 + +; HW sound channel disable bit masks +HW_CH1_DISABLE_MASK EQU (~HW_CH1_ENABLE_MASK & $ff) +HW_CH2_DISABLE_MASK EQU (~HW_CH2_ENABLE_MASK & $ff) +HW_CH3_DISABLE_MASK EQU (~HW_CH3_ENABLE_MASK & $ff) +HW_CH4_DISABLE_MASK EQU (~HW_CH4_ENABLE_MASK & $ff) + + const_def 1 + const REG_DUTY_SOUND_LEN ; 1 + const REG_VOLUME_ENVELOPE ; 2 + const REG_FREQUENCY_LO ; 3 + +; wChannelFlags1 constants + const_def + const BIT_PERFECT_PITCH ; 0 ; controlled by toggle_perfect_pitch command + const BIT_SOUND_CALL ; 1 ; if in sound call + const BIT_NOISE_OR_SFX ; 2 ; if channel is the music noise channel or an SFX channel + const BIT_VIBRATO_DIRECTION ; 3 ; if the pitch is above or below normal (cycles) + const BIT_PITCH_SLIDE_ON ; 4 ; if pitch slide is active + const BIT_PITCH_SLIDE_DECREASING ; 5 ; if the pitch slide frequency is decreasing (instead of increasing) + const BIT_ROTATE_DUTY_CYCLE ; 6 ; if rotating duty cycle + +; wChannelFlags2 constant (only has one flag) +BIT_EXECUTE_MUSIC EQU 0 ; if in execute music diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm new file mode 100644 index 000000000..15ba42ebe --- /dev/null +++ b/constants/battle_constants.asm @@ -0,0 +1,75 @@ +MAX_LEVEL EQU 100 + +NUM_MOVES EQU 4 +NUM_STATS EQU 5 +NUM_STAT_MODS EQU 8 +NUM_DVS EQU 2 + +; D733 flags +BIT_TEST_BATTLE EQU 0 + +; battle type constants (wBattleType values) + const_def + const BATTLE_TYPE_NORMAL ; 0 + const BATTLE_TYPE_OLD_MAN ; 1 + const BATTLE_TYPE_SAFARI ; 2 + const BATTLE_TYPE_RUN ; 3 + const BATTLE_TYPE_PIKACHU ; 4 + +; damage limits before type effectiveness +MIN_NEUTRAL_DAMAGE EQU 2 +MAX_NEUTRAL_DAMAGE EQU 999 + +; fixed damage constants +SONICBOOM_DAMAGE EQU 20 +DRAGON_RAGE_DAMAGE EQU 40 + +; type effectiveness factors, scaled by 10 +SUPER_EFFECTIVE EQU 20 +MORE_EFFECTIVE EQU 15 +EFFECTIVE EQU 10 +NOT_VERY_EFFECTIVE EQU 05 +NO_EFFECT EQU 00 + +; non-volatile statuses +SLP EQU %111 ; sleep counter + const_def 3 + const PSN ; 3 + const BRN ; 4 + const FRZ ; 5 + const PAR ; 6 + +MAX_STAT_VALUE EQU 999 + +; trainer dvs +ATKDEFDV_TRAINER EQU $98 +SPDSPCDV_TRAINER EQU $88 + +; wPlayerBattleStatus1 or wEnemyBattleStatus1 bit flags + const_def + const STORING_ENERGY ; 0 ; Bide + const THRASHING_ABOUT ; 1 ; e.g. Thrash + const ATTACKING_MULTIPLE_TIMES ; 2 ; e.g. Double Kick, Fury Attack + const FLINCHED ; 3 + const CHARGING_UP ; 4 ; e.g. Solar Beam, Fly + const USING_TRAPPING_MOVE ; 5 ; e.g. Wrap + const INVULNERABLE ; 6 ; charging up Fly/Dig + const CONFUSED ; 7 + +; wPlayerBattleStatus2 or wEnemyBattleStatus2 bit flags + const_def + const USING_X_ACCURACY ; 0 + const PROTECTED_BY_MIST ; 1 + const GETTING_PUMPED ; 2 ; Focus Energy + const_skip ; 3 ; unused + const HAS_SUBSTITUTE_UP ; 4 + const NEEDS_TO_RECHARGE ; 5 ; Hyper Beam + const USING_RAGE ; 6 + const SEEDED ; 7 + +; wPlayerBattleStatus3 or wEnemyBattleStatus3 bit flags + const_def + const BADLY_POISONED ; 0 + const HAS_LIGHT_SCREEN_UP ; 1 + const HAS_REFLECT_UP ; 2 + const TRANSFORMED ; 3 diff --git a/constants/connection_constants.asm b/constants/connection_constants.asm deleted file mode 100755 index 154c41639..000000000 --- a/constants/connection_constants.asm +++ /dev/null @@ -1,9 +0,0 @@ -; width of east/west connections -; height of north/south connections -MAP_BORDER EQU 3 - -; connection directions -EAST EQU 1 -WEST EQU 2 -SOUTH EQU 4 -NORTH EQU 8 diff --git a/constants/credits_constants.asm b/constants/credits_constants.asm index 013cecebb..b04ec0b81 100644 --- a/constants/credits_constants.asm +++ b/constants/credits_constants.asm @@ -1,3 +1,4 @@ +; CreditsTextPointers indexes (see data/credits/credits_text.asm) const_def const CRED_VERSION ; 00 const CRED_TAJIRI ; 01 @@ -86,10 +87,10 @@ const CRED_YOSHIMURA ; 54 const CRED_YAMAZAKI ; 55 -const_value SET $fa - const CRED_THE_END - const CRED_COPYRIGHT - const CRED_TEXT - const CRED_TEXT_FADE - const CRED_TEXT_MON - const CRED_TEXT_FADE_MON + const_def -1, -1 + const CRED_TEXT_FADE_MON ; $FF + const CRED_TEXT_MON ; $FE + const CRED_TEXT_FADE ; $FD + const CRED_TEXT ; $FC + const CRED_COPYRIGHT ; $FB + const CRED_THE_END ; $FA diff --git a/constants/event_constants.asm b/constants/event_constants.asm index b35f74f87..bf4926aa2 100644 --- a/constants/event_constants.asm +++ b/constants/event_constants.asm @@ -1,2564 +1,794 @@ -const_value = 0 +; wEventFlags bit flags - const EVENT_FOLLOWED_OAK_INTO_LAB ; 000, (D747, bit 0) - const EVENT_001 ; 001, (D747, bit 1) - const EVENT_002 ; 002, (D747, bit 2) - const EVENT_HALL_OF_FAME_DEX_RATING ; 003, (D747, bit 3) - const EVENT_004 ; 004, (D747, bit 4) - const EVENT_PLAYER_AT_RIGHT_EXIT_TO_PALLET_TOWN ; 005, (D747, bit 5) - const EVENT_PALLET_AFTER_GETTING_POKEBALLS ; 006, (D747, bit 6) - const EVENT_007 ; 007, (D747, bit 7) - const EVENT_008 ; 008, (D748, bit 0) - const EVENT_009 ; 009, (D748, bit 1) - const EVENT_00A ; 00A, (D748, bit 2) - const EVENT_00B ; 00B, (D748, bit 3) - const EVENT_00C ; 00C, (D748, bit 4) - const EVENT_00D ; 00D, (D748, bit 5) - const EVENT_00E ; 00E, (D748, bit 6) - const EVENT_00F ; 00F, (D748, bit 7) - const EVENT_010 ; 010, (D749, bit 0) - const EVENT_011 ; 011, (D749, bit 1) - const EVENT_012 ; 012, (D749, bit 2) - const EVENT_013 ; 013, (D749, bit 3) - const EVENT_014 ; 014, (D749, bit 4) - const EVENT_015 ; 015, (D749, bit 5) - const EVENT_016 ; 016, (D749, bit 6) - const EVENT_017 ; 017, (D749, bit 7) - const EVENT_GOT_TOWN_MAP ; 018, (D74A, bit 0) - const EVENT_ENTERED_BLUES_HOUSE ; 019, (D74A, bit 1) - const EVENT_DAISY_WALKING ; 01A, (D74A, bit 2) - const EVENT_01B ; 01B, (D74A, bit 3) - const EVENT_01C ; 01C, (D74A, bit 4) - const EVENT_01D ; 01D, (D74A, bit 5) - const EVENT_01E ; 01E, (D74A, bit 6) - const EVENT_01F ; 01F, (D74A, bit 7) - const EVENT_FOLLOWED_OAK_INTO_LAB_2 ; 020, (D74B, bit 0) - const EVENT_OAK_ASKED_TO_CHOOSE_MON ; 021, (D74B, bit 1) - const EVENT_GOT_STARTER ; 022, (D74B, bit 2) - const EVENT_BATTLED_RIVAL_IN_OAKS_LAB ; 023, (D74B, bit 3) - const EVENT_GOT_POKEBALLS_FROM_OAK ; 024, (D74B, bit 4) - const EVENT_GOT_POKEDEX ; 025, (D74B, bit 5) - const EVENT_PALLET_AFTER_GETTING_POKEBALLS_2 ; 026, (D74B, bit 6) - const EVENT_OAK_APPEARED_IN_PALLET ; 027, (D74B, bit 7) - const EVENT_VIRIDIAN_GYM_OPEN ; 028, (D74C, bit 0) - const EVENT_GOT_TM42 ; 029, (D74C, bit 1) - const EVENT_02A ; 02A, (D74C, bit 2) - const EVENT_02B ; 02B, (D74C, bit 3) - const EVENT_02C ; 02C, (D74C, bit 4) - const EVENT_02D ; 02D, (D74C, bit 5) - const EVENT_02E ; 02E, (D74C, bit 6) - const EVENT_02F ; 02F, (D74C, bit 7) - const EVENT_030 ; 030, (D74D, bit 0) - const EVENT_031 ; 031, (D74D, bit 1) - const EVENT_032 ; 032, (D74D, bit 2) - const EVENT_033 ; 033, (D74D, bit 3) - const EVENT_034 ; 034, (D74D, bit 4) - const EVENT_035 ; 035, (D74D, bit 5) - const EVENT_036 ; 036, (D74D, bit 6) - const EVENT_037 ; 037, (D74D, bit 7) - const EVENT_OAK_GOT_PARCEL ; 038, (D74E, bit 0) - const EVENT_GOT_OAKS_PARCEL ; 039, (D74E, bit 1) - const EVENT_03A ; 03A, (D74E, bit 2) - const EVENT_03B ; 03B, (D74E, bit 3) - const EVENT_03C ; 03C, (D74E, bit 4) - const EVENT_03D ; 03D, (D74E, bit 5) - const EVENT_03E ; 03E, (D74E, bit 6) - const EVENT_03F ; 03F, (D74E, bit 7) - const EVENT_040 ; 040, (D74F, bit 0) - const EVENT_041 ; 041, (D74F, bit 1) - const EVENT_042 ; 042, (D74F, bit 2) - const EVENT_043 ; 043, (D74F, bit 3) - const EVENT_044 ; 044, (D74F, bit 4) - const EVENT_045 ; 045, (D74F, bit 5) - const EVENT_046 ; 046, (D74F, bit 6) - const EVENT_047 ; 047, (D74F, bit 7) - const EVENT_048 ; 048, (D750, bit 0) - const EVENT_049 ; 049, (D750, bit 1) - const EVENT_04A ; 04A, (D750, bit 2) - const EVENT_04B ; 04B, (D750, bit 3) - const EVENT_04C ; 04C, (D750, bit 4) - const EVENT_04D ; 04D, (D750, bit 5) - const EVENT_04E ; 04E, (D750, bit 6) - const EVENT_04F ; 04F, (D750, bit 7) - const EVENT_GOT_TM27 ; 050, (D751, bit 0) - const EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI ; 051, (D751, bit 1) - const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_0 ; 052, (D751, bit 2) - const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_1 ; 053, (D751, bit 3) - const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_2 ; 054, (D751, bit 4) - const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_3 ; 055, (D751, bit 5) - const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_4 ; 056, (D751, bit 6) - const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_5 ; 057, (D751, bit 7) - const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_6 ; 058, (D752, bit 0) - const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_7 ; 059, (D752, bit 1) - const EVENT_05A ; 05A, (D752, bit 2) - const EVENT_05B ; 05B, (D752, bit 3) - const EVENT_05C ; 05C, (D752, bit 4) - const EVENT_05D ; 05D, (D752, bit 5) - const EVENT_05E ; 05E, (D752, bit 6) - const EVENT_05F ; 05F, (D752, bit 7) - const EVENT_060 ; 060, (D753, bit 0) - const EVENT_061 ; 061, (D753, bit 1) - const EVENT_062 ; 062, (D753, bit 2) - const EVENT_063 ; 063, (D753, bit 3) - const EVENT_064 ; 064, (D753, bit 4) - const EVENT_065 ; 065, (D753, bit 5) - const EVENT_066 ; 066, (D753, bit 6) - const EVENT_067 ; 067, (D753, bit 7) - const EVENT_BOUGHT_MUSEUM_TICKET ; 068, (D754, bit 0) - const EVENT_GOT_OLD_AMBER ; 069, (D754, bit 1) - const EVENT_06A ; 06A, (D754, bit 2) - const EVENT_06B ; 06B, (D754, bit 3) - const EVENT_06C ; 06C, (D754, bit 4) - const EVENT_06D ; 06D, (D754, bit 5) - const EVENT_06E ; 06E, (D754, bit 6) - const EVENT_06F ; 06F, (D754, bit 7) - const EVENT_070 ; 070, (D755, bit 0) - const EVENT_071 ; 071, (D755, bit 1) - const EVENT_BEAT_PEWTER_GYM_TRAINER_0 ; 072, (D755, bit 2) - const EVENT_073 ; 073, (D755, bit 3) - const EVENT_074 ; 074, (D755, bit 4) - const EVENT_075 ; 075, (D755, bit 5) - const EVENT_GOT_TM34 ; 076, (D755, bit 6) - const EVENT_BEAT_BROCK ; 077, (D755, bit 7) - const EVENT_078 ; 078, (D756, bit 0) - const EVENT_079 ; 079, (D756, bit 1) - const EVENT_07A ; 07A, (D756, bit 2) - const EVENT_07B ; 07B, (D756, bit 3) - const EVENT_07C ; 07C, (D756, bit 4) - const EVENT_07D ; 07D, (D756, bit 5) - const EVENT_07E ; 07E, (D756, bit 6) - const EVENT_07F ; 07F, (D756, bit 7) - const EVENT_080 ; 080, (D757, bit 0) - const EVENT_081 ; 081, (D757, bit 1) - const EVENT_082 ; 082, (D757, bit 2) - const EVENT_083 ; 083, (D757, bit 3) - const EVENT_084 ; 084, (D757, bit 4) - const EVENT_085 ; 085, (D757, bit 5) - const EVENT_086 ; 086, (D757, bit 6) - const EVENT_087 ; 087, (D757, bit 7) - const EVENT_088 ; 088, (D758, bit 0) - const EVENT_089 ; 089, (D758, bit 1) - const EVENT_08A ; 08A, (D758, bit 2) - const EVENT_08B ; 08B, (D758, bit 3) - const EVENT_08C ; 08C, (D758, bit 4) - const EVENT_08D ; 08D, (D758, bit 5) - const EVENT_08E ; 08E, (D758, bit 6) - const EVENT_08F ; 08F, (D758, bit 7) - const EVENT_090 ; 090, (D759, bit 0) - const EVENT_091 ; 091, (D759, bit 1) - const EVENT_092 ; 092, (D759, bit 2) - const EVENT_093 ; 093, (D759, bit 3) - const EVENT_094 ; 094, (D759, bit 4) - const EVENT_095 ; 095, (D759, bit 5) - const EVENT_096 ; 096, (D759, bit 6) - const EVENT_097 ; 097, (D759, bit 7) - const EVENT_BEAT_CERULEAN_RIVAL ; 098, (D75A, bit 0) - const EVENT_099 ; 099, (D75A, bit 1) - const EVENT_09A ; 09A, (D75A, bit 2) - const EVENT_09B ; 09B, (D75A, bit 3) - const EVENT_09C ; 09C, (D75A, bit 4) - const EVENT_09D ; 09D, (D75A, bit 5) - const EVENT_09E ; 09E, (D75A, bit 6) - const EVENT_09F ; 09F, (D75A, bit 7) - const EVENT_0A0 ; 0A0, (D75B, bit 0) - const EVENT_0A1 ; 0A1, (D75B, bit 1) - const EVENT_0A2 ; 0A2, (D75B, bit 2) - const EVENT_0A3 ; 0A3, (D75B, bit 3) - const EVENT_0A4 ; 0A4, (D75B, bit 4) - const EVENT_0A5 ; 0A5, (D75B, bit 5) - const EVENT_0A6 ; 0A6, (D75B, bit 6) - const EVENT_BEAT_CERULEAN_ROCKET_THIEF ; 0A7, (D75B, bit 7) - const EVENT_GOT_BULBASAUR_IN_CERULEAN ; 0A8, (D75C, bit 0) - const EVENT_0A9 ; 0A9, (D75C, bit 1) - const EVENT_0AA ; 0AA, (D75C, bit 2) - const EVENT_0AB ; 0AB, (D75C, bit 3) - const EVENT_0AC ; 0AC, (D75C, bit 4) - const EVENT_0AD ; 0AD, (D75C, bit 5) - const EVENT_0AE ; 0AE, (D75C, bit 6) - const EVENT_0AF ; 0AF, (D75C, bit 7) - const EVENT_0B0 ; 0B0, (D75D, bit 0) - const EVENT_0B1 ; 0B1, (D75D, bit 1) - const EVENT_0B2 ; 0B2, (D75D, bit 2) - const EVENT_0B3 ; 0B3, (D75D, bit 3) - const EVENT_0B4 ; 0B4, (D75D, bit 4) - const EVENT_0B5 ; 0B5, (D75D, bit 5) - const EVENT_0B6 ; 0B6, (D75D, bit 6) - const EVENT_0B7 ; 0B7, (D75D, bit 7) - const EVENT_0B8 ; 0B8, (D75E, bit 0) - const EVENT_0B9 ; 0B9, (D75E, bit 1) - const EVENT_BEAT_CERULEAN_GYM_TRAINER_0 ; 0BA, (D75E, bit 2) - const EVENT_BEAT_CERULEAN_GYM_TRAINER_1 ; 0BB, (D75E, bit 3) - const EVENT_0BC ; 0BC, (D75E, bit 4) - const EVENT_0BD ; 0BD, (D75E, bit 5) - const EVENT_GOT_TM11 ; 0BE, (D75E, bit 6) - const EVENT_BEAT_MISTY ; 0BF, (D75E, bit 7) - const EVENT_GOT_BICYCLE ; 0C0, (D75F, bit 0) - const EVENT_0C1 ; 0C1, (D75F, bit 1) - const EVENT_0C2 ; 0C2, (D75F, bit 2) - const EVENT_0C3 ; 0C3, (D75F, bit 3) - const EVENT_0C4 ; 0C4, (D75F, bit 4) - const EVENT_0C5 ; 0C5, (D75F, bit 5) - const EVENT_0C6 ; 0C6, (D75F, bit 6) - const EVENT_0C7 ; 0C7, (D75F, bit 7) - const EVENT_0C8 ; 0C8, (D760, bit 0) - const EVENT_0C9 ; 0C9, (D760, bit 1) - const EVENT_0CA ; 0CA, (D760, bit 2) - const EVENT_0CB ; 0CB, (D760, bit 3) - const EVENT_0CC ; 0CC, (D760, bit 4) - const EVENT_0CD ; 0CD, (D760, bit 5) - const EVENT_0CE ; 0CE, (D760, bit 6) - const EVENT_0CF ; 0CF, (D760, bit 7) - const EVENT_0D0 ; 0D0, (D761, bit 0) - const EVENT_0D1 ; 0D1, (D761, bit 1) - const EVENT_0D2 ; 0D2, (D761, bit 2) - const EVENT_0D3 ; 0D3, (D761, bit 3) - const EVENT_0D4 ; 0D4, (D761, bit 4) - const EVENT_0D5 ; 0D5, (D761, bit 5) - const EVENT_0D6 ; 0D6, (D761, bit 6) - const EVENT_0D7 ; 0D7, (D761, bit 7) - const EVENT_0D8 ; 0D8, (D762, bit 0) - const EVENT_0D9 ; 0D9, (D762, bit 1) - const EVENT_0DA ; 0DA, (D762, bit 2) - const EVENT_0DB ; 0DB, (D762, bit 3) - const EVENT_0DC ; 0DC, (D762, bit 4) - const EVENT_0DD ; 0DD, (D762, bit 5) - const EVENT_0DE ; 0DE, (D762, bit 6) - const EVENT_0DF ; 0DF, (D762, bit 7) - const EVENT_0E0 ; 0E0, (D763, bit 0) - const EVENT_0E1 ; 0E1, (D763, bit 1) - const EVENT_0E2 ; 0E2, (D763, bit 2) - const EVENT_0E3 ; 0E3, (D763, bit 3) - const EVENT_0E4 ; 0E4, (D763, bit 4) - const EVENT_0E5 ; 0E5, (D763, bit 5) - const EVENT_0E6 ; 0E6, (D763, bit 6) - const EVENT_0E7 ; 0E7, (D763, bit 7) - const EVENT_0E8 ; 0E8, (D764, bit 0) - const EVENT_0E9 ; 0E9, (D764, bit 1) - const EVENT_0EA ; 0EA, (D764, bit 2) - const EVENT_0EB ; 0EB, (D764, bit 3) - const EVENT_0EC ; 0EC, (D764, bit 4) - const EVENT_0ED ; 0ED, (D764, bit 5) - const EVENT_POKEMON_TOWER_RIVAL_ON_LEFT ; 0EE, (D764, bit 6) - const EVENT_BEAT_POKEMON_TOWER_RIVAL ; 0EF, (D764, bit 7) - const EVENT_0F0 ; 0F0, (D765, bit 0) - const EVENT_BEAT_POKEMONTOWER_3_TRAINER_0 ; 0F1, (D765, bit 1) - const EVENT_BEAT_POKEMONTOWER_3_TRAINER_1 ; 0F2, (D765, bit 2) - const EVENT_BEAT_POKEMONTOWER_3_TRAINER_2 ; 0F3, (D765, bit 3) - const EVENT_0F4 ; 0F4, (D765, bit 4) - const EVENT_0F5 ; 0F5, (D765, bit 5) - const EVENT_0F6 ; 0F6, (D765, bit 6) - const EVENT_0F7 ; 0F7, (D765, bit 7) - const EVENT_0F8 ; 0F8, (D766, bit 0) - const EVENT_BEAT_POKEMONTOWER_4_TRAINER_0 ; 0F9, (D766, bit 1) - const EVENT_BEAT_POKEMONTOWER_4_TRAINER_1 ; 0FA, (D766, bit 2) - const EVENT_BEAT_POKEMONTOWER_4_TRAINER_2 ; 0FB, (D766, bit 3) - const EVENT_0FC ; 0FC, (D766, bit 4) - const EVENT_0FD ; 0FD, (D766, bit 5) - const EVENT_0FE ; 0FE, (D766, bit 6) - const EVENT_0FF ; 0FF, (D766, bit 7) - const EVENT_100 ; 100, (D767, bit 0) - const EVENT_101 ; 101, (D767, bit 1) - const EVENT_BEAT_POKEMONTOWER_5_TRAINER_0 ; 102, (D767, bit 2) - const EVENT_BEAT_POKEMONTOWER_5_TRAINER_1 ; 103, (D767, bit 3) - const EVENT_BEAT_POKEMONTOWER_5_TRAINER_2 ; 104, (D767, bit 4) - const EVENT_BEAT_POKEMONTOWER_5_TRAINER_3 ; 105, (D767, bit 5) - const EVENT_106 ; 106, (D767, bit 6) - const EVENT_IN_PURIFIED_ZONE ; 107, (D767, bit 7) - const EVENT_108 ; 108, (D768, bit 0) - const EVENT_BEAT_POKEMONTOWER_6_TRAINER_0 ; 109, (D768, bit 1) - const EVENT_BEAT_POKEMONTOWER_6_TRAINER_1 ; 10A, (D768, bit 2) - const EVENT_BEAT_POKEMONTOWER_6_TRAINER_2 ; 10B, (D768, bit 3) - const EVENT_10C ; 10C, (D768, bit 4) - const EVENT_10D ; 10D, (D768, bit 5) - const EVENT_10E ; 10E, (D768, bit 6) - const EVENT_BEAT_GHOST_MAROWAK ; 10F, (D768, bit 7) - const EVENT_110 ; 110, (D769, bit 0) - const EVENT_BEAT_POKEMONTOWER_7_TRAINER_0 ; 111, (D769, bit 1) - const EVENT_BEAT_POKEMONTOWER_7_TRAINER_1 ; 112, (D769, bit 2) - const EVENT_BEAT_POKEMONTOWER_7_TRAINER_2 ; 113, (D769, bit 3) - const EVENT_114 ; 114, (D769, bit 4) - const EVENT_115 ; 115, (D769, bit 5) - const EVENT_116 ; 116, (D769, bit 6) - const EVENT_RESCUED_MR_FUJI_2 ; 117, (D769, bit 7) - const EVENT_118 ; 118, (D76A, bit 0) - const EVENT_119 ; 119, (D76A, bit 1) - const EVENT_11A ; 11A, (D76A, bit 2) - const EVENT_11B ; 11B, (D76A, bit 3) - const EVENT_11C ; 11C, (D76A, bit 4) - const EVENT_11D ; 11D, (D76A, bit 5) - const EVENT_11E ; 11E, (D76A, bit 6) - const EVENT_11F ; 11F, (D76A, bit 7) - const EVENT_120 ; 120, (D76B, bit 0) - const EVENT_121 ; 121, (D76B, bit 1) - const EVENT_122 ; 122, (D76B, bit 2) - const EVENT_123 ; 123, (D76B, bit 3) - const EVENT_124 ; 124, (D76B, bit 4) - const EVENT_125 ; 125, (D76B, bit 5) - const EVENT_126 ; 126, (D76B, bit 6) - const EVENT_127 ; 127, (D76B, bit 7) - const EVENT_GOT_POKE_FLUTE ; 128, (D76C, bit 0) - const EVENT_129 ; 129, (D76C, bit 1) - const EVENT_12A ; 12A, (D76C, bit 2) - const EVENT_12B ; 12B, (D76C, bit 3) - const EVENT_12C ; 12C, (D76C, bit 4) - const EVENT_12D ; 12D, (D76C, bit 5) - const EVENT_12E ; 12E, (D76C, bit 6) - const EVENT_12F ; 12F, (D76C, bit 7) - const EVENT_130 ; 130, (D76D, bit 0) - const EVENT_131 ; 131, (D76D, bit 1) - const EVENT_132 ; 132, (D76D, bit 2) - const EVENT_133 ; 133, (D76D, bit 3) - const EVENT_134 ; 134, (D76D, bit 4) - const EVENT_135 ; 135, (D76D, bit 5) - const EVENT_136 ; 136, (D76D, bit 6) - const EVENT_137 ; 137, (D76D, bit 7) - const EVENT_138 ; 138, (D76E, bit 0) - const EVENT_139 ; 139, (D76E, bit 1) - const EVENT_13A ; 13A, (D76E, bit 2) - const EVENT_13B ; 13B, (D76E, bit 3) - const EVENT_13C ; 13C, (D76E, bit 4) - const EVENT_13D ; 13D, (D76E, bit 5) - const EVENT_13E ; 13E, (D76E, bit 6) - const EVENT_13F ; 13F, (D76E, bit 7) - const EVENT_140 ; 140, (D76F, bit 0) - const EVENT_141 ; 141, (D76F, bit 1) - const EVENT_142 ; 142, (D76F, bit 2) - const EVENT_143 ; 143, (D76F, bit 3) - const EVENT_144 ; 144, (D76F, bit 4) - const EVENT_145 ; 145, (D76F, bit 5) - const EVENT_146 ; 146, (D76F, bit 6) - const EVENT_GOT_SQUIRTLE_FROM_OFFICER_JENNY ; 147, (D76F, bit 7) - const EVENT_148 ; 148, (D770, bit 0) - const EVENT_149 ; 149, (D770, bit 1) - const EVENT_14A ; 14A, (D770, bit 2) - const EVENT_14B ; 14B, (D770, bit 3) - const EVENT_14C ; 14C, (D770, bit 4) - const EVENT_14D ; 14D, (D770, bit 5) - const EVENT_14E ; 14E, (D770, bit 6) - const EVENT_14F ; 14F, (D770, bit 7) - const EVENT_150 ; 150, (D771, bit 0) - const EVENT_GOT_BIKE_VOUCHER ; 151, (D771, bit 1) - const EVENT_152 ; 152, (D771, bit 2) - const EVENT_153 ; 153, (D771, bit 3) - const EVENT_154 ; 154, (D771, bit 4) - const EVENT_155 ; 155, (D771, bit 5) - const EVENT_SEEL_FAN_BOAST ; 156, (D771, bit 6) - const EVENT_PIKACHU_FAN_BOAST ; 157, (D771, bit 7) - const EVENT_158 ; 158, (D772, bit 0) - const EVENT_159 ; 159, (D772, bit 1) - const EVENT_15A ; 15A, (D772, bit 2) - const EVENT_15B ; 15B, (D772, bit 3) - const EVENT_15C ; 15C, (D772, bit 4) - const EVENT_15D ; 15D, (D772, bit 5) - const EVENT_15E ; 15E, (D772, bit 6) - const EVENT_15F ; 15F, (D772, bit 7) - const EVENT_2ND_LOCK_OPENED ; 160, (D773, bit 0) - const EVENT_1ST_LOCK_OPENED ; 161, (D773, bit 1) - const EVENT_BEAT_VERMILION_GYM_TRAINER_0 ; 162, (D773, bit 2) - const EVENT_BEAT_VERMILION_GYM_TRAINER_1 ; 163, (D773, bit 3) - const EVENT_BEAT_VERMILION_GYM_TRAINER_2 ; 164, (D773, bit 4) - const EVENT_165 ; 165, (D773, bit 5) - const EVENT_GOT_TM24 ; 166, (D773, bit 6) - const EVENT_BEAT_LT_SURGE ; 167, (D773, bit 7) - const EVENT_168 ; 168, (D774, bit 0) - const EVENT_169 ; 169, (D774, bit 1) - const EVENT_16A ; 16A, (D774, bit 2) - const EVENT_16B ; 16B, (D774, bit 3) - const EVENT_16C ; 16C, (D774, bit 4) - const EVENT_16D ; 16D, (D774, bit 5) - const EVENT_16E ; 16E, (D774, bit 6) - const EVENT_16F ; 16F, (D774, bit 7) - const EVENT_170 ; 170, (D775, bit 0) - const EVENT_171 ; 171, (D775, bit 1) - const EVENT_172 ; 172, (D775, bit 2) - const EVENT_173 ; 173, (D775, bit 3) - const EVENT_174 ; 174, (D775, bit 4) - const EVENT_175 ; 175, (D775, bit 5) - const EVENT_176 ; 176, (D775, bit 6) - const EVENT_177 ; 177, (D775, bit 7) - const EVENT_178 ; 178, (D776, bit 0) - const EVENT_179 ; 179, (D776, bit 1) - const EVENT_17A ; 17A, (D776, bit 2) - const EVENT_17B ; 17B, (D776, bit 3) - const EVENT_17C ; 17C, (D776, bit 4) - const EVENT_17D ; 17D, (D776, bit 5) - const EVENT_17E ; 17E, (D776, bit 6) - const EVENT_17F ; 17F, (D776, bit 7) - const EVENT_GOT_TM41 ; 180, (D777, bit 0) - const EVENT_181 ; 181, (D777, bit 1) - const EVENT_182 ; 182, (D777, bit 2) - const EVENT_183 ; 183, (D777, bit 3) - const EVENT_184 ; 184, (D777, bit 4) - const EVENT_185 ; 185, (D777, bit 5) - const EVENT_186 ; 186, (D777, bit 6) - const EVENT_187 ; 187, (D777, bit 7) - const EVENT_188 ; 188, (D778, bit 0) - const EVENT_189 ; 189, (D778, bit 1) - const EVENT_18A ; 18A, (D778, bit 2) - const EVENT_18B ; 18B, (D778, bit 3) - const EVENT_GOT_TM13 ; 18C, (D778, bit 4) - const EVENT_GOT_TM48 ; 18D, (D778, bit 5) - const EVENT_GOT_TM49 ; 18E, (D778, bit 6) - const EVENT_GOT_TM18 ; 18F, (D778, bit 7) - const EVENT_190 ; 190, (D779, bit 0) - const EVENT_191 ; 191, (D779, bit 1) - const EVENT_192 ; 192, (D779, bit 2) - const EVENT_193 ; 193, (D779, bit 3) - const EVENT_194 ; 194, (D779, bit 4) - const EVENT_195 ; 195, (D779, bit 5) - const EVENT_196 ; 196, (D779, bit 6) - const EVENT_197 ; 197, (D779, bit 7) - const EVENT_198 ; 198, (D77A, bit 0) - const EVENT_199 ; 199, (D77A, bit 1) - const EVENT_19A ; 19A, (D77A, bit 2) - const EVENT_19B ; 19B, (D77A, bit 3) - const EVENT_19C ; 19C, (D77A, bit 4) - const EVENT_19D ; 19D, (D77A, bit 5) - const EVENT_19E ; 19E, (D77A, bit 6) - const EVENT_19F ; 19F, (D77A, bit 7) - const EVENT_1A0 ; 1A0, (D77B, bit 0) - const EVENT_1A1 ; 1A1, (D77B, bit 1) - const EVENT_1A2 ; 1A2, (D77B, bit 2) - const EVENT_1A3 ; 1A3, (D77B, bit 3) - const EVENT_1A4 ; 1A4, (D77B, bit 4) - const EVENT_1A5 ; 1A5, (D77B, bit 5) - const EVENT_1A6 ; 1A6, (D77B, bit 6) - const EVENT_1A7 ; 1A7, (D77B, bit 7) - const EVENT_GOT_TM21 ; 1A8, (D77C, bit 0) - const EVENT_BEAT_ERIKA ; 1A9, (D77C, bit 1) - const EVENT_BEAT_CELADON_GYM_TRAINER_0 ; 1AA, (D77C, bit 2) - const EVENT_BEAT_CELADON_GYM_TRAINER_1 ; 1AB, (D77C, bit 3) - const EVENT_BEAT_CELADON_GYM_TRAINER_2 ; 1AC, (D77C, bit 4) - const EVENT_BEAT_CELADON_GYM_TRAINER_3 ; 1AD, (D77C, bit 5) - const EVENT_BEAT_CELADON_GYM_TRAINER_4 ; 1AE, (D77C, bit 6) - const EVENT_BEAT_CELADON_GYM_TRAINER_5 ; 1AF, (D77C, bit 7) - const EVENT_BEAT_CELADON_GYM_TRAINER_6 ; 1B0, (D77D, bit 0) - const EVENT_1B1 ; 1B1, (D77D, bit 1) - const EVENT_1B2 ; 1B2, (D77D, bit 2) - const EVENT_1B3 ; 1B3, (D77D, bit 3) - const EVENT_1B4 ; 1B4, (D77D, bit 4) - const EVENT_1B5 ; 1B5, (D77D, bit 5) - const EVENT_1B6 ; 1B6, (D77D, bit 6) - const EVENT_1B7 ; 1B7, (D77D, bit 7) - const EVENT_1B8 ; 1B8, (D77E, bit 0) - const EVENT_FOUND_ROCKET_HIDEOUT ; 1B9, (D77E, bit 1) - const EVENT_GOT_10_COINS ; 1BA, (D77E, bit 2) - const EVENT_GOT_20_COINS ; 1BB, (D77E, bit 3) - const EVENT_GOT_20_COINS_2 ; 1BC, (D77E, bit 4) - const EVENT_1BD ; 1BD, (D77E, bit 5) - const EVENT_1BE ; 1BE, (D77E, bit 6) - const EVENT_1BF ; 1BF, (D77E, bit 7) - const EVENT_1C0 ; 1C0, (D77F, bit 0) - const EVENT_1C1 ; 1C1, (D77F, bit 1) - const EVENT_1C2 ; 1C2, (D77F, bit 2) - const EVENT_1C3 ; 1C3, (D77F, bit 3) - const EVENT_1C4 ; 1C4, (D77F, bit 4) - const EVENT_1C5 ; 1C5, (D77F, bit 5) - const EVENT_1C6 ; 1C6, (D77F, bit 6) - const EVENT_1C7 ; 1C7, (D77F, bit 7) - const EVENT_1C8 ; 1C8, (D780, bit 0) - const EVENT_1C9 ; 1C9, (D780, bit 1) - const EVENT_1CA ; 1CA, (D780, bit 2) - const EVENT_1CB ; 1CB, (D780, bit 3) - const EVENT_1CC ; 1CC, (D780, bit 4) - const EVENT_1CD ; 1CD, (D780, bit 5) - const EVENT_1CE ; 1CE, (D780, bit 6) - const EVENT_1CF ; 1CF, (D780, bit 7) - const EVENT_1D0 ; 1D0, (D781, bit 0) - const EVENT_1D1 ; 1D1, (D781, bit 1) - const EVENT_1D2 ; 1D2, (D781, bit 2) - const EVENT_1D3 ; 1D3, (D781, bit 3) - const EVENT_1D4 ; 1D4, (D781, bit 4) - const EVENT_1D5 ; 1D5, (D781, bit 5) - const EVENT_1D6 ; 1D6, (D781, bit 6) - const EVENT_1D7 ; 1D7, (D781, bit 7) - const EVENT_1D8 ; 1D8, (D782, bit 0) - const EVENT_1D9 ; 1D9, (D782, bit 1) - const EVENT_1DA ; 1DA, (D782, bit 2) - const EVENT_1DB ; 1DB, (D782, bit 3) - const EVENT_1DC ; 1DC, (D782, bit 4) - const EVENT_1DD ; 1DD, (D782, bit 5) - const EVENT_1DE ; 1DE, (D782, bit 6) - const EVENT_1DF ; 1DF, (D782, bit 7) - const EVENT_GOT_COIN_CASE ; 1E0, (D783, bit 0) - const EVENT_1E1 ; 1E1, (D783, bit 1) - const EVENT_1E2 ; 1E2, (D783, bit 2) - const EVENT_1E3 ; 1E3, (D783, bit 3) - const EVENT_1E4 ; 1E4, (D783, bit 4) - const EVENT_1E5 ; 1E5, (D783, bit 5) - const EVENT_1E6 ; 1E6, (D783, bit 6) - const EVENT_1E7 ; 1E7, (D783, bit 7) - const EVENT_1E8 ; 1E8, (D784, bit 0) - const EVENT_1E9 ; 1E9, (D784, bit 1) - const EVENT_1EA ; 1EA, (D784, bit 2) - const EVENT_1EB ; 1EB, (D784, bit 3) - const EVENT_1EC ; 1EC, (D784, bit 4) - const EVENT_1ED ; 1ED, (D784, bit 5) - const EVENT_1EE ; 1EE, (D784, bit 6) - const EVENT_1EF ; 1EF, (D784, bit 7) - const EVENT_1F0 ; 1F0, (D785, bit 0) - const EVENT_1F1 ; 1F1, (D785, bit 1) - const EVENT_1F2 ; 1F2, (D785, bit 2) - const EVENT_1F3 ; 1F3, (D785, bit 3) - const EVENT_1F4 ; 1F4, (D785, bit 4) - const EVENT_1F5 ; 1F5, (D785, bit 5) - const EVENT_1F6 ; 1F6, (D785, bit 6) - const EVENT_1F7 ; 1F7, (D785, bit 7) - const EVENT_1F8 ; 1F8, (D786, bit 0) - const EVENT_1F9 ; 1F9, (D786, bit 1) - const EVENT_1FA ; 1FA, (D786, bit 2) - const EVENT_1FB ; 1FB, (D786, bit 3) - const EVENT_1FC ; 1FC, (D786, bit 4) - const EVENT_1FD ; 1FD, (D786, bit 5) - const EVENT_1FE ; 1FE, (D786, bit 6) - const EVENT_1FF ; 1FF, (D786, bit 7) - const EVENT_200 ; 200, (D787, bit 0) - const EVENT_201 ; 201, (D787, bit 1) - const EVENT_202 ; 202, (D787, bit 2) - const EVENT_203 ; 203, (D787, bit 3) - const EVENT_204 ; 204, (D787, bit 4) - const EVENT_205 ; 205, (D787, bit 5) - const EVENT_206 ; 206, (D787, bit 6) - const EVENT_207 ; 207, (D787, bit 7) - const EVENT_208 ; 208, (D788, bit 0) - const EVENT_209 ; 209, (D788, bit 1) - const EVENT_20A ; 20A, (D788, bit 2) - const EVENT_20B ; 20B, (D788, bit 3) - const EVENT_20C ; 20C, (D788, bit 4) - const EVENT_20D ; 20D, (D788, bit 5) - const EVENT_20E ; 20E, (D788, bit 6) - const EVENT_20F ; 20F, (D788, bit 7) - const EVENT_210 ; 210, (D789, bit 0) - const EVENT_211 ; 211, (D789, bit 1) - const EVENT_212 ; 212, (D789, bit 2) - const EVENT_213 ; 213, (D789, bit 3) - const EVENT_214 ; 214, (D789, bit 4) - const EVENT_215 ; 215, (D789, bit 5) - const EVENT_216 ; 216, (D789, bit 6) - const EVENT_217 ; 217, (D789, bit 7) - const EVENT_218 ; 218, (D78A, bit 0) - const EVENT_219 ; 219, (D78A, bit 1) - const EVENT_21A ; 21A, (D78A, bit 2) - const EVENT_21B ; 21B, (D78A, bit 3) - const EVENT_21C ; 21C, (D78A, bit 4) - const EVENT_21D ; 21D, (D78A, bit 5) - const EVENT_21E ; 21E, (D78A, bit 6) - const EVENT_21F ; 21F, (D78A, bit 7) - const EVENT_220 ; 220, (D78B, bit 0) - const EVENT_221 ; 221, (D78B, bit 1) - const EVENT_222 ; 222, (D78B, bit 2) - const EVENT_223 ; 223, (D78B, bit 3) - const EVENT_224 ; 224, (D78B, bit 4) - const EVENT_225 ; 225, (D78B, bit 5) - const EVENT_226 ; 226, (D78B, bit 6) - const EVENT_227 ; 227, (D78B, bit 7) - const EVENT_228 ; 228, (D78C, bit 0) - const EVENT_229 ; 229, (D78C, bit 1) - const EVENT_22A ; 22A, (D78C, bit 2) - const EVENT_22B ; 22B, (D78C, bit 3) - const EVENT_22C ; 22C, (D78C, bit 4) - const EVENT_22D ; 22D, (D78C, bit 5) - const EVENT_22E ; 22E, (D78C, bit 6) - const EVENT_22F ; 22F, (D78C, bit 7) - const EVENT_230 ; 230, (D78D, bit 0) - const EVENT_231 ; 231, (D78D, bit 1) - const EVENT_232 ; 232, (D78D, bit 2) - const EVENT_233 ; 233, (D78D, bit 3) - const EVENT_234 ; 234, (D78D, bit 4) - const EVENT_235 ; 235, (D78D, bit 5) - const EVENT_236 ; 236, (D78D, bit 6) - const EVENT_237 ; 237, (D78D, bit 7) - const EVENT_GOT_HM04 ; 238, (D78E, bit 0) - const EVENT_GAVE_GOLD_TEETH ; 239, (D78E, bit 1) - const EVENT_23A ; 23A, (D78E, bit 2) - const EVENT_23B ; 23B, (D78E, bit 3) - const EVENT_23C ; 23C, (D78E, bit 4) - const EVENT_23D ; 23D, (D78E, bit 5) - const EVENT_23E ; 23E, (D78E, bit 6) - const EVENT_23F ; 23F, (D78E, bit 7) - const EVENT_240 ; 240, (D78F, bit 0) - const EVENT_241 ; 241, (D78F, bit 1) - const EVENT_242 ; 242, (D78F, bit 2) - const EVENT_243 ; 243, (D78F, bit 3) - const EVENT_244 ; 244, (D78F, bit 4) - const EVENT_245 ; 245, (D78F, bit 5) - const EVENT_246 ; 246, (D78F, bit 6) - const EVENT_247 ; 247, (D78F, bit 7) - const EVENT_248 ; 248, (D790, bit 0) - const EVENT_249 ; 249, (D790, bit 1) - const EVENT_24A ; 24A, (D790, bit 2) - const EVENT_24B ; 24B, (D790, bit 3) - const EVENT_24C ; 24C, (D790, bit 4) - const EVENT_24D ; 24D, (D790, bit 5) - const EVENT_SAFARI_GAME_OVER ; 24E, (D790, bit 6) - const EVENT_IN_SAFARI_ZONE ; 24F, (D790, bit 7) - const EVENT_250 ; 250, (D791, bit 0) - const EVENT_251 ; 251, (D791, bit 1) - const EVENT_252 ; 252, (D791, bit 2) - const EVENT_253 ; 253, (D791, bit 3) - const EVENT_254 ; 254, (D791, bit 4) - const EVENT_255 ; 255, (D791, bit 5) - const EVENT_256 ; 256, (D791, bit 6) - const EVENT_257 ; 257, (D791, bit 7) - const EVENT_GOT_TM06 ; 258, (D792, bit 0) - const EVENT_BEAT_KOGA ; 259, (D792, bit 1) - const EVENT_BEAT_FUCHSIA_GYM_TRAINER_0 ; 25A, (D792, bit 2) - const EVENT_BEAT_FUCHSIA_GYM_TRAINER_1 ; 25B, (D792, bit 3) - const EVENT_BEAT_FUCHSIA_GYM_TRAINER_2 ; 25C, (D792, bit 4) - const EVENT_BEAT_FUCHSIA_GYM_TRAINER_3 ; 25D, (D792, bit 5) - const EVENT_BEAT_FUCHSIA_GYM_TRAINER_4 ; 25E, (D792, bit 6) - const EVENT_BEAT_FUCHSIA_GYM_TRAINER_5 ; 25F, (D792, bit 7) - const EVENT_260 ; 260, (D793, bit 0) - const EVENT_261 ; 261, (D793, bit 1) - const EVENT_262 ; 262, (D793, bit 2) - const EVENT_263 ; 263, (D793, bit 3) - const EVENT_264 ; 264, (D793, bit 4) - const EVENT_265 ; 265, (D793, bit 5) - const EVENT_266 ; 266, (D793, bit 6) - const EVENT_267 ; 267, (D793, bit 7) - const EVENT_268 ; 268, (D794, bit 0) - const EVENT_269 ; 269, (D794, bit 1) - const EVENT_26A ; 26A, (D794, bit 2) - const EVENT_26B ; 26B, (D794, bit 3) - const EVENT_26C ; 26C, (D794, bit 4) - const EVENT_26D ; 26D, (D794, bit 5) - const EVENT_26E ; 26E, (D794, bit 6) - const EVENT_26F ; 26F, (D794, bit 7) - const EVENT_270 ; 270, (D795, bit 0) - const EVENT_271 ; 271, (D795, bit 1) - const EVENT_272 ; 272, (D795, bit 2) - const EVENT_273 ; 273, (D795, bit 3) - const EVENT_274 ; 274, (D795, bit 4) - const EVENT_275 ; 275, (D795, bit 5) - const EVENT_276 ; 276, (D795, bit 6) - const EVENT_277 ; 277, (D795, bit 7) - const EVENT_MANSION_SWITCH_ON ; 278, (D796, bit 0) - const EVENT_279 ; 279, (D796, bit 1) - const EVENT_27A ; 27A, (D796, bit 2) - const EVENT_27B ; 27B, (D796, bit 3) - const EVENT_27C ; 27C, (D796, bit 4) - const EVENT_27D ; 27D, (D796, bit 5) - const EVENT_27E ; 27E, (D796, bit 6) - const EVENT_27F ; 27F, (D796, bit 7) - const EVENT_280 ; 280, (D797, bit 0) - const EVENT_281 ; 281, (D797, bit 1) - const EVENT_282 ; 282, (D797, bit 2) - const EVENT_283 ; 283, (D797, bit 3) - const EVENT_284 ; 284, (D797, bit 4) - const EVENT_285 ; 285, (D797, bit 5) - const EVENT_286 ; 286, (D797, bit 6) - const EVENT_287 ; 287, (D797, bit 7) - const EVENT_288 ; 288, (D798, bit 0) - const EVENT_BEAT_MANSION_1_TRAINER_0 ; 289, (D798, bit 1) - const EVENT_28A ; 28A, (D798, bit 2) - const EVENT_28B ; 28B, (D798, bit 3) - const EVENT_28C ; 28C, (D798, bit 4) - const EVENT_28D ; 28D, (D798, bit 5) - const EVENT_28E ; 28E, (D798, bit 6) - const EVENT_28F ; 28F, (D798, bit 7) - const EVENT_290 ; 290, (D799, bit 0) - const EVENT_291 ; 291, (D799, bit 1) - const EVENT_292 ; 292, (D799, bit 2) - const EVENT_293 ; 293, (D799, bit 3) - const EVENT_294 ; 294, (D799, bit 4) - const EVENT_295 ; 295, (D799, bit 5) - const EVENT_296 ; 296, (D799, bit 6) - const EVENT_297 ; 297, (D799, bit 7) - const EVENT_GOT_TM38 ; 298, (D79A, bit 0) - const EVENT_BEAT_BLAINE ; 299, (D79A, bit 1) - const EVENT_BEAT_CINNABAR_GYM_TRAINER_0 ; 29A, (D79A, bit 2) - const EVENT_BEAT_CINNABAR_GYM_TRAINER_1 ; 29B, (D79A, bit 3) - const EVENT_BEAT_CINNABAR_GYM_TRAINER_2 ; 29C, (D79A, bit 4) - const EVENT_BEAT_CINNABAR_GYM_TRAINER_3 ; 29D, (D79A, bit 5) - const EVENT_BEAT_CINNABAR_GYM_TRAINER_4 ; 29E, (D79A, bit 6) - const EVENT_BEAT_CINNABAR_GYM_TRAINER_5 ; 29F, (D79A, bit 7) - const EVENT_BEAT_CINNABAR_GYM_TRAINER_6 ; 2A0, (D79B, bit 0) - const EVENT_2A1 ; 2A1, (D79B, bit 1) - const EVENT_2A2 ; 2A2, (D79B, bit 2) - const EVENT_2A3 ; 2A3, (D79B, bit 3) - const EVENT_2A4 ; 2A4, (D79B, bit 4) - const EVENT_2A5 ; 2A5, (D79B, bit 5) - const EVENT_2A6 ; 2A6, (D79B, bit 6) - const EVENT_2A7 ; 2A7, (D79B, bit 7) - const EVENT_CINNABAR_GYM_GATE0_UNLOCKED ; 2A8, (D79C, bit 0) doesn't exist, but the bit is set - const EVENT_CINNABAR_GYM_GATE1_UNLOCKED ; 2A9, (D79C, bit 1) - const EVENT_CINNABAR_GYM_GATE2_UNLOCKED ; 2AA, (D79C, bit 2) - const EVENT_CINNABAR_GYM_GATE3_UNLOCKED ; 2AB, (D79C, bit 3) - const EVENT_CINNABAR_GYM_GATE4_UNLOCKED ; 2AC, (D79C, bit 4) - const EVENT_CINNABAR_GYM_GATE5_UNLOCKED ; 2AD, (D79C, bit 5) - const EVENT_CINNABAR_GYM_GATE6_UNLOCKED ; 2AE, (D79C, bit 6) - const EVENT_2AF ; 2AF, (D79C, bit 7) - const EVENT_2B0 ; 2B0, (D79D, bit 0) - const EVENT_2B1 ; 2B1, (D79D, bit 1) - const EVENT_2B2 ; 2B2, (D79D, bit 2) - const EVENT_2B3 ; 2B3, (D79D, bit 3) - const EVENT_2B4 ; 2B4, (D79D, bit 4) - const EVENT_2B5 ; 2B5, (D79D, bit 5) - const EVENT_2B6 ; 2B6, (D79D, bit 6) - const EVENT_2B7 ; 2B7, (D79D, bit 7) - const EVENT_2B8 ; 2B8, (D79E, bit 0) - const EVENT_2B9 ; 2B9, (D79E, bit 1) - const EVENT_2BA ; 2BA, (D79E, bit 2) - const EVENT_2BB ; 2BB, (D79E, bit 3) - const EVENT_2BC ; 2BC, (D79E, bit 4) - const EVENT_2BD ; 2BD, (D79E, bit 5) - const EVENT_2BE ; 2BE, (D79E, bit 6) - const EVENT_2BF ; 2BF, (D79E, bit 7) - const EVENT_2C0 ; 2C0, (D79F, bit 0) - const EVENT_2C1 ; 2C1, (D79F, bit 1) - const EVENT_2C2 ; 2C2, (D79F, bit 2) - const EVENT_2C3 ; 2C3, (D79F, bit 3) - const EVENT_2C4 ; 2C4, (D79F, bit 4) - const EVENT_2C5 ; 2C5, (D79F, bit 5) - const EVENT_2C6 ; 2C6, (D79F, bit 6) - const EVENT_2C7 ; 2C7, (D79F, bit 7) - const EVENT_2C8 ; 2C8, (D7A0, bit 0) - const EVENT_2C9 ; 2C9, (D7A0, bit 1) - const EVENT_2CA ; 2CA, (D7A0, bit 2) - const EVENT_2CB ; 2CB, (D7A0, bit 3) - const EVENT_2CC ; 2CC, (D7A0, bit 4) - const EVENT_2CD ; 2CD, (D7A0, bit 5) - const EVENT_2CE ; 2CE, (D7A0, bit 6) - const EVENT_2CF ; 2CF, (D7A0, bit 7) - const EVENT_2D0 ; 2D0, (D7A1, bit 0) - const EVENT_2D1 ; 2D1, (D7A1, bit 1) - const EVENT_2D2 ; 2D2, (D7A1, bit 2) - const EVENT_2D3 ; 2D3, (D7A1, bit 3) - const EVENT_2D4 ; 2D4, (D7A1, bit 4) - const EVENT_2D5 ; 2D5, (D7A1, bit 5) - const EVENT_2D6 ; 2D6, (D7A1, bit 6) - const EVENT_GOT_TM35 ; 2D7, (D7A1, bit 7) - const EVENT_2D8 ; 2D8, (D7A2, bit 0) - const EVENT_2D9 ; 2D9, (D7A2, bit 1) - const EVENT_2DA ; 2DA, (D7A2, bit 2) - const EVENT_2DB ; 2DB, (D7A2, bit 3) - const EVENT_2DC ; 2DC, (D7A2, bit 4) - const EVENT_2DD ; 2DD, (D7A2, bit 5) - const EVENT_2DE ; 2DE, (D7A2, bit 6) - const EVENT_2DF ; 2DF, (D7A2, bit 7) - const EVENT_GAVE_FOSSIL_TO_LAB ; 2E0, (D7A3, bit 0) - const EVENT_LAB_STILL_REVIVING_FOSSIL ; 2E1, (D7A3, bit 1) - const EVENT_LAB_HANDING_OVER_FOSSIL_MON ; 2E2, (D7A3, bit 2) - const EVENT_2E3 ; 2E3, (D7A3, bit 3) - const EVENT_2E4 ; 2E4, (D7A3, bit 4) - const EVENT_2E5 ; 2E5, (D7A3, bit 5) - const EVENT_2E6 ; 2E6, (D7A3, bit 6) - const EVENT_2E7 ; 2E7, (D7A3, bit 7) - const EVENT_2E8 ; 2E8, (D7A4, bit 0) - const EVENT_2E9 ; 2E9, (D7A4, bit 1) - const EVENT_2EA ; 2EA, (D7A4, bit 2) - const EVENT_2EB ; 2EB, (D7A4, bit 3) - const EVENT_2EC ; 2EC, (D7A4, bit 4) - const EVENT_2ED ; 2ED, (D7A4, bit 5) - const EVENT_2EE ; 2EE, (D7A4, bit 6) - const EVENT_2EF ; 2EF, (D7A4, bit 7) - const EVENT_2F0 ; 2F0, (D7A5, bit 0) - const EVENT_2F1 ; 2F1, (D7A5, bit 1) - const EVENT_2F2 ; 2F2, (D7A5, bit 2) - const EVENT_2F3 ; 2F3, (D7A5, bit 3) - const EVENT_2F4 ; 2F4, (D7A5, bit 4) - const EVENT_2F5 ; 2F5, (D7A5, bit 5) - const EVENT_2F6 ; 2F6, (D7A5, bit 6) - const EVENT_2F7 ; 2F7, (D7A5, bit 7) - const EVENT_2F8 ; 2F8, (D7A6, bit 0) - const EVENT_2F9 ; 2F9, (D7A6, bit 1) - const EVENT_2FA ; 2FA, (D7A6, bit 2) - const EVENT_2FB ; 2FB, (D7A6, bit 3) - const EVENT_2FC ; 2FC, (D7A6, bit 4) - const EVENT_2FD ; 2FD, (D7A6, bit 5) - const EVENT_2FE ; 2FE, (D7A6, bit 6) - const EVENT_2FF ; 2FF, (D7A6, bit 7) - const EVENT_300 ; 300, (D7A7, bit 0) - const EVENT_301 ; 301, (D7A7, bit 1) - const EVENT_302 ; 302, (D7A7, bit 2) - const EVENT_303 ; 303, (D7A7, bit 3) - const EVENT_304 ; 304, (D7A7, bit 4) - const EVENT_305 ; 305, (D7A7, bit 5) - const EVENT_306 ; 306, (D7A7, bit 6) - const EVENT_307 ; 307, (D7A7, bit 7) - const EVENT_308 ; 308, (D7A8, bit 0) - const EVENT_309 ; 309, (D7A8, bit 1) - const EVENT_30A ; 30A, (D7A8, bit 2) - const EVENT_30B ; 30B, (D7A8, bit 3) - const EVENT_30C ; 30C, (D7A8, bit 4) - const EVENT_30D ; 30D, (D7A8, bit 5) - const EVENT_30E ; 30E, (D7A8, bit 6) - const EVENT_30F ; 30F, (D7A8, bit 7) - const EVENT_310 ; 310, (D7A9, bit 0) - const EVENT_311 ; 311, (D7A9, bit 1) - const EVENT_312 ; 312, (D7A9, bit 2) - const EVENT_313 ; 313, (D7A9, bit 3) - const EVENT_314 ; 314, (D7A9, bit 4) - const EVENT_315 ; 315, (D7A9, bit 5) - const EVENT_316 ; 316, (D7A9, bit 6) - const EVENT_317 ; 317, (D7A9, bit 7) - const EVENT_318 ; 318, (D7AA, bit 0) - const EVENT_319 ; 319, (D7AA, bit 1) - const EVENT_31A ; 31A, (D7AA, bit 2) - const EVENT_31B ; 31B, (D7AA, bit 3) - const EVENT_31C ; 31C, (D7AA, bit 4) - const EVENT_31D ; 31D, (D7AA, bit 5) - const EVENT_31E ; 31E, (D7AA, bit 6) - const EVENT_31F ; 31F, (D7AA, bit 7) - const EVENT_320 ; 320, (D7AB, bit 0) - const EVENT_321 ; 321, (D7AB, bit 1) - const EVENT_322 ; 322, (D7AB, bit 2) - const EVENT_323 ; 323, (D7AB, bit 3) - const EVENT_324 ; 324, (D7AB, bit 4) - const EVENT_325 ; 325, (D7AB, bit 5) - const EVENT_326 ; 326, (D7AB, bit 6) - const EVENT_327 ; 327, (D7AB, bit 7) - const EVENT_328 ; 328, (D7AC, bit 0) - const EVENT_329 ; 329, (D7AC, bit 1) - const EVENT_32A ; 32A, (D7AC, bit 2) - const EVENT_32B ; 32B, (D7AC, bit 3) - const EVENT_32C ; 32C, (D7AC, bit 4) - const EVENT_32D ; 32D, (D7AC, bit 5) - const EVENT_32E ; 32E, (D7AC, bit 6) - const EVENT_32F ; 32F, (D7AC, bit 7) - const EVENT_330 ; 330, (D7AD, bit 0) - const EVENT_331 ; 331, (D7AD, bit 1) - const EVENT_332 ; 332, (D7AD, bit 2) - const EVENT_333 ; 333, (D7AD, bit 3) - const EVENT_334 ; 334, (D7AD, bit 4) - const EVENT_335 ; 335, (D7AD, bit 5) - const EVENT_336 ; 336, (D7AD, bit 6) - const EVENT_337 ; 337, (D7AD, bit 7) - const EVENT_338 ; 338, (D7AE, bit 0) - const EVENT_339 ; 339, (D7AE, bit 1) - const EVENT_33A ; 33A, (D7AE, bit 2) - const EVENT_33B ; 33B, (D7AE, bit 3) - const EVENT_33C ; 33C, (D7AE, bit 4) - const EVENT_33D ; 33D, (D7AE, bit 5) - const EVENT_33E ; 33E, (D7AE, bit 6) - const EVENT_33F ; 33F, (D7AE, bit 7) - const EVENT_GOT_TM31 ; 340, (D7AF, bit 0) - const EVENT_341 ; 341, (D7AF, bit 1) - const EVENT_342 ; 342, (D7AF, bit 2) - const EVENT_343 ; 343, (D7AF, bit 3) - const EVENT_344 ; 344, (D7AF, bit 4) - const EVENT_345 ; 345, (D7AF, bit 5) - const EVENT_346 ; 346, (D7AF, bit 6) - const EVENT_347 ; 347, (D7AF, bit 7) - const EVENT_348 ; 348, (D7B0, bit 0) - const EVENT_349 ; 349, (D7B0, bit 1) - const EVENT_34A ; 34A, (D7B0, bit 2) - const EVENT_34B ; 34B, (D7B0, bit 3) - const EVENT_34C ; 34C, (D7B0, bit 4) - const EVENT_34D ; 34D, (D7B0, bit 5) - const EVENT_34E ; 34E, (D7B0, bit 6) - const EVENT_34F ; 34F, (D7B0, bit 7) - const EVENT_DEFEATED_FIGHTING_DOJO ; 350, (D7B1, bit 0) - const EVENT_BEAT_KARATE_MASTER ; 351, (D7B1, bit 1) - const EVENT_BEAT_FIGHTING_DOJO_TRAINER_0 ; 352, (D7B1, bit 2) - const EVENT_BEAT_FIGHTING_DOJO_TRAINER_1 ; 353, (D7B1, bit 3) - const EVENT_BEAT_FIGHTING_DOJO_TRAINER_2 ; 354, (D7B1, bit 4) - const EVENT_BEAT_FIGHTING_DOJO_TRAINER_3 ; 355, (D7B1, bit 5) - const EVENT_GOT_HITMONLEE ; 356, (D7B1, bit 6) - const EVENT_GOT_HITMONCHAN ; 357, (D7B1, bit 7) - const EVENT_358 ; 358, (D7B2, bit 0) - const EVENT_359 ; 359, (D7B2, bit 1) - const EVENT_35A ; 35A, (D7B2, bit 2) - const EVENT_35B ; 35B, (D7B2, bit 3) - const EVENT_35C ; 35C, (D7B2, bit 4) - const EVENT_35D ; 35D, (D7B2, bit 5) - const EVENT_35E ; 35E, (D7B2, bit 6) - const EVENT_35F ; 35F, (D7B2, bit 7) - const EVENT_GOT_TM46 ; 360, (D7B3, bit 0) - const EVENT_BEAT_SABRINA ; 361, (D7B3, bit 1) - const EVENT_BEAT_SAFFRON_GYM_TRAINER_0 ; 362, (D7B3, bit 2) - const EVENT_BEAT_SAFFRON_GYM_TRAINER_1 ; 363, (D7B3, bit 3) - const EVENT_BEAT_SAFFRON_GYM_TRAINER_2 ; 364, (D7B3, bit 4) - const EVENT_BEAT_SAFFRON_GYM_TRAINER_3 ; 365, (D7B3, bit 5) - const EVENT_BEAT_SAFFRON_GYM_TRAINER_4 ; 366, (D7B3, bit 6) - const EVENT_BEAT_SAFFRON_GYM_TRAINER_5 ; 367, (D7B3, bit 7) - const EVENT_BEAT_SAFFRON_GYM_TRAINER_6 ; 368, (D7B4, bit 0) - const EVENT_369 ; 369, (D7B4, bit 1) - const EVENT_36A ; 36A, (D7B4, bit 2) - const EVENT_36B ; 36B, (D7B4, bit 3) - const EVENT_36C ; 36C, (D7B4, bit 4) - const EVENT_36D ; 36D, (D7B4, bit 5) - const EVENT_36E ; 36E, (D7B4, bit 6) - const EVENT_36F ; 36F, (D7B4, bit 7) - const EVENT_370 ; 370, (D7B5, bit 0) - const EVENT_371 ; 371, (D7B5, bit 1) - const EVENT_372 ; 372, (D7B5, bit 2) - const EVENT_373 ; 373, (D7B5, bit 3) - const EVENT_374 ; 374, (D7B5, bit 4) - const EVENT_375 ; 375, (D7B5, bit 5) - const EVENT_376 ; 376, (D7B5, bit 6) - const EVENT_377 ; 377, (D7B5, bit 7) - const EVENT_378 ; 378, (D7B6, bit 0) - const EVENT_379 ; 379, (D7B6, bit 1) - const EVENT_37A ; 37A, (D7B6, bit 2) - const EVENT_37B ; 37B, (D7B6, bit 3) - const EVENT_37C ; 37C, (D7B6, bit 4) - const EVENT_37D ; 37D, (D7B6, bit 5) - const EVENT_37E ; 37E, (D7B6, bit 6) - const EVENT_37F ; 37F, (D7B6, bit 7) - const EVENT_380 ; 380, (D7B7, bit 0) - const EVENT_381 ; 381, (D7B7, bit 1) - const EVENT_382 ; 382, (D7B7, bit 2) - const EVENT_383 ; 383, (D7B7, bit 3) - const EVENT_384 ; 384, (D7B7, bit 4) - const EVENT_385 ; 385, (D7B7, bit 5) - const EVENT_386 ; 386, (D7B7, bit 6) - const EVENT_387 ; 387, (D7B7, bit 7) - const EVENT_388 ; 388, (D7B8, bit 0) - const EVENT_389 ; 389, (D7B8, bit 1) - const EVENT_38A ; 38A, (D7B8, bit 2) - const EVENT_38B ; 38B, (D7B8, bit 3) - const EVENT_38C ; 38C, (D7B8, bit 4) - const EVENT_38D ; 38D, (D7B8, bit 5) - const EVENT_38E ; 38E, (D7B8, bit 6) - const EVENT_38F ; 38F, (D7B8, bit 7) - const EVENT_390 ; 390, (D7B9, bit 0) - const EVENT_391 ; 391, (D7B9, bit 1) - const EVENT_392 ; 392, (D7B9, bit 2) - const EVENT_393 ; 393, (D7B9, bit 3) - const EVENT_394 ; 394, (D7B9, bit 4) - const EVENT_395 ; 395, (D7B9, bit 5) - const EVENT_396 ; 396, (D7B9, bit 6) - const EVENT_SILPH_CO_RECEPTIONIST_AT_DESK ; 397, (D7B9, bit 7) - const EVENT_398 ; 398, (D7BA, bit 0) - const EVENT_399 ; 399, (D7BA, bit 1) - const EVENT_39A ; 39A, (D7BA, bit 2) - const EVENT_39B ; 39B, (D7BA, bit 3) - const EVENT_39C ; 39C, (D7BA, bit 4) - const EVENT_39D ; 39D, (D7BA, bit 5) - const EVENT_39E ; 39E, (D7BA, bit 6) - const EVENT_39F ; 39F, (D7BA, bit 7) - const EVENT_3A0 ; 3A0, (D7BB, bit 0) - const EVENT_3A1 ; 3A1, (D7BB, bit 1) - const EVENT_3A2 ; 3A2, (D7BB, bit 2) - const EVENT_3A3 ; 3A3, (D7BB, bit 3) - const EVENT_3A4 ; 3A4, (D7BB, bit 4) - const EVENT_3A5 ; 3A5, (D7BB, bit 5) - const EVENT_3A6 ; 3A6, (D7BB, bit 6) - const EVENT_3A7 ; 3A7, (D7BB, bit 7) - const EVENT_3A8 ; 3A8, (D7BC, bit 0) - const EVENT_3A9 ; 3A9, (D7BC, bit 1) - const EVENT_3AA ; 3AA, (D7BC, bit 2) - const EVENT_3AB ; 3AB, (D7BC, bit 3) - const EVENT_3AC ; 3AC, (D7BC, bit 4) - const EVENT_3AD ; 3AD, (D7BC, bit 5) - const EVENT_3AE ; 3AE, (D7BC, bit 6) - const EVENT_3AF ; 3AF, (D7BC, bit 7) - const EVENT_GOT_TM29 ; 3B0, (D7BD, bit 0) - const EVENT_3B1 ; 3B1, (D7BD, bit 1) - const EVENT_3B2 ; 3B2, (D7BD, bit 2) - const EVENT_3B3 ; 3B3, (D7BD, bit 3) - const EVENT_3B4 ; 3B4, (D7BD, bit 4) - const EVENT_3B5 ; 3B5, (D7BD, bit 5) - const EVENT_3B6 ; 3B6, (D7BD, bit 6) - const EVENT_3B7 ; 3B7, (D7BD, bit 7) - const EVENT_3B8 ; 3B8, (D7BE, bit 0) - const EVENT_3B9 ; 3B9, (D7BE, bit 1) - const EVENT_3BA ; 3BA, (D7BE, bit 2) - const EVENT_3BB ; 3BB, (D7BE, bit 3) - const EVENT_3BC ; 3BC, (D7BE, bit 4) - const EVENT_3BD ; 3BD, (D7BE, bit 5) - const EVENT_3BE ; 3BE, (D7BE, bit 6) - const EVENT_3BF ; 3BF, (D7BE, bit 7) - const EVENT_GOT_POTION_SAMPLE ; 3C0, (D7BF, bit 0) - const EVENT_3C1 ; 3C1, (D7BF, bit 1) - const EVENT_3C2 ; 3C2, (D7BF, bit 2) - const EVENT_3C3 ; 3C3, (D7BF, bit 3) - const EVENT_3C4 ; 3C4, (D7BF, bit 4) - const EVENT_3C5 ; 3C5, (D7BF, bit 5) - const EVENT_3C6 ; 3C6, (D7BF, bit 6) - const EVENT_3C7 ; 3C7, (D7BF, bit 7) - const EVENT_3C8 ; 3C8, (D7C0, bit 0) - const EVENT_3C9 ; 3C9, (D7C0, bit 1) - const EVENT_3CA ; 3CA, (D7C0, bit 2) - const EVENT_3CB ; 3CB, (D7C0, bit 3) - const EVENT_3CC ; 3CC, (D7C0, bit 4) - const EVENT_3CD ; 3CD, (D7C0, bit 5) - const EVENT_3CE ; 3CE, (D7C0, bit 6) - const EVENT_3CF ; 3CF, (D7C0, bit 7) - const EVENT_3D0 ; 3D0, (D7C1, bit 0) - const EVENT_3D1 ; 3D1, (D7C1, bit 1) - const EVENT_3D2 ; 3D2, (D7C1, bit 2) - const EVENT_3D3 ; 3D3, (D7C1, bit 3) - const EVENT_3D4 ; 3D4, (D7C1, bit 4) - const EVENT_3D5 ; 3D5, (D7C1, bit 5) - const EVENT_3D6 ; 3D6, (D7C1, bit 6) - const EVENT_3D7 ; 3D7, (D7C1, bit 7) - const EVENT_GOT_HM05 ; 3D8, (D7C2, bit 0) - const EVENT_3D9 ; 3D9, (D7C2, bit 1) - const EVENT_3DA ; 3DA, (D7C2, bit 2) - const EVENT_3DB ; 3DB, (D7C2, bit 3) - const EVENT_3DC ; 3DC, (D7C2, bit 4) - const EVENT_3DD ; 3DD, (D7C2, bit 5) - const EVENT_3DE ; 3DE, (D7C2, bit 6) - const EVENT_3DF ; 3DF, (D7C2, bit 7) - const EVENT_3E0 ; 3E0, (D7C3, bit 0) - const EVENT_3E1 ; 3E1, (D7C3, bit 1) - const EVENT_BEAT_ROUTE_3_TRAINER_0 ; 3E2, (D7C3, bit 2) - const EVENT_BEAT_ROUTE_3_TRAINER_1 ; 3E3, (D7C3, bit 3) - const EVENT_BEAT_ROUTE_3_TRAINER_2 ; 3E4, (D7C3, bit 4) - const EVENT_BEAT_ROUTE_3_TRAINER_3 ; 3E5, (D7C3, bit 5) - const EVENT_BEAT_ROUTE_3_TRAINER_4 ; 3E6, (D7C3, bit 6) - const EVENT_BEAT_ROUTE_3_TRAINER_5 ; 3E7, (D7C3, bit 7) - const EVENT_BEAT_ROUTE_3_TRAINER_6 ; 3E8, (D7C4, bit 0) - const EVENT_BEAT_ROUTE_3_TRAINER_7 ; 3E9, (D7C4, bit 1) - const EVENT_3EA ; 3EA, (D7C4, bit 2) - const EVENT_3EB ; 3EB, (D7C4, bit 3) - const EVENT_3EC ; 3EC, (D7C4, bit 4) - const EVENT_3ED ; 3ED, (D7C4, bit 5) - const EVENT_3EE ; 3EE, (D7C4, bit 6) - const EVENT_3EF ; 3EF, (D7C4, bit 7) - const EVENT_3F0 ; 3F0, (D7C5, bit 0) - const EVENT_3F1 ; 3F1, (D7C5, bit 1) - const EVENT_BEAT_ROUTE_4_TRAINER_0 ; 3F2, (D7C5, bit 2) - const EVENT_3F3 ; 3F3, (D7C5, bit 3) - const EVENT_3F4 ; 3F4, (D7C5, bit 4) - const EVENT_3F5 ; 3F5, (D7C5, bit 5) - const EVENT_3F6 ; 3F6, (D7C5, bit 6) - const EVENT_3F7 ; 3F7, (D7C5, bit 7) - const EVENT_3F8 ; 3F8, (D7C6, bit 0) - const EVENT_3F9 ; 3F9, (D7C6, bit 1) - const EVENT_3FA ; 3FA, (D7C6, bit 2) - const EVENT_3FB ; 3FB, (D7C6, bit 3) - const EVENT_3FC ; 3FC, (D7C6, bit 4) - const EVENT_3FD ; 3FD, (D7C6, bit 5) - const EVENT_3FE ; 3FE, (D7C6, bit 6) - const EVENT_BOUGHT_MAGIKARP ; 3FF, (D7C6, bit 7) - const EVENT_400 ; 400, (D7C7, bit 0) - const EVENT_401 ; 401, (D7C7, bit 1) - const EVENT_402 ; 402, (D7C7, bit 2) - const EVENT_403 ; 403, (D7C7, bit 3) - const EVENT_404 ; 404, (D7C7, bit 4) - const EVENT_405 ; 405, (D7C7, bit 5) - const EVENT_406 ; 406, (D7C7, bit 6) - const EVENT_407 ; 407, (D7C7, bit 7) - const EVENT_408 ; 408, (D7C8, bit 0) - const EVENT_409 ; 409, (D7C8, bit 1) - const EVENT_40A ; 40A, (D7C8, bit 2) - const EVENT_40B ; 40B, (D7C8, bit 3) - const EVENT_40C ; 40C, (D7C8, bit 4) - const EVENT_40D ; 40D, (D7C8, bit 5) - const EVENT_40E ; 40E, (D7C8, bit 6) - const EVENT_40F ; 40F, (D7C8, bit 7) - const EVENT_410 ; 410, (D7C9, bit 0) - const EVENT_BEAT_ROUTE_6_TRAINER_0 ; 411, (D7C9, bit 1) - const EVENT_BEAT_ROUTE_6_TRAINER_1 ; 412, (D7C9, bit 2) - const EVENT_BEAT_ROUTE_6_TRAINER_2 ; 413, (D7C9, bit 3) - const EVENT_BEAT_ROUTE_6_TRAINER_3 ; 414, (D7C9, bit 4) - const EVENT_BEAT_ROUTE_6_TRAINER_4 ; 415, (D7C9, bit 5) - const EVENT_BEAT_ROUTE_6_TRAINER_5 ; 416, (D7C9, bit 6) - const EVENT_417 ; 417, (D7C9, bit 7) - const EVENT_418 ; 418, (D7CA, bit 0) - const EVENT_419 ; 419, (D7CA, bit 1) - const EVENT_41A ; 41A, (D7CA, bit 2) - const EVENT_41B ; 41B, (D7CA, bit 3) - const EVENT_41C ; 41C, (D7CA, bit 4) - const EVENT_41D ; 41D, (D7CA, bit 5) - const EVENT_41E ; 41E, (D7CA, bit 6) - const EVENT_41F ; 41F, (D7CA, bit 7) - const EVENT_420 ; 420, (D7CB, bit 0) - const EVENT_421 ; 421, (D7CB, bit 1) - const EVENT_422 ; 422, (D7CB, bit 2) - const EVENT_423 ; 423, (D7CB, bit 3) - const EVENT_424 ; 424, (D7CB, bit 4) - const EVENT_425 ; 425, (D7CB, bit 5) - const EVENT_426 ; 426, (D7CB, bit 6) - const EVENT_427 ; 427, (D7CB, bit 7) - const EVENT_428 ; 428, (D7CC, bit 0) - const EVENT_429 ; 429, (D7CC, bit 1) - const EVENT_42A ; 42A, (D7CC, bit 2) - const EVENT_42B ; 42B, (D7CC, bit 3) - const EVENT_42C ; 42C, (D7CC, bit 4) - const EVENT_42D ; 42D, (D7CC, bit 5) - const EVENT_42E ; 42E, (D7CC, bit 6) - const EVENT_42F ; 42F, (D7CC, bit 7) - const EVENT_430 ; 430, (D7CD, bit 0) - const EVENT_BEAT_ROUTE_8_TRAINER_0 ; 431, (D7CD, bit 1) - const EVENT_BEAT_ROUTE_8_TRAINER_1 ; 432, (D7CD, bit 2) - const EVENT_BEAT_ROUTE_8_TRAINER_2 ; 433, (D7CD, bit 3) - const EVENT_BEAT_ROUTE_8_TRAINER_3 ; 434, (D7CD, bit 4) - const EVENT_BEAT_ROUTE_8_TRAINER_4 ; 435, (D7CD, bit 5) - const EVENT_BEAT_ROUTE_8_TRAINER_5 ; 436, (D7CD, bit 6) - const EVENT_BEAT_ROUTE_8_TRAINER_6 ; 437, (D7CD, bit 7) - const EVENT_BEAT_ROUTE_8_TRAINER_7 ; 438, (D7CE, bit 0) - const EVENT_BEAT_ROUTE_8_TRAINER_8 ; 439, (D7CE, bit 1) - const EVENT_43A ; 43A, (D7CE, bit 2) - const EVENT_43B ; 43B, (D7CE, bit 3) - const EVENT_43C ; 43C, (D7CE, bit 4) - const EVENT_43D ; 43D, (D7CE, bit 5) - const EVENT_43E ; 43E, (D7CE, bit 6) - const EVENT_43F ; 43F, (D7CE, bit 7) - const EVENT_440 ; 440, (D7CF, bit 0) - const EVENT_BEAT_ROUTE_9_TRAINER_0 ; 441, (D7CF, bit 1) - const EVENT_BEAT_ROUTE_9_TRAINER_1 ; 442, (D7CF, bit 2) - const EVENT_BEAT_ROUTE_9_TRAINER_2 ; 443, (D7CF, bit 3) - const EVENT_BEAT_ROUTE_9_TRAINER_3 ; 444, (D7CF, bit 4) - const EVENT_BEAT_ROUTE_9_TRAINER_4 ; 445, (D7CF, bit 5) - const EVENT_BEAT_ROUTE_9_TRAINER_5 ; 446, (D7CF, bit 6) - const EVENT_BEAT_ROUTE_9_TRAINER_6 ; 447, (D7CF, bit 7) - const EVENT_BEAT_ROUTE_9_TRAINER_7 ; 448, (D7D0, bit 0) - const EVENT_BEAT_ROUTE_9_TRAINER_8 ; 449, (D7D0, bit 1) - const EVENT_44A ; 44A, (D7D0, bit 2) - const EVENT_44B ; 44B, (D7D0, bit 3) - const EVENT_44C ; 44C, (D7D0, bit 4) - const EVENT_44D ; 44D, (D7D0, bit 5) - const EVENT_44E ; 44E, (D7D0, bit 6) - const EVENT_44F ; 44F, (D7D0, bit 7) - const EVENT_450 ; 450, (D7D1, bit 0) - const EVENT_BEAT_ROUTE_10_TRAINER_0 ; 451, (D7D1, bit 1) - const EVENT_BEAT_ROUTE_10_TRAINER_1 ; 452, (D7D1, bit 2) - const EVENT_BEAT_ROUTE_10_TRAINER_2 ; 453, (D7D1, bit 3) - const EVENT_BEAT_ROUTE_10_TRAINER_3 ; 454, (D7D1, bit 4) - const EVENT_BEAT_ROUTE_10_TRAINER_4 ; 455, (D7D1, bit 5) - const EVENT_BEAT_ROUTE_10_TRAINER_5 ; 456, (D7D1, bit 6) - const EVENT_457 ; 457, (D7D1, bit 7) - const EVENT_458 ; 458, (D7D2, bit 0) - const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_0 ; 459, (D7D2, bit 1) - const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_1 ; 45A, (D7D2, bit 2) - const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_2 ; 45B, (D7D2, bit 3) - const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_3 ; 45C, (D7D2, bit 4) - const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_4 ; 45D, (D7D2, bit 5) - const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_5 ; 45E, (D7D2, bit 6) - const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_6 ; 45F, (D7D2, bit 7) - const EVENT_460 ; 460, (D7D3, bit 0) - const EVENT_BEAT_POWER_PLANT_VOLTORB_0 ; 461, (D7D3, bit 1) - const EVENT_BEAT_POWER_PLANT_VOLTORB_1 ; 462, (D7D3, bit 2) - const EVENT_BEAT_POWER_PLANT_VOLTORB_2 ; 463, (D7D3, bit 3) - const EVENT_BEAT_POWER_PLANT_VOLTORB_3 ; 464, (D7D3, bit 4) - const EVENT_BEAT_POWER_PLANT_VOLTORB_4 ; 465, (D7D3, bit 5) - const EVENT_BEAT_POWER_PLANT_VOLTORB_5 ; 466, (D7D3, bit 6) - const EVENT_BEAT_POWER_PLANT_VOLTORB_6 ; 467, (D7D3, bit 7) - const EVENT_BEAT_POWER_PLANT_VOLTORB_7 ; 468, (D7D4, bit 0) - const EVENT_BEAT_ZAPDOS ; 469, (D7D4, bit 1) - const EVENT_46A ; 46A, (D7D4, bit 2) - const EVENT_46B ; 46B, (D7D4, bit 3) - const EVENT_46C ; 46C, (D7D4, bit 4) - const EVENT_46D ; 46D, (D7D4, bit 5) - const EVENT_46E ; 46E, (D7D4, bit 6) - const EVENT_46F ; 46F, (D7D4, bit 7) - const EVENT_470 ; 470, (D7D5, bit 0) - const EVENT_BEAT_ROUTE_11_TRAINER_0 ; 471, (D7D5, bit 1) - const EVENT_BEAT_ROUTE_11_TRAINER_1 ; 472, (D7D5, bit 2) - const EVENT_BEAT_ROUTE_11_TRAINER_2 ; 473, (D7D5, bit 3) - const EVENT_BEAT_ROUTE_11_TRAINER_3 ; 474, (D7D5, bit 4) - const EVENT_BEAT_ROUTE_11_TRAINER_4 ; 475, (D7D5, bit 5) - const EVENT_BEAT_ROUTE_11_TRAINER_5 ; 476, (D7D5, bit 6) - const EVENT_BEAT_ROUTE_11_TRAINER_6 ; 477, (D7D5, bit 7) - const EVENT_BEAT_ROUTE_11_TRAINER_7 ; 478, (D7D6, bit 0) - const EVENT_BEAT_ROUTE_11_TRAINER_8 ; 479, (D7D6, bit 1) - const EVENT_BEAT_ROUTE_11_TRAINER_9 ; 47A, (D7D6, bit 2) - const EVENT_47B ; 47B, (D7D6, bit 3) - const EVENT_47C ; 47C, (D7D6, bit 4) - const EVENT_47D ; 47D, (D7D6, bit 5) - const EVENT_47E ; 47E, (D7D6, bit 6) - const EVENT_GOT_ITEMFINDER ; 47F, (D7D6, bit 7) - const EVENT_GOT_TM39 ; 480, (D7D7, bit 0) - const EVENT_481 ; 481, (D7D7, bit 1) - const EVENT_BEAT_ROUTE_12_TRAINER_0 ; 482, (D7D7, bit 2) - const EVENT_BEAT_ROUTE_12_TRAINER_1 ; 483, (D7D7, bit 3) - const EVENT_BEAT_ROUTE_12_TRAINER_2 ; 484, (D7D7, bit 4) - const EVENT_BEAT_ROUTE_12_TRAINER_3 ; 485, (D7D7, bit 5) - const EVENT_BEAT_ROUTE_12_TRAINER_4 ; 486, (D7D7, bit 6) - const EVENT_BEAT_ROUTE_12_TRAINER_5 ; 487, (D7D7, bit 7) - const EVENT_BEAT_ROUTE_12_TRAINER_6 ; 488, (D7D8, bit 0) - const EVENT_489 ; 489, (D7D8, bit 1) - const EVENT_48A ; 48A, (D7D8, bit 2) - const EVENT_48B ; 48B, (D7D8, bit 3) - const EVENT_48C ; 48C, (D7D8, bit 4) - const EVENT_48D ; 48D, (D7D8, bit 5) - const EVENT_FIGHT_ROUTE12_SNORLAX ; 48E, (D7D8, bit 6) - const EVENT_BEAT_ROUTE12_SNORLAX ; 48F, (D7D8, bit 7) - const EVENT_490 ; 490, (D7D9, bit 0) - const EVENT_BEAT_ROUTE_13_TRAINER_0 ; 491, (D7D9, bit 1) - const EVENT_BEAT_ROUTE_13_TRAINER_1 ; 492, (D7D9, bit 2) - const EVENT_BEAT_ROUTE_13_TRAINER_2 ; 493, (D7D9, bit 3) - const EVENT_BEAT_ROUTE_13_TRAINER_3 ; 494, (D7D9, bit 4) - const EVENT_BEAT_ROUTE_13_TRAINER_4 ; 495, (D7D9, bit 5) - const EVENT_BEAT_ROUTE_13_TRAINER_5 ; 496, (D7D9, bit 6) - const EVENT_BEAT_ROUTE_13_TRAINER_6 ; 497, (D7D9, bit 7) - const EVENT_BEAT_ROUTE_13_TRAINER_7 ; 498, (D7DA, bit 0) - const EVENT_BEAT_ROUTE_13_TRAINER_8 ; 499, (D7DA, bit 1) - const EVENT_BEAT_ROUTE_13_TRAINER_9 ; 49A, (D7DA, bit 2) - const EVENT_49B ; 49B, (D7DA, bit 3) - const EVENT_49C ; 49C, (D7DA, bit 4) - const EVENT_49D ; 49D, (D7DA, bit 5) - const EVENT_49E ; 49E, (D7DA, bit 6) - const EVENT_49F ; 49F, (D7DA, bit 7) - const EVENT_4A0 ; 4A0, (D7DB, bit 0) - const EVENT_BEAT_ROUTE_14_TRAINER_0 ; 4A1, (D7DB, bit 1) - const EVENT_BEAT_ROUTE_14_TRAINER_1 ; 4A2, (D7DB, bit 2) - const EVENT_BEAT_ROUTE_14_TRAINER_2 ; 4A3, (D7DB, bit 3) - const EVENT_BEAT_ROUTE_14_TRAINER_3 ; 4A4, (D7DB, bit 4) - const EVENT_BEAT_ROUTE_14_TRAINER_4 ; 4A5, (D7DB, bit 5) - const EVENT_BEAT_ROUTE_14_TRAINER_5 ; 4A6, (D7DB, bit 6) - const EVENT_BEAT_ROUTE_14_TRAINER_6 ; 4A7, (D7DB, bit 7) - const EVENT_BEAT_ROUTE_14_TRAINER_7 ; 4A8, (D7DC, bit 0) - const EVENT_BEAT_ROUTE_14_TRAINER_8 ; 4A9, (D7DC, bit 1) - const EVENT_BEAT_ROUTE_14_TRAINER_9 ; 4AA, (D7DC, bit 2) - const EVENT_4AB ; 4AB, (D7DC, bit 3) - const EVENT_4AC ; 4AC, (D7DC, bit 4) - const EVENT_4AD ; 4AD, (D7DC, bit 5) - const EVENT_4AE ; 4AE, (D7DC, bit 6) - const EVENT_4AF ; 4AF, (D7DC, bit 7) - const EVENT_GOT_EXP_ALL ; 4B0, (D7DD, bit 0) - const EVENT_BEAT_ROUTE_15_TRAINER_0 ; 4B1, (D7DD, bit 1) - const EVENT_BEAT_ROUTE_15_TRAINER_1 ; 4B2, (D7DD, bit 2) - const EVENT_BEAT_ROUTE_15_TRAINER_2 ; 4B3, (D7DD, bit 3) - const EVENT_BEAT_ROUTE_15_TRAINER_3 ; 4B4, (D7DD, bit 4) - const EVENT_BEAT_ROUTE_15_TRAINER_4 ; 4B5, (D7DD, bit 5) - const EVENT_BEAT_ROUTE_15_TRAINER_5 ; 4B6, (D7DD, bit 6) - const EVENT_BEAT_ROUTE_15_TRAINER_6 ; 4B7, (D7DD, bit 7) - const EVENT_BEAT_ROUTE_15_TRAINER_7 ; 4B8, (D7DE, bit 0) - const EVENT_BEAT_ROUTE_15_TRAINER_8 ; 4B9, (D7DE, bit 1) - const EVENT_BEAT_ROUTE_15_TRAINER_9 ; 4BA, (D7DE, bit 2) - const EVENT_4BB ; 4BB, (D7DE, bit 3) - const EVENT_4BC ; 4BC, (D7DE, bit 4) - const EVENT_4BD ; 4BD, (D7DE, bit 5) - const EVENT_4BE ; 4BE, (D7DE, bit 6) - const EVENT_4BF ; 4BF, (D7DE, bit 7) - const EVENT_4C0 ; 4C0, (D7DF, bit 0) - const EVENT_BEAT_ROUTE_16_TRAINER_0 ; 4C1, (D7DF, bit 1) - const EVENT_BEAT_ROUTE_16_TRAINER_1 ; 4C2, (D7DF, bit 2) - const EVENT_BEAT_ROUTE_16_TRAINER_2 ; 4C3, (D7DF, bit 3) - const EVENT_BEAT_ROUTE_16_TRAINER_3 ; 4C4, (D7DF, bit 4) - const EVENT_BEAT_ROUTE_16_TRAINER_4 ; 4C5, (D7DF, bit 5) - const EVENT_BEAT_ROUTE_16_TRAINER_5 ; 4C6, (D7DF, bit 6) - const EVENT_4C7 ; 4C7, (D7DF, bit 7) - const EVENT_FIGHT_ROUTE16_SNORLAX ; 4C8, (D7E0, bit 0) - const EVENT_BEAT_ROUTE16_SNORLAX ; 4C9, (D7E0, bit 1) - const EVENT_4CA ; 4CA, (D7E0, bit 2) - const EVENT_4CB ; 4CB, (D7E0, bit 3) - const EVENT_4CC ; 4CC, (D7E0, bit 4) - const EVENT_4CD ; 4CD, (D7E0, bit 5) - const EVENT_GOT_HM02 ; 4CE, (D7E0, bit 6) - const EVENT_RESCUED_MR_FUJI ; 4CF, (D7E0, bit 7) - const EVENT_4D0 ; 4D0, (D7E1, bit 0) - const EVENT_BEAT_ROUTE_17_TRAINER_0 ; 4D1, (D7E1, bit 1) - const EVENT_BEAT_ROUTE_17_TRAINER_1 ; 4D2, (D7E1, bit 2) - const EVENT_BEAT_ROUTE_17_TRAINER_2 ; 4D3, (D7E1, bit 3) - const EVENT_BEAT_ROUTE_17_TRAINER_3 ; 4D4, (D7E1, bit 4) - const EVENT_BEAT_ROUTE_17_TRAINER_4 ; 4D5, (D7E1, bit 5) - const EVENT_BEAT_ROUTE_17_TRAINER_5 ; 4D6, (D7E1, bit 6) - const EVENT_BEAT_ROUTE_17_TRAINER_6 ; 4D7, (D7E1, bit 7) - const EVENT_BEAT_ROUTE_17_TRAINER_7 ; 4D8, (D7E2, bit 0) - const EVENT_BEAT_ROUTE_17_TRAINER_8 ; 4D9, (D7E2, bit 1) - const EVENT_BEAT_ROUTE_17_TRAINER_9 ; 4DA, (D7E2, bit 2) - const EVENT_4DB ; 4DB, (D7E2, bit 3) - const EVENT_4DC ; 4DC, (D7E2, bit 4) - const EVENT_4DD ; 4DD, (D7E2, bit 5) - const EVENT_4DE ; 4DE, (D7E2, bit 6) - const EVENT_4DF ; 4DF, (D7E2, bit 7) - const EVENT_4E0 ; 4E0, (D7E3, bit 0) - const EVENT_BEAT_ROUTE_18_TRAINER_0 ; 4E1, (D7E3, bit 1) - const EVENT_BEAT_ROUTE_18_TRAINER_1 ; 4E2, (D7E3, bit 2) - const EVENT_BEAT_ROUTE_18_TRAINER_2 ; 4E3, (D7E3, bit 3) - const EVENT_4E4 ; 4E4, (D7E3, bit 4) - const EVENT_4E5 ; 4E5, (D7E3, bit 5) - const EVENT_4E6 ; 4E6, (D7E3, bit 6) - const EVENT_4E7 ; 4E7, (D7E3, bit 7) - const EVENT_4E8 ; 4E8, (D7E4, bit 0) - const EVENT_4E9 ; 4E9, (D7E4, bit 1) - const EVENT_4EA ; 4EA, (D7E4, bit 2) - const EVENT_4EB ; 4EB, (D7E4, bit 3) - const EVENT_4EC ; 4EC, (D7E4, bit 4) - const EVENT_4ED ; 4ED, (D7E4, bit 5) - const EVENT_4EE ; 4EE, (D7E4, bit 6) - const EVENT_4EF ; 4EF, (D7E4, bit 7) - const EVENT_4F0 ; 4F0, (D7E5, bit 0) - const EVENT_BEAT_ROUTE_19_TRAINER_0 ; 4F1, (D7E5, bit 1) - const EVENT_BEAT_ROUTE_19_TRAINER_1 ; 4F2, (D7E5, bit 2) - const EVENT_BEAT_ROUTE_19_TRAINER_2 ; 4F3, (D7E5, bit 3) - const EVENT_BEAT_ROUTE_19_TRAINER_3 ; 4F4, (D7E5, bit 4) - const EVENT_BEAT_ROUTE_19_TRAINER_4 ; 4F5, (D7E5, bit 5) - const EVENT_BEAT_ROUTE_19_TRAINER_5 ; 4F6, (D7E5, bit 6) - const EVENT_BEAT_ROUTE_19_TRAINER_6 ; 4F7, (D7E5, bit 7) - const EVENT_BEAT_ROUTE_19_TRAINER_7 ; 4F8, (D7E6, bit 0) - const EVENT_BEAT_ROUTE_19_TRAINER_8 ; 4F9, (D7E6, bit 1) - const EVENT_BEAT_ROUTE_19_TRAINER_9 ; 4FA, (D7E6, bit 2) - const EVENT_4FB ; 4FB, (D7E6, bit 3) - const EVENT_4FC ; 4FC, (D7E6, bit 4) - const EVENT_4FD ; 4FD, (D7E6, bit 5) - const EVENT_4FE ; 4FE, (D7E6, bit 6) - const EVENT_4FF ; 4FF, (D7E6, bit 7) - const EVENT_IN_SEAFOAM_ISLANDS ; 500, (D7E7, bit 0) - const EVENT_BEAT_ROUTE_20_TRAINER_0 ; 501, (D7E7, bit 1) - const EVENT_BEAT_ROUTE_20_TRAINER_1 ; 502, (D7E7, bit 2) - const EVENT_BEAT_ROUTE_20_TRAINER_2 ; 503, (D7E7, bit 3) - const EVENT_BEAT_ROUTE_20_TRAINER_3 ; 504, (D7E7, bit 4) - const EVENT_BEAT_ROUTE_20_TRAINER_4 ; 505, (D7E7, bit 5) - const EVENT_BEAT_ROUTE_20_TRAINER_5 ; 506, (D7E7, bit 6) - const EVENT_BEAT_ROUTE_20_TRAINER_6 ; 507, (D7E7, bit 7) - const EVENT_BEAT_ROUTE_20_TRAINER_7 ; 508, (D7E8, bit 0) - const EVENT_BEAT_ROUTE_20_TRAINER_8 ; 509, (D7E8, bit 1) - const EVENT_BEAT_ROUTE_20_TRAINER_9 ; 50A, (D7E8, bit 2) - const EVENT_50B ; 50B, (D7E8, bit 3) - const EVENT_50C ; 50C, (D7E8, bit 4) - const EVENT_50D ; 50D, (D7E8, bit 5) - const EVENT_SEAFOAM1_BOULDER1_DOWN_HOLE ; 50E, (D7E8, bit 6) - const EVENT_SEAFOAM1_BOULDER2_DOWN_HOLE ; 50F, (D7E8, bit 7) - const EVENT_510 ; 510, (D7E9, bit 0) - const EVENT_BEAT_ROUTE_21_TRAINER_0 ; 511, (D7E9, bit 1) - const EVENT_BEAT_ROUTE_21_TRAINER_1 ; 512, (D7E9, bit 2) - const EVENT_BEAT_ROUTE_21_TRAINER_2 ; 513, (D7E9, bit 3) - const EVENT_BEAT_ROUTE_21_TRAINER_3 ; 514, (D7E9, bit 4) - const EVENT_BEAT_ROUTE_21_TRAINER_4 ; 515, (D7E9, bit 5) - const EVENT_BEAT_ROUTE_21_TRAINER_5 ; 516, (D7E9, bit 6) - const EVENT_BEAT_ROUTE_21_TRAINER_6 ; 517, (D7E9, bit 7) - const EVENT_BEAT_ROUTE_21_TRAINER_7 ; 518, (D7EA, bit 0) - const EVENT_BEAT_ROUTE_21_TRAINER_8 ; 519, (D7EA, bit 1) - const EVENT_51A ; 51A, (D7EA, bit 2) - const EVENT_51B ; 51B, (D7EA, bit 3) - const EVENT_51C ; 51C, (D7EA, bit 4) - const EVENT_51D ; 51D, (D7EA, bit 5) - const EVENT_51E ; 51E, (D7EA, bit 6) - const EVENT_51F ; 51F, (D7EA, bit 7) - const EVENT_1ST_ROUTE22_RIVAL_BATTLE ; 520, (D7EB, bit 0) - const EVENT_2ND_ROUTE22_RIVAL_BATTLE ; 521, (D7EB, bit 1) - const EVENT_522 ; 522, (D7EB, bit 2) - const EVENT_523 ; 523, (D7EB, bit 3) - const EVENT_524 ; 524, (D7EB, bit 4) - const EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE ; 525, (D7EB, bit 5) - const EVENT_BEAT_ROUTE22_RIVAL_2ND_BATTLE ; 526, (D7EB, bit 6) - const EVENT_ROUTE22_RIVAL_WANTS_BATTLE ; 527, (D7EB, bit 7) - const EVENT_528 ; 528, (D7EC, bit 0) - const EVENT_529 ; 529, (D7EC, bit 1) - const EVENT_52A ; 52A, (D7EC, bit 2) - const EVENT_52B ; 52B, (D7EC, bit 3) - const EVENT_52C ; 52C, (D7EC, bit 4) - const EVENT_52D ; 52D, (D7EC, bit 5) - const EVENT_52E ; 52E, (D7EC, bit 6) - const EVENT_52F ; 52F, (D7EC, bit 7) - const EVENT_PASSED_CASCADEBADGE_CHECK ; 530, (D7ED, bit 0) - const EVENT_PASSED_THUNDERBADGE_CHECK ; 531, (D7ED, bit 1) - const EVENT_PASSED_RAINBOWBADGE_CHECK ; 532, (D7ED, bit 2) - const EVENT_PASSED_SOULBADGE_CHECK ; 533, (D7ED, bit 3) - const EVENT_PASSED_MARSHBADGE_CHECK ; 534, (D7ED, bit 4) - const EVENT_PASSED_VOLCANOBADGE_CHECK ; 535, (D7ED, bit 5) - const EVENT_PASSED_EARTHBADGE_CHECK ; 536, (D7ED, bit 6) - const EVENT_537 ; 537, (D7ED, bit 7) - const EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1 ; 538, (D7EE, bit 0) - const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_0 ; 539, (D7EE, bit 1) - const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_1 ; 53A, (D7EE, bit 2) - const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_2 ; 53B, (D7EE, bit 3) - const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_3 ; 53C, (D7EE, bit 4) - const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_4 ; 53D, (D7EE, bit 5) - const EVENT_BEAT_MOLTRES ; 53E, (D7EE, bit 6) - const EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH2 ; 53F, (D7EE, bit 7) - const EVENT_GOT_NUGGET ; 540, (D7EF, bit 0) - const EVENT_BEAT_ROUTE24_ROCKET ; 541, (D7EF, bit 1) - const EVENT_BEAT_ROUTE_24_TRAINER_0 ; 542, (D7EF, bit 2) - const EVENT_BEAT_ROUTE_24_TRAINER_1 ; 543, (D7EF, bit 3) - const EVENT_BEAT_ROUTE_24_TRAINER_2 ; 544, (D7EF, bit 4) - const EVENT_BEAT_ROUTE_24_TRAINER_3 ; 545, (D7EF, bit 5) - const EVENT_BEAT_ROUTE_24_TRAINER_4 ; 546, (D7EF, bit 6) - const EVENT_BEAT_ROUTE_24_TRAINER_5 ; 547, (D7EF, bit 7) - const EVENT_548 ; 548, (D7F0, bit 0) - const EVENT_NUGGET_REWARD_AVAILABLE ; 549, (D7F0, bit 1) - const EVENT_54A ; 54A, (D7F0, bit 2) - const EVENT_54B ; 54B, (D7F0, bit 3) - const EVENT_54C ; 54C, (D7F0, bit 4) - const EVENT_54D ; 54D, (D7F0, bit 5) - const EVENT_54E ; 54E, (D7F0, bit 6) - const EVENT_54F ; 54F, (D7F0, bit 7) - const EVENT_MET_BILL ; 550, (D7F1, bit 0) - const EVENT_BEAT_ROUTE_25_TRAINER_0 ; 551, (D7F1, bit 1) - const EVENT_BEAT_ROUTE_25_TRAINER_1 ; 552, (D7F1, bit 2) - const EVENT_BEAT_ROUTE_25_TRAINER_2 ; 553, (D7F1, bit 3) - const EVENT_BEAT_ROUTE_25_TRAINER_3 ; 554, (D7F1, bit 4) - const EVENT_BEAT_ROUTE_25_TRAINER_4 ; 555, (D7F1, bit 5) - const EVENT_BEAT_ROUTE_25_TRAINER_5 ; 556, (D7F1, bit 6) - const EVENT_BEAT_ROUTE_25_TRAINER_6 ; 557, (D7F1, bit 7) - const EVENT_BEAT_ROUTE_25_TRAINER_7 ; 558, (D7F2, bit 0) - const EVENT_BEAT_ROUTE_25_TRAINER_8 ; 559, (D7F2, bit 1) - const EVENT_55A ; 55A, (D7F2, bit 2) - const EVENT_USED_CELL_SEPARATOR_ON_BILL ; 55B, (D7F2, bit 3) - const EVENT_GOT_SS_TICKET ; 55C, (D7F2, bit 4) - const EVENT_MET_BILL_2 ; 55D, (D7F2, bit 5) - const EVENT_BILL_SAID_USE_CELL_SEPARATOR ; 55E, (D7F2, bit 6) - const EVENT_LEFT_BILLS_HOUSE_AFTER_HELPING ; 55F, (D7F2, bit 7) - const EVENT_560 ; 560, (D7F3, bit 0) - const EVENT_561 ; 561, (D7F3, bit 1) - const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_0 ; 562, (D7F3, bit 2) - const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_1 ; 563, (D7F3, bit 3) - const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_2 ; 564, (D7F3, bit 4) - const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_3 ; 565, (D7F3, bit 5) - const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_4 ; 566, (D7F3, bit 6) - const EVENT_567 ; 567, (D7F3, bit 7) - const EVENT_568 ; 568, (D7F4, bit 0) - const EVENT_569 ; 569, (D7F4, bit 1) - const EVENT_56A ; 56A, (D7F4, bit 2) - const EVENT_56B ; 56B, (D7F4, bit 3) - const EVENT_56C ; 56C, (D7F4, bit 4) - const EVENT_56D ; 56D, (D7F4, bit 5) - const EVENT_56E ; 56E, (D7F4, bit 6) - const EVENT_56F ; 56F, (D7F4, bit 7) - const EVENT_570 ; 570, (D7F5, bit 0) - const EVENT_BEAT_MT_MOON_1_TRAINER_0 ; 571, (D7F5, bit 1) - const EVENT_BEAT_MT_MOON_1_TRAINER_1 ; 572, (D7F5, bit 2) - const EVENT_BEAT_MT_MOON_1_TRAINER_2 ; 573, (D7F5, bit 3) - const EVENT_BEAT_MT_MOON_1_TRAINER_3 ; 574, (D7F5, bit 4) - const EVENT_BEAT_MT_MOON_1_TRAINER_4 ; 575, (D7F5, bit 5) - const EVENT_BEAT_MT_MOON_1_TRAINER_5 ; 576, (D7F5, bit 6) - const EVENT_BEAT_MT_MOON_1_TRAINER_6 ; 577, (D7F5, bit 7) - const EVENT_GOT_DOME_FOSSIL ; 578, (D7F6, bit 0) - const EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD ; 579, (D7F6, bit 1) - const EVENT_BEAT_MT_MOON_3_TRAINER_0 ; 57A, (D7F6, bit 2) - const EVENT_BEAT_MT_MOON_3_TRAINER_1 ; 57B, (D7F6, bit 3) - const EVENT_BEAT_MT_MOON_3_TRAINER_2 ; 57C, (D7F6, bit 4) - const EVENT_BEAT_MT_MOON_3_TRAINER_3 ; 57D, (D7F6, bit 5) - const EVENT_57E ; 57E, (D7F6, bit 6) - const EVENT_GOT_HELIX_FOSSIL ; 57F, (D7F6, bit 7) - const EVENT_580 ; 580, (D7F7, bit 0) - const EVENT_581 ; 581, (D7F7, bit 1) - const EVENT_582 ; 582, (D7F7, bit 2) - const EVENT_583 ; 583, (D7F7, bit 3) - const EVENT_584 ; 584, (D7F7, bit 4) - const EVENT_585 ; 585, (D7F7, bit 5) - const EVENT_586 ; 586, (D7F7, bit 6) - const EVENT_587 ; 587, (D7F7, bit 7) - const EVENT_588 ; 588, (D7F8, bit 0) - const EVENT_589 ; 589, (D7F8, bit 1) - const EVENT_58A ; 58A, (D7F8, bit 2) - const EVENT_58B ; 58B, (D7F8, bit 3) - const EVENT_58C ; 58C, (D7F8, bit 4) - const EVENT_58D ; 58D, (D7F8, bit 5) - const EVENT_58E ; 58E, (D7F8, bit 6) - const EVENT_58F ; 58F, (D7F8, bit 7) - const EVENT_590 ; 590, (D7F9, bit 0) - const EVENT_591 ; 591, (D7F9, bit 1) - const EVENT_592 ; 592, (D7F9, bit 2) - const EVENT_593 ; 593, (D7F9, bit 3) - const EVENT_594 ; 594, (D7F9, bit 4) - const EVENT_595 ; 595, (D7F9, bit 5) - const EVENT_596 ; 596, (D7F9, bit 6) - const EVENT_597 ; 597, (D7F9, bit 7) - const EVENT_598 ; 598, (D7FA, bit 0) - const EVENT_599 ; 599, (D7FA, bit 1) - const EVENT_59A ; 59A, (D7FA, bit 2) - const EVENT_59B ; 59B, (D7FA, bit 3) - const EVENT_59C ; 59C, (D7FA, bit 4) - const EVENT_59D ; 59D, (D7FA, bit 5) - const EVENT_59E ; 59E, (D7FA, bit 6) - const EVENT_59F ; 59F, (D7FA, bit 7) - const EVENT_5A0 ; 5A0, (D7FB, bit 0) - const EVENT_5A1 ; 5A1, (D7FB, bit 1) - const EVENT_5A2 ; 5A2, (D7FB, bit 2) - const EVENT_5A3 ; 5A3, (D7FB, bit 3) - const EVENT_5A4 ; 5A4, (D7FB, bit 4) - const EVENT_5A5 ; 5A5, (D7FB, bit 5) - const EVENT_5A6 ; 5A6, (D7FB, bit 6) - const EVENT_5A7 ; 5A7, (D7FB, bit 7) - const EVENT_5A8 ; 5A8, (D7FC, bit 0) - const EVENT_5A9 ; 5A9, (D7FC, bit 1) - const EVENT_5AA ; 5AA, (D7FC, bit 2) - const EVENT_5AB ; 5AB, (D7FC, bit 3) - const EVENT_5AC ; 5AC, (D7FC, bit 4) - const EVENT_5AD ; 5AD, (D7FC, bit 5) - const EVENT_5AE ; 5AE, (D7FC, bit 6) - const EVENT_5AF ; 5AF, (D7FC, bit 7) - const EVENT_5B0 ; 5B0, (D7FD, bit 0) - const EVENT_5B1 ; 5B1, (D7FD, bit 1) - const EVENT_5B2 ; 5B2, (D7FD, bit 2) - const EVENT_5B3 ; 5B3, (D7FD, bit 3) - const EVENT_5B4 ; 5B4, (D7FD, bit 4) - const EVENT_5B5 ; 5B5, (D7FD, bit 5) - const EVENT_5B6 ; 5B6, (D7FD, bit 6) - const EVENT_5B7 ; 5B7, (D7FD, bit 7) - const EVENT_5B8 ; 5B8, (D7FE, bit 0) - const EVENT_5B9 ; 5B9, (D7FE, bit 1) - const EVENT_5BA ; 5BA, (D7FE, bit 2) - const EVENT_5BB ; 5BB, (D7FE, bit 3) - const EVENT_5BC ; 5BC, (D7FE, bit 4) - const EVENT_5BD ; 5BD, (D7FE, bit 5) - const EVENT_5BE ; 5BE, (D7FE, bit 6) - const EVENT_5BF ; 5BF, (D7FE, bit 7) - const EVENT_5C0 ; 5C0, (D7FF, bit 0) - const EVENT_5C1 ; 5C1, (D7FF, bit 1) - const EVENT_5C2 ; 5C2, (D7FF, bit 2) - const EVENT_5C3 ; 5C3, (D7FF, bit 3) - const EVENT_BEAT_SS_ANNE_5_TRAINER_0 ; 5C4, (D7FF, bit 4) - const EVENT_BEAT_SS_ANNE_5_TRAINER_1 ; 5C5, (D7FF, bit 5) - const EVENT_5C6 ; 5C6, (D7FF, bit 6) - const EVENT_5C7 ; 5C7, (D7FF, bit 7) - const EVENT_5C8 ; 5C8, (D800, bit 0) - const EVENT_5C9 ; 5C9, (D800, bit 1) - const EVENT_5CA ; 5CA, (D800, bit 2) - const EVENT_5CB ; 5CB, (D800, bit 3) - const EVENT_5CC ; 5CC, (D800, bit 4) - const EVENT_5CD ; 5CD, (D800, bit 5) - const EVENT_5CE ; 5CE, (D800, bit 6) - const EVENT_5CF ; 5CF, (D800, bit 7) - const EVENT_5D0 ; 5D0, (D801, bit 0) - const EVENT_5D1 ; 5D1, (D801, bit 1) - const EVENT_5D2 ; 5D2, (D801, bit 2) - const EVENT_5D3 ; 5D3, (D801, bit 3) - const EVENT_5D4 ; 5D4, (D801, bit 4) - const EVENT_5D5 ; 5D5, (D801, bit 5) - const EVENT_5D6 ; 5D6, (D801, bit 6) - const EVENT_5D7 ; 5D7, (D801, bit 7) - const EVENT_5D8 ; 5D8, (D802, bit 0) - const EVENT_5D9 ; 5D9, (D802, bit 1) - const EVENT_5DA ; 5DA, (D802, bit 2) - const EVENT_5DB ; 5DB, (D802, bit 3) - const EVENT_5DC ; 5DC, (D802, bit 4) - const EVENT_5DD ; 5DD, (D802, bit 5) - const EVENT_5DE ; 5DE, (D802, bit 6) - const EVENT_5DF ; 5DF, (D802, bit 7) - const EVENT_GOT_HM01 ; 5E0, (D803, bit 0) - const EVENT_RUBBED_CAPTAINS_BACK ; 5E1, (D803, bit 1) - const EVENT_SS_ANNE_LEFT ; 5E2, (D803, bit 2) - const EVENT_WALKED_PAST_GUARD_AFTER_SS_ANNE_LEFT ; 5E3, (D803, bit 3) - const EVENT_STARTED_WALKING_OUT_OF_DOCK ; 5E4, (D803, bit 4) - const EVENT_WALKED_OUT_OF_DOCK ; 5E5, (D803, bit 5) - const EVENT_5E6 ; 5E6, (D803, bit 6) - const EVENT_5E7 ; 5E7, (D803, bit 7) - const EVENT_5E8 ; 5E8, (D804, bit 0) - const EVENT_5E9 ; 5E9, (D804, bit 1) - const EVENT_5EA ; 5EA, (D804, bit 2) - const EVENT_5EB ; 5EB, (D804, bit 3) - const EVENT_5EC ; 5EC, (D804, bit 4) - const EVENT_5ED ; 5ED, (D804, bit 5) - const EVENT_5EE ; 5EE, (D804, bit 6) - const EVENT_5EF ; 5EF, (D804, bit 7) - const EVENT_5F0 ; 5F0, (D805, bit 0) - const EVENT_BEAT_SS_ANNE_8_TRAINER_0 ; 5F1, (D805, bit 1) - const EVENT_BEAT_SS_ANNE_8_TRAINER_1 ; 5F2, (D805, bit 2) - const EVENT_BEAT_SS_ANNE_8_TRAINER_2 ; 5F3, (D805, bit 3) - const EVENT_BEAT_SS_ANNE_8_TRAINER_3 ; 5F4, (D805, bit 4) - const EVENT_5F5 ; 5F5, (D805, bit 5) - const EVENT_5F6 ; 5F6, (D805, bit 6) - const EVENT_5F7 ; 5F7, (D805, bit 7) - const EVENT_5F8 ; 5F8, (D806, bit 0) - const EVENT_5F9 ; 5F9, (D806, bit 1) - const EVENT_5FA ; 5FA, (D806, bit 2) - const EVENT_5FB ; 5FB, (D806, bit 3) - const EVENT_5FC ; 5FC, (D806, bit 4) - const EVENT_5FD ; 5FD, (D806, bit 5) - const EVENT_5FE ; 5FE, (D806, bit 6) - const EVENT_5FF ; 5FF, (D806, bit 7) - const EVENT_600 ; 600, (D807, bit 0) - const EVENT_BEAT_SS_ANNE_9_TRAINER_0 ; 601, (D807, bit 1) - const EVENT_BEAT_SS_ANNE_9_TRAINER_1 ; 602, (D807, bit 2) - const EVENT_BEAT_SS_ANNE_9_TRAINER_2 ; 603, (D807, bit 3) - const EVENT_BEAT_SS_ANNE_9_TRAINER_3 ; 604, (D807, bit 4) - const EVENT_605 ; 605, (D807, bit 5) - const EVENT_606 ; 606, (D807, bit 6) - const EVENT_607 ; 607, (D807, bit 7) - const EVENT_608 ; 608, (D808, bit 0) - const EVENT_609 ; 609, (D808, bit 1) - const EVENT_60A ; 60A, (D808, bit 2) - const EVENT_60B ; 60B, (D808, bit 3) - const EVENT_60C ; 60C, (D808, bit 4) - const EVENT_60D ; 60D, (D808, bit 5) - const EVENT_60E ; 60E, (D808, bit 6) - const EVENT_60F ; 60F, (D808, bit 7) - const EVENT_610 ; 610, (D809, bit 0) - const EVENT_BEAT_SS_ANNE_10_TRAINER_0 ; 611, (D809, bit 1) - const EVENT_BEAT_SS_ANNE_10_TRAINER_1 ; 612, (D809, bit 2) - const EVENT_BEAT_SS_ANNE_10_TRAINER_2 ; 613, (D809, bit 3) - const EVENT_BEAT_SS_ANNE_10_TRAINER_3 ; 614, (D809, bit 4) - const EVENT_BEAT_SS_ANNE_10_TRAINER_4 ; 615, (D809, bit 5) - const EVENT_BEAT_SS_ANNE_10_TRAINER_5 ; 616, (D809, bit 6) - const EVENT_617 ; 617, (D809, bit 7) - const EVENT_618 ; 618, (D80A, bit 0) - const EVENT_619 ; 619, (D80A, bit 1) - const EVENT_61A ; 61A, (D80A, bit 2) - const EVENT_61B ; 61B, (D80A, bit 3) - const EVENT_61C ; 61C, (D80A, bit 4) - const EVENT_61D ; 61D, (D80A, bit 5) - const EVENT_61E ; 61E, (D80A, bit 6) - const EVENT_61F ; 61F, (D80A, bit 7) - const EVENT_620 ; 620, (D80B, bit 0) - const EVENT_621 ; 621, (D80B, bit 1) - const EVENT_622 ; 622, (D80B, bit 2) - const EVENT_623 ; 623, (D80B, bit 3) - const EVENT_624 ; 624, (D80B, bit 4) - const EVENT_625 ; 625, (D80B, bit 5) - const EVENT_626 ; 626, (D80B, bit 6) - const EVENT_627 ; 627, (D80B, bit 7) - const EVENT_628 ; 628, (D80C, bit 0) - const EVENT_629 ; 629, (D80C, bit 1) - const EVENT_62A ; 62A, (D80C, bit 2) - const EVENT_62B ; 62B, (D80C, bit 3) - const EVENT_62C ; 62C, (D80C, bit 4) - const EVENT_62D ; 62D, (D80C, bit 5) - const EVENT_62E ; 62E, (D80C, bit 6) - const EVENT_62F ; 62F, (D80C, bit 7) - const EVENT_630 ; 630, (D80D, bit 0) - const EVENT_631 ; 631, (D80D, bit 1) - const EVENT_632 ; 632, (D80D, bit 2) - const EVENT_633 ; 633, (D80D, bit 3) - const EVENT_634 ; 634, (D80D, bit 4) - const EVENT_635 ; 635, (D80D, bit 5) - const EVENT_636 ; 636, (D80D, bit 6) - const EVENT_637 ; 637, (D80D, bit 7) - const EVENT_638 ; 638, (D80E, bit 0) - const EVENT_639 ; 639, (D80E, bit 1) - const EVENT_63A ; 63A, (D80E, bit 2) - const EVENT_63B ; 63B, (D80E, bit 3) - const EVENT_63C ; 63C, (D80E, bit 4) - const EVENT_63D ; 63D, (D80E, bit 5) - const EVENT_63E ; 63E, (D80E, bit 6) - const EVENT_63F ; 63F, (D80E, bit 7) - const EVENT_640 ; 640, (D80F, bit 0) - const EVENT_641 ; 641, (D80F, bit 1) - const EVENT_642 ; 642, (D80F, bit 2) - const EVENT_643 ; 643, (D80F, bit 3) - const EVENT_644 ; 644, (D80F, bit 4) - const EVENT_645 ; 645, (D80F, bit 5) - const EVENT_646 ; 646, (D80F, bit 6) - const EVENT_647 ; 647, (D80F, bit 7) - const EVENT_648 ; 648, (D810, bit 0) - const EVENT_649 ; 649, (D810, bit 1) - const EVENT_64A ; 64A, (D810, bit 2) - const EVENT_64B ; 64B, (D810, bit 3) - const EVENT_64C ; 64C, (D810, bit 4) - const EVENT_64D ; 64D, (D810, bit 5) - const EVENT_64E ; 64E, (D810, bit 6) - const EVENT_64F ; 64F, (D810, bit 7) - const EVENT_650 ; 650, (D811, bit 0) - const EVENT_651 ; 651, (D811, bit 1) - const EVENT_652 ; 652, (D811, bit 2) - const EVENT_653 ; 653, (D811, bit 3) - const EVENT_654 ; 654, (D811, bit 4) - const EVENT_655 ; 655, (D811, bit 5) - const EVENT_656 ; 656, (D811, bit 6) - const EVENT_657 ; 657, (D811, bit 7) - const EVENT_658 ; 658, (D812, bit 0) - const EVENT_659 ; 659, (D812, bit 1) - const EVENT_65A ; 65A, (D812, bit 2) - const EVENT_65B ; 65B, (D812, bit 3) - const EVENT_65C ; 65C, (D812, bit 4) - const EVENT_65D ; 65D, (D812, bit 5) - const EVENT_65E ; 65E, (D812, bit 6) - const EVENT_65F ; 65F, (D812, bit 7) - const EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1 ; 660, (D813, bit 0) - const EVENT_BEAT_VICTORY_ROAD_3_TRAINER_0 ; 661, (D813, bit 1) - const EVENT_BEAT_VICTORY_ROAD_3_TRAINER_1 ; 662, (D813, bit 2) - const EVENT_BEAT_VICTORY_ROAD_3_TRAINER_2 ; 663, (D813, bit 3) - const EVENT_BEAT_VICTORY_ROAD_3_TRAINER_3 ; 664, (D813, bit 4) - const EVENT_665 ; 665, (D813, bit 5) - const EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH2 ; 666, (D813, bit 6) - const EVENT_667 ; 667, (D813, bit 7) - const EVENT_668 ; 668, (D814, bit 0) - const EVENT_669 ; 669, (D814, bit 1) - const EVENT_66A ; 66A, (D814, bit 2) - const EVENT_66B ; 66B, (D814, bit 3) - const EVENT_66C ; 66C, (D814, bit 4) - const EVENT_66D ; 66D, (D814, bit 5) - const EVENT_66E ; 66E, (D814, bit 6) - const EVENT_66F ; 66F, (D814, bit 7) - const EVENT_670 ; 670, (D815, bit 0) - const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_0 ; 671, (D815, bit 1) - const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_1 ; 672, (D815, bit 2) - const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_2 ; 673, (D815, bit 3) - const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_3 ; 674, (D815, bit 4) - const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_4 ; 675, (D815, bit 5) - const EVENT_676 ; 676, (D815, bit 6) - const EVENT_677 ; 677, (D815, bit 7) - const EVENT_678 ; 678, (D816, bit 0) - const EVENT_679 ; 679, (D816, bit 1) - const EVENT_67A ; 67A, (D816, bit 2) - const EVENT_67B ; 67B, (D816, bit 3) - const EVENT_67C ; 67C, (D816, bit 4) - const EVENT_67D ; 67D, (D816, bit 5) - const EVENT_67E ; 67E, (D816, bit 6) - const EVENT_67F ; 67F, (D816, bit 7) - const EVENT_680 ; 680, (D817, bit 0) - const EVENT_BEAT_ROCKET_HIDEOUT_2_TRAINER_0 ; 681, (D817, bit 1) - const EVENT_682 ; 682, (D817, bit 2) - const EVENT_683 ; 683, (D817, bit 3) - const EVENT_684 ; 684, (D817, bit 4) - const EVENT_685 ; 685, (D817, bit 5) - const EVENT_686 ; 686, (D817, bit 6) - const EVENT_687 ; 687, (D817, bit 7) - const EVENT_688 ; 688, (D818, bit 0) - const EVENT_689 ; 689, (D818, bit 1) - const EVENT_68A ; 68A, (D818, bit 2) - const EVENT_68B ; 68B, (D818, bit 3) - const EVENT_68C ; 68C, (D818, bit 4) - const EVENT_68D ; 68D, (D818, bit 5) - const EVENT_68E ; 68E, (D818, bit 6) - const EVENT_68F ; 68F, (D818, bit 7) - const EVENT_690 ; 690, (D819, bit 0) - const EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_0 ; 691, (D819, bit 1) - const EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_1 ; 692, (D819, bit 2) - const EVENT_693 ; 693, (D819, bit 3) - const EVENT_694 ; 694, (D819, bit 4) - const EVENT_695 ; 695, (D819, bit 5) - const EVENT_696 ; 696, (D819, bit 6) - const EVENT_697 ; 697, (D819, bit 7) - const EVENT_698 ; 698, (D81A, bit 0) - const EVENT_699 ; 699, (D81A, bit 1) - const EVENT_69A ; 69A, (D81A, bit 2) - const EVENT_69B ; 69B, (D81A, bit 3) - const EVENT_69C ; 69C, (D81A, bit 4) - const EVENT_69D ; 69D, (D81A, bit 5) - const EVENT_69E ; 69E, (D81A, bit 6) - const EVENT_69F ; 69F, (D81A, bit 7) - const EVENT_6A0 ; 6A0, (D81B, bit 0) - const EVENT_6A1 ; 6A1, (D81B, bit 1) - const EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0 ; 6A2, (D81B, bit 2) - const EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_1 ; 6A3, (D81B, bit 3) - const EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2 ; 6A4, (D81B, bit 4) - const EVENT_ROCKET_HIDEOUT_4_DOOR_UNLOCKED ; 6A5, (D81B, bit 5) - const EVENT_ROCKET_DROPPED_LIFT_KEY ; 6A6, (D81B, bit 6) - const EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI ; 6A7, (D81B, bit 7) - const EVENT_6A8 ; 6A8, (D81C, bit 0) - const EVENT_6A9 ; 6A9, (D81C, bit 1) - const EVENT_6AA ; 6AA, (D81C, bit 2) - const EVENT_6AB ; 6AB, (D81C, bit 3) - const EVENT_6AC ; 6AC, (D81C, bit 4) - const EVENT_6AD ; 6AD, (D81C, bit 5) - const EVENT_6AE ; 6AE, (D81C, bit 6) - const EVENT_6AF ; 6AF, (D81C, bit 7) - const EVENT_6B0 ; 6B0, (D81D, bit 0) - const EVENT_6B1 ; 6B1, (D81D, bit 1) - const EVENT_6B2 ; 6B2, (D81D, bit 2) - const EVENT_6B3 ; 6B3, (D81D, bit 3) - const EVENT_6B4 ; 6B4, (D81D, bit 4) - const EVENT_6B5 ; 6B5, (D81D, bit 5) - const EVENT_6B6 ; 6B6, (D81D, bit 6) - const EVENT_6B7 ; 6B7, (D81D, bit 7) - const EVENT_6B8 ; 6B8, (D81E, bit 0) - const EVENT_6B9 ; 6B9, (D81E, bit 1) - const EVENT_6BA ; 6BA, (D81E, bit 2) - const EVENT_6BB ; 6BB, (D81E, bit 3) - const EVENT_6BC ; 6BC, (D81E, bit 4) - const EVENT_6BD ; 6BD, (D81E, bit 5) - const EVENT_6BE ; 6BE, (D81E, bit 6) - const EVENT_6BF ; 6BF, (D81E, bit 7) - const EVENT_6C0 ; 6C0, (D81F, bit 0) - const EVENT_6C1 ; 6C1, (D81F, bit 1) - const EVENT_6C2 ; 6C2, (D81F, bit 2) - const EVENT_6C3 ; 6C3, (D81F, bit 3) - const EVENT_6C4 ; 6C4, (D81F, bit 4) - const EVENT_6C5 ; 6C5, (D81F, bit 5) - const EVENT_6C6 ; 6C6, (D81F, bit 6) - const EVENT_6C7 ; 6C7, (D81F, bit 7) - const EVENT_6C8 ; 6C8, (D820, bit 0) - const EVENT_6C9 ; 6C9, (D820, bit 1) - const EVENT_6CA ; 6CA, (D820, bit 2) - const EVENT_6CB ; 6CB, (D820, bit 3) - const EVENT_6CC ; 6CC, (D820, bit 4) - const EVENT_6CD ; 6CD, (D820, bit 5) - const EVENT_6CE ; 6CE, (D820, bit 6) - const EVENT_6CF ; 6CF, (D820, bit 7) - const EVENT_6D0 ; 6D0, (D821, bit 0) - const EVENT_6D1 ; 6D1, (D821, bit 1) - const EVENT_6D2 ; 6D2, (D821, bit 2) - const EVENT_6D3 ; 6D3, (D821, bit 3) - const EVENT_6D4 ; 6D4, (D821, bit 4) - const EVENT_6D5 ; 6D5, (D821, bit 5) - const EVENT_6D6 ; 6D6, (D821, bit 6) - const EVENT_6D7 ; 6D7, (D821, bit 7) - const EVENT_6D8 ; 6D8, (D822, bit 0) - const EVENT_6D9 ; 6D9, (D822, bit 1) - const EVENT_6DA ; 6DA, (D822, bit 2) - const EVENT_6DB ; 6DB, (D822, bit 3) - const EVENT_6DC ; 6DC, (D822, bit 4) - const EVENT_6DD ; 6DD, (D822, bit 5) - const EVENT_6DE ; 6DE, (D822, bit 6) - const EVENT_6DF ; 6DF, (D822, bit 7) - const EVENT_6E0 ; 6E0, (D823, bit 0) - const EVENT_6E1 ; 6E1, (D823, bit 1) - const EVENT_6E2 ; 6E2, (D823, bit 2) - const EVENT_6E3 ; 6E3, (D823, bit 3) - const EVENT_6E4 ; 6E4, (D823, bit 4) - const EVENT_6E5 ; 6E5, (D823, bit 5) - const EVENT_6E6 ; 6E6, (D823, bit 6) - const EVENT_6E7 ; 6E7, (D823, bit 7) - const EVENT_6E8 ; 6E8, (D824, bit 0) - const EVENT_6E9 ; 6E9, (D824, bit 1) - const EVENT_6EA ; 6EA, (D824, bit 2) - const EVENT_6EB ; 6EB, (D824, bit 3) - const EVENT_6EC ; 6EC, (D824, bit 4) - const EVENT_6ED ; 6ED, (D824, bit 5) - const EVENT_6EE ; 6EE, (D824, bit 6) - const EVENT_6EF ; 6EF, (D824, bit 7) - const EVENT_6F0 ; 6F0, (D825, bit 0) - const EVENT_6F1 ; 6F1, (D825, bit 1) - const EVENT_BEAT_SILPH_CO_2F_TRAINER_0 ; 6F2, (D825, bit 2) - const EVENT_BEAT_SILPH_CO_2F_TRAINER_1 ; 6F3, (D825, bit 3) - const EVENT_BEAT_SILPH_CO_2F_TRAINER_2 ; 6F4, (D825, bit 4) - const EVENT_BEAT_SILPH_CO_2F_TRAINER_3 ; 6F5, (D825, bit 5) - const EVENT_6F6 ; 6F6, (D825, bit 6) - const EVENT_6F7 ; 6F7, (D825, bit 7) - const EVENT_6F8 ; 6F8, (D826, bit 0) - const EVENT_6F9 ; 6F9, (D826, bit 1) - const EVENT_6FA ; 6FA, (D826, bit 2) - const EVENT_6FB ; 6FB, (D826, bit 3) - const EVENT_6FC ; 6FC, (D826, bit 4) - const EVENT_SILPH_CO_2_UNLOCKED_DOOR1 ; 6FD, (D826, bit 5) - const EVENT_SILPH_CO_2_UNLOCKED_DOOR2 ; 6FE, (D826, bit 6) - const EVENT_GOT_TM36 ; 6FF, (D826, bit 7) - const EVENT_700 ; 700, (D827, bit 0) - const EVENT_701 ; 701, (D827, bit 1) - const EVENT_BEAT_SILPH_CO_3F_TRAINER_0 ; 702, (D827, bit 2) - const EVENT_BEAT_SILPH_CO_3F_TRAINER_1 ; 703, (D827, bit 3) - const EVENT_704 ; 704, (D827, bit 4) - const EVENT_705 ; 705, (D827, bit 5) - const EVENT_706 ; 706, (D827, bit 6) - const EVENT_707 ; 707, (D827, bit 7) - const EVENT_SILPH_CO_3_UNLOCKED_DOOR1 ; 708, (D828, bit 0) - const EVENT_SILPH_CO_3_UNLOCKED_DOOR2 ; 709, (D828, bit 1) - const EVENT_70A ; 70A, (D828, bit 2) - const EVENT_70B ; 70B, (D828, bit 3) - const EVENT_70C ; 70C, (D828, bit 4) - const EVENT_70D ; 70D, (D828, bit 5) - const EVENT_70E ; 70E, (D828, bit 6) - const EVENT_70F ; 70F, (D828, bit 7) - const EVENT_710 ; 710, (D829, bit 0) - const EVENT_711 ; 711, (D829, bit 1) - const EVENT_BEAT_SILPH_CO_4F_TRAINER_0 ; 712, (D829, bit 2) - const EVENT_BEAT_SILPH_CO_4F_TRAINER_1 ; 713, (D829, bit 3) - const EVENT_BEAT_SILPH_CO_4F_TRAINER_2 ; 714, (D829, bit 4) - const EVENT_715 ; 715, (D829, bit 5) - const EVENT_716 ; 716, (D829, bit 6) - const EVENT_717 ; 717, (D829, bit 7) - const EVENT_SILPH_CO_4_UNLOCKED_DOOR1 ; 718, (D82A, bit 0) - const EVENT_SILPH_CO_4_UNLOCKED_DOOR2 ; 719, (D82A, bit 1) - const EVENT_71A ; 71A, (D82A, bit 2) - const EVENT_71B ; 71B, (D82A, bit 3) - const EVENT_71C ; 71C, (D82A, bit 4) - const EVENT_71D ; 71D, (D82A, bit 5) - const EVENT_71E ; 71E, (D82A, bit 6) - const EVENT_71F ; 71F, (D82A, bit 7) - const EVENT_720 ; 720, (D82B, bit 0) - const EVENT_721 ; 721, (D82B, bit 1) - const EVENT_BEAT_SILPH_CO_5F_TRAINER_0 ; 722, (D82B, bit 2) - const EVENT_BEAT_SILPH_CO_5F_TRAINER_1 ; 723, (D82B, bit 3) - const EVENT_BEAT_SILPH_CO_5F_TRAINER_2 ; 724, (D82B, bit 4) - const EVENT_BEAT_SILPH_CO_5F_TRAINER_3 ; 725, (D82B, bit 5) - const EVENT_726 ; 726, (D82B, bit 6) - const EVENT_727 ; 727, (D82B, bit 7) - const EVENT_SILPH_CO_5_UNLOCKED_DOOR1 ; 728, (D82C, bit 0) - const EVENT_SILPH_CO_5_UNLOCKED_DOOR2 ; 729, (D82C, bit 1) - const EVENT_SILPH_CO_5_UNLOCKED_DOOR3 ; 72A, (D82C, bit 2) - const EVENT_72B ; 72B, (D82C, bit 3) - const EVENT_72C ; 72C, (D82C, bit 4) - const EVENT_72D ; 72D, (D82C, bit 5) - const EVENT_72E ; 72E, (D82C, bit 6) - const EVENT_72F ; 72F, (D82C, bit 7) - const EVENT_730 ; 730, (D82D, bit 0) - const EVENT_731 ; 731, (D82D, bit 1) - const EVENT_732 ; 732, (D82D, bit 2) - const EVENT_733 ; 733, (D82D, bit 3) - const EVENT_734 ; 734, (D82D, bit 4) - const EVENT_735 ; 735, (D82D, bit 5) - const EVENT_BEAT_SILPH_CO_6F_TRAINER_0 ; 736, (D82D, bit 6) - const EVENT_BEAT_SILPH_CO_6F_TRAINER_1 ; 737, (D82D, bit 7) - const EVENT_BEAT_SILPH_CO_6F_TRAINER_2 ; 738, (D82E, bit 0) - const EVENT_739 ; 739, (D82E, bit 1) - const EVENT_73A ; 73A, (D82E, bit 2) - const EVENT_73B ; 73B, (D82E, bit 3) - const EVENT_73C ; 73C, (D82E, bit 4) - const EVENT_73D ; 73D, (D82E, bit 5) - const EVENT_73E ; 73E, (D82E, bit 6) - const EVENT_SILPH_CO_6_UNLOCKED_DOOR ; 73F, (D82E, bit 7) - const EVENT_BEAT_SILPH_CO_RIVAL ; 740, (D82F, bit 0) - const EVENT_741 ; 741, (D82F, bit 1) - const EVENT_742 ; 742, (D82F, bit 2) - const EVENT_743 ; 743, (D82F, bit 3) - const EVENT_744 ; 744, (D82F, bit 4) - const EVENT_BEAT_SILPH_CO_7F_TRAINER_0 ; 745, (D82F, bit 5) - const EVENT_BEAT_SILPH_CO_7F_TRAINER_1 ; 746, (D82F, bit 6) - const EVENT_BEAT_SILPH_CO_7F_TRAINER_2 ; 747, (D82F, bit 7) - const EVENT_BEAT_SILPH_CO_7F_TRAINER_3 ; 748, (D830, bit 0) - const EVENT_749 ; 749, (D830, bit 1) - const EVENT_74A ; 74A, (D830, bit 2) - const EVENT_74B ; 74B, (D830, bit 3) - const EVENT_SILPH_CO_7_UNLOCKED_DOOR1 ; 74C, (D830, bit 4) - const EVENT_SILPH_CO_7_UNLOCKED_DOOR2 ; 74D, (D830, bit 5) - const EVENT_SILPH_CO_7_UNLOCKED_DOOR3 ; 74E, (D830, bit 6) - const EVENT_74F ; 74F, (D830, bit 7) - const EVENT_750 ; 750, (D831, bit 0) - const EVENT_751 ; 751, (D831, bit 1) - const EVENT_BEAT_SILPH_CO_8F_TRAINER_0 ; 752, (D831, bit 2) - const EVENT_BEAT_SILPH_CO_8F_TRAINER_1 ; 753, (D831, bit 3) - const EVENT_BEAT_SILPH_CO_8F_TRAINER_2 ; 754, (D831, bit 4) - const EVENT_755 ; 755, (D831, bit 5) - const EVENT_756 ; 756, (D831, bit 6) - const EVENT_757 ; 757, (D831, bit 7) - const EVENT_SILPH_CO_8_UNLOCKED_DOOR ; 758, (D832, bit 0) - const EVENT_759 ; 759, (D832, bit 1) - const EVENT_75A ; 75A, (D832, bit 2) - const EVENT_75B ; 75B, (D832, bit 3) - const EVENT_75C ; 75C, (D832, bit 4) - const EVENT_75D ; 75D, (D832, bit 5) - const EVENT_75E ; 75E, (D832, bit 6) - const EVENT_75F ; 75F, (D832, bit 7) - const EVENT_760 ; 760, (D833, bit 0) - const EVENT_761 ; 761, (D833, bit 1) - const EVENT_BEAT_SILPH_CO_9F_TRAINER_0 ; 762, (D833, bit 2) - const EVENT_BEAT_SILPH_CO_9F_TRAINER_1 ; 763, (D833, bit 3) - const EVENT_BEAT_SILPH_CO_9F_TRAINER_2 ; 764, (D833, bit 4) - const EVENT_765 ; 765, (D833, bit 5) - const EVENT_766 ; 766, (D833, bit 6) - const EVENT_767 ; 767, (D833, bit 7) - const EVENT_SILPH_CO_9_UNLOCKED_DOOR1 ; 768, (D834, bit 0) - const EVENT_SILPH_CO_9_UNLOCKED_DOOR2 ; 769, (D834, bit 1) - const EVENT_SILPH_CO_9_UNLOCKED_DOOR3 ; 76A, (D834, bit 2) - const EVENT_SILPH_CO_9_UNLOCKED_DOOR4 ; 76B, (D834, bit 3) - const EVENT_76C ; 76C, (D834, bit 4) - const EVENT_76D ; 76D, (D834, bit 5) - const EVENT_76E ; 76E, (D834, bit 6) - const EVENT_76F ; 76F, (D834, bit 7) - const EVENT_770 ; 770, (D835, bit 0) - const EVENT_BEAT_SILPH_CO_10F_TRAINER_0 ; 771, (D835, bit 1) - const EVENT_BEAT_SILPH_CO_10F_TRAINER_1 ; 772, (D835, bit 2) - const EVENT_773 ; 773, (D835, bit 3) - const EVENT_774 ; 774, (D835, bit 4) - const EVENT_775 ; 775, (D835, bit 5) - const EVENT_776 ; 776, (D835, bit 6) - const EVENT_777 ; 777, (D835, bit 7) - const EVENT_SILPH_CO_10_UNLOCKED_DOOR ; 778, (D836, bit 0) - const EVENT_779 ; 779, (D836, bit 1) - const EVENT_77A ; 77A, (D836, bit 2) - const EVENT_77B ; 77B, (D836, bit 3) - const EVENT_77C ; 77C, (D836, bit 4) - const EVENT_77D ; 77D, (D836, bit 5) - const EVENT_77E ; 77E, (D836, bit 6) - const EVENT_77F ; 77F, (D836, bit 7) - const EVENT_780 ; 780, (D837, bit 0) - const EVENT_781 ; 781, (D837, bit 1) - const EVENT_782 ; 782, (D837, bit 2) - const EVENT_783 ; 783, (D837, bit 3) - const EVENT_BEAT_SILPH_CO_11F_TRAINER_0 ; 784, (D837, bit 4) - const EVENT_BEAT_SILPH_CO_11F_TRAINER_1 ; 785, (D837, bit 5) - const EVENT_786 ; 786, (D837, bit 6) - const EVENT_787 ; 787, (D837, bit 7) - const EVENT_SILPH_CO_11_UNLOCKED_DOOR ; 788, (D838, bit 0) - const EVENT_789 ; 789, (D838, bit 1) - const EVENT_78A ; 78A, (D838, bit 2) - const EVENT_78B ; 78B, (D838, bit 3) - const EVENT_78C ; 78C, (D838, bit 4) - const EVENT_GOT_MASTER_BALL ; 78D, (D838, bit 5) - const EVENT_78E ; 78E, (D838, bit 6) - const EVENT_BEAT_SILPH_CO_GIOVANNI ; 78F, (D838, bit 7) - const EVENT_790 ; 790, (D839, bit 0) - const EVENT_791 ; 791, (D839, bit 1) - const EVENT_792 ; 792, (D839, bit 2) - const EVENT_793 ; 793, (D839, bit 3) - const EVENT_794 ; 794, (D839, bit 4) - const EVENT_795 ; 795, (D839, bit 5) - const EVENT_796 ; 796, (D839, bit 6) - const EVENT_797 ; 797, (D839, bit 7) - const EVENT_798 ; 798, (D83A, bit 0) - const EVENT_799 ; 799, (D83A, bit 1) - const EVENT_79A ; 79A, (D83A, bit 2) - const EVENT_79B ; 79B, (D83A, bit 3) - const EVENT_79C ; 79C, (D83A, bit 4) - const EVENT_79D ; 79D, (D83A, bit 5) - const EVENT_79E ; 79E, (D83A, bit 6) - const EVENT_79F ; 79F, (D83A, bit 7) - const EVENT_7A0 ; 7A0, (D83B, bit 0) - const EVENT_7A1 ; 7A1, (D83B, bit 1) - const EVENT_7A2 ; 7A2, (D83B, bit 2) - const EVENT_7A3 ; 7A3, (D83B, bit 3) - const EVENT_7A4 ; 7A4, (D83B, bit 4) - const EVENT_7A5 ; 7A5, (D83B, bit 5) - const EVENT_7A6 ; 7A6, (D83B, bit 6) - const EVENT_7A7 ; 7A7, (D83B, bit 7) - const EVENT_7A8 ; 7A8, (D83C, bit 0) - const EVENT_7A9 ; 7A9, (D83C, bit 1) - const EVENT_7AA ; 7AA, (D83C, bit 2) - const EVENT_7AB ; 7AB, (D83C, bit 3) - const EVENT_7AC ; 7AC, (D83C, bit 4) - const EVENT_7AD ; 7AD, (D83C, bit 5) - const EVENT_7AE ; 7AE, (D83C, bit 6) - const EVENT_7AF ; 7AF, (D83C, bit 7) - const EVENT_7B0 ; 7B0, (D83D, bit 0) - const EVENT_7B1 ; 7B1, (D83D, bit 1) - const EVENT_7B2 ; 7B2, (D83D, bit 2) - const EVENT_7B3 ; 7B3, (D83D, bit 3) - const EVENT_7B4 ; 7B4, (D83D, bit 4) - const EVENT_7B5 ; 7B5, (D83D, bit 5) - const EVENT_7B6 ; 7B6, (D83D, bit 6) - const EVENT_7B7 ; 7B7, (D83D, bit 7) - const EVENT_7B8 ; 7B8, (D83E, bit 0) - const EVENT_7B9 ; 7B9, (D83E, bit 1) - const EVENT_7BA ; 7BA, (D83E, bit 2) - const EVENT_7BB ; 7BB, (D83E, bit 3) - const EVENT_7BC ; 7BC, (D83E, bit 4) - const EVENT_7BD ; 7BD, (D83E, bit 5) - const EVENT_7BE ; 7BE, (D83E, bit 6) - const EVENT_7BF ; 7BF, (D83E, bit 7) - const EVENT_7C0 ; 7C0, (D83F, bit 0) - const EVENT_7C1 ; 7C1, (D83F, bit 1) - const EVENT_7C2 ; 7C2, (D83F, bit 2) - const EVENT_7C3 ; 7C3, (D83F, bit 3) - const EVENT_7C4 ; 7C4, (D83F, bit 4) - const EVENT_7C5 ; 7C5, (D83F, bit 5) - const EVENT_7C6 ; 7C6, (D83F, bit 6) - const EVENT_7C7 ; 7C7, (D83F, bit 7) - const EVENT_7C8 ; 7C8, (D840, bit 0) - const EVENT_7C9 ; 7C9, (D840, bit 1) - const EVENT_7CA ; 7CA, (D840, bit 2) - const EVENT_7CB ; 7CB, (D840, bit 3) - const EVENT_7CC ; 7CC, (D840, bit 4) - const EVENT_7CD ; 7CD, (D840, bit 5) - const EVENT_7CE ; 7CE, (D840, bit 6) - const EVENT_7CF ; 7CF, (D840, bit 7) - const EVENT_7D0 ; 7D0, (D841, bit 0) - const EVENT_7D1 ; 7D1, (D841, bit 1) - const EVENT_7D2 ; 7D2, (D841, bit 2) - const EVENT_7D3 ; 7D3, (D841, bit 3) - const EVENT_7D4 ; 7D4, (D841, bit 4) - const EVENT_7D5 ; 7D5, (D841, bit 5) - const EVENT_7D6 ; 7D6, (D841, bit 6) - const EVENT_7D7 ; 7D7, (D841, bit 7) - const EVENT_7D8 ; 7D8, (D842, bit 0) - const EVENT_7D9 ; 7D9, (D842, bit 1) - const EVENT_7DA ; 7DA, (D842, bit 2) - const EVENT_7DB ; 7DB, (D842, bit 3) - const EVENT_7DC ; 7DC, (D842, bit 4) - const EVENT_7DD ; 7DD, (D842, bit 5) - const EVENT_7DE ; 7DE, (D842, bit 6) - const EVENT_7DF ; 7DF, (D842, bit 7) - const EVENT_7E0 ; 7E0, (D843, bit 0) - const EVENT_7E1 ; 7E1, (D843, bit 1) - const EVENT_7E2 ; 7E2, (D843, bit 2) - const EVENT_7E3 ; 7E3, (D843, bit 3) - const EVENT_7E4 ; 7E4, (D843, bit 4) - const EVENT_7E5 ; 7E5, (D843, bit 5) - const EVENT_7E6 ; 7E6, (D843, bit 6) - const EVENT_7E7 ; 7E7, (D843, bit 7) - const EVENT_7E8 ; 7E8, (D844, bit 0) - const EVENT_7E9 ; 7E9, (D844, bit 1) - const EVENT_7EA ; 7EA, (D844, bit 2) - const EVENT_7EB ; 7EB, (D844, bit 3) - const EVENT_7EC ; 7EC, (D844, bit 4) - const EVENT_7ED ; 7ED, (D844, bit 5) - const EVENT_7EE ; 7EE, (D844, bit 6) - const EVENT_7EF ; 7EF, (D844, bit 7) - const EVENT_7F0 ; 7F0, (D845, bit 0) - const EVENT_7F1 ; 7F1, (D845, bit 1) - const EVENT_7F2 ; 7F2, (D845, bit 2) - const EVENT_7F3 ; 7F3, (D845, bit 3) - const EVENT_7F4 ; 7F4, (D845, bit 4) - const EVENT_7F5 ; 7F5, (D845, bit 5) - const EVENT_7F6 ; 7F6, (D845, bit 6) - const EVENT_7F7 ; 7F7, (D845, bit 7) - const EVENT_7F8 ; 7F8, (D846, bit 0) - const EVENT_7F9 ; 7F9, (D846, bit 1) - const EVENT_7FA ; 7FA, (D846, bit 2) - const EVENT_7FB ; 7FB, (D846, bit 3) - const EVENT_7FC ; 7FC, (D846, bit 4) - const EVENT_7FD ; 7FD, (D846, bit 5) - const EVENT_7FE ; 7FE, (D846, bit 6) - const EVENT_7FF ; 7FF, (D846, bit 7) - const EVENT_800 ; 800, (D847, bit 0) - const EVENT_BEAT_MANSION_2_TRAINER_0 ; 801, (D847, bit 1) - const EVENT_802 ; 802, (D847, bit 2) - const EVENT_803 ; 803, (D847, bit 3) - const EVENT_804 ; 804, (D847, bit 4) - const EVENT_805 ; 805, (D847, bit 5) - const EVENT_806 ; 806, (D847, bit 6) - const EVENT_807 ; 807, (D847, bit 7) - const EVENT_808 ; 808, (D848, bit 0) - const EVENT_809 ; 809, (D848, bit 1) - const EVENT_80A ; 80A, (D848, bit 2) - const EVENT_80B ; 80B, (D848, bit 3) - const EVENT_80C ; 80C, (D848, bit 4) - const EVENT_80D ; 80D, (D848, bit 5) - const EVENT_80E ; 80E, (D848, bit 6) - const EVENT_80F ; 80F, (D848, bit 7) - const EVENT_810 ; 810, (D849, bit 0) - const EVENT_BEAT_MANSION_3_TRAINER_0 ; 811, (D849, bit 1) - const EVENT_BEAT_MANSION_3_TRAINER_1 ; 812, (D849, bit 2) - const EVENT_813 ; 813, (D849, bit 3) - const EVENT_814 ; 814, (D849, bit 4) - const EVENT_815 ; 815, (D849, bit 5) - const EVENT_816 ; 816, (D849, bit 6) - const EVENT_817 ; 817, (D849, bit 7) - const EVENT_818 ; 818, (D84A, bit 0) - const EVENT_819 ; 819, (D84A, bit 1) - const EVENT_81A ; 81A, (D84A, bit 2) - const EVENT_81B ; 81B, (D84A, bit 3) - const EVENT_81C ; 81C, (D84A, bit 4) - const EVENT_81D ; 81D, (D84A, bit 5) - const EVENT_81E ; 81E, (D84A, bit 6) - const EVENT_81F ; 81F, (D84A, bit 7) - const EVENT_820 ; 820, (D84B, bit 0) - const EVENT_BEAT_MANSION_4_TRAINER_0 ; 821, (D84B, bit 1) - const EVENT_BEAT_MANSION_4_TRAINER_1 ; 822, (D84B, bit 2) - const EVENT_823 ; 823, (D84B, bit 3) - const EVENT_824 ; 824, (D84B, bit 4) - const EVENT_825 ; 825, (D84B, bit 5) - const EVENT_826 ; 826, (D84B, bit 6) - const EVENT_827 ; 827, (D84B, bit 7) - const EVENT_828 ; 828, (D84C, bit 0) - const EVENT_829 ; 829, (D84C, bit 1) - const EVENT_82A ; 82A, (D84C, bit 2) - const EVENT_82B ; 82B, (D84C, bit 3) - const EVENT_82C ; 82C, (D84C, bit 4) - const EVENT_82D ; 82D, (D84C, bit 5) - const EVENT_82E ; 82E, (D84C, bit 6) - const EVENT_82F ; 82F, (D84C, bit 7) - const EVENT_830 ; 830, (D84D, bit 0) - const EVENT_831 ; 831, (D84D, bit 1) - const EVENT_832 ; 832, (D84D, bit 2) - const EVENT_833 ; 833, (D84D, bit 3) - const EVENT_834 ; 834, (D84D, bit 4) - const EVENT_835 ; 835, (D84D, bit 5) - const EVENT_836 ; 836, (D84D, bit 6) - const EVENT_837 ; 837, (D84D, bit 7) - const EVENT_838 ; 838, (D84E, bit 0) - const EVENT_839 ; 839, (D84E, bit 1) - const EVENT_83A ; 83A, (D84E, bit 2) - const EVENT_83B ; 83B, (D84E, bit 3) - const EVENT_83C ; 83C, (D84E, bit 4) - const EVENT_83D ; 83D, (D84E, bit 5) - const EVENT_83E ; 83E, (D84E, bit 6) - const EVENT_83F ; 83F, (D84E, bit 7) - const EVENT_840 ; 840, (D84F, bit 0) - const EVENT_841 ; 841, (D84F, bit 1) - const EVENT_842 ; 842, (D84F, bit 2) - const EVENT_843 ; 843, (D84F, bit 3) - const EVENT_844 ; 844, (D84F, bit 4) - const EVENT_845 ; 845, (D84F, bit 5) - const EVENT_846 ; 846, (D84F, bit 6) - const EVENT_847 ; 847, (D84F, bit 7) - const EVENT_848 ; 848, (D850, bit 0) - const EVENT_849 ; 849, (D850, bit 1) - const EVENT_84A ; 84A, (D850, bit 2) - const EVENT_84B ; 84B, (D850, bit 3) - const EVENT_84C ; 84C, (D850, bit 4) - const EVENT_84D ; 84D, (D850, bit 5) - const EVENT_84E ; 84E, (D850, bit 6) - const EVENT_84F ; 84F, (D850, bit 7) - const EVENT_850 ; 850, (D851, bit 0) - const EVENT_851 ; 851, (D851, bit 1) - const EVENT_852 ; 852, (D851, bit 2) - const EVENT_853 ; 853, (D851, bit 3) - const EVENT_854 ; 854, (D851, bit 4) - const EVENT_855 ; 855, (D851, bit 5) - const EVENT_856 ; 856, (D851, bit 6) - const EVENT_857 ; 857, (D851, bit 7) - const EVENT_858 ; 858, (D852, bit 0) - const EVENT_859 ; 859, (D852, bit 1) - const EVENT_85A ; 85A, (D852, bit 2) - const EVENT_85B ; 85B, (D852, bit 3) - const EVENT_85C ; 85C, (D852, bit 4) - const EVENT_85D ; 85D, (D852, bit 5) - const EVENT_85E ; 85E, (D852, bit 6) - const EVENT_85F ; 85F, (D852, bit 7) - const EVENT_860 ; 860, (D853, bit 0) - const EVENT_861 ; 861, (D853, bit 1) - const EVENT_862 ; 862, (D853, bit 2) - const EVENT_863 ; 863, (D853, bit 3) - const EVENT_864 ; 864, (D853, bit 4) - const EVENT_865 ; 865, (D853, bit 5) - const EVENT_866 ; 866, (D853, bit 6) - const EVENT_867 ; 867, (D853, bit 7) - const EVENT_868 ; 868, (D854, bit 0) - const EVENT_869 ; 869, (D854, bit 1) - const EVENT_86A ; 86A, (D854, bit 2) - const EVENT_86B ; 86B, (D854, bit 3) - const EVENT_86C ; 86C, (D854, bit 4) - const EVENT_86D ; 86D, (D854, bit 5) - const EVENT_86E ; 86E, (D854, bit 6) - const EVENT_86F ; 86F, (D854, bit 7) - const EVENT_870 ; 870, (D855, bit 0) - const EVENT_871 ; 871, (D855, bit 1) - const EVENT_872 ; 872, (D855, bit 2) - const EVENT_873 ; 873, (D855, bit 3) - const EVENT_874 ; 874, (D855, bit 4) - const EVENT_875 ; 875, (D855, bit 5) - const EVENT_876 ; 876, (D855, bit 6) - const EVENT_877 ; 877, (D855, bit 7) - const EVENT_878 ; 878, (D856, bit 0) - const EVENT_879 ; 879, (D856, bit 1) - const EVENT_87A ; 87A, (D856, bit 2) - const EVENT_87B ; 87B, (D856, bit 3) - const EVENT_87C ; 87C, (D856, bit 4) - const EVENT_87D ; 87D, (D856, bit 5) - const EVENT_87E ; 87E, (D856, bit 6) - const EVENT_87F ; 87F, (D856, bit 7) - const EVENT_GOT_HM03 ; 880, (D857, bit 0) - const EVENT_881 ; 881, (D857, bit 1) - const EVENT_882 ; 882, (D857, bit 2) - const EVENT_883 ; 883, (D857, bit 3) - const EVENT_884 ; 884, (D857, bit 4) - const EVENT_885 ; 885, (D857, bit 5) - const EVENT_886 ; 886, (D857, bit 6) - const EVENT_887 ; 887, (D857, bit 7) - const EVENT_888 ; 888, (D858, bit 0) - const EVENT_889 ; 889, (D858, bit 1) - const EVENT_88A ; 88A, (D858, bit 2) - const EVENT_88B ; 88B, (D858, bit 3) - const EVENT_88C ; 88C, (D858, bit 4) - const EVENT_88D ; 88D, (D858, bit 5) - const EVENT_88E ; 88E, (D858, bit 6) - const EVENT_88F ; 88F, (D858, bit 7) - const EVENT_890 ; 890, (D859, bit 0) - const EVENT_891 ; 891, (D859, bit 1) - const EVENT_892 ; 892, (D859, bit 2) - const EVENT_893 ; 893, (D859, bit 3) - const EVENT_894 ; 894, (D859, bit 4) - const EVENT_895 ; 895, (D859, bit 5) - const EVENT_896 ; 896, (D859, bit 6) - const EVENT_897 ; 897, (D859, bit 7) - const EVENT_898 ; 898, (D85A, bit 0) - const EVENT_899 ; 899, (D85A, bit 1) - const EVENT_89A ; 89A, (D85A, bit 2) - const EVENT_89B ; 89B, (D85A, bit 3) - const EVENT_89C ; 89C, (D85A, bit 4) - const EVENT_89D ; 89D, (D85A, bit 5) - const EVENT_89E ; 89E, (D85A, bit 6) - const EVENT_89F ; 89F, (D85A, bit 7) - const EVENT_8A0 ; 8A0, (D85B, bit 0) - const EVENT_8A1 ; 8A1, (D85B, bit 1) - const EVENT_8A2 ; 8A2, (D85B, bit 2) - const EVENT_8A3 ; 8A3, (D85B, bit 3) - const EVENT_8A4 ; 8A4, (D85B, bit 4) - const EVENT_8A5 ; 8A5, (D85B, bit 5) - const EVENT_8A6 ; 8A6, (D85B, bit 6) - const EVENT_8A7 ; 8A7, (D85B, bit 7) - const EVENT_8A8 ; 8A8, (D85C, bit 0) - const EVENT_8A9 ; 8A9, (D85C, bit 1) - const EVENT_8AA ; 8AA, (D85C, bit 2) - const EVENT_8AB ; 8AB, (D85C, bit 3) - const EVENT_8AC ; 8AC, (D85C, bit 4) - const EVENT_8AD ; 8AD, (D85C, bit 5) - const EVENT_8AE ; 8AE, (D85C, bit 6) - const EVENT_8AF ; 8AF, (D85C, bit 7) - const EVENT_8B0 ; 8B0, (D85D, bit 0) - const EVENT_8B1 ; 8B1, (D85D, bit 1) - const EVENT_8B2 ; 8B2, (D85D, bit 2) - const EVENT_8B3 ; 8B3, (D85D, bit 3) - const EVENT_8B4 ; 8B4, (D85D, bit 4) - const EVENT_8B5 ; 8B5, (D85D, bit 5) - const EVENT_8B6 ; 8B6, (D85D, bit 6) - const EVENT_8B7 ; 8B7, (D85D, bit 7) - const EVENT_8B8 ; 8B8, (D85E, bit 0) - const EVENT_8B9 ; 8B9, (D85E, bit 1) - const EVENT_8BA ; 8BA, (D85E, bit 2) - const EVENT_8BB ; 8BB, (D85E, bit 3) - const EVENT_8BC ; 8BC, (D85E, bit 4) - const EVENT_8BD ; 8BD, (D85E, bit 5) - const EVENT_8BE ; 8BE, (D85E, bit 6) - const EVENT_8BF ; 8BF, (D85E, bit 7) - const EVENT_8C0 ; 8C0, (D85F, bit 0) - const EVENT_BEAT_MEWTWO ; 8C1, (D85F, bit 1) - const EVENT_8C2 ; 8C2, (D85F, bit 2) - const EVENT_8C3 ; 8C3, (D85F, bit 3) - const EVENT_8C4 ; 8C4, (D85F, bit 4) - const EVENT_8C5 ; 8C5, (D85F, bit 5) - const EVENT_8C6 ; 8C6, (D85F, bit 6) - const EVENT_8C7 ; 8C7, (D85F, bit 7) - const EVENT_8C8 ; 8C8, (D860, bit 0) - const EVENT_8C9 ; 8C9, (D860, bit 1) - const EVENT_8CA ; 8CA, (D860, bit 2) - const EVENT_8CB ; 8CB, (D860, bit 3) - const EVENT_8CC ; 8CC, (D860, bit 4) - const EVENT_8CD ; 8CD, (D860, bit 5) - const EVENT_8CE ; 8CE, (D860, bit 6) - const EVENT_8CF ; 8CF, (D860, bit 7) - const EVENT_8D0 ; 8D0, (D861, bit 0) - const EVENT_8D1 ; 8D1, (D861, bit 1) - const EVENT_8D2 ; 8D2, (D861, bit 2) - const EVENT_8D3 ; 8D3, (D861, bit 3) - const EVENT_8D4 ; 8D4, (D861, bit 4) - const EVENT_8D5 ; 8D5, (D861, bit 5) - const EVENT_8D6 ; 8D6, (D861, bit 6) - const EVENT_8D7 ; 8D7, (D861, bit 7) - const EVENT_8D8 ; 8D8, (D862, bit 0) - const EVENT_8D9 ; 8D9, (D862, bit 1) - const EVENT_8DA ; 8DA, (D862, bit 2) - const EVENT_8DB ; 8DB, (D862, bit 3) - const EVENT_8DC ; 8DC, (D862, bit 4) - const EVENT_8DD ; 8DD, (D862, bit 5) - const EVENT_8DE ; 8DE, (D862, bit 6) - const EVENT_8DF ; 8DF, (D862, bit 7) - const ELITE4_EVENTS_START ; 8E0, (D863, bit 0) - const EVENT_BEAT_LORELEIS_ROOM_TRAINER_0 ; 8E1, (D863, bit 1) - const EVENT_8E2 ; 8E2, (D863, bit 2) - const EVENT_8E3 ; 8E3, (D863, bit 3) - const EVENT_8E4 ; 8E4, (D863, bit 4) - const EVENT_8E5 ; 8E5, (D863, bit 5) - const EVENT_AUTOWALKED_INTO_LORELEIS_ROOM ; 8E6, (D863, bit 6) - const EVENT_8E7 ; 8E7, (D863, bit 7) - const EVENT_8E8 ; 8E8, (D864, bit 0) - const EVENT_BEAT_BRUNOS_ROOM_TRAINER_0 ; 8E9, (D864, bit 1) - const EVENT_8EA ; 8EA, (D864, bit 2) - const EVENT_8EB ; 8EB, (D864, bit 3) - const EVENT_8EC ; 8EC, (D864, bit 4) - const EVENT_8ED ; 8ED, (D864, bit 5) - const EVENT_AUTOWALKED_INTO_BRUNOS_ROOM ; 8EE, (D864, bit 6) - const EVENT_8EF ; 8EF, (D864, bit 7) - const EVENT_8F0 ; 8F0, (D865, bit 0) - const EVENT_BEAT_AGATHAS_ROOM_TRAINER_0 ; 8F1, (D865, bit 1) - const EVENT_8F2 ; 8F2, (D865, bit 2) - const EVENT_8F3 ; 8F3, (D865, bit 3) - const EVENT_8F4 ; 8F4, (D865, bit 4) - const EVENT_8F5 ; 8F5, (D865, bit 5) - const EVENT_AUTOWALKED_INTO_AGATHAS_ROOM ; 8F6, (D865, bit 6) - const EVENT_8F7 ; 8F7, (D865, bit 7) - const EVENT_8F8 ; 8F8, (D866, bit 0) - const EVENT_BEAT_LANCES_ROOM_TRAINER_0 ; 8F9, (D866, bit 1) - const EVENT_8FA ; 8FA, (D866, bit 2) - const EVENT_8FB ; 8FB, (D866, bit 3) - const EVENT_8FC ; 8FC, (D866, bit 4) - const EVENT_8FD ; 8FD, (D866, bit 5) - const EVENT_BEAT_LANCE ; 8FE, (D866, bit 6) - const EVENT_LANCES_ROOM_LOCK_DOOR ; 8FF, (D866, bit 7) - const EVENT_900 ; 900, (D867, bit 0) - const EVENT_BEAT_CHAMPION_RIVAL ; 901, (D867, bit 1) - const EVENT_902 ; 902, (D867, bit 2) - const EVENT_903 ; 903, (D867, bit 3) - const EVENT_904 ; 904, (D867, bit 4) - const EVENT_905 ; 905, (D867, bit 5) - const EVENT_906 ; 906, (D867, bit 6) - const ELITE4_CHAMPION_EVENTS_END ; 907, (D867, bit 7) - const EVENT_908 ; 908, (D868, bit 0) - const EVENT_909 ; 909, (D868, bit 1) - const EVENT_90A ; 90A, (D868, bit 2) - const EVENT_90B ; 90B, (D868, bit 3) - const EVENT_90C ; 90C, (D868, bit 4) - const EVENT_90D ; 90D, (D868, bit 5) - const EVENT_90E ; 90E, (D868, bit 6) - const EVENT_90F ; 90F, (D868, bit 7) - const EVENT_910 ; 910, (D869, bit 0) - const EVENT_BEAT_VICTORY_ROAD_1_TRAINER_0 ; 911, (D869, bit 1) - const EVENT_BEAT_VICTORY_ROAD_1_TRAINER_1 ; 912, (D869, bit 2) - const EVENT_913 ; 913, (D869, bit 3) - const EVENT_914 ; 914, (D869, bit 4) - const EVENT_915 ; 915, (D869, bit 5) - const EVENT_916 ; 916, (D869, bit 6) - const EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH ; 917, (D869, bit 7) - const EVENT_918 ; 918, (D86A, bit 0) - const EVENT_919 ; 919, (D86A, bit 1) - const EVENT_91A ; 91A, (D86A, bit 2) - const EVENT_91B ; 91B, (D86A, bit 3) - const EVENT_91C ; 91C, (D86A, bit 4) - const EVENT_91D ; 91D, (D86A, bit 5) - const EVENT_91E ; 91E, (D86A, bit 6) - const EVENT_91F ; 91F, (D86A, bit 7) - const EVENT_920 ; 920, (D86B, bit 0) - const EVENT_921 ; 921, (D86B, bit 1) - const EVENT_922 ; 922, (D86B, bit 2) - const EVENT_923 ; 923, (D86B, bit 3) - const EVENT_924 ; 924, (D86B, bit 4) - const EVENT_925 ; 925, (D86B, bit 5) - const EVENT_926 ; 926, (D86B, bit 6) - const EVENT_927 ; 927, (D86B, bit 7) - const EVENT_928 ; 928, (D86C, bit 0) - const EVENT_929 ; 929, (D86C, bit 1) - const EVENT_92A ; 92A, (D86C, bit 2) - const EVENT_92B ; 92B, (D86C, bit 3) - const EVENT_92C ; 92C, (D86C, bit 4) - const EVENT_92D ; 92D, (D86C, bit 5) - const EVENT_92E ; 92E, (D86C, bit 6) - const EVENT_92F ; 92F, (D86C, bit 7) - const EVENT_930 ; 930, (D86D, bit 0) - const EVENT_931 ; 931, (D86D, bit 1) - const EVENT_932 ; 932, (D86D, bit 2) - const EVENT_933 ; 933, (D86D, bit 3) - const EVENT_934 ; 934, (D86D, bit 4) - const EVENT_935 ; 935, (D86D, bit 5) - const EVENT_936 ; 936, (D86D, bit 6) - const EVENT_937 ; 937, (D86D, bit 7) - const EVENT_938 ; 938, (D86E, bit 0) - const EVENT_939 ; 939, (D86E, bit 1) - const EVENT_93A ; 93A, (D86E, bit 2) - const EVENT_93B ; 93B, (D86E, bit 3) - const EVENT_93C ; 93C, (D86E, bit 4) - const EVENT_93D ; 93D, (D86E, bit 5) - const EVENT_93E ; 93E, (D86E, bit 6) - const EVENT_93F ; 93F, (D86E, bit 7) - const EVENT_940 ; 940, (D86F, bit 0) - const EVENT_941 ; 941, (D86F, bit 1) - const EVENT_942 ; 942, (D86F, bit 2) - const EVENT_943 ; 943, (D86F, bit 3) - const EVENT_944 ; 944, (D86F, bit 4) - const EVENT_945 ; 945, (D86F, bit 5) - const EVENT_946 ; 946, (D86F, bit 6) - const EVENT_947 ; 947, (D86F, bit 7) - const EVENT_948 ; 948, (D870, bit 0) - const EVENT_949 ; 949, (D870, bit 1) - const EVENT_94A ; 94A, (D870, bit 2) - const EVENT_94B ; 94B, (D870, bit 3) - const EVENT_94C ; 94C, (D870, bit 4) - const EVENT_94D ; 94D, (D870, bit 5) - const EVENT_94E ; 94E, (D870, bit 6) - const EVENT_94F ; 94F, (D870, bit 7) - const EVENT_950 ; 950, (D871, bit 0) - const EVENT_951 ; 951, (D871, bit 1) - const EVENT_952 ; 952, (D871, bit 2) - const EVENT_953 ; 953, (D871, bit 3) - const EVENT_954 ; 954, (D871, bit 4) - const EVENT_955 ; 955, (D871, bit 5) - const EVENT_956 ; 956, (D871, bit 6) - const EVENT_957 ; 957, (D871, bit 7) - const EVENT_958 ; 958, (D872, bit 0) - const EVENT_959 ; 959, (D872, bit 1) - const EVENT_95A ; 95A, (D872, bit 2) - const EVENT_95B ; 95B, (D872, bit 3) - const EVENT_95C ; 95C, (D872, bit 4) - const EVENT_95D ; 95D, (D872, bit 5) - const EVENT_95E ; 95E, (D872, bit 6) - const EVENT_95F ; 95F, (D872, bit 7) - const EVENT_960 ; 960, (D873, bit 0) - const EVENT_961 ; 961, (D873, bit 1) - const EVENT_962 ; 962, (D873, bit 2) - const EVENT_963 ; 963, (D873, bit 3) - const EVENT_964 ; 964, (D873, bit 4) - const EVENT_965 ; 965, (D873, bit 5) - const EVENT_966 ; 966, (D873, bit 6) - const EVENT_967 ; 967, (D873, bit 7) - const EVENT_968 ; 968, (D874, bit 0) - const EVENT_969 ; 969, (D874, bit 1) - const EVENT_96A ; 96A, (D874, bit 2) - const EVENT_96B ; 96B, (D874, bit 3) - const EVENT_96C ; 96C, (D874, bit 4) - const EVENT_96D ; 96D, (D874, bit 5) - const EVENT_96E ; 96E, (D874, bit 6) - const EVENT_96F ; 96F, (D874, bit 7) - const EVENT_970 ; 970, (D875, bit 0) - const EVENT_971 ; 971, (D875, bit 1) - const EVENT_972 ; 972, (D875, bit 2) - const EVENT_973 ; 973, (D875, bit 3) - const EVENT_974 ; 974, (D875, bit 4) - const EVENT_975 ; 975, (D875, bit 5) - const EVENT_976 ; 976, (D875, bit 6) - const EVENT_977 ; 977, (D875, bit 7) - const EVENT_978 ; 978, (D876, bit 0) - const EVENT_979 ; 979, (D876, bit 1) - const EVENT_97A ; 97A, (D876, bit 2) - const EVENT_97B ; 97B, (D876, bit 3) - const EVENT_97C ; 97C, (D876, bit 4) - const EVENT_97D ; 97D, (D876, bit 5) - const EVENT_97E ; 97E, (D876, bit 6) - const EVENT_97F ; 97F, (D876, bit 7) - const EVENT_980 ; 980, (D877, bit 0) - const EVENT_981 ; 981, (D877, bit 1) - const EVENT_982 ; 982, (D877, bit 2) - const EVENT_983 ; 983, (D877, bit 3) - const EVENT_984 ; 984, (D877, bit 4) - const EVENT_985 ; 985, (D877, bit 5) - const EVENT_986 ; 986, (D877, bit 6) - const EVENT_987 ; 987, (D877, bit 7) - const EVENT_988 ; 988, (D878, bit 0) - const EVENT_989 ; 989, (D878, bit 1) - const EVENT_98A ; 98A, (D878, bit 2) - const EVENT_98B ; 98B, (D878, bit 3) - const EVENT_98C ; 98C, (D878, bit 4) - const EVENT_98D ; 98D, (D878, bit 5) - const EVENT_98E ; 98E, (D878, bit 6) - const EVENT_98F ; 98F, (D878, bit 7) - const EVENT_990 ; 990, (D879, bit 0) - const EVENT_991 ; 991, (D879, bit 1) - const EVENT_992 ; 992, (D879, bit 2) - const EVENT_993 ; 993, (D879, bit 3) - const EVENT_994 ; 994, (D879, bit 4) - const EVENT_995 ; 995, (D879, bit 5) - const EVENT_996 ; 996, (D879, bit 6) - const EVENT_997 ; 997, (D879, bit 7) - const EVENT_998 ; 998, (D87A, bit 0) - const EVENT_999 ; 999, (D87A, bit 1) - const EVENT_99A ; 99A, (D87A, bit 2) - const EVENT_99B ; 99B, (D87A, bit 3) - const EVENT_99C ; 99C, (D87A, bit 4) - const EVENT_99D ; 99D, (D87A, bit 5) - const EVENT_99E ; 99E, (D87A, bit 6) - const EVENT_99F ; 99F, (D87A, bit 7) - const EVENT_9A0 ; 9A0, (D87B, bit 0) - const EVENT_9A1 ; 9A1, (D87B, bit 1) - const EVENT_9A2 ; 9A2, (D87B, bit 2) - const EVENT_9A3 ; 9A3, (D87B, bit 3) - const EVENT_9A4 ; 9A4, (D87B, bit 4) - const EVENT_9A5 ; 9A5, (D87B, bit 5) - const EVENT_9A6 ; 9A6, (D87B, bit 6) - const EVENT_9A7 ; 9A7, (D87B, bit 7) - const EVENT_9A8 ; 9A8, (D87C, bit 0) - const EVENT_9A9 ; 9A9, (D87C, bit 1) - const EVENT_9AA ; 9AA, (D87C, bit 2) - const EVENT_9AB ; 9AB, (D87C, bit 3) - const EVENT_9AC ; 9AC, (D87C, bit 4) - const EVENT_9AD ; 9AD, (D87C, bit 5) - const EVENT_9AE ; 9AE, (D87C, bit 6) - const EVENT_9AF ; 9AF, (D87C, bit 7) - const EVENT_9B0 ; 9B0, (D87D, bit 0) - const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_0 ; 9B1, (D87D, bit 1) - const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_1 ; 9B2, (D87D, bit 2) - const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_2 ; 9B3, (D87D, bit 3) - const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_3 ; 9B4, (D87D, bit 4) - const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_4 ; 9B5, (D87D, bit 5) - const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_5 ; 9B6, (D87D, bit 6) - const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_6 ; 9B7, (D87D, bit 7) - const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_7 ; 9B8, (D87E, bit 0) - const EVENT_9B9 ; 9B9, (D87E, bit 1) - const EVENT_9BA ; 9BA, (D87E, bit 2) - const EVENT_9BB ; 9BB, (D87E, bit 3) - const EVENT_9BC ; 9BC, (D87E, bit 4) - const EVENT_9BD ; 9BD, (D87E, bit 5) - const EVENT_9BE ; 9BE, (D87E, bit 6) - const EVENT_9BF ; 9BF, (D87E, bit 7) - const EVENT_SEAFOAM2_BOULDER1_DOWN_HOLE ; 9C0, (D87F, bit 0) - const EVENT_SEAFOAM2_BOULDER2_DOWN_HOLE ; 9C1, (D87F, bit 1) - const EVENT_9C2 ; 9C2, (D87F, bit 2) - const EVENT_9C3 ; 9C3, (D87F, bit 3) - const EVENT_9C4 ; 9C4, (D87F, bit 4) - const EVENT_9C5 ; 9C5, (D87F, bit 5) - const EVENT_9C6 ; 9C6, (D87F, bit 6) - const EVENT_9C7 ; 9C7, (D87F, bit 7) - const EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE ; 9C8, (D880, bit 0) - const EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE ; 9C9, (D880, bit 1) - const EVENT_9CA ; 9CA, (D880, bit 2) - const EVENT_9CB ; 9CB, (D880, bit 3) - const EVENT_9CC ; 9CC, (D880, bit 4) - const EVENT_9CD ; 9CD, (D880, bit 5) - const EVENT_9CE ; 9CE, (D880, bit 6) - const EVENT_9CF ; 9CF, (D880, bit 7) - const EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE ; 9D0, (D881, bit 0) - const EVENT_SEAFOAM4_BOULDER2_DOWN_HOLE ; 9D1, (D881, bit 1) - const EVENT_9D2 ; 9D2, (D881, bit 2) - const EVENT_9D3 ; 9D3, (D881, bit 3) - const EVENT_9D4 ; 9D4, (D881, bit 4) - const EVENT_9D5 ; 9D5, (D881, bit 5) - const EVENT_9D6 ; 9D6, (D881, bit 6) - const EVENT_9D7 ; 9D7, (D881, bit 7) - const EVENT_9D8 ; 9D8, (D882, bit 0) - const EVENT_9D9 ; 9D9, (D882, bit 1) - const EVENT_BEAT_ARTICUNO ; 9DA, (D882, bit 2) - const EVENT_9DB ; 9DB, (D882, bit 3) - const EVENT_9DC ; 9DC, (D882, bit 4) - const EVENT_9DD ; 9DD, (D882, bit 5) - const EVENT_9DE ; 9DE, (D882, bit 6) - const EVENT_9DF ; 9DF, (D882, bit 7) - const EVENT_9E0 ; 9E0, (D883, bit 0) - const EVENT_9E1 ; 9E1, (D883, bit 1) - const EVENT_9E2 ; 9E2, (D883, bit 2) - const EVENT_9E3 ; 9E3, (D883, bit 3) - const EVENT_9E4 ; 9E4, (D883, bit 4) - const EVENT_9E5 ; 9E5, (D883, bit 5) - const EVENT_9E6 ; 9E6, (D883, bit 6) - const EVENT_9E7 ; 9E7, (D883, bit 7) - const EVENT_9E8 ; 9E8, (D884, bit 0) - const EVENT_9E9 ; 9E9, (D884, bit 1) - const EVENT_9EA ; 9EA, (D884, bit 2) - const EVENT_9EB ; 9EB, (D884, bit 3) - const EVENT_9EC ; 9EC, (D884, bit 4) - const EVENT_9ED ; 9ED, (D884, bit 5) - const EVENT_9EE ; 9EE, (D884, bit 6) - const EVENT_9EF ; 9EF, (D884, bit 7) - const EVENT_9F0 ; 9F0, (D885, bit 0) - const EVENT_9F1 ; 9F1, (D885, bit 1) - const EVENT_9F2 ; 9F2, (D885, bit 2) - const EVENT_9F3 ; 9F3, (D885, bit 3) - const EVENT_9F4 ; 9F4, (D885, bit 4) - const EVENT_9F5 ; 9F5, (D885, bit 5) - const EVENT_9F6 ; 9F6, (D885, bit 6) - const EVENT_9F7 ; 9F7, (D885, bit 7) - const EVENT_9F8 ; 9F8, (D886, bit 0) - const EVENT_9F9 ; 9F9, (D886, bit 1) - const EVENT_9FA ; 9FA, (D886, bit 2) - const EVENT_9FB ; 9FB, (D886, bit 3) - const EVENT_9FC ; 9FC, (D886, bit 4) - const EVENT_9FD ; 9FD, (D886, bit 5) - const EVENT_9FE ; 9FE, (D886, bit 6) - const EVENT_9FF ; 9FF, (D886, bit 7) +; Pallet Town events + const_def + const EVENT_FOLLOWED_OAK_INTO_LAB + const_skip 2 + const EVENT_HALL_OF_FAME_DEX_RATING + const_skip + const EVENT_PLAYER_AT_RIGHT_EXIT_TO_PALLET_TOWN + const EVENT_PALLET_AFTER_GETTING_POKEBALLS + const_skip 17 + const EVENT_GOT_TOWN_MAP + const EVENT_ENTERED_BLUES_HOUSE + const EVENT_DAISY_WALKING + const_skip 5 + const EVENT_FOLLOWED_OAK_INTO_LAB_2 + const EVENT_OAK_ASKED_TO_CHOOSE_MON + const EVENT_GOT_STARTER + const EVENT_BATTLED_RIVAL_IN_OAKS_LAB + const EVENT_GOT_POKEBALLS_FROM_OAK + const EVENT_GOT_POKEDEX + const EVENT_PALLET_AFTER_GETTING_POKEBALLS_2 + const EVENT_OAK_APPEARED_IN_PALLET -NUM_EVENT_FLAGS EQU const_value +; Viridian City events + const_next $28 + const EVENT_VIRIDIAN_GYM_OPEN + const EVENT_GOT_TM42 + const_skip 2 + const EVENT_02C + const EVENT_02D + const EVENT_02E + const EVENT_02F + const_skip 8 + const EVENT_OAK_GOT_PARCEL + const EVENT_GOT_OAKS_PARCEL + const_skip 22 + const EVENT_GOT_TM27 + const EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI + const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_0 + const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_1 + const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_2 + const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_3 + const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_4 + const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_5 + const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_6 + const EVENT_BEAT_VIRIDIAN_GYM_TRAINER_7 + +; Pewter City events + const_next $68 + const EVENT_BOUGHT_MUSEUM_TICKET + const EVENT_GOT_OLD_AMBER + const_skip 8 + const EVENT_BEAT_PEWTER_GYM_TRAINER_0 + const_skip 3 + const EVENT_GOT_TM34 + const EVENT_BEAT_BROCK + +; Cerulean City events + const_next $98 + const EVENT_BEAT_CERULEAN_RIVAL + const_skip 14 + const EVENT_BEAT_CERULEAN_ROCKET_THIEF + const EVENT_GOT_BULBASAUR_IN_CERULEAN + const_skip 17 + const EVENT_BEAT_CERULEAN_GYM_TRAINER_0 + const EVENT_BEAT_CERULEAN_GYM_TRAINER_1 + const_skip 2 + const EVENT_GOT_TM11 + const EVENT_BEAT_MISTY + const EVENT_GOT_BICYCLE + +; Lavender Town events + const_next $F0 - 2 + const EVENT_POKEMON_TOWER_RIVAL_ON_LEFT + const EVENT_BEAT_POKEMON_TOWER_RIVAL + const_skip + const EVENT_BEAT_POKEMONTOWER_3_TRAINER_0 + const EVENT_BEAT_POKEMONTOWER_3_TRAINER_1 + const EVENT_BEAT_POKEMONTOWER_3_TRAINER_2 + const_skip 5 + const EVENT_BEAT_POKEMONTOWER_4_TRAINER_0 + const EVENT_BEAT_POKEMONTOWER_4_TRAINER_1 + const EVENT_BEAT_POKEMONTOWER_4_TRAINER_2 + const_skip 6 + const EVENT_BEAT_POKEMONTOWER_5_TRAINER_0 + const EVENT_BEAT_POKEMONTOWER_5_TRAINER_1 + const EVENT_BEAT_POKEMONTOWER_5_TRAINER_2 + const EVENT_BEAT_POKEMONTOWER_5_TRAINER_3 + const_skip + const EVENT_IN_PURIFIED_ZONE + const_skip + const EVENT_BEAT_POKEMONTOWER_6_TRAINER_0 + const EVENT_BEAT_POKEMONTOWER_6_TRAINER_1 + const EVENT_BEAT_POKEMONTOWER_6_TRAINER_2 + const_skip 3 + const EVENT_BEAT_GHOST_MAROWAK + const_skip + const EVENT_BEAT_POKEMONTOWER_7_TRAINER_0 + const EVENT_BEAT_POKEMONTOWER_7_TRAINER_1 + const EVENT_BEAT_POKEMONTOWER_7_TRAINER_2 + const_skip 3 + const EVENT_RESCUED_MR_FUJI_2 + const_skip 16 + const EVENT_GOT_POKE_FLUTE + const_skip 30 + const EVENT_GOT_SQUIRTLE_FROM_OFFICER_JENNY + +; Vermilion City events + const_next $150 + const_skip + const EVENT_GOT_BIKE_VOUCHER + const EVENT_152 + const_skip 3 + const EVENT_SEEL_FAN_BOAST + const EVENT_PIKACHU_FAN_BOAST + const_skip 8 + const EVENT_2ND_LOCK_OPENED + const EVENT_1ST_LOCK_OPENED + const EVENT_BEAT_VERMILION_GYM_TRAINER_0 + const EVENT_BEAT_VERMILION_GYM_TRAINER_1 + const EVENT_BEAT_VERMILION_GYM_TRAINER_2 + const_skip + const EVENT_GOT_TM24 + const EVENT_BEAT_LT_SURGE + +; Celadon City events + const_next $180 + const EVENT_GOT_TM41 + const_skip 11 + const EVENT_GOT_TM13 + const EVENT_GOT_TM48 + const EVENT_GOT_TM49 + const EVENT_GOT_TM18 + const_skip 24 + const EVENT_GOT_TM21 + const EVENT_BEAT_ERIKA + const EVENT_BEAT_CELADON_GYM_TRAINER_0 + const EVENT_BEAT_CELADON_GYM_TRAINER_1 + const EVENT_BEAT_CELADON_GYM_TRAINER_2 + const EVENT_BEAT_CELADON_GYM_TRAINER_3 + const EVENT_BEAT_CELADON_GYM_TRAINER_4 + const EVENT_BEAT_CELADON_GYM_TRAINER_5 + const EVENT_BEAT_CELADON_GYM_TRAINER_6 + const_skip 7 + const EVENT_1B8 ; ??? + const EVENT_FOUND_ROCKET_HIDEOUT + const EVENT_GOT_10_COINS + const EVENT_GOT_20_COINS + const EVENT_GOT_20_COINS_2 + const_skip 2 + const EVENT_1BF ; ??? + const_skip 32 + const EVENT_GOT_COIN_CASE + +; Fuchsia City events + const_next $238 + const EVENT_GOT_HM04 + const EVENT_GAVE_GOLD_TEETH + const_skip 20 + const EVENT_SAFARI_GAME_OVER + const EVENT_IN_SAFARI_ZONE + const_skip 8 + const EVENT_GOT_TM06 + const EVENT_BEAT_KOGA + const EVENT_BEAT_FUCHSIA_GYM_TRAINER_0 + const EVENT_BEAT_FUCHSIA_GYM_TRAINER_1 + const EVENT_BEAT_FUCHSIA_GYM_TRAINER_2 + const EVENT_BEAT_FUCHSIA_GYM_TRAINER_3 + const EVENT_BEAT_FUCHSIA_GYM_TRAINER_4 + const EVENT_BEAT_FUCHSIA_GYM_TRAINER_5 + +; Cinnabar Island events + const_next $278 + const EVENT_MANSION_SWITCH_ON + const_skip 16 + const EVENT_BEAT_MANSION_1_TRAINER_0 + const_skip 14 + const EVENT_GOT_TM38 + const EVENT_BEAT_BLAINE + const EVENT_BEAT_CINNABAR_GYM_TRAINER_0 + const EVENT_BEAT_CINNABAR_GYM_TRAINER_1 + const EVENT_BEAT_CINNABAR_GYM_TRAINER_2 + const EVENT_BEAT_CINNABAR_GYM_TRAINER_3 + const EVENT_BEAT_CINNABAR_GYM_TRAINER_4 + const EVENT_BEAT_CINNABAR_GYM_TRAINER_5 + const EVENT_BEAT_CINNABAR_GYM_TRAINER_6 + const_skip 6 + const EVENT_2A7 ; ??? + const EVENT_CINNABAR_GYM_GATE0_UNLOCKED + const EVENT_CINNABAR_GYM_GATE1_UNLOCKED + const EVENT_CINNABAR_GYM_GATE2_UNLOCKED + const EVENT_CINNABAR_GYM_GATE3_UNLOCKED + const EVENT_CINNABAR_GYM_GATE4_UNLOCKED + const EVENT_CINNABAR_GYM_GATE5_UNLOCKED + const EVENT_CINNABAR_GYM_GATE6_UNLOCKED + const_skip 40 + const EVENT_GOT_TM35 + const_skip 8 + const EVENT_GAVE_FOSSIL_TO_LAB + const EVENT_LAB_STILL_REVIVING_FOSSIL + const EVENT_LAB_HANDING_OVER_FOSSIL_MON + +; Saffron City events + const_next $340 + const EVENT_GOT_TM31 + const_skip 15 + const EVENT_DEFEATED_FIGHTING_DOJO + const EVENT_BEAT_KARATE_MASTER + const EVENT_BEAT_FIGHTING_DOJO_TRAINER_0 + const EVENT_BEAT_FIGHTING_DOJO_TRAINER_1 + const EVENT_BEAT_FIGHTING_DOJO_TRAINER_2 + const EVENT_BEAT_FIGHTING_DOJO_TRAINER_3 + const EVENT_GOT_HITMONLEE + const EVENT_GOT_HITMONCHAN + const_skip 8 + const EVENT_GOT_TM46 + const EVENT_BEAT_SABRINA + const EVENT_BEAT_SAFFRON_GYM_TRAINER_0 + const EVENT_BEAT_SAFFRON_GYM_TRAINER_1 + const EVENT_BEAT_SAFFRON_GYM_TRAINER_2 + const EVENT_BEAT_SAFFRON_GYM_TRAINER_3 + const EVENT_BEAT_SAFFRON_GYM_TRAINER_4 + const EVENT_BEAT_SAFFRON_GYM_TRAINER_5 + const EVENT_BEAT_SAFFRON_GYM_TRAINER_6 + const_skip 46 + const EVENT_SILPH_CO_RECEPTIONIST_AT_DESK + const_skip 24 + const EVENT_GOT_TM29 + +; Route 1 events + const_next $3C0 + const EVENT_GOT_POTION_SAMPLE + +; Route 2 events + const_next $3D8 + const EVENT_GOT_HM05 + +; Route 3 events + const_next $3E0 + const_skip 2 + const EVENT_BEAT_ROUTE_3_TRAINER_0 + const EVENT_BEAT_ROUTE_3_TRAINER_1 + const EVENT_BEAT_ROUTE_3_TRAINER_2 + const EVENT_BEAT_ROUTE_3_TRAINER_3 + const EVENT_BEAT_ROUTE_3_TRAINER_4 + const EVENT_BEAT_ROUTE_3_TRAINER_5 + const EVENT_BEAT_ROUTE_3_TRAINER_6 + const EVENT_BEAT_ROUTE_3_TRAINER_7 + +; Route 4 events + const_next $3F0 + const_skip 2 + const EVENT_BEAT_ROUTE_4_TRAINER_0 + const_skip 12 + const EVENT_BOUGHT_MAGIKARP + +; Route 6 events + const_next $410 + const_skip + const EVENT_BEAT_ROUTE_6_TRAINER_0 + const EVENT_BEAT_ROUTE_6_TRAINER_1 + const EVENT_BEAT_ROUTE_6_TRAINER_2 + const EVENT_BEAT_ROUTE_6_TRAINER_3 + const EVENT_BEAT_ROUTE_6_TRAINER_4 + const EVENT_BEAT_ROUTE_6_TRAINER_5 + +; Route 8 events + const_next $430 + const_skip + const EVENT_BEAT_ROUTE_8_TRAINER_0 + const EVENT_BEAT_ROUTE_8_TRAINER_1 + const EVENT_BEAT_ROUTE_8_TRAINER_2 + const EVENT_BEAT_ROUTE_8_TRAINER_3 + const EVENT_BEAT_ROUTE_8_TRAINER_4 + const EVENT_BEAT_ROUTE_8_TRAINER_5 + const EVENT_BEAT_ROUTE_8_TRAINER_6 + const EVENT_BEAT_ROUTE_8_TRAINER_7 + const EVENT_BEAT_ROUTE_8_TRAINER_8 + +; Route 9 events + const_next $440 + const_skip + const EVENT_BEAT_ROUTE_9_TRAINER_0 + const EVENT_BEAT_ROUTE_9_TRAINER_1 + const EVENT_BEAT_ROUTE_9_TRAINER_2 + const EVENT_BEAT_ROUTE_9_TRAINER_3 + const EVENT_BEAT_ROUTE_9_TRAINER_4 + const EVENT_BEAT_ROUTE_9_TRAINER_5 + const EVENT_BEAT_ROUTE_9_TRAINER_6 + const EVENT_BEAT_ROUTE_9_TRAINER_7 + const EVENT_BEAT_ROUTE_9_TRAINER_8 + +; Route 10 events + const_next $450 + const_skip + const EVENT_BEAT_ROUTE_10_TRAINER_0 + const EVENT_BEAT_ROUTE_10_TRAINER_1 + const EVENT_BEAT_ROUTE_10_TRAINER_2 + const EVENT_BEAT_ROUTE_10_TRAINER_3 + const EVENT_BEAT_ROUTE_10_TRAINER_4 + const EVENT_BEAT_ROUTE_10_TRAINER_5 + const_skip 2 + const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_0 + const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_1 + const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_2 + const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_3 + const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_4 + const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_5 + const EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_6 + const_skip + const EVENT_BEAT_POWER_PLANT_VOLTORB_0 + const EVENT_BEAT_POWER_PLANT_VOLTORB_1 + const EVENT_BEAT_POWER_PLANT_VOLTORB_2 + const EVENT_BEAT_POWER_PLANT_VOLTORB_3 + const EVENT_BEAT_POWER_PLANT_VOLTORB_4 + const EVENT_BEAT_POWER_PLANT_VOLTORB_5 + const EVENT_BEAT_POWER_PLANT_VOLTORB_6 + const EVENT_BEAT_POWER_PLANT_VOLTORB_7 + const EVENT_BEAT_ZAPDOS + +; Route 11 events + const_next $470 + const_skip + const EVENT_BEAT_ROUTE_11_TRAINER_0 + const EVENT_BEAT_ROUTE_11_TRAINER_1 + const EVENT_BEAT_ROUTE_11_TRAINER_2 + const EVENT_BEAT_ROUTE_11_TRAINER_3 + const EVENT_BEAT_ROUTE_11_TRAINER_4 + const EVENT_BEAT_ROUTE_11_TRAINER_5 + const EVENT_BEAT_ROUTE_11_TRAINER_6 + const EVENT_BEAT_ROUTE_11_TRAINER_7 + const EVENT_BEAT_ROUTE_11_TRAINER_8 + const EVENT_BEAT_ROUTE_11_TRAINER_9 + const_skip 4 + const EVENT_GOT_ITEMFINDER + +; Route 12 events + const_next $480 + const EVENT_GOT_TM39 + const_skip + const EVENT_BEAT_ROUTE_12_TRAINER_0 + const EVENT_BEAT_ROUTE_12_TRAINER_1 + const EVENT_BEAT_ROUTE_12_TRAINER_2 + const EVENT_BEAT_ROUTE_12_TRAINER_3 + const EVENT_BEAT_ROUTE_12_TRAINER_4 + const EVENT_BEAT_ROUTE_12_TRAINER_5 + const EVENT_BEAT_ROUTE_12_TRAINER_6 + const_skip 5 + const EVENT_FIGHT_ROUTE12_SNORLAX + const EVENT_BEAT_ROUTE12_SNORLAX + +; Route 13 events + const_next $490 + const_skip + const EVENT_BEAT_ROUTE_13_TRAINER_0 + const EVENT_BEAT_ROUTE_13_TRAINER_1 + const EVENT_BEAT_ROUTE_13_TRAINER_2 + const EVENT_BEAT_ROUTE_13_TRAINER_3 + const EVENT_BEAT_ROUTE_13_TRAINER_4 + const EVENT_BEAT_ROUTE_13_TRAINER_5 + const EVENT_BEAT_ROUTE_13_TRAINER_6 + const EVENT_BEAT_ROUTE_13_TRAINER_7 + const EVENT_BEAT_ROUTE_13_TRAINER_8 + const EVENT_BEAT_ROUTE_13_TRAINER_9 + +; Route 14 events + const_next $4A0 + const_skip + const EVENT_BEAT_ROUTE_14_TRAINER_0 + const EVENT_BEAT_ROUTE_14_TRAINER_1 + const EVENT_BEAT_ROUTE_14_TRAINER_2 + const EVENT_BEAT_ROUTE_14_TRAINER_3 + const EVENT_BEAT_ROUTE_14_TRAINER_4 + const EVENT_BEAT_ROUTE_14_TRAINER_5 + const EVENT_BEAT_ROUTE_14_TRAINER_6 + const EVENT_BEAT_ROUTE_14_TRAINER_7 + const EVENT_BEAT_ROUTE_14_TRAINER_8 + const EVENT_BEAT_ROUTE_14_TRAINER_9 + +; Route 15 events + const_next $4B0 + const EVENT_GOT_EXP_ALL + const EVENT_BEAT_ROUTE_15_TRAINER_0 + const EVENT_BEAT_ROUTE_15_TRAINER_1 + const EVENT_BEAT_ROUTE_15_TRAINER_2 + const EVENT_BEAT_ROUTE_15_TRAINER_3 + const EVENT_BEAT_ROUTE_15_TRAINER_4 + const EVENT_BEAT_ROUTE_15_TRAINER_5 + const EVENT_BEAT_ROUTE_15_TRAINER_6 + const EVENT_BEAT_ROUTE_15_TRAINER_7 + const EVENT_BEAT_ROUTE_15_TRAINER_8 + const EVENT_BEAT_ROUTE_15_TRAINER_9 + +; Route 16 events + const_next $4C0 + const_skip + const EVENT_BEAT_ROUTE_16_TRAINER_0 + const EVENT_BEAT_ROUTE_16_TRAINER_1 + const EVENT_BEAT_ROUTE_16_TRAINER_2 + const EVENT_BEAT_ROUTE_16_TRAINER_3 + const EVENT_BEAT_ROUTE_16_TRAINER_4 + const EVENT_BEAT_ROUTE_16_TRAINER_5 + const_skip + const EVENT_FIGHT_ROUTE16_SNORLAX + const EVENT_BEAT_ROUTE16_SNORLAX + const_skip 4 + const EVENT_GOT_HM02 + const EVENT_RESCUED_MR_FUJI + +; Route 17 events + const_next $4D0 + const_skip + const EVENT_BEAT_ROUTE_17_TRAINER_0 + const EVENT_BEAT_ROUTE_17_TRAINER_1 + const EVENT_BEAT_ROUTE_17_TRAINER_2 + const EVENT_BEAT_ROUTE_17_TRAINER_3 + const EVENT_BEAT_ROUTE_17_TRAINER_4 + const EVENT_BEAT_ROUTE_17_TRAINER_5 + const EVENT_BEAT_ROUTE_17_TRAINER_6 + const EVENT_BEAT_ROUTE_17_TRAINER_7 + const EVENT_BEAT_ROUTE_17_TRAINER_8 + const EVENT_BEAT_ROUTE_17_TRAINER_9 + +; Route 18 events + const_next $4E0 + const_skip + const EVENT_BEAT_ROUTE_18_TRAINER_0 + const EVENT_BEAT_ROUTE_18_TRAINER_1 + const EVENT_BEAT_ROUTE_18_TRAINER_2 + +; Route 19 events + const_next $4F0 + const_skip + const EVENT_BEAT_ROUTE_19_TRAINER_0 + const EVENT_BEAT_ROUTE_19_TRAINER_1 + const EVENT_BEAT_ROUTE_19_TRAINER_2 + const EVENT_BEAT_ROUTE_19_TRAINER_3 + const EVENT_BEAT_ROUTE_19_TRAINER_4 + const EVENT_BEAT_ROUTE_19_TRAINER_5 + const EVENT_BEAT_ROUTE_19_TRAINER_6 + const EVENT_BEAT_ROUTE_19_TRAINER_7 + const EVENT_BEAT_ROUTE_19_TRAINER_8 + const EVENT_BEAT_ROUTE_19_TRAINER_9 + +; Route 20 events + const_next $500 + const EVENT_IN_SEAFOAM_ISLANDS + const EVENT_BEAT_ROUTE_20_TRAINER_0 + const EVENT_BEAT_ROUTE_20_TRAINER_1 + const EVENT_BEAT_ROUTE_20_TRAINER_2 + const EVENT_BEAT_ROUTE_20_TRAINER_3 + const EVENT_BEAT_ROUTE_20_TRAINER_4 + const EVENT_BEAT_ROUTE_20_TRAINER_5 + const EVENT_BEAT_ROUTE_20_TRAINER_6 + const EVENT_BEAT_ROUTE_20_TRAINER_7 + const EVENT_BEAT_ROUTE_20_TRAINER_8 + const EVENT_BEAT_ROUTE_20_TRAINER_9 + const_skip 3 + const EVENT_SEAFOAM1_BOULDER1_DOWN_HOLE + const EVENT_SEAFOAM1_BOULDER2_DOWN_HOLE + +; Route 21 events + const_next $510 + const_skip + const EVENT_BEAT_ROUTE_21_TRAINER_0 + const EVENT_BEAT_ROUTE_21_TRAINER_1 + const EVENT_BEAT_ROUTE_21_TRAINER_2 + const EVENT_BEAT_ROUTE_21_TRAINER_3 + const EVENT_BEAT_ROUTE_21_TRAINER_4 + const EVENT_BEAT_ROUTE_21_TRAINER_5 + const EVENT_BEAT_ROUTE_21_TRAINER_6 + const EVENT_BEAT_ROUTE_21_TRAINER_7 + const EVENT_BEAT_ROUTE_21_TRAINER_8 + +; Route 22 events + const_next $520 + const EVENT_1ST_ROUTE22_RIVAL_BATTLE + const EVENT_2ND_ROUTE22_RIVAL_BATTLE + const_skip 3 + const EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE + const EVENT_BEAT_ROUTE22_RIVAL_2ND_BATTLE + const EVENT_ROUTE22_RIVAL_WANTS_BATTLE + +; Route 23 events + const_next $530 + const EVENT_PASSED_CASCADEBADGE_CHECK + const EVENT_PASSED_THUNDERBADGE_CHECK + const EVENT_PASSED_RAINBOWBADGE_CHECK + const EVENT_PASSED_SOULBADGE_CHECK + const EVENT_PASSED_MARSHBADGE_CHECK + const EVENT_PASSED_VOLCANOBADGE_CHECK + const EVENT_PASSED_EARTHBADGE_CHECK + const_skip + const EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1 + const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_0 + const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_1 + const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_2 + const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_3 + const EVENT_BEAT_VICTORY_ROAD_2_TRAINER_4 + const EVENT_BEAT_MOLTRES + const EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH2 + +; Route 24 events + const_next $540 + const EVENT_GOT_NUGGET + const EVENT_BEAT_ROUTE24_ROCKET + const EVENT_BEAT_ROUTE_24_TRAINER_0 + const EVENT_BEAT_ROUTE_24_TRAINER_1 + const EVENT_BEAT_ROUTE_24_TRAINER_2 + const EVENT_BEAT_ROUTE_24_TRAINER_3 + const EVENT_BEAT_ROUTE_24_TRAINER_4 + const EVENT_BEAT_ROUTE_24_TRAINER_5 + const_skip + const EVENT_NUGGET_REWARD_AVAILABLE + +; Route 25 events + const_next $550 - 1 + const EVENT_54F + const EVENT_MET_BILL + const EVENT_BEAT_ROUTE_25_TRAINER_0 + const EVENT_BEAT_ROUTE_25_TRAINER_1 + const EVENT_BEAT_ROUTE_25_TRAINER_2 + const EVENT_BEAT_ROUTE_25_TRAINER_3 + const EVENT_BEAT_ROUTE_25_TRAINER_4 + const EVENT_BEAT_ROUTE_25_TRAINER_5 + const EVENT_BEAT_ROUTE_25_TRAINER_6 + const EVENT_BEAT_ROUTE_25_TRAINER_7 + const EVENT_BEAT_ROUTE_25_TRAINER_8 + const_skip + const EVENT_USED_CELL_SEPARATOR_ON_BILL + const EVENT_GOT_SS_TICKET + const EVENT_MET_BILL_2 + const EVENT_BILL_SAID_USE_CELL_SEPARATOR + const EVENT_LEFT_BILLS_HOUSE_AFTER_HELPING + +; Viridian Forest events + const_next $560 + const_skip 2 + const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_0 + const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_1 + const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_2 + const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_3 + const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_4 + +; Mt. Moon events + const_next $570 + const_skip + const EVENT_BEAT_MT_MOON_1_TRAINER_0 + const EVENT_BEAT_MT_MOON_1_TRAINER_1 + const EVENT_BEAT_MT_MOON_1_TRAINER_2 + const EVENT_BEAT_MT_MOON_1_TRAINER_3 + const EVENT_BEAT_MT_MOON_1_TRAINER_4 + const EVENT_BEAT_MT_MOON_1_TRAINER_5 + const EVENT_BEAT_MT_MOON_1_TRAINER_6 + const EVENT_GOT_DOME_FOSSIL + const EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD + const EVENT_BEAT_MT_MOON_3_TRAINER_0 + const EVENT_BEAT_MT_MOON_3_TRAINER_1 + const EVENT_BEAT_MT_MOON_3_TRAINER_2 + const EVENT_BEAT_MT_MOON_3_TRAINER_3 + const EVENT_57E + const EVENT_GOT_HELIX_FOSSIL + +; S.S. Anne events + const_next $5C0 + const_skip 4 + const EVENT_BEAT_SS_ANNE_5_TRAINER_0 + const EVENT_BEAT_SS_ANNE_5_TRAINER_1 + const_skip 26 + const EVENT_GOT_HM01 + const EVENT_RUBBED_CAPTAINS_BACK + const EVENT_SS_ANNE_LEFT + const EVENT_WALKED_PAST_GUARD_AFTER_SS_ANNE_LEFT + const EVENT_STARTED_WALKING_OUT_OF_DOCK + const EVENT_WALKED_OUT_OF_DOCK + const_skip 11 + const EVENT_BEAT_SS_ANNE_8_TRAINER_0 + const EVENT_BEAT_SS_ANNE_8_TRAINER_1 + const EVENT_BEAT_SS_ANNE_8_TRAINER_2 + const EVENT_BEAT_SS_ANNE_8_TRAINER_3 + const_skip 12 + const EVENT_BEAT_SS_ANNE_9_TRAINER_0 + const EVENT_BEAT_SS_ANNE_9_TRAINER_1 + const EVENT_BEAT_SS_ANNE_9_TRAINER_2 + const EVENT_BEAT_SS_ANNE_9_TRAINER_3 + const_skip 12 + const EVENT_BEAT_SS_ANNE_10_TRAINER_0 + const EVENT_BEAT_SS_ANNE_10_TRAINER_1 + const EVENT_BEAT_SS_ANNE_10_TRAINER_2 + const EVENT_BEAT_SS_ANNE_10_TRAINER_3 + const EVENT_BEAT_SS_ANNE_10_TRAINER_4 + const EVENT_BEAT_SS_ANNE_10_TRAINER_5 + +; Victory Road 3F events + const_next $660 + const EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1 + const EVENT_BEAT_VICTORY_ROAD_3_TRAINER_0 + const EVENT_BEAT_VICTORY_ROAD_3_TRAINER_1 + const EVENT_BEAT_VICTORY_ROAD_3_TRAINER_2 + const EVENT_BEAT_VICTORY_ROAD_3_TRAINER_3 + const_skip + const EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH2 + +; Rocket Hideout events + const_next $670 + const_skip + const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_0 + const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_1 + const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_2 + const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_3 + const EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_4 + const_skip + const EVENT_677 ; ??? + const_skip 7 + const EVENT_67F ; ??? + const_skip + const EVENT_BEAT_ROCKET_HIDEOUT_2_TRAINER_0 + const_skip 15 + const EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_0 + const EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_1 + const_skip 13 + const EVENT_6A0 + const_skip + const EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0 + const EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_1 + const EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2 + const EVENT_ROCKET_HIDEOUT_4_DOOR_UNLOCKED + const EVENT_ROCKET_DROPPED_LIFT_KEY + const EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI + +; Silph Co. events + const_next $6F0 + const_skip 2 + const EVENT_BEAT_SILPH_CO_2F_TRAINER_0 + const EVENT_BEAT_SILPH_CO_2F_TRAINER_1 + const EVENT_BEAT_SILPH_CO_2F_TRAINER_2 + const EVENT_BEAT_SILPH_CO_2F_TRAINER_3 + const_skip 7 + const EVENT_SILPH_CO_2_UNLOCKED_DOOR1 + const EVENT_SILPH_CO_2_UNLOCKED_DOOR2 + const EVENT_GOT_TM36 + const_skip 2 + const EVENT_BEAT_SILPH_CO_3F_TRAINER_0 + const EVENT_BEAT_SILPH_CO_3F_TRAINER_1 + const_skip 4 + const EVENT_SILPH_CO_3_UNLOCKED_DOOR1 + const EVENT_SILPH_CO_3_UNLOCKED_DOOR2 + const_skip 8 + const EVENT_BEAT_SILPH_CO_4F_TRAINER_0 + const EVENT_BEAT_SILPH_CO_4F_TRAINER_1 + const EVENT_BEAT_SILPH_CO_4F_TRAINER_2 + const_skip 3 + const EVENT_SILPH_CO_4_UNLOCKED_DOOR1 + const EVENT_SILPH_CO_4_UNLOCKED_DOOR2 + const_skip 8 + const EVENT_BEAT_SILPH_CO_5F_TRAINER_0 + const EVENT_BEAT_SILPH_CO_5F_TRAINER_1 + const EVENT_BEAT_SILPH_CO_5F_TRAINER_2 + const EVENT_BEAT_SILPH_CO_5F_TRAINER_3 + const_skip 2 + const EVENT_SILPH_CO_5_UNLOCKED_DOOR1 + const EVENT_SILPH_CO_5_UNLOCKED_DOOR2 + const EVENT_SILPH_CO_5_UNLOCKED_DOOR3 + const_skip 11 + const EVENT_BEAT_SILPH_CO_6F_TRAINER_0 + const EVENT_BEAT_SILPH_CO_6F_TRAINER_1 + const EVENT_BEAT_SILPH_CO_6F_TRAINER_2 + const_skip 6 + const EVENT_SILPH_CO_6_UNLOCKED_DOOR + const EVENT_BEAT_SILPH_CO_RIVAL + const_skip 4 + const EVENT_BEAT_SILPH_CO_7F_TRAINER_0 + const EVENT_BEAT_SILPH_CO_7F_TRAINER_1 + const EVENT_BEAT_SILPH_CO_7F_TRAINER_2 + const EVENT_BEAT_SILPH_CO_7F_TRAINER_3 + const_skip 3 + const EVENT_SILPH_CO_7_UNLOCKED_DOOR1 + const EVENT_SILPH_CO_7_UNLOCKED_DOOR2 + const EVENT_SILPH_CO_7_UNLOCKED_DOOR3 + const_skip 3 + const EVENT_BEAT_SILPH_CO_8F_TRAINER_0 + const EVENT_BEAT_SILPH_CO_8F_TRAINER_1 + const EVENT_BEAT_SILPH_CO_8F_TRAINER_2 + const_skip 3 + const EVENT_SILPH_CO_8_UNLOCKED_DOOR + const_skip 9 + const EVENT_BEAT_SILPH_CO_9F_TRAINER_0 + const EVENT_BEAT_SILPH_CO_9F_TRAINER_1 + const EVENT_BEAT_SILPH_CO_9F_TRAINER_2 + const_skip 3 + const EVENT_SILPH_CO_9_UNLOCKED_DOOR1 + const EVENT_SILPH_CO_9_UNLOCKED_DOOR2 + const EVENT_SILPH_CO_9_UNLOCKED_DOOR3 + const EVENT_SILPH_CO_9_UNLOCKED_DOOR4 + const_skip 5 + const EVENT_BEAT_SILPH_CO_10F_TRAINER_0 + const EVENT_BEAT_SILPH_CO_10F_TRAINER_1 + const_skip 5 + const EVENT_SILPH_CO_10_UNLOCKED_DOOR + const_skip 7 + const EVENT_780 + const EVENT_781 + const EVENT_782 + const_skip + const EVENT_BEAT_SILPH_CO_11F_TRAINER_0 + const EVENT_BEAT_SILPH_CO_11F_TRAINER_1 + const_skip 2 + const EVENT_SILPH_CO_11_UNLOCKED_DOOR + const_skip 4 + const EVENT_GOT_MASTER_BALL + const_skip + const EVENT_BEAT_SILPH_CO_GIOVANNI + +; Pokémon Mansion events + const_next $800 + const_skip + const EVENT_BEAT_MANSION_2_TRAINER_0 + const_skip 15 + const EVENT_BEAT_MANSION_3_TRAINER_0 + const EVENT_BEAT_MANSION_3_TRAINER_1 + const_skip 14 + const EVENT_BEAT_MANSION_4_TRAINER_0 + const EVENT_BEAT_MANSION_4_TRAINER_1 + +; Safari Zone events + const_next $880 + const EVENT_GOT_HM03 + +; Cerulean Cave events + const_next $8C0 + const_skip + const EVENT_BEAT_MEWTWO + +; Indigo Plateau events + const_next $8E0 + const ELITE4_EVENTS_START + const EVENT_BEAT_LORELEIS_ROOM_TRAINER_0 + const_skip 4 + const EVENT_AUTOWALKED_INTO_LORELEIS_ROOM + const_skip 2 + const EVENT_BEAT_BRUNOS_ROOM_TRAINER_0 + const_skip 4 + const EVENT_AUTOWALKED_INTO_BRUNOS_ROOM + const_skip 2 + const EVENT_BEAT_AGATHAS_ROOM_TRAINER_0 + const_skip 4 + const EVENT_AUTOWALKED_INTO_AGATHAS_ROOM + const_skip 2 + const EVENT_BEAT_LANCES_ROOM_TRAINER_0 + const_skip 4 + const EVENT_BEAT_LANCE + const EVENT_LANCES_ROOM_LOCK_DOOR + const_skip + const EVENT_BEAT_CHAMPION_RIVAL + const_skip 5 + const ELITE4_CHAMPION_EVENTS_END + +; Victory Road 1F events + const_next $910 + const_skip + const EVENT_BEAT_VICTORY_ROAD_1_TRAINER_0 + const EVENT_BEAT_VICTORY_ROAD_1_TRAINER_1 + const_skip 4 + const EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH + +; Rock Tunnel events + const_next $9B0 + const_skip + const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_0 + const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_1 + const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_2 + const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_3 + const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_4 + const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_5 + const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_6 + const EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_7 + +; Seafoam Islands events + const_next $9C0 + const EVENT_SEAFOAM2_BOULDER1_DOWN_HOLE + const EVENT_SEAFOAM2_BOULDER2_DOWN_HOLE + const_skip 6 + const EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE + const EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE + const_skip 6 + const EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE + const EVENT_SEAFOAM4_BOULDER2_DOWN_HOLE + const_skip 8 + const EVENT_BEAT_ARTICUNO + +; End of events + const_next $A00 +NUM_EVENTS EQU const_value diff --git a/constants/evolution_constants.asm b/constants/evolution_constants.asm deleted file mode 100755 index 86c466d8c..000000000 --- a/constants/evolution_constants.asm +++ /dev/null @@ -1,9 +0,0 @@ -; See data/evos_moves.asm - -; Evolution types -EV_LEVEL EQU 1 -EV_ITEM EQU 2 -EV_TRADE EQU 3 - -MAX_EVOLUTIONS EQU 3 -EVOLUTION_SIZE EQU 4 diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm new file mode 100644 index 000000000..912e58357 --- /dev/null +++ b/constants/gfx_constants.asm @@ -0,0 +1,43 @@ +TILE_WIDTH EQU 8 ; pixels +LEN_1BPP_TILE EQU 1 * TILE_WIDTH ; bytes +LEN_2BPP_TILE EQU 2 * TILE_WIDTH ; bytes + +NUM_PAL_COLORS EQU 4 +PAL_COLOR_SIZE EQU 2 +PALETTE_SIZE EQU NUM_PAL_COLORS * PAL_COLOR_SIZE + +SCREEN_WIDTH EQU 20 +SCREEN_HEIGHT EQU 18 +SCREEN_WIDTH_PX EQU SCREEN_WIDTH * TILE_WIDTH ; pixels +SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * TILE_WIDTH ; pixels + +BG_MAP_WIDTH EQU 32 ; tiles +BG_MAP_HEIGHT EQU 32 ; tiles + +SPRITEBUFFERSIZE EQU 7 * 7 * LEN_1BPP_TILE + +; HP bar +HP_BAR_GREEN EQU 0 +HP_BAR_YELLOW EQU 1 +HP_BAR_RED EQU 2 + +; hAutoBGTransferEnabled +TRANSFERTOP EQU 0 +TRANSFERMIDDLE EQU 1 +TRANSFERBOTTOM EQU 2 + +; hRedrawRowOrColumnMode +REDRAW_COL EQU 1 +REDRAW_ROW EQU 2 + +; tile list ids +; TileIDListPointerTable indexes (see data/tilemaps.asm) + const_def + const TILEMAP_MON_PIC + const TILEMAP_SLIDE_DOWN_MON_PIC_7X5 + const TILEMAP_SLIDE_DOWN_MON_PIC_7X3 + const TILEMAP_GENGAR_INTRO_1 + const TILEMAP_GENGAR_INTRO_2 + const TILEMAP_GENGAR_INTRO_3 + const TILEMAP_GAME_BOY + const TILEMAP_LINK_CABLE diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm index 9f2aa1b70..993a02f5f 100644 --- a/constants/hardware_constants.asm +++ b/constants/hardware_constants.asm @@ -2,6 +2,19 @@ GBC EQU $11 +; memory map +VRAM_Begin EQU $8000 +VRAM_End EQU $a000 +SRAM_Begin EQU $a000 +SRAM_End EQU $c000 +WRAM0_Begin EQU $c000 +WRAM0_End EQU $d000 +WRAM1_Begin EQU $d000 +WRAM1_End EQU $e000 +; hardware registers $ff00-$ff80 (see below) +HRAM_Begin EQU $ff80 +HRAM_End EQU $ffff + ; MBC1 MBC1SRamEnable EQU $0000 MBC1RomBank EQU $2000 @@ -64,6 +77,22 @@ rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Initial (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) rLCDC_ENABLE EQU 7 rLCDC_ENABLE_MASK EQU 1 << rLCDC_ENABLE diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index de0addaf8..54d277692 100755 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -1,9 +1,12 @@ +HIDE EQU $11 +SHOW EQU $15 + +; MissableObjects indexes (see data/maps/hide_show_data.asm) ; this is a list of the sprites that can be enabled/disabled during the game ; there may be unused sprites, but these will remain unmarked until ; the disassembly is complete const_def - const HS_PALLET_TOWN_OAK ; 00 const HS_LYING_OLD_MAN ; 01 const HS_OLD_MAN_1 ; 02 diff --git a/constants/icon_constants.asm b/constants/icon_constants.asm new file mode 100644 index 000000000..bc73632ef --- /dev/null +++ b/constants/icon_constants.asm @@ -0,0 +1,18 @@ +; party menu icons +; used in MonPartySpritePointers (see data/icon_pointers.asm) + const_def + const ICON_MON ; $0 + const ICON_BALL ; $1 + const ICON_HELIX ; $2 + const ICON_FAIRY ; $3 + const ICON_BIRD ; $4 + const ICON_WATER ; $5 + const ICON_BUG ; $6 + const ICON_GRASS ; $7 + const ICON_SNAKE ; $8 + const ICON_QUADRUPED ; $9 + const ICON_PIKACHU ; $A + +ICON_TRADEBUBBLE EQU $e + +ICONOFFSET EQU $40 ; difference between alternating icon frames' tile IDs diff --git a/constants/input_constants.asm b/constants/input_constants.asm new file mode 100644 index 000000000..7984d5a90 --- /dev/null +++ b/constants/input_constants.asm @@ -0,0 +1,20 @@ +; joypad buttons + const_def + const BIT_A_BUTTON + const BIT_B_BUTTON + const BIT_SELECT + const BIT_START + const BIT_D_RIGHT + const BIT_D_LEFT + const BIT_D_UP + const BIT_D_DOWN + +NO_INPUT EQU 0 +A_BUTTON EQU 1 << BIT_A_BUTTON +B_BUTTON EQU 1 << BIT_B_BUTTON +SELECT EQU 1 << BIT_SELECT +START EQU 1 << BIT_START +D_RIGHT EQU 1 << BIT_D_RIGHT +D_LEFT EQU 1 << BIT_D_LEFT +D_UP EQU 1 << BIT_D_UP +D_DOWN EQU 1 << BIT_D_DOWN diff --git a/constants/item_constants.asm b/constants/item_constants.asm index fe6fcb15e..674166002 100755 --- a/constants/item_constants.asm +++ b/constants/item_constants.asm @@ -1,5 +1,12 @@ -const_value = 1 - +; item ids +; indexes for: +; - ItemNames (see data/items/names.asm) +; - ItemPrices (see data/items/prices.asm) +; - TechnicalMachinePrices (see data/items/tm_prices.asm) +; - KeyItemBitfield (see data/items/key_items.asm) +; - ItemUsePtrTable (see engine/items/item_effects.asm) + const_def + const NO_ITEM ; $00 const MASTER_BALL ; $01 const ULTRA_BALL ; $02 const GREAT_BALL ; $03 @@ -100,60 +107,119 @@ SAFARI_ROCK EQU $16 ; overload const FLOOR_11F ; $60 const FLOOR_B4F ; $61 -const_value = $C4 + const_next $C4 + +; HMs are defined before TMs, so the actual number of TM definitions +; is not yet available. The TM quantity is hard-coded here and must +; match the actual number below. +NUM_TMS EQU 50 + +add_hm: MACRO +; Defines three constants: +; - HM_\1: the item id, starting at $C4 +; - \1_TMNUM: the learnable TM/HM flag, starting at 51 +; - HM##_MOVE: alias for the move id, equal to the value of \1 +; The first usage also defines HM01 as the first HM item id. +IF !DEF(HM01) +HM01 EQU const_value +__tmhm_value__ = NUM_TMS + 1 +ENDC +HM_VALUE EQU __tmhm_value__ - NUM_TMS +IF HM_VALUE < 10 +MOVE_FOR_HM EQUS "HM0{d:HM_VALUE}_MOVE" +ELSE +MOVE_FOR_HM EQUS "HM{d:HM_VALUE}_MOVE" +ENDC +MOVE_FOR_HM = \1 +PURGE MOVE_FOR_HM +PURGE HM_VALUE + const HM_\1 +\1_TMNUM EQU __tmhm_value__ +__tmhm_value__ = __tmhm_value__ + 1 +ENDM + + add_hm CUT ; $C4 + add_hm FLY ; $C5 + add_hm SURF ; $C6 + add_hm STRENGTH ; $C7 + add_hm FLASH ; $C8 +NUM_HMS EQU const_value - HM01 + +add_tm: MACRO +; Defines three constants: +; - TM_\1: the item id, starting at $C9 +; - \1_TMNUM: the learnable TM/HM flag, starting at 1 +; - TM##_MOVE: alias for the move id, equal to the value of \1 +; The first usage also defines TM01 as the first TM item id. +IF !DEF(TM01) +TM01 EQU const_value +__tmhm_value__ = 1 +ENDC +IF __tmhm_value__ < 10 +MOVE_FOR_TM EQUS "TM0{d:__tmhm_value__}_MOVE" +ELSE +MOVE_FOR_TM EQUS "TM{d:__tmhm_value__}_MOVE" +ENDC +MOVE_FOR_TM = \1 +PURGE MOVE_FOR_TM + const TM_\1 +\1_TMNUM EQU __tmhm_value__ +__tmhm_value__ = __tmhm_value__ + 1 +ENDM + + add_tm MEGA_PUNCH ; $C9 + add_tm RAZOR_WIND ; $CA + add_tm SWORDS_DANCE ; $CB + add_tm WHIRLWIND ; $CC + add_tm MEGA_KICK ; $CD + add_tm TOXIC ; $CE + add_tm HORN_DRILL ; $CF + add_tm BODY_SLAM ; $D0 + add_tm TAKE_DOWN ; $D1 + add_tm DOUBLE_EDGE ; $D2 + add_tm BUBBLEBEAM ; $D3 + add_tm WATER_GUN ; $D4 + add_tm ICE_BEAM ; $D5 + add_tm BLIZZARD ; $D6 + add_tm HYPER_BEAM ; $D7 + add_tm PAY_DAY ; $D8 + add_tm SUBMISSION ; $D9 + add_tm COUNTER ; $DA + add_tm SEISMIC_TOSS ; $DB + add_tm RAGE ; $DC + add_tm MEGA_DRAIN ; $DD + add_tm SOLARBEAM ; $DE + add_tm DRAGON_RAGE ; $DF + add_tm THUNDERBOLT ; $E0 + add_tm THUNDER ; $E1 + add_tm EARTHQUAKE ; $E2 + add_tm FISSURE ; $E3 + add_tm DIG ; $E4 + add_tm PSYCHIC_M ; $E5 + add_tm TELEPORT ; $E6 + add_tm MIMIC ; $E7 + add_tm DOUBLE_TEAM ; $E8 + add_tm REFLECT ; $E9 + add_tm BIDE ; $EA + add_tm METRONOME ; $EB + add_tm SELFDESTRUCT ; $EC + add_tm EGG_BOMB ; $ED + add_tm FIRE_BLAST ; $EE + add_tm SWIFT ; $EF + add_tm SKULL_BASH ; $F0 + add_tm SOFTBOILED ; $F1 + add_tm DREAM_EATER ; $F2 + add_tm SKY_ATTACK ; $F3 + add_tm REST ; $F4 + add_tm THUNDER_WAVE ; $F5 + add_tm PSYWAVE ; $F6 + add_tm EXPLOSION ; $F7 + add_tm ROCK_SLIDE ; $F8 + add_tm TRI_ATTACK ; $F9 + add_tm SUBSTITUTE ; $FA +assert NUM_TMS == const_value - TM01, "NUM_TMS ({d:NUM_TMS}) does not match the number of add_tm definitions" - const HM_01 ; $C4 - const HM_02 ; $C5 - const HM_03 ; $C6 - const HM_04 ; $C7 - const HM_05 ; $C8 - const TM_01 ; $C9 - const TM_02 ; $CA - const TM_03 ; $CB - const TM_04 ; $CC - const TM_05 ; $CD - const TM_06 ; $CE - const TM_07 ; $CF - const TM_08 ; $D0 - const TM_09 ; $D1 - const TM_10 ; $D2 - const TM_11 ; $D3 - const TM_12 ; $D4 - const TM_13 ; $D5 - const TM_14 ; $D6 - const TM_15 ; $D7 - const TM_16 ; $D8 - const TM_17 ; $D9 - const TM_18 ; $DA - const TM_19 ; $DB - const TM_20 ; $DC - const TM_21 ; $DD - const TM_22 ; $DE - const TM_23 ; $DF - const TM_24 ; $E0 - const TM_25 ; $E1 - const TM_26 ; $E2 - const TM_27 ; $E3 - const TM_28 ; $E4 - const TM_29 ; $E5 - const TM_30 ; $E6 - const TM_31 ; $E7 - const TM_32 ; $E8 - const TM_33 ; $E9 - const TM_34 ; $EA - const TM_35 ; $EB - const TM_36 ; $EC - const TM_37 ; $ED - const TM_38 ; $EE - const TM_39 ; $EF - const TM_40 ; $F0 - const TM_41 ; $F1 - const TM_42 ; $F2 - const TM_43 ; $F3 - const TM_44 ; $F4 - const TM_45 ; $F5 - const TM_46 ; $F6 - const TM_47 ; $F7 - const TM_48 ; $F8 - const TM_49 ; $F9 - const TM_50 ; $FA +; 50 TMs + 5 HMs = 55 learnable TM/HM flags per Pokémon. +; These fit in 7 bytes, with one unused bit left over. +__tmhm_value__ = NUM_TMS + NUM_HMS + 1 +UNUSED_TMNUM EQU __tmhm_value__ diff --git a/constants/list_constants.asm b/constants/list_constants.asm index 7e26a6b63..840856dfb 100755 --- a/constants/list_constants.asm +++ b/constants/list_constants.asm @@ -1,20 +1,24 @@ -; list menu ID's -PCPOKEMONLISTMENU EQU $00 ; PC pokemon withdraw/deposit lists -MOVESLISTMENU EQU $01 ; XXX where is this used? -PRICEDITEMLISTMENU EQU $02 ; Pokemart buy menu / Pokemart buy/sell choose quantity menu -ITEMLISTMENU EQU $03 ; Start menu Item menu / Pokemart sell menu -SPECIALLISTMENU EQU $04 ; list of special "items" e.g. floor list in elevators / list of badges +; list menu IDs + const_def + const PCPOKEMONLISTMENU ; $00 ; PC pokemon withdraw/deposit lists + const MOVESLISTMENU ; $01 ; XXX where is this used? + const PRICEDITEMLISTMENU ; $02 ; Pokemart buy menu / Pokemart buy/sell choose quantity menu + const ITEMLISTMENU ; $03 ; Start menu Item menu / Pokemart sell menu + const SPECIALLISTMENU ; $04 ; list of special "items" e.g. floor list in elevators / list of badges -MONSTER_NAME EQU 1 -MOVE_NAME EQU 2 -; ???_NAME EQU 3 -ITEM_NAME EQU 4 -PLAYEROT_NAME EQU 5 -ENEMYOT_NAME EQU 6 -TRAINER_NAME EQU 7 +; NamePointers indexes (see home/names2.asm) + const_def 1 + const MONSTER_NAME ; 1 + const MOVE_NAME ; 2 + const UNUSED_NAME ; 3 + const ITEM_NAME ; 4 + const PLAYEROT_NAME ; 5 + const ENEMYOT_NAME ; 6 + const TRAINER_NAME ; 7 -INIT_ENEMYOT_LIST EQU 1 -INIT_BAG_ITEM_LIST EQU 2 -INIT_OTHER_ITEM_LIST EQU 3 -INIT_PLAYEROT_LIST EQU 4 -INIT_MON_LIST EQU 5 + const_def 1 + const INIT_ENEMYOT_LIST ; 1 + const INIT_BAG_ITEM_LIST ; 2 + const INIT_OTHER_ITEM_LIST ; 3 + const INIT_PLAYEROT_LIST ; 4 + const INIT_MON_LIST ; 5 diff --git a/constants/map_constants.asm b/constants/map_constants.asm index cf006604d..038c2ab29 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -4,6 +4,16 @@ mapconst: MACRO \1_WIDTH EQU \3 ENDM +; map ids +; indexes for: +; - MapHeaderBanks (see data/maps/map_header_banks.asm) +; - MapHeaderPointers (see data/maps/map_header_pointers.asm) +; - MapSongBanks (see data/maps/songs.asm) +; - MapHSPointers (see data/maps/hide_show_data.asm) +; - MapSpriteSets (see data/maps/sprite_sets.asm) +; - ExternalMapEntries (see data/maps/town_map_entries.asm) +; Each map also has associated data in maps.asm. +; Order: towns/cities, then routes, then indoor/dungeon maps const_def mapconst PALLET_TOWN, 9, 10 ; $00 mapconst VIRIDIAN_CITY, 18, 20 ; $01 @@ -16,7 +26,9 @@ ENDM mapconst CINNABAR_ISLAND, 9, 10 ; $08 mapconst INDIGO_PLATEAU, 9, 10 ; $09 mapconst SAFFRON_CITY, 18, 20 ; $0A +NUM_CITY_MAPS EQU const_value mapconst UNUSED_MAP_0B, 0, 0 ; $0B +FIRST_ROUTE_MAP EQU const_value mapconst ROUTE_1, 18, 10 ; $0C mapconst ROUTE_2, 36, 10 ; $0D mapconst ROUTE_3, 9, 35 ; $0E @@ -42,6 +54,7 @@ ENDM mapconst ROUTE_23, 72, 10 ; $22 mapconst ROUTE_24, 18, 10 ; $23 mapconst ROUTE_25, 9, 30 ; $24 +FIRST_INDOOR_MAP EQU const_value mapconst REDS_HOUSE_1F, 4, 4 ; $25 mapconst REDS_HOUSE_2F, 4, 4 ; $26 mapconst BLUES_HOUSE, 4, 4 ; $27 @@ -254,3 +267,7 @@ ENDM mapconst BRUNOS_ROOM, 6, 5 ; $F6 mapconst AGATHAS_ROOM, 6, 5 ; $F7 mapconst BEACH_HOUSE, 4, 7 ; $F8 + +; Indoor maps, such as houses, use this as the Map ID in their exit warps +; This map ID takes the player back to the last outdoor map they were on, stored in wLastMap +LAST_MAP EQU -1 diff --git a/constants/map_data_constants.asm b/constants/map_data_constants.asm new file mode 100755 index 000000000..5efd9928c --- /dev/null +++ b/constants/map_data_constants.asm @@ -0,0 +1,16 @@ +; width of east/west connections +; height of north/south connections +MAP_BORDER EQU 3 + +; connection directions + const_def + shift_const EAST ; 1 + shift_const WEST ; 2 + shift_const SOUTH ; 4 + shift_const NORTH ; 8 + +; tileset environments + const_def + const INDOOR ; 0 + const CAVE ; 1 + const OUTDOOR ; 2 diff --git a/constants/map_object_constants.asm b/constants/map_object_constants.asm new file mode 100644 index 000000000..9993a6a9d --- /dev/null +++ b/constants/map_object_constants.asm @@ -0,0 +1,57 @@ +; spritestatedata1 struct members (see macros/wram.asm) + const_def + const SPRITESTATEDATA1_PICTUREID ; 0 + const SPRITESTATEDATA1_MOVEMENTSTATUS ; 1 + const SPRITESTATEDATA1_IMAGEINDEX ; 2 + const SPRITESTATEDATA1_YSTEPVECTOR ; 3 + const SPRITESTATEDATA1_YPIXELS ; 4 + const SPRITESTATEDATA1_XSTEPVECTOR ; 5 + const SPRITESTATEDATA1_XPIXELS ; 6 + const SPRITESTATEDATA1_INTRAANIMFRAMECOUNTER ; 7 + const SPRITESTATEDATA1_ANIMFRAMECOUNTER ; 8 + const SPRITESTATEDATA1_FACINGDIRECTION ; 9 + const SPRITESTATEDATA1_YADJUSTED ; a + const SPRITESTATEDATA1_XADJUSTED ; b + const SPRITESTATEDATA1_COLLISIONDATA ; c + const SPRITESTATEDATA1_0D ; d + const SPRITESTATEDATA1_0E ; e + const SPRITESTATEDATA1_0F ; f +SPRITESTATEDATA1_LENGTH EQU const_value + +; spritestatedata2 struct members (see macros/wram.asm) + const_def + const SPRITESTATEDATA2_WALKANIMATIONCOUNTER ; 0 + const SPRITESTATEDATA2_01 ; 1 + const SPRITESTATEDATA2_YDISPLACEMENT ; 2 + const SPRITESTATEDATA2_XDISPLACEMENT ; 3 + const SPRITESTATEDATA2_MAPY ; 4 + const SPRITESTATEDATA2_MAPX ; 5 + const SPRITESTATEDATA2_MOVEMENTBYTE1 ; 6 + const SPRITESTATEDATA2_GRASSPRIORITY ; 7 + const SPRITESTATEDATA2_MOVEMENTDELAY ; 8 + const SPRITESTATEDATA2_ORIGFACINGDIRECTION ; 9 + const SPRITESTATEDATA2_0A ; a + const SPRITESTATEDATA2_0B ; b + const SPRITESTATEDATA2_0C ; c + const SPRITESTATEDATA2_PICTUREID ; d + const SPRITESTATEDATA2_IMAGEBASEOFFSET ; e + const SPRITESTATEDATA2_0F ; f +SPRITESTATEDATA2_LENGTH EQU const_value + +; different kinds of people events +ITEM EQU $80 +TRAINER EQU $40 + +WALK EQU $FE +STAY EQU $FF + +ANY_DIR EQU $00 +UP_DOWN EQU $01 +LEFT_RIGHT EQU $02 +DOWN EQU $D0 +UP EQU $D1 +LEFT EQU $D2 +RIGHT EQU $D3 +NONE EQU $FF + +BOULDER_MOVEMENT_BYTE_2 EQU $10 diff --git a/constants/menu_constants.asm b/constants/menu_constants.asm new file mode 100644 index 000000000..a53adfdc0 --- /dev/null +++ b/constants/menu_constants.asm @@ -0,0 +1,88 @@ +BAG_ITEM_CAPACITY EQU 20 +PC_ITEM_CAPACITY EQU 50 + +; text box IDs + const_def 1 + const MESSAGE_BOX ; $01 + const_skip ; $02 + const MENU_TEMPLATE_03 ; $03 unused + const FIELD_MOVE_MON_MENU ; $04 + const JP_MOCHIMONO_MENU_TEMPLATE ; $05 + const USE_TOSS_MENU_TEMPLATE ; $06 + const MENU_TEMPLATE_07 ; $07 unused + const JP_SAVE_MESSAGE_MENU_TEMPLATE ; $08 + const JP_SPEED_OPTIONS_MENU_TEMPLATE ; $09 + const_skip ; $0a + const BATTLE_MENU_TEMPLATE ; $0b + const SWITCH_STATS_CANCEL_MENU_TEMPLATE ; $0c + const LIST_MENU_BOX ; $0d + const BUY_SELL_QUIT_MENU_TEMPLATE ; $0e + const MONEY_BOX_TEMPLATE ; $0f + const MENU_TEMPLATE_10 ; $10 unused + const MON_SPRITE_POPUP ; $11 + const JP_AH_MENU_TEMPLATE ; $12 + const MONEY_BOX ; $13 + const TWO_OPTION_MENU ; $14 + const BUY_SELL_QUIT_MENU ; $15 + const_skip ; $16 + const_skip ; $17 + const_skip ; $18 + const_skip ; $19 + const JP_POKEDEX_MENU_TEMPLATE ; $1a + const SAFARI_BATTLE_MENU_TEMPLATE ; $1b + +; two option menu constants +; TwoOptionMenuStrings indexes (see data/yes_no_menu_strings.asm) + const_def + const YES_NO_MENU ; 0 + const NORTH_WEST_MENU ; 1 + const SOUTH_EAST_MENU ; 2 + const WIDE_YES_NO_MENU ; 3 + const NORTH_EAST_MENU ; 4 + const TRADE_CANCEL_MENU ; 5 + const HEAL_CANCEL_MENU ; 6 + const NO_YES_MENU ; 7 + +; menu exit method constants for list menus and the buy/sell/quit menu +CHOSE_MENU_ITEM EQU 1 ; pressed A +CANCELLED_MENU EQU 2 ; pressed B + +; menu exit method constants for two-option menus +CHOSE_FIRST_ITEM EQU 1 +CHOSE_SECOND_ITEM EQU 2 + +; move mon constants + const_def + const BOX_TO_PARTY ; 0 + const PARTY_TO_BOX ; 1 + const DAYCARE_TO_PARTY ; 2 + const PARTY_TO_DAYCARE ; 3 + +; party menu types +; PartyMenuMessagePointers indexes (see engine/menus/party_menu.asm) + const_def + const NORMAL_PARTY_MENU ; $00 + const USE_ITEM_PARTY_MENU ; $01 + const BATTLE_PARTY_MENU ; $02 + const TMHM_PARTY_MENU ; $03 + const SWAP_MONS_PARTY_MENU ; $04 + const EVO_STONE_PARTY_MENU ; $05 +; party menu message IDs +; PartyMenuItemUseMessagePointers indexes (see engine/menus/party_menu.asm) + const_next $F0 +FIRST_PARTY_MENU_TEXT_ID EQU const_value + const ANTIDOTE_MSG ; $F0 + const BURN_HEAL_MSG ; $F1 + const ICE_HEAL_MSG ; $F2 + const AWAKENING_MSG ; $F3 + const PARALYZ_HEAL_MSG ; $F4 + const POTION_MSG ; $F5 + const FULL_HEAL_MSG ; $F6 + const REVIVE_MSG ; $F7 + const RARE_CANDY_MSG ; $F8 + +; naming screen types + const_def + const NAME_PLAYER_SCREEN ; 0 + const NAME_RIVAL_SCREEN ; 1 + const NAME_MON_SCREEN ; 2 diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index bc8a767c5..6fb43490c 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -1,221 +1,15 @@ -MAX_LEVEL EQU 100 - -NUM_MOVES EQU 4 -NUM_STATS EQU 5 -NUM_STAT_MODS EQU 8 -NUM_DVS EQU 2 - -PARTY_LENGTH EQU 6 - -MONS_PER_BOX EQU 20 -NUM_BOXES EQU 12 - -BAG_ITEM_CAPACITY EQU 20 -PC_ITEM_CAPACITY EQU 50 - -HOF_MON EQU $10 -HOF_TEAM EQU PARTY_LENGTH * HOF_MON -HOF_TEAM_CAPACITY EQU 50 - -NAME_LENGTH EQU 11 -ITEM_NAME_LENGTH EQU 13 - -A_BUTTON EQU %00000001 -B_BUTTON EQU %00000010 -SELECT EQU %00000100 -START EQU %00001000 -D_RIGHT EQU %00010000 -D_LEFT EQU %00100000 -D_UP EQU %01000000 -D_DOWN EQU %10000000 - -const_value set 0 - const BIT_A_BUTTON - const BIT_B_BUTTON - const BIT_SELECT - const BIT_START - const BIT_D_RIGHT - const BIT_D_LEFT - const BIT_D_UP - const BIT_D_DOWN - -SCREEN_WIDTH EQU 20 -SCREEN_HEIGHT EQU 18 - -SCREEN_WIDTH_PIXELS EQU SCREEN_WIDTH * 8 -SCREEN_HEIGHT_PIXELS EQU SCREEN_HEIGHT * 8 - -BYTES_PER_TILE EQU 16 - -BG_MAP_WIDTH EQU 32 -BG_MAP_HEIGHT EQU 32 - -SPRITEBUFFERSIZE EQU 7*7 * 8 ; 7 * 7 (tiles) * 8 (bytes per tile) - -NPC_MOVEMENT_DOWN EQU $00 -NPC_MOVEMENT_UP EQU $40 -NPC_MOVEMENT_LEFT EQU $80 -NPC_MOVEMENT_RIGHT EQU $C0 - -; text box IDs -MESSAGE_BOX EQU $01 -FIELD_MOVE_MON_MENU EQU $04 -JP_MOCHIMONO_MENU_TEMPLATE EQU $05 -USE_TOSS_MENU_TEMPLATE EQU $06 -JP_SAVE_MESSAGE_MENU_TEMPLATE EQU $08 -JP_SPEED_OPTIONS_MENU_TEMPLATE EQU $09 -BATTLE_MENU_TEMPLATE EQU $0b -SWITCH_STATS_CANCEL_MENU_TEMPLATE EQU $0c -LIST_MENU_BOX EQU $0d -BUY_SELL_QUIT_MENU_TEMPLATE EQU $0e -MONEY_BOX_TEMPLATE EQU $0f -MON_SPRITE_POPUP EQU $11 -JP_AH_MENU_TEMPLATE EQU $12 -MONEY_BOX EQU $13 -TWO_OPTION_MENU EQU $14 -BUY_SELL_QUIT_MENU EQU $15 -JP_POKEDEX_MENU_TEMPLATE EQU $1a -SAFARI_BATTLE_MENU_TEMPLATE EQU $1b - -; two option menu constants -YES_NO_MENU EQU 0 -NORTH_WEST_MENU EQU 1 -SOUTH_EAST_MENU EQU 2 -WIDE_YES_NO_MENU EQU 3 -NORTH_EAST_MENU EQU 4 -TRADE_CANCEL_MENU EQU 5 -HEAL_CANCEL_MENU EQU 6 -NO_YES_MENU EQU 7 - -; menu exit method constants for list menus and the buy/sell/quit menu -CHOSE_MENU_ITEM EQU 1 ; pressed A -CANCELLED_MENU EQU 2 ; pressed B - -; menu exit method constants for two-option menus -CHOSE_FIRST_ITEM EQU 1 -CHOSE_SECOND_ITEM EQU 2 - -; move mon constants -BOX_TO_PARTY EQU 0 -PARTY_TO_BOX EQU 1 -DAYCARE_TO_PARTY EQU 2 -PARTY_TO_DAYCARE EQU 3 - -; emotion bubbles -EXCLAMATION_BUBBLE EQU 0 -QUESTION_BUBBLE EQU 1 -SMILE_BUBBLE EQU 2 -SKULL_BUBBLE EQU 3 -HEART_BUBBLE EQU 4 -BOLT_BUBBLE EQU 5 -ZZZ_BUBBLE EQU 6 -FISH_BUBBLE EQU 7 - -; slot symbols -SLOTS7 EQU $0200 -SLOTSBAR EQU $0604 -SLOTSCHERRY EQU $0A08 -SLOTSFISH EQU $0E0C -SLOTSBIRD EQU $1210 -SLOTSMOUSE EQU $1614 - -; party menu types -NORMAL_PARTY_MENU EQU 0 -USE_ITEM_PARTY_MENU EQU 1 -BATTLE_PARTY_MENU EQU 2 -TMHM_PARTY_MENU EQU 3 -SWAP_MONS_PARTY_MENU EQU 4 -EVO_STONE_PARTY_MENU EQU 5 - -; party menu message IDs -ANTIDOTE_MSG EQU $F0 -BURN_HEAL_MSG EQU $F1 -ICE_HEAL_MSG EQU $F2 -AWAKENING_MSG EQU $F3 -PARALYZ_HEAL_MSG EQU $F4 -POTION_MSG EQU $F5 -FULL_HEAL_MSG EQU $F6 -REVIVE_MSG EQU $F7 -RARE_CANDY_MSG EQU $F8 - -; naming screen types -NAME_PLAYER_SCREEN EQU 0 -NAME_RIVAL_SCREEN EQU 1 -NAME_MON_SCREEN EQU 2 - -; mon data locations -; Note that some values are not supported by all functions that use these values. -PLAYER_PARTY_DATA EQU 0 -ENEMY_PARTY_DATA EQU 1 -BOX_DATA EQU 2 -DAYCARE_DATA EQU 3 -BATTLE_MON_DATA EQU 4 - -; player direction constants - -PLAYER_DIR_BIT_RIGHT EQU 0 -PLAYER_DIR_BIT_LEFT EQU 1 -PLAYER_DIR_BIT_DOWN EQU 2 -PLAYER_DIR_BIT_UP EQU 3 - -PLAYER_DIR_RIGHT EQU (1 << PLAYER_DIR_BIT_RIGHT) -PLAYER_DIR_LEFT EQU (1 << PLAYER_DIR_BIT_LEFT) -PLAYER_DIR_DOWN EQU (1 << PLAYER_DIR_BIT_DOWN) -PLAYER_DIR_UP EQU (1 << PLAYER_DIR_BIT_UP) +; Boolean checks +FALSE EQU 0 +TRUE EQU 1 ; flag operations - -FLAG_RESET EQU 0 -FLAG_SET EQU 1 -FLAG_TEST EQU 2 - -; HP bar -HP_BAR_GREEN EQU 0 -HP_BAR_YELLOW EQU 1 -HP_BAR_RED EQU 2 - -; D733 flags -BIT_TEST_BATTLE EQU 0 - -; battle type constants -BATTLE_TYPE_NORMAL EQU 0 -BATTLE_TYPE_OLD_MAN EQU 1 -BATTLE_TYPE_SAFARI EQU 2 -BATTLE_TYPE_RUN EQU 3 -BATTLE_TYPE_PIKACHU EQU 4 - -; serial - -ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK EQU $01 -ESTABLISH_CONNECTION_WITH_EXTERNAL_CLOCK EQU $02 - -USING_EXTERNAL_CLOCK EQU $01 -USING_INTERNAL_CLOCK EQU $02 -CONNECTION_NOT_ESTABLISHED EQU $ff - -; signals the start of an array of bytes transferred over the link cable -SERIAL_PREAMBLE_BYTE EQU $FD - -; this byte is used when there is no data to send -SERIAL_NO_DATA_BYTE EQU $FE - -; signals the end of one part of a patch list (there are two parts) for player/enemy party data -SERIAL_PATCH_LIST_PART_TERMINATOR EQU $FF - -LINK_STATE_NONE EQU $00 ; not using link -LINK_STATE_IN_CABLE_CLUB EQU $01 ; in a cable club room (Colosseum or Trade Centre) -LINK_STATE_START_TRADE EQU $02 ; pre-trade selection screen initialisation -LINK_STATE_START_BATTLE EQU $03 ; pre-battle initialisation -LINK_STATE_BATTLING EQU $04 ; in a link battle -LINK_STATE_RESET EQU $05 ; reset game (unused) -LINK_STATE_TRADING EQU $32 ; in a link trade - -LINKBATTLE_RUN EQU $F -LINKBATTLE_STRUGGLE EQU $E -LINKBATTLE_NO_ACTION EQU $D + const_def + const FLAG_RESET ; 0 + const FLAG_SET ; 1 + const FLAG_TEST ; 2 ; pikachu happiness modifiers -const_value set 1 + const_def 1 const PIKAHAPPY_LEVELUP const PIKAHAPPY_USEDITEM const PIKAHAPPY_USEDXITEM diff --git a/constants/move_animation_constants.asm b/constants/move_animation_constants.asm index 27658c83c..f76175442 100644 --- a/constants/move_animation_constants.asm +++ b/constants/move_animation_constants.asm @@ -1,8 +1,8 @@ -; subanimations - -const_value = $D8 - -; special effects, prefaced with "SE" for "Special Effect" +; special effects that are part of move animations +; SpecialEffectPointers associates them with effect routines (see data/battle_anims/special_effect_pointers.asm) + const_def $C0 +FIRST_SE_ID EQU const_value + const_skip $18 const SE_WAVY_SCREEN ; $D8 used in Psywave/Night Shade/Psychic etc. const SE_SUBSTITUTE_MON ; $D9 used in Substitute (turns the pokemon into a mini sprite) const SE_SHAKE_BACK_AND_FORTH ; $DA used in Double Team @@ -42,3 +42,417 @@ const_value = $D8 const SE_RESET_SCREEN_PALETTE ; $FC used in Leer/Thunderpunch/etc. const SE_DARK_SCREEN_PALETTE ; $FD used in Hyper Beam/Thunderpunch/etc. const SE_DARK_SCREEN_FLASH ; $FE used in Cut/Take Down/etc. + +; subanimations that are part of move animations +; SubanimationPointers indexes (see data/battle_anims/subanimations.asm) + const_def + const SUBANIM_00 + const SUBANIM_01 + const SUBANIM_02 + const SUBANIM_03 + const SUBANIM_04 + const SUBANIM_05 + const SUBANIM_06 + const SUBANIM_07 + const SUBANIM_08 + const SUBANIM_09 + const SUBANIM_0A + const SUBANIM_0B + const SUBANIM_0C + const SUBANIM_0D + const SUBANIM_0E + const SUBANIM_0F + const SUBANIM_10 + const SUBANIM_11 + const SUBANIM_12 + const SUBANIM_13 + const SUBANIM_14 + const SUBANIM_15 + const SUBANIM_16 + const SUBANIM_17 + const SUBANIM_18 + const SUBANIM_19 + const SUBANIM_1A + const SUBANIM_1B + const SUBANIM_1C + const SUBANIM_1D + const SUBANIM_1E + const SUBANIM_1F + const SUBANIM_20 + const SUBANIM_21 + const SUBANIM_22 + const SUBANIM_23 + const SUBANIM_24 + const SUBANIM_25 + const SUBANIM_26 + const SUBANIM_27 + const SUBANIM_28 + const SUBANIM_29 + const SUBANIM_2A + const SUBANIM_2B + const SUBANIM_2C + const SUBANIM_2D + const SUBANIM_2E + const SUBANIM_2F + const SUBANIM_30 + const SUBANIM_31 + const SUBANIM_32 + const SUBANIM_33 + const SUBANIM_34 + const SUBANIM_35 + const SUBANIM_36 + const SUBANIM_37 + const SUBANIM_38 + const SUBANIM_39 + const SUBANIM_3A + const SUBANIM_3B + const SUBANIM_3C + const SUBANIM_3D + const SUBANIM_3E + const SUBANIM_3F + const SUBANIM_40 + const SUBANIM_41 + const SUBANIM_42 + const SUBANIM_43 + const SUBANIM_44 + const SUBANIM_45 + const SUBANIM_46 + const SUBANIM_47 + const SUBANIM_48 + const SUBANIM_49 + const SUBANIM_4A + const SUBANIM_4B + const SUBANIM_4C + const SUBANIM_4D + const SUBANIM_4E + const SUBANIM_4F + const SUBANIM_50 + const SUBANIM_51 + const SUBANIM_52 + const SUBANIM_53 + const SUBANIM_54 + const SUBANIM_55 + +; types of subanimations + const_def + const SUBANIMTYPE_NORMAL + const SUBANIMTYPE_HVFLIP + const SUBANIMTYPE_HFLIP + const SUBANIMTYPE_COORDFLIP + const SUBANIMTYPE_REVERSE + const SUBANIMTYPE_ENEMY + +; frame blocks that are part of subanimations +; FrameBlockPointers indexes (see data/battle_anims/frame_blocks.asm) + const_def + const FRAMEBLOCK_00 + const FRAMEBLOCK_01 + const FRAMEBLOCK_02 + const FRAMEBLOCK_03 + const FRAMEBLOCK_04 + const FRAMEBLOCK_05 + const FRAMEBLOCK_06 + const FRAMEBLOCK_07 + const FRAMEBLOCK_08 + const FRAMEBLOCK_09 + const FRAMEBLOCK_0A + const FRAMEBLOCK_0B + const FRAMEBLOCK_0C + const FRAMEBLOCK_0D + const FRAMEBLOCK_0E + const FRAMEBLOCK_0F + const FRAMEBLOCK_10 + const FRAMEBLOCK_11 + const FRAMEBLOCK_12 + const FRAMEBLOCK_13 + const FRAMEBLOCK_14 + const FRAMEBLOCK_15 + const FRAMEBLOCK_16 + const FRAMEBLOCK_17 + const FRAMEBLOCK_18 + const FRAMEBLOCK_19 + const FRAMEBLOCK_1A + const FRAMEBLOCK_1B + const FRAMEBLOCK_1C + const FRAMEBLOCK_1D + const FRAMEBLOCK_1E + const FRAMEBLOCK_1F + const FRAMEBLOCK_20 + const FRAMEBLOCK_21 + const FRAMEBLOCK_22 + const FRAMEBLOCK_23 + const FRAMEBLOCK_24 + const FRAMEBLOCK_25 + const FRAMEBLOCK_26 + const FRAMEBLOCK_27 + const FRAMEBLOCK_28 + const FRAMEBLOCK_29 + const FRAMEBLOCK_2A + const FRAMEBLOCK_2B + const FRAMEBLOCK_2C + const FRAMEBLOCK_2D + const FRAMEBLOCK_2E + const FRAMEBLOCK_2F + const FRAMEBLOCK_30 + const FRAMEBLOCK_31 + const FRAMEBLOCK_32 + const FRAMEBLOCK_33 + const FRAMEBLOCK_34 + const FRAMEBLOCK_35 + const FRAMEBLOCK_36 + const FRAMEBLOCK_37 + const FRAMEBLOCK_38 + const FRAMEBLOCK_39 + const FRAMEBLOCK_3A + const FRAMEBLOCK_3B + const FRAMEBLOCK_3C + const FRAMEBLOCK_3D + const FRAMEBLOCK_3E + const FRAMEBLOCK_3F + const FRAMEBLOCK_40 + const FRAMEBLOCK_41 + const FRAMEBLOCK_42 + const FRAMEBLOCK_43 + const FRAMEBLOCK_44 + const FRAMEBLOCK_45 + const FRAMEBLOCK_46 + const FRAMEBLOCK_47 + const FRAMEBLOCK_SMALL_BLACK_CIRCLE + const FRAMEBLOCK_LARGE_BLACK_CIRCLE + const FRAMEBLOCK_4A + const FRAMEBLOCK_4B + const FRAMEBLOCK_4C + const FRAMEBLOCK_4D + const FRAMEBLOCK_4E + const FRAMEBLOCK_4F + const FRAMEBLOCK_50 + const FRAMEBLOCK_51 + const FRAMEBLOCK_52 + const FRAMEBLOCK_53 + const FRAMEBLOCK_54 + const FRAMEBLOCK_55 + const FRAMEBLOCK_56 + const FRAMEBLOCK_57 + const FRAMEBLOCK_58 + const FRAMEBLOCK_59 + const FRAMEBLOCK_5A + const FRAMEBLOCK_5B + const FRAMEBLOCK_5C + const FRAMEBLOCK_5D + const FRAMEBLOCK_5E + const FRAMEBLOCK_5F + const FRAMEBLOCK_60 + const FRAMEBLOCK_61 + const FRAMEBLOCK_62 + const FRAMEBLOCK_63 + const FRAMEBLOCK_64 + const FRAMEBLOCK_65 + const FRAMEBLOCK_66 + const FRAMEBLOCK_67 + const FRAMEBLOCK_68 + const FRAMEBLOCK_69 + const FRAMEBLOCK_6A + const FRAMEBLOCK_6B + const FRAMEBLOCK_6C + const FRAMEBLOCK_6D + const FRAMEBLOCK_6E + const FRAMEBLOCK_6F + const FRAMEBLOCK_70 + const FRAMEBLOCK_71 + const FRAMEBLOCK_72 + const FRAMEBLOCK_73 + const FRAMEBLOCK_74 + const FRAMEBLOCK_75 + const FRAMEBLOCK_76 + const FRAMEBLOCK_77 + const FRAMEBLOCK_78 + const FRAMEBLOCK_79 + +; base coordinates that are part of subanimations +; FrameBlockBaseCoords indexes (see data/battle_anims/base_coords.asm) + const_def + const BASECOORD_00 + const BASECOORD_01 + const BASECOORD_02 + const BASECOORD_03 + const BASECOORD_04 + const BASECOORD_05 + const BASECOORD_06 + const BASECOORD_07 + const BASECOORD_08 + const BASECOORD_09 + const BASECOORD_0A + const BASECOORD_0B + const BASECOORD_0C + const BASECOORD_0D + const BASECOORD_0E + const BASECOORD_0F + const BASECOORD_10 + const BASECOORD_11 + const BASECOORD_12 + const BASECOORD_13 + const BASECOORD_14 + const BASECOORD_15 + const BASECOORD_16 + const BASECOORD_17 + const BASECOORD_18 + const BASECOORD_19 + const BASECOORD_1A + const BASECOORD_1B + const BASECOORD_1C + const BASECOORD_1D + const BASECOORD_1E + const BASECOORD_1F + const BASECOORD_20 + const BASECOORD_21 + const BASECOORD_22 + const BASECOORD_23 + const BASECOORD_24 + const BASECOORD_25 + const BASECOORD_26 + const BASECOORD_27 + const BASECOORD_28 + const BASECOORD_29 + const BASECOORD_2A + const BASECOORD_2B + const BASECOORD_2C + const BASECOORD_2D + const BASECOORD_2E + const BASECOORD_2F + const BASECOORD_30 + const BASECOORD_31 + const BASECOORD_32 + const BASECOORD_33 + const BASECOORD_34 + const BASECOORD_35 + const BASECOORD_36 + const BASECOORD_37 + const BASECOORD_38 + const BASECOORD_39 + const BASECOORD_3A + const BASECOORD_3B + const BASECOORD_3C + const BASECOORD_3D + const BASECOORD_3E + const BASECOORD_3F + const BASECOORD_40 + const BASECOORD_41 + const BASECOORD_42 + const BASECOORD_43 + const BASECOORD_44 + const BASECOORD_45 + const BASECOORD_46 + const BASECOORD_47 + const BASECOORD_48 + const BASECOORD_49 + const BASECOORD_4A + const BASECOORD_4B + const BASECOORD_4C + const BASECOORD_4D + const BASECOORD_4E + const BASECOORD_4F + const BASECOORD_50 + const BASECOORD_51 + const BASECOORD_52 + const BASECOORD_53 + const BASECOORD_54 + const BASECOORD_55 + const BASECOORD_56 + const BASECOORD_57 + const BASECOORD_58 + const BASECOORD_59 + const BASECOORD_5A + const BASECOORD_5B + const BASECOORD_5C + const BASECOORD_5D + const BASECOORD_5E + const BASECOORD_5F + const BASECOORD_60 + const BASECOORD_61 + const BASECOORD_62 + const BASECOORD_63 + const BASECOORD_64 + const BASECOORD_65 + const BASECOORD_66 + const BASECOORD_67 + const BASECOORD_68 + const BASECOORD_69 + const BASECOORD_6A + const BASECOORD_6B + const BASECOORD_6C + const BASECOORD_6D + const BASECOORD_6E + const BASECOORD_6F + const BASECOORD_70 + const BASECOORD_71 + const BASECOORD_72 + const BASECOORD_73 + const BASECOORD_74 + const BASECOORD_75 + const BASECOORD_76 + const BASECOORD_77 + const BASECOORD_78 + const BASECOORD_79 + const BASECOORD_7A + const BASECOORD_7B + const BASECOORD_7C + const BASECOORD_7D + const BASECOORD_7E + const BASECOORD_7F + const BASECOORD_80 + const BASECOORD_81 + const BASECOORD_82 + const BASECOORD_83 + const BASECOORD_84 + const BASECOORD_85 + const BASECOORD_86 + const BASECOORD_87 + const BASECOORD_88 + const BASECOORD_89 + const BASECOORD_8A + const BASECOORD_8B + const BASECOORD_8C + const BASECOORD_8D + const BASECOORD_8E + const BASECOORD_8F + const BASECOORD_90 + const BASECOORD_91 + const BASECOORD_92 + const BASECOORD_93 + const BASECOORD_94 + const BASECOORD_95 + const BASECOORD_96 + const BASECOORD_97 + const BASECOORD_98 + const BASECOORD_99 + const BASECOORD_9A + const BASECOORD_9B + const BASECOORD_9C + const BASECOORD_9D + const BASECOORD_9E + const BASECOORD_9F + const BASECOORD_A0 + const BASECOORD_A1 + const BASECOORD_A2 + const BASECOORD_A3 + const BASECOORD_A4 + const BASECOORD_A5 + const BASECOORD_A6 + const BASECOORD_A7 + const BASECOORD_A8 + const BASECOORD_A9 + const BASECOORD_AA + const BASECOORD_AB + const BASECOORD_AC + const BASECOORD_AD + const BASECOORD_AE + const BASECOORD_AF + const BASECOORD_B0 + +; frame block modes that are part of subanimations + const_def + const FRAMEBLOCKMODE_00 + const FRAMEBLOCKMODE_01 + const FRAMEBLOCKMODE_02 + const FRAMEBLOCKMODE_03 + const FRAMEBLOCKMODE_04 diff --git a/constants/move_constants.asm b/constants/move_constants.asm index dfbb500e8..ecc280788 100644 --- a/constants/move_constants.asm +++ b/constants/move_constants.asm @@ -1,5 +1,11 @@ -const_value = 1 - +; move ids +; indexes for: +; - Moves (see data/moves/moves.asm) +; - MoveNames (see data/moves/names.asm) +; - AttackAnimationPointers (see data/moves/animations.asm) +; - MoveSoundTable (see data/moves/sfx.asm) + const_def + const NO_MOVE ; 00 const POUND ; 01 const KARATE_CHOP ; 02 const DOUBLESLAP ; 03 @@ -165,9 +171,9 @@ const_value = 1 const SLASH ; a3 const SUBSTITUTE ; a4 -NUM_ATTACKS EQU const_value + -1 +NUM_ATTACKS EQU const_value - 1 - const STRUGGLE + const STRUGGLE ; a5 ; Moves do double duty as animation identifiers. diff --git a/constants/move_effect_constants.asm b/constants/move_effect_constants.asm index b66772d1c..4c6d0c389 100644 --- a/constants/move_effect_constants.asm +++ b/constants/move_effect_constants.asm @@ -1,11 +1,11 @@ -; tentative move effect constants ; {stat}_(UP|DOWN)(1|2) means that the move raises the user's (or lowers the target's) corresponding stat modifier by 1 (or 2) stages -; {status condition}_side_effect means that the move has a side chance of causing that condition -; {status condition}_effect means that the move causes the status condition every time it hits the target -const_value = 0 +; {status condition}_SIDE_EFFECT means that the move has a side chance of causing that condition +; {status condition}_EFFECT means that the move causes the status condition every time it hits the target +; MoveEffectPointerTable indexes (see data/moves/effects_pointers.asm) + const_def const NO_ADDITIONAL_EFFECT ; $00 - const UNUSED_EFFECT_01 ; $01 + const EFFECT_01 ; $01 unused const POISON_SIDE_EFFECT1 ; $02 const DRAIN_HP_EFFECT ; $03 const BURN_SIDE_EFFECT1 ; $04 @@ -34,7 +34,7 @@ const_value = 0 const THRASH_PETAL_DANCE_EFFECT ; $1B const SWITCH_AND_TELEPORT_EFFECT ; $1C const TWO_TO_FIVE_ATTACKS_EFFECT ; $1D - const UNUSED_EFFECT_1E ; $1E + const EFFECT_1E ; $1E unused const FLINCH_SIDE_EFFECT1 ; $1F const SLEEP_EFFECT ; $20 const POISON_SIDE_EFFECT2 ; $21 @@ -76,13 +76,13 @@ const_value = 0 const DEFENSE_DOWN_SIDE_EFFECT ; $45 const SPEED_DOWN_SIDE_EFFECT ; $46 const SPECIAL_DOWN_SIDE_EFFECT ; $47 - const UNUSED_EFFECT_48 ; $48 - const UNUSED_EFFECT_49 ; $49 - const UNUSED_EFFECT_4A ; $4A - const UNUSED_EFFECT_4B ; $4B + const_skip ; $48 + const_skip ; $49 + const_skip ; $4A + const_skip ; $4B const CONFUSION_SIDE_EFFECT ; $4C const TWINEEDLE_EFFECT ; $4D - const UNUSED_EFFECT_4E ; $4E + const_skip ; $4E const SUBSTITUTE_EFFECT ; $4F const HYPER_BEAM_EFFECT ; $50 const RAGE_EFFECT ; $51 @@ -91,7 +91,3 @@ const_value = 0 const LEECH_SEED_EFFECT ; $54 const SPLASH_EFFECT ; $55 const DISABLE_EFFECT ; $56 - -; fixed damage constants -SONICBOOM_DAMAGE EQU 20 -DRAGON_RAGE_DAMAGE EQU 40 diff --git a/constants/music_constants.asm b/constants/music_constants.asm index 117ed2e3b..469557125 100644 --- a/constants/music_constants.asm +++ b/constants/music_constants.asm @@ -1,52 +1,5 @@ -; HW sound channel register base addresses -HW_CH1_BASE EQU (rNR10 % $100) -HW_CH2_BASE EQU ((rNR21 % $100) - 1) -HW_CH3_BASE EQU (rNR30 % $100) -HW_CH4_BASE EQU ((rNR41 % $100) - 1) - -; HW sound channel enable bit masks -HW_CH1_ENABLE_MASK EQU %00010001 -HW_CH2_ENABLE_MASK EQU %00100010 -HW_CH3_ENABLE_MASK EQU %01000100 -HW_CH4_ENABLE_MASK EQU %10001000 - -; HW sound channel disable bit masks -HW_CH1_DISABLE_MASK EQU (~HW_CH1_ENABLE_MASK & $ff) -HW_CH2_DISABLE_MASK EQU (~HW_CH2_ENABLE_MASK & $ff) -HW_CH3_DISABLE_MASK EQU (~HW_CH3_ENABLE_MASK & $ff) -HW_CH4_DISABLE_MASK EQU (~HW_CH4_ENABLE_MASK & $ff) - -REG_DUTY_SOUND_LEN EQU 1 -REG_VOLUME_ENVELOPE EQU 2 -REG_FREQUENCY_LO EQU 3 - -MAX_SFX_ID_1 EQUS "SFX_SAFARI_ZONE_PA" -MAX_SFX_ID_2 EQUS "SFX_SILPH_SCOPE" -MAX_SFX_ID_3 EQUS "SFX_SHOOTING_STAR" -MAX_SFX_ID_4 EQUS "SFX_GET_ITEM2_4_2 + 2" - -NOISE_INSTRUMENTS_START EQUS "SFX_NOISE_INSTRUMENT01" -NOISE_INSTRUMENTS_END EQUS "SFX_NOISE_INSTRUMENT19 + 1" - -CRY_SFX_START EQUS "SFX_CRY_00" -CRY_SFX_END EQUS "SFX_CRY_25 + 3" - -BATTLE_SFX_START EQUS "SFX_PECK" -BATTLE_SFX_END EQUS "SFX_SILPH_SCOPE + 1" - -; wChannelFlags1 constants -BIT_PERFECT_PITCH EQU 0 ; controlled by toggle_perfect_pitch command -BIT_SOUND_CALL EQU 1 ; if in sound call -BIT_NOISE_OR_SFX EQU 2 ; if channel is the music noise channel or an SFX channel -BIT_VIBRATO_DIRECTION EQU 3 ; if the pitch is above or below normal (cycles) -BIT_PITCH_SLIDE_ON EQU 4 ; if pitch slide is active -BIT_PITCH_SLIDE_DECREASING EQU 5 ; if the pitch slide frequency is decreasing (instead of increasing) -BIT_ROTATE_DUTY_CYCLE EQU 6 ; if rotating duty cycle - -; wChannelFlags2 constant (only has one flag) -BIT_EXECUTE_MUSIC EQU 0 ; if in execute music - ; Song ids are calculated by address to save space. +; SFX_Headers_(1|2|3) indexes (see audio/headers/*.asm) music_const: MACRO \1 EQUS "((\2 - SFX_Headers_1) / 3)" @@ -110,6 +63,7 @@ ENDM music_const MUSIC_GB_PRINTER, Music_GBPrinter ; AUDIO_1 AUDIO_2 AUDIO_3 AUDIO_4 +NOISE_INSTRUMENTS_START EQUS "SFX_NOISE_INSTRUMENT01" music_const SFX_NOISE_INSTRUMENT01, SFX_Noise_Instrument01_1 music_const SFX_NOISE_INSTRUMENT02, SFX_Noise_Instrument02_1 music_const SFX_NOISE_INSTRUMENT03, SFX_Noise_Instrument03_1 @@ -129,6 +83,9 @@ ENDM music_const SFX_NOISE_INSTRUMENT17, SFX_Noise_Instrument17_1 music_const SFX_NOISE_INSTRUMENT18, SFX_Noise_Instrument18_1 music_const SFX_NOISE_INSTRUMENT19, SFX_Noise_Instrument19_1 +NOISE_INSTRUMENTS_END EQUS "SFX_NOISE_INSTRUMENT19 + 1" + +CRY_SFX_START EQUS "SFX_CRY_00" music_const SFX_CRY_00, SFX_Cry00_1 music_const SFX_CRY_01, SFX_Cry01_1 music_const SFX_CRY_02, SFX_Cry02_1 @@ -167,6 +124,7 @@ ENDM music_const SFX_CRY_23, SFX_Cry23_1 music_const SFX_CRY_24, SFX_Cry24_1 music_const SFX_CRY_25, SFX_Cry25_1 +CRY_SFX_END EQUS "SFX_CRY_25 + 3" music_const SFX_GET_ITEM_2, SFX_Get_Item2_1 music_const SFX_TINK, SFX_Tink_1 @@ -212,6 +170,7 @@ ENDM ; AUDIO_1 music_const SFX_POKEFLUTE, SFX_Pokeflute music_const SFX_SAFARI_ZONE_PA, SFX_Safari_Zone_PA +MAX_SFX_ID_1 EQUS "SFX_SAFARI_ZONE_PA" ; AUDIO_2 music_const SFX_LEVEL_UP, SFX_Level_Up @@ -222,6 +181,8 @@ ENDM music_const SFX_RUN, SFX_Run music_const SFX_DEX_PAGE_ADDED, SFX_Dex_Page_Added music_const SFX_CAUGHT_MON, SFX_Caught_Mon + +BATTLE_SFX_START EQUS "SFX_PECK" music_const SFX_PECK, SFX_Peck music_const SFX_FAINT_FALL, SFX_Faint_Fall music_const SFX_BATTLE_09, SFX_Battle_09 @@ -271,6 +232,8 @@ ENDM music_const SFX_BATTLE_35, SFX_Battle_35 music_const SFX_BATTLE_36, SFX_Battle_36 music_const SFX_SILPH_SCOPE, SFX_Silph_Scope +BATTLE_SFX_END EQUS "SFX_SILPH_SCOPE + 1" +MAX_SFX_ID_2 EQUS "SFX_SILPH_SCOPE" ; AUDIO_3 music_const SFX_INTRO_LUNGE, SFX_Intro_Lunge @@ -283,6 +246,7 @@ ENDM music_const SFX_SLOTS_REWARD, SFX_Slots_Reward music_const SFX_SLOTS_NEW_SPIN, SFX_Slots_New_Spin music_const SFX_SHOOTING_STAR, SFX_Shooting_Star +MAX_SFX_ID_3 EQUS "SFX_SHOOTING_STAR" ; AUDIO_4 music_const SFX_SURFING_JUMP, SFX_Surfing_Jump @@ -291,3 +255,6 @@ ENDM music_const SFX_UNKNOWN_802CC_4, SFX_802cc_4 music_const SFX_SURFING_LAND, SFX_Surfing_Land music_const SFX_GET_ITEM2_4_2, SFX_Get_Item2_4_2 +MAX_SFX_ID_4 EQUS "SFX_GET_ITEM2_4_2 + 2" + +SFX_STOP_ALL_MUSIC EQU $ff diff --git a/constants/oam_constants.asm b/constants/oam_constants.asm index 9eb52385a..7a80bdd25 100755 --- a/constants/oam_constants.asm +++ b/constants/oam_constants.asm @@ -1,8 +1,6 @@ ; OAM flags used by this game OAMFLAG_ENDOFDATA EQU %00000001 ; pseudo OAM flag, only used by game logic OAMFLAG_CANBEMASKED EQU %00000010 ; pseudo OAM flag, only used by game logic -OAMFLAG_VFLIPPED EQU %00100000 ; OAM flag flips the sprite vertically. -; Used for making left facing sprites face right and to alternate between left and right foot animation when walking up or down ; OAM attribute flags OAM_PALETTE EQU %111 @@ -13,8 +11,9 @@ OAM_Y_FLIP EQU 6 OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3) ; OAM attribute masks -OAM_HFLIP EQU 1 << OAM_X_FLIP ; horizontal flip -OAM_VFLIP EQU 1 << OAM_Y_FLIP ; vertical flip +OAM_OBP1 EQU 1 << OAM_OBP_NUM ; OBJ palette 1 +OAM_HFLIP EQU 1 << OAM_X_FLIP ; horizontal flip +OAM_VFLIP EQU 1 << OAM_Y_FLIP ; vertical flip OAM_BEHIND_BG EQU 1 << OAM_PRIORITY ; behind bg (except color 0) frame: MACRO diff --git a/constants/palette_constants.asm b/constants/palette_constants.asm index 0988b3613..a16999e7d 100755 --- a/constants/palette_constants.asm +++ b/constants/palette_constants.asm @@ -5,25 +5,30 @@ const DARK_GRAY const BLACK -SET_PAL_BATTLE_BLACK EQU $00 -SET_PAL_BATTLE EQU $01 -SET_PAL_TOWN_MAP EQU $02 -SET_PAL_STATUS_SCREEN EQU $03 -SET_PAL_POKEDEX EQU $04 -SET_PAL_SLOTS EQU $05 -SET_PAL_TITLE_SCREEN EQU $06 -SET_PAL_NIDORINO_INTRO EQU $07 -SET_PAL_GENERIC EQU $08 -SET_PAL_OVERWORLD EQU $09 -SET_PAL_PARTY_MENU EQU $0A -SET_PAL_POKEMON_WHOLE_SCREEN EQU $0B -SET_PAL_GAME_FREAK_INTRO EQU $0C -SET_PAL_TRAINER_CARD EQU $0D -UPDATE_PARTY_MENU_BLK_PACKET EQU $FC +; pal/blk packets +; SetPalFunctions indexes (see engine/gfx/palettes.asm) + const_def + const SET_PAL_BATTLE_BLACK ; $00 + const SET_PAL_BATTLE ; $01 + const SET_PAL_TOWN_MAP ; $02 + const SET_PAL_STATUS_SCREEN ; $03 + const SET_PAL_POKEDEX ; $04 + const SET_PAL_SLOTS ; $05 + const SET_PAL_TITLE_SCREEN ; $06 + const SET_PAL_NIDORINO_INTRO ; $07 + const SET_PAL_GENERIC ; $08 + const SET_PAL_OVERWORLD ; $09 + const SET_PAL_PARTY_MENU ; $0A + const SET_PAL_POKEMON_WHOLE_SCREEN ; $0B + const SET_PAL_GAME_FREAK_INTRO ; $0C + const SET_PAL_TRAINER_CARD ; $0D -; super game boy palettes -const_value = 0 +SET_PAL_PARTY_MENU_HP_BARS EQU $fc +SET_PAL_DEFAULT EQU $ff +; sgb palettes +; SuperPalettes indexes (see data/sgb/sgb_palettes.asm) + const_def const PAL_ROUTE ; $00 const PAL_PALLET ; $01 const PAL_VIRIDIAN ; $02 diff --git a/constants/pokedex_constants.asm b/constants/pokedex_constants.asm index b80547f77..a805b261f 100644 --- a/constants/pokedex_constants.asm +++ b/constants/pokedex_constants.asm @@ -1,5 +1,9 @@ -const_value = 1 - +; pokedex ids +; indexes for: +; - BaseStats (see data/pokemon/base_stats.asm) +; - MonPartyData (see data/pokemon/menu_icons.asm) +; - MonsterPalettes (see data/pokemon/palettes.asm) + const_def 1 const DEX_BULBASAUR ; 1 const DEX_IVYSAUR ; 2 const DEX_VENUSAUR ; 3 @@ -152,4 +156,4 @@ const_value = 1 const DEX_MEWTWO ; 150 const DEX_MEW ; 151 -NUM_POKEMON EQU const_value + -1 +NUM_POKEMON EQU const_value - 1 diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index 8fb153660..d01398b89 100644 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -1,197 +1,209 @@ -const_value = 1 +; pokemon ids +; indexes for: +; - MonsterNames (see data/pokemon/names.asm) +; - EvosMovesPointerTable (see data/pokemon/evos_moves.asm) +; - CryData (see data/pokemon/cries.asm) +; - PokedexOrder (see data/pokemon/dex_order.asm) +; - PokedexEntryPointers (see data/pokemon/dex_entries.asm) + const_def + const NO_MON ; $00 + const RHYDON ; $01 + const KANGASKHAN ; $02 + const NIDORAN_M ; $03 + const CLEFAIRY ; $04 + const SPEAROW ; $05 + const VOLTORB ; $06 + const NIDOKING ; $07 + const SLOWBRO ; $08 + const IVYSAUR ; $09 + const EXEGGUTOR ; $0A + const LICKITUNG ; $0B + const EXEGGCUTE ; $0C + const GRIMER ; $0D + const GENGAR ; $0E + const NIDORAN_F ; $0F + const NIDOQUEEN ; $10 + const CUBONE ; $11 + const RHYHORN ; $12 + const LAPRAS ; $13 + const ARCANINE ; $14 + const MEW ; $15 + const GYARADOS ; $16 + const SHELLDER ; $17 + const TENTACOOL ; $18 + const GASTLY ; $19 + const SCYTHER ; $1A + const STARYU ; $1B + const BLASTOISE ; $1C + const PINSIR ; $1D + const TANGELA ; $1E + const_skip ; $1F + const_skip ; $20 + const GROWLITHE ; $21 + const ONIX ; $22 + const FEAROW ; $23 + const PIDGEY ; $24 + const SLOWPOKE ; $25 + const KADABRA ; $26 + const GRAVELER ; $27 + const CHANSEY ; $28 + const MACHOKE ; $29 + const MR_MIME ; $2A + const HITMONLEE ; $2B + const HITMONCHAN ; $2C + const ARBOK ; $2D + const PARASECT ; $2E + const PSYDUCK ; $2F + const DROWZEE ; $30 + const GOLEM ; $31 + const_skip ; $32 + const MAGMAR ; $33 + const_skip ; $34 + const ELECTABUZZ ; $35 + const MAGNETON ; $36 + const KOFFING ; $37 + const_skip ; $38 + const MANKEY ; $39 + const SEEL ; $3A + const DIGLETT ; $3B + const TAUROS ; $3C + const_skip ; $3D + const_skip ; $3E + const_skip ; $3F + const FARFETCHD ; $40 + const VENONAT ; $41 + const DRAGONITE ; $42 + const_skip ; $43 + const_skip ; $44 + const_skip ; $45 + const DODUO ; $46 + const POLIWAG ; $47 + const JYNX ; $48 + const MOLTRES ; $49 + const ARTICUNO ; $4A + const ZAPDOS ; $4B + const DITTO ; $4C + const MEOWTH ; $4D + const KRABBY ; $4E + const_skip ; $4F + const_skip ; $50 + const_skip ; $51 + const VULPIX ; $52 + const NINETALES ; $53 + const PIKACHU ; $54 + const RAICHU ; $55 + const_skip ; $56 + const_skip ; $57 + const DRATINI ; $58 + const DRAGONAIR ; $59 + const KABUTO ; $5A + const KABUTOPS ; $5B + const HORSEA ; $5C + const SEADRA ; $5D + const_skip ; $5E + const_skip ; $5F + const SANDSHREW ; $60 + const SANDSLASH ; $61 + const OMANYTE ; $62 + const OMASTAR ; $63 + const JIGGLYPUFF ; $64 + const WIGGLYTUFF ; $65 + const EEVEE ; $66 + const FLAREON ; $67 + const JOLTEON ; $68 + const VAPOREON ; $69 + const MACHOP ; $6A + const ZUBAT ; $6B + const EKANS ; $6C + const PARAS ; $6D + const POLIWHIRL ; $6E + const POLIWRATH ; $6F + const WEEDLE ; $70 + const KAKUNA ; $71 + const BEEDRILL ; $72 + const_skip ; $73 + const DODRIO ; $74 + const PRIMEAPE ; $75 + const DUGTRIO ; $76 + const VENOMOTH ; $77 + const DEWGONG ; $78 + const_skip ; $79 + const_skip ; $7A + const CATERPIE ; $7B + const METAPOD ; $7C + const BUTTERFREE ; $7D + const MACHAMP ; $7E + const_skip ; $7F + const GOLDUCK ; $80 + const HYPNO ; $81 + const GOLBAT ; $82 + const MEWTWO ; $83 + const SNORLAX ; $84 + const MAGIKARP ; $85 + const_skip ; $86 + const_skip ; $87 + const MUK ; $88 + const_skip ; $89 + const KINGLER ; $8A + const CLOYSTER ; $8B + const_skip ; $8C + const ELECTRODE ; $8D + const CLEFABLE ; $8E + const WEEZING ; $8F + const PERSIAN ; $90 + const MAROWAK ; $91 + const_skip ; $92 + const HAUNTER ; $93 + const ABRA ; $94 + const ALAKAZAM ; $95 + const PIDGEOTTO ; $96 + const PIDGEOT ; $97 + const STARMIE ; $98 + const BULBASAUR ; $99 + const VENUSAUR ; $9A + const TENTACRUEL ; $9B + const_skip ; $9C + const GOLDEEN ; $9D + const SEAKING ; $9E + const_skip ; $9F + const_skip ; $A0 + const_skip ; $A1 + const_skip ; $A2 + const PONYTA ; $A3 + const RAPIDASH ; $A4 + const RATTATA ; $A5 + const RATICATE ; $A6 + const NIDORINO ; $A7 + const NIDORINA ; $A8 + const GEODUDE ; $A9 + const PORYGON ; $AA + const AERODACTYL ; $AB + const_skip ; $AC + const MAGNEMITE ; $AD + const_skip ; $AE + const_skip ; $AF + const CHARMANDER ; $B0 + const SQUIRTLE ; $B1 + const CHARMELEON ; $B2 + const WARTORTLE ; $B3 + const CHARIZARD ; $B4 + const_skip ; $B5 + const FOSSIL_KABUTOPS ; $B6 + const FOSSIL_AERODACTYL ; $B7 + const MON_GHOST ; $B8 + const ODDISH ; $B9 + const GLOOM ; $BA + const VILEPLUME ; $BB + const BELLSPROUT ; $BC + const WEEPINBELL ; $BD + const VICTREEBEL ; $BE - const RHYDON ; $01 - const KANGASKHAN ; $02 - const NIDORAN_M ; $03 - const CLEFAIRY ; $04 - const SPEAROW ; $05 - const VOLTORB ; $06 - const NIDOKING ; $07 - const SLOWBRO ; $08 - const IVYSAUR ; $09 - const EXEGGUTOR ; $0A - const LICKITUNG ; $0B - const EXEGGCUTE ; $0C - const GRIMER ; $0D - const GENGAR ; $0E - const NIDORAN_F ; $0F - const NIDOQUEEN ; $10 - const CUBONE ; $11 - const RHYHORN ; $12 - const LAPRAS ; $13 - const ARCANINE ; $14 - const MEW ; $15 - const GYARADOS ; $16 - const SHELLDER ; $17 - const TENTACOOL ; $18 - const GASTLY ; $19 - const SCYTHER ; $1A - const STARYU ; $1B - const BLASTOISE ; $1C - const PINSIR ; $1D - const TANGELA ; $1E - const MISSINGNO_1F ; $1F - const MISSINGNO_20 ; $20 - const GROWLITHE ; $21 - const ONIX ; $22 - const FEAROW ; $23 - const PIDGEY ; $24 - const SLOWPOKE ; $25 - const KADABRA ; $26 - const GRAVELER ; $27 - const CHANSEY ; $28 - const MACHOKE ; $29 - const MR_MIME ; $2A - const HITMONLEE ; $2B - const HITMONCHAN ; $2C - const ARBOK ; $2D - const PARASECT ; $2E - const PSYDUCK ; $2F - const DROWZEE ; $30 - const GOLEM ; $31 - const MISSINGNO_32 ; $32 - const MAGMAR ; $33 - const MISSINGNO_34 ; $34 - const ELECTABUZZ ; $35 - const MAGNETON ; $36 - const KOFFING ; $37 - const MISSINGNO_38 ; $38 - const MANKEY ; $39 - const SEEL ; $3A - const DIGLETT ; $3B - const TAUROS ; $3C - const MISSINGNO_3D ; $3D - const MISSINGNO_3E ; $3E - const MISSINGNO_3F ; $3F - const FARFETCHD ; $40 - const VENONAT ; $41 - const DRAGONITE ; $42 - const MISSINGNO_43 ; $43 - const MISSINGNO_44 ; $44 - const MISSINGNO_45 ; $45 - const DODUO ; $46 - const POLIWAG ; $47 - const JYNX ; $48 - const MOLTRES ; $49 - const ARTICUNO ; $4A - const ZAPDOS ; $4B - const DITTO ; $4C - const MEOWTH ; $4D - const KRABBY ; $4E - const MISSINGNO_4F ; $4F - const MISSINGNO_50 ; $50 - const MISSINGNO_51 ; $51 - const VULPIX ; $52 - const NINETALES ; $53 - const PIKACHU ; $54 - const RAICHU ; $55 - const MISSINGNO_56 ; $56 - const MISSINGNO_57 ; $57 - const DRATINI ; $58 - const DRAGONAIR ; $59 - const KABUTO ; $5A - const KABUTOPS ; $5B - const HORSEA ; $5C - const SEADRA ; $5D - const MISSINGNO_5E ; $5E - const MISSINGNO_5F ; $5F - const SANDSHREW ; $60 - const SANDSLASH ; $61 - const OMANYTE ; $62 - const OMASTAR ; $63 - const JIGGLYPUFF ; $64 - const WIGGLYTUFF ; $65 - const EEVEE ; $66 - const FLAREON ; $67 - const JOLTEON ; $68 - const VAPOREON ; $69 - const MACHOP ; $6A - const ZUBAT ; $6B - const EKANS ; $6C - const PARAS ; $6D - const POLIWHIRL ; $6E - const POLIWRATH ; $6F - const WEEDLE ; $70 - const KAKUNA ; $71 - const BEEDRILL ; $72 - const MISSINGNO_73 ; $73 - const DODRIO ; $74 - const PRIMEAPE ; $75 - const DUGTRIO ; $76 - const VENOMOTH ; $77 - const DEWGONG ; $78 - const MISSINGNO_79 ; $79 - const MISSINGNO_7A ; $7A - const CATERPIE ; $7B - const METAPOD ; $7C - const BUTTERFREE ; $7D - const MACHAMP ; $7E - const MISSINGNO_7F ; $7F - const GOLDUCK ; $80 - const HYPNO ; $81 - const GOLBAT ; $82 - const MEWTWO ; $83 - const SNORLAX ; $84 - const MAGIKARP ; $85 - const MISSINGNO_86 ; $86 - const MISSINGNO_87 ; $87 - const MUK ; $88 - const MISSINGNO_89 ; $89 - const KINGLER ; $8A - const CLOYSTER ; $8B - const MISSINGNO_8C ; $8C - const ELECTRODE ; $8D - const CLEFABLE ; $8E - const WEEZING ; $8F - const PERSIAN ; $90 - const MAROWAK ; $91 - const MISSINGNO_92 ; $92 - const HAUNTER ; $93 - const ABRA ; $94 - const ALAKAZAM ; $95 - const PIDGEOTTO ; $96 - const PIDGEOT ; $97 - const STARMIE ; $98 - const BULBASAUR ; $99 - const VENUSAUR ; $9A - const TENTACRUEL ; $9B - const MISSINGNO_9C ; $9C - const GOLDEEN ; $9D - const SEAKING ; $9E - const MISSINGNO_9F ; $9F - const MISSINGNO_A0 ; $A0 - const MISSINGNO_A1 ; $A1 - const MISSINGNO_A2 ; $A2 - const PONYTA ; $A3 - const RAPIDASH ; $A4 - const RATTATA ; $A5 - const RATICATE ; $A6 - const NIDORINO ; $A7 - const NIDORINA ; $A8 - const GEODUDE ; $A9 - const PORYGON ; $AA - const AERODACTYL ; $AB - const MISSINGNO_AC ; $AC - const MAGNEMITE ; $AD - const MISSINGNO_AE ; $AE - const MISSINGNO_AF ; $AF - const CHARMANDER ; $B0 - const SQUIRTLE ; $B1 - const CHARMELEON ; $B2 - const WARTORTLE ; $B3 - const CHARIZARD ; $B4 - const MISSINGNO_B5 ; $B5 - const FOSSIL_KABUTOPS ; $B6 - const FOSSIL_AERODACTYL ; $B7 - const MON_GHOST ; $B8 - const ODDISH ; $B9 - const GLOOM ; $BA - const VILEPLUME ; $BB - const BELLSPROUT ; $BC - const WEEPINBELL ; $BD - const VICTREEBEL ; $BE +NUM_POKEMON_INDEXES EQU const_value - 1 -NUM_POKEMON_INDEXES EQU const_value + -1 +; starters +STARTER1 EQU CHARMANDER +STARTER2 EQU SQUIRTLE +STARTER3 EQU BULBASAUR ; ghost Marowak in Pokémon Tower RESTLESS_SOUL EQU MAROWAK diff --git a/constants/pokemon_data_constants.asm b/constants/pokemon_data_constants.asm new file mode 100755 index 000000000..a0e5b2579 --- /dev/null +++ b/constants/pokemon_data_constants.asm @@ -0,0 +1,41 @@ +PARTY_LENGTH EQU 6 + +MONS_PER_BOX EQU 20 +NUM_BOXES EQU 12 + +HOF_MON EQU $10 +HOF_TEAM EQU PARTY_LENGTH * HOF_MON +HOF_TEAM_CAPACITY EQU 50 + + +; mon data locations +; Note that some values are not supported by all functions that use these values. + const_def + const PLAYER_PARTY_DATA ; 0 + const ENEMY_PARTY_DATA ; 1 + const BOX_DATA ; 2 + const DAYCARE_DATA ; 3 + const BATTLE_MON_DATA ; 4 + + +; See data/pokemon/evos_moves.asm + +; Evolution types + const_def 1 + const EV_LEVEL ; 1 + const EV_ITEM ; 2 + const EV_TRADE ; 3 + +MAX_EVOLUTIONS EQU 3 +EVOLUTION_SIZE EQU 4 + + +; wMonHGrowthRate values +; GrowthRateTable indexes (see data/growth_rates.asm) + const_def + const GROWTH_MEDIUM_FAST + const GROWTH_SLIGHTLY_FAST + const GROWTH_SLIGHTLY_SLOW + const GROWTH_MEDIUM_SLOW + const GROWTH_FAST + const GROWTH_SLOW diff --git a/constants/script_constants.asm b/constants/script_constants.asm new file mode 100644 index 000000000..e7d23e975 --- /dev/null +++ b/constants/script_constants.asm @@ -0,0 +1,63 @@ +; EmotionBubblesPointerTable indexes (see engine/overworld/emotion_bubbles.asm) + const_def + const EXCLAMATION_BUBBLE ; 0 + const QUESTION_BUBBLE ; 1 + const SMILE_BUBBLE ; 2 + const SKULL_BUBBLE ; 3 + const HEART_BUBBLE ; 4 + const BOLT_BUBBLE ; 5 + const ZZZ_BUBBLE ; 6 + const FISH_BUBBLE ; 7 + +; slot symbols +SLOTS7 EQU $0200 +SLOTSBAR EQU $0604 +SLOTSCHERRY EQU $0A08 +SLOTSFISH EQU $0E0C +SLOTSBIRD EQU $1210 +SLOTSMOUSE EQU $1614 + +; StartSlotMachine dialogs +SLOTS_OUTOFORDER EQU $fd +SLOTS_OUTTOLUNCH EQU $fe +SLOTS_SOMEONESKEYS EQU $ff + +; in game trades +; TradeMons indexes (see data/events/trades.asm) + const_def + const TRADE_FOR_TERRY + const TRADE_FOR_MARCEL + const TRADE_FOR_CHIKUCHIKU + const TRADE_FOR_SAILOR + const TRADE_FOR_DUX + const TRADE_FOR_MARC + const TRADE_FOR_LOLA + const TRADE_FOR_DORIS + const TRADE_FOR_CRINKLES + const TRADE_FOR_SPOT + +; in game trade dialog sets +; InGameTradeTextPointers indexes (see engine/events/in_game_trades.asm) + const_def + const TRADE_DIALOGSET_CASUAL + const TRADE_DIALOGSET_POLITE + const TRADE_DIALOGSET_HAPPY + +; badges +; wObtainedBadges and wBeatGymFlags bits + const_def + const BIT_BOULDERBADGE ; 0 + const BIT_CASCADEBADGE ; 1 + const BIT_THUNDERBADGE ; 2 + const BIT_RAINBOWBADGE ; 3 + const BIT_SOULBADGE ; 4 + const BIT_MARSHBADGE ; 5 + const BIT_VOLCANOBADGE ; 6 + const BIT_EARTHBADGE ; 7 +NUM_BADGES EQU const_value + +; OaksAideScript results +OAKS_AIDE_BAG_FULL EQU $00 +OAKS_AIDE_GOT_ITEM EQU $01 +OAKS_AIDE_NOT_ENOUGH_MONS EQU $80 +OAKS_AIDE_REFUSED EQU $ff diff --git a/constants/serial_constants.asm b/constants/serial_constants.asm new file mode 100644 index 000000000..a6aae3156 --- /dev/null +++ b/constants/serial_constants.asm @@ -0,0 +1,27 @@ +ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK EQU $01 +ESTABLISH_CONNECTION_WITH_EXTERNAL_CLOCK EQU $02 + +USING_EXTERNAL_CLOCK EQU $01 +USING_INTERNAL_CLOCK EQU $02 +CONNECTION_NOT_ESTABLISHED EQU $ff + +; signals the start of an array of bytes transferred over the link cable +SERIAL_PREAMBLE_BYTE EQU $FD + +; this byte is used when there is no data to send +SERIAL_NO_DATA_BYTE EQU $FE + +; signals the end of one part of a patch list (there are two parts) for player/enemy party data +SERIAL_PATCH_LIST_PART_TERMINATOR EQU $FF + +LINK_STATE_NONE EQU $00 ; not using link +LINK_STATE_IN_CABLE_CLUB EQU $01 ; in a cable club room (Colosseum or Trade Centre) +LINK_STATE_START_TRADE EQU $02 ; pre-trade selection screen initialisation +LINK_STATE_START_BATTLE EQU $03 ; pre-battle initialisation +LINK_STATE_BATTLING EQU $04 ; in a link battle +LINK_STATE_RESET EQU $05 ; reset game (unused) +LINK_STATE_TRADING EQU $32 ; in a link trade + +LINKBATTLE_RUN EQU $F +LINKBATTLE_STRUGGLE EQU $E +LINKBATTLE_NO_ACTION EQU $D diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index 3349e374c..da0b3b43f 100755 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -1,113 +1,87 @@ -; pokemon's overworld sprites -const_value = 0 - - const SPRITE_MON ; $0 - const SPRITE_BALL_M ; $1 - const SPRITE_HELIX ; $2 - const SPRITE_FAIRY ; $3 - const SPRITE_BIRD_M ; $4 - const SPRITE_WATER ; $5 - const SPRITE_BUG ; $6 - const SPRITE_GRASS ; $7 - const SPRITE_SNAKE ; $8 - const SPRITE_QUADRUPED ; $9 - const SPRITE_PIKACHU_FAMILY ; $A ; overworld sprites -const_value = 1 - - const SPRITE_RED ; $01 - const SPRITE_BLUE ; $02 - const SPRITE_OAK ; $03 - const SPRITE_BUG_CATCHER ; $04 - const SPRITE_SLOWBRO ; $05 - const SPRITE_LASS ; $06 - const SPRITE_BLACK_HAIR_BOY_1 ; $07 - const SPRITE_LITTLE_GIRL ; $08 - const SPRITE_BIRD ; $09 - const SPRITE_FAT_BALD_GUY ; $0a - const SPRITE_GAMBLER ; $0b - const SPRITE_BLACK_HAIR_BOY_2 ; $0c - const SPRITE_GIRL ; $0d - const SPRITE_HIKER ; $0e - const SPRITE_FOULARD_WOMAN ; $0f - const SPRITE_GENTLEMAN ; $10 - const SPRITE_DAISY ; $11 - const SPRITE_BIKER ; $12 - const SPRITE_SAILOR ; $13 - const SPRITE_COOK ; $14 - const SPRITE_BIKE_SHOP_GUY ; $15 - const SPRITE_MR_FUJI ; $16 - const SPRITE_GIOVANNI ; $17 - const SPRITE_ROCKET ; $18 - const SPRITE_MEDIUM ; $19 - const SPRITE_WAITER ; $1a - const SPRITE_ERIKA ; $1b - const SPRITE_MOM_GEISHA ; $1c - const SPRITE_BRUNETTE_GIRL ; $1d - const SPRITE_LANCE ; $1e - const SPRITE_UNUSED_1 ; $1f - const SPRITE_OAK_AIDE ; $20 - const SPRITE_ROCKER ; $21 - const SPRITE_SWIMMER ; $22 - const SPRITE_WHITE_PLAYER ; $23 - const SPRITE_GYM_HELPER ; $24 - const SPRITE_OLD_PERSON ; $25 - const SPRITE_MART_GUY ; $26 - const SPRITE_FISHER ; $27 - const SPRITE_OLD_MEDIUM_WOMAN ; $28 - const SPRITE_NURSE ; $29 - const SPRITE_CABLE_CLUB_WOMAN ; $2a - const SPRITE_MR_MASTERBALL ; $2b - const SPRITE_LAPRAS_GIVER ; $2c - const SPRITE_WARDEN ; $2d - const SPRITE_SS_CAPTAIN ; $2e - const SPRITE_FISHER2 ; $2f - const SPRITE_BLACKBELT ; $30 - const SPRITE_GUARD ; $31 - const SPRITE_UNUSED_2 ; $32 - const SPRITE_MOM ; $33 - const SPRITE_BALDING_GUY ; $34 - const SPRITE_YOUNG_BOY ; $35 - const SPRITE_UNUSED_3 ; $36 - const SPRITE_GAMEBOY_KID ; $37 - const SPRITE_CLEFAIRY ; $38 - const SPRITE_AGATHA ; $39 - const SPRITE_BRUNO ; $3a - const SPRITE_LORELEI ; $3b - const SPRITE_SEEL ; $3c - const SPRITE_PIKACHU ; $3d - const SPRITE_OFFICER_JENNY ; $3e - const SPRITE_SANDSHREW ; $3f - const SPRITE_ODDISH ; $40 - const SPRITE_BULBASAUR ; $41 - const SPRITE_JIGGLYPUFF ; $42 - const SPRITE_CLEFAIRY_2 ; $43 - const SPRITE_CHANSEY ; $44 - const SPRITE_JESSIE ; $45 - const SPRITE_JAMES ; $46 - - ; 4-tile sprites - const SPRITE_BALL ; $47 - const SPRITE_OMANYTE ; $48 - const SPRITE_BOULDER ; $49 - const SPRITE_PAPER_SHEET ; $4a - const SPRITE_BOOK_MAP_DEX ; $4b - const SPRITE_CLIPBOARD ; $4c - const SPRITE_SNORLAX ; $4d - const SPRITE_OLD_AMBER_COPY ; $4e - const SPRITE_OLD_AMBER ; $4f - const SPRITE_LYING_OLD_MAN_UNUSED_1 ; $50 - const SPRITE_LYING_OLD_MAN_UNUSED_2 ; $51 - const SPRITE_LYING_OLD_MAN ; $52 - -; different kinds of people events -ITEM EQU $80 -TRAINER EQU $40 - -BOULDER_MOVEMENT_BYTE_2 EQU $10 - -; sprite facing directions -SPRITE_FACING_DOWN EQU $00 -SPRITE_FACING_UP EQU $04 -SPRITE_FACING_LEFT EQU $08 -SPRITE_FACING_RIGHT EQU $0C +; SpriteSheetPointerTable indexes (see data/sprites/sprites.asm) + const_def + const SPRITE_NONE ; $00 + const SPRITE_RED ; $01 + const SPRITE_BLUE ; $02 + const SPRITE_OAK ; $03 + const SPRITE_YOUNGSTER ; $04 + const SPRITE_MONSTER ; $05 + const SPRITE_COOLTRAINER_F ; $06 + const SPRITE_COOLTRAINER_M ; $07 + const SPRITE_LITTLE_GIRL ; $08 + const SPRITE_BIRD ; $09 + const SPRITE_MIDDLE_AGED_MAN ; $0a + const SPRITE_GAMBLER ; $0b + const SPRITE_SUPER_NERD ; $0c + const SPRITE_GIRL ; $0d + const SPRITE_HIKER ; $0e + const SPRITE_BEAUTY ; $0f + const SPRITE_GENTLEMAN ; $10 + const SPRITE_DAISY ; $11 + const SPRITE_BIKER ; $12 + const SPRITE_SAILOR ; $13 + const SPRITE_COOK ; $14 + const SPRITE_BIKE_SHOP_CLERK ; $15 + const SPRITE_MR_FUJI ; $16 + const SPRITE_GIOVANNI ; $17 + const SPRITE_ROCKET ; $18 + const SPRITE_CHANNELER ; $19 + const SPRITE_WAITER ; $1a + const SPRITE_ERIKA ; $1b + const SPRITE_MIDDLE_AGED_WOMAN ; $1c + const SPRITE_BRUNETTE_GIRL ; $1d + const SPRITE_LANCE ; $1e + const SPRITE_UNUSED_SCIENTIST ; $1f + const SPRITE_SCIENTIST ; $20 + const SPRITE_ROCKER ; $21 + const SPRITE_SWIMMER ; $22 + const SPRITE_SAFARI_ZONE_WORKER ; $23 + const SPRITE_GYM_GUIDE ; $24 + const SPRITE_GRAMPS ; $25 + const SPRITE_CLERK ; $26 + const SPRITE_FISHING_GURU ; $27 + const SPRITE_GRANNY ; $28 + const SPRITE_NURSE ; $29 + const SPRITE_LINK_RECEPTIONIST ; $2a + const SPRITE_SILPH_PRESIDENT ; $2b + const SPRITE_SILPH_WORKER ; $2c + const SPRITE_WARDEN ; $2d + const SPRITE_CAPTAIN ; $2e + const SPRITE_FISHER ; $2f + const SPRITE_KOGA ; $30 + const SPRITE_GUARD ; $31 + const SPRITE_UNUSED_GUARD ; $32 + const SPRITE_MOM ; $33 + const SPRITE_BALDING_GUY ; $34 + const SPRITE_LITTLE_BOY ; $35 + const SPRITE_UNUSED_GAMEBOY_KID ; $36 + const SPRITE_GAMEBOY_KID ; $37 + const SPRITE_FAIRY ; $38 + const SPRITE_AGATHA ; $39 + const SPRITE_BRUNO ; $3a + const SPRITE_LORELEI ; $3b + const SPRITE_SEEL ; $3c + const SPRITE_PIKACHU ; $3d + const SPRITE_OFFICER_JENNY ; $3e + const SPRITE_SANDSHREW ; $3f + const SPRITE_ODDISH ; $40 + const SPRITE_BULBASAUR ; $41 + const SPRITE_JIGGLYPUFF ; $42 + const SPRITE_CLEFAIRY ; $43 + const SPRITE_CHANSEY ; $44 + const SPRITE_JESSIE ; $45 + const SPRITE_JAMES ; $46 +FIRST_STILL_SPRITE EQU const_value + const SPRITE_POKE_BALL ; $47 + const SPRITE_FOSSIL ; $48 + const SPRITE_BOULDER ; $49 + const SPRITE_PAPER ; $4a + const SPRITE_POKEDEX ; $4b + const SPRITE_CLIPBOARD ; $4c + const SPRITE_SNORLAX ; $4d + const SPRITE_UNUSED_OLD_AMBER ; $4e + const SPRITE_OLD_AMBER ; $4f + const SPRITE_UNUSED_GAMBLER_ASLEEP_1 ; $50 + const SPRITE_UNUSED_GAMBLER_ASLEEP_2 ; $51 + const SPRITE_GAMBLER_ASLEEP ; $52 diff --git a/constants/sprite_data_constants.asm b/constants/sprite_data_constants.asm new file mode 100644 index 000000000..e1104262d --- /dev/null +++ b/constants/sprite_data_constants.asm @@ -0,0 +1,26 @@ +; sprite facing directions + const_def 0, $04 + const SPRITE_FACING_DOWN ; $00 + const SPRITE_FACING_UP ; $04 + const SPRITE_FACING_LEFT ; $08 + const SPRITE_FACING_RIGHT ; $0C + + const_def 0, $40 + const NPC_MOVEMENT_DOWN ; $00 + const NPC_MOVEMENT_UP ; $40 + const NPC_MOVEMENT_LEFT ; $80 + const NPC_MOVEMENT_RIGHT ; $C0 + +NPC_CHANGE_FACING EQU $E0 + +; player direction constants + const_def + const PLAYER_DIR_BIT_RIGHT ; 0 + const PLAYER_DIR_BIT_LEFT ; 1 + const PLAYER_DIR_BIT_DOWN ; 2 + const PLAYER_DIR_BIT_UP ; 3 + +PLAYER_DIR_RIGHT EQU 1 << PLAYER_DIR_BIT_RIGHT +PLAYER_DIR_LEFT EQU 1 << PLAYER_DIR_BIT_LEFT +PLAYER_DIR_DOWN EQU 1 << PLAYER_DIR_BIT_DOWN +PLAYER_DIR_UP EQU 1 << PLAYER_DIR_BIT_UP diff --git a/constants/starter_mons.asm b/constants/starter_mons.asm deleted file mode 100755 index 16de35d44..000000000 --- a/constants/starter_mons.asm +++ /dev/null @@ -1,3 +0,0 @@ -STARTER1 EQU CHARMANDER -STARTER2 EQU SQUIRTLE -STARTER3 EQU BULBASAUR diff --git a/constants/status_constants.asm b/constants/status_constants.asm deleted file mode 100755 index 25babb82b..000000000 --- a/constants/status_constants.asm +++ /dev/null @@ -1,32 +0,0 @@ -; non-volatile statuses -SLP EQU %111 ; sleep counter -PSN EQU 3 -BRN EQU 4 -FRZ EQU 5 -PAR EQU 6 - -; volatile statuses 1 -STORING_ENERGY EQU 0 ; Bide -THRASHING_ABOUT EQU 1 ; e.g. Thrash -ATTACKING_MULTIPLE_TIMES EQU 2 ; e.g. Double Kick, Fury Attack -FLINCHED EQU 3 -CHARGING_UP EQU 4 ; e.g. Solar Beam, Fly -USING_TRAPPING_MOVE EQU 5 ; e.g. Wrap -INVULNERABLE EQU 6 ; charging up Fly/Dig -CONFUSED EQU 7 - -; volatile statuses 2 -USING_X_ACCURACY EQU 0 -PROTECTED_BY_MIST EQU 1 -GETTING_PUMPED EQU 2 ; Focus Energy -; EQU 3 ; unused -HAS_SUBSTITUTE_UP EQU 4 -NEEDS_TO_RECHARGE EQU 5 ; Hyper Beam -USING_RAGE EQU 6 -SEEDED EQU 7 - -; volatile statuses 3 -BADLY_POISONED EQU 0 -HAS_LIGHT_SCREEN_UP EQU 1 -HAS_REFLECT_UP EQU 2 -TRANSFORMED EQU 3 diff --git a/constants/text_constants.asm b/constants/text_constants.asm index 4479e90e8..6a2ce9f64 100755 --- a/constants/text_constants.asm +++ b/constants/text_constants.asm @@ -1,15 +1,22 @@ -; special text IDs -TEXT_MON_FAINTED EQU $d0 -TEXT_BLACKED_OUT EQU $d1 -TEXT_REPEL_WORE_OFF EQU $d2 -TEXT_SAFARI_GAME_OVER EQU $d3 -TEXT_PIKACHU_ANIM EQU $d4 +NAME_LENGTH EQU 11 +ITEM_NAME_LENGTH EQU 13 ; PrintNumber -BIT_MONEY_SIGN EQU 5 -BIT_LEFT_ALIGN EQU 6 -BIT_LEADING_ZEROES EQU 7 + const_def 5 + const BIT_MONEY_SIGN ; 5 + const BIT_LEFT_ALIGN ; 6 + const BIT_LEADING_ZEROES ; 7 MONEY_SIGN EQU (1 << BIT_MONEY_SIGN) LEFT_ALIGN EQU (1 << BIT_LEFT_ALIGN) LEADING_ZEROES EQU (1 << BIT_LEADING_ZEROES) + +; special text IDs (see home/text_script.asm) + const_def $d0 + const TEXT_MON_FAINTED ; $d0 + const TEXT_BLACKED_OUT ; $d1 + const TEXT_REPEL_WORE_OFF ; $d2 + const TEXT_SAFARI_GAME_OVER ; $d3 + const TEXT_PIKACHU_ANIM ; $d4 + +TEXT_START_MENU EQU $00 diff --git a/constants/tileset_constants.asm b/constants/tileset_constants.asm new file mode 100644 index 000000000..12b30ffe4 --- /dev/null +++ b/constants/tileset_constants.asm @@ -0,0 +1,28 @@ +; tileset ids +; Tilesets indexes (see data/tilesets/tileset_headers.asm) + const_def + const OVERWORLD ; 0 + const REDS_HOUSE_1 ; 1 + const MART ; 2 + const FOREST ; 3 + const REDS_HOUSE_2 ; 4 + const DOJO ; 5 + const POKECENTER ; 6 + const GYM ; 7 + const HOUSE ; 8 + const FOREST_GATE ; 9 + const MUSEUM ; 10 + const UNDERGROUND ; 11 + const GATE ; 12 + const SHIP ; 13 + const SHIP_PORT ; 14 + const CEMETERY ; 15 + const INTERIOR ; 16 + const CAVERN ; 17 + const LOBBY ; 18 + const MANSION ; 19 + const LAB ; 20 + const CLUB ; 21 + const FACILITY ; 22 + const PLATEAU ; 23 + const BEACH_HOUSE_TILESET ; 24 diff --git a/constants/tilesets.asm b/constants/tilesets.asm deleted file mode 100644 index aa81f7746..000000000 --- a/constants/tilesets.asm +++ /dev/null @@ -1,27 +0,0 @@ -const_value = 0 - - const OVERWORLD ; 0 - const REDS_HOUSE_1 ; 1 - const MART ; 2 - const FOREST ; 3 - const REDS_HOUSE_2 ; 4 - const DOJO ; 5 - const POKECENTER ; 6 - const GYM ; 7 - const HOUSE ; 8 - const FOREST_GATE ; 9 - const MUSEUM ; 10 - const UNDERGROUND ; 11 - const GATE ; 12 - const SHIP ; 13 - const SHIP_PORT ; 14 - const CEMETERY ; 15 - const INTERIOR ; 16 - const CAVERN ; 17 - const LOBBY ; 18 - const MANSION ; 19 - const LAB ; 20 - const CLUB ; 21 - const FACILITY ; 22 - const PLATEAU ; 23 - const BEACH_HOUSE_TILESET ; 24 diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm index 65b60cc56..6fdc5d4e6 100755 --- a/constants/trainer_constants.asm +++ b/constants/trainer_constants.asm @@ -1,57 +1,64 @@ OPP_ID_OFFSET EQU 200 trainer_const: MACRO -\1 EQU const_value -OPP_\1 EQU const_value + OPP_ID_OFFSET -const_value = const_value + 1 + const \1 +OPP_\1 EQU OPP_ID_OFFSET + \1 ENDM -const_value = 1 - - trainer_const YOUNGSTER ; $01 | OPP = $C9 - trainer_const BUG_CATCHER ; $02 | OPP = $CA - trainer_const LASS ; $03 | OPP = $CB - trainer_const SAILOR ; $04 | OPP = $CC - trainer_const JR_TRAINER_M ; $05 | OPP = $CD - trainer_const JR_TRAINER_F ; $06 | OPP = $CE - trainer_const POKEMANIAC ; $07 | OPP = $CF - trainer_const SUPER_NERD ; $08 | OPP = $D0 - trainer_const HIKER ; $09 | OPP = $D1 - trainer_const BIKER ; $0A | OPP = $D2 - trainer_const BURGLAR ; $0B | OPP = $D3 - trainer_const ENGINEER ; $0C | OPP = $D4 - trainer_const JUGGLER_X ; $0D | OPP = $D5 - trainer_const FISHER ; $0E | OPP = $D6 - trainer_const SWIMMER ; $0F | OPP = $D7 - trainer_const CUE_BALL ; $10 | OPP = $D8 - trainer_const GAMBLER ; $11 | OPP = $D9 - trainer_const BEAUTY ; $12 | OPP = $DA - trainer_const PSYCHIC_TR ; $13 | OPP = $DB - trainer_const ROCKER ; $14 | OPP = $DC - trainer_const JUGGLER ; $15 | OPP = $DD - trainer_const TAMER ; $16 | OPP = $DE - trainer_const BIRD_KEEPER ; $17 | OPP = $DF - trainer_const BLACKBELT ; $18 | OPP = $E0 - trainer_const SONY1 ; $19 | OPP = $E1 - trainer_const PROF_OAK ; $1A | OPP = $E2 - trainer_const CHIEF ; $1B | OPP = $E3 - trainer_const SCIENTIST ; $1C | OPP = $E4 - trainer_const GIOVANNI ; $1D | OPP = $E5 - trainer_const ROCKET ; $1E | OPP = $E6 - trainer_const COOLTRAINER_M ; $1F | OPP = $E7 - trainer_const COOLTRAINER_F ; $20 | OPP = $E8 - trainer_const BRUNO ; $21 | OPP = $E9 - trainer_const BROCK ; $22 | OPP = $EA - trainer_const MISTY ; $23 | OPP = $EB - trainer_const LT_SURGE ; $24 | OPP = $EC - trainer_const ERIKA ; $25 | OPP = $ED - trainer_const KOGA ; $26 | OPP = $EE - trainer_const BLAINE ; $27 | OPP = $EF - trainer_const SABRINA ; $28 | OPP = $F0 - trainer_const GENTLEMAN ; $29 | OPP = $F1 - trainer_const SONY2 ; $2A | OPP = $F2 - trainer_const SONY3 ; $2B | OPP = $F3 - trainer_const LORELEI ; $2C | OPP = $F4 - trainer_const CHANNELER ; $2D | OPP = $F5 - trainer_const AGATHA ; $2E | OPP = $F6 - trainer_const LANCE ; $2F | OPP = $F7 +; trainer class ids +; indexes for: +; - TrainerNames (see data/trainers/names.asm) +; - TrainerNamePointers (see data/trainers/name_pointers.asm) +; - TrainerDataPointers (see data/trainers/parties.asm) +; - TrainerPicAndMoneyPointers (see data/trainers/pic_pointers_money.asm) +; - TrainerAIPointers (see data/trainers/ai_pointers.asm) +; - TrainerClassMoveChoiceModifications (see data/trainers/move_choices.asm) + const_def + trainer_const NOBODY ; $00 + trainer_const YOUNGSTER ; $01 + trainer_const BUG_CATCHER ; $02 + trainer_const LASS ; $03 + trainer_const SAILOR ; $04 + trainer_const JR_TRAINER_M ; $05 + trainer_const JR_TRAINER_F ; $06 + trainer_const POKEMANIAC ; $07 + trainer_const SUPER_NERD ; $08 + trainer_const HIKER ; $09 + trainer_const BIKER ; $0A + trainer_const BURGLAR ; $0B + trainer_const ENGINEER ; $0C + trainer_const UNUSED_JUGGLER ; $0D + trainer_const FISHER ; $0E + trainer_const SWIMMER ; $0F + trainer_const CUE_BALL ; $10 + trainer_const GAMBLER ; $11 + trainer_const BEAUTY ; $12 + trainer_const PSYCHIC_TR ; $13 + trainer_const ROCKER ; $14 + trainer_const JUGGLER ; $15 + trainer_const TAMER ; $16 + trainer_const BIRD_KEEPER ; $17 + trainer_const BLACKBELT ; $18 + trainer_const RIVAL1 ; $19 + trainer_const PROF_OAK ; $1A + trainer_const CHIEF ; $1B + trainer_const SCIENTIST ; $1C + trainer_const GIOVANNI ; $1D + trainer_const ROCKET ; $1E + trainer_const COOLTRAINER_M ; $1F + trainer_const COOLTRAINER_F ; $20 + trainer_const BRUNO ; $21 + trainer_const BROCK ; $22 + trainer_const MISTY ; $23 + trainer_const LT_SURGE ; $24 + trainer_const ERIKA ; $25 + trainer_const KOGA ; $26 + trainer_const BLAINE ; $27 + trainer_const SABRINA ; $28 + trainer_const GENTLEMAN ; $29 + trainer_const RIVAL2 ; $2A + trainer_const RIVAL3 ; $2B + trainer_const LORELEI ; $2C + trainer_const CHANNELER ; $2D + trainer_const AGATHA ; $2E + trainer_const LANCE ; $2F diff --git a/constants/type_constants.asm b/constants/type_constants.asm index b36dc179c..6ae3408dc 100755 --- a/constants/type_constants.asm +++ b/constants/type_constants.asm @@ -1,16 +1,24 @@ -; Elemental types -NORMAL EQU $00 -FIGHTING EQU $01 -FLYING EQU $02 -POISON EQU $03 -GROUND EQU $04 -ROCK EQU $05 -BUG EQU $07 -GHOST EQU $08 -FIRE EQU $14 -WATER EQU $15 -GRASS EQU $16 -ELECTRIC EQU $17 -PSYCHIC EQU $18 -ICE EQU $19 -DRAGON EQU $1A +; TypeNames indexes (see data/types/names.asm) + const_def + +PHYSICAL EQU const_value + const NORMAL ; $00 + const FIGHTING ; $01 + const FLYING ; $02 + const POISON ; $03 + const GROUND ; $04 + const ROCK ; $05 + const BIRD ; $06 + const BUG ; $07 + const GHOST ; $08 + + const_next 20 + +SPECIAL EQU const_value + const FIRE ; $14 + const WATER ; $15 + const GRASS ; $16 + const ELECTRIC ; $17 + const PSYCHIC_TYPE ; $18 + const ICE ; $19 + const DRAGON ; $1A diff --git a/data/animations.asm b/data/animations.asm deleted file mode 100755 index de2487d70..000000000 --- a/data/animations.asm +++ /dev/null @@ -1,3623 +0,0 @@ -AttackAnimationPointers: - dw PoundAnim - dw KarateChopAnim - dw DoubleSlapAnim - dw CometPunchAnim - dw MegaPunchAnim - dw PayDayAnim - dw FirePunchAnim - dw IcePunchAnim - dw ThunderPunchAnim - dw ScratchAnim - dw VicegripAnim - dw GuillotineAnim - dw RazorWindAnim - dw SwordsDanceAnim - dw CutAnim - dw GustAnim - dw WingAttackAnim - dw WhirlwindAnim - dw FlyAnim - dw BindAnim - dw SlamAnim - dw VineWhipAnim - dw StompAnim - dw DoubleKickAnim - dw MegaKickAnim - dw JumpKickAnim - dw RollingKickAnim - dw SandAttackAnim - dw HeatButtAnim - dw HornAttackAnim - dw FuryAttackAnim - dw HornDrillAnim - dw TackleAnim - dw BodySlamAnim - dw WrapAnim - dw TakeDownAnim - dw ThrashAnim - dw DoubleEdgeAnim - dw TailWhipAnim - dw PoisonStingAnim - dw TwineedleAnim - dw PinMissileAnim - dw LeerAnim - dw BiteAnim - dw GrowlAnim - dw RoarAnim - dw SingAnim - dw SupersonicAnim - dw SonicBoomAnim - dw DisableAnim - dw AcidAnim - dw EmberAnim - dw FlamethrowerAnim - dw MistAnim - dw WaterGunAnim - dw HydroPumpAnim - dw SurfAnim - dw IceBeamAnim - dw BlizzardAnim - dw PsyBeamAnim - dw BubbleBeamAnim - dw AuroraBeamAnim - dw HyperBeamAnim - dw PeckAnim - dw DrillPeckAnim - dw SubmissionAnim - dw LowKickAnim - dw CounterAnim - dw SeismicTossAnim - dw StrengthAnim - dw AbsorbAnim - dw MegaDrainAnim - dw LeechSeedAnim - dw GrowthAnim - dw RazorLeafAnim - dw SolarBeamAnim - dw PoisonPowderAnim - dw StunSporeAnim - dw SleepPowderAnim - dw PedalDanceAnim - dw StringShotAnim - dw DragonRageAnim - dw FireSpinAnim - dw ThunderShockAnim - dw ThunderBoltAnim - dw ThunderWaveAnim - dw ThunderAnim - dw RockThrowAnim - dw EarthquakeAnim - dw FissureAnim - dw DigAnim - dw ToxicAnim - dw ConfusionAnim - dw PsychicAnim - dw HypnosisAnim - dw MeditateAnim - dw AgilityAnim - dw QuickAttackAnim - dw RageAnim - dw TeleportAnim - dw NightShadeAnim - dw MimicAnim - dw ScreechAnim - dw DoubleTeamAnim - dw RecoverAnim - dw HardenAnim - dw MinimizeAnim - dw SmokeScreenAnim - dw ConfuseRayAnim - dw WithdrawAnim - dw DefenseCurlAnim - dw BarrierAnim - dw LightScreenAnim - dw HazeAnim - dw ReflectAnim - dw FocusEnergyAnim - dw BideAnim - dw MetronomeAnim - dw MirrorMoveAnim - dw SelfdestructAnim - dw EggBombAnim - dw LickAnim - dw SmogAnim - dw SludgeAnim - dw BoneClubAnim - dw FireBlastAnim - dw WaterfallAnim - dw ClampAnim - dw SwiftAnim - dw SkullBashAnim - dw SpikeCannonAnim - dw ConstrictAnim - dw AmnesiaAnim - dw KinesisAnim - dw SoftboiledAnim - dw HiJumpKickAnim - dw GlareAnim - dw DreamEaterAnim - dw PoisonGasAnim - dw BarrageAnim - dw LeechLifeAnim - dw LovelyKissAnim - dw SkyAttackAnim - dw TransformAnim - dw BubbleAnim - dw DizzyPunchAnim - dw SporeAnim - dw FlashAnim - dw PsywaveAnim - dw SplashAnim - dw AcidArmorAnim - dw CrabHammerAnim - dw ExplosionAnim - dw FurySwipesAnim - dw BonemerangAnim - dw RestAnim - dw RockSlideAnim - dw HyperFangAnim - dw SharpenAnim - dw ConversionAnim - dw TriAttackAnim - dw SuperFangAnim - dw SlashAnim - dw SubstituteAnim - dw StruggleAnim - dw ShowPicAnim - dw EnemyFlashAnim - dw PlayerFlashAnim - dw EnemyHUDShakeAnim - dw TradeBallDropAnim - dw TradeBallAppear1Anim - dw TradeBallAppear2Anim - dw TradeBallPoofAnim - dw XStatItemAnim - dw XStatItemAnim - dw ShrinkingSquareAnim - dw ShrinkingSquareAnim - dw XStatItemBlackAnim - dw XStatItemBlackAnim - dw ShrinkingSquareBlackAnim - dw ShrinkingSquareBlackAnim - dw UnusedAnim - dw UnusedAnim - dw ParalyzeAnim - dw ParalyzeAnim - dw PoisonAnim - dw PoisonAnim - dw SleepPlayerAnim - dw SleepEnemyAnim - dw ConfusedPlayerAnim - dw ConfusedEnemyAnim - dw FaintAnim - dw BallTossAnim - dw BallShakeAnim - dw BallPoofAnim - dw BallBlockAnim - dw GreatTossAnim - dw UltraTossAnim - dw ShakeScreenAnim - dw HidePicAnim - dw ThrowRockAnim - dw ThrowBaitAnim - -; each animation is a list of subanimations and special effects -; if first byte < $56 -; db tileset_and_delay, sound_id, subanimation_id -; if first byte >= $D8 -; db special_effect_id, sound_id -; $FF terminated -PoundAnim: -StruggleAnim: - db $08,$00,$01 - db $FF - -KarateChopAnim: - db $08,$01,$03 - db $FF - -DoubleSlapAnim: - db $05,$02,$01 - db $05,$02,$01 - db $FF - -CometPunchAnim: - db $04,$03,$02 - db $04,$03,$02 - db $FF - -MegaPunchAnim: - db $46,$04,$04 - db $FF - -PayDayAnim: - db $08,$00,$01 - db $04,$05,$52 - db $FF - -FirePunchAnim: - db $06,$06,$02 - db $46,$FF,$11 - db $FF - -IcePunchAnim: - db $06,$07,$02 - db $10,$FF,$2F - db $FF - -ThunderPunchAnim: - db $06,$08,$02 - db SE_DARK_SCREEN_PALETTE, $FF - db $46,$FF,$2B - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -ScratchAnim: - db $06,$09,$0F - db $FF - -VicegripAnim: - db $08,$0A,$2A - db $FF - -GuillotineAnim: - db $06,$0B,$2A - db $FF - -RazorWindAnim: - db $04,$0C,$16 - db $FF - -SwordsDanceAnim: - db $46,$0D,$18 - db $46,$0D,$18 - db $46,$0D,$18 - db $FF - -CutAnim: - db SE_DARK_SCREEN_FLASH, $0E - db $04,$FF,$16 - db $FF - -GustAnim: - db $46,$0F,$10 - db $06,$FF,$02 - db $FF - -WingAttackAnim: - db $46,$10,$04 - db $FF - -WhirlwindAnim: - db $46,$11,$10 - db SE_SLIDE_ENEMY_MON_OFF, $FF - db $FF - -FlyAnim: - db $46,$12,$04 - db SE_SHOW_MON_PIC, $FF - db $FF - -BindAnim: - db $04,$13,$23 - db $04,$13,$23 - db $FF - -SlamAnim: - db $06,$14,$02 - db $FF - -VineWhipAnim: - db $01,$15,$16 - db $08,$FF,$01 - db $FF - -StompAnim: - db $48,$16,$05 - db $FF - -DoubleKickAnim: - db $08,$17,$01 - db $08,$17,$01 - db $FF - -MegaKickAnim: - db $46,$18,$04 - db $FF - -JumpKickAnim: - db $46,$19,$04 - db $FF - -RollingKickAnim: - db SE_DARK_SCREEN_FLASH, $1A - db $46,$FF,$04 - db $FF - -SandAttackAnim: - db $46,$1B,$28 - db $FF - -HeatButtAnim: - db $46,$1C,$05 - db $FF - -HornAttackAnim: - db $06,$1D,$45 - db $46,$FF,$05 - db $FF - -FuryAttackAnim: - db $02,$1E,$46 - db $02,$FF,$46 - db $FF - -HornDrillAnim: - db $42,$1F,$05 - db $42,$FF,$05 - db $42,$FF,$05 - db $42,$FF,$05 - db $42,$FF,$05 - db $FF - -TackleAnim: - db SE_MOVE_MON_HORIZONTALLY, $48 - db SE_RESET_MON_POSITION, $FF - db $FF - -BodySlamAnim: - db SE_MOVE_MON_HORIZONTALLY, $48 - db SE_DARK_SCREEN_FLASH, $FF - db SE_DARK_SCREEN_FLASH, $FF - db SE_RESET_MON_POSITION, $FF - db $FF - -WrapAnim: - db $04,$22,$23 - db $04,$22,$23 - db $04,$22,$23 - db $FF - -TakeDownAnim: - db SE_MOVE_MON_HORIZONTALLY, $48 - db SE_DARK_SCREEN_FLASH, $23 - db SE_RESET_MON_POSITION, $FF - db $FF - -ThrashAnim: - db $46,$24,$04 - db $FF - -DoubleEdgeAnim: - db SE_LIGHT_SCREEN_PALETTE, $48 - db $06,$FF,$2D - db SE_RESET_SCREEN_PALETTE, $FF - db SE_MOVE_MON_HORIZONTALLY, $FF - db SE_DARK_SCREEN_FLASH, $25 - db SE_RESET_MON_POSITION, $FF - db $FF - -TailWhipAnim: - db SE_MOVE_MON_HORIZONTALLY, $84 - db SE_DELAY_ANIMATION_10, $FF - db SE_RESET_MON_POSITION, $84 - db SE_DELAY_ANIMATION_10, $FF - db SE_MOVE_MON_HORIZONTALLY, $84 - db SE_DELAY_ANIMATION_10, $FF - db SE_RESET_MON_POSITION, $84 - db $FF - -PoisonStingAnim: - db $06,$27,$00 - db $FF - -TwineedleAnim: - db $05,$28,$01 - db $05,$28,$01 - db $FF - -PinMissileAnim: - db $03,$29,$01 - db $FF - -LeerAnim: - db SE_DARK_SCREEN_PALETTE, $48 - db SE_DARK_SCREEN_FLASH, $2A - db SE_DARK_SCREEN_FLASH, $2A - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -BiteAnim: - db $08,$2B,$02 - db $FF - -GrowlAnim: - db $46,$2C,$12 - db $FF - -RoarAnim: - db $46,$2D,$15 - db $46,$2D,$15 - db $46,$2D,$15 - db $FF - -SingAnim: - db $46,$2E,$12 - db $50,$FF,$40 - db $50,$FF,$40 - db $FF - -SupersonicAnim: - db $06,$2F,$31 - db $FF - -SonicBoomAnim: - db $46,$2D,$15 - db $46,$2D,$15 - db $46,$0F,$10 - db $46,$FF,$05 - db $FF - -DisableAnim: - db SE_DARK_SCREEN_PALETTE, $48 - db SE_DARK_SCREEN_FLASH, $2A - db SE_DARK_SCREEN_FLASH, $2A - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -AcidAnim: - db $46,$32,$13 - db $46,$32,$14 - db $FF - -EmberAnim: - db $46,$33,$11 - db $FF - -FlamethrowerAnim: - db $46,$34,$1F - db $46,$34,$0C - db $46,$34,$0D - db $FF - -MistAnim: - db SE_LIGHT_SCREEN_PALETTE, $FF - db SE_WATER_DROPLETS_EVERYWHERE, $38 - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -WaterGunAnim: - db $06,$36,$2C - db $FF - -HydroPumpAnim: - db $06,$37,$1A - db $06,$37,$1A - db $FF - -SurfAnim: - db SE_WATER_DROPLETS_EVERYWHERE, $38 - db $06,$37,$1A - db $FF - -IceBeamAnim: - db $03,$39,$2E - db $10,$FF,$2F - db $FF - -BlizzardAnim: - db $04,$3A,$38 - db $04,$37,$38 - db $FF - -PsyBeamAnim: - db $03,$3B,$2E - db SE_FLASH_SCREEN_LONG, $FF - db $FF - -BubbleBeamAnim: - db $12,$3C,$35 - db $FF - -AuroraBeamAnim: - db $03,$3D,$2E - db SE_DELAY_ANIMATION_10, $FF - db SE_DELAY_ANIMATION_10, $FF - db $FF - -HyperBeamAnim: - db SE_DARK_SCREEN_PALETTE, $48 - db SE_SPIRAL_BALLS_INWARD, $FF - db $02,$3E,$2E - db SE_DARK_SCREEN_FLASH, $FF - db SE_DARK_SCREEN_FLASH, $FF - db $46,$04,$04 - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -PeckAnim: - db $08,$3F,$01 - db $FF - -DrillPeckAnim: - db $46,$40,$04 - db $FF - -SubmissionAnim: - db SE_SLIDE_MON_OFF, $41 - db $06,$FF,$01 - db SE_SHOW_MON_PIC, $FF - db $FF - -LowKickAnim: - db SE_SLIDE_MON_OFF, $42 - db $46,$FF,$04 - db SE_SHOW_MON_PIC, $FF - db $FF - -CounterAnim: - db SE_SLIDE_MON_OFF, $43 - db $46,$FF,$04 - db SE_SHOW_MON_PIC, $FF - db $FF - -SeismicTossAnim: - db SE_BLINK_ENEMY_MON, $FF - db $41,$8B,$4E - db SE_HIDE_ENEMY_MON_PIC, $FF - db SE_SLIDE_MON_OFF, $FF - db $42,$44,$4F - db SE_DELAY_ANIMATION_10, $FF - db SE_DELAY_ANIMATION_10, $FF - db SE_SHOW_MON_PIC, $FF - db $41,$44,$50 - db SE_SHOW_ENEMY_MON_PIC, $FF - db SE_SHAKE_SCREEN, $FF - db $FF - -StrengthAnim: - db SE_MOVE_MON_HORIZONTALLY, $48 - db SE_RESET_MON_POSITION, $FF - db $46,$06,$04 - db $FF - -AbsorbAnim: - db SE_LIGHT_SCREEN_PALETTE, $46 - db $06,$FF,$21 - db $06,$FF,$22 - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -MegaDrainAnim: - db SE_LIGHT_SCREEN_PALETTE, $47 - db SE_DARK_SCREEN_FLASH, $FF - db $06,$FF,$21 - db $06,$FF,$22 - db SE_DARK_SCREEN_FLASH, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -LeechSeedAnim: - db $46,$48,$1B - db $55,$4D,$1C - db $FF - -GrowthAnim: - db SE_LIGHT_SCREEN_PALETTE, $49 - db SE_SPIRAL_BALLS_INWARD, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -RazorLeafAnim: - db SE_LEAVES_FALLING, $4A - db $41,$80,$44 - db $01,$0C,$16 - db $FF - -SolarBeamAnim: - db $06,$4B,$2E - db $06,$FF,$01 - db $FF - -PoisonPowderAnim: - db $06,$4C,$36 - db $FF - -StunSporeAnim: - db $06,$4D,$36 - db $FF - -SleepPowderAnim: - db $06,$4E,$36 - db $FF - -PedalDanceAnim: - db SE_LIGHT_SCREEN_PALETTE, $4F - db SE_PETALS_FALLING, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -StringShotAnim: - db $08,$50,$37 - db $FF - -DragonRageAnim: - db $46,$51,$1F - db $46,$FF,$0C - db $46,$FF,$0D - db $46,$FF,$0E - db $FF - -FireSpinAnim: - db $46,$52,$0C - db $46,$FF,$0D - db $46,$FF,$0E - db $FF - -ThunderShockAnim: - db $42,$53,$29 - db $FF - -ThunderBoltAnim: - db $41,$54,$29 - db $41,$54,$29 - db $FF - -ThunderWaveAnim: - db $42,$55,$29 - db $02,$FF,$23 - db $04,$FF,$23 - db $FF - -ThunderAnim: - db SE_DARK_SCREEN_PALETTE, $56 - db SE_DARK_SCREEN_FLASH, $FF - db $46,$FF,$2B - db SE_DARK_SCREEN_FLASH, $FF - db $42,$54,$29 - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -RockThrowAnim: - db $04,$57,$30 - db $FF - -EarthquakeAnim: - db SE_SHAKE_SCREEN, $58 - db SE_SHAKE_SCREEN, $58 - db $FF - -FissureAnim: - db SE_DARK_SCREEN_FLASH, $59 - db SE_SHAKE_SCREEN, $FF - db SE_DARK_SCREEN_FLASH, $59 - db SE_SHAKE_SCREEN, $FF - db $FF - -DigAnim: - db $46,$5A,$04 - db SE_SLIDE_MON_UP, $FF - db $FF - -ToxicAnim: - db SE_WATER_DROPLETS_EVERYWHERE, $38 - db $46,$5B,$14 - db $FF - -ConfusionAnim: - db SE_FLASH_SCREEN_LONG, $5C - db $FF - -PsychicAnim: - db SE_FLASH_SCREEN_LONG, $5D - db SE_WAVY_SCREEN, $FF - db $FF - -HypnosisAnim: - db SE_FLASH_SCREEN_LONG, $5E - db $FF - -MeditateAnim: - db SE_LIGHT_SCREEN_PALETTE, $5F - db $46,$FF,$43 - db SE_DARK_SCREEN_FLASH, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -AgilityAnim: - db SE_LIGHT_SCREEN_PALETTE, $60 - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -QuickAttackAnim: - db SE_SLIDE_MON_OFF, $61 - db $46,$FF,$04 - db SE_SHOW_MON_PIC, $FF - db $FF - -RageAnim: - db $06,$62,$01 - db $FF - -TeleportAnim: - db SE_SQUISH_MON_PIC, $63 - db SE_SHOOT_BALLS_UPWARD, $FF - db $FF - -NightShadeAnim: - db SE_FLASH_SCREEN_LONG, $5C - db SE_WAVY_SCREEN, $FF - db $FF - -MimicAnim: - db $46,$65,$21 - db $46,$65,$22 - db $FF - -ScreechAnim: - db $46,$66,$12 - db $FF - -DoubleTeamAnim: - db SE_DARK_SCREEN_PALETTE, $FF - db SE_DELAY_ANIMATION_10, $FF - db SE_DELAY_ANIMATION_10, $FF - db SE_DARK_SCREEN_FLASH, $FF - db SE_DARK_SCREEN_FLASH, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db SE_SHAKE_BACK_AND_FORTH, $67 - db SE_SHOW_MON_PIC, $FF - db $46,$6F,$33 - db $FF - -RecoverAnim: - db SE_BLINK_MON, $68 - db SE_LIGHT_SCREEN_PALETTE, $FF - db SE_SPIRAL_BALLS_INWARD, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -HardenAnim: - db SE_LIGHT_SCREEN_PALETTE, $69 - db $46,$FF,$43 - db SE_DARK_SCREEN_FLASH, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -MinimizeAnim: - db SE_LIGHT_SCREEN_PALETTE, $6A - db SE_SPIRAL_BALLS_INWARD, $FF - db SE_MINIMIZE_MON, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -SmokeScreenAnim: - db $46,$6B,$28 - db $04,$FF,$0A - db SE_DARKEN_MON_PALETTE, $FF - db SE_DELAY_ANIMATION_10, $FF - db SE_DELAY_ANIMATION_10, $FF - db SE_DARK_SCREEN_PALETTE, $FF - db SE_DELAY_ANIMATION_10, $FF - db SE_DELAY_ANIMATION_10, $FF - db SE_DELAY_ANIMATION_10, $FF - db SE_DELAY_ANIMATION_10, $FF - db SE_DELAY_ANIMATION_10, $FF - db SE_DELAY_ANIMATION_10, $FF - db SE_DARKEN_MON_PALETTE, $FF - db SE_DELAY_ANIMATION_10, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -ConfuseRayAnim: - db SE_DARK_SCREEN_PALETTE, $6C - db $46,$FF,$3E - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -WithdrawAnim: - db SE_LIGHT_SCREEN_PALETTE, $6E - db SE_SLIDE_MON_DOWN, $FF - db $06,$FF,$51 - db SE_RESET_SCREEN_PALETTE, $FF - db SE_SHOW_MON_PIC, $FF - db $FF - -DefenseCurlAnim: - db SE_LIGHT_SCREEN_PALETTE, $6E - db $06,$FF,$43 - db SE_DARK_SCREEN_FLASH, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -BarrierAnim: - db $46,$6F,$33 - db $46,$6F,$33 - db $FF - -LightScreenAnim: - db SE_LIGHT_SCREEN_PALETTE, $FF - db $46,$70,$33 - db $46,$70,$33 - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -HazeAnim: - db SE_DARKEN_MON_PALETTE, $FF - db SE_WATER_DROPLETS_EVERYWHERE, $38 - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -ReflectAnim: - db SE_DARK_SCREEN_PALETTE, $FF - db $46,$72,$33 - db $46,$72,$33 - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -FocusEnergyAnim: - db SE_SPIRAL_BALLS_INWARD, $73 - db $FF - -BideAnim: - db $46,$74,$04 - db $FF - -MetronomeAnim: - db SE_MOVE_MON_HORIZONTALLY, $84 - db SE_DELAY_ANIMATION_10, $FF - db SE_RESET_MON_POSITION, $84 - db SE_DELAY_ANIMATION_10, $FF - db SE_MOVE_MON_HORIZONTALLY, $84 - db SE_DELAY_ANIMATION_10, $FF - db SE_RESET_MON_POSITION, $84 - db $FF - -MirrorMoveAnim: - db $08,$76,$01 - db $FF - -SelfdestructAnim: - db $43,$77,$34 - db $FF - -EggBombAnim: - db $44,$78,$41 - db $44,$78,$42 - db $FF - -LickAnim: - db $46,$7B,$14 - db $FF - -SmogAnim: - db SE_DARKEN_MON_PALETTE, $48 - db $46,$7A,$19 - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -SludgeAnim: - db $46,$7B,$13 - db $46,$7B,$14 - db $FF - -BoneClubAnim: - db $08,$7C,$02 - db $FF - -FireBlastAnim: - db $46,$7D,$1F - db $46,$FF,$20 - db $46,$FF,$20 - db $46,$FF,$0C - db $46,$FF,$0D - db $FF - -WaterfallAnim: - db SE_SLIDE_MON_DOWN, $48 - db $06,$37,$1A - db $08,$FF,$02 - db SE_SLIDE_MON_UP, $FF - db $FF - -ClampAnim: - db $08,$7F,$2A - db $06,$83,$23 - db $06,$83,$23 - db $FF - -SwiftAnim: - db $43,$80,$3F - db $FF - -SkullBashAnim: - db $46,$81,$05 - db $FF - -SpikeCannonAnim: - db $44,$82,$04 - db $FF - -ConstrictAnim: - db $06,$83,$23 - db $06,$83,$23 - db $06,$83,$23 - db $FF - -AmnesiaAnim: - db $08,$84,$25 - db $08,$84,$25 - db $FF - -KinesisAnim: - db $08,$85,$01 - db $FF - -SoftboiledAnim: - db SE_SLIDE_MON_HALF_OFF, $48 - db $08,$86,$4C - db SE_LIGHT_SCREEN_PALETTE, $FF - db SE_SPIRAL_BALLS_INWARD, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db SE_SHOW_MON_PIC, $FF - db $FF - -HiJumpKickAnim: - db $46,$87,$04 - db $FF - -GlareAnim: - db SE_DARK_SCREEN_PALETTE, $48 - db SE_DARK_SCREEN_FLASH, $88 - db SE_DARK_SCREEN_FLASH, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -DreamEaterAnim: - db SE_FLASH_SCREEN_LONG, $89 - db SE_DARK_SCREEN_PALETTE, $89 - db $08,$89,$02 - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -PoisonGasAnim: - db $46,$8A,$19 - db $FF - -BarrageAnim: - db $43,$8B,$41 - db $05,$FF,$55 - db $FF - -LeechLifeAnim: - db $08,$8C,$02 - db SE_DARK_SCREEN_FLASH, $FF - db $06,$FF,$21 - db $06,$FF,$22 - db SE_DARK_SCREEN_FLASH, $FF - db $FF - -LovelyKissAnim: - db $06,$8D,$12 - db $FF - -SkyAttackAnim: - db SE_SQUISH_MON_PIC, $8E - db SE_SHOOT_BALLS_UPWARD, $FF - db $46,$87,$04 - db SE_SHOW_MON_PIC, $FF - db $FF - -TransformAnim: - db $46,$8F,$21 - db $44,$8F,$22 - db $08,$FF,$47 - db SE_TRANSFORM_MON, $FF - db $FF - -BubbleAnim: - db $16,$90,$35 - db $FF - -DizzyPunchAnim: - db $06,$91,$17 - db $06,$91,$17 - db $06,$91,$17 - db $06,$02,$02 - db $FF - -SporeAnim: - db $06,$92,$36 - db $FF - -FlashAnim: - db SE_LIGHT_SCREEN_PALETTE, $48 - db SE_DARK_SCREEN_FLASH, $88 - db SE_DARK_SCREEN_FLASH, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -PsywaveAnim: - db $06,$2F,$31 - db SE_WAVY_SCREEN, $5C - db $FF - -SplashAnim: - db SE_BOUNCE_UP_AND_DOWN, $95 - db $FF - -AcidArmorAnim: - db SE_SLIDE_MON_DOWN_AND_HIDE, $96 - db $FF - -CrabHammerAnim: - db $46,$97,$05 - db $06,$FF,$2A - db $FF - -ExplosionAnim: - db $43,$98,$34 - db $FF - -FurySwipesAnim: - db $04,$99,$0F - db $FF - -BonemerangAnim: - db $06,$9A,$02 - db $FF - -RestAnim: - db $10,$9B,$3A - db $10,$9B,$3A - db $FF - -RockSlideAnim: - db $04,$9C,$1D - db $03,$9C,$1E - db $46,$9D,$04 - db $FF - -HyperFangAnim: - db $06,$9D,$02 - db $FF - -SharpenAnim: - db SE_LIGHT_SCREEN_PALETTE, $9E - db $46,$FF,$43 - db SE_DARK_SCREEN_FLASH, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -ConversionAnim: - db SE_DARK_SCREEN_FLASH, $9F - db $46,$FF,$21 - db $46,$FF,$22 - db SE_DARK_SCREEN_FLASH, $FF - db $FF - -TriAttackAnim: - db SE_DARK_SCREEN_FLASH, $A0 - db $46,$FF,$4D - db SE_DARK_SCREEN_FLASH, $FF - db $FF - -SuperFangAnim: - db SE_DARK_SCREEN_PALETTE, $48 - db $46,$A1,$04 - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -SlashAnim: - db $06,$A2,$0F - db $FF - -SubstituteAnim: - db SE_SLIDE_MON_OFF, $A3 - db $08,$FF,$47 - db SE_SUBSTITUTE_MON, $FF - db $FF - -BallTossAnim: - db $03,$FF,$06 - db $FF - -GreatTossAnim: - db $03,$FF,$07 - db $FF - -UltraTossAnim: - db $02,$FF,$08 - db $FF - -BallShakeAnim: - db $04,$FF,$09 - db $FF - -BallPoofAnim: - db $04,$FF,$0A - db $FF - -ShowPicAnim: - db SE_SHOW_ENEMY_MON_PIC, $FF - db $FF - -HidePicAnim: - db SE_HIDE_ENEMY_MON_PIC, $FF - db $FF - -EnemyFlashAnim: - db SE_SHOW_MON_PIC, $FF - db $FF - -PlayerFlashAnim: - db SE_FLASH_MON_PIC, $FF - db $FF - -EnemyHUDShakeAnim: - db SE_SHAKE_ENEMY_HUD, $FF - db $FF - -TradeBallDropAnim: - db $86,$FF,$48 - db $FF - -TradeBallAppear1Anim: - db $84,$FF,$49 - db $FF - -TradeBallAppear2Anim: - db $86,$FF,$4A - db $FF - -TradeBallPoofAnim: - db $86,$FF,$4B - db $FF - -XStatItemAnim: - db SE_LIGHT_SCREEN_PALETTE, $FF - db SE_SPIRAL_BALLS_INWARD, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -ShrinkingSquareAnim: - db SE_LIGHT_SCREEN_PALETTE, $FF - db $46,$FF,$43 - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -XStatItemBlackAnim: - db SE_DARKEN_MON_PALETTE, $FF - db SE_SPIRAL_BALLS_INWARD, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -ShrinkingSquareBlackAnim: - db SE_DARKEN_MON_PALETTE, $FF - db $46,$FF,$43 - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -UnusedAnim: - db SE_LIGHT_SCREEN_PALETTE, $FF - db SE_SHOOT_MANY_BALLS_UPWARD, $FF - db SE_RESET_SCREEN_PALETTE, $FF - db $FF - -ParalyzeAnim: - db $04,$13,$24 - db $04,$13,$24 - db $FF - -PoisonAnim: - db $08,$13,$27 - db $08,$13,$27 - db $FF - -SleepPlayerAnim: - db $10,$9B,$3A - db $10,$9B,$3A - db $FF - -SleepEnemyAnim: - db $10,$9B,$3B - db $10,$9B,$3B - db $FF - -ConfusedPlayerAnim: - db $08,$84,$25 - db $08,$84,$25 - db $FF - -ConfusedEnemyAnim: - db $08,$84,$26 - db $08,$84,$26 - db $FF - -BallBlockAnim: - db $03,$FF,$0B - db $FF - -FaintAnim: - db SE_SLIDE_MON_DOWN, $5A - db $FF - -ShakeScreenAnim: - db SE_SHAKE_SCREEN, $FF - db $FF - -ThrowRockAnim: - db $03,$8B,$53 - db $FF - -ThrowBaitAnim: - db $03,$8B,$54 - db $FF - -SubanimationPointers: - dw Subanimation00 - dw Subanimation01 - dw Subanimation02 - dw Subanimation03 - dw Subanimation04 - dw Subanimation05 - dw Subanimation06 - dw Subanimation07 - dw Subanimation08 - dw Subanimation09 - dw Subanimation0a - dw Subanimation0b - dw Subanimation0c - dw Subanimation0d - dw Subanimation0e - dw Subanimation0f - dw Subanimation10 - dw Subanimation11 - dw Subanimation12 - dw Subanimation13 - dw Subanimation14 - dw Subanimation15 - dw Subanimation16 - dw Subanimation17 - dw Subanimation18 - dw Subanimation19 - dw Subanimation1a - dw Subanimation1b - dw Subanimation1c - dw Subanimation1d - dw Subanimation1e - dw Subanimation1f - dw Subanimation20 - dw Subanimation21 - dw Subanimation22 - dw Subanimation23 - dw Subanimation24 - dw Subanimation25 - dw Subanimation26 - dw Subanimation27 - dw Subanimation28 - dw Subanimation29 - dw Subanimation2a - dw Subanimation2b - dw Subanimation2c - dw Subanimation2d - dw Subanimation2e - dw Subanimation2f - dw Subanimation30 - dw Subanimation31 - dw Subanimation32 - dw Subanimation33 - dw Subanimation34 - dw Subanimation35 - dw Subanimation36 - dw Subanimation37 - dw Subanimation38 - dw Subanimation39 - dw Subanimation3a - dw Subanimation3b - dw Subanimation3c - dw Subanimation3d - dw Subanimation3e - dw Subanimation3f - dw Subanimation40 - dw Subanimation41 - dw Subanimation42 - dw Subanimation43 - dw Subanimation44 - dw Subanimation45 - dw Subanimation46 - dw Subanimation47 - dw Subanimation48 - dw Subanimation49 - dw Subanimation4a - dw Subanimation4b - dw Subanimation4c - dw Subanimation4d - dw Subanimation4e - dw Subanimation4f - dw Subanimation50 - dw Subanimation51 - dw Subanimation52 - dw Subanimation53 - dw Subanimation54 - dw Subanimation55 - -Subanimation04: - db $43 - db $02,$1a,$00 - db $02,$10,$00 - db $02,$03,$00 - -Subanimation05: - db $41 - db $02,$10,$00 - -Subanimation08: - db $0b - db $03,$30,$00 - db $03,$44,$00 - db $03,$94,$00 - db $03,$60,$00 - db $03,$76,$00 - db $03,$9f,$00 - db $03,$8d,$00 - db $03,$a0,$00 - db $03,$1a,$00 - db $03,$a1,$00 - db $03,$34,$00 - -Subanimation07: - db $0b - db $03,$30,$00 - db $03,$a2,$00 - db $03,$31,$00 - db $03,$a3,$00 - db $03,$32,$00 - db $03,$a4,$00 - db $03,$92,$00 - db $03,$a5,$00 - db $03,$15,$00 - db $03,$a6,$00 - db $03,$34,$00 - -Subanimation06: - db $0b - db $03,$30,$00 - db $03,$a2,$00 - db $03,$93,$00 - db $03,$61,$00 - db $03,$73,$00 - db $03,$a7,$00 - db $03,$33,$00 - db $03,$a8,$00 - db $03,$0e,$00 - db $03,$a9,$00 - db $03,$34,$00 - -Subanimation09: - db $04 - db $03,$21,$04 - db $04,$21,$04 - db $03,$21,$04 - db $05,$21,$04 - -Subanimation0a: - db $46 - db $06,$1b,$00 - db $07,$1b,$00 - db $08,$36,$00 - db $09,$36,$00 - db $0a,$15,$00 - db $0a,$15,$00 - -Subanimation0b: - db $04 - db $01,$2d,$00 - db $03,$2f,$00 - db $03,$35,$00 - db $03,$4d,$00 - -Subanimation55: - db $41 - db $01,$9d,$00 - -Subanimation11: - db $4c - db $0b,$26,$00 - db $0c,$26,$00 - db $0b,$26,$00 - db $0c,$26,$00 - db $0b,$28,$00 - db $0c,$28,$00 - db $0b,$28,$00 - db $0c,$28,$00 - db $0b,$27,$00 - db $0c,$27,$00 - db $0b,$27,$00 - db $0c,$27,$00 - -Subanimation2b: - db $4b - db $0d,$03,$03 - db $0e,$03,$03 - db $0f,$03,$00 - db $0d,$11,$00 - db $0d,$11,$00 - db $0d,$37,$00 - db $0d,$37,$00 - db $10,$21,$00 - db $10,$21,$00 - db $11,$1b,$00 - db $11,$1b,$00 - -Subanimation2c: - db $4c - db $12,$01,$00 - db $12,$0f,$00 - db $12,$1b,$00 - db $12,$25,$00 - db $13,$38,$00 - db $13,$38,$02 - db $14,$38,$00 - db $14,$38,$02 - db $15,$38,$00 - db $15,$38,$00 - db $16,$38,$00 - db $16,$38,$00 - -Subanimation12: - db $69 - db $17,$30,$00 - db $17,$39,$00 - db $17,$3a,$00 - db $17,$3b,$00 - db $17,$3c,$00 - db $17,$3d,$00 - db $17,$3e,$00 - db $17,$3f,$00 - db $17,$1f,$00 - -Subanimation00: - db $41 - db $01,$17,$00 - -Subanimation01: - db $42 - db $01,$0f,$00 - db $01,$1d,$00 - -Subanimation02: - db $43 - db $01,$12,$00 - db $01,$15,$00 - db $01,$1c,$00 - -Subanimation03: - db $44 - db $01,$0b,$00 - db $01,$11,$00 - db $01,$18,$00 - db $01,$1d,$00 - -Subanimation0c: - db $43 - db $0c,$20,$00 - db $0c,$21,$00 - db $0c,$23,$00 - -Subanimation0d: - db $46 - db $0c,$20,$02 - db $0c,$15,$00 - db $0c,$21,$02 - db $0c,$17,$00 - db $0c,$23,$02 - db $0c,$19,$00 - -Subanimation0e: - db $49 - db $0c,$20,$02 - db $0c,$15,$02 - db $0c,$07,$00 - db $0c,$21,$02 - db $0c,$17,$02 - db $0c,$09,$00 - db $0c,$23,$02 - db $0c,$19,$02 - db $0c,$0c,$00 - -Subanimation1f: - db $85 - db $0c,$30,$03 - db $0c,$40,$03 - db $0c,$41,$03 - db $0c,$42,$03 - db $0c,$21,$00 - -Subanimation2e: - db $2e - db $18,$43,$02 - db $75,$52,$04 - db $19,$43,$02 - db $75,$63,$04 - db $1a,$43,$02 - db $75,$4d,$04 - db $1b,$43,$02 - db $75,$97,$04 - db $1c,$43,$02 - db $75,$98,$04 - db $1d,$43,$02 - db $75,$58,$04 - db $1e,$43,$02 - db $75,$1b,$00 - -Subanimation2f: - db $44 - db $1f,$24,$00 - db $20,$20,$00 - db $21,$1a,$00 - db $22,$15,$00 - -Subanimation30: - db $52 - db $23,$00,$02 - db $23,$02,$02 - db $23,$04,$00 - db $23,$07,$02 - db $23,$02,$02 - db $23,$04,$00 - db $23,$0e,$02 - db $23,$02,$02 - db $23,$0c,$00 - db $25,$07,$00 - db $25,$0e,$00 - db $25,$15,$00 - db $24,$24,$02 - db $23,$1c,$02 - db $23,$23,$00 - db $23,$21,$02 - db $24,$28,$00 - db $24,$28,$00 - -Subanimation0f: - db $4c - db $26,$0e,$02 - db $26,$16,$02 - db $26,$1c,$00 - db $27,$0e,$02 - db $27,$16,$02 - db $27,$1c,$00 - db $28,$0e,$02 - db $28,$16,$02 - db $28,$1c,$00 - db $29,$0e,$02 - db $29,$16,$02 - db $29,$1c,$00 - -Subanimation16: - db $4c - db $2a,$05,$00 - db $2b,$05,$02 - db $2b,$0c,$02 - db $2a,$11,$04 - db $2b,$11,$02 - db $2b,$17,$02 - db $2a,$1b,$04 - db $2b,$1b,$02 - db $2b,$20,$02 - db $2a,$2f,$04 - db $2c,$00,$02 - db $2c,$00,$00 - -Subanimation10: - db $88 - db $2d,$44,$00 - db $2e,$45,$00 - db $2d,$46,$00 - db $2e,$47,$00 - db $2d,$48,$00 - db $2e,$49,$00 - db $2d,$2f,$00 - db $2e,$1a,$00 - -Subanimation31: - db $2a - db $2f,$46,$00 - db $2f,$4a,$00 - db $2f,$4b,$00 - db $2f,$4c,$00 - db $2f,$4d,$00 - db $2f,$4e,$00 - db $2f,$4f,$00 - db $2f,$50,$00 - db $2f,$2e,$00 - db $2f,$51,$00 - -Subanimation13: - db $86 - db $30,$31,$00 - db $30,$32,$00 - db $30,$92,$00 - db $30,$0e,$00 - db $30,$0f,$00 - db $30,$10,$00 - -Subanimation14: - db $49 - db $30,$10,$00 - db $30,$10,$03 - db $31,$1c,$04 - db $31,$21,$04 - db $31,$26,$00 - db $30,$10,$02 - db $31,$1d,$04 - db $31,$22,$04 - db $31,$27,$00 - -Subanimation41: - db $85 - db $03,$31,$00 - db $03,$32,$00 - db $03,$92,$00 - db $03,$0e,$00 - db $03,$10,$00 - -Subanimation42: - db $43 - db $48,$08,$00 - db $49,$08,$00 - db $5a,$08,$00 - -Subanimation15: - db $22 - db $35,$52,$00 - db $35,$53,$00 - -Subanimation17: - db $44 - db $36,$54,$00 - db $36,$55,$00 - db $37,$56,$00 - db $37,$57,$00 - -Subanimation18: - db $a4 - db $36,$54,$00 - db $36,$55,$00 - db $37,$56,$00 - db $37,$57,$00 - -Subanimation40: - db $46 - db $17,$54,$00 - db $17,$55,$00 - db $17,$0e,$00 - db $17,$56,$00 - db $17,$57,$00 - db $17,$13,$00 - -Subanimation19: - db $8c - db $38,$31,$00 - db $39,$31,$00 - db $38,$32,$00 - db $39,$32,$00 - db $38,$92,$00 - db $39,$92,$00 - db $38,$0e,$00 - db $39,$0e,$00 - db $38,$0f,$00 - db $39,$0f,$00 - db $38,$10,$00 - db $39,$10,$00 - -Subanimation1a: - db $50 - db $3a,$08,$00 - db $3b,$08,$00 - db $3c,$08,$00 - db $3d,$08,$00 - db $3e,$08,$00 - db $3f,$08,$00 - db $3e,$08,$00 - db $3f,$08,$00 - db $3a,$0b,$00 - db $3b,$0b,$00 - db $3c,$0b,$00 - db $3d,$0b,$00 - db $3e,$0b,$00 - db $3f,$0b,$00 - db $3e,$0b,$00 - db $3f,$0b,$00 - -Subanimation1b: - db $84 - db $40,$31,$00 - db $40,$32,$00 - db $40,$92,$00 - db $40,$15,$00 - -Subanimation1c: - db $43 - db $41,$58,$00 - db $41,$59,$00 - db $41,$21,$00 - -Subanimation1d: - db $af - db $24,$9a,$00 - db $23,$1b,$02 - db $24,$22,$00 - db $23,$16,$02 - db $23,$1d,$02 - db $24,$98,$00 - db $25,$2c,$04 - db $25,$2a,$04 - db $25,$99,$04 - db $25,$62,$04 - db $25,$99,$04 - db $25,$62,$04 - db $25,$99,$04 - db $25,$62,$04 - db $25,$99,$03 - -Subanimation1e: - db $01 - db $25,$75,$00 - -Subanimation20: - db $42 - db $42,$07,$00 - db $43,$07,$00 - -Subanimation21: - db $43 - db $44,$00,$00 - db $45,$08,$00 - db $46,$10,$02 - -Subanimation22: - db $8b - db $47,$10,$00 - db $47,$56,$00 - db $47,$07,$00 - db $47,$aa,$00 - db $47,$ab,$00 - db $47,$ac,$00 - db $47,$ad,$00 - db $47,$ae,$00 - db $47,$af,$00 - db $47,$89,$00 - db $47,$b0,$00 - -Subanimation2d: - db $66 - db $44,$64,$00 - db $45,$65,$00 - db $46,$66,$00 - db $47,$66,$00 - db $47,$66,$00 - db $47,$66,$00 - -Subanimation39: - db $61 - db $47,$67,$00 - -Subanimation4e: - db $41 - db $71,$0f,$03 - -Subanimation4f: - db $47 - db $71,$0f,$00 - db $71,$08,$00 - db $71,$01,$00 - db $71,$95,$00 - db $72,$95,$00 - db $73,$95,$00 - db $74,$95,$00 - -Subanimation50: - db $48 - db $74,$95,$00 - db $73,$95,$00 - db $72,$95,$00 - db $71,$95,$00 - db $71,$01,$00 - db $71,$08,$00 - db $71,$0f,$00 - db $71,$16,$00 - -Subanimation29: - db $5d - db $48,$0f,$00 - db $4a,$68,$03 - db $4b,$2a,$03 - db $49,$0f,$00 - db $4a,$68,$03 - db $4b,$2a,$00 - db $4c,$6a,$03 - db $4d,$69,$03 - db $49,$6b,$00 - db $4c,$6a,$03 - db $4d,$69,$00 - db $4a,$68,$03 - db $4b,$2a,$03 - db $49,$6c,$00 - db $4a,$68,$03 - db $4b,$2a,$00 - db $4c,$6a,$03 - db $4d,$69,$03 - db $49,$6d,$00 - db $4c,$6a,$03 - db $4d,$2a,$00 - db $4a,$68,$03 - db $4b,$2a,$03 - db $49,$0f,$00 - db $4a,$68,$03 - db $4b,$2a,$00 - db $4c,$6a,$03 - db $4d,$2a,$03 - db $49,$6b,$00 - -Subanimation2a: - db $44 - db $4e,$2b,$00 - db $4f,$2b,$00 - db $50,$2b,$00 - db $50,$2b,$00 - -Subanimation23: - db $42 - db $51,$2d,$00 - db $51,$6e,$00 - -Subanimation24: - db $a2 - db $51,$2d,$00 - db $51,$6e,$00 - -Subanimation25: - db $62 - db $52,$71,$00 - db $52,$72,$00 - -Subanimation26: - db $02 - db $52,$01,$00 - db $52,$2c,$00 - -Subanimation3a: - db $63 - db $53,$71,$00 - db $53,$7f,$00 - db $53,$81,$00 - -Subanimation3b: - db $03 - db $53,$01,$00 - db $53,$15,$00 - db $53,$2c,$00 - -Subanimation27: - db $a2 - db $54,$01,$00 - db $54,$2c,$00 - -Subanimation28: - db $23 - db $55,$73,$03 - db $56,$73,$03 - db $57,$73,$00 - -Subanimation32: - db $63 - db $47,$74,$00 - db $47,$43,$00 - db $47,$75,$00 - -Subanimation33: - db $26 - db $58,$76,$00 - db $34,$76,$00 - db $58,$76,$00 - db $34,$76,$00 - db $58,$76,$00 - db $34,$76,$00 - -Subanimation3c: - db $67 - db $59,$79,$03 - db $59,$7b,$03 - db $59,$77,$03 - db $59,$7a,$03 - db $59,$78,$03 - db $59,$7c,$03 - db $59,$76,$00 - -Subanimation3d: - db $08 - db $3a,$4d,$00 - db $3b,$4d,$00 - db $3c,$4d,$00 - db $3d,$4d,$00 - db $3e,$4d,$00 - db $3f,$4d,$00 - db $3e,$4d,$00 - db $3f,$4d,$00 - -Subanimation34: - db $35 - db $48,$7d,$00 - db $49,$7d,$00 - db $5a,$7d,$00 - db $48,$30,$00 - db $49,$30,$00 - db $5a,$30,$00 - db $48,$7e,$00 - db $49,$7e,$00 - db $5a,$7e,$00 - db $48,$7f,$00 - db $49,$7f,$00 - db $5a,$7f,$00 - db $48,$80,$00 - db $49,$80,$00 - db $5a,$80,$00 - db $48,$81,$00 - db $49,$81,$00 - db $5a,$81,$00 - db $48,$82,$00 - db $49,$82,$00 - db $5a,$82,$00 - -Subanimation35: - db $24 - db $5b,$83,$03 - db $5c,$84,$03 - db $5d,$85,$03 - db $5e,$09,$00 - -Subanimation36: - db $48 - db $5f,$2a,$00 - db $5f,$00,$00 - db $60,$2a,$00 - db $60,$00,$00 - db $61,$2a,$00 - db $61,$00,$00 - db $62,$2a,$00 - db $62,$00,$00 - -Subanimation37: - db $2a - db $63,$89,$00 - db $64,$75,$00 - db $63,$76,$00 - db $65,$0d,$00 - db $65,$86,$00 - db $65,$12,$00 - db $65,$87,$00 - db $65,$17,$00 - db $65,$88,$00 - db $65,$1a,$00 - -Subanimation38: - db $50 - db $66,$8a,$00 - db $66,$33,$00 - db $66,$2e,$00 - db $67,$24,$03 - db $66,$01,$04 - db $66,$10,$04 - db $66,$1d,$04 - db $67,$28,$03 - db $66,$2a,$04 - db $66,$0e,$04 - db $66,$1b,$04 - db $67,$26,$03 - db $66,$03,$04 - db $66,$12,$04 - db $66,$1e,$04 - db $67,$29,$00 - -Subanimation3e: - db $92 - db $02,$31,$00 - db $34,$31,$00 - db $02,$31,$00 - db $02,$32,$00 - db $34,$32,$00 - db $02,$32,$00 - db $02,$92,$00 - db $34,$92,$00 - db $02,$92,$00 - db $02,$0e,$00 - db $34,$0e,$00 - db $02,$0e,$00 - db $02,$0f,$00 - db $34,$0f,$00 - db $02,$0f,$00 - db $02,$10,$00 - db $34,$10,$00 - db $02,$10,$00 - -Subanimation3f: - db $72 - db $68,$4b,$00 - db $68,$8c,$00 - db $68,$20,$00 - db $68,$1c,$00 - db $68,$19,$00 - db $68,$14,$00 - db $68,$76,$00 - db $68,$8d,$00 - db $68,$15,$00 - db $68,$10,$00 - db $68,$0c,$00 - db $68,$06,$00 - db $68,$8e,$00 - db $68,$8f,$00 - db $68,$90,$00 - db $68,$26,$00 - db $68,$23,$00 - db $68,$1f,$00 - -Subanimation44: - db $2c - db $69,$4b,$00 - db $69,$8c,$00 - db $69,$20,$00 - db $69,$1c,$00 - db $69,$19,$00 - db $69,$14,$00 - db $69,$76,$00 - db $69,$8d,$00 - db $69,$15,$00 - db $69,$10,$00 - db $69,$0c,$00 - db $69,$06,$00 - -Subanimation43: - db $a3 - db $6a,$07,$00 - db $6b,$0f,$00 - db $6c,$17,$00 - -Subanimation45: - db $24 - db $6d,$8b,$00 - db $6d,$84,$00 - db $6d,$63,$00 - db $6d,$8c,$00 - -Subanimation46: - db $26 - db $6d,$8b,$00 - db $6d,$84,$00 - db $6d,$63,$00 - db $6d,$8c,$00 - db $6d,$0a,$00 - db $6d,$89,$00 - -Subanimation47: - db $23 - db $06,$82,$00 - db $07,$82,$00 - db $08,$96,$00 - -Subanimation48: - db $06 - db $03,$41,$04 - db $03,$48,$04 - db $04,$48,$04 - db $03,$48,$04 - db $05,$48,$04 - db $03,$48,$03 - -Subanimation49: - db $04 - db $04,$48,$04 - db $03,$48,$04 - db $05,$48,$04 - db $03,$48,$03 - -Subanimation4a: - db $01 - db $04,$84,$03 - -Subanimation4b: - db $03 - db $06,$72,$00 - db $07,$72,$00 - db $08,$72,$00 - -Subanimation4c: - db $68 - db $6f,$30,$00 - db $6e,$30,$00 - db $70,$30,$00 - db $6e,$30,$00 - db $6f,$30,$00 - db $6e,$30,$00 - db $70,$30,$00 - db $6e,$30,$00 - -Subanimation4d: - db $26 - db $32,$4b,$00 - db $33,$4f,$00 - db $32,$20,$00 - db $33,$16,$00 - db $32,$19,$00 - db $33,$0d,$00 - -Subanimation51: - db $a6 - db $76,$1b,$00 - db $34,$1b,$00 - db $76,$1b,$00 - db $34,$1b,$00 - db $76,$1b,$00 - db $34,$1b,$00 - -Subanimation52: - db $47 - db $77,$25,$00 - db $77,$9b,$00 - db $77,$1a,$00 - db $77,$9c,$00 - db $77,$2f,$00 - db $77,$50,$00 - db $77,$8c,$00 - -Subanimation53: - db $0c - db $78,$30,$00 - db $78,$a2,$00 - db $78,$93,$00 - db $78,$61,$00 - db $78,$73,$00 - db $78,$a7,$00 - db $78,$33,$00 - db $78,$a8,$00 - db $78,$0e,$00 - db $78,$a9,$00 - db $78,$34,$00 - db $01,$9e,$00 - -Subanimation54: - db $0b - db $79,$30,$00 - db $79,$a2,$00 - db $79,$93,$00 - db $79,$61,$00 - db $79,$73,$00 - db $79,$a7,$00 - db $79,$33,$00 - db $79,$a8,$00 - db $79,$0e,$00 - db $79,$a9,$00 - db $79,$34,$00 - -FrameBlockPointers: - dw FrameBlock00 - dw FrameBlock01 - dw FrameBlock02 - dw FrameBlock03 - dw FrameBlock04 - dw FrameBlock05 - dw FrameBlock06 - dw FrameBlock07 - dw FrameBlock08 - dw FrameBlock09 - dw FrameBlock0a - dw FrameBlock0b - dw FrameBlock0c - dw FrameBlock0d - dw FrameBlock0e - dw FrameBlock0f - dw FrameBlock10 - dw FrameBlock11 - dw FrameBlock12 - dw FrameBlock13 - dw FrameBlock14 - dw FrameBlock15 - dw FrameBlock16 - dw FrameBlock17 - dw FrameBlock18 - dw FrameBlock19 - dw FrameBlock1a - dw FrameBlock1b - dw FrameBlock1c - dw FrameBlock1d - dw FrameBlock1e - dw FrameBlock1f - dw FrameBlock20 - dw FrameBlock21 - dw FrameBlock22 - dw FrameBlock23 - dw FrameBlock24 - dw FrameBlock25 - dw FrameBlock26 - dw FrameBlock27 - dw FrameBlock28 - dw FrameBlock29 - dw FrameBlock2a - dw FrameBlock2b - dw FrameBlock2c - dw FrameBlock2d - dw FrameBlock2e - dw FrameBlock2f - dw FrameBlock30 - dw FrameBlock31 - dw FrameBlock32 - dw FrameBlock33 - dw FrameBlock34 - dw FrameBlock35 - dw FrameBlock36 - dw FrameBlock37 - dw FrameBlock38 - dw FrameBlock39 - dw FrameBlock3a - dw FrameBlock3b - dw FrameBlock3c - dw FrameBlock3d - dw FrameBlock3e - dw FrameBlock3f - dw FrameBlock40 - dw FrameBlock41 - dw FrameBlock42 - dw FrameBlock43 - dw FrameBlock44 - dw FrameBlock45 - dw FrameBlock46 - dw FrameBlock47 - dw SmallBlackCircleFrameBlock - dw LargeBlockCircleFrameBlock - dw FrameBlock4a - dw FrameBlock4b - dw FrameBlock4c - dw FrameBlock4d - dw FrameBlock4e - dw FrameBlock4f - dw FrameBlock50 - dw FrameBlock51 - dw FrameBlock52 - dw FrameBlock53 - dw FrameBlock54 - dw FrameBlock55 - dw FrameBlock56 - dw FrameBlock57 - dw FrameBlock58 - dw FrameBlock59 - dw FrameBlock5a - dw FrameBlock5b - dw FrameBlock5c - dw FrameBlock5d - dw FrameBlock5e - dw FrameBlock5f - dw FrameBlock60 - dw FrameBlock61 - dw FrameBlock62 - dw FrameBlock63 - dw FrameBlock64 - dw FrameBlock65 - dw FrameBlock66 - dw FrameBlock67 - dw FrameBlock68 - dw FrameBlock69 - dw FrameBlock6a - dw FrameBlock6b - dw FrameBlock6c - dw FrameBlock6d - dw FrameBlock6e - dw FrameBlock6f - dw FrameBlock70 - dw FrameBlock71 - dw FrameBlock72 - dw FrameBlock73 - dw FrameBlock74 - dw FrameBlock75 - dw FrameBlock76 - dw FrameBlock77 - dw FrameBlock78 - dw FrameBlock79 - -; FrameBlock format is as follows: -; first byte = number of tiles in FrameBlock -; -; Next, each group of 4 bytes describes a tile in the FrameBlock -; first byte = y offset -; second byte = x offset -; third byte = tile id (it's actually tile id - $31) -; fourth byte = tile properties (xflip/yflip/etc.) -FrameBlock01: - db $09 - db $00,$00,$2c,$00 - db $00,$08,$2d,$00 - db $00,$10,$2c,$20 - db $08,$00,$3c,$00 - db $08,$08,$3d,$00 - db $08,$10,$3c,$20 - db $10,$00,$2c,$40 - db $10,$08,$2d,$40 - db $10,$10,$2c,$60 - -FrameBlock02: - db $10 - db $00,$00,$20,$00 - db $00,$08,$21,$00 - db $00,$10,$21,$20 - db $00,$18,$20,$20 - db $08,$00,$30,$00 - db $08,$08,$31,$00 - db $08,$10,$31,$20 - db $08,$18,$30,$20 - db $10,$00,$30,$40 - db $10,$08,$31,$40 - db $10,$10,$31,$60 - db $10,$18,$30,$60 - db $18,$00,$20,$40 - db $18,$08,$21,$40 - db $18,$10,$21,$60 - db $18,$18,$20,$60 - -FrameBlock03: - db $04 - db $00,$00,$02,$00 - db $00,$08,$02,$20 - db $08,$00,$12,$00 - db $08,$08,$12,$20 - -FrameBlock04: - db $04 - db $00,$00,$06,$00 - db $00,$08,$07,$00 - db $08,$00,$16,$00 - db $08,$08,$17,$00 - -FrameBlock05: - db $04 - db $00,$00,$07,$20 - db $00,$08,$06,$20 - db $08,$00,$17,$20 - db $08,$08,$16,$20 - -FrameBlock06: - db $0c - db $00,$08,$23,$00 - db $08,$00,$32,$00 - db $08,$08,$33,$00 - db $00,$10,$23,$20 - db $08,$10,$33,$20 - db $08,$18,$32,$20 - db $10,$00,$32,$40 - db $10,$08,$33,$40 - db $18,$08,$23,$40 - db $10,$10,$33,$60 - db $10,$18,$32,$60 - db $18,$10,$23,$60 - -FrameBlock07: - db $10 - db $00,$00,$20,$00 - db $00,$08,$21,$00 - db $08,$00,$30,$00 - db $08,$08,$31,$00 - db $00,$10,$21,$20 - db $00,$18,$20,$20 - db $08,$10,$31,$20 - db $08,$18,$30,$20 - db $10,$00,$30,$40 - db $10,$08,$31,$40 - db $18,$00,$20,$40 - db $18,$08,$21,$40 - db $10,$10,$31,$60 - db $10,$18,$30,$60 - db $18,$10,$21,$60 - db $18,$18,$20,$60 - -FrameBlock08: - db $10 - db $00,$00,$20,$00 - db $00,$08,$21,$00 - db $08,$00,$30,$00 - db $08,$08,$31,$00 - db $00,$18,$21,$20 - db $00,$20,$20,$20 - db $08,$18,$31,$20 - db $08,$20,$30,$20 - db $18,$00,$30,$40 - db $18,$08,$31,$40 - db $20,$00,$20,$40 - db $20,$08,$21,$40 - db $18,$18,$31,$60 - db $18,$20,$30,$60 - db $20,$18,$21,$60 - db $20,$20,$20,$60 - -FrameBlock09: - db $0c - db $00,$00,$24,$00 - db $00,$08,$25,$00 - db $08,$00,$34,$00 - db $00,$18,$25,$20 - db $00,$20,$24,$20 - db $08,$20,$34,$20 - db $18,$00,$34,$40 - db $20,$00,$24,$40 - db $20,$08,$25,$40 - db $18,$20,$34,$60 - db $20,$18,$25,$60 - db $20,$20,$24,$60 - -FrameBlock0a: - db $0c - db $00,$00,$24,$00 - db $00,$08,$25,$00 - db $08,$00,$34,$00 - db $00,$20,$25,$20 - db $00,$28,$24,$20 - db $08,$28,$34,$20 - db $20,$00,$34,$40 - db $28,$00,$24,$40 - db $28,$08,$25,$40 - db $20,$28,$34,$60 - db $28,$20,$25,$60 - db $28,$28,$24,$60 - -FrameBlock0b: - db $04 - db $00,$00,$05,$00 - db $00,$08,$05,$20 - db $08,$00,$15,$00 - db $08,$08,$15,$20 - -FrameBlock0c: - db $04 - db $00,$00,$04,$00 - db $00,$08,$04,$20 - db $08,$00,$14,$00 - db $08,$08,$14,$20 - -FrameBlock0d: - db $08 - db $00,$00,$0c,$00 - db $00,$08,$0d,$00 - db $08,$00,$1c,$00 - db $08,$08,$1d,$00 - db $10,$00,$1d,$60 - db $10,$08,$1c,$60 - db $18,$00,$0d,$60 - db $18,$08,$0c,$60 - -FrameBlock0e: - db $04 - db $20,$00,$0c,$00 - db $20,$08,$0d,$00 - db $28,$00,$1c,$00 - db $28,$08,$1d,$00 - -FrameBlock0f: - db $04 - db $30,$00,$1d,$60 - db $30,$08,$1c,$60 - db $38,$00,$0d,$60 - db $38,$08,$0c,$60 - -FrameBlock10: - db $08 - db $00,$00,$0e,$00 - db $00,$08,$0f,$00 - db $08,$00,$1e,$00 - db $08,$08,$1f,$00 - db $00,$10,$0f,$20 - db $00,$18,$0e,$20 - db $08,$10,$1f,$20 - db $08,$18,$1e,$20 - -FrameBlock11: - db $08 - db $00,$00,$0e,$00 - db $00,$08,$0f,$00 - db $08,$00,$1e,$00 - db $08,$08,$1f,$00 - db $00,$20,$0f,$20 - db $00,$28,$0e,$20 - db $08,$20,$1f,$20 - db $08,$28,$1e,$20 - -FrameBlock12: - db $03 - db $00,$00,$37,$00 - db $08,$10,$37,$00 - db $00,$20,$37,$00 - -FrameBlock13: - db $04 - db $00,$00,$36,$00 - db $00,$08,$36,$20 - db $08,$00,$36,$40 - db $08,$08,$36,$60 - -FrameBlock14: - db $08 - db $00,$10,$28,$00 - db $00,$18,$28,$20 - db $08,$10,$38,$00 - db $08,$18,$38,$20 - db $00,$20,$36,$00 - db $00,$28,$36,$20 - db $08,$20,$36,$40 - db $08,$28,$36,$60 - -FrameBlock15: - db $0c - db $00,$00,$28,$00 - db $00,$08,$28,$20 - db $08,$00,$38,$00 - db $08,$08,$38,$20 - db $00,$10,$29,$00 - db $00,$18,$29,$20 - db $08,$10,$39,$00 - db $08,$18,$39,$20 - db $00,$20,$28,$00 - db $00,$28,$28,$20 - db $08,$20,$38,$00 - db $08,$28,$38,$20 - -FrameBlock16: - db $08 - db $00,$00,$29,$00 - db $00,$08,$29,$20 - db $08,$00,$39,$00 - db $08,$08,$39,$20 - db $00,$20,$29,$00 - db $00,$28,$29,$20 - db $08,$20,$39,$00 - db $08,$28,$39,$20 - -FrameBlock17: - db $04 - db $00,$00,$08,$00 - db $00,$08,$09,$00 - db $08,$00,$18,$00 - db $08,$08,$19,$00 - -FrameBlock18: - db $01 - db $18,$00,$45,$60 - -FrameBlock19: - db $02 - db $18,$08,$45,$00 - db $10,$08,$46,$60 - -FrameBlock1a: - db $02 - db $10,$10,$45,$60 - db $18,$10,$46,$00 - -FrameBlock1b: - db $02 - db $10,$18,$45,$00 - db $08,$18,$46,$60 - -FrameBlock1c: - db $02 - db $08,$20,$45,$60 - db $10,$20,$46,$00 - -FrameBlock1d: - db $02 - db $08,$28,$45,$00 - db $00,$28,$46,$60 - -FrameBlock1e: - db $02 - db $00,$30,$45,$60 - db $08,$30,$46,$00 - -FrameBlock75: - db $04 - db $00,$00,$43,$00 - db $00,$08,$43,$20 - db $08,$00,$22,$00 - db $08,$08,$43,$60 - -FrameBlock1f: - db $02 - db $00,$00,$03,$00 - db $00,$30,$03,$20 - -FrameBlock20: - db $06 - db $00,$00,$03,$00 - db $00,$30,$03,$20 - db $08,$08,$03,$00 - db $08,$28,$03,$20 - db $08,$00,$13,$00 - db $08,$30,$13,$20 - -FrameBlock21: - db $0c - db $00,$00,$03,$00 - db $00,$30,$03,$20 - db $08,$08,$03,$00 - db $08,$28,$03,$20 - db $08,$00,$13,$00 - db $08,$30,$13,$20 - db $10,$10,$03,$00 - db $10,$20,$03,$20 - db $10,$08,$13,$00 - db $10,$28,$13,$20 - db $10,$00,$03,$00 - db $10,$30,$03,$20 - -FrameBlock22: - db $13 - db $00,$00,$03,$00 - db $08,$00,$13,$00 - db $10,$00,$03,$00 - db $18,$00,$13,$00 - db $08,$08,$03,$00 - db $10,$08,$13,$00 - db $18,$08,$03,$00 - db $10,$10,$03,$00 - db $18,$10,$13,$00 - db $18,$18,$03,$00 - db $10,$20,$03,$20 - db $18,$20,$13,$20 - db $08,$28,$03,$20 - db $10,$28,$13,$20 - db $18,$28,$03,$20 - db $00,$30,$03,$20 - db $08,$30,$13,$20 - db $10,$30,$03,$20 - db $18,$30,$13,$20 - -FrameBlock23: - db $04 - db $00,$00,$0a,$00 - db $00,$08,$0b,$00 - db $08,$00,$1a,$00 - db $08,$08,$1b,$00 - -FrameBlock24: - db $02 - db $08,$00,$0a,$00 - db $08,$08,$0b,$00 - -FrameBlock25: - db $0c - db $10,$00,$0a,$00 - db $10,$08,$0b,$00 - db $18,$00,$1a,$00 - db $18,$08,$1b,$00 - db $00,$10,$0a,$00 - db $00,$18,$0b,$00 - db $08,$10,$1a,$00 - db $08,$18,$1b,$00 - db $08,$20,$0a,$00 - db $08,$28,$0b,$00 - db $10,$20,$1a,$00 - db $10,$28,$1b,$00 - -FrameBlock26: - db $04 - db $00,$10,$44,$00 - db $00,$18,$44,$20 - db $08,$10,$44,$40 - db $08,$18,$44,$60 - -FrameBlock27: - db $05 - db $08,$08,$44,$00 - db $08,$10,$44,$20 - db $10,$08,$44,$40 - db $10,$10,$44,$60 - db $00,$18,$47,$00 - -FrameBlock28: - db $06 - db $10,$00,$44,$00 - db $10,$08,$44,$20 - db $18,$00,$44,$40 - db $18,$08,$44,$60 - db $08,$10,$47,$00 - db $02,$16,$47,$00 - -FrameBlock29: - db $04 - db $18,$00,$47,$00 - db $12,$06,$47,$00 - db $0c,$0c,$47,$00 - db $06,$12,$47,$00 - -FrameBlock2a: - db $04 - db $00,$00,$44,$00 - db $00,$08,$44,$20 - db $08,$00,$44,$40 - db $08,$08,$44,$60 - -FrameBlock2b: - db $02 - db $06,$02,$47,$00 - db $00,$08,$47,$00 - -FrameBlock2c: - db $01 - db $a0,$00,$4d,$00 - -FrameBlock2d: - db $08 - db $00,$00,$26,$00 - db $00,$08,$27,$00 - db $08,$00,$36,$00 - db $08,$08,$37,$00 - db $10,$00,$28,$00 - db $10,$08,$29,$00 - db $18,$00,$38,$00 - db $18,$08,$39,$00 - -FrameBlock2e: - db $08 - db $00,$00,$27,$20 - db $00,$08,$26,$20 - db $08,$00,$37,$20 - db $08,$08,$36,$20 - db $10,$00,$29,$20 - db $10,$08,$28,$20 - db $18,$00,$39,$20 - db $18,$08,$38,$20 - -FrameBlock2f: - db $04 - db $00,$00,$0c,$00 - db $00,$08,$0d,$00 - db $08,$00,$0c,$40 - db $08,$08,$0d,$40 - -FrameBlock30: - db $04 - db $00,$00,$44,$00 - db $00,$08,$44,$20 - db $08,$00,$44,$40 - db $08,$08,$44,$60 - -FrameBlock31: - db $01 - db $00,$00,$45,$00 - -FrameBlock32: - db $07 - db $00,$00,$4d,$00 - db $00,$08,$2f,$00 - db $00,$10,$4d,$20 - db $08,$00,$4e,$00 - db $08,$08,$07,$00 - db $08,$10,$4e,$20 - db $10,$08,$3f,$00 - -FrameBlock33: - db $07 - db $00,$08,$3f,$40 - db $08,$00,$4e,$40 - db $08,$08,$07,$40 - db $08,$10,$4e,$60 - db $10,$00,$4d,$40 - db $10,$08,$2f,$40 - db $10,$10,$4d,$60 - -FrameBlock34: - db $01 - db $a0,$00,$00,$10 - -FrameBlock35: - db $06 - db $00,$00,$2a,$00 - db $00,$08,$2b,$00 - db $08,$00,$3a,$00 - db $10,$00,$3a,$40 - db $18,$00,$2a,$40 - db $18,$08,$2b,$40 - -FrameBlock36: - db $04 - db $00,$00,$00,$00 - db $00,$08,$01,$00 - db $08,$00,$10,$00 - db $08,$08,$11,$00 - -FrameBlock37: - db $04 - db $00,$00,$01,$a0 - db $00,$08,$00,$a0 - db $08,$00,$11,$a0 - db $08,$08,$10,$a0 - -FrameBlock38: - db $04 - db $00,$00,$0a,$00 - db $00,$08,$0b,$00 - db $08,$00,$1a,$00 - db $08,$08,$1b,$00 - -FrameBlock39: - db $04 - db $00,$00,$0b,$20 - db $00,$08,$0a,$20 - db $08,$00,$1b,$20 - db $08,$08,$1a,$20 - -FrameBlock3a: - db $04 - db $20,$00,$05,$00 - db $20,$08,$05,$20 - db $28,$00,$15,$00 - db $28,$08,$15,$20 - -FrameBlock3b: - db $05 - db $18,$00,$04,$00 - db $18,$08,$04,$20 - db $20,$00,$14,$00 - db $20,$08,$14,$20 - db $28,$04,$41,$00 - -FrameBlock3c: - db $06 - db $10,$00,$05,$00 - db $10,$08,$05,$20 - db $18,$00,$15,$00 - db $18,$08,$15,$20 - db $20,$04,$42,$00 - db $28,$04,$42,$00 - -FrameBlock3d: - db $07 - db $08,$00,$04,$00 - db $08,$08,$04,$20 - db $10,$00,$14,$00 - db $10,$08,$14,$20 - db $18,$04,$41,$00 - db $20,$04,$41,$00 - db $28,$04,$41,$00 - -FrameBlock3e: - db $08 - db $00,$00,$05,$00 - db $00,$08,$05,$20 - db $08,$00,$15,$00 - db $08,$08,$15,$20 - db $10,$04,$42,$00 - db $18,$04,$42,$00 - db $20,$04,$42,$00 - db $28,$04,$42,$00 - -FrameBlock3f: - db $08 - db $00,$00,$04,$00 - db $00,$08,$04,$20 - db $08,$00,$14,$00 - db $08,$08,$14,$20 - db $10,$04,$41,$00 - db $18,$04,$41,$00 - db $20,$04,$41,$00 - db $28,$04,$41,$00 - -FrameBlock40: - db $03 - db $00,$00,$3d,$00 - db $00,$08,$3d,$00 - db $08,$08,$3d,$00 - -FrameBlock41: - db $04 - db $00,$00,$06,$00 - db $00,$08,$06,$20 - db $08,$00,$16,$00 - db $08,$08,$17,$00 - -FrameBlock42: - db $0b - db $00,$10,$42,$00 - db $08,$00,$42,$00 - db $08,$08,$42,$00 - db $08,$10,$42,$00 - db $08,$18,$42,$00 - db $08,$20,$42,$00 - db $10,$10,$42,$00 - db $18,$08,$42,$00 - db $18,$18,$42,$00 - db $20,$00,$42,$00 - db $20,$20,$42,$00 - -FrameBlock43: - db $0b - db $00,$10,$41,$00 - db $08,$00,$41,$00 - db $08,$08,$41,$00 - db $08,$10,$41,$00 - db $08,$18,$41,$00 - db $08,$20,$41,$00 - db $10,$10,$41,$00 - db $18,$08,$41,$00 - db $18,$18,$41,$00 - db $20,$00,$41,$00 - db $20,$20,$41,$00 - -FrameBlock44: - db $04 - db $00,$00,$49,$00 - db $00,$28,$49,$00 - db $28,$00,$49,$00 - db $28,$28,$49,$00 - -FrameBlock45: - db $04 - db $00,$00,$49,$00 - db $00,$18,$49,$00 - db $18,$00,$49,$00 - db $18,$18,$49,$00 - -FrameBlock46: - db $04 - db $00,$00,$49,$00 - db $00,$08,$49,$00 - db $08,$00,$49,$00 - db $08,$08,$49,$00 - -FrameBlock47: - db $04 - db $00,$00,$43,$00 - db $00,$08,$43,$20 - db $08,$00,$43,$40 - db $08,$08,$43,$60 - -SmallBlackCircleFrameBlock: - db $04 - db $08,$08,$33,$00 - db $08,$10,$33,$20 - db $10,$08,$33,$40 - db $10,$10,$33,$60 - -LargeBlockCircleFrameBlock: - db $10 - db $00,$00,$22,$00 - db $00,$08,$23,$00 - db $00,$10,$23,$20 - db $00,$18,$22,$20 - db $08,$00,$32,$00 - db $08,$08,$43,$00 - db $08,$10,$43,$20 - db $08,$18,$32,$20 - db $10,$00,$32,$40 - db $10,$08,$43,$40 - db $10,$10,$43,$60 - db $10,$18,$32,$60 - db $18,$00,$22,$40 - db $18,$08,$23,$40 - db $18,$10,$23,$60 - db $18,$18,$22,$60 - -FrameBlock71: - db $10 - db $00,$00,$22,$00 - db $00,$08,$3b,$00 - db $00,$10,$23,$20 - db $00,$18,$22,$20 - db $08,$00,$32,$00 - db $08,$08,$43,$00 - db $08,$10,$43,$20 - db $08,$18,$32,$20 - db $10,$00,$32,$40 - db $10,$08,$43,$40 - db $10,$10,$43,$60 - db $10,$18,$32,$60 - db $18,$00,$22,$40 - db $18,$08,$23,$40 - db $18,$10,$23,$60 - db $18,$18,$22,$60 - -FrameBlock72: - db $0c - db $00,$00,$32,$00 - db $00,$08,$43,$00 - db $00,$10,$43,$20 - db $00,$18,$32,$20 - db $08,$00,$32,$40 - db $08,$08,$43,$40 - db $08,$10,$43,$60 - db $08,$18,$32,$60 - db $10,$00,$22,$40 - db $10,$08,$23,$40 - db $10,$10,$23,$60 - db $10,$18,$22,$60 - -FrameBlock73: - db $08 - db $00,$00,$32,$40 - db $00,$08,$43,$40 - db $00,$10,$43,$60 - db $00,$18,$32,$60 - db $08,$00,$22,$40 - db $08,$08,$23,$40 - db $08,$10,$23,$60 - db $08,$18,$22,$60 - -FrameBlock74: - db $04 - db $00,$00,$22,$40 - db $00,$08,$23,$40 - db $00,$10,$23,$60 - db $00,$18,$22,$60 - -FrameBlock4a: - db $04 - db $08,$18,$4c,$20 - db $20,$08,$4b,$00 - db $30,$20,$4c,$00 - db $18,$30,$4b,$40 - -FrameBlock4b: - db $04 - db $00,$18,$4c,$00 - db $20,$00,$4b,$40 - db $38,$20,$4c,$20 - db $18,$38,$4b,$00 - -FrameBlock4c: - db $04 - db $10,$08,$4a,$40 - db $30,$10,$4a,$00 - db $28,$30,$4a,$20 - db $08,$28,$4a,$60 - -FrameBlock4d: - db $04 - db $08,$00,$4a,$20 - db $38,$08,$4a,$60 - db $30,$38,$4a,$40 - db $00,$30,$4a,$00 - -FrameBlock4e: - db $08 - db $00,$30,$44,$00 - db $00,$38,$44,$20 - db $08,$30,$44,$40 - db $08,$38,$44,$60 - db $26,$0a,$44,$00 - db $26,$12,$44,$20 - db $2e,$0a,$44,$40 - db $2e,$12,$44,$60 - -FrameBlock4f: - db $0c - db $0e,$22,$44,$00 - db $0e,$2a,$44,$20 - db $16,$22,$44,$40 - db $16,$2a,$44,$60 - db $06,$32,$47,$00 - db $00,$38,$47,$00 - db $1a,$16,$44,$00 - db $1a,$1e,$44,$20 - db $22,$16,$44,$40 - db $22,$1e,$44,$60 - db $30,$08,$47,$00 - db $2a,$0e,$47,$00 - -FrameBlock50: - db $08 - db $06,$32,$47,$00 - db $00,$38,$47,$00 - db $12,$26,$47,$00 - db $0c,$2c,$47,$00 - db $1e,$1a,$47,$00 - db $18,$20,$47,$00 - db $2a,$0e,$47,$00 - db $24,$14,$47,$00 - -FrameBlock51: - db $08 - db $00,$00,$35,$20 - db $08,$00,$35,$40 - db $10,$00,$35,$00 - db $18,$00,$35,$60 - db $00,$40,$35,$00 - db $08,$40,$35,$60 - db $10,$40,$35,$20 - db $18,$40,$35,$40 - -FrameBlock52: - db $04 - db $00,$00,$2a,$00 - db $00,$08,$2b,$00 - db $08,$00,$3a,$00 - db $08,$08,$3b,$00 - -FrameBlock53: - db $03 - db $00,$00,$3f,$00 - db $00,$08,$3f,$00 - db $08,$06,$3f,$00 - -FrameBlock54: - db $04 - db $00,$00,$0e,$00 - db $00,$08,$0e,$20 - db $08,$00,$0f,$00 - db $08,$08,$0f,$20 - -FrameBlock55: - db $03 - db $10,$00,$2c,$00 - db $10,$08,$3c,$00 - db $10,$10,$2d,$00 - -FrameBlock56: - db $06 - db $10,$10,$31,$00 - db $10,$18,$31,$00 - db $08,$10,$2c,$00 - db $08,$18,$3c,$00 - db $08,$20,$2d,$00 - db $10,$20,$2d,$00 - -FrameBlock57: - db $09 - db $08,$20,$31,$00 - db $10,$20,$31,$00 - db $08,$28,$31,$00 - db $10,$28,$31,$00 - db $00,$20,$2c,$00 - db $00,$28,$3c,$00 - db $00,$30,$2d,$00 - db $08,$30,$2d,$00 - db $10,$30,$2d,$00 - -FrameBlock58: - db $07 - db $00,$00,$46,$00 - db $08,$02,$47,$00 - db $10,$03,$48,$00 - db $18,$04,$48,$00 - db $20,$05,$48,$00 - db $28,$05,$48,$00 - db $30,$05,$48,$00 - -FrameBlock59: - db $01 - db $00,$00,$42,$00 - -FrameBlock5a: - db $0c - db $00,$00,$24,$00 - db $00,$08,$25,$00 - db $08,$00,$34,$00 - db $00,$10,$25,$20 - db $00,$18,$24,$20 - db $08,$18,$34,$20 - db $10,$00,$34,$40 - db $18,$00,$24,$40 - db $18,$08,$25,$40 - db $10,$18,$34,$60 - db $18,$10,$25,$60 - db $18,$18,$24,$60 - -FrameBlock5b: - db $04 - db $00,$00,$43,$00 - db $00,$08,$43,$20 - db $08,$00,$43,$40 - db $08,$08,$43,$60 - -FrameBlock5c: - db $08 - db $00,$00,$49,$00 - db $02,$08,$49,$00 - db $18,$00,$49,$00 - db $10,$10,$49,$00 - db $08,$00,$43,$00 - db $08,$08,$43,$20 - db $10,$00,$43,$40 - db $10,$08,$43,$60 - -FrameBlock5d: - db $0b - db $00,$00,$49,$00 - db $18,$02,$49,$00 - db $14,$10,$49,$00 - db $08,$00,$43,$00 - db $00,$08,$43,$20 - db $10,$00,$43,$40 - db $10,$08,$43,$60 - db $04,$08,$43,$00 - db $04,$10,$43,$20 - db $0c,$08,$43,$40 - db $0c,$10,$43,$60 - -FrameBlock5e: - db $0f - db $00,$08,$49,$00 - db $08,$10,$49,$00 - db $20,$00,$49,$00 - db $08,$00,$43,$00 - db $08,$08,$43,$20 - db $10,$00,$43,$40 - db $10,$08,$43,$60 - db $10,$10,$43,$00 - db $10,$18,$43,$20 - db $18,$10,$43,$40 - db $18,$18,$43,$60 - db $20,$08,$43,$00 - db $20,$10,$43,$20 - db $28,$08,$43,$40 - db $28,$10,$43,$60 - -FrameBlock5f: - db $04 - db $00,$00,$49,$00 - db $00,$10,$49,$00 - db $00,$20,$49,$00 - db $00,$30,$49,$00 - -FrameBlock60: - db $08 - db $00,$00,$49,$00 - db $00,$10,$49,$00 - db $00,$20,$49,$00 - db $00,$30,$49,$00 - db $08,$08,$49,$00 - db $08,$18,$49,$00 - db $08,$28,$49,$00 - db $08,$38,$49,$00 - -FrameBlock61: - db $0c - db $00,$00,$49,$00 - db $00,$10,$49,$00 - db $00,$20,$49,$00 - db $00,$30,$49,$00 - db $08,$08,$49,$00 - db $08,$18,$49,$00 - db $08,$28,$49,$00 - db $08,$38,$49,$00 - db $10,$00,$49,$00 - db $10,$10,$49,$00 - db $10,$20,$49,$00 - db $10,$30,$49,$00 - -FrameBlock62: - db $0f - db $00,$00,$49,$00 - db $00,$10,$49,$00 - db $00,$20,$49,$00 - db $00,$30,$49,$00 - db $08,$08,$49,$00 - db $08,$18,$49,$00 - db $08,$28,$49,$00 - db $08,$38,$49,$00 - db $10,$00,$49,$00 - db $10,$10,$49,$00 - db $10,$20,$49,$00 - db $10,$30,$49,$00 - db $18,$08,$49,$00 - db $18,$18,$49,$00 - db $18,$28,$49,$00 - db $18,$38,$49,$00 ; unused - -FrameBlock63: - db $06 - db $10,$00,$26,$00 - db $10,$08,$27,$00 - db $08,$10,$26,$00 - db $08,$18,$27,$00 - db $00,$20,$26,$00 - db $00,$28,$27,$00 - -FrameBlock64: - db $06 - db $18,$00,$27,$00 - db $10,$08,$26,$00 - db $10,$10,$27,$00 - db $08,$18,$26,$00 - db $08,$20,$27,$00 - db $00,$28,$26,$00 - -FrameBlock65: - db $06 - db $00,$00,$1c,$00 - db $00,$08,$1d,$00 - db $10,$00,$1c,$00 - db $10,$08,$1d,$00 - db $20,$00,$1c,$00 - db $20,$08,$1d,$00 - -FrameBlock66: - db $02 - db $00,$00,$03,$00 - db $08,$00,$13,$00 - -FrameBlock67: - db $01 - db $00,$00,$03,$00 - -FrameBlock68: - db $04 - db $00,$00,$03,$00 - db $00,$08,$03,$20 - db $08,$00,$13,$00 - db $08,$08,$13,$20 - -FrameBlock69: - db $01 - db $00,$00,$06,$00 - -FrameBlock6a: - db $08 - db $00,$00,$2e,$00 - db $00,$30,$2e,$20 - db $30,$00,$2e,$40 - db $30,$30,$2e,$60 - db $00,$18,$2f,$00 - db $30,$18,$2f,$40 - db $18,$00,$3e,$00 - db $18,$30,$3e,$20 - -FrameBlock6b: - db $08 - db $00,$00,$2e,$00 - db $00,$20,$2e,$20 - db $20,$00,$2e,$40 - db $20,$20,$2e,$60 - db $00,$10,$2f,$00 - db $20,$10,$2f,$40 - db $10,$00,$3e,$00 - db $10,$20,$3e,$20 - -FrameBlock6c: - db $08 - db $00,$00,$2e,$00 - db $00,$10,$2e,$20 - db $10,$00,$2e,$40 - db $10,$10,$2e,$60 - db $00,$08,$2f,$00 - db $10,$08,$2f,$40 - db $08,$00,$3e,$00 - db $08,$10,$3e,$20 - -FrameBlock6d: - db $02 - db $00,$00,$1e,$00 - db $00,$08,$1f,$00 - -FrameBlock6e: - db $04 - db $00,$00,$48,$00 - db $00,$08,$48,$20 - db $08,$00,$12,$00 - db $08,$08,$12,$20 - -FrameBlock6f: - db $04 - db $00,$00,$4a,$00 - db $00,$08,$07,$00 - db $08,$00,$16,$00 - db $08,$08,$17,$00 - -FrameBlock70: - db $04 - db $00,$00,$07,$20 - db $00,$08,$4a,$20 - db $08,$00,$17,$20 - db $08,$08,$16,$20 - -FrameBlock76: - db $07 - db $00,$10,$2f,$00 - db $01,$08,$2f,$00 - db $01,$18,$2f,$00 - db $02,$00,$2e,$00 - db $02,$20,$2e,$20 - db $0a,$00,$3e,$00 - db $0a,$20,$3e,$20 - -FrameBlock77: - db $04 - db $00,$02,$4b,$00 - db $00,$0a,$4c,$00 - db $08,$00,$4c,$60 - db $08,$08,$4b,$60 - -FrameBlock78: - db $01 - db $00,$00,$4d,$00 - -FrameBlock79: - db $01 - db $00,$00,$4e,$00 - -FrameBlockBaseCoords: - db $10,$68 - db $10,$70 - db $10,$78 - db $10,$80 - db $10,$88 - db $10,$90 - db $10,$98 - db $18,$68 - db $18,$70 - db $18,$78 - db $34,$28 - db $18,$80 - db $18,$88 - db $18,$98 - db $20,$68 - db $20,$70 - db $20,$78 - db $20,$80 - db $20,$88 - db $20,$90 - db $20,$98 - db $28,$68 - db $28,$70 - db $28,$78 - db $28,$80 - db $28,$88 - db $30,$68 - db $30,$70 - db $30,$78 - db $30,$80 - db $30,$90 - db $30,$98 - db $38,$68 - db $38,$78 - db $38,$80 - db $38,$88 - db $40,$68 - db $40,$70 - db $40,$78 - db $40,$80 - db $40,$88 - db $40,$98 - db $10,$60 - db $18,$60 - db $20,$60 - db $28,$60 - db $30,$60 - db $40,$60 - db $58,$28 - db $43,$38 - db $33,$48 - db $20,$58 - db $32,$78 - db $58,$58 - db $2C,$6C - db $34,$80 - db $48,$70 - db $42,$36 - db $38,$44 - db $40,$52 - db $48,$60 - db $3E,$6E - db $28,$7C - db $28,$8A - db $50,$3C - db $48,$50 - db $40,$64 - db $38,$38 - db $50,$30 - db $50,$38 - db $50,$40 - db $50,$48 - db $50,$50 - db $48,$58 - db $50,$44 - db $48,$48 - db $48,$4C - db $40,$50 - db $40,$54 - db $38,$58 - db $38,$5C - db $30,$64 - db $48,$40 - db $48,$39 - db $24,$88 - db $24,$70 - db $1C,$70 - db $1C,$88 - db $34,$68 - db $34,$88 - db $68,$50 - db $60,$50 - db $68,$60 - db $58,$50 - db $60,$60 - db $68,$40 - db $40,$40 - db $38,$40 - db $0B,$60 - db $44,$48 - db $40,$14 - db $48,$1C - db $50,$24 - db $4C,$24 - db $10,$62 - db $12,$62 - db $12,$60 - db $20,$72 - db $22,$72 - db $22,$70 - db $28,$62 - db $50,$0A - db $52,$0A - db $38,$30 - db $40,$48 - db $30,$48 - db $40,$30 - db $30,$40 - db $38,$48 - db $40,$4A - db $48,$4B - db $50,$4C - db $58,$4D - db $60,$4D - db $68,$4D - db $38,$10 - db $50,$10 - db $38,$28 - db $48,$18 - db $40,$20 - db $48,$20 - db $40,$3C - db $38,$50 - db $28,$64 - db $1C,$90 - db $24,$80 - db $2C,$70 - db $30,$38 - db $10,$50 - db $3C,$40 - db $40,$58 - db $30,$58 - db $58,$48 - db $50,$58 - db $48,$68 - db $40,$18 - db $28,$58 - db $40,$38 - db $48,$38 - db $08,$70 - db $44,$1C - db $3C,$58 - db $38,$60 - db $08,$60 - db $38,$70 - db $38,$6C - db $38,$64 - db $1C,$74 - db $2E,$74 - db $34,$50 - db $2F,$60 - db $31,$70 - db $4C,$30 - db $3B,$40 - db $2D,$50 - db $26,$60 - db $2D,$70 - db $28,$50 - db $1E,$60 - db $29,$70 - db $16,$60 - db $14,$58 - db $12,$54 - db $14,$50 - db $18,$4C - db $1C,$48 - db $48,$28 - -FrameBlock00: - db $00,$00 diff --git a/data/baseStats/abra.asm b/data/baseStats/abra.asm deleted file mode 100644 index c8e240f2b..000000000 --- a/data/baseStats/abra.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_ABRA ; pokedex id -db 25 ; base hp -db 20 ; base attack -db 15 ; base defense -db 90 ; base speed -db 105 ; base special -db PSYCHIC ; species type 1 -db PSYCHIC ; species type 2 -db 200 ; catch rate -db 73 ; base exp yield -INCBIN "pic/ymon/abra.pic",0,1 ; 55, sprite dimensions -dw AbraPicFront -dw AbraPicBack -; attacks known at lvl 0 -db TELEPORT -db 0 -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10 - tmlearn 17,18,19,20 - tmlearn 29,30,31,32 - tmlearn 33,34,35,40 - tmlearn 44,45,46 - tmlearn 49,50,55 -db 0 ; padding diff --git a/data/baseStats/aerodactyl.asm b/data/baseStats/aerodactyl.asm deleted file mode 100644 index 7c9158f8f..000000000 --- a/data/baseStats/aerodactyl.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_AERODACTYL ; pokedex id -db 80 ; base hp -db 105 ; base attack -db 65 ; base defense -db 130 ; base speed -db 60 ; base special -db ROCK ; species type 1 -db FLYING ; species type 2 -db 45 ; catch rate -db 202 ; base exp yield -INCBIN "pic/ymon/aerodactyl.pic",0,1 ; 77, sprite dimensions -dw AerodactylPicFront -dw AerodactylPicBack -; attacks known at lvl 0 -db WING_ATTACK -db AGILITY -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 2,4,6 - tmlearn 9,10,15 - tmlearn 20,23 - tmlearn 31,32 - tmlearn 33,34,38,39 - tmlearn 43,44 - tmlearn 50,52 -db 0 ; padding diff --git a/data/baseStats/alakazam.asm b/data/baseStats/alakazam.asm deleted file mode 100644 index 5a9bf4265..000000000 --- a/data/baseStats/alakazam.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_ALAKAZAM ; pokedex id -db 55 ; base hp -db 50 ; base attack -db 45 ; base defense -db 120 ; base speed -db 135 ; base special -db PSYCHIC ; species type 1 -db PSYCHIC ; species type 2 -db 50 ; catch rate -db 186 ; base exp yield -INCBIN "pic/ymon/alakazam.pic",0,1 ; 77, sprite dimensions -dw AlakazamPicFront -dw AlakazamPicBack -; attacks known at lvl 0 -db TELEPORT -db KINESIS -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,15 - tmlearn 17,18,19,20 - tmlearn 28,29,30,31,32 - tmlearn 33,34,35,40 - tmlearn 44,45,46 - tmlearn 49,50,55 -db 0 ; padding diff --git a/data/baseStats/arbok.asm b/data/baseStats/arbok.asm deleted file mode 100644 index 1959af0c7..000000000 --- a/data/baseStats/arbok.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_ARBOK ; pokedex id -db 60 ; base hp -db 85 ; base attack -db 69 ; base defense -db 80 ; base speed -db 65 ; base special -db POISON ; species type 1 -db POISON ; species type 2 -db 90 ; catch rate -db 147 ; base exp yield -INCBIN "pic/ymon/arbok.pic",0,1 ; 77, sprite dimensions -dw ArbokPicFront -dw ArbokPicBack -; attacks known at lvl 0 -db WRAP -db LEER -db POISON_STING -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,15 - tmlearn 20,21 - tmlearn 26,27,28,31,32 - tmlearn 34,40 - tmlearn 44,48 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/arcanine.asm b/data/baseStats/arcanine.asm deleted file mode 100644 index 68e111a18..000000000 --- a/data/baseStats/arcanine.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_ARCANINE ; pokedex id -db 90 ; base hp -db 110 ; base attack -db 80 ; base defense -db 95 ; base speed -db 80 ; base special -db FIRE ; species type 1 -db FIRE ; species type 2 -db 75 ; catch rate -db 213 ; base exp yield -INCBIN "pic/ymon/arcanine.pic",0,1 ; 77, sprite dimensions -dw ArcaninePicFront -dw ArcaninePicBack -; attacks known at lvl 0 -db ROAR -db EMBER -db LEER -db TAKE_DOWN -db 5 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,15 - tmlearn 20,23 - tmlearn 28,30,31,32 - tmlearn 33,34,38,39,40 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/articuno.asm b/data/baseStats/articuno.asm deleted file mode 100644 index 6171d40c0..000000000 --- a/data/baseStats/articuno.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_ARTICUNO ; pokedex id -db 90 ; base hp -db 85 ; base attack -db 100 ; base defense -db 85 ; base speed -db 125 ; base special -db ICE ; species type 1 -db FLYING ; species type 2 -db 3 ; catch rate -db 215 ; base exp yield -INCBIN "pic/ymon/articuno.pic",0,1 ; 77, sprite dimensions -dw ArticunoPicFront -dw ArticunoPicBack -; attacks known at lvl 0 -db PECK -db ICE_BEAM -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 2,4,6 - tmlearn 9,10,11,12,13,14,15 - tmlearn 20 - tmlearn 31,32 - tmlearn 33,34,39 - tmlearn 43,44 - tmlearn 50,52 -db 0 ; padding diff --git a/data/baseStats/beedrill.asm b/data/baseStats/beedrill.asm deleted file mode 100644 index 859d4835b..000000000 --- a/data/baseStats/beedrill.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_BEEDRILL ; pokedex id -db 65 ; base hp -db 80 ; base attack -db 40 ; base defense -db 75 ; base speed -db 45 ; base special -db BUG ; species type 1 -db POISON ; species type 2 -db 45 ; catch rate -db 159 ; base exp yield -INCBIN "pic/ymon/beedrill.pic",0,1 ; 77, sprite dimensions -dw BeedrillPicFront -dw BeedrillPicBack -; attacks known at lvl 0 -db FURY_ATTACK -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 3,6 - tmlearn 9,10,15 - tmlearn 20,21 - tmlearn 31,32 - tmlearn 33,34,39,40 - tmlearn 44 - tmlearn 50,51 -db 0 ; padding diff --git a/data/baseStats/bellsprout.asm b/data/baseStats/bellsprout.asm deleted file mode 100644 index 2126a4225..000000000 --- a/data/baseStats/bellsprout.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_BELLSPROUT ; pokedex id -db 50 ; base hp -db 75 ; base attack -db 35 ; base defense -db 40 ; base speed -db 70 ; base special -db GRASS ; species type 1 -db POISON ; species type 2 -db 255 ; catch rate -db 84 ; base exp yield -INCBIN "pic/ymon/bellsprout.pic",0,1 ; 55, sprite dimensions -dw BellsproutPicFront -dw BellsproutPicBack -; attacks known at lvl 0 -db VINE_WHIP -db GROWTH -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 3,6 - tmlearn 9,10 - tmlearn 20,21,22 - tmlearn 31,32 - tmlearn 33,34 - tmlearn 44 - tmlearn 50,51 -db 0 ; padding diff --git a/data/baseStats/blastoise.asm b/data/baseStats/blastoise.asm deleted file mode 100644 index c6fad5f06..000000000 --- a/data/baseStats/blastoise.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_BLASTOISE ; pokedex id -db 79 ; base hp -db 83 ; base attack -db 100 ; base defense -db 78 ; base speed -db 85 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 45 ; catch rate -db 210 ; base exp yield -INCBIN "pic/ymon/blastoise.pic",0,1 ; 77, sprite dimensions -dw BlastoisePicFront -dw BlastoisePicBack -; attacks known at lvl 0 -db TACKLE -db TAIL_WHIP -db BUBBLE -db WATER_GUN -db 3 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 17,18,19,20 - tmlearn 26,27,28,31,32 - tmlearn 33,34,40 - tmlearn 44 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/bulbasaur.asm b/data/baseStats/bulbasaur.asm deleted file mode 100644 index 225e8bec1..000000000 --- a/data/baseStats/bulbasaur.asm +++ /dev/null @@ -1,30 +0,0 @@ -MonBaseStats: -db DEX_BULBASAUR ; pokedex id -db 45 ; base hp -db 49 ; base attack -db 49 ; base defense -db 45 ; base speed -db 65 ; base special -db GRASS ; species type 1 -db POISON ; species type 2 -db 45 ; catch rate -db 64 ; base exp yield -INCBIN "pic/ymon/bulbasaur.pic",0,1 ; 55, sprite dimensions -dw BulbasaurPicFront -dw BulbasaurPicBack -; attacks known at lvl 0 -db TACKLE -db GROWL -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 3,6,8 - tmlearn 9,10 - tmlearn 20,21,22 - tmlearn 31,32 - tmlearn 33,34 - tmlearn 44 - tmlearn 50,51 -db 0 ; padding -MonBaseStatsEnd: diff --git a/data/baseStats/butterfree.asm b/data/baseStats/butterfree.asm deleted file mode 100644 index 4b161422a..000000000 --- a/data/baseStats/butterfree.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_BUTTERFREE ; pokedex id -db 60 ; base hp -db 45 ; base attack -db 50 ; base defense -db 70 ; base speed -db 80 ; base special -db BUG ; species type 1 -db FLYING ; species type 2 -db 45 ; catch rate -db 160 ; base exp yield -INCBIN "pic/ymon/butterfree.pic",0,1 ; 77, sprite dimensions -dw ButterfreePicFront -dw ButterfreePicBack -; attacks known at lvl 0 -db CONFUSION -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 2,4,6 - tmlearn 9,10,15 - tmlearn 20,21,22 - tmlearn 29,30,31,32 - tmlearn 33,34,39 - tmlearn 44,46 - tmlearn 50,55 -db 0 ; padding diff --git a/data/baseStats/caterpie.asm b/data/baseStats/caterpie.asm deleted file mode 100644 index 106159947..000000000 --- a/data/baseStats/caterpie.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_CATERPIE ; pokedex id -db 45 ; base hp -db 30 ; base attack -db 35 ; base defense -db 45 ; base speed -db 20 ; base special -db BUG ; species type 1 -db BUG ; species type 2 -db 255 ; catch rate -db 53 ; base exp yield -INCBIN "pic/ymon/caterpie.pic",0,1 ; 55, sprite dimensions -dw CaterpiePicFront -dw CaterpiePicBack -; attacks known at lvl 0 -db TACKLE -db STRING_SHOT -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 -db 0 ; padding diff --git a/data/baseStats/chansey.asm b/data/baseStats/chansey.asm deleted file mode 100644 index 2097ef8c2..000000000 --- a/data/baseStats/chansey.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_CHANSEY ; pokedex id -db 250 ; base hp -db 5 ; base attack -db 5 ; base defense -db 50 ; base speed -db 105 ; base special -db NORMAL ; species type 1 -db NORMAL ; species type 2 -db 30 ; catch rate -db 255 ; base exp yield -INCBIN "pic/ymon/chansey.pic",0,1 ; 66, sprite dimensions -dw ChanseyPicFront -dw ChanseyPicBack -; attacks known at lvl 0 -db POUND -db TAIL_WHIP -db 0 -db 0 -db 4 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 17,18,19,20,22,24 - tmlearn 25,29,30,31,32 - tmlearn 33,34,35,37,38,40 - tmlearn 41,44,45,46 - tmlearn 49,50,54,55 -db 0 ; padding diff --git a/data/baseStats/charizard.asm b/data/baseStats/charizard.asm deleted file mode 100644 index c123bd187..000000000 --- a/data/baseStats/charizard.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_CHARIZARD ; pokedex id -db 78 ; base hp -db 84 ; base attack -db 78 ; base defense -db 100 ; base speed -db 85 ; base special -db FIRE ; species type 1 -db FLYING ; species type 2 -db 45 ; catch rate -db 209 ; base exp yield -INCBIN "pic/ymon/charizard.pic",0,1 ; 77, sprite dimensions -dw CharizardPicFront -dw CharizardPicBack -; attacks known at lvl 0 -db SCRATCH -db GROWL -db EMBER -db LEER -db 3 ; growth rate -; learnset - tmlearn 1,3,5,6,8 - tmlearn 9,10,15 - tmlearn 17,18,19,20,23 - tmlearn 26,27,28,31,32 - tmlearn 33,34,38,39,40 - tmlearn 44 - tmlearn 50,51,52,54 -db 0 ; padding diff --git a/data/baseStats/charmander.asm b/data/baseStats/charmander.asm deleted file mode 100644 index 2e0189f28..000000000 --- a/data/baseStats/charmander.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_CHARMANDER ; pokedex id -db 39 ; base hp -db 52 ; base attack -db 43 ; base defense -db 65 ; base speed -db 50 ; base special -db FIRE ; species type 1 -db FIRE ; species type 2 -db 45 ; catch rate -db 65 ; base exp yield -INCBIN "pic/ymon/charmander.pic",0,1 ; 55, sprite dimensions -dw CharmanderPicFront -dw CharmanderPicBack -; attacks known at lvl 0 -db SCRATCH -db GROWL -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 1,3,5,6,8 - tmlearn 9,10 - tmlearn 17,18,19,20,23 - tmlearn 28,31,32 - tmlearn 33,34,38,39,40 - tmlearn 44 - tmlearn 50,51,54 -db 0 ; padding diff --git a/data/baseStats/charmeleon.asm b/data/baseStats/charmeleon.asm deleted file mode 100644 index 419fc4b86..000000000 --- a/data/baseStats/charmeleon.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_CHARMELEON ; pokedex id -db 58 ; base hp -db 64 ; base attack -db 58 ; base defense -db 80 ; base speed -db 65 ; base special -db FIRE ; species type 1 -db FIRE ; species type 2 -db 45 ; catch rate -db 142 ; base exp yield -INCBIN "pic/ymon/charmeleon.pic",0,1 ; 66, sprite dimensions -dw CharmeleonPicFront -dw CharmeleonPicBack -; attacks known at lvl 0 -db SCRATCH -db GROWL -db EMBER -db 0 -db 3 ; growth rate -; learnset - tmlearn 1,3,5,6,8 - tmlearn 9,10 - tmlearn 17,18,19,20,23 - tmlearn 28,31,32 - tmlearn 33,34,38,39,40 - tmlearn 44 - tmlearn 50,51,54 -db 0 ; padding diff --git a/data/baseStats/clefable.asm b/data/baseStats/clefable.asm deleted file mode 100644 index 473564b32..000000000 --- a/data/baseStats/clefable.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_CLEFABLE ; pokedex id -db 95 ; base hp -db 70 ; base attack -db 73 ; base defense -db 60 ; base speed -db 85 ; base special -db NORMAL ; species type 1 -db NORMAL ; species type 2 -db 25 ; catch rate -db 129 ; base exp yield -INCBIN "pic/ymon/clefable.pic",0,1 ; 66, sprite dimensions -dw ClefablePicFront -dw ClefablePicBack -; attacks known at lvl 0 -db SING -db DOUBLESLAP -db MINIMIZE -db METRONOME -db 4 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 17,18,19,20,22,24 - tmlearn 25,29,30,31,32 - tmlearn 33,34,35,38,40 - tmlearn 44,45,46 - tmlearn 49,50,54,55 -db 0 ; padding diff --git a/data/baseStats/clefairy.asm b/data/baseStats/clefairy.asm deleted file mode 100644 index c24f0c736..000000000 --- a/data/baseStats/clefairy.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_CLEFAIRY ; pokedex id -db 70 ; base hp -db 45 ; base attack -db 48 ; base defense -db 35 ; base speed -db 60 ; base special -db NORMAL ; species type 1 -db NORMAL ; species type 2 -db 150 ; catch rate -db 68 ; base exp yield -INCBIN "pic/ymon/clefairy.pic",0,1 ; 55, sprite dimensions -dw ClefairyPicFront -dw ClefairyPicBack -; attacks known at lvl 0 -db POUND -db GROWL -db 0 -db 0 -db 4 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14 - tmlearn 17,18,19,20,22,24 - tmlearn 25,29,30,31,32 - tmlearn 33,34,35,38,40 - tmlearn 44,45,46 - tmlearn 49,50,54,55 -db 0 ; padding diff --git a/data/baseStats/cloyster.asm b/data/baseStats/cloyster.asm deleted file mode 100644 index 4b1742415..000000000 --- a/data/baseStats/cloyster.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_CLOYSTER ; pokedex id -db 50 ; base hp -db 95 ; base attack -db 180 ; base defense -db 70 ; base speed -db 85 ; base special -db WATER ; species type 1 -db ICE ; species type 2 -db 60 ; catch rate -db 203 ; base exp yield -INCBIN "pic/ymon/cloyster.pic",0,1 ; 77, sprite dimensions -dw CloysterPicFront -dw CloysterPicBack -; attacks known at lvl 0 -db WITHDRAW -db SUPERSONIC -db CLAMP -db AURORA_BEAM -db 5 ; growth rate -; learnset - tmlearn 6 - tmlearn 9,10,11,12,13,14,15 - tmlearn 20 - tmlearn 30,31,32 - tmlearn 33,34,36,39 - tmlearn 44,47 - tmlearn 49,50,53 -db 0 ; padding diff --git a/data/baseStats/cubone.asm b/data/baseStats/cubone.asm deleted file mode 100644 index 598531d5c..000000000 --- a/data/baseStats/cubone.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_CUBONE ; pokedex id -db 50 ; base hp -db 50 ; base attack -db 95 ; base defense -db 35 ; base speed -db 40 ; base special -db GROUND ; species type 1 -db GROUND ; species type 2 -db 190 ; catch rate -db 87 ; base exp yield -INCBIN "pic/ymon/cubone.pic",0,1 ; 55, sprite dimensions -dw CubonePicFront -dw CubonePicBack -; attacks known at lvl 0 -db GROWL -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14 - tmlearn 17,18,19,20 - tmlearn 26,27,28,31,32 - tmlearn 34,38,40 - tmlearn 44 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/dewgong.asm b/data/baseStats/dewgong.asm deleted file mode 100644 index cdeb45a7f..000000000 --- a/data/baseStats/dewgong.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_DEWGONG ; pokedex id -db 90 ; base hp -db 70 ; base attack -db 80 ; base defense -db 70 ; base speed -db 95 ; base special -db WATER ; species type 1 -db ICE ; species type 2 -db 75 ; catch rate -db 176 ; base exp yield -INCBIN "pic/ymon/dewgong.pic",0,1 ; 66, sprite dimensions -dw DewgongPicFront -dw DewgongPicBack -; attacks known at lvl 0 -db HEADBUTT -db GROWL -db AURORA_BEAM -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,7,8 - tmlearn 9,10,11,12,13,14,15,16 - tmlearn 20 - tmlearn 31,32 - tmlearn 34,40 - tmlearn 44 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/diglett.asm b/data/baseStats/diglett.asm deleted file mode 100644 index 91fdc4159..000000000 --- a/data/baseStats/diglett.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_DIGLETT ; pokedex id -db 10 ; base hp -db 55 ; base attack -db 25 ; base defense -db 95 ; base speed -db 45 ; base special -db GROUND ; species type 1 -db GROUND ; species type 2 -db 255 ; catch rate -db 81 ; base exp yield -INCBIN "pic/ymon/diglett.pic",0,1 ; 55, sprite dimensions -dw DiglettPicFront -dw DiglettPicBack -; attacks known at lvl 0 -db SCRATCH -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10 - tmlearn 20 - tmlearn 26,27,28,31,32 - tmlearn 34 - tmlearn 44,48 - tmlearn 50,51 -db 0 ; padding diff --git a/data/baseStats/ditto.asm b/data/baseStats/ditto.asm deleted file mode 100644 index 456639c7a..000000000 --- a/data/baseStats/ditto.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_DITTO ; pokedex id -db 48 ; base hp -db 48 ; base attack -db 48 ; base defense -db 48 ; base speed -db 48 ; base special -db NORMAL ; species type 1 -db NORMAL ; species type 2 -db 35 ; catch rate -db 61 ; base exp yield -INCBIN "pic/ymon/ditto.pic",0,1 ; 55, sprite dimensions -dw DittoPicFront -dw DittoPicBack -; attacks known at lvl 0 -db TRANSFORM -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 -db 0 ; padding diff --git a/data/baseStats/dodrio.asm b/data/baseStats/dodrio.asm deleted file mode 100644 index dfae17136..000000000 --- a/data/baseStats/dodrio.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_DODRIO ; pokedex id -db 60 ; base hp -db 110 ; base attack -db 70 ; base defense -db 100 ; base speed -db 60 ; base special -db NORMAL ; species type 1 -db FLYING ; species type 2 -db 45 ; catch rate -db 158 ; base exp yield -INCBIN "pic/ymon/dodrio.pic",0,1 ; 77, sprite dimensions -dw DodrioPicFront -dw DodrioPicBack -; attacks known at lvl 0 -db PECK -db GROWL -db FURY_ATTACK -db 0 -db 0 ; growth rate -; learnset - tmlearn 4,6,8 - tmlearn 9,10,15 - tmlearn 20 - tmlearn 31,32 - tmlearn 33,34,40 - tmlearn 43,44 - tmlearn 49,50,52 -db 0 ; padding diff --git a/data/baseStats/doduo.asm b/data/baseStats/doduo.asm deleted file mode 100644 index 5571d09e9..000000000 --- a/data/baseStats/doduo.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_DODUO ; pokedex id -db 35 ; base hp -db 85 ; base attack -db 45 ; base defense -db 75 ; base speed -db 35 ; base special -db NORMAL ; species type 1 -db FLYING ; species type 2 -db 190 ; catch rate -db 96 ; base exp yield -INCBIN "pic/ymon/doduo.pic",0,1 ; 55, sprite dimensions -dw DoduoPicFront -dw DoduoPicBack -; attacks known at lvl 0 -db PECK -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 4,6,8 - tmlearn 9,10 - tmlearn 20 - tmlearn 31,32 - tmlearn 33,34,40 - tmlearn 43,44 - tmlearn 49,50,52 -db 0 ; padding diff --git a/data/baseStats/dragonair.asm b/data/baseStats/dragonair.asm deleted file mode 100644 index 6ec0031b9..000000000 --- a/data/baseStats/dragonair.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_DRAGONAIR ; pokedex id -db 61 ; base hp -db 84 ; base attack -db 65 ; base defense -db 70 ; base speed -db 70 ; base special -db DRAGON ; species type 1 -db DRAGON ; species type 2 -db 27 ; catch rate -db 144 ; base exp yield -INCBIN "pic/ymon/dragonair.pic",0,1 ; 66, sprite dimensions -dw DragonairPicFront -dw DragonairPicBack -; attacks known at lvl 0 -db WRAP -db LEER -db THUNDER_WAVE -db 0 -db 5 ; growth rate -; learnset - tmlearn 6,7,8 - tmlearn 9,10,11,12,13,14 - tmlearn 20,23,24 - tmlearn 25,31,32 - tmlearn 33,34,38,39,40 - tmlearn 44,45 - tmlearn 50,53 -db 0 ; padding diff --git a/data/baseStats/dragonite.asm b/data/baseStats/dragonite.asm deleted file mode 100644 index 02ac0c9b2..000000000 --- a/data/baseStats/dragonite.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_DRAGONITE ; pokedex id -db 91 ; base hp -db 134 ; base attack -db 95 ; base defense -db 80 ; base speed -db 100 ; base special -db DRAGON ; species type 1 -db FLYING ; species type 2 -db 9 ; catch rate -db 218 ; base exp yield -INCBIN "pic/ymon/dragonite.pic",0,1 ; 77, sprite dimensions -dw DragonitePicFront -dw DragonitePicBack -; attacks known at lvl 0 -db WRAP -db LEER -db THUNDER_WAVE -db AGILITY -db 5 ; growth rate -; learnset - tmlearn 2,6,7,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 20,23,24 - tmlearn 25,31,32 - tmlearn 33,34,38,39,40 - tmlearn 44,45 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/dratini.asm b/data/baseStats/dratini.asm deleted file mode 100644 index c3c659a43..000000000 --- a/data/baseStats/dratini.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_DRATINI ; pokedex id -db 41 ; base hp -db 64 ; base attack -db 45 ; base defense -db 50 ; base speed -db 50 ; base special -db DRAGON ; species type 1 -db DRAGON ; species type 2 -db 45 ; catch rate -db 67 ; base exp yield -INCBIN "pic/ymon/dratini.pic",0,1 ; 55, sprite dimensions -dw DratiniPicFront -dw DratiniPicBack -; attacks known at lvl 0 -db WRAP -db LEER -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,11,12,13,14 - tmlearn 20,23,24 - tmlearn 25,31,32 - tmlearn 33,34,38,39,40 - tmlearn 44,45 - tmlearn 50,53 -db 0 ; padding diff --git a/data/baseStats/drowzee.asm b/data/baseStats/drowzee.asm deleted file mode 100644 index 132c1b5c4..000000000 --- a/data/baseStats/drowzee.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_DROWZEE ; pokedex id -db 60 ; base hp -db 48 ; base attack -db 45 ; base defense -db 42 ; base speed -db 90 ; base special -db PSYCHIC ; species type 1 -db PSYCHIC ; species type 2 -db 190 ; catch rate -db 102 ; base exp yield -INCBIN "pic/ymon/drowzee.pic",0,1 ; 66, sprite dimensions -dw DrowzeePicFront -dw DrowzeePicBack -; attacks known at lvl 0 -db POUND -db HYPNOSIS -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10 - tmlearn 17,18,19,20 - tmlearn 29,30,31,32 - tmlearn 33,34,35,40 - tmlearn 42,44,45,46 - tmlearn 49,50,55 -db 0 ; padding diff --git a/data/baseStats/dugtrio.asm b/data/baseStats/dugtrio.asm deleted file mode 100644 index 07f551a54..000000000 --- a/data/baseStats/dugtrio.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_DUGTRIO ; pokedex id -db 35 ; base hp -db 80 ; base attack -db 50 ; base defense -db 120 ; base speed -db 70 ; base special -db GROUND ; species type 1 -db GROUND ; species type 2 -db 50 ; catch rate -db 153 ; base exp yield -INCBIN "pic/ymon/dugtrio.pic",0,1 ; 66, sprite dimensions -dw DugtrioPicFront -dw DugtrioPicBack -; attacks known at lvl 0 -db SCRATCH -db GROWL -db DIG -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,15 - tmlearn 20 - tmlearn 26,27,28,31,32 - tmlearn 34 - tmlearn 44,48 - tmlearn 50,51 -db 0 ; padding diff --git a/data/baseStats/eevee.asm b/data/baseStats/eevee.asm deleted file mode 100644 index 7e64bfd8e..000000000 --- a/data/baseStats/eevee.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_EEVEE ; pokedex id -db 55 ; base hp -db 55 ; base attack -db 50 ; base defense -db 55 ; base speed -db 65 ; base special -db NORMAL ; species type 1 -db NORMAL ; species type 2 -db 45 ; catch rate -db 92 ; base exp yield -INCBIN "pic/ymon/eevee.pic",0,1 ; 55, sprite dimensions -dw EeveePicFront -dw EeveePicBack -; attacks known at lvl 0 -db TACKLE -db TAIL_WHIP -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10 - tmlearn 20 - tmlearn 31,32 - tmlearn 33,34,39,40 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/ekans.asm b/data/baseStats/ekans.asm deleted file mode 100644 index a4385e9c9..000000000 --- a/data/baseStats/ekans.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_EKANS ; pokedex id -db 35 ; base hp -db 60 ; base attack -db 44 ; base defense -db 55 ; base speed -db 40 ; base special -db POISON ; species type 1 -db POISON ; species type 2 -db 255 ; catch rate -db 62 ; base exp yield -INCBIN "pic/ymon/ekans.pic",0,1 ; 55, sprite dimensions -dw EkansPicFront -dw EkansPicBack -; attacks known at lvl 0 -db WRAP -db LEER -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10 - tmlearn 20,21 - tmlearn 26,27,28,31,32 - tmlearn 34,40 - tmlearn 44,48 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/electabuzz.asm b/data/baseStats/electabuzz.asm deleted file mode 100644 index 8b85f12a9..000000000 --- a/data/baseStats/electabuzz.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_ELECTABUZZ ; pokedex id -db 65 ; base hp -db 83 ; base attack -db 57 ; base defense -db 105 ; base speed -db 85 ; base special -db ELECTRIC ; species type 1 -db ELECTRIC ; species type 2 -db 45 ; catch rate -db 156 ; base exp yield -INCBIN "pic/ymon/electabuzz.pic",0,1 ; 66, sprite dimensions -dw ElectabuzzPicFront -dw ElectabuzzPicBack -; attacks known at lvl 0 -db QUICK_ATTACK -db LEER -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,15 - tmlearn 17,18,19,20,24 - tmlearn 25,29,30,31,32 - tmlearn 33,34,35,39,40 - tmlearn 44,45,46 - tmlearn 50,54,55 -db 0 ; padding diff --git a/data/baseStats/electrode.asm b/data/baseStats/electrode.asm deleted file mode 100644 index d68422418..000000000 --- a/data/baseStats/electrode.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_ELECTRODE ; pokedex id -db 60 ; base hp -db 50 ; base attack -db 70 ; base defense -db 140 ; base speed -db 80 ; base special -db ELECTRIC ; species type 1 -db ELECTRIC ; species type 2 -db 60 ; catch rate -db 150 ; base exp yield -INCBIN "pic/ymon/electrode.pic",0,1 ; 55, sprite dimensions -dw ElectrodePicFront -dw ElectrodePicBack -; attacks known at lvl 0 -db TACKLE -db SCREECH -db SONICBOOM -db 0 -db 0 ; growth rate -; learnset - tmlearn 6 - tmlearn 9,15 - tmlearn 20,24 - tmlearn 25,30,31,32 - tmlearn 33,34,36,39,40 - tmlearn 44,45,47 - tmlearn 50,55 -db 0 ; padding diff --git a/data/baseStats/exeggcute.asm b/data/baseStats/exeggcute.asm deleted file mode 100644 index db0860fa5..000000000 --- a/data/baseStats/exeggcute.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_EXEGGCUTE ; pokedex id -db 60 ; base hp -db 40 ; base attack -db 80 ; base defense -db 40 ; base speed -db 60 ; base special -db GRASS ; species type 1 -db PSYCHIC ; species type 2 -db 90 ; catch rate -db 98 ; base exp yield -INCBIN "pic/ymon/exeggcute.pic",0,1 ; 77, sprite dimensions -dw ExeggcutePicFront -dw ExeggcutePicBack -; attacks known at lvl 0 -db BARRAGE -db HYPNOSIS -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 6 - tmlearn 9,10 - tmlearn 20 - tmlearn 29,30,31,32 - tmlearn 33,34,36,37 - tmlearn 44,46,47 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/exeggutor.asm b/data/baseStats/exeggutor.asm deleted file mode 100644 index 1349e7d76..000000000 --- a/data/baseStats/exeggutor.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_EXEGGUTOR ; pokedex id -db 95 ; base hp -db 95 ; base attack -db 85 ; base defense -db 55 ; base speed -db 125 ; base special -db GRASS ; species type 1 -db PSYCHIC ; species type 2 -db 45 ; catch rate -db 212 ; base exp yield -INCBIN "pic/ymon/exeggutor.pic",0,1 ; 77, sprite dimensions -dw ExeggutorPicFront -dw ExeggutorPicBack -; attacks known at lvl 0 -db BARRAGE -db HYPNOSIS -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 6 - tmlearn 9,10,15 - tmlearn 20,21,22 - tmlearn 29,30,31,32 - tmlearn 33,34,36,37 - tmlearn 44,46,47 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/farfetchd.asm b/data/baseStats/farfetchd.asm deleted file mode 100644 index 801b672c4..000000000 --- a/data/baseStats/farfetchd.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_FARFETCHD ; pokedex id -db 52 ; base hp -db 65 ; base attack -db 55 ; base defense -db 60 ; base speed -db 58 ; base special -db NORMAL ; species type 1 -db FLYING ; species type 2 -db 45 ; catch rate -db 94 ; base exp yield -INCBIN "pic/ymon/farfetchd.pic",0,1 ; 66, sprite dimensions -dw FarfetchdPicFront -dw FarfetchdPicBack -; attacks known at lvl 0 -db PECK -db SAND_ATTACK -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 2,3,4,6,8 - tmlearn 9,10 - tmlearn 20 - tmlearn 31,32 - tmlearn 33,34,39,40 - tmlearn 44 - tmlearn 50,51,52 -db 0 ; padding diff --git a/data/baseStats/fearow.asm b/data/baseStats/fearow.asm deleted file mode 100644 index 2da5d7127..000000000 --- a/data/baseStats/fearow.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_FEAROW ; pokedex id -db 65 ; base hp -db 90 ; base attack -db 65 ; base defense -db 100 ; base speed -db 61 ; base special -db NORMAL ; species type 1 -db FLYING ; species type 2 -db 90 ; catch rate -db 162 ; base exp yield -INCBIN "pic/ymon/fearow.pic",0,1 ; 77, sprite dimensions -dw FearowPicFront -dw FearowPicBack -; attacks known at lvl 0 -db PECK -db GROWL -db LEER -db 0 -db 0 ; growth rate -; learnset - tmlearn 2,4,6 - tmlearn 9,10,15 - tmlearn 20 - tmlearn 31,32 - tmlearn 34,39 - tmlearn 43,44 - tmlearn 50,52 -db 0 ; padding diff --git a/data/baseStats/flareon.asm b/data/baseStats/flareon.asm deleted file mode 100644 index 82add9d76..000000000 --- a/data/baseStats/flareon.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_FLAREON ; pokedex id -db 65 ; base hp -db 130 ; base attack -db 60 ; base defense -db 65 ; base speed -db 110 ; base special -db FIRE ; species type 1 -db FIRE ; species type 2 -db 45 ; catch rate -db 198 ; base exp yield -INCBIN "pic/ymon/flareon.pic",0,1 ; 66, sprite dimensions -dw FlareonPicFront -dw FlareonPicBack -; attacks known at lvl 0 -db TACKLE -db TAIL_WHIP -db QUICK_ATTACK -db EMBER -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,15 - tmlearn 20 - tmlearn 31,32 - tmlearn 33,34,38,39,40 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/gastly.asm b/data/baseStats/gastly.asm deleted file mode 100644 index 10f5eebda..000000000 --- a/data/baseStats/gastly.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_GASTLY ; pokedex id -db 30 ; base hp -db 35 ; base attack -db 30 ; base defense -db 80 ; base speed -db 100 ; base special -db GHOST ; species type 1 -db POISON ; species type 2 -db 190 ; catch rate -db 95 ; base exp yield -INCBIN "pic/ymon/gastly.pic",0,1 ; 77, sprite dimensions -dw GastlyPicFront -dw GastlyPicBack -; attacks known at lvl 0 -db LICK -db CONFUSE_RAY -db NIGHT_SHADE -db 0 -db 3 ; growth rate -; learnset - tmlearn 6 - tmlearn 0 - tmlearn 20,21,24 - tmlearn 25,29,31,32 - tmlearn 34,36 - tmlearn 42,44,46,47 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/gengar.asm b/data/baseStats/gengar.asm deleted file mode 100644 index 927e0d9b1..000000000 --- a/data/baseStats/gengar.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_GENGAR ; pokedex id -db 60 ; base hp -db 65 ; base attack -db 60 ; base defense -db 110 ; base speed -db 130 ; base special -db GHOST ; species type 1 -db POISON ; species type 2 -db 45 ; catch rate -db 190 ; base exp yield -INCBIN "pic/ymon/gengar.pic",0,1 ; 66, sprite dimensions -dw GengarPicFront -dw GengarPicBack -; attacks known at lvl 0 -db LICK -db CONFUSE_RAY -db NIGHT_SHADE -db 0 -db 3 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,15 - tmlearn 17,18,19,20,21,24 - tmlearn 25,29,31,32 - tmlearn 34,35,36,40 - tmlearn 42,44,46,47 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/geodude.asm b/data/baseStats/geodude.asm deleted file mode 100644 index fb9817665..000000000 --- a/data/baseStats/geodude.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_GEODUDE ; pokedex id -db 40 ; base hp -db 80 ; base attack -db 100 ; base defense -db 20 ; base speed -db 30 ; base special -db ROCK ; species type 1 -db GROUND ; species type 2 -db 255 ; catch rate -db 86 ; base exp yield -INCBIN "pic/ymon/geodude.pic",0,1 ; 55, sprite dimensions -dw GeodudePicFront -dw GeodudePicBack -; attacks known at lvl 0 -db TACKLE -db 0 -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 1,6,8 - tmlearn 9,10 - tmlearn 17,18,19,20 - tmlearn 26,27,28,31,32 - tmlearn 34,35,36,38 - tmlearn 44,47,48 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/gloom.asm b/data/baseStats/gloom.asm deleted file mode 100644 index 35bfbba61..000000000 --- a/data/baseStats/gloom.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_GLOOM ; pokedex id -db 60 ; base hp -db 65 ; base attack -db 70 ; base defense -db 40 ; base speed -db 85 ; base special -db GRASS ; species type 1 -db POISON ; species type 2 -db 120 ; catch rate -db 132 ; base exp yield -INCBIN "pic/ymon/gloom.pic",0,1 ; 66, sprite dimensions -dw GloomPicFront -dw GloomPicBack -; attacks known at lvl 0 -db ABSORB -db POISONPOWDER -db STUN_SPORE -db 0 -db 3 ; growth rate -; learnset - tmlearn 3,6 - tmlearn 9,10 - tmlearn 20,21,22 - tmlearn 31,32 - tmlearn 33,34 - tmlearn 44 - tmlearn 50,51 -db 0 ; padding diff --git a/data/baseStats/golbat.asm b/data/baseStats/golbat.asm deleted file mode 100644 index 123ccad60..000000000 --- a/data/baseStats/golbat.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_GOLBAT ; pokedex id -db 75 ; base hp -db 80 ; base attack -db 70 ; base defense -db 90 ; base speed -db 75 ; base special -db POISON ; species type 1 -db FLYING ; species type 2 -db 90 ; catch rate -db 171 ; base exp yield -INCBIN "pic/ymon/golbat.pic",0,1 ; 77, sprite dimensions -dw GolbatPicFront -dw GolbatPicBack -; attacks known at lvl 0 -db LEECH_LIFE -db SCREECH -db BITE -db 0 -db 0 ; growth rate -; learnset - tmlearn 2,4,6 - tmlearn 9,10,15 - tmlearn 20,21 - tmlearn 31,32 - tmlearn 34,39 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/goldeen.asm b/data/baseStats/goldeen.asm deleted file mode 100644 index 7952ec18d..000000000 --- a/data/baseStats/goldeen.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_GOLDEEN ; pokedex id -db 45 ; base hp -db 67 ; base attack -db 60 ; base defense -db 63 ; base speed -db 50 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 225 ; catch rate -db 111 ; base exp yield -INCBIN "pic/ymon/goldeen.pic",0,1 ; 66, sprite dimensions -dw GoldeenPicFront -dw GoldeenPicBack -; attacks known at lvl 0 -db PECK -db TAIL_WHIP -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,7 - tmlearn 9,10,11,12,13,14 - tmlearn 20 - tmlearn 31,32 - tmlearn 34,39,40 - tmlearn 44 - tmlearn 50,53 -db 0 ; padding diff --git a/data/baseStats/golduck.asm b/data/baseStats/golduck.asm deleted file mode 100644 index 6ac140212..000000000 --- a/data/baseStats/golduck.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_GOLDUCK ; pokedex id -db 80 ; base hp -db 82 ; base attack -db 78 ; base defense -db 85 ; base speed -db 80 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 75 ; catch rate -db 174 ; base exp yield -INCBIN "pic/ymon/golduck.pic",0,1 ; 77, sprite dimensions -dw GolduckPicFront -dw GolduckPicBack -; attacks known at lvl 0 -db SCRATCH -db TAIL_WHIP -db DISABLE -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14,15,16 - tmlearn 17,18,19,20 - tmlearn 28,31,32 - tmlearn 34,39,40 - tmlearn 44 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/golem.asm b/data/baseStats/golem.asm deleted file mode 100644 index 5047de54e..000000000 --- a/data/baseStats/golem.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_GOLEM ; pokedex id -db 80 ; base hp -db 110 ; base attack -db 130 ; base defense -db 45 ; base speed -db 55 ; base special -db ROCK ; species type 1 -db GROUND ; species type 2 -db 45 ; catch rate -db 177 ; base exp yield -INCBIN "pic/ymon/golem.pic",0,1 ; 66, sprite dimensions -dw GolemPicFront -dw GolemPicBack -; attacks known at lvl 0 -db TACKLE -db DEFENSE_CURL -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,15 - tmlearn 17,18,19,20 - tmlearn 26,27,28,31,32 - tmlearn 34,35,36,38 - tmlearn 44,47,48 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/graveler.asm b/data/baseStats/graveler.asm deleted file mode 100644 index 898673b88..000000000 --- a/data/baseStats/graveler.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_GRAVELER ; pokedex id -db 55 ; base hp -db 95 ; base attack -db 115 ; base defense -db 35 ; base speed -db 45 ; base special -db ROCK ; species type 1 -db GROUND ; species type 2 -db 120 ; catch rate -db 134 ; base exp yield -INCBIN "pic/ymon/graveler.pic",0,1 ; 66, sprite dimensions -dw GravelerPicFront -dw GravelerPicBack -; attacks known at lvl 0 -db TACKLE -db DEFENSE_CURL -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 1,6,8 - tmlearn 9,10 - tmlearn 17,18,19,20 - tmlearn 26,27,28,31,32 - tmlearn 34,35,36,38 - tmlearn 44,47,48 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/grimer.asm b/data/baseStats/grimer.asm deleted file mode 100644 index 0effddf40..000000000 --- a/data/baseStats/grimer.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_GRIMER ; pokedex id -db 80 ; base hp -db 80 ; base attack -db 50 ; base defense -db 25 ; base speed -db 40 ; base special -db POISON ; species type 1 -db POISON ; species type 2 -db 190 ; catch rate -db 90 ; base exp yield -INCBIN "pic/ymon/grimer.pic",0,1 ; 55, sprite dimensions -dw GrimerPicFront -dw GrimerPicBack -; attacks known at lvl 0 -db POUND -db DISABLE -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 0 - tmlearn 20,21,24 - tmlearn 25,31,32 - tmlearn 34,36,38 - tmlearn 44,47 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/growlithe.asm b/data/baseStats/growlithe.asm deleted file mode 100644 index 398040540..000000000 --- a/data/baseStats/growlithe.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_GROWLITHE ; pokedex id -db 55 ; base hp -db 70 ; base attack -db 45 ; base defense -db 60 ; base speed -db 50 ; base special -db FIRE ; species type 1 -db FIRE ; species type 2 -db 190 ; catch rate -db 91 ; base exp yield -INCBIN "pic/ymon/growlithe.pic",0,1 ; 55, sprite dimensions -dw GrowlithePicFront -dw GrowlithePicBack -; attacks known at lvl 0 -db BITE -db ROAR -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10 - tmlearn 20,23 - tmlearn 28,31,32 - tmlearn 33,34,38,39,40 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/gyarados.asm b/data/baseStats/gyarados.asm deleted file mode 100644 index 742da5272..000000000 --- a/data/baseStats/gyarados.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_GYARADOS ; pokedex id -db 95 ; base hp -db 125 ; base attack -db 79 ; base defense -db 81 ; base speed -db 100 ; base special -db WATER ; species type 1 -db FLYING ; species type 2 -db 45 ; catch rate -db 214 ; base exp yield -INCBIN "pic/ymon/gyarados.pic",0,1 ; 77, sprite dimensions -dw GyaradosPicFront -dw GyaradosPicBack -; attacks known at lvl 0 -db TACKLE -db 0 -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 20,23,24 - tmlearn 25,31,32 - tmlearn 33,34,38,40 - tmlearn 44 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/haunter.asm b/data/baseStats/haunter.asm deleted file mode 100644 index 8614c3734..000000000 --- a/data/baseStats/haunter.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_HAUNTER ; pokedex id -db 45 ; base hp -db 50 ; base attack -db 45 ; base defense -db 95 ; base speed -db 115 ; base special -db GHOST ; species type 1 -db POISON ; species type 2 -db 90 ; catch rate -db 126 ; base exp yield -INCBIN "pic/ymon/haunter.pic",0,1 ; 66, sprite dimensions -dw HaunterPicFront -dw HaunterPicBack -; attacks known at lvl 0 -db LICK -db CONFUSE_RAY -db NIGHT_SHADE -db 0 -db 3 ; growth rate -; learnset - tmlearn 6 - tmlearn 0 - tmlearn 20,21,24 - tmlearn 25,29,31,32 - tmlearn 34,36 - tmlearn 42,44,46,47 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/hitmonchan.asm b/data/baseStats/hitmonchan.asm deleted file mode 100644 index 4a565d219..000000000 --- a/data/baseStats/hitmonchan.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_HITMONCHAN ; pokedex id -db 50 ; base hp -db 105 ; base attack -db 79 ; base defense -db 76 ; base speed -db 35 ; base special -db FIGHTING ; species type 1 -db FIGHTING ; species type 2 -db 45 ; catch rate -db 140 ; base exp yield -INCBIN "pic/ymon/hitmonchan.pic",0,1 ; 66, sprite dimensions -dw HitmonchanPicFront -dw HitmonchanPicBack -; attacks known at lvl 0 -db COMET_PUNCH -db AGILITY -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10 - tmlearn 17,18,19,20 - tmlearn 31,32 - tmlearn 34,35,39,40 - tmlearn 44 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/hitmonlee.asm b/data/baseStats/hitmonlee.asm deleted file mode 100644 index b08cd76cf..000000000 --- a/data/baseStats/hitmonlee.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_HITMONLEE ; pokedex id -db 50 ; base hp -db 120 ; base attack -db 53 ; base defense -db 87 ; base speed -db 35 ; base special -db FIGHTING ; species type 1 -db FIGHTING ; species type 2 -db 45 ; catch rate -db 139 ; base exp yield -INCBIN "pic/ymon/hitmonlee.pic",0,1 ; 77, sprite dimensions -dw HitmonleePicFront -dw HitmonleePicBack -; attacks known at lvl 0 -db DOUBLE_KICK -db MEDITATE -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10 - tmlearn 17,18,19,20 - tmlearn 31,32 - tmlearn 34,35,39,40 - tmlearn 44 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/horsea.asm b/data/baseStats/horsea.asm deleted file mode 100644 index 86222be3c..000000000 --- a/data/baseStats/horsea.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_HORSEA ; pokedex id -db 30 ; base hp -db 40 ; base attack -db 70 ; base defense -db 60 ; base speed -db 70 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 225 ; catch rate -db 83 ; base exp yield -INCBIN "pic/ymon/horsea.pic",0,1 ; 55, sprite dimensions -dw HorseaPicFront -dw HorseaPicBack -; attacks known at lvl 0 -db BUBBLE -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6 - tmlearn 9,10,11,12,13,14 - tmlearn 20 - tmlearn 31,32 - tmlearn 34,39,40 - tmlearn 44 - tmlearn 50,53 -db 0 ; padding diff --git a/data/baseStats/hypno.asm b/data/baseStats/hypno.asm deleted file mode 100644 index 3d9cb355b..000000000 --- a/data/baseStats/hypno.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_HYPNO ; pokedex id -db 85 ; base hp -db 73 ; base attack -db 70 ; base defense -db 67 ; base speed -db 115 ; base special -db PSYCHIC ; species type 1 -db PSYCHIC ; species type 2 -db 75 ; catch rate -db 165 ; base exp yield -INCBIN "pic/ymon/hypno.pic",0,1 ; 77, sprite dimensions -dw HypnoPicFront -dw HypnoPicBack -; attacks known at lvl 0 -db POUND -db HYPNOSIS -db DISABLE -db CONFUSION -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,15 - tmlearn 17,18,19,20 - tmlearn 29,30,31,32 - tmlearn 33,34,35,40 - tmlearn 42,44,45,46 - tmlearn 49,50,55 -db 0 ; padding diff --git a/data/baseStats/ivysaur.asm b/data/baseStats/ivysaur.asm deleted file mode 100644 index 38d5ce6a8..000000000 --- a/data/baseStats/ivysaur.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_IVYSAUR ; pokedex id -db 60 ; base hp -db 62 ; base attack -db 63 ; base defense -db 60 ; base speed -db 80 ; base special -db GRASS ; species type 1 -db POISON ; species type 2 -db 45 ; catch rate -db 141 ; base exp yield -INCBIN "pic/ymon/ivysaur.pic",0,1 ; 66, sprite dimensions -dw IvysaurPicFront -dw IvysaurPicBack -; attacks known at lvl 0 -db TACKLE -db GROWL -db LEECH_SEED -db 0 -db 3 ; growth rate -; learnset - tmlearn 3,6,8 - tmlearn 9,10 - tmlearn 20,21,22 - tmlearn 31,32 - tmlearn 33,34 - tmlearn 44 - tmlearn 50,51 -db 0 ; padding diff --git a/data/baseStats/jigglypuff.asm b/data/baseStats/jigglypuff.asm deleted file mode 100644 index bb8a1626a..000000000 --- a/data/baseStats/jigglypuff.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_JIGGLYPUFF ; pokedex id -db 115 ; base hp -db 45 ; base attack -db 20 ; base defense -db 20 ; base speed -db 25 ; base special -db NORMAL ; species type 1 -db NORMAL ; species type 2 -db 170 ; catch rate -db 76 ; base exp yield -INCBIN "pic/ymon/jigglypuff.pic",0,1 ; 55, sprite dimensions -dw JigglypuffPicFront -dw JigglypuffPicBack -; attacks known at lvl 0 -db SING -db 0 -db 0 -db 0 -db 4 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14 - tmlearn 17,18,19,20,22,24 - tmlearn 25,29,30,31,32 - tmlearn 33,34,38,40 - tmlearn 44,45,46 - tmlearn 49,50,54,55 -db 0 ; padding diff --git a/data/baseStats/jolteon.asm b/data/baseStats/jolteon.asm deleted file mode 100644 index dd1e3c5aa..000000000 --- a/data/baseStats/jolteon.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_JOLTEON ; pokedex id -db 65 ; base hp -db 65 ; base attack -db 60 ; base defense -db 130 ; base speed -db 110 ; base special -db ELECTRIC ; species type 1 -db ELECTRIC ; species type 2 -db 45 ; catch rate -db 197 ; base exp yield -INCBIN "pic/ymon/jolteon.pic",0,1 ; 66, sprite dimensions -dw JolteonPicFront -dw JolteonPicBack -; attacks known at lvl 0 -db TACKLE -db TAIL_WHIP -db QUICK_ATTACK -db THUNDERSHOCK -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,15 - tmlearn 20,24 - tmlearn 25,31,32 - tmlearn 33,34,39,40 - tmlearn 44,45 - tmlearn 50,55 -db 0 ; padding diff --git a/data/baseStats/jynx.asm b/data/baseStats/jynx.asm deleted file mode 100644 index 72d281791..000000000 --- a/data/baseStats/jynx.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_JYNX ; pokedex id -db 65 ; base hp -db 50 ; base attack -db 35 ; base defense -db 95 ; base speed -db 95 ; base special -db ICE ; species type 1 -db PSYCHIC ; species type 2 -db 45 ; catch rate -db 137 ; base exp yield -INCBIN "pic/ymon/jynx.pic",0,1 ; 66, sprite dimensions -dw JynxPicFront -dw JynxPicBack -; attacks known at lvl 0 -db POUND -db LOVELY_KISS -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 17,18,19,20 - tmlearn 29,30,31,32 - tmlearn 33,34,35,40 - tmlearn 44,46 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/kabuto.asm b/data/baseStats/kabuto.asm deleted file mode 100644 index dce77f2b6..000000000 --- a/data/baseStats/kabuto.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_KABUTO ; pokedex id -db 30 ; base hp -db 80 ; base attack -db 90 ; base defense -db 55 ; base speed -db 45 ; base special -db ROCK ; species type 1 -db WATER ; species type 2 -db 45 ; catch rate -db 119 ; base exp yield -INCBIN "pic/ymon/kabuto.pic",0,1 ; 55, sprite dimensions -dw KabutoPicFront -dw KabutoPicBack -; attacks known at lvl 0 -db SCRATCH -db HARDEN -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,11,12,13,14 - tmlearn 20 - tmlearn 31,32 - tmlearn 33,34 - tmlearn 44 - tmlearn 50,53 -db 0 ; padding diff --git a/data/baseStats/kabutops.asm b/data/baseStats/kabutops.asm deleted file mode 100644 index ef1650793..000000000 --- a/data/baseStats/kabutops.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_KABUTOPS ; pokedex id -db 60 ; base hp -db 115 ; base attack -db 105 ; base defense -db 80 ; base speed -db 70 ; base special -db ROCK ; species type 1 -db WATER ; species type 2 -db 45 ; catch rate -db 201 ; base exp yield -INCBIN "pic/ymon/kabutops.pic",0,1 ; 66, sprite dimensions -dw KabutopsPicFront -dw KabutopsPicBack -; attacks known at lvl 0 -db SCRATCH -db HARDEN -db ABSORB -db 0 -db 0 ; growth rate -; learnset - tmlearn 2,3,5,6,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 17,19,20 - tmlearn 31,32 - tmlearn 33,34,40 - tmlearn 44 - tmlearn 50,51,53 -db 0 ; padding diff --git a/data/baseStats/kadabra.asm b/data/baseStats/kadabra.asm deleted file mode 100644 index 37f9ded4f..000000000 --- a/data/baseStats/kadabra.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_KADABRA ; pokedex id -db 40 ; base hp -db 35 ; base attack -db 30 ; base defense -db 105 ; base speed -db 120 ; base special -db PSYCHIC ; species type 1 -db PSYCHIC ; species type 2 -db 100 ; catch rate -db 145 ; base exp yield -INCBIN "pic/ymon/kadabra.pic",0,1 ; 66, sprite dimensions -dw KadabraPicFront -dw KadabraPicBack -; attacks known at lvl 0 -db TELEPORT -db KINESIS -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10 - tmlearn 17,18,19,20 - tmlearn 28,29,30,31,32 - tmlearn 33,34,35,40 - tmlearn 44,45,46 - tmlearn 49,50,55 -db 0 ; padding diff --git a/data/baseStats/kakuna.asm b/data/baseStats/kakuna.asm deleted file mode 100644 index ea59d67de..000000000 --- a/data/baseStats/kakuna.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_KAKUNA ; pokedex id -db 45 ; base hp -db 25 ; base attack -db 50 ; base defense -db 35 ; base speed -db 25 ; base special -db BUG ; species type 1 -db POISON ; species type 2 -db 120 ; catch rate -db 71 ; base exp yield -INCBIN "pic/ymon/kakuna.pic",0,1 ; 55, sprite dimensions -dw KakunaPicFront -dw KakunaPicBack -; attacks known at lvl 0 -db HARDEN -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 -db 0 ; padding diff --git a/data/baseStats/kangaskhan.asm b/data/baseStats/kangaskhan.asm deleted file mode 100644 index bca753e24..000000000 --- a/data/baseStats/kangaskhan.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_KANGASKHAN ; pokedex id -db 105 ; base hp -db 95 ; base attack -db 80 ; base defense -db 90 ; base speed -db 40 ; base special -db NORMAL ; species type 1 -db NORMAL ; species type 2 -db 45 ; catch rate -db 175 ; base exp yield -INCBIN "pic/ymon/kangaskhan.pic",0,1 ; 77, sprite dimensions -dw KangaskhanPicFront -dw KangaskhanPicBack -; attacks known at lvl 0 -db COMET_PUNCH -db RAGE -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 17,18,19,20,24 - tmlearn 25,26,27,31,32 - tmlearn 34,38,40 - tmlearn 44,48 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/kingler.asm b/data/baseStats/kingler.asm deleted file mode 100644 index d4030bb81..000000000 --- a/data/baseStats/kingler.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_KINGLER ; pokedex id -db 55 ; base hp -db 130 ; base attack -db 115 ; base defense -db 75 ; base speed -db 50 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 60 ; catch rate -db 206 ; base exp yield -INCBIN "pic/ymon/kingler.pic",0,1 ; 77, sprite dimensions -dw KinglerPicFront -dw KinglerPicBack -; attacks known at lvl 0 -db BUBBLE -db LEER -db VICEGRIP -db 0 -db 0 ; growth rate -; learnset - tmlearn 3,6,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 20 - tmlearn 31,32 - tmlearn 34 - tmlearn 44 - tmlearn 50,51,53,54 -db 0 ; padding diff --git a/data/baseStats/koffing.asm b/data/baseStats/koffing.asm deleted file mode 100644 index a6034ea67..000000000 --- a/data/baseStats/koffing.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_KOFFING ; pokedex id -db 40 ; base hp -db 65 ; base attack -db 95 ; base defense -db 35 ; base speed -db 60 ; base special -db POISON ; species type 1 -db POISON ; species type 2 -db 190 ; catch rate -db 114 ; base exp yield -INCBIN "pic/ymon/koffing.pic",0,1 ; 66, sprite dimensions -dw KoffingPicFront -dw KoffingPicBack -; attacks known at lvl 0 -db TACKLE -db SMOG -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6 - tmlearn 0 - tmlearn 20,24 - tmlearn 25,31,32 - tmlearn 34,36,38 - tmlearn 44,47 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/krabby.asm b/data/baseStats/krabby.asm deleted file mode 100644 index b0b6ce66e..000000000 --- a/data/baseStats/krabby.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_KRABBY ; pokedex id -db 30 ; base hp -db 105 ; base attack -db 90 ; base defense -db 50 ; base speed -db 25 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 225 ; catch rate -db 115 ; base exp yield -INCBIN "pic/ymon/krabby.pic",0,1 ; 55, sprite dimensions -dw KrabbyPicFront -dw KrabbyPicBack -; attacks known at lvl 0 -db BUBBLE -db LEER -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 3,6,8 - tmlearn 9,10,11,12,13,14 - tmlearn 20 - tmlearn 31,32 - tmlearn 34 - tmlearn 44 - tmlearn 50,51,53,54 -db 0 ; padding diff --git a/data/baseStats/lapras.asm b/data/baseStats/lapras.asm deleted file mode 100644 index 83df62787..000000000 --- a/data/baseStats/lapras.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_LAPRAS ; pokedex id -db 130 ; base hp -db 85 ; base attack -db 80 ; base defense -db 60 ; base speed -db 95 ; base special -db WATER ; species type 1 -db ICE ; species type 2 -db 45 ; catch rate -db 219 ; base exp yield -INCBIN "pic/ymon/lapras.pic",0,1 ; 77, sprite dimensions -dw LaprasPicFront -dw LaprasPicBack -; attacks known at lvl 0 -db WATER_GUN -db GROWL -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 6,7,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 20,22,23,24 - tmlearn 25,29,31,32 - tmlearn 33,34,40 - tmlearn 44,46 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/lickitung.asm b/data/baseStats/lickitung.asm deleted file mode 100644 index 5db3fa6ef..000000000 --- a/data/baseStats/lickitung.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_LICKITUNG ; pokedex id -db 90 ; base hp -db 55 ; base attack -db 75 ; base defense -db 30 ; base speed -db 60 ; base special -db NORMAL ; species type 1 -db NORMAL ; species type 2 -db 45 ; catch rate -db 127 ; base exp yield -INCBIN "pic/ymon/lickitung.pic",0,1 ; 77, sprite dimensions -dw LickitungPicFront -dw LickitungPicBack -; attacks known at lvl 0 -db WRAP -db SUPERSONIC -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,3,5,6,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 17,18,19,20,24 - tmlearn 25,26,27,31,32 - tmlearn 34,38,40 - tmlearn 44 - tmlearn 50,51,53,54 -db 0 ; padding diff --git a/data/baseStats/machamp.asm b/data/baseStats/machamp.asm deleted file mode 100644 index dec82c743..000000000 --- a/data/baseStats/machamp.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_MACHAMP ; pokedex id -db 90 ; base hp -db 130 ; base attack -db 80 ; base defense -db 55 ; base speed -db 65 ; base special -db FIGHTING ; species type 1 -db FIGHTING ; species type 2 -db 45 ; catch rate -db 193 ; base exp yield -INCBIN "pic/ymon/machamp.pic",0,1 ; 77, sprite dimensions -dw MachampPicFront -dw MachampPicBack -; attacks known at lvl 0 -db KARATE_CHOP -db LOW_KICK -db LEER -db 0 -db 3 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,15 - tmlearn 17,18,19,20 - tmlearn 26,27,28,31,32 - tmlearn 34,35,38,40 - tmlearn 44,48 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/machoke.asm b/data/baseStats/machoke.asm deleted file mode 100644 index eee41d0c9..000000000 --- a/data/baseStats/machoke.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_MACHOKE ; pokedex id -db 80 ; base hp -db 100 ; base attack -db 70 ; base defense -db 45 ; base speed -db 50 ; base special -db FIGHTING ; species type 1 -db FIGHTING ; species type 2 -db 90 ; catch rate -db 146 ; base exp yield -INCBIN "pic/ymon/machoke.pic",0,1 ; 77, sprite dimensions -dw MachokePicFront -dw MachokePicBack -; attacks known at lvl 0 -db KARATE_CHOP -db LOW_KICK -db LEER -db 0 -db 3 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10 - tmlearn 17,18,19,20 - tmlearn 26,27,28,31,32 - tmlearn 34,35,38,40 - tmlearn 44,48 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/machop.asm b/data/baseStats/machop.asm deleted file mode 100644 index 91250bfb6..000000000 --- a/data/baseStats/machop.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_MACHOP ; pokedex id -db 70 ; base hp -db 80 ; base attack -db 50 ; base defense -db 35 ; base speed -db 35 ; base special -db FIGHTING ; species type 1 -db FIGHTING ; species type 2 -db 180 ; catch rate -db 88 ; base exp yield -INCBIN "pic/ymon/machop.pic",0,1 ; 55, sprite dimensions -dw MachopPicFront -dw MachopPicBack -; attacks known at lvl 0 -db KARATE_CHOP -db 0 -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10 - tmlearn 17,18,19,20 - tmlearn 26,27,28,31,32 - tmlearn 34,35,38,40 - tmlearn 44,48 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/magikarp.asm b/data/baseStats/magikarp.asm deleted file mode 100644 index 941f8cd99..000000000 --- a/data/baseStats/magikarp.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_MAGIKARP ; pokedex id -db 20 ; base hp -db 10 ; base attack -db 55 ; base defense -db 80 ; base speed -db 20 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 255 ; catch rate -db 20 ; base exp yield -INCBIN "pic/ymon/magikarp.pic",0,1 ; 66, sprite dimensions -dw MagikarpPicFront -dw MagikarpPicBack -; attacks known at lvl 0 -db SPLASH -db 0 -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 -db 0 ; padding diff --git a/data/baseStats/magmar.asm b/data/baseStats/magmar.asm deleted file mode 100644 index 6d503611a..000000000 --- a/data/baseStats/magmar.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_MAGMAR ; pokedex id -db 65 ; base hp -db 95 ; base attack -db 57 ; base defense -db 93 ; base speed -db 85 ; base special -db FIRE ; species type 1 -db FIRE ; species type 2 -db 45 ; catch rate -db 167 ; base exp yield -INCBIN "pic/ymon/magmar.pic",0,1 ; 66, sprite dimensions -dw MagmarPicFront -dw MagmarPicBack -; attacks known at lvl 0 -db EMBER -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,15 - tmlearn 17,18,19,20 - tmlearn 29,30,31,32 - tmlearn 34,35,38,40 - tmlearn 44,46 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/magnemite.asm b/data/baseStats/magnemite.asm deleted file mode 100644 index a328f2ef7..000000000 --- a/data/baseStats/magnemite.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_MAGNEMITE ; pokedex id -db 25 ; base hp -db 35 ; base attack -db 70 ; base defense -db 45 ; base speed -db 95 ; base special -db ELECTRIC ; species type 1 -db ELECTRIC ; species type 2 -db 190 ; catch rate -db 89 ; base exp yield -INCBIN "pic/ymon/magnemite.pic",0,1 ; 55, sprite dimensions -dw MagnemitePicFront -dw MagnemitePicBack -; attacks known at lvl 0 -db TACKLE -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6 - tmlearn 9,10 - tmlearn 20,24 - tmlearn 25,30,31,32 - tmlearn 33,34,39 - tmlearn 44,45 - tmlearn 50,55 -db 0 ; padding diff --git a/data/baseStats/magneton.asm b/data/baseStats/magneton.asm deleted file mode 100644 index 9cc52ec37..000000000 --- a/data/baseStats/magneton.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_MAGNETON ; pokedex id -db 50 ; base hp -db 60 ; base attack -db 95 ; base defense -db 70 ; base speed -db 120 ; base special -db ELECTRIC ; species type 1 -db ELECTRIC ; species type 2 -db 60 ; catch rate -db 161 ; base exp yield -INCBIN "pic/ymon/magneton.pic",0,1 ; 66, sprite dimensions -dw MagnetonPicFront -dw MagnetonPicBack -; attacks known at lvl 0 -db TACKLE -db SONICBOOM -db THUNDERSHOCK -db 0 -db 0 ; growth rate -; learnset - tmlearn 6 - tmlearn 9,10,15 - tmlearn 20,24 - tmlearn 25,30,31,32 - tmlearn 33,34,39 - tmlearn 44,45 - tmlearn 50,55 -db 0 ; padding diff --git a/data/baseStats/mankey.asm b/data/baseStats/mankey.asm deleted file mode 100644 index b05fd16d4..000000000 --- a/data/baseStats/mankey.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_MANKEY ; pokedex id -db 40 ; base hp -db 80 ; base attack -db 35 ; base defense -db 70 ; base speed -db 35 ; base special -db FIGHTING ; species type 1 -db FIGHTING ; species type 2 -db 190 ; catch rate -db 74 ; base exp yield -INCBIN "pic/ymon/mankey.pic",0,1 ; 55, sprite dimensions -dw MankeyPicFront -dw MankeyPicBack -; attacks known at lvl 0 -db SCRATCH -db LEER -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,16 - tmlearn 17,18,19,20,24 - tmlearn 25,28,31,32 - tmlearn 34,35,39,40 - tmlearn 44,48 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/marowak.asm b/data/baseStats/marowak.asm deleted file mode 100644 index bc767fafc..000000000 --- a/data/baseStats/marowak.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_MAROWAK ; pokedex id -db 60 ; base hp -db 80 ; base attack -db 110 ; base defense -db 45 ; base speed -db 50 ; base special -db GROUND ; species type 1 -db GROUND ; species type 2 -db 75 ; catch rate -db 124 ; base exp yield -INCBIN "pic/ymon/marowak.pic",0,1 ; 66, sprite dimensions -dw MarowakPicFront -dw MarowakPicBack -; attacks known at lvl 0 -db BONE_CLUB -db TAIL_WHIP -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 17,18,19,20 - tmlearn 26,27,28,31,32 - tmlearn 34,38,40 - tmlearn 44 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/meowth.asm b/data/baseStats/meowth.asm deleted file mode 100644 index ce211d22f..000000000 --- a/data/baseStats/meowth.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_MEOWTH ; pokedex id -db 40 ; base hp -db 45 ; base attack -db 35 ; base defense -db 90 ; base speed -db 40 ; base special -db NORMAL ; species type 1 -db NORMAL ; species type 2 -db 255 ; catch rate -db 69 ; base exp yield -INCBIN "pic/ymon/meowth.pic",0,1 ; 55, sprite dimensions -dw MeowthPicFront -dw MeowthPicBack -; attacks known at lvl 0 -db SCRATCH -db GROWL -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,11,12,16 - tmlearn 20,24 - tmlearn 25,31,32 - tmlearn 34,39,40 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/metapod.asm b/data/baseStats/metapod.asm deleted file mode 100644 index b29a323df..000000000 --- a/data/baseStats/metapod.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_METAPOD ; pokedex id -db 50 ; base hp -db 20 ; base attack -db 55 ; base defense -db 30 ; base speed -db 25 ; base special -db BUG ; species type 1 -db BUG ; species type 2 -db 120 ; catch rate -db 72 ; base exp yield -INCBIN "pic/ymon/metapod.pic",0,1 ; 55, sprite dimensions -dw MetapodPicFront -dw MetapodPicBack -; attacks known at lvl 0 -db HARDEN -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 -db 0 ; padding diff --git a/data/baseStats/mew.asm b/data/baseStats/mew.asm deleted file mode 100644 index 7381bf6f0..000000000 --- a/data/baseStats/mew.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_MEW ; pokedex id -db 100 ; base hp -db 100 ; base attack -db 100 ; base defense -db 100 ; base speed -db 100 ; base special -db PSYCHIC ; species type 1 -db PSYCHIC ; species type 2 -db 45 ; catch rate -db 64 ; base exp yield -INCBIN "pic/ymon/mew.pic",0,1 ; 55, sprite dimensions -dw MewPicFront -dw MewPicBack -; attacks known at lvl 0 -db POUND -db 0 -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 1,2,3,4,5,6,7,8 - tmlearn 9,10,11,12,13,14,15,16 - tmlearn 17,18,19,20,21,22,23,24 - tmlearn 25,26,27,28,29,30,31,32 - tmlearn 33,34,35,36,37,38,39,40 - tmlearn 41,42,43,44,45,46,47,48 - tmlearn 49,50,51,52,53,54,55 -db 0 ; usually spacing diff --git a/data/baseStats/mewtwo.asm b/data/baseStats/mewtwo.asm deleted file mode 100644 index d62393847..000000000 --- a/data/baseStats/mewtwo.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_MEWTWO ; pokedex id -db 106 ; base hp -db 110 ; base attack -db 90 ; base defense -db 130 ; base speed -db 154 ; base special -db PSYCHIC ; species type 1 -db PSYCHIC ; species type 2 -db 3 ; catch rate -db 220 ; base exp yield -INCBIN "pic/ymon/mewtwo.pic",0,1 ; 77, sprite dimensions -dw MewtwoPicFront -dw MewtwoPicBack -; attacks known at lvl 0 -db CONFUSION -db DISABLE -db SWIFT -db PSYCHIC_M -db 5 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 17,18,19,20,22,24 - tmlearn 25,29,30,31,32 - tmlearn 33,34,35,36,38,40 - tmlearn 44,45,46 - tmlearn 49,50,54,55 -db 0 ; padding diff --git a/data/baseStats/moltres.asm b/data/baseStats/moltres.asm deleted file mode 100644 index 5588e0dfa..000000000 --- a/data/baseStats/moltres.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_MOLTRES ; pokedex id -db 90 ; base hp -db 100 ; base attack -db 90 ; base defense -db 90 ; base speed -db 125 ; base special -db FIRE ; species type 1 -db FLYING ; species type 2 -db 3 ; catch rate -db 217 ; base exp yield -INCBIN "pic/ymon/moltres.pic",0,1 ; 77, sprite dimensions -dw MoltresPicFront -dw MoltresPicBack -; attacks known at lvl 0 -db PECK -db FIRE_SPIN -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 2,4,6 - tmlearn 9,10,15 - tmlearn 20 - tmlearn 31,32 - tmlearn 33,34,38,39 - tmlearn 43,44 - tmlearn 50,52 -db 0 ; padding diff --git a/data/baseStats/mrmime.asm b/data/baseStats/mrmime.asm deleted file mode 100644 index 87b110b74..000000000 --- a/data/baseStats/mrmime.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_MR_MIME ; pokedex id -db 40 ; base hp -db 45 ; base attack -db 65 ; base defense -db 90 ; base speed -db 100 ; base special -db PSYCHIC ; species type 1 -db PSYCHIC ; species type 2 -db 45 ; catch rate -db 136 ; base exp yield -INCBIN "pic/ymon/mr.mime.pic",0,1 ; 66, sprite dimensions -dw MrMimePicFront -dw MrMimePicBack -; attacks known at lvl 0 -db CONFUSION -db BARRIER -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,15 - tmlearn 17,18,19,20,22,24 - tmlearn 25,29,30,31,32 - tmlearn 33,34,35,40 - tmlearn 44,45,46 - tmlearn 50,55 -db 0 ; padding diff --git a/data/baseStats/muk.asm b/data/baseStats/muk.asm deleted file mode 100644 index 4e67df43e..000000000 --- a/data/baseStats/muk.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_MUK ; pokedex id -db 105 ; base hp -db 105 ; base attack -db 75 ; base defense -db 50 ; base speed -db 65 ; base special -db POISON ; species type 1 -db POISON ; species type 2 -db 75 ; catch rate -db 157 ; base exp yield -INCBIN "pic/ymon/muk.pic",0,1 ; 77, sprite dimensions -dw MukPicFront -dw MukPicBack -; attacks known at lvl 0 -db POUND -db DISABLE -db POISON_GAS -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 15 - tmlearn 20,21,24 - tmlearn 25,31,32 - tmlearn 34,36,38 - tmlearn 44,47 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/nidoking.asm b/data/baseStats/nidoking.asm deleted file mode 100644 index c9efa6295..000000000 --- a/data/baseStats/nidoking.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_NIDOKING ; pokedex id -db 81 ; base hp -db 92 ; base attack -db 77 ; base defense -db 85 ; base speed -db 75 ; base special -db POISON ; species type 1 -db GROUND ; species type 2 -db 45 ; catch rate -db 195 ; base exp yield -INCBIN "pic/ymon/nidoking.pic",0,1 ; 77, sprite dimensions -dw NidokingPicFront -dw NidokingPicBack -; attacks known at lvl 0 -db TACKLE -db HORN_ATTACK -db POISON_STING -db THRASH -db 3 ; growth rate -; learnset - tmlearn 1,5,6,7,8 - tmlearn 9,10,11,12,13,14,15,16 - tmlearn 17,18,19,20,24 - tmlearn 25,26,27,31,32 - tmlearn 33,34,38,40 - tmlearn 44,48 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/nidoqueen.asm b/data/baseStats/nidoqueen.asm deleted file mode 100644 index f37cc0af8..000000000 --- a/data/baseStats/nidoqueen.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_NIDOQUEEN ; pokedex id -db 90 ; base hp -db 82 ; base attack -db 87 ; base defense -db 76 ; base speed -db 75 ; base special -db POISON ; species type 1 -db GROUND ; species type 2 -db 45 ; catch rate -db 194 ; base exp yield -INCBIN "pic/ymon/nidoqueen.pic",0,1 ; 77, sprite dimensions -dw NidoqueenPicFront -dw NidoqueenPicBack -; attacks known at lvl 0 -db TACKLE -db SCRATCH -db TAIL_WHIP -db BODY_SLAM -db 3 ; growth rate -; learnset - tmlearn 1,5,6,7,8 - tmlearn 9,10,11,12,13,14,15,16 - tmlearn 17,18,19,20,24 - tmlearn 25,26,27,31,32 - tmlearn 33,34,38,40 - tmlearn 44,48 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/nidoranf.asm b/data/baseStats/nidoranf.asm deleted file mode 100644 index 9694a027f..000000000 --- a/data/baseStats/nidoranf.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_NIDORAN_F ; pokedex id -db 55 ; base hp -db 47 ; base attack -db 52 ; base defense -db 41 ; base speed -db 40 ; base special -db POISON ; species type 1 -db POISON ; species type 2 -db 235 ; catch rate -db 59 ; base exp yield -INCBIN "pic/ymon/nidoranf.pic",0,1 ; 55, sprite dimensions -dw NidoranFPicFront -dw NidoranFPicBack -; attacks known at lvl 0 -db GROWL -db TACKLE -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,14 - tmlearn 20,24 - tmlearn 25,31,32 - tmlearn 33,34,40 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/nidoranm.asm b/data/baseStats/nidoranm.asm deleted file mode 100644 index 0d04948e1..000000000 --- a/data/baseStats/nidoranm.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_NIDORAN_M ; pokedex id -db 46 ; base hp -db 57 ; base attack -db 40 ; base defense -db 50 ; base speed -db 40 ; base special -db POISON ; species type 1 -db POISON ; species type 2 -db 235 ; catch rate -db 60 ; base exp yield -INCBIN "pic/ymon/nidoranm.pic",0,1 ; 55, sprite dimensions -dw NidoranMPicFront -dw NidoranMPicBack -; attacks known at lvl 0 -db LEER -db TACKLE -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 6,7,8 - tmlearn 9,10,14 - tmlearn 20,24 - tmlearn 25,31,32 - tmlearn 33,34,40 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/nidorina.asm b/data/baseStats/nidorina.asm deleted file mode 100644 index e8375d97b..000000000 --- a/data/baseStats/nidorina.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_NIDORINA ; pokedex id -db 70 ; base hp -db 62 ; base attack -db 67 ; base defense -db 56 ; base speed -db 55 ; base special -db POISON ; species type 1 -db POISON ; species type 2 -db 120 ; catch rate -db 117 ; base exp yield -INCBIN "pic/ymon/nidorina.pic",0,1 ; 66, sprite dimensions -dw NidorinaPicFront -dw NidorinaPicBack -; attacks known at lvl 0 -db GROWL -db TACKLE -db SCRATCH -db 0 -db 3 ; growth rate -; learnset - tmlearn 6,7,8 - tmlearn 9,10,11,12,13,14 - tmlearn 20,24 - tmlearn 25,31,32 - tmlearn 33,34,40 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/nidorino.asm b/data/baseStats/nidorino.asm deleted file mode 100644 index ca28b121d..000000000 --- a/data/baseStats/nidorino.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_NIDORINO ; pokedex id -db 61 ; base hp -db 72 ; base attack -db 57 ; base defense -db 65 ; base speed -db 55 ; base special -db POISON ; species type 1 -db POISON ; species type 2 -db 120 ; catch rate -db 118 ; base exp yield -INCBIN "pic/ymon/nidorino.pic",0,1 ; 66, sprite dimensions -dw NidorinoPicFront -dw NidorinoPicBack -; attacks known at lvl 0 -db LEER -db TACKLE -db HORN_ATTACK -db 0 -db 3 ; growth rate -; learnset - tmlearn 6,7,8 - tmlearn 9,10,11,12,13,14 - tmlearn 20,24 - tmlearn 25,31,32 - tmlearn 33,34,40 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/ninetales.asm b/data/baseStats/ninetales.asm deleted file mode 100644 index 212f63220..000000000 --- a/data/baseStats/ninetales.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_NINETALES ; pokedex id -db 73 ; base hp -db 76 ; base attack -db 75 ; base defense -db 100 ; base speed -db 100 ; base special -db FIRE ; species type 1 -db FIRE ; species type 2 -db 75 ; catch rate -db 178 ; base exp yield -INCBIN "pic/ymon/ninetales.pic",0,1 ; 77, sprite dimensions -dw NinetalesPicFront -dw NinetalesPicBack -; attacks known at lvl 0 -db EMBER -db TAIL_WHIP -db QUICK_ATTACK -db ROAR -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,15 - tmlearn 20 - tmlearn 28,31,32 - tmlearn 33,34,38,39,40 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/oddish.asm b/data/baseStats/oddish.asm deleted file mode 100644 index aabc873bd..000000000 --- a/data/baseStats/oddish.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_ODDISH ; pokedex id -db 45 ; base hp -db 50 ; base attack -db 55 ; base defense -db 30 ; base speed -db 75 ; base special -db GRASS ; species type 1 -db POISON ; species type 2 -db 255 ; catch rate -db 78 ; base exp yield -INCBIN "pic/ymon/oddish.pic",0,1 ; 55, sprite dimensions -dw OddishPicFront -dw OddishPicBack -; attacks known at lvl 0 -db ABSORB -db 0 -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 3,6 - tmlearn 9,10 - tmlearn 20,21,22 - tmlearn 31,32 - tmlearn 33,34 - tmlearn 44 - tmlearn 50,51 -db 0 ; padding diff --git a/data/baseStats/omanyte.asm b/data/baseStats/omanyte.asm deleted file mode 100644 index 89a6b824b..000000000 --- a/data/baseStats/omanyte.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_OMANYTE ; pokedex id -db 35 ; base hp -db 40 ; base attack -db 100 ; base defense -db 35 ; base speed -db 90 ; base special -db ROCK ; species type 1 -db WATER ; species type 2 -db 45 ; catch rate -db 120 ; base exp yield -INCBIN "pic/ymon/omanyte.pic",0,1 ; 55, sprite dimensions -dw OmanytePicFront -dw OmanytePicBack -; attacks known at lvl 0 -db WATER_GUN -db WITHDRAW -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,11,12,13,14 - tmlearn 20 - tmlearn 31,32 - tmlearn 33,34 - tmlearn 44 - tmlearn 50,53 -db 0 ; padding diff --git a/data/baseStats/omastar.asm b/data/baseStats/omastar.asm deleted file mode 100644 index 2066c8c2a..000000000 --- a/data/baseStats/omastar.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_OMASTAR ; pokedex id -db 70 ; base hp -db 60 ; base attack -db 125 ; base defense -db 55 ; base speed -db 115 ; base special -db ROCK ; species type 1 -db WATER ; species type 2 -db 45 ; catch rate -db 199 ; base exp yield -INCBIN "pic/ymon/omastar.pic",0,1 ; 66, sprite dimensions -dw OmastarPicFront -dw OmastarPicBack -; attacks known at lvl 0 -db WATER_GUN -db WITHDRAW -db HORN_ATTACK -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,7,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 17,19,20 - tmlearn 31,32 - tmlearn 33,34,40 - tmlearn 44 - tmlearn 50,53 -db 0 ; padding diff --git a/data/baseStats/onix.asm b/data/baseStats/onix.asm deleted file mode 100644 index 1e2f6ed5d..000000000 --- a/data/baseStats/onix.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_ONIX ; pokedex id -db 35 ; base hp -db 45 ; base attack -db 160 ; base defense -db 70 ; base speed -db 30 ; base special -db ROCK ; species type 1 -db GROUND ; species type 2 -db 45 ; catch rate -db 108 ; base exp yield -INCBIN "pic/ymon/onix.pic",0,1 ; 77, sprite dimensions -dw OnixPicFront -dw OnixPicBack -; attacks known at lvl 0 -db TACKLE -db SCREECH -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10 - tmlearn 20 - tmlearn 26,27,28,31,32 - tmlearn 34,36,40 - tmlearn 44,47,48 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/paras.asm b/data/baseStats/paras.asm deleted file mode 100644 index 273ec7a3b..000000000 --- a/data/baseStats/paras.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_PARAS ; pokedex id -db 35 ; base hp -db 70 ; base attack -db 55 ; base defense -db 25 ; base speed -db 55 ; base special -db BUG ; species type 1 -db GRASS ; species type 2 -db 190 ; catch rate -db 70 ; base exp yield -INCBIN "pic/ymon/paras.pic",0,1 ; 55, sprite dimensions -dw ParasPicFront -dw ParasPicBack -; attacks known at lvl 0 -db SCRATCH -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 3,6,8 - tmlearn 9,10 - tmlearn 20,21,22 - tmlearn 28,31,32 - tmlearn 33,34,40 - tmlearn 44 - tmlearn 50,51 -db 0 ; padding diff --git a/data/baseStats/parasect.asm b/data/baseStats/parasect.asm deleted file mode 100644 index ed5c7015e..000000000 --- a/data/baseStats/parasect.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_PARASECT ; pokedex id -db 60 ; base hp -db 95 ; base attack -db 80 ; base defense -db 30 ; base speed -db 80 ; base special -db BUG ; species type 1 -db GRASS ; species type 2 -db 75 ; catch rate -db 128 ; base exp yield -INCBIN "pic/ymon/parasect.pic",0,1 ; 77, sprite dimensions -dw ParasectPicFront -dw ParasectPicBack -; attacks known at lvl 0 -db SCRATCH -db STUN_SPORE -db LEECH_LIFE -db 0 -db 0 ; growth rate -; learnset - tmlearn 3,6,8 - tmlearn 9,10,15 - tmlearn 20,21,22 - tmlearn 28,31,32 - tmlearn 33,34,40 - tmlearn 44 - tmlearn 50,51 -db 0 ; padding diff --git a/data/baseStats/persian.asm b/data/baseStats/persian.asm deleted file mode 100644 index 5ace4f351..000000000 --- a/data/baseStats/persian.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_PERSIAN ; pokedex id -db 65 ; base hp -db 70 ; base attack -db 60 ; base defense -db 115 ; base speed -db 65 ; base special -db NORMAL ; species type 1 -db NORMAL ; species type 2 -db 90 ; catch rate -db 148 ; base exp yield -INCBIN "pic/ymon/persian.pic",0,1 ; 77, sprite dimensions -dw PersianPicFront -dw PersianPicBack -; attacks known at lvl 0 -db SCRATCH -db GROWL -db BITE -db SCREECH -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,11,12,15,16 - tmlearn 20,24 - tmlearn 25,31,32 - tmlearn 34,39,40 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/pidgeot.asm b/data/baseStats/pidgeot.asm deleted file mode 100644 index e0240fb1f..000000000 --- a/data/baseStats/pidgeot.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_PIDGEOT ; pokedex id -db 83 ; base hp -db 80 ; base attack -db 75 ; base defense -db 91 ; base speed -db 70 ; base special -db NORMAL ; species type 1 -db FLYING ; species type 2 -db 45 ; catch rate -db 172 ; base exp yield -INCBIN "pic/ymon/pidgeot.pic",0,1 ; 77, sprite dimensions -dw PidgeotPicFront -dw PidgeotPicBack -; attacks known at lvl 0 -db GUST -db SAND_ATTACK -db QUICK_ATTACK -db 0 -db 3 ; growth rate -; learnset - tmlearn 2,4,6 - tmlearn 9,10,15 - tmlearn 20 - tmlearn 31,32 - tmlearn 33,34,39 - tmlearn 43,44 - tmlearn 50,52 -db 0 ; padding diff --git a/data/baseStats/pidgeotto.asm b/data/baseStats/pidgeotto.asm deleted file mode 100644 index 2930b5aee..000000000 --- a/data/baseStats/pidgeotto.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_PIDGEOTTO ; pokedex id -db 63 ; base hp -db 60 ; base attack -db 55 ; base defense -db 71 ; base speed -db 50 ; base special -db NORMAL ; species type 1 -db FLYING ; species type 2 -db 120 ; catch rate -db 113 ; base exp yield -INCBIN "pic/ymon/pidgeotto.pic",0,1 ; 66, sprite dimensions -dw PidgeottoPicFront -dw PidgeottoPicBack -; attacks known at lvl 0 -db GUST -db SAND_ATTACK -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 2,4,6 - tmlearn 9,10 - tmlearn 20 - tmlearn 31,32 - tmlearn 33,34,39 - tmlearn 43,44 - tmlearn 50,52 -db 0 ; padding diff --git a/data/baseStats/pidgey.asm b/data/baseStats/pidgey.asm deleted file mode 100644 index c110a32e2..000000000 --- a/data/baseStats/pidgey.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_PIDGEY ; pokedex id -db 40 ; base hp -db 45 ; base attack -db 40 ; base defense -db 56 ; base speed -db 35 ; base special -db NORMAL ; species type 1 -db FLYING ; species type 2 -db 255 ; catch rate -db 55 ; base exp yield -INCBIN "pic/ymon/pidgey.pic",0,1 ; 55, sprite dimensions -dw PidgeyPicFront -dw PidgeyPicBack -; attacks known at lvl 0 -db GUST -db 0 -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 2,4,6 - tmlearn 9,10 - tmlearn 20 - tmlearn 31,32 - tmlearn 33,34,39 - tmlearn 43,44 - tmlearn 50,52 -db 0 ; padding diff --git a/data/baseStats/pikachu.asm b/data/baseStats/pikachu.asm deleted file mode 100644 index 5e81a85fc..000000000 --- a/data/baseStats/pikachu.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_PIKACHU ; pokedex id -db 35 ; base hp -db 55 ; base attack -db 30 ; base defense -db 90 ; base speed -db 50 ; base special -db ELECTRIC ; species type 1 -db ELECTRIC ; species type 2 -db 190 ; catch rate -db 82 ; base exp yield -INCBIN "pic/ymon/pikachu.pic",0,1 ; 55, sprite dimensions -dw PikachuPicFront -dw PikachuPicBack -; attacks known at lvl 0 -db THUNDERSHOCK -db GROWL -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,16 - tmlearn 17,19,20,24 - tmlearn 25,31,32 - tmlearn 33,34,39,40 - tmlearn 44,45 - tmlearn 50,55 -db 0 ; padding diff --git a/data/baseStats/pinsir.asm b/data/baseStats/pinsir.asm deleted file mode 100644 index b79f01a3b..000000000 --- a/data/baseStats/pinsir.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_PINSIR ; pokedex id -db 65 ; base hp -db 125 ; base attack -db 100 ; base defense -db 85 ; base speed -db 55 ; base special -db BUG ; species type 1 -db BUG ; species type 2 -db 45 ; catch rate -db 200 ; base exp yield -INCBIN "pic/ymon/pinsir.pic",0,1 ; 77, sprite dimensions -dw PinsirPicFront -dw PinsirPicBack -; attacks known at lvl 0 -db VICEGRIP -db 0 -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 3,6,8 - tmlearn 9,10,15 - tmlearn 17,19,20 - tmlearn 31,32 - tmlearn 34 - tmlearn 44 - tmlearn 50,51,54 -db 0 ; padding diff --git a/data/baseStats/poliwag.asm b/data/baseStats/poliwag.asm deleted file mode 100644 index 9c89fc49f..000000000 --- a/data/baseStats/poliwag.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_POLIWAG ; pokedex id -db 40 ; base hp -db 50 ; base attack -db 40 ; base defense -db 90 ; base speed -db 40 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 255 ; catch rate -db 77 ; base exp yield -INCBIN "pic/ymon/poliwag.pic",0,1 ; 55, sprite dimensions -dw PoliwagPicFront -dw PoliwagPicBack -; attacks known at lvl 0 -db BUBBLE -db 0 -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,11,12,13,14 - tmlearn 20 - tmlearn 29,31,32 - tmlearn 34,40 - tmlearn 44,46 - tmlearn 50,53 -db 0 ; padding diff --git a/data/baseStats/poliwhirl.asm b/data/baseStats/poliwhirl.asm deleted file mode 100644 index c836e1946..000000000 --- a/data/baseStats/poliwhirl.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_POLIWHIRL ; pokedex id -db 65 ; base hp -db 65 ; base attack -db 65 ; base defense -db 90 ; base speed -db 50 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 120 ; catch rate -db 131 ; base exp yield -INCBIN "pic/ymon/poliwhirl.pic",0,1 ; 66, sprite dimensions -dw PoliwhirlPicFront -dw PoliwhirlPicBack -; attacks known at lvl 0 -db BUBBLE -db HYPNOSIS -db WATER_GUN -db 0 -db 3 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14 - tmlearn 17,18,19,20 - tmlearn 26,27,29,31,32 - tmlearn 34,35,40 - tmlearn 44,46 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/poliwrath.asm b/data/baseStats/poliwrath.asm deleted file mode 100644 index 5a1acd9f7..000000000 --- a/data/baseStats/poliwrath.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_POLIWRATH ; pokedex id -db 90 ; base hp -db 85 ; base attack -db 95 ; base defense -db 70 ; base speed -db 70 ; base special -db WATER ; species type 1 -db FIGHTING ; species type 2 -db 45 ; catch rate -db 185 ; base exp yield -INCBIN "pic/ymon/poliwrath.pic",0,1 ; 77, sprite dimensions -dw PoliwrathPicFront -dw PoliwrathPicBack -; attacks known at lvl 0 -db HYPNOSIS -db WATER_GUN -db DOUBLESLAP -db BODY_SLAM -db 3 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 17,18,19,20 - tmlearn 26,27,29,31,32 - tmlearn 34,35,40 - tmlearn 44,46 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/ponyta.asm b/data/baseStats/ponyta.asm deleted file mode 100644 index 3c7790758..000000000 --- a/data/baseStats/ponyta.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_PONYTA ; pokedex id -db 50 ; base hp -db 85 ; base attack -db 55 ; base defense -db 90 ; base speed -db 65 ; base special -db FIRE ; species type 1 -db FIRE ; species type 2 -db 190 ; catch rate -db 152 ; base exp yield -INCBIN "pic/ymon/ponyta.pic",0,1 ; 66, sprite dimensions -dw PonytaPicFront -dw PonytaPicBack -; attacks known at lvl 0 -db EMBER -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,7,8 - tmlearn 9,10 - tmlearn 20 - tmlearn 31,32 - tmlearn 33,34,38,39,40 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/porygon.asm b/data/baseStats/porygon.asm deleted file mode 100644 index 502bbc4ff..000000000 --- a/data/baseStats/porygon.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_PORYGON ; pokedex id -db 65 ; base hp -db 60 ; base attack -db 70 ; base defense -db 40 ; base speed -db 75 ; base special -db NORMAL ; species type 1 -db NORMAL ; species type 2 -db 45 ; catch rate -db 130 ; base exp yield -INCBIN "pic/ymon/porygon.pic",0,1 ; 66, sprite dimensions -dw PorygonPicFront -dw PorygonPicBack -; attacks known at lvl 0 -db TACKLE -db SHARPEN -db CONVERSION -db 0 -db 0 ; growth rate -; learnset - tmlearn 6 - tmlearn 9,10,13,14,15 - tmlearn 20,24 - tmlearn 25,29,30,31,32 - tmlearn 33,34,39,40 - tmlearn 44,45,46 - tmlearn 49,50,55 -db 0 ; padding diff --git a/data/baseStats/primeape.asm b/data/baseStats/primeape.asm deleted file mode 100644 index 3eeac4f39..000000000 --- a/data/baseStats/primeape.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_PRIMEAPE ; pokedex id -db 65 ; base hp -db 105 ; base attack -db 60 ; base defense -db 95 ; base speed -db 60 ; base special -db FIGHTING ; species type 1 -db FIGHTING ; species type 2 -db 75 ; catch rate -db 149 ; base exp yield -INCBIN "pic/ymon/primeape.pic",0,1 ; 77, sprite dimensions -dw PrimeapePicFront -dw PrimeapePicBack -; attacks known at lvl 0 -db SCRATCH -db LEER -db LOW_KICK -db KARATE_CHOP -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,15,16 - tmlearn 17,18,19,20,24 - tmlearn 25,28,31,32 - tmlearn 34,35,39,40 - tmlearn 44,48 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/psyduck.asm b/data/baseStats/psyduck.asm deleted file mode 100644 index e3ab72bbe..000000000 --- a/data/baseStats/psyduck.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_PSYDUCK ; pokedex id -db 50 ; base hp -db 52 ; base attack -db 48 ; base defense -db 55 ; base speed -db 50 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 190 ; catch rate -db 80 ; base exp yield -INCBIN "pic/ymon/psyduck.pic",0,1 ; 55, sprite dimensions -dw PsyduckPicFront -dw PsyduckPicBack -; attacks known at lvl 0 -db SCRATCH -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14,16 - tmlearn 17,18,19,20 - tmlearn 28,31,32 - tmlearn 34,39,40 - tmlearn 44 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/raichu.asm b/data/baseStats/raichu.asm deleted file mode 100644 index c63231b31..000000000 --- a/data/baseStats/raichu.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_RAICHU ; pokedex id -db 60 ; base hp -db 90 ; base attack -db 55 ; base defense -db 100 ; base speed -db 90 ; base special -db ELECTRIC ; species type 1 -db ELECTRIC ; species type 2 -db 75 ; catch rate -db 122 ; base exp yield -INCBIN "pic/ymon/raichu.pic",0,1 ; 77, sprite dimensions -dw RaichuPicFront -dw RaichuPicBack -; attacks known at lvl 0 -db THUNDERSHOCK -db GROWL -db THUNDER_WAVE -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,15,16 - tmlearn 17,19,20,24 - tmlearn 25,31,32 - tmlearn 33,34,39,40 - tmlearn 44,45 - tmlearn 50,55 -db 0 ; padding diff --git a/data/baseStats/rapidash.asm b/data/baseStats/rapidash.asm deleted file mode 100644 index 187817393..000000000 --- a/data/baseStats/rapidash.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_RAPIDASH ; pokedex id -db 65 ; base hp -db 100 ; base attack -db 70 ; base defense -db 105 ; base speed -db 80 ; base special -db FIRE ; species type 1 -db FIRE ; species type 2 -db 60 ; catch rate -db 192 ; base exp yield -INCBIN "pic/ymon/rapidash.pic",0,1 ; 77, sprite dimensions -dw RapidashPicFront -dw RapidashPicBack -; attacks known at lvl 0 -db EMBER -db TAIL_WHIP -db STOMP -db GROWL -db 0 ; growth rate -; learnset - tmlearn 6,7,8 - tmlearn 9,10,15 - tmlearn 20 - tmlearn 31,32 - tmlearn 33,34,38,39,40 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/raticate.asm b/data/baseStats/raticate.asm deleted file mode 100644 index 85aa044b5..000000000 --- a/data/baseStats/raticate.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_RATICATE ; pokedex id -db 55 ; base hp -db 81 ; base attack -db 60 ; base defense -db 97 ; base speed -db 50 ; base special -db NORMAL ; species type 1 -db NORMAL ; species type 2 -db 90 ; catch rate -db 116 ; base exp yield -INCBIN "pic/ymon/raticate.pic",0,1 ; 66, sprite dimensions -dw RaticatePicFront -dw RaticatePicBack -; attacks known at lvl 0 -db TACKLE -db TAIL_WHIP -db QUICK_ATTACK -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 20,24 - tmlearn 25,28,31,32 - tmlearn 34,39,40 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/rattata.asm b/data/baseStats/rattata.asm deleted file mode 100644 index 165dce14f..000000000 --- a/data/baseStats/rattata.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_RATTATA ; pokedex id -db 30 ; base hp -db 56 ; base attack -db 35 ; base defense -db 72 ; base speed -db 25 ; base special -db NORMAL ; species type 1 -db NORMAL ; species type 2 -db 255 ; catch rate -db 57 ; base exp yield -INCBIN "pic/ymon/rattata.pic",0,1 ; 55, sprite dimensions -dw RattataPicFront -dw RattataPicBack -; attacks known at lvl 0 -db TACKLE -db TAIL_WHIP -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,11,12,14 - tmlearn 20,24 - tmlearn 25,28,31,32 - tmlearn 34,39,40 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/rhydon.asm b/data/baseStats/rhydon.asm deleted file mode 100644 index b183c2827..000000000 --- a/data/baseStats/rhydon.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_RHYDON ; pokedex id -db 105 ; base hp -db 130 ; base attack -db 120 ; base defense -db 40 ; base speed -db 45 ; base special -db GROUND ; species type 1 -db ROCK ; species type 2 -db 60 ; catch rate -db 204 ; base exp yield -INCBIN "pic/ymon/rhydon.pic",0,1 ; 77, sprite dimensions -dw RhydonPicFront -dw RhydonPicBack -; attacks known at lvl 0 -db HORN_ATTACK -db STOMP -db TAIL_WHIP -db FURY_ATTACK -db 5 ; growth rate -; learnset - tmlearn 1,5,6,7,8 - tmlearn 9,10,11,12,13,14,15,16 - tmlearn 17,18,19,20,24 - tmlearn 25,26,27,28,31,32 - tmlearn 34,38,40 - tmlearn 44,48 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/rhyhorn.asm b/data/baseStats/rhyhorn.asm deleted file mode 100644 index 41a1e360b..000000000 --- a/data/baseStats/rhyhorn.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_RHYHORN ; pokedex id -db 80 ; base hp -db 85 ; base attack -db 95 ; base defense -db 25 ; base speed -db 30 ; base special -db GROUND ; species type 1 -db ROCK ; species type 2 -db 120 ; catch rate -db 135 ; base exp yield -INCBIN "pic/ymon/rhyhorn.pic",0,1 ; 77, sprite dimensions -dw RhyhornPicFront -dw RhyhornPicBack -; attacks known at lvl 0 -db HORN_ATTACK -db 0 -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 6,7,8 - tmlearn 9,10 - tmlearn 20,24 - tmlearn 25,26,27,28,31,32 - tmlearn 34,38,40 - tmlearn 44,48 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/sandshrew.asm b/data/baseStats/sandshrew.asm deleted file mode 100644 index b4c6abb84..000000000 --- a/data/baseStats/sandshrew.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_SANDSHREW ; pokedex id -db 50 ; base hp -db 75 ; base attack -db 85 ; base defense -db 40 ; base speed -db 30 ; base special -db GROUND ; species type 1 -db GROUND ; species type 2 -db 255 ; catch rate -db 93 ; base exp yield -INCBIN "pic/ymon/sandshrew.pic",0,1 ; 55, sprite dimensions -dw SandshrewPicFront -dw SandshrewPicBack -; attacks known at lvl 0 -db SCRATCH -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 3,6,8 - tmlearn 9,10 - tmlearn 17,19,20 - tmlearn 26,27,28,31,32 - tmlearn 34,39,40 - tmlearn 44,48 - tmlearn 50,51,54 -db 0 ; padding diff --git a/data/baseStats/sandslash.asm b/data/baseStats/sandslash.asm deleted file mode 100644 index e47467efc..000000000 --- a/data/baseStats/sandslash.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_SANDSLASH ; pokedex id -db 75 ; base hp -db 100 ; base attack -db 110 ; base defense -db 65 ; base speed -db 55 ; base special -db GROUND ; species type 1 -db GROUND ; species type 2 -db 90 ; catch rate -db 163 ; base exp yield -INCBIN "pic/ymon/sandslash.pic",0,1 ; 66, sprite dimensions -dw SandslashPicFront -dw SandslashPicBack -; attacks known at lvl 0 -db SCRATCH -db SAND_ATTACK -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 3,6,8 - tmlearn 9,10,15 - tmlearn 17,19,20 - tmlearn 26,27,28,31,32 - tmlearn 34,39,40 - tmlearn 44,48 - tmlearn 50,51,54 -db 0 ; padding diff --git a/data/baseStats/scyther.asm b/data/baseStats/scyther.asm deleted file mode 100644 index ea3f3cba5..000000000 --- a/data/baseStats/scyther.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_SCYTHER ; pokedex id -db 70 ; base hp -db 110 ; base attack -db 80 ; base defense -db 105 ; base speed -db 55 ; base special -db BUG ; species type 1 -db FLYING ; species type 2 -db 45 ; catch rate -db 187 ; base exp yield -INCBIN "pic/ymon/scyther.pic",0,1 ; 77, sprite dimensions -dw ScytherPicFront -dw ScytherPicBack -; attacks known at lvl 0 -db QUICK_ATTACK -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 3,6 - tmlearn 9,10,15 - tmlearn 20 - tmlearn 31,32 - tmlearn 34,39,40 - tmlearn 44 - tmlearn 50,51 -db 0 ; padding diff --git a/data/baseStats/seadra.asm b/data/baseStats/seadra.asm deleted file mode 100644 index 4f5614af5..000000000 --- a/data/baseStats/seadra.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_SEADRA ; pokedex id -db 55 ; base hp -db 65 ; base attack -db 95 ; base defense -db 85 ; base speed -db 95 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 75 ; catch rate -db 155 ; base exp yield -INCBIN "pic/ymon/seadra.pic",0,1 ; 66, sprite dimensions -dw SeadraPicFront -dw SeadraPicBack -; attacks known at lvl 0 -db BUBBLE -db SMOKESCREEN -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6 - tmlearn 9,10,11,12,13,14,15 - tmlearn 20 - tmlearn 31,32 - tmlearn 34,39,40 - tmlearn 44 - tmlearn 50,53 -db 0 ; padding diff --git a/data/baseStats/seaking.asm b/data/baseStats/seaking.asm deleted file mode 100644 index de9834750..000000000 --- a/data/baseStats/seaking.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_SEAKING ; pokedex id -db 80 ; base hp -db 92 ; base attack -db 65 ; base defense -db 68 ; base speed -db 80 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 60 ; catch rate -db 170 ; base exp yield -INCBIN "pic/ymon/seaking.pic",0,1 ; 77, sprite dimensions -dw SeakingPicFront -dw SeakingPicBack -; attacks known at lvl 0 -db PECK -db TAIL_WHIP -db SUPERSONIC -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,7 - tmlearn 9,10,11,12,13,14,15 - tmlearn 20 - tmlearn 31,32 - tmlearn 34,39,40 - tmlearn 44 - tmlearn 50,53 -db 0 ; padding diff --git a/data/baseStats/seel.asm b/data/baseStats/seel.asm deleted file mode 100644 index 4a82ad72e..000000000 --- a/data/baseStats/seel.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_SEEL ; pokedex id -db 65 ; base hp -db 45 ; base attack -db 55 ; base defense -db 45 ; base speed -db 70 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 190 ; catch rate -db 100 ; base exp yield -INCBIN "pic/ymon/seel.pic",0,1 ; 66, sprite dimensions -dw SeelPicFront -dw SeelPicBack -; attacks known at lvl 0 -db HEADBUTT -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,7,8 - tmlearn 9,10,11,12,13,14,16 - tmlearn 20 - tmlearn 31,32 - tmlearn 34,40 - tmlearn 44 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/shellder.asm b/data/baseStats/shellder.asm deleted file mode 100644 index 1a4644cbc..000000000 --- a/data/baseStats/shellder.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_SHELLDER ; pokedex id -db 30 ; base hp -db 65 ; base attack -db 100 ; base defense -db 40 ; base speed -db 45 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 190 ; catch rate -db 97 ; base exp yield -INCBIN "pic/ymon/shellder.pic",0,1 ; 55, sprite dimensions -dw ShellderPicFront -dw ShellderPicBack -; attacks known at lvl 0 -db TACKLE -db WITHDRAW -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 6 - tmlearn 9,10,11,12,13,14 - tmlearn 20 - tmlearn 30,31,32 - tmlearn 33,34,36,39 - tmlearn 44,47 - tmlearn 49,50,53 -db 0 ; padding diff --git a/data/baseStats/slowbro.asm b/data/baseStats/slowbro.asm deleted file mode 100644 index f471a6460..000000000 --- a/data/baseStats/slowbro.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_SLOWBRO ; pokedex id -db 95 ; base hp -db 75 ; base attack -db 110 ; base defense -db 30 ; base speed -db 80 ; base special -db WATER ; species type 1 -db PSYCHIC ; species type 2 -db 75 ; catch rate -db 164 ; base exp yield -INCBIN "pic/ymon/slowbro.pic",0,1 ; 77, sprite dimensions -dw SlowbroPicFront -dw SlowbroPicBack -; attacks known at lvl 0 -db CONFUSION -db DISABLE -db HEADBUTT -db 0 -db 0 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14,15,16 - tmlearn 17,18,19,20 - tmlearn 26,27,28,29,30,31,32 - tmlearn 33,34,38,39,40 - tmlearn 44,45,46 - tmlearn 49,50,53,54,55 -db 0 ; padding diff --git a/data/baseStats/slowpoke.asm b/data/baseStats/slowpoke.asm deleted file mode 100644 index f7a1a510e..000000000 --- a/data/baseStats/slowpoke.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_SLOWPOKE ; pokedex id -db 90 ; base hp -db 65 ; base attack -db 65 ; base defense -db 15 ; base speed -db 40 ; base special -db WATER ; species type 1 -db PSYCHIC ; species type 2 -db 190 ; catch rate -db 99 ; base exp yield -INCBIN "pic/ymon/slowpoke.pic",0,1 ; 55, sprite dimensions -dw SlowpokePicFront -dw SlowpokePicBack -; attacks known at lvl 0 -db CONFUSION -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,11,12,13,14,16 - tmlearn 20 - tmlearn 26,27,28,29,30,31,32 - tmlearn 33,34,38,39,40 - tmlearn 44,45,46 - tmlearn 49,50,53,54,55 -db 0 ; padding diff --git a/data/baseStats/snorlax.asm b/data/baseStats/snorlax.asm deleted file mode 100644 index 62144d315..000000000 --- a/data/baseStats/snorlax.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_SNORLAX ; pokedex id -db 160 ; base hp -db 110 ; base attack -db 65 ; base defense -db 30 ; base speed -db 65 ; base special -db NORMAL ; species type 1 -db NORMAL ; species type 2 -db 25 ; catch rate -db 154 ; base exp yield -INCBIN "pic/ymon/snorlax.pic",0,1 ; 77, sprite dimensions -dw SnorlaxPicFront -dw SnorlaxPicBack -; attacks known at lvl 0 -db HEADBUTT -db AMNESIA -db REST -db 0 -db 5 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14,15,16 - tmlearn 17,18,19,20,22,24 - tmlearn 25,26,27,29,31,32 - tmlearn 33,34,35,36,38,40 - tmlearn 44,46,48 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/spearow.asm b/data/baseStats/spearow.asm deleted file mode 100644 index b7d35b3ab..000000000 --- a/data/baseStats/spearow.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_SPEAROW ; pokedex id -db 40 ; base hp -db 60 ; base attack -db 30 ; base defense -db 70 ; base speed -db 31 ; base special -db NORMAL ; species type 1 -db FLYING ; species type 2 -db 255 ; catch rate -db 58 ; base exp yield -INCBIN "pic/ymon/spearow.pic",0,1 ; 55, sprite dimensions -dw SpearowPicFront -dw SpearowPicBack -; attacks known at lvl 0 -db PECK -db GROWL -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 2,4,6 - tmlearn 9,10 - tmlearn 20 - tmlearn 31,32 - tmlearn 34,39 - tmlearn 43,44 - tmlearn 50,52 -db 0 ; padding diff --git a/data/baseStats/squirtle.asm b/data/baseStats/squirtle.asm deleted file mode 100644 index 1d302a00e..000000000 --- a/data/baseStats/squirtle.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_SQUIRTLE ; pokedex id -db 44 ; base hp -db 48 ; base attack -db 65 ; base defense -db 43 ; base speed -db 50 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 45 ; catch rate -db 66 ; base exp yield -INCBIN "pic/ymon/squirtle.pic",0,1 ; 55, sprite dimensions -dw SquirtlePicFront -dw SquirtlePicBack -; attacks known at lvl 0 -db TACKLE -db TAIL_WHIP -db 0 -db 0 -db 3 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14 - tmlearn 17,18,19,20 - tmlearn 28,31,32 - tmlearn 33,34,40 - tmlearn 44 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/starmie.asm b/data/baseStats/starmie.asm deleted file mode 100644 index 8ef77af86..000000000 --- a/data/baseStats/starmie.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_STARMIE ; pokedex id -db 60 ; base hp -db 75 ; base attack -db 85 ; base defense -db 115 ; base speed -db 100 ; base special -db WATER ; species type 1 -db PSYCHIC ; species type 2 -db 60 ; catch rate -db 207 ; base exp yield -INCBIN "pic/ymon/starmie.pic",0,1 ; 66, sprite dimensions -dw StarmiePicFront -dw StarmiePicBack -; attacks known at lvl 0 -db TACKLE -db WATER_GUN -db HARDEN -db 0 -db 5 ; growth rate -; learnset - tmlearn 6 - tmlearn 9,10,11,12,13,14,15 - tmlearn 20,24 - tmlearn 25,29,30,31,32 - tmlearn 33,34,39,40 - tmlearn 44,45,46 - tmlearn 49,50,53,55 -db 0 ; padding diff --git a/data/baseStats/staryu.asm b/data/baseStats/staryu.asm deleted file mode 100644 index bc774f423..000000000 --- a/data/baseStats/staryu.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_STARYU ; pokedex id -db 30 ; base hp -db 45 ; base attack -db 55 ; base defense -db 85 ; base speed -db 70 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 225 ; catch rate -db 106 ; base exp yield -INCBIN "pic/ymon/staryu.pic",0,1 ; 66, sprite dimensions -dw StaryuPicFront -dw StaryuPicBack -; attacks known at lvl 0 -db TACKLE -db 0 -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 6 - tmlearn 9,10,11,12,13,14 - tmlearn 20,24 - tmlearn 25,29,30,31,32 - tmlearn 33,34,39,40 - tmlearn 44,45,46 - tmlearn 49,50,53,55 -db 0 ; padding diff --git a/data/baseStats/tangela.asm b/data/baseStats/tangela.asm deleted file mode 100644 index 8b76bde5f..000000000 --- a/data/baseStats/tangela.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_TANGELA ; pokedex id -db 65 ; base hp -db 55 ; base attack -db 115 ; base defense -db 60 ; base speed -db 100 ; base special -db GRASS ; species type 1 -db GRASS ; species type 2 -db 45 ; catch rate -db 166 ; base exp yield -INCBIN "pic/ymon/tangela.pic",0,1 ; 66, sprite dimensions -dw TangelaPicFront -dw TangelaPicBack -; attacks known at lvl 0 -db CONSTRICT -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 3,6,8 - tmlearn 9,10,15 - tmlearn 20,21,22 - tmlearn 31,32 - tmlearn 34,40 - tmlearn 44 - tmlearn 50,51 -db 0 ; padding diff --git a/data/baseStats/tauros.asm b/data/baseStats/tauros.asm deleted file mode 100644 index ac55ed65b..000000000 --- a/data/baseStats/tauros.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_TAUROS ; pokedex id -db 75 ; base hp -db 100 ; base attack -db 95 ; base defense -db 110 ; base speed -db 70 ; base special -db NORMAL ; species type 1 -db NORMAL ; species type 2 -db 45 ; catch rate -db 211 ; base exp yield -INCBIN "pic/ymon/tauros.pic",0,1 ; 77, sprite dimensions -dw TaurosPicFront -dw TaurosPicBack -; attacks known at lvl 0 -db TACKLE -db 0 -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 6,7,8 - tmlearn 9,10,13,14,15 - tmlearn 20,24 - tmlearn 25,26,27,31,32 - tmlearn 34,38,40 - tmlearn 44 - tmlearn 50,54 -db 0 ; padding diff --git a/data/baseStats/tentacool.asm b/data/baseStats/tentacool.asm deleted file mode 100644 index 123d904c8..000000000 --- a/data/baseStats/tentacool.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_TENTACOOL ; pokedex id -db 40 ; base hp -db 40 ; base attack -db 35 ; base defense -db 70 ; base speed -db 100 ; base special -db WATER ; species type 1 -db POISON ; species type 2 -db 190 ; catch rate -db 105 ; base exp yield -INCBIN "pic/ymon/tentacool.pic",0,1 ; 55, sprite dimensions -dw TentacoolPicFront -dw TentacoolPicBack -; attacks known at lvl 0 -db ACID -db 0 -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 3,6 - tmlearn 9,10,11,12,13,14 - tmlearn 20,21 - tmlearn 31,32 - tmlearn 33,34,40 - tmlearn 44 - tmlearn 50,51,53 -db 0 ; padding diff --git a/data/baseStats/tentacruel.asm b/data/baseStats/tentacruel.asm deleted file mode 100644 index 9c65fe157..000000000 --- a/data/baseStats/tentacruel.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_TENTACRUEL ; pokedex id -db 80 ; base hp -db 70 ; base attack -db 65 ; base defense -db 100 ; base speed -db 120 ; base special -db WATER ; species type 1 -db POISON ; species type 2 -db 60 ; catch rate -db 205 ; base exp yield -INCBIN "pic/ymon/tentacruel.pic",0,1 ; 66, sprite dimensions -dw TentacruelPicFront -dw TentacruelPicBack -; attacks known at lvl 0 -db ACID -db SUPERSONIC -db WRAP -db 0 -db 5 ; growth rate -; learnset - tmlearn 3,6 - tmlearn 9,10,11,12,13,14,15 - tmlearn 20,21 - tmlearn 31,32 - tmlearn 33,34,40 - tmlearn 44 - tmlearn 50,51,53 -db 0 ; padding diff --git a/data/baseStats/vaporeon.asm b/data/baseStats/vaporeon.asm deleted file mode 100644 index 3d5024b5a..000000000 --- a/data/baseStats/vaporeon.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_VAPOREON ; pokedex id -db 130 ; base hp -db 65 ; base attack -db 60 ; base defense -db 65 ; base speed -db 110 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 45 ; catch rate -db 196 ; base exp yield -INCBIN "pic/ymon/vaporeon.pic",0,1 ; 66, sprite dimensions -dw VaporeonPicFront -dw VaporeonPicBack -; attacks known at lvl 0 -db TACKLE -db TAIL_WHIP -db QUICK_ATTACK -db WATER_GUN -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 20 - tmlearn 31,32 - tmlearn 33,34,39,40 - tmlearn 44 - tmlearn 50,53 -db 0 ; padding diff --git a/data/baseStats/venomoth.asm b/data/baseStats/venomoth.asm deleted file mode 100644 index 6709e42af..000000000 --- a/data/baseStats/venomoth.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_VENOMOTH ; pokedex id -db 70 ; base hp -db 65 ; base attack -db 60 ; base defense -db 90 ; base speed -db 90 ; base special -db BUG ; species type 1 -db POISON ; species type 2 -db 75 ; catch rate -db 138 ; base exp yield -INCBIN "pic/ymon/venomoth.pic",0,1 ; 77, sprite dimensions -dw VenomothPicFront -dw VenomothPicBack -; attacks known at lvl 0 -db TACKLE -db DISABLE -db SUPERSONIC -db CONFUSION -db 0 ; growth rate -; learnset - tmlearn 2,4,6 - tmlearn 9,10,15 - tmlearn 20,21,22 - tmlearn 29,30,31,32 - tmlearn 33,34,39 - tmlearn 44,46 - tmlearn 50,55 -db 0 ; padding diff --git a/data/baseStats/venonat.asm b/data/baseStats/venonat.asm deleted file mode 100644 index ef3db9a16..000000000 --- a/data/baseStats/venonat.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_VENONAT ; pokedex id -db 60 ; base hp -db 55 ; base attack -db 50 ; base defense -db 45 ; base speed -db 40 ; base special -db BUG ; species type 1 -db POISON ; species type 2 -db 190 ; catch rate -db 75 ; base exp yield -INCBIN "pic/ymon/venonat.pic",0,1 ; 55, sprite dimensions -dw VenonatPicFront -dw VenonatPicBack -; attacks known at lvl 0 -db TACKLE -db DISABLE -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6 - tmlearn 9,10 - tmlearn 20,21,22 - tmlearn 29,31,32 - tmlearn 33,34 - tmlearn 44,46 - tmlearn 50,55 -db 0 ; padding diff --git a/data/baseStats/venusaur.asm b/data/baseStats/venusaur.asm deleted file mode 100644 index d3725735a..000000000 --- a/data/baseStats/venusaur.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_VENUSAUR ; pokedex id -db 80 ; base hp -db 82 ; base attack -db 83 ; base defense -db 80 ; base speed -db 100 ; base special -db GRASS ; species type 1 -db POISON ; species type 2 -db 45 ; catch rate -db 208 ; base exp yield -INCBIN "pic/ymon/venusaur.pic",0,1 ; 77, sprite dimensions -dw VenusaurPicFront -dw VenusaurPicBack -; attacks known at lvl 0 -db TACKLE -db GROWL -db LEECH_SEED -db VINE_WHIP -db 3 ; growth rate -; learnset - tmlearn 3,6,8 - tmlearn 9,10,15 - tmlearn 20,21,22 - tmlearn 31,32 - tmlearn 33,34 - tmlearn 44 - tmlearn 50,51 -db 0 ; padding diff --git a/data/baseStats/victreebel.asm b/data/baseStats/victreebel.asm deleted file mode 100644 index 56bfd25af..000000000 --- a/data/baseStats/victreebel.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_VICTREEBEL ; pokedex id -db 80 ; base hp -db 105 ; base attack -db 65 ; base defense -db 70 ; base speed -db 100 ; base special -db GRASS ; species type 1 -db POISON ; species type 2 -db 45 ; catch rate -db 191 ; base exp yield -INCBIN "pic/ymon/victreebel.pic",0,1 ; 77, sprite dimensions -dw VictreebelPicFront -dw VictreebelPicBack -; attacks known at lvl 0 -db SLEEP_POWDER -db STUN_SPORE -db ACID -db RAZOR_LEAF -db 3 ; growth rate -; learnset - tmlearn 3,6,8 - tmlearn 9,10,15 - tmlearn 20,21,22 - tmlearn 31,32 - tmlearn 33,34 - tmlearn 44 - tmlearn 50,51 -db 0 ; padding diff --git a/data/baseStats/vileplume.asm b/data/baseStats/vileplume.asm deleted file mode 100644 index ed463650f..000000000 --- a/data/baseStats/vileplume.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_VILEPLUME ; pokedex id -db 75 ; base hp -db 80 ; base attack -db 85 ; base defense -db 50 ; base speed -db 100 ; base special -db GRASS ; species type 1 -db POISON ; species type 2 -db 45 ; catch rate -db 184 ; base exp yield -INCBIN "pic/ymon/vileplume.pic",0,1 ; 77, sprite dimensions -dw VileplumePicFront -dw VileplumePicBack -; attacks known at lvl 0 -db STUN_SPORE -db SLEEP_POWDER -db ACID -db PETAL_DANCE -db 3 ; growth rate -; learnset - tmlearn 3,6,8 - tmlearn 9,10,15 - tmlearn 20,21,22 - tmlearn 31,32 - tmlearn 33,34 - tmlearn 44 - tmlearn 50,51 -db 0 ; padding diff --git a/data/baseStats/voltorb.asm b/data/baseStats/voltorb.asm deleted file mode 100644 index ffd12992e..000000000 --- a/data/baseStats/voltorb.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_VOLTORB ; pokedex id -db 40 ; base hp -db 30 ; base attack -db 50 ; base defense -db 100 ; base speed -db 55 ; base special -db ELECTRIC ; species type 1 -db ELECTRIC ; species type 2 -db 190 ; catch rate -db 103 ; base exp yield -INCBIN "pic/ymon/voltorb.pic",0,1 ; 55, sprite dimensions -dw VoltorbPicFront -dw VoltorbPicBack -; attacks known at lvl 0 -db TACKLE -db SCREECH -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6 - tmlearn 9 - tmlearn 20,24 - tmlearn 25,30,31,32 - tmlearn 33,34,36,39 - tmlearn 44,45,47 - tmlearn 50,55 -db 0 ; padding diff --git a/data/baseStats/vulpix.asm b/data/baseStats/vulpix.asm deleted file mode 100644 index b67b9bbdb..000000000 --- a/data/baseStats/vulpix.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_VULPIX ; pokedex id -db 38 ; base hp -db 41 ; base attack -db 40 ; base defense -db 65 ; base speed -db 65 ; base special -db FIRE ; species type 1 -db FIRE ; species type 2 -db 190 ; catch rate -db 63 ; base exp yield -INCBIN "pic/ymon/vulpix.pic",0,1 ; 66, sprite dimensions -dw VulpixPicFront -dw VulpixPicBack -; attacks known at lvl 0 -db EMBER -db TAIL_WHIP -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 6,8 - tmlearn 9,10 - tmlearn 20 - tmlearn 28,31,32 - tmlearn 33,34,38,39,40 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/wartortle.asm b/data/baseStats/wartortle.asm deleted file mode 100644 index daf85dc6f..000000000 --- a/data/baseStats/wartortle.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_WARTORTLE ; pokedex id -db 59 ; base hp -db 63 ; base attack -db 80 ; base defense -db 58 ; base speed -db 65 ; base special -db WATER ; species type 1 -db WATER ; species type 2 -db 45 ; catch rate -db 143 ; base exp yield -INCBIN "pic/ymon/wartortle.pic",0,1 ; 66, sprite dimensions -dw WartortlePicFront -dw WartortlePicBack -; attacks known at lvl 0 -db TACKLE -db TAIL_WHIP -db BUBBLE -db 0 -db 3 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14 - tmlearn 17,18,19,20 - tmlearn 28,31,32 - tmlearn 33,34,40 - tmlearn 44 - tmlearn 50,53,54 -db 0 ; padding diff --git a/data/baseStats/weedle.asm b/data/baseStats/weedle.asm deleted file mode 100644 index 44ca5c2c8..000000000 --- a/data/baseStats/weedle.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_WEEDLE ; pokedex id -db 40 ; base hp -db 35 ; base attack -db 30 ; base defense -db 50 ; base speed -db 20 ; base special -db BUG ; species type 1 -db POISON ; species type 2 -db 255 ; catch rate -db 52 ; base exp yield -INCBIN "pic/ymon/weedle.pic",0,1 ; 55, sprite dimensions -dw WeedlePicFront -dw WeedlePicBack -; attacks known at lvl 0 -db POISON_STING -db STRING_SHOT -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 - tmlearn 0 -db 0 ; padding diff --git a/data/baseStats/weepinbell.asm b/data/baseStats/weepinbell.asm deleted file mode 100644 index 0ac287f8a..000000000 --- a/data/baseStats/weepinbell.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_WEEPINBELL ; pokedex id -db 65 ; base hp -db 90 ; base attack -db 50 ; base defense -db 55 ; base speed -db 85 ; base special -db GRASS ; species type 1 -db POISON ; species type 2 -db 120 ; catch rate -db 151 ; base exp yield -INCBIN "pic/ymon/weepinbell.pic",0,1 ; 66, sprite dimensions -dw WeepinbellPicFront -dw WeepinbellPicBack -; attacks known at lvl 0 -db VINE_WHIP -db GROWTH -db WRAP -db 0 -db 3 ; growth rate -; learnset - tmlearn 3,6 - tmlearn 9,10 - tmlearn 20,21,22 - tmlearn 31,32 - tmlearn 33,34 - tmlearn 44 - tmlearn 50,51 -db 0 ; padding diff --git a/data/baseStats/weezing.asm b/data/baseStats/weezing.asm deleted file mode 100644 index 089ef4956..000000000 --- a/data/baseStats/weezing.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_WEEZING ; pokedex id -db 65 ; base hp -db 90 ; base attack -db 120 ; base defense -db 60 ; base speed -db 85 ; base special -db POISON ; species type 1 -db POISON ; species type 2 -db 60 ; catch rate -db 173 ; base exp yield -INCBIN "pic/ymon/weezing.pic",0,1 ; 77, sprite dimensions -dw WeezingPicFront -dw WeezingPicBack -; attacks known at lvl 0 -db TACKLE -db SMOG -db SLUDGE -db 0 -db 0 ; growth rate -; learnset - tmlearn 6 - tmlearn 15 - tmlearn 20,24 - tmlearn 25,31,32 - tmlearn 34,36,38 - tmlearn 44,47 - tmlearn 50 -db 0 ; padding diff --git a/data/baseStats/wigglytuff.asm b/data/baseStats/wigglytuff.asm deleted file mode 100644 index 815b12446..000000000 --- a/data/baseStats/wigglytuff.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_WIGGLYTUFF ; pokedex id -db 140 ; base hp -db 70 ; base attack -db 45 ; base defense -db 45 ; base speed -db 50 ; base special -db NORMAL ; species type 1 -db NORMAL ; species type 2 -db 50 ; catch rate -db 109 ; base exp yield -INCBIN "pic/ymon/wigglytuff.pic",0,1 ; 66, sprite dimensions -dw WigglytuffPicFront -dw WigglytuffPicBack -; attacks known at lvl 0 -db SING -db DISABLE -db DEFENSE_CURL -db DOUBLESLAP -db 4 ; growth rate -; learnset - tmlearn 1,5,6,8 - tmlearn 9,10,11,12,13,14,15 - tmlearn 17,18,19,20,22,24 - tmlearn 25,29,30,31,32 - tmlearn 33,34,38,40 - tmlearn 44,45,46 - tmlearn 49,50,54,55 -db 0 ; padding diff --git a/data/baseStats/zapdos.asm b/data/baseStats/zapdos.asm deleted file mode 100644 index b7befb991..000000000 --- a/data/baseStats/zapdos.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_ZAPDOS ; pokedex id -db 90 ; base hp -db 90 ; base attack -db 85 ; base defense -db 100 ; base speed -db 125 ; base special -db ELECTRIC ; species type 1 -db FLYING ; species type 2 -db 3 ; catch rate -db 216 ; base exp yield -INCBIN "pic/ymon/zapdos.pic",0,1 ; 77, sprite dimensions -dw ZapdosPicFront -dw ZapdosPicBack -; attacks known at lvl 0 -db THUNDERSHOCK -db DRILL_PECK -db 0 -db 0 -db 5 ; growth rate -; learnset - tmlearn 2,4,6 - tmlearn 9,10,15 - tmlearn 20,24 - tmlearn 25,31,32 - tmlearn 33,34,39 - tmlearn 43,44,45 - tmlearn 50,52,55 -db 0 ; padding diff --git a/data/baseStats/zubat.asm b/data/baseStats/zubat.asm deleted file mode 100644 index 7ddad05ce..000000000 --- a/data/baseStats/zubat.asm +++ /dev/null @@ -1,28 +0,0 @@ -db DEX_ZUBAT ; pokedex id -db 40 ; base hp -db 45 ; base attack -db 35 ; base defense -db 55 ; base speed -db 40 ; base special -db POISON ; species type 1 -db FLYING ; species type 2 -db 255 ; catch rate -db 54 ; base exp yield -INCBIN "pic/ymon/zubat.pic",0,1 ; 55, sprite dimensions -dw ZubatPicFront -dw ZubatPicBack -; attacks known at lvl 0 -db LEECH_LIFE -db 0 -db 0 -db 0 -db 0 ; growth rate -; learnset - tmlearn 2,4,6 - tmlearn 9,10 - tmlearn 20,21 - tmlearn 31,32 - tmlearn 34,39 - tmlearn 44 - tmlearn 50 -db 0 ; padding diff --git a/data/base_stats.asm b/data/base_stats.asm deleted file mode 100755 index 23e85e0f0..000000000 --- a/data/base_stats.asm +++ /dev/null @@ -1,151 +0,0 @@ -INCLUDE "data/baseStats/bulbasaur.asm" -INCLUDE "data/baseStats/ivysaur.asm" -INCLUDE "data/baseStats/venusaur.asm" -INCLUDE "data/baseStats/charmander.asm" -INCLUDE "data/baseStats/charmeleon.asm" -INCLUDE "data/baseStats/charizard.asm" -INCLUDE "data/baseStats/squirtle.asm" -INCLUDE "data/baseStats/wartortle.asm" -INCLUDE "data/baseStats/blastoise.asm" -INCLUDE "data/baseStats/caterpie.asm" -INCLUDE "data/baseStats/metapod.asm" -INCLUDE "data/baseStats/butterfree.asm" -INCLUDE "data/baseStats/weedle.asm" -INCLUDE "data/baseStats/kakuna.asm" -INCLUDE "data/baseStats/beedrill.asm" -INCLUDE "data/baseStats/pidgey.asm" -INCLUDE "data/baseStats/pidgeotto.asm" -INCLUDE "data/baseStats/pidgeot.asm" -INCLUDE "data/baseStats/rattata.asm" -INCLUDE "data/baseStats/raticate.asm" -INCLUDE "data/baseStats/spearow.asm" -INCLUDE "data/baseStats/fearow.asm" -INCLUDE "data/baseStats/ekans.asm" -INCLUDE "data/baseStats/arbok.asm" -INCLUDE "data/baseStats/pikachu.asm" -INCLUDE "data/baseStats/raichu.asm" -INCLUDE "data/baseStats/sandshrew.asm" -INCLUDE "data/baseStats/sandslash.asm" -INCLUDE "data/baseStats/nidoranf.asm" -INCLUDE "data/baseStats/nidorina.asm" -INCLUDE "data/baseStats/nidoqueen.asm" -INCLUDE "data/baseStats/nidoranm.asm" -INCLUDE "data/baseStats/nidorino.asm" -INCLUDE "data/baseStats/nidoking.asm" -INCLUDE "data/baseStats/clefairy.asm" -INCLUDE "data/baseStats/clefable.asm" -INCLUDE "data/baseStats/vulpix.asm" -INCLUDE "data/baseStats/ninetales.asm" -INCLUDE "data/baseStats/jigglypuff.asm" -INCLUDE "data/baseStats/wigglytuff.asm" -INCLUDE "data/baseStats/zubat.asm" -INCLUDE "data/baseStats/golbat.asm" -INCLUDE "data/baseStats/oddish.asm" -INCLUDE "data/baseStats/gloom.asm" -INCLUDE "data/baseStats/vileplume.asm" -INCLUDE "data/baseStats/paras.asm" -INCLUDE "data/baseStats/parasect.asm" -INCLUDE "data/baseStats/venonat.asm" -INCLUDE "data/baseStats/venomoth.asm" -INCLUDE "data/baseStats/diglett.asm" -INCLUDE "data/baseStats/dugtrio.asm" -INCLUDE "data/baseStats/meowth.asm" -INCLUDE "data/baseStats/persian.asm" -INCLUDE "data/baseStats/psyduck.asm" -INCLUDE "data/baseStats/golduck.asm" -INCLUDE "data/baseStats/mankey.asm" -INCLUDE "data/baseStats/primeape.asm" -INCLUDE "data/baseStats/growlithe.asm" -INCLUDE "data/baseStats/arcanine.asm" -INCLUDE "data/baseStats/poliwag.asm" -INCLUDE "data/baseStats/poliwhirl.asm" -INCLUDE "data/baseStats/poliwrath.asm" -INCLUDE "data/baseStats/abra.asm" -INCLUDE "data/baseStats/kadabra.asm" -INCLUDE "data/baseStats/alakazam.asm" -INCLUDE "data/baseStats/machop.asm" -INCLUDE "data/baseStats/machoke.asm" -INCLUDE "data/baseStats/machamp.asm" -INCLUDE "data/baseStats/bellsprout.asm" -INCLUDE "data/baseStats/weepinbell.asm" -INCLUDE "data/baseStats/victreebel.asm" -INCLUDE "data/baseStats/tentacool.asm" -INCLUDE "data/baseStats/tentacruel.asm" -INCLUDE "data/baseStats/geodude.asm" -INCLUDE "data/baseStats/graveler.asm" -INCLUDE "data/baseStats/golem.asm" -INCLUDE "data/baseStats/ponyta.asm" -INCLUDE "data/baseStats/rapidash.asm" -INCLUDE "data/baseStats/slowpoke.asm" -INCLUDE "data/baseStats/slowbro.asm" -INCLUDE "data/baseStats/magnemite.asm" -INCLUDE "data/baseStats/magneton.asm" -INCLUDE "data/baseStats/farfetchd.asm" -INCLUDE "data/baseStats/doduo.asm" -INCLUDE "data/baseStats/dodrio.asm" -INCLUDE "data/baseStats/seel.asm" -INCLUDE "data/baseStats/dewgong.asm" -INCLUDE "data/baseStats/grimer.asm" -INCLUDE "data/baseStats/muk.asm" -INCLUDE "data/baseStats/shellder.asm" -INCLUDE "data/baseStats/cloyster.asm" -INCLUDE "data/baseStats/gastly.asm" -INCLUDE "data/baseStats/haunter.asm" -INCLUDE "data/baseStats/gengar.asm" -INCLUDE "data/baseStats/onix.asm" -INCLUDE "data/baseStats/drowzee.asm" -INCLUDE "data/baseStats/hypno.asm" -INCLUDE "data/baseStats/krabby.asm" -INCLUDE "data/baseStats/kingler.asm" -INCLUDE "data/baseStats/voltorb.asm" -INCLUDE "data/baseStats/electrode.asm" -INCLUDE "data/baseStats/exeggcute.asm" -INCLUDE "data/baseStats/exeggutor.asm" -INCLUDE "data/baseStats/cubone.asm" -INCLUDE "data/baseStats/marowak.asm" -INCLUDE "data/baseStats/hitmonlee.asm" -INCLUDE "data/baseStats/hitmonchan.asm" -INCLUDE "data/baseStats/lickitung.asm" -INCLUDE "data/baseStats/koffing.asm" -INCLUDE "data/baseStats/weezing.asm" -INCLUDE "data/baseStats/rhyhorn.asm" -INCLUDE "data/baseStats/rhydon.asm" -INCLUDE "data/baseStats/chansey.asm" -INCLUDE "data/baseStats/tangela.asm" -INCLUDE "data/baseStats/kangaskhan.asm" -INCLUDE "data/baseStats/horsea.asm" -INCLUDE "data/baseStats/seadra.asm" -INCLUDE "data/baseStats/goldeen.asm" -INCLUDE "data/baseStats/seaking.asm" -INCLUDE "data/baseStats/staryu.asm" -INCLUDE "data/baseStats/starmie.asm" -INCLUDE "data/baseStats/mrmime.asm" -INCLUDE "data/baseStats/scyther.asm" -INCLUDE "data/baseStats/jynx.asm" -INCLUDE "data/baseStats/electabuzz.asm" -INCLUDE "data/baseStats/magmar.asm" -INCLUDE "data/baseStats/pinsir.asm" -INCLUDE "data/baseStats/tauros.asm" -INCLUDE "data/baseStats/magikarp.asm" -INCLUDE "data/baseStats/gyarados.asm" -INCLUDE "data/baseStats/lapras.asm" -INCLUDE "data/baseStats/ditto.asm" -INCLUDE "data/baseStats/eevee.asm" -INCLUDE "data/baseStats/vaporeon.asm" -INCLUDE "data/baseStats/jolteon.asm" -INCLUDE "data/baseStats/flareon.asm" -INCLUDE "data/baseStats/porygon.asm" -INCLUDE "data/baseStats/omanyte.asm" -INCLUDE "data/baseStats/omastar.asm" -INCLUDE "data/baseStats/kabuto.asm" -INCLUDE "data/baseStats/kabutops.asm" -INCLUDE "data/baseStats/aerodactyl.asm" -INCLUDE "data/baseStats/snorlax.asm" -INCLUDE "data/baseStats/articuno.asm" -INCLUDE "data/baseStats/zapdos.asm" -INCLUDE "data/baseStats/moltres.asm" -INCLUDE "data/baseStats/dratini.asm" -INCLUDE "data/baseStats/dragonair.asm" -INCLUDE "data/baseStats/dragonite.asm" -INCLUDE "data/baseStats/mewtwo.asm" -INCLUDE "data/baseStats/mew.asm" diff --git a/data/battle/always_happen_effects.asm b/data/battle/always_happen_effects.asm new file mode 100644 index 000000000..c8e5247ed --- /dev/null +++ b/data/battle/always_happen_effects.asm @@ -0,0 +1,13 @@ +AlwaysHappenSideEffects: +; Attacks that aren't finished after they faint the opponent. + db DRAIN_HP_EFFECT + db EXPLODE_EFFECT + db DREAM_EATER_EFFECT + db PAY_DAY_EFFECT + db TWO_TO_FIVE_ATTACKS_EFFECT + db EFFECT_1E + db ATTACK_TWICE_EFFECT + db RECOIL_EFFECT + db TWINEEDLE_EFFECT + db RAGE_EFFECT + db -1 ; end diff --git a/data/battle/critical_hit_moves.asm b/data/battle/critical_hit_moves.asm new file mode 100644 index 000000000..a567a9348 --- /dev/null +++ b/data/battle/critical_hit_moves.asm @@ -0,0 +1,6 @@ +HighCriticalMoves: + db KARATE_CHOP + db RAZOR_LEAF + db CRABHAMMER + db SLASH + db -1 ; end diff --git a/data/battle/residual_effects_1.asm b/data/battle/residual_effects_1.asm new file mode 100644 index 000000000..b478487db --- /dev/null +++ b/data/battle/residual_effects_1.asm @@ -0,0 +1,20 @@ +; These are move effects (second value from the Moves table in bank $E). +ResidualEffects1: +; most non-side effects + db CONVERSION_EFFECT + db HAZE_EFFECT + db SWITCH_AND_TELEPORT_EFFECT + db MIST_EFFECT + db FOCUS_ENERGY_EFFECT + db CONFUSION_EFFECT + db HEAL_EFFECT + db TRANSFORM_EFFECT + db LIGHT_SCREEN_EFFECT + db REFLECT_EFFECT + db POISON_EFFECT + db PARALYZE_EFFECT + db SUBSTITUTE_EFFECT + db MIMIC_EFFECT + db LEECH_SEED_EFFECT + db SPLASH_EFFECT + db -1 ; end diff --git a/data/battle/residual_effects_2.asm b/data/battle/residual_effects_2.asm new file mode 100644 index 000000000..f58bb47cc --- /dev/null +++ b/data/battle/residual_effects_2.asm @@ -0,0 +1,32 @@ +ResidualEffects2: +; non-side effects not included in ResidualEffects1 +; stat-affecting moves, sleep-inflicting moves, and Bide +; e.g., Meditate, Bide, Hypnosis + db EFFECT_01 + db ATTACK_UP1_EFFECT + db DEFENSE_UP1_EFFECT + db SPEED_UP1_EFFECT + db SPECIAL_UP1_EFFECT + db ACCURACY_UP1_EFFECT + db EVASION_UP1_EFFECT + db ATTACK_DOWN1_EFFECT + db DEFENSE_DOWN1_EFFECT + db SPEED_DOWN1_EFFECT + db SPECIAL_DOWN1_EFFECT + db ACCURACY_DOWN1_EFFECT + db EVASION_DOWN1_EFFECT + db BIDE_EFFECT + db SLEEP_EFFECT + db ATTACK_UP2_EFFECT + db DEFENSE_UP2_EFFECT + db SPEED_UP2_EFFECT + db SPECIAL_UP2_EFFECT + db ACCURACY_UP2_EFFECT + db EVASION_UP2_EFFECT + db ATTACK_DOWN2_EFFECT + db DEFENSE_DOWN2_EFFECT + db SPEED_DOWN2_EFFECT + db SPECIAL_DOWN2_EFFECT + db ACCURACY_DOWN2_EFFECT + db EVASION_DOWN2_EFFECT + db -1 ; end diff --git a/data/battle/set_damage_effects.asm b/data/battle/set_damage_effects.asm new file mode 100644 index 000000000..cedb3bc1b --- /dev/null +++ b/data/battle/set_damage_effects.asm @@ -0,0 +1,6 @@ +SetDamageEffects: +; moves that do damage but not through normal calculations +; e.g., Super Fang, Psywave + db SUPER_FANG_EFFECT + db SPECIAL_DAMAGE_EFFECT + db -1 ; end diff --git a/data/battle/special_effects.asm b/data/battle/special_effects.asm new file mode 100644 index 000000000..3e21ee2f0 --- /dev/null +++ b/data/battle/special_effects.asm @@ -0,0 +1,24 @@ +SpecialEffects: +; Effects from arrays 2, 4, and 5B, minus Twineedle and Rage. +; Includes all effects that do not need to be called at the end of +; ExecutePlayerMove (or ExecuteEnemyMove), because they have already been handled + db DRAIN_HP_EFFECT + db EXPLODE_EFFECT + db DREAM_EATER_EFFECT + db PAY_DAY_EFFECT + db SWIFT_EFFECT + db TWO_TO_FIVE_ATTACKS_EFFECT + db EFFECT_1E + db CHARGE_EFFECT + db SUPER_FANG_EFFECT + db SPECIAL_DAMAGE_EFFECT + db FLY_EFFECT + db ATTACK_TWICE_EFFECT + db JUMP_KICK_EFFECT + db RECOIL_EFFECT + ; fallthrough +SpecialEffectsCont: +; damaging moves whose effect is executed prior to damage calculation + db THRASH_PETAL_DANCE_EFFECT + db TRAPPING_EFFECT + db -1 ; end diff --git a/data/battle/stat_modifiers.asm b/data/battle/stat_modifiers.asm new file mode 100644 index 000000000..c0a6355a3 --- /dev/null +++ b/data/battle/stat_modifiers.asm @@ -0,0 +1,15 @@ +StatModifierRatios: +; first byte is numerator, second byte is denominator + db 25, 100 ; 0.25 + db 28, 100 ; 0.28 + db 33, 100 ; 0.33 + db 40, 100 ; 0.40 + db 50, 100 ; 0.50 + db 66, 100 ; 0.66 + db 1, 1 ; 1.00 + db 15, 10 ; 1.50 + db 2, 1 ; 2.00 + db 25, 10 ; 2.50 + db 3, 1 ; 3.00 + db 35, 10 ; 3.50 + db 4, 1 ; 4.00 diff --git a/data/battle/stat_names.asm b/data/battle/stat_names.asm new file mode 100644 index 000000000..854780c63 --- /dev/null +++ b/data/battle/stat_names.asm @@ -0,0 +1,7 @@ +StatsTextStrings: + db "ATTACK@" + db "DEFENSE@" + db "SPEED@" + db "SPECIAL@" + db "ACCURACY@" + db "EVADE@" diff --git a/data/battle/unused_critical_hit_moves.asm b/data/battle/unused_critical_hit_moves.asm new file mode 100644 index 000000000..bc88b2cb4 --- /dev/null +++ b/data/battle/unused_critical_hit_moves.asm @@ -0,0 +1,6 @@ +UnusedHighCriticalMoves: + db KARATE_CHOP + db RAZOR_LEAF + db CRABHAMMER + db SLASH + db -1 ; end diff --git a/data/battle_anims/base_coords.asm b/data/battle_anims/base_coords.asm new file mode 100644 index 000000000..ad67baffd --- /dev/null +++ b/data/battle_anims/base_coords.asm @@ -0,0 +1,178 @@ +FrameBlockBaseCoords: + db $10, $68 ; BASECOORD_00 + db $10, $70 ; BASECOORD_01 + db $10, $78 ; BASECOORD_02 + db $10, $80 ; BASECOORD_03 + db $10, $88 ; BASECOORD_04 + db $10, $90 ; BASECOORD_05 + db $10, $98 ; BASECOORD_06 + db $18, $68 ; BASECOORD_07 + db $18, $70 ; BASECOORD_08 + db $18, $78 ; BASECOORD_09 + db $34, $28 ; BASECOORD_0A + db $18, $80 ; BASECOORD_0B + db $18, $88 ; BASECOORD_0C + db $18, $98 ; BASECOORD_0D + db $20, $68 ; BASECOORD_0E + db $20, $70 ; BASECOORD_0F + db $20, $78 ; BASECOORD_10 + db $20, $80 ; BASECOORD_11 + db $20, $88 ; BASECOORD_12 + db $20, $90 ; BASECOORD_13 + db $20, $98 ; BASECOORD_14 + db $28, $68 ; BASECOORD_15 + db $28, $70 ; BASECOORD_16 + db $28, $78 ; BASECOORD_17 + db $28, $80 ; BASECOORD_18 + db $28, $88 ; BASECOORD_19 + db $30, $68 ; BASECOORD_1A + db $30, $70 ; BASECOORD_1B + db $30, $78 ; BASECOORD_1C + db $30, $80 ; BASECOORD_1D + db $30, $90 ; BASECOORD_1E + db $30, $98 ; BASECOORD_1F + db $38, $68 ; BASECOORD_20 + db $38, $78 ; BASECOORD_21 + db $38, $80 ; BASECOORD_22 + db $38, $88 ; BASECOORD_23 + db $40, $68 ; BASECOORD_24 + db $40, $70 ; BASECOORD_25 + db $40, $78 ; BASECOORD_26 + db $40, $80 ; BASECOORD_27 + db $40, $88 ; BASECOORD_28 + db $40, $98 ; BASECOORD_29 + db $10, $60 ; BASECOORD_2A + db $18, $60 ; BASECOORD_2B + db $20, $60 ; BASECOORD_2C + db $28, $60 ; BASECOORD_2D + db $30, $60 ; BASECOORD_2E + db $40, $60 ; BASECOORD_2F + db $58, $28 ; BASECOORD_30 + db $43, $38 ; BASECOORD_31 + db $33, $48 ; BASECOORD_32 + db $20, $58 ; BASECOORD_33 + db $32, $78 ; BASECOORD_34 + db $58, $58 ; BASECOORD_35 + db $2C, $6C ; BASECOORD_36 + db $34, $80 ; BASECOORD_37 + db $48, $70 ; BASECOORD_38 + db $42, $36 ; BASECOORD_39 + db $38, $44 ; BASECOORD_3A + db $40, $52 ; BASECOORD_3B + db $48, $60 ; BASECOORD_3C + db $3E, $6E ; BASECOORD_3D + db $28, $7C ; BASECOORD_3E + db $28, $8A ; BASECOORD_3F + db $50, $3C ; BASECOORD_40 + db $48, $50 ; BASECOORD_41 + db $40, $64 ; BASECOORD_42 + db $38, $38 ; BASECOORD_43 + db $50, $30 ; BASECOORD_44 + db $50, $38 ; BASECOORD_45 + db $50, $40 ; BASECOORD_46 + db $50, $48 ; BASECOORD_47 + db $50, $50 ; BASECOORD_48 + db $48, $58 ; BASECOORD_49 + db $50, $44 ; BASECOORD_4A + db $48, $48 ; BASECOORD_4B + db $48, $4C ; BASECOORD_4C + db $40, $50 ; BASECOORD_4D + db $40, $54 ; BASECOORD_4E + db $38, $58 ; BASECOORD_4F + db $38, $5C ; BASECOORD_50 + db $30, $64 ; BASECOORD_51 + db $48, $40 ; BASECOORD_52 + db $48, $39 ; BASECOORD_53 + db $24, $88 ; BASECOORD_54 + db $24, $70 ; BASECOORD_55 + db $1C, $70 ; BASECOORD_56 + db $1C, $88 ; BASECOORD_57 + db $34, $68 ; BASECOORD_58 + db $34, $88 ; BASECOORD_59 + db $68, $50 ; BASECOORD_5A + db $60, $50 ; BASECOORD_5B + db $68, $60 ; BASECOORD_5C + db $58, $50 ; BASECOORD_5D + db $60, $60 ; BASECOORD_5E + db $68, $40 ; BASECOORD_5F + db $40, $40 ; BASECOORD_60 + db $38, $40 ; BASECOORD_61 + db $0B, $60 ; BASECOORD_62 + db $44, $48 ; BASECOORD_63 + db $40, $14 ; BASECOORD_64 + db $48, $1C ; BASECOORD_65 + db $50, $24 ; BASECOORD_66 + db $4C, $24 ; BASECOORD_67 + db $10, $62 ; BASECOORD_68 + db $12, $62 ; BASECOORD_69 + db $12, $60 ; BASECOORD_6A + db $20, $72 ; BASECOORD_6B + db $22, $72 ; BASECOORD_6C + db $22, $70 ; BASECOORD_6D + db $28, $62 ; BASECOORD_6E + db $50, $0A ; BASECOORD_6F + db $52, $0A ; BASECOORD_70 + db $38, $30 ; BASECOORD_71 + db $40, $48 ; BASECOORD_72 + db $30, $48 ; BASECOORD_73 + db $40, $30 ; BASECOORD_74 + db $30, $40 ; BASECOORD_75 + db $38, $48 ; BASECOORD_76 + db $40, $4A ; BASECOORD_77 + db $48, $4B ; BASECOORD_78 + db $50, $4C ; BASECOORD_79 + db $58, $4D ; BASECOORD_7A + db $60, $4D ; BASECOORD_7B + db $68, $4D ; BASECOORD_7C + db $38, $10 ; BASECOORD_7D + db $50, $10 ; BASECOORD_7E + db $38, $28 ; BASECOORD_7F + db $48, $18 ; BASECOORD_80 + db $40, $20 ; BASECOORD_81 + db $48, $20 ; BASECOORD_82 + db $40, $3C ; BASECOORD_83 + db $38, $50 ; BASECOORD_84 + db $28, $64 ; BASECOORD_85 + db $1C, $90 ; BASECOORD_86 + db $24, $80 ; BASECOORD_87 + db $2C, $70 ; BASECOORD_88 + db $30, $38 ; BASECOORD_89 + db $10, $50 ; BASECOORD_8A + db $3C, $40 ; BASECOORD_8B + db $40, $58 ; BASECOORD_8C + db $30, $58 ; BASECOORD_8D + db $58, $48 ; BASECOORD_8E + db $50, $58 ; BASECOORD_8F + db $48, $68 ; BASECOORD_90 + db $40, $18 ; BASECOORD_91 + db $28, $58 ; BASECOORD_92 + db $40, $38 ; BASECOORD_93 + db $48, $38 ; BASECOORD_94 + db $08, $70 ; BASECOORD_95 + db $44, $1C ; BASECOORD_96 + db $3C, $58 ; BASECOORD_97 + db $38, $60 ; BASECOORD_98 + db $08, $60 ; BASECOORD_99 + db $38, $70 ; BASECOORD_9A + db $38, $6C ; BASECOORD_9B + db $38, $64 ; BASECOORD_9C + db $1C, $74 ; BASECOORD_9D + db $2E, $74 ; BASECOORD_9E + db $34, $50 ; BASECOORD_9F + db $2F, $60 ; BASECOORD_A0 + db $31, $70 ; BASECOORD_A1 + db $4C, $30 ; BASECOORD_A2 + db $3B, $40 ; BASECOORD_A3 + db $2D, $50 ; BASECOORD_A4 + db $26, $60 ; BASECOORD_A5 + db $2D, $70 ; BASECOORD_A6 + db $28, $50 ; BASECOORD_A7 + db $1E, $60 ; BASECOORD_A8 + db $29, $70 ; BASECOORD_A9 + db $16, $60 ; BASECOORD_AA + db $14, $58 ; BASECOORD_AB + db $12, $54 ; BASECOORD_AC + db $14, $50 ; BASECOORD_AD + db $18, $4C ; BASECOORD_AE + db $1C, $48 ; BASECOORD_AF + db $48, $28 ; BASECOORD_B0 diff --git a/data/battle_anims/frame_blocks.asm b/data/battle_anims/frame_blocks.asm new file mode 100644 index 000000000..8b9b09191 --- /dev/null +++ b/data/battle_anims/frame_blocks.asm @@ -0,0 +1,1238 @@ +FrameBlockPointers: + dw FrameBlock00 + dw FrameBlock01 + dw FrameBlock02 + dw FrameBlock03 + dw FrameBlock04 + dw FrameBlock05 + dw FrameBlock06 + dw FrameBlock07 + dw FrameBlock08 + dw FrameBlock09 + dw FrameBlock0a + dw FrameBlock0b + dw FrameBlock0c + dw FrameBlock0d + dw FrameBlock0e + dw FrameBlock0f + dw FrameBlock10 + dw FrameBlock11 + dw FrameBlock12 + dw FrameBlock13 + dw FrameBlock14 + dw FrameBlock15 + dw FrameBlock16 + dw FrameBlock17 + dw FrameBlock18 + dw FrameBlock19 + dw FrameBlock1a + dw FrameBlock1b + dw FrameBlock1c + dw FrameBlock1d + dw FrameBlock1e + dw FrameBlock1f + dw FrameBlock20 + dw FrameBlock21 + dw FrameBlock22 + dw FrameBlock23 + dw FrameBlock24 + dw FrameBlock25 + dw FrameBlock26 + dw FrameBlock27 + dw FrameBlock28 + dw FrameBlock29 + dw FrameBlock2a + dw FrameBlock2b + dw FrameBlock2c + dw FrameBlock2d + dw FrameBlock2e + dw FrameBlock2f + dw FrameBlock30 + dw FrameBlock31 + dw FrameBlock32 + dw FrameBlock33 + dw FrameBlock34 + dw FrameBlock35 + dw FrameBlock36 + dw FrameBlock37 + dw FrameBlock38 + dw FrameBlock39 + dw FrameBlock3a + dw FrameBlock3b + dw FrameBlock3c + dw FrameBlock3d + dw FrameBlock3e + dw FrameBlock3f + dw FrameBlock40 + dw FrameBlock41 + dw FrameBlock42 + dw FrameBlock43 + dw FrameBlock44 + dw FrameBlock45 + dw FrameBlock46 + dw FrameBlock47 + dw SmallBlackCircleFrameBlock + dw LargeBlackCircleFrameBlock + dw FrameBlock4a + dw FrameBlock4b + dw FrameBlock4c + dw FrameBlock4d + dw FrameBlock4e + dw FrameBlock4f + dw FrameBlock50 + dw FrameBlock51 + dw FrameBlock52 + dw FrameBlock53 + dw FrameBlock54 + dw FrameBlock55 + dw FrameBlock56 + dw FrameBlock57 + dw FrameBlock58 + dw FrameBlock59 + dw FrameBlock5a + dw FrameBlock5b + dw FrameBlock5c + dw FrameBlock5d + dw FrameBlock5e + dw FrameBlock5f + dw FrameBlock60 + dw FrameBlock61 + dw FrameBlock62 + dw FrameBlock63 + dw FrameBlock64 + dw FrameBlock65 + dw FrameBlock66 + dw FrameBlock67 + dw FrameBlock68 + dw FrameBlock69 + dw FrameBlock6a + dw FrameBlock6b + dw FrameBlock6c + dw FrameBlock6d + dw FrameBlock6e + dw FrameBlock6f + dw FrameBlock70 + dw FrameBlock71 + dw FrameBlock72 + dw FrameBlock73 + dw FrameBlock74 + dw FrameBlock75 + dw FrameBlock76 + dw FrameBlock77 + dw FrameBlock78 + dw FrameBlock79 + +FrameBlock01: + db 9 ; # + dbsprite 0, 0, 0, 0, $2c, 0 + dbsprite 1, 0, 0, 0, $2d, 0 + dbsprite 2, 0, 0, 0, $2c, OAM_HFLIP + dbsprite 0, 1, 0, 0, $3c, 0 + dbsprite 1, 1, 0, 0, $3d, 0 + dbsprite 2, 1, 0, 0, $3c, OAM_HFLIP + dbsprite 0, 2, 0, 0, $2c, OAM_VFLIP + dbsprite 1, 2, 0, 0, $2d, OAM_VFLIP + dbsprite 2, 2, 0, 0, $2c, OAM_HFLIP | OAM_VFLIP + +FrameBlock02: + db 16 ; # + dbsprite 0, 0, 0, 0, $20, 0 + dbsprite 1, 0, 0, 0, $21, 0 + dbsprite 2, 0, 0, 0, $21, OAM_HFLIP + dbsprite 3, 0, 0, 0, $20, OAM_HFLIP + dbsprite 0, 1, 0, 0, $30, 0 + dbsprite 1, 1, 0, 0, $31, 0 + dbsprite 2, 1, 0, 0, $31, OAM_HFLIP + dbsprite 3, 1, 0, 0, $30, OAM_HFLIP + dbsprite 0, 2, 0, 0, $30, OAM_VFLIP + dbsprite 1, 2, 0, 0, $31, OAM_VFLIP + dbsprite 2, 2, 0, 0, $31, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 2, 0, 0, $30, OAM_HFLIP | OAM_VFLIP + dbsprite 0, 3, 0, 0, $20, OAM_VFLIP + dbsprite 1, 3, 0, 0, $21, OAM_VFLIP + dbsprite 2, 3, 0, 0, $21, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 3, 0, 0, $20, OAM_HFLIP | OAM_VFLIP + +FrameBlock03: + db 4 ; # + dbsprite 0, 0, 0, 0, $02, 0 + dbsprite 1, 0, 0, 0, $02, OAM_HFLIP + dbsprite 0, 1, 0, 0, $12, 0 + dbsprite 1, 1, 0, 0, $12, OAM_HFLIP + +FrameBlock04: + db 4 ; # + dbsprite 0, 0, 0, 0, $06, 0 + dbsprite 1, 0, 0, 0, $07, 0 + dbsprite 0, 1, 0, 0, $16, 0 + dbsprite 1, 1, 0, 0, $17, 0 + +FrameBlock05: + db 4 ; # + dbsprite 0, 0, 0, 0, $07, OAM_HFLIP + dbsprite 1, 0, 0, 0, $06, OAM_HFLIP + dbsprite 0, 1, 0, 0, $17, OAM_HFLIP + dbsprite 1, 1, 0, 0, $16, OAM_HFLIP + +FrameBlock06: + db 12 ; # + dbsprite 1, 0, 0, 0, $23, 0 + dbsprite 0, 1, 0, 0, $32, 0 + dbsprite 1, 1, 0, 0, $33, 0 + dbsprite 2, 0, 0, 0, $23, OAM_HFLIP + dbsprite 2, 1, 0, 0, $33, OAM_HFLIP + dbsprite 3, 1, 0, 0, $32, OAM_HFLIP + dbsprite 0, 2, 0, 0, $32, OAM_VFLIP + dbsprite 1, 2, 0, 0, $33, OAM_VFLIP + dbsprite 1, 3, 0, 0, $23, OAM_VFLIP + dbsprite 2, 2, 0, 0, $33, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 2, 0, 0, $32, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 3, 0, 0, $23, OAM_HFLIP | OAM_VFLIP + +FrameBlock07: + db 16 ; # + dbsprite 0, 0, 0, 0, $20, 0 + dbsprite 1, 0, 0, 0, $21, 0 + dbsprite 0, 1, 0, 0, $30, 0 + dbsprite 1, 1, 0, 0, $31, 0 + dbsprite 2, 0, 0, 0, $21, OAM_HFLIP + dbsprite 3, 0, 0, 0, $20, OAM_HFLIP + dbsprite 2, 1, 0, 0, $31, OAM_HFLIP + dbsprite 3, 1, 0, 0, $30, OAM_HFLIP + dbsprite 0, 2, 0, 0, $30, OAM_VFLIP + dbsprite 1, 2, 0, 0, $31, OAM_VFLIP + dbsprite 0, 3, 0, 0, $20, OAM_VFLIP + dbsprite 1, 3, 0, 0, $21, OAM_VFLIP + dbsprite 2, 2, 0, 0, $31, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 2, 0, 0, $30, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 3, 0, 0, $21, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 3, 0, 0, $20, OAM_HFLIP | OAM_VFLIP + +FrameBlock08: + db 16 ; # + dbsprite 0, 0, 0, 0, $20, 0 + dbsprite 1, 0, 0, 0, $21, 0 + dbsprite 0, 1, 0, 0, $30, 0 + dbsprite 1, 1, 0, 0, $31, 0 + dbsprite 3, 0, 0, 0, $21, OAM_HFLIP + dbsprite 4, 0, 0, 0, $20, OAM_HFLIP + dbsprite 3, 1, 0, 0, $31, OAM_HFLIP + dbsprite 4, 1, 0, 0, $30, OAM_HFLIP + dbsprite 0, 3, 0, 0, $30, OAM_VFLIP + dbsprite 1, 3, 0, 0, $31, OAM_VFLIP + dbsprite 0, 4, 0, 0, $20, OAM_VFLIP + dbsprite 1, 4, 0, 0, $21, OAM_VFLIP + dbsprite 3, 3, 0, 0, $31, OAM_HFLIP | OAM_VFLIP + dbsprite 4, 3, 0, 0, $30, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 4, 0, 0, $21, OAM_HFLIP | OAM_VFLIP + dbsprite 4, 4, 0, 0, $20, OAM_HFLIP | OAM_VFLIP + +FrameBlock09: + db 12 ; # + dbsprite 0, 0, 0, 0, $24, 0 + dbsprite 1, 0, 0, 0, $25, 0 + dbsprite 0, 1, 0, 0, $34, 0 + dbsprite 3, 0, 0, 0, $25, OAM_HFLIP + dbsprite 4, 0, 0, 0, $24, OAM_HFLIP + dbsprite 4, 1, 0, 0, $34, OAM_HFLIP + dbsprite 0, 3, 0, 0, $34, OAM_VFLIP + dbsprite 0, 4, 0, 0, $24, OAM_VFLIP + dbsprite 1, 4, 0, 0, $25, OAM_VFLIP + dbsprite 4, 3, 0, 0, $34, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 4, 0, 0, $25, OAM_HFLIP | OAM_VFLIP + dbsprite 4, 4, 0, 0, $24, OAM_HFLIP | OAM_VFLIP + +FrameBlock0a: + db 12 ; # + dbsprite 0, 0, 0, 0, $24, 0 + dbsprite 1, 0, 0, 0, $25, 0 + dbsprite 0, 1, 0, 0, $34, 0 + dbsprite 4, 0, 0, 0, $25, OAM_HFLIP + dbsprite 5, 0, 0, 0, $24, OAM_HFLIP + dbsprite 5, 1, 0, 0, $34, OAM_HFLIP + dbsprite 0, 4, 0, 0, $34, OAM_VFLIP + dbsprite 0, 5, 0, 0, $24, OAM_VFLIP + dbsprite 1, 5, 0, 0, $25, OAM_VFLIP + dbsprite 5, 4, 0, 0, $34, OAM_HFLIP | OAM_VFLIP + dbsprite 4, 5, 0, 0, $25, OAM_HFLIP | OAM_VFLIP + dbsprite 5, 5, 0, 0, $24, OAM_HFLIP | OAM_VFLIP + +FrameBlock0b: + db 4 ; # + dbsprite 0, 0, 0, 0, $05, 0 + dbsprite 1, 0, 0, 0, $05, OAM_HFLIP + dbsprite 0, 1, 0, 0, $15, 0 + dbsprite 1, 1, 0, 0, $15, OAM_HFLIP + +FrameBlock0c: + db 4 ; # + dbsprite 0, 0, 0, 0, $04, 0 + dbsprite 1, 0, 0, 0, $04, OAM_HFLIP + dbsprite 0, 1, 0, 0, $14, 0 + dbsprite 1, 1, 0, 0, $14, OAM_HFLIP + +FrameBlock0d: + db 8 ; # + dbsprite 0, 0, 0, 0, $0c, 0 + dbsprite 1, 0, 0, 0, $0d, 0 + dbsprite 0, 1, 0, 0, $1c, 0 + dbsprite 1, 1, 0, 0, $1d, 0 + dbsprite 0, 2, 0, 0, $1d, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 2, 0, 0, $1c, OAM_HFLIP | OAM_VFLIP + dbsprite 0, 3, 0, 0, $0d, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 3, 0, 0, $0c, OAM_HFLIP | OAM_VFLIP + +FrameBlock0e: + db 4 ; # + dbsprite 0, 4, 0, 0, $0c, 0 + dbsprite 1, 4, 0, 0, $0d, 0 + dbsprite 0, 5, 0, 0, $1c, 0 + dbsprite 1, 5, 0, 0, $1d, 0 + +FrameBlock0f: + db 4 ; # + dbsprite 0, 6, 0, 0, $1d, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 6, 0, 0, $1c, OAM_HFLIP | OAM_VFLIP + dbsprite 0, 7, 0, 0, $0d, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 7, 0, 0, $0c, OAM_HFLIP | OAM_VFLIP + +FrameBlock10: + db 8 ; # + dbsprite 0, 0, 0, 0, $0e, 0 + dbsprite 1, 0, 0, 0, $0f, 0 + dbsprite 0, 1, 0, 0, $1e, 0 + dbsprite 1, 1, 0, 0, $1f, 0 + dbsprite 2, 0, 0, 0, $0f, OAM_HFLIP + dbsprite 3, 0, 0, 0, $0e, OAM_HFLIP + dbsprite 2, 1, 0, 0, $1f, OAM_HFLIP + dbsprite 3, 1, 0, 0, $1e, OAM_HFLIP + +FrameBlock11: + db 8 ; # + dbsprite 0, 0, 0, 0, $0e, 0 + dbsprite 1, 0, 0, 0, $0f, 0 + dbsprite 0, 1, 0, 0, $1e, 0 + dbsprite 1, 1, 0, 0, $1f, 0 + dbsprite 4, 0, 0, 0, $0f, OAM_HFLIP + dbsprite 5, 0, 0, 0, $0e, OAM_HFLIP + dbsprite 4, 1, 0, 0, $1f, OAM_HFLIP + dbsprite 5, 1, 0, 0, $1e, OAM_HFLIP + +FrameBlock12: + db 3 ; # + dbsprite 0, 0, 0, 0, $37, 0 + dbsprite 2, 1, 0, 0, $37, 0 + dbsprite 4, 0, 0, 0, $37, 0 + +FrameBlock13: + db 4 ; # + dbsprite 0, 0, 0, 0, $36, 0 + dbsprite 1, 0, 0, 0, $36, OAM_HFLIP + dbsprite 0, 1, 0, 0, $36, OAM_VFLIP + dbsprite 1, 1, 0, 0, $36, OAM_HFLIP | OAM_VFLIP + +FrameBlock14: + db 8 ; # + dbsprite 2, 0, 0, 0, $28, 0 + dbsprite 3, 0, 0, 0, $28, OAM_HFLIP + dbsprite 2, 1, 0, 0, $38, 0 + dbsprite 3, 1, 0, 0, $38, OAM_HFLIP + dbsprite 4, 0, 0, 0, $36, 0 + dbsprite 5, 0, 0, 0, $36, OAM_HFLIP + dbsprite 4, 1, 0, 0, $36, OAM_VFLIP + dbsprite 5, 1, 0, 0, $36, OAM_HFLIP | OAM_VFLIP + +FrameBlock15: + db 12 ; # + dbsprite 0, 0, 0, 0, $28, 0 + dbsprite 1, 0, 0, 0, $28, OAM_HFLIP + dbsprite 0, 1, 0, 0, $38, 0 + dbsprite 1, 1, 0, 0, $38, OAM_HFLIP + dbsprite 2, 0, 0, 0, $29, 0 + dbsprite 3, 0, 0, 0, $29, OAM_HFLIP + dbsprite 2, 1, 0, 0, $39, 0 + dbsprite 3, 1, 0, 0, $39, OAM_HFLIP + dbsprite 4, 0, 0, 0, $28, 0 + dbsprite 5, 0, 0, 0, $28, OAM_HFLIP + dbsprite 4, 1, 0, 0, $38, 0 + dbsprite 5, 1, 0, 0, $38, OAM_HFLIP + +FrameBlock16: + db 8 ; # + dbsprite 0, 0, 0, 0, $29, 0 + dbsprite 1, 0, 0, 0, $29, OAM_HFLIP + dbsprite 0, 1, 0, 0, $39, 0 + dbsprite 1, 1, 0, 0, $39, OAM_HFLIP + dbsprite 4, 0, 0, 0, $29, 0 + dbsprite 5, 0, 0, 0, $29, OAM_HFLIP + dbsprite 4, 1, 0, 0, $39, 0 + dbsprite 5, 1, 0, 0, $39, OAM_HFLIP + +FrameBlock17: + db 4 ; # + dbsprite 0, 0, 0, 0, $08, 0 + dbsprite 1, 0, 0, 0, $09, 0 + dbsprite 0, 1, 0, 0, $18, 0 + dbsprite 1, 1, 0, 0, $19, 0 + +FrameBlock18: + db 1 ; # + dbsprite 0, 3, 0, 0, $45, OAM_HFLIP | OAM_VFLIP + +FrameBlock19: + db 2 ; # + dbsprite 1, 3, 0, 0, $45, 0 + dbsprite 1, 2, 0, 0, $46, OAM_HFLIP | OAM_VFLIP + +FrameBlock1a: + db 2 ; # + dbsprite 2, 2, 0, 0, $45, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 3, 0, 0, $46, 0 + +FrameBlock1b: + db 2 ; # + dbsprite 3, 2, 0, 0, $45, 0 + dbsprite 3, 1, 0, 0, $46, OAM_HFLIP | OAM_VFLIP + +FrameBlock1c: + db 2 ; # + dbsprite 4, 1, 0, 0, $45, OAM_HFLIP | OAM_VFLIP + dbsprite 4, 2, 0, 0, $46, 0 + +FrameBlock1d: + db 2 ; # + dbsprite 5, 1, 0, 0, $45, 0 + dbsprite 5, 0, 0, 0, $46, OAM_HFLIP | OAM_VFLIP + +FrameBlock1e: + db 2 ; # + dbsprite 6, 0, 0, 0, $45, OAM_HFLIP | OAM_VFLIP + dbsprite 6, 1, 0, 0, $46, 0 + +FrameBlock75: + db 4 ; # + dbsprite 0, 0, 0, 0, $43, 0 + dbsprite 1, 0, 0, 0, $43, OAM_HFLIP + dbsprite 0, 1, 0, 0, $22, 0 + dbsprite 1, 1, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + +FrameBlock1f: + db 2 ; # + dbsprite 0, 0, 0, 0, $03, 0 + dbsprite 6, 0, 0, 0, $03, OAM_HFLIP + +FrameBlock20: + db 6 ; # + dbsprite 0, 0, 0, 0, $03, 0 + dbsprite 6, 0, 0, 0, $03, OAM_HFLIP + dbsprite 1, 1, 0, 0, $03, 0 + dbsprite 5, 1, 0, 0, $03, OAM_HFLIP + dbsprite 0, 1, 0, 0, $13, 0 + dbsprite 6, 1, 0, 0, $13, OAM_HFLIP + +FrameBlock21: + db 12 ; # + dbsprite 0, 0, 0, 0, $03, 0 + dbsprite 6, 0, 0, 0, $03, OAM_HFLIP + dbsprite 1, 1, 0, 0, $03, 0 + dbsprite 5, 1, 0, 0, $03, OAM_HFLIP + dbsprite 0, 1, 0, 0, $13, 0 + dbsprite 6, 1, 0, 0, $13, OAM_HFLIP + dbsprite 2, 2, 0, 0, $03, 0 + dbsprite 4, 2, 0, 0, $03, OAM_HFLIP + dbsprite 1, 2, 0, 0, $13, 0 + dbsprite 5, 2, 0, 0, $13, OAM_HFLIP + dbsprite 0, 2, 0, 0, $03, 0 + dbsprite 6, 2, 0, 0, $03, OAM_HFLIP + +FrameBlock22: + db 19 ; # + dbsprite 0, 0, 0, 0, $03, 0 + dbsprite 0, 1, 0, 0, $13, 0 + dbsprite 0, 2, 0, 0, $03, 0 + dbsprite 0, 3, 0, 0, $13, 0 + dbsprite 1, 1, 0, 0, $03, 0 + dbsprite 1, 2, 0, 0, $13, 0 + dbsprite 1, 3, 0, 0, $03, 0 + dbsprite 2, 2, 0, 0, $03, 0 + dbsprite 2, 3, 0, 0, $13, 0 + dbsprite 3, 3, 0, 0, $03, 0 + dbsprite 4, 2, 0, 0, $03, OAM_HFLIP + dbsprite 4, 3, 0, 0, $13, OAM_HFLIP + dbsprite 5, 1, 0, 0, $03, OAM_HFLIP + dbsprite 5, 2, 0, 0, $13, OAM_HFLIP + dbsprite 5, 3, 0, 0, $03, OAM_HFLIP + dbsprite 6, 0, 0, 0, $03, OAM_HFLIP + dbsprite 6, 1, 0, 0, $13, OAM_HFLIP + dbsprite 6, 2, 0, 0, $03, OAM_HFLIP + dbsprite 6, 3, 0, 0, $13, OAM_HFLIP + +FrameBlock23: + db 4 ; # + dbsprite 0, 0, 0, 0, $0a, 0 + dbsprite 1, 0, 0, 0, $0b, 0 + dbsprite 0, 1, 0, 0, $1a, 0 + dbsprite 1, 1, 0, 0, $1b, 0 + +FrameBlock24: + db 2 ; # + dbsprite 0, 1, 0, 0, $0a, 0 + dbsprite 1, 1, 0, 0, $0b, 0 + +FrameBlock25: + db 12 ; # + dbsprite 0, 2, 0, 0, $0a, 0 + dbsprite 1, 2, 0, 0, $0b, 0 + dbsprite 0, 3, 0, 0, $1a, 0 + dbsprite 1, 3, 0, 0, $1b, 0 + dbsprite 2, 0, 0, 0, $0a, 0 + dbsprite 3, 0, 0, 0, $0b, 0 + dbsprite 2, 1, 0, 0, $1a, 0 + dbsprite 3, 1, 0, 0, $1b, 0 + dbsprite 4, 1, 0, 0, $0a, 0 + dbsprite 5, 1, 0, 0, $0b, 0 + dbsprite 4, 2, 0, 0, $1a, 0 + dbsprite 5, 2, 0, 0, $1b, 0 + +FrameBlock26: + db 4 ; # + dbsprite 2, 0, 0, 0, $44, 0 + dbsprite 3, 0, 0, 0, $44, OAM_HFLIP + dbsprite 2, 1, 0, 0, $44, OAM_VFLIP + dbsprite 3, 1, 0, 0, $44, OAM_HFLIP | OAM_VFLIP + +FrameBlock27: + db 5 ; # + dbsprite 1, 1, 0, 0, $44, 0 + dbsprite 2, 1, 0, 0, $44, OAM_HFLIP + dbsprite 1, 2, 0, 0, $44, OAM_VFLIP + dbsprite 2, 2, 0, 0, $44, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 0, 0, 0, $47, 0 + +FrameBlock28: + db 6 ; # + dbsprite 0, 2, 0, 0, $44, 0 + dbsprite 1, 2, 0, 0, $44, OAM_HFLIP + dbsprite 0, 3, 0, 0, $44, OAM_VFLIP + dbsprite 1, 3, 0, 0, $44, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 1, 0, 0, $47, 0 + dbsprite 2, 0, 6, 2, $47, 0 + +FrameBlock29: + db 4 ; # + dbsprite 0, 3, 0, 0, $47, 0 + dbsprite 0, 2, 6, 2, $47, 0 + dbsprite 1, 1, 4, 4, $47, 0 + dbsprite 2, 0, 2, 6, $47, 0 + +FrameBlock2a: + db 4 ; # + dbsprite 0, 0, 0, 0, $44, 0 + dbsprite 1, 0, 0, 0, $44, OAM_HFLIP + dbsprite 0, 1, 0, 0, $44, OAM_VFLIP + dbsprite 1, 1, 0, 0, $44, OAM_HFLIP | OAM_VFLIP + +FrameBlock2b: + db 2 ; # + dbsprite 0, 0, 2, 6, $47, 0 + dbsprite 1, 0, 0, 0, $47, 0 + +FrameBlock2c: + db 1 ; # + dbsprite 0, 20, 0, 0, $4d, 0 + +FrameBlock2d: + db 8 ; # + dbsprite 0, 0, 0, 0, $26, 0 + dbsprite 1, 0, 0, 0, $27, 0 + dbsprite 0, 1, 0, 0, $36, 0 + dbsprite 1, 1, 0, 0, $37, 0 + dbsprite 0, 2, 0, 0, $28, 0 + dbsprite 1, 2, 0, 0, $29, 0 + dbsprite 0, 3, 0, 0, $38, 0 + dbsprite 1, 3, 0, 0, $39, 0 + +FrameBlock2e: + db 8 ; # + dbsprite 0, 0, 0, 0, $27, OAM_HFLIP + dbsprite 1, 0, 0, 0, $26, OAM_HFLIP + dbsprite 0, 1, 0, 0, $37, OAM_HFLIP + dbsprite 1, 1, 0, 0, $36, OAM_HFLIP + dbsprite 0, 2, 0, 0, $29, OAM_HFLIP + dbsprite 1, 2, 0, 0, $28, OAM_HFLIP + dbsprite 0, 3, 0, 0, $39, OAM_HFLIP + dbsprite 1, 3, 0, 0, $38, OAM_HFLIP + +FrameBlock2f: + db 4 ; # + dbsprite 0, 0, 0, 0, $0c, 0 + dbsprite 1, 0, 0, 0, $0d, 0 + dbsprite 0, 1, 0, 0, $0c, OAM_VFLIP + dbsprite 1, 1, 0, 0, $0d, OAM_VFLIP + +FrameBlock30: + db 4 ; # + dbsprite 0, 0, 0, 0, $44, 0 + dbsprite 1, 0, 0, 0, $44, OAM_HFLIP + dbsprite 0, 1, 0, 0, $44, OAM_VFLIP + dbsprite 1, 1, 0, 0, $44, OAM_HFLIP | OAM_VFLIP + +FrameBlock31: + db 1 ; # + dbsprite 0, 0, 0, 0, $45, 0 + +FrameBlock32: + db 7 ; # + dbsprite 0, 0, 0, 0, $4d, 0 + dbsprite 1, 0, 0, 0, $2f, 0 + dbsprite 2, 0, 0, 0, $4d, OAM_HFLIP + dbsprite 0, 1, 0, 0, $4e, 0 + dbsprite 1, 1, 0, 0, $07, 0 + dbsprite 2, 1, 0, 0, $4e, OAM_HFLIP + dbsprite 1, 2, 0, 0, $3f, 0 + +FrameBlock33: + db 7 ; # + dbsprite 1, 0, 0, 0, $3f, OAM_VFLIP + dbsprite 0, 1, 0, 0, $4e, OAM_VFLIP + dbsprite 1, 1, 0, 0, $07, OAM_VFLIP + dbsprite 2, 1, 0, 0, $4e, OAM_HFLIP | OAM_VFLIP + dbsprite 0, 2, 0, 0, $4d, OAM_VFLIP + dbsprite 1, 2, 0, 0, $2f, OAM_VFLIP + dbsprite 2, 2, 0, 0, $4d, OAM_HFLIP | OAM_VFLIP + +FrameBlock34: + db 1 ; # + dbsprite 0, 20, 0, 0, $00, OAM_OBP1 + +FrameBlock35: + db 6 ; # + dbsprite 0, 0, 0, 0, $2a, 0 + dbsprite 1, 0, 0, 0, $2b, 0 + dbsprite 0, 1, 0, 0, $3a, 0 + dbsprite 0, 2, 0, 0, $3a, OAM_VFLIP + dbsprite 0, 3, 0, 0, $2a, OAM_VFLIP + dbsprite 1, 3, 0, 0, $2b, OAM_VFLIP + +FrameBlock36: + db 4 ; # + dbsprite 0, 0, 0, 0, $00, 0 + dbsprite 1, 0, 0, 0, $01, 0 + dbsprite 0, 1, 0, 0, $10, 0 + dbsprite 1, 1, 0, 0, $11, 0 + +FrameBlock37: + db 4 ; # + dbsprite 0, 0, 0, 0, $01, OAM_BEHIND_BG | OAM_HFLIP + dbsprite 1, 0, 0, 0, $00, OAM_BEHIND_BG | OAM_HFLIP + dbsprite 0, 1, 0, 0, $11, OAM_BEHIND_BG | OAM_HFLIP + dbsprite 1, 1, 0, 0, $10, OAM_BEHIND_BG | OAM_HFLIP + +FrameBlock38: + db 4 ; # + dbsprite 0, 0, 0, 0, $0a, 0 + dbsprite 1, 0, 0, 0, $0b, 0 + dbsprite 0, 1, 0, 0, $1a, 0 + dbsprite 1, 1, 0, 0, $1b, 0 + +FrameBlock39: + db 4 ; # + dbsprite 0, 0, 0, 0, $0b, OAM_HFLIP + dbsprite 1, 0, 0, 0, $0a, OAM_HFLIP + dbsprite 0, 1, 0, 0, $1b, OAM_HFLIP + dbsprite 1, 1, 0, 0, $1a, OAM_HFLIP + +FrameBlock3a: + db 4 ; # + dbsprite 0, 4, 0, 0, $05, 0 + dbsprite 1, 4, 0, 0, $05, OAM_HFLIP + dbsprite 0, 5, 0, 0, $15, 0 + dbsprite 1, 5, 0, 0, $15, OAM_HFLIP + +FrameBlock3b: + db 5 ; # + dbsprite 0, 3, 0, 0, $04, 0 + dbsprite 1, 3, 0, 0, $04, OAM_HFLIP + dbsprite 0, 4, 0, 0, $14, 0 + dbsprite 1, 4, 0, 0, $14, OAM_HFLIP + dbsprite 0, 5, 4, 0, $41, 0 + +FrameBlock3c: + db 6 ; # + dbsprite 0, 2, 0, 0, $05, 0 + dbsprite 1, 2, 0, 0, $05, OAM_HFLIP + dbsprite 0, 3, 0, 0, $15, 0 + dbsprite 1, 3, 0, 0, $15, OAM_HFLIP + dbsprite 0, 4, 4, 0, $42, 0 + dbsprite 0, 5, 4, 0, $42, 0 + +FrameBlock3d: + db 7 ; # + dbsprite 0, 1, 0, 0, $04, 0 + dbsprite 1, 1, 0, 0, $04, OAM_HFLIP + dbsprite 0, 2, 0, 0, $14, 0 + dbsprite 1, 2, 0, 0, $14, OAM_HFLIP + dbsprite 0, 3, 4, 0, $41, 0 + dbsprite 0, 4, 4, 0, $41, 0 + dbsprite 0, 5, 4, 0, $41, 0 + +FrameBlock3e: + db 8 ; # + dbsprite 0, 0, 0, 0, $05, 0 + dbsprite 1, 0, 0, 0, $05, OAM_HFLIP + dbsprite 0, 1, 0, 0, $15, 0 + dbsprite 1, 1, 0, 0, $15, OAM_HFLIP + dbsprite 0, 2, 4, 0, $42, 0 + dbsprite 0, 3, 4, 0, $42, 0 + dbsprite 0, 4, 4, 0, $42, 0 + dbsprite 0, 5, 4, 0, $42, 0 + +FrameBlock3f: + db 8 ; # + dbsprite 0, 0, 0, 0, $04, 0 + dbsprite 1, 0, 0, 0, $04, OAM_HFLIP + dbsprite 0, 1, 0, 0, $14, 0 + dbsprite 1, 1, 0, 0, $14, OAM_HFLIP + dbsprite 0, 2, 4, 0, $41, 0 + dbsprite 0, 3, 4, 0, $41, 0 + dbsprite 0, 4, 4, 0, $41, 0 + dbsprite 0, 5, 4, 0, $41, 0 + +FrameBlock40: + db 3 ; # + dbsprite 0, 0, 0, 0, $3d, 0 + dbsprite 1, 0, 0, 0, $3d, 0 + dbsprite 1, 1, 0, 0, $3d, 0 + +FrameBlock41: + db 4 ; # + dbsprite 0, 0, 0, 0, $06, 0 + dbsprite 1, 0, 0, 0, $06, OAM_HFLIP + dbsprite 0, 1, 0, 0, $16, 0 + dbsprite 1, 1, 0, 0, $17, 0 + +FrameBlock42: + db 11 ; # + dbsprite 2, 0, 0, 0, $42, 0 + dbsprite 0, 1, 0, 0, $42, 0 + dbsprite 1, 1, 0, 0, $42, 0 + dbsprite 2, 1, 0, 0, $42, 0 + dbsprite 3, 1, 0, 0, $42, 0 + dbsprite 4, 1, 0, 0, $42, 0 + dbsprite 2, 2, 0, 0, $42, 0 + dbsprite 1, 3, 0, 0, $42, 0 + dbsprite 3, 3, 0, 0, $42, 0 + dbsprite 0, 4, 0, 0, $42, 0 + dbsprite 4, 4, 0, 0, $42, 0 + +FrameBlock43: + db 11 ; # + dbsprite 2, 0, 0, 0, $41, 0 + dbsprite 0, 1, 0, 0, $41, 0 + dbsprite 1, 1, 0, 0, $41, 0 + dbsprite 2, 1, 0, 0, $41, 0 + dbsprite 3, 1, 0, 0, $41, 0 + dbsprite 4, 1, 0, 0, $41, 0 + dbsprite 2, 2, 0, 0, $41, 0 + dbsprite 1, 3, 0, 0, $41, 0 + dbsprite 3, 3, 0, 0, $41, 0 + dbsprite 0, 4, 0, 0, $41, 0 + dbsprite 4, 4, 0, 0, $41, 0 + +FrameBlock44: + db 4 ; # + dbsprite 0, 0, 0, 0, $49, 0 + dbsprite 5, 0, 0, 0, $49, 0 + dbsprite 0, 5, 0, 0, $49, 0 + dbsprite 5, 5, 0, 0, $49, 0 + +FrameBlock45: + db 4 ; # + dbsprite 0, 0, 0, 0, $49, 0 + dbsprite 3, 0, 0, 0, $49, 0 + dbsprite 0, 3, 0, 0, $49, 0 + dbsprite 3, 3, 0, 0, $49, 0 + +FrameBlock46: + db 4 ; # + dbsprite 0, 0, 0, 0, $49, 0 + dbsprite 1, 0, 0, 0, $49, 0 + dbsprite 0, 1, 0, 0, $49, 0 + dbsprite 1, 1, 0, 0, $49, 0 + +FrameBlock47: + db 4 ; # + dbsprite 0, 0, 0, 0, $43, 0 + dbsprite 1, 0, 0, 0, $43, OAM_HFLIP + dbsprite 0, 1, 0, 0, $43, OAM_VFLIP + dbsprite 1, 1, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + +SmallBlackCircleFrameBlock: + db 4 ; # + dbsprite 1, 1, 0, 0, $33, 0 + dbsprite 2, 1, 0, 0, $33, OAM_HFLIP + dbsprite 1, 2, 0, 0, $33, OAM_VFLIP + dbsprite 2, 2, 0, 0, $33, OAM_HFLIP | OAM_VFLIP + +LargeBlackCircleFrameBlock: + db 16 ; # + dbsprite 0, 0, 0, 0, $22, 0 + dbsprite 1, 0, 0, 0, $23, 0 + dbsprite 2, 0, 0, 0, $23, OAM_HFLIP + dbsprite 3, 0, 0, 0, $22, OAM_HFLIP + dbsprite 0, 1, 0, 0, $32, 0 + dbsprite 1, 1, 0, 0, $43, 0 + dbsprite 2, 1, 0, 0, $43, OAM_HFLIP + dbsprite 3, 1, 0, 0, $32, OAM_HFLIP + dbsprite 0, 2, 0, 0, $32, OAM_VFLIP + dbsprite 1, 2, 0, 0, $43, OAM_VFLIP + dbsprite 2, 2, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 2, 0, 0, $32, OAM_HFLIP | OAM_VFLIP + dbsprite 0, 3, 0, 0, $22, OAM_VFLIP + dbsprite 1, 3, 0, 0, $23, OAM_VFLIP + dbsprite 2, 3, 0, 0, $23, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 3, 0, 0, $22, OAM_HFLIP | OAM_VFLIP + +FrameBlock71: + db 16 ; # + dbsprite 0, 0, 0, 0, $22, 0 + dbsprite 1, 0, 0, 0, $3b, 0 + dbsprite 2, 0, 0, 0, $23, OAM_HFLIP + dbsprite 3, 0, 0, 0, $22, OAM_HFLIP + dbsprite 0, 1, 0, 0, $32, 0 + dbsprite 1, 1, 0, 0, $43, 0 + dbsprite 2, 1, 0, 0, $43, OAM_HFLIP + dbsprite 3, 1, 0, 0, $32, OAM_HFLIP + dbsprite 0, 2, 0, 0, $32, OAM_VFLIP + dbsprite 1, 2, 0, 0, $43, OAM_VFLIP + dbsprite 2, 2, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 2, 0, 0, $32, OAM_HFLIP | OAM_VFLIP + dbsprite 0, 3, 0, 0, $22, OAM_VFLIP + dbsprite 1, 3, 0, 0, $23, OAM_VFLIP + dbsprite 2, 3, 0, 0, $23, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 3, 0, 0, $22, OAM_HFLIP | OAM_VFLIP + +FrameBlock72: + db 12 ; # + dbsprite 0, 0, 0, 0, $32, 0 + dbsprite 1, 0, 0, 0, $43, 0 + dbsprite 2, 0, 0, 0, $43, OAM_HFLIP + dbsprite 3, 0, 0, 0, $32, OAM_HFLIP + dbsprite 0, 1, 0, 0, $32, OAM_VFLIP + dbsprite 1, 1, 0, 0, $43, OAM_VFLIP + dbsprite 2, 1, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 1, 0, 0, $32, OAM_HFLIP | OAM_VFLIP + dbsprite 0, 2, 0, 0, $22, OAM_VFLIP + dbsprite 1, 2, 0, 0, $23, OAM_VFLIP + dbsprite 2, 2, 0, 0, $23, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 2, 0, 0, $22, OAM_HFLIP | OAM_VFLIP + +FrameBlock73: + db 8 ; # + dbsprite 0, 0, 0, 0, $32, OAM_VFLIP + dbsprite 1, 0, 0, 0, $43, OAM_VFLIP + dbsprite 2, 0, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 0, 0, 0, $32, OAM_HFLIP | OAM_VFLIP + dbsprite 0, 1, 0, 0, $22, OAM_VFLIP + dbsprite 1, 1, 0, 0, $23, OAM_VFLIP + dbsprite 2, 1, 0, 0, $23, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 1, 0, 0, $22, OAM_HFLIP | OAM_VFLIP + +FrameBlock74: + db 4 ; # + dbsprite 0, 0, 0, 0, $22, OAM_VFLIP + dbsprite 1, 0, 0, 0, $23, OAM_VFLIP + dbsprite 2, 0, 0, 0, $23, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 0, 0, 0, $22, OAM_HFLIP | OAM_VFLIP + +FrameBlock4a: + db 4 ; # + dbsprite 3, 1, 0, 0, $4c, OAM_HFLIP + dbsprite 1, 4, 0, 0, $4b, 0 + dbsprite 4, 6, 0, 0, $4c, 0 + dbsprite 6, 3, 0, 0, $4b, OAM_VFLIP + +FrameBlock4b: + db 4 ; # + dbsprite 3, 0, 0, 0, $4c, 0 + dbsprite 0, 4, 0, 0, $4b, OAM_VFLIP + dbsprite 4, 7, 0, 0, $4c, OAM_HFLIP + dbsprite 7, 3, 0, 0, $4b, 0 + +FrameBlock4c: + db 4 ; # + dbsprite 1, 2, 0, 0, $4a, OAM_VFLIP + dbsprite 2, 6, 0, 0, $4a, 0 + dbsprite 6, 5, 0, 0, $4a, OAM_HFLIP + dbsprite 5, 1, 0, 0, $4a, OAM_HFLIP | OAM_VFLIP + +FrameBlock4d: + db 4 ; # + dbsprite 0, 1, 0, 0, $4a, OAM_HFLIP + dbsprite 1, 7, 0, 0, $4a, OAM_HFLIP | OAM_VFLIP + dbsprite 7, 6, 0, 0, $4a, OAM_VFLIP + dbsprite 6, 0, 0, 0, $4a, 0 + +FrameBlock4e: + db 8 ; # + dbsprite 6, 0, 0, 0, $44, 0 + dbsprite 7, 0, 0, 0, $44, OAM_HFLIP + dbsprite 6, 1, 0, 0, $44, OAM_VFLIP + dbsprite 7, 1, 0, 0, $44, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 4, 2, 6, $44, 0 + dbsprite 2, 4, 2, 6, $44, OAM_HFLIP + dbsprite 1, 5, 2, 6, $44, OAM_VFLIP + dbsprite 2, 5, 2, 6, $44, OAM_HFLIP | OAM_VFLIP + +FrameBlock4f: + db 12 ; # + dbsprite 4, 1, 2, 6, $44, 0 + dbsprite 5, 1, 2, 6, $44, OAM_HFLIP + dbsprite 4, 2, 2, 6, $44, OAM_VFLIP + dbsprite 5, 2, 2, 6, $44, OAM_HFLIP | OAM_VFLIP + dbsprite 6, 0, 2, 6, $47, 0 + dbsprite 7, 0, 0, 0, $47, 0 + dbsprite 2, 3, 6, 2, $44, 0 + dbsprite 3, 3, 6, 2, $44, OAM_HFLIP + dbsprite 2, 4, 6, 2, $44, OAM_VFLIP + dbsprite 3, 4, 6, 2, $44, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 6, 0, 0, $47, 0 + dbsprite 1, 5, 6, 2, $47, 0 + +FrameBlock50: + db 8 ; # + dbsprite 6, 0, 2, 6, $47, 0 + dbsprite 7, 0, 0, 0, $47, 0 + dbsprite 4, 2, 6, 2, $47, 0 + dbsprite 5, 1, 4, 4, $47, 0 + dbsprite 3, 3, 2, 6, $47, 0 + dbsprite 4, 3, 0, 0, $47, 0 + dbsprite 1, 5, 6, 2, $47, 0 + dbsprite 2, 4, 4, 4, $47, 0 + +FrameBlock51: + db 8 ; # + dbsprite 0, 0, 0, 0, $35, OAM_HFLIP + dbsprite 0, 1, 0, 0, $35, OAM_VFLIP + dbsprite 0, 2, 0, 0, $35, 0 + dbsprite 0, 3, 0, 0, $35, OAM_HFLIP | OAM_VFLIP + dbsprite 8, 0, 0, 0, $35, 0 + dbsprite 8, 1, 0, 0, $35, OAM_HFLIP | OAM_VFLIP + dbsprite 8, 2, 0, 0, $35, OAM_HFLIP + dbsprite 8, 3, 0, 0, $35, OAM_VFLIP + +FrameBlock52: + db 4 ; # + dbsprite 0, 0, 0, 0, $2a, 0 + dbsprite 1, 0, 0, 0, $2b, 0 + dbsprite 0, 1, 0, 0, $3a, 0 + dbsprite 1, 1, 0, 0, $3b, 0 + +FrameBlock53: + db 3 ; # + dbsprite 0, 0, 0, 0, $3f, 0 + dbsprite 1, 0, 0, 0, $3f, 0 + dbsprite 0, 1, 6, 0, $3f, 0 + +FrameBlock54: + db 4 ; # + dbsprite 0, 0, 0, 0, $0e, 0 + dbsprite 1, 0, 0, 0, $0e, OAM_HFLIP + dbsprite 0, 1, 0, 0, $0f, 0 + dbsprite 1, 1, 0, 0, $0f, OAM_HFLIP + +FrameBlock55: + db 3 ; # + dbsprite 0, 2, 0, 0, $2c, 0 + dbsprite 1, 2, 0, 0, $3c, 0 + dbsprite 2, 2, 0, 0, $2d, 0 + +FrameBlock56: + db 6 ; # + dbsprite 2, 2, 0, 0, $31, 0 + dbsprite 3, 2, 0, 0, $31, 0 + dbsprite 2, 1, 0, 0, $2c, 0 + dbsprite 3, 1, 0, 0, $3c, 0 + dbsprite 4, 1, 0, 0, $2d, 0 + dbsprite 4, 2, 0, 0, $2d, 0 + +FrameBlock57: + db 9 ; # + dbsprite 4, 1, 0, 0, $31, 0 + dbsprite 4, 2, 0, 0, $31, 0 + dbsprite 5, 1, 0, 0, $31, 0 + dbsprite 5, 2, 0, 0, $31, 0 + dbsprite 4, 0, 0, 0, $2c, 0 + dbsprite 5, 0, 0, 0, $3c, 0 + dbsprite 6, 0, 0, 0, $2d, 0 + dbsprite 6, 1, 0, 0, $2d, 0 + dbsprite 6, 2, 0, 0, $2d, 0 + +FrameBlock58: + db 7 ; # + dbsprite 0, 0, 0, 0, $46, 0 + dbsprite 0, 1, 2, 0, $47, 0 + dbsprite 0, 2, 3, 0, $48, 0 + dbsprite 0, 3, 4, 0, $48, 0 + dbsprite 0, 4, 5, 0, $48, 0 + dbsprite 0, 5, 5, 0, $48, 0 + dbsprite 0, 6, 5, 0, $48, 0 + +FrameBlock59: + db 1 ; # + dbsprite 0, 0, 0, 0, $42, 0 + +FrameBlock5a: + db 12 ; # + dbsprite 0, 0, 0, 0, $24, 0 + dbsprite 1, 0, 0, 0, $25, 0 + dbsprite 0, 1, 0, 0, $34, 0 + dbsprite 2, 0, 0, 0, $25, OAM_HFLIP + dbsprite 3, 0, 0, 0, $24, OAM_HFLIP + dbsprite 3, 1, 0, 0, $34, OAM_HFLIP + dbsprite 0, 2, 0, 0, $34, OAM_VFLIP + dbsprite 0, 3, 0, 0, $24, OAM_VFLIP + dbsprite 1, 3, 0, 0, $25, OAM_VFLIP + dbsprite 3, 2, 0, 0, $34, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 3, 0, 0, $25, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 3, 0, 0, $24, OAM_HFLIP | OAM_VFLIP + +FrameBlock5b: + db 4 ; # + dbsprite 0, 0, 0, 0, $43, 0 + dbsprite 1, 0, 0, 0, $43, OAM_HFLIP + dbsprite 0, 1, 0, 0, $43, OAM_VFLIP + dbsprite 1, 1, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + +FrameBlock5c: + db 8 ; # + dbsprite 0, 0, 0, 0, $49, 0 + dbsprite 1, 0, 0, 2, $49, 0 + dbsprite 0, 3, 0, 0, $49, 0 + dbsprite 2, 2, 0, 0, $49, 0 + dbsprite 0, 1, 0, 0, $43, 0 + dbsprite 1, 1, 0, 0, $43, OAM_HFLIP + dbsprite 0, 2, 0, 0, $43, OAM_VFLIP + dbsprite 1, 2, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + +FrameBlock5d: + db 11 ; # + dbsprite 0, 0, 0, 0, $49, 0 + dbsprite 0, 3, 2, 0, $49, 0 + dbsprite 2, 2, 0, 4, $49, 0 + dbsprite 0, 1, 0, 0, $43, 0 + dbsprite 1, 0, 0, 0, $43, OAM_HFLIP + dbsprite 0, 2, 0, 0, $43, OAM_VFLIP + dbsprite 1, 2, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 0, 0, 4, $43, 0 + dbsprite 2, 0, 0, 4, $43, OAM_HFLIP + dbsprite 1, 1, 0, 4, $43, OAM_VFLIP + dbsprite 2, 1, 0, 4, $43, OAM_HFLIP | OAM_VFLIP + +FrameBlock5e: + db 15 ; # + dbsprite 1, 0, 0, 0, $49, 0 + dbsprite 2, 1, 0, 0, $49, 0 + dbsprite 0, 4, 0, 0, $49, 0 + dbsprite 0, 1, 0, 0, $43, 0 + dbsprite 1, 1, 0, 0, $43, OAM_HFLIP + dbsprite 0, 2, 0, 0, $43, OAM_VFLIP + dbsprite 1, 2, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 2, 0, 0, $43, 0 + dbsprite 3, 2, 0, 0, $43, OAM_HFLIP + dbsprite 2, 3, 0, 0, $43, OAM_VFLIP + dbsprite 3, 3, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 4, 0, 0, $43, 0 + dbsprite 2, 4, 0, 0, $43, OAM_HFLIP + dbsprite 1, 5, 0, 0, $43, OAM_VFLIP + dbsprite 2, 5, 0, 0, $43, OAM_HFLIP | OAM_VFLIP + +FrameBlock5f: + db 4 ; # + dbsprite 0, 0, 0, 0, $49, 0 + dbsprite 2, 0, 0, 0, $49, 0 + dbsprite 4, 0, 0, 0, $49, 0 + dbsprite 6, 0, 0, 0, $49, 0 + +FrameBlock60: + db 8 ; # + dbsprite 0, 0, 0, 0, $49, 0 + dbsprite 2, 0, 0, 0, $49, 0 + dbsprite 4, 0, 0, 0, $49, 0 + dbsprite 6, 0, 0, 0, $49, 0 + dbsprite 1, 1, 0, 0, $49, 0 + dbsprite 3, 1, 0, 0, $49, 0 + dbsprite 5, 1, 0, 0, $49, 0 + dbsprite 7, 1, 0, 0, $49, 0 + +FrameBlock61: + db 12 ; # + dbsprite 0, 0, 0, 0, $49, 0 + dbsprite 2, 0, 0, 0, $49, 0 + dbsprite 4, 0, 0, 0, $49, 0 + dbsprite 6, 0, 0, 0, $49, 0 + dbsprite 1, 1, 0, 0, $49, 0 + dbsprite 3, 1, 0, 0, $49, 0 + dbsprite 5, 1, 0, 0, $49, 0 + dbsprite 7, 1, 0, 0, $49, 0 + dbsprite 0, 2, 0, 0, $49, 0 + dbsprite 2, 2, 0, 0, $49, 0 + dbsprite 4, 2, 0, 0, $49, 0 + dbsprite 6, 2, 0, 0, $49, 0 + +FrameBlock62: + db 15 ; # + dbsprite 0, 0, 0, 0, $49, 0 + dbsprite 2, 0, 0, 0, $49, 0 + dbsprite 4, 0, 0, 0, $49, 0 + dbsprite 6, 0, 0, 0, $49, 0 + dbsprite 1, 1, 0, 0, $49, 0 + dbsprite 3, 1, 0, 0, $49, 0 + dbsprite 5, 1, 0, 0, $49, 0 + dbsprite 7, 1, 0, 0, $49, 0 + dbsprite 0, 2, 0, 0, $49, 0 + dbsprite 2, 2, 0, 0, $49, 0 + dbsprite 4, 2, 0, 0, $49, 0 + dbsprite 6, 2, 0, 0, $49, 0 + dbsprite 1, 3, 0, 0, $49, 0 + dbsprite 3, 3, 0, 0, $49, 0 + dbsprite 5, 3, 0, 0, $49, 0 + dbsprite 7, 3, 0, 0, $49, 0 + +FrameBlock63: + db 6 ; # + dbsprite 0, 2, 0, 0, $26, 0 + dbsprite 1, 2, 0, 0, $27, 0 + dbsprite 2, 1, 0, 0, $26, 0 + dbsprite 3, 1, 0, 0, $27, 0 + dbsprite 4, 0, 0, 0, $26, 0 + dbsprite 5, 0, 0, 0, $27, 0 + +FrameBlock64: + db 6 ; # + dbsprite 0, 3, 0, 0, $27, 0 + dbsprite 1, 2, 0, 0, $26, 0 + dbsprite 2, 2, 0, 0, $27, 0 + dbsprite 3, 1, 0, 0, $26, 0 + dbsprite 4, 1, 0, 0, $27, 0 + dbsprite 5, 0, 0, 0, $26, 0 + +FrameBlock65: + db 6 ; # + dbsprite 0, 0, 0, 0, $1c, 0 + dbsprite 1, 0, 0, 0, $1d, 0 + dbsprite 0, 2, 0, 0, $1c, 0 + dbsprite 1, 2, 0, 0, $1d, 0 + dbsprite 0, 4, 0, 0, $1c, 0 + dbsprite 1, 4, 0, 0, $1d, 0 + +FrameBlock66: + db 2 ; # + dbsprite 0, 0, 0, 0, $03, 0 + dbsprite 0, 1, 0, 0, $13, 0 + +FrameBlock67: + db 1 ; # + dbsprite 0, 0, 0, 0, $03, 0 + +FrameBlock68: + db 4 ; # + dbsprite 0, 0, 0, 0, $03, 0 + dbsprite 1, 0, 0, 0, $03, OAM_HFLIP + dbsprite 0, 1, 0, 0, $13, 0 + dbsprite 1, 1, 0, 0, $13, OAM_HFLIP + +FrameBlock69: + db 1 ; # + dbsprite 0, 0, 0, 0, $06, 0 + +FrameBlock6a: + db 8 ; # + dbsprite 0, 0, 0, 0, $2e, 0 + dbsprite 6, 0, 0, 0, $2e, OAM_HFLIP + dbsprite 0, 6, 0, 0, $2e, OAM_VFLIP + dbsprite 6, 6, 0, 0, $2e, OAM_HFLIP | OAM_VFLIP + dbsprite 3, 0, 0, 0, $2f, 0 + dbsprite 3, 6, 0, 0, $2f, OAM_VFLIP + dbsprite 0, 3, 0, 0, $3e, 0 + dbsprite 6, 3, 0, 0, $3e, OAM_HFLIP + +FrameBlock6b: + db 8 ; # + dbsprite 0, 0, 0, 0, $2e, 0 + dbsprite 4, 0, 0, 0, $2e, OAM_HFLIP + dbsprite 0, 4, 0, 0, $2e, OAM_VFLIP + dbsprite 4, 4, 0, 0, $2e, OAM_HFLIP | OAM_VFLIP + dbsprite 2, 0, 0, 0, $2f, 0 + dbsprite 2, 4, 0, 0, $2f, OAM_VFLIP + dbsprite 0, 2, 0, 0, $3e, 0 + dbsprite 4, 2, 0, 0, $3e, OAM_HFLIP + +FrameBlock6c: + db 8 ; # + dbsprite 0, 0, 0, 0, $2e, 0 + dbsprite 2, 0, 0, 0, $2e, OAM_HFLIP + dbsprite 0, 2, 0, 0, $2e, OAM_VFLIP + dbsprite 2, 2, 0, 0, $2e, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 0, 0, 0, $2f, 0 + dbsprite 1, 2, 0, 0, $2f, OAM_VFLIP + dbsprite 0, 1, 0, 0, $3e, 0 + dbsprite 2, 1, 0, 0, $3e, OAM_HFLIP + +FrameBlock6d: + db 2 ; # + dbsprite 0, 0, 0, 0, $1e, 0 + dbsprite 1, 0, 0, 0, $1f, 0 + +FrameBlock6e: + db 4 ; # + dbsprite 0, 0, 0, 0, $48, 0 + dbsprite 1, 0, 0, 0, $48, OAM_HFLIP + dbsprite 0, 1, 0, 0, $12, 0 + dbsprite 1, 1, 0, 0, $12, OAM_HFLIP + +FrameBlock6f: + db 4 ; # + dbsprite 0, 0, 0, 0, $4a, 0 + dbsprite 1, 0, 0, 0, $07, 0 + dbsprite 0, 1, 0, 0, $16, 0 + dbsprite 1, 1, 0, 0, $17, 0 + +FrameBlock70: + db 4 ; # + dbsprite 0, 0, 0, 0, $07, OAM_HFLIP + dbsprite 1, 0, 0, 0, $4a, OAM_HFLIP + dbsprite 0, 1, 0, 0, $17, OAM_HFLIP + dbsprite 1, 1, 0, 0, $16, OAM_HFLIP + +FrameBlock76: + db 7 ; # + dbsprite 2, 0, 0, 0, $2f, 0 + dbsprite 1, 0, 0, 1, $2f, 0 + dbsprite 3, 0, 0, 1, $2f, 0 + dbsprite 0, 0, 0, 2, $2e, 0 + dbsprite 4, 0, 0, 2, $2e, OAM_HFLIP + dbsprite 0, 1, 0, 2, $3e, 0 + dbsprite 4, 1, 0, 2, $3e, OAM_HFLIP + +FrameBlock77: + db 4 ; # + dbsprite 0, 0, 2, 0, $4b, 0 + dbsprite 1, 0, 2, 0, $4c, 0 + dbsprite 0, 1, 0, 0, $4c, OAM_HFLIP | OAM_VFLIP + dbsprite 1, 1, 0, 0, $4b, OAM_HFLIP | OAM_VFLIP + +FrameBlock78: + db 1 ; # + dbsprite 0, 0, 0, 0, $4d, 0 + +FrameBlock79: + db 1 ; # + dbsprite 0, 0, 0, 0, $4e, 0 + +INCLUDE "data/battle_anims/base_coords.asm" + +FrameBlock00: + db 0 ; # + + db $00 ; unused diff --git a/data/battle_anims/special_effect_pointers.asm b/data/battle_anims/special_effect_pointers.asm new file mode 100644 index 000000000..4e2fb857e --- /dev/null +++ b/data/battle_anims/special_effect_pointers.asm @@ -0,0 +1,47 @@ +special_effect: MACRO + db \1 + dw \2 +ENDM + +SpecialEffectPointers: + ; special effect id, effect routine address + special_effect SE_DARK_SCREEN_FLASH, AnimationFlashScreen ; $FE + special_effect SE_DARK_SCREEN_PALETTE, AnimationDarkScreenPalette ; $FD + special_effect SE_RESET_SCREEN_PALETTE, AnimationResetScreenPalette ; $FC + special_effect SE_SHAKE_SCREEN, AnimationShakeScreen ; $FB + special_effect SE_WATER_DROPLETS_EVERYWHERE, AnimationWaterDropletsEverywhere ; $FA + special_effect SE_DARKEN_MON_PALETTE, AnimationDarkenMonPalette ; $F9 + special_effect SE_FLASH_SCREEN_LONG, AnimationFlashScreenLong ; $F8 + special_effect SE_SLIDE_MON_UP, AnimationSlideMonUp ; $F7 + special_effect SE_SLIDE_MON_DOWN, AnimationSlideMonDown ; $F6 + special_effect SE_FLASH_MON_PIC, AnimationFlashMonPic ; $F5 + special_effect SE_SLIDE_MON_OFF, AnimationSlideMonOff ; $F4 + special_effect SE_BLINK_MON, AnimationBlinkMon ; $F3 + special_effect SE_MOVE_MON_HORIZONTALLY, AnimationMoveMonHorizontally ; $F2 + special_effect SE_RESET_MON_POSITION, AnimationResetMonPosition ; $F1 + special_effect SE_LIGHT_SCREEN_PALETTE, AnimationLightScreenPalette ; $F0 + special_effect SE_HIDE_MON_PIC, AnimationHideMonPic ; $EF + special_effect SE_SQUISH_MON_PIC, AnimationSquishMonPic ; $EE + special_effect SE_SHOOT_BALLS_UPWARD, AnimationShootBallsUpward ; $ED + special_effect SE_SHOOT_MANY_BALLS_UPWARD, AnimationShootManyBallsUpward ; $EC + special_effect SE_BOUNCE_UP_AND_DOWN, AnimationBoundUpAndDown ; $EB + special_effect SE_MINIMIZE_MON, AnimationMinimizeMon ; $EA + special_effect SE_SLIDE_MON_DOWN_AND_HIDE, AnimationSlideMonDownAndHide ; $E9 + special_effect SE_TRANSFORM_MON, AnimationTransformMon ; $E8 + special_effect SE_LEAVES_FALLING, AnimationLeavesFalling ; $E7 + special_effect SE_PETALS_FALLING, AnimationPetalsFalling ; $E6 + special_effect SE_SLIDE_MON_HALF_OFF, AnimationSlideMonHalfOff ; $E5 + special_effect SE_SHAKE_ENEMY_HUD, AnimationShakeEnemyHUD ; $E4 + special_effect SE_SHAKE_ENEMY_HUD_2, AnimationShakeEnemyHUD ; $E3 unused + special_effect SE_SPIRAL_BALLS_INWARD, AnimationSpiralBallsInward ; $E2 + special_effect SE_DELAY_ANIMATION_10, AnimationDelay10 ; $E1 + special_effect SE_FLASH_ENEMY_MON_PIC, AnimationFlashEnemyMonPic ; $E0 unused + special_effect SE_HIDE_ENEMY_MON_PIC, AnimationHideEnemyMonPic ; $DF + special_effect SE_BLINK_ENEMY_MON, AnimationBlinkEnemyMon ; $DE + special_effect SE_SHOW_MON_PIC, AnimationShowMonPic ; $DD + special_effect SE_SHOW_ENEMY_MON_PIC, AnimationShowEnemyMonPic ; $DC + special_effect SE_SLIDE_ENEMY_MON_OFF, AnimationSlideEnemyMonOff ; $DB + special_effect SE_SHAKE_BACK_AND_FORTH, AnimationShakeBackAndForth ; $DA + special_effect SE_SUBSTITUTE_MON, AnimationSubstitute ; $D9 + special_effect SE_WAVY_SCREEN, AnimationWavyScreen ; $D8 + db -1 ; end diff --git a/data/battle_anims/special_effects.asm b/data/battle_anims/special_effects.asm new file mode 100644 index 000000000..dd73ff8d6 --- /dev/null +++ b/data/battle_anims/special_effects.asm @@ -0,0 +1,32 @@ +anim_special_effect: MACRO + db \1 + dw \2 +ENDM + +AnimationIdSpecialEffects: + ; animation id, effect routine address + anim_special_effect MEGA_PUNCH, AnimationFlashScreen + anim_special_effect GUILLOTINE, AnimationFlashScreen + anim_special_effect MEGA_KICK, AnimationFlashScreen + anim_special_effect HEADBUTT, AnimationFlashScreen + anim_special_effect TAIL_WHIP, TailWhipAnimationUnused + anim_special_effect GROWL, DoGrowlSpecialEffects + anim_special_effect DISABLE, AnimationFlashScreen + anim_special_effect BLIZZARD, DoBlizzardSpecialEffects + anim_special_effect BUBBLEBEAM, AnimationFlashScreen + anim_special_effect HYPER_BEAM, FlashScreenEveryFourFrameBlocks + anim_special_effect THUNDERBOLT, FlashScreenEveryEightFrameBlocks + anim_special_effect REFLECT, AnimationFlashScreen + anim_special_effect SELFDESTRUCT, DoExplodeSpecialEffects + anim_special_effect SPORE, FlashScreenEveryFourFrameBlocks + anim_special_effect EXPLOSION, DoExplodeSpecialEffects + anim_special_effect ROCK_SLIDE, DoRockSlideSpecialEffects + anim_special_effect TRADE_BALL_DROP_ANIM, TradeHidePokemon + anim_special_effect TRADE_BALL_SHAKE_ANIM, TradeShakePokeball + anim_special_effect TRADE_BALL_TILT_ANIM, TradeJumpPokeball + anim_special_effect TOSS_ANIM, DoBallTossSpecialEffects + anim_special_effect SHAKE_ANIM, DoBallShakeSpecialEffects + anim_special_effect POOF_ANIM, DoPoofSpecialEffects + anim_special_effect GREATTOSS_ANIM, DoBallTossSpecialEffects + anim_special_effect ULTRATOSS_ANIM, DoBallTossSpecialEffects + db -1 ; end diff --git a/data/battle_anims/subanimations.asm b/data/battle_anims/subanimations.asm new file mode 100644 index 000000000..bbdc45c09 --- /dev/null +++ b/data/battle_anims/subanimations.asm @@ -0,0 +1,954 @@ +SubanimationPointers: + dw Subanimation00 + dw Subanimation01 + dw Subanimation02 + dw Subanimation03 + dw Subanimation04 + dw Subanimation05 + dw Subanimation06 + dw Subanimation07 + dw Subanimation08 + dw Subanimation09 + dw Subanimation0a + dw Subanimation0b + dw Subanimation0c + dw Subanimation0d + dw Subanimation0e + dw Subanimation0f + dw Subanimation10 + dw Subanimation11 + dw Subanimation12 + dw Subanimation13 + dw Subanimation14 + dw Subanimation15 + dw Subanimation16 + dw Subanimation17 + dw Subanimation18 + dw Subanimation19 + dw Subanimation1a + dw Subanimation1b + dw Subanimation1c + dw Subanimation1d + dw Subanimation1e + dw Subanimation1f + dw Subanimation20 + dw Subanimation21 + dw Subanimation22 + dw Subanimation23 + dw Subanimation24 + dw Subanimation25 + dw Subanimation26 + dw Subanimation27 + dw Subanimation28 + dw Subanimation29 + dw Subanimation2a + dw Subanimation2b + dw Subanimation2c + dw Subanimation2d + dw Subanimation2e + dw Subanimation2f + dw Subanimation30 + dw Subanimation31 + dw Subanimation32 + dw Subanimation33 + dw Subanimation34 + dw Subanimation35 + dw Subanimation36 + dw Subanimation37 + dw Subanimation38 + dw Subanimation39 + dw Subanimation3a + dw Subanimation3b + dw Subanimation3c + dw Subanimation3d + dw Subanimation3e + dw Subanimation3f + dw Subanimation40 + dw Subanimation41 + dw Subanimation42 + dw Subanimation43 + dw Subanimation44 + dw Subanimation45 + dw Subanimation46 + dw Subanimation47 + dw Subanimation48 + dw Subanimation49 + dw Subanimation4a + dw Subanimation4b + dw Subanimation4c + dw Subanimation4d + dw Subanimation4e + dw Subanimation4f + dw Subanimation50 + dw Subanimation51 + dw Subanimation52 + dw Subanimation53 + dw Subanimation54 + dw Subanimation55 + +; format: +; subanim type, count +; REPT count +; db frame block id, base coordinate id, frame block mode +; endr + +subanim: MACRO + db (\1 << 5) | \2 +ENDM + +Subanimation04: + subanim SUBANIMTYPE_HFLIP, 3 + db FRAMEBLOCK_02, BASECOORD_1A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_02, BASECOORD_10, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_02, BASECOORD_03, FRAMEBLOCKMODE_00 + +Subanimation05: + subanim SUBANIMTYPE_HFLIP, 1 + db FRAMEBLOCK_02, BASECOORD_10, FRAMEBLOCKMODE_00 + +Subanimation08: + subanim SUBANIMTYPE_NORMAL, 11 + db FRAMEBLOCK_03, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_44, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_94, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_60, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_76, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_9F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_8D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_A0, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_1A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_A1, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_34, FRAMEBLOCKMODE_00 + +Subanimation07: + subanim SUBANIMTYPE_NORMAL, 11 + db FRAMEBLOCK_03, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_A2, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_31, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_A3, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_32, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_A4, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_92, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_A5, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_15, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_A6, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_34, FRAMEBLOCKMODE_00 + +Subanimation06: + subanim SUBANIMTYPE_NORMAL, 11 + db FRAMEBLOCK_03, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_A2, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_93, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_61, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_73, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_A7, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_33, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_A8, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_0E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_A9, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_34, FRAMEBLOCKMODE_00 + +Subanimation09: + subanim SUBANIMTYPE_NORMAL, 4 + db FRAMEBLOCK_03, BASECOORD_21, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_04, BASECOORD_21, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_03, BASECOORD_21, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_05, BASECOORD_21, FRAMEBLOCKMODE_04 + +Subanimation0a: + subanim SUBANIMTYPE_HFLIP, 6 + db FRAMEBLOCK_06, BASECOORD_1B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_07, BASECOORD_1B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_08, BASECOORD_36, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_09, BASECOORD_36, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0A, BASECOORD_15, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0A, BASECOORD_15, FRAMEBLOCKMODE_00 + +Subanimation0b: + subanim SUBANIMTYPE_NORMAL, 4 + db FRAMEBLOCK_01, BASECOORD_2D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_2F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_35, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_4D, FRAMEBLOCKMODE_00 + +Subanimation55: + subanim SUBANIMTYPE_HFLIP, 1 + db FRAMEBLOCK_01, BASECOORD_9D, FRAMEBLOCKMODE_00 + +Subanimation11: + subanim SUBANIMTYPE_HFLIP, 12 + db FRAMEBLOCK_0B, BASECOORD_26, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0C, BASECOORD_26, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0B, BASECOORD_26, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0C, BASECOORD_26, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0B, BASECOORD_28, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0C, BASECOORD_28, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0B, BASECOORD_28, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0C, BASECOORD_28, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0B, BASECOORD_27, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0C, BASECOORD_27, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0B, BASECOORD_27, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0C, BASECOORD_27, FRAMEBLOCKMODE_00 + +Subanimation2b: + subanim SUBANIMTYPE_HFLIP, 11 + db FRAMEBLOCK_0D, BASECOORD_03, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_0E, BASECOORD_03, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_0F, BASECOORD_03, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0D, BASECOORD_11, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0D, BASECOORD_11, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0D, BASECOORD_37, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0D, BASECOORD_37, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_10, BASECOORD_21, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_10, BASECOORD_21, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_11, BASECOORD_1B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_11, BASECOORD_1B, FRAMEBLOCKMODE_00 + +Subanimation2c: + subanim SUBANIMTYPE_HFLIP, 12 + db FRAMEBLOCK_12, BASECOORD_01, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_12, BASECOORD_0F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_12, BASECOORD_1B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_12, BASECOORD_25, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_13, BASECOORD_38, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_13, BASECOORD_38, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_14, BASECOORD_38, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_14, BASECOORD_38, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_15, BASECOORD_38, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_15, BASECOORD_38, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_16, BASECOORD_38, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_16, BASECOORD_38, FRAMEBLOCKMODE_00 + +Subanimation12: + subanim SUBANIMTYPE_COORDFLIP, 9 + db FRAMEBLOCK_17, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_17, BASECOORD_39, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_17, BASECOORD_3A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_17, BASECOORD_3B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_17, BASECOORD_3C, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_17, BASECOORD_3D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_17, BASECOORD_3E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_17, BASECOORD_3F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_17, BASECOORD_1F, FRAMEBLOCKMODE_00 + +Subanimation00: + subanim SUBANIMTYPE_HFLIP, 1 + db FRAMEBLOCK_01, BASECOORD_17, FRAMEBLOCKMODE_00 + +Subanimation01: + subanim SUBANIMTYPE_HFLIP, 2 + db FRAMEBLOCK_01, BASECOORD_0F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_01, BASECOORD_1D, FRAMEBLOCKMODE_00 + +Subanimation02: + subanim SUBANIMTYPE_HFLIP, 3 + db FRAMEBLOCK_01, BASECOORD_12, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_01, BASECOORD_15, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_01, BASECOORD_1C, FRAMEBLOCKMODE_00 + +Subanimation03: + subanim SUBANIMTYPE_HFLIP, 4 + db FRAMEBLOCK_01, BASECOORD_0B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_01, BASECOORD_11, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_01, BASECOORD_18, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_01, BASECOORD_1D, FRAMEBLOCKMODE_00 + +Subanimation0c: + subanim SUBANIMTYPE_HFLIP, 3 + db FRAMEBLOCK_0C, BASECOORD_20, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0C, BASECOORD_21, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0C, BASECOORD_23, FRAMEBLOCKMODE_00 + +Subanimation0d: + subanim SUBANIMTYPE_HFLIP, 6 + db FRAMEBLOCK_0C, BASECOORD_20, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_0C, BASECOORD_15, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0C, BASECOORD_21, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_0C, BASECOORD_17, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0C, BASECOORD_23, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_0C, BASECOORD_19, FRAMEBLOCKMODE_00 + +Subanimation0e: + subanim SUBANIMTYPE_HFLIP, 9 + db FRAMEBLOCK_0C, BASECOORD_20, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_0C, BASECOORD_15, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_0C, BASECOORD_07, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0C, BASECOORD_21, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_0C, BASECOORD_17, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_0C, BASECOORD_09, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_0C, BASECOORD_23, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_0C, BASECOORD_19, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_0C, BASECOORD_0C, FRAMEBLOCKMODE_00 + +Subanimation1f: + subanim SUBANIMTYPE_REVERSE, 5 + db FRAMEBLOCK_0C, BASECOORD_30, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_0C, BASECOORD_40, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_0C, BASECOORD_41, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_0C, BASECOORD_42, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_0C, BASECOORD_21, FRAMEBLOCKMODE_00 + +Subanimation2e: + subanim SUBANIMTYPE_HVFLIP, 14 + db FRAMEBLOCK_18, BASECOORD_43, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_75, BASECOORD_52, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_19, BASECOORD_43, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_75, BASECOORD_63, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_1A, BASECOORD_43, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_75, BASECOORD_4D, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_1B, BASECOORD_43, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_75, BASECOORD_97, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_1C, BASECOORD_43, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_75, BASECOORD_98, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_1D, BASECOORD_43, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_75, BASECOORD_58, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_1E, BASECOORD_43, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_75, BASECOORD_1B, FRAMEBLOCKMODE_00 + +Subanimation2f: + subanim SUBANIMTYPE_HFLIP, 4 + db FRAMEBLOCK_1F, BASECOORD_24, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_20, BASECOORD_20, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_21, BASECOORD_1A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_22, BASECOORD_15, FRAMEBLOCKMODE_00 + +Subanimation30: + subanim SUBANIMTYPE_HFLIP, 18 + db FRAMEBLOCK_23, BASECOORD_00, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_23, BASECOORD_02, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_23, BASECOORD_04, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_23, BASECOORD_07, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_23, BASECOORD_02, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_23, BASECOORD_04, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_23, BASECOORD_0E, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_23, BASECOORD_02, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_23, BASECOORD_0C, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_25, BASECOORD_07, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_25, BASECOORD_0E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_25, BASECOORD_15, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_24, BASECOORD_24, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_23, BASECOORD_1C, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_23, BASECOORD_23, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_23, BASECOORD_21, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_24, BASECOORD_28, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_24, BASECOORD_28, FRAMEBLOCKMODE_00 + +Subanimation0f: + subanim SUBANIMTYPE_HFLIP, 12 + db FRAMEBLOCK_26, BASECOORD_0E, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_26, BASECOORD_16, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_26, BASECOORD_1C, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_27, BASECOORD_0E, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_27, BASECOORD_16, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_27, BASECOORD_1C, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_28, BASECOORD_0E, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_28, BASECOORD_16, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_28, BASECOORD_1C, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_29, BASECOORD_0E, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_29, BASECOORD_16, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_29, BASECOORD_1C, FRAMEBLOCKMODE_00 + +Subanimation16: + subanim SUBANIMTYPE_HFLIP, 12 + db FRAMEBLOCK_2A, BASECOORD_05, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2B, BASECOORD_05, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_2B, BASECOORD_0C, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_2A, BASECOORD_11, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_2B, BASECOORD_11, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_2B, BASECOORD_17, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_2A, BASECOORD_1B, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_2B, BASECOORD_1B, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_2B, BASECOORD_20, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_2A, BASECOORD_2F, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_2C, BASECOORD_00, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_2C, BASECOORD_00, FRAMEBLOCKMODE_00 + +Subanimation10: + subanim SUBANIMTYPE_REVERSE, 8 + db FRAMEBLOCK_2D, BASECOORD_44, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2E, BASECOORD_45, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2D, BASECOORD_46, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2E, BASECOORD_47, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2D, BASECOORD_48, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2E, BASECOORD_49, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2D, BASECOORD_2F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2E, BASECOORD_1A, FRAMEBLOCKMODE_00 + +Subanimation31: + subanim SUBANIMTYPE_HVFLIP, 10 + db FRAMEBLOCK_2F, BASECOORD_46, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2F, BASECOORD_4A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2F, BASECOORD_4B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2F, BASECOORD_4C, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2F, BASECOORD_4D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2F, BASECOORD_4E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2F, BASECOORD_4F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2F, BASECOORD_50, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2F, BASECOORD_2E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_2F, BASECOORD_51, FRAMEBLOCKMODE_00 + +Subanimation13: + subanim SUBANIMTYPE_REVERSE, 6 + db FRAMEBLOCK_30, BASECOORD_31, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_30, BASECOORD_32, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_30, BASECOORD_92, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_30, BASECOORD_0E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_30, BASECOORD_0F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_30, BASECOORD_10, FRAMEBLOCKMODE_00 + +Subanimation14: + subanim SUBANIMTYPE_HFLIP, 9 + db FRAMEBLOCK_30, BASECOORD_10, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_30, BASECOORD_10, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_31, BASECOORD_1C, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_31, BASECOORD_21, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_31, BASECOORD_26, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_30, BASECOORD_10, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_31, BASECOORD_1D, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_31, BASECOORD_22, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_31, BASECOORD_27, FRAMEBLOCKMODE_00 + +Subanimation41: + subanim SUBANIMTYPE_REVERSE, 5 + db FRAMEBLOCK_03, BASECOORD_31, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_32, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_92, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_0E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_03, BASECOORD_10, FRAMEBLOCKMODE_00 + +Subanimation42: + subanim SUBANIMTYPE_HFLIP, 3 + db FRAMEBLOCK_SMALL_BLACK_CIRCLE, BASECOORD_08, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_08, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_5A, BASECOORD_08, FRAMEBLOCKMODE_00 + +Subanimation15: + subanim SUBANIMTYPE_HVFLIP, 2 + db FRAMEBLOCK_35, BASECOORD_52, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_35, BASECOORD_53, FRAMEBLOCKMODE_00 + +Subanimation17: + subanim SUBANIMTYPE_HFLIP, 4 + db FRAMEBLOCK_36, BASECOORD_54, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_36, BASECOORD_55, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_37, BASECOORD_56, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_37, BASECOORD_57, FRAMEBLOCKMODE_00 + +Subanimation18: + subanim SUBANIMTYPE_ENEMY, 4 + db FRAMEBLOCK_36, BASECOORD_54, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_36, BASECOORD_55, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_37, BASECOORD_56, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_37, BASECOORD_57, FRAMEBLOCKMODE_00 + +Subanimation40: + subanim SUBANIMTYPE_HFLIP, 6 + db FRAMEBLOCK_17, BASECOORD_54, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_17, BASECOORD_55, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_17, BASECOORD_0E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_17, BASECOORD_56, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_17, BASECOORD_57, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_17, BASECOORD_13, FRAMEBLOCKMODE_00 + +Subanimation19: + subanim SUBANIMTYPE_REVERSE, 12 + db FRAMEBLOCK_38, BASECOORD_31, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_39, BASECOORD_31, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_38, BASECOORD_32, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_39, BASECOORD_32, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_38, BASECOORD_92, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_39, BASECOORD_92, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_38, BASECOORD_0E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_39, BASECOORD_0E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_38, BASECOORD_0F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_39, BASECOORD_0F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_38, BASECOORD_10, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_39, BASECOORD_10, FRAMEBLOCKMODE_00 + +Subanimation1a: + subanim SUBANIMTYPE_HFLIP, 16 + db FRAMEBLOCK_3A, BASECOORD_08, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3B, BASECOORD_08, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3C, BASECOORD_08, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3D, BASECOORD_08, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3E, BASECOORD_08, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3F, BASECOORD_08, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3E, BASECOORD_08, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3F, BASECOORD_08, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3A, BASECOORD_0B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3B, BASECOORD_0B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3C, BASECOORD_0B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3D, BASECOORD_0B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3E, BASECOORD_0B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3F, BASECOORD_0B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3E, BASECOORD_0B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3F, BASECOORD_0B, FRAMEBLOCKMODE_00 + +Subanimation1b: + subanim SUBANIMTYPE_REVERSE, 4 + db FRAMEBLOCK_40, BASECOORD_31, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_40, BASECOORD_32, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_40, BASECOORD_92, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_40, BASECOORD_15, FRAMEBLOCKMODE_00 + +Subanimation1c: + subanim SUBANIMTYPE_HFLIP, 3 + db FRAMEBLOCK_41, BASECOORD_58, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_41, BASECOORD_59, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_41, BASECOORD_21, FRAMEBLOCKMODE_00 + +Subanimation1d: + subanim SUBANIMTYPE_ENEMY, 15 + db FRAMEBLOCK_24, BASECOORD_9A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_23, BASECOORD_1B, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_24, BASECOORD_22, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_23, BASECOORD_16, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_23, BASECOORD_1D, FRAMEBLOCKMODE_02 + db FRAMEBLOCK_24, BASECOORD_98, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_25, BASECOORD_2C, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_25, BASECOORD_2A, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_25, BASECOORD_99, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_25, BASECOORD_62, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_25, BASECOORD_99, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_25, BASECOORD_62, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_25, BASECOORD_99, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_25, BASECOORD_62, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_25, BASECOORD_99, FRAMEBLOCKMODE_03 + +Subanimation1e: + subanim SUBANIMTYPE_NORMAL, 1 + db FRAMEBLOCK_25, BASECOORD_75, FRAMEBLOCKMODE_00 + +Subanimation20: + subanim SUBANIMTYPE_HFLIP, 2 + db FRAMEBLOCK_42, BASECOORD_07, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_43, BASECOORD_07, FRAMEBLOCKMODE_00 + +Subanimation21: + subanim SUBANIMTYPE_HFLIP, 3 + db FRAMEBLOCK_44, BASECOORD_00, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_45, BASECOORD_08, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_46, BASECOORD_10, FRAMEBLOCKMODE_02 + +Subanimation22: + subanim SUBANIMTYPE_REVERSE, 11 + db FRAMEBLOCK_47, BASECOORD_10, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_47, BASECOORD_56, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_47, BASECOORD_07, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_47, BASECOORD_AA, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_47, BASECOORD_AB, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_47, BASECOORD_AC, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_47, BASECOORD_AD, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_47, BASECOORD_AE, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_47, BASECOORD_AF, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_47, BASECOORD_89, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_47, BASECOORD_B0, FRAMEBLOCKMODE_00 + +Subanimation2d: + subanim SUBANIMTYPE_COORDFLIP, 6 + db FRAMEBLOCK_44, BASECOORD_64, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_45, BASECOORD_65, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_46, BASECOORD_66, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_47, BASECOORD_66, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_47, BASECOORD_66, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_47, BASECOORD_66, FRAMEBLOCKMODE_00 + +Subanimation39: + subanim SUBANIMTYPE_COORDFLIP, 1 + db FRAMEBLOCK_47, BASECOORD_67, FRAMEBLOCKMODE_00 + +Subanimation4e: + subanim SUBANIMTYPE_HFLIP, 1 + db FRAMEBLOCK_71, BASECOORD_0F, FRAMEBLOCKMODE_03 + +Subanimation4f: + subanim SUBANIMTYPE_HFLIP, 7 + db FRAMEBLOCK_71, BASECOORD_0F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_71, BASECOORD_08, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_71, BASECOORD_01, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_71, BASECOORD_95, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_72, BASECOORD_95, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_73, BASECOORD_95, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_74, BASECOORD_95, FRAMEBLOCKMODE_00 + +Subanimation50: + subanim SUBANIMTYPE_HFLIP, 8 + db FRAMEBLOCK_74, BASECOORD_95, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_73, BASECOORD_95, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_72, BASECOORD_95, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_71, BASECOORD_95, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_71, BASECOORD_01, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_71, BASECOORD_08, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_71, BASECOORD_0F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_71, BASECOORD_16, FRAMEBLOCKMODE_00 + +Subanimation29: + subanim SUBANIMTYPE_HFLIP, 29 + db FRAMEBLOCK_SMALL_BLACK_CIRCLE, BASECOORD_0F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_4A, BASECOORD_68, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_4B, BASECOORD_2A, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_0F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_4A, BASECOORD_68, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_4B, BASECOORD_2A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_4C, BASECOORD_6A, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_4D, BASECOORD_69, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_6B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_4C, BASECOORD_6A, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_4D, BASECOORD_69, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_4A, BASECOORD_68, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_4B, BASECOORD_2A, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_6C, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_4A, BASECOORD_68, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_4B, BASECOORD_2A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_4C, BASECOORD_6A, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_4D, BASECOORD_69, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_6D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_4C, BASECOORD_6A, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_4D, BASECOORD_2A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_4A, BASECOORD_68, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_4B, BASECOORD_2A, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_0F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_4A, BASECOORD_68, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_4B, BASECOORD_2A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_4C, BASECOORD_6A, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_4D, BASECOORD_2A, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_6B, FRAMEBLOCKMODE_00 + +Subanimation2a: + subanim SUBANIMTYPE_HFLIP, 4 + db FRAMEBLOCK_4E, BASECOORD_2B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_4F, BASECOORD_2B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_50, BASECOORD_2B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_50, BASECOORD_2B, FRAMEBLOCKMODE_00 + +Subanimation23: + subanim SUBANIMTYPE_HFLIP, 2 + db FRAMEBLOCK_51, BASECOORD_2D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_51, BASECOORD_6E, FRAMEBLOCKMODE_00 + +Subanimation24: + subanim SUBANIMTYPE_ENEMY, 2 + db FRAMEBLOCK_51, BASECOORD_2D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_51, BASECOORD_6E, FRAMEBLOCKMODE_00 + +Subanimation25: + subanim SUBANIMTYPE_COORDFLIP, 2 + db FRAMEBLOCK_52, BASECOORD_71, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_52, BASECOORD_72, FRAMEBLOCKMODE_00 + +Subanimation26: + subanim SUBANIMTYPE_NORMAL, 2 + db FRAMEBLOCK_52, BASECOORD_01, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_52, BASECOORD_2C, FRAMEBLOCKMODE_00 + +Subanimation3a: + subanim SUBANIMTYPE_COORDFLIP, 3 + db FRAMEBLOCK_53, BASECOORD_71, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_53, BASECOORD_7F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_53, BASECOORD_81, FRAMEBLOCKMODE_00 + +Subanimation3b: + subanim SUBANIMTYPE_NORMAL, 3 + db FRAMEBLOCK_53, BASECOORD_01, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_53, BASECOORD_15, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_53, BASECOORD_2C, FRAMEBLOCKMODE_00 + +Subanimation27: + subanim SUBANIMTYPE_ENEMY, 2 + db FRAMEBLOCK_54, BASECOORD_01, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_54, BASECOORD_2C, FRAMEBLOCKMODE_00 + +Subanimation28: + subanim SUBANIMTYPE_HVFLIP, 3 + db FRAMEBLOCK_55, BASECOORD_73, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_56, BASECOORD_73, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_57, BASECOORD_73, FRAMEBLOCKMODE_00 + +Subanimation32: + subanim SUBANIMTYPE_COORDFLIP, 3 + db FRAMEBLOCK_47, BASECOORD_74, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_47, BASECOORD_43, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_47, BASECOORD_75, FRAMEBLOCKMODE_00 + +Subanimation33: + subanim SUBANIMTYPE_HVFLIP, 6 + db FRAMEBLOCK_58, BASECOORD_76, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_34, BASECOORD_76, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_58, BASECOORD_76, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_34, BASECOORD_76, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_58, BASECOORD_76, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_34, BASECOORD_76, FRAMEBLOCKMODE_00 + +Subanimation3c: + subanim SUBANIMTYPE_COORDFLIP, 7 + db FRAMEBLOCK_59, BASECOORD_79, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_59, BASECOORD_7B, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_59, BASECOORD_77, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_59, BASECOORD_7A, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_59, BASECOORD_78, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_59, BASECOORD_7C, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_59, BASECOORD_76, FRAMEBLOCKMODE_00 + +Subanimation3d: + subanim SUBANIMTYPE_NORMAL, 8 + db FRAMEBLOCK_3A, BASECOORD_4D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3B, BASECOORD_4D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3C, BASECOORD_4D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3D, BASECOORD_4D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3E, BASECOORD_4D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3F, BASECOORD_4D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3E, BASECOORD_4D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_3F, BASECOORD_4D, FRAMEBLOCKMODE_00 + +Subanimation34: + subanim SUBANIMTYPE_HVFLIP, 21 + db FRAMEBLOCK_SMALL_BLACK_CIRCLE, BASECOORD_7D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_7D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_5A, BASECOORD_7D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_SMALL_BLACK_CIRCLE, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_5A, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_SMALL_BLACK_CIRCLE, BASECOORD_7E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_7E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_5A, BASECOORD_7E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_SMALL_BLACK_CIRCLE, BASECOORD_7F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_7F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_5A, BASECOORD_7F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_SMALL_BLACK_CIRCLE, BASECOORD_80, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_80, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_5A, BASECOORD_80, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_SMALL_BLACK_CIRCLE, BASECOORD_81, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_81, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_5A, BASECOORD_81, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_SMALL_BLACK_CIRCLE, BASECOORD_82, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_82, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_5A, BASECOORD_82, FRAMEBLOCKMODE_00 + +Subanimation35: + subanim SUBANIMTYPE_HVFLIP, 4 + db FRAMEBLOCK_5B, BASECOORD_83, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_5C, BASECOORD_84, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_5D, BASECOORD_85, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_5E, BASECOORD_09, FRAMEBLOCKMODE_00 + +Subanimation36: + subanim SUBANIMTYPE_HFLIP, 8 + db FRAMEBLOCK_5F, BASECOORD_2A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_5F, BASECOORD_00, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_60, BASECOORD_2A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_60, BASECOORD_00, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_61, BASECOORD_2A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_61, BASECOORD_00, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_62, BASECOORD_2A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_62, BASECOORD_00, FRAMEBLOCKMODE_00 + +Subanimation37: + subanim SUBANIMTYPE_HVFLIP, 10 + db FRAMEBLOCK_63, BASECOORD_89, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_64, BASECOORD_75, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_63, BASECOORD_76, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_65, BASECOORD_0D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_65, BASECOORD_86, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_65, BASECOORD_12, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_65, BASECOORD_87, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_65, BASECOORD_17, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_65, BASECOORD_88, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_65, BASECOORD_1A, FRAMEBLOCKMODE_00 + +Subanimation38: + subanim SUBANIMTYPE_HFLIP, 16 + db FRAMEBLOCK_66, BASECOORD_8A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_66, BASECOORD_33, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_66, BASECOORD_2E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_67, BASECOORD_24, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_66, BASECOORD_01, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_66, BASECOORD_10, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_66, BASECOORD_1D, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_67, BASECOORD_28, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_66, BASECOORD_2A, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_66, BASECOORD_0E, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_66, BASECOORD_1B, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_67, BASECOORD_26, FRAMEBLOCKMODE_03 + db FRAMEBLOCK_66, BASECOORD_03, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_66, BASECOORD_12, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_66, BASECOORD_1E, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_67, BASECOORD_29, FRAMEBLOCKMODE_00 + +Subanimation3e: + subanim SUBANIMTYPE_REVERSE, 18 + db FRAMEBLOCK_02, BASECOORD_31, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_34, BASECOORD_31, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_02, BASECOORD_31, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_02, BASECOORD_32, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_34, BASECOORD_32, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_02, BASECOORD_32, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_02, BASECOORD_92, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_34, BASECOORD_92, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_02, BASECOORD_92, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_02, BASECOORD_0E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_34, BASECOORD_0E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_02, BASECOORD_0E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_02, BASECOORD_0F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_34, BASECOORD_0F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_02, BASECOORD_0F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_02, BASECOORD_10, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_34, BASECOORD_10, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_02, BASECOORD_10, FRAMEBLOCKMODE_00 + +Subanimation3f: + subanim SUBANIMTYPE_COORDFLIP, 18 + db FRAMEBLOCK_68, BASECOORD_4B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_8C, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_20, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_1C, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_19, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_14, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_76, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_8D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_15, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_10, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_0C, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_06, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_8E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_8F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_90, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_26, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_23, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_68, BASECOORD_1F, FRAMEBLOCKMODE_00 + +Subanimation44: + subanim SUBANIMTYPE_HVFLIP, 12 + db FRAMEBLOCK_69, BASECOORD_4B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_69, BASECOORD_8C, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_69, BASECOORD_20, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_69, BASECOORD_1C, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_69, BASECOORD_19, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_69, BASECOORD_14, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_69, BASECOORD_76, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_69, BASECOORD_8D, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_69, BASECOORD_15, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_69, BASECOORD_10, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_69, BASECOORD_0C, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_69, BASECOORD_06, FRAMEBLOCKMODE_00 + +Subanimation43: + subanim SUBANIMTYPE_ENEMY, 3 + db FRAMEBLOCK_6A, BASECOORD_07, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_6B, BASECOORD_0F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_6C, BASECOORD_17, FRAMEBLOCKMODE_00 + +Subanimation45: + subanim SUBANIMTYPE_HVFLIP, 4 + db FRAMEBLOCK_6D, BASECOORD_8B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_6D, BASECOORD_84, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_6D, BASECOORD_63, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_6D, BASECOORD_8C, FRAMEBLOCKMODE_00 + +Subanimation46: + subanim SUBANIMTYPE_HVFLIP, 6 + db FRAMEBLOCK_6D, BASECOORD_8B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_6D, BASECOORD_84, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_6D, BASECOORD_63, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_6D, BASECOORD_8C, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_6D, BASECOORD_0A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_6D, BASECOORD_89, FRAMEBLOCKMODE_00 + +Subanimation47: + subanim SUBANIMTYPE_HVFLIP, 3 + db FRAMEBLOCK_06, BASECOORD_82, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_07, BASECOORD_82, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_08, BASECOORD_96, FRAMEBLOCKMODE_00 + +Subanimation48: + subanim SUBANIMTYPE_NORMAL, 6 + db FRAMEBLOCK_03, BASECOORD_41, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_03, BASECOORD_48, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_04, BASECOORD_48, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_03, BASECOORD_48, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_05, BASECOORD_48, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_03, BASECOORD_48, FRAMEBLOCKMODE_03 + +Subanimation49: + subanim SUBANIMTYPE_NORMAL, 4 + db FRAMEBLOCK_04, BASECOORD_48, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_03, BASECOORD_48, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_05, BASECOORD_48, FRAMEBLOCKMODE_04 + db FRAMEBLOCK_03, BASECOORD_48, FRAMEBLOCKMODE_03 + +Subanimation4a: + subanim SUBANIMTYPE_NORMAL, 1 + db FRAMEBLOCK_04, BASECOORD_84, FRAMEBLOCKMODE_03 + +Subanimation4b: + subanim SUBANIMTYPE_NORMAL, 3 + db FRAMEBLOCK_06, BASECOORD_72, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_07, BASECOORD_72, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_08, BASECOORD_72, FRAMEBLOCKMODE_00 + +Subanimation4c: + subanim SUBANIMTYPE_COORDFLIP, 8 + db FRAMEBLOCK_6F, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_6E, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_70, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_6E, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_6F, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_6E, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_70, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_6E, BASECOORD_30, FRAMEBLOCKMODE_00 + +Subanimation4d: + subanim SUBANIMTYPE_HVFLIP, 6 + db FRAMEBLOCK_32, BASECOORD_4B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_33, BASECOORD_4F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_32, BASECOORD_20, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_33, BASECOORD_16, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_32, BASECOORD_19, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_33, BASECOORD_0D, FRAMEBLOCKMODE_00 + +Subanimation51: + subanim SUBANIMTYPE_ENEMY, 6 + db FRAMEBLOCK_76, BASECOORD_1B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_34, BASECOORD_1B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_76, BASECOORD_1B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_34, BASECOORD_1B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_76, BASECOORD_1B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_34, BASECOORD_1B, FRAMEBLOCKMODE_00 + +Subanimation52: + subanim SUBANIMTYPE_HFLIP, 7 + db FRAMEBLOCK_77, BASECOORD_25, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_77, BASECOORD_9B, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_77, BASECOORD_1A, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_77, BASECOORD_9C, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_77, BASECOORD_2F, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_77, BASECOORD_50, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_77, BASECOORD_8C, FRAMEBLOCKMODE_00 + +Subanimation53: + subanim SUBANIMTYPE_NORMAL, 12 + db FRAMEBLOCK_78, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_78, BASECOORD_A2, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_78, BASECOORD_93, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_78, BASECOORD_61, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_78, BASECOORD_73, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_78, BASECOORD_A7, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_78, BASECOORD_33, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_78, BASECOORD_A8, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_78, BASECOORD_0E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_78, BASECOORD_A9, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_78, BASECOORD_34, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_01, BASECOORD_9E, FRAMEBLOCKMODE_00 + +Subanimation54: + subanim SUBANIMTYPE_NORMAL, 11 + db FRAMEBLOCK_79, BASECOORD_30, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_79, BASECOORD_A2, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_79, BASECOORD_93, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_79, BASECOORD_61, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_79, BASECOORD_73, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_79, BASECOORD_A7, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_79, BASECOORD_33, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_79, BASECOORD_A8, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_79, BASECOORD_0E, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_79, BASECOORD_A9, FRAMEBLOCKMODE_00 + db FRAMEBLOCK_79, BASECOORD_34, FRAMEBLOCKMODE_00 diff --git a/data/bike_riding_tilesets.asm b/data/bike_riding_tilesets.asm deleted file mode 100755 index 48c2cee63..000000000 --- a/data/bike_riding_tilesets.asm +++ /dev/null @@ -1,2 +0,0 @@ -BikeRidingTilesets:: - db OVERWORLD, FOREST, UNDERGROUND, SHIP_PORT, CAVERN, $FF diff --git a/data/collision.asm b/data/collision.asm deleted file mode 100644 index 8d35793d6..000000000 --- a/data/collision.asm +++ /dev/null @@ -1,25 +0,0 @@ -Underground_Coll:: INCBIN "gfx/tilesets/underground.tilecoll" -Overworld_Coll:: INCBIN "gfx/tilesets/overworld.tilecoll" -RedsHouse1_Coll:: -RedsHouse2_Coll:: INCBIN "gfx/tilesets/reds_house.tilecoll" -Mart_Coll:: -Pokecenter_Coll:: INCBIN "gfx/tilesets/pokecenter.tilecoll" -Dojo_Coll:: -Gym_Coll:: INCBIN "gfx/tilesets/gym.tilecoll" -Forest_Coll:: INCBIN "gfx/tilesets/forest.tilecoll" -House_Coll:: INCBIN "gfx/tilesets/house.tilecoll" -ForestGate_Coll:: -Museum_Coll:: -Gate_Coll:: INCBIN "gfx/tilesets/gate.tilecoll" -Ship_Coll:: INCBIN "gfx/tilesets/ship.tilecoll" -ShipPort_Coll:: INCBIN "gfx/tilesets/ship_port.tilecoll" -Cemetery_Coll:: INCBIN "gfx/tilesets/cemetery.tilecoll" -Interior_Coll:: INCBIN "gfx/tilesets/interior.tilecoll" -Cavern_Coll:: INCBIN "gfx/tilesets/cavern.tilecoll" -Lobby_Coll:: INCBIN "gfx/tilesets/lobby.tilecoll" -Mansion_Coll:: INCBIN "gfx/tilesets/mansion.tilecoll" -Lab_Coll:: INCBIN "gfx/tilesets/lab.tilecoll" -Club_Coll:: INCBIN "gfx/tilesets/club.tilecoll" -Facility_Coll:: INCBIN "gfx/tilesets/facility.tilecoll" -Plateau_Coll:: INCBIN "gfx/tilesets/plateau.tilecoll" -BeachHouse_Coll:: INCBIN "gfx/tilesets/beachhouse.tilecoll" diff --git a/data/credit_mons.asm b/data/credits/credits_mons.asm similarity index 100% rename from data/credit_mons.asm rename to data/credits/credits_mons.asm diff --git a/data/credits_order.asm b/data/credits/credits_order.asm similarity index 91% rename from data/credits_order.asm rename to data/credits/credits_order.asm index c818ac075..c2b5e5233 100755 --- a/data/credits_order.asm +++ b/data/credits/credits_order.asm @@ -1,7 +1,7 @@ CreditsOrder: ; subsequent credits elements will be displayed on separate lines. -; $FF, $FE, $FD, $FC, $FB, and $FA are commands that are used -; to go to the next set of credits texts. +; CRED_TEXT, CRED_TEXT_FADE, CRED_TEXT_MON, and CRED_TEXT_FADE_MON are +; commands that are used to go to the next set of credits texts. db CRED_POKEMON, CRED_VERSION, CRED_TEXT_FADE_MON db CRED_DIRECTOR, CRED_TAJIRI, CRED_TEXT_FADE_MON db CRED_PROGRAMMERS, CRED_OOTA, CRED_MORIMOTO, CRED_WATANABE, CRED_TEXT_FADE @@ -33,6 +33,5 @@ CreditsOrder: db CRED_SPECIAL_THANKS, CRED_NAKAMICHI, CRED_YOSHIMURA, CRED_YAMAZAKI, CRED_TEXT db CRED_TESTING, CRED_PAAD, CRED_SUPER_MARIO_CLUB2, CRED_TEXT_FADE db CRED_EXECUTIVE_PRODUCER, CRED_YAMAUCHI, CRED_TEXT_FADE_MON - db CRED_COPYRIGHT - db CRED_TEXT_FADE_MON + db CRED_COPYRIGHT, CRED_TEXT_FADE_MON db CRED_THE_END diff --git a/text/credits_text.asm b/data/credits/credits_text.asm similarity index 99% rename from text/credits_text.asm rename to data/credits/credits_text.asm index 0010b93a6..766690df6 100755 --- a/text/credits_text.asm +++ b/data/credits/credits_text.asm @@ -1,4 +1,5 @@ CreditsTextPointers: +; entries correspond to CRED_* constants dw CreditsText_Version dw CreditsText_Tajiri dw CreditsText_Oota diff --git a/data/cries.asm b/data/cries.asm deleted file mode 100755 index 7031536eb..000000000 --- a/data/cries.asm +++ /dev/null @@ -1,192 +0,0 @@ -CryData: - ;$BaseCry, $Pitch, $Length - db $11, $00, $80; Rhydon - db $03, $00, $80; Kangaskhan - db $00, $00, $80; Nidoran♂ - db $19, $CC, $01; Clefairy - db $10, $00, $80; Spearow - db $06, $ED, $80; Voltorb - db $09, $00, $80; Nidoking - db $1F, $00, $80; Slowbro - db $0F, $20, $80; Ivysaur - db $0D, $00, $80; Exeggutor - db $0C, $00, $80; Lickitung - db $0B, $00, $80; Exeggcute - db $05, $00, $80; Grimer - db $07, $00, $FF; Gengar - db $01, $00, $80; Nidoran♀ - db $0A, $00, $80; Nidoqueen - db $19, $00, $80; Cubone - db $04, $00, $80; Rhyhorn - db $1B, $00, $80; Lapras - db $15, $00, $80; Arcanine - db $1E, $EE, $FF; Mew - db $17, $00, $80; Gyarados - db $18, $00, $80; Shellder - db $1A, $00, $80; Tentacool - db $1C, $00, $80; Gastly - db $16, $00, $80; Scyther - db $1E, $02, $20; Staryu - db $13, $00, $80; Blastoise - db $14, $00, $80; Pinsir - db $12, $00, $80; Tangela - db $00, $00, $00; MissingNo. - db $00, $00, $00; MissingNo. - db $1F, $20, $40; Growlithe - db $17, $FF, $C0; Onix - db $18, $40, $A0; Fearow - db $0E, $DF, $04; Pidgey - db $02, $00, $80; Slowpoke - db $1C, $A8, $C0; Kadabra - db $24, $00, $80; Graveler - db $14, $0A, $C0; Chansey - db $1F, $48, $60; Machoke - db $20, $08, $40; Mr.Mime - db $12, $80, $C0; Hitmonlee - db $0C, $EE, $C0; Hitmonchan - db $17, $E0, $10; Arbok - db $1E, $42, $FF; Parasect - db $21, $20, $60; Psyduck - db $0D, $88, $20; Drowzee - db $12, $E0, $40; Golem - db $00, $00, $00; MissingNo. - db $04, $FF, $30; Magmar - db $00, $00, $00; MissingNo. - db $06, $8F, $FF; Electabuzz - db $1C, $20, $C0; Magneton - db $12, $E6, $DD; Koffing - db $00, $00, $00; MissingNo. - db $0A, $DD, $60; Mankey - db $0C, $88, $C0; Seel - db $0B, $AA, $01; Diglett - db $1D, $11, $40; Tauros - db $00, $00, $00; MissingNo. - db $00, $00, $00; MissingNo. - db $00, $00, $00; MissingNo. - db $10, $DD, $01; Farfetch'd - db $1A, $44, $40; Venonat - db $0F, $3C, $C0; Dragonite - db $00, $80, $10; MissingNo. - db $00, $00, $00; MissingNo. - db $1D, $E0, $80; MissingNo. - db $0B, $BB, $01; Doduo - db $0E, $FF, $FF; Poliwag - db $0D, $FF, $FF; Jynx - db $09, $F8, $40; Moltres - db $09, $80, $40; Articuno - db $18, $FF, $80; Zapdos - db $0E, $FF, $FF; Ditto - db $19, $77, $10; Meowth - db $20, $20, $E0; Krabby - db $22, $FF, $40; MissingNo. - db $00, $00, $00; MissingNo. - db $0E, $E0, $60; MissingNo. - db $24, $4F, $10; Vulpix - db $24, $88, $60; Ninetales - db $0F, $EE, $01; Pikachu - db $09, $EE, $08; Raichu - db $00, $00, $00; MissingNo. - db $00, $00, $00; MissingNo. - db $0F, $60, $40; Dratini - db $0F, $40, $80; Dragonair - db $16, $BB, $40; Kabuto - db $18, $EE, $01; Kabutops - db $19, $99, $10; Horsea - db $19, $3C, $01; Seadra - db $0F, $40, $C0; MissingNo. - db $0F, $20, $C0; MissingNo. - db $00, $20, $40; Sandshrew - db $00, $FF, $FF; Sandslash - db $1F, $F0, $01; Omanyte - db $1F, $FF, $40; Omastar - db $0E, $FF, $35; Jigglypuff - db $0E, $68, $60; Wigglytuff - db $1A, $88, $60; Eevee - db $1A, $10, $20; Flareon - db $1A, $3D, $80; Jolteon - db $1A, $AA, $FF; Vaporeon - db $1F, $EE, $01; Machop - db $1D, $E0, $80; Zubat - db $17, $12, $40; Ekans - db $1E, $20, $E0; Paras - db $0E, $77, $60; Poliwhirl - db $0E, $00, $FF; Poliwrath - db $15, $EE, $01; Weedle - db $13, $FF, $01; Kakuna - db $13, $60, $80; Beedrill - db $00, $00, $00; MissingNo. - db $0B, $99, $20; Dodrio - db $0A, $AF, $40; Primeape - db $0B, $2A, $10; Dugtrio - db $1A, $29, $80; Venomoth - db $0C, $23, $FF; Dewgong - db $00, $00, $00; MissingNo. - db $00, $00, $00; MissingNo. - db $16, $80, $20; Caterpie - db $1C, $CC, $01; Metapod - db $16, $77, $40; Butterfree - db $1F, $08, $C0; Machamp - db $11, $20, $10; MissingNo. - db $21, $FF, $40; Golduck - db $0D, $EE, $40; Hypno - db $1D, $FA, $80; Golbat - db $1E, $99, $FF; Mewtwo - db $05, $55, $01; Snorlax - db $17, $80, $00; Magikarp - db $00, $00, $00; MissingNo. - db $00, $00, $00; MissingNo. - db $07, $EF, $FF; Muk - db $0F, $40, $80; MissingNo. - db $20, $EE, $E0; Kingler - db $18, $6F, $E0; Cloyster - db $00, $00, $00; MissingNo. - db $06, $A8, $90; Electrode - db $19, $AA, $20; Clefable - db $12, $FF, $FF; Weezing - db $19, $99, $FF; Persian - db $08, $4F, $60; Marowak - db $00, $00, $00; MissingNo. - db $1C, $30, $40; Haunter - db $1C, $C0, $01; Abra - db $1C, $98, $FF; Alakazam - db $14, $28, $C0; Pidgeotto - db $14, $11, $FF; Pidgeot - db $1E, $00, $80; Starmie - db $0F, $80, $01; Bulbasaur - db $0F, $00, $C0; Venusaur - db $1A, $EE, $FF; Tentacruel - db $00, $00, $00; MissingNo. - db $16, $80, $40; Goldeen - db $16, $10, $FF; Seaking - db $00, $00, $00; MissingNo. - db $00, $00, $00; MissingNo. - db $00, $00, $00; MissingNo. - db $00, $00, $00; MissingNo. - db $25, $00, $80; Ponyta - db $25, $20, $C0; Rapidash - db $22, $00, $80; Rattata - db $22, $20, $FF; Raticate - db $00, $2C, $C0; Nidorino - db $01, $2C, $E0; Nidorina - db $24, $F0, $10; Geodude - db $25, $AA, $FF; Porygon - db $23, $20, $F0; Aerodactyl - db $00, $00, $00; MissingNo. - db $1C, $80, $60; Magnemite - db $00, $00, $00; MissingNo. - db $00, $00, $00; MissingNo. - db $04, $60, $40; Charmander - db $1D, $60, $40; Squirtle - db $04, $20, $40; Charmeleon - db $1D, $20, $40; Wartortle - db $04, $00, $80; Charizard - db $1D, $00, $80; MissingNo. - db $00, $00, $00; MissingNo. - db $00, $00, $00; MissingNo. - db $00, $00, $00; MissingNo. - db $08, $DD, $01; Oddish - db $08, $AA, $40; Gloom - db $23, $22, $FF; Vileplume - db $21, $55, $01; Bellsprout - db $25, $44, $20; Weepinbell - db $25, $66, $CC; Victreebel diff --git a/data/dungeon_tilesets.asm b/data/dungeon_tilesets.asm deleted file mode 100755 index 01e86714d..000000000 --- a/data/dungeon_tilesets.asm +++ /dev/null @@ -1,2 +0,0 @@ -DungeonTilesets: - db FOREST, MUSEUM, SHIP, CAVERN, LOBBY, MANSION, GATE, LAB, FACILITY, CEMETERY, GYM, $FF diff --git a/data/events/bench_guys.asm b/data/events/bench_guys.asm new file mode 100644 index 000000000..f597a26d9 --- /dev/null +++ b/data/events/bench_guys.asm @@ -0,0 +1,23 @@ +bench_guy_text: MACRO + db \1, \2 + db_tx_pre \3 +ENDM + +BenchGuyTextPointers: + ; map id, player facing direction, predef text + bench_guy_text VIRIDIAN_POKECENTER, SPRITE_FACING_LEFT, ViridianCityPokecenterBenchGuyText + bench_guy_text PEWTER_POKECENTER, SPRITE_FACING_LEFT, PewterCityPokecenterBenchGuyText + bench_guy_text CERULEAN_POKECENTER, SPRITE_FACING_LEFT, CeruleanCityPokecenterBenchGuyText + bench_guy_text LAVENDER_POKECENTER, SPRITE_FACING_LEFT, LavenderCityPokecenterBenchGuyText + bench_guy_text VERMILION_POKECENTER, SPRITE_FACING_LEFT, VermilionCityPokecenterBenchGuyText + bench_guy_text CELADON_POKECENTER, SPRITE_FACING_LEFT, CeladonCityPokecenterBenchGuyText + bench_guy_text CELADON_HOTEL, SPRITE_FACING_LEFT, CeladonCityHotelText + bench_guy_text FUCHSIA_POKECENTER, SPRITE_FACING_LEFT, FuchsiaCityPokecenterBenchGuyText + bench_guy_text CINNABAR_POKECENTER, SPRITE_FACING_LEFT, CinnabarIslandPokecenterBenchGuyText + bench_guy_text SAFFRON_POKECENTER, SPRITE_FACING_LEFT, SaffronCityPokecenterBenchGuyText + bench_guy_text MT_MOON_POKECENTER, SPRITE_FACING_LEFT, MtMoonPokecenterBenchGuyText + bench_guy_text ROCK_TUNNEL_POKECENTER, SPRITE_FACING_LEFT, RockTunnelPokecenterBenchGuyText + bench_guy_text SAFARI_ZONE_WEST_REST_HOUSE, SPRITE_FACING_LEFT, UnusedBenchGuyText1 + bench_guy_text SAFARI_ZONE_EAST_REST_HOUSE, SPRITE_FACING_LEFT, UnusedBenchGuyText2 + bench_guy_text SAFARI_ZONE_NORTH_REST_HOUSE, SPRITE_FACING_LEFT, UnusedBenchGuyText3 + db -1 ; end diff --git a/data/events/card_key_coords.asm b/data/events/card_key_coords.asm new file mode 100644 index 000000000..afdcfbd47 --- /dev/null +++ b/data/events/card_key_coords.asm @@ -0,0 +1,36 @@ +; These tables are probably supposed to be door locations in Silph Co., +; but they are unused. +; The reason there are 3 tables is unknown. + +; Format: map ID, Y, X, gate ID? + +CardKeyTable1: + db SILPH_CO_2F, $04, $04, 0 + db SILPH_CO_2F, $04, $05, 1 + db SILPH_CO_4F, $0C, $04, 2 + db SILPH_CO_4F, $0C, $05, 3 + db SILPH_CO_7F, $06, $0A, 4 + db SILPH_CO_7F, $06, $0B, 5 + db SILPH_CO_9F, $04, $12, 6 + db SILPH_CO_9F, $04, $13, 7 + db SILPH_CO_10F, $08, $0A, 8 + db SILPH_CO_10F, $08, $0B, 9 + db -1 ; end + +CardKeyTable2: + db SILPH_CO_3F, $08, $09, 10 + db SILPH_CO_3F, $09, $09, 11 + db SILPH_CO_5F, $04, $07, 12 + db SILPH_CO_5F, $05, $07, 13 + db SILPH_CO_6F, $0C, $05, 14 + db SILPH_CO_6F, $0D, $05, 15 + db SILPH_CO_8F, $08, $07, 16 + db SILPH_CO_8F, $09, $07, 17 + db SILPH_CO_9F, $08, $03, 18 + db SILPH_CO_9F, $09, $03, 19 + db -1 ; end + +CardKeyTable3: + db SILPH_CO_11F, $08, $09, 20 + db SILPH_CO_11F, $09, $09, 21 + db -1 ; end diff --git a/data/events/card_key_maps.asm b/data/events/card_key_maps.asm new file mode 100644 index 000000000..c66f31d94 --- /dev/null +++ b/data/events/card_key_maps.asm @@ -0,0 +1,12 @@ +SilphCoMapList: + db SILPH_CO_2F + db SILPH_CO_3F + db SILPH_CO_4F + db SILPH_CO_5F + db SILPH_CO_6F + db SILPH_CO_7F + db SILPH_CO_8F + db SILPH_CO_9F + db SILPH_CO_10F + db SILPH_CO_11F + db -1 ; end diff --git a/data/events/hidden_coins.asm b/data/events/hidden_coins.asm new file mode 100755 index 000000000..bcdbcd80b --- /dev/null +++ b/data/events/hidden_coins.asm @@ -0,0 +1,19 @@ +hidden_coin: MACRO + db \1, \3, \2 +ENDM + +HiddenCoinCoords: + ; map id, x, y + hidden_coin GAME_CORNER, 0, 8 + hidden_coin GAME_CORNER, 1, 16 + hidden_coin GAME_CORNER, 3, 11 + hidden_coin GAME_CORNER, 3, 14 + hidden_coin GAME_CORNER, 4, 12 + hidden_coin GAME_CORNER, 9, 12 + hidden_coin GAME_CORNER, 9, 15 + hidden_coin GAME_CORNER, 16, 14 + hidden_coin GAME_CORNER, 10, 16 + hidden_coin GAME_CORNER, 11, 7 + hidden_coin GAME_CORNER, 15, 8 + hidden_coin GAME_CORNER, 12, 15 + db -1 ; end diff --git a/data/events/hidden_item_coords.asm b/data/events/hidden_item_coords.asm new file mode 100755 index 000000000..5705feed4 --- /dev/null +++ b/data/events/hidden_item_coords.asm @@ -0,0 +1,62 @@ +hidden_item: MACRO + db \1, \3, \2 +ENDM + +HiddenItemCoords: + ; map id, x, y + hidden_item SILPH_CO_5F, 12, 3 + hidden_item SILPH_CO_9F, 2, 15 + hidden_item POKEMON_MANSION_3F, 1, 9 + hidden_item POKEMON_MANSION_B1F, 1, 9 + hidden_item SAFARI_ZONE_WEST, 6, 5 + hidden_item CERULEAN_CAVE_2F, 16, 13 + hidden_item CERULEAN_CAVE_B1F, 8, 14 + hidden_item UNUSED_MAP_6F, 14, 11 + hidden_item SEAFOAM_ISLANDS_B2F, 15, 15 + hidden_item SEAFOAM_ISLANDS_B3F, 9, 16 + hidden_item SEAFOAM_ISLANDS_B4F, 25, 17 + hidden_item VIRIDIAN_FOREST, 1, 18 + hidden_item VIRIDIAN_FOREST, 16, 42 + hidden_item MT_MOON_B2F, 18, 12 + hidden_item MT_MOON_B2F, 33, 9 + hidden_item SS_ANNE_B1F_ROOMS, 3, 1 + hidden_item SS_ANNE_KITCHEN, 13, 9 + hidden_item UNDERGROUND_PATH_NORTH_SOUTH, 3, 4 + hidden_item UNDERGROUND_PATH_NORTH_SOUTH, 4, 34 + hidden_item UNDERGROUND_PATH_WEST_EAST, 12, 2 + hidden_item UNDERGROUND_PATH_WEST_EAST, 21, 5 + hidden_item ROCKET_HIDEOUT_B1F, 21, 15 + hidden_item ROCKET_HIDEOUT_B3F, 27, 17 + hidden_item ROCKET_HIDEOUT_B4F, 25, 1 + hidden_item ROUTE_10, 9, 17 + hidden_item ROUTE_10, 16, 53 + hidden_item POWER_PLANT, 17, 16 + hidden_item POWER_PLANT, 12, 1 + hidden_item ROUTE_11, 48, 5 + hidden_item ROUTE_12, 2, 63 + hidden_item ROUTE_13, 1, 14 + hidden_item ROUTE_13, 16, 13 + hidden_item ROUTE_17, 15, 14 + hidden_item ROUTE_17, 8, 45 + hidden_item ROUTE_17, 17, 72 + hidden_item ROUTE_17, 4, 91 + hidden_item ROUTE_17, 8, 121 + hidden_item ROUTE_23, 9, 44 + hidden_item ROUTE_23, 19, 70 + hidden_item ROUTE_23, 8, 90 + hidden_item VICTORY_ROAD_2F, 5, 2 + hidden_item VICTORY_ROAD_2F, 26, 7 + hidden_item ROUTE_25, 38, 3 + hidden_item ROUTE_25, 10, 1 + hidden_item ROUTE_4, 40, 3 + hidden_item ROUTE_9, 14, 7 + hidden_item COPYCATS_HOUSE_2F, 1, 1 + hidden_item VIRIDIAN_CITY, 14, 4 + hidden_item CERULEAN_CITY, 15, 8 + hidden_item CERULEAN_CAVE_1F, 18, 7 + hidden_item POKEMON_TOWER_5F, 4, 12 + hidden_item VERMILION_CITY, 14, 11 + hidden_item CELADON_CITY, 48, 15 + hidden_item SAFARI_ZONE_GATE, 10, 1 ; inaccessible + hidden_item POKEMON_MANSION_1F, 8, 16 + db -1 ; end diff --git a/data/events/hidden_objects.asm b/data/events/hidden_objects.asm new file mode 100755 index 000000000..2afd1275c --- /dev/null +++ b/data/events/hidden_objects.asm @@ -0,0 +1,560 @@ +HiddenObjectMaps: + dbw SILPH_CO_11F, SilphCo11FHiddenObjects + dbw SILPH_CO_5F, SilphCo5FHiddenObjects + dbw SILPH_CO_9F, SilphCo9FHiddenObjects + dbw POKEMON_MANSION_2F, Mansion2HiddenObjects + dbw POKEMON_MANSION_3F, Mansion3HiddenObjects + dbw POKEMON_MANSION_B1F, Mansion4HiddenObjects + dbw SAFARI_ZONE_WEST, SafariZoneWestHiddenObjects + dbw CERULEAN_CAVE_2F, CeruleanCave2HiddenObjects + dbw CERULEAN_CAVE_B1F, CeruleanCave3HiddenObjects + dbw UNUSED_MAP_6F, UnusedMap6FHiddenObjects + dbw SEAFOAM_ISLANDS_B2F, SeafoamIslands3HiddenObjects + dbw SEAFOAM_ISLANDS_B3F, SeafoamIslands4HiddenObjects + dbw SEAFOAM_ISLANDS_B4F, SeafoamIslands5HiddenObjects + dbw VIRIDIAN_FOREST, ViridianForestHiddenObjects + dbw MT_MOON_B2F, MtMoon3HiddenObjects + dbw SS_ANNE_B1F_ROOMS, SSAnne10HiddenObjects + dbw SS_ANNE_KITCHEN, SSAnne6HiddenObjects + dbw UNDERGROUND_PATH_NORTH_SOUTH, UndergroundPathNsHiddenObjects + dbw UNDERGROUND_PATH_WEST_EAST, UndergroundPathWeHiddenObjects + dbw ROCKET_HIDEOUT_B1F, RocketHideout1HiddenObjects + dbw ROCKET_HIDEOUT_B3F, RocketHideout3HiddenObjects + dbw ROCKET_HIDEOUT_B4F, RocketHideout4HiddenObjects + dbw ROUTE_10, Route10HiddenObjects + dbw ROCK_TUNNEL_POKECENTER, RockTunnelPokecenterHiddenObjects + dbw POWER_PLANT, PowerPlantHiddenObjects + dbw ROUTE_11, Route11HiddenObjects + dbw ROUTE_12, Route12HiddenObjects + dbw ROUTE_13, Route13HiddenObjects + dbw ROUTE_15_GATE_2F, Route15Gate2FHiddenObjects + dbw ROUTE_17, Route17HiddenObjects + dbw ROUTE_23, Route23HiddenObjects + dbw VICTORY_ROAD_2F, VictoryRoad2HiddenObjects + dbw ROUTE_25, Route25HiddenObjects + dbw BILLS_HOUSE, BillsHouseHiddenObjects + dbw ROUTE_4, Route4HiddenObjects + dbw MT_MOON_POKECENTER, MtMoonPokecenterHiddenObjects + dbw ROUTE_9, Route9HiddenObjects + dbw TRADE_CENTER, TradeCenterHiddenObjects + dbw COLOSSEUM, ColosseumHiddenObjects + dbw INDIGO_PLATEAU, IndigoPlateauHiddenObjects + dbw INDIGO_PLATEAU_LOBBY, IndigoPlateauLobbyHiddenObjects + dbw COPYCATS_HOUSE_2F, CopycatsHouse2FHiddenObjects + dbw FIGHTING_DOJO, FightingDojoHiddenObjects + dbw SAFFRON_GYM, SaffronGymHiddenObjects + dbw SAFFRON_POKECENTER, SaffronPokecenterHiddenObjects + dbw REDS_HOUSE_2F, RedsHouse2FHiddenObjects + dbw BLUES_HOUSE, BluesHouseHiddenObjects + dbw OAKS_LAB, OaksLabHiddenObjects + dbw VIRIDIAN_CITY, ViridianCityHiddenObjects + dbw VIRIDIAN_POKECENTER, ViridianPokecenterHiddenObjects + dbw VIRIDIAN_SCHOOL_HOUSE, ViridianSchoolHiddenObjects + dbw VIRIDIAN_GYM, ViridianGymHiddenObjects + dbw MUSEUM_1F, Museum1FHiddenObjects + dbw PEWTER_GYM, PewterGymHiddenObjects + dbw PEWTER_POKECENTER, PewterPokecenterHiddenObjects + dbw CERULEAN_CITY, CeruleanCityHiddenObjects + dbw CERULEAN_POKECENTER, CeruleanPokecenterHiddenObjects + dbw CERULEAN_GYM, CeruleanGymHiddenObjects + dbw BIKE_SHOP, BikeShopHiddenObjects + dbw CERULEAN_CAVE_1F, CeruleanCave1HiddenObjects + dbw LAVENDER_POKECENTER, LavenderPokecenterHiddenObjects + dbw POKEMON_TOWER_5F, Pokemontower5HiddenObjects + dbw MR_FUJIS_HOUSE, LavenderHouse1HiddenObjects + dbw VERMILION_CITY, VermilionCityHiddenObjects + dbw VERMILION_POKECENTER, VermilionPokecenterHiddenObjects + dbw POKEMON_FAN_CLUB, PokemonFanClubHiddenObjects + dbw VERMILION_GYM, VermilionGymHiddenObjects + dbw CELADON_CITY, CeladonCityHiddenObjects + dbw CELADON_HOTEL, CeladonHotelHiddenObjects + dbw CELADON_MANSION_2F, CeladonMansion2HiddenObjects + dbw CELADON_MANSION_ROOF_HOUSE, CeladonMansion5HiddenObjects + dbw CELADON_POKECENTER, CeladonPokecenterHiddenObjects + dbw CELADON_GYM, CeladonGymHiddenObjects + dbw GAME_CORNER, GameCornerHiddenObjects + dbw FUCHSIA_POKECENTER, FuchsiaPokecenterHiddenObjects + dbw SAFARI_ZONE_GATE, SafariZoneEntranceHiddenObjects + dbw FUCHSIA_GYM, FuchsiaGymHiddenObjects + dbw POKEMON_MANSION_1F, Mansion1HiddenObjects + dbw CINNABAR_GYM, CinnabarGymHiddenObjects + dbw CINNABAR_LAB_FOSSIL_ROOM, CinnabarLab4HiddenObjects + dbw CINNABAR_POKECENTER, CinnabarPokecenterHiddenObjects + db -1 ; end + +hidden_object: MACRO + db \2 ; y coord + db \1 ; x coord + db \3 ; item id + dba \4 ; object routine +ENDM + +hidden_text_predef: MACRO + db \2 ; y coord + db \1 ; x coord + db_tx_pre \3 ; text id + dba \4 ; object routine +ENDM + +; Some hidden objects use SPRITE_FACING_* values, +; but these do not actually prevent the player +; from interacting with them in any direction. +ANY_FACING EQU $d0 + +SilphCo11FHiddenObjects: + hidden_object 10, 12, SPRITE_FACING_UP, OpenPokemonCenterPC + db -1 ; end + +SilphCo5FHiddenObjects: + hidden_object 12, 3, ELIXER, HiddenItems + db -1 ; end + +SilphCo9FHiddenObjects: + hidden_object 2, 15, MAX_POTION, HiddenItems + db -1 ; end + +Mansion2HiddenObjects: + hidden_object 2, 11, SPRITE_FACING_UP, Mansion2Script_Switches + db -1 ; end + +Mansion3HiddenObjects: + hidden_object 1, 9, MAX_REVIVE, HiddenItems + hidden_object 10, 5, SPRITE_FACING_UP, Mansion3Script_Switches + db -1 ; end + +Mansion4HiddenObjects: + hidden_object 1, 9, RARE_CANDY, HiddenItems + hidden_object 20, 3, SPRITE_FACING_UP, Mansion4Script_Switches + hidden_object 18, 25, SPRITE_FACING_UP, Mansion4Script_Switches + db -1 ; end + +SafariZoneWestHiddenObjects: + hidden_object 6, 5, REVIVE, HiddenItems + db -1 ; end + +CeruleanCave2HiddenObjects: + hidden_object 16, 13, PP_UP, HiddenItems + db -1 ; end + +CeruleanCave3HiddenObjects: + hidden_object 8, 14, PP_UP, HiddenItems + db -1 ; end + +UnusedMap6FHiddenObjects: + hidden_object 14, 11, MAX_ELIXER, HiddenItems + db -1 ; end + +SeafoamIslands3HiddenObjects: + hidden_object 15, 15, NUGGET, HiddenItems + db -1 ; end + +SeafoamIslands4HiddenObjects: + hidden_object 9, 16, MAX_ELIXER, HiddenItems + db -1 ; end + +SeafoamIslands5HiddenObjects: + hidden_object 25, 17, ULTRA_BALL, HiddenItems + db -1 ; end + +ViridianForestHiddenObjects: + hidden_object 1, 18, POTION, HiddenItems + hidden_object 16, 42, ANTIDOTE, HiddenItems + db -1 ; end + +MtMoon3HiddenObjects: + hidden_object 18, 12, MOON_STONE, HiddenItems + hidden_object 33, 9, ETHER, HiddenItems + db -1 ; end + +SSAnne10HiddenObjects: + hidden_object 3, 1, HYPER_POTION, HiddenItems + db -1 ; end + +SSAnne6HiddenObjects: + hidden_object 13, 5, SPRITE_FACING_DOWN, PrintTrashText + hidden_object 13, 7, SPRITE_FACING_DOWN, PrintTrashText + hidden_object 13, 9, GREAT_BALL, HiddenItems + db -1 ; end + +UndergroundPathNsHiddenObjects: + hidden_object 3, 4, FULL_RESTORE, HiddenItems + hidden_object 4, 34, X_SPECIAL, HiddenItems + db -1 ; end + +UndergroundPathWeHiddenObjects: + hidden_object 12, 2, NUGGET, HiddenItems + hidden_object 21, 5, ELIXER, HiddenItems + db -1 ; end + +RocketHideout1HiddenObjects: + hidden_object 21, 15, PP_UP, HiddenItems + db -1 ; end + +RocketHideout3HiddenObjects: + hidden_object 27, 17, NUGGET, HiddenItems + db -1 ; end + +RocketHideout4HiddenObjects: + hidden_object 25, 1, SUPER_POTION, HiddenItems + db -1 ; end + +Route10HiddenObjects: + hidden_object 9, 17, SUPER_POTION, HiddenItems + hidden_object 16, 53, MAX_ETHER, HiddenItems + db -1 ; end + +RockTunnelPokecenterHiddenObjects: + hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText + hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC + db -1 ; end + +PowerPlantHiddenObjects: + hidden_object 17, 16, MAX_ELIXER, HiddenItems + hidden_object 12, 1, PP_UP, HiddenItems + db -1 ; end + +Route11HiddenObjects: + hidden_object 48, 5, ESCAPE_ROPE, HiddenItems + db -1 ; end + +Route12HiddenObjects: + hidden_object 2, 63, HYPER_POTION, HiddenItems + db -1 ; end + +Route13HiddenObjects: + hidden_object 1, 14, PP_UP, HiddenItems + hidden_object 16, 13, CALCIUM, HiddenItems + db -1 ; end + +Route15Gate2FHiddenObjects: + hidden_object 1, 2, SPRITE_FACING_UP, Route15GateLeftBinoculars + db -1 ; end + +Route17HiddenObjects: + hidden_object 15, 14, RARE_CANDY, HiddenItems + hidden_object 8, 45, FULL_RESTORE, HiddenItems + hidden_object 17, 72, PP_UP, HiddenItems + hidden_object 4, 91, MAX_REVIVE, HiddenItems + hidden_object 8, 121, MAX_ELIXER, HiddenItems + db -1 ; end + +Route23HiddenObjects: + hidden_object 9, 44, FULL_RESTORE, HiddenItems + hidden_object 19, 70, ULTRA_BALL, HiddenItems + hidden_object 8, 90, MAX_ETHER, HiddenItems + db -1 ; end + +VictoryRoad2HiddenObjects: + hidden_object 5, 2, ULTRA_BALL, HiddenItems + hidden_object 26, 7, FULL_RESTORE, HiddenItems + db -1 ; end + +Route25HiddenObjects: + hidden_object 38, 3, ETHER, HiddenItems + hidden_object 10, 1, ELIXER, HiddenItems + db -1 ; end + +BillsHouseHiddenObjects: + hidden_object 1, 4, SPRITE_FACING_UP, BillsHousePC + db -1 ; end + +Route4HiddenObjects: + hidden_object 40, 3, GREAT_BALL, HiddenItems + db -1 ; end + +MtMoonPokecenterHiddenObjects: + hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText + hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC + db -1 ; end + +Route9HiddenObjects: + hidden_object 14, 7, ETHER, HiddenItems + db -1 ; end + +TradeCenterHiddenObjects: + hidden_object 5, 4, ANY_FACING, CableClubRightGameboy + hidden_object 4, 4, ANY_FACING, CableClubLeftGameboy + db -1 ; end + +ColosseumHiddenObjects: + hidden_object 5, 4, ANY_FACING, CableClubRightGameboy + hidden_object 4, 4, ANY_FACING, CableClubLeftGameboy + db -1 ; end + +IndigoPlateauHiddenObjects: + hidden_object 8, 13, $ff, PrintIndigoPlateauHQText ; inaccessible + hidden_object 11, 13, SPRITE_FACING_DOWN, PrintIndigoPlateauHQText ; inaccessible + db -1 ; end + +IndigoPlateauLobbyHiddenObjects: + hidden_object 15, 7, SPRITE_FACING_UP, OpenPokemonCenterPC + db -1 ; end + +CopycatsHouse2FHiddenObjects: + hidden_object 1, 1, NUGGET, HiddenItems + db -1 ; end + +FightingDojoHiddenObjects: + hidden_object 3, 9, SPRITE_FACING_UP, PrintFightingDojoText + hidden_object 6, 9, SPRITE_FACING_UP, PrintFightingDojoText + hidden_object 4, 0, SPRITE_FACING_UP, PrintFightingDojoText2 + hidden_object 5, 0, SPRITE_FACING_UP, PrintFightingDojoText3 + db -1 ; end + +SaffronGymHiddenObjects: + hidden_object 9, 15, SPRITE_FACING_UP, GymStatues + db -1 ; end + +SaffronPokecenterHiddenObjects: + hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText + hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC + db -1 ; end + +RedsHouse2FHiddenObjects: + hidden_object 0, 1, SPRITE_FACING_UP, OpenRedsPC + hidden_object 3, 5, ANY_FACING, PrintRedSNESText + db -1 ; end + +BluesHouseHiddenObjects: + hidden_object 0, 1, SPRITE_FACING_UP, PrintBookcaseText + hidden_object 1, 1, SPRITE_FACING_UP, PrintBookcaseText + hidden_object 7, 1, SPRITE_FACING_UP, PrintBookcaseText + db -1 ; end + +OaksLabHiddenObjects: + hidden_object 4, 0, SPRITE_FACING_UP, DisplayOakLabLeftPoster + hidden_object 5, 0, SPRITE_FACING_UP, DisplayOakLabRightPoster + hidden_object 0, 1, SPRITE_FACING_UP, DisplayOakLabEmailText + hidden_object 1, 1, SPRITE_FACING_UP, DisplayOakLabEmailText + db -1 ; end + +ViridianCityHiddenObjects: + hidden_object 14, 4, POTION, HiddenItems + db -1 ; end + +ViridianPokecenterHiddenObjects: + hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText + hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC + db -1 ; end + +ViridianSchoolHiddenObjects: + hidden_text_predef 3, 4, ViridianSchoolNotebook, PrintNotebookText + hidden_text_predef 3, 0, ViridianSchoolBlackboard, PrintBlackboardLinkCableText + db -1 ; end + +ViridianGymHiddenObjects: + hidden_object 15, 15, SPRITE_FACING_UP, GymStatues + hidden_object 18, 15, SPRITE_FACING_UP, GymStatues + db -1 ; end + +Museum1FHiddenObjects: + hidden_object 2, 3, SPRITE_FACING_UP, AerodactylFossil + hidden_object 2, 6, SPRITE_FACING_UP, KabutopsFossil + db -1 ; end + +PewterGymHiddenObjects: + hidden_object 3, 10, SPRITE_FACING_UP, GymStatues + hidden_object 6, 10, SPRITE_FACING_UP, GymStatues + db -1 ; end + +PewterPokecenterHiddenObjects: + hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText + hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC + db -1 ; end + +CeruleanCityHiddenObjects: + hidden_object 15, 8, RARE_CANDY, HiddenItems + db -1 ; end + +CeruleanPokecenterHiddenObjects: + hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText + hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC + db -1 ; end + +CeruleanGymHiddenObjects: + hidden_object 3, 11, SPRITE_FACING_UP, GymStatues + hidden_object 6, 11, SPRITE_FACING_UP, GymStatues + db -1 ; end + +BikeShopHiddenObjects: + hidden_object 1, 0, ANY_FACING, PrintNewBikeText + hidden_object 2, 1, ANY_FACING, PrintNewBikeText + hidden_object 1, 2, ANY_FACING, PrintNewBikeText + hidden_object 3, 2, ANY_FACING, PrintNewBikeText + hidden_object 0, 4, ANY_FACING, PrintNewBikeText + hidden_object 1, 5, ANY_FACING, PrintNewBikeText + db -1 ; end + +CeruleanCave1HiddenObjects: + hidden_object 18, 7, PP_UP, HiddenItems + db -1 ; end + +LavenderPokecenterHiddenObjects: + hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText + hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC + db -1 ; end + +Pokemontower5HiddenObjects: + hidden_object 4, 12, ELIXER, HiddenItems + db -1 ; end + +LavenderHouse1HiddenObjects: + hidden_object 0, 1, SPRITE_FACING_DOWN, PrintMagazinesText + hidden_object 1, 1, SPRITE_FACING_DOWN, PrintMagazinesText + hidden_object 7, 1, SPRITE_FACING_DOWN, PrintMagazinesText + db -1 ; end + +VermilionCityHiddenObjects: + hidden_object 14, 11, MAX_ETHER, HiddenItems + db -1 ; end + +VermilionPokecenterHiddenObjects: + hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC + hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText + db -1 ; end + +PokemonFanClubHiddenObjects: + hidden_object 1, 0, SPRITE_FACING_UP, FanClubPicture1 + hidden_object 6, 0, SPRITE_FACING_UP, FanClubPicture2 + db -1 ; end + +VermilionGymHiddenObjects: + hidden_object 3, 14, SPRITE_FACING_UP, GymStatues + hidden_object 6, 14, SPRITE_FACING_UP, GymStatues + hidden_object 6, 1, SPRITE_FACING_DOWN, PrintTrashText + ; third param: [wGymTrashCanIndex] + hidden_object 1, 7, 0, GymTrashScript + hidden_object 1, 9, 1, GymTrashScript + hidden_object 1, 11, 2, GymTrashScript + hidden_object 3, 7, 3, GymTrashScript + hidden_object 3, 9, 4, GymTrashScript + hidden_object 3, 11, 5, GymTrashScript + hidden_object 5, 7, 6, GymTrashScript + hidden_object 5, 9, 7, GymTrashScript + hidden_object 5, 11, 8, GymTrashScript + hidden_object 7, 7, 9, GymTrashScript + hidden_object 7, 9, 10, GymTrashScript + hidden_object 7, 11, 11, GymTrashScript + hidden_object 9, 7, 12, GymTrashScript + hidden_object 9, 9, 13, GymTrashScript + hidden_object 9, 11, 14, GymTrashScript + db -1 ; end + +CeladonCityHiddenObjects: + hidden_object 48, 15, PP_UP, HiddenItems + db -1 ; end + +CeladonHotelHiddenObjects: + hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText + db -1 ; end + +CeladonMansion2HiddenObjects: + hidden_object 0, 5, SPRITE_FACING_UP, OpenPokemonCenterPC + db -1 ; end + +CeladonMansion5HiddenObjects: + hidden_text_predef 3, 0, LinkCableHelp, PrintBlackboardLinkCableText + hidden_text_predef 4, 0, LinkCableHelp, PrintBlackboardLinkCableText + hidden_text_predef 3, 4, TMNotebook, PrintNotebookText + db -1 ; end + +CeladonPokecenterHiddenObjects: + hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText + hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC + db -1 ; end + +CeladonGymHiddenObjects: + hidden_object 3, 15, SPRITE_FACING_UP, GymStatues + hidden_object 6, 15, SPRITE_FACING_UP, GymStatues + db -1 ; end + +GameCornerHiddenObjects: + hidden_object 18, 15, ANY_FACING, StartSlotMachine + hidden_object 18, 14, ANY_FACING, StartSlotMachine + hidden_object 18, 13, ANY_FACING, StartSlotMachine + hidden_object 18, 12, ANY_FACING, StartSlotMachine + hidden_object 18, 11, ANY_FACING, StartSlotMachine + hidden_object 18, 10, SLOTS_SOMEONESKEYS, StartSlotMachine + hidden_object 13, 10, ANY_FACING, StartSlotMachine + hidden_object 13, 11, ANY_FACING, StartSlotMachine + hidden_object 13, 12, SLOTS_OUTTOLUNCH, StartSlotMachine + hidden_object 13, 13, ANY_FACING, StartSlotMachine + hidden_object 13, 14, ANY_FACING, StartSlotMachine + hidden_object 13, 15, ANY_FACING, StartSlotMachine + hidden_object 12, 15, ANY_FACING, StartSlotMachine + hidden_object 12, 14, ANY_FACING, StartSlotMachine + hidden_object 12, 13, ANY_FACING, StartSlotMachine + hidden_object 12, 12, ANY_FACING, StartSlotMachine + hidden_object 12, 11, ANY_FACING, StartSlotMachine + hidden_object 12, 10, ANY_FACING, StartSlotMachine + hidden_object 7, 10, ANY_FACING, StartSlotMachine + hidden_object 7, 11, ANY_FACING, StartSlotMachine + hidden_object 7, 12, ANY_FACING, StartSlotMachine + hidden_object 7, 13, ANY_FACING, StartSlotMachine + hidden_object 7, 14, ANY_FACING, StartSlotMachine + hidden_object 7, 15, ANY_FACING, StartSlotMachine + hidden_object 6, 15, ANY_FACING, StartSlotMachine + hidden_object 6, 14, ANY_FACING, StartSlotMachine + hidden_object 6, 13, ANY_FACING, StartSlotMachine + hidden_object 6, 12, SLOTS_OUTOFORDER, StartSlotMachine + hidden_object 6, 11, ANY_FACING, StartSlotMachine + hidden_object 6, 10, ANY_FACING, StartSlotMachine + hidden_object 1, 10, ANY_FACING, StartSlotMachine + hidden_object 1, 11, ANY_FACING, StartSlotMachine + hidden_object 1, 12, ANY_FACING, StartSlotMachine + hidden_object 1, 13, ANY_FACING, StartSlotMachine + hidden_object 1, 14, ANY_FACING, StartSlotMachine + hidden_object 1, 15, ANY_FACING, StartSlotMachine + hidden_object 0, 8, COIN+10, HiddenCoins + hidden_object 1, 16, COIN+10, HiddenCoins + hidden_object 3, 11, COIN+20, HiddenCoins + hidden_object 3, 14, COIN+10, HiddenCoins + hidden_object 4, 12, COIN+10, HiddenCoins + hidden_object 9, 12, COIN+20, HiddenCoins + hidden_object 9, 15, COIN+10, HiddenCoins + hidden_object 16, 14, COIN+10, HiddenCoins + hidden_object 10, 16, COIN+10, HiddenCoins + hidden_object 11, 7, COIN+40, HiddenCoins + hidden_object 15, 8, COIN+100, HiddenCoins + hidden_object 12, 15, COIN+10, HiddenCoins + db -1 ; end + +FuchsiaPokecenterHiddenObjects: + hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC + hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText + db -1 ; end + +SafariZoneEntranceHiddenObjects: + hidden_object 10, 1, NUGGET, HiddenItems ; inaccessible + db -1 ; end + +FuchsiaGymHiddenObjects: + hidden_object 3, 15, SPRITE_FACING_UP, GymStatues + hidden_object 6, 15, SPRITE_FACING_UP, GymStatues + db -1 ; end + +Mansion1HiddenObjects: + hidden_object 8, 16, MOON_STONE, HiddenItems + hidden_object 2, 5, SPRITE_FACING_UP, Mansion1Script_Switches + db -1 ; end + +CinnabarGymHiddenObjects: + hidden_object 17, 13, SPRITE_FACING_UP, GymStatues + ; third param: ([hGymGateAnswer] << 4) | [hGymGateIndex] + hidden_object 15, 7, (FALSE << 4) | 1, PrintCinnabarQuiz + hidden_object 10, 1, (TRUE << 4) | 2, PrintCinnabarQuiz + hidden_object 9, 7, (TRUE << 4) | 3, PrintCinnabarQuiz + hidden_object 9, 13, (TRUE << 4) | 4, PrintCinnabarQuiz + hidden_object 1, 13, (FALSE << 4) | 5, PrintCinnabarQuiz + hidden_object 1, 7, (TRUE << 4) | 6, PrintCinnabarQuiz + db -1 ; end + +CinnabarLab4HiddenObjects: + hidden_object 0, 4, SPRITE_FACING_UP, OpenPokemonCenterPC + hidden_object 2, 4, SPRITE_FACING_UP, OpenPokemonCenterPC + db -1 ; end + +CinnabarPokecenterHiddenObjects: + hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText + hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC + db -1 ; end diff --git a/data/events/prize_mon_levels.asm b/data/events/prize_mon_levels.asm new file mode 100755 index 000000000..53a2a9668 --- /dev/null +++ b/data/events/prize_mon_levels.asm @@ -0,0 +1,8 @@ +PrizeMonLevelDictionary: + db ABRA, 15 + db VULPIX, 18 + db WIGGLYTUFF, 22 + + db SCYTHER, 30 + db PINSIR, 30 + db PORYGON, 26 diff --git a/data/events/prizes.asm b/data/events/prizes.asm new file mode 100755 index 000000000..61d7b5f58 --- /dev/null +++ b/data/events/prizes.asm @@ -0,0 +1,40 @@ +PrizeDifferentMenuPtrs: + dw PrizeMenuMon1Entries, PrizeMenuMon1Cost + dw PrizeMenuMon2Entries, PrizeMenuMon2Cost + dw PrizeMenuTMsEntries, PrizeMenuTMsCost + +PrizeMenuMon1Entries: + db ABRA + db VULPIX + db WIGGLYTUFF + db "@" + +PrizeMenuMon1Cost: + coins 230 + coins 1000 + coins 2680 + db "@" + +PrizeMenuMon2Entries: + db SCYTHER + db PINSIR + db PORYGON + db "@" + +PrizeMenuMon2Cost: + coins 6500 + coins 6500 + coins 9999 + db "@" + +PrizeMenuTMsEntries: + db TM_DRAGON_RAGE + db TM_HYPER_BEAM + db TM_SUBSTITUTE + db "@" + +PrizeMenuTMsCost: + coins 3300 + coins 5500 + coins 7700 + db "@" diff --git a/data/slot_machine_wheels.asm b/data/events/slot_machine_wheels.asm similarity index 100% rename from data/slot_machine_wheels.asm rename to data/events/slot_machine_wheels.asm diff --git a/data/events/trades.asm b/data/events/trades.asm new file mode 100755 index 000000000..44f7ec219 --- /dev/null +++ b/data/events/trades.asm @@ -0,0 +1,13 @@ +TradeMons: +; entries correspond to TRADE_FOR_* constants + ; give mon, get mon, dialog id, nickname + db LICKITUNG, DUGTRIO, TRADE_DIALOGSET_CASUAL, "GURIO@@@@@@" + db CLEFAIRY, MR_MIME, TRADE_DIALOGSET_CASUAL, "MILES@@@@@@" + db BUTTERFREE, BEEDRILL, TRADE_DIALOGSET_HAPPY, "STINGER@@@@" + db KANGASKHAN, MUK, TRADE_DIALOGSET_CASUAL, "STICKY@@@@@" + db MEW, MEW, TRADE_DIALOGSET_HAPPY, "BART@@@@@@@" + db TANGELA, PARASECT, TRADE_DIALOGSET_CASUAL, "SPIKE@@@@@@" + db PIDGEOT, PIDGEOT, TRADE_DIALOGSET_POLITE, "MARTY@@@@@@" + db GOLDUCK, RHYDON, TRADE_DIALOGSET_POLITE, "BUFFY@@@@@@" + db GROWLITHE, DEWGONG, TRADE_DIALOGSET_HAPPY, "CEZANNE@@@@" + db CUBONE, MACHOKE, TRADE_DIALOGSET_HAPPY, "RICKY@@@@@@" diff --git a/data/evos_moves.asm b/data/evos_moves.asm deleted file mode 100755 index 27397eb0f..000000000 --- a/data/evos_moves.asm +++ /dev/null @@ -1,2161 +0,0 @@ -; See constants/evolution_constants.asm -; The max number of evolutions per monster is MAX_EVOLUTIONS - -EvosMovesPointerTable: - dw RhydonEvosMoves - dw KangaskhanEvosMoves - dw NidoranMEvosMoves - dw ClefairyEvosMoves - dw SpearowEvosMoves - dw VoltorbEvosMoves - dw NidokingEvosMoves - dw SlowbroEvosMoves - dw IvysaurEvosMoves - dw ExeggutorEvosMoves - dw LickitungEvosMoves - dw ExeggcuteEvosMoves - dw GrimerEvosMoves - dw GengarEvosMoves - dw NidoranFEvosMoves - dw NidoqueenEvosMoves - dw CuboneEvosMoves - dw RhyhornEvosMoves - dw LaprasEvosMoves - dw ArcanineEvosMoves - dw MewEvosMoves - dw GyaradosEvosMoves - dw ShellderEvosMoves - dw TentacoolEvosMoves - dw GastlyEvosMoves - dw ScytherEvosMoves - dw StaryuEvosMoves - dw BlastoiseEvosMoves - dw PinsirEvosMoves - dw TangelaEvosMoves - dw MissingNo1FEvosMoves - dw MissingNo20EvosMoves - dw GrowlitheEvosMoves - dw OnixEvosMoves - dw FearowEvosMoves - dw PidgeyEvosMoves - dw SlowpokeEvosMoves - dw KadabraEvosMoves - dw GravelerEvosMoves - dw ChanseyEvosMoves - dw MachokeEvosMoves - dw MrMimeEvosMoves - dw HitmonleeEvosMoves - dw HitmonchanEvosMoves - dw ArbokEvosMoves - dw ParasectEvosMoves - dw PsyduckEvosMoves - dw DrowzeeEvosMoves - dw GolemEvosMoves - dw MissingNo32EvosMoves - dw MagmarEvosMoves - dw MissingNo34EvosMoves - dw ElectabuzzEvosMoves - dw MagnetonEvosMoves - dw KoffingEvosMoves - dw MissingNo38EvosMoves - dw MankeyEvosMoves - dw SeelEvosMoves - dw DiglettEvosMoves - dw TaurosEvosMoves - dw MissingNo3DEvosMoves - dw MissingNo3EEvosMoves - dw MissingNo3FEvosMoves - dw FarfetchdEvosMoves - dw VenonatEvosMoves - dw DragoniteEvosMoves - dw MissingNo43EvosMoves - dw MissingNo44EvosMoves - dw MissingNo45EvosMoves - dw DoduoEvosMoves - dw PoliwagEvosMoves - dw JynxEvosMoves - dw MoltresEvosMoves - dw ArticunoEvosMoves - dw ZapdosEvosMoves - dw DittoEvosMoves - dw MeowthEvosMoves - dw KrabbyEvosMoves - dw MissingNo4FEvosMoves - dw MissingNo50EvosMoves - dw MissingNo51EvosMoves - dw VulpixEvosMoves - dw NinetalesEvosMoves - dw PikachuEvosMoves - dw RaichuEvosMoves - dw MissingNo56EvosMoves - dw MissingNo57EvosMoves - dw DratiniEvosMoves - dw DragonairEvosMoves - dw KabutoEvosMoves - dw KabutopsEvosMoves - dw HorseaEvosMoves - dw SeadraEvosMoves - dw MissingNo5EEvosMoves - dw MissingNo5FEvosMoves - dw SandshrewEvosMoves - dw SandslashEvosMoves - dw OmanyteEvosMoves - dw OmastarEvosMoves - dw JigglypuffEvosMoves - dw WigglytuffEvosMoves - dw EeveeEvosMoves - dw FlareonEvosMoves - dw JolteonEvosMoves - dw VaporeonEvosMoves - dw MachopEvosMoves - dw ZubatEvosMoves - dw EkansEvosMoves - dw ParasEvosMoves - dw PoliwhirlEvosMoves - dw PoliwrathEvosMoves - dw WeedleEvosMoves - dw KakunaEvosMoves - dw BeedrillEvosMoves - dw MissingNo73EvosMoves - dw DodrioEvosMoves - dw PrimeapeEvosMoves - dw DugtrioEvosMoves - dw VenomothEvosMoves - dw DewgongEvosMoves - dw MissingNo79EvosMoves - dw MissingNo7AEvosMoves - dw CaterpieEvosMoves - dw MetapodEvosMoves - dw ButterfreeEvosMoves - dw MachampEvosMoves - dw MissingNo7FEvosMoves - dw GolduckEvosMoves - dw HypnoEvosMoves - dw GolbatEvosMoves - dw MewtwoEvosMoves - dw SnorlaxEvosMoves - dw MagikarpEvosMoves - dw MissingNo86EvosMoves - dw MissingNo87EvosMoves - dw MukEvosMoves - dw MissingNo8AEvosMoves - dw KinglerEvosMoves - dw CloysterEvosMoves - dw MissingNo8CEvosMoves - dw ElectrodeEvosMoves - dw ClefableEvosMoves - dw WeezingEvosMoves - dw PersianEvosMoves - dw MarowakEvosMoves - dw MissingNo92EvosMoves - dw HaunterEvosMoves - dw AbraEvosMoves - dw AlakazamEvosMoves - dw PidgeottoEvosMoves - dw PidgeotEvosMoves - dw StarmieEvosMoves - dw BulbasaurEvosMoves - dw VenusaurEvosMoves - dw TentacruelEvosMoves - dw MissingNo9CEvosMoves - dw GoldeenEvosMoves - dw SeakingEvosMoves - dw MissingNo9FEvosMoves - dw MissingNoA0EvosMoves - dw MissingNoA1EvosMoves - dw MissingNoA2EvosMoves - dw PonytaEvosMoves - dw RapidashEvosMoves - dw RattataEvosMoves - dw RaticateEvosMoves - dw NidorinoEvosMoves - dw NidorinaEvosMoves - dw GeodudeEvosMoves - dw PorygonEvosMoves - dw AerodactylEvosMoves - dw MissingNoACEvosMoves - dw MagnemiteEvosMoves - dw MissingNoAEEvosMoves - dw MissingNoAFEvosMoves - dw CharmanderEvosMoves - dw SquirtleEvosMoves - dw CharmeleonEvosMoves - dw WartortleEvosMoves - dw CharizardEvosMoves - dw MissingNoB5EvosMoves - dw FossilKabutopsEvosMoves - dw FossilAerodactylEvosMoves - dw MonGhostEvosMoves - dw OddishEvosMoves - dw GloomEvosMoves - dw VileplumeEvosMoves - dw BellsproutEvosMoves - dw WeepinbellEvosMoves - dw VictreebelEvosMoves - -RhydonEvosMoves: -; Evolutions - db 0 -; Learnset - db 30, STOMP - db 35, TAIL_WHIP - db 40, FURY_ATTACK - db 48, HORN_DRILL - db 55, LEER - db 64, TAKE_DOWN - db 0 - -KangaskhanEvosMoves: -; Evolutions - db 0 -; Learnset - db 26, BITE - db 31, TAIL_WHIP - db 36, MEGA_PUNCH - db 41, LEER - db 46, DIZZY_PUNCH - db 0 - -NidoranMEvosMoves: -; Evolutions - db EV_LEVEL, 16, NIDORINO - db 0 -; Learnset - 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 - -ClefairyEvosMoves: -; Evolutions - db EV_ITEM, MOON_STONE, 1, CLEFABLE - db 0 -; Learnset - db 13, SING - db 18, DOUBLESLAP - db 24, MINIMIZE - db 31, METRONOME - db 39, DEFENSE_CURL - db 48, LIGHT_SCREEN - db 0 - -SpearowEvosMoves: -; Evolutions - db EV_LEVEL, 20, FEAROW - db 0 -; Learnset - db 9, LEER - db 15, FURY_ATTACK - db 22, MIRROR_MOVE - db 29, DRILL_PECK - db 36, AGILITY - db 0 - -VoltorbEvosMoves: -; Evolutions - db EV_LEVEL, 30, ELECTRODE - db 0 -; Learnset - db 17, SONICBOOM - db 22, SELFDESTRUCT - db 29, LIGHT_SCREEN - db 36, SWIFT - db 43, EXPLOSION - db 0 - -NidokingEvosMoves: -; Evolutions - db 0 -; Learnset - db 8, HORN_ATTACK - db 12, DOUBLE_KICK - db 23, THRASH - db 0 - -SlowbroEvosMoves: -; Evolutions - db 0 -; Learnset - db 18, DISABLE - db 22, HEADBUTT - db 27, GROWL - db 33, WATER_GUN - db 37, WITHDRAW - db 44, AMNESIA - db 55, PSYCHIC_M - db 0 - -IvysaurEvosMoves: -; Evolutions - db EV_LEVEL, 32, VENUSAUR - db 0 -; Learnset - db 7, LEECH_SEED - db 13, VINE_WHIP - db 22, POISONPOWDER - db 30, RAZOR_LEAF - db 38, GROWTH - db 46, SLEEP_POWDER - db 54, SOLARBEAM - db 0 - -ExeggutorEvosMoves: -; Evolutions - db 0 -; Learnset - db 28, STOMP - db 0 - -LickitungEvosMoves: -; Evolutions - db 0 -; Learnset - db 7, STOMP - db 15, DISABLE - db 23, DEFENSE_CURL - db 31, SLAM - db 39, SCREECH - db 0 - -ExeggcuteEvosMoves: -; Evolutions - db EV_ITEM, LEAF_STONE, 1, EXEGGUTOR - db 0 -; Learnset - db 25, REFLECT - db 28, LEECH_SEED - db 32, STUN_SPORE - db 37, POISONPOWDER - db 42, SOLARBEAM - db 48, SLEEP_POWDER - db 0 - -GrimerEvosMoves: -; Evolutions - db EV_LEVEL, 38, MUK - db 0 -; Learnset - db 30, POISON_GAS - db 33, MINIMIZE - db 37, SLUDGE - db 42, HARDEN - db 48, SCREECH - db 55, ACID_ARMOR - db 0 - -GengarEvosMoves: -; Evolutions - db 0 -; Learnset - db 29, HYPNOSIS - db 38, DREAM_EATER - db 0 - -NidoranFEvosMoves: -; Evolutions - db EV_LEVEL, 16, NIDORINA - db 0 -; Learnset - db 8, SCRATCH - db 12, DOUBLE_KICK - db 17, POISON_STING - db 23, TAIL_WHIP - db 30, BITE - db 38, FURY_SWIPES - db 0 - -NidoqueenEvosMoves: -; Evolutions - db 0 -; Learnset - db 8, SCRATCH - db 12, DOUBLE_KICK - db 23, BODY_SLAM - db 0 - -CuboneEvosMoves: -; Evolutions - db EV_LEVEL, 28, MAROWAK - db 0 -; Learnset - db 10, BONE_CLUB - db 13, TAIL_WHIP - db 18, HEADBUTT - db 25, LEER - db 31, FOCUS_ENERGY - db 38, THRASH - db 43, BONEMERANG - db 46, RAGE - db 0 - -RhyhornEvosMoves: -; Evolutions - db EV_LEVEL, 42, RHYDON - db 0 -; Learnset - db 30, STOMP - db 35, TAIL_WHIP - db 40, FURY_ATTACK - db 45, HORN_DRILL - db 50, LEER - db 55, TAKE_DOWN - db 0 - -LaprasEvosMoves: -; Evolutions - db 0 -; Learnset - db 16, SING - db 20, MIST - db 25, BODY_SLAM - db 31, CONFUSE_RAY - db 38, ICE_BEAM - db 46, HYDRO_PUMP - db 0 - -ArcanineEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MewEvosMoves: -; Evolutions - db 0 -; Learnset - db 10, TRANSFORM - db 20, MEGA_PUNCH - db 30, METRONOME - db 40, PSYCHIC_M - db 0 - -GyaradosEvosMoves: -; Evolutions - db 0 -; Learnset - db 20, BITE - db 25, DRAGON_RAGE - db 32, LEER - db 41, HYDRO_PUMP - db 52, HYPER_BEAM - db 0 - -ShellderEvosMoves: -; Evolutions - db EV_ITEM, WATER_STONE, 1, CLOYSTER - db 0 -; Learnset - db 18, SUPERSONIC - db 23, CLAMP - db 30, AURORA_BEAM - db 39, LEER - db 50, ICE_BEAM - db 0 - -TentacoolEvosMoves: -; Evolutions - db EV_LEVEL, 30, TENTACRUEL - db 0 -; Learnset - db 7, SUPERSONIC - db 13, WRAP - db 18, POISON_STING - db 22, WATER_GUN - db 27, CONSTRICT - db 33, BARRIER - db 40, SCREECH - db 48, HYDRO_PUMP - db 0 - -GastlyEvosMoves: -; Evolutions - db EV_LEVEL, 25, HAUNTER - db 0 -; Learnset - db 27, HYPNOSIS - db 35, DREAM_EATER - db 0 - -ScytherEvosMoves: -; Evolutions - db 0 -; Learnset - db 17, LEER - db 20, FOCUS_ENERGY - db 24, DOUBLE_TEAM - db 29, SLASH - db 35, SWORDS_DANCE - db 42, AGILITY - db 50, WING_ATTACK - db 0 - -StaryuEvosMoves: -; Evolutions - db EV_ITEM, WATER_STONE, 1, STARMIE - db 0 -; Learnset - db 17, WATER_GUN - db 22, HARDEN - db 27, RECOVER - db 32, SWIFT - db 37, MINIMIZE - db 42, LIGHT_SCREEN - db 47, HYDRO_PUMP - db 0 - -BlastoiseEvosMoves: -; Evolutions - db 0 -; Learnset - db 8, BUBBLE - db 15, WATER_GUN - db 24, BITE - db 31, WITHDRAW - db 42, SKULL_BASH - db 52, HYDRO_PUMP - db 0 - -PinsirEvosMoves: -; Evolutions - db 0 -; Learnset - db 21, BIND - db 25, SEISMIC_TOSS - db 30, GUILLOTINE - db 36, FOCUS_ENERGY - db 43, HARDEN - db 49, SLASH - db 54, SWORDS_DANCE - db 0 - -TangelaEvosMoves: -; Evolutions - db 0 -; Learnset - db 24, BIND - db 27, ABSORB - db 29, VINE_WHIP - db 32, POISONPOWDER - db 36, STUN_SPORE - db 39, SLEEP_POWDER - db 45, SLAM - db 48, GROWTH - db 0 - -MissingNo1FEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MissingNo20EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -GrowlitheEvosMoves: -; Evolutions - db EV_ITEM, FIRE_STONE, 1, ARCANINE - db 0 -; Learnset - db 18, EMBER - db 23, LEER - db 30, TAKE_DOWN - db 39, AGILITY - db 50, FLAMETHROWER - db 0 - -OnixEvosMoves: -; Evolutions - db 0 -; Learnset - db 15, BIND - db 19, ROCK_THROW - db 25, RAGE - db 33, SLAM - db 43, HARDEN - db 0 - -FearowEvosMoves: -; Evolutions - db 0 -; Learnset - db 9, LEER - db 15, FURY_ATTACK - db 25, MIRROR_MOVE - db 34, DRILL_PECK - db 43, AGILITY - db 0 - -PidgeyEvosMoves: -; Evolutions - db EV_LEVEL, 18, PIDGEOTTO - db 0 -; Learnset - db 5, SAND_ATTACK - db 12, QUICK_ATTACK - db 19, WHIRLWIND - db 28, WING_ATTACK - db 36, AGILITY - db 44, MIRROR_MOVE - db 0 - -SlowpokeEvosMoves: -; Evolutions - db EV_LEVEL, 37, SLOWBRO - db 0 -; Learnset - db 18, DISABLE - db 22, HEADBUTT - db 27, GROWL - db 33, WATER_GUN - db 40, AMNESIA - db 48, PSYCHIC_M - db 0 - -KadabraEvosMoves: -; Evolutions - db EV_TRADE, 1, ALAKAZAM - db 0 -; Learnset - db 16, CONFUSION - db 20, DISABLE - db 27, PSYBEAM - db 31, RECOVER - db 38, PSYCHIC_M - db 42, REFLECT - db 0 - -GravelerEvosMoves: -; Evolutions - db EV_TRADE, 1, GOLEM - db 0 -; Learnset - db 11, DEFENSE_CURL - db 16, ROCK_THROW - db 21, SELFDESTRUCT - db 29, HARDEN - db 36, EARTHQUAKE - db 43, EXPLOSION - db 0 - -ChanseyEvosMoves: -; Evolutions - db 0 -; Learnset - db 12, DOUBLESLAP - db 24, SING - db 30, GROWL - db 38, MINIMIZE - db 44, DEFENSE_CURL - db 48, LIGHT_SCREEN - db 54, DOUBLE_EDGE - db 0 - -MachokeEvosMoves: -; Evolutions - db EV_TRADE, 1, MACHAMP - db 0 -; Learnset - db 20, LOW_KICK - db 25, LEER - db 36, FOCUS_ENERGY - db 44, SEISMIC_TOSS - db 52, SUBMISSION - db 0 - -MrMimeEvosMoves: -; Evolutions - db 0 -; Learnset - db 15, CONFUSION - db 23, LIGHT_SCREEN - db 31, DOUBLESLAP - db 39, MEDITATE - db 47, SUBSTITUTE - db 0 - -HitmonleeEvosMoves: -; Evolutions - db 0 -; Learnset - db 33, ROLLING_KICK - db 38, JUMP_KICK - db 43, FOCUS_ENERGY - db 48, HI_JUMP_KICK - db 53, MEGA_KICK - db 0 - -HitmonchanEvosMoves: -; Evolutions - db 0 -; Learnset - db 33, FIRE_PUNCH - db 38, ICE_PUNCH - db 43, THUNDERPUNCH - db 48, MEGA_PUNCH - db 53, COUNTER - db 0 - -ArbokEvosMoves: -; Evolutions - db 0 -; Learnset - db 10, POISON_STING - db 17, BITE - db 27, GLARE - db 36, SCREECH - db 47, ACID - db 0 - -ParasectEvosMoves: -; Evolutions - db 0 -; Learnset - db 13, STUN_SPORE - db 20, LEECH_LIFE - db 30, SPORE - db 39, SLASH - db 48, GROWTH - db 0 - -PsyduckEvosMoves: -; Evolutions - db EV_LEVEL, 33, GOLDUCK - db 0 -; Learnset - db 28, TAIL_WHIP - db 31, DISABLE - db 36, CONFUSION - db 43, FURY_SWIPES - db 52, HYDRO_PUMP - db 0 - -DrowzeeEvosMoves: -; Evolutions - db EV_LEVEL, 26, HYPNO - db 0 -; Learnset - db 12, DISABLE - db 17, CONFUSION - db 24, HEADBUTT - db 29, POISON_GAS - db 32, PSYCHIC_M - db 37, MEDITATE - db 0 - -GolemEvosMoves: -; Evolutions - db 0 -; Learnset - db 11, DEFENSE_CURL - db 16, ROCK_THROW - db 21, SELFDESTRUCT - db 29, HARDEN - db 36, EARTHQUAKE - db 43, EXPLOSION - db 0 - -MissingNo32EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MagmarEvosMoves: -; Evolutions - db 0 -; Learnset - db 36, LEER - db 39, CONFUSE_RAY - db 43, FIRE_PUNCH - db 48, SMOKESCREEN - db 52, SMOG - db 55, FLAMETHROWER - db 0 - -MissingNo34EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -ElectabuzzEvosMoves: -; Evolutions - db 0 -; Learnset - db 34, THUNDERSHOCK - db 37, SCREECH - db 42, THUNDERPUNCH - db 49, LIGHT_SCREEN - db 54, THUNDER - db 0 - -MagnetonEvosMoves: -; Evolutions - db 0 -; Learnset - db 21, SONICBOOM - db 25, THUNDERSHOCK - db 29, SUPERSONIC - db 38, THUNDER_WAVE - db 46, SWIFT - db 54, SCREECH - db 0 - -KoffingEvosMoves: -; Evolutions - db EV_LEVEL, 35, WEEZING - db 0 -; Learnset - db 32, SLUDGE - db 37, SMOKESCREEN - db 40, SELFDESTRUCT - db 45, HAZE - db 48, EXPLOSION - db 0 - -MissingNo38EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MankeyEvosMoves: -; Evolutions - db EV_LEVEL, 28, PRIMEAPE - db 0 -; Learnset - db 9, LOW_KICK - db 15, KARATE_CHOP - db 21, FURY_SWIPES - db 27, FOCUS_ENERGY - db 33, SEISMIC_TOSS - db 39, THRASH - db 45, SCREECH - db 0 - -SeelEvosMoves: -; Evolutions - db EV_LEVEL, 34, DEWGONG - db 0 -; Learnset - db 30, GROWL - db 35, AURORA_BEAM - db 40, REST - db 45, TAKE_DOWN - db 50, ICE_BEAM - db 0 - -DiglettEvosMoves: -; Evolutions - db EV_LEVEL, 26, DUGTRIO - db 0 -; Learnset - db 15, GROWL - db 19, DIG - db 24, SAND_ATTACK - db 31, SLASH - db 40, EARTHQUAKE - db 0 - -TaurosEvosMoves: -; Evolutions - db 0 -; Learnset - db 21, STOMP - db 28, TAIL_WHIP - db 35, LEER - db 44, RAGE - db 51, TAKE_DOWN - db 0 - -MissingNo3DEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MissingNo3EEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MissingNo3FEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -FarfetchdEvosMoves: -; Evolutions - db 0 -; Learnset - db 7, LEER - db 15, FURY_ATTACK - db 23, SWORDS_DANCE - db 31, AGILITY - db 39, SLASH - db 0 - -VenonatEvosMoves: -; Evolutions - db EV_LEVEL, 31, VENOMOTH - db 0 -; Learnset - db 11, SUPERSONIC - db 19, CONFUSION - db 22, POISONPOWDER - db 27, LEECH_LIFE - db 30, STUN_SPORE - db 35, PSYBEAM - db 38, SLEEP_POWDER - db 43, PSYCHIC_M - db 0 - -DragoniteEvosMoves: -; Evolutions - db 0 -; Learnset - db 10, THUNDER_WAVE - db 20, AGILITY - db 35, SLAM - db 45, DRAGON_RAGE - db 60, HYPER_BEAM - db 0 - -MissingNo43EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MissingNo44EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MissingNo45EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -DoduoEvosMoves: -; Evolutions - db EV_LEVEL, 31, DODRIO - db 0 -; Learnset - db 20, GROWL - db 24, FURY_ATTACK - db 30, DRILL_PECK - db 36, RAGE - db 40, TRI_ATTACK - db 44, AGILITY - db 0 - -PoliwagEvosMoves: -; Evolutions - db EV_LEVEL, 25, POLIWHIRL - db 0 -; Learnset - db 16, HYPNOSIS - db 19, WATER_GUN - db 25, DOUBLESLAP - db 31, BODY_SLAM - db 38, AMNESIA - db 45, HYDRO_PUMP - db 0 - -JynxEvosMoves: -; Evolutions - db 0 -; Learnset - db 18, LICK - db 23, DOUBLESLAP - db 31, ICE_PUNCH - db 39, BODY_SLAM - db 47, THRASH - db 58, BLIZZARD - db 0 - -MoltresEvosMoves: -; Evolutions - db 0 -; Learnset - db 51, LEER - db 55, AGILITY - db 60, SKY_ATTACK - db 0 - -ArticunoEvosMoves: -; Evolutions - db 0 -; Learnset - db 51, BLIZZARD - db 55, AGILITY - db 60, MIST - db 0 - -ZapdosEvosMoves: -; Evolutions - db 0 -; Learnset - db 51, THUNDER - db 55, AGILITY - db 60, LIGHT_SCREEN - db 0 - -DittoEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MeowthEvosMoves: -; Evolutions - db EV_LEVEL, 28, PERSIAN - db 0 -; Learnset - db 12, BITE - db 17, PAY_DAY - db 24, SCREECH - db 33, FURY_SWIPES - db 44, SLASH - db 0 - -KrabbyEvosMoves: -; Evolutions - db EV_LEVEL, 28, KINGLER - db 0 -; Learnset - db 20, VICEGRIP - db 25, GUILLOTINE - db 30, STOMP - db 35, CRABHAMMER - db 40, HARDEN - db 0 - -MissingNo4FEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MissingNo50EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MissingNo51EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -VulpixEvosMoves: -; Evolutions - db EV_ITEM, FIRE_STONE, 1, NINETALES - db 0 -; Learnset - db 16, QUICK_ATTACK - db 21, ROAR - db 28, CONFUSE_RAY - db 35, FLAMETHROWER - db 42, FIRE_SPIN - db 0 - -NinetalesEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -PikachuEvosMoves: -; Evolutions - db EV_ITEM, THUNDER_STONE, 1, RAICHU - db 0 -; Learnset - 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 - -RaichuEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MissingNo56EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MissingNo57EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -DratiniEvosMoves: -; Evolutions - db EV_LEVEL, 30, DRAGONAIR - db 0 -; Learnset - db 10, THUNDER_WAVE - db 20, AGILITY - db 30, SLAM - db 40, DRAGON_RAGE - db 50, HYPER_BEAM - db 0 - -DragonairEvosMoves: -; Evolutions - db EV_LEVEL, 55, DRAGONITE - db 0 -; Learnset - db 10, THUNDER_WAVE - db 20, AGILITY - db 35, SLAM - db 45, DRAGON_RAGE - db 55, HYPER_BEAM - db 0 - -KabutoEvosMoves: -; Evolutions - db EV_LEVEL, 40, KABUTOPS - db 0 -; Learnset - db 34, ABSORB - db 39, SLASH - db 44, LEER - db 49, HYDRO_PUMP - db 0 - -KabutopsEvosMoves: -; Evolutions - db 0 -; Learnset - db 34, ABSORB - db 39, SLASH - db 46, LEER - db 53, HYDRO_PUMP - db 0 - -HorseaEvosMoves: -; Evolutions - db EV_LEVEL, 32, SEADRA - db 0 -; Learnset - db 19, SMOKESCREEN - db 24, LEER - db 30, WATER_GUN - db 37, AGILITY - db 45, HYDRO_PUMP - db 0 - -SeadraEvosMoves: -; Evolutions - db 0 -; Learnset - db 19, SMOKESCREEN - db 24, LEER - db 30, WATER_GUN - db 41, AGILITY - db 52, HYDRO_PUMP - db 0 - -MissingNo5EEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MissingNo5FEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -SandshrewEvosMoves: -; Evolutions - db EV_LEVEL, 22, SANDSLASH - db 0 -; Learnset - db 10, SAND_ATTACK - db 17, SLASH - db 24, POISON_STING - db 31, SWIFT - db 38, FURY_SWIPES - db 0 - -SandslashEvosMoves: -; Evolutions - db 0 -; Learnset - db 10, SAND_ATTACK - db 17, SLASH - db 27, POISON_STING - db 36, SWIFT - db 47, FURY_SWIPES - db 0 - -OmanyteEvosMoves: -; Evolutions - db EV_LEVEL, 40, OMASTAR - db 0 -; Learnset - db 34, HORN_ATTACK - db 39, LEER - db 46, SPIKE_CANNON - db 53, HYDRO_PUMP - db 0 - -OmastarEvosMoves: -; Evolutions - db 0 -; Learnset - db 34, HORN_ATTACK - db 39, LEER - db 44, SPIKE_CANNON - db 49, HYDRO_PUMP - db 0 - -JigglypuffEvosMoves: -; Evolutions - db EV_ITEM, MOON_STONE, 1, WIGGLYTUFF - db 0 -; Learnset - db 9, POUND - db 14, DISABLE - db 19, DEFENSE_CURL - db 24, DOUBLESLAP - db 29, REST - db 34, BODY_SLAM - db 39, DOUBLE_EDGE - db 0 - -WigglytuffEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -EeveeEvosMoves: -; Evolutions - db EV_ITEM, FIRE_STONE, 1, FLAREON - db EV_ITEM, THUNDER_STONE, 1, JOLTEON - db EV_ITEM, WATER_STONE, 1, VAPOREON - db 0 -; Learnset - db 8, SAND_ATTACK - db 16, GROWL - db 23, QUICK_ATTACK - db 30, BITE - db 36, FOCUS_ENERGY - db 42, TAKE_DOWN - db 0 - -FlareonEvosMoves: -; Evolutions - db 0 -; Learnset - 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 - -JolteonEvosMoves: -; Evolutions - db 0 -; Learnset - 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 - -VaporeonEvosMoves: -; Evolutions - db 0 -; Learnset - db 8, SAND_ATTACK - db 16, WATER_GUN - db 23, QUICK_ATTACK - db 30, BITE - db 36, AURORA_BEAM - db 42, HAZE - db 42, MIST - db 47, ACID_ARMOR - db 52, HYDRO_PUMP - db 0 - -MachopEvosMoves: -; Evolutions - db EV_LEVEL, 28, MACHOKE - db 0 -; Learnset - db 20, LOW_KICK - db 25, LEER - db 32, FOCUS_ENERGY - db 39, SEISMIC_TOSS - db 46, SUBMISSION - db 0 - -ZubatEvosMoves: -; Evolutions - db EV_LEVEL, 22, GOLBAT - db 0 -; Learnset - db 10, SUPERSONIC - db 15, BITE - db 21, CONFUSE_RAY - db 28, WING_ATTACK - db 36, HAZE - db 0 - -EkansEvosMoves: -; Evolutions - db EV_LEVEL, 22, ARBOK - db 0 -; Learnset - db 10, POISON_STING - db 17, BITE - db 24, GLARE - db 31, SCREECH - db 38, ACID - db 0 - -ParasEvosMoves: -; Evolutions - db EV_LEVEL, 24, PARASECT - db 0 -; Learnset - db 13, STUN_SPORE - db 20, LEECH_LIFE - db 27, SPORE - db 34, SLASH - db 41, GROWTH - db 0 - -PoliwhirlEvosMoves: -; Evolutions - db EV_ITEM, WATER_STONE, 1, POLIWRATH - db 0 -; Learnset - db 16, HYPNOSIS - db 19, WATER_GUN - db 26, DOUBLESLAP - db 33, BODY_SLAM - db 41, AMNESIA - db 49, HYDRO_PUMP - db 0 - -PoliwrathEvosMoves: -; Evolutions - db 0 -; Learnset - db 16, HYPNOSIS - db 19, WATER_GUN - db 0 - -WeedleEvosMoves: -; Evolutions - db EV_LEVEL, 7, KAKUNA - db 0 -; Learnset - db 0 - -KakunaEvosMoves: -; Evolutions - db EV_LEVEL, 10, BEEDRILL - db 0 -; Learnset - db 0 - -BeedrillEvosMoves: -; Evolutions - db 0 -; Learnset - db 12, FURY_ATTACK - db 16, FOCUS_ENERGY - db 20, TWINEEDLE - db 25, RAGE - db 30, PIN_MISSILE - db 35, AGILITY - db 0 - -MissingNo73EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -DodrioEvosMoves: -; Evolutions - db 0 -; Learnset - db 20, GROWL - db 24, FURY_ATTACK - db 30, DRILL_PECK - db 39, RAGE - db 45, TRI_ATTACK - db 51, AGILITY - db 0 - -PrimeapeEvosMoves: -; Evolutions - db 0 -; Learnset - db 9, LOW_KICK - db 15, KARATE_CHOP - db 21, FURY_SWIPES - db 27, FOCUS_ENERGY - db 28, RAGE - db 37, SEISMIC_TOSS - db 46, THRASH - db 45, SCREECH - db 0 - -DugtrioEvosMoves: -; Evolutions - db 0 -; Learnset - db 15, GROWL - db 19, DIG - db 24, SAND_ATTACK - db 35, SLASH - db 47, EARTHQUAKE - db 0 - -VenomothEvosMoves: -; Evolutions - db 0 -; Learnset - db 22, POISONPOWDER - db 27, LEECH_LIFE - db 30, STUN_SPORE - db 38, PSYBEAM - db 43, SLEEP_POWDER - db 50, PSYCHIC_M - db 0 - -DewgongEvosMoves: -; Evolutions - db 0 -; Learnset - db 30, GROWL - db 35, AURORA_BEAM - db 44, REST - db 50, TAKE_DOWN - db 56, ICE_BEAM - db 0 - -MissingNo79EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MissingNo7AEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -CaterpieEvosMoves: -; Evolutions - db EV_LEVEL, 7, METAPOD - db 0 -; Learnset - db 0 - -MetapodEvosMoves: -; Evolutions - db EV_LEVEL, 10, BUTTERFREE - db 0 -; Learnset - db 7, HARDEN - db 0 - -ButterfreeEvosMoves: -; Evolutions - db 0 -; Learnset - 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 0 - -MachampEvosMoves: -; Evolutions - db 0 -; Learnset - db 20, LOW_KICK - db 25, LEER - db 36, FOCUS_ENERGY - db 44, SEISMIC_TOSS - db 52, SUBMISSION - db 0 - -MissingNo7FEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -GolduckEvosMoves: -; Evolutions - db 0 -; Learnset - db 28, TAIL_WHIP - db 31, DISABLE - db 39, CONFUSION - db 48, FURY_SWIPES - db 59, HYDRO_PUMP - db 0 - -HypnoEvosMoves: -; Evolutions - db 0 -; Learnset - db 12, DISABLE - db 17, CONFUSION - db 24, HEADBUTT - db 33, POISON_GAS - db 37, PSYCHIC_M - db 43, MEDITATE - db 0 - -GolbatEvosMoves: -; Evolutions - db 0 -; Learnset - db 10, SUPERSONIC - db 15, BITE - db 21, CONFUSE_RAY - db 32, WING_ATTACK - db 43, HAZE - db 0 - -MewtwoEvosMoves: -; Evolutions - db 0 -; Learnset - db 63, BARRIER - db 66, PSYCHIC_M - db 70, RECOVER - db 75, MIST - db 81, AMNESIA - db 0 - -SnorlaxEvosMoves: -; Evolutions - db 0 -; Learnset - db 35, BODY_SLAM - db 41, HARDEN - db 48, DOUBLE_EDGE - db 56, HYPER_BEAM - db 0 - -MagikarpEvosMoves: -; Evolutions - db EV_LEVEL, 20, GYARADOS - db 0 -; Learnset - db 15, TACKLE - db 0 - -MissingNo86EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MissingNo87EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MukEvosMoves: -; Evolutions - db 0 -; Learnset - db 30, POISON_GAS - db 33, MINIMIZE - db 37, SLUDGE - db 45, HARDEN - db 53, SCREECH - db 60, ACID_ARMOR - db 0 - -MissingNo8AEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -KinglerEvosMoves: -; Evolutions - db 0 -; Learnset - db 20, VICEGRIP - db 25, GUILLOTINE - db 34, STOMP - db 42, CRABHAMMER - db 49, HARDEN - db 0 - -CloysterEvosMoves: -; Evolutions - db 0 -; Learnset - db 50, SPIKE_CANNON - db 0 - -MissingNo8CEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -ElectrodeEvosMoves: -; Evolutions - db 0 -; Learnset - db 17, SONICBOOM - db 22, SELFDESTRUCT - db 29, LIGHT_SCREEN - db 40, SWIFT - db 50, EXPLOSION - db 0 - -ClefableEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -WeezingEvosMoves: -; Evolutions - db 0 -; Learnset - db 32, SLUDGE - db 39, SMOKESCREEN - db 43, SELFDESTRUCT - db 49, HAZE - db 53, EXPLOSION - db 0 - -PersianEvosMoves: -; Evolutions - db 0 -; Learnset - db 12, BITE - db 17, PAY_DAY - db 24, SCREECH - db 37, FURY_SWIPES - db 51, SLASH - db 0 - -MarowakEvosMoves: -; Evolutions - db 0 -; Learnset - db 10, BONE_CLUB - db 13, TAIL_WHIP - db 18, HEADBUTT - db 25, LEER - db 33, FOCUS_ENERGY - db 41, THRASH - db 48, BONEMERANG - db 55, RAGE - db 0 - -MissingNo92EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -HaunterEvosMoves: -; Evolutions - db EV_TRADE, 1, GENGAR - db 0 -; Learnset - db 29, HYPNOSIS - db 38, DREAM_EATER - db 0 - -AbraEvosMoves: -; Evolutions - db EV_LEVEL, 16, KADABRA - db 0 -; Learnset - db 0 - -AlakazamEvosMoves: -; Evolutions - db 0 -; Learnset - db 16, CONFUSION - db 20, DISABLE - db 27, PSYBEAM - db 31, RECOVER - db 38, PSYCHIC_M - db 42, REFLECT - db 0 - -PidgeottoEvosMoves: -; Evolutions - db EV_LEVEL, 36, PIDGEOT - db 0 -; Learnset - db 5, SAND_ATTACK - db 12, QUICK_ATTACK - db 21, WHIRLWIND - db 31, WING_ATTACK - db 40, AGILITY - db 49, MIRROR_MOVE - db 0 - -PidgeotEvosMoves: -; Evolutions - db 0 -; Learnset - db 5, SAND_ATTACK - db 12, QUICK_ATTACK - db 21, WHIRLWIND - db 31, WING_ATTACK - db 44, AGILITY - db 54, MIRROR_MOVE - db 0 - -StarmieEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -BulbasaurEvosMoves: -; Evolutions - db EV_LEVEL, 16, IVYSAUR - db 0 -; Learnset - db 7, LEECH_SEED - db 13, VINE_WHIP - db 20, POISONPOWDER - db 27, RAZOR_LEAF - db 34, GROWTH - db 41, SLEEP_POWDER - db 48, SOLARBEAM - db 0 - -VenusaurEvosMoves: -; Evolutions - db 0 -; Learnset - db 7, LEECH_SEED - db 13, VINE_WHIP - db 22, POISONPOWDER - db 30, RAZOR_LEAF - db 43, GROWTH - db 55, SLEEP_POWDER - db 65, SOLARBEAM - db 0 - -TentacruelEvosMoves: -; Evolutions - db 0 -; Learnset - db 7, SUPERSONIC - db 13, WRAP - db 18, POISON_STING - db 22, WATER_GUN - db 27, CONSTRICT - db 35, BARRIER - db 43, SCREECH - db 50, HYDRO_PUMP - db 0 - -MissingNo9CEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -GoldeenEvosMoves: -; Evolutions - db EV_LEVEL, 33, SEAKING - db 0 -; Learnset - db 19, SUPERSONIC - db 24, HORN_ATTACK - db 30, FURY_ATTACK - db 37, WATERFALL - db 45, HORN_DRILL - db 54, AGILITY - db 0 - -SeakingEvosMoves: -; Evolutions - db 0 -; Learnset - db 19, SUPERSONIC - db 24, HORN_ATTACK - db 30, FURY_ATTACK - db 39, WATERFALL - db 48, HORN_DRILL - db 54, AGILITY - db 0 - -MissingNo9FEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MissingNoA0EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MissingNoA1EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MissingNoA2EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -PonytaEvosMoves: -; Evolutions - db EV_LEVEL, 40, RAPIDASH - db 0 -; Learnset - db 30, TAIL_WHIP - db 32, STOMP - db 35, GROWL - db 39, FIRE_SPIN - db 43, TAKE_DOWN - db 48, AGILITY - db 0 - -RapidashEvosMoves: -; Evolutions - db 0 -; Learnset - db 30, TAIL_WHIP - db 32, STOMP - db 35, GROWL - db 39, FIRE_SPIN - db 47, TAKE_DOWN - db 55, AGILITY - db 0 - -RattataEvosMoves: -; Evolutions - db EV_LEVEL, 20, RATICATE - db 0 -; Learnset - db 7, QUICK_ATTACK - db 14, HYPER_FANG - db 23, FOCUS_ENERGY - db 34, SUPER_FANG - db 0 - -RaticateEvosMoves: -; Evolutions - db 0 -; Learnset - db 7, QUICK_ATTACK - db 14, HYPER_FANG - db 27, FOCUS_ENERGY - db 41, SUPER_FANG - db 0 - -NidorinoEvosMoves: -; Evolutions - db EV_ITEM, MOON_STONE, 1, NIDOKING - db 0 -; Learnset - 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 - -NidorinaEvosMoves: -; Evolutions - db EV_ITEM, MOON_STONE, 1, NIDOQUEEN - db 0 -; Learnset - db 8, SCRATCH - db 12, DOUBLE_KICK - db 19, POISON_STING - db 27, TAIL_WHIP - db 36, BITE - db 46, FURY_SWIPES - db 0 - -GeodudeEvosMoves: -; Evolutions - db EV_LEVEL, 25, GRAVELER - db 0 -; Learnset - db 11, DEFENSE_CURL - db 16, ROCK_THROW - db 21, SELFDESTRUCT - db 26, HARDEN - db 31, EARTHQUAKE - db 36, EXPLOSION - db 0 - -PorygonEvosMoves: -; Evolutions - db 0 -; Learnset - db 23, PSYBEAM - db 28, RECOVER - db 35, AGILITY - db 42, TRI_ATTACK - db 0 - -AerodactylEvosMoves: -; Evolutions - db 0 -; Learnset - db 33, SUPERSONIC - db 38, BITE - db 45, TAKE_DOWN - db 54, HYPER_BEAM - db 0 - -MissingNoACEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MagnemiteEvosMoves: -; Evolutions - db EV_LEVEL, 30, MAGNETON - db 0 -; Learnset - db 21, SONICBOOM - db 25, THUNDERSHOCK - db 29, SUPERSONIC - db 35, THUNDER_WAVE - db 41, SWIFT - db 47, SCREECH - db 0 - -MissingNoAEEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MissingNoAFEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -CharmanderEvosMoves: -; Evolutions - db EV_LEVEL, 16, CHARMELEON - db 0 -; Learnset - db 9, EMBER - db 15, LEER - db 22, RAGE - db 30, SLASH - db 38, FLAMETHROWER - db 46, FIRE_SPIN - db 0 - -SquirtleEvosMoves: -; Evolutions - db EV_LEVEL, 16, WARTORTLE - db 0 -; Learnset - db 8, BUBBLE - db 15, WATER_GUN - db 22, BITE - db 28, WITHDRAW - db 35, SKULL_BASH - db 42, HYDRO_PUMP - db 0 - -CharmeleonEvosMoves: -; Evolutions - db EV_LEVEL, 36, CHARIZARD - db 0 -; Learnset - db 9, EMBER - db 15, LEER - db 24, RAGE - db 33, SLASH - db 42, FLAMETHROWER - db 56, FIRE_SPIN - db 0 - -WartortleEvosMoves: -; Evolutions - db EV_LEVEL, 36, BLASTOISE - db 0 -; Learnset - db 8, BUBBLE - db 15, WATER_GUN - db 24, BITE - db 31, WITHDRAW - db 39, SKULL_BASH - db 47, HYDRO_PUMP - db 0 - -CharizardEvosMoves: -; Evolutions - db 0 -; Learnset - db 9, EMBER - db 15, LEER - db 24, RAGE - db 36, SLASH - db 46, FLAMETHROWER - db 55, FIRE_SPIN - db 0 - -MissingNoB5EvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -FossilKabutopsEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -FossilAerodactylEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -MonGhostEvosMoves: -; Evolutions - db 0 -; Learnset - db 0 - -OddishEvosMoves: -; Evolutions - db EV_LEVEL, 21, GLOOM - db 0 -; Learnset - db 15, POISONPOWDER - db 17, STUN_SPORE - db 19, SLEEP_POWDER - db 24, ACID - db 33, PETAL_DANCE - db 46, SOLARBEAM - db 0 - -GloomEvosMoves: -; Evolutions - db EV_ITEM, LEAF_STONE, 1, VILEPLUME - db 0 -; Learnset - db 15, POISONPOWDER - db 17, STUN_SPORE - db 19, SLEEP_POWDER - db 28, ACID - db 38, PETAL_DANCE - db 52, SOLARBEAM - db 0 - -VileplumeEvosMoves: -; Evolutions - db 0 -; Learnset - db 15, POISONPOWDER - db 17, STUN_SPORE - db 19, SLEEP_POWDER - db 0 - -BellsproutEvosMoves: -; Evolutions - db EV_LEVEL, 21, WEEPINBELL - db 0 -; Learnset - db 13, WRAP - db 15, POISONPOWDER - db 18, SLEEP_POWDER - db 21, STUN_SPORE - db 26, ACID - db 33, RAZOR_LEAF - db 42, SLAM - db 0 - -WeepinbellEvosMoves: -; Evolutions - db EV_ITEM, LEAF_STONE, 1, VICTREEBEL - db 0 -; Learnset - db 13, WRAP - db 15, POISONPOWDER - db 18, SLEEP_POWDER - db 23, STUN_SPORE - db 29, ACID - db 38, RAZOR_LEAF - db 49, SLAM - db 0 - -VictreebelEvosMoves: -; Evolutions - db 0 -; Learnset - db 13, WRAP - db 15, POISONPOWDER - db 18, SLEEP_POWDER - db 0 diff --git a/data/facing.asm b/data/facing.asm deleted file mode 100644 index 944a31c89..000000000 --- a/data/facing.asm +++ /dev/null @@ -1,133 +0,0 @@ -SpriteFacingAndAnimationTable: - dw SpriteFacingDownAndStanding ; facing down, walk animation frame 0 - dw SpriteFacingDownAndWalking ; facing down, walk animation frame 1 - dw SpriteFacingDownAndStanding ; facing down, walk animation frame 2 - dw SpriteFacingDownAndWalking2 ; facing down, walk animation frame 3 - - dw SpriteFacingUpAndStanding ; facing up, walk animation frame 0 - dw SpriteFacingUpAndWalking ; facing up, walk animation frame 1 - dw SpriteFacingUpAndStanding ; facing up, walk animation frame 2 - dw SpriteFacingUpAndWalking2 ; facing up, walk animation frame 3 - - dw SpriteFacingLeftAndStanding ; facing left, walk animation frame 0 - dw SpriteFacingLeftAndWalking ; facing left, walk animation frame 1 - dw SpriteFacingLeftAndStanding ; facing left, walk animation frame 2 - dw SpriteFacingLeftAndWalking ; facing left, walk animation frame 3 - - dw SpriteFacingRightAndStanding ; facing right, walk animation frame 0 - dw SpriteFacingRightAndWalking ; facing right, walk animation frame 1 - dw SpriteFacingRightAndStanding ; facing right, walk animation frame 2 - dw SpriteFacingRightAndWalking ; facing right, walk animation frame 3 - - dw SpriteFacingDownAndStanding ; --- - dw SpriteFacingDownAndStanding ; This table is used for sprites $a and $b. - dw SpriteFacingDownAndStanding ; All orientation and animation parameters - dw SpriteFacingDownAndStanding ; lead to the same result. Used for immobile - dw SpriteFacingDownAndStanding ; sprites like items on the ground - dw SpriteFacingDownAndStanding ; --- - dw SpriteFacingDownAndStanding - dw SpriteFacingDownAndStanding - dw SpriteFacingDownAndStanding - dw SpriteFacingDownAndStanding - dw SpriteFacingDownAndStanding - dw SpriteFacingDownAndStanding - dw SpriteFacingDownAndStanding - dw SpriteFacingDownAndStanding - dw SpriteFacingDownAndStanding - dw SpriteFacingDownAndStanding -; special case - dw SpriteSpecialCase ; pikachu maybe? - -SpriteFacingDownAndStanding: - db $04 -; Sprite OAM Parameters - db $00,$00,$00,$00 ; top left - db $00,$08,$01,$00 ; top right - db $08,$00,$02,OAMFLAG_CANBEMASKED ; bottom left - db $08,$08,$03,OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right - -SpriteFacingDownAndWalking: - db $04 -; Sprite OAM Parameters - db $00,$00,$80,$00 ; top left - db $00,$08,$81,$00 ; top right - db $08,$00,$82,OAMFLAG_CANBEMASKED ; bottom left - db $08,$08,$83,OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right - -SpriteFacingDownAndWalking2: - db $04 -; Sprite OAM Parameters - db $00,$08,$80,OAMFLAG_VFLIPPED ; top left - db $00,$00,$81,OAMFLAG_VFLIPPED ; top right - db $08,$08,$82,OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED ; bottom left - db $08,$00,$83,OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right - -SpriteFacingUpAndStanding: - db $04 -; Sprite OAM Parameters - db $00,$00,$04,$00 ; top left - db $00,$08,$05,$00 ; top right - db $08,$00,$06,OAMFLAG_CANBEMASKED ; bottom left - db $08,$08,$07,OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right - -SpriteFacingUpAndWalking: - db $04 -; Sprite OAM Parameters - db $00,$00,$84,$00 ; top left - db $00,$08,$85,$00 ; top right - db $08,$00,$86,OAMFLAG_CANBEMASKED ; bottom left - db $08,$08,$87,OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right - -SpriteFacingUpAndWalking2: - db $04 -; Sprite OAM Parameters - db $00,$08,$84,OAMFLAG_VFLIPPED ; top left - db $00,$00,$85,OAMFLAG_VFLIPPED ; top right - db $08,$08,$86,OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED ; bottom left - db $08,$00,$87,OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right - -SpriteFacingLeftAndStanding: - db $04 -; Sprite OAM Parameters - db $00,$00,$08,$00 ; top left - db $00,$08,$09,$00 ; top right - db $08,$00,$0a,OAMFLAG_CANBEMASKED ; bottom left - db $08,$08,$0b,OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right - -SpriteFacingLeftAndWalking: - db $04 -; Sprite OAM Parameters - db $00,$00,$88,$00 ; top left - db $00,$08,$89,$00 ; top right - db $08,$00,$8a,OAMFLAG_CANBEMASKED ; bottom left - db $08,$08,$8b,OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right - -SpriteFacingRightAndStanding: - db $04 -; Sprite OAM Parameters - db $00,$08,$08,OAMFLAG_VFLIPPED ; top left - db $00,$00,$09,OAMFLAG_VFLIPPED ; top right - db $08,$08,$0a,OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED ; bottom left - db $08,$00,$0b,OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right - -SpriteFacingRightAndWalking: - db $04 -; Sprite OAM Parameters - db $00,$08,$88,OAMFLAG_VFLIPPED ; top left - db $00,$00,$89,OAMFLAG_VFLIPPED ; top right - db $08,$08,$8a,OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED ; bottom left - db $08,$00,$8b,OAMFLAG_VFLIPPED | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right - -SpriteSpecialCase - db $09 -; Sprite OAM Parameters - db -$4,-$4,$00,$00 - db -$4,$04,$01,$00 - db -$4,$0c,$00,OAMFLAG_VFLIPPED - db $04,-$4,$01,$00 - db $04,$04,$02,$00 - db $04,$0c,$01,$00 - db $0c,-$4,$00,OAM_VFLIP | OAMFLAG_CANBEMASKED - db $0c,$04,$01,OAMFLAG_CANBEMASKED - db $0c,$0c,$00,OAM_VFLIP | OAM_HFLIP | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA - diff --git a/data/force_bike_surf.asm b/data/force_bike_surf.asm deleted file mode 100755 index fb352aa90..000000000 --- a/data/force_bike_surf.asm +++ /dev/null @@ -1,11 +0,0 @@ -ForcedBikeOrSurfMaps: -; map id, y, x - db ROUTE_16,$0A,$11 - db ROUTE_16,$0B,$11 - db ROUTE_18,$08,$21 - db ROUTE_18,$09,$21 - db SEAFOAM_ISLANDS_B3F,$07,$12 - db SEAFOAM_ISLANDS_B3F,$07,$13 - db SEAFOAM_ISLANDS_B4F,$0E,$04 - db SEAFOAM_ISLANDS_B4F,$0E,$05 - db $FF ;end diff --git a/data/good_rod.asm b/data/good_rod.asm deleted file mode 100755 index 6c23f4026..000000000 --- a/data/good_rod.asm +++ /dev/null @@ -1,3 +0,0 @@ -GoodRodMons: - db 10,GOLDEEN - db 10,POLIWAG diff --git a/data/growth_rates.asm b/data/growth_rates.asm new file mode 100644 index 000000000..32354a64f --- /dev/null +++ b/data/growth_rates.asm @@ -0,0 +1,19 @@ +growth_rate: MACRO +; [1]/[2]*n**3 + [3]*n**2 + [4]*n - [5] + dn \1, \2 + if \3 & $80 ; signed + db -\3 | $80 + else + db \3 + endc + db \4, \5 +ENDM + +GrowthRateTable: +; entries correspond to GROWTH_* (see constants/pokemon_data_constants.asm) + growth_rate 1, 1, 0, 0, 0 ; Medium Fast + growth_rate 3, 4, 10, 0, 30 ; Slightly Fast + growth_rate 3, 4, 20, 0, 70 ; Slightly Slow + growth_rate 6, 5, -15, 100, 140 ; Medium Slow + growth_rate 4, 5, 0, 0, 0 ; Fast + growth_rate 5, 4, 0, 0, 0 ; Slow diff --git a/data/hidden_coins.asm b/data/hidden_coins.asm deleted file mode 100755 index b7358572e..000000000 --- a/data/hidden_coins.asm +++ /dev/null @@ -1,14 +0,0 @@ -HiddenCoinCoords: - db GAME_CORNER,$08,$00 - db GAME_CORNER,$10,$01 - db GAME_CORNER,$0b,$03 - db GAME_CORNER,$0e,$03 - db GAME_CORNER,$0c,$04 - db GAME_CORNER,$0c,$09 - db GAME_CORNER,$0f,$09 - db GAME_CORNER,$0e,$10 - db GAME_CORNER,$10,$0a - db GAME_CORNER,$07,$0b - db GAME_CORNER,$08,$0f - db GAME_CORNER,$0f,$0c - db $ff diff --git a/data/hidden_item_coords.asm b/data/hidden_item_coords.asm deleted file mode 100755 index acc791724..000000000 --- a/data/hidden_item_coords.asm +++ /dev/null @@ -1,58 +0,0 @@ -HiddenItemCoords: -; map ID, then coords - db SILPH_CO_5F,$03,$0c - db SILPH_CO_9F,$0f,$02 - db POKEMON_MANSION_3F,$09,$01 - db POKEMON_MANSION_B1F,$09,$01 - db SAFARI_ZONE_WEST,$05,$06 - db CERULEAN_CAVE_2F,$0d,$10 - db CERULEAN_CAVE_B1F,$0e,$08 - db UNUSED_MAP_6F,$0b,$0e - db SEAFOAM_ISLANDS_B2F,$0f,$0f - db SEAFOAM_ISLANDS_B3F,$10,$09 - db SEAFOAM_ISLANDS_B4F,$11,$19 - db VIRIDIAN_FOREST,$12,$01 - db VIRIDIAN_FOREST,$2a,$10 - db MT_MOON_B2F,$0c,$12 - db MT_MOON_B2F,$09,$21 - db SS_ANNE_B1F_ROOMS,$01,$03 - db SS_ANNE_KITCHEN,$09,$0d - db UNDERGROUND_PATH_NORTH_SOUTH,$04,$03 - db UNDERGROUND_PATH_NORTH_SOUTH,$22,$04 - db UNDERGROUND_PATH_WEST_EAST,$02,$0c - db UNDERGROUND_PATH_WEST_EAST,$05,$15 - db ROCKET_HIDEOUT_B1F,$0f,$15 - db ROCKET_HIDEOUT_B3F,$11,$1b - db ROCKET_HIDEOUT_B4F,$01,$19 - db ROUTE_10,$11,$09 - db ROUTE_10,$35,$10 - db POWER_PLANT,$10,$11 - db POWER_PLANT,$01,$0c - db ROUTE_11,$05,$30 - db ROUTE_12,$3f,$02 - db ROUTE_13,$0e,$01 - db ROUTE_13,$0d,$10 - db ROUTE_17,$0e,$0f - db ROUTE_17,$2d,$08 - db ROUTE_17,$48,$11 - db ROUTE_17,$5b,$04 - db ROUTE_17,$79,$08 - db ROUTE_23,$2c,$09 - db ROUTE_23,$46,$13 - db ROUTE_23,$5a,$08 - db VICTORY_ROAD_2F,$02,$05 - db VICTORY_ROAD_2F,$07,$1a - db ROUTE_25,$03,$26 - db ROUTE_25,$01,$0a - db ROUTE_4,$03,$28 - db ROUTE_9,$07,$0e - db COPYCATS_HOUSE_2F,$01,$01 - db VIRIDIAN_CITY,$04,$0e - db CERULEAN_CITY,$08,$0f - db CERULEAN_CAVE_1F,$07,$12 - db POKEMON_TOWER_5F,$0c,$04 - db VERMILION_CITY,$0b,$0e - db CELADON_CITY,$0f,$30 - db SAFARI_ZONE_GATE,$01,$0a - db POKEMON_MANSION_1F,$10,$08 - db $ff diff --git a/data/hidden_objects.asm b/data/hidden_objects.asm deleted file mode 100755 index f4865bb93..000000000 --- a/data/hidden_objects.asm +++ /dev/null @@ -1,545 +0,0 @@ -HiddenObjectMaps: - dbw SILPH_CO_11F, SilphCo11FHiddenObjects - dbw SILPH_CO_5F, SilphCo5FHiddenObjects - dbw SILPH_CO_9F, SilphCo9FHiddenObjects - dbw POKEMON_MANSION_2F, Mansion2HiddenObjects - dbw POKEMON_MANSION_3F, Mansion3HiddenObjects - dbw POKEMON_MANSION_B1F, Mansion4HiddenObjects - dbw SAFARI_ZONE_WEST, SafariZoneWestHiddenObjects - dbw CERULEAN_CAVE_2F, CeruleanCave2HiddenObjects - dbw CERULEAN_CAVE_B1F, CeruleanCave3HiddenObjects - dbw UNUSED_MAP_6F, UnusedMap6FHiddenObjects - dbw SEAFOAM_ISLANDS_B2F, SeafoamIslands3HiddenObjects - dbw SEAFOAM_ISLANDS_B3F, SeafoamIslands4HiddenObjects - dbw SEAFOAM_ISLANDS_B4F, SeafoamIslands5HiddenObjects - dbw VIRIDIAN_FOREST, ViridianForestHiddenObjects - dbw MT_MOON_B2F, MtMoon3HiddenObjects - dbw SS_ANNE_B1F_ROOMS, SSAnne10HiddenObjects - dbw SS_ANNE_KITCHEN, SSAnne6HiddenObjects - dbw UNDERGROUND_PATH_NORTH_SOUTH, UndergroundPathNsHiddenObjects - dbw UNDERGROUND_PATH_WEST_EAST, UndergroundPathWeHiddenObjects - dbw ROCKET_HIDEOUT_B1F, RocketHideout1HiddenObjects - dbw ROCKET_HIDEOUT_B3F, RocketHideout3HiddenObjects - dbw ROCKET_HIDEOUT_B4F, RocketHideout4HiddenObjects - dbw ROUTE_10, Route10HiddenObjects - dbw ROCK_TUNNEL_POKECENTER, RockTunnelPokecenterHiddenObjects - dbw POWER_PLANT, PowerPlantHiddenObjects - dbw ROUTE_11, Route11HiddenObjects - dbw ROUTE_12, Route12HiddenObjects - dbw ROUTE_13, Route13HiddenObjects - dbw ROUTE_15_GATE_2F, Route15Gate2FHiddenObjects - dbw ROUTE_17, Route17HiddenObjects - dbw ROUTE_23, Route23HiddenObjects - dbw VICTORY_ROAD_2F, VictoryRoad2HiddenObjects - dbw ROUTE_25, Route25HiddenObjects - dbw BILLS_HOUSE, BillsHouseHiddenObjects - dbw ROUTE_4, Route4HiddenObjects - dbw MT_MOON_POKECENTER, MtMoonPokecenterHiddenObjects - dbw ROUTE_9, Route9HiddenObjects - dbw TRADE_CENTER, TradeCenterHiddenObjects - dbw COLOSSEUM, ColosseumHiddenObjects - dbw INDIGO_PLATEAU, IndigoPlateauHiddenObjects - dbw INDIGO_PLATEAU_LOBBY, IndigoPlateauLobbyHiddenObjects - dbw COPYCATS_HOUSE_2F, CopycatsHouse2FHiddenObjects - dbw FIGHTING_DOJO, FightingDojoHiddenObjects - dbw SAFFRON_GYM, SaffronGymHiddenObjects - dbw SAFFRON_POKECENTER, SaffronPokecenterHiddenObjects - dbw REDS_HOUSE_2F, RedsHouse2FHiddenObjects - dbw BLUES_HOUSE, BluesHouseHiddenObjects - dbw OAKS_LAB, OaksLabHiddenObjects - dbw VIRIDIAN_CITY, ViridianCityHiddenObjects - dbw VIRIDIAN_POKECENTER, ViridianPokecenterHiddenObjects - dbw VIRIDIAN_SCHOOL_HOUSE, ViridianSchoolHiddenObjects - dbw VIRIDIAN_GYM, ViridianGymHiddenObjects - dbw MUSEUM_1F, Museum1FHiddenObjects - dbw PEWTER_GYM, PewterGymHiddenObjects - dbw PEWTER_POKECENTER, PewterPokecenterHiddenObjects - dbw CERULEAN_CITY, CeruleanCityHiddenObjects - dbw CERULEAN_POKECENTER, CeruleanPokecenterHiddenObjects - dbw CERULEAN_GYM, CeruleanGymHiddenObjects - dbw BIKE_SHOP, BikeShopHiddenObjects - dbw CERULEAN_CAVE_1F, CeruleanCave1HiddenObjects - dbw LAVENDER_POKECENTER, LavenderPokecenterHiddenObjects - dbw POKEMON_TOWER_5F, Pokemontower5HiddenObjects - dbw MR_FUJIS_HOUSE, LavenderHouse1HiddenObjects - dbw VERMILION_CITY, VermilionCityHiddenObjects - dbw VERMILION_POKECENTER, VermilionPokecenterHiddenObjects - dbw POKEMON_FAN_CLUB, PokemonFanClubHiddenObjects - dbw VERMILION_GYM, VermilionGymHiddenObjects - dbw CELADON_CITY, CeladonCityHiddenObjects - dbw CELADON_HOTEL, CeladonHotelHiddenObjects - dbw CELADON_MANSION_2F, CeladonMansion2HiddenObjects - dbw CELADON_MANSION_ROOF_HOUSE, CeladonMansion5HiddenObjects - dbw CELADON_POKECENTER, CeladonPokecenterHiddenObjects - dbw CELADON_GYM, CeladonGymHiddenObjects - dbw GAME_CORNER, GameCornerHiddenObjects - dbw FUCHSIA_POKECENTER, FuchsiaPokecenterHiddenObjects - dbw SAFARI_ZONE_GATE, SafariZoneEntranceHiddenObjects - dbw FUCHSIA_GYM, FuchsiaGymHiddenObjects - dbw POKEMON_MANSION_1F, Mansion1HiddenObjects - dbw CINNABAR_GYM, CinnabarGymHiddenObjects - dbw CINNABAR_LAB_FOSSIL_ROOM, CinnabarLab4HiddenObjects - dbw CINNABAR_POKECENTER, CinnabarPokecenterHiddenObjects - db $ff - -; format: y-coord, x-coord, text id/item id, object routine -hidden_object: macro - db \1, \2, \3 - dba \4 - endm - -SilphCo11FHiddenObjects: - hidden_object 12, 10, SPRITE_FACING_UP, OpenPokemonCenterPC - db $ff - -SilphCo5FHiddenObjects: - hidden_object 3, 12, ELIXER, HiddenItems - db $ff - -SilphCo9FHiddenObjects: - hidden_object 15, 2, MAX_POTION, HiddenItems - db $ff - -Mansion2HiddenObjects: - hidden_object 11, 2, SPRITE_FACING_UP, Mansion2Script_Switches - db $ff - -Mansion3HiddenObjects: - hidden_object 9, 1, MAX_REVIVE, HiddenItems - hidden_object 5, 10, SPRITE_FACING_UP, Mansion3Script_Switches - db $ff - -Mansion4HiddenObjects: - hidden_object 9, 1, RARE_CANDY, HiddenItems - hidden_object 3, 20, SPRITE_FACING_UP, Mansion4Script_Switches - hidden_object 25, 18, SPRITE_FACING_UP, Mansion4Script_Switches - db $ff - -SafariZoneWestHiddenObjects: - hidden_object 5, 6, REVIVE, HiddenItems - db $ff - -CeruleanCave2HiddenObjects: - hidden_object 13, 16, PP_UP, HiddenItems - db $ff - -CeruleanCave3HiddenObjects: - hidden_object 14, 8, PP_UP, HiddenItems - db $ff - -UnusedMap6FHiddenObjects: - hidden_object 11, 14, MAX_ELIXER, HiddenItems - db $ff - -SeafoamIslands3HiddenObjects: - hidden_object 15, 15, NUGGET, HiddenItems - db $ff - -SeafoamIslands4HiddenObjects: - hidden_object 16, 9, MAX_ELIXER, HiddenItems - db $ff - -SeafoamIslands5HiddenObjects: - hidden_object 17, 25, ULTRA_BALL, HiddenItems - db $ff - -ViridianForestHiddenObjects: - hidden_object 18, 1, POTION, HiddenItems - hidden_object 42, 16, ANTIDOTE, HiddenItems - db $ff - -MtMoon3HiddenObjects: - hidden_object 12, 18, MOON_STONE, HiddenItems - hidden_object 9, 33, ETHER, HiddenItems - db $ff - -SSAnne10HiddenObjects: - hidden_object 1, 3, HYPER_POTION, HiddenItems - db $ff - -SSAnne6HiddenObjects: - hidden_object 5, 13, SPRITE_FACING_DOWN, PrintTrashText - hidden_object 7, 13, SPRITE_FACING_DOWN, PrintTrashText - hidden_object 9, 13, GREAT_BALL, HiddenItems - db $ff - -UndergroundPathNsHiddenObjects: - hidden_object 4, 3, FULL_RESTORE, HiddenItems - hidden_object 34, 4, X_SPECIAL, HiddenItems - db $ff - -UndergroundPathWeHiddenObjects: - hidden_object 2, 12, NUGGET, HiddenItems - hidden_object 5, 21, ELIXER, HiddenItems - db $ff - -RocketHideout1HiddenObjects: - hidden_object 15, 21, PP_UP, HiddenItems - db $ff - -RocketHideout3HiddenObjects: - hidden_object 17, 27, NUGGET, HiddenItems - db $ff - -RocketHideout4HiddenObjects: - hidden_object 1, 25, SUPER_POTION, HiddenItems - db $ff - -Route10HiddenObjects: - hidden_object 17, 9, SUPER_POTION, HiddenItems - hidden_object 53, 16, MAX_ETHER, HiddenItems - db $ff - -RockTunnelPokecenterHiddenObjects: - hidden_object 4, 0, SPRITE_FACING_LEFT, PrintBenchGuyText - hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC - db $ff - -PowerPlantHiddenObjects: - hidden_object 16, 17, MAX_ELIXER, HiddenItems - hidden_object 1, 12, PP_UP, HiddenItems - db $ff - -Route11HiddenObjects: - hidden_object 5, 48, ESCAPE_ROPE, HiddenItems - db $ff - -Route12HiddenObjects: - hidden_object 63, 2, HYPER_POTION, HiddenItems - db $ff - -Route13HiddenObjects: - hidden_object 14, 1, PP_UP, HiddenItems - hidden_object 13, 16, CALCIUM, HiddenItems - db $ff - -Route15Gate2FHiddenObjects: - hidden_object 2, 1, SPRITE_FACING_UP, Route15GateLeftBinoculars - db $ff - -Route17HiddenObjects: - hidden_object 14, 15, RARE_CANDY, HiddenItems - hidden_object 45, 8, FULL_RESTORE, HiddenItems - hidden_object 72, 17, PP_UP, HiddenItems - hidden_object 91, 4, MAX_REVIVE, HiddenItems - hidden_object 121, 8, MAX_ELIXER, HiddenItems - db $ff - -Route23HiddenObjects: - hidden_object 44, 9, FULL_RESTORE, HiddenItems - hidden_object 70, 19, ULTRA_BALL, HiddenItems - hidden_object 90, 8, MAX_ETHER, HiddenItems - db $ff - -VictoryRoad2HiddenObjects: - hidden_object 2, 5, ULTRA_BALL, HiddenItems - hidden_object 7, 26, FULL_RESTORE, HiddenItems - db $ff - -Route25HiddenObjects: - hidden_object 3, 38, ETHER, HiddenItems - hidden_object 1, 10, ELIXER, HiddenItems - db $ff - -BillsHouseHiddenObjects: - hidden_object 4, 1, SPRITE_FACING_UP, BillsHousePC - db $ff - -Route4HiddenObjects: - hidden_object 3, 40, GREAT_BALL, HiddenItems - db $ff - -MtMoonPokecenterHiddenObjects: - hidden_object 4, 0, SPRITE_FACING_LEFT, PrintBenchGuyText - hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC - db $ff - -Route9HiddenObjects: - hidden_object 7, 14, ETHER, HiddenItems - db $ff - -TradeCenterHiddenObjects: - hidden_object 4, 5, $d0, CableClubRightGameboy - hidden_object 4, 4, $d0, CableClubLeftGameboy - db $ff - -ColosseumHiddenObjects: - hidden_object 4, 5, $d0, CableClubRightGameboy - hidden_object 4, 4, $d0, CableClubLeftGameboy - db $ff - -IndigoPlateauHiddenObjects: - hidden_object 13, 8, $ff, PrintIndigoPlateauHQText - hidden_object 13, 11, SPRITE_FACING_DOWN, PrintIndigoPlateauHQText - db $ff - -IndigoPlateauLobbyHiddenObjects: - hidden_object 7, 15, SPRITE_FACING_UP, OpenPokemonCenterPC - db $ff - -CopycatsHouse2FHiddenObjects: - hidden_object 1, 1, NUGGET, HiddenItems - db $ff - -FightingDojoHiddenObjects: - hidden_object 9, 3, SPRITE_FACING_UP, PrintFightingDojoText - hidden_object 9, 6, SPRITE_FACING_UP, PrintFightingDojoText - hidden_object 0, 4, SPRITE_FACING_UP, PrintFightingDojoText2 - hidden_object 0, 5, SPRITE_FACING_UP, PrintFightingDojoText3 - db $ff - -SaffronGymHiddenObjects: - hidden_object 15, 9, SPRITE_FACING_UP, GymStatues - db $ff - -SaffronPokecenterHiddenObjects: - hidden_object 4, 0, SPRITE_FACING_UP, PrintBenchGuyText - hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC - db $ff - -RedsHouse2FHiddenObjects: - hidden_object 1, 0, SPRITE_FACING_UP, OpenRedsPC - hidden_object 5, 3, $d0, PrintRedSNESText - db $ff - -BluesHouseHiddenObjects: - hidden_object 1, 0, SPRITE_FACING_UP, PrintBookcaseText - hidden_object 1, 1, SPRITE_FACING_UP, PrintBookcaseText - hidden_object 1, 7, SPRITE_FACING_UP, PrintBookcaseText - db $ff - -OaksLabHiddenObjects: - hidden_object 0, 4, SPRITE_FACING_UP, DisplayOakLabLeftPoster - hidden_object 0, 5, SPRITE_FACING_UP, DisplayOakLabRightPoster - hidden_object 1, 0, SPRITE_FACING_UP, DisplayOakLabEmailText - hidden_object 1, 1, SPRITE_FACING_UP, DisplayOakLabEmailText - db $ff - -ViridianCityHiddenObjects: - hidden_object 4, 14, POTION, HiddenItems - db $ff - -ViridianPokecenterHiddenObjects: - hidden_object 4, 0, SPRITE_FACING_LEFT, PrintBenchGuyText - hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC - db $ff - -ViridianSchoolHiddenObjects: - hidden_object 4, 3, (ViridianSchoolNotebook_id - TextPredefs) / 2 + 1, PrintNotebookText - hidden_object 0, 3, (ViridianSchoolBlackboard_id - TextPredefs) / 2 + 1, PrintBlackboardLinkCableText - db $ff - -ViridianGymHiddenObjects: - hidden_object 15, 15, SPRITE_FACING_UP, GymStatues - hidden_object 15, 18, SPRITE_FACING_UP, GymStatues - db $ff - -Museum1FHiddenObjects: - hidden_object 3, 2, SPRITE_FACING_UP, AerodactylFossil - hidden_object 6, 2, SPRITE_FACING_UP, KabutopsFossil - db $ff - -PewterGymHiddenObjects: - hidden_object 10, 3, SPRITE_FACING_UP, GymStatues - hidden_object 10, 6, SPRITE_FACING_UP, GymStatues - db $ff - -PewterPokecenterHiddenObjects: - hidden_object 4, 0, SPRITE_FACING_LEFT, PrintBenchGuyText - hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC - db $ff - -CeruleanCityHiddenObjects: - hidden_object 8, 15, RARE_CANDY, HiddenItems - db $ff - -CeruleanPokecenterHiddenObjects: - hidden_object 4, 0, SPRITE_FACING_LEFT, PrintBenchGuyText - hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC - db $ff - -CeruleanGymHiddenObjects: - hidden_object 11, 3, SPRITE_FACING_UP, GymStatues - hidden_object 11, 6, SPRITE_FACING_UP, GymStatues - db $ff - -BikeShopHiddenObjects: - hidden_object 0, 1, $d0, PrintNewBikeText - hidden_object 1, 2, $d0, PrintNewBikeText - hidden_object 2, 1, $d0, PrintNewBikeText - hidden_object 2, 3, $d0, PrintNewBikeText - hidden_object 4, 0, $d0, PrintNewBikeText - hidden_object 5, 1, $d0, PrintNewBikeText - db $ff - -CeruleanCave1HiddenObjects: - hidden_object 7, 18, PP_UP, HiddenItems - db $ff - -LavenderPokecenterHiddenObjects: - hidden_object 4, 0, SPRITE_FACING_LEFT, PrintBenchGuyText - hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC - db $ff - -Pokemontower5HiddenObjects: - hidden_object 12, 4, ELIXER, HiddenItems - db $ff - -LavenderHouse1HiddenObjects: - hidden_object 1, 0, SPRITE_FACING_DOWN, PrintMagazinesText - hidden_object 1, 1, SPRITE_FACING_DOWN, PrintMagazinesText - hidden_object 1, 7, SPRITE_FACING_DOWN, PrintMagazinesText - db $ff - -VermilionCityHiddenObjects: - hidden_object 11, 14, MAX_ETHER, HiddenItems - db $ff - -VermilionPokecenterHiddenObjects: - hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC - hidden_object 4, 0, SPRITE_FACING_UP, PrintBenchGuyText - db $ff - -PokemonFanClubHiddenObjects: - hidden_object 0, 1, SPRITE_FACING_UP, FanClubPicture1 - hidden_object 0, 6, SPRITE_FACING_UP, FanClubPicture2 - db $ff - -VermilionGymHiddenObjects: - hidden_object 14, 3, SPRITE_FACING_UP, GymStatues - hidden_object 14, 6, SPRITE_FACING_UP, GymStatues - hidden_object 1, 6, SPRITE_FACING_DOWN, PrintTrashText - hidden_object 7, 1, 0, GymTrashScript - hidden_object 9, 1, 1, GymTrashScript - hidden_object 11, 1, 2, GymTrashScript - hidden_object 7, 3, 3, GymTrashScript - hidden_object 9, 3, 4, GymTrashScript - hidden_object 11, 3, 5, GymTrashScript - hidden_object 7, 5, 6, GymTrashScript - hidden_object 9, 5, 7, GymTrashScript - hidden_object 11, 5, 8, GymTrashScript - hidden_object 7, 7, 9, GymTrashScript - hidden_object 9, 7, 10, GymTrashScript - hidden_object 11, 7, 11, GymTrashScript - hidden_object 7, 9, 12, GymTrashScript - hidden_object 9, 9, 13, GymTrashScript - hidden_object 11, 9, 14, GymTrashScript - db $ff - -CeladonCityHiddenObjects: - hidden_object 15, 48, PP_UP, HiddenItems - db $ff - -CeladonHotelHiddenObjects: - hidden_object 4, 0, SPRITE_FACING_LEFT, PrintBenchGuyText - db $ff - -CeladonMansion2HiddenObjects: - hidden_object 5, 0, SPRITE_FACING_UP, OpenPokemonCenterPC - db $ff - -CeladonMansion5HiddenObjects: - hidden_object 0, 3, (LinkCableHelp_id - TextPredefs) / 2 + 1, PrintBlackboardLinkCableText - hidden_object 0, 4, (LinkCableHelp_id - TextPredefs) / 2 + 1, PrintBlackboardLinkCableText - hidden_object 4, 3, (TMNotebook_id - TextPredefs) / 2 + 1, PrintNotebookText - db $ff - -CeladonPokecenterHiddenObjects: - hidden_object 4, 0, SPRITE_FACING_LEFT, PrintBenchGuyText - hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC - db $ff - -CeladonGymHiddenObjects: - hidden_object 15, 3, SPRITE_FACING_UP, GymStatues - hidden_object 15, 6, SPRITE_FACING_UP, GymStatues - db $ff - -GameCornerHiddenObjects: - hidden_object 15, 18, $d0, StartSlotMachine - hidden_object 14, 18, $d0, StartSlotMachine - hidden_object 13, 18, $d0, StartSlotMachine - hidden_object 12, 18, $d0, StartSlotMachine - hidden_object 11, 18, $d0, StartSlotMachine - hidden_object 10, 18, $ff, StartSlotMachine ; "Someone's Keys" - hidden_object 10, 13, $d0, StartSlotMachine - hidden_object 11, 13, $d0, StartSlotMachine - hidden_object 12, 13, $fe, StartSlotMachine ; "Out To Lunch" - hidden_object 13, 13, $d0, StartSlotMachine - hidden_object 14, 13, $d0, StartSlotMachine - hidden_object 15, 13, $d0, StartSlotMachine - hidden_object 15, 12, $d0, StartSlotMachine - hidden_object 14, 12, $d0, StartSlotMachine - hidden_object 13, 12, $d0, StartSlotMachine - hidden_object 12, 12, $d0, StartSlotMachine - hidden_object 11, 12, $d0, StartSlotMachine - hidden_object 10, 12, $d0, StartSlotMachine - hidden_object 10, 7, $d0, StartSlotMachine - hidden_object 11, 7, $d0, StartSlotMachine - hidden_object 12, 7, $d0, StartSlotMachine - hidden_object 13, 7, $d0, StartSlotMachine - hidden_object 14, 7, $d0, StartSlotMachine - hidden_object 15, 7, $d0, StartSlotMachine - hidden_object 15, 6, $d0, StartSlotMachine - hidden_object 14, 6, $d0, StartSlotMachine - hidden_object 13, 6, $d0, StartSlotMachine - hidden_object 12, 6, $fd, StartSlotMachine ; "Out Of Order" - hidden_object 11, 6, $d0, StartSlotMachine - hidden_object 10, 6, $d0, StartSlotMachine - hidden_object 10, 1, $d0, StartSlotMachine - hidden_object 11, 1, $d0, StartSlotMachine - hidden_object 12, 1, $d0, StartSlotMachine - hidden_object 13, 1, $d0, StartSlotMachine - hidden_object 14, 1, $d0, StartSlotMachine - hidden_object 15, 1, $d0, StartSlotMachine - hidden_object 8, 0, COIN + 10, HiddenCoins - hidden_object 16, 1, COIN + 10, HiddenCoins - hidden_object 11, 3, COIN + 20, HiddenCoins - hidden_object 14, 3, COIN + 10, HiddenCoins - hidden_object 12, 4, COIN + 10, HiddenCoins - hidden_object 12, 9, COIN + 20, HiddenCoins - hidden_object 15, 9, COIN + 10, HiddenCoins - hidden_object 14, 16, COIN + 10, HiddenCoins - hidden_object 16, 10, COIN + 10, HiddenCoins - hidden_object 7, 11, COIN + 40, HiddenCoins - hidden_object 8, 15, COIN + 100, HiddenCoins - hidden_object 15, 12, COIN + 10, HiddenCoins - db $ff - -FuchsiaPokecenterHiddenObjects: - hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC - hidden_object 4, 0, SPRITE_FACING_UP, PrintBenchGuyText - db $ff - -SafariZoneEntranceHiddenObjects: - hidden_object 1, 10, NUGGET, HiddenItems - db $ff - -FuchsiaGymHiddenObjects: - hidden_object 15, 3, SPRITE_FACING_UP, GymStatues - hidden_object 15, 6, SPRITE_FACING_UP, GymStatues - db $ff - -Mansion1HiddenObjects: - hidden_object 16, 8, MOON_STONE, HiddenItems - hidden_object 5, 2, SPRITE_FACING_UP, Mansion1Script_Switches - db $ff - -CinnabarGymHiddenObjects: - hidden_object 13, 17, SPRITE_FACING_UP, GymStatues - hidden_object 7, 15, (0 << 4) | 1, PrintCinnabarQuiz - hidden_object 1, 10, (1 << 4) | 2, PrintCinnabarQuiz - hidden_object 7, 9, (1 << 4) | 3, PrintCinnabarQuiz - hidden_object 13, 9, (1 << 4) | 4, PrintCinnabarQuiz - hidden_object 13, 1, (0 << 4) | 5, PrintCinnabarQuiz - hidden_object 7, 1, (1 << 4) | 6, PrintCinnabarQuiz - db $ff - -CinnabarLab4HiddenObjects: - hidden_object 4, 0, SPRITE_FACING_UP, OpenPokemonCenterPC - hidden_object 4, 2, SPRITE_FACING_UP, OpenPokemonCenterPC - db $ff - -CinnabarPokecenterHiddenObjects: - hidden_object 4, 0, SPRITE_FACING_UP, PrintBenchGuyText - hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC - db $ff diff --git a/data/hide_show_data.asm b/data/hide_show_data.asm deleted file mode 100755 index df9e5e8f0..000000000 --- a/data/hide_show_data.asm +++ /dev/null @@ -1,593 +0,0 @@ -; data for default hidden/shown -; objects for each map ($00-$F8) - -; Table of 2-Byte pointers, one pointer per map, -; goes up to Map_F7, ends with $FFFF. -; points to table listing all missable object in the area -MapHSPointers: - dw MapHS00 - dw MapHS01 - dw MapHS02 - dw MapHS03 - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHS0A - dw MapHSXX - dw MapHSXX - dw MapHS0D - dw MapHSXX - dw MapHS0F - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHS14 - dw MapHSXX - dw MapHSXX - dw MapHS17 - dw MapHSXX - dw MapHSXX - dw MapHS1A - dw MapHS1B - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHS21 - dw MapHSXX - dw MapHS23 - dw MapHS24 - dw MapHSXX - dw MapHSXX - dw MapHS27 - dw MapHS28 - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHS2D - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHS33 - dw MapHS34 - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHS3B - dw MapHSXX - dw MapHS3D - dw MapHSXX - dw MapHS3F - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHS53 - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHS58 - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHS60 - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHS66 - dw MapHS67 - dw MapHS68 - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHS6C - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHS78 - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHS84 - dw MapHSXX - dw MapHSXX - dw MapHS87 - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHS8F - dw MapHS90 - dw MapHS91 - dw MapHS92 - dw MapHS93 - dw MapHS94 - dw MapHS95 - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHS9B - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHS9F - dw MapHSA0 - dw MapHSA1 - dw MapHSA2 - dw MapHSXX - dw MapHSXX - dw MapHSA5 - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSB1 - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSB5 - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSC0 - dw MapHSXX - dw MapHSC2 - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSC6 - dw MapHSC7 - dw MapHSC8 - dw MapHSC9 - dw MapHSCA - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSCF - dw MapHSD0 - dw MapHSD1 - dw MapHSD2 - dw MapHSD3 - dw MapHSD4 - dw MapHSD5 - dw MapHSD6 - dw MapHSD7 - dw MapHSD8 - dw MapHSD9 - dw MapHSDA - dw MapHSDB - dw MapHSDC - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSE2 - dw MapHSE3 - dw MapHSE4 - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSE9 - dw MapHSEA - dw MapHSEB - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSF4 - dw MapHSXX - dw MapHSXX - dw MapHSXX - dw MapHSXX ; beach house - dw $FFFF - -; Structure: -; 3 bytes per object -; [Map_ID][Object_ID][H/S] -; -; Program stops reading when either: -; a) Map_ID = $FF -; b) Map_ID ≠ currentMapID -; -; This Data is loaded into RAM at wd5ce-$D5F?. (wMissableObjectList) - -; These constants come from the bytes for Predef functions: -Hide EQU $11 ; (HideObjectPredef - PredefPointers) / 3 -Show EQU $15 ; (ShowObjectPredef - PredefPointers) / 3 - -MapHSXX: - db $FF,$FF,$FF -MapHS00: - db PALLET_TOWN,$01,Hide -MapHS01: - db VIRIDIAN_CITY,$05,Show - db VIRIDIAN_CITY,$07,Hide - db VIRIDIAN_CITY,$08,Hide -MapHS02: - db PEWTER_CITY,$03,Show - db PEWTER_CITY,$05,Show -MapHS03: - db CERULEAN_CITY,$01,Hide - db CERULEAN_CITY,$02,Show - db CERULEAN_CITY,$06,Hide - db CERULEAN_CITY,$0A,Show - db CERULEAN_CITY,$0B,Show -MapHS0A: - db SAFFRON_CITY,$01,Show - db SAFFRON_CITY,$02,Show - db SAFFRON_CITY,$03,Show - db SAFFRON_CITY,$04,Show - db SAFFRON_CITY,$05,Show - db SAFFRON_CITY,$06,Show - db SAFFRON_CITY,$07,Show - db SAFFRON_CITY,$08,Hide - db SAFFRON_CITY,$09,Hide - db SAFFRON_CITY,$0A,Hide - db SAFFRON_CITY,$0B,Hide - db SAFFRON_CITY,$0C,Hide - db SAFFRON_CITY,$0D,Hide - db SAFFRON_CITY,$0E,Show - db SAFFRON_CITY,$0F,Hide -MapHS0D: - db ROUTE_2,$01,Show - db ROUTE_2,$02,Show -MapHS0F: - db ROUTE_4,$03,Show -MapHS14: - db ROUTE_9,$0A,Show -MapHS17: - db ROUTE_12,$01,Show - db ROUTE_12,$09,Show - db ROUTE_12,$0A,Show -MapHS1A: - db ROUTE_15,$0B,Show -MapHS1B: - db ROUTE_16,$07,Show -MapHS21: - db ROUTE_22,$01,Hide - db ROUTE_22,$02,Hide -MapHS23: - db ROUTE_24,$01,Show - db ROUTE_24,$08,Show -MapHS24: - db ROUTE_25,$0A,Show -MapHS27: - db BLUES_HOUSE,$01,Show - db BLUES_HOUSE,$02,Hide - db BLUES_HOUSE,$03,Show -MapHS28: - db OAKS_LAB,$01,Show - db OAKS_LAB,$02,Show - db OAKS_LAB,$03,Hide - db OAKS_LAB,$04,Show - db OAKS_LAB,$05,Show - db OAKS_LAB,$06,Hide -MapHS2D: - db VIRIDIAN_GYM,$01,Show - db VIRIDIAN_GYM,$0B,Show -MapHS34: - db MUSEUM_1F,$05,Show -MapHS3F: ; bulbasaur adoption house - db CERULEAN_TRADE_HOUSE,$02,Show -MapHSE4: - db CERULEAN_CAVE_1F,$01,Show - db CERULEAN_CAVE_1F,$02,Show - db CERULEAN_CAVE_1F,$03,Show - db CERULEAN_CAVE_1F,$04,Show -MapHS8F: - db POKEMON_TOWER_2F,$01,Show -MapHS90: - db POKEMON_TOWER_3F,$04,Show -MapHS91: - db POKEMON_TOWER_4F,$04,Show - db POKEMON_TOWER_4F,$05,Show - db POKEMON_TOWER_4F,$06,Show -MapHS92: - db POKEMON_TOWER_5F,$06,Show -MapHS93: - db POKEMON_TOWER_6F,$04,Show - db POKEMON_TOWER_6F,$05,Show -MapHS94: - db POKEMON_TOWER_7F,$01,Hide ; jessie & james? - db POKEMON_TOWER_7F,$02,Hide - db POKEMON_TOWER_7F,$03,Show -MapHS95: - db MR_FUJIS_HOUSE,$05,Hide -MapHS84: - db CELADON_MANSION_ROOF_HOUSE,$02,Show -MapHS87: - db GAME_CORNER,$0B,Show -MapHS9B: - db WARDENS_HOUSE,$02,Show -MapHSA5: - db POKEMON_MANSION_1F,$02,Show - db POKEMON_MANSION_1F,$03,Show -MapHSB1: - db FIGHTING_DOJO,$06,Show - db FIGHTING_DOJO,$07,Show -MapHSB5: - db SILPH_CO_1F,$01,Hide -MapHS53: - db POWER_PLANT,$01,Show - db POWER_PLANT,$02,Show - db POWER_PLANT,$03,Show - db POWER_PLANT,$04,Show - db POWER_PLANT,$05,Show - db POWER_PLANT,$06,Show - db POWER_PLANT,$07,Show - db POWER_PLANT,$08,Show - db POWER_PLANT,$09,Show - db POWER_PLANT,$0A,Show - db POWER_PLANT,$0B,Show - db POWER_PLANT,$0C,Show - db POWER_PLANT,$0D,Show - db POWER_PLANT,$0E,Show -MapHSC2: - db VICTORY_ROAD_2F,$06,Show - db VICTORY_ROAD_2F,$07,Show - db VICTORY_ROAD_2F,$08,Show - db VICTORY_ROAD_2F,$09,Show - db VICTORY_ROAD_2F,$0A,Show - db VICTORY_ROAD_2F,$0D,Show -MapHS58: - db BILLS_HOUSE,$01,Show - db BILLS_HOUSE,$02,Hide - db BILLS_HOUSE,$03,Hide -MapHS33: - db VIRIDIAN_FOREST,$07,Show - db VIRIDIAN_FOREST,$08,Show - db VIRIDIAN_FOREST,$09,Show -MapHS3B: - db MT_MOON_1F,$08,Show - db MT_MOON_1F,$09,Show - db MT_MOON_1F,$0A,Show - db MT_MOON_1F,$0B,Show - db MT_MOON_1F,$0C,Show - db MT_MOON_1F,$0D,Show -MapHS3D: - db MT_MOON_B2F,$02,Hide - db MT_MOON_B2F,$06,Hide - db MT_MOON_B2F,$07,Show - db MT_MOON_B2F,$08,Show - db MT_MOON_B2F,$09,Show - db MT_MOON_B2F,$0A,Show -MapHS60: - db SS_ANNE_2F,$02,Hide -MapHS66: - db SS_ANNE_1F_ROOMS,$0A,Show -MapHS67: - db SS_ANNE_2F_ROOMS,$06,Show - db SS_ANNE_2F_ROOMS,$09,Show -MapHS68: - db SS_ANNE_B1F_ROOMS,$09,Show - db SS_ANNE_B1F_ROOMS,$0A,Show - db SS_ANNE_B1F_ROOMS,$0B,Show -MapHSC6: - db VICTORY_ROAD_3F,$05,Show - db VICTORY_ROAD_3F,$06,Show - db VICTORY_ROAD_3F,$0A,Show -MapHSC7: - db ROCKET_HIDEOUT_B1F,$06,Show - db ROCKET_HIDEOUT_B1F,$07,Show -MapHSC8: - db ROCKET_HIDEOUT_B2F,$02,Show - db ROCKET_HIDEOUT_B2F,$03,Show - db ROCKET_HIDEOUT_B2F,$04,Show - db ROCKET_HIDEOUT_B2F,$05,Show -MapHSC9: - db ROCKET_HIDEOUT_B3F,$03,Show - db ROCKET_HIDEOUT_B3F,$04,Show -MapHSCA: - db ROCKET_HIDEOUT_B4F,$01,Show - db ROCKET_HIDEOUT_B4F,$02,Hide - db ROCKET_HIDEOUT_B4F,$03,Hide - db ROCKET_HIDEOUT_B4F,$05,Show - db ROCKET_HIDEOUT_B4F,$06,Show - db ROCKET_HIDEOUT_B4F,$07,Show - db ROCKET_HIDEOUT_B4F,$08,Hide - db ROCKET_HIDEOUT_B4F,$09,Hide -MapHSCF: - db SILPH_CO_2F,$01,Show - db SILPH_CO_2F,$02,Show - db SILPH_CO_2F,$03,Show - db SILPH_CO_2F,$04,Show - db SILPH_CO_2F,$05,Show -MapHSD0: - db SILPH_CO_3F,$02,Show - db SILPH_CO_3F,$03,Show - db SILPH_CO_3F,$04,Show -MapHSD1: - db SILPH_CO_4F,$02,Show - db SILPH_CO_4F,$03,Show - db SILPH_CO_4F,$04,Show - db SILPH_CO_4F,$05,Show - db SILPH_CO_4F,$06,Show - db SILPH_CO_4F,$07,Show -MapHSD2: - db SILPH_CO_5F,$02,Show - db SILPH_CO_5F,$03,Show - db SILPH_CO_5F,$04,Show - db SILPH_CO_5F,$05,Show - db SILPH_CO_5F,$06,Show - db SILPH_CO_5F,$07,Show - db SILPH_CO_5F,$08,Show -MapHSD3: - db SILPH_CO_6F,$06,Show - db SILPH_CO_6F,$07,Show - db SILPH_CO_6F,$08,Show - db SILPH_CO_6F,$09,Show - db SILPH_CO_6F,$0A,Show -MapHSD4: - db SILPH_CO_7F,$05,Show - db SILPH_CO_7F,$06,Show - db SILPH_CO_7F,$07,Show - db SILPH_CO_7F,$08,Show - db SILPH_CO_7F,$09,Show - db SILPH_CO_7F,$0A,Show - db SILPH_CO_7F,$0B,Show - db SILPH_CO_7F,$0C,Show -MapHSD5: - db SILPH_CO_8F,$02,Show - db SILPH_CO_8F,$03,Show - db SILPH_CO_8F,$04,Show -MapHSE9: - db SILPH_CO_9F,$02,Show - db SILPH_CO_9F,$03,Show - db SILPH_CO_9F,$04,Show -MapHSEA: - db SILPH_CO_10F,$01,Show - db SILPH_CO_10F,$02,Show - db SILPH_CO_10F,$03,Show - db SILPH_CO_10F,$04,Show - db SILPH_CO_10F,$05,Show - db SILPH_CO_10F,$06,Show -MapHSEB: - db SILPH_CO_11F,$03,Show - db SILPH_CO_11F,$04,Show - db SILPH_CO_11F,$05,Show - db SILPH_CO_11F,$06,Show -MapHSF4: - db UNUSED_MAP_F4,$02,Show -MapHSD6: - db POKEMON_MANSION_2F,$02,Show -MapHSD7: - db POKEMON_MANSION_3F,$03,Show - db POKEMON_MANSION_3F,$04,Show -MapHSD8: - db POKEMON_MANSION_B1F,$03,Show - db POKEMON_MANSION_B1F,$04,Show - db POKEMON_MANSION_B1F,$05,Show - db POKEMON_MANSION_B1F,$06,Show - db POKEMON_MANSION_B1F,$08,Show -MapHSD9: - db SAFARI_ZONE_EAST,$01,Show - db SAFARI_ZONE_EAST,$02,Show - db SAFARI_ZONE_EAST,$03,Show - db SAFARI_ZONE_EAST,$04,Show -MapHSDA: - db SAFARI_ZONE_NORTH,$01,Show - db SAFARI_ZONE_NORTH,$02,Show -MapHSDB: - db SAFARI_ZONE_WEST,$01,Show - db SAFARI_ZONE_WEST,$02,Show - db SAFARI_ZONE_WEST,$03,Show - db SAFARI_ZONE_WEST,$04,Show -MapHSDC: - db SAFARI_ZONE_CENTER,$01,Show -MapHSE2: - db CERULEAN_CAVE_2F,$01,Show - db CERULEAN_CAVE_2F,$02,Show - db CERULEAN_CAVE_2F,$03,Show - db CERULEAN_CAVE_2F,$04,Show -MapHSE3: - db CERULEAN_CAVE_B1F,$01,Show - db CERULEAN_CAVE_B1F,$02,Show - db CERULEAN_CAVE_B1F,$03,Show - db CERULEAN_CAVE_B1F,$04,Show - db CERULEAN_CAVE_B1F,$05,Show -MapHS6C: - db VICTORY_ROAD_1F,$03,Show - db VICTORY_ROAD_1F,$04,Show -MapHS78: - db CHAMPIONS_ROOM,$02,Hide -MapHSC0: - db SEAFOAM_ISLANDS_1F,$01,Show - db SEAFOAM_ISLANDS_1F,$02,Show -MapHS9F: - db SEAFOAM_ISLANDS_B1F,$01,Hide - db SEAFOAM_ISLANDS_B1F,$02,Hide -MapHSA0: - db SEAFOAM_ISLANDS_B2F,$01,Hide - db SEAFOAM_ISLANDS_B2F,$02,Hide -MapHSA1: - db SEAFOAM_ISLANDS_B3F,$02,Show - db SEAFOAM_ISLANDS_B3F,$03,Show - db SEAFOAM_ISLANDS_B3F,$05,Hide - db SEAFOAM_ISLANDS_B3F,$06,Hide -MapHSA2: - db SEAFOAM_ISLANDS_B4F,$01,Hide - db SEAFOAM_ISLANDS_B4F,$02,Hide - db SEAFOAM_ISLANDS_B4F,$03,Show - -MapHS27Copy: -; doesn't seem to be referenced - db BLUES_HOUSE,$01,Show - db BLUES_HOUSE,$02,Hide - db BLUES_HOUSE,$03,Show - - db $FF,$01,Show diff --git a/data/icon_pointers.asm b/data/icon_pointers.asm new file mode 100644 index 000000000..9092e1b1a --- /dev/null +++ b/data/icon_pointers.asm @@ -0,0 +1,39 @@ +mon_icon_header: MACRO + dw \1 tile \2 + db \3 + db BANK(\1) + dw vSprites tile (\4) +ENDM + +MonPartySpritePointers: + ; gfx pointer, gfx tile offset, # tiles, vSprites tile offset + mon_icon_header MonsterSprite, 12, 4, ICON_MON << 2 + mon_icon_header PokeBallSprite, 0, 8, ICON_BALL << 2 + mon_icon_header FairySprite, 12, 4, ICON_FAIRY << 2 + mon_icon_header BirdSprite, 12, 4, ICON_BIRD << 2 + mon_icon_header SeelSprite, 0, 4, ICON_WATER << 2 + mon_icon_header BugIconFrame2, 0, 1, ICON_BUG << 2 + mon_icon_header BugIconFrame2, 1, 1, ICON_BUG << 2 + 2 + mon_icon_header PlantIconFrame2, 0, 1, ICON_GRASS << 2 + mon_icon_header PlantIconFrame2, 1, 1, ICON_GRASS << 2 + 2 + mon_icon_header SnakeIconFrame1, 0, 1, ICON_SNAKE << 2 + mon_icon_header SnakeIconFrame1, 1, 1, ICON_SNAKE << 2 + 2 + mon_icon_header QuadrupedIconFrame1, 0, 1, ICON_QUADRUPED << 2 + mon_icon_header QuadrupedIconFrame1, 1, 1, ICON_QUADRUPED << 2 + 2 + mon_icon_header PikachuSprite, 0, 4, ICON_PIKACHU << 2 + mon_icon_header TradeBubbleIconGFX, 0, 4, ICON_TRADEBUBBLE << 2 + mon_icon_header MonsterSprite, 0, 4, ICONOFFSET + ICON_MON << 2 + mon_icon_header PokeBallSprite, 0, 8, ICONOFFSET + ICON_BALL << 2 + mon_icon_header FairySprite, 0, 4, ICONOFFSET + ICON_FAIRY << 2 + mon_icon_header BirdSprite, 0, 4, ICONOFFSET + ICON_BIRD << 2 + mon_icon_header SeelSprite, 12, 4, ICONOFFSET + ICON_WATER << 2 + mon_icon_header BugIconFrame1, 0, 1, ICONOFFSET + ICON_BUG << 2 + mon_icon_header BugIconFrame1, 1, 1, ICONOFFSET + ICON_BUG << 2 + 2 + mon_icon_header PlantIconFrame1, 0, 1, ICONOFFSET + ICON_GRASS << 2 + mon_icon_header PlantIconFrame1, 1, 1, ICONOFFSET + ICON_GRASS << 2 + 2 + mon_icon_header SnakeIconFrame2, 0, 1, ICONOFFSET + ICON_SNAKE << 2 + mon_icon_header SnakeIconFrame2, 1, 1, ICONOFFSET + ICON_SNAKE << 2 + 2 + mon_icon_header QuadrupedIconFrame2, 0, 1, ICONOFFSET + ICON_QUADRUPED << 2 + mon_icon_header QuadrupedIconFrame2, 1, 1, ICONOFFSET + ICON_QUADRUPED << 2 + 2 + mon_icon_header PikachuSprite, 12, 4, ICONOFFSET + ICON_PIKACHU << 2 + mon_icon_header TradeBubbleIconGFX, 4, 4, ICONOFFSET + ICON_TRADEBUBBLE << 2 diff --git a/data/item_prices.asm b/data/item_prices.asm deleted file mode 100755 index 15a1bd343..000000000 --- a/data/item_prices.asm +++ /dev/null @@ -1,98 +0,0 @@ -ItemPrices: - money 0 ; MASTER_BALL - money 1200 ; ULTRA_BALL - money 600 ; GREAT_BALL - money 200 ; POKE_BALL - money 0 ; TOWN_MAP - money 0 ; BICYCLE - money 0 ; SURFBOARD - money 1000 ; SAFARI_BALL - money 0 ; POKEDEX - money 0 ; MOON_STONE - money 100 ; ANTIDOTE - money 250 ; BURN_HEAL - money 250 ; ICE_HEAL - money 200 ; AWAKENING - money 200 ; PARLYZ_HEAL - money 3000 ; FULL_RESTORE - money 2500 ; MAX_POTION - money 1500 ; HYPER_POTION - money 700 ; SUPER_POTION - money 300 ; POTION - money 0 ; BOULDERBADGE - money 0 ; CASCADEBADGE - money 0 ; THUNDERBADGE - money 0 ; RAINBOWBADGE - money 0 ; SOULBADGE - money 0 ; MARSHBADGE - money 0 ; VOLCANOBADGE - money 0 ; EARTHBADGE - money 550 ; ESCAPE_ROPE - money 350 ; REPEL - money 0 ; OLD_AMBER - money 2100 ; FIRE_STONE - money 2100 ; THUNDER_STONE - money 2100 ; WATER_STONE - money 9800 ; HP_UP - money 9800 ; PROTEIN - money 9800 ; IRON - money 9800 ; CARBOS - money 9800 ; CALCIUM - money 4800 ; RARE_CANDY - money 0 ; DOME_FOSSIL - money 0 ; HELIX_FOSSIL - money 0 ; SECRET_KEY - money 0 ; XXX - money 0 ; BIKE_VOUCHER - money 950 ; X_ACCURACY - money 2100 ; LEAF_STONE - money 0 ; CARD_KEY - money 10000 ; NUGGET - money 9800 ; XXX PP_UP - money 1000 ; POKE_DOLL - money 600 ; FULL_HEAL - money 1500 ; REVIVE - money 4000 ; MAX_REVIVE - money 700 ; GUARD_SPEC - money 500 ; SUPER_REPEL - money 700 ; MAX_REPEL - money 650 ; DIRE_HIT - money 10 ; COIN - money 200 ; FRESH_WATER - money 300 ; SODA_POP - money 350 ; LEMONADE - money 0 ; S_S_TICKET - money 0 ; GOLD_TEETH - money 500 ; X_ATTACK - money 550 ; X_DEFEND - money 350 ; X_SPEED - money 350 ; X_SPECIAL - money 0 ; COIN_CASE - money 0 ; OAKS_PARCEL - money 0 ; ITEMFINDER - money 0 ; SILPH_SCOPE - money 0 ; POKE_FLUTE - money 0 ; LIFT_KEY - money 0 ; EXP_ALL - money 0 ; OLD_ROD - money 0 ; GOOD_ROD - money 0 ; SUPER_ROD - money 0 ; PP_UP - money 0 ; ETHER - money 0 ; MAX_ETHER - money 0 ; ELIXER - money 0 ; MAX_ELIXER - money 0 ; FLOOR_B2F - money 0 ; FLOOR_B1F - money 0 ; FLOOR_1F - money 0 ; FLOOR_2F - money 0 ; FLOOR_3F - money 0 ; FLOOR_4F - money 0 ; FLOOR_5F - money 0 ; FLOOR_6F - money 0 ; FLOOR_7F - money 0 ; FLOOR_8F - money 0 ; FLOOR_9F - money 0 ; FLOOR_10F - money 0 ; FLOOR_11F - money 0 ; FLOOR_B4F diff --git a/data/items/guard_drink_items.asm b/data/items/guard_drink_items.asm new file mode 100644 index 000000000..e76d1f775 --- /dev/null +++ b/data/items/guard_drink_items.asm @@ -0,0 +1,5 @@ +GuardDrinksList: + db FRESH_WATER + db SODA_POP + db LEMONADE + db 0 ; end diff --git a/data/items/key_items.asm b/data/items/key_items.asm new file mode 100755 index 000000000..aca8cf819 --- /dev/null +++ b/data/items/key_items.asm @@ -0,0 +1,103 @@ +key_item_bits: MACRO +_bit = 0 +_byte = 0 +REPT _NARG +_byte = _byte | ((\1) << _bit) +_bit = _bit + 1 +IF _bit == 8 + db _byte +_byte = 0 +_bit = 0 +ENDC +SHIFT +ENDR +IF _bit > 0 + db _byte +ENDC +ENDM + +KeyItemBitfield: + key_item_bits \ + FALSE, \ ; MASTER_BALL + FALSE, \ ; ULTRA_BALL + FALSE, \ ; GREAT_BALL + FALSE, \ ; POKE_BALL + TRUE, \ ; TOWN_MAP + TRUE, \ ; BICYCLE + TRUE, \ ; SURFBOARD + TRUE, \ ; SAFARI_BALL + TRUE, \ ; POKEDEX + FALSE, \ ; MOON_STONE + FALSE, \ ; ANTIDOTE + FALSE, \ ; BURN_HEAL + FALSE, \ ; ICE_HEAL + FALSE, \ ; AWAKENING + FALSE, \ ; PARLYZ_HEAL + FALSE, \ ; FULL_RESTORE + FALSE, \ ; MAX_POTION + FALSE, \ ; HYPER_POTION + FALSE, \ ; SUPER_POTION + FALSE, \ ; POTION + TRUE, \ ; BOULDERBADGE + TRUE, \ ; CASCADEBADGE + TRUE, \ ; THUNDERBADGE + TRUE, \ ; RAINBOWBADGE + TRUE, \ ; SOULBADGE + TRUE, \ ; MARSHBADGE + TRUE, \ ; VOLCANOBADGE + TRUE, \ ; EARTHBADGE + FALSE, \ ; ESCAPE_ROPE + FALSE, \ ; REPEL + TRUE, \ ; OLD_AMBER + FALSE, \ ; FIRE_STONE + FALSE, \ ; THUNDER_STONE + FALSE, \ ; WATER_STONE + FALSE, \ ; HP_UP + FALSE, \ ; PROTEIN + FALSE, \ ; IRON + FALSE, \ ; CARBOS + FALSE, \ ; CALCIUM + FALSE, \ ; RARE_CANDY + TRUE, \ ; DOME_FOSSIL + TRUE, \ ; HELIX_FOSSIL + TRUE, \ ; SECRET_KEY + TRUE, \ ; UNUSED_ITEM + TRUE, \ ; BIKE_VOUCHER + FALSE, \ ; X_ACCURACY + FALSE, \ ; LEAF_STONE + TRUE, \ ; CARD_KEY + FALSE, \ ; NUGGET + FALSE, \ ; PP_UP_2 + FALSE, \ ; POKE_DOLL + FALSE, \ ; FULL_HEAL + FALSE, \ ; REVIVE + FALSE, \ ; MAX_REVIVE + FALSE, \ ; GUARD_SPEC + FALSE, \ ; SUPER_REPEL + FALSE, \ ; MAX_REPEL + FALSE, \ ; DIRE_HIT + FALSE, \ ; COIN + FALSE, \ ; FRESH_WATER + FALSE, \ ; SODA_POP + FALSE, \ ; LEMONADE + TRUE, \ ; S_S_TICKET + TRUE, \ ; GOLD_TEETH + FALSE, \ ; X_ATTACK + FALSE, \ ; X_DEFEND + FALSE, \ ; X_SPEED + FALSE, \ ; X_SPECIAL + TRUE, \ ; COIN_CASE + TRUE, \ ; OAKS_PARCEL + TRUE, \ ; ITEMFINDER + TRUE, \ ; SILPH_SCOPE + TRUE, \ ; POKE_FLUTE + TRUE, \ ; LIFT_KEY + FALSE, \ ; EXP_ALL + TRUE, \ ; OLD_ROD + TRUE, \ ; GOOD_ROD + TRUE, \ ; SUPER_ROD + FALSE, \ ; PP_UP + FALSE, \ ; ETHER + FALSE, \ ; MAX_ETHER + FALSE, \ ; ELIXER + FALSE ; MAX_ELIXER diff --git a/data/items/marts.asm b/data/items/marts.asm new file mode 100755 index 000000000..30eb7d9a7 --- /dev/null +++ b/data/items/marts.asm @@ -0,0 +1,64 @@ +; mart inventories are below +; they are texts + +; Viridian +ViridianCashierText:: + script_mart POKE_BALL, POTION, ANTIDOTE, PARLYZ_HEAL, BURN_HEAL + +; Pewter +PewterCashierText:: + script_mart POKE_BALL, POTION, ESCAPE_ROPE, ANTIDOTE, BURN_HEAL, AWAKENING, PARLYZ_HEAL + +; Cerulean +CeruleanCashierText:: + script_mart POKE_BALL, POTION, ESCAPE_ROPE, REPEL, ANTIDOTE, BURN_HEAL, AWAKENING, PARLYZ_HEAL + +; Bike shop + script_mart BICYCLE + +; Vermilion +VermilionCashierText:: + script_mart POKE_BALL, SUPER_POTION, ICE_HEAL, AWAKENING, PARLYZ_HEAL, REPEL + +; Lavender +LavenderCashierText:: + script_mart GREAT_BALL, SUPER_POTION, REVIVE, ESCAPE_ROPE, SUPER_REPEL, ANTIDOTE, BURN_HEAL, ICE_HEAL, PARLYZ_HEAL + +; Celadon Dept. Store 2F (1) +CeladonMart2Clerk1Text:: + script_mart GREAT_BALL, SUPER_POTION, REVIVE, SUPER_REPEL, ANTIDOTE, BURN_HEAL, ICE_HEAL, AWAKENING, PARLYZ_HEAL + +; Celadon Dept. Store 2F (2) +CeladonMart2Clerk2Text:: + script_mart TM_DOUBLE_TEAM, TM_REFLECT, TM_RAZOR_WIND, TM_HORN_DRILL, TM_EGG_BOMB, TM_MEGA_PUNCH, TM_MEGA_KICK, TM_TAKE_DOWN, TM_SUBMISSION + +; Celadon Dept. Store 4F +CeladonMart4ClerkText:: + script_mart POKE_DOLL, FIRE_STONE, THUNDER_STONE, WATER_STONE, LEAF_STONE + +; Celadon Dept. Store 5F (1) +CeladonMart5Clerk1Text:: + script_mart X_ACCURACY, GUARD_SPEC, DIRE_HIT, X_ATTACK, X_DEFEND, X_SPEED, X_SPECIAL + +; Celadon Dept. Store 5F (2) +CeladonMart5Clerk2Text:: + script_mart HP_UP, PROTEIN, IRON, CARBOS, CALCIUM + +; Fuchsia +FuchsiaCashierText:: + script_mart ULTRA_BALL, GREAT_BALL, HYPER_POTION, REVIVE, FULL_HEAL, SUPER_REPEL + +; unused? + script_mart GREAT_BALL, HYPER_POTION, SUPER_POTION, FULL_HEAL, REVIVE + +; Cinnabar +CinnabarCashierText:: + script_mart ULTRA_BALL, GREAT_BALL, HYPER_POTION, MAX_REPEL, ESCAPE_ROPE, FULL_HEAL, REVIVE + +; Saffron +SaffronCashierText:: + script_mart GREAT_BALL, HYPER_POTION, MAX_REPEL, ESCAPE_ROPE, FULL_HEAL, REVIVE + +; Indigo +IndigoCashierText:: + script_mart ULTRA_BALL, GREAT_BALL, FULL_RESTORE, MAX_POTION, FULL_HEAL, REVIVE, MAX_REPEL diff --git a/data/items/names.asm b/data/items/names.asm new file mode 100755 index 000000000..0c07fe5de --- /dev/null +++ b/data/items/names.asm @@ -0,0 +1,98 @@ +ItemNames:: + db "MASTER BALL@" + db "ULTRA BALL@" + db "GREAT BALL@" + db "POKé BALL@" + db "TOWN MAP@" + db "BICYCLE@" + db "?????@" + db "SAFARI BALL@" + db "POKéDEX@" + db "MOON STONE@" + db "ANTIDOTE@" + db "BURN HEAL@" + db "ICE HEAL@" + db "AWAKENING@" + db "PARLYZ HEAL@" + db "FULL RESTORE@" + db "MAX POTION@" + db "HYPER POTION@" + db "SUPER POTION@" + db "POTION@" + db "BOULDERBADGE@" + db "CASCADEBADGE@" + db "THUNDERBADGE@" + db "RAINBOWBADGE@" + db "SOULBADGE@" + db "MARSHBADGE@" + db "VOLCANOBADGE@" + db "EARTHBADGE@" + db "ESCAPE ROPE@" + db "REPEL@" + db "OLD AMBER@" + db "FIRE STONE@" + db "THUNDERSTONE@" + db "WATER STONE@" + db "HP UP@" + db "PROTEIN@" + db "IRON@" + db "CARBOS@" + db "CALCIUM@" + db "RARE CANDY@" + db "DOME FOSSIL@" + db "HELIX FOSSIL@" + db "SECRET KEY@" + db "?????@" + db "BIKE VOUCHER@" + db "X ACCURACY@" + db "LEAF STONE@" + db "CARD KEY@" + db "NUGGET@" + db "PP UP@" + db "POKé DOLL@" + db "FULL HEAL@" + db "REVIVE@" + db "MAX REVIVE@" + db "GUARD SPEC.@" + db "SUPER REPEL@" + db "MAX REPEL@" + db "DIRE HIT@" + db "COIN@" + db "FRESH WATER@" + db "SODA POP@" + db "LEMONADE@" + db "S.S.TICKET@" + db "GOLD TEETH@" + db "X ATTACK@" + db "X DEFEND@" + db "X SPEED@" + db "X SPECIAL@" + db "COIN CASE@" + db "OAK's PARCEL@" + db "ITEMFINDER@" + db "SILPH SCOPE@" + db "POKé FLUTE@" + db "LIFT KEY@" + db "EXP.ALL@" + db "OLD ROD@" + db "GOOD ROD@" + db "SUPER ROD@" + db "PP UP@" + db "ETHER@" + db "MAX ETHER@" + db "ELIXER@" + db "MAX ELIXER@" + db "B2F@" + db "B1F@" + db "1F@" + db "2F@" + db "3F@" + db "4F@" + db "5F@" + db "6F@" + db "7F@" + db "8F@" + db "9F@" + db "10F@" + db "11F@" + db "B4F@" diff --git a/data/items/prices.asm b/data/items/prices.asm new file mode 100755 index 000000000..f3d8f76b8 --- /dev/null +++ b/data/items/prices.asm @@ -0,0 +1,98 @@ +ItemPrices:: + money 0 ; MASTER_BALL + money 1200 ; ULTRA_BALL + money 600 ; GREAT_BALL + money 200 ; POKE_BALL + money 0 ; TOWN_MAP + money 0 ; BICYCLE + money 0 ; SURFBOARD + money 1000 ; SAFARI_BALL + money 0 ; POKEDEX + money 0 ; MOON_STONE + money 100 ; ANTIDOTE + money 250 ; BURN_HEAL + money 250 ; ICE_HEAL + money 200 ; AWAKENING + money 200 ; PARLYZ_HEAL + money 3000 ; FULL_RESTORE + money 2500 ; MAX_POTION + money 1500 ; HYPER_POTION + money 700 ; SUPER_POTION + money 300 ; POTION + money 0 ; BOULDERBADGE + money 0 ; CASCADEBADGE + money 0 ; THUNDERBADGE + money 0 ; RAINBOWBADGE + money 0 ; SOULBADGE + money 0 ; MARSHBADGE + money 0 ; VOLCANOBADGE + money 0 ; EARTHBADGE + money 550 ; ESCAPE_ROPE + money 350 ; REPEL + money 0 ; OLD_AMBER + money 2100 ; FIRE_STONE + money 2100 ; THUNDER_STONE + money 2100 ; WATER_STONE + money 9800 ; HP_UP + money 9800 ; PROTEIN + money 9800 ; IRON + money 9800 ; CARBOS + money 9800 ; CALCIUM + money 4800 ; RARE_CANDY + money 0 ; DOME_FOSSIL + money 0 ; HELIX_FOSSIL + money 0 ; SECRET_KEY + money 0 ; XXX + money 0 ; BIKE_VOUCHER + money 950 ; X_ACCURACY + money 2100 ; LEAF_STONE + money 0 ; CARD_KEY + money 10000 ; NUGGET + money 9800 ; XXX PP_UP + money 1000 ; POKE_DOLL + money 600 ; FULL_HEAL + money 1500 ; REVIVE + money 4000 ; MAX_REVIVE + money 700 ; GUARD_SPEC + money 500 ; SUPER_REPEL + money 700 ; MAX_REPEL + money 650 ; DIRE_HIT + money 10 ; COIN + money 200 ; FRESH_WATER + money 300 ; SODA_POP + money 350 ; LEMONADE + money 0 ; S_S_TICKET + money 0 ; GOLD_TEETH + money 500 ; X_ATTACK + money 550 ; X_DEFEND + money 350 ; X_SPEED + money 350 ; X_SPECIAL + money 0 ; COIN_CASE + money 0 ; OAKS_PARCEL + money 0 ; ITEMFINDER + money 0 ; SILPH_SCOPE + money 0 ; POKE_FLUTE + money 0 ; LIFT_KEY + money 0 ; EXP_ALL + money 0 ; OLD_ROD + money 0 ; GOOD_ROD + money 0 ; SUPER_ROD + money 0 ; PP_UP + money 0 ; ETHER + money 0 ; MAX_ETHER + money 0 ; ELIXER + money 0 ; MAX_ELIXER + money 0 ; FLOOR_B2F + money 0 ; FLOOR_B1F + money 0 ; FLOOR_1F + money 0 ; FLOOR_2F + money 0 ; FLOOR_3F + money 0 ; FLOOR_4F + money 0 ; FLOOR_5F + money 0 ; FLOOR_6F + money 0 ; FLOOR_7F + money 0 ; FLOOR_8F + money 0 ; FLOOR_9F + money 0 ; FLOOR_10F + money 0 ; FLOOR_11F + money 0 ; FLOOR_B4F diff --git a/data/items/tm_prices.asm b/data/items/tm_prices.asm new file mode 100755 index 000000000..7f007e9df --- /dev/null +++ b/data/items/tm_prices.asm @@ -0,0 +1,27 @@ +TechnicalMachinePrices: +; In thousands (nybbles). + dn 3, 2 ; TM01, TM02 + dn 2, 1 ; TM03, TM04 + dn 3, 4 ; TM05, TM06 + dn 2, 4 ; TM07, TM08 + dn 3, 4 ; TM09, TM10 + dn 2, 1 ; TM11, TM12 + dn 4, 5 ; TM13, TM14 + dn 5, 5 ; TM15, TM16 + dn 3, 2 ; TM17, TM18 + dn 3, 2 ; TM19, TM20 + dn 5, 5 ; TM21, TM22 + dn 5, 2 ; TM23, TM24 + dn 5, 4 ; TM25, TM26 + dn 5, 2 ; TM27, TM28 + dn 4, 1 ; TM29, TM30 + dn 2, 1 ; TM31, TM32 + dn 1, 2 ; TM33, TM34 + dn 4, 2 ; TM35, TM36 + dn 2, 5 ; TM37, TM38 + dn 2, 4 ; TM39, TM40 + dn 2, 2 ; TM41, TM42 + dn 5, 2 ; TM43, TM44 + dn 2, 4 ; TM45, TM46 + dn 3, 4 ; TM47, TM48 + dn 4, 2 ; TM49, TM50 diff --git a/data/items/use_overworld.asm b/data/items/use_overworld.asm new file mode 100644 index 000000000..5a2ba1027 --- /dev/null +++ b/data/items/use_overworld.asm @@ -0,0 +1,9 @@ +; items which close the item menu when used +UsableItems_CloseMenu: + db ESCAPE_ROPE + db ITEMFINDER + db POKE_FLUTE + db OLD_ROD + db GOOD_ROD + db SUPER_ROD + db -1 ; end diff --git a/data/items/use_party.asm b/data/items/use_party.asm new file mode 100644 index 000000000..e8da68be1 --- /dev/null +++ b/data/items/use_party.asm @@ -0,0 +1,39 @@ +; items which bring up the party menu when used +UsableItems_PartyMenu: + db MOON_STONE + db ANTIDOTE + db BURN_HEAL + db ICE_HEAL + db AWAKENING + db PARLYZ_HEAL + db FULL_RESTORE + db MAX_POTION + db HYPER_POTION + db SUPER_POTION + db POTION + db FIRE_STONE + db THUNDER_STONE + db WATER_STONE + db HP_UP + db PROTEIN + db IRON + db CARBOS + db CALCIUM + db RARE_CANDY + db LEAF_STONE + db FULL_HEAL + db REVIVE + db MAX_REVIVE + db FRESH_WATER + db SODA_POP + db LEMONADE + db X_ATTACK + db X_DEFEND + db X_SPEED + db X_SPECIAL + db PP_UP + db ETHER + db MAX_ETHER + db ELIXER + db MAX_ELIXER + db -1 ; end diff --git a/data/items/vending_prices.asm b/data/items/vending_prices.asm new file mode 100644 index 000000000..131d525db --- /dev/null +++ b/data/items/vending_prices.asm @@ -0,0 +1,10 @@ +vend_item: MACRO + db \1 + money \2 +ENDM + +VendingPrices: + ; item id, price + vend_item FRESH_WATER, 200 + vend_item SODA_POP, 300 + vend_item LEMONADE, 350 diff --git a/data/key_items.asm b/data/key_items.asm deleted file mode 100755 index afa586afd..000000000 --- a/data/key_items.asm +++ /dev/null @@ -1,12 +0,0 @@ -KeyItemBitfield: - db %11110000 - db %00000001 - db %11110000 - db %01001111 - db %00000000 - db %10011111 - db %00000000 - db %11000000 - db %11110000 - db %00111011 - db %00000000 diff --git a/data/mapHeaders/AgathasRoom.asm b/data/mapHeaders/AgathasRoom.asm deleted file mode 100755 index 73cd72917..000000000 --- a/data/mapHeaders/AgathasRoom.asm +++ /dev/null @@ -1,8 +0,0 @@ -AgathasRoom_h: - db CEMETERY ; tileset - db AGATHAS_ROOM_HEIGHT, AGATHAS_ROOM_WIDTH ; dimensions (y, x) - dw AgathasRoom_Blocks ; blocks - dw AgathasRoom_TextPointers ; texts - dw AgathasRoom_Script ; scripts - db 0 ; connections - dw AgathasRoom_Object ; objects diff --git a/data/mapHeaders/BikeShop.asm b/data/mapHeaders/BikeShop.asm deleted file mode 100755 index c447fd80a..000000000 --- a/data/mapHeaders/BikeShop.asm +++ /dev/null @@ -1,8 +0,0 @@ -BikeShop_h: - db CLUB ; tileset - db BIKE_SHOP_HEIGHT, BIKE_SHOP_WIDTH ; dimensions (y, x) - dw BikeShop_Blocks ; blocks - dw BikeShop_TextPointers ; texts - dw BikeShop_Script ; scripts - db 0 ; connections - dw BikeShop_Object ; objects diff --git a/data/mapHeaders/BillsHouse.asm b/data/mapHeaders/BillsHouse.asm deleted file mode 100755 index bba9cf832..000000000 --- a/data/mapHeaders/BillsHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -BillsHouse_h: - db INTERIOR ; tileset - db BILLS_HOUSE_HEIGHT, BILLS_HOUSE_WIDTH ; dimensions (y, x) - dw BillsHouse_Blocks ; blocks - dw BillsHouse_TextPointers ; texts - dw BillsHouse_Script ; scripts - db 0 ; connections - dw BillsHouse_Object ; objects diff --git a/data/mapHeaders/BluesHouse.asm b/data/mapHeaders/BluesHouse.asm deleted file mode 100755 index 6ef0433e1..000000000 --- a/data/mapHeaders/BluesHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -BluesHouse_h: - db HOUSE ; tileset - db BLUES_HOUSE_HEIGHT, BLUES_HOUSE_WIDTH ; dimensions (y, x) - dw BluesHouse_Blocks ; blocks - dw BluesHouse_TextPointers ; texts - dw BluesHouse_Script ; scripts - db 0 ; connections - dw BluesHouse_Object ; objects diff --git a/data/mapHeaders/BrunosRoom.asm b/data/mapHeaders/BrunosRoom.asm deleted file mode 100755 index 78c7989db..000000000 --- a/data/mapHeaders/BrunosRoom.asm +++ /dev/null @@ -1,8 +0,0 @@ -BrunosRoom_h: - db GYM ; tileset - db BRUNOS_ROOM_HEIGHT, BRUNOS_ROOM_WIDTH ; dimensions (y, x) - dw BrunosRoom_Blocks ; blocks - dw BrunosRoom_TextPointers ; texts - dw BrunosRoom_Script ; scripts - db 0 ; connections - dw BrunosRoom_Object ; objects diff --git a/data/mapHeaders/CeladonChiefHouse.asm b/data/mapHeaders/CeladonChiefHouse.asm deleted file mode 100755 index a31c8121e..000000000 --- a/data/mapHeaders/CeladonChiefHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonChiefHouse_h: - db MANSION ; tileset - db CELADON_CHIEF_HOUSE_HEIGHT, CELADON_CHIEF_HOUSE_WIDTH ; dimensions (y, x) - dw CeladonChiefHouse_Blocks ; blocks - dw CeladonChiefHouse_TextPointers ; texts - dw CeladonChiefHouse_Script ; scripts - db 0 ; connections - dw CeladonChiefHouse_Object ; objects diff --git a/data/mapHeaders/CeladonCity.asm b/data/mapHeaders/CeladonCity.asm deleted file mode 100755 index 62243d273..000000000 --- a/data/mapHeaders/CeladonCity.asm +++ /dev/null @@ -1,10 +0,0 @@ -CeladonCity_h: - db OVERWORLD ; tileset - db CELADON_CITY_HEIGHT, CELADON_CITY_WIDTH ; dimensions (y, x) - dw CeladonCity_Blocks ; blocks - dw CeladonCity_TextPointers ; texts - dw CeladonCity_Script ; scripts - db WEST | EAST ; connections - WEST_MAP_CONNECTION CELADON_CITY, ROUTE_16, 4, 0, Route16_Blocks - EAST_MAP_CONNECTION CELADON_CITY, ROUTE_7, 4, 0, Route7_Blocks, 1 - dw CeladonCity_Object ; objects diff --git a/data/mapHeaders/CeladonDiner.asm b/data/mapHeaders/CeladonDiner.asm deleted file mode 100755 index d4220db75..000000000 --- a/data/mapHeaders/CeladonDiner.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonDiner_h: - db LOBBY ; tileset - db CELADON_DINER_HEIGHT, CELADON_DINER_WIDTH ; dimensions (y, x) - dw CeladonDiner_Blocks ; blocks - dw CeladonDiner_TextPointers ; texts - dw CeladonDiner_Script ; scripts - db 0 ; connections - dw CeladonDiner_Object ; objects diff --git a/data/mapHeaders/CeladonGym.asm b/data/mapHeaders/CeladonGym.asm deleted file mode 100755 index 04a9427c8..000000000 --- a/data/mapHeaders/CeladonGym.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonGym_h: - db GYM ; tileset - db CELADON_GYM_HEIGHT, CELADON_GYM_WIDTH ; dimensions (y, x) - dw CeladonGym_Blocks ; blocks - dw CeladonGym_TextPointers ; texts - dw CeladonGym_Script ; scripts - db 0 ; connections - dw CeladonGym_Object ; objects diff --git a/data/mapHeaders/CeladonHotel.asm b/data/mapHeaders/CeladonHotel.asm deleted file mode 100755 index e06c2fd3f..000000000 --- a/data/mapHeaders/CeladonHotel.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonHotel_h: - db POKECENTER ; tileset - db CELADON_HOTEL_HEIGHT, CELADON_HOTEL_WIDTH ; dimensions (y, x) - dw CeladonHotel_Blocks ; blocks - dw CeladonHotel_TextPointers ; texts - dw CeladonHotel_Script ; scripts - db 0 ; connections - dw CeladonHotel_Object ; objects diff --git a/data/mapHeaders/CeladonMansion1F.asm b/data/mapHeaders/CeladonMansion1F.asm deleted file mode 100755 index d2d0ee99b..000000000 --- a/data/mapHeaders/CeladonMansion1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonMansion1F_h: - db MANSION ; tileset - db CELADON_MANSION_1F_HEIGHT, CELADON_MANSION_1F_WIDTH ; dimensions (y, x) - dw CeladonMansion1F_Blocks ; blocks - dw CeladonMansion1F_TextPointers ; texts - dw CeladonMansion1F_Script ; scripts - db 0 ; connections - dw CeladonMansion1F_Object ; objects diff --git a/data/mapHeaders/CeladonMansion2F.asm b/data/mapHeaders/CeladonMansion2F.asm deleted file mode 100755 index eceac30e1..000000000 --- a/data/mapHeaders/CeladonMansion2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonMansion2F_h: - db MANSION ; tileset - db CELADON_MANSION_2F_HEIGHT, CELADON_MANSION_2F_WIDTH ; dimensions (y, x) - dw CeladonMansion2F_Blocks ; blocks - dw CeladonMansion2F_TextPointers ; texts - dw CeladonMansion2F_Script ; scripts - db 0 ; connections - dw CeladonMansion2F_Object ; objects diff --git a/data/mapHeaders/CeladonMansion3F.asm b/data/mapHeaders/CeladonMansion3F.asm deleted file mode 100755 index b5a0a7057..000000000 --- a/data/mapHeaders/CeladonMansion3F.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonMansion3F_h: - db MANSION ; tileset - db CELADON_MANSION_3F_HEIGHT, CELADON_MANSION_3F_WIDTH ; dimensions (y, x) - dw CeladonMansion3F_Blocks ; blocks - dw CeladonMansion3F_TextPointers ; texts - dw CeladonMansion3F_Script ; scripts - db 0 ; connections - dw CeladonMansion3F_Object ; objects diff --git a/data/mapHeaders/CeladonMansionRoof.asm b/data/mapHeaders/CeladonMansionRoof.asm deleted file mode 100755 index d7a050c85..000000000 --- a/data/mapHeaders/CeladonMansionRoof.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonMansionRoof_h: - db MANSION ; tileset - db CELADON_MANSION_ROOF_HEIGHT, CELADON_MANSION_ROOF_WIDTH ; dimensions (y, x) - dw CeladonMansionRoof_Blocks ; blocks - dw CeladonMansionRoof_TextPointers ; texts - dw CeladonMansionRoof_Script ; scripts - db 0 ; connections - dw CeladonMansionRoof_Object ; objects diff --git a/data/mapHeaders/CeladonMansionRoofHouse.asm b/data/mapHeaders/CeladonMansionRoofHouse.asm deleted file mode 100755 index 7fcf49e1d..000000000 --- a/data/mapHeaders/CeladonMansionRoofHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonMansionRoofHouse_h: - db HOUSE ; tileset - db CELADON_MANSION_ROOF_HOUSE_HEIGHT, CELADON_MANSION_ROOF_HOUSE_WIDTH ; dimensions (y, x) - dw CeladonMansionRoofHouse_Blocks ; blocks - dw CeladonMansionRoofHouse_TextPointers ; texts - dw CeladonMansionRoofHouse_Script ; scripts - db 0 ; connections - dw CeladonMansionRoofHouse_Object ; objects diff --git a/data/mapHeaders/CeladonMart1F.asm b/data/mapHeaders/CeladonMart1F.asm deleted file mode 100755 index 51e968fab..000000000 --- a/data/mapHeaders/CeladonMart1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonMart1F_h: - db LOBBY ; tileset - db CELADON_MART_1F_HEIGHT, CELADON_MART_1F_WIDTH ; dimensions (y, x) - dw CeladonMart1F_Blocks ; blocks - dw CeladonMart1F_TextPointers ; texts - dw CeladonMart1F_Script ; scripts - db 0 ; connections - dw CeladonMart1F_Object ; objects diff --git a/data/mapHeaders/CeladonMart2F.asm b/data/mapHeaders/CeladonMart2F.asm deleted file mode 100755 index 771064054..000000000 --- a/data/mapHeaders/CeladonMart2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonMart2F_h: - db LOBBY ; tileset - db CELADON_MART_2F_HEIGHT, CELADON_MART_2F_WIDTH ; dimensions (y, x) - dw CeladonMart2F_Blocks ; blocks - dw CeladonMart2F_TextPointers ; texts - dw CeladonMart2F_Script ; scripts - db 0 ; connections - dw CeladonMart2F_Object ; objects diff --git a/data/mapHeaders/CeladonMart3F.asm b/data/mapHeaders/CeladonMart3F.asm deleted file mode 100755 index c460945cc..000000000 --- a/data/mapHeaders/CeladonMart3F.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonMart3F_h: - db LOBBY ; tileset - db CELADON_MART_3F_HEIGHT, CELADON_MART_3F_WIDTH ; dimensions (y, x) - dw CeladonMart3F_Blocks ; blocks - dw CeladonMart3F_TextPointers ; texts - dw CeladonMart3F_Script ; scripts - db 0 ; connections - dw CeladonMart3F_Object ; objects diff --git a/data/mapHeaders/CeladonMart4F.asm b/data/mapHeaders/CeladonMart4F.asm deleted file mode 100755 index a742570b7..000000000 --- a/data/mapHeaders/CeladonMart4F.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonMart4F_h: - db LOBBY ; tileset - db CELADON_MART_4F_HEIGHT, CELADON_MART_4F_WIDTH ; dimensions (y, x) - dw CeladonMart4F_Blocks ; blocks - dw CeladonMart4F_TextPointers ; texts - dw CeladonMart4F_Script ; scripts - db 0 ; connections - dw CeladonMart4F_Object ; objects diff --git a/data/mapHeaders/CeladonMart5F.asm b/data/mapHeaders/CeladonMart5F.asm deleted file mode 100755 index 4b5223e03..000000000 --- a/data/mapHeaders/CeladonMart5F.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonMart5F_h: - db LOBBY ; tileset - db CELADON_MART_5F_HEIGHT, CELADON_MART_5F_WIDTH ; dimensions (y, x) - dw CeladonMart5F_Blocks ; blocks - dw CeladonMart5F_TextPointers ; texts - dw CeladonMart5F_Script ; scripts - db 0 ; connections - dw CeladonMart5F_Object ; objects diff --git a/data/mapHeaders/CeladonMartElevator.asm b/data/mapHeaders/CeladonMartElevator.asm deleted file mode 100755 index 06e87608f..000000000 --- a/data/mapHeaders/CeladonMartElevator.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonMartElevator_h: - db LOBBY ; tileset - db CELADON_MART_ELEVATOR_HEIGHT, CELADON_MART_ELEVATOR_WIDTH ; dimensions (y, x) - dw CeladonMartElevator_Blocks ; blocks - dw CeladonMartElevator_TextPointers ; texts - dw CeladonMartElevator_Script ; scripts - db 0 ; connections - dw CeladonMartElevator_Object ; objects diff --git a/data/mapHeaders/CeladonMartRoof.asm b/data/mapHeaders/CeladonMartRoof.asm deleted file mode 100755 index 163e25ed2..000000000 --- a/data/mapHeaders/CeladonMartRoof.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonMartRoof_h: - db LOBBY ; tileset - db CELADON_MART_ROOF_HEIGHT, CELADON_MART_ROOF_WIDTH ; dimensions (y, x) - dw CeladonMartRoof_Blocks ; blocks - dw CeladonMartRoof_TextPointers ; texts - dw CeladonMartRoof_Script ; scripts - db 0 ; connections - dw CeladonMartRoof_Object ; objects diff --git a/data/mapHeaders/CeladonPokecenter.asm b/data/mapHeaders/CeladonPokecenter.asm deleted file mode 100755 index b5d9bd739..000000000 --- a/data/mapHeaders/CeladonPokecenter.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeladonPokecenter_h: - db POKECENTER ; tileset - db CELADON_POKECENTER_HEIGHT, CELADON_POKECENTER_WIDTH ; dimensions (y, x) - dw CeladonPokecenter_Blocks ; blocks - dw CeladonPokecenter_TextPointers ; texts - dw CeladonPokecenter_Script ; scripts - db 0 ; connections - dw CeladonPokecenter_Object ; objects diff --git a/data/mapHeaders/CeruleanBadgeHouse.asm b/data/mapHeaders/CeruleanBadgeHouse.asm deleted file mode 100755 index a94f1912d..000000000 --- a/data/mapHeaders/CeruleanBadgeHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeruleanBadgeHouse_h: - db SHIP ; tileset - db CERULEAN_BADGE_HOUSE_HEIGHT, CERULEAN_BADGE_HOUSE_WIDTH ; dimensions (y, x) - dw CeruleanBadgeHouse_Blocks ; blocks - dw CeruleanBadgeHouse_TextPointers ; texts - dw CeruleanBadgeHouse_Script ; scripts - db 0 ; connections - dw CeruleanBadgeHouse_Object ; objects diff --git a/data/mapHeaders/CeruleanCave1F.asm b/data/mapHeaders/CeruleanCave1F.asm deleted file mode 100755 index 932dfb480..000000000 --- a/data/mapHeaders/CeruleanCave1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeruleanCave1F_h: - db CAVERN ; tileset - db CERULEAN_CAVE_1F_HEIGHT, CERULEAN_CAVE_1F_WIDTH ; dimensions (y, x) - dw CeruleanCave1F_Blocks ; blocks - dw CeruleanCave1F_TextPointers ; texts - dw CeruleanCave1F_Script ; scripts - db 0 ; connections - dw CeruleanCave1F_Object ; objects diff --git a/data/mapHeaders/CeruleanCave2F.asm b/data/mapHeaders/CeruleanCave2F.asm deleted file mode 100755 index 7cf82371b..000000000 --- a/data/mapHeaders/CeruleanCave2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeruleanCave2F_h: - db CAVERN ; tileset - db CERULEAN_CAVE_2F_HEIGHT, CERULEAN_CAVE_2F_WIDTH ; dimensions (y, x) - dw CeruleanCave2F_Blocks ; blocks - dw CeruleanCave2F_TextPointers ; texts - dw CeruleanCave2F_Script ; scripts - db 0 ; connections - dw CeruleanCave2F_Object ; objects diff --git a/data/mapHeaders/CeruleanCaveB1F.asm b/data/mapHeaders/CeruleanCaveB1F.asm deleted file mode 100755 index eb940faae..000000000 --- a/data/mapHeaders/CeruleanCaveB1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeruleanCaveB1F_h: - db CAVERN ; tileset - db CERULEAN_CAVE_B1F_HEIGHT, CERULEAN_CAVE_B1F_WIDTH ; dimensions (y, x) - dw CeruleanCaveB1F_Blocks ; blocks - dw CeruleanCaveB1F_TextPointers ; texts - dw CeruleanCaveB1F_Script ; scripts - db 0 ; connections - dw CeruleanCaveB1F_Object ; objects diff --git a/data/mapHeaders/CeruleanCity.asm b/data/mapHeaders/CeruleanCity.asm deleted file mode 100755 index cd5444abb..000000000 --- a/data/mapHeaders/CeruleanCity.asm +++ /dev/null @@ -1,12 +0,0 @@ -CeruleanCity_h: - db OVERWORLD ; tileset - db CERULEAN_CITY_HEIGHT, CERULEAN_CITY_WIDTH ; dimensions (y, x) - dw CeruleanCity_Blocks ; blocks - dw CeruleanCity_TextPointers ; texts - dw CeruleanCity_Script ; scripts - db NORTH | SOUTH | WEST | EAST ; connections - NORTH_MAP_CONNECTION CERULEAN_CITY, ROUTE_24, 5, 0, Route24_Blocks - SOUTH_MAP_CONNECTION CERULEAN_CITY, ROUTE_5, 5, 0, Route5_Blocks, 1 - WEST_MAP_CONNECTION CERULEAN_CITY, ROUTE_4, 4, 0, Route4_Blocks - EAST_MAP_CONNECTION CERULEAN_CITY, ROUTE_9, 4, 0, Route9_Blocks - dw CeruleanCity_Object ; objects diff --git a/data/mapHeaders/CeruleanGym.asm b/data/mapHeaders/CeruleanGym.asm deleted file mode 100755 index 3bdb02833..000000000 --- a/data/mapHeaders/CeruleanGym.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeruleanGym_h: - db GYM ; tileset - db CERULEAN_GYM_HEIGHT, CERULEAN_GYM_WIDTH ; dimensions (y, x) - dw CeruleanGym_Blocks ; blocks - dw CeruleanGym_TextPointers ; texts - dw CeruleanGym_Script ; scripts - db 0 ; connections - dw CeruleanGym_Object ; objects diff --git a/data/mapHeaders/CeruleanMart.asm b/data/mapHeaders/CeruleanMart.asm deleted file mode 100755 index f020d4a32..000000000 --- a/data/mapHeaders/CeruleanMart.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeruleanMart_h: - db MART ; tileset - db CERULEAN_MART_HEIGHT, CERULEAN_MART_WIDTH ; dimensions (y, x) - dw CeruleanMart_Blocks ; blocks - dw CeruleanMart_TextPointers ; texts - dw CeruleanMart_Script ; scripts - db 0 ; connections - dw CeruleanMart_Object ; objects diff --git a/data/mapHeaders/CeruleanPokecenter.asm b/data/mapHeaders/CeruleanPokecenter.asm deleted file mode 100755 index 3286acbb8..000000000 --- a/data/mapHeaders/CeruleanPokecenter.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeruleanPokecenter_h: - db POKECENTER ; tileset - db CERULEAN_POKECENTER_HEIGHT, CERULEAN_POKECENTER_WIDTH ; dimensions (y, x) - dw CeruleanPokecenter_Blocks ; blocks - dw CeruleanPokecenter_TextPointers ; texts - dw CeruleanPokecenter_Script ; scripts - db 0 ; connections - dw CeruleanPokecenter_Object ; objects diff --git a/data/mapHeaders/CeruleanTradeHouse.asm b/data/mapHeaders/CeruleanTradeHouse.asm deleted file mode 100755 index 23c5062c1..000000000 --- a/data/mapHeaders/CeruleanTradeHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeruleanTradeHouse_h: - db HOUSE ; tileset - db CERULEAN_TRADE_HOUSE_HEIGHT, CERULEAN_TRADE_HOUSE_WIDTH ; dimensions (y, x) - dw CeruleanTradeHouse_Blocks ; blocks - dw CeruleanTradeHouse_TextPointers ; texts - dw CeruleanTradeHouse_Script ; scripts - db 0 ; connections - dw CeruleanTradeHouse_Object ; objects diff --git a/data/mapHeaders/CeruleanTrashedHouse.asm b/data/mapHeaders/CeruleanTrashedHouse.asm deleted file mode 100755 index e105b1ede..000000000 --- a/data/mapHeaders/CeruleanTrashedHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -CeruleanTrashedHouse_h: - db HOUSE ; tileset - db CERULEAN_TRASHED_HOUSE_HEIGHT, CERULEAN_TRASHED_HOUSE_WIDTH ; dimensions (y, x) - dw CeruleanTrashedHouse_Blocks ; blocks - dw CeruleanTrashedHouse_TextPointers ; texts - dw CeruleanTrashedHouse_Script ; scripts - db 0 ; connections - dw CeruleanTrashedHouse_Object ; objects diff --git a/data/mapHeaders/ChampionsRoom.asm b/data/mapHeaders/ChampionsRoom.asm deleted file mode 100755 index a22b236ad..000000000 --- a/data/mapHeaders/ChampionsRoom.asm +++ /dev/null @@ -1,8 +0,0 @@ -ChampionsRoom_h: - db GYM ; tileset - db CHAMPIONS_ROOM_HEIGHT, CHAMPIONS_ROOM_WIDTH ; dimensions (y, x) - dw ChampionsRoom_Blocks ; blocks - dw ChampionsRoom_TextPointers ; texts - dw ChampionsRoom_Script ; scripts - db $0 ; connections - dw ChampionsRoom_Object ; objects diff --git a/data/mapHeaders/CinnabarGym.asm b/data/mapHeaders/CinnabarGym.asm deleted file mode 100755 index e871b8f3d..000000000 --- a/data/mapHeaders/CinnabarGym.asm +++ /dev/null @@ -1,8 +0,0 @@ -CinnabarGym_h: - db FACILITY ; tileset - db CINNABAR_GYM_HEIGHT, CINNABAR_GYM_WIDTH ; dimensions (y, x) - dw CinnabarGym_Blocks ; blocks - dw CinnabarGym_TextPointers ; texts - dw CinnabarGym_Script ; scripts - db 0 ; connections - dw CinnabarGym_Object ; objects diff --git a/data/mapHeaders/CinnabarIsland.asm b/data/mapHeaders/CinnabarIsland.asm deleted file mode 100755 index b8c5d7d4b..000000000 --- a/data/mapHeaders/CinnabarIsland.asm +++ /dev/null @@ -1,10 +0,0 @@ -CinnabarIsland_h: - db OVERWORLD ; tileset - db CINNABAR_ISLAND_HEIGHT, CINNABAR_ISLAND_WIDTH ; dimensions (y, x) - dw CinnabarIsland_Blocks ; blocks - dw CinnabarIsland_TextPointers ; texts - dw CinnabarIsland_Script ; scripts - db NORTH | EAST ; connections - NORTH_MAP_CONNECTION CINNABAR_ISLAND, ROUTE_21, 0, 0, Route21_Blocks - EAST_MAP_CONNECTION CINNABAR_ISLAND, ROUTE_20, 0, 0, Route20_Blocks - dw CinnabarIsland_Object ; objects diff --git a/data/mapHeaders/CinnabarLab.asm b/data/mapHeaders/CinnabarLab.asm deleted file mode 100755 index c11679606..000000000 --- a/data/mapHeaders/CinnabarLab.asm +++ /dev/null @@ -1,8 +0,0 @@ -CinnabarLab_h: - db LAB ; tileset - db CINNABAR_LAB_HEIGHT, CINNABAR_LAB_WIDTH ; dimensions (y, x) - dw CinnabarLab_Blocks ; blocks - dw CinnabarLab_TextPointers ; texts - dw CinnabarLab_Script ; scripts - db 0 ; connections - dw CinnabarLab_Object ; objects diff --git a/data/mapHeaders/CinnabarLabFossilRoom.asm b/data/mapHeaders/CinnabarLabFossilRoom.asm deleted file mode 100755 index 4ac2963b5..000000000 --- a/data/mapHeaders/CinnabarLabFossilRoom.asm +++ /dev/null @@ -1,8 +0,0 @@ -CinnabarLabFossilRoom_h: - db LAB ; tileset - db CINNABAR_LAB_FOSSIL_ROOM_HEIGHT, CINNABAR_LAB_FOSSIL_ROOM_WIDTH ; dimensions (y, x) - dw CinnabarLabFossilRoom_Blocks ; blocks - dw CinnabarLabFossilRoom_TextPointers ; texts - dw CinnabarLabFossilRoom_Script ; scripts - db 0 ; connections - dw CinnabarLabFossilRoom_Object ; objects diff --git a/data/mapHeaders/CinnabarLabMetronomeRoom.asm b/data/mapHeaders/CinnabarLabMetronomeRoom.asm deleted file mode 100755 index 8eb9e5026..000000000 --- a/data/mapHeaders/CinnabarLabMetronomeRoom.asm +++ /dev/null @@ -1,8 +0,0 @@ -CinnabarLabMetronomeRoom_h: - db LAB ; tileset - db CINNABAR_LAB_METRONOME_ROOM_HEIGHT, CINNABAR_LAB_METRONOME_ROOM_WIDTH ; dimensions (y, x) - dw CinnabarLabMetronomeRoom_Blocks ; blocks - dw CinnabarLabMetronomeRoom_TextPointers ; texts - dw CinnabarLabMetronomeRoom_Script ; scripts - db 0 ; connections - dw CinnabarLabMetronomeRoom_Object ; objects diff --git a/data/mapHeaders/CinnabarLabTradeRoom.asm b/data/mapHeaders/CinnabarLabTradeRoom.asm deleted file mode 100755 index 1e0ffd0e3..000000000 --- a/data/mapHeaders/CinnabarLabTradeRoom.asm +++ /dev/null @@ -1,8 +0,0 @@ -CinnabarLabTradeRoom_h: - db LAB ; tileset - db CINNABAR_LAB_TRADE_ROOM_HEIGHT, CINNABAR_LAB_TRADE_ROOM_WIDTH ; dimensions (y, x) - dw CinnabarLabTradeRoom_Blocks ; blocks - dw CinnabarLabTradeRoom_TextPointers ; texts - dw CinnabarLabTradeRoom_Script ; scripts - db 0 ; connections - dw CinnabarLabTradeRoom_Object ; objects diff --git a/data/mapHeaders/CinnabarMart.asm b/data/mapHeaders/CinnabarMart.asm deleted file mode 100755 index 5833b2efe..000000000 --- a/data/mapHeaders/CinnabarMart.asm +++ /dev/null @@ -1,8 +0,0 @@ -CinnabarMart_h: - db MART ; tileset - db CINNABAR_MART_HEIGHT, CINNABAR_MART_WIDTH ; dimensions (y, x) - dw CinnabarMart_Blocks ; blocks - dw CinnabarMart_TextPointers ; texts - dw CinnabarMart_Script ; scripts - db 0 ; connections - dw CinnabarMart_Object ; objects diff --git a/data/mapHeaders/CinnabarPokecenter.asm b/data/mapHeaders/CinnabarPokecenter.asm deleted file mode 100755 index 9c54b9b90..000000000 --- a/data/mapHeaders/CinnabarPokecenter.asm +++ /dev/null @@ -1,8 +0,0 @@ -CinnabarPokecenter_h: - db POKECENTER ; tileset - db CINNABAR_POKECENTER_HEIGHT, CINNABAR_POKECENTER_WIDTH ; dimensions (y, x) - dw CinnabarPokecenter_Blocks ; blocks - dw CinnabarPokecenter_TextPointers ; texts - dw CinnabarPokecenter_Script ; scripts - db 0 ; connections - dw CinnabarPokecenter_Object ; objects diff --git a/data/mapHeaders/Colosseum.asm b/data/mapHeaders/Colosseum.asm deleted file mode 100755 index 9b106204e..000000000 --- a/data/mapHeaders/Colosseum.asm +++ /dev/null @@ -1,8 +0,0 @@ -Colosseum_h: - db CLUB ; tileset - db COLOSSEUM_HEIGHT, COLOSSEUM_WIDTH ; dimensions (y, x) - dw Colosseum_Blocks ; blocks - dw Colosseum_TextPointers ; texts - dw Colosseum_Script ; scripts - db 0 ; connections - dw Colosseum_Object ; objects diff --git a/data/mapHeaders/CopycatsHouse1F.asm b/data/mapHeaders/CopycatsHouse1F.asm deleted file mode 100755 index f3cfc2618..000000000 --- a/data/mapHeaders/CopycatsHouse1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -CopycatsHouse1F_h: - db REDS_HOUSE_1 ; tileset - db COPYCATS_HOUSE_1F_HEIGHT, COPYCATS_HOUSE_1F_WIDTH ; dimensions (y, x) - dw CopycatsHouse1F_Blocks ; blocks - dw CopycatsHouse1F_TextPointers ; texts - dw CopycatsHouse1F_Script ; scripts - db 0 ; connections - dw CopycatsHouse1F_Object ; objects diff --git a/data/mapHeaders/CopycatsHouse2F.asm b/data/mapHeaders/CopycatsHouse2F.asm deleted file mode 100755 index 453ba4559..000000000 --- a/data/mapHeaders/CopycatsHouse2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -CopycatsHouse2F_h: - db REDS_HOUSE_2 ; tileset - db COPYCATS_HOUSE_2F_HEIGHT, COPYCATS_HOUSE_2F_WIDTH ; dimensions (y, x) - dw CopycatsHouse2F_Blocks ; blocks - dw CopycatsHouse2F_TextPointers ; texts - dw CopycatsHouse2F_Script ; scripts - db 0 ; connections - dw CopycatsHouse2F_Object ; objects diff --git a/data/mapHeaders/Daycare.asm b/data/mapHeaders/Daycare.asm deleted file mode 100755 index 2fb7a7714..000000000 --- a/data/mapHeaders/Daycare.asm +++ /dev/null @@ -1,8 +0,0 @@ -Daycare_h: - db HOUSE ; tileset - db DAYCARE_HEIGHT, DAYCARE_WIDTH ; dimensions (y, x) - dw Daycare_Blocks ; blocks - dw Daycare_TextPointers ; texts - dw Daycare_Script ; scripts - db 0 ; connections - dw Daycare_Object ; objects diff --git a/data/mapHeaders/DiglettsCave.asm b/data/mapHeaders/DiglettsCave.asm deleted file mode 100755 index 096019dea..000000000 --- a/data/mapHeaders/DiglettsCave.asm +++ /dev/null @@ -1,8 +0,0 @@ -DiglettsCave_h: - db CAVERN ; tileset - db DIGLETTS_CAVE_HEIGHT, DIGLETTS_CAVE_WIDTH ; dimensions (y, x) - dw DiglettsCave_Blocks ; blocks - dw DiglettsCave_TextPointers ; texts - dw DiglettsCave_Script ; scripts - db 0 ; connections - dw DiglettsCave_Object ; objects diff --git a/data/mapHeaders/DiglettsCaveRoute11.asm b/data/mapHeaders/DiglettsCaveRoute11.asm deleted file mode 100755 index 363859b2f..000000000 --- a/data/mapHeaders/DiglettsCaveRoute11.asm +++ /dev/null @@ -1,8 +0,0 @@ -DiglettsCaveRoute11_h: - db CAVERN ; tileset - db DIGLETTS_CAVE_ROUTE_11_HEIGHT, DIGLETTS_CAVE_ROUTE_11_WIDTH ; dimensions (y, x) - dw DiglettsCaveRoute11_Blocks ; blocks - dw DiglettsCaveRoute11_TextPointers ; texts - dw DiglettsCaveRoute11_Script ; scripts - db 0 ; connections - dw DiglettsCaveRoute11_Object ; objects diff --git a/data/mapHeaders/DiglettsCaveRoute2.asm b/data/mapHeaders/DiglettsCaveRoute2.asm deleted file mode 100755 index c977415b0..000000000 --- a/data/mapHeaders/DiglettsCaveRoute2.asm +++ /dev/null @@ -1,8 +0,0 @@ -DiglettsCaveRoute2_h: - db CAVERN ; tileset - db DIGLETTS_CAVE_ROUTE_2_HEIGHT, DIGLETTS_CAVE_ROUTE_2_WIDTH ; dimensions (y, x) - dw DiglettsCaveRoute2_Blocks ; blocks - dw DiglettsCaveRoute2_TextPointers ; texts - dw DiglettsCaveRoute2_Script ; scripts - db 0 ; connections - dw DiglettsCaveRoute2_Object ; objects diff --git a/data/mapHeaders/FightingDojo.asm b/data/mapHeaders/FightingDojo.asm deleted file mode 100755 index 5c802843c..000000000 --- a/data/mapHeaders/FightingDojo.asm +++ /dev/null @@ -1,8 +0,0 @@ -FightingDojo_h: - db DOJO ; tileset - db FIGHTING_DOJO_HEIGHT, FIGHTING_DOJO_WIDTH ; dimensions (y, x) - dw FightingDojo_Blocks ; blocks - dw FightingDojo_TextPointers ; texts - dw FightingDojo_Script ; scripts - db 0 ; connections - dw FightingDojo_Object ; objects diff --git a/data/mapHeaders/FuchsiaBillsGrandpasHouse.asm b/data/mapHeaders/FuchsiaBillsGrandpasHouse.asm deleted file mode 100755 index bc4fe8e6a..000000000 --- a/data/mapHeaders/FuchsiaBillsGrandpasHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -FuchsiaBillsGrandpasHouse_h: - db HOUSE ; tileset - db FUCHSIA_BILLS_GRANDPAS_HOUSE_HEIGHT, FUCHSIA_BILLS_GRANDPAS_HOUSE_WIDTH ; dimensions (y, x) - dw FuchsiaBillsGrandpasHouse_Blocks ; blocks - dw FuchsiaBillsGrandpasHouse_TextPointers ; texts - dw FuchsiaBillsGrandpasHouse_Script ; scripts - db 0 ; connections - dw FuchsiaBillsGrandpasHouse_Object ; objects diff --git a/data/mapHeaders/FuchsiaCity.asm b/data/mapHeaders/FuchsiaCity.asm deleted file mode 100755 index 87398877f..000000000 --- a/data/mapHeaders/FuchsiaCity.asm +++ /dev/null @@ -1,11 +0,0 @@ -FuchsiaCity_h: - db OVERWORLD ; tileset - db FUCHSIA_CITY_HEIGHT, FUCHSIA_CITY_WIDTH ; dimensions (y, x) - dw FuchsiaCity_Blocks ; blocks - dw FuchsiaCity_TextPointers ; texts - dw FuchsiaCity_Script ; scripts - db SOUTH | WEST | EAST ; connections - SOUTH_MAP_CONNECTION FUCHSIA_CITY, ROUTE_19, 5, 0, Route19_Blocks - WEST_MAP_CONNECTION FUCHSIA_CITY, ROUTE_18, 4, 0, Route18_Blocks - EAST_MAP_CONNECTION FUCHSIA_CITY, ROUTE_15, 4, 0, Route15_Blocks - dw FuchsiaCity_Object ; objects diff --git a/data/mapHeaders/FuchsiaGoodRodHouse.asm b/data/mapHeaders/FuchsiaGoodRodHouse.asm deleted file mode 100755 index 4871970ed..000000000 --- a/data/mapHeaders/FuchsiaGoodRodHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -FuchsiaGoodRodHouse_h: - db SHIP ; tileset - db FUCHSIA_GOOD_ROD_HOUSE_HEIGHT, FUCHSIA_GOOD_ROD_HOUSE_WIDTH ; dimensions (y, x) - dw FuchsiaGoodRodHouse_Blocks ; blocks - dw FuchsiaGoodRodHouse_TextPointers ; texts - dw FuchsiaGoodRodHouse_Script ; scripts - db 0 ; connections - dw FuchsiaGoodRodHouse_Object ; objects diff --git a/data/mapHeaders/FuchsiaGym.asm b/data/mapHeaders/FuchsiaGym.asm deleted file mode 100755 index 71ef59602..000000000 --- a/data/mapHeaders/FuchsiaGym.asm +++ /dev/null @@ -1,8 +0,0 @@ -FuchsiaGym_h: - db GYM ; tileset - db FUCHSIA_GYM_HEIGHT, FUCHSIA_GYM_WIDTH ; dimensions (y, x) - dw FuchsiaGym_Blocks ; blocks - dw FuchsiaGym_TextPointers ; texts - dw FuchsiaGym_Script ; scripts - db 0 ; connections - dw FuchsiaGym_Object ; objects diff --git a/data/mapHeaders/FuchsiaMart.asm b/data/mapHeaders/FuchsiaMart.asm deleted file mode 100755 index 7c1c34d2f..000000000 --- a/data/mapHeaders/FuchsiaMart.asm +++ /dev/null @@ -1,8 +0,0 @@ -FuchsiaMart_h: - db MART ; tileset - db FUCHSIA_MART_HEIGHT, FUCHSIA_MART_WIDTH ; dimensions (y, x) - dw FuchsiaMart_Blocks ; blocks - dw FuchsiaMart_TextPointers ; texts - dw FuchsiaMart_Script ; scripts - db 0 ; connections - dw FuchsiaMart_Object ; objects diff --git a/data/mapHeaders/FuchsiaMeetingRoom.asm b/data/mapHeaders/FuchsiaMeetingRoom.asm deleted file mode 100755 index 8bc0cdbf1..000000000 --- a/data/mapHeaders/FuchsiaMeetingRoom.asm +++ /dev/null @@ -1,8 +0,0 @@ -FuchsiaMeetingRoom_h: - db LAB ; tileset - db FUCHSIA_MEETING_ROOM_HEIGHT, FUCHSIA_MEETING_ROOM_WIDTH ; dimensions (y, x) - dw FuchsiaMeetingRoom_Blocks ; blocks - dw FuchsiaMeetingRoom_TextPointers ; texts - dw FuchsiaMeetingRoom_Script ; scripts - db 0 ; connections - dw FuchsiaMeetingRoom_Object ; objects diff --git a/data/mapHeaders/FuchsiaPokecenter.asm b/data/mapHeaders/FuchsiaPokecenter.asm deleted file mode 100755 index bf654ea6e..000000000 --- a/data/mapHeaders/FuchsiaPokecenter.asm +++ /dev/null @@ -1,8 +0,0 @@ -FuchsiaPokecenter_h: - db POKECENTER ; tileset - db FUCHSIA_POKECENTER_HEIGHT, FUCHSIA_POKECENTER_WIDTH ; dimensions (y, x) - dw FuchsiaPokecenter_Blocks ; blocks - dw FuchsiaPokecenter_TextPointers ; texts - dw FuchsiaPokecenter_Script ; scripts - db 0 ; connections - dw FuchsiaPokecenter_Object ; objects diff --git a/data/mapHeaders/GameCorner.asm b/data/mapHeaders/GameCorner.asm deleted file mode 100755 index c8b697244..000000000 --- a/data/mapHeaders/GameCorner.asm +++ /dev/null @@ -1,8 +0,0 @@ -GameCorner_h: - db LOBBY ; tileset - db GAME_CORNER_HEIGHT, GAME_CORNER_WIDTH ; dimensions (y, x) - dw GameCorner_Blocks ; blocks - dw GameCorner_TextPointers ; texts - dw GameCorner_Script ; scripts - db 0 ; connections - dw GameCorner_Object ; objects diff --git a/data/mapHeaders/GameCornerPrizeRoom.asm b/data/mapHeaders/GameCornerPrizeRoom.asm deleted file mode 100755 index e43d2ec7e..000000000 --- a/data/mapHeaders/GameCornerPrizeRoom.asm +++ /dev/null @@ -1,8 +0,0 @@ -GameCornerPrizeRoom_h: - db LOBBY ; tileset - db GAME_CORNER_PRIZE_ROOM_HEIGHT, GAME_CORNER_PRIZE_ROOM_WIDTH ; dimensions (y, x) - dw GameCornerPrizeRoom_Blocks ; blocks - dw GameCornerPrizeRoom_TextPointers ; texts - dw GameCornerPrizeRoom_Script ; scripts - db 0 ; connections - dw GameCornerPrizeRoom_Object ; objects diff --git a/data/mapHeaders/HallOfFame.asm b/data/mapHeaders/HallOfFame.asm deleted file mode 100755 index e7f7a982e..000000000 --- a/data/mapHeaders/HallOfFame.asm +++ /dev/null @@ -1,8 +0,0 @@ -HallOfFame_h: - db GYM ; tileset - db HALL_OF_FAME_HEIGHT, HALL_OF_FAME_WIDTH ; dimensions (y, x) - dw HallOfFame_Blocks ; blocks - dw HallOfFame_TextPointers ; texts - dw HallOfFame_Script ; scripts - db 0 ; connections - dw HallOfFame_Object ; objects diff --git a/data/mapHeaders/IndigoPlateau.asm b/data/mapHeaders/IndigoPlateau.asm deleted file mode 100755 index ee8b2f0ca..000000000 --- a/data/mapHeaders/IndigoPlateau.asm +++ /dev/null @@ -1,9 +0,0 @@ -IndigoPlateau_h: - db PLATEAU ; tileset - db INDIGO_PLATEAU_HEIGHT, INDIGO_PLATEAU_WIDTH ; dimensions (y, x) - dw IndigoPlateau_Blocks ; blocks - dw IndigoPlateau_TextPointers ; texts - dw IndigoPlateau_Script ; scripts - db SOUTH ; connections - SOUTH_MAP_CONNECTION INDIGO_PLATEAU, ROUTE_23, 0, 0, Route23_Blocks - dw IndigoPlateau_Object ; objects diff --git a/data/mapHeaders/IndigoPlateauLobby.asm b/data/mapHeaders/IndigoPlateauLobby.asm deleted file mode 100755 index f099c87db..000000000 --- a/data/mapHeaders/IndigoPlateauLobby.asm +++ /dev/null @@ -1,8 +0,0 @@ -IndigoPlateauLobby_h: - db MART ; tileset - db INDIGO_PLATEAU_LOBBY_HEIGHT, INDIGO_PLATEAU_LOBBY_WIDTH ; dimensions (y, x) - dw IndigoPlateauLobby_Blocks ; blocks - dw IndigoPlateauLobby_TextPointers ; texts - dw IndigoPlateauLobby_Script ; scripts - db 0 ; connections - dw IndigoPlateauLobby_Object ; objects diff --git a/data/mapHeaders/LancesRoom.asm b/data/mapHeaders/LancesRoom.asm deleted file mode 100755 index a9cea4b65..000000000 --- a/data/mapHeaders/LancesRoom.asm +++ /dev/null @@ -1,8 +0,0 @@ -LancesRoom_h: - db DOJO ; tileset - db LANCES_ROOM_HEIGHT, LANCES_ROOM_WIDTH ; dimensions (y, x) - dw LancesRoom_Blocks ; blocks - dw LancesRoom_TextPointers ; texts - dw LancesRoom_Script ; scripts - db 0 ; connections - dw LancesRoom_Object ; objects diff --git a/data/mapHeaders/LavenderCuboneHouse.asm b/data/mapHeaders/LavenderCuboneHouse.asm deleted file mode 100755 index 06e9cb409..000000000 --- a/data/mapHeaders/LavenderCuboneHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -LavenderCuboneHouse_h: - db HOUSE ; tileset - db LAVENDER_CUBONE_HOUSE_HEIGHT, LAVENDER_CUBONE_HOUSE_WIDTH ; dimensions (y, x) - dw LavenderCuboneHouse_Blocks ; blocks - dw LavenderCuboneHouse_TextPointers ; texts - dw LavenderCuboneHouse_Script ; scripts - db 0 ; connections - dw LavenderCuboneHouse_Object ; objects diff --git a/data/mapHeaders/LavenderMart.asm b/data/mapHeaders/LavenderMart.asm deleted file mode 100755 index c6869d3c2..000000000 --- a/data/mapHeaders/LavenderMart.asm +++ /dev/null @@ -1,8 +0,0 @@ -LavenderMart_h: - db MART ; tileset - db LAVENDER_MART_HEIGHT, LAVENDER_MART_WIDTH ; dimensions (y, x) - dw LavenderMart_Blocks ; blocks - dw LavenderMart_TextPointers ; texts - dw LavenderMart_Script ; scripts - db 0 ; connections - dw LavenderMart_Object ; objects diff --git a/data/mapHeaders/LavenderPokecenter.asm b/data/mapHeaders/LavenderPokecenter.asm deleted file mode 100755 index 820e19cdf..000000000 --- a/data/mapHeaders/LavenderPokecenter.asm +++ /dev/null @@ -1,8 +0,0 @@ -LavenderPokecenter_h: - db POKECENTER ; tileset - db LAVENDER_POKECENTER_HEIGHT, LAVENDER_POKECENTER_WIDTH ; dimensions (y, x) - dw LavenderPokecenter_Blocks ; blocks - dw LavenderPokecenter_TextPointers ; texts - dw LavenderPokecenter_Script ; scripts - db 0 ; connections - dw LavenderPokecenter_Object ; objects diff --git a/data/mapHeaders/LavenderTown.asm b/data/mapHeaders/LavenderTown.asm deleted file mode 100755 index 99c9515d5..000000000 --- a/data/mapHeaders/LavenderTown.asm +++ /dev/null @@ -1,11 +0,0 @@ -LavenderTown_h: - db OVERWORLD ; tileset - db LAVENDER_TOWN_HEIGHT, LAVENDER_TOWN_WIDTH ; dimensions (y, x) - dw LavenderTown_Blocks ; blocks - dw LavenderTown_TextPointers ; texts - dw LavenderTown_Script ; scripts - db NORTH | SOUTH | WEST ; connections - NORTH_MAP_CONNECTION LAVENDER_TOWN, ROUTE_10, 0, 0, Route10_Blocks - SOUTH_MAP_CONNECTION LAVENDER_TOWN, ROUTE_12, 0, 0, Route12_Blocks, 1 - WEST_MAP_CONNECTION LAVENDER_TOWN, ROUTE_8, 0, 0, Route8_Blocks - dw LavenderTown_Object ; objects diff --git a/data/mapHeaders/LoreleisRoom.asm b/data/mapHeaders/LoreleisRoom.asm deleted file mode 100755 index 216b66212..000000000 --- a/data/mapHeaders/LoreleisRoom.asm +++ /dev/null @@ -1,8 +0,0 @@ -LoreleisRoom_h: - db GYM ; tileset - db LORELEIS_ROOM_HEIGHT, LORELEIS_ROOM_WIDTH ; dimensions (y, x) - dw LoreleisRoom_Blocks ; blocks - dw LoreleisRoom_TextPointers ; texts - dw LoreleisRoom_Script ; scripts - db 0 ; connections - dw LoreleisRoom_Object ; objects diff --git a/data/mapHeaders/MrFujisHouse.asm b/data/mapHeaders/MrFujisHouse.asm deleted file mode 100755 index 4ae9c5b71..000000000 --- a/data/mapHeaders/MrFujisHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -MrFujisHouse_h: - db HOUSE ; tileset - db MR_FUJIS_HOUSE_HEIGHT, MR_FUJIS_HOUSE_WIDTH ; dimensions (y, x) - dw MrFujisHouse_Blocks ; blocks - dw MrFujisHouse_TextPointers ; texts - dw MrFujisHouse_Script ; scripts - db 0 ; connections - dw MrFujisHouse_Object ; objects diff --git a/data/mapHeaders/MrPsychicsHouse.asm b/data/mapHeaders/MrPsychicsHouse.asm deleted file mode 100755 index 5e4ce91b0..000000000 --- a/data/mapHeaders/MrPsychicsHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -MrPsychicsHouse_h: - db HOUSE ; tileset - db MR_PSYCHICS_HOUSE_HEIGHT, MR_PSYCHICS_HOUSE_WIDTH ; dimensions (y, x) - dw MrPsychicsHouse_Blocks ; blocks - dw MrPsychicsHouse_TextPointers ; texts - dw MrPsychicsHouse_Script ; scripts - db 0 ; connections - dw MrPsychicsHouse_Object ; objects diff --git a/data/mapHeaders/MtMoon1F.asm b/data/mapHeaders/MtMoon1F.asm deleted file mode 100755 index 29ce5d6ba..000000000 --- a/data/mapHeaders/MtMoon1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -MtMoon1F_h: - db CAVERN ; tileset - db MT_MOON_1F_HEIGHT, MT_MOON_1F_WIDTH ; dimensions (y, x) - dw MtMoon1F_Blocks ; blocks - dw MtMoon1F_TextPointers ; texts - dw MtMoon1F_Script ; scripts - db 0 ; connections - dw MtMoon1F_Object ; objects diff --git a/data/mapHeaders/MtMoonB1F.asm b/data/mapHeaders/MtMoonB1F.asm deleted file mode 100755 index 7ebc3dab5..000000000 --- a/data/mapHeaders/MtMoonB1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -MtMoonB1F_h: - db CAVERN ; tileset - db MT_MOON_B1F_HEIGHT, MT_MOON_B1F_WIDTH ; dimensions (y, x) - dw MtMoonB1F_Blocks ; blocks - dw MtMoonB1F_TextPointers ; texts - dw MtMoonB1F_Script ; scripts - db 0 ; connections - dw MtMoonB1F_Object ; objects diff --git a/data/mapHeaders/MtMoonB2F.asm b/data/mapHeaders/MtMoonB2F.asm deleted file mode 100755 index 2ec862473..000000000 --- a/data/mapHeaders/MtMoonB2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -MtMoonB2F_h: - db CAVERN ; tileset - db MT_MOON_B2F_HEIGHT, MT_MOON_B2F_WIDTH ; dimensions (y, x) - dw MtMoonB2F_Blocks ; blocks - dw MtMoonB2F_TextPointers ; texts - dw MtMoonB2F_Script ; scripts - db 0 ; connections - dw MtMoonB2F_Object ; objects diff --git a/data/mapHeaders/MtMoonPokecenter.asm b/data/mapHeaders/MtMoonPokecenter.asm deleted file mode 100755 index c3c014ff2..000000000 --- a/data/mapHeaders/MtMoonPokecenter.asm +++ /dev/null @@ -1,8 +0,0 @@ -MtMoonPokecenter_h: - db POKECENTER ; tileset - db MT_MOON_POKECENTER_HEIGHT, MT_MOON_POKECENTER_WIDTH ; dimensions (y, x) - dw MtMoonPokecenter_Blocks ; blocks - dw MtMoonPokecenter_TextPointers ; texts - dw MtMoonPokecenter_Script ; scripts - db 0 ; connections - dw MtMoonPokecenter_Object ; objects diff --git a/data/mapHeaders/Museum1F.asm b/data/mapHeaders/Museum1F.asm deleted file mode 100755 index 55625fc4d..000000000 --- a/data/mapHeaders/Museum1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -Museum1F_h: - db MUSEUM ; tileset - db MUSEUM_1F_HEIGHT, MUSEUM_1F_WIDTH ; dimensions (y, x) - dw Museum1F_Blocks ; blocks - dw Museum1F_TextPointers ; texts - dw Museum1F_Script ; scripts - db 0 ; connections - dw Museum1F_Object ; objects diff --git a/data/mapHeaders/Museum2F.asm b/data/mapHeaders/Museum2F.asm deleted file mode 100755 index b39e161d3..000000000 --- a/data/mapHeaders/Museum2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -Museum2F_h: - db MUSEUM ; tileset - db MUSEUM_2F_HEIGHT, MUSEUM_2F_WIDTH ; dimensions (y, x) - dw Museum2F_Blocks ; blocks - dw Museum2F_TextPointers ; texts - dw Museum2F_Script ; scripts - db 0 ; connections - dw Museum2F_Object ; objects diff --git a/data/mapHeaders/NameRatersHouse.asm b/data/mapHeaders/NameRatersHouse.asm deleted file mode 100755 index 7e3acee17..000000000 --- a/data/mapHeaders/NameRatersHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -NameRatersHouse_h: - db HOUSE ; tileset - db NAME_RATERS_HOUSE_HEIGHT, NAME_RATERS_HOUSE_WIDTH ; dimensions (y, x) - dw NameRatersHouse_Blocks ; blocks - dw NameRatersHouse_TextPointers ; texts - dw NameRatersHouse_Script ; scripts - db 0 ; connections - dw NameRatersHouse_Object ; objects diff --git a/data/mapHeaders/OaksLab.asm b/data/mapHeaders/OaksLab.asm deleted file mode 100755 index ffbcdd522..000000000 --- a/data/mapHeaders/OaksLab.asm +++ /dev/null @@ -1,8 +0,0 @@ -OaksLab_h: - db DOJO ; tileset - db OAKS_LAB_HEIGHT, OAKS_LAB_WIDTH ; dimensions (y, x) - dw OaksLab_Blocks ; blocks - dw OaksLab_TextPointers ; texts - dw OaksLab_Script ; scripts - db 0 ; connections - dw OaksLab_Object ; objects diff --git a/data/mapHeaders/PalletTown.asm b/data/mapHeaders/PalletTown.asm deleted file mode 100755 index eb8525ae4..000000000 --- a/data/mapHeaders/PalletTown.asm +++ /dev/null @@ -1,10 +0,0 @@ -PalletTown_h: - db OVERWORLD ; tileset - db PALLET_TOWN_HEIGHT, PALLET_TOWN_WIDTH ; dimensions (y, x) - dw PalletTown_Blocks ; blocks - dw PalletTown_TextPointers ; texts - dw PalletTown_Script ; scripts - db NORTH | SOUTH ; connections - NORTH_MAP_CONNECTION PALLET_TOWN, ROUTE_1, 0, 0, Route1_Blocks - SOUTH_MAP_CONNECTION PALLET_TOWN, ROUTE_21, 0, 0, Route21_Blocks, 1 - dw PalletTown_Object ; objects diff --git a/data/mapHeaders/PewterCity.asm b/data/mapHeaders/PewterCity.asm deleted file mode 100755 index 73610f869..000000000 --- a/data/mapHeaders/PewterCity.asm +++ /dev/null @@ -1,10 +0,0 @@ -PewterCity_h: - db OVERWORLD ; tileset - db PEWTER_CITY_HEIGHT, PEWTER_CITY_WIDTH ; dimensions (y, x) - dw PewterCity_Blocks ; blocks - dw PewterCity_TextPointers ; texts - dw PewterCity_Script ; scripts - db SOUTH | EAST ; connections - SOUTH_MAP_CONNECTION PEWTER_CITY, ROUTE_2, 5, 0, Route2_Blocks - EAST_MAP_CONNECTION PEWTER_CITY, ROUTE_3, 4, 0, Route3_Blocks - dw PewterCity_Object ; objects diff --git a/data/mapHeaders/PewterGym.asm b/data/mapHeaders/PewterGym.asm deleted file mode 100755 index bb9c2e847..000000000 --- a/data/mapHeaders/PewterGym.asm +++ /dev/null @@ -1,8 +0,0 @@ -PewterGym_h: - db GYM ; tileset - db PEWTER_GYM_HEIGHT, PEWTER_GYM_WIDTH ; dimensions (y, x) - dw PewterGym_Blocks ; blocks - dw PewterGym_TextPointers ; texts - dw PewterGym_Script ; scripts - db 0 ; connections - dw PewterGym_Object ; objects diff --git a/data/mapHeaders/PewterMart.asm b/data/mapHeaders/PewterMart.asm deleted file mode 100755 index dc8c5c780..000000000 --- a/data/mapHeaders/PewterMart.asm +++ /dev/null @@ -1,8 +0,0 @@ -PewterMart_h: - db MART ; tileset - db PEWTER_MART_HEIGHT, PEWTER_MART_WIDTH ; dimensions (y, x) - dw PewterMart_Blocks ; blocks - dw PewterMart_TextPointers ; texts - dw PewterMart_Script ; scripts - db 0 ; connections - dw PewterMart_Object ; objects diff --git a/data/mapHeaders/PewterNidoranHouse.asm b/data/mapHeaders/PewterNidoranHouse.asm deleted file mode 100755 index ffab8473a..000000000 --- a/data/mapHeaders/PewterNidoranHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -PewterNidoranHouse_h: - db HOUSE ; tileset - db PEWTER_NIDORAN_HOUSE_HEIGHT, PEWTER_NIDORAN_HOUSE_WIDTH ; dimensions (y, x) - dw PewterNidoranHouse_Blocks ; blocks - dw PewterNidoranHouse_TextPointers ; texts - dw PewterNidoranHouse_Script ; scripts - db 0 ; connections - dw PewterNidoranHouse_Object ; objects diff --git a/data/mapHeaders/PewterPokecenter.asm b/data/mapHeaders/PewterPokecenter.asm deleted file mode 100755 index 89adbb807..000000000 --- a/data/mapHeaders/PewterPokecenter.asm +++ /dev/null @@ -1,8 +0,0 @@ -PewterPokecenter_h: - db POKECENTER ; tileset - db PEWTER_POKECENTER_HEIGHT, PEWTER_POKECENTER_WIDTH ; dimensions (y, x) - dw PewterPokecenter_Blocks ; blocks - dw PewterPokecenter_TextPointers ; texts - dw PewterPokecenter_Script ; scripts - db 0 ; connections - dw PewterPokecenter_Object ; objects diff --git a/data/mapHeaders/PewterSpeechHouse.asm b/data/mapHeaders/PewterSpeechHouse.asm deleted file mode 100755 index 7750c8c7b..000000000 --- a/data/mapHeaders/PewterSpeechHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -PewterSpeechHouse_h: - db HOUSE ; tileset - db PEWTER_SPEECH_HOUSE_HEIGHT, PEWTER_SPEECH_HOUSE_WIDTH ; dimensions (y, x) - dw PewterSpeechHouse_Blocks ; blocks - dw PewterSpeechHouse_TextPointers ; texts - dw PewterSpeechHouse_Script ; scripts - db 0 ; connections - dw PewterSpeechHouse_Object ; objects diff --git a/data/mapHeaders/PokemonFanClub.asm b/data/mapHeaders/PokemonFanClub.asm deleted file mode 100755 index 18ebb9236..000000000 --- a/data/mapHeaders/PokemonFanClub.asm +++ /dev/null @@ -1,8 +0,0 @@ -PokemonFanClub_h: - db INTERIOR ; tileset - db POKEMON_FAN_CLUB_HEIGHT, POKEMON_FAN_CLUB_WIDTH ; dimensions (y, x) - dw PokemonFanClub_Blocks ; blocks - dw PokemonFanClub_TextPointers ; texts - dw PokemonFanClub_Script ; scripts - db 0 ; connections - dw PokemonFanClub_Object ; objects diff --git a/data/mapHeaders/PokemonMansion1F.asm b/data/mapHeaders/PokemonMansion1F.asm deleted file mode 100755 index 357b0cbbc..000000000 --- a/data/mapHeaders/PokemonMansion1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -PokemonMansion1F_h: - db FACILITY ; tileset - db POKEMON_MANSION_1F_HEIGHT, POKEMON_MANSION_1F_WIDTH ; dimensions (y, x) - dw PokemonMansion1F_Blocks ; blocks - dw PokemonMansion1F_TextPointers ; texts - dw PokemonMansion1F_Script ; scripts - db 0 ; connections - dw PokemonMansion1F_Object ; objects diff --git a/data/mapHeaders/PokemonMansion2F.asm b/data/mapHeaders/PokemonMansion2F.asm deleted file mode 100755 index 71c0e3bb0..000000000 --- a/data/mapHeaders/PokemonMansion2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -PokemonMansion2F_h: - db FACILITY ; tileset - db POKEMON_MANSION_2F_HEIGHT, POKEMON_MANSION_2F_WIDTH ; dimensions (y, x) - dw PokemonMansion2F_Blocks ; blocks - dw PokemonMansion2F_TextPointers ; texts - dw PokemonMansion2F_Script ; scripts - db 0 ; connections - dw PokemonMansion2F_Object ; objects diff --git a/data/mapHeaders/PokemonMansion3F.asm b/data/mapHeaders/PokemonMansion3F.asm deleted file mode 100755 index fe4076f9c..000000000 --- a/data/mapHeaders/PokemonMansion3F.asm +++ /dev/null @@ -1,8 +0,0 @@ -PokemonMansion3F_h: - db FACILITY ; tileset - db POKEMON_MANSION_3F_HEIGHT, POKEMON_MANSION_3F_WIDTH ; dimensions (y, x) - dw PokemonMansion3F_Blocks ; blocks - dw PokemonMansion3F_TextPointers ; texts - dw PokemonMansion3F_Script ; scripts - db 0 ; connections - dw PokemonMansion3F_Object ; objects diff --git a/data/mapHeaders/PokemonMansionB1F.asm b/data/mapHeaders/PokemonMansionB1F.asm deleted file mode 100755 index ccf892b23..000000000 --- a/data/mapHeaders/PokemonMansionB1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -PokemonMansionB1F_h: - db FACILITY ; tileset - db POKEMON_MANSION_B1F_HEIGHT, POKEMON_MANSION_B1F_WIDTH ; dimensions (y, x) - dw PokemonMansionB1F_Blocks ; blocks - dw PokemonMansionB1F_TextPointers ; texts - dw PokemonMansionB1F_Script ; scripts - db 0 ; connections - dw PokemonMansionB1F_Object ; objects diff --git a/data/mapHeaders/PokemonTower1F.asm b/data/mapHeaders/PokemonTower1F.asm deleted file mode 100755 index 561274bb2..000000000 --- a/data/mapHeaders/PokemonTower1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -PokemonTower1F_h: - db CEMETERY ; tileset - db POKEMON_TOWER_1F_HEIGHT, POKEMON_TOWER_1F_WIDTH ; dimensions (y, x) - dw PokemonTower1F_Blocks ; blocks - dw PokemonTower1F_TextPointers ; texts - dw PokemonTower1F_Script ; scripts - db 0 ; connections - dw PokemonTower1F_Object ; objects diff --git a/data/mapHeaders/PokemonTower2F.asm b/data/mapHeaders/PokemonTower2F.asm deleted file mode 100755 index 41e3271e9..000000000 --- a/data/mapHeaders/PokemonTower2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -PokemonTower2F_h: - db CEMETERY ; tileset - db POKEMON_TOWER_2F_HEIGHT, POKEMON_TOWER_2F_WIDTH ; dimensions (y, x) - dw PokemonTower2F_Blocks ; blocks - dw PokemonTower2F_TextPointers ; texts - dw PokemonTower2F_Script ; scripts - db 0 ; connections - dw PokemonTower2F_Object ; objects diff --git a/data/mapHeaders/PokemonTower3F.asm b/data/mapHeaders/PokemonTower3F.asm deleted file mode 100755 index 932c4a205..000000000 --- a/data/mapHeaders/PokemonTower3F.asm +++ /dev/null @@ -1,8 +0,0 @@ -PokemonTower3F_h: - db CEMETERY ; tileset - db POKEMON_TOWER_3F_HEIGHT, POKEMON_TOWER_3F_WIDTH ; dimensions (y, x) - dw PokemonTower3F_Blocks ; blocks - dw PokemonTower3F_TextPointers ; texts - dw PokemonTower3F_Script ; scripts - db 0 ; connections - dw PokemonTower3F_Object ; objects diff --git a/data/mapHeaders/PokemonTower4F.asm b/data/mapHeaders/PokemonTower4F.asm deleted file mode 100755 index b3027cb05..000000000 --- a/data/mapHeaders/PokemonTower4F.asm +++ /dev/null @@ -1,8 +0,0 @@ -PokemonTower4F_h: - db CEMETERY ; tileset - db POKEMON_TOWER_4F_HEIGHT, POKEMON_TOWER_4F_WIDTH ; dimensions (y, x) - dw PokemonTower4F_Blocks ; blocks - dw PokemonTower4F_TextPointers ; texts - dw PokemonTower4F_Script ; scripts - db 0 ; connections - dw PokemonTower4F_Object ; objects diff --git a/data/mapHeaders/PokemonTower5F.asm b/data/mapHeaders/PokemonTower5F.asm deleted file mode 100755 index 9452c5532..000000000 --- a/data/mapHeaders/PokemonTower5F.asm +++ /dev/null @@ -1,8 +0,0 @@ -PokemonTower5F_h: - db CEMETERY ; tileset - db POKEMON_TOWER_5F_HEIGHT, POKEMON_TOWER_5F_WIDTH ; dimensions (y, x) - dw PokemonTower5F_Blocks ; blocks - dw PokemonTower5F_TextPointers ; texts - dw PokemonTower5F_Script ; scripts - db 0 ; connections - dw PokemonTower5F_Object ; objects diff --git a/data/mapHeaders/PokemonTower6F.asm b/data/mapHeaders/PokemonTower6F.asm deleted file mode 100755 index 336c8f668..000000000 --- a/data/mapHeaders/PokemonTower6F.asm +++ /dev/null @@ -1,8 +0,0 @@ -PokemonTower6F_h: - db CEMETERY ; tileset - db POKEMON_TOWER_6F_HEIGHT, POKEMON_TOWER_6F_WIDTH ; dimensions (y, x) - dw PokemonTower6F_Blocks ; blocks - dw PokemonTower6F_TextPointers ; texts - dw PokemonTower6F_Script ; scripts - db 0 ; connections - dw PokemonTower6F_Object ; objects diff --git a/data/mapHeaders/PokemonTower7F.asm b/data/mapHeaders/PokemonTower7F.asm deleted file mode 100755 index da10fa53a..000000000 --- a/data/mapHeaders/PokemonTower7F.asm +++ /dev/null @@ -1,8 +0,0 @@ -PokemonTower7F_h: - db CEMETERY ; tileset - db POKEMON_TOWER_7F_HEIGHT, POKEMON_TOWER_7F_WIDTH ; dimensions (y, x) - dw PokemonTower7F_Blocks ; blocks - dw PokemonTower7F_TextPointers ; texts - dw PokemonTower7F_Script ; scripts - db 0 ; connections - dw PokemonTower7F_Object ; objects diff --git a/data/mapHeaders/PowerPlant.asm b/data/mapHeaders/PowerPlant.asm deleted file mode 100755 index 91f03d63c..000000000 --- a/data/mapHeaders/PowerPlant.asm +++ /dev/null @@ -1,8 +0,0 @@ -PowerPlant_h: - db FACILITY ; tileset - db POWER_PLANT_HEIGHT, POWER_PLANT_WIDTH ; dimensions (y, x) - dw PowerPlant_Blocks ; blocks - dw PowerPlant_TextPointers ; texts - dw PowerPlant_Script ; scripts - db 0 ; connections - dw PowerPlant_Object ; objects diff --git a/data/mapHeaders/RedsHouse1F.asm b/data/mapHeaders/RedsHouse1F.asm deleted file mode 100755 index c9acc489d..000000000 --- a/data/mapHeaders/RedsHouse1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -RedsHouse1F_h: - db REDS_HOUSE_1 ; tileset - db REDS_HOUSE_1F_HEIGHT, REDS_HOUSE_1F_WIDTH ; dimensions (y, x) - dw RedsHouse1F_Blocks ; blocks - dw RedsHouse1F_TextPointers ; texts - dw RedsHouse1F_Script ; scripts - db 0 ; connections - dw RedsHouse1F_Object ; objects diff --git a/data/mapHeaders/RedsHouse2F.asm b/data/mapHeaders/RedsHouse2F.asm deleted file mode 100755 index 422154662..000000000 --- a/data/mapHeaders/RedsHouse2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -RedsHouse2F_h: - db REDS_HOUSE_2 ; tileset - db REDS_HOUSE_2F_HEIGHT, REDS_HOUSE_2F_WIDTH ; dimensions (y, x) - dw RedsHouse2F_Blocks ; blocks - dw RedsHouse2F_TextPointers ; texts - dw RedsHouse2F_Script ; scripts - db $00 ; connections - dw RedsHouse2F_Object ; objects diff --git a/data/mapHeaders/RockTunnel1F.asm b/data/mapHeaders/RockTunnel1F.asm deleted file mode 100755 index dd552ac92..000000000 --- a/data/mapHeaders/RockTunnel1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -RockTunnel1F_h: - db CAVERN ; tileset - db ROCK_TUNNEL_1F_HEIGHT, ROCK_TUNNEL_1F_WIDTH ; dimensions (y, x) - dw RockTunnel1F_Blocks ; blocks - dw RockTunnel1F_TextPointers ; texts - dw RockTunnel1F_Script ; scripts - db 0 ; connections - dw RockTunnel1F_Object ; objects diff --git a/data/mapHeaders/RockTunnelB1F.asm b/data/mapHeaders/RockTunnelB1F.asm deleted file mode 100755 index 4e765f204..000000000 --- a/data/mapHeaders/RockTunnelB1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -RockTunnelB1F_h: - db CAVERN ; tileset - db ROCK_TUNNEL_B1F_HEIGHT, ROCK_TUNNEL_B1F_WIDTH ; dimensions (y, x) - dw RockTunnelB1F_Blocks ; blocks - dw RockTunnelB1F_TextPointers ; texts - dw RockTunnelB1F_Script ; scripts - db 0 ; connections - dw RockTunnelB1F_Object ; objects diff --git a/data/mapHeaders/RockTunnelPokecenter.asm b/data/mapHeaders/RockTunnelPokecenter.asm deleted file mode 100755 index ac29f1cf2..000000000 --- a/data/mapHeaders/RockTunnelPokecenter.asm +++ /dev/null @@ -1,8 +0,0 @@ -RockTunnelPokecenter_h: - db POKECENTER ; tileset - db ROCK_TUNNEL_POKECENTER_HEIGHT, ROCK_TUNNEL_POKECENTER_WIDTH ; dimensions (y, x) - dw RockTunnelPokecenter_Blocks ; blocks - dw RockTunnelPokecenter_TextPointers ; texts - dw RockTunnelPokecenter_Script ; scripts - db 0 ; connections - dw RockTunnelPokecenter_Object ; objects diff --git a/data/mapHeaders/RocketHideoutB1F.asm b/data/mapHeaders/RocketHideoutB1F.asm deleted file mode 100755 index 3c842f1ec..000000000 --- a/data/mapHeaders/RocketHideoutB1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -RocketHideoutB1F_h: - db FACILITY ; tileset - db ROCKET_HIDEOUT_B1F_HEIGHT, ROCKET_HIDEOUT_B1F_WIDTH ; dimensions (y, x) - dw RocketHideoutB1F_Blocks ; blocks - dw RocketHideoutB1F_TextPointers ; texts - dw RocketHideoutB1F_Script ; scripts - db 0 ; connections - dw RocketHideoutB1F_Object ; objects diff --git a/data/mapHeaders/RocketHideoutB2F.asm b/data/mapHeaders/RocketHideoutB2F.asm deleted file mode 100755 index b570c2a60..000000000 --- a/data/mapHeaders/RocketHideoutB2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -RocketHideoutB2F_h: - db FACILITY ; tileset - db ROCKET_HIDEOUT_B2F_HEIGHT, ROCKET_HIDEOUT_B2F_WIDTH ; dimensions (y, x) - dw RocketHideoutB2F_Blocks ; blocks - dw RocketHideoutB2F_TextPointers ; texts - dw RocketHideoutB2F_Script ; scripts - db 0 ; connections - dw RocketHideoutB2F_Object ; objects diff --git a/data/mapHeaders/RocketHideoutB3F.asm b/data/mapHeaders/RocketHideoutB3F.asm deleted file mode 100755 index 7eab257ec..000000000 --- a/data/mapHeaders/RocketHideoutB3F.asm +++ /dev/null @@ -1,8 +0,0 @@ -RocketHideoutB3F_h: - db FACILITY ; tileset - db ROCKET_HIDEOUT_B3F_HEIGHT, ROCKET_HIDEOUT_B3F_WIDTH ; dimensions (y, x) - dw RocketHideoutB3F_Blocks ; blocks - dw RocketHideoutB3F_TextPointers ; texts - dw RocketHideoutB3F_Script ; scripts - db 0 ; connections - dw RocketHideoutB3F_Object ; objects diff --git a/data/mapHeaders/RocketHideoutB4F.asm b/data/mapHeaders/RocketHideoutB4F.asm deleted file mode 100755 index 57797c56e..000000000 --- a/data/mapHeaders/RocketHideoutB4F.asm +++ /dev/null @@ -1,8 +0,0 @@ -RocketHideoutB4F_h: - db FACILITY ; tileset - db ROCKET_HIDEOUT_B4F_HEIGHT, ROCKET_HIDEOUT_B4F_WIDTH ; dimensions (y, x) - dw RocketHideoutB4F_Blocks ; blocks - dw RocketHideoutB4F_TextPointers ; texts - dw RocketHideoutB4F_Script ; scripts - db 0 ; connections - dw RocketHideoutB4F_Object ; objects diff --git a/data/mapHeaders/RocketHideoutElevator.asm b/data/mapHeaders/RocketHideoutElevator.asm deleted file mode 100755 index 742d00382..000000000 --- a/data/mapHeaders/RocketHideoutElevator.asm +++ /dev/null @@ -1,8 +0,0 @@ -RocketHideoutElevator_h: - db LOBBY ; tileset - db ROCKET_HIDEOUT_ELEVATOR_HEIGHT, ROCKET_HIDEOUT_ELEVATOR_WIDTH ; dimensions (y, x) - dw RocketHideoutElevator_Blocks ; blocks - dw RocketHideoutElevator_TextPointers ; texts - dw RocketHideoutElevator_Script ; scripts - db 0 ; connections - dw RocketHideoutElevator_Object ; objects diff --git a/data/mapHeaders/Route1.asm b/data/mapHeaders/Route1.asm deleted file mode 100755 index ce4609379..000000000 --- a/data/mapHeaders/Route1.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route1_h: - db OVERWORLD ; tileset - db ROUTE_1_HEIGHT, ROUTE_1_WIDTH ; dimensions (y, x) - dw Route1_Blocks ; blocks - dw Route1_TextPointers ; texts - dw Route1_Script ; scripts - db NORTH | SOUTH ; connections - NORTH_MAP_CONNECTION ROUTE_1, VIRIDIAN_CITY, -3, 2, ViridianCity_Blocks - SOUTH_MAP_CONNECTION ROUTE_1, PALLET_TOWN, 0, 0, PalletTown_Blocks, 1 - dw Route1_Object ; objects diff --git a/data/mapHeaders/Route10.asm b/data/mapHeaders/Route10.asm deleted file mode 100755 index 8c51bfc6e..000000000 --- a/data/mapHeaders/Route10.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route10_h: - db OVERWORLD ; tileset - db ROUTE_10_HEIGHT, ROUTE_10_WIDTH ; dimensions (y, x) - dw Route10_Blocks ; blocks - dw Route10_TextPointers ; texts - dw Route10_Script ; scripts - db SOUTH | WEST ; connections - SOUTH_MAP_CONNECTION ROUTE_10, LAVENDER_TOWN, 0, 0, LavenderTown_Blocks - WEST_MAP_CONNECTION ROUTE_10, ROUTE_9, 0, 0, Route9_Blocks - dw Route10_Object ; objects diff --git a/data/mapHeaders/Route11.asm b/data/mapHeaders/Route11.asm deleted file mode 100755 index b7814465e..000000000 --- a/data/mapHeaders/Route11.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route11_h: - db OVERWORLD ; tileset - db ROUTE_11_HEIGHT, ROUTE_11_WIDTH ; dimensions (y, x) - dw Route11_Blocks ; blocks - dw Route11_TextPointers ; texts - dw Route11_Script ; scripts - db WEST | EAST ; connections - WEST_MAP_CONNECTION ROUTE_11, VERMILION_CITY, -3, 1, VermilionCity_Blocks - EAST_MAP_CONNECTION ROUTE_11, ROUTE_12, -3, 24, Route12_Blocks, 1 - dw Route11_Object ; objects diff --git a/data/mapHeaders/Route11Gate1F.asm b/data/mapHeaders/Route11Gate1F.asm deleted file mode 100755 index 2e01d168a..000000000 --- a/data/mapHeaders/Route11Gate1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route11Gate1F_h: - db GATE ; tileset - db ROUTE_11_GATE_1F_HEIGHT, ROUTE_11_GATE_1F_WIDTH ; dimensions (y, x) - dw Route11Gate1F_Blocks ; blocks - dw Route11Gate1F_TextPointers ; texts - dw Route11Gate1F_Script ; scripts - db 0 ; connections - dw Route11Gate1F_Object ; objects diff --git a/data/mapHeaders/Route11Gate2F.asm b/data/mapHeaders/Route11Gate2F.asm deleted file mode 100755 index ecb2ab7cb..000000000 --- a/data/mapHeaders/Route11Gate2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route11Gate2F_h: - db GATE ; tileset - db ROUTE_11_GATE_2F_HEIGHT, ROUTE_11_GATE_2F_WIDTH ; dimensions (y, x) - dw Route11Gate2F_Blocks ; blocks - dw Route11Gate2F_TextPointers ; texts - dw Route11Gate2F_Script ; scripts - db 0 ; connections - dw Route11Gate2F_Object ; objects diff --git a/data/mapHeaders/Route12.asm b/data/mapHeaders/Route12.asm deleted file mode 100755 index 2f76aa270..000000000 --- a/data/mapHeaders/Route12.asm +++ /dev/null @@ -1,11 +0,0 @@ -Route12_h: - db OVERWORLD ; tileset - db ROUTE_12_HEIGHT, ROUTE_12_WIDTH ; dimensions (y, x) - dw Route12_Blocks ; blocks - dw Route12_TextPointers ; texts - dw Route12_Script ; scripts - db NORTH | SOUTH | WEST ; connections - NORTH_MAP_CONNECTION ROUTE_12, LAVENDER_TOWN, 0, 0, LavenderTown_Blocks - SOUTH_MAP_CONNECTION ROUTE_12, ROUTE_13, -3, 17, Route13_Blocks - WEST_MAP_CONNECTION ROUTE_12, ROUTE_11, 27, 0, Route11_Blocks - dw Route12_Object ; objects diff --git a/data/mapHeaders/Route12Gate1F.asm b/data/mapHeaders/Route12Gate1F.asm deleted file mode 100755 index e44aecab7..000000000 --- a/data/mapHeaders/Route12Gate1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route12Gate1F_h: - db GATE ; tileset - db ROUTE_12_GATE_1F_HEIGHT, ROUTE_12_GATE_1F_WIDTH ; dimensions (y, x) - dw Route12Gate1F_Blocks ; blocks - dw Route12Gate1F_TextPointers ; texts - dw Route12Gate1F_Script ; scripts - db 0 ; connections - dw Route12Gate1F_Object ; objects diff --git a/data/mapHeaders/Route12Gate2F.asm b/data/mapHeaders/Route12Gate2F.asm deleted file mode 100755 index 94d5d54cf..000000000 --- a/data/mapHeaders/Route12Gate2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route12Gate2F_h: - db GATE ; tileset - db ROUTE_12_GATE_2F_HEIGHT, ROUTE_12_GATE_2F_WIDTH ; dimensions (y, x) - dw Route12Gate2F_Blocks ; blocks - dw Route12Gate2F_TextPointers ; texts - dw Route12Gate2F_Script ; scripts - db 0 ; connections - dw Route12Gate2F_Object ; objects diff --git a/data/mapHeaders/Route12SuperRodHouse.asm b/data/mapHeaders/Route12SuperRodHouse.asm deleted file mode 100755 index ef5e0f2cf..000000000 --- a/data/mapHeaders/Route12SuperRodHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route12SuperRodHouse_h: - db HOUSE ; tileset - db ROUTE_12_SUPER_ROD_HOUSE_HEIGHT, ROUTE_12_SUPER_ROD_HOUSE_WIDTH ; dimensions (y, x) - dw Route12SuperRodHouse_Blocks ; blocks - dw Route12SuperRodHouse_TextPointers ; texts - dw Route12SuperRodHouse_Script ; scripts - db 0 ; connections - dw Route12SuperRodHouse_Object ; objects diff --git a/data/mapHeaders/Route13.asm b/data/mapHeaders/Route13.asm deleted file mode 100755 index e6e244b96..000000000 --- a/data/mapHeaders/Route13.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route13_h: - db OVERWORLD ; tileset - db ROUTE_13_HEIGHT, ROUTE_13_WIDTH ; dimensions (y, x) - dw Route13_Blocks ; blocks - dw Route13_TextPointers ; texts - dw Route13_Script ; scripts - db NORTH | WEST ; connections - NORTH_MAP_CONNECTION ROUTE_13, ROUTE_12, 20, 0, Route12_Blocks - WEST_MAP_CONNECTION ROUTE_13, ROUTE_14, 0, 0, Route14_Blocks - dw Route13_Object ; objects diff --git a/data/mapHeaders/Route14.asm b/data/mapHeaders/Route14.asm deleted file mode 100755 index c3934ac54..000000000 --- a/data/mapHeaders/Route14.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route14_h: - db OVERWORLD ; tileset - db ROUTE_14_HEIGHT, ROUTE_14_WIDTH ; dimensions (y, x) - dw Route14_Blocks ; blocks - dw Route14_TextPointers ; texts - dw Route14_Script ; scripts - db WEST | EAST ; connections - WEST_MAP_CONNECTION ROUTE_14, ROUTE_15, 18, 0, Route15_Blocks - EAST_MAP_CONNECTION ROUTE_14, ROUTE_13, 0, 0, Route13_Blocks - dw Route14_Object ; objects diff --git a/data/mapHeaders/Route15.asm b/data/mapHeaders/Route15.asm deleted file mode 100755 index eb14d7505..000000000 --- a/data/mapHeaders/Route15.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route15_h: - db OVERWORLD ; tileset - db ROUTE_15_HEIGHT, ROUTE_15_WIDTH ; dimensions (y, x) - dw Route15_Blocks ; blocks - dw Route15_TextPointers ; texts - dw Route15_Script ; scripts - db WEST | EAST ; connections - WEST_MAP_CONNECTION ROUTE_15, FUCHSIA_CITY, -3, 1, FuchsiaCity_Blocks - EAST_MAP_CONNECTION ROUTE_15, ROUTE_14, -3, 15, Route14_Blocks - dw Route15_Object ; objects diff --git a/data/mapHeaders/Route15Gate1F.asm b/data/mapHeaders/Route15Gate1F.asm deleted file mode 100755 index b1ae56628..000000000 --- a/data/mapHeaders/Route15Gate1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route15Gate1F_h: - db GATE ; tileset - db ROUTE_15_GATE_1F_HEIGHT, ROUTE_15_GATE_1F_WIDTH ; dimensions (y, x) - dw Route15Gate1F_Blocks ; blocks - dw Route15Gate1F_TextPointers ; texts - dw Route15Gate1F_Script ; scripts - db 0 ; connections - dw Route15Gate1F_Object ; objects diff --git a/data/mapHeaders/Route15Gate2F.asm b/data/mapHeaders/Route15Gate2F.asm deleted file mode 100755 index 501da0920..000000000 --- a/data/mapHeaders/Route15Gate2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route15Gate2F_h: - db GATE ; tileset - db ROUTE_15_GATE_2F_HEIGHT, ROUTE_15_GATE_2F_WIDTH ; dimensions (y, x) - dw Route15Gate2F_Blocks ; blocks - dw Route15Gate2F_TextPointers ; texts - dw Route15Gate2F_Script ; scripts - db 0 ; connections - dw Route15Gate2F_Object ; objects diff --git a/data/mapHeaders/Route16.asm b/data/mapHeaders/Route16.asm deleted file mode 100755 index d12b6ea90..000000000 --- a/data/mapHeaders/Route16.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route16_h: - db OVERWORLD ; tileset - db ROUTE_16_HEIGHT, ROUTE_16_WIDTH ; dimensions (y, x) - dw Route16_Blocks ; blocks - dw Route16_TextPointers ; texts - dw Route16_Script ; scripts - db SOUTH | EAST ; connections - SOUTH_MAP_CONNECTION ROUTE_16, ROUTE_17, 0, 0, Route17_Blocks - EAST_MAP_CONNECTION ROUTE_16, CELADON_CITY, -3, 1, CeladonCity_Blocks, 1 - dw Route16_Object ; objects diff --git a/data/mapHeaders/Route16FlyHouse.asm b/data/mapHeaders/Route16FlyHouse.asm deleted file mode 100755 index 0d3f828d6..000000000 --- a/data/mapHeaders/Route16FlyHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route16FlyHouse_h: - db HOUSE ; tileset - db ROUTE_16_FLY_HOUSE_HEIGHT, ROUTE_16_FLY_HOUSE_WIDTH ; dimensions (y, x) - dw Route16FlyHouse_Blocks ; blocks - dw Route16FlyHouse_TextPointers ; texts - dw Route16FlyHouse_Script ; scripts - db 0 ; connections - dw Route16FlyHouse_Object ; objects diff --git a/data/mapHeaders/Route16Gate1F.asm b/data/mapHeaders/Route16Gate1F.asm deleted file mode 100755 index 561fb5973..000000000 --- a/data/mapHeaders/Route16Gate1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route16Gate1F_h: - db GATE ; tileset - db ROUTE_16_GATE_1F_HEIGHT, ROUTE_16_GATE_1F_WIDTH ; dimensions (y, x) - dw Route16Gate1F_Blocks ; blocks - dw Route16Gate1F_TextPointers ; texts - dw Route16Gate1F_Script ; scripts - db 0 ; connections - dw Route16Gate1F_Object ; objects diff --git a/data/mapHeaders/Route16Gate2F.asm b/data/mapHeaders/Route16Gate2F.asm deleted file mode 100755 index 90783ab75..000000000 --- a/data/mapHeaders/Route16Gate2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route16Gate2F_h: - db GATE ; tileset - db ROUTE_16_GATE_2F_HEIGHT, ROUTE_16_GATE_2F_WIDTH ; dimensions (y, x) - dw Route16Gate2F_Blocks ; blocks - dw Route16Gate2F_TextPointers ; texts - dw Route16Gate2F_Script ; scripts - db 0 ; connections - dw Route16Gate2F_Object ; objects diff --git a/data/mapHeaders/Route17.asm b/data/mapHeaders/Route17.asm deleted file mode 100755 index 58a785b4a..000000000 --- a/data/mapHeaders/Route17.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route17_h: - db OVERWORLD ; tileset - db ROUTE_17_HEIGHT, ROUTE_17_WIDTH ; dimensions (y, x) - dw Route17_Blocks ; blocks - dw Route17_TextPointers ; texts - dw Route17_Script ; scripts - db NORTH | SOUTH ; connections - NORTH_MAP_CONNECTION ROUTE_17, ROUTE_16, 0, 0, Route16_Blocks - SOUTH_MAP_CONNECTION ROUTE_17, ROUTE_18, 0, 0, Route18_Blocks, 1 - dw Route17_Object ; objects diff --git a/data/mapHeaders/Route18.asm b/data/mapHeaders/Route18.asm deleted file mode 100755 index 5e10bdbde..000000000 --- a/data/mapHeaders/Route18.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route18_h: - db OVERWORLD ; tileset - db ROUTE_18_HEIGHT, ROUTE_18_WIDTH ; dimensions (y, x) - dw Route18_Blocks ; blocks - dw Route18_TextPointers ; texts - dw Route18_Script ; scripts - db NORTH | EAST ; connections - NORTH_MAP_CONNECTION ROUTE_18, ROUTE_17, 0, 0, Route17_Blocks - EAST_MAP_CONNECTION ROUTE_18, FUCHSIA_CITY, -3, 1, FuchsiaCity_Blocks, 1 - dw Route18_Object ; objects diff --git a/data/mapHeaders/Route18Gate1F.asm b/data/mapHeaders/Route18Gate1F.asm deleted file mode 100755 index 0e4a0dc31..000000000 --- a/data/mapHeaders/Route18Gate1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route18Gate1F_h: - db GATE ; tileset - db ROUTE_18_GATE_1F_HEIGHT, ROUTE_18_GATE_1F_WIDTH ; dimensions (y, x) - dw Route18Gate1F_Blocks ; blocks - dw Route18Gate1F_TextPointers ; texts - dw Route18Gate1F_Script ; scripts - db 0 ; connections - dw Route18Gate1F_Object ; objects diff --git a/data/mapHeaders/Route18Gate2F.asm b/data/mapHeaders/Route18Gate2F.asm deleted file mode 100755 index 5d8f71262..000000000 --- a/data/mapHeaders/Route18Gate2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route18Gate2F_h: - db GATE ; tileset - db ROUTE_18_GATE_2F_HEIGHT, ROUTE_18_GATE_2F_WIDTH ; dimensions (y, x) - dw Route18Gate2F_Blocks ; blocks - dw Route18Gate2F_TextPointers ; texts - dw Route18Gate2F_Script ; scripts - db 0 ; connections - dw Route18Gate2F_Object ; objects diff --git a/data/mapHeaders/Route19.asm b/data/mapHeaders/Route19.asm deleted file mode 100755 index 799726771..000000000 --- a/data/mapHeaders/Route19.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route19_h: - db OVERWORLD ; tileset - db ROUTE_19_HEIGHT, ROUTE_19_WIDTH ; dimensions (y, x) - dw Route19_Blocks ; blocks - dw Route19_TextPointers ; texts - dw Route19_Script ; scripts - db NORTH | WEST ; connections - NORTH_MAP_CONNECTION ROUTE_19, FUCHSIA_CITY, -3, 2, FuchsiaCity_Blocks - WEST_MAP_CONNECTION ROUTE_19, ROUTE_20, 18, 0, Route20_Blocks - dw Route19_Object ; objects diff --git a/data/mapHeaders/Route2.asm b/data/mapHeaders/Route2.asm deleted file mode 100755 index 94511d06b..000000000 --- a/data/mapHeaders/Route2.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route2_h: - db OVERWORLD ; tileset - db ROUTE_2_HEIGHT, ROUTE_2_WIDTH ; dimensions (y, x) - dw Route2_Blocks ; blocks - dw Route2_TextPointers ; texts - dw Route2_Script ; scripts - db NORTH | SOUTH ; connections - NORTH_MAP_CONNECTION ROUTE_2, PEWTER_CITY, -3, 2, PewterCity_Blocks - SOUTH_MAP_CONNECTION ROUTE_2, VIRIDIAN_CITY, -3, 2, ViridianCity_Blocks, 1 - dw Route2_Object ; objects diff --git a/data/mapHeaders/Route20.asm b/data/mapHeaders/Route20.asm deleted file mode 100755 index 689f51cd1..000000000 --- a/data/mapHeaders/Route20.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route20_h: - db OVERWORLD ; tileset - db ROUTE_20_HEIGHT, ROUTE_20_WIDTH ; dimensions (y, x) - dw Route20_Blocks ; blocks - dw Route20_TextPointers ; texts - dw Route20_Script ; scripts - db WEST | EAST ; connections - WEST_MAP_CONNECTION ROUTE_20, CINNABAR_ISLAND, 0, 0, CinnabarIsland_Blocks - EAST_MAP_CONNECTION ROUTE_20, ROUTE_19, -3, 15, Route19_Blocks - dw Route20_Object ; objects diff --git a/data/mapHeaders/Route21.asm b/data/mapHeaders/Route21.asm deleted file mode 100755 index f37869dcb..000000000 --- a/data/mapHeaders/Route21.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route21_h: - db OVERWORLD ; tileset - db ROUTE_21_HEIGHT, ROUTE_21_WIDTH ; dimensions (y, x) - dw Route21_Blocks ; blocks - dw Route21_TextPointers ; texts - dw Route21_Script ; scripts - db NORTH | SOUTH ; connections - NORTH_MAP_CONNECTION ROUTE_21, PALLET_TOWN, 0, 0, PalletTown_Blocks - SOUTH_MAP_CONNECTION ROUTE_21, CINNABAR_ISLAND, 0, 0, CinnabarIsland_Blocks, 1 - dw Route21_Object ; objects diff --git a/data/mapHeaders/Route22.asm b/data/mapHeaders/Route22.asm deleted file mode 100755 index 4d07475f8..000000000 --- a/data/mapHeaders/Route22.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route22_h: - db OVERWORLD ; tileset - db ROUTE_22_HEIGHT, ROUTE_22_WIDTH ; dimensions (y, x) - dw Route22_Blocks ; blocks - dw Route22_TextPointers ; texts - dw Route22_Script ; scripts - db NORTH | EAST ; connections - NORTH_MAP_CONNECTION ROUTE_22, ROUTE_23, 0, 0, Route23_Blocks - EAST_MAP_CONNECTION ROUTE_22, VIRIDIAN_CITY, -3, 1, ViridianCity_Blocks, 1 - dw Route22_Object ; objects diff --git a/data/mapHeaders/Route22Gate.asm b/data/mapHeaders/Route22Gate.asm deleted file mode 100755 index 4d3ae0ccd..000000000 --- a/data/mapHeaders/Route22Gate.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route22Gate_h: - db GATE ; tileset - db ROUTE_22_GATE_HEIGHT, ROUTE_22_GATE_WIDTH ; dimensions (y, x) - dw Route22Gate_Blocks ; blocks - dw Route22Gate_TextPointers ; texts - dw Route22Gate_Script ; scripts - db 0 ; connections - dw Route22Gate_Object ; objects diff --git a/data/mapHeaders/Route23.asm b/data/mapHeaders/Route23.asm deleted file mode 100755 index 6b1fde978..000000000 --- a/data/mapHeaders/Route23.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route23_h: - db PLATEAU ; tileset - db ROUTE_23_HEIGHT, ROUTE_23_WIDTH ; dimensions (y, x) - dw Route23_Blocks ; blocks - dw Route23_TextPointers ; texts - dw Route23_Script ; scripts - db NORTH | SOUTH ; connections - NORTH_MAP_CONNECTION ROUTE_23, INDIGO_PLATEAU, 0, 0, IndigoPlateau_Blocks - SOUTH_MAP_CONNECTION ROUTE_23, ROUTE_22, 0, 0, Route22_Blocks, 1 - dw Route23_Object ; objects diff --git a/data/mapHeaders/Route24.asm b/data/mapHeaders/Route24.asm deleted file mode 100755 index 87776f600..000000000 --- a/data/mapHeaders/Route24.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route24_h: - db OVERWORLD ; tileset - db ROUTE_24_HEIGHT, ROUTE_24_WIDTH ; dimensions (y, x) - dw Route24_Blocks ; blocks - dw Route24_TextPointers ; texts - dw Route24_Script ; scripts - db SOUTH | EAST ; connections - SOUTH_MAP_CONNECTION ROUTE_24, CERULEAN_CITY, -3, 2, CeruleanCity_Blocks, 1 - EAST_MAP_CONNECTION ROUTE_24, ROUTE_25, 0, 0, Route25_Blocks - dw Route24_Object ; objects diff --git a/data/mapHeaders/Route25.asm b/data/mapHeaders/Route25.asm deleted file mode 100755 index c300eeb3b..000000000 --- a/data/mapHeaders/Route25.asm +++ /dev/null @@ -1,9 +0,0 @@ -Route25_h: - db OVERWORLD ; tileset - db ROUTE_25_HEIGHT, ROUTE_25_WIDTH ; dimensions (y, x) - dw Route25_Blocks ; blocks - dw Route25_TextPointers ; texts - dw Route25_Script ; scripts - db WEST ; connections - WEST_MAP_CONNECTION ROUTE_25, ROUTE_24, 0, 0, Route24_Blocks - dw Route25_Object ; objects diff --git a/data/mapHeaders/Route2Gate.asm b/data/mapHeaders/Route2Gate.asm deleted file mode 100755 index 9b2841786..000000000 --- a/data/mapHeaders/Route2Gate.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route2Gate_h: - db GATE ; tileset - db ROUTE_2_GATE_HEIGHT, ROUTE_2_GATE_WIDTH ; dimensions (y, x) - dw Route2Gate_Blocks ; blocks - dw Route2Gate_TextPointers ; texts - dw Route2Gate_Script ; scripts - db 0 ; connections - dw Route2Gate_Object ; objects diff --git a/data/mapHeaders/Route2TradeHouse.asm b/data/mapHeaders/Route2TradeHouse.asm deleted file mode 100755 index 336939436..000000000 --- a/data/mapHeaders/Route2TradeHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route2TradeHouse_h: - db HOUSE ; tileset - db ROUTE_2_TRADE_HOUSE_HEIGHT, ROUTE_2_TRADE_HOUSE_WIDTH ; dimensions (y, x) - dw Route2TradeHouse_Blocks ; blocks - dw Route2TradeHouse_TextPointers ; texts - dw Route2TradeHouse_Script ; scripts - db 0 ; connections - dw Route2TradeHouse_Object ; objects diff --git a/data/mapHeaders/Route3.asm b/data/mapHeaders/Route3.asm deleted file mode 100755 index c611e4b8b..000000000 --- a/data/mapHeaders/Route3.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route3_h: - db OVERWORLD ; tileset - db ROUTE_3_HEIGHT, ROUTE_3_WIDTH ; dimensions (y, x) - dw Route3_Blocks ; blocks - dw Route3_TextPointers ; texts - dw Route3_Script ; scripts - db NORTH | WEST ; connections - NORTH_MAP_CONNECTION ROUTE_3, ROUTE_4, 25, 0, Route4_Blocks - WEST_MAP_CONNECTION ROUTE_3, PEWTER_CITY, -3, 1, PewterCity_Blocks - dw Route3_Object ; objects diff --git a/data/mapHeaders/Route4.asm b/data/mapHeaders/Route4.asm deleted file mode 100755 index 999a1207a..000000000 --- a/data/mapHeaders/Route4.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route4_h: - db OVERWORLD ; tileset - db ROUTE_4_HEIGHT, ROUTE_4_WIDTH ; dimensions (y, x) - dw Route4_Blocks ; blocks - dw Route4_TextPointers ; texts - dw Route4_Script ; scripts - db SOUTH | EAST ; connections - SOUTH_MAP_CONNECTION ROUTE_4, ROUTE_3, -3, 22, Route3_Blocks - EAST_MAP_CONNECTION ROUTE_4, CERULEAN_CITY, -3, 1, CeruleanCity_Blocks, 1 - dw Route4_Object ; objects diff --git a/data/mapHeaders/Route5.asm b/data/mapHeaders/Route5.asm deleted file mode 100755 index 6480aebdc..000000000 --- a/data/mapHeaders/Route5.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route5_h: - db OVERWORLD ; tileset - db ROUTE_5_HEIGHT, ROUTE_5_WIDTH ; dimensions (y, x) - dw Route5_Blocks ; blocks - dw Route5_TextPointers ; texts - dw Route5_Script ; scripts - db NORTH | SOUTH ; connections - NORTH_MAP_CONNECTION ROUTE_5, CERULEAN_CITY, -3, 2, CeruleanCity_Blocks - SOUTH_MAP_CONNECTION ROUTE_5, SAFFRON_CITY, -3, 2, SaffronCity_Blocks, 1 - dw Route5_Object ; objects diff --git a/data/mapHeaders/Route5Gate.asm b/data/mapHeaders/Route5Gate.asm deleted file mode 100755 index bb4181822..000000000 --- a/data/mapHeaders/Route5Gate.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route5Gate_h: - db GATE ; tileset - db ROUTE_5_GATE_HEIGHT, ROUTE_5_GATE_WIDTH ; dimensions (y, x) - dw Route5Gate_Blocks ; blocks - dw Route5Gate_TextPointers ; texts - dw Route5Gate_Script ; scripts - db 0 ; connections - dw Route5Gate_Object ; objects diff --git a/data/mapHeaders/Route6.asm b/data/mapHeaders/Route6.asm deleted file mode 100755 index 9385ce5fe..000000000 --- a/data/mapHeaders/Route6.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route6_h: - db OVERWORLD ; tileset - db ROUTE_6_HEIGHT, ROUTE_6_WIDTH ; dimensions (y, x) - dw Route6_Blocks ; blocks - dw Route6_TextPointers ; texts - dw Route6_Script ; scripts - db NORTH | SOUTH ; connections - NORTH_MAP_CONNECTION ROUTE_6, SAFFRON_CITY, -3, 2, SaffronCity_Blocks - SOUTH_MAP_CONNECTION ROUTE_6, VERMILION_CITY, -3, 2, VermilionCity_Blocks, 1 - dw Route6_Object ; objects diff --git a/data/mapHeaders/Route6Gate.asm b/data/mapHeaders/Route6Gate.asm deleted file mode 100755 index 282cc5b63..000000000 --- a/data/mapHeaders/Route6Gate.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route6Gate_h: - db GATE ; tileset - db ROUTE_6_GATE_HEIGHT, ROUTE_6_GATE_WIDTH ; dimensions (y, x) - dw Route6Gate_Blocks ; blocks - dw Route6Gate_TextPointers ; texts - dw Route6Gate_Script ; scripts - db 0 ; connections - dw Route6Gate_Object ; objects diff --git a/data/mapHeaders/Route7.asm b/data/mapHeaders/Route7.asm deleted file mode 100755 index 9b34ea1fd..000000000 --- a/data/mapHeaders/Route7.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route7_h: - db OVERWORLD ; tileset - db ROUTE_7_HEIGHT, ROUTE_7_WIDTH ; dimensions (y, x) - dw Route7_Blocks ; blocks - dw Route7_TextPointers ; texts - dw Route7_Script ; scripts - db WEST | EAST ; connections - WEST_MAP_CONNECTION ROUTE_7, CELADON_CITY, -3, 1, CeladonCity_Blocks - EAST_MAP_CONNECTION ROUTE_7, SAFFRON_CITY, -3, 1, SaffronCity_Blocks, 1 - dw Route7_Object ; objects diff --git a/data/mapHeaders/Route7Gate.asm b/data/mapHeaders/Route7Gate.asm deleted file mode 100755 index 61771e42c..000000000 --- a/data/mapHeaders/Route7Gate.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route7Gate_h: - db GATE ; tileset - db ROUTE_7_GATE_HEIGHT, ROUTE_7_GATE_WIDTH ; dimensions (y, x) - dw Route7Gate_Blocks ; blocks - dw Route7Gate_TextPointers ; texts - dw Route7Gate_Script ; scripts - db 0 ; connections - dw Route7Gate_Object ; objects diff --git a/data/mapHeaders/Route8.asm b/data/mapHeaders/Route8.asm deleted file mode 100755 index bd2ee71eb..000000000 --- a/data/mapHeaders/Route8.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route8_h: - db OVERWORLD ; tileset - db ROUTE_8_HEIGHT, ROUTE_8_WIDTH ; dimensions (y, x) - dw Route8_Blocks ; blocks - dw Route8_TextPointers ; texts - dw Route8_Script ; scripts - db WEST | EAST ; connections - WEST_MAP_CONNECTION ROUTE_8, SAFFRON_CITY, -3, 1, SaffronCity_Blocks - EAST_MAP_CONNECTION ROUTE_8, LAVENDER_TOWN, 0, 0, LavenderTown_Blocks - dw Route8_Object ; objects diff --git a/data/mapHeaders/Route8Gate.asm b/data/mapHeaders/Route8Gate.asm deleted file mode 100755 index dd14a2377..000000000 --- a/data/mapHeaders/Route8Gate.asm +++ /dev/null @@ -1,8 +0,0 @@ -Route8Gate_h: - db GATE ; tileset - db ROUTE_8_GATE_HEIGHT, ROUTE_8_GATE_WIDTH ; dimensions (y, x) - dw Route8Gate_Blocks ; blocks - dw Route8Gate_TextPointers ; texts - dw Route8Gate_Script ; scripts - db 0 ; connections - dw Route8Gate_Object ; objects diff --git a/data/mapHeaders/Route9.asm b/data/mapHeaders/Route9.asm deleted file mode 100755 index 3dec3b0a8..000000000 --- a/data/mapHeaders/Route9.asm +++ /dev/null @@ -1,10 +0,0 @@ -Route9_h: - db OVERWORLD ; tileset - db ROUTE_9_HEIGHT, ROUTE_9_WIDTH ; dimensions (y, x) - dw Route9_Blocks ; blocks - dw Route9_TextPointers ; texts - dw Route9_Script ; scripts - db WEST | EAST ; connections - WEST_MAP_CONNECTION ROUTE_9, CERULEAN_CITY, -3, 1, CeruleanCity_Blocks - EAST_MAP_CONNECTION ROUTE_9, ROUTE_10, 0, 0, Route10_Blocks, 1 - dw Route9_Object ; objects diff --git a/data/mapHeaders/SSAnne1F.asm b/data/mapHeaders/SSAnne1F.asm deleted file mode 100755 index a69423d6b..000000000 --- a/data/mapHeaders/SSAnne1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SSAnne1F_h: - db SHIP ; tileset - db SS_ANNE_1F_HEIGHT, SS_ANNE_1F_WIDTH ; dimensions (y, x) - dw SSAnne1F_Blocks ; blocks - dw SSAnne1F_TextPointers ; texts - dw SSAnne1F_Script ; scripts - db 0 ; connections - dw SSAnne1F_Object ; objects diff --git a/data/mapHeaders/SSAnne1FRooms.asm b/data/mapHeaders/SSAnne1FRooms.asm deleted file mode 100755 index 1f8af23df..000000000 --- a/data/mapHeaders/SSAnne1FRooms.asm +++ /dev/null @@ -1,8 +0,0 @@ -SSAnne1FRooms_h: - db SHIP ; tileset - db SS_ANNE_1F_ROOMS_HEIGHT, SS_ANNE_1F_ROOMS_WIDTH ; dimensions (y, x) - dw SSAnne1FRooms_Blocks ; blocks - dw SSAnne1FRooms_TextPointers ; texts - dw SSAnne1FRooms_Script ; scripts - db 0 ; connections - dw SSAnne1FRooms_Object ; objects diff --git a/data/mapHeaders/SSAnne2F.asm b/data/mapHeaders/SSAnne2F.asm deleted file mode 100755 index d42d16f46..000000000 --- a/data/mapHeaders/SSAnne2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SSAnne2F_h: - db SHIP ; tileset - db SS_ANNE_2F_HEIGHT, SS_ANNE_2F_WIDTH ; dimensions (y, x) - dw SSAnne2F_Blocks ; blocks - dw SSAnne2F_TextPointers ; texts - dw SSAnne2F_Script ; scripts - db 0 ; connections - dw SSAnne2F_Object ; objects diff --git a/data/mapHeaders/SSAnne2FRooms.asm b/data/mapHeaders/SSAnne2FRooms.asm deleted file mode 100755 index f22de0fa4..000000000 --- a/data/mapHeaders/SSAnne2FRooms.asm +++ /dev/null @@ -1,8 +0,0 @@ -SSAnne2FRooms_h: - db SHIP ; tileset - db SS_ANNE_2F_ROOMS_HEIGHT, SS_ANNE_2F_ROOMS_WIDTH ; dimensions (y, x) - dw SSAnne2FRooms_Blocks ; blocks - dw SSAnne2FRooms_TextPointers ; texts - dw SSAnne2FRooms_Script ; scripts - db 0 ; connections - dw SSAnne2FRooms_Object ; objects diff --git a/data/mapHeaders/SSAnne3F.asm b/data/mapHeaders/SSAnne3F.asm deleted file mode 100755 index 1c5dafea4..000000000 --- a/data/mapHeaders/SSAnne3F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SSAnne3F_h: - db SHIP ; tileset - db SS_ANNE_3F_HEIGHT, SS_ANNE_3F_WIDTH ; dimensions (y, x) - dw SSAnne3F_Blocks ; blocks - dw SSAnne3F_TextPointers ; texts - dw SSAnne3F_Script ; scripts - db 0 ; connections - dw SSAnne3F_Object ; objects diff --git a/data/mapHeaders/SSAnneB1F.asm b/data/mapHeaders/SSAnneB1F.asm deleted file mode 100755 index a3ca6dfa2..000000000 --- a/data/mapHeaders/SSAnneB1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SSAnneB1F_h: - db SHIP ; tileset - db SS_ANNE_B1F_HEIGHT, SS_ANNE_B1F_WIDTH ; dimensions (y, x) - dw SSAnneB1F_Blocks ; blocks - dw SSAnneB1F_TextPointers ; texts - dw SSAnneB1F_Script ; scripts - db 0 ; connections - dw SSAnneB1F_Object ; objects diff --git a/data/mapHeaders/SSAnneB1FRooms.asm b/data/mapHeaders/SSAnneB1FRooms.asm deleted file mode 100755 index f08e343b5..000000000 --- a/data/mapHeaders/SSAnneB1FRooms.asm +++ /dev/null @@ -1,8 +0,0 @@ -SSAnneB1FRooms_h: - db SHIP ; tileset - db SS_ANNE_B1F_ROOMS_HEIGHT, SS_ANNE_B1F_ROOMS_WIDTH ; dimensions (y, x) - dw SSAnneB1FRooms_Blocks ; blocks - dw SSAnneB1FRooms_TextPointers ; texts - dw SSAnneB1FRooms_Script ; scripts - db 0 ; connections - dw SSAnneB1FRooms_Object ; objects diff --git a/data/mapHeaders/SSAnneBow.asm b/data/mapHeaders/SSAnneBow.asm deleted file mode 100755 index baa711475..000000000 --- a/data/mapHeaders/SSAnneBow.asm +++ /dev/null @@ -1,8 +0,0 @@ -SSAnneBow_h: - db SHIP ; tileset - db SS_ANNE_BOW_HEIGHT, SS_ANNE_BOW_WIDTH ; dimensions (y, x) - dw SSAnneBow_Blocks ; blocks - dw SSAnneBow_TextPointers ; texts - dw SSAnneBow_Script ; scripts - db 0 ; connections - dw SSAnneBow_Object ; objects diff --git a/data/mapHeaders/SSAnneCaptainsRoom.asm b/data/mapHeaders/SSAnneCaptainsRoom.asm deleted file mode 100755 index 433f060ad..000000000 --- a/data/mapHeaders/SSAnneCaptainsRoom.asm +++ /dev/null @@ -1,8 +0,0 @@ -SSAnneCaptainsRoom_h: - db SHIP ; tileset - db SS_ANNE_CAPTAINS_ROOM_HEIGHT, SS_ANNE_CAPTAINS_ROOM_WIDTH ; dimensions (y, x) - dw SSAnneCaptainsRoom_Blocks ; blocks - dw SSAnneCaptainsRoom_TextPointers ; texts - dw SSAnneCaptainsRoom_Script ; scripts - db 0 ; connections - dw SSAnneCaptainsRoom_Object ; objects diff --git a/data/mapHeaders/SSAnneKitchen.asm b/data/mapHeaders/SSAnneKitchen.asm deleted file mode 100755 index eacbbfb88..000000000 --- a/data/mapHeaders/SSAnneKitchen.asm +++ /dev/null @@ -1,8 +0,0 @@ -SSAnneKitchen_h: - db SHIP ; tileset - db SS_ANNE_KITCHEN_HEIGHT, SS_ANNE_KITCHEN_WIDTH ; dimensions (y, x) - dw SSAnneKitchen_Blocks ; blocks - dw SSAnneKitchen_TextPointers ; texts - dw SSAnneKitchen_Script ; scripts - db 0 ; connections - dw SSAnneKitchen_Object ; objects diff --git a/data/mapHeaders/SafariZoneCenter.asm b/data/mapHeaders/SafariZoneCenter.asm deleted file mode 100755 index 8ec6c8903..000000000 --- a/data/mapHeaders/SafariZoneCenter.asm +++ /dev/null @@ -1,8 +0,0 @@ -SafariZoneCenter_h: - db FOREST ; tileset - db SAFARI_ZONE_CENTER_HEIGHT, SAFARI_ZONE_CENTER_WIDTH ; dimensions (y, x) - dw SafariZoneCenter_Blocks ; blocks - dw SafariZoneCenter_TextPointers ; texts - dw SafariZoneCenter_Script ; scripts - db 0 ; connections - dw SafariZoneCenter_Object ; objects diff --git a/data/mapHeaders/SafariZoneCenterRestHouse.asm b/data/mapHeaders/SafariZoneCenterRestHouse.asm deleted file mode 100755 index 9b1064f29..000000000 --- a/data/mapHeaders/SafariZoneCenterRestHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -SafariZoneCenterRestHouse_h: - db GATE ; tileset - db SAFARI_ZONE_CENTER_REST_HOUSE_HEIGHT, SAFARI_ZONE_CENTER_REST_HOUSE_WIDTH ; dimensions (y, x) - dw SafariZoneCenterRestHouse_Blocks ; blocks - dw SafariZoneCenterRestHouse_TextPointers ; texts - dw SafariZoneCenterRestHouse_Script ; scripts - db 0 ; connections - dw SafariZoneCenterRestHouse_Object ; objects diff --git a/data/mapHeaders/SafariZoneEast.asm b/data/mapHeaders/SafariZoneEast.asm deleted file mode 100755 index 99556473c..000000000 --- a/data/mapHeaders/SafariZoneEast.asm +++ /dev/null @@ -1,8 +0,0 @@ -SafariZoneEast_h: - db FOREST ; tileset - db SAFARI_ZONE_EAST_HEIGHT, SAFARI_ZONE_EAST_WIDTH ; dimensions (y, x) - dw SafariZoneEast_Blocks ; blocks - dw SafariZoneEast_TextPointers ; texts - dw SafariZoneEast_Script ; scripts - db 0 ; connections - dw SafariZoneEast_Object ; objects diff --git a/data/mapHeaders/SafariZoneEastRestHouse.asm b/data/mapHeaders/SafariZoneEastRestHouse.asm deleted file mode 100755 index b9f219c5d..000000000 --- a/data/mapHeaders/SafariZoneEastRestHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -SafariZoneEastRestHouse_h: - db GATE ; tileset - db SAFARI_ZONE_EAST_REST_HOUSE_HEIGHT, SAFARI_ZONE_EAST_REST_HOUSE_WIDTH ; dimensions (y, x) - dw SafariZoneEastRestHouse_Blocks ; blocks - dw SafariZoneEastRestHouse_TextPointers ; texts - dw SafariZoneEastRestHouse_Script ; scripts - db 0 ; connections - dw SafariZoneEastRestHouse_Object ; objects diff --git a/data/mapHeaders/SafariZoneGate.asm b/data/mapHeaders/SafariZoneGate.asm deleted file mode 100755 index ed306ad0d..000000000 --- a/data/mapHeaders/SafariZoneGate.asm +++ /dev/null @@ -1,8 +0,0 @@ -SafariZoneGate_h: - db GATE ; tileset - db SAFARI_ZONE_GATE_HEIGHT, SAFARI_ZONE_GATE_WIDTH ; dimensions (y, x) - dw SafariZoneGate_Blocks ; blocks - dw SafariZoneGate_TextPointers ; texts - dw SafariZoneGate_Script ; scripts - db 0 ; connections - dw SafariZoneGate_Object ; objects diff --git a/data/mapHeaders/SafariZoneNorth.asm b/data/mapHeaders/SafariZoneNorth.asm deleted file mode 100755 index 3d1a2f51e..000000000 --- a/data/mapHeaders/SafariZoneNorth.asm +++ /dev/null @@ -1,8 +0,0 @@ -SafariZoneNorth_h: - db FOREST ; tileset - db SAFARI_ZONE_NORTH_HEIGHT, SAFARI_ZONE_NORTH_WIDTH ; dimensions (y, x) - dw SafariZoneNorth_Blocks ; blocks - dw SafariZoneNorth_TextPointers ; texts - dw SafariZoneNorth_Script ; scripts - db 0 ; connections - dw SafariZoneNorth_Object ; objects diff --git a/data/mapHeaders/SafariZoneNorthRestHouse.asm b/data/mapHeaders/SafariZoneNorthRestHouse.asm deleted file mode 100755 index 938c15cfb..000000000 --- a/data/mapHeaders/SafariZoneNorthRestHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -SafariZoneNorthRestHouse_h: - db GATE ; tileset - db SAFARI_ZONE_NORTH_REST_HOUSE_HEIGHT, SAFARI_ZONE_NORTH_REST_HOUSE_WIDTH ; dimensions (y, x) - dw SafariZoneNorthRestHouse_Blocks ; blocks - dw SafariZoneNorthRestHouse_TextPointers ; texts - dw SafariZoneNorthRestHouse_Script ; scripts - db 0 ; connections - dw SafariZoneNorthRestHouse_Object ; objects diff --git a/data/mapHeaders/SafariZoneSecretHouse.asm b/data/mapHeaders/SafariZoneSecretHouse.asm deleted file mode 100755 index 910686911..000000000 --- a/data/mapHeaders/SafariZoneSecretHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -SafariZoneSecretHouse_h: - db LAB ; tileset - db SAFARI_ZONE_SECRET_HOUSE_HEIGHT, SAFARI_ZONE_SECRET_HOUSE_WIDTH ; dimensions (y, x) - dw SafariZoneSecretHouse_Blocks ; blocks - dw SafariZoneSecretHouse_TextPointers ; texts - dw SafariZoneSecretHouse_Script ; scripts - db 0 ; connections - dw SafariZoneSecretHouse_Object ; objects diff --git a/data/mapHeaders/SafariZoneWest.asm b/data/mapHeaders/SafariZoneWest.asm deleted file mode 100755 index 876169d1a..000000000 --- a/data/mapHeaders/SafariZoneWest.asm +++ /dev/null @@ -1,8 +0,0 @@ -SafariZoneWest_h: - db FOREST ; tileset - db SAFARI_ZONE_WEST_HEIGHT, SAFARI_ZONE_WEST_WIDTH ; dimensions (y, x) - dw SafariZoneWest_Blocks ; blocks - dw SafariZoneWest_TextPointers ; texts - dw SafariZoneWest_Script ; scripts - db 0 ; connections - dw SafariZoneWest_Object ; objects diff --git a/data/mapHeaders/SafariZoneWestRestHouse.asm b/data/mapHeaders/SafariZoneWestRestHouse.asm deleted file mode 100755 index 886382ecf..000000000 --- a/data/mapHeaders/SafariZoneWestRestHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -SafariZoneWestRestHouse_h: - db GATE ; tileset - db SAFARI_ZONE_WEST_REST_HOUSE_HEIGHT, SAFARI_ZONE_WEST_REST_HOUSE_WIDTH ; dimensions (y, x) - dw SafariZoneWestRestHouse_Blocks ; blocks - dw SafariZoneWestRestHouse_TextPointers ; texts - dw SafariZoneWestRestHouse_Script ; scripts - db 0 ; connections - dw SafariZoneWestRestHouse_Object ; objects diff --git a/data/mapHeaders/SaffronCity.asm b/data/mapHeaders/SaffronCity.asm deleted file mode 100755 index 13239891f..000000000 --- a/data/mapHeaders/SaffronCity.asm +++ /dev/null @@ -1,12 +0,0 @@ -SaffronCity_h: - db OVERWORLD ; tileset - db SAFFRON_CITY_HEIGHT, SAFFRON_CITY_WIDTH ; dimensions (y, x) - dw SaffronCity_Blocks ; blocks - dw SaffronCity_TextPointers ; texts - dw SaffronCity_Script ; scripts - db NORTH | SOUTH | WEST | EAST ; connections - NORTH_MAP_CONNECTION SAFFRON_CITY, ROUTE_5, 5, 0, Route5_Blocks - SOUTH_MAP_CONNECTION SAFFRON_CITY, ROUTE_6, 5, 0, Route6_Blocks, 1 - WEST_MAP_CONNECTION SAFFRON_CITY, ROUTE_7, 4, 0, Route7_Blocks - EAST_MAP_CONNECTION SAFFRON_CITY, ROUTE_8, 4, 0, Route8_Blocks - dw SaffronCity_Object ; objects diff --git a/data/mapHeaders/SaffronGym.asm b/data/mapHeaders/SaffronGym.asm deleted file mode 100755 index 6cbadb2c5..000000000 --- a/data/mapHeaders/SaffronGym.asm +++ /dev/null @@ -1,8 +0,0 @@ -SaffronGym_h: - db FACILITY ; tileset - db SAFFRON_GYM_HEIGHT, SAFFRON_GYM_WIDTH ; dimensions (y, x) - dw SaffronGym_Blocks ; blocks - dw SaffronGym_TextPointers ; texts - dw SaffronGym_Script ; scripts - db 0 ; connections - dw SaffronGym_Object ; objects diff --git a/data/mapHeaders/SaffronMart.asm b/data/mapHeaders/SaffronMart.asm deleted file mode 100755 index abd537b63..000000000 --- a/data/mapHeaders/SaffronMart.asm +++ /dev/null @@ -1,8 +0,0 @@ -SaffronMart_h: - db MART ; tileset - db SAFFRON_MART_HEIGHT, SAFFRON_MART_WIDTH ; dimensions (y, x) - dw SaffronMart_Blocks ; blocks - dw SaffronMart_TextPointers ; texts - dw SaffronMart_Script ; scripts - db 0 ; connections - dw SaffronMart_Object ; objects diff --git a/data/mapHeaders/SaffronPidgeyHouse.asm b/data/mapHeaders/SaffronPidgeyHouse.asm deleted file mode 100755 index 5d6e21ae1..000000000 --- a/data/mapHeaders/SaffronPidgeyHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -SaffronPidgeyHouse_h: - db HOUSE ; tileset - db SAFFRON_PIDGEY_HOUSE_HEIGHT, SAFFRON_PIDGEY_HOUSE_WIDTH ; dimensions (y, x) - dw SaffronPidgeyHouse_Blocks ; blocks - dw SaffronPidgeyHouse_TextPointers ; texts - dw SaffronPidgeyHouse_Script ; scripts - db 0 ; connections - dw SaffronPidgeyHouse_Object ; objects diff --git a/data/mapHeaders/SaffronPokecenter.asm b/data/mapHeaders/SaffronPokecenter.asm deleted file mode 100755 index 32f1ec710..000000000 --- a/data/mapHeaders/SaffronPokecenter.asm +++ /dev/null @@ -1,8 +0,0 @@ -SaffronPokecenter_h: - db POKECENTER ; tileset - db SAFFRON_POKECENTER_HEIGHT, SAFFRON_POKECENTER_WIDTH ; dimensions (y, x) - dw SaffronPokecenter_Blocks ; blocks - dw SaffronPokecenter_TextPointers ; texts - dw SaffronPokecenter_Script ; scripts - db 0 ; connections - dw SaffronPokecenter_Object ; objects diff --git a/data/mapHeaders/SeafoamIslands1F.asm b/data/mapHeaders/SeafoamIslands1F.asm deleted file mode 100755 index f5260cda1..000000000 --- a/data/mapHeaders/SeafoamIslands1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SeafoamIslands1F_h: - db CAVERN ; tileset - db SEAFOAM_ISLANDS_1F_HEIGHT, SEAFOAM_ISLANDS_1F_WIDTH ; dimensions (y, x) - dw SeafoamIslands1F_Blocks ; blocks - dw SeafoamIslands1F_TextPointers ; texts - dw SeafoamIslands1F_Script ; scripts - db 0 ; connections - dw SeafoamIslands1F_Object ; objects diff --git a/data/mapHeaders/SeafoamIslandsB1F.asm b/data/mapHeaders/SeafoamIslandsB1F.asm deleted file mode 100755 index 23116f748..000000000 --- a/data/mapHeaders/SeafoamIslandsB1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SeafoamIslandsB1F_h: - db CAVERN ; tileset - db SEAFOAM_ISLANDS_B1F_HEIGHT, SEAFOAM_ISLANDS_B1F_WIDTH ; dimensions (y, x) - dw SeafoamIslandsB1F_Blocks ; blocks - dw SeafoamIslandsB1F_TextPointers ; texts - dw SeafoamIslandsB1F_Script ; scripts - db 0 ; connections - dw SeafoamIslandsB1F_Object ; objects diff --git a/data/mapHeaders/SeafoamIslandsB2F.asm b/data/mapHeaders/SeafoamIslandsB2F.asm deleted file mode 100755 index 10d45dad1..000000000 --- a/data/mapHeaders/SeafoamIslandsB2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SeafoamIslandsB2F_h: - db CAVERN ; tileset - db SEAFOAM_ISLANDS_B2F_HEIGHT, SEAFOAM_ISLANDS_B2F_WIDTH ; dimensions (y, x) - dw SeafoamIslandsB2F_Blocks ; blocks - dw SeafoamIslandsB2F_TextPointers ; texts - dw SeafoamIslandsB2F_Script ; scripts - db 0 ; connections - dw SeafoamIslandsB2F_Object ; objects diff --git a/data/mapHeaders/SeafoamIslandsB3F.asm b/data/mapHeaders/SeafoamIslandsB3F.asm deleted file mode 100755 index 812d11217..000000000 --- a/data/mapHeaders/SeafoamIslandsB3F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SeafoamIslandsB3F_h: - db CAVERN ; tileset - db SEAFOAM_ISLANDS_B3F_HEIGHT, SEAFOAM_ISLANDS_B3F_WIDTH ; dimensions (y, x) - dw SeafoamIslandsB3F_Blocks ; blocks - dw SeafoamIslandsB3F_TextPointers ; texts - dw SeafoamIslandsB3F_Script ; scripts - db 0 ; connections - dw SeafoamIslandsB3F_Object ; objects diff --git a/data/mapHeaders/SeafoamIslandsB4F.asm b/data/mapHeaders/SeafoamIslandsB4F.asm deleted file mode 100755 index 96c25e068..000000000 --- a/data/mapHeaders/SeafoamIslandsB4F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SeafoamIslandsB4F_h: - db CAVERN ; tileset - db SEAFOAM_ISLANDS_B4F_HEIGHT, SEAFOAM_ISLANDS_B4F_WIDTH ; dimensions (y, x) - dw SeafoamIslandsB4F_Blocks ; blocks - dw SeafoamIslandsB4F_TextPointers ; texts - dw SeafoamIslandsB4F_Script ; scripts - db 0 ; connections - dw SeafoamIslandsB4F_Object ; objects diff --git a/data/mapHeaders/SilphCo10F.asm b/data/mapHeaders/SilphCo10F.asm deleted file mode 100755 index ad0404790..000000000 --- a/data/mapHeaders/SilphCo10F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SilphCo10F_h: - db FACILITY ; tileset - db SILPH_CO_10F_HEIGHT, SILPH_CO_10F_WIDTH ; dimensions (y, x) - dw SilphCo10F_Blocks ; blocks - dw SilphCo10F_TextPointers ; texts - dw SilphCo10F_Script ; scripts - db 0 ; connections - dw SilphCo10F_Object ; objects diff --git a/data/mapHeaders/SilphCo11F.asm b/data/mapHeaders/SilphCo11F.asm deleted file mode 100755 index 08d6d650b..000000000 --- a/data/mapHeaders/SilphCo11F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SilphCo11F_h: - db INTERIOR ; tileset - db SILPH_CO_11F_HEIGHT, SILPH_CO_11F_WIDTH ; dimensions (y, x) - dw SilphCo11F_Blocks ; blocks - dw SilphCo11F_TextPointers ; texts - dw SilphCo11F_Script ; scripts - db 0 ; connections - dw SilphCo11F_Object ; objects diff --git a/data/mapHeaders/SilphCo1F.asm b/data/mapHeaders/SilphCo1F.asm deleted file mode 100755 index 45e6c5bfd..000000000 --- a/data/mapHeaders/SilphCo1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SilphCo1F_h: - db FACILITY ; tileset - db SILPH_CO_1F_HEIGHT, SILPH_CO_1F_WIDTH ; dimensions (y, x) - dw SilphCo1F_Blocks ; blocks - dw SilphCo1F_TextPointers ; texts - dw SilphCo1F_Script ; scripts - db 0 ; connections - dw SilphCo1F_Object ; objects diff --git a/data/mapHeaders/SilphCo2F.asm b/data/mapHeaders/SilphCo2F.asm deleted file mode 100755 index 69c2fb518..000000000 --- a/data/mapHeaders/SilphCo2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SilphCo2F_h: - db FACILITY ; tileset - db SILPH_CO_2F_HEIGHT, SILPH_CO_2F_WIDTH ; dimensions (y, x) - dw SilphCo2F_Blocks ; blocks - dw SilphCo2F_TextPointers ; texts - dw SilphCo2F_Script ; scripts - db 0 ; connections - dw SilphCo2F_Object ; objects diff --git a/data/mapHeaders/SilphCo3F.asm b/data/mapHeaders/SilphCo3F.asm deleted file mode 100755 index 6911a6041..000000000 --- a/data/mapHeaders/SilphCo3F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SilphCo3F_h: - db FACILITY ; tileset - db SILPH_CO_3F_HEIGHT, SILPH_CO_3F_WIDTH ; dimensions (y, x) - dw SilphCo3F_Blocks ; blocks - dw SilphCo3F_TextPointers ; texts - dw SilphCo3F_Script ; scripts - db 0 ; connections - dw SilphCo3F_Object ; objects diff --git a/data/mapHeaders/SilphCo4F.asm b/data/mapHeaders/SilphCo4F.asm deleted file mode 100755 index 591ddc074..000000000 --- a/data/mapHeaders/SilphCo4F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SilphCo4F_h: - db FACILITY ; tileset - db SILPH_CO_4F_HEIGHT, SILPH_CO_4F_WIDTH ; dimensions (y, x) - dw SilphCo4F_Blocks ; blocks - dw SilphCo4F_TextPointers ; texts - dw SilphCo4F_Script ; scripts - db 0 ; connections - dw SilphCo4F_Object ; objects diff --git a/data/mapHeaders/SilphCo5F.asm b/data/mapHeaders/SilphCo5F.asm deleted file mode 100755 index 0303cebad..000000000 --- a/data/mapHeaders/SilphCo5F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SilphCo5F_h: - db FACILITY ; tileset - db SILPH_CO_5F_HEIGHT, SILPH_CO_5F_WIDTH ; dimensions (y, x) - dw SilphCo5F_Blocks ; blocks - dw SilphCo5F_TextPointers ; texts - dw SilphCo5F_Script ; scripts - db 0 ; connections - dw SilphCo5F_Object ; objects diff --git a/data/mapHeaders/SilphCo6F.asm b/data/mapHeaders/SilphCo6F.asm deleted file mode 100755 index b26a75870..000000000 --- a/data/mapHeaders/SilphCo6F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SilphCo6F_h: - db FACILITY ; tileset - db SILPH_CO_6F_HEIGHT, SILPH_CO_6F_WIDTH ; dimensions (y, x) - dw SilphCo6F_Blocks ; blocks - dw SilphCo6F_TextPointers ; texts - dw SilphCo6F_Script ; scripts - db 0 ; connections - dw SilphCo6F_Object ; objects diff --git a/data/mapHeaders/SilphCo7F.asm b/data/mapHeaders/SilphCo7F.asm deleted file mode 100755 index 5c6ea9590..000000000 --- a/data/mapHeaders/SilphCo7F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SilphCo7F_h: - db FACILITY ; tileset - db SILPH_CO_7F_HEIGHT, SILPH_CO_7F_WIDTH ; dimensions (y, x) - dw SilphCo7F_Blocks ; blocks - dw SilphCo7F_TextPointers ; texts - dw SilphCo7F_Script ; scripts - db 0 ; connections - dw SilphCo7F_Object ; objects diff --git a/data/mapHeaders/SilphCo8F.asm b/data/mapHeaders/SilphCo8F.asm deleted file mode 100755 index e467298e1..000000000 --- a/data/mapHeaders/SilphCo8F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SilphCo8F_h: - db FACILITY ; tileset - db SILPH_CO_8F_HEIGHT, SILPH_CO_8F_WIDTH ; dimensions (y, x) - dw SilphCo8F_Blocks ; blocks - dw SilphCo8F_TextPointers ; texts - dw SilphCo8F_Script ; scripts - db 0 ; connections - dw SilphCo8F_Object ; objects diff --git a/data/mapHeaders/SilphCo9F.asm b/data/mapHeaders/SilphCo9F.asm deleted file mode 100755 index ec591e514..000000000 --- a/data/mapHeaders/SilphCo9F.asm +++ /dev/null @@ -1,8 +0,0 @@ -SilphCo9F_h: - db FACILITY ; tileset - db SILPH_CO_9F_HEIGHT, SILPH_CO_9F_WIDTH ; dimensions (y, x) - dw SilphCo9F_Blocks ; blocks - dw SilphCo9F_TextPointers ; texts - dw SilphCo9F_Script ; scripts - db 0 ; connections - dw SilphCo9F_Object ; objects diff --git a/data/mapHeaders/SilphCoElevator.asm b/data/mapHeaders/SilphCoElevator.asm deleted file mode 100755 index 0abe2810b..000000000 --- a/data/mapHeaders/SilphCoElevator.asm +++ /dev/null @@ -1,8 +0,0 @@ -SilphCoElevator_h: - db LOBBY ; tileset - db SILPH_CO_ELEVATOR_HEIGHT, SILPH_CO_ELEVATOR_WIDTH ; dimensions (y, x) - dw SilphCoElevator_Blocks ; blocks - dw SilphCoElevator_TextPointers ; texts - dw SilphCoElevator_Script ; scripts - db 0 ; connections - dw SilphCoElevator_Object ; objects diff --git a/data/mapHeaders/TradeCenter.asm b/data/mapHeaders/TradeCenter.asm deleted file mode 100755 index 39981c358..000000000 --- a/data/mapHeaders/TradeCenter.asm +++ /dev/null @@ -1,8 +0,0 @@ -TradeCenter_h: - db CLUB ; tileset - db TRADE_CENTER_HEIGHT, TRADE_CENTER_WIDTH ; dimensions (y, x) - dw TradeCenter_Blocks ; blocks - dw TradeCenter_TextPointers ; texts - dw TradeCenter_Script ; scripts - db 0 ; connections - dw TradeCenter_Object ; objects diff --git a/data/mapHeaders/UndergroundPathNorthSouth.asm b/data/mapHeaders/UndergroundPathNorthSouth.asm deleted file mode 100755 index 5dd8cdf8d..000000000 --- a/data/mapHeaders/UndergroundPathNorthSouth.asm +++ /dev/null @@ -1,8 +0,0 @@ -UndergroundPathNorthSouth_h: - db UNDERGROUND ; tileset - db UNDERGROUND_PATH_NORTH_SOUTH_HEIGHT, UNDERGROUND_PATH_NORTH_SOUTH_WIDTH ; dimensions (y, x) - dw UndergroundPathNorthSouth_Blocks ; blocks - dw UndergroundPathNorthSouth_TextPointers ; texts - dw UndergroundPathNorthSouth_Script ; scripts - db 0 ; connections - dw UndergroundPathNorthSouth_Object ; objects diff --git a/data/mapHeaders/UndergroundPathRoute5.asm b/data/mapHeaders/UndergroundPathRoute5.asm deleted file mode 100755 index 14c6aa4dd..000000000 --- a/data/mapHeaders/UndergroundPathRoute5.asm +++ /dev/null @@ -1,8 +0,0 @@ -UndergroundPathRoute5_h: - db GATE ; tileset - db UNDERGROUND_PATH_ROUTE_5_HEIGHT, UNDERGROUND_PATH_ROUTE_5_WIDTH ; dimensions (y, x) - dw UndergroundPathRoute5_Blocks ; blocks - dw UndergroundPathRoute5_TextPointers ; texts - dw UndergroundPathRoute5_Script ; scripts - db 0 ; connections - dw UndergroundPathRoute5_Object ; objects diff --git a/data/mapHeaders/UndergroundPathRoute6.asm b/data/mapHeaders/UndergroundPathRoute6.asm deleted file mode 100755 index 6aea459c3..000000000 --- a/data/mapHeaders/UndergroundPathRoute6.asm +++ /dev/null @@ -1,8 +0,0 @@ -UndergroundPathRoute6_h: - db GATE ; tileset - db UNDERGROUND_PATH_ROUTE_6_HEIGHT, UNDERGROUND_PATH_ROUTE_6_WIDTH ; dimensions (y, x) - dw UndergroundPathRoute6_Blocks ; blocks - dw UndergroundPathRoute6_TextPointers ; texts - dw UndergroundPathRoute6_Script ; scripts - db 0 ; connections - dw UndergroundPathRoute6_Object ; objects diff --git a/data/mapHeaders/UndergroundPathRoute7.asm b/data/mapHeaders/UndergroundPathRoute7.asm deleted file mode 100755 index 91495ea37..000000000 --- a/data/mapHeaders/UndergroundPathRoute7.asm +++ /dev/null @@ -1,8 +0,0 @@ -UndergroundPathRoute7_h: - db GATE ; tileset - db UNDERGROUND_PATH_ROUTE_7_HEIGHT, UNDERGROUND_PATH_ROUTE_7_WIDTH ; dimensions (y, x) - dw UndergroundPathRoute7_Blocks ; blocks - dw UndergroundPathRoute7_TextPointers ; texts - dw UndergroundPathRoute7_Script ; scripts - db 0 ; connections - dw UndergroundPathRoute7_Object ; objects diff --git a/data/mapHeaders/UndergroundPathRoute7Copy.asm b/data/mapHeaders/UndergroundPathRoute7Copy.asm deleted file mode 100755 index 9d3f4c620..000000000 --- a/data/mapHeaders/UndergroundPathRoute7Copy.asm +++ /dev/null @@ -1,8 +0,0 @@ -UndergroundPathRoute7Copy_h: - db GATE ; tileset - db UNDERGROUND_PATH_ROUTE_7_HEIGHT, UNDERGROUND_PATH_ROUTE_7_WIDTH ; dimensions (y, x) - dw UndergroundPathRoute7Copy_Blocks ; blocks - dw UndergroundPathRoute7Copy_TextPointers ; texts - dw UndergroundPathRoute7Copy_Script ; scripts - db 0 ; connections - dw UndergroundPathRoute7Copy_Object ; objects diff --git a/data/mapHeaders/UndergroundPathRoute8.asm b/data/mapHeaders/UndergroundPathRoute8.asm deleted file mode 100755 index f34265b8a..000000000 --- a/data/mapHeaders/UndergroundPathRoute8.asm +++ /dev/null @@ -1,8 +0,0 @@ -UndergroundPathRoute8_h: - db GATE ; tileset - db UNDERGROUND_PATH_ROUTE_8_HEIGHT, UNDERGROUND_PATH_ROUTE_8_WIDTH ; dimensions (y, x) - dw UndergroundPathRoute8_Blocks ; blocks - dw UndergroundPathRoute8_TextPointers ; texts - dw UndergroundPathRoute8_Script ; scripts - db 0 ; connections - dw UndergroundPathRoute8_Object ; objects diff --git a/data/mapHeaders/UndergroundPathWestEast.asm b/data/mapHeaders/UndergroundPathWestEast.asm deleted file mode 100755 index d084bd735..000000000 --- a/data/mapHeaders/UndergroundPathWestEast.asm +++ /dev/null @@ -1,8 +0,0 @@ -UndergroundPathWestEast_h: - db UNDERGROUND ; tileset - db UNDERGROUND_PATH_WEST_EAST_HEIGHT, UNDERGROUND_PATH_WEST_EAST_WIDTH ; dimensions (y, x) - dw UndergroundPathWestEast_Blocks ; blocks - dw UndergroundPathWestEast_TextPointers ; texts - dw UndergroundPathWestEast_Script ; scripts - db 0 ; connections - dw UndergroundPathWestEast_Object ; objects diff --git a/data/mapHeaders/VermilionCity.asm b/data/mapHeaders/VermilionCity.asm deleted file mode 100755 index 6521ad89a..000000000 --- a/data/mapHeaders/VermilionCity.asm +++ /dev/null @@ -1,10 +0,0 @@ -VermilionCity_h: - db OVERWORLD ; tileset - db VERMILION_CITY_HEIGHT, VERMILION_CITY_WIDTH ; dimensions (y, x) - dw VermilionCity_Blocks ; blocks - dw VermilionCity_TextPointers ; texts - dw VermilionCity_Script ; scripts - db NORTH | EAST ; connections - NORTH_MAP_CONNECTION VERMILION_CITY, ROUTE_6, 5, 0, Route6_Blocks - EAST_MAP_CONNECTION VERMILION_CITY, ROUTE_11, 4, 0, Route11_Blocks - dw VermilionCity_Object ; objects diff --git a/data/mapHeaders/VermilionDock.asm b/data/mapHeaders/VermilionDock.asm deleted file mode 100755 index f7dca8e6d..000000000 --- a/data/mapHeaders/VermilionDock.asm +++ /dev/null @@ -1,8 +0,0 @@ -VermilionDock_h: - db SHIP_PORT ; tileset - db VERMILION_DOCK_HEIGHT, VERMILION_DOCK_WIDTH ; dimensions (y, x) - dw VermilionDock_Blocks ; blocks - dw VermilionDock_TextPointers ; texts - dw VermilionDock_Script ; scripts - db 0 ; connections - dw VermilionDock_Object ; objects diff --git a/data/mapHeaders/VermilionGym.asm b/data/mapHeaders/VermilionGym.asm deleted file mode 100755 index fe304a2e3..000000000 --- a/data/mapHeaders/VermilionGym.asm +++ /dev/null @@ -1,8 +0,0 @@ -VermilionGym_h: - db GYM ; tileset - db VERMILION_GYM_HEIGHT, VERMILION_GYM_WIDTH ; dimensions (y, x) - dw VermilionGym_Blocks ; blocks - dw VermilionGym_TextPointers ; texts - dw VermilionGym_Script ; scripts - db 0 ; connections - dw VermilionGym_Object ; objects diff --git a/data/mapHeaders/VermilionMart.asm b/data/mapHeaders/VermilionMart.asm deleted file mode 100755 index 67f24f597..000000000 --- a/data/mapHeaders/VermilionMart.asm +++ /dev/null @@ -1,8 +0,0 @@ -VermilionMart_h: - db MART ; tileset - db VERMILION_MART_HEIGHT, VERMILION_MART_WIDTH ; dimensions (y, x) - dw VermilionMart_Blocks ; blocks - dw VermilionMart_TextPointers ; texts - dw VermilionMart_Script ; scripts - db 0 ; connections - dw VermilionMart_Object ; objects diff --git a/data/mapHeaders/VermilionOldRodHouse.asm b/data/mapHeaders/VermilionOldRodHouse.asm deleted file mode 100755 index f4b691100..000000000 --- a/data/mapHeaders/VermilionOldRodHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -VermilionOldRodHouse_h: - db HOUSE ; tileset - db VERMILION_OLD_ROD_HOUSE_HEIGHT, VERMILION_OLD_ROD_HOUSE_WIDTH ; dimensions (y, x) - dw VermilionOldRodHouse_Blocks ; blocks - dw VermilionOldRodHouse_TextPointers ; texts - dw VermilionOldRodHouse_Script ; scripts - db 0 ; connections - dw VermilionOldRodHouse_Object ; objects diff --git a/data/mapHeaders/VermilionPidgeyHouse.asm b/data/mapHeaders/VermilionPidgeyHouse.asm deleted file mode 100755 index af052fa6a..000000000 --- a/data/mapHeaders/VermilionPidgeyHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -VermilionPidgeyHouse_h: - db HOUSE ; tileset - db VERMILION_PIDGEY_HOUSE_HEIGHT, VERMILION_PIDGEY_HOUSE_WIDTH ; dimensions (y, x) - dw VermilionPidgeyHouse_Blocks ; blocks - dw VermilionPidgeyHouse_TextPointers ; texts - dw VermilionPidgeyHouse_Script ; scripts - db 0 ; connections - dw VermilionPidgeyHouse_Object ; objects diff --git a/data/mapHeaders/VermilionPokecenter.asm b/data/mapHeaders/VermilionPokecenter.asm deleted file mode 100755 index 3d4c23ec3..000000000 --- a/data/mapHeaders/VermilionPokecenter.asm +++ /dev/null @@ -1,8 +0,0 @@ -VermilionPokecenter_h: - db POKECENTER ; tileset - db VERMILION_POKECENTER_HEIGHT, VERMILION_POKECENTER_WIDTH ; dimensions (y, x) - dw VermilionPokecenter_Blocks ; blocks - dw VermilionPokecenter_TextPointers ; texts - dw VermilionPokecenter_Script ; scripts - db 0 ; connections - dw VermilionPokecenter_Object ; objects diff --git a/data/mapHeaders/VermilionTradeHouse.asm b/data/mapHeaders/VermilionTradeHouse.asm deleted file mode 100755 index 21d30049c..000000000 --- a/data/mapHeaders/VermilionTradeHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -VermilionTradeHouse_h: - db HOUSE ; tileset - db VERMILION_TRADE_HOUSE_HEIGHT, VERMILION_TRADE_HOUSE_WIDTH ; dimensions (y, x) - dw VermilionTradeHouse_Blocks ; blocks - dw VermilionTradeHouse_TextPointers ; texts - dw VermilionTradeHouse_Script ; scripts - db 0 ; connections - dw VermilionTradeHouse_Object ; objects diff --git a/data/mapHeaders/VictoryRoad1F.asm b/data/mapHeaders/VictoryRoad1F.asm deleted file mode 100755 index 3508d782d..000000000 --- a/data/mapHeaders/VictoryRoad1F.asm +++ /dev/null @@ -1,8 +0,0 @@ -VictoryRoad1F_h: - db CAVERN ; tileset - db VICTORY_ROAD_1F_HEIGHT, VICTORY_ROAD_1F_WIDTH ; dimensions (y, x) - dw VictoryRoad1F_Blocks ; blocks - dw VictoryRoad1F_TextPointers ; texts - dw VictoryRoad1F_Script ; scripts - db 0 ; connections - dw VictoryRoad1F_Object ; objects diff --git a/data/mapHeaders/VictoryRoad2F.asm b/data/mapHeaders/VictoryRoad2F.asm deleted file mode 100755 index 31693c1ca..000000000 --- a/data/mapHeaders/VictoryRoad2F.asm +++ /dev/null @@ -1,8 +0,0 @@ -VictoryRoad2F_h: - db CAVERN ; tileset - db VICTORY_ROAD_2F_HEIGHT, VICTORY_ROAD_2F_WIDTH ; dimensions (y, x) - dw VictoryRoad2F_Blocks ; blocks - dw VictoryRoad2F_TextPointers ; texts - dw VictoryRoad2F_Script ; scripts - db 0 ; connections - dw VictoryRoad2F_Object ; objects diff --git a/data/mapHeaders/VictoryRoad3F.asm b/data/mapHeaders/VictoryRoad3F.asm deleted file mode 100755 index 3f5e21d22..000000000 --- a/data/mapHeaders/VictoryRoad3F.asm +++ /dev/null @@ -1,8 +0,0 @@ -VictoryRoad3F_h: - db CAVERN ; tileset - db VICTORY_ROAD_3F_HEIGHT, VICTORY_ROAD_3F_WIDTH ; dimensions (y, x) - dw VictoryRoad3F_Blocks ; blocks - dw VictoryRoad3F_TextPointers ; texts - dw VictoryRoad3F_Script ; scripts - db 0 ; connections - dw VictoryRoad3F_Object ; objects diff --git a/data/mapHeaders/ViridianCity.asm b/data/mapHeaders/ViridianCity.asm deleted file mode 100755 index 09f7b9f48..000000000 --- a/data/mapHeaders/ViridianCity.asm +++ /dev/null @@ -1,11 +0,0 @@ -ViridianCity_h: - db OVERWORLD ; tileset - db VIRIDIAN_CITY_HEIGHT, VIRIDIAN_CITY_WIDTH ; dimensions (y, x) - dw ViridianCity_Blocks ; blocks - dw ViridianCity_TextPointers ; texts - dw ViridianCity_Script ; scripts - db NORTH | SOUTH | WEST ; connections - NORTH_MAP_CONNECTION VIRIDIAN_CITY, ROUTE_2, 5, 0, Route2_Blocks - SOUTH_MAP_CONNECTION VIRIDIAN_CITY, ROUTE_1, 5, 0, Route1_Blocks, 1 - WEST_MAP_CONNECTION VIRIDIAN_CITY, ROUTE_22, 4, 0, Route22_Blocks - dw ViridianCity_Object ; objects diff --git a/data/mapHeaders/ViridianForest.asm b/data/mapHeaders/ViridianForest.asm deleted file mode 100755 index a8df3e6ed..000000000 --- a/data/mapHeaders/ViridianForest.asm +++ /dev/null @@ -1,8 +0,0 @@ -ViridianForest_h: - db FOREST ; tileset - db VIRIDIAN_FOREST_HEIGHT, VIRIDIAN_FOREST_WIDTH ; dimensions (y, x) - dw ViridianForest_Blocks ; blocks - dw ViridianForest_TextPointers ; texts - dw ViridianForest_Script ; scripts - db 0 ; connections - dw ViridianForest_Object ; objects diff --git a/data/mapHeaders/ViridianForestNorthGate.asm b/data/mapHeaders/ViridianForestNorthGate.asm deleted file mode 100755 index 485359775..000000000 --- a/data/mapHeaders/ViridianForestNorthGate.asm +++ /dev/null @@ -1,8 +0,0 @@ -ViridianForestNorthGate_h: - db FOREST_GATE ; tileset - db VIRIDIAN_FOREST_NORTH_GATE_HEIGHT, VIRIDIAN_FOREST_NORTH_GATE_WIDTH ; dimensions (y, x) - dw ViridianForestNorthGate_Blocks ; blocks - dw ViridianForestNorthGate_TextPointers ; texts - dw ViridianForestNorthGate_Script ; scripts - db 0 ; connections - dw ViridianForestNorthGate_Object ; objects diff --git a/data/mapHeaders/ViridianForestSouthGate.asm b/data/mapHeaders/ViridianForestSouthGate.asm deleted file mode 100755 index b134ebea8..000000000 --- a/data/mapHeaders/ViridianForestSouthGate.asm +++ /dev/null @@ -1,8 +0,0 @@ -ViridianForestSouthGate_h: - db FOREST_GATE ; tileset - db VIRIDIAN_FOREST_SOUTH_GATE_HEIGHT, VIRIDIAN_FOREST_SOUTH_GATE_WIDTH ; dimensions (y, x) - dw ViridianForestSouthGate_Blocks ; blocks - dw ViridianForestSouthGate_TextPointers ; texts - dw ViridianForestSouthGate_Script ; scripts - db 0 ; connections - dw ViridianForestSouthGate_Object ; objects diff --git a/data/mapHeaders/ViridianGym.asm b/data/mapHeaders/ViridianGym.asm deleted file mode 100755 index 9b27845c0..000000000 --- a/data/mapHeaders/ViridianGym.asm +++ /dev/null @@ -1,8 +0,0 @@ -ViridianGym_h: - db GYM ; tileset - db VIRIDIAN_GYM_HEIGHT, VIRIDIAN_GYM_WIDTH ; dimensions (y, x) - dw ViridianGym_Blocks ; blocks - dw ViridianGym_TextPointers ; texts - dw ViridianGym_Script ; scripts - db 0 ; connections - dw ViridianGym_Object ; objects diff --git a/data/mapHeaders/ViridianMart.asm b/data/mapHeaders/ViridianMart.asm deleted file mode 100755 index 063f33278..000000000 --- a/data/mapHeaders/ViridianMart.asm +++ /dev/null @@ -1,8 +0,0 @@ -ViridianMart_h: - db MART ; tileset - db VIRIDIAN_MART_HEIGHT, VIRIDIAN_MART_WIDTH ; dimensions (y, x) - dw ViridianMart_Blocks ; blocks - dw ViridianMart_TextPointers ; texts - dw ViridianMart_Script ; scripts - db 0 ; connections - dw ViridianMart_Object ; objects diff --git a/data/mapHeaders/ViridianNicknameHouse.asm b/data/mapHeaders/ViridianNicknameHouse.asm deleted file mode 100755 index b6a00392c..000000000 --- a/data/mapHeaders/ViridianNicknameHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -ViridianNicknameHouse_h: - db HOUSE ; tileset - db VIRIDIAN_NICKNAME_HOUSE_HEIGHT, VIRIDIAN_NICKNAME_HOUSE_WIDTH ; dimensions (y, x) - dw ViridianNicknameHouse_Blocks ; blocks - dw ViridianNicknameHouse_TextPointers ; texts - dw ViridianNicknameHouse_Script ; scripts - db 0 ; connections - dw ViridianNicknameHouse_Object ; objects diff --git a/data/mapHeaders/ViridianPokecenter.asm b/data/mapHeaders/ViridianPokecenter.asm deleted file mode 100755 index 25c569d82..000000000 --- a/data/mapHeaders/ViridianPokecenter.asm +++ /dev/null @@ -1,8 +0,0 @@ -ViridianPokecenter_h: - db POKECENTER ; tileset - db VIRIDIAN_POKECENTER_HEIGHT, VIRIDIAN_POKECENTER_WIDTH ; dimensions (y, x) - dw ViridianPokecenter_Blocks ; blocks - dw ViridianPokecenter_TextPointers ; texts - dw ViridianPokecenter_Script ; scripts - db 0 ; connections - dw ViridianPokecenter_Object ; objects diff --git a/data/mapHeaders/ViridianSchoolHouse.asm b/data/mapHeaders/ViridianSchoolHouse.asm deleted file mode 100755 index 15e5c88fb..000000000 --- a/data/mapHeaders/ViridianSchoolHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -ViridianSchoolHouse_h: - db HOUSE ; tileset - db VIRIDIAN_SCHOOL_HOUSE_HEIGHT, VIRIDIAN_SCHOOL_HOUSE_WIDTH ; dimensions (y, x) - dw ViridianSchoolHouse_Blocks ; blocks - dw ViridianSchoolHouse_TextPointers ; texts - dw ViridianSchoolHouse_Script ; scripts - db 0 ; connections - dw ViridianSchoolHouse_Object ; objects diff --git a/data/mapHeaders/WardensHouse.asm b/data/mapHeaders/WardensHouse.asm deleted file mode 100755 index 128e357ac..000000000 --- a/data/mapHeaders/WardensHouse.asm +++ /dev/null @@ -1,8 +0,0 @@ -WardensHouse_h: - db LAB ; tileset - db WARDENS_HOUSE_HEIGHT, WARDENS_HOUSE_WIDTH ; dimensions (y, x) - dw WardensHouse_Blocks ; blocks - dw WardensHouse_TextPointers ; texts - dw WardensHouse_Script ; scripts - db 0 ; connections - dw WardensHouse_Object ; objects diff --git a/data/mapObjects/AgathasRoom.asm b/data/mapObjects/AgathasRoom.asm deleted file mode 100755 index 4a82e78de..000000000 --- a/data/mapObjects/AgathasRoom.asm +++ /dev/null @@ -1,19 +0,0 @@ -AgathasRoom_Object: - db $0 ; border block - - db 4 ; warps - warp 4, 11, 2, BRUNOS_ROOM - warp 5, 11, 3, BRUNOS_ROOM - warp 4, 0, 0, LANCES_ROOM - warp 5, 0, 0, LANCES_ROOM - - db 0 ; signs - - db 1 ; objects - object SPRITE_AGATHA, 5, 2, STAY, DOWN, 1, OPP_AGATHA, 1 - - ; warp-to - warp_to 4, 11, AGATHAS_ROOM_WIDTH ; BRUNOS_ROOM - warp_to 5, 11, AGATHAS_ROOM_WIDTH ; BRUNOS_ROOM - warp_to 4, 0, AGATHAS_ROOM_WIDTH ; LANCES_ROOM - warp_to 5, 0, AGATHAS_ROOM_WIDTH ; LANCES_ROOM diff --git a/data/mapObjects/BeachHouse.asm b/data/mapObjects/BeachHouse.asm deleted file mode 100644 index 02bd8037b..000000000 --- a/data/mapObjects/BeachHouse.asm +++ /dev/null @@ -1,20 +0,0 @@ -BeachHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2,7,0,-1 - warp 3,7,0,-1 - - db 4 ; signs - sign 3,0,3 - sign 7,0,4 - sign 11,0,5 - sign 13,1,6 - - db 2 ; objects - object SPRITE_FISHER, 2, 3, STAY, DOWN, 1 ; surfin' dude - object $3d, 5, 3, WALK, $01, 2 ; pikachu - - ; warp-to - warp_to 2,7, BEACH_HOUSE_WIDTH - warp_to 3,7, BEACH_HOUSE_WIDTH diff --git a/data/mapObjects/BikeShop.asm b/data/mapObjects/BikeShop.asm deleted file mode 100755 index 9f21ab3e1..000000000 --- a/data/mapObjects/BikeShop.asm +++ /dev/null @@ -1,17 +0,0 @@ -BikeShop_Object: - db $e ; border block - - db 2 ; warps - warp 2, 7, 4, -1 - warp 3, 7, 4, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_BIKE_SHOP_GUY, 6, 2, STAY, NONE, 1 ; person - object SPRITE_MOM_GEISHA, 5, 6, WALK, 1, 2 ; person - object SPRITE_BUG_CATCHER, 1, 3, STAY, UP, 3 ; person - - ; warp-to - warp_to 2, 7, BIKE_SHOP_WIDTH - warp_to 3, 7, BIKE_SHOP_WIDTH diff --git a/data/mapObjects/BillsHouse.asm b/data/mapObjects/BillsHouse.asm deleted file mode 100755 index c8f708cbc..000000000 --- a/data/mapObjects/BillsHouse.asm +++ /dev/null @@ -1,17 +0,0 @@ -BillsHouse_Object: - db $d ; border block - - db 2 ; warps - warp 2, 7, 0, -1 - warp 3, 7, 0, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_SLOWBRO, 6, 5, STAY, NONE, 1 ; person - object SPRITE_BLACK_HAIR_BOY_2, 4, 4, STAY, NONE, 2 ; person - object SPRITE_BLACK_HAIR_BOY_2, 6, 5, STAY, NONE, 3 ; person - - ; warp-to - warp_to 2, 7, BILLS_HOUSE_WIDTH - warp_to 3, 7, BILLS_HOUSE_WIDTH diff --git a/data/mapObjects/BluesHouse.asm b/data/mapObjects/BluesHouse.asm deleted file mode 100755 index 24c5baab8..000000000 --- a/data/mapObjects/BluesHouse.asm +++ /dev/null @@ -1,17 +0,0 @@ -BluesHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 1, -1 - warp 3, 7, 1, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_DAISY, 2, 3, STAY, RIGHT, 1, 0 ; Daisy, sitting by map - object SPRITE_DAISY, 6, 4, WALK, 1, 2, 0 ; Daisy, walking around - object SPRITE_BOOK_MAP_DEX, 3, 3, STAY, NONE, 3, 0 ; map on table - - ; warp-to - warp_to 2, 7, BLUES_HOUSE_WIDTH - warp_to 3, 7, BLUES_HOUSE_WIDTH diff --git a/data/mapObjects/BrunosRoom.asm b/data/mapObjects/BrunosRoom.asm deleted file mode 100755 index dde1e2dd0..000000000 --- a/data/mapObjects/BrunosRoom.asm +++ /dev/null @@ -1,19 +0,0 @@ -BrunosRoom_Object: - db $3 ; border block - - db 4 ; warps - warp 4, 11, 2, LORELEIS_ROOM - warp 5, 11, 3, LORELEIS_ROOM - warp 4, 0, 0, AGATHAS_ROOM - warp 5, 0, 1, AGATHAS_ROOM - - db 0 ; signs - - db 1 ; objects - object SPRITE_BRUNO, 5, 2, STAY, DOWN, 1, OPP_BRUNO, 1 - - ; warp-to - warp_to 4, 11, BRUNOS_ROOM_WIDTH ; LORELEIS_ROOM - warp_to 5, 11, BRUNOS_ROOM_WIDTH ; LORELEIS_ROOM - warp_to 4, 0, BRUNOS_ROOM_WIDTH ; AGATHAS_ROOM - warp_to 5, 0, BRUNOS_ROOM_WIDTH ; AGATHAS_ROOM diff --git a/data/mapObjects/CeladonChiefHouse.asm b/data/mapObjects/CeladonChiefHouse.asm deleted file mode 100755 index 88850f35b..000000000 --- a/data/mapObjects/CeladonChiefHouse.asm +++ /dev/null @@ -1,17 +0,0 @@ -CeladonChiefHouse_Object: - db $f ; border block - - db 2 ; warps - warp 2, 7, 11, -1 - warp 3, 7, 11, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_OLD_PERSON, 4, 2, STAY, DOWN, 1 ; person - object SPRITE_ROCKET, 1, 4, WALK, 0, 2 ; person - object SPRITE_SAILOR, 5, 6, STAY, LEFT, 3 ; person - - ; warp-to - warp_to 2, 7, CELADON_CHIEF_HOUSE_WIDTH - warp_to 3, 7, CELADON_CHIEF_HOUSE_WIDTH diff --git a/data/mapObjects/CeladonCity.asm b/data/mapObjects/CeladonCity.asm deleted file mode 100755 index 005fc61ec..000000000 --- a/data/mapObjects/CeladonCity.asm +++ /dev/null @@ -1,54 +0,0 @@ -CeladonCity_Object: - db $f ; border block - - db 13 ; warps - warp 8, 13, 0, CELADON_MART_1F - warp 10, 13, 2, CELADON_MART_1F - warp 24, 9, 0, CELADON_MANSION_1F - warp 24, 3, 2, CELADON_MANSION_1F - warp 25, 3, 2, CELADON_MANSION_1F - warp 41, 9, 0, CELADON_POKECENTER - warp 12, 27, 0, CELADON_GYM - warp 28, 19, 0, GAME_CORNER - warp 39, 19, 0, CELADON_MART_5F ; beta warp! no longer used - warp 33, 19, 0, GAME_CORNER_PRIZE_ROOM - warp 31, 27, 0, CELADON_DINER - warp 35, 27, 0, CELADON_CHIEF_HOUSE - warp 43, 27, 0, CELADON_HOTEL - - db 9 ; signs - sign 27, 15, 10 ; CeladonCityText10 - sign 19, 15, 11 ; CeladonCityText11 - sign 42, 9, 12 ; PokeCenterSignText - sign 13, 29, 13 ; CeladonCityText13 - sign 21, 9, 14 ; CeladonCityText14 - sign 12, 13, 15 ; CeladonCityText15 - sign 39, 21, 16 ; CeladonCityText16 - sign 33, 21, 17 ; CeladonCityText17 - sign 27, 21, 18 ; CeladonCityText18 - - db 9 ; objects - object SPRITE_LITTLE_GIRL, 8, 17, WALK, 0, 1 ; person - object SPRITE_OLD_PERSON, 11, 28, STAY, UP, 2 ; person - object SPRITE_GIRL, 14, 19, WALK, 1, 3 ; person - object SPRITE_OLD_PERSON, 25, 22, STAY, DOWN, 4 ; person - object SPRITE_OLD_PERSON, 22, 16, STAY, DOWN, 5 ; person - object SPRITE_FISHER2, 32, 12, STAY, LEFT, 6 ; person - object SPRITE_SLOWBRO, 30, 12, STAY, RIGHT, 7 ; person - object SPRITE_ROCKET, 32, 29, WALK, 2, 8 ; person - object SPRITE_ROCKET, 42, 14, WALK, 2, 9 ; person - - ; warp-to - warp_to 8, 13, CELADON_CITY_WIDTH ; CELADON_MART_1F - warp_to 10, 13, CELADON_CITY_WIDTH ; CELADON_MART_1F - warp_to 24, 9, CELADON_CITY_WIDTH ; CELADON_MANSION_1F - warp_to 24, 3, CELADON_CITY_WIDTH ; CELADON_MANSION_1F - warp_to 25, 3, CELADON_CITY_WIDTH ; CELADON_MANSION_1F - warp_to 41, 9, CELADON_CITY_WIDTH ; CELADON_POKECENTER - warp_to 12, 27, CELADON_CITY_WIDTH ; CELADON_GYM - warp_to 28, 19, CELADON_CITY_WIDTH ; GAME_CORNER - warp_to 39, 19, CELADON_CITY_WIDTH ; CELADON_MART_5F - warp_to 33, 19, CELADON_CITY_WIDTH ; GAME_CORNER_PRIZE_ROOM - warp_to 31, 27, CELADON_CITY_WIDTH ; CELADON_DINER - warp_to 35, 27, CELADON_CITY_WIDTH ; CELADON_CHIEF_HOUSE - warp_to 43, 27, CELADON_CITY_WIDTH ; CELADON_HOTEL diff --git a/data/mapObjects/CeladonDiner.asm b/data/mapObjects/CeladonDiner.asm deleted file mode 100755 index 0a4a895d1..000000000 --- a/data/mapObjects/CeladonDiner.asm +++ /dev/null @@ -1,19 +0,0 @@ -CeladonDiner_Object: - db $f ; border block - - db 2 ; warps - warp 3, 7, 10, -1 - warp 4, 7, 10, -1 - - db 0 ; signs - - db 5 ; objects - object SPRITE_COOK, 8, 5, WALK, 2, 1 ; person - object SPRITE_MOM_GEISHA, 7, 2, STAY, NONE, 2 ; person - object SPRITE_FAT_BALD_GUY, 1, 4, STAY, DOWN, 3 ; person - object SPRITE_FISHER2, 5, 3, STAY, RIGHT, 4 ; person - object SPRITE_GYM_HELPER, 0, 1, STAY, DOWN, 5 ; person - - ; warp-to - warp_to 3, 7, CELADON_DINER_WIDTH - warp_to 4, 7, CELADON_DINER_WIDTH diff --git a/data/mapObjects/CeladonGym.asm b/data/mapObjects/CeladonGym.asm deleted file mode 100755 index 98fce576d..000000000 --- a/data/mapObjects/CeladonGym.asm +++ /dev/null @@ -1,22 +0,0 @@ -CeladonGym_Object: - db $3 ; border block - - db 2 ; warps - warp 4, 17, 6, -1 - warp 5, 17, 6, -1 - - db 0 ; signs - - db 8 ; objects - object SPRITE_ERIKA, 4, 3, STAY, DOWN, 1, OPP_ERIKA, 1 - object SPRITE_LASS, 2, 11, STAY, RIGHT, 2, OPP_LASS, 17 - object SPRITE_FOULARD_WOMAN, 7, 10, STAY, LEFT, 3, OPP_BEAUTY, 1 - object SPRITE_LASS, 9, 5, STAY, DOWN, 4, OPP_JR_TRAINER_F, 11 - object SPRITE_FOULARD_WOMAN, 1, 5, STAY, DOWN, 5, OPP_BEAUTY, 2 - object SPRITE_LASS, 6, 3, STAY, DOWN, 6, OPP_LASS, 18 - object SPRITE_FOULARD_WOMAN, 3, 3, STAY, DOWN, 7, OPP_BEAUTY, 3 - object SPRITE_LASS, 5, 3, STAY, DOWN, 8, OPP_COOLTRAINER_F, 1 - - ; warp-to - warp_to 4, 17, CELADON_GYM_WIDTH - warp_to 5, 17, CELADON_GYM_WIDTH diff --git a/data/mapObjects/CeladonHotel.asm b/data/mapObjects/CeladonHotel.asm deleted file mode 100755 index f4aa1305a..000000000 --- a/data/mapObjects/CeladonHotel.asm +++ /dev/null @@ -1,17 +0,0 @@ -CeladonHotel_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 12, -1 - warp 4, 7, 12, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_OLD_MEDIUM_WOMAN, 3, 1, STAY, DOWN, 1 ; person - object SPRITE_FOULARD_WOMAN, 2, 4, STAY, NONE, 2 ; person - object SPRITE_BLACK_HAIR_BOY_2, 8, 4, WALK, 2, 3 ; person - - ; warp-to - warp_to 3, 7, CELADON_HOTEL_WIDTH - warp_to 4, 7, CELADON_HOTEL_WIDTH diff --git a/data/mapObjects/CeladonMansion1F.asm b/data/mapObjects/CeladonMansion1F.asm deleted file mode 100755 index 1abd434cf..000000000 --- a/data/mapObjects/CeladonMansion1F.asm +++ /dev/null @@ -1,25 +0,0 @@ -CeladonMansion1F_Object: - db $f ; border block - - db 5 ; warps - warp 4, 11, 2, -1 - warp 5, 11, 2, -1 - warp 4, 0, 4, -1 - warp 7, 1, 1, CELADON_MANSION_2F - warp 2, 1, 2, CELADON_MANSION_2F - - db 1 ; signs - sign 4, 9, 5 ; CeladonMansion1Text5 - - db 4 ; objects - object SPRITE_SLOWBRO, 0, 5, STAY, RIGHT, 1 ; person - object SPRITE_OLD_MEDIUM_WOMAN, 1, 5, STAY, DOWN, 2 ; person - object SPRITE_CLEFAIRY, 1, 8, WALK, 2, 3 ; person - object SPRITE_SLOWBRO, 4, 4, WALK, 1, 4 ; person - - ; warp-to - warp_to 4, 11, CELADON_MANSION_1F_WIDTH - warp_to 5, 11, CELADON_MANSION_1F_WIDTH - warp_to 4, 0, CELADON_MANSION_1F_WIDTH - warp_to 7, 1, CELADON_MANSION_1F_WIDTH ; CELADON_MANSION_2F - warp_to 2, 1, CELADON_MANSION_1F_WIDTH ; CELADON_MANSION_2F diff --git a/data/mapObjects/CeladonMansion2F.asm b/data/mapObjects/CeladonMansion2F.asm deleted file mode 100755 index 09c94d291..000000000 --- a/data/mapObjects/CeladonMansion2F.asm +++ /dev/null @@ -1,19 +0,0 @@ -CeladonMansion2F_Object: - db $f ; border block - - db 4 ; warps - warp 6, 1, 0, CELADON_MANSION_3F - warp 7, 1, 3, CELADON_MANSION_1F - warp 2, 1, 4, CELADON_MANSION_1F - warp 4, 1, 3, CELADON_MANSION_3F - - db 1 ; signs - sign 4, 9, 1 ; CeladonMansion2Text1 - - db 0 ; objects - - ; warp-to - warp_to 6, 1, CELADON_MANSION_2F_WIDTH ; CELADON_MANSION_3F - warp_to 7, 1, CELADON_MANSION_2F_WIDTH ; CELADON_MANSION_1F - warp_to 2, 1, CELADON_MANSION_2F_WIDTH ; CELADON_MANSION_1F - warp_to 4, 1, CELADON_MANSION_2F_WIDTH ; CELADON_MANSION_3F diff --git a/data/mapObjects/CeladonMansion3F.asm b/data/mapObjects/CeladonMansion3F.asm deleted file mode 100755 index 32701f146..000000000 --- a/data/mapObjects/CeladonMansion3F.asm +++ /dev/null @@ -1,26 +0,0 @@ -CeladonMansion3F_Object: - db $f ; border block - - db 4 ; warps - warp 6, 1, 0, CELADON_MANSION_2F - warp 7, 1, 0, CELADON_MANSION_ROOF - warp 2, 1, 1, CELADON_MANSION_ROOF - warp 4, 1, 3, CELADON_MANSION_2F - - db 4 ; signs - sign 1, 3, 5 ; CeladonMansion3Text5 - sign 4, 3, 6 ; CeladonMansion3Text6 - sign 1, 6, 7 ; CeladonMansion3Text7 - sign 4, 9, 8 ; CeladonMansion3Text8 - - db 4 ; objects - object SPRITE_BIKE_SHOP_GUY, 0, 4, STAY, UP, 1 ; person - object SPRITE_MART_GUY, 3, 4, STAY, UP, 2 ; person - object SPRITE_BLACK_HAIR_BOY_2, 0, 7, STAY, UP, 3 ; person - object SPRITE_LAPRAS_GIVER, 2, 3, STAY, NONE, 4 ; person - - ; warp-to - warp_to 6, 1, CELADON_MANSION_3F_WIDTH ; CELADON_MANSION_2F - warp_to 7, 1, CELADON_MANSION_3F_WIDTH ; CELADON_MANSION_ROOF - warp_to 2, 1, CELADON_MANSION_3F_WIDTH ; CELADON_MANSION_ROOF - warp_to 4, 1, CELADON_MANSION_3F_WIDTH ; CELADON_MANSION_2F diff --git a/data/mapObjects/CeladonMansionRoof.asm b/data/mapObjects/CeladonMansionRoof.asm deleted file mode 100755 index 353b0b96f..000000000 --- a/data/mapObjects/CeladonMansionRoof.asm +++ /dev/null @@ -1,17 +0,0 @@ -CeladonMansionRoof_Object: - db $9 ; border block - - db 3 ; warps - warp 6, 1, 1, CELADON_MANSION_3F - warp 2, 1, 2, CELADON_MANSION_3F - warp 2, 7, 0, CELADON_MANSION_ROOF_HOUSE - - db 1 ; signs - sign 3, 7, 1 ; CeladonMansion4Text1 - - db 0 ; objects - - ; warp-to - warp_to 6, 1, CELADON_MANSION_ROOF_WIDTH ; CELADON_MANSION_3F - warp_to 2, 1, CELADON_MANSION_ROOF_WIDTH ; CELADON_MANSION_3F - warp_to 2, 7, CELADON_MANSION_ROOF_WIDTH ; CELADON_MANSION_ROOF_HOUSE diff --git a/data/mapObjects/CeladonMansionRoofHouse.asm b/data/mapObjects/CeladonMansionRoofHouse.asm deleted file mode 100755 index b6a6149f6..000000000 --- a/data/mapObjects/CeladonMansionRoofHouse.asm +++ /dev/null @@ -1,16 +0,0 @@ -CeladonMansionRoofHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 2, CELADON_MANSION_ROOF - warp 3, 7, 2, CELADON_MANSION_ROOF - - db 0 ; signs - - db 2 ; objects - object SPRITE_HIKER, 2, 2, STAY, DOWN, 1 ; person - object SPRITE_BALL, 4, 3, STAY, NONE, 2 ; person - - ; warp-to - warp_to 2, 7, CELADON_MANSION_ROOF_HOUSE_WIDTH ; CELADON_MANSION_ROOF - warp_to 3, 7, CELADON_MANSION_ROOF_HOUSE_WIDTH ; CELADON_MANSION_ROOF diff --git a/data/mapObjects/CeladonMart1F.asm b/data/mapObjects/CeladonMart1F.asm deleted file mode 100755 index 2037369ab..000000000 --- a/data/mapObjects/CeladonMart1F.asm +++ /dev/null @@ -1,25 +0,0 @@ -CeladonMart1F_Object: - db $f ; border block - - db 6 ; warps - warp 2, 7, 0, -1 - warp 3, 7, 0, -1 - warp 16, 7, 1, -1 - warp 17, 7, 1, -1 - warp 12, 1, 0, CELADON_MART_2F - warp 1, 1, 0, CELADON_MART_ELEVATOR - - db 2 ; signs - sign 11, 4, 2 ; CeladonMart1Text2 - sign 14, 1, 3 ; CeladonMart1Text3 - - db 1 ; objects - object SPRITE_CABLE_CLUB_WOMAN, 8, 3, STAY, DOWN, 1 ; person - - ; warp-to - warp_to 2, 7, CELADON_MART_1F_WIDTH - warp_to 3, 7, CELADON_MART_1F_WIDTH - warp_to 16, 7, CELADON_MART_1F_WIDTH - warp_to 17, 7, CELADON_MART_1F_WIDTH - warp_to 12, 1, CELADON_MART_1F_WIDTH ; CELADON_MART_2F - warp_to 1, 1, CELADON_MART_1F_WIDTH ; CELADON_MART_ELEVATOR diff --git a/data/mapObjects/CeladonMart2F.asm b/data/mapObjects/CeladonMart2F.asm deleted file mode 100755 index 2f5f428e2..000000000 --- a/data/mapObjects/CeladonMart2F.asm +++ /dev/null @@ -1,21 +0,0 @@ -CeladonMart2F_Object: - db $f ; border block - - db 3 ; warps - warp 12, 1, 4, CELADON_MART_1F - warp 16, 1, 1, CELADON_MART_3F - warp 1, 1, 0, CELADON_MART_ELEVATOR - - db 1 ; signs - sign 14, 1, 5 ; CeladonMart2Text5 - - db 4 ; objects - object SPRITE_MART_GUY, 5, 3, STAY, DOWN, 1 ; person - object SPRITE_MART_GUY, 6, 3, STAY, DOWN, 2 ; person - object SPRITE_FAT_BALD_GUY, 19, 5, STAY, NONE, 3 ; person - object SPRITE_GIRL, 14, 4, WALK, 1, 4 ; person - - ; warp-to - warp_to 12, 1, CELADON_MART_2F_WIDTH ; CELADON_MART_1F - warp_to 16, 1, CELADON_MART_2F_WIDTH ; CELADON_MART_3F - warp_to 1, 1, CELADON_MART_2F_WIDTH ; CELADON_MART_ELEVATOR diff --git a/data/mapObjects/CeladonMart3F.asm b/data/mapObjects/CeladonMart3F.asm deleted file mode 100755 index 6c6adfd49..000000000 --- a/data/mapObjects/CeladonMart3F.asm +++ /dev/null @@ -1,33 +0,0 @@ -CeladonMart3F_Object: - db $f ; border block - - db 3 ; warps - warp 12, 1, 0, CELADON_MART_4F - warp 16, 1, 1, CELADON_MART_2F - warp 1, 1, 0, CELADON_MART_ELEVATOR - - db 12 ; signs - sign 2, 4, 6 ; CeladonMart3Text6 - sign 3, 4, 7 ; CeladonMart3Text7 - sign 5, 4, 8 ; CeladonMart3Text8 - sign 6, 4, 9 ; CeladonMart3Text9 - sign 2, 6, 10 ; CeladonMart3Text10 - sign 3, 6, 11 ; CeladonMart3Text11 - sign 5, 6, 12 ; CeladonMart3Text12 - sign 6, 6, 13 ; CeladonMart3Text13 - sign 14, 1, 14 ; CeladonMart3Text14 - sign 4, 1, 15 ; CeladonMart3Text15 - sign 6, 1, 16 ; CeladonMart3Text16 - sign 10, 1, 17 ; CeladonMart3Text17 - - db 5 ; objects - object SPRITE_MART_GUY, 16, 5, STAY, NONE, 1 ; person - object SPRITE_GAMEBOY_KID, 11, 6, STAY, RIGHT, 2 ; person - object SPRITE_GAMEBOY_KID, 7, 2, STAY, DOWN, 3 ; person - object SPRITE_GAMEBOY_KID, 8, 2, STAY, DOWN, 4 ; person - object SPRITE_YOUNG_BOY, 2, 5, STAY, UP, 5 ; person - - ; warp-to - warp_to 12, 1, CELADON_MART_3F_WIDTH ; CELADON_MART_4F - warp_to 16, 1, CELADON_MART_3F_WIDTH ; CELADON_MART_2F - warp_to 1, 1, CELADON_MART_3F_WIDTH ; CELADON_MART_ELEVATOR diff --git a/data/mapObjects/CeladonMart4F.asm b/data/mapObjects/CeladonMart4F.asm deleted file mode 100755 index 18ba3bdc9..000000000 --- a/data/mapObjects/CeladonMart4F.asm +++ /dev/null @@ -1,20 +0,0 @@ -CeladonMart4F_Object: - db $f ; border block - - db 3 ; warps - warp 12, 1, 0, CELADON_MART_3F - warp 16, 1, 1, CELADON_MART_5F - warp 1, 1, 0, CELADON_MART_ELEVATOR - - db 1 ; signs - sign 14, 1, 4 ; CeladonMart4Text4 - - db 3 ; objects - object SPRITE_MART_GUY, 5, 7, STAY, NONE, 1 ; person - object SPRITE_BLACK_HAIR_BOY_2, 15, 5, WALK, 2, 2 ; person - object SPRITE_BUG_CATCHER, 5, 2, WALK, 2, 3 ; person - - ; warp-to - warp_to 12, 1, CELADON_MART_4F_WIDTH ; CELADON_MART_3F - warp_to 16, 1, CELADON_MART_4F_WIDTH ; CELADON_MART_5F - warp_to 1, 1, CELADON_MART_4F_WIDTH ; CELADON_MART_ELEVATOR diff --git a/data/mapObjects/CeladonMart5F.asm b/data/mapObjects/CeladonMart5F.asm deleted file mode 100755 index fb1201c9a..000000000 --- a/data/mapObjects/CeladonMart5F.asm +++ /dev/null @@ -1,21 +0,0 @@ -CeladonMart5F_Object: - db $f ; border block - - db 3 ; warps - warp 12, 1, 0, CELADON_MART_ROOF - warp 16, 1, 1, CELADON_MART_4F - warp 1, 1, 0, CELADON_MART_ELEVATOR - - db 1 ; signs - sign 14, 1, 5 ; CeladonMart5Text5 - - db 4 ; objects - object SPRITE_GENTLEMAN, 14, 5, WALK, 1, 1 ; person - object SPRITE_SAILOR, 2, 6, STAY, NONE, 2 ; person - object SPRITE_MART_GUY, 5, 3, STAY, DOWN, 3 ; person - object SPRITE_MART_GUY, 6, 3, STAY, DOWN, 4 ; person - - ; warp-to - warp_to 12, 1, CELADON_MART_5F_WIDTH ; CELADON_MART_ROOF - warp_to 16, 1, CELADON_MART_5F_WIDTH ; CELADON_MART_4F - warp_to 1, 1, CELADON_MART_5F_WIDTH ; CELADON_MART_ELEVATOR diff --git a/data/mapObjects/CeladonMartElevator.asm b/data/mapObjects/CeladonMartElevator.asm deleted file mode 100755 index 9688daefd..000000000 --- a/data/mapObjects/CeladonMartElevator.asm +++ /dev/null @@ -1,15 +0,0 @@ -CeladonMartElevator_Object: - db $f ; border block - - db 2 ; warps - warp 1, 3, 5, CELADON_MART_1F - warp 2, 3, 5, CELADON_MART_1F - - db 1 ; signs - sign 3, 0, 1 ; CeladonMartElevatorText1 - - db 0 ; objects - - ; warp-to - warp_to 1, 3, CELADON_MART_ELEVATOR_WIDTH ; CELADON_MART_1F - warp_to 2, 3, CELADON_MART_ELEVATOR_WIDTH ; CELADON_MART_1F diff --git a/data/mapObjects/CeladonMartRoof.asm b/data/mapObjects/CeladonMartRoof.asm deleted file mode 100755 index 05cef2d49..000000000 --- a/data/mapObjects/CeladonMartRoof.asm +++ /dev/null @@ -1,18 +0,0 @@ -CeladonMartRoof_Object: - db $42 ; border block - - db 1 ; warps - warp 15, 2, 0, CELADON_MART_5F - - db 4 ; signs - sign 10, 1, 3 ; CeladonMartRoofText3 - sign 11, 1, 4 ; CeladonMartRoofText4 - sign 12, 2, 5 ; CeladonMartRoofText5 - sign 13, 2, 6 ; CeladonMartRoofText6 - - db 2 ; objects - object SPRITE_BLACK_HAIR_BOY_2, 10, 4, STAY, LEFT, 1 ; person - object SPRITE_LITTLE_GIRL, 5, 5, WALK, 0, 2 ; person - - ; warp-to - warp_to 15, 2, CELADON_MART_ROOF_WIDTH ; CELADON_MART_5F diff --git a/data/mapObjects/CeladonPokecenter.asm b/data/mapObjects/CeladonPokecenter.asm deleted file mode 100755 index 91698e349..000000000 --- a/data/mapObjects/CeladonPokecenter.asm +++ /dev/null @@ -1,19 +0,0 @@ -CeladonPokecenter_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 5, -1 - warp 4, 7, 5, -1 - - db 0 ; signs - - db 5 ; objects - object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person - object SPRITE_GENTLEMAN, 7, 3, STAY, DOWN, 2 ; person - object SPRITE_FOULARD_WOMAN, 10, 5, WALK, 0, 3 ; person - object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person - object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person - - ; warp-to - warp_to 3, 7, CELADON_POKECENTER_WIDTH - warp_to 4, 7, CELADON_POKECENTER_WIDTH diff --git a/data/mapObjects/CeruleanBadgeHouse.asm b/data/mapObjects/CeruleanBadgeHouse.asm deleted file mode 100755 index 62a6873b9..000000000 --- a/data/mapObjects/CeruleanBadgeHouse.asm +++ /dev/null @@ -1,17 +0,0 @@ -CeruleanBadgeHouse_Object: - db $c ; border block - - db 3 ; warps - warp 2, 0, 9, -1 - warp 2, 7, 8, -1 - warp 3, 7, 8, -1 - - db 0 ; signs - - db 1 ; objects - object SPRITE_FAT_BALD_GUY, 5, 3, STAY, RIGHT, 1 ; person - - ; warp-to - warp_to 2, 0, CERULEAN_BADGE_HOUSE_WIDTH - warp_to 2, 7, CERULEAN_BADGE_HOUSE_WIDTH - warp_to 3, 7, CERULEAN_BADGE_HOUSE_WIDTH diff --git a/data/mapObjects/CeruleanCave1F.asm b/data/mapObjects/CeruleanCave1F.asm deleted file mode 100755 index a7f72b34d..000000000 --- a/data/mapObjects/CeruleanCave1F.asm +++ /dev/null @@ -1,32 +0,0 @@ -CeruleanCave1F_Object: - db $7d ; border block - - db 9 ; warps - warp 24, 17, 6, -1 - warp 25, 17, 6, -1 - warp 27, 1, 0, CERULEAN_CAVE_2F - warp 23, 7, 1, CERULEAN_CAVE_2F - warp 18, 9, 2, CERULEAN_CAVE_2F - warp 7, 1, 3, CERULEAN_CAVE_2F - warp 1, 3, 4, CERULEAN_CAVE_2F - warp 3, 11, 5, CERULEAN_CAVE_2F - warp 0, 6, 0, CERULEAN_CAVE_B1F - - db 0 ; signs - - db 4 ; objects - object SPRITE_BALL, $1d, $10, STAY, NONE, $1, RARE_CANDY - object SPRITE_BALL, $7, $b, STAY, NONE, $2, MAX_ELIXER - object SPRITE_BALL, $1d, $9, STAY, NONE, $3, MAX_REVIVE - object SPRITE_BALL, $12, $3, STAY, NONE, $4, ULTRA_BALL - - ; warp-to - warp_to 24, 17, CERULEAN_CAVE_1F_WIDTH - warp_to 25, 17, CERULEAN_CAVE_1F_WIDTH - warp_to 27, 1, CERULEAN_CAVE_1F_WIDTH ; CERULEAN_CAVE_2F - warp_to 23, 7, CERULEAN_CAVE_1F_WIDTH ; CERULEAN_CAVE_2F - warp_to 18, 9, CERULEAN_CAVE_1F_WIDTH ; CERULEAN_CAVE_2F - warp_to 7, 1, CERULEAN_CAVE_1F_WIDTH ; CERULEAN_CAVE_2F - warp_to 1, 3, CERULEAN_CAVE_1F_WIDTH ; CERULEAN_CAVE_2F - warp_to 3, 11, CERULEAN_CAVE_1F_WIDTH ; CERULEAN_CAVE_2F - warp_to 0, 6, CERULEAN_CAVE_1F_WIDTH ; CERULEAN_CAVE_B1F diff --git a/data/mapObjects/CeruleanCave2F.asm b/data/mapObjects/CeruleanCave2F.asm deleted file mode 100755 index 9a15eef8a..000000000 --- a/data/mapObjects/CeruleanCave2F.asm +++ /dev/null @@ -1,26 +0,0 @@ -CeruleanCave2F_Object: - db $7d ; border block - - db 6 ; warps - warp 29, 1, 2, CERULEAN_CAVE_1F - warp 22, 6, 3, CERULEAN_CAVE_1F - warp 19, 7, 4, CERULEAN_CAVE_1F - warp 9, 1, 5, CERULEAN_CAVE_1F - warp 1, 3, 6, CERULEAN_CAVE_1F - warp 3, 11, 7, CERULEAN_CAVE_1F - - db 0 ; signs - - db 4 ; objects - object SPRITE_BALL, 0, 11, STAY, NONE, 1, RARE_CANDY - object SPRITE_BALL, 16, 7, STAY, NONE, 2, ULTRA_BALL - object SPRITE_BALL, 19, 11, STAY, NONE, 3, MAX_REVIVE - object SPRITE_BALL, 27, 9, STAY, NONE, 4, FULL_RESTORE - - ; warp-to - warp_to 29, 1, CERULEAN_CAVE_2F_WIDTH ; CERULEAN_CAVE_1F - warp_to 22, 6, CERULEAN_CAVE_2F_WIDTH ; CERULEAN_CAVE_1F - warp_to 19, 7, CERULEAN_CAVE_2F_WIDTH ; CERULEAN_CAVE_1F - warp_to 9, 1, CERULEAN_CAVE_2F_WIDTH ; CERULEAN_CAVE_1F - warp_to 1, 3, CERULEAN_CAVE_2F_WIDTH ; CERULEAN_CAVE_1F - warp_to 3, 11, CERULEAN_CAVE_2F_WIDTH ; CERULEAN_CAVE_1F diff --git a/data/mapObjects/CeruleanCaveB1F.asm b/data/mapObjects/CeruleanCaveB1F.asm deleted file mode 100755 index 193d674b9..000000000 --- a/data/mapObjects/CeruleanCaveB1F.asm +++ /dev/null @@ -1,17 +0,0 @@ -CeruleanCaveB1F_Object: - db $7d ; border block - - db 1 ; warps - warp 3, 6, 8, CERULEAN_CAVE_1F - - db 0 ; signs - - db 5 ; objects - object SPRITE_SLOWBRO, 27, 13, STAY, DOWN, 1, MEWTWO, 70 - object SPRITE_BALL, 26, 1, STAY, NONE, 2, ULTRA_BALL - object SPRITE_BALL, 2, 13, STAY, NONE, 3, ULTRA_BALL - object SPRITE_BALL, 3, 13, STAY, NONE, 4, MAX_REVIVE - object SPRITE_BALL, 15, 3, STAY, NONE, 5, MAX_ELIXER - - ; warp-to - warp_to 3, 6, CERULEAN_CAVE_B1F_WIDTH ; CERULEAN_CAVE_1F diff --git a/data/mapObjects/CeruleanCity.asm b/data/mapObjects/CeruleanCity.asm deleted file mode 100755 index ca05e65fa..000000000 --- a/data/mapObjects/CeruleanCity.asm +++ /dev/null @@ -1,47 +0,0 @@ -CeruleanCity_Object: - db $a ; border block - - db 10 ; warps - warp 27, 11, 0, CERULEAN_TRASHED_HOUSE - warp 13, 15, 0, CERULEAN_TRADE_HOUSE - warp 19, 17, 0, CERULEAN_POKECENTER - warp 30, 19, 0, CERULEAN_GYM - warp 13, 25, 0, BIKE_SHOP - warp 25, 25, 0, CERULEAN_MART - warp 4, 11, 0, CERULEAN_CAVE_1F - warp 27, 9, 2, CERULEAN_TRASHED_HOUSE - warp 9, 11, 1, CERULEAN_BADGE_HOUSE - warp 9, 9, 0, CERULEAN_BADGE_HOUSE - - db 6 ; signs - sign 23, 19, 12 ; CeruleanCityText12 - sign 17, 29, 13 ; CeruleanCityText13 - sign 26, 25, 14 ; MartSignText - sign 20, 17, 15 ; PokeCenterSignText - sign 11, 25, 16 ; CeruleanCityText16 - sign 27, 21, 17 ; CeruleanCityText17 - - db 11 ; objects - object SPRITE_BLUE, 20, 2, STAY, DOWN, 1 ; person - object SPRITE_ROCKET, 30, 8, STAY, NONE, 2, OPP_ROCKET, 5 - object SPRITE_BLACK_HAIR_BOY_1, 31, 20, STAY, DOWN, 3 ; person - object SPRITE_BLACK_HAIR_BOY_2, 15, 18, WALK, 1, 4 ; person - object SPRITE_BLACK_HAIR_BOY_2, 9, 21, WALK, 2, 5 ; person - object SPRITE_OFFICER_JENNY, 28, 12, STAY, DOWN, 6 ; person - object SPRITE_LASS, 29, 26, STAY, LEFT, 7 ; person - object SPRITE_BALL, 28, 26, STAY, DOWN, 8 ; person - object SPRITE_LASS, 9, 27, WALK, 2, 9 ; person - object SPRITE_BLACK_HAIR_BOY_2, 4, 12, STAY, DOWN, 10 ; person - object SPRITE_OFFICER_JENNY, 27, 12, STAY, DOWN, 11 ; person - - ; warp-to - warp_to 27, 11, CERULEAN_CITY_WIDTH ; CERULEAN_TRASHED_HOUSE - warp_to 13, 15, CERULEAN_CITY_WIDTH ; CERULEAN_TRADE_HOUSE - warp_to 19, 17, CERULEAN_CITY_WIDTH ; CERULEAN_POKECENTER - warp_to 30, 19, CERULEAN_CITY_WIDTH ; CERULEAN_GYM - warp_to 13, 25, CERULEAN_CITY_WIDTH ; BIKE_SHOP - warp_to 25, 25, CERULEAN_CITY_WIDTH ; CERULEAN_MART - warp_to 4, 11, CERULEAN_CITY_WIDTH ; CERULEAN_CAVE_1F - warp_to 27, 9, CERULEAN_CITY_WIDTH ; CERULEAN_TRASHED_HOUSE - warp_to 9, 11, CERULEAN_CITY_WIDTH ; CERULEAN_BADGE_HOUSE - warp_to 9, 9, CERULEAN_CITY_WIDTH ; CERULEAN_BADGE_HOUSE diff --git a/data/mapObjects/CeruleanGym.asm b/data/mapObjects/CeruleanGym.asm deleted file mode 100755 index 96713648d..000000000 --- a/data/mapObjects/CeruleanGym.asm +++ /dev/null @@ -1,18 +0,0 @@ -CeruleanGym_Object: - db $3 ; border block - - db 2 ; warps - warp 4, 13, 3, -1 - warp 5, 13, 3, -1 - - db 0 ; signs - - db 4 ; objects - object SPRITE_BRUNETTE_GIRL, 4, 2, STAY, DOWN, 1, OPP_MISTY, 1 - object SPRITE_LASS, 2, 3, STAY, RIGHT, 2, OPP_JR_TRAINER_F, 1 - object SPRITE_SWIMMER, 8, 7, STAY, LEFT, 3, OPP_SWIMMER, 1 - object SPRITE_GYM_HELPER, 7, 10, STAY, DOWN, 4 ; person - - ; warp-to - warp_to 4, 13, CERULEAN_GYM_WIDTH - warp_to 5, 13, CERULEAN_GYM_WIDTH diff --git a/data/mapObjects/CeruleanMart.asm b/data/mapObjects/CeruleanMart.asm deleted file mode 100755 index 4659375fe..000000000 --- a/data/mapObjects/CeruleanMart.asm +++ /dev/null @@ -1,17 +0,0 @@ -CeruleanMart_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 5, -1 - warp 4, 7, 5, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 1 ; person - object SPRITE_BLACK_HAIR_BOY_1, 3, 4, WALK, 1, 2 ; person - object SPRITE_LASS, 6, 2, WALK, 2, 3 ; person - - ; warp-to - warp_to 3, 7, CERULEAN_MART_WIDTH - warp_to 4, 7, CERULEAN_MART_WIDTH diff --git a/data/mapObjects/CeruleanPokecenter.asm b/data/mapObjects/CeruleanPokecenter.asm deleted file mode 100755 index 78b2330ea..000000000 --- a/data/mapObjects/CeruleanPokecenter.asm +++ /dev/null @@ -1,19 +0,0 @@ -CeruleanPokecenter_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 2, -1 - warp 4, 7, 2, -1 - - db 0 ; signs - - db 5 ; objects - object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person - object SPRITE_BLACK_HAIR_BOY_2, 10, 5, WALK, 0, 2 ; person - object SPRITE_GENTLEMAN, 4, 3, STAY, UP, 3 ; person - object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person - object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person - - ; warp-to - warp_to 3, 7, CERULEAN_POKECENTER_WIDTH - warp_to 4, 7, CERULEAN_POKECENTER_WIDTH diff --git a/data/mapObjects/CeruleanTradeHouse.asm b/data/mapObjects/CeruleanTradeHouse.asm deleted file mode 100755 index e51f9544e..000000000 --- a/data/mapObjects/CeruleanTradeHouse.asm +++ /dev/null @@ -1,18 +0,0 @@ -CeruleanTradeHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 1, -1 - warp 3, 7, 1, -1 - - db 0 ; signs - - db 4 ; objects - object SPRITE_GIRL, 3, 1, STAY, DOWN, 1 ; person - object SPRITE_BULBASAUR, 4, 1, STAY, DOWN, 2 ; person - object SPRITE_ODDISH, 1, 4, STAY, NONE, 3 ; person - object SPRITE_SANDSHREW, 5, 3, STAY, LEFT, 4 ; person - - ; warp-to - warp_to 2, 7, CERULEAN_TRADE_HOUSE_WIDTH - warp_to 3, 7, CERULEAN_TRADE_HOUSE_WIDTH diff --git a/data/mapObjects/CeruleanTrashedHouse.asm b/data/mapObjects/CeruleanTrashedHouse.asm deleted file mode 100755 index 44b7cf207..000000000 --- a/data/mapObjects/CeruleanTrashedHouse.asm +++ /dev/null @@ -1,19 +0,0 @@ -CeruleanTrashedHouse_Object: - db $a ; border block - - db 3 ; warps - warp 2, 7, 0, -1 - warp 3, 7, 0, -1 - warp 3, 0, 7, -1 - - db 1 ; signs - sign 3, 0, 3 ; CeruleanHouseTrashedText3 - - db 2 ; objects - object SPRITE_FISHER, 2, 1, STAY, DOWN, 1 ; person - object SPRITE_GIRL, 5, 6, WALK, 2, 2 ; person - - ; warp-to - warp_to 2, 7, CERULEAN_TRASHED_HOUSE_WIDTH - warp_to 3, 7, CERULEAN_TRASHED_HOUSE_WIDTH - warp_to 3, 0, CERULEAN_TRASHED_HOUSE_WIDTH diff --git a/data/mapObjects/ChampionsRoom.asm b/data/mapObjects/ChampionsRoom.asm deleted file mode 100755 index 1e0cb7f4f..000000000 --- a/data/mapObjects/ChampionsRoom.asm +++ /dev/null @@ -1,20 +0,0 @@ -ChampionsRoom_Object: - db $3 ; border block - - db 4 ; warps - warp 3, 7, 1, LANCES_ROOM - warp 4, 7, 2, LANCES_ROOM - warp 3, 0, 0, HALL_OF_FAME - warp 4, 0, 0, HALL_OF_FAME - - db 0 ; signs - - db 2 ; objects - object SPRITE_BLUE, 4, 2, STAY, DOWN, 1 ; person - object SPRITE_OAK, 3, 7, STAY, UP, 2 ; person - - ; warp-to - warp_to 3, 7, CHAMPIONS_ROOM_WIDTH ; LANCES_ROOM - warp_to 4, 7, CHAMPIONS_ROOM_WIDTH ; LANCES_ROOM - warp_to 3, 0, CHAMPIONS_ROOM_WIDTH ; HALL_OF_FAME - warp_to 4, 0, CHAMPIONS_ROOM_WIDTH ; HALL_OF_FAME diff --git a/data/mapObjects/CinnabarGym.asm b/data/mapObjects/CinnabarGym.asm deleted file mode 100755 index 1a6e96cde..000000000 --- a/data/mapObjects/CinnabarGym.asm +++ /dev/null @@ -1,23 +0,0 @@ -CinnabarGym_Object: - db $2e ; border block - - db 2 ; warps - warp 16, 17, 1, -1 - warp 17, 17, 1, -1 - - db 0 ; signs - - db 9 ; objects - object SPRITE_MR_MASTERBALL, 3, 3, STAY, DOWN, 1, OPP_BLAINE, 1 - object SPRITE_BLACK_HAIR_BOY_2, 17, 2, STAY, DOWN, 2, OPP_SUPER_NERD, 9 - object SPRITE_BLACK_HAIR_BOY_2, 17, 8, STAY, DOWN, 3, OPP_BURGLAR, 4 - object SPRITE_BLACK_HAIR_BOY_2, 11, 4, STAY, DOWN, 4, OPP_SUPER_NERD, 10 - object SPRITE_BLACK_HAIR_BOY_2, 11, 8, STAY, DOWN, 5, OPP_BURGLAR, 5 - object SPRITE_BLACK_HAIR_BOY_2, 11, 14, STAY, DOWN, 6, OPP_SUPER_NERD, 11 - object SPRITE_BLACK_HAIR_BOY_2, 3, 14, STAY, DOWN, 7, OPP_BURGLAR, 6 - object SPRITE_BLACK_HAIR_BOY_2, 3, 8, STAY, DOWN, 8, OPP_SUPER_NERD, 12 - object SPRITE_GYM_HELPER, 16, 13, STAY, DOWN, 9 ; person - - ; warp-to - warp_to 16, 17, CINNABAR_GYM_WIDTH - warp_to 17, 17, CINNABAR_GYM_WIDTH diff --git a/data/mapObjects/CinnabarIsland.asm b/data/mapObjects/CinnabarIsland.asm deleted file mode 100755 index 1932e134b..000000000 --- a/data/mapObjects/CinnabarIsland.asm +++ /dev/null @@ -1,27 +0,0 @@ -CinnabarIsland_Object: - db $43 ; border block - - db 5 ; warps - warp 6, 3, 1, POKEMON_MANSION_1F - warp 18, 3, 0, CINNABAR_GYM - warp 6, 9, 0, CINNABAR_LAB - warp 11, 11, 0, CINNABAR_POKECENTER - warp 15, 11, 0, CINNABAR_MART - - db 5 ; signs - sign 9, 5, 3 ; CinnabarIslandText3 - sign 16, 11, 4 ; MartSignText - sign 12, 11, 5 ; PokeCenterSignText - sign 9, 11, 6 ; CinnabarIslandText6 - sign 13, 3, 7 ; CinnabarIslandText7 - - db 2 ; objects - object SPRITE_GIRL, 12, 5, WALK, 2, 1 ; person - object SPRITE_GAMBLER, 14, 6, STAY, NONE, 2 ; person - - ; warp-to - warp_to 6, 3, CINNABAR_ISLAND_WIDTH ; POKEMON_MANSION_1F - warp_to 18, 3, CINNABAR_ISLAND_WIDTH ; CINNABAR_GYM - warp_to 6, 9, CINNABAR_ISLAND_WIDTH ; CINNABAR_LAB - warp_to 11, 11, CINNABAR_ISLAND_WIDTH ; CINNABAR_POKECENTER - warp_to 15, 11, CINNABAR_ISLAND_WIDTH ; CINNABAR_MART diff --git a/data/mapObjects/CinnabarLab.asm b/data/mapObjects/CinnabarLab.asm deleted file mode 100755 index deb5d8ed3..000000000 --- a/data/mapObjects/CinnabarLab.asm +++ /dev/null @@ -1,25 +0,0 @@ -CinnabarLab_Object: - db $17 ; border block - - db 5 ; warps - warp 2, 7, 2, -1 - warp 3, 7, 2, -1 - warp 8, 4, 0, CINNABAR_LAB_TRADE_ROOM - warp 12, 4, 0, CINNABAR_LAB_METRONOME_ROOM - warp 16, 4, 0, CINNABAR_LAB_FOSSIL_ROOM - - db 4 ; signs - sign 3, 2, 2 ; Lab1Text2 - sign 9, 4, 3 ; Lab1Text3 - sign 13, 4, 4 ; Lab1Text4 - sign 17, 4, 5 ; Lab1Text5 - - db 1 ; objects - object SPRITE_FISHER, 1, 3, STAY, NONE, 1 ; person - - ; warp-to - warp_to 2, 7, CINNABAR_LAB_WIDTH - warp_to 3, 7, CINNABAR_LAB_WIDTH - warp_to 8, 4, CINNABAR_LAB_WIDTH ; CINNABAR_LAB_TRADE_ROOM - warp_to 12, 4, CINNABAR_LAB_WIDTH ; CINNABAR_LAB_METRONOME_ROOM - warp_to 16, 4, CINNABAR_LAB_WIDTH ; CINNABAR_LAB_FOSSIL_ROOM diff --git a/data/mapObjects/CinnabarLabFossilRoom.asm b/data/mapObjects/CinnabarLabFossilRoom.asm deleted file mode 100755 index d31502e6c..000000000 --- a/data/mapObjects/CinnabarLabFossilRoom.asm +++ /dev/null @@ -1,16 +0,0 @@ -CinnabarLabFossilRoom_Object: - db $17 ; border block - - db 2 ; warps - warp 2, 7, 4, CINNABAR_LAB - warp 3, 7, 4, CINNABAR_LAB - - db 0 ; signs - - db 2 ; objects - object SPRITE_OAK_AIDE, 5, 2, WALK, 2, 1 ; person - object SPRITE_OAK_AIDE, 7, 6, STAY, UP, 2 ; person - - ; warp-to - warp_to 2, 7, CINNABAR_LAB_FOSSIL_ROOM_WIDTH ; CINNABAR_LAB - warp_to 3, 7, CINNABAR_LAB_FOSSIL_ROOM_WIDTH ; CINNABAR_LAB diff --git a/data/mapObjects/CinnabarLabMetronomeRoom.asm b/data/mapObjects/CinnabarLabMetronomeRoom.asm deleted file mode 100755 index 37f93d430..000000000 --- a/data/mapObjects/CinnabarLabMetronomeRoom.asm +++ /dev/null @@ -1,19 +0,0 @@ -CinnabarLabMetronomeRoom_Object: - db $17 ; border block - - db 2 ; warps - warp 2, 7, 3, CINNABAR_LAB - warp 3, 7, 3, CINNABAR_LAB - - db 3 ; signs - sign 0, 4, 3 ; Lab3Text3 - sign 1, 4, 4 ; Lab3Text4 - sign 2, 1, 5 ; Lab3Text5 - - db 2 ; objects - object SPRITE_OAK_AIDE, 7, 2, STAY, DOWN, 1 ; person - object SPRITE_OAK_AIDE, 2, 3, WALK, 2, 2 ; person - - ; warp-to - warp_to 2, 7, CINNABAR_LAB_METRONOME_ROOM_WIDTH ; CINNABAR_LAB - warp_to 3, 7, CINNABAR_LAB_METRONOME_ROOM_WIDTH ; CINNABAR_LAB diff --git a/data/mapObjects/CinnabarLabTradeRoom.asm b/data/mapObjects/CinnabarLabTradeRoom.asm deleted file mode 100755 index 449cc9141..000000000 --- a/data/mapObjects/CinnabarLabTradeRoom.asm +++ /dev/null @@ -1,17 +0,0 @@ -CinnabarLabTradeRoom_Object: - db $17 ; border block - - db 2 ; warps - warp 2, 7, 2, CINNABAR_LAB - warp 3, 7, 2, CINNABAR_LAB - - db 0 ; signs - - db 3 ; objects - object SPRITE_BLACK_HAIR_BOY_2, 3, 2, STAY, DOWN, 1 ; person - object SPRITE_OLD_PERSON, 1, 4, STAY, NONE, 2 ; person - object SPRITE_FOULARD_WOMAN, 5, 5, STAY, UP, 3 ; person - - ; warp-to - warp_to 2, 7, CINNABAR_LAB_TRADE_ROOM_WIDTH ; CINNABAR_LAB - warp_to 3, 7, CINNABAR_LAB_TRADE_ROOM_WIDTH ; CINNABAR_LAB diff --git a/data/mapObjects/CinnabarMart.asm b/data/mapObjects/CinnabarMart.asm deleted file mode 100755 index af88ddf0f..000000000 --- a/data/mapObjects/CinnabarMart.asm +++ /dev/null @@ -1,17 +0,0 @@ -CinnabarMart_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 4, -1 - warp 4, 7, 4, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 1 ; person - object SPRITE_ERIKA, 6, 2, STAY, NONE, 2 ; person - object SPRITE_OAK_AIDE, 3, 4, STAY, NONE, 3 ; person - - ; warp-to - warp_to 3, 7, CINNABAR_MART_WIDTH - warp_to 4, 7, CINNABAR_MART_WIDTH diff --git a/data/mapObjects/CinnabarPokecenter.asm b/data/mapObjects/CinnabarPokecenter.asm deleted file mode 100755 index 3c9efb342..000000000 --- a/data/mapObjects/CinnabarPokecenter.asm +++ /dev/null @@ -1,19 +0,0 @@ -CinnabarPokecenter_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 3, -1 - warp 4, 7, 3, -1 - - db 0 ; signs - - db 5 ; objects - object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person - object SPRITE_LASS, 9, 4, WALK, 0, 2 ; person - object SPRITE_GENTLEMAN, 2, 6, STAY, NONE, 3 ; person - object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person - object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person - - ; warp-to - warp_to 3, 7, CINNABAR_POKECENTER_WIDTH - warp_to 4, 7, CINNABAR_POKECENTER_WIDTH diff --git a/data/mapObjects/Colosseum.asm b/data/mapObjects/Colosseum.asm deleted file mode 100644 index 187625842..000000000 --- a/data/mapObjects/Colosseum.asm +++ /dev/null @@ -1,9 +0,0 @@ -Colosseum_Object: - db $e ; border block - - db 0 ; warps - - db 0 ; signs - - db 1 ; objects - object SPRITE_RED, 2, 2, STAY, 0, 1 ; person diff --git a/data/mapObjects/CopycatsHouse1F.asm b/data/mapObjects/CopycatsHouse1F.asm deleted file mode 100755 index 8bde12fef..000000000 --- a/data/mapObjects/CopycatsHouse1F.asm +++ /dev/null @@ -1,19 +0,0 @@ -CopycatsHouse1F_Object: - db $a ; border block - - db 3 ; warps - warp 2, 7, 0, -1 - warp 3, 7, 0, -1 - warp 7, 1, 0, COPYCATS_HOUSE_2F - - db 0 ; signs - - db 3 ; objects - object SPRITE_MOM_GEISHA, 2, 2, STAY, DOWN, 1 ; person - object SPRITE_FAT_BALD_GUY, 5, 4, STAY, LEFT, 2 ; person - object SPRITE_CHANSEY, 1, 4, STAY, NONE, 3 ; person - - ; warp-to - warp_to 2, 7, COPYCATS_HOUSE_1F_WIDTH - warp_to 3, 7, COPYCATS_HOUSE_1F_WIDTH - warp_to 7, 1, COPYCATS_HOUSE_1F_WIDTH ; COPYCATS_HOUSE_2F diff --git a/data/mapObjects/CopycatsHouse2F.asm b/data/mapObjects/CopycatsHouse2F.asm deleted file mode 100755 index 18b564193..000000000 --- a/data/mapObjects/CopycatsHouse2F.asm +++ /dev/null @@ -1,19 +0,0 @@ -CopycatsHouse2F_Object: - db $a ; border block - - db 1 ; warps - warp 7, 1, 2, COPYCATS_HOUSE_1F - - db 2 ; signs - sign 3, 5, 6 ; CopycatsHouse2FText6 - sign 0, 1, 7 ; CopycatsHouse2FText7 - - db 5 ; objects - object SPRITE_BRUNETTE_GIRL, 4, 3, WALK, 0, 1 ; person - object SPRITE_BIRD, 4, 6, WALK, 2, 2 ; person - object SPRITE_SLOWBRO, 5, 1, STAY, DOWN, 3 ; person - object SPRITE_BIRD, 2, 0, STAY, DOWN, 4 ; person - object SPRITE_CLEFAIRY, 1, 6, STAY, RIGHT, 5 ; person - - ; warp-to - warp_to 7, 1, COPYCATS_HOUSE_2F_WIDTH ; COPYCATS_HOUSE_1F diff --git a/data/mapObjects/Daycare.asm b/data/mapObjects/Daycare.asm deleted file mode 100755 index c58c83e4c..000000000 --- a/data/mapObjects/Daycare.asm +++ /dev/null @@ -1,15 +0,0 @@ -Daycare_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 4, -1 - warp 3, 7, 4, -1 - - db 0 ; signs - - db 1 ; objects - object SPRITE_GENTLEMAN, 2, 3, STAY, RIGHT, 1 ; person - - ; warp-to - warp_to 2, 7, DAYCARE_WIDTH - warp_to 3, 7, DAYCARE_WIDTH diff --git a/data/mapObjects/DiglettsCave.asm b/data/mapObjects/DiglettsCave.asm deleted file mode 100755 index b4fd0af86..000000000 --- a/data/mapObjects/DiglettsCave.asm +++ /dev/null @@ -1,14 +0,0 @@ -DiglettsCave_Object: - db $19 ; border block - - db 2 ; warps - warp 5, 5, 2, DIGLETTS_CAVE_ROUTE_2 - warp 37, 31, 2, DIGLETTS_CAVE_ROUTE_11 - - db 0 ; signs - - db 0 ; objects - - ; warp-to - warp_to 5, 5, DIGLETTS_CAVE_WIDTH ; DIGLETTS_CAVE_ROUTE_2 - warp_to 37, 31, DIGLETTS_CAVE_WIDTH ; DIGLETTS_CAVE_ROUTE_11 diff --git a/data/mapObjects/DiglettsCaveRoute11.asm b/data/mapObjects/DiglettsCaveRoute11.asm deleted file mode 100755 index a4c70f063..000000000 --- a/data/mapObjects/DiglettsCaveRoute11.asm +++ /dev/null @@ -1,17 +0,0 @@ -DiglettsCaveRoute11_Object: - db $7d ; border block - - db 3 ; warps - warp 2, 7, 4, -1 - warp 3, 7, 4, -1 - warp 4, 4, 1, DIGLETTS_CAVE - - db 0 ; signs - - db 1 ; objects - object SPRITE_GAMBLER, 2, 3, STAY, NONE, 1 ; person - - ; warp-to - warp_to 2, 7, DIGLETTS_CAVE_ROUTE_11_WIDTH - warp_to 3, 7, DIGLETTS_CAVE_ROUTE_11_WIDTH - warp_to 4, 4, DIGLETTS_CAVE_ROUTE_11_WIDTH ; DIGLETTS_CAVE diff --git a/data/mapObjects/DiglettsCaveRoute2.asm b/data/mapObjects/DiglettsCaveRoute2.asm deleted file mode 100755 index 0567fee66..000000000 --- a/data/mapObjects/DiglettsCaveRoute2.asm +++ /dev/null @@ -1,17 +0,0 @@ -DiglettsCaveRoute2_Object: - db $7d ; border block - - db 3 ; warps - warp 2, 7, 0, -1 - warp 3, 7, 0, -1 - warp 4, 4, 0, DIGLETTS_CAVE - - db 0 ; signs - - db 1 ; objects - object SPRITE_FISHER, 3, 3, STAY, NONE, 1 ; person - - ; warp-to - warp_to 2, 7, DIGLETTS_CAVE_ROUTE_2_WIDTH - warp_to 3, 7, DIGLETTS_CAVE_ROUTE_2_WIDTH - warp_to 4, 4, DIGLETTS_CAVE_ROUTE_2_WIDTH ; DIGLETTS_CAVE diff --git a/data/mapObjects/FightingDojo.asm b/data/mapObjects/FightingDojo.asm deleted file mode 100755 index fdc7b8382..000000000 --- a/data/mapObjects/FightingDojo.asm +++ /dev/null @@ -1,21 +0,0 @@ -FightingDojo_Object: - db $3 ; border block - - db 2 ; warps - warp 4, 11, 1, -1 - warp 5, 11, 1, -1 - - db 0 ; signs - - db 7 ; objects - object SPRITE_HIKER, 5, 3, STAY, DOWN, 1, OPP_BLACKBELT, 1 - object SPRITE_HIKER, 3, 4, STAY, RIGHT, 2, OPP_BLACKBELT, 2 - object SPRITE_HIKER, 3, 6, STAY, RIGHT, 3, OPP_BLACKBELT, 3 - object SPRITE_HIKER, 5, 5, STAY, LEFT, 4, OPP_BLACKBELT, 4 - object SPRITE_HIKER, 5, 7, STAY, LEFT, 5, OPP_BLACKBELT, 5 - object SPRITE_BALL, 4, 1, STAY, NONE, 6 ; person - object SPRITE_BALL, 5, 1, STAY, NONE, 7 ; person - - ; warp-to - warp_to 4, 11, FIGHTING_DOJO_WIDTH - warp_to 5, 11, FIGHTING_DOJO_WIDTH diff --git a/data/mapObjects/FuchsiaBillsGrandpasHouse.asm b/data/mapObjects/FuchsiaBillsGrandpasHouse.asm deleted file mode 100755 index 363b56f9a..000000000 --- a/data/mapObjects/FuchsiaBillsGrandpasHouse.asm +++ /dev/null @@ -1,17 +0,0 @@ -FuchsiaBillsGrandpasHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 1, -1 - warp 3, 7, 1, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_MOM_GEISHA, 2, 3, STAY, RIGHT, 1 ; person - object SPRITE_GAMBLER, 7, 2, STAY, UP, 2 ; person - object SPRITE_BUG_CATCHER, 5, 5, STAY, NONE, 3 ; person - - ; warp-to - warp_to 2, 7, FUCHSIA_BILLS_GRANDPAS_HOUSE_WIDTH - warp_to 3, 7, FUCHSIA_BILLS_GRANDPAS_HOUSE_WIDTH diff --git a/data/mapObjects/FuchsiaCity.asm b/data/mapObjects/FuchsiaCity.asm deleted file mode 100755 index 0368905c9..000000000 --- a/data/mapObjects/FuchsiaCity.asm +++ /dev/null @@ -1,52 +0,0 @@ -FuchsiaCity_Object: - db $f ; border block - - db 9 ; warps - warp 5, 13, 0, FUCHSIA_MART - warp 11, 27, 0, FUCHSIA_BILLS_GRANDPAS_HOUSE - warp 19, 27, 0, FUCHSIA_POKECENTER - warp 27, 27, 0, WARDENS_HOUSE - warp 18, 3, 0, SAFARI_ZONE_GATE - warp 5, 27, 0, FUCHSIA_GYM - warp 22, 13, 0, FUCHSIA_MEETING_ROOM - warp 31, 27, 1, FUCHSIA_GOOD_ROD_HOUSE - warp 31, 24, 0, FUCHSIA_GOOD_ROD_HOUSE - - db 14 ; signs - sign 15, 23, 11 ; FuchsiaCityText11 - sign 25, 15, 12 ; FuchsiaCityText12 - sign 17, 5, 13 ; FuchsiaCityText13 - sign 6, 13, 14 ; MartSignText - sign 20, 27, 15 ; PokeCenterSignText - sign 27, 29, 16 ; FuchsiaCityText16 - sign 21, 15, 17 ; FuchsiaCityText17 - sign 5, 29, 18 ; FuchsiaCityText18 - sign 33, 7, 19 ; FuchsiaCityText19 - sign 27, 7, 20 ; FuchsiaCityText20 - sign 13, 7, 21 ; FuchsiaCityText21 - sign 31, 13, 22 ; FuchsiaCityText22 - sign 13, 15, 23 ; FuchsiaCityText23 - sign 7, 7, 24 ; FuchsiaCityText24 - - db 10 ; objects - object SPRITE_BUG_CATCHER, 10, 12, WALK, 2, 1 ; person - object SPRITE_GAMBLER, 28, 17, WALK, 2, 2 ; person - object SPRITE_FISHER2, 30, 14, STAY, DOWN, 3 ; person - object SPRITE_BUG_CATCHER, 24, 8, STAY, UP, 4 ; person - object SPRITE_CHANSEY, 31, 5, STAY, DOWN, 5 ; person - object SPRITE_BALL, 25, 6, STAY, NONE, 6 ; person - object SPRITE_SLOWBRO, 12, 6, WALK, 2, 7 ; person - object SPRITE_SLOWBRO, 30, 12, WALK, 2, 8 ; person - object SPRITE_SEEL, 8, 17, WALK, 0, 9 ; person - object SPRITE_OMANYTE, 6, 5, STAY, NONE, 10 ; person - - ; warp-to - warp_to 5, 13, FUCHSIA_CITY_WIDTH ; FUCHSIA_MART - warp_to 11, 27, FUCHSIA_CITY_WIDTH ; FUCHSIA_BILLS_GRANDPAS_HOUSE - warp_to 19, 27, FUCHSIA_CITY_WIDTH ; FUCHSIA_POKECENTER - warp_to 27, 27, FUCHSIA_CITY_WIDTH ; WARDENS_HOUSE - warp_to 18, 3, FUCHSIA_CITY_WIDTH ; SAFARI_ZONE_GATE - warp_to 5, 27, FUCHSIA_CITY_WIDTH ; FUCHSIA_GYM - warp_to 22, 13, FUCHSIA_CITY_WIDTH ; FUCHSIA_MEETING_ROOM - warp_to 31, 27, FUCHSIA_CITY_WIDTH ; FUCHSIA_GOOD_ROD_HOUSE - warp_to 31, 24, FUCHSIA_CITY_WIDTH ; FUCHSIA_GOOD_ROD_HOUSE diff --git a/data/mapObjects/FuchsiaGoodRodHouse.asm b/data/mapObjects/FuchsiaGoodRodHouse.asm deleted file mode 100755 index 390447c8f..000000000 --- a/data/mapObjects/FuchsiaGoodRodHouse.asm +++ /dev/null @@ -1,17 +0,0 @@ -FuchsiaGoodRodHouse_Object: - db $c ; border block - - db 3 ; warps - warp 2, 0, 8, -1 - warp 2, 7, 7, -1 - warp 3, 7, 7, -1 - - db 0 ; signs - - db 1 ; objects - object SPRITE_FISHER, 5, 3, STAY, RIGHT, 1 ; person - - ; warp-to - warp_to 2, 0, FUCHSIA_GOOD_ROD_HOUSE_WIDTH - warp_to 2, 7, FUCHSIA_GOOD_ROD_HOUSE_WIDTH - warp_to 3, 7, FUCHSIA_GOOD_ROD_HOUSE_WIDTH diff --git a/data/mapObjects/FuchsiaGym.asm b/data/mapObjects/FuchsiaGym.asm deleted file mode 100755 index 4e7170865..000000000 --- a/data/mapObjects/FuchsiaGym.asm +++ /dev/null @@ -1,22 +0,0 @@ -FuchsiaGym_Object: - db $3 ; border block - - db 2 ; warps - warp 4, 17, 5, -1 - warp 5, 17, 5, -1 - - db 0 ; signs - - db 8 ; objects - object SPRITE_LAPRAS_GIVER, 4, 10, STAY, DOWN, 1, OPP_KOGA, 1 - object SPRITE_ROCKER, 8, 13, STAY, DOWN, 2, OPP_JUGGLER, 7 - object SPRITE_ROCKER, 7, 8, STAY, RIGHT, 3, OPP_JUGGLER, 3 - object SPRITE_ROCKER, 1, 12, STAY, DOWN, 4, OPP_JUGGLER, 8 - object SPRITE_ROCKER, 3, 5, STAY, UP, 5, OPP_TAMER, 1 - object SPRITE_ROCKER, 8, 2, STAY, DOWN, 6, OPP_TAMER, 2 - object SPRITE_ROCKER, 2, 7, STAY, LEFT, 7, OPP_JUGGLER, 4 - object SPRITE_GYM_HELPER, 7, 15, STAY, DOWN, 8 ; person - - ; warp-to - warp_to 4, 17, FUCHSIA_GYM_WIDTH - warp_to 5, 17, FUCHSIA_GYM_WIDTH diff --git a/data/mapObjects/FuchsiaMart.asm b/data/mapObjects/FuchsiaMart.asm deleted file mode 100755 index cfa71d8de..000000000 --- a/data/mapObjects/FuchsiaMart.asm +++ /dev/null @@ -1,17 +0,0 @@ -FuchsiaMart_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 0, -1 - warp 4, 7, 0, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 1 ; person - object SPRITE_FAT_BALD_GUY, 4, 2, STAY, NONE, 2 ; person - object SPRITE_LASS, 6, 5, WALK, 1, 3 ; person - - ; warp-to - warp_to 3, 7, FUCHSIA_MART_WIDTH - warp_to 4, 7, FUCHSIA_MART_WIDTH diff --git a/data/mapObjects/FuchsiaMeetingRoom.asm b/data/mapObjects/FuchsiaMeetingRoom.asm deleted file mode 100755 index 9130d920d..000000000 --- a/data/mapObjects/FuchsiaMeetingRoom.asm +++ /dev/null @@ -1,17 +0,0 @@ -FuchsiaMeetingRoom_Object: - db $17 ; border block - - db 2 ; warps - warp 4, 7, 6, -1 - warp 5, 7, 6, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_WHITE_PLAYER, 4, 1, STAY, DOWN, 1 ; person - object SPRITE_WHITE_PLAYER, 0, 2, STAY, UP, 2 ; person - object SPRITE_WHITE_PLAYER, 10, 1, STAY, DOWN, 3 ; person - - ; warp-to - warp_to 4, 7, FUCHSIA_MEETING_ROOM_WIDTH - warp_to 5, 7, FUCHSIA_MEETING_ROOM_WIDTH diff --git a/data/mapObjects/FuchsiaPokecenter.asm b/data/mapObjects/FuchsiaPokecenter.asm deleted file mode 100755 index b0056acdf..000000000 --- a/data/mapObjects/FuchsiaPokecenter.asm +++ /dev/null @@ -1,19 +0,0 @@ -FuchsiaPokecenter_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 2, -1 - warp 4, 7, 2, -1 - - db 0 ; signs - - db 5 ; objects - object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person - object SPRITE_ROCKER, 4, 3, STAY, UP, 2 ; person - object SPRITE_LASS, 6, 5, WALK, 2, 3 ; person - object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person - object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person - - ; warp-to - warp_to 3, 7, FUCHSIA_POKECENTER_WIDTH - warp_to 4, 7, FUCHSIA_POKECENTER_WIDTH diff --git a/data/mapObjects/GameCorner.asm b/data/mapObjects/GameCorner.asm deleted file mode 100755 index afac025e3..000000000 --- a/data/mapObjects/GameCorner.asm +++ /dev/null @@ -1,28 +0,0 @@ -GameCorner_Object: - db $f ; border block - - db 3 ; warps - warp 15, 17, 7, -1 - warp 16, 17, 7, -1 - warp 17, 4, 1, ROCKET_HIDEOUT_B1F - - db 1 ; signs - sign 9, 4, 12 ; CeladonGameCornerText12 - - db 11 ; objects - object SPRITE_FOULARD_WOMAN, 2, 6, STAY, DOWN, 1 ; person - object SPRITE_MART_GUY, 5, 6, STAY, DOWN, 2 ; person - object SPRITE_FAT_BALD_GUY, 2, 10, STAY, LEFT, 3 ; person - object SPRITE_FOULARD_WOMAN, 2, 13, STAY, LEFT, 4 ; person - object SPRITE_FISHER, 5, 11, STAY, RIGHT, 5 ; person - object SPRITE_MOM_GEISHA, 8, 11, STAY, LEFT, 6 ; person - object SPRITE_GYM_HELPER, 8, 14, STAY, LEFT, 7 ; person - object SPRITE_GAMBLER, 11, 15, STAY, RIGHT, 8 ; person - object SPRITE_FAT_BALD_GUY, 14, 11, STAY, LEFT, 9 ; person - object SPRITE_FISHER, 17, 13, STAY, RIGHT, 10 ; person - object SPRITE_ROCKET, 9, 5, STAY, UP, 11, OPP_ROCKET, 7 - - ; warp-to - warp_to 15, 17, GAME_CORNER_WIDTH - warp_to 16, 17, GAME_CORNER_WIDTH - warp_to 17, 4, GAME_CORNER_WIDTH ; ROCKET_HIDEOUT_B1F diff --git a/data/mapObjects/GameCornerPrizeRoom.asm b/data/mapObjects/GameCornerPrizeRoom.asm deleted file mode 100755 index 35cd3ac89..000000000 --- a/data/mapObjects/GameCornerPrizeRoom.asm +++ /dev/null @@ -1,19 +0,0 @@ -GameCornerPrizeRoom_Object: - db $f ; border block - - db 2 ; warps - warp 4, 7, 9, -1 - warp 5, 7, 9, -1 - - db 3 ; signs - sign 2, 2, 3 ; CeladonPrizeRoomText3 - sign 4, 2, 4 ; CeladonPrizeRoomText4 - sign 6, 2, 5 ; CeladonPrizeRoomText5 - - db 2 ; objects - object SPRITE_BALDING_GUY, 1, 4, STAY, NONE, 1 ; person - object SPRITE_GAMBLER, 7, 3, WALK, 2, 2 ; person - - ; warp-to - warp_to 4, 7, GAME_CORNER_PRIZE_ROOM_WIDTH - warp_to 5, 7, GAME_CORNER_PRIZE_ROOM_WIDTH diff --git a/data/mapObjects/HallOfFame.asm b/data/mapObjects/HallOfFame.asm deleted file mode 100755 index 3762d8710..000000000 --- a/data/mapObjects/HallOfFame.asm +++ /dev/null @@ -1,15 +0,0 @@ -HallOfFame_Object: - db $3 ; border block - - db 2 ; warps - warp 4, 7, 2, CHAMPIONS_ROOM - warp 5, 7, 3, CHAMPIONS_ROOM - - db 0 ; signs - - db 1 ; objects - object SPRITE_OAK, 5, 2, STAY, DOWN, 1 ; person - - ; warp-to - warp_to 4, 7, HALL_OF_FAME_WIDTH ; CHAMPIONS_ROOM - warp_to 5, 7, HALL_OF_FAME_WIDTH ; CHAMPIONS_ROOM diff --git a/data/mapObjects/IndigoPlateau.asm b/data/mapObjects/IndigoPlateau.asm deleted file mode 100755 index 1447be113..000000000 --- a/data/mapObjects/IndigoPlateau.asm +++ /dev/null @@ -1,14 +0,0 @@ -IndigoPlateau_Object: - db $e ; border block - - db 2 ; warps - warp 9, 5, 0, INDIGO_PLATEAU_LOBBY - warp 10, 5, 0, INDIGO_PLATEAU_LOBBY - - db 0 ; signs - - db 0 ; objects - - ; warp-to - warp_to 9, 5, INDIGO_PLATEAU_WIDTH ; INDIGO_PLATEAU_LOBBY - warp_to 10, 5, INDIGO_PLATEAU_WIDTH ; INDIGO_PLATEAU_LOBBY diff --git a/data/mapObjects/IndigoPlateauLobby.asm b/data/mapObjects/IndigoPlateauLobby.asm deleted file mode 100755 index d7de23a7d..000000000 --- a/data/mapObjects/IndigoPlateauLobby.asm +++ /dev/null @@ -1,22 +0,0 @@ -IndigoPlateauLobby_Object: - db $0 ; border block - - db 3 ; warps - warp 7, 11, 0, -1 - warp 8, 11, 1, -1 - warp 8, 0, 0, LORELEIS_ROOM - - db 0 ; signs - - db 6 ; objects - object SPRITE_NURSE, 7, 5, STAY, DOWN, 1 ; person - object SPRITE_GYM_HELPER, 4, 9, STAY, RIGHT, 2 ; person - object SPRITE_LASS, 5, 1, STAY, DOWN, 3 ; person - object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 4 ; person - object SPRITE_CABLE_CLUB_WOMAN, 13, 6, STAY, DOWN, 5 ; person - object SPRITE_CHANSEY, 8, 5, STAY, DOWN, 6 ; person - - ; warp-to - warp_to 7, 11, INDIGO_PLATEAU_LOBBY_WIDTH - warp_to 8, 11, INDIGO_PLATEAU_LOBBY_WIDTH - warp_to 8, 0, INDIGO_PLATEAU_LOBBY_WIDTH ; LORELEIS_ROOM diff --git a/data/mapObjects/LancesRoom.asm b/data/mapObjects/LancesRoom.asm deleted file mode 100755 index 6f22631a3..000000000 --- a/data/mapObjects/LancesRoom.asm +++ /dev/null @@ -1,17 +0,0 @@ -LancesRoom_Object: - db $3 ; border block - - db 3 ; warps - warp 24, 16, 2, AGATHAS_ROOM - warp 5, 0, 0, CHAMPIONS_ROOM - warp 6, 0, 0, CHAMPIONS_ROOM - - db 0 ; signs - - db 1 ; objects - object SPRITE_LANCE, 6, 1, STAY, DOWN, 1, OPP_LANCE, 1 - - ; warp-to - warp_to 24, 16, LANCES_ROOM_WIDTH ; AGATHAS_ROOM - warp_to 5, 0, LANCES_ROOM_WIDTH ; CHAMPIONS_ROOM - warp_to 6, 0, LANCES_ROOM_WIDTH ; CHAMPIONS_ROOM diff --git a/data/mapObjects/LavenderCuboneHouse.asm b/data/mapObjects/LavenderCuboneHouse.asm deleted file mode 100755 index 96f1b3ba0..000000000 --- a/data/mapObjects/LavenderCuboneHouse.asm +++ /dev/null @@ -1,16 +0,0 @@ -LavenderCuboneHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 4, -1 - warp 3, 7, 4, -1 - - db 0 ; signs - - db 2 ; objects - object SPRITE_SLOWBRO, 3, 5, STAY, UP, 1 ; person - object SPRITE_BRUNETTE_GIRL, 2, 4, STAY, RIGHT, 2 ; person - - ; warp-to - warp_to 2, 7, LAVENDER_CUBONE_HOUSE_WIDTH - warp_to 3, 7, LAVENDER_CUBONE_HOUSE_WIDTH diff --git a/data/mapObjects/LavenderMart.asm b/data/mapObjects/LavenderMart.asm deleted file mode 100755 index df14ad397..000000000 --- a/data/mapObjects/LavenderMart.asm +++ /dev/null @@ -1,17 +0,0 @@ -LavenderMart_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 3, -1 - warp 4, 7, 3, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 1 ; person - object SPRITE_BALDING_GUY, 3, 4, STAY, NONE, 2 ; person - object SPRITE_BLACK_HAIR_BOY_1, 7, 2, STAY, NONE, 3 ; person - - ; warp-to - warp_to 3, 7, LAVENDER_MART_WIDTH - warp_to 4, 7, LAVENDER_MART_WIDTH diff --git a/data/mapObjects/LavenderPokecenter.asm b/data/mapObjects/LavenderPokecenter.asm deleted file mode 100755 index 6e38a8e95..000000000 --- a/data/mapObjects/LavenderPokecenter.asm +++ /dev/null @@ -1,19 +0,0 @@ -LavenderPokecenter_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 0, -1 - warp 4, 7, 0, -1 - - db 0 ; signs - - db 5 ; objects - object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person - object SPRITE_GENTLEMAN, 5, 3, STAY, NONE, 2 ; person - object SPRITE_LITTLE_GIRL, 10, 5, WALK, 2, 3 ; person - object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person - object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person - - ; warp-to - warp_to 3, 7, LAVENDER_POKECENTER_WIDTH - warp_to 4, 7, LAVENDER_POKECENTER_WIDTH diff --git a/data/mapObjects/LavenderTown.asm b/data/mapObjects/LavenderTown.asm deleted file mode 100755 index 4aead6661..000000000 --- a/data/mapObjects/LavenderTown.asm +++ /dev/null @@ -1,31 +0,0 @@ -LavenderTown_Object: - db $2c ; border block - - db 6 ; warps - warp 3, 5, 0, LAVENDER_POKECENTER - warp 14, 5, 0, POKEMON_TOWER_1F - warp 7, 9, 0, MR_FUJIS_HOUSE - warp 15, 13, 0, LAVENDER_MART - warp 3, 13, 0, LAVENDER_CUBONE_HOUSE - warp 7, 13, 0, NAME_RATERS_HOUSE - - db 6 ; signs - sign 11, 9, 4 ; LavenderTownText4 - sign 9, 3, 5 ; LavenderTownText5 - sign 16, 13, 6 ; MartSignText - sign 4, 5, 7 ; PokeCenterSignText - sign 5, 9, 8 ; LavenderTownText8 - sign 17, 7, 9 ; LavenderTownText9 - - db 3 ; objects - object SPRITE_LITTLE_GIRL, 15, 9, WALK, 0, 1 ; person - object SPRITE_BLACK_HAIR_BOY_1, 9, 10, STAY, NONE, 2 ; person - object SPRITE_BLACK_HAIR_BOY_2, 8, 7, WALK, 2, 3 ; person - - ; warp-to - warp_to 3, 5, LAVENDER_TOWN_WIDTH ; LAVENDER_POKECENTER - warp_to 14, 5, LAVENDER_TOWN_WIDTH ; POKEMON_TOWER_1F - warp_to 7, 9, LAVENDER_TOWN_WIDTH ; MR_FUJIS_HOUSE - warp_to 15, 13, LAVENDER_TOWN_WIDTH ; LAVENDER_MART - warp_to 3, 13, LAVENDER_TOWN_WIDTH ; LAVENDER_CUBONE_HOUSE - warp_to 7, 13, LAVENDER_TOWN_WIDTH ; NAME_RATERS_HOUSE diff --git a/data/mapObjects/LoreleisRoom.asm b/data/mapObjects/LoreleisRoom.asm deleted file mode 100755 index 06450bb4e..000000000 --- a/data/mapObjects/LoreleisRoom.asm +++ /dev/null @@ -1,19 +0,0 @@ -LoreleisRoom_Object: - db $3 ; border block - - db 4 ; warps - warp 4, 11, 2, INDIGO_PLATEAU_LOBBY - warp 5, 11, 2, INDIGO_PLATEAU_LOBBY - warp 4, 0, 0, BRUNOS_ROOM - warp 5, 0, 1, BRUNOS_ROOM - - db 0 ; signs - - db 1 ; objects - object SPRITE_LORELEI, 5, 2, STAY, DOWN, 1, OPP_LORELEI, 1 - - ; warp-to - warp_to 4, 11, LORELEIS_ROOM_WIDTH ; INDIGO_PLATEAU_LOBBY - warp_to 5, 11, LORELEIS_ROOM_WIDTH ; INDIGO_PLATEAU_LOBBY - warp_to 4, 0, LORELEIS_ROOM_WIDTH ; BRUNOS_ROOM - warp_to 5, 0, LORELEIS_ROOM_WIDTH ; BRUNOS_ROOM diff --git a/data/mapObjects/MrFujisHouse.asm b/data/mapObjects/MrFujisHouse.asm deleted file mode 100755 index 5b6ca2a6b..000000000 --- a/data/mapObjects/MrFujisHouse.asm +++ /dev/null @@ -1,20 +0,0 @@ -MrFujisHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 2, -1 - warp 3, 7, 2, -1 - - db 0 ; signs - - db 6 ; objects - object SPRITE_BLACK_HAIR_BOY_2, 3, 5, STAY, NONE, 1 ; person - object SPRITE_LITTLE_GIRL, 6, 3, STAY, DOWN, 2 ; person - object SPRITE_SLOWBRO, 6, 4, STAY, UP, 3 ; person - object SPRITE_SLOWBRO, 1, 3, STAY, NONE, 4 ; person - object SPRITE_MR_FUJI, 3, 1, STAY, NONE, 5 ; person - object SPRITE_BOOK_MAP_DEX, 3, 3, STAY, NONE, 6 ; person - - ; warp-to - warp_to 2, 7, MR_FUJIS_HOUSE_WIDTH - warp_to 3, 7, MR_FUJIS_HOUSE_WIDTH diff --git a/data/mapObjects/MrPsychicsHouse.asm b/data/mapObjects/MrPsychicsHouse.asm deleted file mode 100755 index 01f9e11ce..000000000 --- a/data/mapObjects/MrPsychicsHouse.asm +++ /dev/null @@ -1,15 +0,0 @@ -MrPsychicsHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 7, -1 - warp 3, 7, 7, -1 - - db 0 ; signs - - db 1 ; objects - object SPRITE_FISHER, 5, 3, STAY, LEFT, 1 ; person - - ; warp-to - warp_to 2, 7, MR_PSYCHICS_HOUSE_WIDTH - warp_to 3, 7, MR_PSYCHICS_HOUSE_WIDTH diff --git a/data/mapObjects/MtMoon1F.asm b/data/mapObjects/MtMoon1F.asm deleted file mode 100755 index 568201619..000000000 --- a/data/mapObjects/MtMoon1F.asm +++ /dev/null @@ -1,34 +0,0 @@ -MtMoon1F_Object: - db $3 ; border block - - db 5 ; warps - warp 14, 35, 1, -1 - warp 15, 35, 1, -1 - warp 5, 5, 0, MT_MOON_B1F - warp 17, 11, 2, MT_MOON_B1F - warp 25, 15, 3, MT_MOON_B1F - - db 1 ; signs - sign 15, 23, 14 ; MtMoon1Text14 - - db 13 ; objects - object SPRITE_HIKER, 5, 6, STAY, DOWN, 1, OPP_HIKER, 1 - object SPRITE_BUG_CATCHER, 12, 16, STAY, RIGHT, 2, OPP_YOUNGSTER, 3 - object SPRITE_LASS, 30, 4, STAY, DOWN, 3, OPP_LASS, 5 - object SPRITE_BLACK_HAIR_BOY_2, 24, 31, STAY, UP, 4, OPP_SUPER_NERD, 1 - object SPRITE_LASS, 16, 23, STAY, DOWN, 5, OPP_LASS, 6 - object SPRITE_BUG_CATCHER, 7, 22, STAY, DOWN, 6, OPP_BUG_CATCHER, 7 - object SPRITE_BUG_CATCHER, 30, 27, STAY, RIGHT, 7, OPP_BUG_CATCHER, 8 - object SPRITE_BALL, 2, 20, STAY, NONE, 8, POTION - object SPRITE_BALL, 2, 2, STAY, NONE, 9, MOON_STONE - object SPRITE_BALL, 35, 31, STAY, NONE, 10, RARE_CANDY - object SPRITE_BALL, 36, 23, STAY, NONE, 11, ESCAPE_ROPE - object SPRITE_BALL, 20, 33, STAY, NONE, 12, POTION - object SPRITE_BALL, 5, 32, STAY, NONE, 13, TM_12 - - ; warp-to - warp_to 14, 35, MT_MOON_1F_WIDTH - warp_to 15, 35, MT_MOON_1F_WIDTH - warp_to 5, 5, MT_MOON_1F_WIDTH ; MT_MOON_B1F - warp_to 17, 11, MT_MOON_1F_WIDTH ; MT_MOON_B1F - warp_to 25, 15, MT_MOON_1F_WIDTH ; MT_MOON_B1F diff --git a/data/mapObjects/MtMoonB1F.asm b/data/mapObjects/MtMoonB1F.asm deleted file mode 100755 index a8365ba79..000000000 --- a/data/mapObjects/MtMoonB1F.asm +++ /dev/null @@ -1,26 +0,0 @@ -MtMoonB1F_Object: - db $3 ; border block - - db 8 ; warps - warp 5, 5, 2, MT_MOON_1F - warp 17, 11, 0, MT_MOON_B2F - warp 25, 9, 3, MT_MOON_1F - warp 25, 15, 4, MT_MOON_1F - warp 21, 17, 1, MT_MOON_B2F - warp 13, 27, 2, MT_MOON_B2F - warp 23, 3, 3, MT_MOON_B2F - warp 27, 3, 2, -1 - - db 0 ; signs - - db 0 ; objects - - ; warp-to - warp_to 5, 5, MT_MOON_B1F_WIDTH ; MT_MOON_1F - warp_to 17, 11, MT_MOON_B1F_WIDTH ; MT_MOON_B2F - warp_to 25, 9, MT_MOON_B1F_WIDTH ; MT_MOON_1F - warp_to 25, 15, MT_MOON_B1F_WIDTH ; MT_MOON_1F - warp_to 21, 17, MT_MOON_B1F_WIDTH ; MT_MOON_B2F - warp_to 13, 27, MT_MOON_B1F_WIDTH ; MT_MOON_B2F - warp_to 23, 3, MT_MOON_B1F_WIDTH ; MT_MOON_B2F - warp_to 27, 3, MT_MOON_B1F_WIDTH diff --git a/data/mapObjects/MtMoonB2F.asm b/data/mapObjects/MtMoonB2F.asm deleted file mode 100755 index a4c9869ad..000000000 --- a/data/mapObjects/MtMoonB2F.asm +++ /dev/null @@ -1,28 +0,0 @@ -MtMoonB2F_Object: - db $3 ; border block - - db 4 ; warps - warp 25, 9, 1, MT_MOON_B1F - warp 21, 17, 4, MT_MOON_B1F - warp 15, 27, 5, MT_MOON_B1F - warp 5, 7, 6, MT_MOON_B1F - - db 0 ; signs - - db 10 ; objects - object SPRITE_BLACK_HAIR_BOY_2, 12, 8, STAY, RIGHT, 1, OPP_SUPER_NERD, 2 - object SPRITE_JESSIE, 9, 3, STAY, LEFT, 2 - object SPRITE_ROCKET, 15, 22, STAY, DOWN, 3, OPP_ROCKET, 2 - object SPRITE_ROCKET, 29, 11, STAY, UP, 4, OPP_ROCKET, 3 - object SPRITE_ROCKET, 29, 17, STAY, LEFT, 5, OPP_ROCKET, 1 - object SPRITE_JAMES, 9, 4, STAY, LEFT, 6 - object SPRITE_OMANYTE, 12, 6, STAY, NONE, 7 ; person - object SPRITE_OMANYTE, 13, 6, STAY, NONE, 8 ; person - object SPRITE_BALL, 25, 21, STAY, NONE, 9, HP_UP - object SPRITE_BALL, 29, 5, STAY, NONE, 10, TM_01 - - ; warp-to - warp_to 25, 9, MT_MOON_B2F_WIDTH ; MT_MOON_B1F - warp_to 21, 17, MT_MOON_B2F_WIDTH ; MT_MOON_B1F - warp_to 15, 27, MT_MOON_B2F_WIDTH ; MT_MOON_B1F - warp_to 5, 7, MT_MOON_B2F_WIDTH ; MT_MOON_B1F diff --git a/data/mapObjects/MtMoonPokecenter.asm b/data/mapObjects/MtMoonPokecenter.asm deleted file mode 100755 index 1027f88af..000000000 --- a/data/mapObjects/MtMoonPokecenter.asm +++ /dev/null @@ -1,21 +0,0 @@ -MtMoonPokecenter_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 0, -1 - warp 4, 7, 0, -1 - - db 0 ; signs - - db 7 ; objects - object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person - object SPRITE_BUG_CATCHER, 4, 3, STAY, UP, 2 ; person - object SPRITE_GENTLEMAN, 7, 3, STAY, UP, 3 ; person - object SPRITE_FAT_BALD_GUY, 10, 6, WALK, 2, 4 ; person - object SPRITE_CLIPBOARD, 7, 2, STAY, NONE, 5 ; person - object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 6 ; person - object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 7 ; person - - ; warp-to - warp_to 3, 7, MT_MOON_POKECENTER_WIDTH - warp_to 4, 7, MT_MOON_POKECENTER_WIDTH diff --git a/data/mapObjects/Museum1F.asm b/data/mapObjects/Museum1F.asm deleted file mode 100755 index 1cfd2c688..000000000 --- a/data/mapObjects/Museum1F.asm +++ /dev/null @@ -1,25 +0,0 @@ -Museum1F_Object: - db $a ; border block - - db 5 ; warps - warp 10, 7, 0, -1 - warp 11, 7, 0, -1 - warp 16, 7, 1, -1 - warp 17, 7, 1, -1 - warp 7, 7, 0, MUSEUM_2F - - db 0 ; signs - - db 5 ; objects - object SPRITE_OAK_AIDE, 12, 4, STAY, LEFT, 1 ; person - object SPRITE_GAMBLER, 1, 4, STAY, NONE, 2 ; person - object SPRITE_OAK_AIDE, 15, 2, STAY, DOWN, 3 ; person - object SPRITE_OAK_AIDE, 17, 4, STAY, NONE, 4 ; person - object SPRITE_OLD_AMBER, 16, 2, STAY, NONE, 5 ; person - - ; warp-to - warp_to 10, 7, MUSEUM_1F_WIDTH - warp_to 11, 7, MUSEUM_1F_WIDTH - warp_to 16, 7, MUSEUM_1F_WIDTH - warp_to 17, 7, MUSEUM_1F_WIDTH - warp_to 7, 7, MUSEUM_1F_WIDTH ; MUSEUM_2F diff --git a/data/mapObjects/Museum2F.asm b/data/mapObjects/Museum2F.asm deleted file mode 100755 index 808158202..000000000 --- a/data/mapObjects/Museum2F.asm +++ /dev/null @@ -1,19 +0,0 @@ -Museum2F_Object: - db $a ; border block - - db 1 ; warps - warp 7, 7, 4, MUSEUM_1F - - db 2 ; signs - sign 11, 2, 6 ; Museum2FText6 - sign 2, 5, 7 ; Museum2FText7 - - db 5 ; objects - object SPRITE_BUG_CATCHER, 1, 7, WALK, 2, 1 ; person - object SPRITE_OLD_PERSON, 0, 5, STAY, DOWN, 2 ; person - object SPRITE_OAK_AIDE, 7, 5, STAY, DOWN, 3 ; person - object SPRITE_BRUNETTE_GIRL, 11, 5, STAY, NONE, 4 ; person - object SPRITE_HIKER, 12, 5, STAY, DOWN, 5 ; person - - ; warp-to - warp_to 7, 7, MUSEUM_2F_WIDTH ; MUSEUM_1F diff --git a/data/mapObjects/NameRatersHouse.asm b/data/mapObjects/NameRatersHouse.asm deleted file mode 100755 index da95bc43f..000000000 --- a/data/mapObjects/NameRatersHouse.asm +++ /dev/null @@ -1,15 +0,0 @@ -NameRatersHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 5, -1 - warp 3, 7, 5, -1 - - db 0 ; signs - - db 1 ; objects - object SPRITE_MR_MASTERBALL, 5, 3, STAY, LEFT, 1 ; person - - ; warp-to - warp_to 2, 7, NAME_RATERS_HOUSE_WIDTH - warp_to 3, 7, NAME_RATERS_HOUSE_WIDTH diff --git a/data/mapObjects/OaksLab.asm b/data/mapObjects/OaksLab.asm deleted file mode 100755 index cf48bec94..000000000 --- a/data/mapObjects/OaksLab.asm +++ /dev/null @@ -1,23 +0,0 @@ -OaksLab_Object: - db $3 ; border block - - db 2 ; warps - warp 4, 11, 2, -1 - warp 5, 11, 2, -1 - - db 0 ; signs - - db 9 ; objects - object SPRITE_BLUE, 4, 3, STAY, NONE, 1, OPP_SONY1, 1 - object SPRITE_BALL, 7, 3, STAY, NONE, 2 ; person - object SPRITE_OAK, 5, 2, STAY, DOWN, 3 ; person - object SPRITE_BOOK_MAP_DEX, 2, 1, STAY, NONE, 4 ; person - object SPRITE_BOOK_MAP_DEX, 3, 1, STAY, NONE, 5 ; person - object SPRITE_OAK, 5, 10, STAY, UP, 6 ; person - object SPRITE_GIRL, 1, 9, WALK, 1, 7 ; person - object SPRITE_OAK_AIDE, 2, 10, STAY, NONE, 8 ; person - object SPRITE_OAK_AIDE, 8, 10, STAY, NONE, 9 ; person - - ; warp-to - warp_to 4, 11, OAKS_LAB_WIDTH - warp_to 5, 11, OAKS_LAB_WIDTH diff --git a/data/mapObjects/PalletTown.asm b/data/mapObjects/PalletTown.asm deleted file mode 100755 index 938076886..000000000 --- a/data/mapObjects/PalletTown.asm +++ /dev/null @@ -1,23 +0,0 @@ -PalletTown_Object: - db $b ; border block - - db 3 ; warps - warp 5, 5, 0, REDS_HOUSE_1F - warp 13, 5, 0, BLUES_HOUSE - warp 12, 11, 1, OAKS_LAB - - db 4 ; signs - sign 13, 13, 4 ; PalletTownText4 - sign 7, 9, 5 ; PalletTownText5 - sign 3, 5, 6 ; PalletTownText6 - sign 11, 5, 7 ; PalletTownText7 - - db 3 ; objects - object SPRITE_OAK, 10, 4, STAY, NONE, 1 ; person - object SPRITE_GIRL, 3, 8, WALK, 0, 2 ; person - object SPRITE_FISHER2, 11, 14, WALK, 0, 3 ; person - - ; warp-to - warp_to 5, 5, PALLET_TOWN_WIDTH ; REDS_HOUSE_1F - warp_to 13, 5, PALLET_TOWN_WIDTH ; BLUES_HOUSE - warp_to 12, 11, PALLET_TOWN_WIDTH ; OAKS_LAB diff --git a/data/mapObjects/PewterCity.asm b/data/mapObjects/PewterCity.asm deleted file mode 100755 index e1a3eecba..000000000 --- a/data/mapObjects/PewterCity.asm +++ /dev/null @@ -1,36 +0,0 @@ -PewterCity_Object: - db $a ; border block - - db 7 ; warps - warp 14, 7, 0, MUSEUM_1F - warp 19, 5, 2, MUSEUM_1F - warp 16, 17, 0, PEWTER_GYM - warp 29, 13, 0, PEWTER_NIDORAN_HOUSE - warp 23, 17, 0, PEWTER_MART - warp 7, 29, 0, PEWTER_SPEECH_HOUSE - warp 13, 25, 0, PEWTER_POKECENTER - - db 7 ; signs - sign 19, 29, 6 ; PewterCityText6 - sign 33, 19, 7 ; PewterCityText7 - sign 24, 17, 8 ; MartSignText - sign 14, 25, 9 ; PokeCenterSignText - sign 15, 9, 10 ; PewterCityText10 - sign 11, 17, 11 ; PewterCityText11 - sign 25, 23, 12 ; PewterCityText12 - - db 5 ; objects - object SPRITE_LASS, 8, 15, STAY, NONE, 1 ; person - object SPRITE_BLACK_HAIR_BOY_1, 17, 25, STAY, NONE, 2 ; person - object SPRITE_BLACK_HAIR_BOY_2, 27, 17, STAY, NONE, 3 ; person - object SPRITE_BLACK_HAIR_BOY_2, 26, 25, WALK, 2, 4 ; person - object SPRITE_BUG_CATCHER, 35, 16, STAY, DOWN, 5 ; person - - ; warp-to - warp_to 14, 7, PEWTER_CITY_WIDTH ; MUSEUM_1F - warp_to 19, 5, PEWTER_CITY_WIDTH ; MUSEUM_1F - warp_to 16, 17, PEWTER_CITY_WIDTH ; PEWTER_GYM - warp_to 29, 13, PEWTER_CITY_WIDTH ; PEWTER_NIDORAN_HOUSE - warp_to 23, 17, PEWTER_CITY_WIDTH ; PEWTER_MART - warp_to 7, 29, PEWTER_CITY_WIDTH ; PEWTER_SPEECH_HOUSE - warp_to 13, 25, PEWTER_CITY_WIDTH ; PEWTER_POKECENTER diff --git a/data/mapObjects/PewterGym.asm b/data/mapObjects/PewterGym.asm deleted file mode 100755 index 538c3923c..000000000 --- a/data/mapObjects/PewterGym.asm +++ /dev/null @@ -1,17 +0,0 @@ -PewterGym_Object: - db $3 ; border block - - db 2 ; warps - warp 4, 13, 2, -1 - warp 5, 13, 2, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_BLACK_HAIR_BOY_2, 4, 1, STAY, DOWN, 1, OPP_BROCK, 1 - object SPRITE_BLACK_HAIR_BOY_1, 3, 6, STAY, RIGHT, 2, OPP_JR_TRAINER_M, 1 - object SPRITE_GYM_HELPER, 7, 10, STAY, DOWN, 3 ; person - - ; warp-to - warp_to 4, 13, PEWTER_GYM_WIDTH - warp_to 5, 13, PEWTER_GYM_WIDTH diff --git a/data/mapObjects/PewterMart.asm b/data/mapObjects/PewterMart.asm deleted file mode 100755 index 9b9833162..000000000 --- a/data/mapObjects/PewterMart.asm +++ /dev/null @@ -1,17 +0,0 @@ -PewterMart_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 4, -1 - warp 4, 7, 4, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 1 ; person - object SPRITE_BUG_CATCHER, 3, 3, WALK, 1, 2 ; person - object SPRITE_BLACK_HAIR_BOY_2, 5, 5, STAY, NONE, 3 ; person - - ; warp-to - warp_to 3, 7, PEWTER_MART_WIDTH - warp_to 4, 7, PEWTER_MART_WIDTH diff --git a/data/mapObjects/PewterNidoranHouse.asm b/data/mapObjects/PewterNidoranHouse.asm deleted file mode 100755 index f00317d16..000000000 --- a/data/mapObjects/PewterNidoranHouse.asm +++ /dev/null @@ -1,17 +0,0 @@ -PewterNidoranHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 3, -1 - warp 3, 7, 3, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_SLOWBRO, 4, 5, STAY, LEFT, 1 ; person - object SPRITE_YOUNG_BOY, 3, 5, STAY, RIGHT, 2 ; person - object SPRITE_FAT_BALD_GUY, 1, 2, STAY, NONE, 3 ; person - - ; warp-to - warp_to 2, 7, PEWTER_NIDORAN_HOUSE_WIDTH - warp_to 3, 7, PEWTER_NIDORAN_HOUSE_WIDTH diff --git a/data/mapObjects/PewterPokecenter.asm b/data/mapObjects/PewterPokecenter.asm deleted file mode 100755 index 4d4607479..000000000 --- a/data/mapObjects/PewterPokecenter.asm +++ /dev/null @@ -1,20 +0,0 @@ -PewterPokecenter_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 6, -1 - warp 4, 7, 6, -1 - - db 0 ; signs - - db 6 ; objects - object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person - object SPRITE_GENTLEMAN, 11, 7, STAY, LEFT, 2 ; person - object SPRITE_JIGGLYPUFF, 1, 3, STAY, DOWN, 3 ; person - object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person - object SPRITE_LASS, 4, 3, STAY, UP, 5 ; person - object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 6 ; person - - ; warp-to - warp_to 3, 7, PEWTER_POKECENTER_WIDTH - warp_to 4, 7, PEWTER_POKECENTER_WIDTH diff --git a/data/mapObjects/PewterSpeechHouse.asm b/data/mapObjects/PewterSpeechHouse.asm deleted file mode 100755 index e7134cb58..000000000 --- a/data/mapObjects/PewterSpeechHouse.asm +++ /dev/null @@ -1,16 +0,0 @@ -PewterSpeechHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 5, -1 - warp 3, 7, 5, -1 - - db 0 ; signs - - db 2 ; objects - object SPRITE_GAMBLER, 2, 3, STAY, RIGHT, 1 ; person - object SPRITE_BUG_CATCHER, 4, 5, STAY, NONE, 2 ; person - - ; warp-to - warp_to 2, 7, PEWTER_SPEECH_HOUSE_WIDTH - warp_to 3, 7, PEWTER_SPEECH_HOUSE_WIDTH diff --git a/data/mapObjects/PokemonFanClub.asm b/data/mapObjects/PokemonFanClub.asm deleted file mode 100755 index 588ebdc2e..000000000 --- a/data/mapObjects/PokemonFanClub.asm +++ /dev/null @@ -1,20 +0,0 @@ -PokemonFanClub_Object: - db $d ; border block - - db 2 ; warps - warp 2, 7, 1, -1 - warp 3, 7, 1, -1 - - db 0 ; signs - - db 6 ; objects - object SPRITE_FISHER2, 6, 3, STAY, LEFT, 1 ; person - object SPRITE_GIRL, 1, 3, STAY, RIGHT, 2 ; person - object SPRITE_CLEFAIRY_2, 6, 4, STAY, LEFT, 3 ; person - object SPRITE_SEEL, 1, 4, STAY, RIGHT, 4 ; person - object SPRITE_GENTLEMAN, 3, 1, STAY, DOWN, 5 ; person - object SPRITE_CABLE_CLUB_WOMAN, 5, 1, STAY, DOWN, 6 ; person - - ; warp-to - warp_to 2, 7, POKEMON_FAN_CLUB_WIDTH - warp_to 3, 7, POKEMON_FAN_CLUB_WIDTH diff --git a/data/mapObjects/PokemonMansion1F.asm b/data/mapObjects/PokemonMansion1F.asm deleted file mode 100755 index 109b5b8ec..000000000 --- a/data/mapObjects/PokemonMansion1F.asm +++ /dev/null @@ -1,29 +0,0 @@ -PokemonMansion1F_Object: - db $2e ; border block - - db 8 ; warps - warp 4, 27, 0, -1 - warp 5, 27, 0, -1 - warp 6, 27, 0, -1 - warp 7, 27, 0, -1 - warp 5, 10, 0, POKEMON_MANSION_2F - warp 21, 23, 0, POKEMON_MANSION_B1F - warp 26, 27, 0, -1 - warp 27, 27, 0, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_OAK_AIDE, 17, 17, STAY, LEFT, 1, OPP_SCIENTIST, 4 - object SPRITE_BALL, 14, 3, STAY, NONE, 2, ESCAPE_ROPE - object SPRITE_BALL, 18, 21, STAY, NONE, 3, CARBOS - - ; warp-to - warp_to 4, 27, POKEMON_MANSION_1F_WIDTH - warp_to 5, 27, POKEMON_MANSION_1F_WIDTH - warp_to 6, 27, POKEMON_MANSION_1F_WIDTH - warp_to 7, 27, POKEMON_MANSION_1F_WIDTH - warp_to 5, 10, POKEMON_MANSION_1F_WIDTH ; POKEMON_MANSION_2F - warp_to 21, 23, POKEMON_MANSION_1F_WIDTH ; POKEMON_MANSION_B1F - warp_to 26, 27, POKEMON_MANSION_1F_WIDTH - warp_to 27, 27, POKEMON_MANSION_1F_WIDTH diff --git a/data/mapObjects/PokemonMansion2F.asm b/data/mapObjects/PokemonMansion2F.asm deleted file mode 100755 index 6c0cc5f87..000000000 --- a/data/mapObjects/PokemonMansion2F.asm +++ /dev/null @@ -1,22 +0,0 @@ -PokemonMansion2F_Object: - db $1 ; border block - - db 4 ; warps - warp 5, 10, 4, POKEMON_MANSION_1F - warp 7, 10, 0, POKEMON_MANSION_3F - warp 25, 14, 2, POKEMON_MANSION_3F - warp 6, 1, 1, POKEMON_MANSION_3F - - db 0 ; signs - - db 4 ; objects - object SPRITE_BLACK_HAIR_BOY_2, 3, 17, WALK, 2, 1, OPP_BURGLAR, 7 - object SPRITE_BALL, 28, 7, STAY, NONE, 2, CALCIUM - object SPRITE_BOOK_MAP_DEX, 18, 2, STAY, NONE, 3 ; person - object SPRITE_BOOK_MAP_DEX, 3, 22, STAY, NONE, 4 ; person - - ; warp-to - warp_to 5, 10, POKEMON_MANSION_2F_WIDTH ; POKEMON_MANSION_1F - warp_to 7, 10, POKEMON_MANSION_2F_WIDTH ; POKEMON_MANSION_3F - warp_to 25, 14, POKEMON_MANSION_2F_WIDTH ; POKEMON_MANSION_3F - warp_to 6, 1, POKEMON_MANSION_2F_WIDTH ; POKEMON_MANSION_3F diff --git a/data/mapObjects/PokemonMansion3F.asm b/data/mapObjects/PokemonMansion3F.asm deleted file mode 100755 index 7c8c9c221..000000000 --- a/data/mapObjects/PokemonMansion3F.asm +++ /dev/null @@ -1,21 +0,0 @@ -PokemonMansion3F_Object: - db $1 ; border block - - db 3 ; warps - warp 7, 10, 1, POKEMON_MANSION_2F - warp 6, 1, 3, POKEMON_MANSION_2F - warp 25, 14, 2, POKEMON_MANSION_2F - - db 0 ; signs - - db 5 ; objects - object SPRITE_BLACK_HAIR_BOY_2, 5, 11, WALK, 2, 1, OPP_BURGLAR, 8 - object SPRITE_OAK_AIDE, 20, 11, STAY, LEFT, 2, OPP_SCIENTIST, 12 - object SPRITE_BALL, 1, 16, STAY, NONE, 3, MAX_POTION - object SPRITE_BALL, 25, 5, STAY, NONE, 4, IRON - object SPRITE_BOOK_MAP_DEX, 6, 12, STAY, NONE, 5 ; person - - ; warp-to - warp_to 7, 10, POKEMON_MANSION_3F_WIDTH ; POKEMON_MANSION_2F - warp_to 6, 1, POKEMON_MANSION_3F_WIDTH ; POKEMON_MANSION_2F - warp_to 25, 14, POKEMON_MANSION_3F_WIDTH ; POKEMON_MANSION_2F diff --git a/data/mapObjects/PokemonMansionB1F.asm b/data/mapObjects/PokemonMansionB1F.asm deleted file mode 100755 index ac2327993..000000000 --- a/data/mapObjects/PokemonMansionB1F.asm +++ /dev/null @@ -1,20 +0,0 @@ -PokemonMansionB1F_Object: - db $1 ; border block - - db 1 ; warps - warp 23, 22, 5, POKEMON_MANSION_1F - - db 0 ; signs - - db 8 ; objects - object SPRITE_BLACK_HAIR_BOY_2, 16, 23, STAY, NONE, 1, OPP_BURGLAR, 9 - object SPRITE_OAK_AIDE, 27, 11, STAY, DOWN, 2, OPP_SCIENTIST, 13 - object SPRITE_BALL, 10, 2, STAY, NONE, 3, RARE_CANDY - object SPRITE_BALL, 1, 22, STAY, NONE, 4, FULL_RESTORE - object SPRITE_BALL, 19, 25, STAY, NONE, 5, TM_14 - object SPRITE_BALL, 5, 4, STAY, NONE, 6, TM_22 - object SPRITE_BOOK_MAP_DEX, 16, 20, STAY, NONE, 7 ; person - object SPRITE_BALL, 5, 13, STAY, NONE, 8, SECRET_KEY - - ; warp-to - warp_to 23, 22, POKEMON_MANSION_B1F_WIDTH ; POKEMON_MANSION_1F diff --git a/data/mapObjects/PokemonTower1F.asm b/data/mapObjects/PokemonTower1F.asm deleted file mode 100755 index cf62836bf..000000000 --- a/data/mapObjects/PokemonTower1F.asm +++ /dev/null @@ -1,21 +0,0 @@ -PokemonTower1F_Object: - db $1 ; border block - - db 3 ; warps - warp 10, 17, 1, -1 - warp 11, 17, 1, -1 - warp 18, 9, 1, POKEMON_TOWER_2F - - db 0 ; signs - - db 5 ; objects - object SPRITE_CABLE_CLUB_WOMAN, 15, 13, STAY, UP, 1 ; person - object SPRITE_MOM_GEISHA, 6, 8, STAY, NONE, 2 ; person - object SPRITE_BALDING_GUY, 8, 12, STAY, NONE, 3 ; person - object SPRITE_GIRL, 13, 7, STAY, NONE, 4 ; person - object SPRITE_MEDIUM, 17, 7, STAY, LEFT, 5 ; person - - ; warp-to - warp_to 10, 17, POKEMON_TOWER_1F_WIDTH - warp_to 11, 17, POKEMON_TOWER_1F_WIDTH - warp_to 18, 9, POKEMON_TOWER_1F_WIDTH ; POKEMON_TOWER_2F diff --git a/data/mapObjects/PokemonTower2F.asm b/data/mapObjects/PokemonTower2F.asm deleted file mode 100755 index 5ce437d16..000000000 --- a/data/mapObjects/PokemonTower2F.asm +++ /dev/null @@ -1,16 +0,0 @@ -PokemonTower2F_Object: - db $1 ; border block - - db 2 ; warps - warp 3, 9, 0, POKEMON_TOWER_3F - warp 18, 9, 2, POKEMON_TOWER_1F - - db 0 ; signs - - db 2 ; objects - object SPRITE_BLUE, 14, 5, STAY, NONE, 1 ; person - object SPRITE_MEDIUM, 3, 7, STAY, RIGHT, 2 ; person - - ; warp-to - warp_to 3, 9, POKEMON_TOWER_2F_WIDTH ; POKEMON_TOWER_3F - warp_to 18, 9, POKEMON_TOWER_2F_WIDTH ; POKEMON_TOWER_1F diff --git a/data/mapObjects/PokemonTower3F.asm b/data/mapObjects/PokemonTower3F.asm deleted file mode 100755 index 79b83f881..000000000 --- a/data/mapObjects/PokemonTower3F.asm +++ /dev/null @@ -1,18 +0,0 @@ -PokemonTower3F_Object: - db $1 ; border block - - db 2 ; warps - warp 3, 9, 0, POKEMON_TOWER_2F - warp 18, 9, 1, POKEMON_TOWER_4F - - db 0 ; signs - - db 4 ; objects - object SPRITE_MEDIUM, 12, 3, STAY, LEFT, 1, OPP_CHANNELER, 5 - object SPRITE_MEDIUM, 9, 8, STAY, DOWN, 2, OPP_CHANNELER, 6 - object SPRITE_MEDIUM, 10, 13, STAY, DOWN, 3, OPP_CHANNELER, 8 - object SPRITE_BALL, 12, 1, STAY, NONE, 4, ESCAPE_ROPE - - ; warp-to - warp_to 3, 9, POKEMON_TOWER_3F_WIDTH ; POKEMON_TOWER_2F - warp_to 18, 9, POKEMON_TOWER_3F_WIDTH ; POKEMON_TOWER_4F diff --git a/data/mapObjects/PokemonTower4F.asm b/data/mapObjects/PokemonTower4F.asm deleted file mode 100755 index db86c02c0..000000000 --- a/data/mapObjects/PokemonTower4F.asm +++ /dev/null @@ -1,20 +0,0 @@ -PokemonTower4F_Object: - db $1 ; border block - - db 2 ; warps - warp 3, 9, 0, POKEMON_TOWER_5F - warp 18, 9, 1, POKEMON_TOWER_3F - - db 0 ; signs - - db 6 ; objects - object SPRITE_MEDIUM, 5, 10, STAY, RIGHT, 1, OPP_CHANNELER, 9 - object SPRITE_MEDIUM, 15, 7, STAY, DOWN, 2, OPP_CHANNELER, 10 - object SPRITE_MEDIUM, 14, 12, STAY, LEFT, 3, OPP_CHANNELER, 12 - object SPRITE_BALL, 12, 10, STAY, NONE, 4, ELIXER - object SPRITE_BALL, 9, 10, STAY, NONE, 5, AWAKENING - object SPRITE_BALL, 12, 16, STAY, NONE, 6, HP_UP - - ; warp-to - warp_to 3, 9, POKEMON_TOWER_4F_WIDTH ; POKEMON_TOWER_5F - warp_to 18, 9, POKEMON_TOWER_4F_WIDTH ; POKEMON_TOWER_3F diff --git a/data/mapObjects/PokemonTower5F.asm b/data/mapObjects/PokemonTower5F.asm deleted file mode 100755 index b482871f0..000000000 --- a/data/mapObjects/PokemonTower5F.asm +++ /dev/null @@ -1,20 +0,0 @@ -PokemonTower5F_Object: - db $1 ; border block - - db 2 ; warps - warp 3, 9, 0, POKEMON_TOWER_4F - warp 18, 9, 0, POKEMON_TOWER_6F - - db 0 ; signs - - db 6 ; objects - object SPRITE_MEDIUM, 12, 8, STAY, NONE, 1 ; person - object SPRITE_MEDIUM, 17, 7, STAY, LEFT, 2, OPP_CHANNELER, 14 - object SPRITE_MEDIUM, 14, 3, STAY, LEFT, 3, OPP_CHANNELER, 16 - object SPRITE_MEDIUM, 6, 10, STAY, RIGHT, 4, OPP_CHANNELER, 17 - object SPRITE_MEDIUM, 9, 16, STAY, RIGHT, 5, OPP_CHANNELER, 18 - object SPRITE_BALL, 6, 14, STAY, NONE, 6, NUGGET - - ; warp-to - warp_to 3, 9, POKEMON_TOWER_5F_WIDTH ; POKEMON_TOWER_4F - warp_to 18, 9, POKEMON_TOWER_5F_WIDTH ; POKEMON_TOWER_6F diff --git a/data/mapObjects/PokemonTower6F.asm b/data/mapObjects/PokemonTower6F.asm deleted file mode 100755 index 823fe78a8..000000000 --- a/data/mapObjects/PokemonTower6F.asm +++ /dev/null @@ -1,19 +0,0 @@ -PokemonTower6F_Object: - db $1 ; border block - - db 2 ; warps - warp 18, 9, 1, POKEMON_TOWER_5F - warp 9, 16, 0, POKEMON_TOWER_7F - - db 0 ; signs - - db 5 ; objects - object SPRITE_MEDIUM, 12, 10, STAY, RIGHT, 1, OPP_CHANNELER, 19 - object SPRITE_MEDIUM, 9, 5, STAY, DOWN, 2, OPP_CHANNELER, 20 - object SPRITE_MEDIUM, 16, 5, STAY, LEFT, 3, OPP_CHANNELER, 21 - object SPRITE_BALL, 6, 8, STAY, NONE, 4, RARE_CANDY - object SPRITE_BALL, 14, 14, STAY, NONE, 5, X_ACCURACY - - ; warp-to - warp_to 18, 9, POKEMON_TOWER_6F_WIDTH ; POKEMON_TOWER_5F - warp_to 9, 16, POKEMON_TOWER_6F_WIDTH ; POKEMON_TOWER_7F diff --git a/data/mapObjects/PokemonTower7F.asm b/data/mapObjects/PokemonTower7F.asm deleted file mode 100755 index ccd4f23c2..000000000 --- a/data/mapObjects/PokemonTower7F.asm +++ /dev/null @@ -1,15 +0,0 @@ -PokemonTower7F_Object: - db $1 ; border block - - db 1 ; warps - warp 9, 16, 1, POKEMON_TOWER_6F - - db 0 ; signs - - db 3 ; objects - object SPRITE_JESSIE, 10, 8, STAY, DOWN, 1 - object SPRITE_JAMES, 11, 8, STAY, DOWN, 2 - object SPRITE_MR_FUJI, 10, 3, STAY, DOWN, 3 - - ; warp-to - warp_to 9, 16, POKEMON_TOWER_7F_WIDTH ; POKEMON_TOWER_6F diff --git a/data/mapObjects/PowerPlant.asm b/data/mapObjects/PowerPlant.asm deleted file mode 100755 index a8548b1ce..000000000 --- a/data/mapObjects/PowerPlant.asm +++ /dev/null @@ -1,30 +0,0 @@ -PowerPlant_Object: - db $2e ; border block - - db 3 ; warps - warp 4, 35, 3, -1 - warp 5, 35, 3, -1 - warp 0, 11, 3, -1 - - db 0 ; signs - - db 14 ; objects - object SPRITE_BALL, 9, 20, STAY, NONE, 1, VOLTORB, 40 - object SPRITE_BALL, 32, 18, STAY, NONE, 2, VOLTORB, 40 - object SPRITE_BALL, 21, 25, STAY, NONE, 3, VOLTORB, 40 - object SPRITE_BALL, 25, 18, STAY, NONE, 4, ELECTRODE, 43 - object SPRITE_BALL, 23, 34, STAY, NONE, 5, VOLTORB, 40 - object SPRITE_BALL, 26, 28, STAY, NONE, 6, VOLTORB, 40 - object SPRITE_BALL, 21, 14, STAY, NONE, 7, ELECTRODE, 43 - object SPRITE_BALL, 37, 32, STAY, NONE, 8, VOLTORB, 40 - object SPRITE_BIRD, 4, 9, STAY, UP, 9, ZAPDOS, 50 - object SPRITE_BALL, 7, 25, STAY, NONE, 10, CARBOS - object SPRITE_BALL, 28, 3, STAY, NONE, 11, HP_UP - object SPRITE_BALL, 34, 3, STAY, NONE, 12, RARE_CANDY - object SPRITE_BALL, 26, 32, STAY, NONE, 13, TM_25 - object SPRITE_BALL, 20, 32, STAY, NONE, 14, TM_33 - - ; warp-to - warp_to 4, 35, POWER_PLANT_WIDTH - warp_to 5, 35, POWER_PLANT_WIDTH - warp_to 0, 11, POWER_PLANT_WIDTH diff --git a/data/mapObjects/RedsHouse1F.asm b/data/mapObjects/RedsHouse1F.asm deleted file mode 100755 index a54b54113..000000000 --- a/data/mapObjects/RedsHouse1F.asm +++ /dev/null @@ -1,18 +0,0 @@ -RedsHouse1F_Object: - db $a ; border block - - db 3 ; warps - warp 2, 7, 0, -1 ; exit1 - warp 3, 7, 0, -1 ; exit2 - warp 7, 1, 0, REDS_HOUSE_2F ; staircase - - db 1 ; signs - sign 3, 1, 2 ; TV - - db 1 ; objects - object SPRITE_MOM, 5, 4, STAY, LEFT, 1 ; Mom - - ; warp-to - warp_to 2, 7, REDS_HOUSE_1F_WIDTH - warp_to 3, 7, REDS_HOUSE_1F_WIDTH - warp_to 7, 1, REDS_HOUSE_1F_WIDTH diff --git a/data/mapObjects/RedsHouse2F.asm b/data/mapObjects/RedsHouse2F.asm deleted file mode 100755 index 98e9c2368..000000000 --- a/data/mapObjects/RedsHouse2F.asm +++ /dev/null @@ -1,12 +0,0 @@ -RedsHouse2F_Object: - db $a ; border block - - db 1 ; warps - warp 7, 1, 2, REDS_HOUSE_1F - - db 0 ; signs - - db 0 ; objects - - ; warp-to - warp_to 7, 1, REDS_HOUSE_2F_WIDTH diff --git a/data/mapObjects/RockTunnel1F.asm b/data/mapObjects/RockTunnel1F.asm deleted file mode 100755 index 1cf5a12fc..000000000 --- a/data/mapObjects/RockTunnel1F.asm +++ /dev/null @@ -1,34 +0,0 @@ -RockTunnel1F_Object: - db $3 ; border block - - db 8 ; warps - warp 15, 3, 1, -1 - warp 15, 0, 1, -1 - warp 15, 33, 2, -1 - warp 15, 35, 2, -1 - warp 37, 3, 0, ROCK_TUNNEL_B1F - warp 5, 3, 1, ROCK_TUNNEL_B1F - warp 17, 11, 2, ROCK_TUNNEL_B1F - warp 37, 17, 3, ROCK_TUNNEL_B1F - - db 1 ; signs - sign 11, 29, 8 ; RockTunnel1Text8 - - db 7 ; objects - object SPRITE_HIKER, 7, 5, STAY, DOWN, 1, OPP_HIKER, 12 - object SPRITE_HIKER, 5, 16, STAY, DOWN, 2, OPP_HIKER, 13 - object SPRITE_HIKER, 17, 15, STAY, LEFT, 3, OPP_HIKER, 14 - object SPRITE_BLACK_HAIR_BOY_2, 23, 8, STAY, LEFT, 4, OPP_POKEMANIAC, 7 - object SPRITE_LASS, 37, 21, STAY, LEFT, 5, OPP_JR_TRAINER_F, 17 - object SPRITE_LASS, 22, 24, STAY, DOWN, 6, OPP_JR_TRAINER_F, 18 - object SPRITE_LASS, 32, 24, STAY, RIGHT, 7, OPP_JR_TRAINER_F, 19 - - ; warp-to - warp_to 15, 3, ROCK_TUNNEL_1F_WIDTH - warp_to 15, 0, ROCK_TUNNEL_1F_WIDTH - warp_to 15, 33, ROCK_TUNNEL_1F_WIDTH - warp_to 15, 35, ROCK_TUNNEL_1F_WIDTH - warp_to 37, 3, ROCK_TUNNEL_1F_WIDTH ; ROCK_TUNNEL_B1F - warp_to 5, 3, ROCK_TUNNEL_1F_WIDTH ; ROCK_TUNNEL_B1F - warp_to 17, 11, ROCK_TUNNEL_1F_WIDTH ; ROCK_TUNNEL_B1F - warp_to 37, 17, ROCK_TUNNEL_1F_WIDTH ; ROCK_TUNNEL_B1F diff --git a/data/mapObjects/RockTunnelB1F.asm b/data/mapObjects/RockTunnelB1F.asm deleted file mode 100755 index f562168ed..000000000 --- a/data/mapObjects/RockTunnelB1F.asm +++ /dev/null @@ -1,26 +0,0 @@ -RockTunnelB1F_Object: - db $3 ; border block - - db 4 ; warps - warp 33, 25, 4, ROCK_TUNNEL_1F - warp 27, 3, 5, ROCK_TUNNEL_1F - warp 23, 11, 6, ROCK_TUNNEL_1F - warp 3, 3, 7, ROCK_TUNNEL_1F - - db 0 ; signs - - db 8 ; objects - object SPRITE_LASS, 11, 13, STAY, DOWN, 1, OPP_JR_TRAINER_F, 9 - object SPRITE_HIKER, 6, 10, STAY, DOWN, 2, OPP_HIKER, 9 - object SPRITE_BLACK_HAIR_BOY_2, 3, 5, STAY, DOWN, 3, OPP_POKEMANIAC, 3 - object SPRITE_BLACK_HAIR_BOY_2, 20, 21, STAY, RIGHT, 4, OPP_POKEMANIAC, 4 - object SPRITE_HIKER, 30, 10, STAY, DOWN, 5, OPP_HIKER, 10 - object SPRITE_LASS, 14, 28, STAY, RIGHT, 6, OPP_JR_TRAINER_F, 10 - object SPRITE_HIKER, 33, 5, STAY, RIGHT, 7, OPP_HIKER, 11 - object SPRITE_BLACK_HAIR_BOY_2, 26, 30, STAY, DOWN, 8, OPP_POKEMANIAC, 5 - - ; warp-to - warp_to 33, 25, ROCK_TUNNEL_B1F_WIDTH ; ROCK_TUNNEL_1F - warp_to 27, 3, ROCK_TUNNEL_B1F_WIDTH ; ROCK_TUNNEL_1F - warp_to 23, 11, ROCK_TUNNEL_B1F_WIDTH ; ROCK_TUNNEL_1F - warp_to 3, 3, ROCK_TUNNEL_B1F_WIDTH ; ROCK_TUNNEL_1F diff --git a/data/mapObjects/RockTunnelPokecenter.asm b/data/mapObjects/RockTunnelPokecenter.asm deleted file mode 100755 index dfd080174..000000000 --- a/data/mapObjects/RockTunnelPokecenter.asm +++ /dev/null @@ -1,19 +0,0 @@ -RockTunnelPokecenter_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 0, -1 - warp 4, 7, 0, -1 - - db 0 ; signs - - db 5 ; objects - object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person - object SPRITE_GENTLEMAN, 7, 3, STAY, DOWN, 2 ; person - object SPRITE_FISHER2, 2, 5, STAY, NONE, 3 ; person - object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person - object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person - - ; warp-to - warp_to 3, 7, ROCK_TUNNEL_POKECENTER_WIDTH - warp_to 4, 7, ROCK_TUNNEL_POKECENTER_WIDTH diff --git a/data/mapObjects/RocketHideoutB1F.asm b/data/mapObjects/RocketHideoutB1F.asm deleted file mode 100755 index 995375100..000000000 --- a/data/mapObjects/RocketHideoutB1F.asm +++ /dev/null @@ -1,27 +0,0 @@ -RocketHideoutB1F_Object: - db $2e ; border block - - db 5 ; warps - warp 23, 2, 0, ROCKET_HIDEOUT_B2F - warp 21, 2, 2, GAME_CORNER - warp 24, 19, 0, ROCKET_HIDEOUT_ELEVATOR - warp 21, 24, 3, ROCKET_HIDEOUT_B2F - warp 25, 19, 1, ROCKET_HIDEOUT_ELEVATOR - - db 0 ; signs - - db 7 ; objects - object SPRITE_ROCKET, 26, 8, STAY, LEFT, 1, OPP_ROCKET, 8 - object SPRITE_ROCKET, 12, 6, STAY, RIGHT, 2, OPP_ROCKET, 9 - object SPRITE_ROCKET, 18, 17, STAY, DOWN, 3, OPP_ROCKET, 10 - object SPRITE_ROCKET, 15, 25, STAY, RIGHT, 4, OPP_ROCKET, 11 - object SPRITE_ROCKET, 28, 18, STAY, LEFT, 5, OPP_ROCKET, 12 - object SPRITE_BALL, 11, 14, STAY, NONE, 6, ESCAPE_ROPE - object SPRITE_BALL, 9, 17, STAY, NONE, 7, HYPER_POTION - - ; warp-to - warp_to 23, 2, ROCKET_HIDEOUT_B1F_WIDTH ; ROCKET_HIDEOUT_B2F - warp_to 21, 2, ROCKET_HIDEOUT_B1F_WIDTH ; GAME_CORNER - warp_to 24, 19, ROCKET_HIDEOUT_B1F_WIDTH ; ROCKET_HIDEOUT_ELEVATOR - warp_to 21, 24, ROCKET_HIDEOUT_B1F_WIDTH ; ROCKET_HIDEOUT_B2F - warp_to 25, 19, ROCKET_HIDEOUT_B1F_WIDTH ; ROCKET_HIDEOUT_ELEVATOR diff --git a/data/mapObjects/RocketHideoutB2F.asm b/data/mapObjects/RocketHideoutB2F.asm deleted file mode 100755 index 36fe92898..000000000 --- a/data/mapObjects/RocketHideoutB2F.asm +++ /dev/null @@ -1,25 +0,0 @@ -RocketHideoutB2F_Object: - db $2e ; border block - - db 5 ; warps - warp 27, 8, 0, ROCKET_HIDEOUT_B1F - warp 21, 8, 0, ROCKET_HIDEOUT_B3F - warp 24, 19, 0, ROCKET_HIDEOUT_ELEVATOR - warp 21, 22, 3, ROCKET_HIDEOUT_B1F - warp 25, 19, 1, ROCKET_HIDEOUT_ELEVATOR - - db 0 ; signs - - db 5 ; objects - object SPRITE_ROCKET, 20, 12, STAY, DOWN, 1, OPP_ROCKET, 13 - object SPRITE_BALL, 1, 11, STAY, NONE, 2, MOON_STONE - object SPRITE_BALL, 16, 8, STAY, NONE, 3, NUGGET - object SPRITE_BALL, 6, 12, STAY, NONE, 4, TM_07 - object SPRITE_BALL, 3, 21, STAY, NONE, 5, SUPER_POTION - - ; warp-to - warp_to 27, 8, ROCKET_HIDEOUT_B2F_WIDTH ; ROCKET_HIDEOUT_B1F - warp_to 21, 8, ROCKET_HIDEOUT_B2F_WIDTH ; ROCKET_HIDEOUT_B3F - warp_to 24, 19, ROCKET_HIDEOUT_B2F_WIDTH ; ROCKET_HIDEOUT_ELEVATOR - warp_to 21, 22, ROCKET_HIDEOUT_B2F_WIDTH ; ROCKET_HIDEOUT_B1F - warp_to 25, 19, ROCKET_HIDEOUT_B2F_WIDTH ; ROCKET_HIDEOUT_ELEVATOR diff --git a/data/mapObjects/RocketHideoutB3F.asm b/data/mapObjects/RocketHideoutB3F.asm deleted file mode 100755 index 6169dbed1..000000000 --- a/data/mapObjects/RocketHideoutB3F.asm +++ /dev/null @@ -1,18 +0,0 @@ -RocketHideoutB3F_Object: - db $2e ; border block - - db 2 ; warps - warp 25, 6, 1, ROCKET_HIDEOUT_B2F - warp 19, 18, 0, ROCKET_HIDEOUT_B4F - - db 0 ; signs - - db 4 ; objects - object SPRITE_ROCKET, 10, 22, STAY, RIGHT, 1, OPP_ROCKET, 14 - object SPRITE_ROCKET, 26, 12, STAY, UP, 2, OPP_ROCKET, 15 - object SPRITE_BALL, 26, 17, STAY, NONE, 3, TM_10 - object SPRITE_BALL, 20, 14, STAY, NONE, 4, RARE_CANDY - - ; warp-to - warp_to 25, 6, ROCKET_HIDEOUT_B3F_WIDTH ; ROCKET_HIDEOUT_B2F - warp_to 19, 18, ROCKET_HIDEOUT_B3F_WIDTH ; ROCKET_HIDEOUT_B4F diff --git a/data/mapObjects/RocketHideoutB4F.asm b/data/mapObjects/RocketHideoutB4F.asm deleted file mode 100755 index ba7469517..000000000 --- a/data/mapObjects/RocketHideoutB4F.asm +++ /dev/null @@ -1,25 +0,0 @@ -RocketHideoutB4F_Object: - db $2e ; border block - - db 3 ; warps - warp 19, 10, 1, ROCKET_HIDEOUT_B3F - warp 24, 15, 0, ROCKET_HIDEOUT_ELEVATOR - warp 25, 15, 1, ROCKET_HIDEOUT_ELEVATOR - - db 0 ; signs - - db 9 ; objects - object SPRITE_GIOVANNI, 25, 3, STAY, DOWN, 1, OPP_GIOVANNI, 1 - object SPRITE_JAMES, 25, 10, STAY, DOWN, 2 - object SPRITE_JESSIE, 24, 10, STAY, DOWN, 3 - object SPRITE_ROCKET, 11, 2, STAY, DOWN, 4, OPP_ROCKET, 18 - object SPRITE_BALL, 10, 12, STAY, NONE, 5, HP_UP - object SPRITE_BALL, 9, 4, STAY, NONE, 6, TM_02 - object SPRITE_BALL, 12, 20, STAY, NONE, 7, IRON - object SPRITE_BALL, 25, 2, STAY, NONE, 8, SILPH_SCOPE - object SPRITE_BALL, 10, 2, STAY, NONE, 9, LIFT_KEY - - ; warp-to - warp_to 19, 10, ROCKET_HIDEOUT_B4F_WIDTH ; ROCKET_HIDEOUT_B3F - warp_to 24, 15, ROCKET_HIDEOUT_B4F_WIDTH ; ROCKET_HIDEOUT_ELEVATOR - warp_to 25, 15, ROCKET_HIDEOUT_B4F_WIDTH ; ROCKET_HIDEOUT_ELEVATOR diff --git a/data/mapObjects/RocketHideoutElevator.asm b/data/mapObjects/RocketHideoutElevator.asm deleted file mode 100755 index bc4fd7ff0..000000000 --- a/data/mapObjects/RocketHideoutElevator.asm +++ /dev/null @@ -1,15 +0,0 @@ -RocketHideoutElevator_Object: - db $f ; border block - - db 2 ; warps - warp 2, 1, 2, ROCKET_HIDEOUT_B1F - warp 3, 1, 4, ROCKET_HIDEOUT_B1F - - db 1 ; signs - sign 1, 1, 1 ; RocketHideoutElevatorText1 - - db 0 ; objects - - ; warp-to - warp_to 2, 1, ROCKET_HIDEOUT_ELEVATOR_WIDTH ; ROCKET_HIDEOUT_B1F - warp_to 3, 1, ROCKET_HIDEOUT_ELEVATOR_WIDTH ; ROCKET_HIDEOUT_B1F diff --git a/data/mapObjects/Route1.asm b/data/mapObjects/Route1.asm deleted file mode 100755 index 0815fe67d..000000000 --- a/data/mapObjects/Route1.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route1_Object: - db $b ; border block - - db 0 ; warps - - db 1 ; signs - sign 9, 27, 3 ; Route1Text3 - - db 2 ; objects - object SPRITE_BUG_CATCHER, 5, 24, WALK, 1, 1 ; person - object SPRITE_BUG_CATCHER, 15, 13, WALK, 2, 2 ; person - - ; warp-to (unused) - warp_to 2, 7, 4 diff --git a/data/mapObjects/Route10.asm b/data/mapObjects/Route10.asm deleted file mode 100755 index 12850577c..000000000 --- a/data/mapObjects/Route10.asm +++ /dev/null @@ -1,28 +0,0 @@ -Route10_Object: - db $2c ; border block - - db 4 ; warps - warp 11, 19, 0, ROCK_TUNNEL_POKECENTER - warp 8, 17, 0, ROCK_TUNNEL_1F - warp 8, 53, 2, ROCK_TUNNEL_1F - warp 6, 39, 0, POWER_PLANT - - db 4 ; signs - sign 7, 19, 7 ; Route10Text7 - sign 12, 19, 8 ; PokeCenterSignText - sign 9, 55, 9 ; Route10Text9 - sign 5, 41, 10 ; Route10Text10 - - db 6 ; objects - object SPRITE_BLACK_HAIR_BOY_2, 10, 44, STAY, LEFT, 1, OPP_POKEMANIAC, 1 - object SPRITE_HIKER, 3, 57, STAY, UP, 2, OPP_HIKER, 7 - object SPRITE_BLACK_HAIR_BOY_2, 14, 64, STAY, LEFT, 3, OPP_POKEMANIAC, 2 - object SPRITE_LASS, 7, 25, STAY, LEFT, 4, OPP_JR_TRAINER_F, 7 - object SPRITE_HIKER, 3, 61, STAY, DOWN, 5, OPP_HIKER, 8 - object SPRITE_LASS, 7, 54, STAY, DOWN, 6, OPP_JR_TRAINER_F, 8 - - ; warp-to - warp_to 11, 19, ROUTE_10_WIDTH ; ROCK_TUNNEL_POKECENTER - warp_to 8, 17, ROUTE_10_WIDTH ; ROCK_TUNNEL_1F - warp_to 8, 53, ROUTE_10_WIDTH ; ROCK_TUNNEL_1F - warp_to 6, 39, ROUTE_10_WIDTH ; POWER_PLANT diff --git a/data/mapObjects/Route11.asm b/data/mapObjects/Route11.asm deleted file mode 100755 index a72bf3478..000000000 --- a/data/mapObjects/Route11.asm +++ /dev/null @@ -1,31 +0,0 @@ -Route11_Object: - db $f ; border block - - db 5 ; warps - warp 49, 8, 0, ROUTE_11_GATE_1F - warp 49, 9, 0, ROUTE_11_GATE_1F - warp 58, 8, 2, ROUTE_11_GATE_1F - warp 58, 9, 2, ROUTE_11_GATE_1F - warp 4, 5, 0, DIGLETTS_CAVE_ROUTE_11 - - db 1 ; signs - sign 1, 5, 11 ; Route11Text11 - - db 10 ; objects - object SPRITE_GAMBLER, 10, 14, STAY, DOWN, 1, OPP_GAMBLER, 1 - object SPRITE_GAMBLER, 26, 9, STAY, DOWN, 2, OPP_GAMBLER, 2 - object SPRITE_BUG_CATCHER, 13, 5, STAY, LEFT, 3, OPP_YOUNGSTER, 9 - object SPRITE_BLACK_HAIR_BOY_2, 36, 11, STAY, DOWN, 4, OPP_ENGINEER, 2 - object SPRITE_BUG_CATCHER, 22, 4, STAY, UP, 5, OPP_YOUNGSTER, 10 - object SPRITE_GAMBLER, 45, 7, STAY, DOWN, 6, OPP_GAMBLER, 3 - object SPRITE_GAMBLER, 33, 3, STAY, UP, 7, OPP_GAMBLER, 4 - object SPRITE_BUG_CATCHER, 43, 5, STAY, RIGHT, 8, OPP_YOUNGSTER, 11 - object SPRITE_BLACK_HAIR_BOY_2, 45, 16, STAY, LEFT, 9, OPP_ENGINEER, 3 - object SPRITE_BUG_CATCHER, 22, 12, STAY, UP, 10, OPP_YOUNGSTER, 12 - - ; warp-to - warp_to 49, 8, ROUTE_11_WIDTH ; ROUTE_11_GATE_1F - warp_to 49, 9, ROUTE_11_WIDTH ; ROUTE_11_GATE_1F - warp_to 58, 8, ROUTE_11_WIDTH ; ROUTE_11_GATE_1F - warp_to 58, 9, ROUTE_11_WIDTH ; ROUTE_11_GATE_1F - warp_to 4, 5, ROUTE_11_WIDTH ; DIGLETTS_CAVE_ROUTE_11 diff --git a/data/mapObjects/Route11Gate1F.asm b/data/mapObjects/Route11Gate1F.asm deleted file mode 100755 index 5c4a120c4..000000000 --- a/data/mapObjects/Route11Gate1F.asm +++ /dev/null @@ -1,21 +0,0 @@ -Route11Gate1F_Object: - db $a ; border block - - db 5 ; warps - warp 0, 4, 0, -1 - warp 0, 5, 1, -1 - warp 7, 4, 2, -1 - warp 7, 5, 3, -1 - warp 6, 8, 0, ROUTE_11_GATE_2F - - db 0 ; signs - - db 1 ; objects - object SPRITE_GUARD, 4, 1, STAY, NONE, 1 ; person - - ; warp-to - warp_to 0, 4, ROUTE_11_GATE_1F_WIDTH - warp_to 0, 5, ROUTE_11_GATE_1F_WIDTH - warp_to 7, 4, ROUTE_11_GATE_1F_WIDTH - warp_to 7, 5, ROUTE_11_GATE_1F_WIDTH - warp_to 6, 8, ROUTE_11_GATE_1F_WIDTH ; ROUTE_11_GATE_2F diff --git a/data/mapObjects/Route11Gate2F.asm b/data/mapObjects/Route11Gate2F.asm deleted file mode 100755 index bf305bba0..000000000 --- a/data/mapObjects/Route11Gate2F.asm +++ /dev/null @@ -1,16 +0,0 @@ -Route11Gate2F_Object: - db $a ; border block - - db 1 ; warps - warp 7, 7, 4, ROUTE_11_GATE_1F - - db 2 ; signs - sign 1, 2, 3 ; Route11GateUpstairsText3 - sign 6, 2, 4 ; Route11GateUpstairsText4 - - db 2 ; objects - object SPRITE_BUG_CATCHER, 4, 2, WALK, 2, 1 ; person - object SPRITE_OAK_AIDE, 2, 6, STAY, NONE, 2 ; person - - ; warp-to - warp_to 7, 7, ROUTE_11_GATE_2F_WIDTH ; ROUTE_11_GATE_1F diff --git a/data/mapObjects/Route12.asm b/data/mapObjects/Route12.asm deleted file mode 100755 index 8043b5db9..000000000 --- a/data/mapObjects/Route12.asm +++ /dev/null @@ -1,30 +0,0 @@ -Route12_Object: - db $43 ; border block - - db 4 ; warps - warp 10, 15, 0, ROUTE_12_GATE_1F - warp 11, 15, 0, ROUTE_12_GATE_1F - warp 10, 21, 2, ROUTE_12_GATE_1F - warp 11, 77, 0, ROUTE_12_SUPER_ROD_HOUSE - - db 2 ; signs - sign 13, 13, 11 ; Route12Text11 - sign 11, 63, 12 ; Route12Text12 - - db 10 ; objects - object SPRITE_SNORLAX, 10, 62, STAY, DOWN, 1 ; person - object SPRITE_FISHER2, 14, 31, STAY, LEFT, 2, OPP_FISHER, 3 - object SPRITE_FISHER2, 5, 39, STAY, UP, 3, OPP_FISHER, 4 - object SPRITE_BLACK_HAIR_BOY_1, 11, 92, STAY, LEFT, 4, OPP_JR_TRAINER_M, 9 - object SPRITE_BLACK_HAIR_BOY_2, 14, 76, STAY, UP, 5, OPP_ROCKER, 2 - object SPRITE_FISHER2, 12, 40, STAY, LEFT, 6, OPP_FISHER, 5 - object SPRITE_FISHER2, 9, 52, STAY, RIGHT, 7, OPP_FISHER, 6 - object SPRITE_FISHER2, 6, 87, STAY, DOWN, 8, OPP_FISHER, 11 - object SPRITE_BALL, 14, 35, STAY, NONE, 9, TM_16 - object SPRITE_BALL, 5, 89, STAY, NONE, 10, IRON - - ; warp-to - warp_to 10, 15, ROUTE_12_WIDTH ; ROUTE_12_GATE_1F - warp_to 11, 15, ROUTE_12_WIDTH ; ROUTE_12_GATE_1F - warp_to 10, 21, ROUTE_12_WIDTH ; ROUTE_12_GATE_1F - warp_to 11, 77, ROUTE_12_WIDTH ; ROUTE_12_SUPER_ROD_HOUSE diff --git a/data/mapObjects/Route12Gate1F.asm b/data/mapObjects/Route12Gate1F.asm deleted file mode 100755 index 94f6b91aa..000000000 --- a/data/mapObjects/Route12Gate1F.asm +++ /dev/null @@ -1,21 +0,0 @@ -Route12Gate1F_Object: - db $a ; border block - - db 5 ; warps - warp 4, 0, 0, -1 - warp 5, 0, 1, -1 - warp 4, 7, 2, -1 - warp 5, 7, 2, -1 - warp 8, 6, 0, ROUTE_12_GATE_2F - - db 0 ; signs - - db 1 ; objects - object SPRITE_GUARD, 1, 3, STAY, NONE, 1 ; person - - ; warp-to - warp_to 4, 0, ROUTE_12_GATE_1F_WIDTH - warp_to 5, 0, ROUTE_12_GATE_1F_WIDTH - warp_to 4, 7, ROUTE_12_GATE_1F_WIDTH - warp_to 5, 7, ROUTE_12_GATE_1F_WIDTH - warp_to 8, 6, ROUTE_12_GATE_1F_WIDTH ; ROUTE_12_GATE_2F diff --git a/data/mapObjects/Route12Gate2F.asm b/data/mapObjects/Route12Gate2F.asm deleted file mode 100755 index cc6c1c19f..000000000 --- a/data/mapObjects/Route12Gate2F.asm +++ /dev/null @@ -1,15 +0,0 @@ -Route12Gate2F_Object: - db $a ; border block - - db 1 ; warps - warp 7, 7, 4, ROUTE_12_GATE_1F - - db 2 ; signs - sign 1, 2, 2 ; Route12GateUpstairsText2 - sign 6, 2, 3 ; Route12GateUpstairsText3 - - db 1 ; objects - object SPRITE_BRUNETTE_GIRL, 3, 4, WALK, 1, 1 ; person - - ; warp-to - warp_to 7, 7, ROUTE_12_GATE_2F_WIDTH ; ROUTE_12_GATE_1F diff --git a/data/mapObjects/Route12SuperRodHouse.asm b/data/mapObjects/Route12SuperRodHouse.asm deleted file mode 100755 index 458378a29..000000000 --- a/data/mapObjects/Route12SuperRodHouse.asm +++ /dev/null @@ -1,15 +0,0 @@ -Route12SuperRodHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 3, -1 - warp 3, 7, 3, -1 - - db 0 ; signs - - db 1 ; objects - object SPRITE_FISHER, 2, 4, STAY, RIGHT, 1 ; person - - ; warp-to - warp_to 2, 7, ROUTE_12_SUPER_ROD_HOUSE_WIDTH - warp_to 3, 7, ROUTE_12_SUPER_ROD_HOUSE_WIDTH diff --git a/data/mapObjects/Route13.asm b/data/mapObjects/Route13.asm deleted file mode 100755 index 3f460901d..000000000 --- a/data/mapObjects/Route13.asm +++ /dev/null @@ -1,21 +0,0 @@ -Route13_Object: - db $43 ; border block - - db 0 ; warps - - db 3 ; signs - sign 15, 13, 11 ; Route13Text11 - sign 33, 5, 12 ; Route13Text12 - sign 31, 11, 13 ; Route13Text13 - - db 10 ; objects - object SPRITE_BLACK_HAIR_BOY_1, 49, 10, STAY, RIGHT, 1, OPP_BIRD_KEEPER, 1 - object SPRITE_LASS, 48, 10, STAY, DOWN, 2, OPP_JR_TRAINER_F, 12 - object SPRITE_LASS, 27, 9, STAY, DOWN, 3, OPP_JR_TRAINER_F, 13 - object SPRITE_LASS, 23, 10, STAY, LEFT, 4, OPP_JR_TRAINER_F, 14 - object SPRITE_LASS, 50, 5, STAY, DOWN, 5, OPP_JR_TRAINER_F, 15 - object SPRITE_BLACK_HAIR_BOY_1, 12, 4, STAY, RIGHT, 6, OPP_BIRD_KEEPER, 2 - object SPRITE_FOULARD_WOMAN, 33, 6, STAY, DOWN, 7, OPP_BEAUTY, 4 - object SPRITE_FOULARD_WOMAN, 32, 6, STAY, DOWN, 8, OPP_BEAUTY, 5 - object SPRITE_BIKER, 10, 7, STAY, UP, 9, OPP_BIKER, 1 - object SPRITE_BLACK_HAIR_BOY_1, 7, 13, STAY, UP, 10, OPP_BIRD_KEEPER, 3 diff --git a/data/mapObjects/Route14.asm b/data/mapObjects/Route14.asm deleted file mode 100755 index 565e587f9..000000000 --- a/data/mapObjects/Route14.asm +++ /dev/null @@ -1,19 +0,0 @@ -Route14_Object: - db $43 ; border block - - db 0 ; warps - - db 1 ; signs - sign 17, 13, 11 ; Route14Text11 - - db 10 ; objects - object SPRITE_BLACK_HAIR_BOY_1, 4, 4, STAY, DOWN, 1, OPP_BIRD_KEEPER, 14 - object SPRITE_BLACK_HAIR_BOY_1, 15, 6, STAY, DOWN, 2, OPP_BIRD_KEEPER, 15 - object SPRITE_BLACK_HAIR_BOY_1, 12, 11, STAY, DOWN, 3, OPP_BIRD_KEEPER, 16 - object SPRITE_BLACK_HAIR_BOY_1, 14, 15, STAY, UP, 4, OPP_BIRD_KEEPER, 17 - object SPRITE_BLACK_HAIR_BOY_1, 15, 31, STAY, LEFT, 5, OPP_BIRD_KEEPER, 4 - object SPRITE_BLACK_HAIR_BOY_1, 6, 49, STAY, UP, 6, OPP_BIRD_KEEPER, 5 - object SPRITE_BIKER, 5, 39, STAY, DOWN, 7, OPP_BIKER, 13 - object SPRITE_BIKER, 4, 30, STAY, RIGHT, 8, OPP_BIKER, 14 - object SPRITE_BIKER, 15, 30, STAY, LEFT, 9, OPP_BIKER, 15 - object SPRITE_BIKER, 4, 31, STAY, RIGHT, 10, OPP_BIKER, 2 diff --git a/data/mapObjects/Route15.asm b/data/mapObjects/Route15.asm deleted file mode 100755 index 10cd8090e..000000000 --- a/data/mapObjects/Route15.asm +++ /dev/null @@ -1,30 +0,0 @@ -Route15_Object: - db $43 ; border block - - db 4 ; warps - warp 7, 8, 0, ROUTE_15_GATE_1F - warp 7, 9, 0, ROUTE_15_GATE_1F - warp 14, 8, 2, ROUTE_15_GATE_1F - warp 14, 9, 2, ROUTE_15_GATE_1F - - db 1 ; signs - sign 39, 9, 12 ; Route15Text12 - - db 11 ; objects - object SPRITE_LASS, 41, 11, STAY, DOWN, 1, OPP_JR_TRAINER_F, 20 - object SPRITE_LASS, 53, 10, STAY, LEFT, 2, OPP_JR_TRAINER_F, 21 - object SPRITE_BLACK_HAIR_BOY_1, 31, 13, STAY, UP, 3, OPP_BIRD_KEEPER, 6 - object SPRITE_BLACK_HAIR_BOY_1, 35, 13, STAY, UP, 4, OPP_BIRD_KEEPER, 7 - object SPRITE_FOULARD_WOMAN, 53, 11, STAY, DOWN, 5, OPP_BEAUTY, 9 - object SPRITE_FOULARD_WOMAN, 41, 10, STAY, RIGHT, 6, OPP_BEAUTY, 10 - object SPRITE_BIKER, 48, 10, STAY, DOWN, 7, OPP_BIKER, 3 - object SPRITE_BIKER, 46, 10, STAY, DOWN, 8, OPP_BIKER, 4 - object SPRITE_LASS, 37, 5, STAY, RIGHT, 9, OPP_JR_TRAINER_F, 22 - object SPRITE_LASS, 18, 13, STAY, UP, 10, OPP_JR_TRAINER_F, 23 - object SPRITE_BALL, 18, 5, STAY, NONE, 11, TM_20 - - ; warp-to - warp_to 7, 8, ROUTE_15_WIDTH ; ROUTE_15_GATE_1F - warp_to 7, 9, ROUTE_15_WIDTH ; ROUTE_15_GATE_1F - warp_to 14, 8, ROUTE_15_WIDTH ; ROUTE_15_GATE_1F - warp_to 14, 9, ROUTE_15_WIDTH ; ROUTE_15_GATE_1F diff --git a/data/mapObjects/Route15Gate1F.asm b/data/mapObjects/Route15Gate1F.asm deleted file mode 100755 index 23b1f5a77..000000000 --- a/data/mapObjects/Route15Gate1F.asm +++ /dev/null @@ -1,21 +0,0 @@ -Route15Gate1F_Object: - db $a ; border block - - db 5 ; warps - warp 0, 4, 0, -1 - warp 0, 5, 1, -1 - warp 7, 4, 2, -1 - warp 7, 5, 3, -1 - warp 6, 8, 0, ROUTE_15_GATE_2F - - db 0 ; signs - - db 1 ; objects - object SPRITE_GUARD, 4, 1, STAY, NONE, 1 ; person - - ; warp-to - warp_to 0, 4, ROUTE_15_GATE_1F_WIDTH - warp_to 0, 5, ROUTE_15_GATE_1F_WIDTH - warp_to 7, 4, ROUTE_15_GATE_1F_WIDTH - warp_to 7, 5, ROUTE_15_GATE_1F_WIDTH - warp_to 6, 8, ROUTE_15_GATE_1F_WIDTH ; ROUTE_15_GATE_2F diff --git a/data/mapObjects/Route15Gate2F.asm b/data/mapObjects/Route15Gate2F.asm deleted file mode 100755 index 162f2b1f0..000000000 --- a/data/mapObjects/Route15Gate2F.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route15Gate2F_Object: - db $a ; border block - - db 1 ; warps - warp 7, 7, 4, ROUTE_15_GATE_1F - - db 1 ; signs - sign 6, 2, 2 ; Route15GateUpstairsText2 - - db 1 ; objects - object SPRITE_OAK_AIDE, 4, 2, STAY, DOWN, 1 - - ; warp-to - warp_to 7, 7, ROUTE_15_GATE_2F_WIDTH ; ROUTE_15_GATE_1F diff --git a/data/mapObjects/Route16.asm b/data/mapObjects/Route16.asm deleted file mode 100755 index 93531d13a..000000000 --- a/data/mapObjects/Route16.asm +++ /dev/null @@ -1,37 +0,0 @@ -Route16_Object: - db $f ; border block - - db 9 ; warps - warp 17, 10, 0, ROUTE_16_GATE_1F - warp 17, 11, 0, ROUTE_16_GATE_1F - warp 24, 10, 2, ROUTE_16_GATE_1F - warp 24, 11, 2, ROUTE_16_GATE_1F - warp 17, 4, 4, ROUTE_16_GATE_1F - warp 17, 5, 4, ROUTE_16_GATE_1F - warp 24, 4, 6, ROUTE_16_GATE_1F - warp 24, 5, 6, ROUTE_16_GATE_1F - warp 7, 5, 0, ROUTE_16_FLY_HOUSE - - db 2 ; signs - sign 27, 11, 8 ; Route16Text8 - sign 5, 17, 9 ; Route16Text9 - - db 7 ; objects - object SPRITE_BIKER, 17, 12, STAY, LEFT, 1, OPP_BIKER, 5 - object SPRITE_BIKER, 14, 13, STAY, RIGHT, 2, OPP_CUE_BALL, 1 - object SPRITE_BIKER, 11, 12, STAY, UP, 3, OPP_CUE_BALL, 2 - object SPRITE_BIKER, 9, 11, STAY, LEFT, 4, OPP_BIKER, 6 - object SPRITE_BIKER, 6, 10, STAY, RIGHT, 5, OPP_CUE_BALL, 3 - object SPRITE_BIKER, 3, 12, STAY, RIGHT, 6, OPP_BIKER, 7 - object SPRITE_SNORLAX, 26, 10, STAY, DOWN, 7 ; person - - ; warp-to - warp_to 17, 10, ROUTE_16_WIDTH ; ROUTE_16_GATE_1F - warp_to 17, 11, ROUTE_16_WIDTH ; ROUTE_16_GATE_1F - warp_to 24, 10, ROUTE_16_WIDTH ; ROUTE_16_GATE_1F - warp_to 24, 11, ROUTE_16_WIDTH ; ROUTE_16_GATE_1F - warp_to 17, 4, ROUTE_16_WIDTH ; ROUTE_16_GATE_1F - warp_to 17, 5, ROUTE_16_WIDTH ; ROUTE_16_GATE_1F - warp_to 24, 4, ROUTE_16_WIDTH ; ROUTE_16_GATE_1F - warp_to 24, 5, ROUTE_16_WIDTH ; ROUTE_16_GATE_1F - warp_to 7, 5, ROUTE_16_WIDTH ; ROUTE_16_FLY_HOUSE diff --git a/data/mapObjects/Route16FlyHouse.asm b/data/mapObjects/Route16FlyHouse.asm deleted file mode 100755 index ec493fef8..000000000 --- a/data/mapObjects/Route16FlyHouse.asm +++ /dev/null @@ -1,16 +0,0 @@ -Route16FlyHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 8, -1 - warp 3, 7, 8, -1 - - db 0 ; signs - - db 2 ; objects - object SPRITE_BRUNETTE_GIRL, 2, 3, STAY, RIGHT, 1 ; person - object SPRITE_BIRD, 6, 4, WALK, 0, 2 ; person - - ; warp-to - warp_to 2, 7, ROUTE_16_FLY_HOUSE_WIDTH - warp_to 3, 7, ROUTE_16_FLY_HOUSE_WIDTH diff --git a/data/mapObjects/Route16Gate1F.asm b/data/mapObjects/Route16Gate1F.asm deleted file mode 100755 index 1d5baa1d0..000000000 --- a/data/mapObjects/Route16Gate1F.asm +++ /dev/null @@ -1,30 +0,0 @@ -Route16Gate1F_Object: - db $a ; border block - - db 9 ; warps - warp 0, 8, 0, -1 - warp 0, 9, 1, -1 - warp 7, 8, 2, -1 - warp 7, 9, 2, -1 - warp 0, 2, 4, -1 - warp 0, 3, 5, -1 - warp 7, 2, 6, -1 - warp 7, 3, 7, -1 - warp 6, 12, 0, ROUTE_16_GATE_2F - - db 0 ; signs - - db 2 ; objects - object SPRITE_GUARD, 4, 5, STAY, DOWN, 1 ; person - object SPRITE_GAMBLER, 4, 3, STAY, NONE, 2 ; person - - ; warp-to - warp_to 0, 8, ROUTE_16_GATE_1F_WIDTH - warp_to 0, 9, ROUTE_16_GATE_1F_WIDTH - warp_to 7, 8, ROUTE_16_GATE_1F_WIDTH - warp_to 7, 9, ROUTE_16_GATE_1F_WIDTH - warp_to 0, 2, ROUTE_16_GATE_1F_WIDTH - warp_to 0, 3, ROUTE_16_GATE_1F_WIDTH - warp_to 7, 2, ROUTE_16_GATE_1F_WIDTH - warp_to 7, 3, ROUTE_16_GATE_1F_WIDTH - warp_to 6, 12, ROUTE_16_GATE_1F_WIDTH ; ROUTE_16_GATE_2F diff --git a/data/mapObjects/Route16Gate2F.asm b/data/mapObjects/Route16Gate2F.asm deleted file mode 100755 index 5914f8542..000000000 --- a/data/mapObjects/Route16Gate2F.asm +++ /dev/null @@ -1,16 +0,0 @@ -Route16Gate2F_Object: - db $a ; border block - - db 1 ; warps - warp 7, 7, 8, ROUTE_16_GATE_1F - - db 2 ; signs - sign 1, 2, 3 ; Route16GateUpstairsText3 - sign 6, 2, 4 ; Route16GateUpstairsText4 - - db 2 ; objects - object SPRITE_YOUNG_BOY, 4, 2, STAY, NONE, 1 ; person - object SPRITE_LITTLE_GIRL, 2, 5, WALK, 2, 2 ; person - - ; warp-to - warp_to 7, 7, ROUTE_16_GATE_2F_WIDTH ; ROUTE_16_GATE_1F diff --git a/data/mapObjects/Route17.asm b/data/mapObjects/Route17.asm deleted file mode 100755 index f5bc4307a..000000000 --- a/data/mapObjects/Route17.asm +++ /dev/null @@ -1,24 +0,0 @@ -Route17_Object: - db $43 ; border block - - db 0 ; warps - - db 6 ; signs - sign 9, 51, 11 ; Route17Text11 - sign 9, 63, 12 ; Route17Text12 - sign 9, 75, 13 ; Route17Text13 - sign 9, 87, 14 ; Route17Text14 - sign 9, 111, 15 ; Route17Text15 - sign 9, 141, 16 ; Route17Text16 - - db 10 ; objects - object SPRITE_BIKER, 12, 19, STAY, LEFT, 1, OPP_CUE_BALL, 4 - object SPRITE_BIKER, 11, 16, STAY, RIGHT, 2, OPP_CUE_BALL, 5 - object SPRITE_BIKER, 4, 18, STAY, UP, 3, OPP_BIKER, 8 - object SPRITE_BIKER, 7, 32, STAY, LEFT, 4, OPP_BIKER, 9 - object SPRITE_BIKER, 14, 34, STAY, RIGHT, 5, OPP_BIKER, 10 - object SPRITE_BIKER, 17, 58, STAY, LEFT, 6, OPP_CUE_BALL, 6 - object SPRITE_BIKER, 2, 68, STAY, RIGHT, 7, OPP_CUE_BALL, 7 - object SPRITE_BIKER, 14, 98, STAY, RIGHT, 8, OPP_CUE_BALL, 8 - object SPRITE_BIKER, 5, 98, STAY, LEFT, 9, OPP_BIKER, 11 - object SPRITE_BIKER, 10, 118, STAY, DOWN, 10, OPP_BIKER, 12 diff --git a/data/mapObjects/Route18.asm b/data/mapObjects/Route18.asm deleted file mode 100755 index dc6cc6b6c..000000000 --- a/data/mapObjects/Route18.asm +++ /dev/null @@ -1,23 +0,0 @@ -Route18_Object: - db $43 ; border block - - db 4 ; warps - warp 33, 8, 0, ROUTE_18_GATE_1F - warp 33, 9, 0, ROUTE_18_GATE_1F - warp 40, 8, 2, ROUTE_18_GATE_1F - warp 40, 9, 2, ROUTE_18_GATE_1F - - db 2 ; signs - sign 43, 7, 4 ; Route18Text4 - sign 33, 5, 5 ; Route18Text5 - - db 3 ; objects - object SPRITE_BLACK_HAIR_BOY_1, 36, 11, STAY, RIGHT, 1, OPP_BIRD_KEEPER, 8 - object SPRITE_BLACK_HAIR_BOY_1, 40, 15, STAY, LEFT, 2, OPP_BIRD_KEEPER, 9 - object SPRITE_BLACK_HAIR_BOY_1, 42, 13, STAY, LEFT, 3, OPP_BIRD_KEEPER, 10 - - ; warp-to - warp_to 33, 8, ROUTE_18_WIDTH ; ROUTE_18_GATE_1F - warp_to 33, 9, ROUTE_18_WIDTH ; ROUTE_18_GATE_1F - warp_to 40, 8, ROUTE_18_WIDTH ; ROUTE_18_GATE_1F - warp_to 40, 9, ROUTE_18_WIDTH ; ROUTE_18_GATE_1F diff --git a/data/mapObjects/Route18Gate1F.asm b/data/mapObjects/Route18Gate1F.asm deleted file mode 100755 index 83cb386a3..000000000 --- a/data/mapObjects/Route18Gate1F.asm +++ /dev/null @@ -1,21 +0,0 @@ -Route18Gate1F_Object: - db $a ; border block - - db 5 ; warps - warp 0, 4, 0, -1 - warp 0, 5, 1, -1 - warp 7, 4, 2, -1 - warp 7, 5, 3, -1 - warp 6, 8, 0, ROUTE_18_GATE_2F - - db 0 ; signs - - db 1 ; objects - object SPRITE_GUARD, 4, 1, STAY, DOWN, 1 ; person - - ; warp-to - warp_to 0, 4, ROUTE_18_GATE_1F_WIDTH - warp_to 0, 5, ROUTE_18_GATE_1F_WIDTH - warp_to 7, 4, ROUTE_18_GATE_1F_WIDTH - warp_to 7, 5, ROUTE_18_GATE_1F_WIDTH - warp_to 6, 8, ROUTE_18_GATE_1F_WIDTH ; ROUTE_18_GATE_2F diff --git a/data/mapObjects/Route18Gate2F.asm b/data/mapObjects/Route18Gate2F.asm deleted file mode 100755 index 1981a7f00..000000000 --- a/data/mapObjects/Route18Gate2F.asm +++ /dev/null @@ -1,15 +0,0 @@ -Route18Gate2F_Object: - db $a ; border block - - db 1 ; warps - warp 7, 7, 4, ROUTE_18_GATE_1F - - db 2 ; signs - sign 1, 2, 2 ; Route18GateUpstairsText2 - sign 6, 2, 3 ; Route18GateUpstairsText3 - - db 1 ; objects - object SPRITE_COOK, 4, 2, WALK, 2, 1 ; person - - ; warp-to - warp_to 7, 7, ROUTE_18_GATE_2F_WIDTH ; ROUTE_18_GATE_1F diff --git a/data/mapObjects/Route19.asm b/data/mapObjects/Route19.asm deleted file mode 100755 index d1b3034b4..000000000 --- a/data/mapObjects/Route19.asm +++ /dev/null @@ -1,23 +0,0 @@ -Route19_Object: - db $43 ; border block - - db 1 ; warps - warp 5, 9, 0, BEACH_HOUSE - - db 1 ; signs - sign 11, 11, 11 - - db 10 ; objects - object SPRITE_BLACK_HAIR_BOY_1, 9, 7, STAY, RIGHT, 1, OPP_SWIMMER, 2 - object SPRITE_BLACK_HAIR_BOY_1, 12, 9, STAY, LEFT, 2, OPP_SWIMMER, 3 - object SPRITE_SWIMMER, 13, 25, STAY, LEFT, 3, OPP_SWIMMER, 4 - object SPRITE_SWIMMER, 4, 27, STAY, RIGHT, 4, OPP_SWIMMER, 5 - object SPRITE_SWIMMER, 16, 31, STAY, UP, 5, OPP_SWIMMER, 6 - object SPRITE_SWIMMER, 9, 13, STAY, DOWN, 6, OPP_SWIMMER, 7 - object SPRITE_SWIMMER, 8, 43, STAY, LEFT, 7, OPP_BEAUTY, 12 - object SPRITE_SWIMMER, 11, 43, STAY, RIGHT, 8, OPP_BEAUTY, 13 - object SPRITE_SWIMMER, 9, 42, STAY, UP, 9, OPP_SWIMMER, 8 - object SPRITE_SWIMMER, 10, 44, STAY, DOWN, 10, OPP_BEAUTY, 14 - - ; warp-to - warp_to 5, 9, ROUTE_19_WIDTH ; BEACH_HOUSE diff --git a/data/mapObjects/Route2.asm b/data/mapObjects/Route2.asm deleted file mode 100755 index 9595fec09..000000000 --- a/data/mapObjects/Route2.asm +++ /dev/null @@ -1,36 +0,0 @@ -Route2_Object: - db $f ; border block - - db 7 ; warps - warp 12, 9, 0, DIGLETTS_CAVE_ROUTE_2 - warp 3, 11, 1, VIRIDIAN_FOREST_NORTH_GATE - warp 15, 19, 0, ROUTE_2_TRADE_HOUSE - warp 16, 35, 1, ROUTE_2_GATE - warp 15, 39, 2, ROUTE_2_GATE - warp 3, 43, 2, VIRIDIAN_FOREST_SOUTH_GATE - warp 17, 35, 1, ROUTE_2_GATE - - db 2 ; signs - sign 5, 65, 3 ; Route2Text3 - sign 11, 11, 4 ; Route2Text4 - - db 2 ; objects - object SPRITE_BALL, 13, 54, STAY, NONE, 1, MOON_STONE - object SPRITE_BALL, 13, 45, STAY, NONE, 2, HP_UP - - ; warp-to - warp_to 12, 9, ROUTE_2_WIDTH ; DIGLETTS_CAVE_ROUTE_2 - warp_to 3, 11, ROUTE_2_WIDTH ; VIRIDIAN_FOREST_NORTH_GATE - warp_to 15, 19, ROUTE_2_WIDTH ; ROUTE_2_TRADE_HOUSE - warp_to 16, 35, ROUTE_2_WIDTH ; ROUTE_2_GATE - warp_to 15, 39, ROUTE_2_WIDTH ; ROUTE_2_GATE - warp_to 3, 43, ROUTE_2_WIDTH ; VIRIDIAN_FOREST_SOUTH_GATE - warp_to 17, 35, ROUTE_2_WIDTH ; ROUTE_2_GATE - - ; unused - warp_to 2, 7, 4 - dw $c712 - db $9, $7 - warp_to 2, 7, 4 - warp_to 2, 7, 4 - warp_to 2, 7, 4 diff --git a/data/mapObjects/Route20.asm b/data/mapObjects/Route20.asm deleted file mode 100755 index 7bceef979..000000000 --- a/data/mapObjects/Route20.asm +++ /dev/null @@ -1,26 +0,0 @@ -Route20_Object: - db $43 ; border block - - db 2 ; warps - warp 48, 5, 0, SEAFOAM_ISLANDS_1F - warp 58, 9, 2, SEAFOAM_ISLANDS_1F - - db 2 ; signs - sign 51, 7, 11 ; Route20Text11 - sign 57, 11, 12 ; Route20Text12 - - db 10 ; objects - object SPRITE_SWIMMER, 87, 8, STAY, UP, 1, OPP_SWIMMER, 9 - object SPRITE_SWIMMER, 68, 11, STAY, UP, 2, OPP_BEAUTY, 15 - object SPRITE_SWIMMER, 45, 10, STAY, DOWN, 3, OPP_BEAUTY, 6 - object SPRITE_SWIMMER, 55, 14, STAY, RIGHT, 4, OPP_JR_TRAINER_F, 24 - object SPRITE_SWIMMER, 38, 13, STAY, DOWN, 5, OPP_SWIMMER, 10 - object SPRITE_SWIMMER, 87, 13, STAY, UP, 6, OPP_SWIMMER, 11 - object SPRITE_BLACK_HAIR_BOY_1, 34, 9, STAY, UP, 7, OPP_BIRD_KEEPER, 11 - object SPRITE_SWIMMER, 25, 7, STAY, UP, 8, OPP_BEAUTY, 7 - object SPRITE_SWIMMER, 24, 12, STAY, DOWN, 9, OPP_JR_TRAINER_F, 16 - object SPRITE_SWIMMER, 15, 8, STAY, UP, 10, OPP_BEAUTY, 8 - - ; warp-to - warp_to 48, 5, ROUTE_20_WIDTH ; SEAFOAM_ISLANDS_1F - warp_to 58, 9, ROUTE_20_WIDTH ; SEAFOAM_ISLANDS_1F diff --git a/data/mapObjects/Route21.asm b/data/mapObjects/Route21.asm deleted file mode 100755 index b7759b590..000000000 --- a/data/mapObjects/Route21.asm +++ /dev/null @@ -1,17 +0,0 @@ -Route21_Object: - db $43 ; border block - - db 0 ; warps - - db 0 ; signs - - db 9 ; objects - object SPRITE_FISHER2, 4, 24, STAY, LEFT, 1, OPP_FISHER, 7 - object SPRITE_FISHER2, 6, 25, STAY, DOWN, 2, OPP_FISHER, 9 - object SPRITE_SWIMMER, 10, 31, STAY, UP, 3, OPP_SWIMMER, 12 - object SPRITE_SWIMMER, 12, 30, STAY, RIGHT, 4, OPP_CUE_BALL, 9 - object SPRITE_SWIMMER, 16, 63, STAY, DOWN, 5, OPP_SWIMMER, 13 - object SPRITE_SWIMMER, 5, 71, STAY, RIGHT, 6, OPP_SWIMMER, 14 - object SPRITE_SWIMMER, 15, 71, STAY, LEFT, 7, OPP_SWIMMER, 15 - object SPRITE_FISHER2, 14, 56, STAY, LEFT, 8, OPP_FISHER, 8 - object SPRITE_FISHER2, 17, 57, STAY, RIGHT, 9, OPP_FISHER, 10 diff --git a/data/mapObjects/Route22.asm b/data/mapObjects/Route22.asm deleted file mode 100755 index 56e759fd9..000000000 --- a/data/mapObjects/Route22.asm +++ /dev/null @@ -1,15 +0,0 @@ -Route22_Object: - db $2c ; border block - - db 1 ; warps - warp 8, 5, 0, ROUTE_22_GATE - - db 1 ; signs - sign 7, 11, 3 ; Route22FrontGateText - - db 2 ; objects - object SPRITE_BLUE, 25, 5, STAY, NONE, 1 ; person - object SPRITE_BLUE, 25, 5, STAY, NONE, 2 ; person - - ; warp-to - warp_to 8, 5, ROUTE_22_WIDTH ; ROUTE_22_GATE diff --git a/data/mapObjects/Route22Gate.asm b/data/mapObjects/Route22Gate.asm deleted file mode 100755 index e59ca6cf8..000000000 --- a/data/mapObjects/Route22Gate.asm +++ /dev/null @@ -1,19 +0,0 @@ -Route22Gate_Object: - db $a ; border block - - db 4 ; warps - warp 4, 7, 0, -1 - warp 5, 7, 0, -1 - warp 4, 0, 0, -1 - warp 5, 0, 0, -1 - - db 0 ; signs - - db 1 ; objects - object SPRITE_GUARD, 6, 2, STAY, LEFT, 1 ; person - - ; warp-to - warp_to 4, 7, ROUTE_22_GATE_WIDTH - warp_to 5, 7, ROUTE_22_GATE_WIDTH - warp_to 4, 0, ROUTE_22_GATE_WIDTH - warp_to 5, 0, ROUTE_22_GATE_WIDTH diff --git a/data/mapObjects/Route23.asm b/data/mapObjects/Route23.asm deleted file mode 100755 index b510c2850..000000000 --- a/data/mapObjects/Route23.asm +++ /dev/null @@ -1,26 +0,0 @@ -Route23_Object: - db $f ; border block - - db 4 ; warps - warp 7, 139, 2, ROUTE_22_GATE - warp 8, 139, 3, ROUTE_22_GATE - warp 4, 31, 0, VICTORY_ROAD_1F - warp 14, 31, 1, VICTORY_ROAD_2F - - db 1 ; signs - sign 3, 33, 8 ; Route23Text8 - - db 7 ; objects - object SPRITE_GUARD, 4, 35, STAY, DOWN, 1 ; person - object SPRITE_GUARD, 10, 56, STAY, DOWN, 2 ; person - object SPRITE_SWIMMER, 8, 85, STAY, DOWN, 3 ; person - object SPRITE_SWIMMER, 11, 96, STAY, DOWN, 4 ; person - object SPRITE_GUARD, 12, 105, STAY, DOWN, 5 ; person - object SPRITE_GUARD, 8, 119, STAY, DOWN, 6 ; person - object SPRITE_GUARD, 8, 136, STAY, DOWN, 7 ; person - - ; warp-to - warp_to 7, 139, ROUTE_23_WIDTH ; ROUTE_22_GATE - warp_to 8, 139, ROUTE_23_WIDTH ; ROUTE_22_GATE - warp_to 4, 31, ROUTE_23_WIDTH ; VICTORY_ROAD_1F - warp_to 14, 31, ROUTE_23_WIDTH ; VICTORY_ROAD_2F diff --git a/data/mapObjects/Route24.asm b/data/mapObjects/Route24.asm deleted file mode 100755 index 5f41c5198..000000000 --- a/data/mapObjects/Route24.asm +++ /dev/null @@ -1,17 +0,0 @@ -Route24_Object: - db $2c ; border block - - db 0 ; warps - - db 0 ; signs - - db 9 ; objects - object SPRITE_BLACK_HAIR_BOY_1, 11, 15, STAY, LEFT, 1, OPP_ROCKET, 6 - object SPRITE_BLACK_HAIR_BOY_1, 5, 20, STAY, UP, 2, OPP_JR_TRAINER_M, 2 - object SPRITE_BLACK_HAIR_BOY_1, 11, 19, STAY, LEFT, 3, OPP_JR_TRAINER_M, 3 - object SPRITE_LASS, 10, 22, STAY, RIGHT, 4, OPP_LASS, 7 - object SPRITE_BUG_CATCHER, 11, 25, STAY, LEFT, 5, OPP_YOUNGSTER, 4 - object SPRITE_LASS, 10, 28, STAY, RIGHT, 6, OPP_LASS, 8 - object SPRITE_BUG_CATCHER, 11, 31, STAY, LEFT, 7, OPP_BUG_CATCHER, 9 - object SPRITE_BALL, 10, 5, STAY, NONE, 8, TM_45 - object SPRITE_BLACK_HAIR_BOY_1, 6, 5, STAY, DOWN, 9 diff --git a/data/mapObjects/Route25.asm b/data/mapObjects/Route25.asm deleted file mode 100755 index a85f85ca4..000000000 --- a/data/mapObjects/Route25.asm +++ /dev/null @@ -1,23 +0,0 @@ -Route25_Object: - db $2c ; border block - - db 1 ; warps - warp 45, 3, 0, BILLS_HOUSE - - db 1 ; signs - sign 43, 3, 11 ; Route25Text11 - - db 10 ; objects - object SPRITE_BUG_CATCHER, 14, 2, STAY, DOWN, 1, OPP_YOUNGSTER, 5 - object SPRITE_BUG_CATCHER, 18, 5, STAY, UP, 2, OPP_YOUNGSTER, 6 - object SPRITE_BLACK_HAIR_BOY_1, 24, 4, STAY, DOWN, 3, OPP_JR_TRAINER_M, 2 - object SPRITE_LASS, 18, 8, STAY, RIGHT, 4, OPP_LASS, 9 - object SPRITE_BUG_CATCHER, 32, 3, STAY, LEFT, 5, OPP_YOUNGSTER, 7 - object SPRITE_LASS, 37, 4, STAY, DOWN, 6, OPP_LASS, 10 - object SPRITE_HIKER, 8, 4, STAY, RIGHT, 7, OPP_HIKER, 2 - object SPRITE_HIKER, 23, 9, STAY, UP, 8, OPP_HIKER, 3 - object SPRITE_HIKER, 13, 7, STAY, RIGHT, 9, OPP_HIKER, 4 - object SPRITE_BALL, 22, 2, STAY, NONE, 10, TM_19 - - ; warp-to - warp_to 45, 3, ROUTE_25_WIDTH ; BILLS_HOUSE diff --git a/data/mapObjects/Route2Gate.asm b/data/mapObjects/Route2Gate.asm deleted file mode 100755 index a7feb780e..000000000 --- a/data/mapObjects/Route2Gate.asm +++ /dev/null @@ -1,20 +0,0 @@ -Route2Gate_Object: - db $a ; border block - - db 4 ; warps - warp 4, 0, 3, -1 - warp 5, 0, 3, -1 - warp 4, 7, 4, -1 - warp 5, 7, 4, -1 - - db 0 ; signs - - db 2 ; objects - object SPRITE_OAK_AIDE, 1, 4, STAY, LEFT, 1 ; person - object SPRITE_BUG_CATCHER, 5, 4, WALK, 2, 2 ; person - - ; warp-to - warp_to 4, 0, ROUTE_2_GATE_WIDTH - warp_to 5, 0, ROUTE_2_GATE_WIDTH - warp_to 4, 7, ROUTE_2_GATE_WIDTH - warp_to 5, 7, ROUTE_2_GATE_WIDTH diff --git a/data/mapObjects/Route2TradeHouse.asm b/data/mapObjects/Route2TradeHouse.asm deleted file mode 100755 index 29948d6bb..000000000 --- a/data/mapObjects/Route2TradeHouse.asm +++ /dev/null @@ -1,16 +0,0 @@ -Route2TradeHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 2, -1 - warp 3, 7, 2, -1 - - db 0 ; signs - - db 2 ; objects - object SPRITE_OAK_AIDE, 2, 4, STAY, RIGHT, 1 ; person - object SPRITE_GAMEBOY_KID, 4, 1, STAY, DOWN, 2 ; person - - ; warp-to - warp_to 2, 7, ROUTE_2_TRADE_HOUSE_WIDTH - warp_to 3, 7, ROUTE_2_TRADE_HOUSE_WIDTH diff --git a/data/mapObjects/Route3.asm b/data/mapObjects/Route3.asm deleted file mode 100755 index 372ea6cfd..000000000 --- a/data/mapObjects/Route3.asm +++ /dev/null @@ -1,18 +0,0 @@ -Route3_Object: - db $2c ; border block - - db 0 ; warps - - db 1 ; signs - sign 59, 9, 10 ; Route3Text10 - - db 9 ; objects - object SPRITE_BLACK_HAIR_BOY_2, 57, 11, STAY, NONE, 1 ; person - object SPRITE_BUG_CATCHER, 10, 6, STAY, RIGHT, 2, OPP_BUG_CATCHER, 4 - object SPRITE_BUG_CATCHER, 14, 4, STAY, DOWN, 3, OPP_YOUNGSTER, 1 - object SPRITE_LASS, 16, 9, STAY, LEFT, 4, OPP_LASS, 1 - object SPRITE_BUG_CATCHER, 19, 5, STAY, DOWN, 5, OPP_BUG_CATCHER, 5 - object SPRITE_LASS, 23, 4, STAY, LEFT, 6, OPP_LASS, 2 - object SPRITE_BUG_CATCHER, 22, 9, STAY, LEFT, 7, OPP_YOUNGSTER, 2 - object SPRITE_BUG_CATCHER, 24, 6, STAY, RIGHT, 8, OPP_BUG_CATCHER, 6 - object SPRITE_LASS, 33, 10, STAY, UP, 9, OPP_LASS, 3 diff --git a/data/mapObjects/Route4.asm b/data/mapObjects/Route4.asm deleted file mode 100755 index 4ab88f8ff..000000000 --- a/data/mapObjects/Route4.asm +++ /dev/null @@ -1,22 +0,0 @@ -Route4_Object: - db $2c ; border block - - db 3 ; warps - warp 11, 5, 0, MT_MOON_POKECENTER - warp 18, 5, 0, MT_MOON_1F - warp 24, 5, 7, MT_MOON_B1F - - db 3 ; signs - sign 12, 5, 4 ; PokeCenterSignText - sign 17, 7, 5 ; Route4Text5 - sign 27, 7, 6 ; Route4Text6 - - db 3 ; objects - object SPRITE_LASS, 9, 8, WALK, 0, 1 ; person - object SPRITE_LASS, 63, 3, STAY, RIGHT, 2, OPP_LASS, 4 - object SPRITE_BALL, 57, 3, STAY, NONE, 3, TM_04 - - ; warp-to - warp_to 11, 5, ROUTE_4_WIDTH ; MT_MOON_POKECENTER - warp_to 18, 5, ROUTE_4_WIDTH ; MT_MOON_1F - warp_to 24, 5, ROUTE_4_WIDTH ; MT_MOON_B1F diff --git a/data/mapObjects/Route5.asm b/data/mapObjects/Route5.asm deleted file mode 100755 index fd74edf69..000000000 --- a/data/mapObjects/Route5.asm +++ /dev/null @@ -1,21 +0,0 @@ -Route5_Object: - db $a ; border block - - db 5 ; warps - warp 10, 29, 2, ROUTE_5_GATE - warp 9, 29, 2, ROUTE_5_GATE - warp 10, 33, 0, ROUTE_5_GATE - warp 17, 27, 0, UNDERGROUND_PATH_ROUTE_5 - warp 10, 21, 0, DAYCARE - - db 1 ; signs - sign 17, 29, 1 ; Route5Text1 - - db 0 ; objects - - ; warp-to - warp_to 10, 29, ROUTE_5_WIDTH ; ROUTE_5_GATE - warp_to 9, 29, ROUTE_5_WIDTH ; ROUTE_5_GATE - warp_to 10, 33, ROUTE_5_WIDTH ; ROUTE_5_GATE - warp_to 17, 27, ROUTE_5_WIDTH ; UNDERGROUND_PATH_ROUTE_5 - warp_to 10, 21, ROUTE_5_WIDTH ; DAYCARE diff --git a/data/mapObjects/Route5Gate.asm b/data/mapObjects/Route5Gate.asm deleted file mode 100755 index e0e06a1d7..000000000 --- a/data/mapObjects/Route5Gate.asm +++ /dev/null @@ -1,19 +0,0 @@ -Route5Gate_Object: - db $a ; border block - - db 4 ; warps - warp 3, 5, 2, -1 - warp 4, 5, 2, -1 - warp 3, 0, 1, -1 - warp 4, 0, 0, -1 - - db 0 ; signs - - db 1 ; objects - object SPRITE_GUARD, 1, 3, STAY, RIGHT, 1 ; person - - ; warp-to - warp_to 3, 5, ROUTE_5_GATE_WIDTH - warp_to 4, 5, ROUTE_5_GATE_WIDTH - warp_to 3, 0, ROUTE_5_GATE_WIDTH - warp_to 4, 0, ROUTE_5_GATE_WIDTH diff --git a/data/mapObjects/Route6.asm b/data/mapObjects/Route6.asm deleted file mode 100755 index 13825be16..000000000 --- a/data/mapObjects/Route6.asm +++ /dev/null @@ -1,25 +0,0 @@ -Route6_Object: - db $f ; border block - - db 4 ; warps - warp 9, 1, 2, ROUTE_6_GATE - warp 10, 1, 2, ROUTE_6_GATE - warp 10, 7, 0, ROUTE_6_GATE - warp 17, 13, 0, UNDERGROUND_PATH_ROUTE_6 - - db 1 ; signs - sign 19, 15, 7 ; Route6Text7 - - db 6 ; objects - object SPRITE_BLACK_HAIR_BOY_1, 10, 21, STAY, RIGHT, 1, OPP_JR_TRAINER_M, 10 - object SPRITE_LASS, 11, 21, STAY, LEFT, 2, OPP_JR_TRAINER_F, 25 - object SPRITE_BUG_CATCHER, 0, 15, STAY, RIGHT, 3, OPP_BUG_CATCHER, 10 - object SPRITE_BLACK_HAIR_BOY_1, 11, 31, STAY, LEFT, 4, OPP_JR_TRAINER_M, 5 - object SPRITE_LASS, 11, 30, STAY, LEFT, 5, OPP_JR_TRAINER_F, 3 - object SPRITE_BUG_CATCHER, 19, 26, STAY, LEFT, 6, OPP_BUG_CATCHER, 11 - - ; warp-to - warp_to 9, 1, ROUTE_6_WIDTH ; ROUTE_6_GATE - warp_to 10, 1, ROUTE_6_WIDTH ; ROUTE_6_GATE - warp_to 10, 7, ROUTE_6_WIDTH ; ROUTE_6_GATE - warp_to 17, 13, ROUTE_6_WIDTH ; UNDERGROUND_PATH_ROUTE_6 diff --git a/data/mapObjects/Route6Gate.asm b/data/mapObjects/Route6Gate.asm deleted file mode 100755 index 8ed96d04a..000000000 --- a/data/mapObjects/Route6Gate.asm +++ /dev/null @@ -1,19 +0,0 @@ -Route6Gate_Object: - db $a ; border block - - db 4 ; warps - warp 3, 5, 2, -1 - warp 4, 5, 2, -1 - warp 3, 0, 1, -1 - warp 4, 0, 1, -1 - - db 0 ; signs - - db 1 ; objects - object SPRITE_GUARD, 6, 2, STAY, LEFT, 1 ; person - - ; warp-to - warp_to 3, 5, ROUTE_6_GATE_WIDTH - warp_to 4, 5, ROUTE_6_GATE_WIDTH - warp_to 3, 0, ROUTE_6_GATE_WIDTH - warp_to 4, 0, ROUTE_6_GATE_WIDTH diff --git a/data/mapObjects/Route7.asm b/data/mapObjects/Route7.asm deleted file mode 100755 index 3da2fd4bb..000000000 --- a/data/mapObjects/Route7.asm +++ /dev/null @@ -1,21 +0,0 @@ -Route7_Object: - db $f ; border block - - db 5 ; warps - warp 18, 9, 2, ROUTE_7_GATE - warp 18, 10, 2, ROUTE_7_GATE - warp 11, 9, 0, ROUTE_7_GATE - warp 11, 10, 0, ROUTE_7_GATE - warp 5, 13, 0, UNDERGROUND_PATH_ROUTE_7 - - db 1 ; signs - sign 3, 13, 1 ; Route7Text1 - - db 0 ; objects - - ; warp-to - warp_to 18, 9, ROUTE_7_WIDTH ; ROUTE_7_GATE - warp_to 18, 10, ROUTE_7_WIDTH ; ROUTE_7_GATE - warp_to 11, 9, ROUTE_7_WIDTH ; ROUTE_7_GATE - warp_to 11, 10, ROUTE_7_WIDTH ; ROUTE_7_GATE - warp_to 5, 13, ROUTE_7_WIDTH ; UNDERGROUND_PATH_ROUTE_7 diff --git a/data/mapObjects/Route7Gate.asm b/data/mapObjects/Route7Gate.asm deleted file mode 100755 index c9dc8dca5..000000000 --- a/data/mapObjects/Route7Gate.asm +++ /dev/null @@ -1,19 +0,0 @@ -Route7Gate_Object: - db $a ; border block - - db 4 ; warps - warp 0, 3, 3, -1 - warp 0, 4, 3, -1 - warp 5, 3, 1, -1 - warp 5, 4, 1, -1 - - db 0 ; signs - - db 1 ; objects - object SPRITE_GUARD, 3, 1, STAY, DOWN, 1 ; person - - ; warp-to - warp_to 0, 3, ROUTE_7_GATE_WIDTH - warp_to 0, 4, ROUTE_7_GATE_WIDTH - warp_to 5, 3, ROUTE_7_GATE_WIDTH - warp_to 5, 4, ROUTE_7_GATE_WIDTH diff --git a/data/mapObjects/Route8.asm b/data/mapObjects/Route8.asm deleted file mode 100755 index 2fc0045cd..000000000 --- a/data/mapObjects/Route8.asm +++ /dev/null @@ -1,30 +0,0 @@ -Route8_Object: - db $2c ; border block - - db 5 ; warps - warp 1, 9, 0, ROUTE_8_GATE - warp 1, 10, 0, ROUTE_8_GATE - warp 8, 9, 2, ROUTE_8_GATE - warp 8, 10, 2, ROUTE_8_GATE - warp 13, 3, 0, UNDERGROUND_PATH_ROUTE_8 - - db 1 ; signs - sign 17, 3, 10 ; Route8Text10 - - db 9 ; objects - object SPRITE_BLACK_HAIR_BOY_2, 8, 5, STAY, RIGHT, 1, OPP_SUPER_NERD, 3 - object SPRITE_GAMBLER, 13, 9, STAY, UP, 2, OPP_GAMBLER, 5 - object SPRITE_BLACK_HAIR_BOY_2, 42, 6, STAY, UP, 3, OPP_SUPER_NERD, 4 - object SPRITE_LASS, 26, 3, STAY, LEFT, 4, OPP_LASS, 13 - object SPRITE_BLACK_HAIR_BOY_2, 26, 4, STAY, RIGHT, 5, OPP_SUPER_NERD, 5 - object SPRITE_LASS, 26, 5, STAY, LEFT, 6, OPP_LASS, 14 - object SPRITE_LASS, 26, 6, STAY, RIGHT, 7, OPP_LASS, 15 - object SPRITE_GAMBLER, 46, 13, STAY, DOWN, 8, OPP_GAMBLER, 7 - object SPRITE_LASS, 51, 12, STAY, LEFT, 9, OPP_LASS, 16 - - ; warp-to - warp_to 1, 9, ROUTE_8_WIDTH ; ROUTE_8_GATE - warp_to 1, 10, ROUTE_8_WIDTH ; ROUTE_8_GATE - warp_to 8, 9, ROUTE_8_WIDTH ; ROUTE_8_GATE - warp_to 8, 10, ROUTE_8_WIDTH ; ROUTE_8_GATE - warp_to 13, 3, ROUTE_8_WIDTH ; UNDERGROUND_PATH_ROUTE_8 diff --git a/data/mapObjects/Route8Gate.asm b/data/mapObjects/Route8Gate.asm deleted file mode 100755 index 008a0fcb1..000000000 --- a/data/mapObjects/Route8Gate.asm +++ /dev/null @@ -1,19 +0,0 @@ -Route8Gate_Object: - db $a ; border block - - db 4 ; warps - warp 0, 3, 1, -1 - warp 0, 4, 1, -1 - warp 5, 3, 3, -1 - warp 5, 4, 3, -1 - - db 0 ; signs - - db 1 ; objects - object SPRITE_GUARD, 2, 1, STAY, DOWN, 1 ; person - - ; warp-to - warp_to 0, 3, ROUTE_8_GATE_WIDTH - warp_to 0, 4, ROUTE_8_GATE_WIDTH - warp_to 5, 3, ROUTE_8_GATE_WIDTH - warp_to 5, 4, ROUTE_8_GATE_WIDTH diff --git a/data/mapObjects/Route9.asm b/data/mapObjects/Route9.asm deleted file mode 100755 index c531cf7ac..000000000 --- a/data/mapObjects/Route9.asm +++ /dev/null @@ -1,19 +0,0 @@ -Route9_Object: - db $2c ; border block - - db 0 ; warps - - db 1 ; signs - sign 25, 7, 11 ; Route9Text11 - - db 10 ; objects - object SPRITE_LASS, 13, 10, STAY, LEFT, 1, OPP_JR_TRAINER_F, 5 - object SPRITE_BLACK_HAIR_BOY_1, 24, 7, STAY, LEFT, 2, OPP_YOUNGSTER, 14 - object SPRITE_BLACK_HAIR_BOY_1, 31, 7, STAY, RIGHT, 3, OPP_JR_TRAINER_M, 8 - object SPRITE_LASS, 48, 8, STAY, RIGHT, 4, OPP_JR_TRAINER_F, 6 - object SPRITE_HIKER, 16, 15, STAY, LEFT, 5, OPP_HIKER, 11 - object SPRITE_HIKER, 43, 3, STAY, LEFT, 6, OPP_HIKER, 6 - object SPRITE_BUG_CATCHER, 22, 2, STAY, DOWN, 7, OPP_BUG_CATCHER, 13 - object SPRITE_HIKER, 45, 15, STAY, RIGHT, 8, OPP_HIKER, 5 - object SPRITE_BUG_CATCHER, 40, 8, STAY, RIGHT, 9, OPP_BUG_CATCHER, 14 - object SPRITE_BALL, 10, 15, STAY, NONE, 10, TM_30 diff --git a/data/mapObjects/SSAnne1F.asm b/data/mapObjects/SSAnne1F.asm deleted file mode 100755 index 3e454f06a..000000000 --- a/data/mapObjects/SSAnne1F.asm +++ /dev/null @@ -1,34 +0,0 @@ -SSAnne1F_Object: - db $c ; border block - - db 11 ; warps - warp 26, 0, 1, VERMILION_DOCK - warp 27, 0, 1, VERMILION_DOCK - warp 31, 8, 0, SS_ANNE_1F_ROOMS - warp 23, 8, 1, SS_ANNE_1F_ROOMS - warp 19, 8, 2, SS_ANNE_1F_ROOMS - warp 15, 8, 3, SS_ANNE_1F_ROOMS - warp 11, 8, 4, SS_ANNE_1F_ROOMS - warp 7, 8, 5, SS_ANNE_1F_ROOMS - warp 2, 6, 6, SS_ANNE_2F - warp 37, 15, 5, SS_ANNE_B1F - warp 3, 16, 0, SS_ANNE_KITCHEN - - db 0 ; signs - - db 2 ; objects - object SPRITE_WAITER, 12, 6, WALK, 2, 1 ; person - object SPRITE_SAILOR, 27, 5, STAY, NONE, 2 ; person - - ; warp-to - warp_to 26, 0, SS_ANNE_1F_WIDTH ; VERMILION_DOCK - warp_to 27, 0, SS_ANNE_1F_WIDTH ; VERMILION_DOCK - warp_to 31, 8, SS_ANNE_1F_WIDTH ; SS_ANNE_1F_ROOMS - warp_to 23, 8, SS_ANNE_1F_WIDTH ; SS_ANNE_1F_ROOMS - warp_to 19, 8, SS_ANNE_1F_WIDTH ; SS_ANNE_1F_ROOMS - warp_to 15, 8, SS_ANNE_1F_WIDTH ; SS_ANNE_1F_ROOMS - warp_to 11, 8, SS_ANNE_1F_WIDTH ; SS_ANNE_1F_ROOMS - warp_to 7, 8, SS_ANNE_1F_WIDTH ; SS_ANNE_1F_ROOMS - warp_to 2, 6, SS_ANNE_1F_WIDTH ; SS_ANNE_2F - warp_to 37, 15, SS_ANNE_1F_WIDTH ; SS_ANNE_B1F - warp_to 3, 16, SS_ANNE_1F_WIDTH ; SS_ANNE_KITCHEN diff --git a/data/mapObjects/SSAnne1FRooms.asm b/data/mapObjects/SSAnne1FRooms.asm deleted file mode 100755 index fcd365320..000000000 --- a/data/mapObjects/SSAnne1FRooms.asm +++ /dev/null @@ -1,33 +0,0 @@ -SSAnne1FRooms_Object: - db $c ; border block - - db 6 ; warps - warp 0, 0, 2, SS_ANNE_1F - warp 10, 0, 3, SS_ANNE_1F - warp 20, 0, 4, SS_ANNE_1F - warp 0, 10, 5, SS_ANNE_1F - warp 10, 10, 6, SS_ANNE_1F - warp 20, 10, 7, SS_ANNE_1F - - db 0 ; signs - - db 11 ; objects - object SPRITE_GENTLEMAN, 2, 3, STAY, LEFT, 1, OPP_GENTLEMAN, 1 - object SPRITE_GENTLEMAN, 11, 4, STAY, UP, 2, OPP_GENTLEMAN, 2 - object SPRITE_BUG_CATCHER, 11, 14, STAY, UP, 3, OPP_YOUNGSTER, 8 - object SPRITE_LASS, 13, 11, STAY, LEFT, 4, OPP_LASS, 11 - object SPRITE_GIRL, 22, 3, WALK, 1, 5 ; person - object SPRITE_FAT_BALD_GUY, 0, 14, STAY, NONE, 6 ; person - object SPRITE_LITTLE_GIRL, 2, 11, STAY, DOWN, 7 ; person - object SPRITE_JIGGLYPUFF, 3, 11, STAY, DOWN, 8 ; person - object SPRITE_GIRL, 10, 13, STAY, RIGHT, 9 ; person - object SPRITE_BALL, 12, 15, STAY, NONE, 10, TM_08 - object SPRITE_GENTLEMAN, 21, 13, WALK, 2, 11 ; person - - ; warp-to - warp_to 0, 0, SS_ANNE_1F_ROOMS_WIDTH ; SS_ANNE_1F - warp_to 10, 0, SS_ANNE_1F_ROOMS_WIDTH ; SS_ANNE_1F - warp_to 20, 0, SS_ANNE_1F_ROOMS_WIDTH ; SS_ANNE_1F - warp_to 0, 10, SS_ANNE_1F_ROOMS_WIDTH ; SS_ANNE_1F - warp_to 10, 10, SS_ANNE_1F_ROOMS_WIDTH ; SS_ANNE_1F - warp_to 20, 10, SS_ANNE_1F_ROOMS_WIDTH ; SS_ANNE_1F diff --git a/data/mapObjects/SSAnne2F.asm b/data/mapObjects/SSAnne2F.asm deleted file mode 100755 index 6abd5ac46..000000000 --- a/data/mapObjects/SSAnne2F.asm +++ /dev/null @@ -1,30 +0,0 @@ -SSAnne2F_Object: - db $c ; border block - - db 9 ; warps - warp 9, 11, 0, SS_ANNE_2F_ROOMS - warp 13, 11, 2, SS_ANNE_2F_ROOMS - warp 17, 11, 4, SS_ANNE_2F_ROOMS - warp 21, 11, 6, SS_ANNE_2F_ROOMS - warp 25, 11, 8, SS_ANNE_2F_ROOMS - warp 29, 11, 10, SS_ANNE_2F_ROOMS - warp 2, 4, 8, SS_ANNE_1F - warp 2, 12, 1, SS_ANNE_3F - warp 36, 4, 0, SS_ANNE_CAPTAINS_ROOM - - db 0 ; signs - - db 2 ; objects - object SPRITE_WAITER, 3, 7, WALK, 1, 1 ; person - object SPRITE_BLUE, 36, 4, STAY, DOWN, 2, OPP_SONY1, 1 - - ; warp-to - warp_to 9, 11, SS_ANNE_2F_WIDTH ; SS_ANNE_2F_ROOMS - warp_to 13, 11, SS_ANNE_2F_WIDTH ; SS_ANNE_2F_ROOMS - warp_to 17, 11, SS_ANNE_2F_WIDTH ; SS_ANNE_2F_ROOMS - warp_to 21, 11, SS_ANNE_2F_WIDTH ; SS_ANNE_2F_ROOMS - warp_to 25, 11, SS_ANNE_2F_WIDTH ; SS_ANNE_2F_ROOMS - warp_to 29, 11, SS_ANNE_2F_WIDTH ; SS_ANNE_2F_ROOMS - warp_to 2, 4, SS_ANNE_2F_WIDTH ; SS_ANNE_1F - warp_to 2, 12, SS_ANNE_2F_WIDTH ; SS_ANNE_3F - warp_to 36, 4, SS_ANNE_2F_WIDTH ; SS_ANNE_CAPTAINS_ROOM diff --git a/data/mapObjects/SSAnne2FRooms.asm b/data/mapObjects/SSAnne2FRooms.asm deleted file mode 100755 index ebb053a8a..000000000 --- a/data/mapObjects/SSAnne2FRooms.asm +++ /dev/null @@ -1,47 +0,0 @@ -SSAnne2FRooms_Object: - db $c ; border block - - db 12 ; warps - warp 2, 5, 0, SS_ANNE_2F - warp 3, 5, 0, SS_ANNE_2F - warp 12, 5, 1, SS_ANNE_2F - warp 13, 5, 1, SS_ANNE_2F - warp 22, 5, 2, SS_ANNE_2F - warp 23, 5, 2, SS_ANNE_2F - warp 2, 15, 3, SS_ANNE_2F - warp 3, 15, 3, SS_ANNE_2F - warp 12, 15, 4, SS_ANNE_2F - warp 13, 15, 4, SS_ANNE_2F - warp 22, 15, 5, SS_ANNE_2F - warp 23, 15, 5, SS_ANNE_2F - - db 0 ; signs - - db 13 ; objects - object SPRITE_GENTLEMAN, 10, 2, STAY, RIGHT, 1, OPP_GENTLEMAN, 3 - object SPRITE_FISHER2, 13, 4, STAY, LEFT, 2, OPP_FISHER, 1 - object SPRITE_GENTLEMAN, 0, 14, STAY, RIGHT, 3, OPP_GENTLEMAN, 5 - object SPRITE_LASS, 2, 11, STAY, DOWN, 4, OPP_LASS, 12 - object SPRITE_GENTLEMAN, 1, 2, STAY, DOWN, 5 ; person - object SPRITE_BALL, 12, 1, STAY, NONE, 6, MAX_ETHER - object SPRITE_GENTLEMAN, 21, 2, STAY, DOWN, 7 ; person - object SPRITE_OLD_PERSON, 22, 1, STAY, DOWN, 8 ; person - object SPRITE_BALL, 0, 12, STAY, NONE, 9, RARE_CANDY - object SPRITE_GENTLEMAN, 12, 12, STAY, DOWN, 10 ; person - object SPRITE_YOUNG_BOY, 11, 14, STAY, NONE, 11 ; person - object SPRITE_BRUNETTE_GIRL, 22, 12, STAY, LEFT, 12 ; person - object SPRITE_FOULARD_WOMAN, 20, 12, STAY, RIGHT, 13 ; person - - ; warp-to - warp_to 2, 5, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F - warp_to 3, 5, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F - warp_to 12, 5, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F - warp_to 13, 5, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F - warp_to 22, 5, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F - warp_to 23, 5, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F - warp_to 2, 15, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F - warp_to 3, 15, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F - warp_to 12, 15, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F - warp_to 13, 15, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F - warp_to 22, 15, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F - warp_to 23, 15, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F diff --git a/data/mapObjects/SSAnne3F.asm b/data/mapObjects/SSAnne3F.asm deleted file mode 100755 index f0bfc17bc..000000000 --- a/data/mapObjects/SSAnne3F.asm +++ /dev/null @@ -1,15 +0,0 @@ -SSAnne3F_Object: - db $c ; border block - - db 2 ; warps - warp 0, 3, 0, SS_ANNE_BOW - warp 19, 3, 7, SS_ANNE_2F - - db 0 ; signs - - db 1 ; objects - object SPRITE_SAILOR, 9, 3, WALK, 2, 1 ; person - - ; warp-to - warp_to 0, 3, SS_ANNE_3F_WIDTH ; SS_ANNE_BOW - warp_to 19, 3, SS_ANNE_3F_WIDTH ; SS_ANNE_2F diff --git a/data/mapObjects/SSAnneB1F.asm b/data/mapObjects/SSAnneB1F.asm deleted file mode 100755 index fe54ea24d..000000000 --- a/data/mapObjects/SSAnneB1F.asm +++ /dev/null @@ -1,22 +0,0 @@ -SSAnneB1F_Object: - db $c ; border block - - db 6 ; warps - warp 23, 3, 8, SS_ANNE_B1F_ROOMS - warp 19, 3, 6, SS_ANNE_B1F_ROOMS - warp 15, 3, 4, SS_ANNE_B1F_ROOMS - warp 11, 3, 2, SS_ANNE_B1F_ROOMS - warp 7, 3, 0, SS_ANNE_B1F_ROOMS - warp 27, 5, 9, SS_ANNE_1F - - db 0 ; signs - - db 0 ; objects - - ; warp-to - warp_to 23, 3, SS_ANNE_B1F_WIDTH ; SS_ANNE_B1F_ROOMS - warp_to 19, 3, SS_ANNE_B1F_WIDTH ; SS_ANNE_B1F_ROOMS - warp_to 15, 3, SS_ANNE_B1F_WIDTH ; SS_ANNE_B1F_ROOMS - warp_to 11, 3, SS_ANNE_B1F_WIDTH ; SS_ANNE_B1F_ROOMS - warp_to 7, 3, SS_ANNE_B1F_WIDTH ; SS_ANNE_B1F_ROOMS - warp_to 27, 5, SS_ANNE_B1F_WIDTH ; SS_ANNE_1F diff --git a/data/mapObjects/SSAnneB1FRooms.asm b/data/mapObjects/SSAnneB1FRooms.asm deleted file mode 100755 index 1d31b89cf..000000000 --- a/data/mapObjects/SSAnneB1FRooms.asm +++ /dev/null @@ -1,41 +0,0 @@ -SSAnneB1FRooms_Object: - db $c ; border block - - db 10 ; warps - warp 2, 5, 4, SS_ANNE_B1F - warp 3, 5, 4, SS_ANNE_B1F - warp 12, 5, 3, SS_ANNE_B1F - warp 13, 5, 3, SS_ANNE_B1F - warp 22, 5, 2, SS_ANNE_B1F - warp 23, 5, 2, SS_ANNE_B1F - warp 2, 15, 1, SS_ANNE_B1F - warp 3, 15, 1, SS_ANNE_B1F - warp 12, 15, 0, SS_ANNE_B1F - warp 13, 15, 0, SS_ANNE_B1F - - db 0 ; signs - - db 11 ; objects - object SPRITE_SAILOR, 0, 13, STAY, DOWN, 1, OPP_SAILOR, 3 - object SPRITE_SAILOR, 2, 11, STAY, DOWN, 2, OPP_SAILOR, 4 - object SPRITE_SAILOR, 12, 3, STAY, LEFT, 3, OPP_SAILOR, 5 - object SPRITE_SAILOR, 22, 2, STAY, DOWN, 4, OPP_SAILOR, 6 - object SPRITE_SAILOR, 0, 2, STAY, RIGHT, 5, OPP_SAILOR, 7 - object SPRITE_FISHER2, 0, 4, STAY, RIGHT, 6, OPP_FISHER, 2 - object SPRITE_BLACK_HAIR_BOY_2, 10, 13, STAY, RIGHT, 7 ; person - object SPRITE_SLOWBRO, 11, 12, STAY, NONE, 8 ; person - object SPRITE_BALL, 20, 2, STAY, NONE, 9, ETHER - object SPRITE_BALL, 10, 2, STAY, NONE, 10, TM_44 - object SPRITE_BALL, 12, 11, STAY, NONE, 11, MAX_POTION - - ; warp-to - warp_to 2, 5, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F - warp_to 3, 5, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F - warp_to 12, 5, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F - warp_to 13, 5, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F - warp_to 22, 5, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F - warp_to 23, 5, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F - warp_to 2, 15, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F - warp_to 3, 15, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F - warp_to 12, 15, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F - warp_to 13, 15, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F diff --git a/data/mapObjects/SSAnneBow.asm b/data/mapObjects/SSAnneBow.asm deleted file mode 100755 index 8873c8f82..000000000 --- a/data/mapObjects/SSAnneBow.asm +++ /dev/null @@ -1,19 +0,0 @@ -SSAnneBow_Object: - db $23 ; border block - - db 2 ; warps - warp 13, 6, 0, SS_ANNE_3F - warp 13, 7, 0, SS_ANNE_3F - - db 0 ; signs - - db 5 ; objects - object SPRITE_BLACK_HAIR_BOY_2, 5, 2, STAY, UP, 1 ; person - object SPRITE_SAILOR, 4, 9, STAY, NONE, 2 ; person - object SPRITE_BLACK_HAIR_BOY_1, 7, 11, STAY, NONE, 3 ; person - object SPRITE_SAILOR, 4, 4, STAY, DOWN, 4, OPP_SAILOR, 1 - object SPRITE_SAILOR, 10, 8, STAY, UP, 5, OPP_SAILOR, 2 - - ; warp-to - warp_to 13, 6, SS_ANNE_BOW_WIDTH ; SS_ANNE_3F - warp_to 13, 7, SS_ANNE_BOW_WIDTH ; SS_ANNE_3F diff --git a/data/mapObjects/SSAnneCaptainsRoom.asm b/data/mapObjects/SSAnneCaptainsRoom.asm deleted file mode 100755 index 545656cc5..000000000 --- a/data/mapObjects/SSAnneCaptainsRoom.asm +++ /dev/null @@ -1,15 +0,0 @@ -SSAnneCaptainsRoom_Object: - db $c ; border block - - db 1 ; warps - warp 0, 7, 8, SS_ANNE_2F - - db 2 ; signs - sign 4, 1, 2 ; SSAnne7Text2 - sign 1, 2, 3 ; SSAnne7Text3 - - db 1 ; objects - object SPRITE_SS_CAPTAIN, 4, 2, STAY, UP, 1 ; person - - ; warp-to - warp_to 0, 7, SS_ANNE_CAPTAINS_ROOM_WIDTH ; SS_ANNE_2F diff --git a/data/mapObjects/SSAnneKitchen.asm b/data/mapObjects/SSAnneKitchen.asm deleted file mode 100755 index b5771e687..000000000 --- a/data/mapObjects/SSAnneKitchen.asm +++ /dev/null @@ -1,19 +0,0 @@ -SSAnneKitchen_Object: - db $c ; border block - - db 1 ; warps - warp 6, 0, 10, SS_ANNE_1F - - db 0 ; signs - - db 7 ; objects - object SPRITE_COOK, 1, 8, WALK, 1, 1 ; person - object SPRITE_COOK, 5, 8, WALK, 1, 2 ; person - object SPRITE_COOK, 9, 7, WALK, 1, 3 ; person - object SPRITE_COOK, 13, 6, STAY, NONE, 4 ; person - object SPRITE_COOK, 13, 8, STAY, NONE, 5 ; person - object SPRITE_COOK, 13, 10, STAY, NONE, 6 ; person - object SPRITE_COOK, 11, 13, STAY, UP, 7 ; person - - ; warp-to - warp_to 6, 0, SS_ANNE_KITCHEN_WIDTH ; SS_ANNE_1F diff --git a/data/mapObjects/SafariZoneCenter.asm b/data/mapObjects/SafariZoneCenter.asm deleted file mode 100755 index e54cec744..000000000 --- a/data/mapObjects/SafariZoneCenter.asm +++ /dev/null @@ -1,31 +0,0 @@ -SafariZoneCenter_Object: - db $0 ; border block - - db 9 ; warps - warp 14, 25, 2, SAFARI_ZONE_GATE - warp 15, 25, 3, SAFARI_ZONE_GATE - warp 0, 10, 4, SAFARI_ZONE_WEST - warp 0, 11, 5, SAFARI_ZONE_WEST - warp 14, 0, 4, SAFARI_ZONE_NORTH - warp 15, 0, 5, SAFARI_ZONE_NORTH - warp 29, 10, 2, SAFARI_ZONE_EAST - warp 29, 11, 3, SAFARI_ZONE_EAST - warp 17, 19, 0, SAFARI_ZONE_CENTER_REST_HOUSE - - db 2 ; signs - sign 18, 20, 2 ; SafariZoneCenterText2 - sign 14, 22, 3 ; SafariZoneCenterText3 - - db 1 ; objects - object SPRITE_BALL, 14, 10, STAY, NONE, 1, NUGGET - - ; warp-to - warp_to 14, 25, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_GATE - warp_to 15, 25, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_GATE - warp_to 0, 10, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_WEST - warp_to 0, 11, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_WEST - warp_to 14, 0, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_NORTH - warp_to 15, 0, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_NORTH - warp_to 29, 10, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_EAST - warp_to 29, 11, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_EAST - warp_to 17, 19, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_CENTER_REST_HOUSE diff --git a/data/mapObjects/SafariZoneCenterRestHouse.asm b/data/mapObjects/SafariZoneCenterRestHouse.asm deleted file mode 100755 index 9eda99702..000000000 --- a/data/mapObjects/SafariZoneCenterRestHouse.asm +++ /dev/null @@ -1,16 +0,0 @@ -SafariZoneCenterRestHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 8, SAFARI_ZONE_CENTER - warp 3, 7, 8, SAFARI_ZONE_CENTER - - db 0 ; signs - - db 2 ; objects - object SPRITE_GIRL, 3, 2, STAY, DOWN, 1 ; person - object SPRITE_OAK_AIDE, 1, 4, WALK, 1, 2 ; person - - ; warp-to - warp_to 2, 7, SAFARI_ZONE_CENTER_REST_HOUSE_WIDTH ; SAFARI_ZONE_CENTER - warp_to 3, 7, SAFARI_ZONE_CENTER_REST_HOUSE_WIDTH ; SAFARI_ZONE_CENTER diff --git a/data/mapObjects/SafariZoneEast.asm b/data/mapObjects/SafariZoneEast.asm deleted file mode 100755 index df612ea98..000000000 --- a/data/mapObjects/SafariZoneEast.asm +++ /dev/null @@ -1,27 +0,0 @@ -SafariZoneEast_Object: - db $0 ; border block - - db 5 ; warps - warp 0, 4, 6, SAFARI_ZONE_NORTH - warp 0, 5, 7, SAFARI_ZONE_NORTH - warp 0, 22, 6, SAFARI_ZONE_CENTER - warp 0, 23, 6, SAFARI_ZONE_CENTER - warp 25, 9, 0, SAFARI_ZONE_EAST_REST_HOUSE - - db 3 ; signs - sign 26, 10, 5 ; SafariZoneEastText5 - sign 6, 4, 6 ; SafariZoneEastText6 - sign 5, 23, 7 ; SafariZoneEastText7 - - db 4 ; objects - object SPRITE_BALL, 21, 10, STAY, NONE, 1, FULL_RESTORE - object SPRITE_BALL, 3, 7, STAY, NONE, 2, MAX_POTION - object SPRITE_BALL, 20, 13, STAY, NONE, 3, CARBOS - object SPRITE_BALL, 15, 12, STAY, NONE, 4, TM_37 - - ; warp-to - warp_to 0, 4, SAFARI_ZONE_EAST_WIDTH ; SAFARI_ZONE_NORTH - warp_to 0, 5, SAFARI_ZONE_EAST_WIDTH ; SAFARI_ZONE_NORTH - warp_to 0, 22, SAFARI_ZONE_EAST_WIDTH ; SAFARI_ZONE_CENTER - warp_to 0, 23, SAFARI_ZONE_EAST_WIDTH ; SAFARI_ZONE_CENTER - warp_to 25, 9, SAFARI_ZONE_EAST_WIDTH ; SAFARI_ZONE_EAST_REST_HOUSE diff --git a/data/mapObjects/SafariZoneEastRestHouse.asm b/data/mapObjects/SafariZoneEastRestHouse.asm deleted file mode 100755 index e7c683437..000000000 --- a/data/mapObjects/SafariZoneEastRestHouse.asm +++ /dev/null @@ -1,17 +0,0 @@ -SafariZoneEastRestHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 4, SAFARI_ZONE_EAST - warp 3, 7, 4, SAFARI_ZONE_EAST - - db 0 ; signs - - db 3 ; objects - object SPRITE_OAK_AIDE, 1, 3, WALK, 1, 1 ; person - object SPRITE_ROCKER, 4, 2, STAY, NONE, 2 ; person - object SPRITE_LAPRAS_GIVER, 5, 2, STAY, NONE, 3 ; person - - ; warp-to - warp_to 2, 7, SAFARI_ZONE_EAST_REST_HOUSE_WIDTH ; SAFARI_ZONE_EAST - warp_to 3, 7, SAFARI_ZONE_EAST_REST_HOUSE_WIDTH ; SAFARI_ZONE_EAST diff --git a/data/mapObjects/SafariZoneGate.asm b/data/mapObjects/SafariZoneGate.asm deleted file mode 100755 index 6749b45b2..000000000 --- a/data/mapObjects/SafariZoneGate.asm +++ /dev/null @@ -1,20 +0,0 @@ -SafariZoneGate_Object: - db $a ; border block - - db 4 ; warps - warp 3, 5, 4, -1 - warp 4, 5, 4, -1 - warp 3, 0, 0, SAFARI_ZONE_CENTER - warp 4, 0, 1, SAFARI_ZONE_CENTER - - db 0 ; signs - - db 2 ; objects - object SPRITE_WHITE_PLAYER, 6, 2, STAY, LEFT, 1 ; person - object SPRITE_WHITE_PLAYER, 1, 4, STAY, RIGHT, 2 ; person - - ; warp-to - warp_to 3, 5, SAFARI_ZONE_GATE_WIDTH - warp_to 4, 5, SAFARI_ZONE_GATE_WIDTH - warp_to 3, 0, SAFARI_ZONE_GATE_WIDTH ; SAFARI_ZONE_CENTER - warp_to 4, 0, SAFARI_ZONE_GATE_WIDTH ; SAFARI_ZONE_CENTER diff --git a/data/mapObjects/SafariZoneNorth.asm b/data/mapObjects/SafariZoneNorth.asm deleted file mode 100755 index 9eda7b4b2..000000000 --- a/data/mapObjects/SafariZoneNorth.asm +++ /dev/null @@ -1,35 +0,0 @@ -SafariZoneNorth_Object: - db $0 ; border block - - db 9 ; warps - warp 2, 35, 0, SAFARI_ZONE_WEST - warp 3, 35, 1, SAFARI_ZONE_WEST - warp 8, 35, 2, SAFARI_ZONE_WEST - warp 9, 35, 3, SAFARI_ZONE_WEST - warp 20, 35, 4, SAFARI_ZONE_CENTER - warp 21, 35, 5, SAFARI_ZONE_CENTER - warp 39, 30, 0, SAFARI_ZONE_EAST - warp 39, 31, 1, SAFARI_ZONE_EAST - warp 35, 3, 0, SAFARI_ZONE_NORTH_REST_HOUSE - - db 5 ; signs - sign 36, 4, 3 ; SafariZoneNorthText3 - sign 4, 25, 4 ; SafariZoneNorthText4 - sign 13, 31, 5 ; SafariZoneNorthText5 - sign 19, 33, 6 ; SafariZoneNorthText6 - sign 26, 28, 7 ; SafariZoneNorthText7 - - db 2 ; objects - object SPRITE_BALL, 25, 1, STAY, NONE, 1, PROTEIN - object SPRITE_BALL, 19, 7, STAY, NONE, 2, TM_40 - - ; warp-to - warp_to 2, 35, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_WEST - warp_to 3, 35, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_WEST - warp_to 8, 35, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_WEST - warp_to 9, 35, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_WEST - warp_to 20, 35, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_CENTER - warp_to 21, 35, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_CENTER - warp_to 39, 30, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_EAST - warp_to 39, 31, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_EAST - warp_to 35, 3, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_NORTH_REST_HOUSE diff --git a/data/mapObjects/SafariZoneNorthRestHouse.asm b/data/mapObjects/SafariZoneNorthRestHouse.asm deleted file mode 100755 index 34b3ab4f0..000000000 --- a/data/mapObjects/SafariZoneNorthRestHouse.asm +++ /dev/null @@ -1,17 +0,0 @@ -SafariZoneNorthRestHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 8, SAFARI_ZONE_NORTH - warp 3, 7, 8, SAFARI_ZONE_NORTH - - db 0 ; signs - - db 3 ; objects - object SPRITE_OAK_AIDE, 6, 3, WALK, 2, 1 ; person - object SPRITE_WHITE_PLAYER, 3, 4, STAY, NONE, 2 ; person - object SPRITE_GENTLEMAN, 1, 5, WALK, 1, 3 ; person - - ; warp-to - warp_to 2, 7, SAFARI_ZONE_NORTH_REST_HOUSE_WIDTH ; SAFARI_ZONE_NORTH - warp_to 3, 7, SAFARI_ZONE_NORTH_REST_HOUSE_WIDTH ; SAFARI_ZONE_NORTH diff --git a/data/mapObjects/SafariZoneSecretHouse.asm b/data/mapObjects/SafariZoneSecretHouse.asm deleted file mode 100755 index 2a5fc22df..000000000 --- a/data/mapObjects/SafariZoneSecretHouse.asm +++ /dev/null @@ -1,15 +0,0 @@ -SafariZoneSecretHouse_Object: - db $17 ; border block - - db 2 ; warps - warp 2, 7, 6, SAFARI_ZONE_WEST - warp 3, 7, 6, SAFARI_ZONE_WEST - - db 0 ; signs - - db 1 ; objects - object SPRITE_FISHER, 3, 3, STAY, DOWN, 1 ; person - - ; warp-to - warp_to 2, 7, SAFARI_ZONE_SECRET_HOUSE_WIDTH ; SAFARI_ZONE_WEST - warp_to 3, 7, SAFARI_ZONE_SECRET_HOUSE_WIDTH ; SAFARI_ZONE_WEST diff --git a/data/mapObjects/SafariZoneWest.asm b/data/mapObjects/SafariZoneWest.asm deleted file mode 100755 index 7faced726..000000000 --- a/data/mapObjects/SafariZoneWest.asm +++ /dev/null @@ -1,34 +0,0 @@ -SafariZoneWest_Object: - db $0 ; border block - - db 8 ; warps - warp 20, 0, 0, SAFARI_ZONE_NORTH - warp 21, 0, 1, SAFARI_ZONE_NORTH - warp 26, 0, 2, SAFARI_ZONE_NORTH - warp 27, 0, 3, SAFARI_ZONE_NORTH - warp 29, 22, 2, SAFARI_ZONE_CENTER - warp 29, 23, 3, SAFARI_ZONE_CENTER - warp 3, 3, 0, SAFARI_ZONE_SECRET_HOUSE - warp 11, 11, 0, SAFARI_ZONE_WEST_REST_HOUSE - - db 4 ; signs - sign 12, 12, 5 ; SafariZoneWestText5 - sign 17, 3, 6 ; SafariZoneWestText6 - sign 26, 4, 7 ; SafariZoneWestText7 - sign 24, 22, 8 ; SafariZoneWestText8 - - db 4 ; objects - object SPRITE_BALL, 8, 20, STAY, NONE, 1, MAX_POTION - object SPRITE_BALL, 9, 7, STAY, NONE, 2, TM_32 - object SPRITE_BALL, 18, 18, STAY, NONE, 3, MAX_REVIVE - object SPRITE_BALL, 19, 7, STAY, NONE, 4, GOLD_TEETH - - ; warp-to - warp_to 20, 0, SAFARI_ZONE_WEST_WIDTH ; SAFARI_ZONE_NORTH - warp_to 21, 0, SAFARI_ZONE_WEST_WIDTH ; SAFARI_ZONE_NORTH - warp_to 26, 0, SAFARI_ZONE_WEST_WIDTH ; SAFARI_ZONE_NORTH - warp_to 27, 0, SAFARI_ZONE_WEST_WIDTH ; SAFARI_ZONE_NORTH - warp_to 29, 22, SAFARI_ZONE_WEST_WIDTH ; SAFARI_ZONE_CENTER - warp_to 29, 23, SAFARI_ZONE_WEST_WIDTH ; SAFARI_ZONE_CENTER - warp_to 3, 3, SAFARI_ZONE_WEST_WIDTH ; SAFARI_ZONE_SECRET_HOUSE - warp_to 11, 11, SAFARI_ZONE_WEST_WIDTH ; SAFARI_ZONE_WEST_REST_HOUSE diff --git a/data/mapObjects/SafariZoneWestRestHouse.asm b/data/mapObjects/SafariZoneWestRestHouse.asm deleted file mode 100755 index 9f1bc0ed4..000000000 --- a/data/mapObjects/SafariZoneWestRestHouse.asm +++ /dev/null @@ -1,17 +0,0 @@ -SafariZoneWestRestHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 7, SAFARI_ZONE_WEST - warp 3, 7, 7, SAFARI_ZONE_WEST - - db 0 ; signs - - db 3 ; objects - object SPRITE_OAK_AIDE, 4, 4, WALK, 0, 1 ; person - object SPRITE_BLACK_HAIR_BOY_1, 0, 2, STAY, RIGHT, 2 ; person - object SPRITE_ERIKA, 6, 2, STAY, DOWN, 3 ; person - - ; warp-to - warp_to 2, 7, SAFARI_ZONE_WEST_REST_HOUSE_WIDTH ; SAFARI_ZONE_WEST - warp_to 3, 7, SAFARI_ZONE_WEST_REST_HOUSE_WIDTH ; SAFARI_ZONE_WEST diff --git a/data/mapObjects/SaffronCity.asm b/data/mapObjects/SaffronCity.asm deleted file mode 100755 index fd8ed6b11..000000000 --- a/data/mapObjects/SaffronCity.asm +++ /dev/null @@ -1,50 +0,0 @@ -SaffronCity_Object: - db $f ; border block - - db 8 ; warps - warp 7, 5, 0, COPYCATS_HOUSE_1F - warp 26, 3, 0, FIGHTING_DOJO - warp 34, 3, 0, SAFFRON_GYM - warp 13, 11, 0, SAFFRON_PIDGEY_HOUSE - warp 25, 11, 0, SAFFRON_MART - warp 18, 21, 0, SILPH_CO_1F - warp 9, 29, 0, SAFFRON_POKECENTER - warp 29, 29, 0, MR_PSYCHICS_HOUSE - - db 10 ; signs - sign 17, 5, 16 ; SaffronCityText16 - sign 27, 5, 17 ; SaffronCityText17 - sign 35, 5, 18 ; SaffronCityText18 - sign 26, 11, 19 ; MartSignText - sign 39, 19, 20 ; SaffronCityText20 - sign 5, 21, 21 ; SaffronCityText21 - sign 15, 21, 22 ; SaffronCityText22 - sign 10, 29, 23 ; PokeCenterSignText - sign 27, 29, 24 ; SaffronCityText24 - sign 1, 19, 25 ; SaffronCityText25 - - db 14 ; objects - object SPRITE_ROCKET, 7, 6, STAY, NONE, 1 ; person - object SPRITE_ROCKET, 20, 8, WALK, 2, 2 ; person - object SPRITE_ROCKET, 34, 4, STAY, NONE, 3 ; person - object SPRITE_ROCKET, 13, 12, STAY, NONE, 4 ; person - object SPRITE_ROCKET, 11, 25, WALK, 2, 5 ; person - object SPRITE_ROCKET, 32, 13, WALK, 2, 6 ; person - object SPRITE_ROCKET, 18, 30, WALK, 2, 7 ; person - object SPRITE_OAK_AIDE, 8, 14, WALK, 0, 8 ; person - object SPRITE_LAPRAS_GIVER, 23, 23, STAY, NONE, 9 ; person - object SPRITE_ERIKA, 17, 30, WALK, 2, 10 ; person - object SPRITE_GENTLEMAN, 30, 12, STAY, DOWN, 11 ; person - object SPRITE_BIRD, 31, 12, STAY, DOWN, 12 ; person - object SPRITE_ROCKER, 18, 8, STAY, UP, 13 ; person - object SPRITE_ROCKET, 18, 22, STAY, DOWN, 14 ; person - - ; warp-to - warp_to 7, 5, SAFFRON_CITY_WIDTH ; COPYCATS_HOUSE_1F - warp_to 26, 3, SAFFRON_CITY_WIDTH ; FIGHTING_DOJO - warp_to 34, 3, SAFFRON_CITY_WIDTH ; SAFFRON_GYM - warp_to 13, 11, SAFFRON_CITY_WIDTH ; SAFFRON_PIDGEY_HOUSE - warp_to 25, 11, SAFFRON_CITY_WIDTH ; SAFFRON_MART - warp_to 18, 21, SAFFRON_CITY_WIDTH ; SILPH_CO_1F - warp_to 9, 29, SAFFRON_CITY_WIDTH ; SAFFRON_POKECENTER - warp_to 29, 29, SAFFRON_CITY_WIDTH ; MR_PSYCHICS_HOUSE diff --git a/data/mapObjects/SaffronGym.asm b/data/mapObjects/SaffronGym.asm deleted file mode 100755 index 4cb80bcd5..000000000 --- a/data/mapObjects/SaffronGym.asm +++ /dev/null @@ -1,83 +0,0 @@ -SaffronGym_Object: - db $2e ; border block - - db 32 ; warps - warp 8, 17, 2, -1 - warp 9, 17, 2, -1 - warp 1, 3, 22, SAFFRON_GYM - warp 5, 3, 15, SAFFRON_GYM - warp 1, 5, 18, SAFFRON_GYM - warp 5, 5, 8, SAFFRON_GYM - warp 1, 9, 27, SAFFRON_GYM - warp 5, 9, 16, SAFFRON_GYM - warp 1, 11, 5, SAFFRON_GYM - warp 5, 11, 13, SAFFRON_GYM - warp 1, 15, 23, SAFFRON_GYM - warp 5, 15, 30, SAFFRON_GYM - warp 1, 17, 17, SAFFRON_GYM - warp 5, 17, 9, SAFFRON_GYM - warp 9, 3, 26, SAFFRON_GYM - warp 11, 3, 3, SAFFRON_GYM - warp 9, 5, 7, SAFFRON_GYM - warp 11, 5, 12, SAFFRON_GYM - warp 11, 11, 4, SAFFRON_GYM - warp 11, 15, 31, SAFFRON_GYM - warp 15, 3, 24, SAFFRON_GYM - warp 19, 3, 28, SAFFRON_GYM - warp 15, 5, 2, SAFFRON_GYM - warp 19, 5, 10, SAFFRON_GYM - warp 15, 9, 20, SAFFRON_GYM - warp 19, 9, 29, SAFFRON_GYM - warp 15, 11, 14, SAFFRON_GYM - warp 19, 11, 6, SAFFRON_GYM - warp 15, 15, 21, SAFFRON_GYM - warp 19, 15, 25, SAFFRON_GYM - warp 15, 17, 11, SAFFRON_GYM - warp 19, 17, 19, SAFFRON_GYM - - db 0 ; signs - - db 9 ; objects - object SPRITE_LASS, 9, 8, STAY, DOWN, 1, OPP_SABRINA, 1 - object SPRITE_MEDIUM, 10, 1, STAY, DOWN, 2, OPP_CHANNELER, 22 - object SPRITE_BUG_CATCHER, 17, 1, STAY, DOWN, 3, OPP_PSYCHIC_TR, 1 - object SPRITE_MEDIUM, 3, 7, STAY, DOWN, 4, OPP_CHANNELER, 23 - object SPRITE_BUG_CATCHER, 17, 7, STAY, DOWN, 5, OPP_PSYCHIC_TR, 2 - object SPRITE_MEDIUM, 3, 13, STAY, DOWN, 6, OPP_CHANNELER, 24 - object SPRITE_BUG_CATCHER, 17, 13, STAY, DOWN, 7, OPP_PSYCHIC_TR, 3 - object SPRITE_BUG_CATCHER, 3, 1, STAY, DOWN, 8, OPP_PSYCHIC_TR, 4 - object SPRITE_GYM_HELPER, 10, 15, STAY, DOWN, 9 ; person - - ; warp-to - warp_to 8, 17, SAFFRON_GYM_WIDTH - warp_to 9, 17, SAFFRON_GYM_WIDTH - warp_to 1, 3, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 5, 3, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 1, 5, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 5, 5, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 1, 9, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 5, 9, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 1, 11, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 5, 11, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 1, 15, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 5, 15, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 1, 17, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 5, 17, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 9, 3, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 11, 3, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 9, 5, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 11, 5, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 11, 11, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 11, 15, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 15, 3, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 19, 3, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 15, 5, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 19, 5, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 15, 9, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 19, 9, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 15, 11, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 19, 11, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 15, 15, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 19, 15, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 15, 17, SAFFRON_GYM_WIDTH ; SAFFRON_GYM - warp_to 19, 17, SAFFRON_GYM_WIDTH ; SAFFRON_GYM diff --git a/data/mapObjects/SaffronMart.asm b/data/mapObjects/SaffronMart.asm deleted file mode 100755 index c376f2def..000000000 --- a/data/mapObjects/SaffronMart.asm +++ /dev/null @@ -1,17 +0,0 @@ -SaffronMart_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 4, -1 - warp 4, 7, 4, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 1 ; person - object SPRITE_BLACK_HAIR_BOY_2, 4, 2, STAY, NONE, 2 ; person - object SPRITE_LASS, 6, 5, WALK, 0, 3 ; person - - ; warp-to - warp_to 3, 7, SAFFRON_MART_WIDTH - warp_to 4, 7, SAFFRON_MART_WIDTH diff --git a/data/mapObjects/SaffronPidgeyHouse.asm b/data/mapObjects/SaffronPidgeyHouse.asm deleted file mode 100755 index 65a851bf1..000000000 --- a/data/mapObjects/SaffronPidgeyHouse.asm +++ /dev/null @@ -1,18 +0,0 @@ -SaffronPidgeyHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 3, -1 - warp 3, 7, 3, -1 - - db 0 ; signs - - db 4 ; objects - object SPRITE_BRUNETTE_GIRL, 2, 3, STAY, RIGHT, 1 ; person - object SPRITE_BIRD, 0, 4, WALK, 1, 2 ; person - object SPRITE_BUG_CATCHER, 4, 1, STAY, DOWN, 3 ; person - object SPRITE_PAPER_SHEET, 3, 3, STAY, NONE, 4 ; person - - ; warp-to - warp_to 2, 7, SAFFRON_PIDGEY_HOUSE_WIDTH - warp_to 3, 7, SAFFRON_PIDGEY_HOUSE_WIDTH diff --git a/data/mapObjects/SaffronPokecenter.asm b/data/mapObjects/SaffronPokecenter.asm deleted file mode 100755 index db28f0488..000000000 --- a/data/mapObjects/SaffronPokecenter.asm +++ /dev/null @@ -1,19 +0,0 @@ -SaffronPokecenter_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 6, -1 - warp 4, 7, 6, -1 - - db 0 ; signs - - db 5 ; objects - object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person - object SPRITE_FOULARD_WOMAN, 5, 5, STAY, NONE, 2 ; person - object SPRITE_GENTLEMAN, 8, 3, STAY, DOWN, 3 ; person - object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person - object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person - - ; warp-to - warp_to 3, 7, SAFFRON_POKECENTER_WIDTH - warp_to 4, 7, SAFFRON_POKECENTER_WIDTH diff --git a/data/mapObjects/SeafoamIslands1F.asm b/data/mapObjects/SeafoamIslands1F.asm deleted file mode 100755 index 67b3f0e50..000000000 --- a/data/mapObjects/SeafoamIslands1F.asm +++ /dev/null @@ -1,26 +0,0 @@ -SeafoamIslands1F_Object: - db $7d ; border block - - db 7 ; warps - warp 4, 17, 0, -1 - warp 5, 17, 0, -1 - warp 26, 17, 1, -1 - warp 27, 17, 1, -1 - warp 7, 5, 1, SEAFOAM_ISLANDS_B1F - warp 25, 3, 6, SEAFOAM_ISLANDS_B1F - warp 23, 15, 4, SEAFOAM_ISLANDS_B1F - - db 0 ; signs - - db 2 ; objects - object SPRITE_BOULDER, 18, 10, STAY, BOULDER_MOVEMENT_BYTE_2, 1 ; person - object SPRITE_BOULDER, 26, 7, STAY, BOULDER_MOVEMENT_BYTE_2, 2 ; person - - ; warp-to - warp_to 4, 17, SEAFOAM_ISLANDS_1F_WIDTH - warp_to 5, 17, SEAFOAM_ISLANDS_1F_WIDTH - warp_to 26, 17, SEAFOAM_ISLANDS_1F_WIDTH - warp_to 27, 17, SEAFOAM_ISLANDS_1F_WIDTH - warp_to 7, 5, SEAFOAM_ISLANDS_1F_WIDTH ; SEAFOAM_ISLANDS_B1F - warp_to 25, 3, SEAFOAM_ISLANDS_1F_WIDTH ; SEAFOAM_ISLANDS_B1F - warp_to 23, 15, SEAFOAM_ISLANDS_1F_WIDTH ; SEAFOAM_ISLANDS_B1F diff --git a/data/mapObjects/SeafoamIslandsB1F.asm b/data/mapObjects/SeafoamIslandsB1F.asm deleted file mode 100755 index 426ca0c30..000000000 --- a/data/mapObjects/SeafoamIslandsB1F.asm +++ /dev/null @@ -1,26 +0,0 @@ -SeafoamIslandsB1F_Object: - db $7d ; border block - - db 7 ; warps - warp 4, 2, 0, SEAFOAM_ISLANDS_B2F - warp 7, 5, 4, SEAFOAM_ISLANDS_1F - warp 13, 7, 2, SEAFOAM_ISLANDS_B2F - warp 19, 15, 3, SEAFOAM_ISLANDS_B2F - warp 23, 15, 6, SEAFOAM_ISLANDS_1F - warp 25, 11, 5, SEAFOAM_ISLANDS_B2F - warp 25, 3, 5, SEAFOAM_ISLANDS_1F - - db 0 ; signs - - db 2 ; objects - object SPRITE_BOULDER, 17, 6, STAY, BOULDER_MOVEMENT_BYTE_2, 1 ; person - object SPRITE_BOULDER, 22, 6, STAY, BOULDER_MOVEMENT_BYTE_2, 2 ; person - - ; warp-to - warp_to 4, 2, SEAFOAM_ISLANDS_B1F_WIDTH ; SEAFOAM_ISLANDS_B2F - warp_to 7, 5, SEAFOAM_ISLANDS_B1F_WIDTH ; SEAFOAM_ISLANDS_1F - warp_to 13, 7, SEAFOAM_ISLANDS_B1F_WIDTH ; SEAFOAM_ISLANDS_B2F - warp_to 19, 15, SEAFOAM_ISLANDS_B1F_WIDTH ; SEAFOAM_ISLANDS_B2F - warp_to 23, 15, SEAFOAM_ISLANDS_B1F_WIDTH ; SEAFOAM_ISLANDS_1F - warp_to 25, 11, SEAFOAM_ISLANDS_B1F_WIDTH ; SEAFOAM_ISLANDS_B2F - warp_to 25, 3, SEAFOAM_ISLANDS_B1F_WIDTH ; SEAFOAM_ISLANDS_1F diff --git a/data/mapObjects/SeafoamIslandsB2F.asm b/data/mapObjects/SeafoamIslandsB2F.asm deleted file mode 100755 index 9c1a78981..000000000 --- a/data/mapObjects/SeafoamIslandsB2F.asm +++ /dev/null @@ -1,26 +0,0 @@ -SeafoamIslandsB2F_Object: - db $7d ; border block - - db 7 ; warps - warp 5, 3, 0, SEAFOAM_ISLANDS_B1F - warp 5, 13, 0, SEAFOAM_ISLANDS_B3F - warp 13, 7, 2, SEAFOAM_ISLANDS_B1F - warp 19, 15, 3, SEAFOAM_ISLANDS_B1F - warp 25, 3, 3, SEAFOAM_ISLANDS_B3F - warp 25, 11, 5, SEAFOAM_ISLANDS_B1F - warp 25, 14, 4, SEAFOAM_ISLANDS_B3F - - db 0 ; signs - - db 2 ; objects - object SPRITE_BOULDER, 18, 6, STAY, BOULDER_MOVEMENT_BYTE_2, 1 ; person - object SPRITE_BOULDER, 23, 6, STAY, BOULDER_MOVEMENT_BYTE_2, 2 ; person - - ; warp-to - warp_to 5, 3, SEAFOAM_ISLANDS_B2F_WIDTH ; SEAFOAM_ISLANDS_B1F - warp_to 5, 13, SEAFOAM_ISLANDS_B2F_WIDTH ; SEAFOAM_ISLANDS_B3F - warp_to 13, 7, SEAFOAM_ISLANDS_B2F_WIDTH ; SEAFOAM_ISLANDS_B1F - warp_to 19, 15, SEAFOAM_ISLANDS_B2F_WIDTH ; SEAFOAM_ISLANDS_B1F - warp_to 25, 3, SEAFOAM_ISLANDS_B2F_WIDTH ; SEAFOAM_ISLANDS_B3F - warp_to 25, 11, SEAFOAM_ISLANDS_B2F_WIDTH ; SEAFOAM_ISLANDS_B1F - warp_to 25, 14, SEAFOAM_ISLANDS_B2F_WIDTH ; SEAFOAM_ISLANDS_B3F diff --git a/data/mapObjects/SeafoamIslandsB3F.asm b/data/mapObjects/SeafoamIslandsB3F.asm deleted file mode 100755 index d194e1cd1..000000000 --- a/data/mapObjects/SeafoamIslandsB3F.asm +++ /dev/null @@ -1,30 +0,0 @@ -SeafoamIslandsB3F_Object: - db $7d ; border block - - db 7 ; warps - warp 5, 12, 1, SEAFOAM_ISLANDS_B2F - warp 8, 6, 2, SEAFOAM_ISLANDS_B4F - warp 25, 4, 3, SEAFOAM_ISLANDS_B4F - warp 25, 3, 4, SEAFOAM_ISLANDS_B2F - warp 25, 14, 6, SEAFOAM_ISLANDS_B2F - warp 20, 17, 0, SEAFOAM_ISLANDS_B4F - warp 21, 17, 1, SEAFOAM_ISLANDS_B4F - - db 0 ; signs - - db 6 ; objects - object SPRITE_BOULDER, 5, 14, STAY, BOULDER_MOVEMENT_BYTE_2, 1 ; person - object SPRITE_BOULDER, 3, 15, STAY, BOULDER_MOVEMENT_BYTE_2, 2 ; person - object SPRITE_BOULDER, 8, 14, STAY, BOULDER_MOVEMENT_BYTE_2, 3 ; person - object SPRITE_BOULDER, 9, 14, STAY, BOULDER_MOVEMENT_BYTE_2, 4 ; person - object SPRITE_BOULDER, 18, 6, STAY, NONE, 5 ; person - object SPRITE_BOULDER, 19, 6, STAY, NONE, 6 ; person - - ; warp-to - warp_to 5, 12, SEAFOAM_ISLANDS_B3F_WIDTH ; SEAFOAM_ISLANDS_B2F - warp_to 8, 6, SEAFOAM_ISLANDS_B3F_WIDTH ; SEAFOAM_ISLANDS_B4F - warp_to 25, 4, SEAFOAM_ISLANDS_B3F_WIDTH ; SEAFOAM_ISLANDS_B4F - warp_to 25, 3, SEAFOAM_ISLANDS_B3F_WIDTH ; SEAFOAM_ISLANDS_B2F - warp_to 25, 14, SEAFOAM_ISLANDS_B3F_WIDTH ; SEAFOAM_ISLANDS_B2F - warp_to 20, 17, SEAFOAM_ISLANDS_B3F_WIDTH ; SEAFOAM_ISLANDS_B4F - warp_to 21, 17, SEAFOAM_ISLANDS_B3F_WIDTH ; SEAFOAM_ISLANDS_B4F diff --git a/data/mapObjects/SeafoamIslandsB4F.asm b/data/mapObjects/SeafoamIslandsB4F.asm deleted file mode 100755 index 62d88b0ce..000000000 --- a/data/mapObjects/SeafoamIslandsB4F.asm +++ /dev/null @@ -1,23 +0,0 @@ -SeafoamIslandsB4F_Object: - db $7d ; border block - - db 4 ; warps - warp 20, 17, 5, SEAFOAM_ISLANDS_B3F - warp 21, 17, 6, SEAFOAM_ISLANDS_B3F - warp 11, 7, 1, SEAFOAM_ISLANDS_B3F - warp 25, 4, 2, SEAFOAM_ISLANDS_B3F - - db 2 ; signs - sign 9, 15, 4 ; SeafoamIslands5Text4 - sign 23, 1, 5 ; SeafoamIslands5Text5 - - db 3 ; objects - object SPRITE_BOULDER, 4, 15, STAY, NONE, 1 ; person - object SPRITE_BOULDER, 5, 15, STAY, NONE, 2 ; person - object SPRITE_BIRD, 6, 1, STAY, DOWN, 3, ARTICUNO, 50 - - ; warp-to - warp_to 20, 17, SEAFOAM_ISLANDS_B4F_WIDTH ; SEAFOAM_ISLANDS_B3F - warp_to 21, 17, SEAFOAM_ISLANDS_B4F_WIDTH ; SEAFOAM_ISLANDS_B3F - warp_to 11, 7, SEAFOAM_ISLANDS_B4F_WIDTH ; SEAFOAM_ISLANDS_B3F - warp_to 25, 4, SEAFOAM_ISLANDS_B4F_WIDTH ; SEAFOAM_ISLANDS_B3F diff --git a/data/mapObjects/SilphCo10F.asm b/data/mapObjects/SilphCo10F.asm deleted file mode 100755 index 1c8948d34..000000000 --- a/data/mapObjects/SilphCo10F.asm +++ /dev/null @@ -1,28 +0,0 @@ -SilphCo10F_Object: - db $2e ; border block - - db 6 ; warps - warp 8, 0, 0, SILPH_CO_9F - warp 10, 0, 0, SILPH_CO_11F - warp 12, 0, 0, SILPH_CO_ELEVATOR - warp 9, 11, 3, SILPH_CO_4F - warp 13, 15, 5, SILPH_CO_4F - warp 13, 7, 6, SILPH_CO_4F - - db 0 ; signs - - db 6 ; objects - object SPRITE_ROCKET, 1, 9, STAY, RIGHT, 1, OPP_ROCKET, 39 - object SPRITE_OAK_AIDE, 10, 2, STAY, LEFT, 2, OPP_SCIENTIST, 11 - object SPRITE_ERIKA, 9, 15, WALK, 0, 3 ; person - object SPRITE_BALL, 2, 12, STAY, NONE, 4, TM_26 - object SPRITE_BALL, 4, 14, STAY, NONE, 5, RARE_CANDY - object SPRITE_BALL, 5, 11, STAY, NONE, 6, CARBOS - - ; warp-to - warp_to 8, 0, SILPH_CO_10F_WIDTH ; SILPH_CO_9F - warp_to 10, 0, SILPH_CO_10F_WIDTH ; SILPH_CO_11F - warp_to 12, 0, SILPH_CO_10F_WIDTH ; SILPH_CO_ELEVATOR - warp_to 9, 11, SILPH_CO_10F_WIDTH ; SILPH_CO_4F - warp_to 13, 15, SILPH_CO_10F_WIDTH ; SILPH_CO_4F - warp_to 13, 7, SILPH_CO_10F_WIDTH ; SILPH_CO_4F diff --git a/data/mapObjects/SilphCo11F.asm b/data/mapObjects/SilphCo11F.asm deleted file mode 100755 index ec6331b2d..000000000 --- a/data/mapObjects/SilphCo11F.asm +++ /dev/null @@ -1,24 +0,0 @@ -SilphCo11F_Object: - db $d ; border block - - db 4 ; warps - warp 9, 0, 1, SILPH_CO_10F - warp 13, 0, 0, SILPH_CO_ELEVATOR - warp 5, 5, 9, -1 - warp 3, 2, 3, SILPH_CO_7F - - db 0 ; signs - - db 6 ; objects - object SPRITE_MR_MASTERBALL, 7, 5, STAY, DOWN, 1 ; person - object SPRITE_FOULARD_WOMAN, 10, 5, STAY, DOWN, 2 ; person - object SPRITE_GIOVANNI, 6, 9, STAY, DOWN, 3, OPP_GIOVANNI, 2 - object SPRITE_JAMES, 2, 8, STAY, UP, 4 - object SPRITE_ROCKET, 15, 9, STAY, UP, 5, OPP_ROCKET, 40 - object SPRITE_JESSIE, 3, 8, STAY, UP, 6 - - ; warp-to - warp_to 9, 0, SILPH_CO_11F_WIDTH ; SILPH_CO_10F - warp_to 13, 0, SILPH_CO_11F_WIDTH ; SILPH_CO_ELEVATOR - warp_to 5, 5, SILPH_CO_11F_WIDTH - warp_to 3, 2, SILPH_CO_11F_WIDTH ; SILPH_CO_7F diff --git a/data/mapObjects/SilphCo1F.asm b/data/mapObjects/SilphCo1F.asm deleted file mode 100755 index fc040091f..000000000 --- a/data/mapObjects/SilphCo1F.asm +++ /dev/null @@ -1,21 +0,0 @@ -SilphCo1F_Object: - db $2e ; border block - - db 5 ; warps - warp 10, 17, 5, -1 - warp 11, 17, 5, -1 - warp 26, 0, 0, SILPH_CO_2F - warp 20, 0, 0, SILPH_CO_ELEVATOR - warp 16, 10, 6, SILPH_CO_3F - - db 0 ; signs - - db 1 ; objects - object SPRITE_CABLE_CLUB_WOMAN, 4, 2, STAY, DOWN, 1 ; person - - ; warp-to - warp_to 10, 17, SILPH_CO_1F_WIDTH - warp_to 11, 17, SILPH_CO_1F_WIDTH - warp_to 26, 0, SILPH_CO_1F_WIDTH ; SILPH_CO_2F - warp_to 20, 0, SILPH_CO_1F_WIDTH ; SILPH_CO_ELEVATOR - warp_to 16, 10, SILPH_CO_1F_WIDTH ; SILPH_CO_3F diff --git a/data/mapObjects/SilphCo2F.asm b/data/mapObjects/SilphCo2F.asm deleted file mode 100755 index bc30d78d2..000000000 --- a/data/mapObjects/SilphCo2F.asm +++ /dev/null @@ -1,29 +0,0 @@ -SilphCo2F_Object: - db $2e ; border block - - db 7 ; warps - warp 24, 0, 2, SILPH_CO_1F - warp 26, 0, 0, SILPH_CO_3F - warp 20, 0, 0, SILPH_CO_ELEVATOR - warp 3, 3, 6, SILPH_CO_3F - warp 13, 3, 4, SILPH_CO_8F - warp 27, 15, 5, SILPH_CO_8F - warp 9, 15, 4, SILPH_CO_6F - - db 0 ; signs - - db 5 ; objects - object SPRITE_ERIKA, 10, 1, STAY, UP, 1 ; person - object SPRITE_OAK_AIDE, 5, 12, STAY, DOWN, 2, OPP_SCIENTIST, 2 - object SPRITE_OAK_AIDE, 24, 13, STAY, LEFT, 3, OPP_SCIENTIST, 3 - object SPRITE_ROCKET, 16, 11, STAY, UP, 4, OPP_ROCKET, 23 - object SPRITE_ROCKET, 24, 7, STAY, UP, 5, OPP_ROCKET, 24 - - ; warp-to - warp_to 24, 0, SILPH_CO_2F_WIDTH ; SILPH_CO_1F - warp_to 26, 0, SILPH_CO_2F_WIDTH ; SILPH_CO_3F - warp_to 20, 0, SILPH_CO_2F_WIDTH ; SILPH_CO_ELEVATOR - warp_to 3, 3, SILPH_CO_2F_WIDTH ; SILPH_CO_3F - warp_to 13, 3, SILPH_CO_2F_WIDTH ; SILPH_CO_8F - warp_to 27, 15, SILPH_CO_2F_WIDTH ; SILPH_CO_8F - warp_to 9, 15, SILPH_CO_2F_WIDTH ; SILPH_CO_6F diff --git a/data/mapObjects/SilphCo3F.asm b/data/mapObjects/SilphCo3F.asm deleted file mode 100755 index f45cdf819..000000000 --- a/data/mapObjects/SilphCo3F.asm +++ /dev/null @@ -1,34 +0,0 @@ -SilphCo3F_Object: - db $2e ; border block - - db 10 ; warps - warp 26, 0, 1, SILPH_CO_2F - warp 24, 0, 0, SILPH_CO_4F - warp 20, 0, 0, SILPH_CO_ELEVATOR - warp 23, 11, 9, SILPH_CO_3F - warp 3, 3, 5, SILPH_CO_5F - warp 3, 15, 6, SILPH_CO_5F - warp 27, 3, 3, SILPH_CO_2F - warp 3, 11, 3, SILPH_CO_9F - warp 11, 11, 4, SILPH_CO_7F - warp 27, 15, 3, SILPH_CO_3F - - db 0 ; signs - - db 4 ; objects - object SPRITE_LAPRAS_GIVER, 24, 8, STAY, NONE, 1 ; person - object SPRITE_ROCKET, 20, 7, STAY, LEFT, 2, OPP_ROCKET, 25 - object SPRITE_OAK_AIDE, 7, 9, STAY, DOWN, 3, OPP_SCIENTIST, 4 - object SPRITE_BALL, 8, 5, STAY, NONE, 4, HYPER_POTION - - ; warp-to - warp_to 26, 0, SILPH_CO_3F_WIDTH ; SILPH_CO_2F - warp_to 24, 0, SILPH_CO_3F_WIDTH ; SILPH_CO_4F - warp_to 20, 0, SILPH_CO_3F_WIDTH ; SILPH_CO_ELEVATOR - warp_to 23, 11, SILPH_CO_3F_WIDTH ; SILPH_CO_3F - warp_to 3, 3, SILPH_CO_3F_WIDTH ; SILPH_CO_5F - warp_to 3, 15, SILPH_CO_3F_WIDTH ; SILPH_CO_5F - warp_to 27, 3, SILPH_CO_3F_WIDTH ; SILPH_CO_2F - warp_to 3, 11, SILPH_CO_3F_WIDTH ; SILPH_CO_9F - warp_to 11, 11, SILPH_CO_3F_WIDTH ; SILPH_CO_7F - warp_to 27, 15, SILPH_CO_3F_WIDTH ; SILPH_CO_3F diff --git a/data/mapObjects/SilphCo4F.asm b/data/mapObjects/SilphCo4F.asm deleted file mode 100755 index 3d865bbc7..000000000 --- a/data/mapObjects/SilphCo4F.asm +++ /dev/null @@ -1,31 +0,0 @@ -SilphCo4F_Object: - db $2e ; border block - - db 7 ; warps - warp 24, 0, 1, SILPH_CO_3F - warp 26, 0, 1, SILPH_CO_5F - warp 20, 0, 0, SILPH_CO_ELEVATOR - warp 11, 7, 3, SILPH_CO_10F - warp 17, 3, 3, SILPH_CO_6F - warp 3, 15, 4, SILPH_CO_10F - warp 17, 11, 5, SILPH_CO_10F - - db 0 ; signs - - db 7 ; objects - object SPRITE_LAPRAS_GIVER, 6, 2, STAY, NONE, 1 ; person - object SPRITE_ROCKET, 9, 14, STAY, RIGHT, 2, OPP_ROCKET, 26 - object SPRITE_OAK_AIDE, 14, 6, STAY, LEFT, 3, OPP_SCIENTIST, 5 - object SPRITE_ROCKET, 26, 10, STAY, UP, 4, OPP_ROCKET, 27 - object SPRITE_BALL, 3, 9, STAY, NONE, 5, FULL_HEAL - object SPRITE_BALL, 4, 7, STAY, NONE, 6, MAX_REVIVE - object SPRITE_BALL, 5, 8, STAY, NONE, 7, ESCAPE_ROPE - - ; warp-to - warp_to 24, 0, SILPH_CO_4F_WIDTH ; SILPH_CO_3F - warp_to 26, 0, SILPH_CO_4F_WIDTH ; SILPH_CO_5F - warp_to 20, 0, SILPH_CO_4F_WIDTH ; SILPH_CO_ELEVATOR - warp_to 11, 7, SILPH_CO_4F_WIDTH ; SILPH_CO_10F - warp_to 17, 3, SILPH_CO_4F_WIDTH ; SILPH_CO_6F - warp_to 3, 15, SILPH_CO_4F_WIDTH ; SILPH_CO_10F - warp_to 17, 11, SILPH_CO_4F_WIDTH ; SILPH_CO_10F diff --git a/data/mapObjects/SilphCo5F.asm b/data/mapObjects/SilphCo5F.asm deleted file mode 100755 index c10f17c87..000000000 --- a/data/mapObjects/SilphCo5F.asm +++ /dev/null @@ -1,35 +0,0 @@ -SilphCo5F_Object: - db $2e ; border block - - db 7 ; warps - warp 24, 0, 1, SILPH_CO_6F - warp 26, 0, 1, SILPH_CO_4F - warp 20, 0, 0, SILPH_CO_ELEVATOR - warp 27, 3, 5, SILPH_CO_7F - warp 9, 15, 4, SILPH_CO_9F - warp 11, 5, 4, SILPH_CO_3F - warp 3, 15, 5, SILPH_CO_3F - - db 0 ; signs - - db 11 ; objects - object SPRITE_LAPRAS_GIVER, 13, 9, STAY, NONE, 1 ; person - object SPRITE_ROCKET, 8, 16, STAY, RIGHT, 2, OPP_ROCKET, 28 - object SPRITE_OAK_AIDE, 8, 3, STAY, RIGHT, 3, OPP_SCIENTIST, 6 - object SPRITE_ROCKER, 18, 10, STAY, UP, 4, OPP_JUGGLER, 1 - object SPRITE_ROCKET, 28, 4, STAY, UP, 5, OPP_ROCKET, 29 - object SPRITE_BALL, 2, 13, STAY, NONE, 6, TM_09 - object SPRITE_BALL, 4, 6, STAY, NONE, 7, PROTEIN - object SPRITE_BALL, 21, 16, STAY, NONE, 8, CARD_KEY - object SPRITE_CLIPBOARD, 22, 12, STAY, NONE, 9 ; person - object SPRITE_CLIPBOARD, 25, 10, STAY, NONE, 10 ; person - object SPRITE_CLIPBOARD, 24, 6, STAY, NONE, 11 ; person - - ; warp-to - warp_to 24, 0, SILPH_CO_5F_WIDTH ; SILPH_CO_6F - warp_to 26, 0, SILPH_CO_5F_WIDTH ; SILPH_CO_4F - warp_to 20, 0, SILPH_CO_5F_WIDTH ; SILPH_CO_ELEVATOR - warp_to 27, 3, SILPH_CO_5F_WIDTH ; SILPH_CO_7F - warp_to 9, 15, SILPH_CO_5F_WIDTH ; SILPH_CO_9F - warp_to 11, 5, SILPH_CO_5F_WIDTH ; SILPH_CO_3F - warp_to 3, 15, SILPH_CO_5F_WIDTH ; SILPH_CO_3F diff --git a/data/mapObjects/SilphCo6F.asm b/data/mapObjects/SilphCo6F.asm deleted file mode 100755 index ad2ac32fa..000000000 --- a/data/mapObjects/SilphCo6F.asm +++ /dev/null @@ -1,30 +0,0 @@ -SilphCo6F_Object: - db $2e ; border block - - db 5 ; warps - warp 16, 0, 1, SILPH_CO_7F - warp 14, 0, 0, SILPH_CO_5F - warp 18, 0, 0, SILPH_CO_ELEVATOR - warp 3, 3, 4, SILPH_CO_4F - warp 23, 3, 6, SILPH_CO_2F - - db 0 ; signs - - db 10 ; objects - object SPRITE_LAPRAS_GIVER, 10, 6, STAY, NONE, 1 ; person - object SPRITE_LAPRAS_GIVER, 20, 6, STAY, NONE, 2 ; person - object SPRITE_ERIKA, 21, 6, STAY, DOWN, 3 ; person - object SPRITE_ERIKA, 11, 10, STAY, RIGHT, 4 ; person - object SPRITE_LAPRAS_GIVER, 18, 13, STAY, UP, 5 ; person - object SPRITE_ROCKET, 17, 3, STAY, RIGHT, 6, OPP_ROCKET, 30 - object SPRITE_OAK_AIDE, 7, 8, STAY, DOWN, 7, OPP_SCIENTIST, 7 - object SPRITE_ROCKET, 14, 15, STAY, LEFT, 8, OPP_ROCKET, 31 - object SPRITE_BALL, 3, 12, STAY, NONE, 9, HP_UP - object SPRITE_BALL, 2, 15, STAY, NONE, 10, X_ACCURACY - - ; warp-to - warp_to 16, 0, SILPH_CO_6F_WIDTH ; SILPH_CO_7F - warp_to 14, 0, SILPH_CO_6F_WIDTH ; SILPH_CO_5F - warp_to 18, 0, SILPH_CO_6F_WIDTH ; SILPH_CO_ELEVATOR - warp_to 3, 3, SILPH_CO_6F_WIDTH ; SILPH_CO_4F - warp_to 23, 3, SILPH_CO_6F_WIDTH ; SILPH_CO_2F diff --git a/data/mapObjects/SilphCo7F.asm b/data/mapObjects/SilphCo7F.asm deleted file mode 100755 index 255f4b33b..000000000 --- a/data/mapObjects/SilphCo7F.asm +++ /dev/null @@ -1,33 +0,0 @@ -SilphCo7F_Object: - db $2e ; border block - - db 6 ; warps - warp 16, 0, 1, SILPH_CO_8F - warp 22, 0, 0, SILPH_CO_6F - warp 18, 0, 0, SILPH_CO_ELEVATOR - warp 5, 7, 3, SILPH_CO_11F - warp 5, 3, 8, SILPH_CO_3F - warp 21, 15, 3, SILPH_CO_5F - - db 0 ; signs - - db 11 ; objects - object SPRITE_LAPRAS_GIVER, 1, 5, STAY, NONE, 1 ; person - object SPRITE_LAPRAS_GIVER, 13, 13, STAY, UP, 2 ; person - object SPRITE_LAPRAS_GIVER, 7, 10, STAY, NONE, 3 ; person - object SPRITE_ERIKA, 10, 8, STAY, NONE, 4 ; person - object SPRITE_ROCKET, 13, 1, STAY, DOWN, 5, OPP_ROCKET, 32 - object SPRITE_OAK_AIDE, 2, 13, STAY, DOWN, 6, OPP_SCIENTIST, 8 - object SPRITE_ROCKET, 20, 2, STAY, LEFT, 7, OPP_ROCKET, 33 - object SPRITE_ROCKET, 19, 14, STAY, RIGHT, 8, OPP_ROCKET, 34 - object SPRITE_BLUE, 3, 7, STAY, UP, 9 ; person - object SPRITE_BALL, 1, 9, STAY, NONE, 10, CALCIUM - object SPRITE_BALL, 24, 11, STAY, NONE, 11, TM_03 - - ; warp-to - warp_to 16, 0, SILPH_CO_7F_WIDTH ; SILPH_CO_8F - warp_to 22, 0, SILPH_CO_7F_WIDTH ; SILPH_CO_6F - warp_to 18, 0, SILPH_CO_7F_WIDTH ; SILPH_CO_ELEVATOR - warp_to 5, 7, SILPH_CO_7F_WIDTH ; SILPH_CO_11F - warp_to 5, 3, SILPH_CO_7F_WIDTH ; SILPH_CO_3F - warp_to 21, 15, SILPH_CO_7F_WIDTH ; SILPH_CO_5F diff --git a/data/mapObjects/SilphCo8F.asm b/data/mapObjects/SilphCo8F.asm deleted file mode 100755 index d05c78447..000000000 --- a/data/mapObjects/SilphCo8F.asm +++ /dev/null @@ -1,28 +0,0 @@ -SilphCo8F_Object: - db $2e ; border block - - db 7 ; warps - warp 16, 0, 1, SILPH_CO_9F - warp 14, 0, 0, SILPH_CO_7F - warp 18, 0, 0, SILPH_CO_ELEVATOR - warp 3, 11, 6, SILPH_CO_8F - warp 3, 15, 4, SILPH_CO_2F - warp 11, 5, 5, SILPH_CO_2F - warp 11, 9, 3, SILPH_CO_8F - - db 0 ; signs - - db 4 ; objects - object SPRITE_LAPRAS_GIVER, 4, 2, STAY, NONE, 1 ; person - object SPRITE_ROCKET, 19, 2, STAY, LEFT, 2, OPP_ROCKET, 35 - object SPRITE_OAK_AIDE, 10, 2, STAY, DOWN, 3, OPP_SCIENTIST, 9 - object SPRITE_ROCKET, 12, 15, STAY, RIGHT, 4, OPP_ROCKET, 36 - - ; warp-to - warp_to 16, 0, SILPH_CO_8F_WIDTH ; SILPH_CO_9F - warp_to 14, 0, SILPH_CO_8F_WIDTH ; SILPH_CO_7F - warp_to 18, 0, SILPH_CO_8F_WIDTH ; SILPH_CO_ELEVATOR - warp_to 3, 11, SILPH_CO_8F_WIDTH ; SILPH_CO_8F - warp_to 3, 15, SILPH_CO_8F_WIDTH ; SILPH_CO_2F - warp_to 11, 5, SILPH_CO_8F_WIDTH ; SILPH_CO_2F - warp_to 11, 9, SILPH_CO_8F_WIDTH ; SILPH_CO_8F_WIDTH diff --git a/data/mapObjects/SilphCo9F.asm b/data/mapObjects/SilphCo9F.asm deleted file mode 100755 index 28ef5f108..000000000 --- a/data/mapObjects/SilphCo9F.asm +++ /dev/null @@ -1,24 +0,0 @@ -SilphCo9F_Object: - db $2e ; border block - - db 5 ; warps - warp 14, 0, 0, SILPH_CO_10F - warp 16, 0, 0, SILPH_CO_8F - warp 18, 0, 0, SILPH_CO_ELEVATOR - warp 9, 3, 7, SILPH_CO_3F - warp 17, 15, 4, SILPH_CO_5F - - db 0 ; signs - - db 4 ; objects - object SPRITE_NURSE, 3, 14, STAY, DOWN, 1 ; person - object SPRITE_ROCKET, 2, 4, STAY, UP, 2, OPP_ROCKET, 37 - object SPRITE_OAK_AIDE, 21, 13, STAY, DOWN, 3, OPP_SCIENTIST, 10 - object SPRITE_ROCKET, 13, 16, STAY, UP, 4, OPP_ROCKET, 38 - - ; warp-to - warp_to 14, 0, SILPH_CO_9F_WIDTH ; SILPH_CO_10F - warp_to 16, 0, SILPH_CO_9F_WIDTH ; SILPH_CO_8F - warp_to 18, 0, SILPH_CO_9F_WIDTH ; SILPH_CO_ELEVATOR - warp_to 9, 3, SILPH_CO_9F_WIDTH ; SILPH_CO_3F - warp_to 17, 15, SILPH_CO_9F_WIDTH ; SILPH_CO_5F diff --git a/data/mapObjects/SilphCoElevator.asm b/data/mapObjects/SilphCoElevator.asm deleted file mode 100755 index 9c4b5a792..000000000 --- a/data/mapObjects/SilphCoElevator.asm +++ /dev/null @@ -1,15 +0,0 @@ -SilphCoElevator_Object: - db $f ; border block - - db 2 ; warps - warp 1, 3, 0, 237 - warp 2, 3, 0, 237 - - db 1 ; signs - sign 3, 0, 1 ; SilphCoElevatorText1 - - db 0 ; objects - - ; warp-to - warp_to 1, 3, SILPH_CO_ELEVATOR_WIDTH - warp_to 2, 3, SILPH_CO_ELEVATOR_WIDTH diff --git a/data/mapObjects/TradeCenter.asm b/data/mapObjects/TradeCenter.asm deleted file mode 100644 index e6df80877..000000000 --- a/data/mapObjects/TradeCenter.asm +++ /dev/null @@ -1,9 +0,0 @@ -TradeCenter_Object: - db $e ; border block - - db 0 ; warps - - db 0 ; signs - - db 1 ; objects - object SPRITE_RED, 2, 2, STAY, 0, 1 ; person diff --git a/data/mapObjects/UndergroundPathNorthSouth.asm b/data/mapObjects/UndergroundPathNorthSouth.asm deleted file mode 100755 index 35e21ccaf..000000000 --- a/data/mapObjects/UndergroundPathNorthSouth.asm +++ /dev/null @@ -1,14 +0,0 @@ -UndergroundPathNorthSouth_Object: - db $1 ; border block - - db 2 ; warps - warp 5, 4, 2, UNDERGROUND_PATH_ROUTE_5 - warp 2, 41, 2, UNDERGROUND_PATH_ROUTE_6 - - db 0 ; signs - - db 0 ; objects - - ; warp-to - warp_to 5, 4, UNDERGROUND_PATH_NORTH_SOUTH_WIDTH ; UNDERGROUND_PATH_ROUTE_5 - warp_to 2, 41, UNDERGROUND_PATH_NORTH_SOUTH_WIDTH ; UNDERGROUND_PATH_ROUTE_6 diff --git a/data/mapObjects/UndergroundPathRoute5.asm b/data/mapObjects/UndergroundPathRoute5.asm deleted file mode 100755 index af71ebb46..000000000 --- a/data/mapObjects/UndergroundPathRoute5.asm +++ /dev/null @@ -1,17 +0,0 @@ -UndergroundPathRoute5_Object: - db $a ; border block - - db 3 ; warps - warp 3, 7, 3, -1 - warp 4, 7, 3, -1 - warp 4, 4, 0, UNDERGROUND_PATH_NORTH_SOUTH - - db 0 ; signs - - db 1 ; objects - object SPRITE_LITTLE_GIRL, 2, 3, STAY, NONE, 1 ; person - - ; warp-to - warp_to 3, 7, UNDERGROUND_PATH_ROUTE_5_WIDTH - warp_to 4, 7, UNDERGROUND_PATH_ROUTE_5_WIDTH - warp_to 4, 4, UNDERGROUND_PATH_ROUTE_5_WIDTH ; UNDERGROUND_PATH_NORTH_SOUTH diff --git a/data/mapObjects/UndergroundPathRoute6.asm b/data/mapObjects/UndergroundPathRoute6.asm deleted file mode 100755 index 5a40ade2b..000000000 --- a/data/mapObjects/UndergroundPathRoute6.asm +++ /dev/null @@ -1,17 +0,0 @@ -UndergroundPathRoute6_Object: - db $a ; border block - - db 3 ; warps - warp 3, 7, 3, -1 - warp 4, 7, 3, -1 - warp 4, 4, 1, UNDERGROUND_PATH_NORTH_SOUTH - - db 0 ; signs - - db 1 ; objects - object SPRITE_GIRL, 2, 3, STAY, NONE, 1 ; person - - ; warp-to - warp_to 3, 7, UNDERGROUND_PATH_ROUTE_6_WIDTH - warp_to 4, 7, UNDERGROUND_PATH_ROUTE_6_WIDTH - warp_to 4, 4, UNDERGROUND_PATH_ROUTE_6_WIDTH ; UNDERGROUND_PATH_NORTH_SOUTH diff --git a/data/mapObjects/UndergroundPathRoute7.asm b/data/mapObjects/UndergroundPathRoute7.asm deleted file mode 100755 index 4666e0c95..000000000 --- a/data/mapObjects/UndergroundPathRoute7.asm +++ /dev/null @@ -1,17 +0,0 @@ -UndergroundPathRoute7_Object: - db $a ; border block - - db 3 ; warps - warp 3, 7, 4, -1 - warp 4, 7, 4, -1 - warp 4, 4, 0, UNDERGROUND_PATH_WEST_EAST - - db 0 ; signs - - db 1 ; objects - object SPRITE_FAT_BALD_GUY, 2, 4, STAY, NONE, 1 ; person - - ; warp-to - warp_to 3, 7, UNDERGROUND_PATH_ROUTE_7_WIDTH - warp_to 4, 7, UNDERGROUND_PATH_ROUTE_7_WIDTH - warp_to 4, 4, UNDERGROUND_PATH_ROUTE_7_WIDTH ; UNDERGROUND_PATH_WEST_EAST diff --git a/data/mapObjects/UndergroundPathRoute7Copy.asm b/data/mapObjects/UndergroundPathRoute7Copy.asm deleted file mode 100755 index c020646e6..000000000 --- a/data/mapObjects/UndergroundPathRoute7Copy.asm +++ /dev/null @@ -1,18 +0,0 @@ -UndergroundPathRoute7Copy_Object: - db $a ; border block - - db 3 ; warps - warp 3, 7, 5, -1 - warp 4, 7, 5, -1 - warp 4, 4, 0, UNDERGROUND_PATH_WEST_EAST - - db 0 ; signs - - db 2 ; objects - object SPRITE_GIRL, 3, 2, STAY, NONE, 1 ; person - object SPRITE_FAT_BALD_GUY, 2, 4, STAY, NONE, 2 ; person - - ; warp-to - warp_to 3, 7, UNDERGROUND_PATH_ROUTE_7_COPY_WIDTH - warp_to 4, 7, UNDERGROUND_PATH_ROUTE_7_COPY_WIDTH - warp_to 4, 4, UNDERGROUND_PATH_ROUTE_7_COPY_WIDTH ; UNDERGROUND_PATH_WEST_EAST diff --git a/data/mapObjects/UndergroundPathRoute8.asm b/data/mapObjects/UndergroundPathRoute8.asm deleted file mode 100755 index 8be0d4747..000000000 --- a/data/mapObjects/UndergroundPathRoute8.asm +++ /dev/null @@ -1,17 +0,0 @@ -UndergroundPathRoute8_Object: - db $a ; border block - - db 3 ; warps - warp 3, 7, 4, -1 - warp 4, 7, 4, -1 - warp 4, 4, 1, UNDERGROUND_PATH_WEST_EAST - - db 0 ; signs - - db 1 ; objects - object SPRITE_GIRL, 3, 4, STAY, NONE, 1 ; person - - ; warp-to - warp_to 3, 7, UNDERGROUND_PATH_ROUTE_8_WIDTH - warp_to 4, 7, UNDERGROUND_PATH_ROUTE_8_WIDTH - warp_to 4, 4, UNDERGROUND_PATH_ROUTE_8_WIDTH ; UNDERGROUND_PATH_WEST_EAST diff --git a/data/mapObjects/UndergroundPathWestEast.asm b/data/mapObjects/UndergroundPathWestEast.asm deleted file mode 100755 index fa064aca4..000000000 --- a/data/mapObjects/UndergroundPathWestEast.asm +++ /dev/null @@ -1,14 +0,0 @@ -UndergroundPathWestEast_Object: - db $1 ; border block - - db 2 ; warps - warp 2, 5, 2, UNDERGROUND_PATH_ROUTE_7 - warp 47, 2, 2, UNDERGROUND_PATH_ROUTE_8 - - db 0 ; signs - - db 0 ; objects - - ; warp-to - warp_to 2, 5, UNDERGROUND_PATH_WEST_EAST_WIDTH ; UNDERGROUND_PATH_ROUTE_7 - warp_to 47, 2, UNDERGROUND_PATH_WEST_EAST_WIDTH ; UNDERGROUND_PATH_ROUTE_8 diff --git a/data/mapObjects/VermilionCity.asm b/data/mapObjects/VermilionCity.asm deleted file mode 100755 index 646f126a6..000000000 --- a/data/mapObjects/VermilionCity.asm +++ /dev/null @@ -1,42 +0,0 @@ -VermilionCity_Object: - db $43 ; border block - - db 9 ; warps - warp 11, 3, 0, VERMILION_POKECENTER - warp 9, 13, 0, POKEMON_FAN_CLUB - warp 23, 13, 0, VERMILION_MART - warp 12, 19, 0, VERMILION_GYM - warp 23, 19, 0, VERMILION_PIDGEY_HOUSE - warp 18, 31, 0, VERMILION_DOCK - warp 19, 31, 0, VERMILION_DOCK - warp 15, 13, 0, VERMILION_TRADE_HOUSE - warp 7, 3, 0, VERMILION_OLD_ROD_HOUSE - - db 7 ; signs - sign 27, 3, 8 ; VermilionCityText7 - sign 37, 13, 9 ; VermilionCityText8 - sign 24, 13, 10 ; MartSignText - sign 12, 3, 11 ; PokeCenterSignText - sign 7, 13, 12 ; VermilionCityText11 - sign 7, 19, 13 ; VermilionCityText12 - sign 29, 15, 14 ; VermilionCityText13 - - db 7 ; objects - object SPRITE_LASS, 19, 7, WALK, 2, 1 ; person - object SPRITE_GAMBLER, 14, 6, STAY, NONE, 2 ; person - object SPRITE_SAILOR, 19, 30, STAY, UP, 3 ; person - object SPRITE_GAMBLER, 30, 7, STAY, NONE, 4 ; person - object SPRITE_SLOWBRO, 29, 9, WALK, 1, 5 ; person - object SPRITE_SAILOR, 25, 27, WALK, 2, 6 ; person - object SPRITE_OFFICER_JENNY, 19, 15, STAY, NONE, 7 ; person - - ; warp-to - warp_to 11, 3, VERMILION_CITY_WIDTH ; VERMILION_POKECENTER - warp_to 9, 13, VERMILION_CITY_WIDTH ; POKEMON_FAN_CLUB - warp_to 23, 13, VERMILION_CITY_WIDTH ; VERMILION_MART - warp_to 12, 19, VERMILION_CITY_WIDTH ; VERMILION_GYM - warp_to 23, 19, VERMILION_CITY_WIDTH ; VERMILION_PIDGEY_HOUSE - warp_to 18, 31, VERMILION_CITY_WIDTH ; VERMILION_DOCK - warp_to 19, 31, VERMILION_CITY_WIDTH ; VERMILION_DOCK - warp_to 15, 13, VERMILION_CITY_WIDTH ; VERMILION_TRADE_HOUSE - warp_to 7, 3, VERMILION_CITY_WIDTH ; VERMILION_OLD_ROD_HOUSE diff --git a/data/mapObjects/VermilionDock.asm b/data/mapObjects/VermilionDock.asm deleted file mode 100755 index 6f07554a9..000000000 --- a/data/mapObjects/VermilionDock.asm +++ /dev/null @@ -1,14 +0,0 @@ -VermilionDock_Object: - db $f ; border block - - db 2 ; warps - warp 14, 0, 5, -1 - warp 14, 2, 1, SS_ANNE_1F - - db 0 ; signs - - db 0 ; objects - - ; warp-to - warp_to 14, 0, VERMILION_DOCK_WIDTH - warp_to 14, 2, VERMILION_DOCK_WIDTH ; SS_ANNE_1F diff --git a/data/mapObjects/VermilionGym.asm b/data/mapObjects/VermilionGym.asm deleted file mode 100755 index 4ace83bec..000000000 --- a/data/mapObjects/VermilionGym.asm +++ /dev/null @@ -1,19 +0,0 @@ -VermilionGym_Object: - db $3 ; border block - - db 2 ; warps - warp 4, 17, 3, -1 - warp 5, 17, 3, -1 - - db 0 ; signs - - db 5 ; objects - object SPRITE_ROCKER, 5, 1, STAY, DOWN, 1, OPP_LT_SURGE, 1 - object SPRITE_GENTLEMAN, 9, 6, STAY, LEFT, 2, OPP_GENTLEMAN, 3 - object SPRITE_BLACK_HAIR_BOY_2, 3, 8, STAY, LEFT, 3, OPP_ROCKER, 1 - object SPRITE_SAILOR, 0, 10, STAY, RIGHT, 4, OPP_SAILOR, 8 - object SPRITE_GYM_HELPER, 4, 14, STAY, DOWN, 5 ; person - - ; warp-to - warp_to 4, 17, VERMILION_GYM_WIDTH - warp_to 5, 17, VERMILION_GYM_WIDTH diff --git a/data/mapObjects/VermilionMart.asm b/data/mapObjects/VermilionMart.asm deleted file mode 100755 index 74bcf35ff..000000000 --- a/data/mapObjects/VermilionMart.asm +++ /dev/null @@ -1,17 +0,0 @@ -VermilionMart_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 2, -1 - warp 4, 7, 2, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 1 ; person - object SPRITE_BLACK_HAIR_BOY_1, 5, 6, STAY, NONE, 2 ; person - object SPRITE_LASS, 3, 3, WALK, 2, 3 ; person - - ; warp-to - warp_to 3, 7, VERMILION_MART_WIDTH - warp_to 4, 7, VERMILION_MART_WIDTH diff --git a/data/mapObjects/VermilionOldRodHouse.asm b/data/mapObjects/VermilionOldRodHouse.asm deleted file mode 100755 index f5b4b96a1..000000000 --- a/data/mapObjects/VermilionOldRodHouse.asm +++ /dev/null @@ -1,15 +0,0 @@ -VermilionOldRodHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 8, -1 - warp 3, 7, 8, -1 - - db 0 ; signs - - db 1 ; objects - object SPRITE_FISHER, 2, 4, STAY, RIGHT, 1 ; person - - ; warp-to - warp_to 2, 7, VERMILION_OLD_ROD_HOUSE_WIDTH - warp_to 3, 7, VERMILION_OLD_ROD_HOUSE_WIDTH diff --git a/data/mapObjects/VermilionPidgeyHouse.asm b/data/mapObjects/VermilionPidgeyHouse.asm deleted file mode 100755 index 0e820f86b..000000000 --- a/data/mapObjects/VermilionPidgeyHouse.asm +++ /dev/null @@ -1,17 +0,0 @@ -VermilionPidgeyHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 4, -1 - warp 3, 7, 4, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_BUG_CATCHER, 5, 3, STAY, LEFT, 1 ; person - object SPRITE_BIRD, 3, 5, WALK, 2, 2 ; person - object SPRITE_PAPER_SHEET, 4, 3, STAY, NONE, 3 ; person - - ; warp-to - warp_to 2, 7, VERMILION_PIDGEY_HOUSE_WIDTH - warp_to 3, 7, VERMILION_PIDGEY_HOUSE_WIDTH diff --git a/data/mapObjects/VermilionPokecenter.asm b/data/mapObjects/VermilionPokecenter.asm deleted file mode 100755 index a99bdf289..000000000 --- a/data/mapObjects/VermilionPokecenter.asm +++ /dev/null @@ -1,19 +0,0 @@ -VermilionPokecenter_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 0, -1 - warp 4, 7, 0, -1 - - db 0 ; signs - - db 5 ; objects - object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person - object SPRITE_FISHER, 10, 5, STAY, NONE, 2 ; person - object SPRITE_SAILOR, 5, 4, STAY, NONE, 3 ; person - object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person - object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person - - ; warp-to - warp_to 3, 7, VERMILION_POKECENTER_WIDTH - warp_to 4, 7, VERMILION_POKECENTER_WIDTH diff --git a/data/mapObjects/VermilionTradeHouse.asm b/data/mapObjects/VermilionTradeHouse.asm deleted file mode 100755 index fcf8a8e97..000000000 --- a/data/mapObjects/VermilionTradeHouse.asm +++ /dev/null @@ -1,15 +0,0 @@ -VermilionTradeHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 7, -1 - warp 3, 7, 7, -1 - - db 0 ; signs - - db 1 ; objects - object SPRITE_GENTLEMAN, 3, 5, STAY, UP, 1 ; person - - ; warp-to - warp_to 2, 7, VERMILION_TRADE_HOUSE_WIDTH - warp_to 3, 7, VERMILION_TRADE_HOUSE_WIDTH diff --git a/data/mapObjects/VictoryRoad1F.asm b/data/mapObjects/VictoryRoad1F.asm deleted file mode 100755 index cc0c47cef..000000000 --- a/data/mapObjects/VictoryRoad1F.asm +++ /dev/null @@ -1,23 +0,0 @@ -VictoryRoad1F_Object: - db $7d ; border block - - db 3 ; warps - warp 8, 17, 2, -1 - warp 9, 17, 2, -1 - warp 1, 1, 0, VICTORY_ROAD_2F - - db 0 ; signs - - db 7 ; objects - object SPRITE_LASS, 7, 5, STAY, RIGHT, 1, OPP_COOLTRAINER_F, 5 - object SPRITE_BLACK_HAIR_BOY_1, 3, 2, STAY, DOWN, 2, OPP_COOLTRAINER_M, 5 - object SPRITE_BALL, 11, 0, STAY, NONE, 3, TM_43 - object SPRITE_BALL, 9, 2, STAY, NONE, 4, RARE_CANDY - object SPRITE_BOULDER, 5, 15, STAY, BOULDER_MOVEMENT_BYTE_2, 5 ; person - object SPRITE_BOULDER, 14, 2, STAY, BOULDER_MOVEMENT_BYTE_2, 6 ; person - object SPRITE_BOULDER, 2, 10, STAY, BOULDER_MOVEMENT_BYTE_2, 7 ; person - - ; warp-to - warp_to 8, 17, VICTORY_ROAD_1F_WIDTH - warp_to 9, 17, VICTORY_ROAD_1F_WIDTH - warp_to 1, 1, VICTORY_ROAD_1F_WIDTH ; VICTORY_ROAD_2F diff --git a/data/mapObjects/VictoryRoad2F.asm b/data/mapObjects/VictoryRoad2F.asm deleted file mode 100755 index 55559bca7..000000000 --- a/data/mapObjects/VictoryRoad2F.asm +++ /dev/null @@ -1,37 +0,0 @@ -VictoryRoad2F_Object: - db $7d ; border block - - db 7 ; warps - warp 0, 8, 2, VICTORY_ROAD_1F - warp 29, 7, 3, -1 - warp 29, 8, 3, -1 - warp 23, 7, 0, VICTORY_ROAD_3F - warp 25, 14, 2, VICTORY_ROAD_3F - warp 27, 7, 1, VICTORY_ROAD_3F - warp 1, 1, 3, VICTORY_ROAD_3F - - db 0 ; signs - - db 13 ; objects - object SPRITE_HIKER, 12, 9, STAY, LEFT, 1, OPP_BLACKBELT, 9 - object SPRITE_BLACK_HAIR_BOY_2, 21, 13, STAY, LEFT, 2, OPP_JUGGLER, 2 - object SPRITE_BLACK_HAIR_BOY_1, 19, 8, STAY, DOWN, 3, OPP_TAMER, 5 - object SPRITE_BLACK_HAIR_BOY_2, 4, 2, STAY, DOWN, 4, OPP_POKEMANIAC, 6 - object SPRITE_BLACK_HAIR_BOY_2, 26, 3, STAY, LEFT, 5, OPP_JUGGLER, 5 - object SPRITE_BIRD, 11, 5, STAY, UP, 6, MOLTRES, 50 - object SPRITE_BALL, 27, 5, STAY, NONE, 7, TM_17 - object SPRITE_BALL, 18, 9, STAY, NONE, 8, FULL_HEAL - object SPRITE_BALL, 9, 11, STAY, NONE, 9, TM_05 - object SPRITE_BALL, 11, 0, STAY, NONE, 10, GUARD_SPEC - object SPRITE_BOULDER, 4, 14, STAY, BOULDER_MOVEMENT_BYTE_2, 11 ; person - object SPRITE_BOULDER, 5, 5, STAY, BOULDER_MOVEMENT_BYTE_2, 12 ; person - object SPRITE_BOULDER, 23, 16, STAY, BOULDER_MOVEMENT_BYTE_2, 13 ; person - - ; warp-to - warp_to 0, 8, VICTORY_ROAD_2F_WIDTH ; VICTORY_ROAD_1F - warp_to 29, 7, VICTORY_ROAD_2F_WIDTH - warp_to 29, 8, VICTORY_ROAD_2F_WIDTH - warp_to 23, 7, VICTORY_ROAD_2F_WIDTH ; VICTORY_ROAD_3F - warp_to 25, 14, VICTORY_ROAD_2F_WIDTH ; VICTORY_ROAD_3F - warp_to 27, 7, VICTORY_ROAD_2F_WIDTH ; VICTORY_ROAD_3F - warp_to 1, 1, VICTORY_ROAD_2F_WIDTH ; VICTORY_ROAD_3F diff --git a/data/mapObjects/VictoryRoad3F.asm b/data/mapObjects/VictoryRoad3F.asm deleted file mode 100755 index 2eb42417d..000000000 --- a/data/mapObjects/VictoryRoad3F.asm +++ /dev/null @@ -1,28 +0,0 @@ -VictoryRoad3F_Object: - db $7d ; border block - - db 4 ; warps - warp 23, 7, 3, VICTORY_ROAD_2F - warp 26, 8, 5, VICTORY_ROAD_2F - warp 27, 15, 4, VICTORY_ROAD_2F - warp 2, 0, 6, VICTORY_ROAD_2F - - db 0 ; signs - - db 10 ; objects - object SPRITE_BLACK_HAIR_BOY_1, 28, 5, STAY, LEFT, 1, OPP_COOLTRAINER_M, 2 - object SPRITE_LASS, 7, 13, STAY, RIGHT, 2, OPP_COOLTRAINER_F, 2 - object SPRITE_BLACK_HAIR_BOY_1, 6, 14, STAY, LEFT, 3, OPP_COOLTRAINER_M, 3 - object SPRITE_LASS, 13, 3, STAY, RIGHT, 4, OPP_COOLTRAINER_F, 3 - object SPRITE_BALL, 26, 5, STAY, NONE, 5, MAX_REVIVE - object SPRITE_BALL, 7, 7, STAY, NONE, 6, TM_47 - object SPRITE_BOULDER, 22, 3, STAY, BOULDER_MOVEMENT_BYTE_2, 7 ; person - object SPRITE_BOULDER, 13, 12, STAY, BOULDER_MOVEMENT_BYTE_2, 8 ; person - object SPRITE_BOULDER, 24, 10, STAY, BOULDER_MOVEMENT_BYTE_2, 9 ; person - object SPRITE_BOULDER, 22, 15, STAY, BOULDER_MOVEMENT_BYTE_2, 10 ; person - - ; warp-to - warp_to 23, 7, VICTORY_ROAD_3F_WIDTH ; VICTORY_ROAD_2F - warp_to 26, 8, VICTORY_ROAD_3F_WIDTH ; VICTORY_ROAD_2F - warp_to 27, 15, VICTORY_ROAD_3F_WIDTH ; VICTORY_ROAD_2F - warp_to 2, 0, VICTORY_ROAD_3F_WIDTH ; VICTORY_ROAD_2F diff --git a/data/mapObjects/ViridianCity.asm b/data/mapObjects/ViridianCity.asm deleted file mode 100755 index 9a2a554df..000000000 --- a/data/mapObjects/ViridianCity.asm +++ /dev/null @@ -1,34 +0,0 @@ -ViridianCity_Object: - db $f ; border block - - db 5 ; warps - warp 23, 25, 0, VIRIDIAN_POKECENTER - warp 29, 19, 0, VIRIDIAN_MART - warp 21, 15, 0, VIRIDIAN_SCHOOL_HOUSE - warp 21, 9, 0, VIRIDIAN_NICKNAME_HOUSE - warp 32, 7, 0, VIRIDIAN_GYM - - db 6 ; signs - sign 17, 17, 9 ; ViridianCityText8 - sign 19, 1, 10 ; ViridianCityText9 - sign 21, 29, 11 ; ViridianCityText10 - sign 30, 19, 12 ; MartSignText - sign 24, 25, 13 ; PokeCenterSignText - sign 27, 7, 14 ; ViridianCityText13 - - db 8 ; objects - object SPRITE_BUG_CATCHER, 13, 20, WALK, 0, 1 ; person - object SPRITE_GAMBLER, 30, 8, STAY, NONE, 2 ; person - object SPRITE_BUG_CATCHER, 30, 25, WALK, 0, 3 ; person - object SPRITE_GIRL, 17, 9, STAY, RIGHT, 4 ; person - object SPRITE_LYING_OLD_MAN, 18, 9, STAY, NONE, 5 ; person - object SPRITE_FISHER2, 6, 23, STAY, DOWN, 6 ; person - object SPRITE_GAMBLER, 17, 5, WALK, 2, 7 ; person - object SPRITE_GAMBLER, 18, 9, STAY, NONE, 8 - - ; warp-to - warp_to 23, 25, VIRIDIAN_CITY_WIDTH ; VIRIDIAN_POKECENTER - warp_to 29, 19, VIRIDIAN_CITY_WIDTH ; VIRIDIAN_MART - warp_to 21, 15, VIRIDIAN_CITY_WIDTH ; VIRIDIAN_SCHOOL_HOUSE - warp_to 21, 9, VIRIDIAN_CITY_WIDTH ; VIRIDIAN_NICKNAME_HOUSE - warp_to 32, 7, VIRIDIAN_CITY_WIDTH ; VIRIDIAN_GYM diff --git a/data/mapObjects/ViridianForest.asm b/data/mapObjects/ViridianForest.asm deleted file mode 100755 index 94f74b96c..000000000 --- a/data/mapObjects/ViridianForest.asm +++ /dev/null @@ -1,38 +0,0 @@ -ViridianForest_Object: - db $3 ; border block - - db 6 ; warps - warp 1, 0, 2, VIRIDIAN_FOREST_NORTH_GATE - warp 2, 0, 2, VIRIDIAN_FOREST_NORTH_GATE - warp 15, 47, 1, VIRIDIAN_FOREST_SOUTH_GATE - warp 16, 47, 1, VIRIDIAN_FOREST_SOUTH_GATE - warp 17, 47, 1, VIRIDIAN_FOREST_SOUTH_GATE - warp 18, 47, 1, VIRIDIAN_FOREST_SOUTH_GATE - - db 6 ; signs - sign 24, 40, 11 ; ViridianForestText9 - sign 16, 32, 12 ; ViridianForestText10 - sign 26, 17, 13 ; ViridianForestText11 - sign 4, 24, 14 ; ViridianForestText12 - sign 18, 45, 15 ; ViridianForestText13 - sign 2, 1, 16 ; ViridianForestText14 - - db 10 ; objects - object SPRITE_BUG_CATCHER, 16, 43, STAY, NONE, 1 ; person - object SPRITE_BUG_CATCHER, 30, 33, STAY, LEFT, 2, OPP_BUG_CATCHER, 1 - object SPRITE_BUG_CATCHER, 30, 19, STAY, LEFT, 3, OPP_BUG_CATCHER, 2 - object SPRITE_BUG_CATCHER, 2, 18, STAY, LEFT, 4, OPP_BUG_CATCHER, 3 - object SPRITE_LASS, 2, 41, STAY, NONE, 5, OPP_LASS, 19 - object SPRITE_BUG_CATCHER, 13, 17, STAY, RIGHT, 6, OPP_BUG_CATCHER, 15 - object SPRITE_BALL, 25, 11, STAY, NONE, 7, POTION - object SPRITE_BALL, 12, 29, STAY, NONE, 8, POTION - object SPRITE_BALL, 1, 31, STAY, NONE, 9, POKE_BALL - object SPRITE_BUG_CATCHER, 27, 40, STAY, NONE, 10 ; person - - ; warp-to - warp_to 1, 0, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_NORTH_GATE - warp_to 2, 0, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_NORTH_GATE - warp_to 15, 47, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_SOUTH_GATE - warp_to 16, 47, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_SOUTH_GATE - warp_to 17, 47, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_SOUTH_GATE - warp_to 18, 47, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_SOUTH_GATE diff --git a/data/mapObjects/ViridianForestNorthGate.asm b/data/mapObjects/ViridianForestNorthGate.asm deleted file mode 100755 index 81e7fecee..000000000 --- a/data/mapObjects/ViridianForestNorthGate.asm +++ /dev/null @@ -1,20 +0,0 @@ -ViridianForestNorthGate_Object: - db $a ; border block - - db 4 ; warps - warp 4, 0, 1, -1 - warp 5, 0, 1, -1 - warp 4, 7, 0, VIRIDIAN_FOREST - warp 5, 7, 0, VIRIDIAN_FOREST - - db 0 ; signs - - db 2 ; objects - object SPRITE_BLACK_HAIR_BOY_2, 3, 2, STAY, NONE, 1 ; person - object SPRITE_OLD_PERSON, 2, 5, STAY, NONE, 2 ; person - - ; warp-to - warp_to 4, 0, VIRIDIAN_FOREST_NORTH_GATE_WIDTH - warp_to 5, 0, VIRIDIAN_FOREST_NORTH_GATE_WIDTH - warp_to 4, 7, VIRIDIAN_FOREST_NORTH_GATE_WIDTH ; VIRIDIAN_FOREST - warp_to 5, 7, VIRIDIAN_FOREST_NORTH_GATE_WIDTH ; VIRIDIAN_FOREST diff --git a/data/mapObjects/ViridianForestSouthGate.asm b/data/mapObjects/ViridianForestSouthGate.asm deleted file mode 100755 index 47432513c..000000000 --- a/data/mapObjects/ViridianForestSouthGate.asm +++ /dev/null @@ -1,20 +0,0 @@ -ViridianForestSouthGate_Object: - db $a ; border block - - db 4 ; warps - warp 4, 0, 3, VIRIDIAN_FOREST - warp 5, 0, 3, VIRIDIAN_FOREST - warp 4, 7, 5, -1 - warp 5, 7, 5, -1 - - db 0 ; signs - - db 2 ; objects - object SPRITE_GIRL, 8, 4, STAY, LEFT, 1 ; person - object SPRITE_LITTLE_GIRL, 2, 4, WALK, 1, 2 ; person - - ; warp-to - warp_to 4, 0, VIRIDIAN_FOREST_SOUTH_GATE_WIDTH ; VIRIDIAN_FOREST - warp_to 5, 0, VIRIDIAN_FOREST_SOUTH_GATE_WIDTH ; VIRIDIAN_FOREST - warp_to 4, 7, VIRIDIAN_FOREST_SOUTH_GATE_WIDTH - warp_to 5, 7, VIRIDIAN_FOREST_SOUTH_GATE_WIDTH diff --git a/data/mapObjects/ViridianGym.asm b/data/mapObjects/ViridianGym.asm deleted file mode 100755 index e3fd17bd9..000000000 --- a/data/mapObjects/ViridianGym.asm +++ /dev/null @@ -1,25 +0,0 @@ -ViridianGym_Object: - db $3 ; border block - - db 2 ; warps - warp 16, 17, 4, -1 - warp 17, 17, 4, -1 - - db 0 ; signs - - db 11 ; objects - object SPRITE_GIOVANNI, 2, 1, STAY, DOWN, 1, OPP_GIOVANNI, 3 - object SPRITE_BLACK_HAIR_BOY_1, 12, 7, STAY, DOWN, 2, OPP_COOLTRAINER_M, 9 - object SPRITE_HIKER, 11, 11, STAY, UP, 3, OPP_BLACKBELT, 6 - object SPRITE_ROCKER, 10, 7, STAY, DOWN, 4, OPP_TAMER, 3 - object SPRITE_HIKER, 3, 7, STAY, LEFT, 5, OPP_BLACKBELT, 7 - object SPRITE_BLACK_HAIR_BOY_1, 13, 5, STAY, RIGHT, 6, OPP_COOLTRAINER_M, 10 - object SPRITE_HIKER, 10, 1, STAY, DOWN, 7, OPP_BLACKBELT, 8 - object SPRITE_ROCKER, 2, 16, STAY, RIGHT, 8, OPP_TAMER, 4 - object SPRITE_BLACK_HAIR_BOY_1, 6, 5, STAY, DOWN, 9, OPP_COOLTRAINER_M, 1 - object SPRITE_GYM_HELPER, 16, 15, STAY, DOWN, 10 ; person - object SPRITE_BALL, 16, 9, STAY, NONE, 11, REVIVE - - ; warp-to - warp_to 16, 17, VIRIDIAN_GYM_WIDTH - warp_to 17, 17, VIRIDIAN_GYM_WIDTH diff --git a/data/mapObjects/ViridianMart.asm b/data/mapObjects/ViridianMart.asm deleted file mode 100755 index b3e7fee52..000000000 --- a/data/mapObjects/ViridianMart.asm +++ /dev/null @@ -1,17 +0,0 @@ -ViridianMart_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 1, -1 - warp 4, 7, 1, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 1 ; person - object SPRITE_BUG_CATCHER, 5, 5, WALK, 1, 2 ; person - object SPRITE_BLACK_HAIR_BOY_1, 3, 3, STAY, NONE, 3 ; person - - ; warp-to - warp_to 3, 7, VIRIDIAN_MART_WIDTH - warp_to 4, 7, VIRIDIAN_MART_WIDTH diff --git a/data/mapObjects/ViridianNicknameHouse.asm b/data/mapObjects/ViridianNicknameHouse.asm deleted file mode 100755 index aaf20a913..000000000 --- a/data/mapObjects/ViridianNicknameHouse.asm +++ /dev/null @@ -1,18 +0,0 @@ -ViridianNicknameHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 3, -1 - warp 3, 7, 3, -1 - - db 0 ; signs - - db 4 ; objects - object SPRITE_BALDING_GUY, 5, 3, STAY, NONE, 1 ; person - object SPRITE_LITTLE_GIRL, 1, 4, WALK, 1, 2 ; person - object SPRITE_BIRD, 5, 5, WALK, 2, 3 ; person - object SPRITE_CLIPBOARD, 4, 0, STAY, NONE, 4 ; person - - ; warp-to - warp_to 2, 7, VIRIDIAN_NICKNAME_HOUSE_WIDTH - warp_to 3, 7, VIRIDIAN_NICKNAME_HOUSE_WIDTH diff --git a/data/mapObjects/ViridianPokecenter.asm b/data/mapObjects/ViridianPokecenter.asm deleted file mode 100755 index 70024ede1..000000000 --- a/data/mapObjects/ViridianPokecenter.asm +++ /dev/null @@ -1,19 +0,0 @@ -ViridianPokecenter_Object: - db $0 ; border block - - db 2 ; warps - warp 3, 7, 0, -1 - warp 4, 7, 0, -1 - - db 0 ; signs - - db 5 ; objects - object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person - object SPRITE_GENTLEMAN, 10, 5, WALK, 1, 2 ; person - object SPRITE_BLACK_HAIR_BOY_1, 4, 3, STAY, UP, 3 ; person - object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person - object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person - - ; warp-to - warp_to 3, 7, VIRIDIAN_POKECENTER_WIDTH - warp_to 4, 7, VIRIDIAN_POKECENTER_WIDTH diff --git a/data/mapObjects/ViridianSchoolHouse.asm b/data/mapObjects/ViridianSchoolHouse.asm deleted file mode 100755 index 29b0614c9..000000000 --- a/data/mapObjects/ViridianSchoolHouse.asm +++ /dev/null @@ -1,17 +0,0 @@ -ViridianSchoolHouse_Object: - db $a ; border block - - db 2 ; warps - warp 2, 7, 2, -1 - warp 3, 7, 2, -1 - - db 0 ; signs - - db 3 ; objects - object SPRITE_BRUNETTE_GIRL, 3, 5, STAY, UP, 1 ; person - object SPRITE_LASS, 4, 1, STAY, DOWN, 2 ; person - object SPRITE_LITTLE_GIRL, 4, 5, STAY, UP, 3 ; person - - ; warp-to - warp_to 2, 7, VIRIDIAN_SCHOOL_HOUSE_WIDTH - warp_to 3, 7, VIRIDIAN_SCHOOL_HOUSE_WIDTH diff --git a/data/mapObjects/WardensHouse.asm b/data/mapObjects/WardensHouse.asm deleted file mode 100755 index d8445738b..000000000 --- a/data/mapObjects/WardensHouse.asm +++ /dev/null @@ -1,19 +0,0 @@ -WardensHouse_Object: - db $17 ; border block - - db 2 ; warps - warp 4, 7, 3, -1 - warp 5, 7, 3, -1 - - db 2 ; signs - sign 4, 3, 4 ; FuchsiaHouse2Text4 - sign 5, 3, 5 ; FuchsiaHouse2Text5 - - db 3 ; objects - object SPRITE_WARDEN, 2, 3, STAY, NONE, 1 ; person - object SPRITE_BALL, 8, 3, STAY, NONE, 2, RARE_CANDY - object SPRITE_BOULDER, 8, 4, STAY, BOULDER_MOVEMENT_BYTE_2, 3 ; person - - ; warp-to - warp_to 4, 7, WARDENS_HOUSE_WIDTH - warp_to 5, 7, WARDENS_HOUSE_WIDTH diff --git a/data/map_songs.asm b/data/map_songs.asm deleted file mode 100644 index 63417adec..000000000 --- a/data/map_songs.asm +++ /dev/null @@ -1,250 +0,0 @@ -MapSongBanks: - db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; PALLET_TOWN - db MUSIC_CITIES1, BANK(Music_Cities1) ; VIRIDIAN_CITY - db MUSIC_CITIES1, BANK(Music_Cities1) ; PEWTER_CITY - db MUSIC_CITIES2, BANK(Music_Cities2) ; CERULEAN_CITY - db MUSIC_LAVENDER, BANK(Music_Lavender) ; LAVENDER_TOWN - db MUSIC_VERMILION, BANK(Music_Vermilion) ; VERMILION_CITY - db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_CITY - db MUSIC_CITIES2, BANK(Music_Cities2) ; FUCHSIA_CITY - db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_ISLAND - db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; INDIGO_PLATEAU - db MUSIC_CITIES1, BANK(Music_Cities1) ; SAFFRON_CITY - db MUSIC_CITIES1, BANK(Music_Cities1) ; UNUSED_MAP_0B - db MUSIC_ROUTES1, BANK(Music_Routes1) ; ROUTE_1 - db MUSIC_ROUTES1, BANK(Music_Routes1) ; ROUTE_2 - db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_3 - db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_4 - db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_5 - db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_6 - db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_7 - db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_8 - db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_9 - db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_10 - db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_11 - db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_12 - db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_13 - db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_14 - db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_15 - db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_16 - db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_17 - db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_18 - db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_19 - db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_20 - db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_21 - db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_22 - db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; ROUTE_23 - db MUSIC_ROUTES2, BANK(Music_Routes2) ; ROUTE_24 - db MUSIC_ROUTES2, BANK(Music_Routes2) ; ROUTE_25 - db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; REDS_HOUSE_1F - db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; REDS_HOUSE_2F - db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; BLUES_HOUSE - db MUSIC_OAKS_LAB, BANK(Music_OaksLab) ; OAKS_LAB - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; VIRIDIAN_POKECENTER - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; VIRIDIAN_MART - db MUSIC_CITIES1, BANK(Music_Cities1) ; VIRIDIAN_SCHOOL_HOUSE - db MUSIC_CITIES1, BANK(Music_Cities1) ; VIRIDIAN_NICKNAME_HOUSE - db MUSIC_GYM, BANK(Music_Gym) ; VIRIDIAN_GYM - db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; DIGLETTS_CAVE_ROUTE_2 - db MUSIC_CITIES1, BANK(Music_Cities1) ; VIRIDIAN_FOREST_NORTH_GATE - db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_2_TRADE_HOUSE - db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_2_GATE - db MUSIC_CITIES1, BANK(Music_Cities1) ; VIRIDIAN_FOREST_SOUTH_GATE - db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; VIRIDIAN_FOREST - db MUSIC_CITIES1, BANK(Music_Cities1) ; MUSEUM_1F - db MUSIC_CITIES1, BANK(Music_Cities1) ; MUSEUM_2F - db MUSIC_GYM, BANK(Music_Gym) ; PEWTER_GYM - db MUSIC_CITIES1, BANK(Music_Cities1) ; PEWTER_NIDORAN_HOUSE - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; PEWTER_MART - db MUSIC_CITIES1, BANK(Music_Cities1) ; PEWTER_SPEECH_HOUSE - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; PEWTER_POKECENTER - db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; MT_MOON_1F - db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; MT_MOON_B1F - db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; MT_MOON_B2F - db MUSIC_CITIES2, BANK(Music_Cities2) ; CERULEAN_TRASHED_HOUSE - db MUSIC_CITIES2, BANK(Music_Cities2) ; CERULEAN_TRADE_HOUSE - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CERULEAN_POKECENTER - db MUSIC_GYM, BANK(Music_Gym) ; CERULEAN_GYM - db MUSIC_CITIES2, BANK(Music_Cities2) ; BIKE_SHOP - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CERULEAN_MART - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; MT_MOON_POKECENTER - db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; CERULEAN_TRASHED_HOUSE_COPY - db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_5_GATE - db MUSIC_CITIES1, BANK(Music_Cities1) ; UNDERGROUND_PATH_ROUTE_5 - db MUSIC_CITIES1, BANK(Music_Cities1) ; DAYCARE - db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_6_GATE - db MUSIC_CITIES1, BANK(Music_Cities1) ; UNDERGROUND_PATH_ROUTE_6 - db MUSIC_VERMILION, BANK(Music_Vermilion) ; UNDERGROUND_PATH_ROUTE_6_COPY - db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_7_GATE - db MUSIC_CITIES1, BANK(Music_Cities1) ; UNDERGROUND_PATH_ROUTE_7 - db MUSIC_CELADON, BANK(Music_Celadon) ; UNDERGROUND_PATH_ROUTE_7_COPY - db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_8_GATE - db MUSIC_CITIES1, BANK(Music_Cities1) ; UNDERGROUND_PATH_ROUTE_8 - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; ROCK_TUNNEL_POKECENTER - db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; ROCK_TUNNEL_1F - db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; POWER_PLANT - db MUSIC_VERMILION, BANK(Music_Vermilion) ; ROUTE_11_GATE_1F - db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; DIGLETTS_CAVE_ROUTE_11 - db MUSIC_VERMILION, BANK(Music_Vermilion) ; ROUTE_11_GATE_2F - db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_12_GATE_1F - db MUSIC_CITIES2, BANK(Music_Cities2) ; BILLS_HOUSE - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; VERMILION_POKECENTER - db MUSIC_VERMILION, BANK(Music_Vermilion) ; POKEMON_FAN_CLUB - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; VERMILION_MART - db MUSIC_GYM, BANK(Music_Gym) ; VERMILION_GYM - db MUSIC_VERMILION, BANK(Music_Vermilion) ; VERMILION_PIDGEY_HOUSE - db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; VERMILION_DOCK - db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_1F - db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_2F - db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_3F - db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_B1F - db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_BOW - db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_KITCHEN - db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_CAPTAINS_ROOM - db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_1F_ROOMS - db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_2F_ROOMS - db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_B1F_ROOMS - db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; UNUSED_MAP_69 - db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; UNUSED_MAP_6A - db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; UNUSED_MAP_6B - db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; VICTORY_ROAD_1F - db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; UNUSED_MAP_6D - db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; UNUSED_MAP_6E - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_6F - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_70 - db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; LANCES_ROOM - db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; UNUSED_MAP_72 - db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; UNUSED_MAP_73 - db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; UNUSED_MAP_74 - db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; UNUSED_MAP_75 - db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; HALL_OF_FAME - db MUSIC_ROUTES1, BANK(Music_Routes1) ; UNDERGROUND_PATH_NORTH_SOUTH - db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; CHAMPIONS_ROOM - db MUSIC_ROUTES1, BANK(Music_Routes1) ; UNDERGROUND_PATH_WEST_EAST - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_1F - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_2F - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_3F - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_4F - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_ROOF - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_ELEVATOR - db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_MANSION_1F - db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_MANSION_2F - db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_MANSION_3F - db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_MANSION_ROOF - db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_MANSION_ROOF_HOUSE - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_POKECENTER - db MUSIC_GYM, BANK(Music_Gym) ; CELADON_GYM - db MUSIC_GAME_CORNER, BANK(Music_GameCorner) ; GAME_CORNER - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_5F - db MUSIC_CELADON, BANK(Music_Celadon) ; GAME_CORNER_PRIZE_ROOM - db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_DINER - db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_CHIEF_HOUSE - db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_HOTEL - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; LAVENDER_POKECENTER - db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_1F - db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_2F - db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_3F - db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_4F - db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_5F - db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_6F - db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_7F - db MUSIC_LAVENDER, BANK(Music_Lavender) ; MR_FUJIS_HOUSE - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; LAVENDER_MART - db MUSIC_LAVENDER, BANK(Music_Lavender) ; LAVENDER_CUBONE_HOUSE - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; FUCHSIA_MART - db MUSIC_CITIES2, BANK(Music_Cities2) ; FUCHSIA_BILLS_GRANDPAS_HOUSE - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; FUCHSIA_POKECENTER - db MUSIC_CITIES2, BANK(Music_Cities2) ; WARDENS_HOUSE - db MUSIC_CITIES2, BANK(Music_Cities2) ; SAFARI_ZONE_GATE - db MUSIC_GYM, BANK(Music_Gym) ; FUCHSIA_GYM - db MUSIC_CITIES2, BANK(Music_Cities2) ; FUCHSIA_MEETING_ROOM - db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SEAFOAM_ISLANDS_B1F - db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SEAFOAM_ISLANDS_B2F - db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SEAFOAM_ISLANDS_B3F - db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SEAFOAM_ISLANDS_B4F - db MUSIC_CITIES2, BANK(Music_Cities2) ; VERMILION_OLD_ROD_HOUSE - db MUSIC_CITIES2, BANK(Music_Cities2) ; FUCHSIA_GOOD_ROD_HOUSE - db MUSIC_CINNABAR_MANSION, BANK(Music_CinnabarMansion) ; POKEMON_MANSION_1F - db MUSIC_GYM, BANK(Music_Gym) ; CINNABAR_GYM - db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_LAB - db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_LAB_TRADE_ROOM - db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_LAB_METRONOME_ROOM - db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_LAB_FOSSIL_ROOM - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CINNABAR_POKECENTER - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CINNABAR_MART - db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_MART_COPY - db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; INDIGO_PLATEAU_LOBBY - db MUSIC_CITIES1, BANK(Music_Cities1) ; COPYCATS_HOUSE_1F - db MUSIC_CITIES1, BANK(Music_Cities1) ; COPYCATS_HOUSE_2F - db MUSIC_CITIES1, BANK(Music_Cities1) ; FIGHTING_DOJO - db MUSIC_GYM, BANK(Music_Gym) ; SAFFRON_GYM - db MUSIC_CITIES1, BANK(Music_Cities1) ; SAFFRON_PIDGEY_HOUSE - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; SAFFRON_MART - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_1F - db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; SAFFRON_POKECENTER - db MUSIC_CITIES1, BANK(Music_Cities1) ; MR_PSYCHICS_HOUSE - db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_15_GATE_1F - db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_15_GATE_2F - db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_16_GATE_1F - db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_16_GATE_2F - db MUSIC_CELADON, BANK(Music_Celadon) ; ROUTE_16_FLY_HOUSE - db MUSIC_CELADON, BANK(Music_Celadon) ; ROUTE_12_SUPER_ROD_HOUSE - db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_18_GATE_1F - db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_18_GATE_2F - db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SEAFOAM_ISLANDS_1F - db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; ROUTE_22_GATE - db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; VICTORY_ROAD_2F - db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_12_GATE_2F - db MUSIC_VERMILION, BANK(Music_Vermilion) ; VERMILION_TRADE_HOUSE - db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; DIGLETTS_CAVE - db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; VICTORY_ROAD_3F - db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; ROCKET_HIDEOUT_B1F - db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; ROCKET_HIDEOUT_B2F - db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; ROCKET_HIDEOUT_B3F - db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; ROCKET_HIDEOUT_B4F - db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; ROCKET_HIDEOUT_ELEVATOR - db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; UNUSED_MAP_CC - db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; UNUSED_MAP_CD - db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; UNUSED_MAP_CE - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_2F - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_3F - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_4F - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_5F - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_6F - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_7F - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_8F - db MUSIC_CINNABAR_MANSION, BANK(Music_CinnabarMansion) ; POKEMON_MANSION_2F - db MUSIC_CINNABAR_MANSION, BANK(Music_CinnabarMansion) ; POKEMON_MANSION_3F - db MUSIC_CINNABAR_MANSION, BANK(Music_CinnabarMansion) ; POKEMON_MANSION_B1F - db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_EAST - db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_NORTH - db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_WEST - db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_CENTER - db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_CENTER_REST_HOUSE - db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_SECRET_HOUSE - db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_WEST_REST_HOUSE - db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_EAST_REST_HOUSE - db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_NORTH_REST_HOUSE - db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; CERULEAN_CAVE_2F - db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; CERULEAN_CAVE_B1F - db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; CERULEAN_CAVE_1F - db MUSIC_CITIES2, BANK(Music_Cities2) ; NAME_RATERS_HOUSE - db MUSIC_CITIES1, BANK(Music_Cities1) ; CERULEAN_BADGE_HOUSE - db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; UNUSED_MAP_E7 - db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; ROCK_TUNNEL_B1F - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_9F - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_10F - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_11F - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_ELEVATOR - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_ED - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_EE - db MUSIC_CELADON, BANK(Music_Celadon) ; TRADE_CENTER - db MUSIC_CELADON, BANK(Music_Celadon) ; COLOSSEUM - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_F1 - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_F2 - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_F3 - db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_F4 - db MUSIC_GYM, BANK(Music_Gym) ; LORELEIS_ROOM - db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; BRUNOS_ROOM - db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; AGATHAS_ROOM - db MUSIC_ROUTES3, BANK(Music_Routes3) ; BEACH_HOUSE diff --git a/data/maps/badge_maps.asm b/data/maps/badge_maps.asm new file mode 100644 index 000000000..6b68be023 --- /dev/null +++ b/data/maps/badge_maps.asm @@ -0,0 +1,10 @@ +MapBadgeFlags: + db PEWTER_GYM, 1 << BIT_BOULDERBADGE + db CERULEAN_GYM, 1 << BIT_CASCADEBADGE + db VERMILION_GYM, 1 << BIT_THUNDERBADGE + db CELADON_GYM, 1 << BIT_RAINBOWBADGE + db FUCHSIA_GYM, 1 << BIT_SOULBADGE + db SAFFRON_GYM, 1 << BIT_MARSHBADGE + db CINNABAR_GYM, 1 << BIT_VOLCANOBADGE + db VIRIDIAN_GYM, 1 << BIT_EARTHBADGE + db -1 ; end diff --git a/data/maps/dungeon_maps.asm b/data/maps/dungeon_maps.asm new file mode 100644 index 000000000..d647923cd --- /dev/null +++ b/data/maps/dungeon_maps.asm @@ -0,0 +1,27 @@ +; GetBattleTransitionID_IsDungeonMap fails to recognize +; VICTORY_ROAD_2F, VICTORY_ROAD_3F, all ROCKET_HIDEOUT maps, +; POKEMON_MANSION_1F, SEAFOAM_ISLANDS_[B1F-B4F], POWER_PLANT, +; DIGLETTS_CAVE, and SILPH_CO_[9-11]F as dungeon maps + +; GetBattleTransitionID_IsDungeonMap checks if wCurMap +; is equal to one of these maps +DungeonMaps1: + db VIRIDIAN_FOREST + db ROCK_TUNNEL_1F + db SEAFOAM_ISLANDS_1F + db ROCK_TUNNEL_B1F + db -1 ; end + +; GetBattleTransitionID_IsDungeonMap checks if wCurMap +; is in between or equal to each pair of maps +DungeonMaps2: + ; all MT_MOON maps + db MT_MOON_1F, MT_MOON_B2F + ; all SS_ANNE maps, VICTORY_ROAD_1F, LANCES_ROOM, and HALL_OF_FAME + db SS_ANNE_1F, HALL_OF_FAME + ; all POKEMON_TOWER maps and Lavender Town buildings + db LAVENDER_POKECENTER, LAVENDER_CUBONE_HOUSE + ; SILPH_CO_[2-8]F, POKEMON_MANSION[2F-B1F], SAFARI_ZONE, and + ; CERULEAN_CAVE maps, except for SILPH_CO_1F + db SILPH_CO_2F, CERULEAN_CAVE_1F + db -1 ; end diff --git a/data/maps/force_bike_surf.asm b/data/maps/force_bike_surf.asm new file mode 100755 index 000000000..74eba3259 --- /dev/null +++ b/data/maps/force_bike_surf.asm @@ -0,0 +1,15 @@ +force_bike_surf: MACRO + db \1, \3, \2 +ENDM + +ForcedBikeOrSurfMaps: + ; map id, x, y + force_bike_surf ROUTE_16, 17, 10 + force_bike_surf ROUTE_16, 17, 11 + force_bike_surf ROUTE_18, 33, 8 + force_bike_surf ROUTE_18, 33, 9 + force_bike_surf SEAFOAM_ISLANDS_B3F, 18, 7 + force_bike_surf SEAFOAM_ISLANDS_B3F, 19, 7 + force_bike_surf SEAFOAM_ISLANDS_B4F, 4, 14 + force_bike_surf SEAFOAM_ISLANDS_B4F, 5, 14 + db -1 ; end diff --git a/data/maps/headers/AgathasRoom.asm b/data/maps/headers/AgathasRoom.asm new file mode 100755 index 000000000..d04e0cfd0 --- /dev/null +++ b/data/maps/headers/AgathasRoom.asm @@ -0,0 +1,3 @@ + + map_header AgathasRoom, AGATHAS_ROOM, CEMETERY, 0 + end_map_header diff --git a/data/mapHeaders/BeachHouse.asm b/data/maps/headers/BeachHouse.asm similarity index 100% rename from data/mapHeaders/BeachHouse.asm rename to data/maps/headers/BeachHouse.asm diff --git a/data/maps/headers/BikeShop.asm b/data/maps/headers/BikeShop.asm new file mode 100755 index 000000000..b4b520e24 --- /dev/null +++ b/data/maps/headers/BikeShop.asm @@ -0,0 +1,3 @@ + + map_header BikeShop, BIKE_SHOP, CLUB, 0 + end_map_header diff --git a/data/maps/headers/BillsHouse.asm b/data/maps/headers/BillsHouse.asm new file mode 100755 index 000000000..6063175d1 --- /dev/null +++ b/data/maps/headers/BillsHouse.asm @@ -0,0 +1,3 @@ + + map_header BillsHouse, BILLS_HOUSE, INTERIOR, 0 + end_map_header diff --git a/data/maps/headers/BluesHouse.asm b/data/maps/headers/BluesHouse.asm new file mode 100755 index 000000000..33cee2544 --- /dev/null +++ b/data/maps/headers/BluesHouse.asm @@ -0,0 +1,3 @@ + + map_header BluesHouse, BLUES_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/BrunosRoom.asm b/data/maps/headers/BrunosRoom.asm new file mode 100755 index 000000000..a0b2d4fd2 --- /dev/null +++ b/data/maps/headers/BrunosRoom.asm @@ -0,0 +1,3 @@ + + map_header BrunosRoom, BRUNOS_ROOM, GYM, 0 + end_map_header diff --git a/data/maps/headers/CeladonChiefHouse.asm b/data/maps/headers/CeladonChiefHouse.asm new file mode 100755 index 000000000..34f17273e --- /dev/null +++ b/data/maps/headers/CeladonChiefHouse.asm @@ -0,0 +1,3 @@ + + map_header CeladonChiefHouse, CELADON_CHIEF_HOUSE, MANSION, 0 + end_map_header diff --git a/data/maps/headers/CeladonCity.asm b/data/maps/headers/CeladonCity.asm new file mode 100755 index 000000000..6faa6f481 --- /dev/null +++ b/data/maps/headers/CeladonCity.asm @@ -0,0 +1,5 @@ + + map_header CeladonCity, CELADON_CITY, OVERWORLD, WEST | EAST + connection west, Route16, ROUTE_16, 4 + connection east, Route7, ROUTE_7, 4 + end_map_header diff --git a/data/maps/headers/CeladonDiner.asm b/data/maps/headers/CeladonDiner.asm new file mode 100755 index 000000000..b18d96331 --- /dev/null +++ b/data/maps/headers/CeladonDiner.asm @@ -0,0 +1,3 @@ + + map_header CeladonDiner, CELADON_DINER, LOBBY, 0 + end_map_header diff --git a/data/maps/headers/CeladonGym.asm b/data/maps/headers/CeladonGym.asm new file mode 100755 index 000000000..2302c65a8 --- /dev/null +++ b/data/maps/headers/CeladonGym.asm @@ -0,0 +1,3 @@ + + map_header CeladonGym, CELADON_GYM, GYM, 0 + end_map_header diff --git a/data/maps/headers/CeladonHotel.asm b/data/maps/headers/CeladonHotel.asm new file mode 100755 index 000000000..2339c14d9 --- /dev/null +++ b/data/maps/headers/CeladonHotel.asm @@ -0,0 +1,3 @@ + + map_header CeladonHotel, CELADON_HOTEL, POKECENTER, 0 + end_map_header diff --git a/data/maps/headers/CeladonMansion1F.asm b/data/maps/headers/CeladonMansion1F.asm new file mode 100755 index 000000000..459700281 --- /dev/null +++ b/data/maps/headers/CeladonMansion1F.asm @@ -0,0 +1,3 @@ + + map_header CeladonMansion1F, CELADON_MANSION_1F, MANSION, 0 + end_map_header diff --git a/data/maps/headers/CeladonMansion2F.asm b/data/maps/headers/CeladonMansion2F.asm new file mode 100755 index 000000000..d5e3e77b7 --- /dev/null +++ b/data/maps/headers/CeladonMansion2F.asm @@ -0,0 +1,3 @@ + + map_header CeladonMansion2F, CELADON_MANSION_2F, MANSION, 0 + end_map_header diff --git a/data/maps/headers/CeladonMansion3F.asm b/data/maps/headers/CeladonMansion3F.asm new file mode 100755 index 000000000..7566caad4 --- /dev/null +++ b/data/maps/headers/CeladonMansion3F.asm @@ -0,0 +1,3 @@ + + map_header CeladonMansion3F, CELADON_MANSION_3F, MANSION, 0 + end_map_header diff --git a/data/maps/headers/CeladonMansionRoof.asm b/data/maps/headers/CeladonMansionRoof.asm new file mode 100755 index 000000000..9cbae6f62 --- /dev/null +++ b/data/maps/headers/CeladonMansionRoof.asm @@ -0,0 +1,3 @@ + + map_header CeladonMansionRoof, CELADON_MANSION_ROOF, MANSION, 0 + end_map_header diff --git a/data/maps/headers/CeladonMansionRoofHouse.asm b/data/maps/headers/CeladonMansionRoofHouse.asm new file mode 100755 index 000000000..cb80fac86 --- /dev/null +++ b/data/maps/headers/CeladonMansionRoofHouse.asm @@ -0,0 +1,3 @@ + + map_header CeladonMansionRoofHouse, CELADON_MANSION_ROOF_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/CeladonMart1F.asm b/data/maps/headers/CeladonMart1F.asm new file mode 100755 index 000000000..30bd9ba96 --- /dev/null +++ b/data/maps/headers/CeladonMart1F.asm @@ -0,0 +1,3 @@ + + map_header CeladonMart1F, CELADON_MART_1F, LOBBY, 0 + end_map_header diff --git a/data/maps/headers/CeladonMart2F.asm b/data/maps/headers/CeladonMart2F.asm new file mode 100755 index 000000000..d78dfe287 --- /dev/null +++ b/data/maps/headers/CeladonMart2F.asm @@ -0,0 +1,3 @@ + + map_header CeladonMart2F, CELADON_MART_2F, LOBBY, 0 + end_map_header diff --git a/data/maps/headers/CeladonMart3F.asm b/data/maps/headers/CeladonMart3F.asm new file mode 100755 index 000000000..ad415eee5 --- /dev/null +++ b/data/maps/headers/CeladonMart3F.asm @@ -0,0 +1,3 @@ + + map_header CeladonMart3F, CELADON_MART_3F, LOBBY, 0 + end_map_header diff --git a/data/maps/headers/CeladonMart4F.asm b/data/maps/headers/CeladonMart4F.asm new file mode 100755 index 000000000..b9ce5b34d --- /dev/null +++ b/data/maps/headers/CeladonMart4F.asm @@ -0,0 +1,3 @@ + + map_header CeladonMart4F, CELADON_MART_4F, LOBBY, 0 + end_map_header diff --git a/data/maps/headers/CeladonMart5F.asm b/data/maps/headers/CeladonMart5F.asm new file mode 100755 index 000000000..04d65b2b6 --- /dev/null +++ b/data/maps/headers/CeladonMart5F.asm @@ -0,0 +1,3 @@ + + map_header CeladonMart5F, CELADON_MART_5F, LOBBY, 0 + end_map_header diff --git a/data/maps/headers/CeladonMartElevator.asm b/data/maps/headers/CeladonMartElevator.asm new file mode 100755 index 000000000..2a98ccb0b --- /dev/null +++ b/data/maps/headers/CeladonMartElevator.asm @@ -0,0 +1,3 @@ + + map_header CeladonMartElevator, CELADON_MART_ELEVATOR, LOBBY, 0 + end_map_header diff --git a/data/maps/headers/CeladonMartRoof.asm b/data/maps/headers/CeladonMartRoof.asm new file mode 100755 index 000000000..823ff25f1 --- /dev/null +++ b/data/maps/headers/CeladonMartRoof.asm @@ -0,0 +1,3 @@ + + map_header CeladonMartRoof, CELADON_MART_ROOF, LOBBY, 0 + end_map_header diff --git a/data/maps/headers/CeladonPokecenter.asm b/data/maps/headers/CeladonPokecenter.asm new file mode 100755 index 000000000..378a41ece --- /dev/null +++ b/data/maps/headers/CeladonPokecenter.asm @@ -0,0 +1,3 @@ + + map_header CeladonPokecenter, CELADON_POKECENTER, POKECENTER, 0 + end_map_header diff --git a/data/maps/headers/CeruleanBadgeHouse.asm b/data/maps/headers/CeruleanBadgeHouse.asm new file mode 100755 index 000000000..47a97b141 --- /dev/null +++ b/data/maps/headers/CeruleanBadgeHouse.asm @@ -0,0 +1,3 @@ + + map_header CeruleanBadgeHouse, CERULEAN_BADGE_HOUSE, SHIP, 0 + end_map_header diff --git a/data/maps/headers/CeruleanCave1F.asm b/data/maps/headers/CeruleanCave1F.asm new file mode 100755 index 000000000..7c80bbeb2 --- /dev/null +++ b/data/maps/headers/CeruleanCave1F.asm @@ -0,0 +1,3 @@ + + map_header CeruleanCave1F, CERULEAN_CAVE_1F, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/CeruleanCave2F.asm b/data/maps/headers/CeruleanCave2F.asm new file mode 100755 index 000000000..353e265b9 --- /dev/null +++ b/data/maps/headers/CeruleanCave2F.asm @@ -0,0 +1,3 @@ + + map_header CeruleanCave2F, CERULEAN_CAVE_2F, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/CeruleanCaveB1F.asm b/data/maps/headers/CeruleanCaveB1F.asm new file mode 100755 index 000000000..d759aa6b7 --- /dev/null +++ b/data/maps/headers/CeruleanCaveB1F.asm @@ -0,0 +1,3 @@ + + map_header CeruleanCaveB1F, CERULEAN_CAVE_B1F, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/CeruleanCity.asm b/data/maps/headers/CeruleanCity.asm new file mode 100755 index 000000000..c925713ca --- /dev/null +++ b/data/maps/headers/CeruleanCity.asm @@ -0,0 +1,7 @@ + + map_header CeruleanCity, CERULEAN_CITY, OVERWORLD, NORTH | SOUTH | WEST | EAST + connection north, Route24, ROUTE_24, 5 + connection south, Route5, ROUTE_5, 5 + connection west, Route4, ROUTE_4, 4 + connection east, Route9, ROUTE_9, 4 + end_map_header diff --git a/data/maps/headers/CeruleanGym.asm b/data/maps/headers/CeruleanGym.asm new file mode 100755 index 000000000..b1010ac3d --- /dev/null +++ b/data/maps/headers/CeruleanGym.asm @@ -0,0 +1,3 @@ + + map_header CeruleanGym, CERULEAN_GYM, GYM, 0 + end_map_header diff --git a/data/maps/headers/CeruleanMart.asm b/data/maps/headers/CeruleanMart.asm new file mode 100755 index 000000000..2ee316662 --- /dev/null +++ b/data/maps/headers/CeruleanMart.asm @@ -0,0 +1,3 @@ + + map_header CeruleanMart, CERULEAN_MART, MART, 0 + end_map_header diff --git a/data/maps/headers/CeruleanPokecenter.asm b/data/maps/headers/CeruleanPokecenter.asm new file mode 100755 index 000000000..b79e7aff2 --- /dev/null +++ b/data/maps/headers/CeruleanPokecenter.asm @@ -0,0 +1,3 @@ + + map_header CeruleanPokecenter, CERULEAN_POKECENTER, POKECENTER, 0 + end_map_header diff --git a/data/maps/headers/CeruleanTradeHouse.asm b/data/maps/headers/CeruleanTradeHouse.asm new file mode 100755 index 000000000..20970b775 --- /dev/null +++ b/data/maps/headers/CeruleanTradeHouse.asm @@ -0,0 +1,3 @@ + + map_header CeruleanTradeHouse, CERULEAN_TRADE_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/CeruleanTrashedHouse.asm b/data/maps/headers/CeruleanTrashedHouse.asm new file mode 100755 index 000000000..192a41954 --- /dev/null +++ b/data/maps/headers/CeruleanTrashedHouse.asm @@ -0,0 +1,3 @@ + + map_header CeruleanTrashedHouse, CERULEAN_TRASHED_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/ChampionsRoom.asm b/data/maps/headers/ChampionsRoom.asm new file mode 100755 index 000000000..aadc70a6d --- /dev/null +++ b/data/maps/headers/ChampionsRoom.asm @@ -0,0 +1,3 @@ + + map_header ChampionsRoom, CHAMPIONS_ROOM, GYM, $0 + end_map_header diff --git a/data/maps/headers/CinnabarGym.asm b/data/maps/headers/CinnabarGym.asm new file mode 100755 index 000000000..cc6dc1d7d --- /dev/null +++ b/data/maps/headers/CinnabarGym.asm @@ -0,0 +1,3 @@ + + map_header CinnabarGym, CINNABAR_GYM, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/CinnabarIsland.asm b/data/maps/headers/CinnabarIsland.asm new file mode 100755 index 000000000..a94498be8 --- /dev/null +++ b/data/maps/headers/CinnabarIsland.asm @@ -0,0 +1,5 @@ + + map_header CinnabarIsland, CINNABAR_ISLAND, OVERWORLD, NORTH | EAST + connection north, Route21, ROUTE_21, 0 + connection east, Route20, ROUTE_20, 0 + end_map_header diff --git a/data/maps/headers/CinnabarLab.asm b/data/maps/headers/CinnabarLab.asm new file mode 100755 index 000000000..e8081e75a --- /dev/null +++ b/data/maps/headers/CinnabarLab.asm @@ -0,0 +1,3 @@ + + map_header CinnabarLab, CINNABAR_LAB, LAB, 0 + end_map_header diff --git a/data/maps/headers/CinnabarLabFossilRoom.asm b/data/maps/headers/CinnabarLabFossilRoom.asm new file mode 100755 index 000000000..3cb884376 --- /dev/null +++ b/data/maps/headers/CinnabarLabFossilRoom.asm @@ -0,0 +1,3 @@ + + map_header CinnabarLabFossilRoom, CINNABAR_LAB_FOSSIL_ROOM, LAB, 0 + end_map_header diff --git a/data/maps/headers/CinnabarLabMetronomeRoom.asm b/data/maps/headers/CinnabarLabMetronomeRoom.asm new file mode 100755 index 000000000..d77338c8e --- /dev/null +++ b/data/maps/headers/CinnabarLabMetronomeRoom.asm @@ -0,0 +1,3 @@ + + map_header CinnabarLabMetronomeRoom, CINNABAR_LAB_METRONOME_ROOM, LAB, 0 + end_map_header diff --git a/data/maps/headers/CinnabarLabTradeRoom.asm b/data/maps/headers/CinnabarLabTradeRoom.asm new file mode 100755 index 000000000..c23d9c15e --- /dev/null +++ b/data/maps/headers/CinnabarLabTradeRoom.asm @@ -0,0 +1,3 @@ + + map_header CinnabarLabTradeRoom, CINNABAR_LAB_TRADE_ROOM, LAB, 0 + end_map_header diff --git a/data/maps/headers/CinnabarMart.asm b/data/maps/headers/CinnabarMart.asm new file mode 100755 index 000000000..c68d582a2 --- /dev/null +++ b/data/maps/headers/CinnabarMart.asm @@ -0,0 +1,3 @@ + + map_header CinnabarMart, CINNABAR_MART, MART, 0 + end_map_header diff --git a/data/maps/headers/CinnabarPokecenter.asm b/data/maps/headers/CinnabarPokecenter.asm new file mode 100755 index 000000000..d910133bd --- /dev/null +++ b/data/maps/headers/CinnabarPokecenter.asm @@ -0,0 +1,3 @@ + + map_header CinnabarPokecenter, CINNABAR_POKECENTER, POKECENTER, 0 + end_map_header diff --git a/data/maps/headers/Colosseum.asm b/data/maps/headers/Colosseum.asm new file mode 100755 index 000000000..faf03eb4e --- /dev/null +++ b/data/maps/headers/Colosseum.asm @@ -0,0 +1,3 @@ + + map_header Colosseum, COLOSSEUM, CLUB, 0 + end_map_header diff --git a/data/maps/headers/CopycatsHouse1F.asm b/data/maps/headers/CopycatsHouse1F.asm new file mode 100755 index 000000000..532cef931 --- /dev/null +++ b/data/maps/headers/CopycatsHouse1F.asm @@ -0,0 +1,3 @@ + + map_header CopycatsHouse1F, COPYCATS_HOUSE_1F, REDS_HOUSE_1, 0 + end_map_header diff --git a/data/maps/headers/CopycatsHouse2F.asm b/data/maps/headers/CopycatsHouse2F.asm new file mode 100755 index 000000000..38b1fbbbf --- /dev/null +++ b/data/maps/headers/CopycatsHouse2F.asm @@ -0,0 +1,3 @@ + + map_header CopycatsHouse2F, COPYCATS_HOUSE_2F, REDS_HOUSE_2, 0 + end_map_header diff --git a/data/maps/headers/Daycare.asm b/data/maps/headers/Daycare.asm new file mode 100755 index 000000000..dabeedd93 --- /dev/null +++ b/data/maps/headers/Daycare.asm @@ -0,0 +1,3 @@ + + map_header Daycare, DAYCARE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/DiglettsCave.asm b/data/maps/headers/DiglettsCave.asm new file mode 100755 index 000000000..d3777d316 --- /dev/null +++ b/data/maps/headers/DiglettsCave.asm @@ -0,0 +1,3 @@ + + map_header DiglettsCave, DIGLETTS_CAVE, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/DiglettsCaveRoute11.asm b/data/maps/headers/DiglettsCaveRoute11.asm new file mode 100755 index 000000000..d8bdd7042 --- /dev/null +++ b/data/maps/headers/DiglettsCaveRoute11.asm @@ -0,0 +1,3 @@ + + map_header DiglettsCaveRoute11, DIGLETTS_CAVE_ROUTE_11, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/DiglettsCaveRoute2.asm b/data/maps/headers/DiglettsCaveRoute2.asm new file mode 100755 index 000000000..86f5ae35a --- /dev/null +++ b/data/maps/headers/DiglettsCaveRoute2.asm @@ -0,0 +1,3 @@ + + map_header DiglettsCaveRoute2, DIGLETTS_CAVE_ROUTE_2, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/FightingDojo.asm b/data/maps/headers/FightingDojo.asm new file mode 100755 index 000000000..7ecadc57a --- /dev/null +++ b/data/maps/headers/FightingDojo.asm @@ -0,0 +1,3 @@ + + map_header FightingDojo, FIGHTING_DOJO, DOJO, 0 + end_map_header diff --git a/data/maps/headers/FuchsiaBillsGrandpasHouse.asm b/data/maps/headers/FuchsiaBillsGrandpasHouse.asm new file mode 100755 index 000000000..10ba48e90 --- /dev/null +++ b/data/maps/headers/FuchsiaBillsGrandpasHouse.asm @@ -0,0 +1,3 @@ + + map_header FuchsiaBillsGrandpasHouse, FUCHSIA_BILLS_GRANDPAS_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/FuchsiaCity.asm b/data/maps/headers/FuchsiaCity.asm new file mode 100755 index 000000000..6028bce04 --- /dev/null +++ b/data/maps/headers/FuchsiaCity.asm @@ -0,0 +1,6 @@ + + map_header FuchsiaCity, FUCHSIA_CITY, OVERWORLD, SOUTH | WEST | EAST + connection south, Route19, ROUTE_19, 5 + connection west, Route18, ROUTE_18, 4 + connection east, Route15, ROUTE_15, 4 + end_map_header diff --git a/data/maps/headers/FuchsiaGoodRodHouse.asm b/data/maps/headers/FuchsiaGoodRodHouse.asm new file mode 100755 index 000000000..d21611c18 --- /dev/null +++ b/data/maps/headers/FuchsiaGoodRodHouse.asm @@ -0,0 +1,3 @@ + + map_header FuchsiaGoodRodHouse, FUCHSIA_GOOD_ROD_HOUSE, SHIP, 0 + end_map_header diff --git a/data/maps/headers/FuchsiaGym.asm b/data/maps/headers/FuchsiaGym.asm new file mode 100755 index 000000000..44be29711 --- /dev/null +++ b/data/maps/headers/FuchsiaGym.asm @@ -0,0 +1,3 @@ + + map_header FuchsiaGym, FUCHSIA_GYM, GYM, 0 + end_map_header diff --git a/data/maps/headers/FuchsiaMart.asm b/data/maps/headers/FuchsiaMart.asm new file mode 100755 index 000000000..120fe305d --- /dev/null +++ b/data/maps/headers/FuchsiaMart.asm @@ -0,0 +1,3 @@ + + map_header FuchsiaMart, FUCHSIA_MART, MART, 0 + end_map_header diff --git a/data/maps/headers/FuchsiaMeetingRoom.asm b/data/maps/headers/FuchsiaMeetingRoom.asm new file mode 100755 index 000000000..a5ab4f04a --- /dev/null +++ b/data/maps/headers/FuchsiaMeetingRoom.asm @@ -0,0 +1,3 @@ + + map_header FuchsiaMeetingRoom, FUCHSIA_MEETING_ROOM, LAB, 0 + end_map_header diff --git a/data/maps/headers/FuchsiaPokecenter.asm b/data/maps/headers/FuchsiaPokecenter.asm new file mode 100755 index 000000000..c1c683bdf --- /dev/null +++ b/data/maps/headers/FuchsiaPokecenter.asm @@ -0,0 +1,3 @@ + + map_header FuchsiaPokecenter, FUCHSIA_POKECENTER, POKECENTER, 0 + end_map_header diff --git a/data/maps/headers/GameCorner.asm b/data/maps/headers/GameCorner.asm new file mode 100755 index 000000000..ad367b931 --- /dev/null +++ b/data/maps/headers/GameCorner.asm @@ -0,0 +1,3 @@ + + map_header GameCorner, GAME_CORNER, LOBBY, 0 + end_map_header diff --git a/data/maps/headers/GameCornerPrizeRoom.asm b/data/maps/headers/GameCornerPrizeRoom.asm new file mode 100755 index 000000000..4668cbb89 --- /dev/null +++ b/data/maps/headers/GameCornerPrizeRoom.asm @@ -0,0 +1,3 @@ + + map_header GameCornerPrizeRoom, GAME_CORNER_PRIZE_ROOM, LOBBY, 0 + end_map_header diff --git a/data/maps/headers/HallOfFame.asm b/data/maps/headers/HallOfFame.asm new file mode 100755 index 000000000..e2dc3fb3c --- /dev/null +++ b/data/maps/headers/HallOfFame.asm @@ -0,0 +1,3 @@ + + map_header HallOfFame, HALL_OF_FAME, GYM, 0 + end_map_header diff --git a/data/maps/headers/IndigoPlateau.asm b/data/maps/headers/IndigoPlateau.asm new file mode 100755 index 000000000..ff394dfec --- /dev/null +++ b/data/maps/headers/IndigoPlateau.asm @@ -0,0 +1,4 @@ + + map_header IndigoPlateau, INDIGO_PLATEAU, PLATEAU, SOUTH + connection south, Route23, ROUTE_23, 0 + end_map_header diff --git a/data/maps/headers/IndigoPlateauLobby.asm b/data/maps/headers/IndigoPlateauLobby.asm new file mode 100755 index 000000000..b13afa12e --- /dev/null +++ b/data/maps/headers/IndigoPlateauLobby.asm @@ -0,0 +1,3 @@ + + map_header IndigoPlateauLobby, INDIGO_PLATEAU_LOBBY, MART, 0 + end_map_header diff --git a/data/maps/headers/LancesRoom.asm b/data/maps/headers/LancesRoom.asm new file mode 100755 index 000000000..0b69970e6 --- /dev/null +++ b/data/maps/headers/LancesRoom.asm @@ -0,0 +1,3 @@ + + map_header LancesRoom, LANCES_ROOM, DOJO, 0 + end_map_header diff --git a/data/maps/headers/LavenderCuboneHouse.asm b/data/maps/headers/LavenderCuboneHouse.asm new file mode 100755 index 000000000..dfd38ff1c --- /dev/null +++ b/data/maps/headers/LavenderCuboneHouse.asm @@ -0,0 +1,3 @@ + + map_header LavenderCuboneHouse, LAVENDER_CUBONE_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/LavenderMart.asm b/data/maps/headers/LavenderMart.asm new file mode 100755 index 000000000..82c239e66 --- /dev/null +++ b/data/maps/headers/LavenderMart.asm @@ -0,0 +1,3 @@ + + map_header LavenderMart, LAVENDER_MART, MART, 0 + end_map_header diff --git a/data/maps/headers/LavenderPokecenter.asm b/data/maps/headers/LavenderPokecenter.asm new file mode 100755 index 000000000..c0cd0adf8 --- /dev/null +++ b/data/maps/headers/LavenderPokecenter.asm @@ -0,0 +1,3 @@ + + map_header LavenderPokecenter, LAVENDER_POKECENTER, POKECENTER, 0 + end_map_header diff --git a/data/maps/headers/LavenderTown.asm b/data/maps/headers/LavenderTown.asm new file mode 100755 index 000000000..7c1c9c468 --- /dev/null +++ b/data/maps/headers/LavenderTown.asm @@ -0,0 +1,6 @@ + + map_header LavenderTown, LAVENDER_TOWN, OVERWORLD, NORTH | SOUTH | WEST + connection north, Route10, ROUTE_10, 0 + connection south, Route12, ROUTE_12, 0 + connection west, Route8, ROUTE_8, 0 + end_map_header diff --git a/data/maps/headers/LoreleisRoom.asm b/data/maps/headers/LoreleisRoom.asm new file mode 100755 index 000000000..feff946c0 --- /dev/null +++ b/data/maps/headers/LoreleisRoom.asm @@ -0,0 +1,3 @@ + + map_header LoreleisRoom, LORELEIS_ROOM, GYM, 0 + end_map_header diff --git a/data/maps/headers/MrFujisHouse.asm b/data/maps/headers/MrFujisHouse.asm new file mode 100755 index 000000000..023cb5018 --- /dev/null +++ b/data/maps/headers/MrFujisHouse.asm @@ -0,0 +1,3 @@ + + map_header MrFujisHouse, MR_FUJIS_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/MrPsychicsHouse.asm b/data/maps/headers/MrPsychicsHouse.asm new file mode 100755 index 000000000..628db0440 --- /dev/null +++ b/data/maps/headers/MrPsychicsHouse.asm @@ -0,0 +1,3 @@ + + map_header MrPsychicsHouse, MR_PSYCHICS_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/MtMoon1F.asm b/data/maps/headers/MtMoon1F.asm new file mode 100755 index 000000000..8de2be3e9 --- /dev/null +++ b/data/maps/headers/MtMoon1F.asm @@ -0,0 +1,3 @@ + + map_header MtMoon1F, MT_MOON_1F, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/MtMoonB1F.asm b/data/maps/headers/MtMoonB1F.asm new file mode 100755 index 000000000..9c97b5c7e --- /dev/null +++ b/data/maps/headers/MtMoonB1F.asm @@ -0,0 +1,3 @@ + + map_header MtMoonB1F, MT_MOON_B1F, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/MtMoonB2F.asm b/data/maps/headers/MtMoonB2F.asm new file mode 100755 index 000000000..0ed1f96e4 --- /dev/null +++ b/data/maps/headers/MtMoonB2F.asm @@ -0,0 +1,3 @@ + + map_header MtMoonB2F, MT_MOON_B2F, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/MtMoonPokecenter.asm b/data/maps/headers/MtMoonPokecenter.asm new file mode 100755 index 000000000..0425eae71 --- /dev/null +++ b/data/maps/headers/MtMoonPokecenter.asm @@ -0,0 +1,3 @@ + + map_header MtMoonPokecenter, MT_MOON_POKECENTER, POKECENTER, 0 + end_map_header diff --git a/data/maps/headers/Museum1F.asm b/data/maps/headers/Museum1F.asm new file mode 100755 index 000000000..d92176d23 --- /dev/null +++ b/data/maps/headers/Museum1F.asm @@ -0,0 +1,3 @@ + + map_header Museum1F, MUSEUM_1F, MUSEUM, 0 + end_map_header diff --git a/data/maps/headers/Museum2F.asm b/data/maps/headers/Museum2F.asm new file mode 100755 index 000000000..d5bf89182 --- /dev/null +++ b/data/maps/headers/Museum2F.asm @@ -0,0 +1,3 @@ + + map_header Museum2F, MUSEUM_2F, MUSEUM, 0 + end_map_header diff --git a/data/maps/headers/NameRatersHouse.asm b/data/maps/headers/NameRatersHouse.asm new file mode 100755 index 000000000..3f9010f08 --- /dev/null +++ b/data/maps/headers/NameRatersHouse.asm @@ -0,0 +1,3 @@ + + map_header NameRatersHouse, NAME_RATERS_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/OaksLab.asm b/data/maps/headers/OaksLab.asm new file mode 100755 index 000000000..42bb76e88 --- /dev/null +++ b/data/maps/headers/OaksLab.asm @@ -0,0 +1,3 @@ + + map_header OaksLab, OAKS_LAB, DOJO, 0 + end_map_header diff --git a/data/maps/headers/PalletTown.asm b/data/maps/headers/PalletTown.asm new file mode 100755 index 000000000..2745bdc14 --- /dev/null +++ b/data/maps/headers/PalletTown.asm @@ -0,0 +1,5 @@ + + map_header PalletTown, PALLET_TOWN, OVERWORLD, NORTH | SOUTH + connection north, Route1, ROUTE_1, 0 + connection south, Route21, ROUTE_21, 0 + end_map_header diff --git a/data/maps/headers/PewterCity.asm b/data/maps/headers/PewterCity.asm new file mode 100755 index 000000000..268adb7ac --- /dev/null +++ b/data/maps/headers/PewterCity.asm @@ -0,0 +1,5 @@ + + map_header PewterCity, PEWTER_CITY, OVERWORLD, SOUTH | EAST + connection south, Route2, ROUTE_2, 5 + connection east, Route3, ROUTE_3, 4 + end_map_header diff --git a/data/maps/headers/PewterGym.asm b/data/maps/headers/PewterGym.asm new file mode 100755 index 000000000..a1659e42f --- /dev/null +++ b/data/maps/headers/PewterGym.asm @@ -0,0 +1,3 @@ + + map_header PewterGym, PEWTER_GYM, GYM, 0 + end_map_header diff --git a/data/maps/headers/PewterMart.asm b/data/maps/headers/PewterMart.asm new file mode 100755 index 000000000..c9b24eb26 --- /dev/null +++ b/data/maps/headers/PewterMart.asm @@ -0,0 +1,3 @@ + + map_header PewterMart, PEWTER_MART, MART, 0 + end_map_header diff --git a/data/maps/headers/PewterNidoranHouse.asm b/data/maps/headers/PewterNidoranHouse.asm new file mode 100755 index 000000000..ee2e46ca2 --- /dev/null +++ b/data/maps/headers/PewterNidoranHouse.asm @@ -0,0 +1,3 @@ + + map_header PewterNidoranHouse, PEWTER_NIDORAN_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/PewterPokecenter.asm b/data/maps/headers/PewterPokecenter.asm new file mode 100755 index 000000000..4e420bf85 --- /dev/null +++ b/data/maps/headers/PewterPokecenter.asm @@ -0,0 +1,3 @@ + + map_header PewterPokecenter, PEWTER_POKECENTER, POKECENTER, 0 + end_map_header diff --git a/data/maps/headers/PewterSpeechHouse.asm b/data/maps/headers/PewterSpeechHouse.asm new file mode 100755 index 000000000..a378d61e0 --- /dev/null +++ b/data/maps/headers/PewterSpeechHouse.asm @@ -0,0 +1,3 @@ + + map_header PewterSpeechHouse, PEWTER_SPEECH_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/PokemonFanClub.asm b/data/maps/headers/PokemonFanClub.asm new file mode 100755 index 000000000..b4ff8e1c8 --- /dev/null +++ b/data/maps/headers/PokemonFanClub.asm @@ -0,0 +1,3 @@ + + map_header PokemonFanClub, POKEMON_FAN_CLUB, INTERIOR, 0 + end_map_header diff --git a/data/maps/headers/PokemonMansion1F.asm b/data/maps/headers/PokemonMansion1F.asm new file mode 100755 index 000000000..9407f956c --- /dev/null +++ b/data/maps/headers/PokemonMansion1F.asm @@ -0,0 +1,3 @@ + + map_header PokemonMansion1F, POKEMON_MANSION_1F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/PokemonMansion2F.asm b/data/maps/headers/PokemonMansion2F.asm new file mode 100755 index 000000000..deb7c84f1 --- /dev/null +++ b/data/maps/headers/PokemonMansion2F.asm @@ -0,0 +1,3 @@ + + map_header PokemonMansion2F, POKEMON_MANSION_2F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/PokemonMansion3F.asm b/data/maps/headers/PokemonMansion3F.asm new file mode 100755 index 000000000..e4baa709a --- /dev/null +++ b/data/maps/headers/PokemonMansion3F.asm @@ -0,0 +1,3 @@ + + map_header PokemonMansion3F, POKEMON_MANSION_3F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/PokemonMansionB1F.asm b/data/maps/headers/PokemonMansionB1F.asm new file mode 100755 index 000000000..0aae67e6b --- /dev/null +++ b/data/maps/headers/PokemonMansionB1F.asm @@ -0,0 +1,3 @@ + + map_header PokemonMansionB1F, POKEMON_MANSION_B1F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/PokemonTower1F.asm b/data/maps/headers/PokemonTower1F.asm new file mode 100755 index 000000000..185fd2c09 --- /dev/null +++ b/data/maps/headers/PokemonTower1F.asm @@ -0,0 +1,3 @@ + + map_header PokemonTower1F, POKEMON_TOWER_1F, CEMETERY, 0 + end_map_header diff --git a/data/maps/headers/PokemonTower2F.asm b/data/maps/headers/PokemonTower2F.asm new file mode 100755 index 000000000..5a6046c84 --- /dev/null +++ b/data/maps/headers/PokemonTower2F.asm @@ -0,0 +1,3 @@ + + map_header PokemonTower2F, POKEMON_TOWER_2F, CEMETERY, 0 + end_map_header diff --git a/data/maps/headers/PokemonTower3F.asm b/data/maps/headers/PokemonTower3F.asm new file mode 100755 index 000000000..49ebc4e70 --- /dev/null +++ b/data/maps/headers/PokemonTower3F.asm @@ -0,0 +1,3 @@ + + map_header PokemonTower3F, POKEMON_TOWER_3F, CEMETERY, 0 + end_map_header diff --git a/data/maps/headers/PokemonTower4F.asm b/data/maps/headers/PokemonTower4F.asm new file mode 100755 index 000000000..0eb9a0d6b --- /dev/null +++ b/data/maps/headers/PokemonTower4F.asm @@ -0,0 +1,3 @@ + + map_header PokemonTower4F, POKEMON_TOWER_4F, CEMETERY, 0 + end_map_header diff --git a/data/maps/headers/PokemonTower5F.asm b/data/maps/headers/PokemonTower5F.asm new file mode 100755 index 000000000..e58c63c66 --- /dev/null +++ b/data/maps/headers/PokemonTower5F.asm @@ -0,0 +1,3 @@ + + map_header PokemonTower5F, POKEMON_TOWER_5F, CEMETERY, 0 + end_map_header diff --git a/data/maps/headers/PokemonTower6F.asm b/data/maps/headers/PokemonTower6F.asm new file mode 100755 index 000000000..ba53347b0 --- /dev/null +++ b/data/maps/headers/PokemonTower6F.asm @@ -0,0 +1,3 @@ + + map_header PokemonTower6F, POKEMON_TOWER_6F, CEMETERY, 0 + end_map_header diff --git a/data/maps/headers/PokemonTower7F.asm b/data/maps/headers/PokemonTower7F.asm new file mode 100755 index 000000000..bd9f839bf --- /dev/null +++ b/data/maps/headers/PokemonTower7F.asm @@ -0,0 +1,3 @@ + + map_header PokemonTower7F, POKEMON_TOWER_7F, CEMETERY, 0 + end_map_header diff --git a/data/maps/headers/PowerPlant.asm b/data/maps/headers/PowerPlant.asm new file mode 100755 index 000000000..88d82ae29 --- /dev/null +++ b/data/maps/headers/PowerPlant.asm @@ -0,0 +1,3 @@ + + map_header PowerPlant, POWER_PLANT, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/RedsHouse1F.asm b/data/maps/headers/RedsHouse1F.asm new file mode 100755 index 000000000..018bdc80e --- /dev/null +++ b/data/maps/headers/RedsHouse1F.asm @@ -0,0 +1,3 @@ + + map_header RedsHouse1F, REDS_HOUSE_1F, REDS_HOUSE_1, 0 + end_map_header diff --git a/data/maps/headers/RedsHouse2F.asm b/data/maps/headers/RedsHouse2F.asm new file mode 100755 index 000000000..10332e2cb --- /dev/null +++ b/data/maps/headers/RedsHouse2F.asm @@ -0,0 +1,3 @@ + + map_header RedsHouse2F, REDS_HOUSE_2F, REDS_HOUSE_2, $00 + end_map_header diff --git a/data/maps/headers/RockTunnel1F.asm b/data/maps/headers/RockTunnel1F.asm new file mode 100755 index 000000000..268ee645b --- /dev/null +++ b/data/maps/headers/RockTunnel1F.asm @@ -0,0 +1,3 @@ + + map_header RockTunnel1F, ROCK_TUNNEL_1F, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/RockTunnelB1F.asm b/data/maps/headers/RockTunnelB1F.asm new file mode 100755 index 000000000..7b13f647f --- /dev/null +++ b/data/maps/headers/RockTunnelB1F.asm @@ -0,0 +1,3 @@ + + map_header RockTunnelB1F, ROCK_TUNNEL_B1F, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/RockTunnelPokecenter.asm b/data/maps/headers/RockTunnelPokecenter.asm new file mode 100755 index 000000000..a873854bf --- /dev/null +++ b/data/maps/headers/RockTunnelPokecenter.asm @@ -0,0 +1,3 @@ + + map_header RockTunnelPokecenter, ROCK_TUNNEL_POKECENTER, POKECENTER, 0 + end_map_header diff --git a/data/maps/headers/RocketHideoutB1F.asm b/data/maps/headers/RocketHideoutB1F.asm new file mode 100755 index 000000000..521a66934 --- /dev/null +++ b/data/maps/headers/RocketHideoutB1F.asm @@ -0,0 +1,3 @@ + + map_header RocketHideoutB1F, ROCKET_HIDEOUT_B1F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/RocketHideoutB2F.asm b/data/maps/headers/RocketHideoutB2F.asm new file mode 100755 index 000000000..ab2a965da --- /dev/null +++ b/data/maps/headers/RocketHideoutB2F.asm @@ -0,0 +1,3 @@ + + map_header RocketHideoutB2F, ROCKET_HIDEOUT_B2F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/RocketHideoutB3F.asm b/data/maps/headers/RocketHideoutB3F.asm new file mode 100755 index 000000000..0a04b00eb --- /dev/null +++ b/data/maps/headers/RocketHideoutB3F.asm @@ -0,0 +1,3 @@ + + map_header RocketHideoutB3F, ROCKET_HIDEOUT_B3F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/RocketHideoutB4F.asm b/data/maps/headers/RocketHideoutB4F.asm new file mode 100755 index 000000000..11512c01f --- /dev/null +++ b/data/maps/headers/RocketHideoutB4F.asm @@ -0,0 +1,3 @@ + + map_header RocketHideoutB4F, ROCKET_HIDEOUT_B4F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/RocketHideoutElevator.asm b/data/maps/headers/RocketHideoutElevator.asm new file mode 100755 index 000000000..90ece237c --- /dev/null +++ b/data/maps/headers/RocketHideoutElevator.asm @@ -0,0 +1,3 @@ + + map_header RocketHideoutElevator, ROCKET_HIDEOUT_ELEVATOR, LOBBY, 0 + end_map_header diff --git a/data/maps/headers/Route1.asm b/data/maps/headers/Route1.asm new file mode 100755 index 000000000..6eeb03476 --- /dev/null +++ b/data/maps/headers/Route1.asm @@ -0,0 +1,5 @@ + + map_header Route1, ROUTE_1, OVERWORLD, NORTH | SOUTH + connection north, ViridianCity, VIRIDIAN_CITY, -5 + connection south, PalletTown, PALLET_TOWN, 0 + end_map_header diff --git a/data/maps/headers/Route10.asm b/data/maps/headers/Route10.asm new file mode 100755 index 000000000..ba498b0ab --- /dev/null +++ b/data/maps/headers/Route10.asm @@ -0,0 +1,5 @@ + + map_header Route10, ROUTE_10, OVERWORLD, SOUTH | WEST + connection south, LavenderTown, LAVENDER_TOWN, 0 + connection west, Route9, ROUTE_9, 0 + end_map_header diff --git a/data/maps/headers/Route11.asm b/data/maps/headers/Route11.asm new file mode 100755 index 000000000..d8f2e72f8 --- /dev/null +++ b/data/maps/headers/Route11.asm @@ -0,0 +1,5 @@ + + map_header Route11, ROUTE_11, OVERWORLD, WEST | EAST + connection west, VermilionCity, VERMILION_CITY, -4 + connection east, Route12, ROUTE_12, -27 + end_map_header diff --git a/data/maps/headers/Route11Gate1F.asm b/data/maps/headers/Route11Gate1F.asm new file mode 100755 index 000000000..aa97b7915 --- /dev/null +++ b/data/maps/headers/Route11Gate1F.asm @@ -0,0 +1,3 @@ + + map_header Route11Gate1F, ROUTE_11_GATE_1F, GATE, 0 + end_map_header diff --git a/data/maps/headers/Route11Gate2F.asm b/data/maps/headers/Route11Gate2F.asm new file mode 100755 index 000000000..560d38db3 --- /dev/null +++ b/data/maps/headers/Route11Gate2F.asm @@ -0,0 +1,3 @@ + + map_header Route11Gate2F, ROUTE_11_GATE_2F, GATE, 0 + end_map_header diff --git a/data/maps/headers/Route12.asm b/data/maps/headers/Route12.asm new file mode 100755 index 000000000..931ddf1d6 --- /dev/null +++ b/data/maps/headers/Route12.asm @@ -0,0 +1,6 @@ + + map_header Route12, ROUTE_12, OVERWORLD, NORTH | SOUTH | WEST + connection north, LavenderTown, LAVENDER_TOWN, 0 + connection south, Route13, ROUTE_13, -20 + connection west, Route11, ROUTE_11, 27 + end_map_header diff --git a/data/maps/headers/Route12Gate1F.asm b/data/maps/headers/Route12Gate1F.asm new file mode 100755 index 000000000..047a670c0 --- /dev/null +++ b/data/maps/headers/Route12Gate1F.asm @@ -0,0 +1,3 @@ + + map_header Route12Gate1F, ROUTE_12_GATE_1F, GATE, 0 + end_map_header diff --git a/data/maps/headers/Route12Gate2F.asm b/data/maps/headers/Route12Gate2F.asm new file mode 100755 index 000000000..e13667360 --- /dev/null +++ b/data/maps/headers/Route12Gate2F.asm @@ -0,0 +1,3 @@ + + map_header Route12Gate2F, ROUTE_12_GATE_2F, GATE, 0 + end_map_header diff --git a/data/maps/headers/Route12SuperRodHouse.asm b/data/maps/headers/Route12SuperRodHouse.asm new file mode 100755 index 000000000..2195a9b14 --- /dev/null +++ b/data/maps/headers/Route12SuperRodHouse.asm @@ -0,0 +1,3 @@ + + map_header Route12SuperRodHouse, ROUTE_12_SUPER_ROD_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/Route13.asm b/data/maps/headers/Route13.asm new file mode 100755 index 000000000..242aaa024 --- /dev/null +++ b/data/maps/headers/Route13.asm @@ -0,0 +1,5 @@ + + map_header Route13, ROUTE_13, OVERWORLD, NORTH | WEST + connection north, Route12, ROUTE_12, 20 + connection west, Route14, ROUTE_14, 0 + end_map_header diff --git a/data/maps/headers/Route14.asm b/data/maps/headers/Route14.asm new file mode 100755 index 000000000..c0c39c566 --- /dev/null +++ b/data/maps/headers/Route14.asm @@ -0,0 +1,5 @@ + + map_header Route14, ROUTE_14, OVERWORLD, WEST | EAST + connection west, Route15, ROUTE_15, 18 + connection east, Route13, ROUTE_13, 0 + end_map_header diff --git a/data/maps/headers/Route15.asm b/data/maps/headers/Route15.asm new file mode 100755 index 000000000..28a811d23 --- /dev/null +++ b/data/maps/headers/Route15.asm @@ -0,0 +1,5 @@ + + map_header Route15, ROUTE_15, OVERWORLD, WEST | EAST + connection west, FuchsiaCity, FUCHSIA_CITY, -4 + connection east, Route14, ROUTE_14, -18 + end_map_header diff --git a/data/maps/headers/Route15Gate1F.asm b/data/maps/headers/Route15Gate1F.asm new file mode 100755 index 000000000..a23d15a08 --- /dev/null +++ b/data/maps/headers/Route15Gate1F.asm @@ -0,0 +1,3 @@ + + map_header Route15Gate1F, ROUTE_15_GATE_1F, GATE, 0 + end_map_header diff --git a/data/maps/headers/Route15Gate2F.asm b/data/maps/headers/Route15Gate2F.asm new file mode 100755 index 000000000..8ca898721 --- /dev/null +++ b/data/maps/headers/Route15Gate2F.asm @@ -0,0 +1,3 @@ + + map_header Route15Gate2F, ROUTE_15_GATE_2F, GATE, 0 + end_map_header diff --git a/data/maps/headers/Route16.asm b/data/maps/headers/Route16.asm new file mode 100755 index 000000000..423c7af2d --- /dev/null +++ b/data/maps/headers/Route16.asm @@ -0,0 +1,5 @@ + + map_header Route16, ROUTE_16, OVERWORLD, SOUTH | EAST + connection south, Route17, ROUTE_17, 0 + connection east, CeladonCity, CELADON_CITY, -4 + end_map_header diff --git a/data/maps/headers/Route16FlyHouse.asm b/data/maps/headers/Route16FlyHouse.asm new file mode 100755 index 000000000..240b6df47 --- /dev/null +++ b/data/maps/headers/Route16FlyHouse.asm @@ -0,0 +1,3 @@ + + map_header Route16FlyHouse, ROUTE_16_FLY_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/Route16Gate1F.asm b/data/maps/headers/Route16Gate1F.asm new file mode 100755 index 000000000..74fd1b7fe --- /dev/null +++ b/data/maps/headers/Route16Gate1F.asm @@ -0,0 +1,3 @@ + + map_header Route16Gate1F, ROUTE_16_GATE_1F, GATE, 0 + end_map_header diff --git a/data/maps/headers/Route16Gate2F.asm b/data/maps/headers/Route16Gate2F.asm new file mode 100755 index 000000000..ed889f4b6 --- /dev/null +++ b/data/maps/headers/Route16Gate2F.asm @@ -0,0 +1,3 @@ + + map_header Route16Gate2F, ROUTE_16_GATE_2F, GATE, 0 + end_map_header diff --git a/data/maps/headers/Route17.asm b/data/maps/headers/Route17.asm new file mode 100755 index 000000000..5e8532998 --- /dev/null +++ b/data/maps/headers/Route17.asm @@ -0,0 +1,5 @@ + + map_header Route17, ROUTE_17, OVERWORLD, NORTH | SOUTH + connection north, Route16, ROUTE_16, 0 + connection south, Route18, ROUTE_18, 0 + end_map_header diff --git a/data/maps/headers/Route18.asm b/data/maps/headers/Route18.asm new file mode 100755 index 000000000..34573051a --- /dev/null +++ b/data/maps/headers/Route18.asm @@ -0,0 +1,5 @@ + + map_header Route18, ROUTE_18, OVERWORLD, NORTH | EAST + connection north, Route17, ROUTE_17, 0 + connection east, FuchsiaCity, FUCHSIA_CITY, -4 + end_map_header diff --git a/data/maps/headers/Route18Gate1F.asm b/data/maps/headers/Route18Gate1F.asm new file mode 100755 index 000000000..2847e0e37 --- /dev/null +++ b/data/maps/headers/Route18Gate1F.asm @@ -0,0 +1,3 @@ + + map_header Route18Gate1F, ROUTE_18_GATE_1F, GATE, 0 + end_map_header diff --git a/data/maps/headers/Route18Gate2F.asm b/data/maps/headers/Route18Gate2F.asm new file mode 100755 index 000000000..f25fa7009 --- /dev/null +++ b/data/maps/headers/Route18Gate2F.asm @@ -0,0 +1,3 @@ + + map_header Route18Gate2F, ROUTE_18_GATE_2F, GATE, 0 + end_map_header diff --git a/data/maps/headers/Route19.asm b/data/maps/headers/Route19.asm new file mode 100755 index 000000000..7f01c8049 --- /dev/null +++ b/data/maps/headers/Route19.asm @@ -0,0 +1,5 @@ + + map_header Route19, ROUTE_19, OVERWORLD, NORTH | WEST + connection north, FuchsiaCity, FUCHSIA_CITY, -5 + connection west, Route20, ROUTE_20, 18 + end_map_header diff --git a/data/maps/headers/Route2.asm b/data/maps/headers/Route2.asm new file mode 100755 index 000000000..521eef694 --- /dev/null +++ b/data/maps/headers/Route2.asm @@ -0,0 +1,5 @@ + + map_header Route2, ROUTE_2, OVERWORLD, NORTH | SOUTH + connection north, PewterCity, PEWTER_CITY, -5 + connection south, ViridianCity, VIRIDIAN_CITY, -5 + end_map_header diff --git a/data/maps/headers/Route20.asm b/data/maps/headers/Route20.asm new file mode 100755 index 000000000..3495b785d --- /dev/null +++ b/data/maps/headers/Route20.asm @@ -0,0 +1,5 @@ + + map_header Route20, ROUTE_20, OVERWORLD, WEST | EAST + connection west, CinnabarIsland, CINNABAR_ISLAND, 0 + connection east, Route19, ROUTE_19, -18 + end_map_header diff --git a/data/maps/headers/Route21.asm b/data/maps/headers/Route21.asm new file mode 100755 index 000000000..803bf2177 --- /dev/null +++ b/data/maps/headers/Route21.asm @@ -0,0 +1,5 @@ + + map_header Route21, ROUTE_21, OVERWORLD, NORTH | SOUTH + connection north, PalletTown, PALLET_TOWN, 0 + connection south, CinnabarIsland, CINNABAR_ISLAND, 0 + end_map_header diff --git a/data/maps/headers/Route22.asm b/data/maps/headers/Route22.asm new file mode 100755 index 000000000..e235efa1d --- /dev/null +++ b/data/maps/headers/Route22.asm @@ -0,0 +1,5 @@ + + map_header Route22, ROUTE_22, OVERWORLD, NORTH | EAST + connection north, Route23, ROUTE_23, 0 + connection east, ViridianCity, VIRIDIAN_CITY, -4 + end_map_header diff --git a/data/maps/headers/Route22Gate.asm b/data/maps/headers/Route22Gate.asm new file mode 100755 index 000000000..a9d1dd377 --- /dev/null +++ b/data/maps/headers/Route22Gate.asm @@ -0,0 +1,3 @@ + + map_header Route22Gate, ROUTE_22_GATE, GATE, 0 + end_map_header diff --git a/data/maps/headers/Route23.asm b/data/maps/headers/Route23.asm new file mode 100755 index 000000000..e1535c9d2 --- /dev/null +++ b/data/maps/headers/Route23.asm @@ -0,0 +1,5 @@ + + map_header Route23, ROUTE_23, PLATEAU, NORTH | SOUTH + connection north, IndigoPlateau, INDIGO_PLATEAU, 0 + connection south, Route22, ROUTE_22, 0 + end_map_header diff --git a/data/maps/headers/Route24.asm b/data/maps/headers/Route24.asm new file mode 100755 index 000000000..faf53660e --- /dev/null +++ b/data/maps/headers/Route24.asm @@ -0,0 +1,5 @@ + + map_header Route24, ROUTE_24, OVERWORLD, SOUTH | EAST + connection south, CeruleanCity, CERULEAN_CITY, -5 + connection east, Route25, ROUTE_25, 0 + end_map_header diff --git a/data/maps/headers/Route25.asm b/data/maps/headers/Route25.asm new file mode 100755 index 000000000..1873d19b5 --- /dev/null +++ b/data/maps/headers/Route25.asm @@ -0,0 +1,4 @@ + + map_header Route25, ROUTE_25, OVERWORLD, WEST + connection west, Route24, ROUTE_24, 0 + end_map_header diff --git a/data/maps/headers/Route2Gate.asm b/data/maps/headers/Route2Gate.asm new file mode 100755 index 000000000..730d8f2df --- /dev/null +++ b/data/maps/headers/Route2Gate.asm @@ -0,0 +1,3 @@ + + map_header Route2Gate, ROUTE_2_GATE, GATE, 0 + end_map_header diff --git a/data/maps/headers/Route2TradeHouse.asm b/data/maps/headers/Route2TradeHouse.asm new file mode 100755 index 000000000..b9937dad4 --- /dev/null +++ b/data/maps/headers/Route2TradeHouse.asm @@ -0,0 +1,3 @@ + + map_header Route2TradeHouse, ROUTE_2_TRADE_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/Route3.asm b/data/maps/headers/Route3.asm new file mode 100755 index 000000000..ddbd7783b --- /dev/null +++ b/data/maps/headers/Route3.asm @@ -0,0 +1,5 @@ + + map_header Route3, ROUTE_3, OVERWORLD, NORTH | WEST + connection north, Route4, ROUTE_4, 25 + connection west, PewterCity, PEWTER_CITY, -4 + end_map_header diff --git a/data/maps/headers/Route4.asm b/data/maps/headers/Route4.asm new file mode 100755 index 000000000..6c43171ab --- /dev/null +++ b/data/maps/headers/Route4.asm @@ -0,0 +1,5 @@ + + map_header Route4, ROUTE_4, OVERWORLD, SOUTH | EAST + connection south, Route3, ROUTE_3, -25 + connection east, CeruleanCity, CERULEAN_CITY, -4 + end_map_header diff --git a/data/maps/headers/Route5.asm b/data/maps/headers/Route5.asm new file mode 100755 index 000000000..ea84090c8 --- /dev/null +++ b/data/maps/headers/Route5.asm @@ -0,0 +1,5 @@ + + map_header Route5, ROUTE_5, OVERWORLD, NORTH | SOUTH + connection north, CeruleanCity, CERULEAN_CITY, -5 + connection south, SaffronCity, SAFFRON_CITY, -5 + end_map_header diff --git a/data/maps/headers/Route5Gate.asm b/data/maps/headers/Route5Gate.asm new file mode 100755 index 000000000..a01155336 --- /dev/null +++ b/data/maps/headers/Route5Gate.asm @@ -0,0 +1,3 @@ + + map_header Route5Gate, ROUTE_5_GATE, GATE, 0 + end_map_header diff --git a/data/maps/headers/Route6.asm b/data/maps/headers/Route6.asm new file mode 100755 index 000000000..956aa4d64 --- /dev/null +++ b/data/maps/headers/Route6.asm @@ -0,0 +1,5 @@ + + map_header Route6, ROUTE_6, OVERWORLD, NORTH | SOUTH + connection north, SaffronCity, SAFFRON_CITY, -5 + connection south, VermilionCity, VERMILION_CITY, -5 + end_map_header diff --git a/data/maps/headers/Route6Gate.asm b/data/maps/headers/Route6Gate.asm new file mode 100755 index 000000000..f80b57c8d --- /dev/null +++ b/data/maps/headers/Route6Gate.asm @@ -0,0 +1,3 @@ + + map_header Route6Gate, ROUTE_6_GATE, GATE, 0 + end_map_header diff --git a/data/maps/headers/Route7.asm b/data/maps/headers/Route7.asm new file mode 100755 index 000000000..8368c3fe3 --- /dev/null +++ b/data/maps/headers/Route7.asm @@ -0,0 +1,5 @@ + + map_header Route7, ROUTE_7, OVERWORLD, WEST | EAST + connection west, CeladonCity, CELADON_CITY, -4 + connection east, SaffronCity, SAFFRON_CITY, -4 + end_map_header diff --git a/data/maps/headers/Route7Gate.asm b/data/maps/headers/Route7Gate.asm new file mode 100755 index 000000000..e9b9b16df --- /dev/null +++ b/data/maps/headers/Route7Gate.asm @@ -0,0 +1,3 @@ + + map_header Route7Gate, ROUTE_7_GATE, GATE, 0 + end_map_header diff --git a/data/maps/headers/Route8.asm b/data/maps/headers/Route8.asm new file mode 100755 index 000000000..8df9e023f --- /dev/null +++ b/data/maps/headers/Route8.asm @@ -0,0 +1,5 @@ + + map_header Route8, ROUTE_8, OVERWORLD, WEST | EAST + connection west, SaffronCity, SAFFRON_CITY, -4 + connection east, LavenderTown, LAVENDER_TOWN, 0 + end_map_header diff --git a/data/maps/headers/Route8Gate.asm b/data/maps/headers/Route8Gate.asm new file mode 100755 index 000000000..f6a320a49 --- /dev/null +++ b/data/maps/headers/Route8Gate.asm @@ -0,0 +1,3 @@ + + map_header Route8Gate, ROUTE_8_GATE, GATE, 0 + end_map_header diff --git a/data/maps/headers/Route9.asm b/data/maps/headers/Route9.asm new file mode 100755 index 000000000..c1ed92250 --- /dev/null +++ b/data/maps/headers/Route9.asm @@ -0,0 +1,5 @@ + + map_header Route9, ROUTE_9, OVERWORLD, WEST | EAST + connection west, CeruleanCity, CERULEAN_CITY, -4 + connection east, Route10, ROUTE_10, 0 + end_map_header diff --git a/data/maps/headers/SSAnne1F.asm b/data/maps/headers/SSAnne1F.asm new file mode 100755 index 000000000..80d25e2dc --- /dev/null +++ b/data/maps/headers/SSAnne1F.asm @@ -0,0 +1,3 @@ + + map_header SSAnne1F, SS_ANNE_1F, SHIP, 0 + end_map_header diff --git a/data/maps/headers/SSAnne1FRooms.asm b/data/maps/headers/SSAnne1FRooms.asm new file mode 100755 index 000000000..8bdd8d001 --- /dev/null +++ b/data/maps/headers/SSAnne1FRooms.asm @@ -0,0 +1,3 @@ + + map_header SSAnne1FRooms, SS_ANNE_1F_ROOMS, SHIP, 0 + end_map_header diff --git a/data/maps/headers/SSAnne2F.asm b/data/maps/headers/SSAnne2F.asm new file mode 100755 index 000000000..b2fe14d7b --- /dev/null +++ b/data/maps/headers/SSAnne2F.asm @@ -0,0 +1,3 @@ + + map_header SSAnne2F, SS_ANNE_2F, SHIP, 0 + end_map_header diff --git a/data/maps/headers/SSAnne2FRooms.asm b/data/maps/headers/SSAnne2FRooms.asm new file mode 100755 index 000000000..2d349e4c1 --- /dev/null +++ b/data/maps/headers/SSAnne2FRooms.asm @@ -0,0 +1,3 @@ + + map_header SSAnne2FRooms, SS_ANNE_2F_ROOMS, SHIP, 0 + end_map_header diff --git a/data/maps/headers/SSAnne3F.asm b/data/maps/headers/SSAnne3F.asm new file mode 100755 index 000000000..f391a0cd4 --- /dev/null +++ b/data/maps/headers/SSAnne3F.asm @@ -0,0 +1,3 @@ + + map_header SSAnne3F, SS_ANNE_3F, SHIP, 0 + end_map_header diff --git a/data/maps/headers/SSAnneB1F.asm b/data/maps/headers/SSAnneB1F.asm new file mode 100755 index 000000000..c21d7cff1 --- /dev/null +++ b/data/maps/headers/SSAnneB1F.asm @@ -0,0 +1,3 @@ + + map_header SSAnneB1F, SS_ANNE_B1F, SHIP, 0 + end_map_header diff --git a/data/maps/headers/SSAnneB1FRooms.asm b/data/maps/headers/SSAnneB1FRooms.asm new file mode 100755 index 000000000..1b8b46201 --- /dev/null +++ b/data/maps/headers/SSAnneB1FRooms.asm @@ -0,0 +1,3 @@ + + map_header SSAnneB1FRooms, SS_ANNE_B1F_ROOMS, SHIP, 0 + end_map_header diff --git a/data/maps/headers/SSAnneBow.asm b/data/maps/headers/SSAnneBow.asm new file mode 100755 index 000000000..2195e9700 --- /dev/null +++ b/data/maps/headers/SSAnneBow.asm @@ -0,0 +1,3 @@ + + map_header SSAnneBow, SS_ANNE_BOW, SHIP, 0 + end_map_header diff --git a/data/maps/headers/SSAnneCaptainsRoom.asm b/data/maps/headers/SSAnneCaptainsRoom.asm new file mode 100755 index 000000000..a24f930d1 --- /dev/null +++ b/data/maps/headers/SSAnneCaptainsRoom.asm @@ -0,0 +1,3 @@ + + map_header SSAnneCaptainsRoom, SS_ANNE_CAPTAINS_ROOM, SHIP, 0 + end_map_header diff --git a/data/maps/headers/SSAnneKitchen.asm b/data/maps/headers/SSAnneKitchen.asm new file mode 100755 index 000000000..47e84fbe1 --- /dev/null +++ b/data/maps/headers/SSAnneKitchen.asm @@ -0,0 +1,3 @@ + + map_header SSAnneKitchen, SS_ANNE_KITCHEN, SHIP, 0 + end_map_header diff --git a/data/maps/headers/SafariZoneCenter.asm b/data/maps/headers/SafariZoneCenter.asm new file mode 100755 index 000000000..ccc58ed13 --- /dev/null +++ b/data/maps/headers/SafariZoneCenter.asm @@ -0,0 +1,3 @@ + + map_header SafariZoneCenter, SAFARI_ZONE_CENTER, FOREST, 0 + end_map_header diff --git a/data/maps/headers/SafariZoneCenterRestHouse.asm b/data/maps/headers/SafariZoneCenterRestHouse.asm new file mode 100755 index 000000000..a866003f4 --- /dev/null +++ b/data/maps/headers/SafariZoneCenterRestHouse.asm @@ -0,0 +1,3 @@ + + map_header SafariZoneCenterRestHouse, SAFARI_ZONE_CENTER_REST_HOUSE, GATE, 0 + end_map_header diff --git a/data/maps/headers/SafariZoneEast.asm b/data/maps/headers/SafariZoneEast.asm new file mode 100755 index 000000000..c23e93349 --- /dev/null +++ b/data/maps/headers/SafariZoneEast.asm @@ -0,0 +1,3 @@ + + map_header SafariZoneEast, SAFARI_ZONE_EAST, FOREST, 0 + end_map_header diff --git a/data/maps/headers/SafariZoneEastRestHouse.asm b/data/maps/headers/SafariZoneEastRestHouse.asm new file mode 100755 index 000000000..1f8d76c63 --- /dev/null +++ b/data/maps/headers/SafariZoneEastRestHouse.asm @@ -0,0 +1,3 @@ + + map_header SafariZoneEastRestHouse, SAFARI_ZONE_EAST_REST_HOUSE, GATE, 0 + end_map_header diff --git a/data/maps/headers/SafariZoneGate.asm b/data/maps/headers/SafariZoneGate.asm new file mode 100755 index 000000000..7816460d0 --- /dev/null +++ b/data/maps/headers/SafariZoneGate.asm @@ -0,0 +1,3 @@ + + map_header SafariZoneGate, SAFARI_ZONE_GATE, GATE, 0 + end_map_header diff --git a/data/maps/headers/SafariZoneNorth.asm b/data/maps/headers/SafariZoneNorth.asm new file mode 100755 index 000000000..32639d22d --- /dev/null +++ b/data/maps/headers/SafariZoneNorth.asm @@ -0,0 +1,3 @@ + + map_header SafariZoneNorth, SAFARI_ZONE_NORTH, FOREST, 0 + end_map_header diff --git a/data/maps/headers/SafariZoneNorthRestHouse.asm b/data/maps/headers/SafariZoneNorthRestHouse.asm new file mode 100755 index 000000000..ec0838036 --- /dev/null +++ b/data/maps/headers/SafariZoneNorthRestHouse.asm @@ -0,0 +1,3 @@ + + map_header SafariZoneNorthRestHouse, SAFARI_ZONE_NORTH_REST_HOUSE, GATE, 0 + end_map_header diff --git a/data/maps/headers/SafariZoneSecretHouse.asm b/data/maps/headers/SafariZoneSecretHouse.asm new file mode 100755 index 000000000..630577c47 --- /dev/null +++ b/data/maps/headers/SafariZoneSecretHouse.asm @@ -0,0 +1,3 @@ + + map_header SafariZoneSecretHouse, SAFARI_ZONE_SECRET_HOUSE, LAB, 0 + end_map_header diff --git a/data/maps/headers/SafariZoneWest.asm b/data/maps/headers/SafariZoneWest.asm new file mode 100755 index 000000000..a1117d09b --- /dev/null +++ b/data/maps/headers/SafariZoneWest.asm @@ -0,0 +1,3 @@ + + map_header SafariZoneWest, SAFARI_ZONE_WEST, FOREST, 0 + end_map_header diff --git a/data/maps/headers/SafariZoneWestRestHouse.asm b/data/maps/headers/SafariZoneWestRestHouse.asm new file mode 100755 index 000000000..e4618e1d7 --- /dev/null +++ b/data/maps/headers/SafariZoneWestRestHouse.asm @@ -0,0 +1,3 @@ + + map_header SafariZoneWestRestHouse, SAFARI_ZONE_WEST_REST_HOUSE, GATE, 0 + end_map_header diff --git a/data/maps/headers/SaffronCity.asm b/data/maps/headers/SaffronCity.asm new file mode 100755 index 000000000..ee1f71e43 --- /dev/null +++ b/data/maps/headers/SaffronCity.asm @@ -0,0 +1,7 @@ + + map_header SaffronCity, SAFFRON_CITY, OVERWORLD, NORTH | SOUTH | WEST | EAST + connection north, Route5, ROUTE_5, 5 + connection south, Route6, ROUTE_6, 5 + connection west, Route7, ROUTE_7, 4 + connection east, Route8, ROUTE_8, 4 + end_map_header diff --git a/data/maps/headers/SaffronGym.asm b/data/maps/headers/SaffronGym.asm new file mode 100755 index 000000000..14ee33237 --- /dev/null +++ b/data/maps/headers/SaffronGym.asm @@ -0,0 +1,3 @@ + + map_header SaffronGym, SAFFRON_GYM, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/SaffronMart.asm b/data/maps/headers/SaffronMart.asm new file mode 100755 index 000000000..f03132d2e --- /dev/null +++ b/data/maps/headers/SaffronMart.asm @@ -0,0 +1,3 @@ + + map_header SaffronMart, SAFFRON_MART, MART, 0 + end_map_header diff --git a/data/maps/headers/SaffronPidgeyHouse.asm b/data/maps/headers/SaffronPidgeyHouse.asm new file mode 100755 index 000000000..e9f8dde7b --- /dev/null +++ b/data/maps/headers/SaffronPidgeyHouse.asm @@ -0,0 +1,3 @@ + + map_header SaffronPidgeyHouse, SAFFRON_PIDGEY_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/SaffronPokecenter.asm b/data/maps/headers/SaffronPokecenter.asm new file mode 100755 index 000000000..9b2500501 --- /dev/null +++ b/data/maps/headers/SaffronPokecenter.asm @@ -0,0 +1,3 @@ + + map_header SaffronPokecenter, SAFFRON_POKECENTER, POKECENTER, 0 + end_map_header diff --git a/data/maps/headers/SeafoamIslands1F.asm b/data/maps/headers/SeafoamIslands1F.asm new file mode 100755 index 000000000..db5305495 --- /dev/null +++ b/data/maps/headers/SeafoamIslands1F.asm @@ -0,0 +1,3 @@ + + map_header SeafoamIslands1F, SEAFOAM_ISLANDS_1F, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/SeafoamIslandsB1F.asm b/data/maps/headers/SeafoamIslandsB1F.asm new file mode 100755 index 000000000..589eef936 --- /dev/null +++ b/data/maps/headers/SeafoamIslandsB1F.asm @@ -0,0 +1,3 @@ + + map_header SeafoamIslandsB1F, SEAFOAM_ISLANDS_B1F, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/SeafoamIslandsB2F.asm b/data/maps/headers/SeafoamIslandsB2F.asm new file mode 100755 index 000000000..f7e624edd --- /dev/null +++ b/data/maps/headers/SeafoamIslandsB2F.asm @@ -0,0 +1,3 @@ + + map_header SeafoamIslandsB2F, SEAFOAM_ISLANDS_B2F, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/SeafoamIslandsB3F.asm b/data/maps/headers/SeafoamIslandsB3F.asm new file mode 100755 index 000000000..b57da3c03 --- /dev/null +++ b/data/maps/headers/SeafoamIslandsB3F.asm @@ -0,0 +1,3 @@ + + map_header SeafoamIslandsB3F, SEAFOAM_ISLANDS_B3F, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/SeafoamIslandsB4F.asm b/data/maps/headers/SeafoamIslandsB4F.asm new file mode 100755 index 000000000..bae1e3a2b --- /dev/null +++ b/data/maps/headers/SeafoamIslandsB4F.asm @@ -0,0 +1,3 @@ + + map_header SeafoamIslandsB4F, SEAFOAM_ISLANDS_B4F, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/SilphCo10F.asm b/data/maps/headers/SilphCo10F.asm new file mode 100755 index 000000000..7a6786e76 --- /dev/null +++ b/data/maps/headers/SilphCo10F.asm @@ -0,0 +1,3 @@ + + map_header SilphCo10F, SILPH_CO_10F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/SilphCo11F.asm b/data/maps/headers/SilphCo11F.asm new file mode 100755 index 000000000..72eaaca27 --- /dev/null +++ b/data/maps/headers/SilphCo11F.asm @@ -0,0 +1,3 @@ + + map_header SilphCo11F, SILPH_CO_11F, INTERIOR, 0 + end_map_header diff --git a/data/maps/headers/SilphCo1F.asm b/data/maps/headers/SilphCo1F.asm new file mode 100755 index 000000000..4c4ac97de --- /dev/null +++ b/data/maps/headers/SilphCo1F.asm @@ -0,0 +1,3 @@ + + map_header SilphCo1F, SILPH_CO_1F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/SilphCo2F.asm b/data/maps/headers/SilphCo2F.asm new file mode 100755 index 000000000..7dc44a554 --- /dev/null +++ b/data/maps/headers/SilphCo2F.asm @@ -0,0 +1,3 @@ + + map_header SilphCo2F, SILPH_CO_2F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/SilphCo3F.asm b/data/maps/headers/SilphCo3F.asm new file mode 100755 index 000000000..99e4aa153 --- /dev/null +++ b/data/maps/headers/SilphCo3F.asm @@ -0,0 +1,3 @@ + + map_header SilphCo3F, SILPH_CO_3F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/SilphCo4F.asm b/data/maps/headers/SilphCo4F.asm new file mode 100755 index 000000000..8eed0f9a7 --- /dev/null +++ b/data/maps/headers/SilphCo4F.asm @@ -0,0 +1,3 @@ + + map_header SilphCo4F, SILPH_CO_4F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/SilphCo5F.asm b/data/maps/headers/SilphCo5F.asm new file mode 100755 index 000000000..3b40c3602 --- /dev/null +++ b/data/maps/headers/SilphCo5F.asm @@ -0,0 +1,3 @@ + + map_header SilphCo5F, SILPH_CO_5F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/SilphCo6F.asm b/data/maps/headers/SilphCo6F.asm new file mode 100755 index 000000000..3d2b3b8ca --- /dev/null +++ b/data/maps/headers/SilphCo6F.asm @@ -0,0 +1,3 @@ + + map_header SilphCo6F, SILPH_CO_6F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/SilphCo7F.asm b/data/maps/headers/SilphCo7F.asm new file mode 100755 index 000000000..1591837ae --- /dev/null +++ b/data/maps/headers/SilphCo7F.asm @@ -0,0 +1,3 @@ + + map_header SilphCo7F, SILPH_CO_7F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/SilphCo8F.asm b/data/maps/headers/SilphCo8F.asm new file mode 100755 index 000000000..e676fa86b --- /dev/null +++ b/data/maps/headers/SilphCo8F.asm @@ -0,0 +1,3 @@ + + map_header SilphCo8F, SILPH_CO_8F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/SilphCo9F.asm b/data/maps/headers/SilphCo9F.asm new file mode 100755 index 000000000..89f0300a9 --- /dev/null +++ b/data/maps/headers/SilphCo9F.asm @@ -0,0 +1,3 @@ + + map_header SilphCo9F, SILPH_CO_9F, FACILITY, 0 + end_map_header diff --git a/data/maps/headers/SilphCoElevator.asm b/data/maps/headers/SilphCoElevator.asm new file mode 100755 index 000000000..4dd9cd9fa --- /dev/null +++ b/data/maps/headers/SilphCoElevator.asm @@ -0,0 +1,3 @@ + + map_header SilphCoElevator, SILPH_CO_ELEVATOR, LOBBY, 0 + end_map_header diff --git a/data/maps/headers/TradeCenter.asm b/data/maps/headers/TradeCenter.asm new file mode 100755 index 000000000..268d76b2e --- /dev/null +++ b/data/maps/headers/TradeCenter.asm @@ -0,0 +1,3 @@ + + map_header TradeCenter, TRADE_CENTER, CLUB, 0 + end_map_header diff --git a/data/maps/headers/UndergroundPathNorthSouth.asm b/data/maps/headers/UndergroundPathNorthSouth.asm new file mode 100755 index 000000000..4bb03c795 --- /dev/null +++ b/data/maps/headers/UndergroundPathNorthSouth.asm @@ -0,0 +1,3 @@ + + map_header UndergroundPathNorthSouth, UNDERGROUND_PATH_NORTH_SOUTH, UNDERGROUND, 0 + end_map_header diff --git a/data/maps/headers/UndergroundPathRoute5.asm b/data/maps/headers/UndergroundPathRoute5.asm new file mode 100755 index 000000000..18287254d --- /dev/null +++ b/data/maps/headers/UndergroundPathRoute5.asm @@ -0,0 +1,3 @@ + + map_header UndergroundPathRoute5, UNDERGROUND_PATH_ROUTE_5, GATE, 0 + end_map_header diff --git a/data/maps/headers/UndergroundPathRoute6.asm b/data/maps/headers/UndergroundPathRoute6.asm new file mode 100755 index 000000000..677725430 --- /dev/null +++ b/data/maps/headers/UndergroundPathRoute6.asm @@ -0,0 +1,3 @@ + + map_header UndergroundPathRoute6, UNDERGROUND_PATH_ROUTE_6, GATE, 0 + end_map_header diff --git a/data/maps/headers/UndergroundPathRoute7.asm b/data/maps/headers/UndergroundPathRoute7.asm new file mode 100755 index 000000000..d70548ed2 --- /dev/null +++ b/data/maps/headers/UndergroundPathRoute7.asm @@ -0,0 +1,3 @@ + + map_header UndergroundPathRoute7, UNDERGROUND_PATH_ROUTE_7, GATE, 0 + end_map_header diff --git a/data/maps/headers/UndergroundPathRoute7Copy.asm b/data/maps/headers/UndergroundPathRoute7Copy.asm new file mode 100755 index 000000000..30bb70a8e --- /dev/null +++ b/data/maps/headers/UndergroundPathRoute7Copy.asm @@ -0,0 +1,3 @@ + + map_header UndergroundPathRoute7Copy, UNDERGROUND_PATH_ROUTE_7, GATE, 0 + end_map_header diff --git a/data/maps/headers/UndergroundPathRoute8.asm b/data/maps/headers/UndergroundPathRoute8.asm new file mode 100755 index 000000000..102d8413d --- /dev/null +++ b/data/maps/headers/UndergroundPathRoute8.asm @@ -0,0 +1,3 @@ + + map_header UndergroundPathRoute8, UNDERGROUND_PATH_ROUTE_8, GATE, 0 + end_map_header diff --git a/data/maps/headers/UndergroundPathWestEast.asm b/data/maps/headers/UndergroundPathWestEast.asm new file mode 100755 index 000000000..05976e87d --- /dev/null +++ b/data/maps/headers/UndergroundPathWestEast.asm @@ -0,0 +1,3 @@ + + map_header UndergroundPathWestEast, UNDERGROUND_PATH_WEST_EAST, UNDERGROUND, 0 + end_map_header diff --git a/data/maps/headers/VermilionCity.asm b/data/maps/headers/VermilionCity.asm new file mode 100755 index 000000000..e211562cc --- /dev/null +++ b/data/maps/headers/VermilionCity.asm @@ -0,0 +1,5 @@ + + map_header VermilionCity, VERMILION_CITY, OVERWORLD, NORTH | EAST + connection north, Route6, ROUTE_6, 5 + connection east, Route11, ROUTE_11, 4 + end_map_header diff --git a/data/maps/headers/VermilionDock.asm b/data/maps/headers/VermilionDock.asm new file mode 100755 index 000000000..9a9b61c24 --- /dev/null +++ b/data/maps/headers/VermilionDock.asm @@ -0,0 +1,3 @@ + + map_header VermilionDock, VERMILION_DOCK, SHIP_PORT, 0 + end_map_header diff --git a/data/maps/headers/VermilionGym.asm b/data/maps/headers/VermilionGym.asm new file mode 100755 index 000000000..ca75b8c13 --- /dev/null +++ b/data/maps/headers/VermilionGym.asm @@ -0,0 +1,3 @@ + + map_header VermilionGym, VERMILION_GYM, GYM, 0 + end_map_header diff --git a/data/maps/headers/VermilionMart.asm b/data/maps/headers/VermilionMart.asm new file mode 100755 index 000000000..5777db4b1 --- /dev/null +++ b/data/maps/headers/VermilionMart.asm @@ -0,0 +1,3 @@ + + map_header VermilionMart, VERMILION_MART, MART, 0 + end_map_header diff --git a/data/maps/headers/VermilionOldRodHouse.asm b/data/maps/headers/VermilionOldRodHouse.asm new file mode 100755 index 000000000..f9c890e0c --- /dev/null +++ b/data/maps/headers/VermilionOldRodHouse.asm @@ -0,0 +1,3 @@ + + map_header VermilionOldRodHouse, VERMILION_OLD_ROD_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/VermilionPidgeyHouse.asm b/data/maps/headers/VermilionPidgeyHouse.asm new file mode 100755 index 000000000..afb817847 --- /dev/null +++ b/data/maps/headers/VermilionPidgeyHouse.asm @@ -0,0 +1,3 @@ + + map_header VermilionPidgeyHouse, VERMILION_PIDGEY_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/VermilionPokecenter.asm b/data/maps/headers/VermilionPokecenter.asm new file mode 100755 index 000000000..af9827acf --- /dev/null +++ b/data/maps/headers/VermilionPokecenter.asm @@ -0,0 +1,3 @@ + + map_header VermilionPokecenter, VERMILION_POKECENTER, POKECENTER, 0 + end_map_header diff --git a/data/maps/headers/VermilionTradeHouse.asm b/data/maps/headers/VermilionTradeHouse.asm new file mode 100755 index 000000000..3cb82c47e --- /dev/null +++ b/data/maps/headers/VermilionTradeHouse.asm @@ -0,0 +1,3 @@ + + map_header VermilionTradeHouse, VERMILION_TRADE_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/VictoryRoad1F.asm b/data/maps/headers/VictoryRoad1F.asm new file mode 100755 index 000000000..dae95f16a --- /dev/null +++ b/data/maps/headers/VictoryRoad1F.asm @@ -0,0 +1,3 @@ + + map_header VictoryRoad1F, VICTORY_ROAD_1F, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/VictoryRoad2F.asm b/data/maps/headers/VictoryRoad2F.asm new file mode 100755 index 000000000..99079ad38 --- /dev/null +++ b/data/maps/headers/VictoryRoad2F.asm @@ -0,0 +1,3 @@ + + map_header VictoryRoad2F, VICTORY_ROAD_2F, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/VictoryRoad3F.asm b/data/maps/headers/VictoryRoad3F.asm new file mode 100755 index 000000000..bc15cad76 --- /dev/null +++ b/data/maps/headers/VictoryRoad3F.asm @@ -0,0 +1,3 @@ + + map_header VictoryRoad3F, VICTORY_ROAD_3F, CAVERN, 0 + end_map_header diff --git a/data/maps/headers/ViridianCity.asm b/data/maps/headers/ViridianCity.asm new file mode 100755 index 000000000..0771cc819 --- /dev/null +++ b/data/maps/headers/ViridianCity.asm @@ -0,0 +1,6 @@ + + map_header ViridianCity, VIRIDIAN_CITY, OVERWORLD, NORTH | SOUTH | WEST + connection north, Route2, ROUTE_2, 5 + connection south, Route1, ROUTE_1, 5 + connection west, Route22, ROUTE_22, 4 + end_map_header diff --git a/data/maps/headers/ViridianForest.asm b/data/maps/headers/ViridianForest.asm new file mode 100755 index 000000000..d531ec862 --- /dev/null +++ b/data/maps/headers/ViridianForest.asm @@ -0,0 +1,3 @@ + + map_header ViridianForest, VIRIDIAN_FOREST, FOREST, 0 + end_map_header diff --git a/data/maps/headers/ViridianForestNorthGate.asm b/data/maps/headers/ViridianForestNorthGate.asm new file mode 100755 index 000000000..5bfcd6edd --- /dev/null +++ b/data/maps/headers/ViridianForestNorthGate.asm @@ -0,0 +1,3 @@ + + map_header ViridianForestNorthGate, VIRIDIAN_FOREST_NORTH_GATE, FOREST_GATE, 0 + end_map_header diff --git a/data/maps/headers/ViridianForestSouthGate.asm b/data/maps/headers/ViridianForestSouthGate.asm new file mode 100755 index 000000000..87a492844 --- /dev/null +++ b/data/maps/headers/ViridianForestSouthGate.asm @@ -0,0 +1,3 @@ + + map_header ViridianForestSouthGate, VIRIDIAN_FOREST_SOUTH_GATE, FOREST_GATE, 0 + end_map_header diff --git a/data/maps/headers/ViridianGym.asm b/data/maps/headers/ViridianGym.asm new file mode 100755 index 000000000..640a71b6c --- /dev/null +++ b/data/maps/headers/ViridianGym.asm @@ -0,0 +1,3 @@ + + map_header ViridianGym, VIRIDIAN_GYM, GYM, 0 + end_map_header diff --git a/data/maps/headers/ViridianMart.asm b/data/maps/headers/ViridianMart.asm new file mode 100755 index 000000000..817b52657 --- /dev/null +++ b/data/maps/headers/ViridianMart.asm @@ -0,0 +1,3 @@ + + map_header ViridianMart, VIRIDIAN_MART, MART, 0 + end_map_header diff --git a/data/maps/headers/ViridianNicknameHouse.asm b/data/maps/headers/ViridianNicknameHouse.asm new file mode 100755 index 000000000..5a7c272fa --- /dev/null +++ b/data/maps/headers/ViridianNicknameHouse.asm @@ -0,0 +1,3 @@ + + map_header ViridianNicknameHouse, VIRIDIAN_NICKNAME_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/ViridianPokecenter.asm b/data/maps/headers/ViridianPokecenter.asm new file mode 100755 index 000000000..daac19f33 --- /dev/null +++ b/data/maps/headers/ViridianPokecenter.asm @@ -0,0 +1,3 @@ + + map_header ViridianPokecenter, VIRIDIAN_POKECENTER, POKECENTER, 0 + end_map_header diff --git a/data/maps/headers/ViridianSchoolHouse.asm b/data/maps/headers/ViridianSchoolHouse.asm new file mode 100755 index 000000000..f5b77212d --- /dev/null +++ b/data/maps/headers/ViridianSchoolHouse.asm @@ -0,0 +1,3 @@ + + map_header ViridianSchoolHouse, VIRIDIAN_SCHOOL_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/WardensHouse.asm b/data/maps/headers/WardensHouse.asm new file mode 100755 index 000000000..08216f59c --- /dev/null +++ b/data/maps/headers/WardensHouse.asm @@ -0,0 +1,3 @@ + + map_header WardensHouse, WARDENS_HOUSE, LAB, 0 + end_map_header diff --git a/data/maps/hide_show_data.asm b/data/maps/hide_show_data.asm new file mode 100755 index 000000000..0e26900f9 --- /dev/null +++ b/data/maps/hide_show_data.asm @@ -0,0 +1,581 @@ +; default hidden/shown objects for each map + +MapHSPointers: +; entries correspond to map ids + dw PalletTownHS + dw ViridianCityHS + dw PewterCityHS + dw CeruleanCityHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw SaffronCityHS + dw NoHS + dw NoHS + dw Route2HS + dw NoHS + dw Route4HS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw Route9HS + dw NoHS + dw NoHS + dw Route12HS + dw NoHS + dw NoHS + dw Route15HS + dw Route16HS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw Route22HS + dw NoHS + dw Route24HS + dw Route25HS + dw NoHS + dw NoHS + dw BluesHouseHS + dw OaksLabHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw ViridianGymHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw ViridianForestHS + dw Museum1FHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw MtMoon1FHS + dw NoHS + dw MtMoonB2FHS + dw NoHS + dw CeruleanTradeHouseHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw PowerPlantHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw BillsHouseHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw SSAnne2FHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw SSAnne1FRoomsHS + dw SSAnne2FRoomsHS + dw SSAnneB1FRoomsHS + dw NoHS + dw NoHS + dw NoHS + dw VictoryRoad1FHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw ChampionsRoomHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw CeladonMansionRoofHouseHS + dw NoHS + dw NoHS + dw GameCornerHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw PokemonTower2FHS + dw PokemonTower3FHS + dw PokemonTower4FHS + dw PokemonTower5FHS + dw PokemonTower6FHS + dw PokemonTower7FHS + dw MrFujisHouseHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw WardensHouseHS + dw NoHS + dw NoHS + dw NoHS + dw SeafoamIslandsB1FHS + dw SeafoamIslandsB2FHS + dw SeafoamIslandsB3FHS + dw SeafoamIslandsB4FHS + dw NoHS + dw NoHS + dw PokemonMansion1FHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw FightingDojoHS + dw NoHS + dw NoHS + dw NoHS + dw SilphCo1FHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw SeafoamIslands1FHS + dw NoHS + dw VictoryRoad2FHS + dw NoHS + dw NoHS + dw NoHS + dw VictoryRoad3FHS + dw RocketHideoutB1FHS + dw RocketHideoutB2FHS + dw RocketHideoutB3FHS + dw RocketHideoutB4FHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw SilphCo2FHS + dw SilphCo3FHS + dw SilphCo4FHS + dw SilphCo5FHS + dw SilphCo6FHS + dw SilphCo7FHS + dw SilphCo8FHS + dw PokemonMansion2FHS + dw PokemonMansion3FHS + dw PokemonMansionB1FHS + dw SafariZoneEastHS + dw SafariZoneNorthHS + dw SafariZoneWestHS + dw SafariZoneCenterHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw CeruleanCave2FHS + dw CeruleanCaveB1FHS + dw CeruleanCaveHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw SilphCo9FHS + dw SilphCo10FHS + dw SilphCo11FHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw NoHS + dw UnusedMapF4HS + dw NoHS + dw NoHS + dw NoHS + dw NoHS ; beach house + dw -1 ; end + +NoHS: + db $FF, $FF, $FF + +MissableObjects: +; entries correspond to HS_* constants (see constants/hide_show_constants) +; format: map id, object id, HIDE/SHOW + +PalletTownHS: + db PALLET_TOWN, $01, HIDE +ViridianCityHS: + db VIRIDIAN_CITY, $05, SHOW + db VIRIDIAN_CITY, $07, HIDE + db VIRIDIAN_CITY, $08, HIDE +PewterCityHS: + db PEWTER_CITY, $03, SHOW + db PEWTER_CITY, $05, SHOW +CeruleanCityHS: + db CERULEAN_CITY, $01, HIDE + db CERULEAN_CITY, $02, SHOW + db CERULEAN_CITY, $06, HIDE + db CERULEAN_CITY, $0A, SHOW + db CERULEAN_CITY, $0B, SHOW +SaffronCityHS: + db SAFFRON_CITY, $01, SHOW + db SAFFRON_CITY, $02, SHOW + db SAFFRON_CITY, $03, SHOW + db SAFFRON_CITY, $04, SHOW + db SAFFRON_CITY, $05, SHOW + db SAFFRON_CITY, $06, SHOW + db SAFFRON_CITY, $07, SHOW + db SAFFRON_CITY, $08, HIDE + db SAFFRON_CITY, $09, HIDE + db SAFFRON_CITY, $0A, HIDE + db SAFFRON_CITY, $0B, HIDE + db SAFFRON_CITY, $0C, HIDE + db SAFFRON_CITY, $0D, HIDE + db SAFFRON_CITY, $0E, SHOW + db SAFFRON_CITY, $0F, HIDE +Route2HS: + db ROUTE_2, $01, SHOW + db ROUTE_2, $02, SHOW +Route4HS: + db ROUTE_4, $03, SHOW +Route9HS: + db ROUTE_9, $0A, SHOW +Route12HS: + db ROUTE_12, $01, SHOW + db ROUTE_12, $09, SHOW + db ROUTE_12, $0A, SHOW +Route15HS: + db ROUTE_15, $0B, SHOW +Route16HS: + db ROUTE_16, $07, SHOW +Route22HS: + db ROUTE_22, $01, HIDE + db ROUTE_22, $02, HIDE +Route24HS: + db ROUTE_24, $01, SHOW + db ROUTE_24, $08, SHOW +Route25HS: + db ROUTE_25, $0A, SHOW +BluesHouseHS: + db BLUES_HOUSE, $01, SHOW + db BLUES_HOUSE, $02, HIDE + db BLUES_HOUSE, $03, SHOW +OaksLabHS: + db OAKS_LAB, $01, SHOW + db OAKS_LAB, $02, SHOW + db OAKS_LAB, $03, HIDE + db OAKS_LAB, $04, SHOW + db OAKS_LAB, $05, SHOW + db OAKS_LAB, $06, HIDE +ViridianGymHS: + db VIRIDIAN_GYM, $01, SHOW + db VIRIDIAN_GYM, $0B, SHOW +Museum1FHS: + db MUSEUM_1F, $05, SHOW +CeruleanTradeHouseHS: ; bulbasaur adoption house + db CERULEAN_TRADE_HOUSE, $02, SHOW +CeruleanCaveHS: + db CERULEAN_CAVE_1F, $01, SHOW + db CERULEAN_CAVE_1F, $02, SHOW + db CERULEAN_CAVE_1F, $03, SHOW + db CERULEAN_CAVE_1F, $04, SHOW +PokemonTower2FHS: + db POKEMON_TOWER_2F, $01, SHOW +PokemonTower3FHS: + db POKEMON_TOWER_3F, $04, SHOW +PokemonTower4FHS: + db POKEMON_TOWER_4F, $04, SHOW + db POKEMON_TOWER_4F, $05, SHOW + db POKEMON_TOWER_4F, $06, SHOW +PokemonTower5FHS: + db POKEMON_TOWER_5F, $06, SHOW +PokemonTower6FHS: + db POKEMON_TOWER_6F, $04, SHOW + db POKEMON_TOWER_6F, $05, SHOW +PokemonTower7FHS: + db POKEMON_TOWER_7F, $01, HIDE ; jessie & james? + db POKEMON_TOWER_7F, $02, HIDE + db POKEMON_TOWER_7F, $03, SHOW +MrFujisHouseHS: + db MR_FUJIS_HOUSE, $05, HIDE +CeladonMansionRoofHouseHS: + db CELADON_MANSION_ROOF_HOUSE, $02, SHOW +GameCornerHS: + db GAME_CORNER, $0B, SHOW +WardensHouseHS: + db WARDENS_HOUSE, $02, SHOW +PokemonMansion1FHS: + db POKEMON_MANSION_1F, $02, SHOW + db POKEMON_MANSION_1F, $03, SHOW +FightingDojoHS: + db FIGHTING_DOJO, $06, SHOW + db FIGHTING_DOJO, $07, SHOW +SilphCo1FHS: + db SILPH_CO_1F, $01, HIDE +PowerPlantHS: + db POWER_PLANT, $01, SHOW + db POWER_PLANT, $02, SHOW + db POWER_PLANT, $03, SHOW + db POWER_PLANT, $04, SHOW + db POWER_PLANT, $05, SHOW + db POWER_PLANT, $06, SHOW + db POWER_PLANT, $07, SHOW + db POWER_PLANT, $08, SHOW + db POWER_PLANT, $09, SHOW + db POWER_PLANT, $0A, SHOW + db POWER_PLANT, $0B, SHOW + db POWER_PLANT, $0C, SHOW + db POWER_PLANT, $0D, SHOW + db POWER_PLANT, $0E, SHOW +VictoryRoad2FHS: + db VICTORY_ROAD_2F, $06, SHOW + db VICTORY_ROAD_2F, $07, SHOW + db VICTORY_ROAD_2F, $08, SHOW + db VICTORY_ROAD_2F, $09, SHOW + db VICTORY_ROAD_2F, $0A, SHOW + db VICTORY_ROAD_2F, $0D, SHOW +BillsHouseHS: + db BILLS_HOUSE, $01, SHOW + db BILLS_HOUSE, $02, HIDE + db BILLS_HOUSE, $03, HIDE +ViridianForestHS: + db VIRIDIAN_FOREST, $07, SHOW + db VIRIDIAN_FOREST, $08, SHOW + db VIRIDIAN_FOREST, $09, SHOW +MtMoon1FHS: + db MT_MOON_1F, $08, SHOW + db MT_MOON_1F, $09, SHOW + db MT_MOON_1F, $0A, SHOW + db MT_MOON_1F, $0B, SHOW + db MT_MOON_1F, $0C, SHOW + db MT_MOON_1F, $0D, SHOW +MtMoonB2FHS: + db MT_MOON_B2F, $02, HIDE + db MT_MOON_B2F, $06, HIDE + db MT_MOON_B2F, $07, SHOW + db MT_MOON_B2F, $08, SHOW + db MT_MOON_B2F, $09, SHOW + db MT_MOON_B2F, $0A, SHOW +SSAnne2FHS: + db SS_ANNE_2F, $02, HIDE +SSAnne1FRoomsHS: + db SS_ANNE_1F_ROOMS, $0A, SHOW +SSAnne2FRoomsHS: + db SS_ANNE_2F_ROOMS, $06, SHOW + db SS_ANNE_2F_ROOMS, $09, SHOW +SSAnneB1FRoomsHS: + db SS_ANNE_B1F_ROOMS, $09, SHOW + db SS_ANNE_B1F_ROOMS, $0A, SHOW + db SS_ANNE_B1F_ROOMS, $0B, SHOW +VictoryRoad3FHS: + db VICTORY_ROAD_3F, $05, SHOW + db VICTORY_ROAD_3F, $06, SHOW + db VICTORY_ROAD_3F, $0A, SHOW +RocketHideoutB1FHS: + db ROCKET_HIDEOUT_B1F, $06, SHOW + db ROCKET_HIDEOUT_B1F, $07, SHOW +RocketHideoutB2FHS: + db ROCKET_HIDEOUT_B2F, $02, SHOW + db ROCKET_HIDEOUT_B2F, $03, SHOW + db ROCKET_HIDEOUT_B2F, $04, SHOW + db ROCKET_HIDEOUT_B2F, $05, SHOW +RocketHideoutB3FHS: + db ROCKET_HIDEOUT_B3F, $03, SHOW + db ROCKET_HIDEOUT_B3F, $04, SHOW +RocketHideoutB4FHS: + db ROCKET_HIDEOUT_B4F, $01, SHOW + db ROCKET_HIDEOUT_B4F, $02, HIDE + db ROCKET_HIDEOUT_B4F, $03, HIDE + db ROCKET_HIDEOUT_B4F, $05, SHOW + db ROCKET_HIDEOUT_B4F, $06, SHOW + db ROCKET_HIDEOUT_B4F, $07, SHOW + db ROCKET_HIDEOUT_B4F, $08, HIDE + db ROCKET_HIDEOUT_B4F, $09, HIDE +SilphCo2FHS: + db SILPH_CO_2F, $01, SHOW + db SILPH_CO_2F, $02, SHOW + db SILPH_CO_2F, $03, SHOW + db SILPH_CO_2F, $04, SHOW + db SILPH_CO_2F, $05, SHOW +SilphCo3FHS: + db SILPH_CO_3F, $02, SHOW + db SILPH_CO_3F, $03, SHOW + db SILPH_CO_3F, $04, SHOW +SilphCo4FHS: + db SILPH_CO_4F, $02, SHOW + db SILPH_CO_4F, $03, SHOW + db SILPH_CO_4F, $04, SHOW + db SILPH_CO_4F, $05, SHOW + db SILPH_CO_4F, $06, SHOW + db SILPH_CO_4F, $07, SHOW +SilphCo5FHS: + db SILPH_CO_5F, $02, SHOW + db SILPH_CO_5F, $03, SHOW + db SILPH_CO_5F, $04, SHOW + db SILPH_CO_5F, $05, SHOW + db SILPH_CO_5F, $06, SHOW + db SILPH_CO_5F, $07, SHOW + db SILPH_CO_5F, $08, SHOW +SilphCo6FHS: + db SILPH_CO_6F, $06, SHOW + db SILPH_CO_6F, $07, SHOW + db SILPH_CO_6F, $08, SHOW + db SILPH_CO_6F, $09, SHOW + db SILPH_CO_6F, $0A, SHOW +SilphCo7FHS: + db SILPH_CO_7F, $05, SHOW + db SILPH_CO_7F, $06, SHOW + db SILPH_CO_7F, $07, SHOW + db SILPH_CO_7F, $08, SHOW + db SILPH_CO_7F, $09, SHOW + db SILPH_CO_7F, $0A, SHOW + db SILPH_CO_7F, $0B, SHOW + db SILPH_CO_7F, $0C, SHOW +SilphCo8FHS: + db SILPH_CO_8F, $02, SHOW + db SILPH_CO_8F, $03, SHOW + db SILPH_CO_8F, $04, SHOW +SilphCo9FHS: + db SILPH_CO_9F, $02, SHOW + db SILPH_CO_9F, $03, SHOW + db SILPH_CO_9F, $04, SHOW +SilphCo10FHS: + db SILPH_CO_10F, $01, SHOW + db SILPH_CO_10F, $02, SHOW + db SILPH_CO_10F, $03, SHOW + db SILPH_CO_10F, $04, SHOW + db SILPH_CO_10F, $05, SHOW + db SILPH_CO_10F, $06, SHOW +SilphCo11FHS: + db SILPH_CO_11F, $03, SHOW + db SILPH_CO_11F, $04, SHOW + db SILPH_CO_11F, $05, SHOW + db SILPH_CO_11F, $06, SHOW +UnusedMapF4HS: + db UNUSED_MAP_F4, $02, SHOW +PokemonMansion2FHS: + db POKEMON_MANSION_2F, $02, SHOW +PokemonMansion3FHS: + db POKEMON_MANSION_3F, $03, SHOW + db POKEMON_MANSION_3F, $04, SHOW +PokemonMansionB1FHS: + db POKEMON_MANSION_B1F, $03, SHOW + db POKEMON_MANSION_B1F, $04, SHOW + db POKEMON_MANSION_B1F, $05, SHOW + db POKEMON_MANSION_B1F, $06, SHOW + db POKEMON_MANSION_B1F, $08, SHOW +SafariZoneEastHS: + db SAFARI_ZONE_EAST, $01, SHOW + db SAFARI_ZONE_EAST, $02, SHOW + db SAFARI_ZONE_EAST, $03, SHOW + db SAFARI_ZONE_EAST, $04, SHOW +SafariZoneNorthHS: + db SAFARI_ZONE_NORTH, $01, SHOW + db SAFARI_ZONE_NORTH, $02, SHOW +SafariZoneWestHS: + db SAFARI_ZONE_WEST, $01, SHOW + db SAFARI_ZONE_WEST, $02, SHOW + db SAFARI_ZONE_WEST, $03, SHOW + db SAFARI_ZONE_WEST, $04, SHOW +SafariZoneCenterHS: + db SAFARI_ZONE_CENTER, $01, SHOW +CeruleanCave2FHS: + db CERULEAN_CAVE_2F, $01, SHOW + db CERULEAN_CAVE_2F, $02, SHOW + db CERULEAN_CAVE_2F, $03, SHOW + db CERULEAN_CAVE_2F, $04, SHOW +CeruleanCaveB1FHS: + db CERULEAN_CAVE_B1F, $01, SHOW + db CERULEAN_CAVE_B1F, $02, SHOW + db CERULEAN_CAVE_B1F, $03, SHOW + db CERULEAN_CAVE_B1F, $04, SHOW + db CERULEAN_CAVE_B1F, $05, SHOW +VictoryRoad1FHS: + db VICTORY_ROAD_1F, $03, SHOW + db VICTORY_ROAD_1F, $04, SHOW +ChampionsRoomHS: + db CHAMPIONS_ROOM, $02, HIDE +SeafoamIslands1FHS: + db SEAFOAM_ISLANDS_1F, $01, SHOW + db SEAFOAM_ISLANDS_1F, $02, SHOW +SeafoamIslandsB1FHS: + db SEAFOAM_ISLANDS_B1F, $01, HIDE + db SEAFOAM_ISLANDS_B1F, $02, HIDE +SeafoamIslandsB2FHS: + db SEAFOAM_ISLANDS_B2F, $01, HIDE + db SEAFOAM_ISLANDS_B2F, $02, HIDE +SeafoamIslandsB3FHS: + db SEAFOAM_ISLANDS_B3F, $02, SHOW + db SEAFOAM_ISLANDS_B3F, $03, SHOW + db SEAFOAM_ISLANDS_B3F, $05, HIDE + db SEAFOAM_ISLANDS_B3F, $06, HIDE +SeafoamIslandsB4FHS: + db SEAFOAM_ISLANDS_B4F, $01, HIDE + db SEAFOAM_ISLANDS_B4F, $02, HIDE + db SEAFOAM_ISLANDS_B4F, $03, SHOW + +BluesHouseHSCopy: +; doesn't seem to be referenced + db BLUES_HOUSE, $01, SHOW + db BLUES_HOUSE, $02, HIDE + db BLUES_HOUSE, $03, SHOW + + db $FF, $01, SHOW diff --git a/data/map_header_banks.asm b/data/maps/map_header_banks.asm similarity index 99% rename from data/map_header_banks.asm rename to data/maps/map_header_banks.asm index f52f0d5fd..98e5b5f5c 100644 --- a/data/map_header_banks.asm +++ b/data/maps/map_header_banks.asm @@ -1,5 +1,5 @@ ; see also MapHeaderPointers -MapHeaderBanks: +MapHeaderBanks:: db BANK(PalletTown_h) db BANK(ViridianCity_h) db BANK(PewterCity_h) diff --git a/data/map_header_pointers.asm b/data/maps/map_header_pointers.asm similarity index 100% rename from data/map_header_pointers.asm rename to data/maps/map_header_pointers.asm diff --git a/data/maps/names.asm b/data/maps/names.asm new file mode 100755 index 000000000..6bdb66d57 --- /dev/null +++ b/data/maps/names.asm @@ -0,0 +1,54 @@ +MapNames: +PalletTownName: db "PALLET TOWN@" +ViridianCityName: db "VIRIDIAN CITY@" +PewterCityName: db "PEWTER CITY@" +CeruleanCityName: db "CERULEAN CITY@" +LavenderTownName: db "LAVENDER TOWN@" +VermilionCityName: db "VERMILION CITY@" +CeladonCityName: db "CELADON CITY@" +FuchsiaCityName: db "FUCHSIA CITY@" +CinnabarIslandName: db "CINNABAR ISLAND@" +IndigoPlateauName: db "INDIGO PLATEAU@" +SaffronCityName: db "SAFFRON CITY@" +Route1Name: db "ROUTE 1@" +Route2Name: db "ROUTE 2@" +Route3Name: db "ROUTE 3@" +Route4Name: db "ROUTE 4@" +Route5Name: db "ROUTE 5@" +Route6Name: db "ROUTE 6@" +Route7Name: db "ROUTE 7@" +Route8Name: db "ROUTE 8@" +Route9Name: db "ROUTE 9@" +Route10Name: db "ROUTE 10@" +Route11Name: db "ROUTE 11@" +Route12Name: db "ROUTE 12@" +Route13Name: db "ROUTE 13@" +Route14Name: db "ROUTE 14@" +Route15Name: db "ROUTE 15@" +Route16Name: db "ROUTE 16@" +Route17Name: db "ROUTE 17@" +Route18Name: db "ROUTE 18@" +Route19Name: db "SEA ROUTE 19@" +Route20Name: db "SEA ROUTE 20@" +Route21Name: db "SEA ROUTE 21@" +Route22Name: db "ROUTE 22@" +Route23Name: db "ROUTE 23@" +Route24Name: db "ROUTE 24@" +Route25Name: db "ROUTE 25@" +ViridianForestName: db "VIRIDIAN FOREST@" +MountMoonName: db "MT.MOON@" +RockTunnelName: db "ROCK TUNNEL@" +SeaCottageName: db "SEA COTTAGE@" +SSAnneName: db "S.S.ANNE@" +PokemonLeagueName: db "#MON LEAGUE@" +UndergroundPathName: db "UNDERGROUND PATH@" +PokemonTowerName: db "#MON TOWER@" +SeafoamIslandsName: db "SEAFOAM ISLANDS@" +VictoryRoadName: db "VICTORY ROAD@" +DiglettsCaveName: db "DIGLETT's CAVE@" +RocketHQName: db "ROCKET HQ@" +SilphCoName: db "SILPH CO.@" +PokemonMansionName: db " MANSION@" +SafariZoneName: db "SAFARI ZONE@" +CeruleanCaveName: db "CERULEAN CAVE@" +PowerPlantName: db "POWER PLANT@" diff --git a/data/maps/objects/AgathasRoom.asm b/data/maps/objects/AgathasRoom.asm new file mode 100755 index 000000000..0f00ea20c --- /dev/null +++ b/data/maps/objects/AgathasRoom.asm @@ -0,0 +1,15 @@ +AgathasRoom_Object: + db $0 ; border block + + def_warps + warp 4, 11, 2, BRUNOS_ROOM + warp 5, 11, 3, BRUNOS_ROOM + warp 4, 0, 0, LANCES_ROOM + warp 5, 0, 0, LANCES_ROOM + + def_signs + + def_objects + object SPRITE_AGATHA, 5, 2, STAY, DOWN, 1, OPP_AGATHA, 1 + + def_warps_to AGATHAS_ROOM diff --git a/data/maps/objects/BeachHouse.asm b/data/maps/objects/BeachHouse.asm new file mode 100644 index 000000000..1ba99f873 --- /dev/null +++ b/data/maps/objects/BeachHouse.asm @@ -0,0 +1,18 @@ +BeachHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 0, LAST_MAP + warp 3, 7, 0, LAST_MAP + + def_signs + sign 3, 0, 3 + sign 7, 0, 4 + sign 11, 0, 5 + sign 13, 1, 6 + + def_objects + object SPRITE_FISHING_GURU, 2, 3, STAY, DOWN, 1 ; surfin' dude + object SPRITE_PIKACHU, 5, 3, WALK, 1, 2 ; pikachu + + def_warps_to BEACH_HOUSE diff --git a/data/maps/objects/BikeShop.asm b/data/maps/objects/BikeShop.asm new file mode 100755 index 000000000..6a6fe6d6d --- /dev/null +++ b/data/maps/objects/BikeShop.asm @@ -0,0 +1,15 @@ +BikeShop_Object: + db $e ; border block + + def_warps + warp 2, 7, 4, LAST_MAP + warp 3, 7, 4, LAST_MAP + + def_signs + + def_objects + object SPRITE_BIKE_SHOP_CLERK, 6, 2, STAY, NONE, 1 ; person + object SPRITE_MIDDLE_AGED_WOMAN, 5, 6, WALK, UP_DOWN, 2 ; person + object SPRITE_YOUNGSTER, 1, 3, STAY, UP, 3 ; person + + def_warps_to BIKE_SHOP diff --git a/data/maps/objects/BillsHouse.asm b/data/maps/objects/BillsHouse.asm new file mode 100755 index 000000000..fad8df05d --- /dev/null +++ b/data/maps/objects/BillsHouse.asm @@ -0,0 +1,15 @@ +BillsHouse_Object: + db $d ; border block + + def_warps + warp 2, 7, 0, LAST_MAP + warp 3, 7, 0, LAST_MAP + + def_signs + + def_objects + object SPRITE_MONSTER, 6, 5, STAY, NONE, 1 ; person + object SPRITE_SUPER_NERD, 4, 4, STAY, NONE, 2 ; person + object SPRITE_SUPER_NERD, 6, 5, STAY, NONE, 3 ; person + + def_warps_to BILLS_HOUSE diff --git a/data/maps/objects/BluesHouse.asm b/data/maps/objects/BluesHouse.asm new file mode 100755 index 000000000..f4931a477 --- /dev/null +++ b/data/maps/objects/BluesHouse.asm @@ -0,0 +1,15 @@ +BluesHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 1, LAST_MAP + warp 3, 7, 1, LAST_MAP + + def_signs + + def_objects + object SPRITE_DAISY, 2, 3, STAY, RIGHT, 1, 0 ; Daisy, sitting by map + object SPRITE_DAISY, 6, 4, WALK, UP_DOWN, 2, 0 ; Daisy, walking around + object SPRITE_POKEDEX, 3, 3, STAY, NONE, 3, 0 ; map on table + + def_warps_to BLUES_HOUSE diff --git a/data/maps/objects/BrunosRoom.asm b/data/maps/objects/BrunosRoom.asm new file mode 100755 index 000000000..f53998747 --- /dev/null +++ b/data/maps/objects/BrunosRoom.asm @@ -0,0 +1,15 @@ +BrunosRoom_Object: + db $3 ; border block + + def_warps + warp 4, 11, 2, LORELEIS_ROOM + warp 5, 11, 3, LORELEIS_ROOM + warp 4, 0, 0, AGATHAS_ROOM + warp 5, 0, 1, AGATHAS_ROOM + + def_signs + + def_objects + object SPRITE_BRUNO, 5, 2, STAY, DOWN, 1, OPP_BRUNO, 1 + + def_warps_to BRUNOS_ROOM diff --git a/data/maps/objects/CeladonChiefHouse.asm b/data/maps/objects/CeladonChiefHouse.asm new file mode 100755 index 000000000..97b9e4c94 --- /dev/null +++ b/data/maps/objects/CeladonChiefHouse.asm @@ -0,0 +1,15 @@ +CeladonChiefHouse_Object: + db $f ; border block + + def_warps + warp 2, 7, 11, LAST_MAP + warp 3, 7, 11, LAST_MAP + + def_signs + + def_objects + object SPRITE_GRAMPS, 4, 2, STAY, DOWN, 1 ; person + object SPRITE_ROCKET, 1, 4, WALK, ANY_DIR, 2 ; person + object SPRITE_SAILOR, 5, 6, STAY, LEFT, 3 ; person + + def_warps_to CELADON_CHIEF_HOUSE diff --git a/data/maps/objects/CeladonCity.asm b/data/maps/objects/CeladonCity.asm new file mode 100755 index 000000000..ddf0afdb5 --- /dev/null +++ b/data/maps/objects/CeladonCity.asm @@ -0,0 +1,41 @@ +CeladonCity_Object: + db $f ; border block + + def_warps + warp 8, 13, 0, CELADON_MART_1F + warp 10, 13, 2, CELADON_MART_1F + warp 24, 9, 0, CELADON_MANSION_1F + warp 24, 3, 2, CELADON_MANSION_1F + warp 25, 3, 2, CELADON_MANSION_1F + warp 41, 9, 0, CELADON_POKECENTER + warp 12, 27, 0, CELADON_GYM + warp 28, 19, 0, GAME_CORNER + warp 39, 19, 0, CELADON_MART_5F ; beta warp! no longer used + warp 33, 19, 0, GAME_CORNER_PRIZE_ROOM + warp 31, 27, 0, CELADON_DINER + warp 35, 27, 0, CELADON_CHIEF_HOUSE + warp 43, 27, 0, CELADON_HOTEL + + def_signs + sign 27, 15, 10 ; CeladonCityText10 + sign 19, 15, 11 ; CeladonCityText11 + sign 42, 9, 12 ; PokeCenterSignText + sign 13, 29, 13 ; CeladonCityText13 + sign 21, 9, 14 ; CeladonCityText14 + sign 12, 13, 15 ; CeladonCityText15 + sign 39, 21, 16 ; CeladonCityText16 + sign 33, 21, 17 ; CeladonCityText17 + sign 27, 21, 18 ; CeladonCityText18 + + def_objects + object SPRITE_LITTLE_GIRL, 8, 17, WALK, ANY_DIR, 1 ; person + object SPRITE_GRAMPS, 11, 28, STAY, UP, 2 ; person + object SPRITE_GIRL, 14, 19, WALK, UP_DOWN, 3 ; person + object SPRITE_GRAMPS, 25, 22, STAY, DOWN, 4 ; person + object SPRITE_GRAMPS, 22, 16, STAY, DOWN, 5 ; person + object SPRITE_FISHER, 32, 12, STAY, LEFT, 6 ; person + object SPRITE_MONSTER, 30, 12, STAY, RIGHT, 7 ; person + object SPRITE_ROCKET, 32, 29, WALK, LEFT_RIGHT, 8 ; person + object SPRITE_ROCKET, 42, 14, WALK, LEFT_RIGHT, 9 ; person + + def_warps_to CELADON_CITY diff --git a/data/maps/objects/CeladonDiner.asm b/data/maps/objects/CeladonDiner.asm new file mode 100755 index 000000000..37c8c876f --- /dev/null +++ b/data/maps/objects/CeladonDiner.asm @@ -0,0 +1,17 @@ +CeladonDiner_Object: + db $f ; border block + + def_warps + warp 3, 7, 10, LAST_MAP + warp 4, 7, 10, LAST_MAP + + def_signs + + def_objects + object SPRITE_COOK, 8, 5, WALK, LEFT_RIGHT, 1 ; person + object SPRITE_MIDDLE_AGED_WOMAN, 7, 2, STAY, NONE, 2 ; person + object SPRITE_MIDDLE_AGED_MAN, 1, 4, STAY, DOWN, 3 ; person + object SPRITE_FISHER, 5, 3, STAY, RIGHT, 4 ; person + object SPRITE_GYM_GUIDE, 0, 1, STAY, DOWN, 5 ; person + + def_warps_to CELADON_DINER diff --git a/data/maps/objects/CeladonGym.asm b/data/maps/objects/CeladonGym.asm new file mode 100755 index 000000000..197a254b5 --- /dev/null +++ b/data/maps/objects/CeladonGym.asm @@ -0,0 +1,20 @@ +CeladonGym_Object: + db $3 ; border block + + def_warps + warp 4, 17, 6, LAST_MAP + warp 5, 17, 6, LAST_MAP + + def_signs + + def_objects + object SPRITE_ERIKA, 4, 3, STAY, DOWN, 1, OPP_ERIKA, 1 + object SPRITE_COOLTRAINER_F, 2, 11, STAY, RIGHT, 2, OPP_LASS, 17 + object SPRITE_BEAUTY, 7, 10, STAY, LEFT, 3, OPP_BEAUTY, 1 + object SPRITE_COOLTRAINER_F, 9, 5, STAY, DOWN, 4, OPP_JR_TRAINER_F, 11 + object SPRITE_BEAUTY, 1, 5, STAY, DOWN, 5, OPP_BEAUTY, 2 + object SPRITE_COOLTRAINER_F, 6, 3, STAY, DOWN, 6, OPP_LASS, 18 + object SPRITE_BEAUTY, 3, 3, STAY, DOWN, 7, OPP_BEAUTY, 3 + object SPRITE_COOLTRAINER_F, 5, 3, STAY, DOWN, 8, OPP_COOLTRAINER_F, 1 + + def_warps_to CELADON_GYM diff --git a/data/maps/objects/CeladonHotel.asm b/data/maps/objects/CeladonHotel.asm new file mode 100755 index 000000000..a516f1416 --- /dev/null +++ b/data/maps/objects/CeladonHotel.asm @@ -0,0 +1,15 @@ +CeladonHotel_Object: + db $0 ; border block + + def_warps + warp 3, 7, 12, LAST_MAP + warp 4, 7, 12, LAST_MAP + + def_signs + + def_objects + object SPRITE_GRANNY, 3, 1, STAY, DOWN, 1 ; person + object SPRITE_BEAUTY, 2, 4, STAY, NONE, 2 ; person + object SPRITE_SUPER_NERD, 8, 4, WALK, LEFT_RIGHT, 3 ; person + + def_warps_to CELADON_HOTEL diff --git a/data/maps/objects/CeladonMansion1F.asm b/data/maps/objects/CeladonMansion1F.asm new file mode 100755 index 000000000..63eb686c3 --- /dev/null +++ b/data/maps/objects/CeladonMansion1F.asm @@ -0,0 +1,20 @@ +CeladonMansion1F_Object: + db $f ; border block + + def_warps + warp 4, 11, 2, LAST_MAP + warp 5, 11, 2, LAST_MAP + warp 4, 0, 4, LAST_MAP + warp 7, 1, 1, CELADON_MANSION_2F + warp 2, 1, 2, CELADON_MANSION_2F + + def_signs + sign 4, 9, 5 ; CeladonMansion1Text5 + + def_objects + object SPRITE_MONSTER, 0, 5, STAY, RIGHT, 1 ; person + object SPRITE_GRANNY, 1, 5, STAY, DOWN, 2 ; person + object SPRITE_FAIRY, 1, 8, WALK, LEFT_RIGHT, 3 ; person + object SPRITE_MONSTER, 4, 4, WALK, UP_DOWN, 4 ; person + + def_warps_to CELADON_MANSION_1F diff --git a/data/maps/objects/CeladonMansion2F.asm b/data/maps/objects/CeladonMansion2F.asm new file mode 100755 index 000000000..211abbdaf --- /dev/null +++ b/data/maps/objects/CeladonMansion2F.asm @@ -0,0 +1,15 @@ +CeladonMansion2F_Object: + db $f ; border block + + def_warps + warp 6, 1, 0, CELADON_MANSION_3F + warp 7, 1, 3, CELADON_MANSION_1F + warp 2, 1, 4, CELADON_MANSION_1F + warp 4, 1, 3, CELADON_MANSION_3F + + def_signs + sign 4, 9, 1 ; CeladonMansion2Text1 + + def_objects + + def_warps_to CELADON_MANSION_2F diff --git a/data/maps/objects/CeladonMansion3F.asm b/data/maps/objects/CeladonMansion3F.asm new file mode 100755 index 000000000..442f3c23a --- /dev/null +++ b/data/maps/objects/CeladonMansion3F.asm @@ -0,0 +1,22 @@ +CeladonMansion3F_Object: + db $f ; border block + + def_warps + warp 6, 1, 0, CELADON_MANSION_2F + warp 7, 1, 0, CELADON_MANSION_ROOF + warp 2, 1, 1, CELADON_MANSION_ROOF + warp 4, 1, 3, CELADON_MANSION_2F + + def_signs + sign 1, 3, 5 ; CeladonMansion3Text5 + sign 4, 3, 6 ; CeladonMansion3Text6 + sign 1, 6, 7 ; CeladonMansion3Text7 + sign 4, 9, 8 ; CeladonMansion3Text8 + + def_objects + object SPRITE_BIKE_SHOP_CLERK, 0, 4, STAY, UP, 1 ; person + object SPRITE_CLERK, 3, 4, STAY, UP, 2 ; person + object SPRITE_SUPER_NERD, 0, 7, STAY, UP, 3 ; person + object SPRITE_SILPH_WORKER, 2, 3, STAY, NONE, 4 ; person + + def_warps_to CELADON_MANSION_3F diff --git a/data/maps/objects/CeladonMansionRoof.asm b/data/maps/objects/CeladonMansionRoof.asm new file mode 100755 index 000000000..e3eb8aa74 --- /dev/null +++ b/data/maps/objects/CeladonMansionRoof.asm @@ -0,0 +1,14 @@ +CeladonMansionRoof_Object: + db $9 ; border block + + def_warps + warp 6, 1, 1, CELADON_MANSION_3F + warp 2, 1, 2, CELADON_MANSION_3F + warp 2, 7, 0, CELADON_MANSION_ROOF_HOUSE + + def_signs + sign 3, 7, 1 ; CeladonMansion4Text1 + + def_objects + + def_warps_to CELADON_MANSION_ROOF diff --git a/data/maps/objects/CeladonMansionRoofHouse.asm b/data/maps/objects/CeladonMansionRoofHouse.asm new file mode 100755 index 000000000..1656bdcf2 --- /dev/null +++ b/data/maps/objects/CeladonMansionRoofHouse.asm @@ -0,0 +1,14 @@ +CeladonMansionRoofHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 2, CELADON_MANSION_ROOF + warp 3, 7, 2, CELADON_MANSION_ROOF + + def_signs + + def_objects + object SPRITE_HIKER, 2, 2, STAY, DOWN, 1 ; person + object SPRITE_POKE_BALL, 4, 3, STAY, NONE, 2 ; person + + def_warps_to CELADON_MANSION_ROOF_HOUSE diff --git a/data/maps/objects/CeladonMart1F.asm b/data/maps/objects/CeladonMart1F.asm new file mode 100755 index 000000000..3edcbe3f4 --- /dev/null +++ b/data/maps/objects/CeladonMart1F.asm @@ -0,0 +1,19 @@ +CeladonMart1F_Object: + db $f ; border block + + def_warps + warp 2, 7, 0, LAST_MAP + warp 3, 7, 0, LAST_MAP + warp 16, 7, 1, LAST_MAP + warp 17, 7, 1, LAST_MAP + warp 12, 1, 0, CELADON_MART_2F + warp 1, 1, 0, CELADON_MART_ELEVATOR + + def_signs + sign 11, 4, 2 ; CeladonMart1Text2 + sign 14, 1, 3 ; CeladonMart1Text3 + + def_objects + object SPRITE_LINK_RECEPTIONIST, 8, 3, STAY, DOWN, 1 ; person + + def_warps_to CELADON_MART_1F diff --git a/data/maps/objects/CeladonMart2F.asm b/data/maps/objects/CeladonMart2F.asm new file mode 100755 index 000000000..19b2aa59f --- /dev/null +++ b/data/maps/objects/CeladonMart2F.asm @@ -0,0 +1,18 @@ +CeladonMart2F_Object: + db $f ; border block + + def_warps + warp 12, 1, 4, CELADON_MART_1F + warp 16, 1, 1, CELADON_MART_3F + warp 1, 1, 0, CELADON_MART_ELEVATOR + + def_signs + sign 14, 1, 5 ; CeladonMart2Text5 + + def_objects + object SPRITE_CLERK, 5, 3, STAY, DOWN, 1 ; person + object SPRITE_CLERK, 6, 3, STAY, DOWN, 2 ; person + object SPRITE_MIDDLE_AGED_MAN, 19, 5, STAY, NONE, 3 ; person + object SPRITE_GIRL, 14, 4, WALK, UP_DOWN, 4 ; person + + def_warps_to CELADON_MART_2F diff --git a/data/maps/objects/CeladonMart3F.asm b/data/maps/objects/CeladonMart3F.asm new file mode 100755 index 000000000..e1e8c8f2b --- /dev/null +++ b/data/maps/objects/CeladonMart3F.asm @@ -0,0 +1,30 @@ +CeladonMart3F_Object: + db $f ; border block + + def_warps + warp 12, 1, 0, CELADON_MART_4F + warp 16, 1, 1, CELADON_MART_2F + warp 1, 1, 0, CELADON_MART_ELEVATOR + + def_signs + sign 2, 4, 6 ; CeladonMart3Text6 + sign 3, 4, 7 ; CeladonMart3Text7 + sign 5, 4, 8 ; CeladonMart3Text8 + sign 6, 4, 9 ; CeladonMart3Text9 + sign 2, 6, 10 ; CeladonMart3Text10 + sign 3, 6, 11 ; CeladonMart3Text11 + sign 5, 6, 12 ; CeladonMart3Text12 + sign 6, 6, 13 ; CeladonMart3Text13 + sign 14, 1, 14 ; CeladonMart3Text14 + sign 4, 1, 15 ; CeladonMart3Text15 + sign 6, 1, 16 ; CeladonMart3Text16 + sign 10, 1, 17 ; CeladonMart3Text17 + + def_objects + object SPRITE_CLERK, 16, 5, STAY, NONE, 1 ; person + object SPRITE_GAMEBOY_KID, 11, 6, STAY, RIGHT, 2 ; person + object SPRITE_GAMEBOY_KID, 7, 2, STAY, DOWN, 3 ; person + object SPRITE_GAMEBOY_KID, 8, 2, STAY, DOWN, 4 ; person + object SPRITE_LITTLE_BOY, 2, 5, STAY, UP, 5 ; person + + def_warps_to CELADON_MART_3F diff --git a/data/maps/objects/CeladonMart4F.asm b/data/maps/objects/CeladonMart4F.asm new file mode 100755 index 000000000..72ed03383 --- /dev/null +++ b/data/maps/objects/CeladonMart4F.asm @@ -0,0 +1,17 @@ +CeladonMart4F_Object: + db $f ; border block + + def_warps + warp 12, 1, 0, CELADON_MART_3F + warp 16, 1, 1, CELADON_MART_5F + warp 1, 1, 0, CELADON_MART_ELEVATOR + + def_signs + sign 14, 1, 4 ; CeladonMart4Text4 + + def_objects + object SPRITE_CLERK, 5, 7, STAY, NONE, 1 ; person + object SPRITE_SUPER_NERD, 15, 5, WALK, LEFT_RIGHT, 2 ; person + object SPRITE_YOUNGSTER, 5, 2, WALK, LEFT_RIGHT, 3 ; person + + def_warps_to CELADON_MART_4F diff --git a/data/maps/objects/CeladonMart5F.asm b/data/maps/objects/CeladonMart5F.asm new file mode 100755 index 000000000..2583526cd --- /dev/null +++ b/data/maps/objects/CeladonMart5F.asm @@ -0,0 +1,18 @@ +CeladonMart5F_Object: + db $f ; border block + + def_warps + warp 12, 1, 0, CELADON_MART_ROOF + warp 16, 1, 1, CELADON_MART_4F + warp 1, 1, 0, CELADON_MART_ELEVATOR + + def_signs + sign 14, 1, 5 ; CeladonMart5Text5 + + def_objects + object SPRITE_GENTLEMAN, 14, 5, WALK, UP_DOWN, 1 ; person + object SPRITE_SAILOR, 2, 6, STAY, NONE, 2 ; person + object SPRITE_CLERK, 5, 3, STAY, DOWN, 3 ; person + object SPRITE_CLERK, 6, 3, STAY, DOWN, 4 ; person + + def_warps_to CELADON_MART_5F diff --git a/data/maps/objects/CeladonMartElevator.asm b/data/maps/objects/CeladonMartElevator.asm new file mode 100755 index 000000000..d03984a65 --- /dev/null +++ b/data/maps/objects/CeladonMartElevator.asm @@ -0,0 +1,13 @@ +CeladonMartElevator_Object: + db $f ; border block + + def_warps + warp 1, 3, 5, CELADON_MART_1F + warp 2, 3, 5, CELADON_MART_1F + + def_signs + sign 3, 0, 1 ; CeladonMartElevatorText1 + + def_objects + + def_warps_to CELADON_MART_ELEVATOR diff --git a/data/maps/objects/CeladonMartRoof.asm b/data/maps/objects/CeladonMartRoof.asm new file mode 100755 index 000000000..49b5ab6fa --- /dev/null +++ b/data/maps/objects/CeladonMartRoof.asm @@ -0,0 +1,17 @@ +CeladonMartRoof_Object: + db $42 ; border block + + def_warps + warp 15, 2, 0, CELADON_MART_5F + + def_signs + sign 10, 1, 3 ; CeladonMartRoofText3 + sign 11, 1, 4 ; CeladonMartRoofText4 + sign 12, 2, 5 ; CeladonMartRoofText5 + sign 13, 2, 6 ; CeladonMartRoofText6 + + def_objects + object SPRITE_SUPER_NERD, 10, 4, STAY, LEFT, 1 ; person + object SPRITE_LITTLE_GIRL, 5, 5, WALK, ANY_DIR, 2 ; person + + def_warps_to CELADON_MART_ROOF diff --git a/data/maps/objects/CeladonPokecenter.asm b/data/maps/objects/CeladonPokecenter.asm new file mode 100755 index 000000000..0a298fd04 --- /dev/null +++ b/data/maps/objects/CeladonPokecenter.asm @@ -0,0 +1,17 @@ +CeladonPokecenter_Object: + db $0 ; border block + + def_warps + warp 3, 7, 5, LAST_MAP + warp 4, 7, 5, LAST_MAP + + def_signs + + def_objects + object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person + object SPRITE_GENTLEMAN, 7, 3, STAY, DOWN, 2 ; person + object SPRITE_BEAUTY, 10, 5, WALK, ANY_DIR, 3 ; person + object SPRITE_LINK_RECEPTIONIST, 11, 2, STAY, DOWN, 4 ; person + object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person + + def_warps_to CELADON_POKECENTER diff --git a/data/maps/objects/CeruleanBadgeHouse.asm b/data/maps/objects/CeruleanBadgeHouse.asm new file mode 100755 index 000000000..50d2087a0 --- /dev/null +++ b/data/maps/objects/CeruleanBadgeHouse.asm @@ -0,0 +1,14 @@ +CeruleanBadgeHouse_Object: + db $c ; border block + + def_warps + warp 2, 0, 9, LAST_MAP + warp 2, 7, 8, LAST_MAP + warp 3, 7, 8, LAST_MAP + + def_signs + + def_objects + object SPRITE_MIDDLE_AGED_MAN, 5, 3, STAY, RIGHT, 1 ; person + + def_warps_to CERULEAN_BADGE_HOUSE diff --git a/data/maps/objects/CeruleanCave1F.asm b/data/maps/objects/CeruleanCave1F.asm new file mode 100755 index 000000000..8c3d260ed --- /dev/null +++ b/data/maps/objects/CeruleanCave1F.asm @@ -0,0 +1,23 @@ +CeruleanCave1F_Object: + db $7d ; border block + + def_warps + warp 24, 17, 6, LAST_MAP + warp 25, 17, 6, LAST_MAP + warp 27, 1, 0, CERULEAN_CAVE_2F + warp 23, 7, 1, CERULEAN_CAVE_2F + warp 18, 9, 2, CERULEAN_CAVE_2F + warp 7, 1, 3, CERULEAN_CAVE_2F + warp 1, 3, 4, CERULEAN_CAVE_2F + warp 3, 11, 5, CERULEAN_CAVE_2F + warp 0, 6, 0, CERULEAN_CAVE_B1F + + def_signs + + def_objects + object SPRITE_POKE_BALL, 29, 16, STAY, NONE, 1, RARE_CANDY + object SPRITE_POKE_BALL, 7, 11, STAY, NONE, 2, MAX_ELIXER + object SPRITE_POKE_BALL, 29, 9, STAY, NONE, 3, MAX_REVIVE + object SPRITE_POKE_BALL, 18, 3, STAY, NONE, 4, ULTRA_BALL + + def_warps_to CERULEAN_CAVE_1F diff --git a/data/maps/objects/CeruleanCave2F.asm b/data/maps/objects/CeruleanCave2F.asm new file mode 100755 index 000000000..787ae5398 --- /dev/null +++ b/data/maps/objects/CeruleanCave2F.asm @@ -0,0 +1,20 @@ +CeruleanCave2F_Object: + db $7d ; border block + + def_warps + warp 29, 1, 2, CERULEAN_CAVE_1F + warp 22, 6, 3, CERULEAN_CAVE_1F + warp 19, 7, 4, CERULEAN_CAVE_1F + warp 9, 1, 5, CERULEAN_CAVE_1F + warp 1, 3, 6, CERULEAN_CAVE_1F + warp 3, 11, 7, CERULEAN_CAVE_1F + + def_signs + + def_objects + object SPRITE_POKE_BALL, 0, 11, STAY, NONE, 1, RARE_CANDY + object SPRITE_POKE_BALL, 16, 7, STAY, NONE, 2, ULTRA_BALL + object SPRITE_POKE_BALL, 19, 11, STAY, NONE, 3, MAX_REVIVE + object SPRITE_POKE_BALL, 27, 9, STAY, NONE, 4, FULL_RESTORE + + def_warps_to CERULEAN_CAVE_2F diff --git a/data/maps/objects/CeruleanCaveB1F.asm b/data/maps/objects/CeruleanCaveB1F.asm new file mode 100755 index 000000000..3493ab7ed --- /dev/null +++ b/data/maps/objects/CeruleanCaveB1F.asm @@ -0,0 +1,16 @@ +CeruleanCaveB1F_Object: + db $7d ; border block + + def_warps + warp 3, 6, 8, CERULEAN_CAVE_1F + + def_signs + + def_objects + object SPRITE_MONSTER, 27, 13, STAY, DOWN, 1, MEWTWO, 70 + object SPRITE_POKE_BALL, 26, 1, STAY, NONE, 2, ULTRA_BALL + object SPRITE_POKE_BALL, 2, 13, STAY, NONE, 3, ULTRA_BALL + object SPRITE_POKE_BALL, 3, 13, STAY, NONE, 4, MAX_REVIVE + object SPRITE_POKE_BALL, 15, 3, STAY, NONE, 5, MAX_ELIXER + + def_warps_to CERULEAN_CAVE_B1F diff --git a/data/maps/objects/CeruleanCity.asm b/data/maps/objects/CeruleanCity.asm new file mode 100755 index 000000000..fae56fc1f --- /dev/null +++ b/data/maps/objects/CeruleanCity.asm @@ -0,0 +1,37 @@ +CeruleanCity_Object: + db $a ; border block + + def_warps + warp 27, 11, 0, CERULEAN_TRASHED_HOUSE + warp 13, 15, 0, CERULEAN_TRADE_HOUSE + warp 19, 17, 0, CERULEAN_POKECENTER + warp 30, 19, 0, CERULEAN_GYM + warp 13, 25, 0, BIKE_SHOP + warp 25, 25, 0, CERULEAN_MART + warp 4, 11, 0, CERULEAN_CAVE_1F + warp 27, 9, 2, CERULEAN_TRASHED_HOUSE + warp 9, 11, 1, CERULEAN_BADGE_HOUSE + warp 9, 9, 0, CERULEAN_BADGE_HOUSE + + def_signs + sign 23, 19, 12 ; CeruleanCityText12 + sign 17, 29, 13 ; CeruleanCityText13 + sign 26, 25, 14 ; MartSignText + sign 20, 17, 15 ; PokeCenterSignText + sign 11, 25, 16 ; CeruleanCityText16 + sign 27, 21, 17 ; CeruleanCityText17 + + def_objects + object SPRITE_BLUE, 20, 2, STAY, DOWN, 1 ; person + object SPRITE_ROCKET, 30, 8, STAY, NONE, 2, OPP_ROCKET, 5 + object SPRITE_COOLTRAINER_M, 31, 20, STAY, DOWN, 3 ; person + object SPRITE_SUPER_NERD, 15, 18, WALK, UP_DOWN, 4 ; person + object SPRITE_SUPER_NERD, 9, 21, WALK, LEFT_RIGHT, 5 ; person + object SPRITE_OFFICER_JENNY, 28, 12, STAY, DOWN, 6 ; person + object SPRITE_COOLTRAINER_F, 29, 26, STAY, LEFT, 7 ; person + object SPRITE_POKE_BALL, 28, 26, STAY, DOWN, 8 ; person + object SPRITE_COOLTRAINER_F, 9, 27, WALK, LEFT_RIGHT, 9 ; person + object SPRITE_SUPER_NERD, 4, 12, STAY, DOWN, 10 ; person + object SPRITE_OFFICER_JENNY, 27, 12, STAY, DOWN, 11 ; person + + def_warps_to CERULEAN_CITY diff --git a/data/maps/objects/CeruleanGym.asm b/data/maps/objects/CeruleanGym.asm new file mode 100755 index 000000000..26709cae5 --- /dev/null +++ b/data/maps/objects/CeruleanGym.asm @@ -0,0 +1,16 @@ +CeruleanGym_Object: + db $3 ; border block + + def_warps + warp 4, 13, 3, LAST_MAP + warp 5, 13, 3, LAST_MAP + + def_signs + + def_objects + object SPRITE_BRUNETTE_GIRL, 4, 2, STAY, DOWN, 1, OPP_MISTY, 1 + object SPRITE_COOLTRAINER_F, 2, 3, STAY, RIGHT, 2, OPP_JR_TRAINER_F, 1 + object SPRITE_SWIMMER, 8, 7, STAY, LEFT, 3, OPP_SWIMMER, 1 + object SPRITE_GYM_GUIDE, 7, 10, STAY, DOWN, 4 ; person + + def_warps_to CERULEAN_GYM diff --git a/data/maps/objects/CeruleanMart.asm b/data/maps/objects/CeruleanMart.asm new file mode 100755 index 000000000..144edd808 --- /dev/null +++ b/data/maps/objects/CeruleanMart.asm @@ -0,0 +1,15 @@ +CeruleanMart_Object: + db $0 ; border block + + def_warps + warp 3, 7, 5, LAST_MAP + warp 4, 7, 5, LAST_MAP + + def_signs + + def_objects + object SPRITE_CLERK, 0, 5, STAY, RIGHT, 1 ; person + object SPRITE_COOLTRAINER_M, 3, 4, WALK, UP_DOWN, 2 ; person + object SPRITE_COOLTRAINER_F, 6, 2, WALK, LEFT_RIGHT, 3 ; person + + def_warps_to CERULEAN_MART diff --git a/data/maps/objects/CeruleanPokecenter.asm b/data/maps/objects/CeruleanPokecenter.asm new file mode 100755 index 000000000..b90db6a50 --- /dev/null +++ b/data/maps/objects/CeruleanPokecenter.asm @@ -0,0 +1,17 @@ +CeruleanPokecenter_Object: + db $0 ; border block + + def_warps + warp 3, 7, 2, LAST_MAP + warp 4, 7, 2, LAST_MAP + + def_signs + + def_objects + object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person + object SPRITE_SUPER_NERD, 10, 5, WALK, ANY_DIR, 2 ; person + object SPRITE_GENTLEMAN, 4, 3, STAY, UP, 3 ; person + object SPRITE_LINK_RECEPTIONIST, 11, 2, STAY, DOWN, 4 ; person + object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person + + def_warps_to CERULEAN_POKECENTER diff --git a/data/maps/objects/CeruleanTradeHouse.asm b/data/maps/objects/CeruleanTradeHouse.asm new file mode 100755 index 000000000..a52548fe4 --- /dev/null +++ b/data/maps/objects/CeruleanTradeHouse.asm @@ -0,0 +1,16 @@ +CeruleanTradeHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 1, LAST_MAP + warp 3, 7, 1, LAST_MAP + + def_signs + + def_objects + object SPRITE_GIRL, 3, 1, STAY, DOWN, 1 ; person + object SPRITE_BULBASAUR, 4, 1, STAY, DOWN, 2 ; person + object SPRITE_ODDISH, 1, 4, STAY, NONE, 3 ; person + object SPRITE_SANDSHREW, 5, 3, STAY, LEFT, 4 ; person + + def_warps_to CERULEAN_TRADE_HOUSE diff --git a/data/maps/objects/CeruleanTrashedHouse.asm b/data/maps/objects/CeruleanTrashedHouse.asm new file mode 100755 index 000000000..9f5023193 --- /dev/null +++ b/data/maps/objects/CeruleanTrashedHouse.asm @@ -0,0 +1,16 @@ +CeruleanTrashedHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 0, LAST_MAP + warp 3, 7, 0, LAST_MAP + warp 3, 0, 7, LAST_MAP + + def_signs + sign 3, 0, 3 ; CeruleanHouseTrashedText3 + + def_objects + object SPRITE_FISHING_GURU, 2, 1, STAY, DOWN, 1 ; person + object SPRITE_GIRL, 5, 6, WALK, LEFT_RIGHT, 2 ; person + + def_warps_to CERULEAN_TRASHED_HOUSE diff --git a/data/maps/objects/ChampionsRoom.asm b/data/maps/objects/ChampionsRoom.asm new file mode 100755 index 000000000..2380fd04c --- /dev/null +++ b/data/maps/objects/ChampionsRoom.asm @@ -0,0 +1,16 @@ +ChampionsRoom_Object: + db $3 ; border block + + def_warps + warp 3, 7, 1, LANCES_ROOM + warp 4, 7, 2, LANCES_ROOM + warp 3, 0, 0, HALL_OF_FAME + warp 4, 0, 0, HALL_OF_FAME + + def_signs + + def_objects + object SPRITE_BLUE, 4, 2, STAY, DOWN, 1 ; person + object SPRITE_OAK, 3, 7, STAY, UP, 2 ; person + + def_warps_to CHAMPIONS_ROOM diff --git a/data/maps/objects/CinnabarGym.asm b/data/maps/objects/CinnabarGym.asm new file mode 100755 index 000000000..a680d3fdf --- /dev/null +++ b/data/maps/objects/CinnabarGym.asm @@ -0,0 +1,21 @@ +CinnabarGym_Object: + db $2e ; border block + + def_warps + warp 16, 17, 1, LAST_MAP + warp 17, 17, 1, LAST_MAP + + def_signs + + def_objects + object SPRITE_SILPH_PRESIDENT, 3, 3, STAY, DOWN, 1, OPP_BLAINE, 1 + object SPRITE_SUPER_NERD, 17, 2, STAY, DOWN, 2, OPP_SUPER_NERD, 9 + object SPRITE_SUPER_NERD, 17, 8, STAY, DOWN, 3, OPP_BURGLAR, 4 + object SPRITE_SUPER_NERD, 11, 4, STAY, DOWN, 4, OPP_SUPER_NERD, 10 + object SPRITE_SUPER_NERD, 11, 8, STAY, DOWN, 5, OPP_BURGLAR, 5 + object SPRITE_SUPER_NERD, 11, 14, STAY, DOWN, 6, OPP_SUPER_NERD, 11 + object SPRITE_SUPER_NERD, 3, 14, STAY, DOWN, 7, OPP_BURGLAR, 6 + object SPRITE_SUPER_NERD, 3, 8, STAY, DOWN, 8, OPP_SUPER_NERD, 12 + object SPRITE_GYM_GUIDE, 16, 13, STAY, DOWN, 9 ; person + + def_warps_to CINNABAR_GYM diff --git a/data/maps/objects/CinnabarIsland.asm b/data/maps/objects/CinnabarIsland.asm new file mode 100755 index 000000000..1dd11a431 --- /dev/null +++ b/data/maps/objects/CinnabarIsland.asm @@ -0,0 +1,22 @@ +CinnabarIsland_Object: + db $43 ; border block + + def_warps + warp 6, 3, 1, POKEMON_MANSION_1F + warp 18, 3, 0, CINNABAR_GYM + warp 6, 9, 0, CINNABAR_LAB + warp 11, 11, 0, CINNABAR_POKECENTER + warp 15, 11, 0, CINNABAR_MART + + def_signs + sign 9, 5, 3 ; CinnabarIslandText3 + sign 16, 11, 4 ; MartSignText + sign 12, 11, 5 ; PokeCenterSignText + sign 9, 11, 6 ; CinnabarIslandText6 + sign 13, 3, 7 ; CinnabarIslandText7 + + def_objects + object SPRITE_GIRL, 12, 5, WALK, LEFT_RIGHT, 1 ; person + object SPRITE_GAMBLER, 14, 6, STAY, NONE, 2 ; person + + def_warps_to CINNABAR_ISLAND diff --git a/data/maps/objects/CinnabarLab.asm b/data/maps/objects/CinnabarLab.asm new file mode 100755 index 000000000..0e007e3a7 --- /dev/null +++ b/data/maps/objects/CinnabarLab.asm @@ -0,0 +1,20 @@ +CinnabarLab_Object: + db $17 ; border block + + def_warps + warp 2, 7, 2, LAST_MAP + warp 3, 7, 2, LAST_MAP + warp 8, 4, 0, CINNABAR_LAB_TRADE_ROOM + warp 12, 4, 0, CINNABAR_LAB_METRONOME_ROOM + warp 16, 4, 0, CINNABAR_LAB_FOSSIL_ROOM + + def_signs + sign 3, 2, 2 ; Lab1Text2 + sign 9, 4, 3 ; Lab1Text3 + sign 13, 4, 4 ; Lab1Text4 + sign 17, 4, 5 ; Lab1Text5 + + def_objects + object SPRITE_FISHING_GURU, 1, 3, STAY, NONE, 1 ; person + + def_warps_to CINNABAR_LAB diff --git a/data/maps/objects/CinnabarLabFossilRoom.asm b/data/maps/objects/CinnabarLabFossilRoom.asm new file mode 100755 index 000000000..8269eaeb9 --- /dev/null +++ b/data/maps/objects/CinnabarLabFossilRoom.asm @@ -0,0 +1,14 @@ +CinnabarLabFossilRoom_Object: + db $17 ; border block + + def_warps + warp 2, 7, 4, CINNABAR_LAB + warp 3, 7, 4, CINNABAR_LAB + + def_signs + + def_objects + object SPRITE_SCIENTIST, 5, 2, WALK, LEFT_RIGHT, 1 ; person + object SPRITE_SCIENTIST, 7, 6, STAY, UP, 2 ; person + + def_warps_to CINNABAR_LAB_FOSSIL_ROOM diff --git a/data/maps/objects/CinnabarLabMetronomeRoom.asm b/data/maps/objects/CinnabarLabMetronomeRoom.asm new file mode 100755 index 000000000..b5969dfa0 --- /dev/null +++ b/data/maps/objects/CinnabarLabMetronomeRoom.asm @@ -0,0 +1,17 @@ +CinnabarLabMetronomeRoom_Object: + db $17 ; border block + + def_warps + warp 2, 7, 3, CINNABAR_LAB + warp 3, 7, 3, CINNABAR_LAB + + def_signs + sign 0, 4, 3 ; Lab3Text3 + sign 1, 4, 4 ; Lab3Text4 + sign 2, 1, 5 ; Lab3Text5 + + def_objects + object SPRITE_SCIENTIST, 7, 2, STAY, DOWN, 1 ; person + object SPRITE_SCIENTIST, 2, 3, WALK, LEFT_RIGHT, 2 ; person + + def_warps_to CINNABAR_LAB_METRONOME_ROOM diff --git a/data/maps/objects/CinnabarLabTradeRoom.asm b/data/maps/objects/CinnabarLabTradeRoom.asm new file mode 100755 index 000000000..e23a19cf3 --- /dev/null +++ b/data/maps/objects/CinnabarLabTradeRoom.asm @@ -0,0 +1,15 @@ +CinnabarLabTradeRoom_Object: + db $17 ; border block + + def_warps + warp 2, 7, 2, CINNABAR_LAB + warp 3, 7, 2, CINNABAR_LAB + + def_signs + + def_objects + object SPRITE_SUPER_NERD, 3, 2, STAY, DOWN, 1 ; person + object SPRITE_GRAMPS, 1, 4, STAY, NONE, 2 ; person + object SPRITE_BEAUTY, 5, 5, STAY, UP, 3 ; person + + def_warps_to CINNABAR_LAB_TRADE_ROOM diff --git a/data/maps/objects/CinnabarMart.asm b/data/maps/objects/CinnabarMart.asm new file mode 100755 index 000000000..2413d9938 --- /dev/null +++ b/data/maps/objects/CinnabarMart.asm @@ -0,0 +1,15 @@ +CinnabarMart_Object: + db $0 ; border block + + def_warps + warp 3, 7, 4, LAST_MAP + warp 4, 7, 4, LAST_MAP + + def_signs + + def_objects + object SPRITE_CLERK, 0, 5, STAY, RIGHT, 1 ; person + object SPRITE_ERIKA, 6, 2, STAY, NONE, 2 ; person + object SPRITE_SCIENTIST, 3, 4, STAY, NONE, 3 ; person + + def_warps_to CINNABAR_MART diff --git a/data/maps/objects/CinnabarPokecenter.asm b/data/maps/objects/CinnabarPokecenter.asm new file mode 100755 index 000000000..0a2a11aa9 --- /dev/null +++ b/data/maps/objects/CinnabarPokecenter.asm @@ -0,0 +1,17 @@ +CinnabarPokecenter_Object: + db $0 ; border block + + def_warps + warp 3, 7, 3, LAST_MAP + warp 4, 7, 3, LAST_MAP + + def_signs + + def_objects + object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person + object SPRITE_COOLTRAINER_F, 9, 4, WALK, ANY_DIR, 2 ; person + object SPRITE_GENTLEMAN, 2, 6, STAY, NONE, 3 ; person + object SPRITE_LINK_RECEPTIONIST, 11, 2, STAY, DOWN, 4 ; person + object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person + + def_warps_to CINNABAR_POKECENTER diff --git a/data/maps/objects/Colosseum.asm b/data/maps/objects/Colosseum.asm new file mode 100644 index 000000000..dac9bc09c --- /dev/null +++ b/data/maps/objects/Colosseum.asm @@ -0,0 +1,11 @@ +Colosseum_Object: + db $e ; border block + + def_warps + + def_signs + + def_objects + object SPRITE_RED, 2, 2, STAY, 0, 1 ; person + + def_warps_to COLOSSEUM diff --git a/data/maps/objects/CopycatsHouse1F.asm b/data/maps/objects/CopycatsHouse1F.asm new file mode 100755 index 000000000..bc6353857 --- /dev/null +++ b/data/maps/objects/CopycatsHouse1F.asm @@ -0,0 +1,16 @@ +CopycatsHouse1F_Object: + db $a ; border block + + def_warps + warp 2, 7, 0, LAST_MAP + warp 3, 7, 0, LAST_MAP + warp 7, 1, 0, COPYCATS_HOUSE_2F + + def_signs + + def_objects + object SPRITE_MIDDLE_AGED_WOMAN, 2, 2, STAY, DOWN, 1 ; person + object SPRITE_MIDDLE_AGED_MAN, 5, 4, STAY, LEFT, 2 ; person + object SPRITE_CHANSEY, 1, 4, STAY, NONE, 3 ; person + + def_warps_to COPYCATS_HOUSE_1F diff --git a/data/maps/objects/CopycatsHouse2F.asm b/data/maps/objects/CopycatsHouse2F.asm new file mode 100755 index 000000000..e04edee70 --- /dev/null +++ b/data/maps/objects/CopycatsHouse2F.asm @@ -0,0 +1,18 @@ +CopycatsHouse2F_Object: + db $a ; border block + + def_warps + warp 7, 1, 2, COPYCATS_HOUSE_1F + + def_signs + sign 3, 5, 6 ; CopycatsHouse2FText6 + sign 0, 1, 7 ; CopycatsHouse2FText7 + + def_objects + object SPRITE_BRUNETTE_GIRL, 4, 3, WALK, ANY_DIR, 1 ; person + object SPRITE_BIRD, 4, 6, WALK, LEFT_RIGHT, 2 ; person + object SPRITE_MONSTER, 5, 1, STAY, DOWN, 3 ; person + object SPRITE_BIRD, 2, 0, STAY, DOWN, 4 ; person + object SPRITE_FAIRY, 1, 6, STAY, RIGHT, 5 ; person + + def_warps_to COPYCATS_HOUSE_2F diff --git a/data/maps/objects/Daycare.asm b/data/maps/objects/Daycare.asm new file mode 100755 index 000000000..2feecff33 --- /dev/null +++ b/data/maps/objects/Daycare.asm @@ -0,0 +1,13 @@ +Daycare_Object: + db $a ; border block + + def_warps + warp 2, 7, 4, LAST_MAP + warp 3, 7, 4, LAST_MAP + + def_signs + + def_objects + object SPRITE_GENTLEMAN, 2, 3, STAY, RIGHT, 1 ; person + + def_warps_to DAYCARE diff --git a/data/maps/objects/DiglettsCave.asm b/data/maps/objects/DiglettsCave.asm new file mode 100755 index 000000000..dc4889e5e --- /dev/null +++ b/data/maps/objects/DiglettsCave.asm @@ -0,0 +1,12 @@ +DiglettsCave_Object: + db $19 ; border block + + def_warps + warp 5, 5, 2, DIGLETTS_CAVE_ROUTE_2 + warp 37, 31, 2, DIGLETTS_CAVE_ROUTE_11 + + def_signs + + def_objects + + def_warps_to DIGLETTS_CAVE diff --git a/data/maps/objects/DiglettsCaveRoute11.asm b/data/maps/objects/DiglettsCaveRoute11.asm new file mode 100755 index 000000000..f6c884d90 --- /dev/null +++ b/data/maps/objects/DiglettsCaveRoute11.asm @@ -0,0 +1,14 @@ +DiglettsCaveRoute11_Object: + db $7d ; border block + + def_warps + warp 2, 7, 4, LAST_MAP + warp 3, 7, 4, LAST_MAP + warp 4, 4, 1, DIGLETTS_CAVE + + def_signs + + def_objects + object SPRITE_GAMBLER, 2, 3, STAY, NONE, 1 ; person + + def_warps_to DIGLETTS_CAVE_ROUTE_11 diff --git a/data/maps/objects/DiglettsCaveRoute2.asm b/data/maps/objects/DiglettsCaveRoute2.asm new file mode 100755 index 000000000..948a82e32 --- /dev/null +++ b/data/maps/objects/DiglettsCaveRoute2.asm @@ -0,0 +1,14 @@ +DiglettsCaveRoute2_Object: + db $7d ; border block + + def_warps + warp 2, 7, 0, LAST_MAP + warp 3, 7, 0, LAST_MAP + warp 4, 4, 0, DIGLETTS_CAVE + + def_signs + + def_objects + object SPRITE_FISHING_GURU, 3, 3, STAY, NONE, 1 ; person + + def_warps_to DIGLETTS_CAVE_ROUTE_2 diff --git a/data/maps/objects/FightingDojo.asm b/data/maps/objects/FightingDojo.asm new file mode 100755 index 000000000..5345a7aaa --- /dev/null +++ b/data/maps/objects/FightingDojo.asm @@ -0,0 +1,19 @@ +FightingDojo_Object: + db $3 ; border block + + def_warps + warp 4, 11, 1, LAST_MAP + warp 5, 11, 1, LAST_MAP + + def_signs + + def_objects + object SPRITE_HIKER, 5, 3, STAY, DOWN, 1, OPP_BLACKBELT, 1 + object SPRITE_HIKER, 3, 4, STAY, RIGHT, 2, OPP_BLACKBELT, 2 + object SPRITE_HIKER, 3, 6, STAY, RIGHT, 3, OPP_BLACKBELT, 3 + object SPRITE_HIKER, 5, 5, STAY, LEFT, 4, OPP_BLACKBELT, 4 + object SPRITE_HIKER, 5, 7, STAY, LEFT, 5, OPP_BLACKBELT, 5 + object SPRITE_POKE_BALL, 4, 1, STAY, NONE, 6 ; person + object SPRITE_POKE_BALL, 5, 1, STAY, NONE, 7 ; person + + def_warps_to FIGHTING_DOJO diff --git a/data/maps/objects/FuchsiaBillsGrandpasHouse.asm b/data/maps/objects/FuchsiaBillsGrandpasHouse.asm new file mode 100755 index 000000000..30aff6c51 --- /dev/null +++ b/data/maps/objects/FuchsiaBillsGrandpasHouse.asm @@ -0,0 +1,15 @@ +FuchsiaBillsGrandpasHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 1, LAST_MAP + warp 3, 7, 1, LAST_MAP + + def_signs + + def_objects + object SPRITE_MIDDLE_AGED_WOMAN, 2, 3, STAY, RIGHT, 1 ; person + object SPRITE_GAMBLER, 7, 2, STAY, UP, 2 ; person + object SPRITE_YOUNGSTER, 5, 5, STAY, NONE, 3 ; person + + def_warps_to FUCHSIA_BILLS_GRANDPAS_HOUSE diff --git a/data/maps/objects/FuchsiaCity.asm b/data/maps/objects/FuchsiaCity.asm new file mode 100755 index 000000000..a601a896f --- /dev/null +++ b/data/maps/objects/FuchsiaCity.asm @@ -0,0 +1,43 @@ +FuchsiaCity_Object: + db $f ; border block + + def_warps + warp 5, 13, 0, FUCHSIA_MART + warp 11, 27, 0, FUCHSIA_BILLS_GRANDPAS_HOUSE + warp 19, 27, 0, FUCHSIA_POKECENTER + warp 27, 27, 0, WARDENS_HOUSE + warp 18, 3, 0, SAFARI_ZONE_GATE + warp 5, 27, 0, FUCHSIA_GYM + warp 22, 13, 0, FUCHSIA_MEETING_ROOM + warp 31, 27, 1, FUCHSIA_GOOD_ROD_HOUSE + warp 31, 24, 0, FUCHSIA_GOOD_ROD_HOUSE + + def_signs + sign 15, 23, 11 ; FuchsiaCityText11 + sign 25, 15, 12 ; FuchsiaCityText12 + sign 17, 5, 13 ; FuchsiaCityText13 + sign 6, 13, 14 ; MartSignText + sign 20, 27, 15 ; PokeCenterSignText + sign 27, 29, 16 ; FuchsiaCityText16 + sign 21, 15, 17 ; FuchsiaCityText17 + sign 5, 29, 18 ; FuchsiaCityText18 + sign 33, 7, 19 ; FuchsiaCityText19 + sign 27, 7, 20 ; FuchsiaCityText20 + sign 13, 7, 21 ; FuchsiaCityText21 + sign 31, 13, 22 ; FuchsiaCityText22 + sign 13, 15, 23 ; FuchsiaCityText23 + sign 7, 7, 24 ; FuchsiaCityText24 + + def_objects + object SPRITE_YOUNGSTER, 10, 12, WALK, LEFT_RIGHT, 1 ; person + object SPRITE_GAMBLER, 28, 17, WALK, LEFT_RIGHT, 2 ; person + object SPRITE_FISHER, 30, 14, STAY, DOWN, 3 ; person + object SPRITE_YOUNGSTER, 24, 8, STAY, UP, 4 ; person + object SPRITE_CHANSEY, 31, 5, STAY, DOWN, 5 ; person + object SPRITE_POKE_BALL, 25, 6, STAY, NONE, 6 ; person + object SPRITE_MONSTER, 12, 6, WALK, LEFT_RIGHT, 7 ; person + object SPRITE_MONSTER, 30, 12, WALK, LEFT_RIGHT, 8 ; person + object SPRITE_SEEL, 8, 17, WALK, ANY_DIR, 9 ; person + object SPRITE_FOSSIL, 6, 5, STAY, NONE, 10 ; person + + def_warps_to FUCHSIA_CITY diff --git a/data/maps/objects/FuchsiaGoodRodHouse.asm b/data/maps/objects/FuchsiaGoodRodHouse.asm new file mode 100755 index 000000000..434cec8b8 --- /dev/null +++ b/data/maps/objects/FuchsiaGoodRodHouse.asm @@ -0,0 +1,14 @@ +FuchsiaGoodRodHouse_Object: + db $c ; border block + + def_warps + warp 2, 0, 8, LAST_MAP + warp 2, 7, 7, LAST_MAP + warp 3, 7, 7, LAST_MAP + + def_signs + + def_objects + object SPRITE_FISHING_GURU, 5, 3, STAY, RIGHT, 1 ; person + + def_warps_to FUCHSIA_GOOD_ROD_HOUSE diff --git a/data/maps/objects/FuchsiaGym.asm b/data/maps/objects/FuchsiaGym.asm new file mode 100755 index 000000000..95b2e42eb --- /dev/null +++ b/data/maps/objects/FuchsiaGym.asm @@ -0,0 +1,20 @@ +FuchsiaGym_Object: + db $3 ; border block + + def_warps + warp 4, 17, 5, LAST_MAP + warp 5, 17, 5, LAST_MAP + + def_signs + + def_objects + object SPRITE_SILPH_WORKER, 4, 10, STAY, DOWN, 1, OPP_KOGA, 1 + object SPRITE_ROCKER, 8, 13, STAY, DOWN, 2, OPP_JUGGLER, 7 + object SPRITE_ROCKER, 7, 8, STAY, RIGHT, 3, OPP_JUGGLER, 3 + object SPRITE_ROCKER, 1, 12, STAY, DOWN, 4, OPP_JUGGLER, 8 + object SPRITE_ROCKER, 3, 5, STAY, UP, 5, OPP_TAMER, 1 + object SPRITE_ROCKER, 8, 2, STAY, DOWN, 6, OPP_TAMER, 2 + object SPRITE_ROCKER, 2, 7, STAY, LEFT, 7, OPP_JUGGLER, 4 + object SPRITE_GYM_GUIDE, 7, 15, STAY, DOWN, 8 ; person + + def_warps_to FUCHSIA_GYM diff --git a/data/maps/objects/FuchsiaMart.asm b/data/maps/objects/FuchsiaMart.asm new file mode 100755 index 000000000..0a238a87b --- /dev/null +++ b/data/maps/objects/FuchsiaMart.asm @@ -0,0 +1,15 @@ +FuchsiaMart_Object: + db $0 ; border block + + def_warps + warp 3, 7, 0, LAST_MAP + warp 4, 7, 0, LAST_MAP + + def_signs + + def_objects + object SPRITE_CLERK, 0, 5, STAY, RIGHT, 1 ; person + object SPRITE_MIDDLE_AGED_MAN, 4, 2, STAY, NONE, 2 ; person + object SPRITE_COOLTRAINER_F, 6, 5, WALK, UP_DOWN, 3 ; person + + def_warps_to FUCHSIA_MART diff --git a/data/maps/objects/FuchsiaMeetingRoom.asm b/data/maps/objects/FuchsiaMeetingRoom.asm new file mode 100755 index 000000000..e4c2a83b0 --- /dev/null +++ b/data/maps/objects/FuchsiaMeetingRoom.asm @@ -0,0 +1,15 @@ +FuchsiaMeetingRoom_Object: + db $17 ; border block + + def_warps + warp 4, 7, 6, LAST_MAP + warp 5, 7, 6, LAST_MAP + + def_signs + + def_objects + object SPRITE_SAFARI_ZONE_WORKER, 4, 1, STAY, DOWN, 1 ; person + object SPRITE_SAFARI_ZONE_WORKER, 0, 2, STAY, UP, 2 ; person + object SPRITE_SAFARI_ZONE_WORKER, 10, 1, STAY, DOWN, 3 ; person + + def_warps_to FUCHSIA_MEETING_ROOM diff --git a/data/maps/objects/FuchsiaPokecenter.asm b/data/maps/objects/FuchsiaPokecenter.asm new file mode 100755 index 000000000..4eb9d196c --- /dev/null +++ b/data/maps/objects/FuchsiaPokecenter.asm @@ -0,0 +1,17 @@ +FuchsiaPokecenter_Object: + db $0 ; border block + + def_warps + warp 3, 7, 2, LAST_MAP + warp 4, 7, 2, LAST_MAP + + def_signs + + def_objects + object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person + object SPRITE_ROCKER, 4, 3, STAY, UP, 2 ; person + object SPRITE_COOLTRAINER_F, 6, 5, WALK, LEFT_RIGHT, 3 ; person + object SPRITE_LINK_RECEPTIONIST, 11, 2, STAY, DOWN, 4 ; person + object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person + + def_warps_to FUCHSIA_POKECENTER diff --git a/data/maps/objects/GameCorner.asm b/data/maps/objects/GameCorner.asm new file mode 100755 index 000000000..4e425e862 --- /dev/null +++ b/data/maps/objects/GameCorner.asm @@ -0,0 +1,25 @@ +GameCorner_Object: + db $f ; border block + + def_warps + warp 15, 17, 7, LAST_MAP + warp 16, 17, 7, LAST_MAP + warp 17, 4, 1, ROCKET_HIDEOUT_B1F + + def_signs + sign 9, 4, 12 ; CeladonGameCornerText12 + + def_objects + object SPRITE_BEAUTY, 2, 6, STAY, DOWN, 1 ; person + object SPRITE_CLERK, 5, 6, STAY, DOWN, 2 ; person + object SPRITE_MIDDLE_AGED_MAN, 2, 10, STAY, LEFT, 3 ; person + object SPRITE_BEAUTY, 2, 13, STAY, LEFT, 4 ; person + object SPRITE_FISHING_GURU, 5, 11, STAY, RIGHT, 5 ; person + object SPRITE_MIDDLE_AGED_WOMAN, 8, 11, STAY, LEFT, 6 ; person + object SPRITE_GYM_GUIDE, 8, 14, STAY, LEFT, 7 ; person + object SPRITE_GAMBLER, 11, 15, STAY, RIGHT, 8 ; person + object SPRITE_MIDDLE_AGED_MAN, 14, 11, STAY, LEFT, 9 ; person + object SPRITE_FISHING_GURU, 17, 13, STAY, RIGHT, 10 ; person + object SPRITE_ROCKET, 9, 5, STAY, UP, 11, OPP_ROCKET, 7 + + def_warps_to GAME_CORNER diff --git a/data/maps/objects/GameCornerPrizeRoom.asm b/data/maps/objects/GameCornerPrizeRoom.asm new file mode 100755 index 000000000..d55decf12 --- /dev/null +++ b/data/maps/objects/GameCornerPrizeRoom.asm @@ -0,0 +1,17 @@ +GameCornerPrizeRoom_Object: + db $f ; border block + + def_warps + warp 4, 7, 9, LAST_MAP + warp 5, 7, 9, LAST_MAP + + def_signs + sign 2, 2, 3 ; CeladonPrizeRoomText3 + sign 4, 2, 4 ; CeladonPrizeRoomText4 + sign 6, 2, 5 ; CeladonPrizeRoomText5 + + def_objects + object SPRITE_BALDING_GUY, 1, 4, STAY, NONE, 1 ; person + object SPRITE_GAMBLER, 7, 3, WALK, LEFT_RIGHT, 2 ; person + + def_warps_to GAME_CORNER_PRIZE_ROOM diff --git a/data/maps/objects/HallOfFame.asm b/data/maps/objects/HallOfFame.asm new file mode 100755 index 000000000..caa55bf6a --- /dev/null +++ b/data/maps/objects/HallOfFame.asm @@ -0,0 +1,13 @@ +HallOfFame_Object: + db $3 ; border block + + def_warps + warp 4, 7, 2, CHAMPIONS_ROOM + warp 5, 7, 3, CHAMPIONS_ROOM + + def_signs + + def_objects + object SPRITE_OAK, 5, 2, STAY, DOWN, 1 ; person + + def_warps_to HALL_OF_FAME diff --git a/data/maps/objects/IndigoPlateau.asm b/data/maps/objects/IndigoPlateau.asm new file mode 100755 index 000000000..d67c9f8ab --- /dev/null +++ b/data/maps/objects/IndigoPlateau.asm @@ -0,0 +1,12 @@ +IndigoPlateau_Object: + db $e ; border block + + def_warps + warp 9, 5, 0, INDIGO_PLATEAU_LOBBY + warp 10, 5, 0, INDIGO_PLATEAU_LOBBY + + def_signs + + def_objects + + def_warps_to INDIGO_PLATEAU diff --git a/data/maps/objects/IndigoPlateauLobby.asm b/data/maps/objects/IndigoPlateauLobby.asm new file mode 100755 index 000000000..db101be0b --- /dev/null +++ b/data/maps/objects/IndigoPlateauLobby.asm @@ -0,0 +1,19 @@ +IndigoPlateauLobby_Object: + db $0 ; border block + + def_warps + warp 7, 11, 0, LAST_MAP + warp 8, 11, 1, LAST_MAP + warp 8, 0, 0, LORELEIS_ROOM + + def_signs + + def_objects + object SPRITE_NURSE, 7, 5, STAY, DOWN, 1 ; person + object SPRITE_GYM_GUIDE, 4, 9, STAY, RIGHT, 2 ; person + object SPRITE_COOLTRAINER_F, 5, 1, STAY, DOWN, 3 ; person + object SPRITE_CLERK, 0, 5, STAY, RIGHT, 4 ; person + object SPRITE_LINK_RECEPTIONIST, 13, 6, STAY, DOWN, 5 ; person + object SPRITE_CHANSEY, 8, 5, STAY, DOWN, 6 ; person + + def_warps_to INDIGO_PLATEAU_LOBBY diff --git a/data/maps/objects/LancesRoom.asm b/data/maps/objects/LancesRoom.asm new file mode 100755 index 000000000..a8dc47771 --- /dev/null +++ b/data/maps/objects/LancesRoom.asm @@ -0,0 +1,14 @@ +LancesRoom_Object: + db $3 ; border block + + def_warps + warp 24, 16, 2, AGATHAS_ROOM + warp 5, 0, 0, CHAMPIONS_ROOM + warp 6, 0, 0, CHAMPIONS_ROOM + + def_signs + + def_objects + object SPRITE_LANCE, 6, 1, STAY, DOWN, 1, OPP_LANCE, 1 + + def_warps_to LANCES_ROOM diff --git a/data/maps/objects/LavenderCuboneHouse.asm b/data/maps/objects/LavenderCuboneHouse.asm new file mode 100755 index 000000000..7e7443e28 --- /dev/null +++ b/data/maps/objects/LavenderCuboneHouse.asm @@ -0,0 +1,14 @@ +LavenderCuboneHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 4, LAST_MAP + warp 3, 7, 4, LAST_MAP + + def_signs + + def_objects + object SPRITE_MONSTER, 3, 5, STAY, UP, 1 ; person + object SPRITE_BRUNETTE_GIRL, 2, 4, STAY, RIGHT, 2 ; person + + def_warps_to LAVENDER_CUBONE_HOUSE diff --git a/data/maps/objects/LavenderMart.asm b/data/maps/objects/LavenderMart.asm new file mode 100755 index 000000000..00d5a64b4 --- /dev/null +++ b/data/maps/objects/LavenderMart.asm @@ -0,0 +1,15 @@ +LavenderMart_Object: + db $0 ; border block + + def_warps + warp 3, 7, 3, LAST_MAP + warp 4, 7, 3, LAST_MAP + + def_signs + + def_objects + object SPRITE_CLERK, 0, 5, STAY, RIGHT, 1 ; person + object SPRITE_BALDING_GUY, 3, 4, STAY, NONE, 2 ; person + object SPRITE_COOLTRAINER_M, 7, 2, STAY, NONE, 3 ; person + + def_warps_to LAVENDER_MART diff --git a/data/maps/objects/LavenderPokecenter.asm b/data/maps/objects/LavenderPokecenter.asm new file mode 100755 index 000000000..667b584f3 --- /dev/null +++ b/data/maps/objects/LavenderPokecenter.asm @@ -0,0 +1,17 @@ +LavenderPokecenter_Object: + db $0 ; border block + + def_warps + warp 3, 7, 0, LAST_MAP + warp 4, 7, 0, LAST_MAP + + def_signs + + def_objects + object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person + object SPRITE_GENTLEMAN, 5, 3, STAY, NONE, 2 ; person + object SPRITE_LITTLE_GIRL, 10, 5, WALK, LEFT_RIGHT, 3 ; person + object SPRITE_LINK_RECEPTIONIST, 11, 2, STAY, DOWN, 4 ; person + object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person + + def_warps_to LAVENDER_POKECENTER diff --git a/data/maps/objects/LavenderTown.asm b/data/maps/objects/LavenderTown.asm new file mode 100755 index 000000000..f34659c13 --- /dev/null +++ b/data/maps/objects/LavenderTown.asm @@ -0,0 +1,25 @@ +LavenderTown_Object: + db $2c ; border block + + def_warps + warp 3, 5, 0, LAVENDER_POKECENTER + warp 14, 5, 0, POKEMON_TOWER_1F + warp 7, 9, 0, MR_FUJIS_HOUSE + warp 15, 13, 0, LAVENDER_MART + warp 3, 13, 0, LAVENDER_CUBONE_HOUSE + warp 7, 13, 0, NAME_RATERS_HOUSE + + def_signs + sign 11, 9, 4 ; LavenderTownText4 + sign 9, 3, 5 ; LavenderTownText5 + sign 16, 13, 6 ; MartSignText + sign 4, 5, 7 ; PokeCenterSignText + sign 5, 9, 8 ; LavenderTownText8 + sign 17, 7, 9 ; LavenderTownText9 + + def_objects + object SPRITE_LITTLE_GIRL, 15, 9, WALK, ANY_DIR, 1 ; person + object SPRITE_COOLTRAINER_M, 9, 10, STAY, NONE, 2 ; person + object SPRITE_SUPER_NERD, 8, 7, WALK, LEFT_RIGHT, 3 ; person + + def_warps_to LAVENDER_TOWN diff --git a/data/maps/objects/LoreleisRoom.asm b/data/maps/objects/LoreleisRoom.asm new file mode 100755 index 000000000..91a306b8f --- /dev/null +++ b/data/maps/objects/LoreleisRoom.asm @@ -0,0 +1,15 @@ +LoreleisRoom_Object: + db $3 ; border block + + def_warps + warp 4, 11, 2, INDIGO_PLATEAU_LOBBY + warp 5, 11, 2, INDIGO_PLATEAU_LOBBY + warp 4, 0, 0, BRUNOS_ROOM + warp 5, 0, 1, BRUNOS_ROOM + + def_signs + + def_objects + object SPRITE_LORELEI, 5, 2, STAY, DOWN, 1, OPP_LORELEI, 1 + + def_warps_to LORELEIS_ROOM diff --git a/data/maps/objects/MrFujisHouse.asm b/data/maps/objects/MrFujisHouse.asm new file mode 100755 index 000000000..6ec762f64 --- /dev/null +++ b/data/maps/objects/MrFujisHouse.asm @@ -0,0 +1,18 @@ +MrFujisHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 2, LAST_MAP + warp 3, 7, 2, LAST_MAP + + def_signs + + def_objects + object SPRITE_SUPER_NERD, 3, 5, STAY, NONE, 1 ; person + object SPRITE_LITTLE_GIRL, 6, 3, STAY, DOWN, 2 ; person + object SPRITE_MONSTER, 6, 4, STAY, UP, 3 ; person + object SPRITE_MONSTER, 1, 3, STAY, NONE, 4 ; person + object SPRITE_MR_FUJI, 3, 1, STAY, NONE, 5 ; person + object SPRITE_POKEDEX, 3, 3, STAY, NONE, 6 ; person + + def_warps_to MR_FUJIS_HOUSE diff --git a/data/maps/objects/MrPsychicsHouse.asm b/data/maps/objects/MrPsychicsHouse.asm new file mode 100755 index 000000000..44367b200 --- /dev/null +++ b/data/maps/objects/MrPsychicsHouse.asm @@ -0,0 +1,13 @@ +MrPsychicsHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 7, LAST_MAP + warp 3, 7, 7, LAST_MAP + + def_signs + + def_objects + object SPRITE_FISHING_GURU, 5, 3, STAY, LEFT, 1 ; person + + def_warps_to MR_PSYCHICS_HOUSE diff --git a/data/maps/objects/MtMoon1F.asm b/data/maps/objects/MtMoon1F.asm new file mode 100755 index 000000000..8b40ac4f5 --- /dev/null +++ b/data/maps/objects/MtMoon1F.asm @@ -0,0 +1,29 @@ +MtMoon1F_Object: + db $3 ; border block + + def_warps + warp 14, 35, 1, LAST_MAP + warp 15, 35, 1, LAST_MAP + warp 5, 5, 0, MT_MOON_B1F + warp 17, 11, 2, MT_MOON_B1F + warp 25, 15, 3, MT_MOON_B1F + + def_signs + sign 15, 23, 14 ; MtMoon1Text14 + + def_objects + object SPRITE_HIKER, 5, 6, STAY, DOWN, 1, OPP_HIKER, 1 + object SPRITE_YOUNGSTER, 12, 16, STAY, RIGHT, 2, OPP_YOUNGSTER, 3 + object SPRITE_COOLTRAINER_F, 30, 4, STAY, DOWN, 3, OPP_LASS, 5 + object SPRITE_SUPER_NERD, 24, 31, STAY, UP, 4, OPP_SUPER_NERD, 1 + object SPRITE_COOLTRAINER_F, 16, 23, STAY, DOWN, 5, OPP_LASS, 6 + object SPRITE_YOUNGSTER, 7, 22, STAY, DOWN, 6, OPP_BUG_CATCHER, 7 + object SPRITE_YOUNGSTER, 30, 27, STAY, RIGHT, 7, OPP_BUG_CATCHER, 8 + object SPRITE_POKE_BALL, 2, 20, STAY, NONE, 8, POTION + object SPRITE_POKE_BALL, 2, 2, STAY, NONE, 9, MOON_STONE + object SPRITE_POKE_BALL, 35, 31, STAY, NONE, 10, RARE_CANDY + object SPRITE_POKE_BALL, 36, 23, STAY, NONE, 11, ESCAPE_ROPE + object SPRITE_POKE_BALL, 20, 33, STAY, NONE, 12, POTION + object SPRITE_POKE_BALL, 5, 32, STAY, NONE, 13, TM_WATER_GUN + + def_warps_to MT_MOON_1F diff --git a/data/maps/objects/MtMoonB1F.asm b/data/maps/objects/MtMoonB1F.asm new file mode 100755 index 000000000..69fa3c170 --- /dev/null +++ b/data/maps/objects/MtMoonB1F.asm @@ -0,0 +1,18 @@ +MtMoonB1F_Object: + db $3 ; border block + + def_warps + warp 5, 5, 2, MT_MOON_1F + warp 17, 11, 0, MT_MOON_B2F + warp 25, 9, 3, MT_MOON_1F + warp 25, 15, 4, MT_MOON_1F + warp 21, 17, 1, MT_MOON_B2F + warp 13, 27, 2, MT_MOON_B2F + warp 23, 3, 3, MT_MOON_B2F + warp 27, 3, 2, LAST_MAP + + def_signs + + def_objects + + def_warps_to MT_MOON_B1F diff --git a/data/maps/objects/MtMoonB2F.asm b/data/maps/objects/MtMoonB2F.asm new file mode 100755 index 000000000..b2c1ff1d9 --- /dev/null +++ b/data/maps/objects/MtMoonB2F.asm @@ -0,0 +1,24 @@ +MtMoonB2F_Object: + db $3 ; border block + + def_warps + warp 25, 9, 1, MT_MOON_B1F + warp 21, 17, 4, MT_MOON_B1F + warp 15, 27, 5, MT_MOON_B1F + warp 5, 7, 6, MT_MOON_B1F + + def_signs + + def_objects + object SPRITE_SUPER_NERD, 12, 8, STAY, RIGHT, 1, OPP_SUPER_NERD, 2 + object SPRITE_JESSIE, 9, 3, STAY, LEFT, 2 + object SPRITE_ROCKET, 15, 22, STAY, DOWN, 3, OPP_ROCKET, 2 + object SPRITE_ROCKET, 29, 11, STAY, UP, 4, OPP_ROCKET, 3 + object SPRITE_ROCKET, 29, 17, STAY, LEFT, 5, OPP_ROCKET, 1 + object SPRITE_JAMES, 9, 4, STAY, LEFT, 6 + object SPRITE_FOSSIL, 12, 6, STAY, NONE, 7 ; person + object SPRITE_FOSSIL, 13, 6, STAY, NONE, 8 ; person + object SPRITE_POKE_BALL, 25, 21, STAY, NONE, 9, HP_UP + object SPRITE_POKE_BALL, 29, 5, STAY, NONE, 10, TM_MEGA_PUNCH + + def_warps_to MT_MOON_B2F diff --git a/data/maps/objects/MtMoonPokecenter.asm b/data/maps/objects/MtMoonPokecenter.asm new file mode 100755 index 000000000..e94dd27d4 --- /dev/null +++ b/data/maps/objects/MtMoonPokecenter.asm @@ -0,0 +1,19 @@ +MtMoonPokecenter_Object: + db $0 ; border block + + def_warps + warp 3, 7, 0, LAST_MAP + warp 4, 7, 0, LAST_MAP + + def_signs + + def_objects + object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person + object SPRITE_YOUNGSTER, 4, 3, STAY, UP, 2 ; person + object SPRITE_GENTLEMAN, 7, 3, STAY, UP, 3 ; person + object SPRITE_MIDDLE_AGED_MAN, 10, 6, WALK, LEFT_RIGHT, 4 ; person + object SPRITE_CLIPBOARD, 7, 2, STAY, NONE, 5 ; person + object SPRITE_LINK_RECEPTIONIST, 11, 2, STAY, DOWN, 6 ; person + object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 7 ; person + + def_warps_to MT_MOON_POKECENTER diff --git a/data/maps/objects/Museum1F.asm b/data/maps/objects/Museum1F.asm new file mode 100755 index 000000000..3628173cf --- /dev/null +++ b/data/maps/objects/Museum1F.asm @@ -0,0 +1,20 @@ +Museum1F_Object: + db $a ; border block + + def_warps + warp 10, 7, 0, LAST_MAP + warp 11, 7, 0, LAST_MAP + warp 16, 7, 1, LAST_MAP + warp 17, 7, 1, LAST_MAP + warp 7, 7, 0, MUSEUM_2F + + def_signs + + def_objects + object SPRITE_SCIENTIST, 12, 4, STAY, LEFT, 1 ; person + object SPRITE_GAMBLER, 1, 4, STAY, NONE, 2 ; person + object SPRITE_SCIENTIST, 15, 2, STAY, DOWN, 3 ; person + object SPRITE_SCIENTIST, 17, 4, STAY, NONE, 4 ; person + object SPRITE_OLD_AMBER, 16, 2, STAY, NONE, 5 ; person + + def_warps_to MUSEUM_1F diff --git a/data/maps/objects/Museum2F.asm b/data/maps/objects/Museum2F.asm new file mode 100755 index 000000000..72f98f9ba --- /dev/null +++ b/data/maps/objects/Museum2F.asm @@ -0,0 +1,18 @@ +Museum2F_Object: + db $a ; border block + + def_warps + warp 7, 7, 4, MUSEUM_1F + + def_signs + sign 11, 2, 6 ; Museum2FText6 + sign 2, 5, 7 ; Museum2FText7 + + def_objects + object SPRITE_YOUNGSTER, 1, 7, WALK, LEFT_RIGHT, 1 ; person + object SPRITE_GRAMPS, 0, 5, STAY, DOWN, 2 ; person + object SPRITE_SCIENTIST, 7, 5, STAY, DOWN, 3 ; person + object SPRITE_BRUNETTE_GIRL, 11, 5, STAY, NONE, 4 ; person + object SPRITE_HIKER, 12, 5, STAY, DOWN, 5 ; person + + def_warps_to MUSEUM_2F diff --git a/data/maps/objects/NameRatersHouse.asm b/data/maps/objects/NameRatersHouse.asm new file mode 100755 index 000000000..935a6887d --- /dev/null +++ b/data/maps/objects/NameRatersHouse.asm @@ -0,0 +1,13 @@ +NameRatersHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 5, LAST_MAP + warp 3, 7, 5, LAST_MAP + + def_signs + + def_objects + object SPRITE_SILPH_PRESIDENT, 5, 3, STAY, LEFT, 1 ; person + + def_warps_to NAME_RATERS_HOUSE diff --git a/data/maps/objects/OaksLab.asm b/data/maps/objects/OaksLab.asm new file mode 100755 index 000000000..366fc8946 --- /dev/null +++ b/data/maps/objects/OaksLab.asm @@ -0,0 +1,21 @@ +OaksLab_Object: + db $3 ; border block + + def_warps + warp 4, 11, 2, LAST_MAP + warp 5, 11, 2, LAST_MAP + + def_signs + + def_objects + object SPRITE_BLUE, 4, 3, STAY, NONE, 1, OPP_RIVAL1, 1 + object SPRITE_POKE_BALL, 7, 3, STAY, NONE, 2 ; person + object SPRITE_OAK, 5, 2, STAY, DOWN, 3 ; person + object SPRITE_POKEDEX, 2, 1, STAY, NONE, 4 ; person + object SPRITE_POKEDEX, 3, 1, STAY, NONE, 5 ; person + object SPRITE_OAK, 5, 10, STAY, UP, 6 ; person + object SPRITE_GIRL, 1, 9, WALK, UP_DOWN, 7 ; person + object SPRITE_SCIENTIST, 2, 10, STAY, NONE, 8 ; person + object SPRITE_SCIENTIST, 8, 10, STAY, NONE, 9 ; person + + def_warps_to OAKS_LAB diff --git a/data/maps/objects/PalletTown.asm b/data/maps/objects/PalletTown.asm new file mode 100755 index 000000000..c84dc9218 --- /dev/null +++ b/data/maps/objects/PalletTown.asm @@ -0,0 +1,20 @@ +PalletTown_Object: + db $b ; border block + + def_warps + warp 5, 5, 0, REDS_HOUSE_1F + warp 13, 5, 0, BLUES_HOUSE + warp 12, 11, 1, OAKS_LAB + + def_signs + sign 13, 13, 4 ; PalletTownText4 + sign 7, 9, 5 ; PalletTownText5 + sign 3, 5, 6 ; PalletTownText6 + sign 11, 5, 7 ; PalletTownText7 + + def_objects + object SPRITE_OAK, 10, 4, STAY, NONE, 1 ; person + object SPRITE_GIRL, 3, 8, WALK, ANY_DIR, 2 ; person + object SPRITE_FISHER, 11, 14, WALK, ANY_DIR, 3 ; person + + def_warps_to PALLET_TOWN diff --git a/data/maps/objects/PewterCity.asm b/data/maps/objects/PewterCity.asm new file mode 100755 index 000000000..13d228f22 --- /dev/null +++ b/data/maps/objects/PewterCity.asm @@ -0,0 +1,29 @@ +PewterCity_Object: + db $a ; border block + + def_warps + warp 14, 7, 0, MUSEUM_1F + warp 19, 5, 2, MUSEUM_1F + warp 16, 17, 0, PEWTER_GYM + warp 29, 13, 0, PEWTER_NIDORAN_HOUSE + warp 23, 17, 0, PEWTER_MART + warp 7, 29, 0, PEWTER_SPEECH_HOUSE + warp 13, 25, 0, PEWTER_POKECENTER + + def_signs + sign 19, 29, 6 ; PewterCityText6 + sign 33, 19, 7 ; PewterCityText7 + sign 24, 17, 8 ; MartSignText + sign 14, 25, 9 ; PokeCenterSignText + sign 15, 9, 10 ; PewterCityText10 + sign 11, 17, 11 ; PewterCityText11 + sign 25, 23, 12 ; PewterCityText12 + + def_objects + object SPRITE_COOLTRAINER_F, 8, 15, STAY, NONE, 1 ; person + object SPRITE_COOLTRAINER_M, 17, 25, STAY, NONE, 2 ; person + object SPRITE_SUPER_NERD, 27, 17, STAY, NONE, 3 ; person + object SPRITE_SUPER_NERD, 26, 25, WALK, LEFT_RIGHT, 4 ; person + object SPRITE_YOUNGSTER, 35, 16, STAY, DOWN, 5 ; person + + def_warps_to PEWTER_CITY diff --git a/data/maps/objects/PewterGym.asm b/data/maps/objects/PewterGym.asm new file mode 100755 index 000000000..9c21701a2 --- /dev/null +++ b/data/maps/objects/PewterGym.asm @@ -0,0 +1,15 @@ +PewterGym_Object: + db $3 ; border block + + def_warps + warp 4, 13, 2, LAST_MAP + warp 5, 13, 2, LAST_MAP + + def_signs + + def_objects + object SPRITE_SUPER_NERD, 4, 1, STAY, DOWN, 1, OPP_BROCK, 1 + object SPRITE_COOLTRAINER_M, 3, 6, STAY, RIGHT, 2, OPP_JR_TRAINER_M, 1 + object SPRITE_GYM_GUIDE, 7, 10, STAY, DOWN, 3 ; person + + def_warps_to PEWTER_GYM diff --git a/data/maps/objects/PewterMart.asm b/data/maps/objects/PewterMart.asm new file mode 100755 index 000000000..9685d5c72 --- /dev/null +++ b/data/maps/objects/PewterMart.asm @@ -0,0 +1,15 @@ +PewterMart_Object: + db $0 ; border block + + def_warps + warp 3, 7, 4, LAST_MAP + warp 4, 7, 4, LAST_MAP + + def_signs + + def_objects + object SPRITE_CLERK, 0, 5, STAY, RIGHT, 1 ; person + object SPRITE_YOUNGSTER, 3, 3, WALK, UP_DOWN, 2 ; person + object SPRITE_SUPER_NERD, 5, 5, STAY, NONE, 3 ; person + + def_warps_to PEWTER_MART diff --git a/data/maps/objects/PewterNidoranHouse.asm b/data/maps/objects/PewterNidoranHouse.asm new file mode 100755 index 000000000..b1fd0a74e --- /dev/null +++ b/data/maps/objects/PewterNidoranHouse.asm @@ -0,0 +1,15 @@ +PewterNidoranHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 3, LAST_MAP + warp 3, 7, 3, LAST_MAP + + def_signs + + def_objects + object SPRITE_MONSTER, 4, 5, STAY, LEFT, 1 ; person + object SPRITE_LITTLE_BOY, 3, 5, STAY, RIGHT, 2 ; person + object SPRITE_MIDDLE_AGED_MAN, 1, 2, STAY, NONE, 3 ; person + + def_warps_to PEWTER_NIDORAN_HOUSE diff --git a/data/maps/objects/PewterPokecenter.asm b/data/maps/objects/PewterPokecenter.asm new file mode 100755 index 000000000..e9a40d205 --- /dev/null +++ b/data/maps/objects/PewterPokecenter.asm @@ -0,0 +1,18 @@ +PewterPokecenter_Object: + db $0 ; border block + + def_warps + warp 3, 7, 6, LAST_MAP + warp 4, 7, 6, LAST_MAP + + def_signs + + def_objects + object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person + object SPRITE_GENTLEMAN, 11, 7, STAY, LEFT, 2 ; person + object SPRITE_JIGGLYPUFF, 1, 3, STAY, DOWN, 3 ; person + object SPRITE_LINK_RECEPTIONIST, 11, 2, STAY, DOWN, 4 ; person + object SPRITE_COOLTRAINER_F, 4, 3, STAY, UP, 5 ; person + object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 6 ; person + + def_warps_to PEWTER_POKECENTER diff --git a/data/maps/objects/PewterSpeechHouse.asm b/data/maps/objects/PewterSpeechHouse.asm new file mode 100755 index 000000000..4dafb7beb --- /dev/null +++ b/data/maps/objects/PewterSpeechHouse.asm @@ -0,0 +1,14 @@ +PewterSpeechHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 5, LAST_MAP + warp 3, 7, 5, LAST_MAP + + def_signs + + def_objects + object SPRITE_GAMBLER, 2, 3, STAY, RIGHT, 1 ; person + object SPRITE_YOUNGSTER, 4, 5, STAY, NONE, 2 ; person + + def_warps_to PEWTER_SPEECH_HOUSE diff --git a/data/maps/objects/PokemonFanClub.asm b/data/maps/objects/PokemonFanClub.asm new file mode 100755 index 000000000..eb3e945e8 --- /dev/null +++ b/data/maps/objects/PokemonFanClub.asm @@ -0,0 +1,18 @@ +PokemonFanClub_Object: + db $d ; border block + + def_warps + warp 2, 7, 1, LAST_MAP + warp 3, 7, 1, LAST_MAP + + def_signs + + def_objects + object SPRITE_FISHER, 6, 3, STAY, LEFT, 1 ; person + object SPRITE_GIRL, 1, 3, STAY, RIGHT, 2 ; person + object SPRITE_CLEFAIRY, 6, 4, STAY, LEFT, 3 ; person + object SPRITE_SEEL, 1, 4, STAY, RIGHT, 4 ; person + object SPRITE_GENTLEMAN, 3, 1, STAY, DOWN, 5 ; person + object SPRITE_LINK_RECEPTIONIST, 5, 1, STAY, DOWN, 6 ; person + + def_warps_to POKEMON_FAN_CLUB diff --git a/data/maps/objects/PokemonMansion1F.asm b/data/maps/objects/PokemonMansion1F.asm new file mode 100755 index 000000000..70eef1a1c --- /dev/null +++ b/data/maps/objects/PokemonMansion1F.asm @@ -0,0 +1,21 @@ +PokemonMansion1F_Object: + db $2e ; border block + + def_warps + warp 4, 27, 0, LAST_MAP + warp 5, 27, 0, LAST_MAP + warp 6, 27, 0, LAST_MAP + warp 7, 27, 0, LAST_MAP + warp 5, 10, 0, POKEMON_MANSION_2F + warp 21, 23, 0, POKEMON_MANSION_B1F + warp 26, 27, 0, LAST_MAP + warp 27, 27, 0, LAST_MAP + + def_signs + + def_objects + object SPRITE_SCIENTIST, 17, 17, STAY, LEFT, 1, OPP_SCIENTIST, 4 + object SPRITE_POKE_BALL, 14, 3, STAY, NONE, 2, ESCAPE_ROPE + object SPRITE_POKE_BALL, 18, 21, STAY, NONE, 3, CARBOS + + def_warps_to POKEMON_MANSION_1F diff --git a/data/maps/objects/PokemonMansion2F.asm b/data/maps/objects/PokemonMansion2F.asm new file mode 100755 index 000000000..8d504eef5 --- /dev/null +++ b/data/maps/objects/PokemonMansion2F.asm @@ -0,0 +1,18 @@ +PokemonMansion2F_Object: + db $1 ; border block + + def_warps + warp 5, 10, 4, POKEMON_MANSION_1F + warp 7, 10, 0, POKEMON_MANSION_3F + warp 25, 14, 2, POKEMON_MANSION_3F + warp 6, 1, 1, POKEMON_MANSION_3F + + def_signs + + def_objects + object SPRITE_SUPER_NERD, 3, 17, WALK, LEFT_RIGHT, 1, OPP_BURGLAR, 7 + object SPRITE_POKE_BALL, 28, 7, STAY, NONE, 2, CALCIUM + object SPRITE_POKEDEX, 18, 2, STAY, NONE, 3 ; person + object SPRITE_POKEDEX, 3, 22, STAY, NONE, 4 ; person + + def_warps_to POKEMON_MANSION_2F diff --git a/data/maps/objects/PokemonMansion3F.asm b/data/maps/objects/PokemonMansion3F.asm new file mode 100755 index 000000000..fdf16a8d3 --- /dev/null +++ b/data/maps/objects/PokemonMansion3F.asm @@ -0,0 +1,18 @@ +PokemonMansion3F_Object: + db $1 ; border block + + def_warps + warp 7, 10, 1, POKEMON_MANSION_2F + warp 6, 1, 3, POKEMON_MANSION_2F + warp 25, 14, 2, POKEMON_MANSION_2F + + def_signs + + def_objects + object SPRITE_SUPER_NERD, 5, 11, WALK, LEFT_RIGHT, 1, OPP_BURGLAR, 8 + object SPRITE_SCIENTIST, 20, 11, STAY, LEFT, 2, OPP_SCIENTIST, 12 + object SPRITE_POKE_BALL, 1, 16, STAY, NONE, 3, MAX_POTION + object SPRITE_POKE_BALL, 25, 5, STAY, NONE, 4, IRON + object SPRITE_POKEDEX, 6, 12, STAY, NONE, 5 ; person + + def_warps_to POKEMON_MANSION_3F diff --git a/data/maps/objects/PokemonMansionB1F.asm b/data/maps/objects/PokemonMansionB1F.asm new file mode 100755 index 000000000..bf0ea0a46 --- /dev/null +++ b/data/maps/objects/PokemonMansionB1F.asm @@ -0,0 +1,19 @@ +PokemonMansionB1F_Object: + db $1 ; border block + + def_warps + warp 23, 22, 5, POKEMON_MANSION_1F + + def_signs + + def_objects + object SPRITE_SUPER_NERD, 16, 23, STAY, NONE, 1, OPP_BURGLAR, 9 + object SPRITE_SCIENTIST, 27, 11, STAY, DOWN, 2, OPP_SCIENTIST, 13 + object SPRITE_POKE_BALL, 10, 2, STAY, NONE, 3, RARE_CANDY + object SPRITE_POKE_BALL, 1, 22, STAY, NONE, 4, FULL_RESTORE + object SPRITE_POKE_BALL, 19, 25, STAY, NONE, 5, TM_BLIZZARD + object SPRITE_POKE_BALL, 5, 4, STAY, NONE, 6, TM_SOLARBEAM + object SPRITE_POKEDEX, 16, 20, STAY, NONE, 7 ; person + object SPRITE_POKE_BALL, 5, 13, STAY, NONE, 8, SECRET_KEY + + def_warps_to POKEMON_MANSION_B1F diff --git a/data/maps/objects/PokemonTower1F.asm b/data/maps/objects/PokemonTower1F.asm new file mode 100755 index 000000000..b73c75625 --- /dev/null +++ b/data/maps/objects/PokemonTower1F.asm @@ -0,0 +1,18 @@ +PokemonTower1F_Object: + db $1 ; border block + + def_warps + warp 10, 17, 1, LAST_MAP + warp 11, 17, 1, LAST_MAP + warp 18, 9, 1, POKEMON_TOWER_2F + + def_signs + + def_objects + object SPRITE_LINK_RECEPTIONIST, 15, 13, STAY, UP, 1 ; person + object SPRITE_MIDDLE_AGED_WOMAN, 6, 8, STAY, NONE, 2 ; person + object SPRITE_BALDING_GUY, 8, 12, STAY, NONE, 3 ; person + object SPRITE_GIRL, 13, 7, STAY, NONE, 4 ; person + object SPRITE_CHANNELER, 17, 7, STAY, LEFT, 5 ; person + + def_warps_to POKEMON_TOWER_1F diff --git a/data/maps/objects/PokemonTower2F.asm b/data/maps/objects/PokemonTower2F.asm new file mode 100755 index 000000000..27bd2f1be --- /dev/null +++ b/data/maps/objects/PokemonTower2F.asm @@ -0,0 +1,14 @@ +PokemonTower2F_Object: + db $1 ; border block + + def_warps + warp 3, 9, 0, POKEMON_TOWER_3F + warp 18, 9, 2, POKEMON_TOWER_1F + + def_signs + + def_objects + object SPRITE_BLUE, 14, 5, STAY, NONE, 1 ; person + object SPRITE_CHANNELER, 3, 7, STAY, RIGHT, 2 ; person + + def_warps_to POKEMON_TOWER_2F diff --git a/data/maps/objects/PokemonTower3F.asm b/data/maps/objects/PokemonTower3F.asm new file mode 100755 index 000000000..af1b17dce --- /dev/null +++ b/data/maps/objects/PokemonTower3F.asm @@ -0,0 +1,16 @@ +PokemonTower3F_Object: + db $1 ; border block + + def_warps + warp 3, 9, 0, POKEMON_TOWER_2F + warp 18, 9, 1, POKEMON_TOWER_4F + + def_signs + + def_objects + object SPRITE_CHANNELER, 12, 3, STAY, LEFT, 1, OPP_CHANNELER, 5 + object SPRITE_CHANNELER, 9, 8, STAY, DOWN, 2, OPP_CHANNELER, 6 + object SPRITE_CHANNELER, 10, 13, STAY, DOWN, 3, OPP_CHANNELER, 8 + object SPRITE_POKE_BALL, 12, 1, STAY, NONE, 4, ESCAPE_ROPE + + def_warps_to POKEMON_TOWER_3F diff --git a/data/maps/objects/PokemonTower4F.asm b/data/maps/objects/PokemonTower4F.asm new file mode 100755 index 000000000..64801e233 --- /dev/null +++ b/data/maps/objects/PokemonTower4F.asm @@ -0,0 +1,18 @@ +PokemonTower4F_Object: + db $1 ; border block + + def_warps + warp 3, 9, 0, POKEMON_TOWER_5F + warp 18, 9, 1, POKEMON_TOWER_3F + + def_signs + + def_objects + object SPRITE_CHANNELER, 5, 10, STAY, RIGHT, 1, OPP_CHANNELER, 9 + object SPRITE_CHANNELER, 15, 7, STAY, DOWN, 2, OPP_CHANNELER, 10 + object SPRITE_CHANNELER, 14, 12, STAY, LEFT, 3, OPP_CHANNELER, 12 + object SPRITE_POKE_BALL, 12, 10, STAY, NONE, 4, ELIXER + object SPRITE_POKE_BALL, 9, 10, STAY, NONE, 5, AWAKENING + object SPRITE_POKE_BALL, 12, 16, STAY, NONE, 6, HP_UP + + def_warps_to POKEMON_TOWER_4F diff --git a/data/maps/objects/PokemonTower5F.asm b/data/maps/objects/PokemonTower5F.asm new file mode 100755 index 000000000..33482ed51 --- /dev/null +++ b/data/maps/objects/PokemonTower5F.asm @@ -0,0 +1,18 @@ +PokemonTower5F_Object: + db $1 ; border block + + def_warps + warp 3, 9, 0, POKEMON_TOWER_4F + warp 18, 9, 0, POKEMON_TOWER_6F + + def_signs + + def_objects + object SPRITE_CHANNELER, 12, 8, STAY, NONE, 1 ; person + object SPRITE_CHANNELER, 17, 7, STAY, LEFT, 2, OPP_CHANNELER, 14 + object SPRITE_CHANNELER, 14, 3, STAY, LEFT, 3, OPP_CHANNELER, 16 + object SPRITE_CHANNELER, 6, 10, STAY, RIGHT, 4, OPP_CHANNELER, 17 + object SPRITE_CHANNELER, 9, 16, STAY, RIGHT, 5, OPP_CHANNELER, 18 + object SPRITE_POKE_BALL, 6, 14, STAY, NONE, 6, NUGGET + + def_warps_to POKEMON_TOWER_5F diff --git a/data/maps/objects/PokemonTower6F.asm b/data/maps/objects/PokemonTower6F.asm new file mode 100755 index 000000000..8e7b276cf --- /dev/null +++ b/data/maps/objects/PokemonTower6F.asm @@ -0,0 +1,17 @@ +PokemonTower6F_Object: + db $1 ; border block + + def_warps + warp 18, 9, 1, POKEMON_TOWER_5F + warp 9, 16, 0, POKEMON_TOWER_7F + + def_signs + + def_objects + object SPRITE_CHANNELER, 12, 10, STAY, RIGHT, 1, OPP_CHANNELER, 19 + object SPRITE_CHANNELER, 9, 5, STAY, DOWN, 2, OPP_CHANNELER, 20 + object SPRITE_CHANNELER, 16, 5, STAY, LEFT, 3, OPP_CHANNELER, 21 + object SPRITE_POKE_BALL, 6, 8, STAY, NONE, 4, RARE_CANDY + object SPRITE_POKE_BALL, 14, 14, STAY, NONE, 5, X_ACCURACY + + def_warps_to POKEMON_TOWER_6F diff --git a/data/maps/objects/PokemonTower7F.asm b/data/maps/objects/PokemonTower7F.asm new file mode 100755 index 000000000..e5fe486b5 --- /dev/null +++ b/data/maps/objects/PokemonTower7F.asm @@ -0,0 +1,14 @@ +PokemonTower7F_Object: + db $1 ; border block + + def_warps + warp 9, 16, 1, POKEMON_TOWER_6F + + def_signs + + def_objects + object SPRITE_JESSIE, 10, 8, STAY, DOWN, 1 + object SPRITE_JAMES, 11, 8, STAY, DOWN, 2 + object SPRITE_MR_FUJI, 10, 3, STAY, DOWN, 3 + + def_warps_to POKEMON_TOWER_7F diff --git a/data/maps/objects/PowerPlant.asm b/data/maps/objects/PowerPlant.asm new file mode 100755 index 000000000..6802ce4fa --- /dev/null +++ b/data/maps/objects/PowerPlant.asm @@ -0,0 +1,27 @@ +PowerPlant_Object: + db $2e ; border block + + def_warps + warp 4, 35, 3, LAST_MAP + warp 5, 35, 3, LAST_MAP + warp 0, 11, 3, LAST_MAP + + def_signs + + def_objects + object SPRITE_POKE_BALL, 9, 20, STAY, NONE, 1, VOLTORB, 40 + object SPRITE_POKE_BALL, 32, 18, STAY, NONE, 2, VOLTORB, 40 + object SPRITE_POKE_BALL, 21, 25, STAY, NONE, 3, VOLTORB, 40 + object SPRITE_POKE_BALL, 25, 18, STAY, NONE, 4, ELECTRODE, 43 + object SPRITE_POKE_BALL, 23, 34, STAY, NONE, 5, VOLTORB, 40 + object SPRITE_POKE_BALL, 26, 28, STAY, NONE, 6, VOLTORB, 40 + object SPRITE_POKE_BALL, 21, 14, STAY, NONE, 7, ELECTRODE, 43 + object SPRITE_POKE_BALL, 37, 32, STAY, NONE, 8, VOLTORB, 40 + object SPRITE_BIRD, 4, 9, STAY, UP, 9, ZAPDOS, 50 + object SPRITE_POKE_BALL, 7, 25, STAY, NONE, 10, CARBOS + object SPRITE_POKE_BALL, 28, 3, STAY, NONE, 11, HP_UP + object SPRITE_POKE_BALL, 34, 3, STAY, NONE, 12, RARE_CANDY + object SPRITE_POKE_BALL, 26, 32, STAY, NONE, 13, TM_THUNDER + object SPRITE_POKE_BALL, 20, 32, STAY, NONE, 14, TM_REFLECT + + def_warps_to POWER_PLANT diff --git a/data/maps/objects/RedsHouse1F.asm b/data/maps/objects/RedsHouse1F.asm new file mode 100755 index 000000000..f7cd08199 --- /dev/null +++ b/data/maps/objects/RedsHouse1F.asm @@ -0,0 +1,15 @@ +RedsHouse1F_Object: + db $a ; border block + + def_warps + warp 2, 7, 0, LAST_MAP ; exit1 + warp 3, 7, 0, LAST_MAP ; exit2 + warp 7, 1, 0, REDS_HOUSE_2F ; staircase + + def_signs + sign 3, 1, 2 ; TV + + def_objects + object SPRITE_MOM, 5, 4, STAY, LEFT, 1 ; Mom + + def_warps_to REDS_HOUSE_1F diff --git a/data/maps/objects/RedsHouse2F.asm b/data/maps/objects/RedsHouse2F.asm new file mode 100755 index 000000000..826e68fdb --- /dev/null +++ b/data/maps/objects/RedsHouse2F.asm @@ -0,0 +1,11 @@ +RedsHouse2F_Object: + db $a ; border block + + def_warps + warp 7, 1, 2, REDS_HOUSE_1F + + def_signs + + def_objects + + def_warps_to REDS_HOUSE_2F diff --git a/data/maps/objects/RockTunnel1F.asm b/data/maps/objects/RockTunnel1F.asm new file mode 100755 index 000000000..b3d4da480 --- /dev/null +++ b/data/maps/objects/RockTunnel1F.asm @@ -0,0 +1,26 @@ +RockTunnel1F_Object: + db $3 ; border block + + def_warps + warp 15, 3, 1, LAST_MAP + warp 15, 0, 1, LAST_MAP + warp 15, 33, 2, LAST_MAP + warp 15, 35, 2, LAST_MAP + warp 37, 3, 0, ROCK_TUNNEL_B1F + warp 5, 3, 1, ROCK_TUNNEL_B1F + warp 17, 11, 2, ROCK_TUNNEL_B1F + warp 37, 17, 3, ROCK_TUNNEL_B1F + + def_signs + sign 11, 29, 8 ; RockTunnel1Text8 + + def_objects + object SPRITE_HIKER, 7, 5, STAY, DOWN, 1, OPP_HIKER, 12 + object SPRITE_HIKER, 5, 16, STAY, DOWN, 2, OPP_HIKER, 13 + object SPRITE_HIKER, 17, 15, STAY, LEFT, 3, OPP_HIKER, 14 + object SPRITE_SUPER_NERD, 23, 8, STAY, LEFT, 4, OPP_POKEMANIAC, 7 + object SPRITE_COOLTRAINER_F, 37, 21, STAY, LEFT, 5, OPP_JR_TRAINER_F, 17 + object SPRITE_COOLTRAINER_F, 22, 24, STAY, DOWN, 6, OPP_JR_TRAINER_F, 18 + object SPRITE_COOLTRAINER_F, 32, 24, STAY, RIGHT, 7, OPP_JR_TRAINER_F, 19 + + def_warps_to ROCK_TUNNEL_1F diff --git a/data/maps/objects/RockTunnelB1F.asm b/data/maps/objects/RockTunnelB1F.asm new file mode 100755 index 000000000..3fadaa5b0 --- /dev/null +++ b/data/maps/objects/RockTunnelB1F.asm @@ -0,0 +1,22 @@ +RockTunnelB1F_Object: + db $3 ; border block + + def_warps + warp 33, 25, 4, ROCK_TUNNEL_1F + warp 27, 3, 5, ROCK_TUNNEL_1F + warp 23, 11, 6, ROCK_TUNNEL_1F + warp 3, 3, 7, ROCK_TUNNEL_1F + + def_signs + + def_objects + object SPRITE_COOLTRAINER_F, 11, 13, STAY, DOWN, 1, OPP_JR_TRAINER_F, 9 + object SPRITE_HIKER, 6, 10, STAY, DOWN, 2, OPP_HIKER, 9 + object SPRITE_SUPER_NERD, 3, 5, STAY, DOWN, 3, OPP_POKEMANIAC, 3 + object SPRITE_SUPER_NERD, 20, 21, STAY, RIGHT, 4, OPP_POKEMANIAC, 4 + object SPRITE_HIKER, 30, 10, STAY, DOWN, 5, OPP_HIKER, 10 + object SPRITE_COOLTRAINER_F, 14, 28, STAY, RIGHT, 6, OPP_JR_TRAINER_F, 10 + object SPRITE_HIKER, 33, 5, STAY, RIGHT, 7, OPP_HIKER, 11 + object SPRITE_SUPER_NERD, 26, 30, STAY, DOWN, 8, OPP_POKEMANIAC, 5 + + def_warps_to ROCK_TUNNEL_B1F diff --git a/data/maps/objects/RockTunnelPokecenter.asm b/data/maps/objects/RockTunnelPokecenter.asm new file mode 100755 index 000000000..7b99d4914 --- /dev/null +++ b/data/maps/objects/RockTunnelPokecenter.asm @@ -0,0 +1,17 @@ +RockTunnelPokecenter_Object: + db $0 ; border block + + def_warps + warp 3, 7, 0, LAST_MAP + warp 4, 7, 0, LAST_MAP + + def_signs + + def_objects + object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person + object SPRITE_GENTLEMAN, 7, 3, STAY, DOWN, 2 ; person + object SPRITE_FISHER, 2, 5, STAY, NONE, 3 ; person + object SPRITE_LINK_RECEPTIONIST, 11, 2, STAY, DOWN, 4 ; person + object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person + + def_warps_to ROCK_TUNNEL_POKECENTER diff --git a/data/maps/objects/RocketHideoutB1F.asm b/data/maps/objects/RocketHideoutB1F.asm new file mode 100755 index 000000000..81049d636 --- /dev/null +++ b/data/maps/objects/RocketHideoutB1F.asm @@ -0,0 +1,22 @@ +RocketHideoutB1F_Object: + db $2e ; border block + + def_warps + warp 23, 2, 0, ROCKET_HIDEOUT_B2F + warp 21, 2, 2, GAME_CORNER + warp 24, 19, 0, ROCKET_HIDEOUT_ELEVATOR + warp 21, 24, 3, ROCKET_HIDEOUT_B2F + warp 25, 19, 1, ROCKET_HIDEOUT_ELEVATOR + + def_signs + + def_objects + object SPRITE_ROCKET, 26, 8, STAY, LEFT, 1, OPP_ROCKET, 8 + object SPRITE_ROCKET, 12, 6, STAY, RIGHT, 2, OPP_ROCKET, 9 + object SPRITE_ROCKET, 18, 17, STAY, DOWN, 3, OPP_ROCKET, 10 + object SPRITE_ROCKET, 15, 25, STAY, RIGHT, 4, OPP_ROCKET, 11 + object SPRITE_ROCKET, 28, 18, STAY, LEFT, 5, OPP_ROCKET, 12 + object SPRITE_POKE_BALL, 11, 14, STAY, NONE, 6, ESCAPE_ROPE + object SPRITE_POKE_BALL, 9, 17, STAY, NONE, 7, HYPER_POTION + + def_warps_to ROCKET_HIDEOUT_B1F diff --git a/data/maps/objects/RocketHideoutB2F.asm b/data/maps/objects/RocketHideoutB2F.asm new file mode 100755 index 000000000..f6ce5113d --- /dev/null +++ b/data/maps/objects/RocketHideoutB2F.asm @@ -0,0 +1,20 @@ +RocketHideoutB2F_Object: + db $2e ; border block + + def_warps + warp 27, 8, 0, ROCKET_HIDEOUT_B1F + warp 21, 8, 0, ROCKET_HIDEOUT_B3F + warp 24, 19, 0, ROCKET_HIDEOUT_ELEVATOR + warp 21, 22, 3, ROCKET_HIDEOUT_B1F + warp 25, 19, 1, ROCKET_HIDEOUT_ELEVATOR + + def_signs + + def_objects + object SPRITE_ROCKET, 20, 12, STAY, DOWN, 1, OPP_ROCKET, 13 + object SPRITE_POKE_BALL, 1, 11, STAY, NONE, 2, MOON_STONE + object SPRITE_POKE_BALL, 16, 8, STAY, NONE, 3, NUGGET + object SPRITE_POKE_BALL, 6, 12, STAY, NONE, 4, TM_HORN_DRILL + object SPRITE_POKE_BALL, 3, 21, STAY, NONE, 5, SUPER_POTION + + def_warps_to ROCKET_HIDEOUT_B2F diff --git a/data/maps/objects/RocketHideoutB3F.asm b/data/maps/objects/RocketHideoutB3F.asm new file mode 100755 index 000000000..4cba54225 --- /dev/null +++ b/data/maps/objects/RocketHideoutB3F.asm @@ -0,0 +1,16 @@ +RocketHideoutB3F_Object: + db $2e ; border block + + def_warps + warp 25, 6, 1, ROCKET_HIDEOUT_B2F + warp 19, 18, 0, ROCKET_HIDEOUT_B4F + + def_signs + + def_objects + object SPRITE_ROCKET, 10, 22, STAY, RIGHT, 1, OPP_ROCKET, 14 + object SPRITE_ROCKET, 26, 12, STAY, UP, 2, OPP_ROCKET, 15 + object SPRITE_POKE_BALL, 26, 17, STAY, NONE, 3, TM_DOUBLE_EDGE + object SPRITE_POKE_BALL, 20, 14, STAY, NONE, 4, RARE_CANDY + + def_warps_to ROCKET_HIDEOUT_B3F diff --git a/data/maps/objects/RocketHideoutB4F.asm b/data/maps/objects/RocketHideoutB4F.asm new file mode 100755 index 000000000..3541befc1 --- /dev/null +++ b/data/maps/objects/RocketHideoutB4F.asm @@ -0,0 +1,22 @@ +RocketHideoutB4F_Object: + db $2e ; border block + + def_warps + warp 19, 10, 1, ROCKET_HIDEOUT_B3F + warp 24, 15, 0, ROCKET_HIDEOUT_ELEVATOR + warp 25, 15, 1, ROCKET_HIDEOUT_ELEVATOR + + def_signs + + def_objects + object SPRITE_GIOVANNI, 25, 3, STAY, DOWN, 1, OPP_GIOVANNI, 1 + object SPRITE_JAMES, 25, 10, STAY, DOWN, 2 + object SPRITE_JESSIE, 24, 10, STAY, DOWN, 3 + object SPRITE_ROCKET, 11, 2, STAY, DOWN, 4, OPP_ROCKET, 18 + object SPRITE_POKE_BALL, 10, 12, STAY, NONE, 5, HP_UP + object SPRITE_POKE_BALL, 9, 4, STAY, NONE, 6, TM_RAZOR_WIND + object SPRITE_POKE_BALL, 12, 20, STAY, NONE, 7, IRON + object SPRITE_POKE_BALL, 25, 2, STAY, NONE, 8, SILPH_SCOPE + object SPRITE_POKE_BALL, 10, 2, STAY, NONE, 9, LIFT_KEY + + def_warps_to ROCKET_HIDEOUT_B4F diff --git a/data/maps/objects/RocketHideoutElevator.asm b/data/maps/objects/RocketHideoutElevator.asm new file mode 100755 index 000000000..20ab49563 --- /dev/null +++ b/data/maps/objects/RocketHideoutElevator.asm @@ -0,0 +1,13 @@ +RocketHideoutElevator_Object: + db $f ; border block + + def_warps + warp 2, 1, 2, ROCKET_HIDEOUT_B1F + warp 3, 1, 4, ROCKET_HIDEOUT_B1F + + def_signs + sign 1, 1, 1 ; RocketHideoutElevatorText1 + + def_objects + + def_warps_to ROCKET_HIDEOUT_ELEVATOR diff --git a/data/maps/objects/Route1.asm b/data/maps/objects/Route1.asm new file mode 100755 index 000000000..ee1b03a5f --- /dev/null +++ b/data/maps/objects/Route1.asm @@ -0,0 +1,16 @@ +Route1_Object: + db $b ; border block + + def_warps + + def_signs + sign 9, 27, 3 ; Route1Text3 + + def_objects + object SPRITE_YOUNGSTER, 5, 24, WALK, UP_DOWN, 1 ; person + object SPRITE_YOUNGSTER, 15, 13, WALK, LEFT_RIGHT, 2 ; person + + def_warps_to ROUTE_1 + + ; unused + warp_to 2, 7, 4 diff --git a/data/maps/objects/Route10.asm b/data/maps/objects/Route10.asm new file mode 100755 index 000000000..54a0936e5 --- /dev/null +++ b/data/maps/objects/Route10.asm @@ -0,0 +1,24 @@ +Route10_Object: + db $2c ; border block + + def_warps + warp 11, 19, 0, ROCK_TUNNEL_POKECENTER + warp 8, 17, 0, ROCK_TUNNEL_1F + warp 8, 53, 2, ROCK_TUNNEL_1F + warp 6, 39, 0, POWER_PLANT + + def_signs + sign 7, 19, 7 ; Route10Text7 + sign 12, 19, 8 ; PokeCenterSignText + sign 9, 55, 9 ; Route10Text9 + sign 5, 41, 10 ; Route10Text10 + + def_objects + object SPRITE_SUPER_NERD, 10, 44, STAY, LEFT, 1, OPP_POKEMANIAC, 1 + object SPRITE_HIKER, 3, 57, STAY, UP, 2, OPP_HIKER, 7 + object SPRITE_SUPER_NERD, 14, 64, STAY, LEFT, 3, OPP_POKEMANIAC, 2 + object SPRITE_COOLTRAINER_F, 7, 25, STAY, LEFT, 4, OPP_JR_TRAINER_F, 7 + object SPRITE_HIKER, 3, 61, STAY, DOWN, 5, OPP_HIKER, 8 + object SPRITE_COOLTRAINER_F, 7, 54, STAY, DOWN, 6, OPP_JR_TRAINER_F, 8 + + def_warps_to ROUTE_10 diff --git a/data/maps/objects/Route11.asm b/data/maps/objects/Route11.asm new file mode 100755 index 000000000..0814aeb1e --- /dev/null +++ b/data/maps/objects/Route11.asm @@ -0,0 +1,26 @@ +Route11_Object: + db $f ; border block + + def_warps + warp 49, 8, 0, ROUTE_11_GATE_1F + warp 49, 9, 0, ROUTE_11_GATE_1F + warp 58, 8, 2, ROUTE_11_GATE_1F + warp 58, 9, 2, ROUTE_11_GATE_1F + warp 4, 5, 0, DIGLETTS_CAVE_ROUTE_11 + + def_signs + sign 1, 5, 11 ; Route11Text11 + + def_objects + object SPRITE_GAMBLER, 10, 14, STAY, DOWN, 1, OPP_GAMBLER, 1 + object SPRITE_GAMBLER, 26, 9, STAY, DOWN, 2, OPP_GAMBLER, 2 + object SPRITE_YOUNGSTER, 13, 5, STAY, LEFT, 3, OPP_YOUNGSTER, 9 + object SPRITE_SUPER_NERD, 36, 11, STAY, DOWN, 4, OPP_ENGINEER, 2 + object SPRITE_YOUNGSTER, 22, 4, STAY, UP, 5, OPP_YOUNGSTER, 10 + object SPRITE_GAMBLER, 45, 7, STAY, DOWN, 6, OPP_GAMBLER, 3 + object SPRITE_GAMBLER, 33, 3, STAY, UP, 7, OPP_GAMBLER, 4 + object SPRITE_YOUNGSTER, 43, 5, STAY, RIGHT, 8, OPP_YOUNGSTER, 11 + object SPRITE_SUPER_NERD, 45, 16, STAY, LEFT, 9, OPP_ENGINEER, 3 + object SPRITE_YOUNGSTER, 22, 12, STAY, UP, 10, OPP_YOUNGSTER, 12 + + def_warps_to ROUTE_11 diff --git a/data/maps/objects/Route11Gate1F.asm b/data/maps/objects/Route11Gate1F.asm new file mode 100755 index 000000000..d0c9c4613 --- /dev/null +++ b/data/maps/objects/Route11Gate1F.asm @@ -0,0 +1,16 @@ +Route11Gate1F_Object: + db $a ; border block + + def_warps + warp 0, 4, 0, LAST_MAP + warp 0, 5, 1, LAST_MAP + warp 7, 4, 2, LAST_MAP + warp 7, 5, 3, LAST_MAP + warp 6, 8, 0, ROUTE_11_GATE_2F + + def_signs + + def_objects + object SPRITE_GUARD, 4, 1, STAY, NONE, 1 ; person + + def_warps_to ROUTE_11_GATE_1F diff --git a/data/maps/objects/Route11Gate2F.asm b/data/maps/objects/Route11Gate2F.asm new file mode 100755 index 000000000..fa48409ca --- /dev/null +++ b/data/maps/objects/Route11Gate2F.asm @@ -0,0 +1,15 @@ +Route11Gate2F_Object: + db $a ; border block + + def_warps + warp 7, 7, 4, ROUTE_11_GATE_1F + + def_signs + sign 1, 2, 3 ; Route11GateUpstairsText3 + sign 6, 2, 4 ; Route11GateUpstairsText4 + + def_objects + object SPRITE_YOUNGSTER, 4, 2, WALK, LEFT_RIGHT, 1 ; person + object SPRITE_SCIENTIST, 2, 6, STAY, NONE, 2 ; person + + def_warps_to ROUTE_11_GATE_2F diff --git a/data/maps/objects/Route12.asm b/data/maps/objects/Route12.asm new file mode 100755 index 000000000..bdb74d68f --- /dev/null +++ b/data/maps/objects/Route12.asm @@ -0,0 +1,26 @@ +Route12_Object: + db $43 ; border block + + def_warps + warp 10, 15, 0, ROUTE_12_GATE_1F + warp 11, 15, 0, ROUTE_12_GATE_1F + warp 10, 21, 2, ROUTE_12_GATE_1F + warp 11, 77, 0, ROUTE_12_SUPER_ROD_HOUSE + + def_signs + sign 13, 13, 11 ; Route12Text11 + sign 11, 63, 12 ; Route12Text12 + + def_objects + object SPRITE_SNORLAX, 10, 62, STAY, DOWN, 1 ; person + object SPRITE_FISHER, 14, 31, STAY, LEFT, 2, OPP_FISHER, 3 + object SPRITE_FISHER, 5, 39, STAY, UP, 3, OPP_FISHER, 4 + object SPRITE_COOLTRAINER_M, 11, 92, STAY, LEFT, 4, OPP_JR_TRAINER_M, 9 + object SPRITE_SUPER_NERD, 14, 76, STAY, UP, 5, OPP_ROCKER, 2 + object SPRITE_FISHER, 12, 40, STAY, LEFT, 6, OPP_FISHER, 5 + object SPRITE_FISHER, 9, 52, STAY, RIGHT, 7, OPP_FISHER, 6 + object SPRITE_FISHER, 6, 87, STAY, DOWN, 8, OPP_FISHER, 11 + object SPRITE_POKE_BALL, 14, 35, STAY, NONE, 9, TM_PAY_DAY + object SPRITE_POKE_BALL, 5, 89, STAY, NONE, 10, IRON + + def_warps_to ROUTE_12 diff --git a/data/maps/objects/Route12Gate1F.asm b/data/maps/objects/Route12Gate1F.asm new file mode 100755 index 000000000..356bf67ae --- /dev/null +++ b/data/maps/objects/Route12Gate1F.asm @@ -0,0 +1,16 @@ +Route12Gate1F_Object: + db $a ; border block + + def_warps + warp 4, 0, 0, LAST_MAP + warp 5, 0, 1, LAST_MAP + warp 4, 7, 2, LAST_MAP + warp 5, 7, 2, LAST_MAP + warp 8, 6, 0, ROUTE_12_GATE_2F + + def_signs + + def_objects + object SPRITE_GUARD, 1, 3, STAY, NONE, 1 ; person + + def_warps_to ROUTE_12_GATE_1F diff --git a/data/maps/objects/Route12Gate2F.asm b/data/maps/objects/Route12Gate2F.asm new file mode 100755 index 000000000..413adf255 --- /dev/null +++ b/data/maps/objects/Route12Gate2F.asm @@ -0,0 +1,14 @@ +Route12Gate2F_Object: + db $a ; border block + + def_warps + warp 7, 7, 4, ROUTE_12_GATE_1F + + def_signs + sign 1, 2, 2 ; Route12GateUpstairsText2 + sign 6, 2, 3 ; Route12GateUpstairsText3 + + def_objects + object SPRITE_BRUNETTE_GIRL, 3, 4, WALK, UP_DOWN, 1 ; person + + def_warps_to ROUTE_12_GATE_2F diff --git a/data/maps/objects/Route12SuperRodHouse.asm b/data/maps/objects/Route12SuperRodHouse.asm new file mode 100755 index 000000000..4cd43639e --- /dev/null +++ b/data/maps/objects/Route12SuperRodHouse.asm @@ -0,0 +1,13 @@ +Route12SuperRodHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 3, LAST_MAP + warp 3, 7, 3, LAST_MAP + + def_signs + + def_objects + object SPRITE_FISHING_GURU, 2, 4, STAY, RIGHT, 1 ; person + + def_warps_to ROUTE_12_SUPER_ROD_HOUSE diff --git a/data/maps/objects/Route13.asm b/data/maps/objects/Route13.asm new file mode 100755 index 000000000..365eea7da --- /dev/null +++ b/data/maps/objects/Route13.asm @@ -0,0 +1,23 @@ +Route13_Object: + db $43 ; border block + + def_warps + + def_signs + sign 15, 13, 11 ; Route13Text11 + sign 33, 5, 12 ; Route13Text12 + sign 31, 11, 13 ; Route13Text13 + + def_objects + object SPRITE_COOLTRAINER_M, 49, 10, STAY, RIGHT, 1, OPP_BIRD_KEEPER, 1 + object SPRITE_COOLTRAINER_F, 48, 10, STAY, DOWN, 2, OPP_JR_TRAINER_F, 12 + object SPRITE_COOLTRAINER_F, 27, 9, STAY, DOWN, 3, OPP_JR_TRAINER_F, 13 + object SPRITE_COOLTRAINER_F, 23, 10, STAY, LEFT, 4, OPP_JR_TRAINER_F, 14 + object SPRITE_COOLTRAINER_F, 50, 5, STAY, DOWN, 5, OPP_JR_TRAINER_F, 15 + object SPRITE_COOLTRAINER_M, 12, 4, STAY, RIGHT, 6, OPP_BIRD_KEEPER, 2 + object SPRITE_BEAUTY, 33, 6, STAY, DOWN, 7, OPP_BEAUTY, 4 + object SPRITE_BEAUTY, 32, 6, STAY, DOWN, 8, OPP_BEAUTY, 5 + object SPRITE_BIKER, 10, 7, STAY, UP, 9, OPP_BIKER, 1 + object SPRITE_COOLTRAINER_M, 7, 13, STAY, UP, 10, OPP_BIRD_KEEPER, 3 + + def_warps_to ROUTE_13 diff --git a/data/maps/objects/Route14.asm b/data/maps/objects/Route14.asm new file mode 100755 index 000000000..4a2240e69 --- /dev/null +++ b/data/maps/objects/Route14.asm @@ -0,0 +1,21 @@ +Route14_Object: + db $43 ; border block + + def_warps + + def_signs + sign 17, 13, 11 ; Route14Text11 + + def_objects + object SPRITE_COOLTRAINER_M, 4, 4, STAY, DOWN, 1, OPP_BIRD_KEEPER, 14 + object SPRITE_COOLTRAINER_M, 15, 6, STAY, DOWN, 2, OPP_BIRD_KEEPER, 15 + object SPRITE_COOLTRAINER_M, 12, 11, STAY, DOWN, 3, OPP_BIRD_KEEPER, 16 + object SPRITE_COOLTRAINER_M, 14, 15, STAY, UP, 4, OPP_BIRD_KEEPER, 17 + object SPRITE_COOLTRAINER_M, 15, 31, STAY, LEFT, 5, OPP_BIRD_KEEPER, 4 + object SPRITE_COOLTRAINER_M, 6, 49, STAY, UP, 6, OPP_BIRD_KEEPER, 5 + object SPRITE_BIKER, 5, 39, STAY, DOWN, 7, OPP_BIKER, 13 + object SPRITE_BIKER, 4, 30, STAY, RIGHT, 8, OPP_BIKER, 14 + object SPRITE_BIKER, 15, 30, STAY, LEFT, 9, OPP_BIKER, 15 + object SPRITE_BIKER, 4, 31, STAY, RIGHT, 10, OPP_BIKER, 2 + + def_warps_to ROUTE_14 diff --git a/data/maps/objects/Route15.asm b/data/maps/objects/Route15.asm new file mode 100755 index 000000000..884e1704d --- /dev/null +++ b/data/maps/objects/Route15.asm @@ -0,0 +1,26 @@ +Route15_Object: + db $43 ; border block + + def_warps + warp 7, 8, 0, ROUTE_15_GATE_1F + warp 7, 9, 0, ROUTE_15_GATE_1F + warp 14, 8, 2, ROUTE_15_GATE_1F + warp 14, 9, 2, ROUTE_15_GATE_1F + + def_signs + sign 39, 9, 12 ; Route15Text12 + + def_objects + object SPRITE_COOLTRAINER_F, 41, 11, STAY, DOWN, 1, OPP_JR_TRAINER_F, 20 + object SPRITE_COOLTRAINER_F, 53, 10, STAY, LEFT, 2, OPP_JR_TRAINER_F, 21 + object SPRITE_COOLTRAINER_M, 31, 13, STAY, UP, 3, OPP_BIRD_KEEPER, 6 + object SPRITE_COOLTRAINER_M, 35, 13, STAY, UP, 4, OPP_BIRD_KEEPER, 7 + object SPRITE_BEAUTY, 53, 11, STAY, DOWN, 5, OPP_BEAUTY, 9 + object SPRITE_BEAUTY, 41, 10, STAY, RIGHT, 6, OPP_BEAUTY, 10 + object SPRITE_BIKER, 48, 10, STAY, DOWN, 7, OPP_BIKER, 3 + object SPRITE_BIKER, 46, 10, STAY, DOWN, 8, OPP_BIKER, 4 + object SPRITE_COOLTRAINER_F, 37, 5, STAY, RIGHT, 9, OPP_JR_TRAINER_F, 22 + object SPRITE_COOLTRAINER_F, 18, 13, STAY, UP, 10, OPP_JR_TRAINER_F, 23 + object SPRITE_POKE_BALL, 18, 5, STAY, NONE, 11, TM_RAGE + + def_warps_to ROUTE_15 diff --git a/data/maps/objects/Route15Gate1F.asm b/data/maps/objects/Route15Gate1F.asm new file mode 100755 index 000000000..e611e98bb --- /dev/null +++ b/data/maps/objects/Route15Gate1F.asm @@ -0,0 +1,16 @@ +Route15Gate1F_Object: + db $a ; border block + + def_warps + warp 0, 4, 0, LAST_MAP + warp 0, 5, 1, LAST_MAP + warp 7, 4, 2, LAST_MAP + warp 7, 5, 3, LAST_MAP + warp 6, 8, 0, ROUTE_15_GATE_2F + + def_signs + + def_objects + object SPRITE_GUARD, 4, 1, STAY, NONE, 1 ; person + + def_warps_to ROUTE_15_GATE_1F diff --git a/data/maps/objects/Route15Gate2F.asm b/data/maps/objects/Route15Gate2F.asm new file mode 100755 index 000000000..608b69e55 --- /dev/null +++ b/data/maps/objects/Route15Gate2F.asm @@ -0,0 +1,13 @@ +Route15Gate2F_Object: + db $a ; border block + + def_warps + warp 7, 7, 4, ROUTE_15_GATE_1F + + def_signs + sign 6, 2, 2 ; Route15GateUpstairsText2 + + def_objects + object SPRITE_SCIENTIST, 4, 2, STAY, DOWN, 1 + + def_warps_to ROUTE_15_GATE_2F diff --git a/data/maps/objects/Route16.asm b/data/maps/objects/Route16.asm new file mode 100755 index 000000000..50a8a4bfd --- /dev/null +++ b/data/maps/objects/Route16.asm @@ -0,0 +1,28 @@ +Route16_Object: + db $f ; border block + + def_warps + warp 17, 10, 0, ROUTE_16_GATE_1F + warp 17, 11, 0, ROUTE_16_GATE_1F + warp 24, 10, 2, ROUTE_16_GATE_1F + warp 24, 11, 2, ROUTE_16_GATE_1F + warp 17, 4, 4, ROUTE_16_GATE_1F + warp 17, 5, 4, ROUTE_16_GATE_1F + warp 24, 4, 6, ROUTE_16_GATE_1F + warp 24, 5, 6, ROUTE_16_GATE_1F + warp 7, 5, 0, ROUTE_16_FLY_HOUSE + + def_signs + sign 27, 11, 8 ; Route16Text8 + sign 5, 17, 9 ; Route16Text9 + + def_objects + object SPRITE_BIKER, 17, 12, STAY, LEFT, 1, OPP_BIKER, 5 + object SPRITE_BIKER, 14, 13, STAY, RIGHT, 2, OPP_CUE_BALL, 1 + object SPRITE_BIKER, 11, 12, STAY, UP, 3, OPP_CUE_BALL, 2 + object SPRITE_BIKER, 9, 11, STAY, LEFT, 4, OPP_BIKER, 6 + object SPRITE_BIKER, 6, 10, STAY, RIGHT, 5, OPP_CUE_BALL, 3 + object SPRITE_BIKER, 3, 12, STAY, RIGHT, 6, OPP_BIKER, 7 + object SPRITE_SNORLAX, 26, 10, STAY, DOWN, 7 ; person + + def_warps_to ROUTE_16 diff --git a/data/maps/objects/Route16FlyHouse.asm b/data/maps/objects/Route16FlyHouse.asm new file mode 100755 index 000000000..be6cdc61b --- /dev/null +++ b/data/maps/objects/Route16FlyHouse.asm @@ -0,0 +1,14 @@ +Route16FlyHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 8, LAST_MAP + warp 3, 7, 8, LAST_MAP + + def_signs + + def_objects + object SPRITE_BRUNETTE_GIRL, 2, 3, STAY, RIGHT, 1 ; person + object SPRITE_BIRD, 6, 4, WALK, ANY_DIR, 2 ; person + + def_warps_to ROUTE_16_FLY_HOUSE diff --git a/data/maps/objects/Route16Gate1F.asm b/data/maps/objects/Route16Gate1F.asm new file mode 100755 index 000000000..4f876e7f3 --- /dev/null +++ b/data/maps/objects/Route16Gate1F.asm @@ -0,0 +1,21 @@ +Route16Gate1F_Object: + db $a ; border block + + def_warps + warp 0, 8, 0, LAST_MAP + warp 0, 9, 1, LAST_MAP + warp 7, 8, 2, LAST_MAP + warp 7, 9, 2, LAST_MAP + warp 0, 2, 4, LAST_MAP + warp 0, 3, 5, LAST_MAP + warp 7, 2, 6, LAST_MAP + warp 7, 3, 7, LAST_MAP + warp 6, 12, 0, ROUTE_16_GATE_2F + + def_signs + + def_objects + object SPRITE_GUARD, 4, 5, STAY, DOWN, 1 ; person + object SPRITE_GAMBLER, 4, 3, STAY, NONE, 2 ; person + + def_warps_to ROUTE_16_GATE_1F diff --git a/data/maps/objects/Route16Gate2F.asm b/data/maps/objects/Route16Gate2F.asm new file mode 100755 index 000000000..53511ae52 --- /dev/null +++ b/data/maps/objects/Route16Gate2F.asm @@ -0,0 +1,15 @@ +Route16Gate2F_Object: + db $a ; border block + + def_warps + warp 7, 7, 8, ROUTE_16_GATE_1F + + def_signs + sign 1, 2, 3 ; Route16GateUpstairsText3 + sign 6, 2, 4 ; Route16GateUpstairsText4 + + def_objects + object SPRITE_LITTLE_BOY, 4, 2, STAY, NONE, 1 ; person + object SPRITE_LITTLE_GIRL, 2, 5, WALK, LEFT_RIGHT, 2 ; person + + def_warps_to ROUTE_16_GATE_2F diff --git a/data/maps/objects/Route17.asm b/data/maps/objects/Route17.asm new file mode 100755 index 000000000..f170b695c --- /dev/null +++ b/data/maps/objects/Route17.asm @@ -0,0 +1,26 @@ +Route17_Object: + db $43 ; border block + + def_warps + + def_signs + sign 9, 51, 11 ; Route17Text11 + sign 9, 63, 12 ; Route17Text12 + sign 9, 75, 13 ; Route17Text13 + sign 9, 87, 14 ; Route17Text14 + sign 9, 111, 15 ; Route17Text15 + sign 9, 141, 16 ; Route17Text16 + + def_objects + object SPRITE_BIKER, 12, 19, STAY, LEFT, 1, OPP_CUE_BALL, 4 + object SPRITE_BIKER, 11, 16, STAY, RIGHT, 2, OPP_CUE_BALL, 5 + object SPRITE_BIKER, 4, 18, STAY, UP, 3, OPP_BIKER, 8 + object SPRITE_BIKER, 7, 32, STAY, LEFT, 4, OPP_BIKER, 9 + object SPRITE_BIKER, 14, 34, STAY, RIGHT, 5, OPP_BIKER, 10 + object SPRITE_BIKER, 17, 58, STAY, LEFT, 6, OPP_CUE_BALL, 6 + object SPRITE_BIKER, 2, 68, STAY, RIGHT, 7, OPP_CUE_BALL, 7 + object SPRITE_BIKER, 14, 98, STAY, RIGHT, 8, OPP_CUE_BALL, 8 + object SPRITE_BIKER, 5, 98, STAY, LEFT, 9, OPP_BIKER, 11 + object SPRITE_BIKER, 10, 118, STAY, DOWN, 10, OPP_BIKER, 12 + + def_warps_to ROUTE_17 diff --git a/data/maps/objects/Route18.asm b/data/maps/objects/Route18.asm new file mode 100755 index 000000000..cbb881fe2 --- /dev/null +++ b/data/maps/objects/Route18.asm @@ -0,0 +1,19 @@ +Route18_Object: + db $43 ; border block + + def_warps + warp 33, 8, 0, ROUTE_18_GATE_1F + warp 33, 9, 0, ROUTE_18_GATE_1F + warp 40, 8, 2, ROUTE_18_GATE_1F + warp 40, 9, 2, ROUTE_18_GATE_1F + + def_signs + sign 43, 7, 4 ; Route18Text4 + sign 33, 5, 5 ; Route18Text5 + + def_objects + object SPRITE_COOLTRAINER_M, 36, 11, STAY, RIGHT, 1, OPP_BIRD_KEEPER, 8 + object SPRITE_COOLTRAINER_M, 40, 15, STAY, LEFT, 2, OPP_BIRD_KEEPER, 9 + object SPRITE_COOLTRAINER_M, 42, 13, STAY, LEFT, 3, OPP_BIRD_KEEPER, 10 + + def_warps_to ROUTE_18 diff --git a/data/maps/objects/Route18Gate1F.asm b/data/maps/objects/Route18Gate1F.asm new file mode 100755 index 000000000..3bfdefaa9 --- /dev/null +++ b/data/maps/objects/Route18Gate1F.asm @@ -0,0 +1,16 @@ +Route18Gate1F_Object: + db $a ; border block + + def_warps + warp 0, 4, 0, LAST_MAP + warp 0, 5, 1, LAST_MAP + warp 7, 4, 2, LAST_MAP + warp 7, 5, 3, LAST_MAP + warp 6, 8, 0, ROUTE_18_GATE_2F + + def_signs + + def_objects + object SPRITE_GUARD, 4, 1, STAY, DOWN, 1 ; person + + def_warps_to ROUTE_18_GATE_1F diff --git a/data/maps/objects/Route18Gate2F.asm b/data/maps/objects/Route18Gate2F.asm new file mode 100755 index 000000000..a2080d468 --- /dev/null +++ b/data/maps/objects/Route18Gate2F.asm @@ -0,0 +1,14 @@ +Route18Gate2F_Object: + db $a ; border block + + def_warps + warp 7, 7, 4, ROUTE_18_GATE_1F + + def_signs + sign 1, 2, 2 ; Route18GateUpstairsText2 + sign 6, 2, 3 ; Route18GateUpstairsText3 + + def_objects + object SPRITE_COOK, 4, 2, WALK, LEFT_RIGHT, 1 ; person + + def_warps_to ROUTE_18_GATE_2F diff --git a/data/maps/objects/Route19.asm b/data/maps/objects/Route19.asm new file mode 100755 index 000000000..340c48f00 --- /dev/null +++ b/data/maps/objects/Route19.asm @@ -0,0 +1,22 @@ +Route19_Object: + db $43 ; border block + + def_warps + warp 5, 9, 0, BEACH_HOUSE + + def_signs + sign 11, 11, 11 + + def_objects + object SPRITE_COOLTRAINER_M, 9, 7, STAY, RIGHT, 1, OPP_SWIMMER, 2 + object SPRITE_COOLTRAINER_M, 12, 9, STAY, LEFT, 2, OPP_SWIMMER, 3 + object SPRITE_SWIMMER, 13, 25, STAY, LEFT, 3, OPP_SWIMMER, 4 + object SPRITE_SWIMMER, 4, 27, STAY, RIGHT, 4, OPP_SWIMMER, 5 + object SPRITE_SWIMMER, 16, 31, STAY, UP, 5, OPP_SWIMMER, 6 + object SPRITE_SWIMMER, 9, 13, STAY, DOWN, 6, OPP_SWIMMER, 7 + object SPRITE_SWIMMER, 8, 43, STAY, LEFT, 7, OPP_BEAUTY, 12 + object SPRITE_SWIMMER, 11, 43, STAY, RIGHT, 8, OPP_BEAUTY, 13 + object SPRITE_SWIMMER, 9, 42, STAY, UP, 9, OPP_SWIMMER, 8 + object SPRITE_SWIMMER, 10, 44, STAY, DOWN, 10, OPP_BEAUTY, 14 + + def_warps_to ROUTE_19 diff --git a/data/maps/objects/Route2.asm b/data/maps/objects/Route2.asm new file mode 100755 index 000000000..e939b0dd5 --- /dev/null +++ b/data/maps/objects/Route2.asm @@ -0,0 +1,29 @@ +Route2_Object: + db $f ; border block + + def_warps + warp 12, 9, 0, DIGLETTS_CAVE_ROUTE_2 + warp 3, 11, 1, VIRIDIAN_FOREST_NORTH_GATE + warp 15, 19, 0, ROUTE_2_TRADE_HOUSE + warp 16, 35, 1, ROUTE_2_GATE + warp 15, 39, 2, ROUTE_2_GATE + warp 3, 43, 2, VIRIDIAN_FOREST_SOUTH_GATE + warp 17, 35, 1, ROUTE_2_GATE + + def_signs + sign 5, 65, 3 ; Route2Text3 + sign 11, 11, 4 ; Route2Text4 + + def_objects + object SPRITE_POKE_BALL, 13, 54, STAY, NONE, 1, MOON_STONE + object SPRITE_POKE_BALL, 13, 45, STAY, NONE, 2, HP_UP + + def_warps_to ROUTE_2 + + ; unused + warp_to 2, 7, 4 + dw $c712 + db $9, $7 + warp_to 2, 7, 4 + warp_to 2, 7, 4 + warp_to 2, 7, 4 diff --git a/data/maps/objects/Route20.asm b/data/maps/objects/Route20.asm new file mode 100755 index 000000000..19e7cce77 --- /dev/null +++ b/data/maps/objects/Route20.asm @@ -0,0 +1,24 @@ +Route20_Object: + db $43 ; border block + + def_warps + warp 48, 5, 0, SEAFOAM_ISLANDS_1F + warp 58, 9, 2, SEAFOAM_ISLANDS_1F + + def_signs + sign 51, 7, 11 ; Route20Text11 + sign 57, 11, 12 ; Route20Text12 + + def_objects + object SPRITE_SWIMMER, 87, 8, STAY, UP, 1, OPP_SWIMMER, 9 + object SPRITE_SWIMMER, 68, 11, STAY, UP, 2, OPP_BEAUTY, 15 + object SPRITE_SWIMMER, 45, 10, STAY, DOWN, 3, OPP_BEAUTY, 6 + object SPRITE_SWIMMER, 55, 14, STAY, RIGHT, 4, OPP_JR_TRAINER_F, 24 + object SPRITE_SWIMMER, 38, 13, STAY, DOWN, 5, OPP_SWIMMER, 10 + object SPRITE_SWIMMER, 87, 13, STAY, UP, 6, OPP_SWIMMER, 11 + object SPRITE_COOLTRAINER_M, 34, 9, STAY, UP, 7, OPP_BIRD_KEEPER, 11 + object SPRITE_SWIMMER, 25, 7, STAY, UP, 8, OPP_BEAUTY, 7 + object SPRITE_SWIMMER, 24, 12, STAY, DOWN, 9, OPP_JR_TRAINER_F, 16 + object SPRITE_SWIMMER, 15, 8, STAY, UP, 10, OPP_BEAUTY, 8 + + def_warps_to ROUTE_20 diff --git a/data/maps/objects/Route21.asm b/data/maps/objects/Route21.asm new file mode 100755 index 000000000..718176401 --- /dev/null +++ b/data/maps/objects/Route21.asm @@ -0,0 +1,19 @@ +Route21_Object: + db $43 ; border block + + def_warps + + def_signs + + def_objects + object SPRITE_FISHER, 4, 24, STAY, LEFT, 1, OPP_FISHER, 7 + object SPRITE_FISHER, 6, 25, STAY, DOWN, 2, OPP_FISHER, 9 + object SPRITE_SWIMMER, 10, 31, STAY, UP, 3, OPP_SWIMMER, 12 + object SPRITE_SWIMMER, 12, 30, STAY, RIGHT, 4, OPP_CUE_BALL, 9 + object SPRITE_SWIMMER, 16, 63, STAY, DOWN, 5, OPP_SWIMMER, 13 + object SPRITE_SWIMMER, 5, 71, STAY, RIGHT, 6, OPP_SWIMMER, 14 + object SPRITE_SWIMMER, 15, 71, STAY, LEFT, 7, OPP_SWIMMER, 15 + object SPRITE_FISHER, 14, 56, STAY, LEFT, 8, OPP_FISHER, 8 + object SPRITE_FISHER, 17, 57, STAY, RIGHT, 9, OPP_FISHER, 10 + + def_warps_to ROUTE_21 diff --git a/data/maps/objects/Route22.asm b/data/maps/objects/Route22.asm new file mode 100755 index 000000000..857b8a864 --- /dev/null +++ b/data/maps/objects/Route22.asm @@ -0,0 +1,14 @@ +Route22_Object: + db $2c ; border block + + def_warps + warp 8, 5, 0, ROUTE_22_GATE + + def_signs + sign 7, 11, 3 ; Route22FrontGateText + + def_objects + object SPRITE_BLUE, 25, 5, STAY, NONE, 1 ; person + object SPRITE_BLUE, 25, 5, STAY, NONE, 2 ; person + + def_warps_to ROUTE_22 diff --git a/data/maps/objects/Route22Gate.asm b/data/maps/objects/Route22Gate.asm new file mode 100755 index 000000000..53944c52a --- /dev/null +++ b/data/maps/objects/Route22Gate.asm @@ -0,0 +1,15 @@ +Route22Gate_Object: + db $a ; border block + + def_warps + warp 4, 7, 0, LAST_MAP + warp 5, 7, 0, LAST_MAP + warp 4, 0, 0, LAST_MAP + warp 5, 0, 0, LAST_MAP + + def_signs + + def_objects + object SPRITE_GUARD, 6, 2, STAY, LEFT, 1 ; person + + def_warps_to ROUTE_22_GATE diff --git a/data/maps/objects/Route23.asm b/data/maps/objects/Route23.asm new file mode 100755 index 000000000..bd74afb48 --- /dev/null +++ b/data/maps/objects/Route23.asm @@ -0,0 +1,22 @@ +Route23_Object: + db $f ; border block + + def_warps + warp 7, 139, 2, ROUTE_22_GATE + warp 8, 139, 3, ROUTE_22_GATE + warp 4, 31, 0, VICTORY_ROAD_1F + warp 14, 31, 1, VICTORY_ROAD_2F + + def_signs + sign 3, 33, 8 ; Route23Text8 + + def_objects + object SPRITE_GUARD, 4, 35, STAY, DOWN, 1 ; person + object SPRITE_GUARD, 10, 56, STAY, DOWN, 2 ; person + object SPRITE_SWIMMER, 8, 85, STAY, DOWN, 3 ; person + object SPRITE_SWIMMER, 11, 96, STAY, DOWN, 4 ; person + object SPRITE_GUARD, 12, 105, STAY, DOWN, 5 ; person + object SPRITE_GUARD, 8, 119, STAY, DOWN, 6 ; person + object SPRITE_GUARD, 8, 136, STAY, DOWN, 7 ; person + + def_warps_to ROUTE_23 diff --git a/data/maps/objects/Route24.asm b/data/maps/objects/Route24.asm new file mode 100755 index 000000000..b3cf1298e --- /dev/null +++ b/data/maps/objects/Route24.asm @@ -0,0 +1,19 @@ +Route24_Object: + db $2c ; border block + + def_warps + + def_signs + + def_objects + object SPRITE_COOLTRAINER_M, 11, 15, STAY, LEFT, 1, OPP_ROCKET, 6 + object SPRITE_COOLTRAINER_M, 5, 20, STAY, UP, 2, OPP_JR_TRAINER_M, 2 + object SPRITE_COOLTRAINER_M, 11, 19, STAY, LEFT, 3, OPP_JR_TRAINER_M, 3 + object SPRITE_COOLTRAINER_F, 10, 22, STAY, RIGHT, 4, OPP_LASS, 7 + object SPRITE_YOUNGSTER, 11, 25, STAY, LEFT, 5, OPP_YOUNGSTER, 4 + object SPRITE_COOLTRAINER_F, 10, 28, STAY, RIGHT, 6, OPP_LASS, 8 + object SPRITE_YOUNGSTER, 11, 31, STAY, LEFT, 7, OPP_BUG_CATCHER, 9 + object SPRITE_POKE_BALL, 10, 5, STAY, NONE, 8, TM_THUNDER_WAVE + object SPRITE_COOLTRAINER_M, 6, 5, STAY, DOWN, 9 + + def_warps_to ROUTE_24 diff --git a/data/maps/objects/Route25.asm b/data/maps/objects/Route25.asm new file mode 100755 index 000000000..4f0be4d44 --- /dev/null +++ b/data/maps/objects/Route25.asm @@ -0,0 +1,22 @@ +Route25_Object: + db $2c ; border block + + def_warps + warp 45, 3, 0, BILLS_HOUSE + + def_signs + sign 43, 3, 11 ; Route25Text11 + + def_objects + object SPRITE_YOUNGSTER, 14, 2, STAY, DOWN, 1, OPP_YOUNGSTER, 5 + object SPRITE_YOUNGSTER, 18, 5, STAY, UP, 2, OPP_YOUNGSTER, 6 + object SPRITE_COOLTRAINER_M, 24, 4, STAY, DOWN, 3, OPP_JR_TRAINER_M, 2 + object SPRITE_COOLTRAINER_F, 18, 8, STAY, RIGHT, 4, OPP_LASS, 9 + object SPRITE_YOUNGSTER, 32, 3, STAY, LEFT, 5, OPP_YOUNGSTER, 7 + object SPRITE_COOLTRAINER_F, 37, 4, STAY, DOWN, 6, OPP_LASS, 10 + object SPRITE_HIKER, 8, 4, STAY, RIGHT, 7, OPP_HIKER, 2 + object SPRITE_HIKER, 23, 9, STAY, UP, 8, OPP_HIKER, 3 + object SPRITE_HIKER, 13, 7, STAY, RIGHT, 9, OPP_HIKER, 4 + object SPRITE_POKE_BALL, 22, 2, STAY, NONE, 10, TM_SEISMIC_TOSS + + def_warps_to ROUTE_25 diff --git a/data/maps/objects/Route2Gate.asm b/data/maps/objects/Route2Gate.asm new file mode 100755 index 000000000..3151ce793 --- /dev/null +++ b/data/maps/objects/Route2Gate.asm @@ -0,0 +1,16 @@ +Route2Gate_Object: + db $a ; border block + + def_warps + warp 4, 0, 3, LAST_MAP + warp 5, 0, 3, LAST_MAP + warp 4, 7, 4, LAST_MAP + warp 5, 7, 4, LAST_MAP + + def_signs + + def_objects + object SPRITE_SCIENTIST, 1, 4, STAY, LEFT, 1 ; person + object SPRITE_YOUNGSTER, 5, 4, WALK, LEFT_RIGHT, 2 ; person + + def_warps_to ROUTE_2_GATE diff --git a/data/maps/objects/Route2TradeHouse.asm b/data/maps/objects/Route2TradeHouse.asm new file mode 100755 index 000000000..d14df485d --- /dev/null +++ b/data/maps/objects/Route2TradeHouse.asm @@ -0,0 +1,14 @@ +Route2TradeHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 2, LAST_MAP + warp 3, 7, 2, LAST_MAP + + def_signs + + def_objects + object SPRITE_SCIENTIST, 2, 4, STAY, RIGHT, 1 ; person + object SPRITE_GAMEBOY_KID, 4, 1, STAY, DOWN, 2 ; person + + def_warps_to ROUTE_2_TRADE_HOUSE diff --git a/data/maps/objects/Route3.asm b/data/maps/objects/Route3.asm new file mode 100755 index 000000000..153fa7950 --- /dev/null +++ b/data/maps/objects/Route3.asm @@ -0,0 +1,20 @@ +Route3_Object: + db $2c ; border block + + def_warps + + def_signs + sign 59, 9, 10 ; Route3Text10 + + def_objects + object SPRITE_SUPER_NERD, 57, 11, STAY, NONE, 1 ; person + object SPRITE_YOUNGSTER, 10, 6, STAY, RIGHT, 2, OPP_BUG_CATCHER, 4 + object SPRITE_YOUNGSTER, 14, 4, STAY, DOWN, 3, OPP_YOUNGSTER, 1 + object SPRITE_COOLTRAINER_F, 16, 9, STAY, LEFT, 4, OPP_LASS, 1 + object SPRITE_YOUNGSTER, 19, 5, STAY, DOWN, 5, OPP_BUG_CATCHER, 5 + object SPRITE_COOLTRAINER_F, 23, 4, STAY, LEFT, 6, OPP_LASS, 2 + object SPRITE_YOUNGSTER, 22, 9, STAY, LEFT, 7, OPP_YOUNGSTER, 2 + object SPRITE_YOUNGSTER, 24, 6, STAY, RIGHT, 8, OPP_BUG_CATCHER, 6 + object SPRITE_COOLTRAINER_F, 33, 10, STAY, UP, 9, OPP_LASS, 3 + + def_warps_to ROUTE_3 diff --git a/data/maps/objects/Route4.asm b/data/maps/objects/Route4.asm new file mode 100755 index 000000000..79e79b796 --- /dev/null +++ b/data/maps/objects/Route4.asm @@ -0,0 +1,19 @@ +Route4_Object: + db $2c ; border block + + def_warps + warp 11, 5, 0, MT_MOON_POKECENTER + warp 18, 5, 0, MT_MOON_1F + warp 24, 5, 7, MT_MOON_B1F + + def_signs + sign 12, 5, 4 ; PokeCenterSignText + sign 17, 7, 5 ; Route4Text5 + sign 27, 7, 6 ; Route4Text6 + + def_objects + object SPRITE_COOLTRAINER_F, 9, 8, WALK, ANY_DIR, 1 ; person + object SPRITE_COOLTRAINER_F, 63, 3, STAY, RIGHT, 2, OPP_LASS, 4 + object SPRITE_POKE_BALL, 57, 3, STAY, NONE, 3, TM_WHIRLWIND + + def_warps_to ROUTE_4 diff --git a/data/maps/objects/Route5.asm b/data/maps/objects/Route5.asm new file mode 100755 index 000000000..98f76683c --- /dev/null +++ b/data/maps/objects/Route5.asm @@ -0,0 +1,16 @@ +Route5_Object: + db $a ; border block + + def_warps + warp 10, 29, 2, ROUTE_5_GATE + warp 9, 29, 2, ROUTE_5_GATE + warp 10, 33, 0, ROUTE_5_GATE + warp 17, 27, 0, UNDERGROUND_PATH_ROUTE_5 + warp 10, 21, 0, DAYCARE + + def_signs + sign 17, 29, 1 ; Route5Text1 + + def_objects + + def_warps_to ROUTE_5 diff --git a/data/maps/objects/Route5Gate.asm b/data/maps/objects/Route5Gate.asm new file mode 100755 index 000000000..81c8c43ef --- /dev/null +++ b/data/maps/objects/Route5Gate.asm @@ -0,0 +1,15 @@ +Route5Gate_Object: + db $a ; border block + + def_warps + warp 3, 5, 2, LAST_MAP + warp 4, 5, 2, LAST_MAP + warp 3, 0, 1, LAST_MAP + warp 4, 0, 0, LAST_MAP + + def_signs + + def_objects + object SPRITE_GUARD, 1, 3, STAY, RIGHT, 1 ; person + + def_warps_to ROUTE_5_GATE diff --git a/data/maps/objects/Route6.asm b/data/maps/objects/Route6.asm new file mode 100755 index 000000000..f18c66f5f --- /dev/null +++ b/data/maps/objects/Route6.asm @@ -0,0 +1,21 @@ +Route6_Object: + db $f ; border block + + def_warps + warp 9, 1, 2, ROUTE_6_GATE + warp 10, 1, 2, ROUTE_6_GATE + warp 10, 7, 0, ROUTE_6_GATE + warp 17, 13, 0, UNDERGROUND_PATH_ROUTE_6 + + def_signs + sign 19, 15, 7 ; Route6Text7 + + def_objects + object SPRITE_COOLTRAINER_M, 10, 21, STAY, RIGHT, 1, OPP_JR_TRAINER_M, 10 + object SPRITE_COOLTRAINER_F, 11, 21, STAY, LEFT, 2, OPP_JR_TRAINER_F, 25 + object SPRITE_YOUNGSTER, 0, 15, STAY, RIGHT, 3, OPP_BUG_CATCHER, 10 + object SPRITE_COOLTRAINER_M, 11, 31, STAY, LEFT, 4, OPP_JR_TRAINER_M, 5 + object SPRITE_COOLTRAINER_F, 11, 30, STAY, LEFT, 5, OPP_JR_TRAINER_F, 3 + object SPRITE_YOUNGSTER, 19, 26, STAY, LEFT, 6, OPP_BUG_CATCHER, 11 + + def_warps_to ROUTE_6 diff --git a/data/maps/objects/Route6Gate.asm b/data/maps/objects/Route6Gate.asm new file mode 100755 index 000000000..2ef5a8b5f --- /dev/null +++ b/data/maps/objects/Route6Gate.asm @@ -0,0 +1,15 @@ +Route6Gate_Object: + db $a ; border block + + def_warps + warp 3, 5, 2, LAST_MAP + warp 4, 5, 2, LAST_MAP + warp 3, 0, 1, LAST_MAP + warp 4, 0, 1, LAST_MAP + + def_signs + + def_objects + object SPRITE_GUARD, 6, 2, STAY, LEFT, 1 ; person + + def_warps_to ROUTE_6_GATE diff --git a/data/maps/objects/Route7.asm b/data/maps/objects/Route7.asm new file mode 100755 index 000000000..64b0387f4 --- /dev/null +++ b/data/maps/objects/Route7.asm @@ -0,0 +1,16 @@ +Route7_Object: + db $f ; border block + + def_warps + warp 18, 9, 2, ROUTE_7_GATE + warp 18, 10, 2, ROUTE_7_GATE + warp 11, 9, 0, ROUTE_7_GATE + warp 11, 10, 0, ROUTE_7_GATE + warp 5, 13, 0, UNDERGROUND_PATH_ROUTE_7 + + def_signs + sign 3, 13, 1 ; Route7Text1 + + def_objects + + def_warps_to ROUTE_7 diff --git a/data/maps/objects/Route7Gate.asm b/data/maps/objects/Route7Gate.asm new file mode 100755 index 000000000..85064914c --- /dev/null +++ b/data/maps/objects/Route7Gate.asm @@ -0,0 +1,15 @@ +Route7Gate_Object: + db $a ; border block + + def_warps + warp 0, 3, 3, LAST_MAP + warp 0, 4, 3, LAST_MAP + warp 5, 3, 1, LAST_MAP + warp 5, 4, 1, LAST_MAP + + def_signs + + def_objects + object SPRITE_GUARD, 3, 1, STAY, DOWN, 1 ; person + + def_warps_to ROUTE_7_GATE diff --git a/data/maps/objects/Route8.asm b/data/maps/objects/Route8.asm new file mode 100755 index 000000000..aaa69ea2c --- /dev/null +++ b/data/maps/objects/Route8.asm @@ -0,0 +1,25 @@ +Route8_Object: + db $2c ; border block + + def_warps + warp 1, 9, 0, ROUTE_8_GATE + warp 1, 10, 0, ROUTE_8_GATE + warp 8, 9, 2, ROUTE_8_GATE + warp 8, 10, 2, ROUTE_8_GATE + warp 13, 3, 0, UNDERGROUND_PATH_ROUTE_8 + + def_signs + sign 17, 3, 10 ; Route8Text10 + + def_objects + object SPRITE_SUPER_NERD, 8, 5, STAY, RIGHT, 1, OPP_SUPER_NERD, 3 + object SPRITE_GAMBLER, 13, 9, STAY, UP, 2, OPP_GAMBLER, 5 + object SPRITE_SUPER_NERD, 42, 6, STAY, UP, 3, OPP_SUPER_NERD, 4 + object SPRITE_COOLTRAINER_F, 26, 3, STAY, LEFT, 4, OPP_LASS, 13 + object SPRITE_SUPER_NERD, 26, 4, STAY, RIGHT, 5, OPP_SUPER_NERD, 5 + object SPRITE_COOLTRAINER_F, 26, 5, STAY, LEFT, 6, OPP_LASS, 14 + object SPRITE_COOLTRAINER_F, 26, 6, STAY, RIGHT, 7, OPP_LASS, 15 + object SPRITE_GAMBLER, 46, 13, STAY, DOWN, 8, OPP_GAMBLER, 7 + object SPRITE_COOLTRAINER_F, 51, 12, STAY, LEFT, 9, OPP_LASS, 16 + + def_warps_to ROUTE_8 diff --git a/data/maps/objects/Route8Gate.asm b/data/maps/objects/Route8Gate.asm new file mode 100755 index 000000000..64b935da1 --- /dev/null +++ b/data/maps/objects/Route8Gate.asm @@ -0,0 +1,15 @@ +Route8Gate_Object: + db $a ; border block + + def_warps + warp 0, 3, 1, LAST_MAP + warp 0, 4, 1, LAST_MAP + warp 5, 3, 3, LAST_MAP + warp 5, 4, 3, LAST_MAP + + def_signs + + def_objects + object SPRITE_GUARD, 2, 1, STAY, DOWN, 1 ; person + + def_warps_to ROUTE_8_GATE diff --git a/data/maps/objects/Route9.asm b/data/maps/objects/Route9.asm new file mode 100755 index 000000000..f67f337bd --- /dev/null +++ b/data/maps/objects/Route9.asm @@ -0,0 +1,21 @@ +Route9_Object: + db $2c ; border block + + def_warps + + def_signs + sign 25, 7, 11 ; Route9Text11 + + def_objects + object SPRITE_COOLTRAINER_F, 13, 10, STAY, LEFT, 1, OPP_JR_TRAINER_F, 5 + object SPRITE_COOLTRAINER_M, 24, 7, STAY, LEFT, 2, OPP_YOUNGSTER, 14 + object SPRITE_COOLTRAINER_M, 31, 7, STAY, RIGHT, 3, OPP_JR_TRAINER_M, 8 + object SPRITE_COOLTRAINER_F, 48, 8, STAY, RIGHT, 4, OPP_JR_TRAINER_F, 6 + object SPRITE_HIKER, 16, 15, STAY, LEFT, 5, OPP_HIKER, 11 + object SPRITE_HIKER, 43, 3, STAY, LEFT, 6, OPP_HIKER, 6 + object SPRITE_YOUNGSTER, 22, 2, STAY, DOWN, 7, OPP_BUG_CATCHER, 13 + object SPRITE_HIKER, 45, 15, STAY, RIGHT, 8, OPP_HIKER, 5 + object SPRITE_YOUNGSTER, 40, 8, STAY, RIGHT, 9, OPP_BUG_CATCHER, 14 + object SPRITE_POKE_BALL, 10, 15, STAY, NONE, 10, TM_TELEPORT + + def_warps_to ROUTE_9 diff --git a/data/maps/objects/SSAnne1F.asm b/data/maps/objects/SSAnne1F.asm new file mode 100755 index 000000000..bf4e7292f --- /dev/null +++ b/data/maps/objects/SSAnne1F.asm @@ -0,0 +1,23 @@ +SSAnne1F_Object: + db $c ; border block + + def_warps + warp 26, 0, 1, VERMILION_DOCK + warp 27, 0, 1, VERMILION_DOCK + warp 31, 8, 0, SS_ANNE_1F_ROOMS + warp 23, 8, 1, SS_ANNE_1F_ROOMS + warp 19, 8, 2, SS_ANNE_1F_ROOMS + warp 15, 8, 3, SS_ANNE_1F_ROOMS + warp 11, 8, 4, SS_ANNE_1F_ROOMS + warp 7, 8, 5, SS_ANNE_1F_ROOMS + warp 2, 6, 6, SS_ANNE_2F + warp 37, 15, 5, SS_ANNE_B1F + warp 3, 16, 0, SS_ANNE_KITCHEN + + def_signs + + def_objects + object SPRITE_WAITER, 12, 6, WALK, LEFT_RIGHT, 1 ; person + object SPRITE_SAILOR, 27, 5, STAY, NONE, 2 ; person + + def_warps_to SS_ANNE_1F diff --git a/data/maps/objects/SSAnne1FRooms.asm b/data/maps/objects/SSAnne1FRooms.asm new file mode 100755 index 000000000..afb30af4e --- /dev/null +++ b/data/maps/objects/SSAnne1FRooms.asm @@ -0,0 +1,27 @@ +SSAnne1FRooms_Object: + db $c ; border block + + def_warps + warp 0, 0, 2, SS_ANNE_1F + warp 10, 0, 3, SS_ANNE_1F + warp 20, 0, 4, SS_ANNE_1F + warp 0, 10, 5, SS_ANNE_1F + warp 10, 10, 6, SS_ANNE_1F + warp 20, 10, 7, SS_ANNE_1F + + def_signs + + def_objects + object SPRITE_GENTLEMAN, 2, 3, STAY, LEFT, 1, OPP_GENTLEMAN, 1 + object SPRITE_GENTLEMAN, 11, 4, STAY, UP, 2, OPP_GENTLEMAN, 2 + object SPRITE_YOUNGSTER, 11, 14, STAY, UP, 3, OPP_YOUNGSTER, 8 + object SPRITE_COOLTRAINER_F, 13, 11, STAY, LEFT, 4, OPP_LASS, 11 + object SPRITE_GIRL, 22, 3, WALK, UP_DOWN, 5 ; person + object SPRITE_MIDDLE_AGED_MAN, 0, 14, STAY, NONE, 6 ; person + object SPRITE_LITTLE_GIRL, 2, 11, STAY, DOWN, 7 ; person + object SPRITE_JIGGLYPUFF, 3, 11, STAY, DOWN, 8 ; person + object SPRITE_GIRL, 10, 13, STAY, RIGHT, 9 ; person + object SPRITE_POKE_BALL, 12, 15, STAY, NONE, 10, TM_BODY_SLAM + object SPRITE_GENTLEMAN, 21, 13, WALK, LEFT_RIGHT, 11 ; person + + def_warps_to SS_ANNE_1F_ROOMS diff --git a/data/maps/objects/SSAnne2F.asm b/data/maps/objects/SSAnne2F.asm new file mode 100755 index 000000000..dda0fee69 --- /dev/null +++ b/data/maps/objects/SSAnne2F.asm @@ -0,0 +1,21 @@ +SSAnne2F_Object: + db $c ; border block + + def_warps + warp 9, 11, 0, SS_ANNE_2F_ROOMS + warp 13, 11, 2, SS_ANNE_2F_ROOMS + warp 17, 11, 4, SS_ANNE_2F_ROOMS + warp 21, 11, 6, SS_ANNE_2F_ROOMS + warp 25, 11, 8, SS_ANNE_2F_ROOMS + warp 29, 11, 10, SS_ANNE_2F_ROOMS + warp 2, 4, 8, SS_ANNE_1F + warp 2, 12, 1, SS_ANNE_3F + warp 36, 4, 0, SS_ANNE_CAPTAINS_ROOM + + def_signs + + def_objects + object SPRITE_WAITER, 3, 7, WALK, UP_DOWN, 1 ; person + object SPRITE_BLUE, 36, 4, STAY, DOWN, 2, OPP_RIVAL1, 1 + + def_warps_to SS_ANNE_2F diff --git a/data/maps/objects/SSAnne2FRooms.asm b/data/maps/objects/SSAnne2FRooms.asm new file mode 100755 index 000000000..78a2dd382 --- /dev/null +++ b/data/maps/objects/SSAnne2FRooms.asm @@ -0,0 +1,35 @@ +SSAnne2FRooms_Object: + db $c ; border block + + def_warps + warp 2, 5, 0, SS_ANNE_2F + warp 3, 5, 0, SS_ANNE_2F + warp 12, 5, 1, SS_ANNE_2F + warp 13, 5, 1, SS_ANNE_2F + warp 22, 5, 2, SS_ANNE_2F + warp 23, 5, 2, SS_ANNE_2F + warp 2, 15, 3, SS_ANNE_2F + warp 3, 15, 3, SS_ANNE_2F + warp 12, 15, 4, SS_ANNE_2F + warp 13, 15, 4, SS_ANNE_2F + warp 22, 15, 5, SS_ANNE_2F + warp 23, 15, 5, SS_ANNE_2F + + def_signs + + def_objects + object SPRITE_GENTLEMAN, 10, 2, STAY, RIGHT, 1, OPP_GENTLEMAN, 3 + object SPRITE_FISHER, 13, 4, STAY, LEFT, 2, OPP_FISHER, 1 + object SPRITE_GENTLEMAN, 0, 14, STAY, RIGHT, 3, OPP_GENTLEMAN, 5 + object SPRITE_COOLTRAINER_F, 2, 11, STAY, DOWN, 4, OPP_LASS, 12 + object SPRITE_GENTLEMAN, 1, 2, STAY, DOWN, 5 ; person + object SPRITE_POKE_BALL, 12, 1, STAY, NONE, 6, MAX_ETHER + object SPRITE_GENTLEMAN, 21, 2, STAY, DOWN, 7 ; person + object SPRITE_GRAMPS, 22, 1, STAY, DOWN, 8 ; person + object SPRITE_POKE_BALL, 0, 12, STAY, NONE, 9, RARE_CANDY + object SPRITE_GENTLEMAN, 12, 12, STAY, DOWN, 10 ; person + object SPRITE_LITTLE_BOY, 11, 14, STAY, NONE, 11 ; person + object SPRITE_BRUNETTE_GIRL, 22, 12, STAY, LEFT, 12 ; person + object SPRITE_BEAUTY, 20, 12, STAY, RIGHT, 13 ; person + + def_warps_to SS_ANNE_2F_ROOMS diff --git a/data/maps/objects/SSAnne3F.asm b/data/maps/objects/SSAnne3F.asm new file mode 100755 index 000000000..f230aeb9b --- /dev/null +++ b/data/maps/objects/SSAnne3F.asm @@ -0,0 +1,13 @@ +SSAnne3F_Object: + db $c ; border block + + def_warps + warp 0, 3, 0, SS_ANNE_BOW + warp 19, 3, 7, SS_ANNE_2F + + def_signs + + def_objects + object SPRITE_SAILOR, 9, 3, WALK, LEFT_RIGHT, 1 ; person + + def_warps_to SS_ANNE_3F diff --git a/data/maps/objects/SSAnneB1F.asm b/data/maps/objects/SSAnneB1F.asm new file mode 100755 index 000000000..619dd33c0 --- /dev/null +++ b/data/maps/objects/SSAnneB1F.asm @@ -0,0 +1,16 @@ +SSAnneB1F_Object: + db $c ; border block + + def_warps + warp 23, 3, 8, SS_ANNE_B1F_ROOMS + warp 19, 3, 6, SS_ANNE_B1F_ROOMS + warp 15, 3, 4, SS_ANNE_B1F_ROOMS + warp 11, 3, 2, SS_ANNE_B1F_ROOMS + warp 7, 3, 0, SS_ANNE_B1F_ROOMS + warp 27, 5, 9, SS_ANNE_1F + + def_signs + + def_objects + + def_warps_to SS_ANNE_B1F diff --git a/data/maps/objects/SSAnneB1FRooms.asm b/data/maps/objects/SSAnneB1FRooms.asm new file mode 100755 index 000000000..c75404827 --- /dev/null +++ b/data/maps/objects/SSAnneB1FRooms.asm @@ -0,0 +1,31 @@ +SSAnneB1FRooms_Object: + db $c ; border block + + def_warps + warp 2, 5, 4, SS_ANNE_B1F + warp 3, 5, 4, SS_ANNE_B1F + warp 12, 5, 3, SS_ANNE_B1F + warp 13, 5, 3, SS_ANNE_B1F + warp 22, 5, 2, SS_ANNE_B1F + warp 23, 5, 2, SS_ANNE_B1F + warp 2, 15, 1, SS_ANNE_B1F + warp 3, 15, 1, SS_ANNE_B1F + warp 12, 15, 0, SS_ANNE_B1F + warp 13, 15, 0, SS_ANNE_B1F + + def_signs + + def_objects + object SPRITE_SAILOR, 0, 13, STAY, DOWN, 1, OPP_SAILOR, 3 + object SPRITE_SAILOR, 2, 11, STAY, DOWN, 2, OPP_SAILOR, 4 + object SPRITE_SAILOR, 12, 3, STAY, LEFT, 3, OPP_SAILOR, 5 + object SPRITE_SAILOR, 22, 2, STAY, DOWN, 4, OPP_SAILOR, 6 + object SPRITE_SAILOR, 0, 2, STAY, RIGHT, 5, OPP_SAILOR, 7 + object SPRITE_FISHER, 0, 4, STAY, RIGHT, 6, OPP_FISHER, 2 + object SPRITE_SUPER_NERD, 10, 13, STAY, RIGHT, 7 ; person + object SPRITE_MONSTER, 11, 12, STAY, NONE, 8 ; person + object SPRITE_POKE_BALL, 20, 2, STAY, NONE, 9, ETHER + object SPRITE_POKE_BALL, 10, 2, STAY, NONE, 10, TM_REST + object SPRITE_POKE_BALL, 12, 11, STAY, NONE, 11, MAX_POTION + + def_warps_to SS_ANNE_B1F_ROOMS diff --git a/data/maps/objects/SSAnneBow.asm b/data/maps/objects/SSAnneBow.asm new file mode 100755 index 000000000..080fe6237 --- /dev/null +++ b/data/maps/objects/SSAnneBow.asm @@ -0,0 +1,17 @@ +SSAnneBow_Object: + db $23 ; border block + + def_warps + warp 13, 6, 0, SS_ANNE_3F + warp 13, 7, 0, SS_ANNE_3F + + def_signs + + def_objects + object SPRITE_SUPER_NERD, 5, 2, STAY, UP, 1 ; person + object SPRITE_SAILOR, 4, 9, STAY, NONE, 2 ; person + object SPRITE_COOLTRAINER_M, 7, 11, STAY, NONE, 3 ; person + object SPRITE_SAILOR, 4, 4, STAY, DOWN, 4, OPP_SAILOR, 1 + object SPRITE_SAILOR, 10, 8, STAY, UP, 5, OPP_SAILOR, 2 + + def_warps_to SS_ANNE_BOW diff --git a/data/maps/objects/SSAnneCaptainsRoom.asm b/data/maps/objects/SSAnneCaptainsRoom.asm new file mode 100755 index 000000000..c07be59e2 --- /dev/null +++ b/data/maps/objects/SSAnneCaptainsRoom.asm @@ -0,0 +1,14 @@ +SSAnneCaptainsRoom_Object: + db $c ; border block + + def_warps + warp 0, 7, 8, SS_ANNE_2F + + def_signs + sign 4, 1, 2 ; SSAnne7Text2 + sign 1, 2, 3 ; SSAnne7Text3 + + def_objects + object SPRITE_CAPTAIN, 4, 2, STAY, UP, 1 ; person + + def_warps_to SS_ANNE_CAPTAINS_ROOM diff --git a/data/maps/objects/SSAnneKitchen.asm b/data/maps/objects/SSAnneKitchen.asm new file mode 100755 index 000000000..75fc497f8 --- /dev/null +++ b/data/maps/objects/SSAnneKitchen.asm @@ -0,0 +1,18 @@ +SSAnneKitchen_Object: + db $c ; border block + + def_warps + warp 6, 0, 10, SS_ANNE_1F + + def_signs + + def_objects + object SPRITE_COOK, 1, 8, WALK, UP_DOWN, 1 ; person + object SPRITE_COOK, 5, 8, WALK, UP_DOWN, 2 ; person + object SPRITE_COOK, 9, 7, WALK, UP_DOWN, 3 ; person + object SPRITE_COOK, 13, 6, STAY, NONE, 4 ; person + object SPRITE_COOK, 13, 8, STAY, NONE, 5 ; person + object SPRITE_COOK, 13, 10, STAY, NONE, 6 ; person + object SPRITE_COOK, 11, 13, STAY, UP, 7 ; person + + def_warps_to SS_ANNE_KITCHEN diff --git a/data/maps/objects/SafariZoneCenter.asm b/data/maps/objects/SafariZoneCenter.asm new file mode 100755 index 000000000..59f4e2a46 --- /dev/null +++ b/data/maps/objects/SafariZoneCenter.asm @@ -0,0 +1,22 @@ +SafariZoneCenter_Object: + db $0 ; border block + + def_warps + warp 14, 25, 2, SAFARI_ZONE_GATE + warp 15, 25, 3, SAFARI_ZONE_GATE + warp 0, 10, 4, SAFARI_ZONE_WEST + warp 0, 11, 5, SAFARI_ZONE_WEST + warp 14, 0, 4, SAFARI_ZONE_NORTH + warp 15, 0, 5, SAFARI_ZONE_NORTH + warp 29, 10, 2, SAFARI_ZONE_EAST + warp 29, 11, 3, SAFARI_ZONE_EAST + warp 17, 19, 0, SAFARI_ZONE_CENTER_REST_HOUSE + + def_signs + sign 18, 20, 2 ; SafariZoneCenterText2 + sign 14, 22, 3 ; SafariZoneCenterText3 + + def_objects + object SPRITE_POKE_BALL, 14, 10, STAY, NONE, 1, NUGGET + + def_warps_to SAFARI_ZONE_CENTER diff --git a/data/maps/objects/SafariZoneCenterRestHouse.asm b/data/maps/objects/SafariZoneCenterRestHouse.asm new file mode 100755 index 000000000..5b2563478 --- /dev/null +++ b/data/maps/objects/SafariZoneCenterRestHouse.asm @@ -0,0 +1,14 @@ +SafariZoneCenterRestHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 8, SAFARI_ZONE_CENTER + warp 3, 7, 8, SAFARI_ZONE_CENTER + + def_signs + + def_objects + object SPRITE_GIRL, 3, 2, STAY, DOWN, 1 ; person + object SPRITE_SCIENTIST, 1, 4, WALK, UP_DOWN, 2 ; person + + def_warps_to SAFARI_ZONE_CENTER_REST_HOUSE diff --git a/data/maps/objects/SafariZoneEast.asm b/data/maps/objects/SafariZoneEast.asm new file mode 100755 index 000000000..999c51b06 --- /dev/null +++ b/data/maps/objects/SafariZoneEast.asm @@ -0,0 +1,22 @@ +SafariZoneEast_Object: + db $0 ; border block + + def_warps + warp 0, 4, 6, SAFARI_ZONE_NORTH + warp 0, 5, 7, SAFARI_ZONE_NORTH + warp 0, 22, 6, SAFARI_ZONE_CENTER + warp 0, 23, 6, SAFARI_ZONE_CENTER + warp 25, 9, 0, SAFARI_ZONE_EAST_REST_HOUSE + + def_signs + sign 26, 10, 5 ; SafariZoneEastText5 + sign 6, 4, 6 ; SafariZoneEastText6 + sign 5, 23, 7 ; SafariZoneEastText7 + + def_objects + object SPRITE_POKE_BALL, 21, 10, STAY, NONE, 1, FULL_RESTORE + object SPRITE_POKE_BALL, 3, 7, STAY, NONE, 2, MAX_POTION + object SPRITE_POKE_BALL, 20, 13, STAY, NONE, 3, CARBOS + object SPRITE_POKE_BALL, 15, 12, STAY, NONE, 4, TM_EGG_BOMB + + def_warps_to SAFARI_ZONE_EAST diff --git a/data/maps/objects/SafariZoneEastRestHouse.asm b/data/maps/objects/SafariZoneEastRestHouse.asm new file mode 100755 index 000000000..31940542d --- /dev/null +++ b/data/maps/objects/SafariZoneEastRestHouse.asm @@ -0,0 +1,15 @@ +SafariZoneEastRestHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 4, SAFARI_ZONE_EAST + warp 3, 7, 4, SAFARI_ZONE_EAST + + def_signs + + def_objects + object SPRITE_SCIENTIST, 1, 3, WALK, UP_DOWN, 1 ; person + object SPRITE_ROCKER, 4, 2, STAY, NONE, 2 ; person + object SPRITE_SILPH_WORKER, 5, 2, STAY, NONE, 3 ; person + + def_warps_to SAFARI_ZONE_EAST_REST_HOUSE diff --git a/data/maps/objects/SafariZoneGate.asm b/data/maps/objects/SafariZoneGate.asm new file mode 100755 index 000000000..2423ae8a0 --- /dev/null +++ b/data/maps/objects/SafariZoneGate.asm @@ -0,0 +1,16 @@ +SafariZoneGate_Object: + db $a ; border block + + def_warps + warp 3, 5, 4, LAST_MAP + warp 4, 5, 4, LAST_MAP + warp 3, 0, 0, SAFARI_ZONE_CENTER + warp 4, 0, 1, SAFARI_ZONE_CENTER + + def_signs + + def_objects + object SPRITE_SAFARI_ZONE_WORKER, 6, 2, STAY, LEFT, 1 ; person + object SPRITE_SAFARI_ZONE_WORKER, 1, 4, STAY, RIGHT, 2 ; person + + def_warps_to SAFARI_ZONE_GATE diff --git a/data/maps/objects/SafariZoneNorth.asm b/data/maps/objects/SafariZoneNorth.asm new file mode 100755 index 000000000..2094e742a --- /dev/null +++ b/data/maps/objects/SafariZoneNorth.asm @@ -0,0 +1,26 @@ +SafariZoneNorth_Object: + db $0 ; border block + + def_warps + warp 2, 35, 0, SAFARI_ZONE_WEST + warp 3, 35, 1, SAFARI_ZONE_WEST + warp 8, 35, 2, SAFARI_ZONE_WEST + warp 9, 35, 3, SAFARI_ZONE_WEST + warp 20, 35, 4, SAFARI_ZONE_CENTER + warp 21, 35, 5, SAFARI_ZONE_CENTER + warp 39, 30, 0, SAFARI_ZONE_EAST + warp 39, 31, 1, SAFARI_ZONE_EAST + warp 35, 3, 0, SAFARI_ZONE_NORTH_REST_HOUSE + + def_signs + sign 36, 4, 3 ; SafariZoneNorthText3 + sign 4, 25, 4 ; SafariZoneNorthText4 + sign 13, 31, 5 ; SafariZoneNorthText5 + sign 19, 33, 6 ; SafariZoneNorthText6 + sign 26, 28, 7 ; SafariZoneNorthText7 + + def_objects + object SPRITE_POKE_BALL, 25, 1, STAY, NONE, 1, PROTEIN + object SPRITE_POKE_BALL, 19, 7, STAY, NONE, 2, TM_SKULL_BASH + + def_warps_to SAFARI_ZONE_NORTH diff --git a/data/maps/objects/SafariZoneNorthRestHouse.asm b/data/maps/objects/SafariZoneNorthRestHouse.asm new file mode 100755 index 000000000..380876222 --- /dev/null +++ b/data/maps/objects/SafariZoneNorthRestHouse.asm @@ -0,0 +1,15 @@ +SafariZoneNorthRestHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 8, SAFARI_ZONE_NORTH + warp 3, 7, 8, SAFARI_ZONE_NORTH + + def_signs + + def_objects + object SPRITE_SCIENTIST, 6, 3, WALK, LEFT_RIGHT, 1 ; person + object SPRITE_SAFARI_ZONE_WORKER, 3, 4, STAY, NONE, 2 ; person + object SPRITE_GENTLEMAN, 1, 5, WALK, UP_DOWN, 3 ; person + + def_warps_to SAFARI_ZONE_NORTH_REST_HOUSE diff --git a/data/maps/objects/SafariZoneSecretHouse.asm b/data/maps/objects/SafariZoneSecretHouse.asm new file mode 100755 index 000000000..1431d711e --- /dev/null +++ b/data/maps/objects/SafariZoneSecretHouse.asm @@ -0,0 +1,13 @@ +SafariZoneSecretHouse_Object: + db $17 ; border block + + def_warps + warp 2, 7, 6, SAFARI_ZONE_WEST + warp 3, 7, 6, SAFARI_ZONE_WEST + + def_signs + + def_objects + object SPRITE_FISHING_GURU, 3, 3, STAY, DOWN, 1 ; person + + def_warps_to SAFARI_ZONE_SECRET_HOUSE diff --git a/data/maps/objects/SafariZoneWest.asm b/data/maps/objects/SafariZoneWest.asm new file mode 100755 index 000000000..d53ee37b7 --- /dev/null +++ b/data/maps/objects/SafariZoneWest.asm @@ -0,0 +1,26 @@ +SafariZoneWest_Object: + db $0 ; border block + + def_warps + warp 20, 0, 0, SAFARI_ZONE_NORTH + warp 21, 0, 1, SAFARI_ZONE_NORTH + warp 26, 0, 2, SAFARI_ZONE_NORTH + warp 27, 0, 3, SAFARI_ZONE_NORTH + warp 29, 22, 2, SAFARI_ZONE_CENTER + warp 29, 23, 3, SAFARI_ZONE_CENTER + warp 3, 3, 0, SAFARI_ZONE_SECRET_HOUSE + warp 11, 11, 0, SAFARI_ZONE_WEST_REST_HOUSE + + def_signs + sign 12, 12, 5 ; SafariZoneWestText5 + sign 17, 3, 6 ; SafariZoneWestText6 + sign 26, 4, 7 ; SafariZoneWestText7 + sign 24, 22, 8 ; SafariZoneWestText8 + + def_objects + object SPRITE_POKE_BALL, 8, 20, STAY, NONE, 1, MAX_POTION + object SPRITE_POKE_BALL, 9, 7, STAY, NONE, 2, TM_DOUBLE_TEAM + object SPRITE_POKE_BALL, 18, 18, STAY, NONE, 3, MAX_REVIVE + object SPRITE_POKE_BALL, 19, 7, STAY, NONE, 4, GOLD_TEETH + + def_warps_to SAFARI_ZONE_WEST diff --git a/data/maps/objects/SafariZoneWestRestHouse.asm b/data/maps/objects/SafariZoneWestRestHouse.asm new file mode 100755 index 000000000..26bb481e4 --- /dev/null +++ b/data/maps/objects/SafariZoneWestRestHouse.asm @@ -0,0 +1,15 @@ +SafariZoneWestRestHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 7, SAFARI_ZONE_WEST + warp 3, 7, 7, SAFARI_ZONE_WEST + + def_signs + + def_objects + object SPRITE_SCIENTIST, 4, 4, WALK, ANY_DIR, 1 ; person + object SPRITE_COOLTRAINER_M, 0, 2, STAY, RIGHT, 2 ; person + object SPRITE_ERIKA, 6, 2, STAY, DOWN, 3 ; person + + def_warps_to SAFARI_ZONE_WEST_REST_HOUSE diff --git a/data/maps/objects/SaffronCity.asm b/data/maps/objects/SaffronCity.asm new file mode 100755 index 000000000..49f94706d --- /dev/null +++ b/data/maps/objects/SaffronCity.asm @@ -0,0 +1,42 @@ +SaffronCity_Object: + db $f ; border block + + def_warps + warp 7, 5, 0, COPYCATS_HOUSE_1F + warp 26, 3, 0, FIGHTING_DOJO + warp 34, 3, 0, SAFFRON_GYM + warp 13, 11, 0, SAFFRON_PIDGEY_HOUSE + warp 25, 11, 0, SAFFRON_MART + warp 18, 21, 0, SILPH_CO_1F + warp 9, 29, 0, SAFFRON_POKECENTER + warp 29, 29, 0, MR_PSYCHICS_HOUSE + + def_signs + sign 17, 5, 16 ; SaffronCityText16 + sign 27, 5, 17 ; SaffronCityText17 + sign 35, 5, 18 ; SaffronCityText18 + sign 26, 11, 19 ; MartSignText + sign 39, 19, 20 ; SaffronCityText20 + sign 5, 21, 21 ; SaffronCityText21 + sign 15, 21, 22 ; SaffronCityText22 + sign 10, 29, 23 ; PokeCenterSignText + sign 27, 29, 24 ; SaffronCityText24 + sign 1, 19, 25 ; SaffronCityText25 + + def_objects + object SPRITE_ROCKET, 7, 6, STAY, NONE, 1 ; person + object SPRITE_ROCKET, 20, 8, WALK, LEFT_RIGHT, 2 ; person + object SPRITE_ROCKET, 34, 4, STAY, NONE, 3 ; person + object SPRITE_ROCKET, 13, 12, STAY, NONE, 4 ; person + object SPRITE_ROCKET, 11, 25, WALK, LEFT_RIGHT, 5 ; person + object SPRITE_ROCKET, 32, 13, WALK, LEFT_RIGHT, 6 ; person + object SPRITE_ROCKET, 18, 30, WALK, LEFT_RIGHT, 7 ; person + object SPRITE_SCIENTIST, 8, 14, WALK, ANY_DIR, 8 ; person + object SPRITE_SILPH_WORKER, 23, 23, STAY, NONE, 9 ; person + object SPRITE_ERIKA, 17, 30, WALK, LEFT_RIGHT, 10 ; person + object SPRITE_GENTLEMAN, 30, 12, STAY, DOWN, 11 ; person + object SPRITE_BIRD, 31, 12, STAY, DOWN, 12 ; person + object SPRITE_ROCKER, 18, 8, STAY, UP, 13 ; person + object SPRITE_ROCKET, 18, 22, STAY, DOWN, 14 ; person + + def_warps_to SAFFRON_CITY diff --git a/data/maps/objects/SaffronGym.asm b/data/maps/objects/SaffronGym.asm new file mode 100755 index 000000000..8cec0421c --- /dev/null +++ b/data/maps/objects/SaffronGym.asm @@ -0,0 +1,51 @@ +SaffronGym_Object: + db $2e ; border block + + def_warps + warp 8, 17, 2, LAST_MAP + warp 9, 17, 2, LAST_MAP + warp 1, 3, 22, SAFFRON_GYM + warp 5, 3, 15, SAFFRON_GYM + warp 1, 5, 18, SAFFRON_GYM + warp 5, 5, 8, SAFFRON_GYM + warp 1, 9, 27, SAFFRON_GYM + warp 5, 9, 16, SAFFRON_GYM + warp 1, 11, 5, SAFFRON_GYM + warp 5, 11, 13, SAFFRON_GYM + warp 1, 15, 23, SAFFRON_GYM + warp 5, 15, 30, SAFFRON_GYM + warp 1, 17, 17, SAFFRON_GYM + warp 5, 17, 9, SAFFRON_GYM + warp 9, 3, 26, SAFFRON_GYM + warp 11, 3, 3, SAFFRON_GYM + warp 9, 5, 7, SAFFRON_GYM + warp 11, 5, 12, SAFFRON_GYM + warp 11, 11, 4, SAFFRON_GYM + warp 11, 15, 31, SAFFRON_GYM + warp 15, 3, 24, SAFFRON_GYM + warp 19, 3, 28, SAFFRON_GYM + warp 15, 5, 2, SAFFRON_GYM + warp 19, 5, 10, SAFFRON_GYM + warp 15, 9, 20, SAFFRON_GYM + warp 19, 9, 29, SAFFRON_GYM + warp 15, 11, 14, SAFFRON_GYM + warp 19, 11, 6, SAFFRON_GYM + warp 15, 15, 21, SAFFRON_GYM + warp 19, 15, 25, SAFFRON_GYM + warp 15, 17, 11, SAFFRON_GYM + warp 19, 17, 19, SAFFRON_GYM + + def_signs + + def_objects + object SPRITE_COOLTRAINER_F, 9, 8, STAY, DOWN, 1, OPP_SABRINA, 1 + object SPRITE_CHANNELER, 10, 1, STAY, DOWN, 2, OPP_CHANNELER, 22 + object SPRITE_YOUNGSTER, 17, 1, STAY, DOWN, 3, OPP_PSYCHIC_TR, 1 + object SPRITE_CHANNELER, 3, 7, STAY, DOWN, 4, OPP_CHANNELER, 23 + object SPRITE_YOUNGSTER, 17, 7, STAY, DOWN, 5, OPP_PSYCHIC_TR, 2 + object SPRITE_CHANNELER, 3, 13, STAY, DOWN, 6, OPP_CHANNELER, 24 + object SPRITE_YOUNGSTER, 17, 13, STAY, DOWN, 7, OPP_PSYCHIC_TR, 3 + object SPRITE_YOUNGSTER, 3, 1, STAY, DOWN, 8, OPP_PSYCHIC_TR, 4 + object SPRITE_GYM_GUIDE, 10, 15, STAY, DOWN, 9 ; person + + def_warps_to SAFFRON_GYM diff --git a/data/maps/objects/SaffronMart.asm b/data/maps/objects/SaffronMart.asm new file mode 100755 index 000000000..0a9aed7a0 --- /dev/null +++ b/data/maps/objects/SaffronMart.asm @@ -0,0 +1,15 @@ +SaffronMart_Object: + db $0 ; border block + + def_warps + warp 3, 7, 4, LAST_MAP + warp 4, 7, 4, LAST_MAP + + def_signs + + def_objects + object SPRITE_CLERK, 0, 5, STAY, RIGHT, 1 ; person + object SPRITE_SUPER_NERD, 4, 2, STAY, NONE, 2 ; person + object SPRITE_COOLTRAINER_F, 6, 5, WALK, ANY_DIR, 3 ; person + + def_warps_to SAFFRON_MART diff --git a/data/maps/objects/SaffronPidgeyHouse.asm b/data/maps/objects/SaffronPidgeyHouse.asm new file mode 100755 index 000000000..59af6fc08 --- /dev/null +++ b/data/maps/objects/SaffronPidgeyHouse.asm @@ -0,0 +1,16 @@ +SaffronPidgeyHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 3, LAST_MAP + warp 3, 7, 3, LAST_MAP + + def_signs + + def_objects + object SPRITE_BRUNETTE_GIRL, 2, 3, STAY, RIGHT, 1 ; person + object SPRITE_BIRD, 0, 4, WALK, UP_DOWN, 2 ; person + object SPRITE_YOUNGSTER, 4, 1, STAY, DOWN, 3 ; person + object SPRITE_PAPER, 3, 3, STAY, NONE, 4 ; person + + def_warps_to SAFFRON_PIDGEY_HOUSE diff --git a/data/maps/objects/SaffronPokecenter.asm b/data/maps/objects/SaffronPokecenter.asm new file mode 100755 index 000000000..ab52a72c4 --- /dev/null +++ b/data/maps/objects/SaffronPokecenter.asm @@ -0,0 +1,17 @@ +SaffronPokecenter_Object: + db $0 ; border block + + def_warps + warp 3, 7, 6, LAST_MAP + warp 4, 7, 6, LAST_MAP + + def_signs + + def_objects + object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person + object SPRITE_BEAUTY, 5, 5, STAY, NONE, 2 ; person + object SPRITE_GENTLEMAN, 8, 3, STAY, DOWN, 3 ; person + object SPRITE_LINK_RECEPTIONIST, 11, 2, STAY, DOWN, 4 ; person + object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person + + def_warps_to SAFFRON_POKECENTER diff --git a/data/maps/objects/SeafoamIslands1F.asm b/data/maps/objects/SeafoamIslands1F.asm new file mode 100755 index 000000000..913ca7c72 --- /dev/null +++ b/data/maps/objects/SeafoamIslands1F.asm @@ -0,0 +1,19 @@ +SeafoamIslands1F_Object: + db $7d ; border block + + def_warps + warp 4, 17, 0, LAST_MAP + warp 5, 17, 0, LAST_MAP + warp 26, 17, 1, LAST_MAP + warp 27, 17, 1, LAST_MAP + warp 7, 5, 1, SEAFOAM_ISLANDS_B1F + warp 25, 3, 6, SEAFOAM_ISLANDS_B1F + warp 23, 15, 4, SEAFOAM_ISLANDS_B1F + + def_signs + + def_objects + object SPRITE_BOULDER, 18, 10, STAY, BOULDER_MOVEMENT_BYTE_2, 1 ; person + object SPRITE_BOULDER, 26, 7, STAY, BOULDER_MOVEMENT_BYTE_2, 2 ; person + + def_warps_to SEAFOAM_ISLANDS_1F diff --git a/data/maps/objects/SeafoamIslandsB1F.asm b/data/maps/objects/SeafoamIslandsB1F.asm new file mode 100755 index 000000000..c9a4d235a --- /dev/null +++ b/data/maps/objects/SeafoamIslandsB1F.asm @@ -0,0 +1,19 @@ +SeafoamIslandsB1F_Object: + db $7d ; border block + + def_warps + warp 4, 2, 0, SEAFOAM_ISLANDS_B2F + warp 7, 5, 4, SEAFOAM_ISLANDS_1F + warp 13, 7, 2, SEAFOAM_ISLANDS_B2F + warp 19, 15, 3, SEAFOAM_ISLANDS_B2F + warp 23, 15, 6, SEAFOAM_ISLANDS_1F + warp 25, 11, 5, SEAFOAM_ISLANDS_B2F + warp 25, 3, 5, SEAFOAM_ISLANDS_1F + + def_signs + + def_objects + object SPRITE_BOULDER, 17, 6, STAY, BOULDER_MOVEMENT_BYTE_2, 1 ; person + object SPRITE_BOULDER, 22, 6, STAY, BOULDER_MOVEMENT_BYTE_2, 2 ; person + + def_warps_to SEAFOAM_ISLANDS_B1F diff --git a/data/maps/objects/SeafoamIslandsB2F.asm b/data/maps/objects/SeafoamIslandsB2F.asm new file mode 100755 index 000000000..ff9e55fd6 --- /dev/null +++ b/data/maps/objects/SeafoamIslandsB2F.asm @@ -0,0 +1,19 @@ +SeafoamIslandsB2F_Object: + db $7d ; border block + + def_warps + warp 5, 3, 0, SEAFOAM_ISLANDS_B1F + warp 5, 13, 0, SEAFOAM_ISLANDS_B3F + warp 13, 7, 2, SEAFOAM_ISLANDS_B1F + warp 19, 15, 3, SEAFOAM_ISLANDS_B1F + warp 25, 3, 3, SEAFOAM_ISLANDS_B3F + warp 25, 11, 5, SEAFOAM_ISLANDS_B1F + warp 25, 14, 4, SEAFOAM_ISLANDS_B3F + + def_signs + + def_objects + object SPRITE_BOULDER, 18, 6, STAY, BOULDER_MOVEMENT_BYTE_2, 1 ; person + object SPRITE_BOULDER, 23, 6, STAY, BOULDER_MOVEMENT_BYTE_2, 2 ; person + + def_warps_to SEAFOAM_ISLANDS_B2F diff --git a/data/maps/objects/SeafoamIslandsB3F.asm b/data/maps/objects/SeafoamIslandsB3F.asm new file mode 100755 index 000000000..418cdde6e --- /dev/null +++ b/data/maps/objects/SeafoamIslandsB3F.asm @@ -0,0 +1,23 @@ +SeafoamIslandsB3F_Object: + db $7d ; border block + + def_warps + warp 5, 12, 1, SEAFOAM_ISLANDS_B2F + warp 8, 6, 2, SEAFOAM_ISLANDS_B4F + warp 25, 4, 3, SEAFOAM_ISLANDS_B4F + warp 25, 3, 4, SEAFOAM_ISLANDS_B2F + warp 25, 14, 6, SEAFOAM_ISLANDS_B2F + warp 20, 17, 0, SEAFOAM_ISLANDS_B4F + warp 21, 17, 1, SEAFOAM_ISLANDS_B4F + + def_signs + + def_objects + object SPRITE_BOULDER, 5, 14, STAY, BOULDER_MOVEMENT_BYTE_2, 1 ; person + object SPRITE_BOULDER, 3, 15, STAY, BOULDER_MOVEMENT_BYTE_2, 2 ; person + object SPRITE_BOULDER, 8, 14, STAY, BOULDER_MOVEMENT_BYTE_2, 3 ; person + object SPRITE_BOULDER, 9, 14, STAY, BOULDER_MOVEMENT_BYTE_2, 4 ; person + object SPRITE_BOULDER, 18, 6, STAY, NONE, 5 ; person + object SPRITE_BOULDER, 19, 6, STAY, NONE, 6 ; person + + def_warps_to SEAFOAM_ISLANDS_B3F diff --git a/data/maps/objects/SeafoamIslandsB4F.asm b/data/maps/objects/SeafoamIslandsB4F.asm new file mode 100755 index 000000000..f2d358315 --- /dev/null +++ b/data/maps/objects/SeafoamIslandsB4F.asm @@ -0,0 +1,19 @@ +SeafoamIslandsB4F_Object: + db $7d ; border block + + def_warps + warp 20, 17, 5, SEAFOAM_ISLANDS_B3F + warp 21, 17, 6, SEAFOAM_ISLANDS_B3F + warp 11, 7, 1, SEAFOAM_ISLANDS_B3F + warp 25, 4, 2, SEAFOAM_ISLANDS_B3F + + def_signs + sign 9, 15, 4 ; SeafoamIslands5Text4 + sign 23, 1, 5 ; SeafoamIslands5Text5 + + def_objects + object SPRITE_BOULDER, 4, 15, STAY, NONE, 1 ; person + object SPRITE_BOULDER, 5, 15, STAY, NONE, 2 ; person + object SPRITE_BIRD, 6, 1, STAY, DOWN, 3, ARTICUNO, 50 + + def_warps_to SEAFOAM_ISLANDS_B4F diff --git a/data/maps/objects/SilphCo10F.asm b/data/maps/objects/SilphCo10F.asm new file mode 100755 index 000000000..6840c13a9 --- /dev/null +++ b/data/maps/objects/SilphCo10F.asm @@ -0,0 +1,22 @@ +SilphCo10F_Object: + db $2e ; border block + + def_warps + warp 8, 0, 0, SILPH_CO_9F + warp 10, 0, 0, SILPH_CO_11F + warp 12, 0, 0, SILPH_CO_ELEVATOR + warp 9, 11, 3, SILPH_CO_4F + warp 13, 15, 5, SILPH_CO_4F + warp 13, 7, 6, SILPH_CO_4F + + def_signs + + def_objects + object SPRITE_ROCKET, 1, 9, STAY, RIGHT, 1, OPP_ROCKET, 39 + object SPRITE_SCIENTIST, 10, 2, STAY, LEFT, 2, OPP_SCIENTIST, 11 + object SPRITE_ERIKA, 9, 15, WALK, ANY_DIR, 3 ; person + object SPRITE_POKE_BALL, 2, 12, STAY, NONE, 4, TM_EARTHQUAKE + object SPRITE_POKE_BALL, 4, 14, STAY, NONE, 5, RARE_CANDY + object SPRITE_POKE_BALL, 5, 11, STAY, NONE, 6, CARBOS + + def_warps_to SILPH_CO_10F diff --git a/data/maps/objects/SilphCo11F.asm b/data/maps/objects/SilphCo11F.asm new file mode 100755 index 000000000..dab1144ce --- /dev/null +++ b/data/maps/objects/SilphCo11F.asm @@ -0,0 +1,20 @@ +SilphCo11F_Object: + db $d ; border block + + def_warps + warp 9, 0, 1, SILPH_CO_10F + warp 13, 0, 0, SILPH_CO_ELEVATOR + warp 5, 5, 9, LAST_MAP + warp 3, 2, 3, SILPH_CO_7F + + def_signs + + def_objects + object SPRITE_SILPH_PRESIDENT, 7, 5, STAY, DOWN, 1 ; person + object SPRITE_BEAUTY, 10, 5, STAY, DOWN, 2 ; person + object SPRITE_GIOVANNI, 6, 9, STAY, DOWN, 3, OPP_GIOVANNI, 2 + object SPRITE_JAMES, 2, 8, STAY, UP, 4 + object SPRITE_ROCKET, 15, 9, STAY, UP, 5, OPP_ROCKET, 40 + object SPRITE_JESSIE, 3, 8, STAY, UP, 6 + + def_warps_to SILPH_CO_11F diff --git a/data/maps/objects/SilphCo1F.asm b/data/maps/objects/SilphCo1F.asm new file mode 100755 index 000000000..7a9bdb613 --- /dev/null +++ b/data/maps/objects/SilphCo1F.asm @@ -0,0 +1,16 @@ +SilphCo1F_Object: + db $2e ; border block + + def_warps + warp 10, 17, 5, LAST_MAP + warp 11, 17, 5, LAST_MAP + warp 26, 0, 0, SILPH_CO_2F + warp 20, 0, 0, SILPH_CO_ELEVATOR + warp 16, 10, 6, SILPH_CO_3F + + def_signs + + def_objects + object SPRITE_LINK_RECEPTIONIST, 4, 2, STAY, DOWN, 1 ; person + + def_warps_to SILPH_CO_1F diff --git a/data/maps/objects/SilphCo2F.asm b/data/maps/objects/SilphCo2F.asm new file mode 100755 index 000000000..186d1581e --- /dev/null +++ b/data/maps/objects/SilphCo2F.asm @@ -0,0 +1,22 @@ +SilphCo2F_Object: + db $2e ; border block + + def_warps + warp 24, 0, 2, SILPH_CO_1F + warp 26, 0, 0, SILPH_CO_3F + warp 20, 0, 0, SILPH_CO_ELEVATOR + warp 3, 3, 6, SILPH_CO_3F + warp 13, 3, 4, SILPH_CO_8F + warp 27, 15, 5, SILPH_CO_8F + warp 9, 15, 4, SILPH_CO_6F + + def_signs + + def_objects + object SPRITE_ERIKA, 10, 1, STAY, UP, 1 ; person + object SPRITE_SCIENTIST, 5, 12, STAY, DOWN, 2, OPP_SCIENTIST, 2 + object SPRITE_SCIENTIST, 24, 13, STAY, LEFT, 3, OPP_SCIENTIST, 3 + object SPRITE_ROCKET, 16, 11, STAY, UP, 4, OPP_ROCKET, 23 + object SPRITE_ROCKET, 24, 7, STAY, UP, 5, OPP_ROCKET, 24 + + def_warps_to SILPH_CO_2F diff --git a/data/maps/objects/SilphCo3F.asm b/data/maps/objects/SilphCo3F.asm new file mode 100755 index 000000000..e9ea1cce0 --- /dev/null +++ b/data/maps/objects/SilphCo3F.asm @@ -0,0 +1,24 @@ +SilphCo3F_Object: + db $2e ; border block + + def_warps + warp 26, 0, 1, SILPH_CO_2F + warp 24, 0, 0, SILPH_CO_4F + warp 20, 0, 0, SILPH_CO_ELEVATOR + warp 23, 11, 9, SILPH_CO_3F + warp 3, 3, 5, SILPH_CO_5F + warp 3, 15, 6, SILPH_CO_5F + warp 27, 3, 3, SILPH_CO_2F + warp 3, 11, 3, SILPH_CO_9F + warp 11, 11, 4, SILPH_CO_7F + warp 27, 15, 3, SILPH_CO_3F + + def_signs + + def_objects + object SPRITE_SILPH_WORKER, 24, 8, STAY, NONE, 1 ; person + object SPRITE_ROCKET, 20, 7, STAY, LEFT, 2, OPP_ROCKET, 25 + object SPRITE_SCIENTIST, 7, 9, STAY, DOWN, 3, OPP_SCIENTIST, 4 + object SPRITE_POKE_BALL, 8, 5, STAY, NONE, 4, HYPER_POTION + + def_warps_to SILPH_CO_3F diff --git a/data/maps/objects/SilphCo4F.asm b/data/maps/objects/SilphCo4F.asm new file mode 100755 index 000000000..6c30b5263 --- /dev/null +++ b/data/maps/objects/SilphCo4F.asm @@ -0,0 +1,24 @@ +SilphCo4F_Object: + db $2e ; border block + + def_warps + warp 24, 0, 1, SILPH_CO_3F + warp 26, 0, 1, SILPH_CO_5F + warp 20, 0, 0, SILPH_CO_ELEVATOR + warp 11, 7, 3, SILPH_CO_10F + warp 17, 3, 3, SILPH_CO_6F + warp 3, 15, 4, SILPH_CO_10F + warp 17, 11, 5, SILPH_CO_10F + + def_signs + + def_objects + object SPRITE_SILPH_WORKER, 6, 2, STAY, NONE, 1 ; person + object SPRITE_ROCKET, 9, 14, STAY, RIGHT, 2, OPP_ROCKET, 26 + object SPRITE_SCIENTIST, 14, 6, STAY, LEFT, 3, OPP_SCIENTIST, 5 + object SPRITE_ROCKET, 26, 10, STAY, UP, 4, OPP_ROCKET, 27 + object SPRITE_POKE_BALL, 3, 9, STAY, NONE, 5, FULL_HEAL + object SPRITE_POKE_BALL, 4, 7, STAY, NONE, 6, MAX_REVIVE + object SPRITE_POKE_BALL, 5, 8, STAY, NONE, 7, ESCAPE_ROPE + + def_warps_to SILPH_CO_4F diff --git a/data/maps/objects/SilphCo5F.asm b/data/maps/objects/SilphCo5F.asm new file mode 100755 index 000000000..553ec0c39 --- /dev/null +++ b/data/maps/objects/SilphCo5F.asm @@ -0,0 +1,28 @@ +SilphCo5F_Object: + db $2e ; border block + + def_warps + warp 24, 0, 1, SILPH_CO_6F + warp 26, 0, 1, SILPH_CO_4F + warp 20, 0, 0, SILPH_CO_ELEVATOR + warp 27, 3, 5, SILPH_CO_7F + warp 9, 15, 4, SILPH_CO_9F + warp 11, 5, 4, SILPH_CO_3F + warp 3, 15, 5, SILPH_CO_3F + + def_signs + + def_objects + object SPRITE_SILPH_WORKER, 13, 9, STAY, NONE, 1 ; person + object SPRITE_ROCKET, 8, 16, STAY, RIGHT, 2, OPP_ROCKET, 28 + object SPRITE_SCIENTIST, 8, 3, STAY, RIGHT, 3, OPP_SCIENTIST, 6 + object SPRITE_ROCKER, 18, 10, STAY, UP, 4, OPP_JUGGLER, 1 + object SPRITE_ROCKET, 28, 4, STAY, UP, 5, OPP_ROCKET, 29 + object SPRITE_POKE_BALL, 2, 13, STAY, NONE, 6, TM_TAKE_DOWN + object SPRITE_POKE_BALL, 4, 6, STAY, NONE, 7, PROTEIN + object SPRITE_POKE_BALL, 21, 16, STAY, NONE, 8, CARD_KEY + object SPRITE_CLIPBOARD, 22, 12, STAY, NONE, 9 ; person + object SPRITE_CLIPBOARD, 25, 10, STAY, NONE, 10 ; person + object SPRITE_CLIPBOARD, 24, 6, STAY, NONE, 11 ; person + + def_warps_to SILPH_CO_5F diff --git a/data/maps/objects/SilphCo6F.asm b/data/maps/objects/SilphCo6F.asm new file mode 100755 index 000000000..3dba7414a --- /dev/null +++ b/data/maps/objects/SilphCo6F.asm @@ -0,0 +1,25 @@ +SilphCo6F_Object: + db $2e ; border block + + def_warps + warp 16, 0, 1, SILPH_CO_7F + warp 14, 0, 0, SILPH_CO_5F + warp 18, 0, 0, SILPH_CO_ELEVATOR + warp 3, 3, 4, SILPH_CO_4F + warp 23, 3, 6, SILPH_CO_2F + + def_signs + + def_objects + object SPRITE_SILPH_WORKER, 10, 6, STAY, NONE, 1 ; person + object SPRITE_SILPH_WORKER, 20, 6, STAY, NONE, 2 ; person + object SPRITE_ERIKA, 21, 6, STAY, DOWN, 3 ; person + object SPRITE_ERIKA, 11, 10, STAY, RIGHT, 4 ; person + object SPRITE_SILPH_WORKER, 18, 13, STAY, UP, 5 ; person + object SPRITE_ROCKET, 17, 3, STAY, RIGHT, 6, OPP_ROCKET, 30 + object SPRITE_SCIENTIST, 7, 8, STAY, DOWN, 7, OPP_SCIENTIST, 7 + object SPRITE_ROCKET, 14, 15, STAY, LEFT, 8, OPP_ROCKET, 31 + object SPRITE_POKE_BALL, 3, 12, STAY, NONE, 9, HP_UP + object SPRITE_POKE_BALL, 2, 15, STAY, NONE, 10, X_ACCURACY + + def_warps_to SILPH_CO_6F diff --git a/data/maps/objects/SilphCo7F.asm b/data/maps/objects/SilphCo7F.asm new file mode 100755 index 000000000..55f2ade66 --- /dev/null +++ b/data/maps/objects/SilphCo7F.asm @@ -0,0 +1,27 @@ +SilphCo7F_Object: + db $2e ; border block + + def_warps + warp 16, 0, 1, SILPH_CO_8F + warp 22, 0, 0, SILPH_CO_6F + warp 18, 0, 0, SILPH_CO_ELEVATOR + warp 5, 7, 3, SILPH_CO_11F + warp 5, 3, 8, SILPH_CO_3F + warp 21, 15, 3, SILPH_CO_5F + + def_signs + + def_objects + object SPRITE_SILPH_WORKER, 1, 5, STAY, NONE, 1 ; person + object SPRITE_SILPH_WORKER, 13, 13, STAY, UP, 2 ; person + object SPRITE_SILPH_WORKER, 7, 10, STAY, NONE, 3 ; person + object SPRITE_ERIKA, 10, 8, STAY, NONE, 4 ; person + object SPRITE_ROCKET, 13, 1, STAY, DOWN, 5, OPP_ROCKET, 32 + object SPRITE_SCIENTIST, 2, 13, STAY, DOWN, 6, OPP_SCIENTIST, 8 + object SPRITE_ROCKET, 20, 2, STAY, LEFT, 7, OPP_ROCKET, 33 + object SPRITE_ROCKET, 19, 14, STAY, RIGHT, 8, OPP_ROCKET, 34 + object SPRITE_BLUE, 3, 7, STAY, UP, 9 ; person + object SPRITE_POKE_BALL, 1, 9, STAY, NONE, 10, CALCIUM + object SPRITE_POKE_BALL, 24, 11, STAY, NONE, 11, TM_SWORDS_DANCE + + def_warps_to SILPH_CO_7F diff --git a/data/maps/objects/SilphCo8F.asm b/data/maps/objects/SilphCo8F.asm new file mode 100755 index 000000000..1a50df072 --- /dev/null +++ b/data/maps/objects/SilphCo8F.asm @@ -0,0 +1,21 @@ +SilphCo8F_Object: + db $2e ; border block + + def_warps + warp 16, 0, 1, SILPH_CO_9F + warp 14, 0, 0, SILPH_CO_7F + warp 18, 0, 0, SILPH_CO_ELEVATOR + warp 3, 11, 6, SILPH_CO_8F + warp 3, 15, 4, SILPH_CO_2F + warp 11, 5, 5, SILPH_CO_2F + warp 11, 9, 3, SILPH_CO_8F + + def_signs + + def_objects + object SPRITE_SILPH_WORKER, 4, 2, STAY, NONE, 1 ; person + object SPRITE_ROCKET, 19, 2, STAY, LEFT, 2, OPP_ROCKET, 35 + object SPRITE_SCIENTIST, 10, 2, STAY, DOWN, 3, OPP_SCIENTIST, 9 + object SPRITE_ROCKET, 12, 15, STAY, RIGHT, 4, OPP_ROCKET, 36 + + def_warps_to SILPH_CO_8F diff --git a/data/maps/objects/SilphCo9F.asm b/data/maps/objects/SilphCo9F.asm new file mode 100755 index 000000000..e6de70fd8 --- /dev/null +++ b/data/maps/objects/SilphCo9F.asm @@ -0,0 +1,19 @@ +SilphCo9F_Object: + db $2e ; border block + + def_warps + warp 14, 0, 0, SILPH_CO_10F + warp 16, 0, 0, SILPH_CO_8F + warp 18, 0, 0, SILPH_CO_ELEVATOR + warp 9, 3, 7, SILPH_CO_3F + warp 17, 15, 4, SILPH_CO_5F + + def_signs + + def_objects + object SPRITE_NURSE, 3, 14, STAY, DOWN, 1 ; person + object SPRITE_ROCKET, 2, 4, STAY, UP, 2, OPP_ROCKET, 37 + object SPRITE_SCIENTIST, 21, 13, STAY, DOWN, 3, OPP_SCIENTIST, 10 + object SPRITE_ROCKET, 13, 16, STAY, UP, 4, OPP_ROCKET, 38 + + def_warps_to SILPH_CO_9F diff --git a/data/maps/objects/SilphCoElevator.asm b/data/maps/objects/SilphCoElevator.asm new file mode 100755 index 000000000..d894ba651 --- /dev/null +++ b/data/maps/objects/SilphCoElevator.asm @@ -0,0 +1,13 @@ +SilphCoElevator_Object: + db $f ; border block + + def_warps + warp 1, 3, 0, UNUSED_MAP_ED + warp 2, 3, 0, UNUSED_MAP_ED + + def_signs + sign 3, 0, 1 ; SilphCoElevatorText1 + + def_objects + + def_warps_to SILPH_CO_ELEVATOR diff --git a/data/maps/objects/TradeCenter.asm b/data/maps/objects/TradeCenter.asm new file mode 100644 index 000000000..ff74a4fa9 --- /dev/null +++ b/data/maps/objects/TradeCenter.asm @@ -0,0 +1,11 @@ +TradeCenter_Object: + db $e ; border block + + def_warps + + def_signs + + def_objects + object SPRITE_RED, 2, 2, STAY, 0, 1 ; person + + def_warps_to TRADE_CENTER diff --git a/data/maps/objects/UndergroundPathNorthSouth.asm b/data/maps/objects/UndergroundPathNorthSouth.asm new file mode 100755 index 000000000..abf2d7150 --- /dev/null +++ b/data/maps/objects/UndergroundPathNorthSouth.asm @@ -0,0 +1,12 @@ +UndergroundPathNorthSouth_Object: + db $1 ; border block + + def_warps + warp 5, 4, 2, UNDERGROUND_PATH_ROUTE_5 + warp 2, 41, 2, UNDERGROUND_PATH_ROUTE_6 + + def_signs + + def_objects + + def_warps_to UNDERGROUND_PATH_NORTH_SOUTH diff --git a/data/maps/objects/UndergroundPathRoute5.asm b/data/maps/objects/UndergroundPathRoute5.asm new file mode 100755 index 000000000..0e0f64e0f --- /dev/null +++ b/data/maps/objects/UndergroundPathRoute5.asm @@ -0,0 +1,14 @@ +UndergroundPathRoute5_Object: + db $a ; border block + + def_warps + warp 3, 7, 3, LAST_MAP + warp 4, 7, 3, LAST_MAP + warp 4, 4, 0, UNDERGROUND_PATH_NORTH_SOUTH + + def_signs + + def_objects + object SPRITE_LITTLE_GIRL, 2, 3, STAY, NONE, 1 ; person + + def_warps_to UNDERGROUND_PATH_ROUTE_5 diff --git a/data/maps/objects/UndergroundPathRoute6.asm b/data/maps/objects/UndergroundPathRoute6.asm new file mode 100755 index 000000000..ff4d66b39 --- /dev/null +++ b/data/maps/objects/UndergroundPathRoute6.asm @@ -0,0 +1,14 @@ +UndergroundPathRoute6_Object: + db $a ; border block + + def_warps + warp 3, 7, 3, LAST_MAP + warp 4, 7, 3, LAST_MAP + warp 4, 4, 1, UNDERGROUND_PATH_NORTH_SOUTH + + def_signs + + def_objects + object SPRITE_GIRL, 2, 3, STAY, NONE, 1 ; person + + def_warps_to UNDERGROUND_PATH_ROUTE_6 diff --git a/data/maps/objects/UndergroundPathRoute7.asm b/data/maps/objects/UndergroundPathRoute7.asm new file mode 100755 index 000000000..2532c3808 --- /dev/null +++ b/data/maps/objects/UndergroundPathRoute7.asm @@ -0,0 +1,14 @@ +UndergroundPathRoute7_Object: + db $a ; border block + + def_warps + warp 3, 7, 4, LAST_MAP + warp 4, 7, 4, LAST_MAP + warp 4, 4, 0, UNDERGROUND_PATH_WEST_EAST + + def_signs + + def_objects + object SPRITE_MIDDLE_AGED_MAN, 2, 4, STAY, NONE, 1 ; person + + def_warps_to UNDERGROUND_PATH_ROUTE_7 diff --git a/data/maps/objects/UndergroundPathRoute7Copy.asm b/data/maps/objects/UndergroundPathRoute7Copy.asm new file mode 100755 index 000000000..57e6d093c --- /dev/null +++ b/data/maps/objects/UndergroundPathRoute7Copy.asm @@ -0,0 +1,15 @@ +UndergroundPathRoute7Copy_Object: + db $a ; border block + + def_warps + warp 3, 7, 5, LAST_MAP + warp 4, 7, 5, LAST_MAP + warp 4, 4, 0, UNDERGROUND_PATH_WEST_EAST + + def_signs + + def_objects + object SPRITE_GIRL, 3, 2, STAY, NONE, 1 ; person + object SPRITE_MIDDLE_AGED_MAN, 2, 4, STAY, NONE, 2 ; person + + def_warps_to UNDERGROUND_PATH_ROUTE_7_COPY diff --git a/data/maps/objects/UndergroundPathRoute8.asm b/data/maps/objects/UndergroundPathRoute8.asm new file mode 100755 index 000000000..d84188ab8 --- /dev/null +++ b/data/maps/objects/UndergroundPathRoute8.asm @@ -0,0 +1,14 @@ +UndergroundPathRoute8_Object: + db $a ; border block + + def_warps + warp 3, 7, 4, LAST_MAP + warp 4, 7, 4, LAST_MAP + warp 4, 4, 1, UNDERGROUND_PATH_WEST_EAST + + def_signs + + def_objects + object SPRITE_GIRL, 3, 4, STAY, NONE, 1 ; person + + def_warps_to UNDERGROUND_PATH_ROUTE_8 diff --git a/data/maps/objects/UndergroundPathWestEast.asm b/data/maps/objects/UndergroundPathWestEast.asm new file mode 100755 index 000000000..15141e938 --- /dev/null +++ b/data/maps/objects/UndergroundPathWestEast.asm @@ -0,0 +1,12 @@ +UndergroundPathWestEast_Object: + db $1 ; border block + + def_warps + warp 2, 5, 2, UNDERGROUND_PATH_ROUTE_7 + warp 47, 2, 2, UNDERGROUND_PATH_ROUTE_8 + + def_signs + + def_objects + + def_warps_to UNDERGROUND_PATH_WEST_EAST diff --git a/data/maps/objects/VermilionCity.asm b/data/maps/objects/VermilionCity.asm new file mode 100755 index 000000000..3ea219c38 --- /dev/null +++ b/data/maps/objects/VermilionCity.asm @@ -0,0 +1,33 @@ +VermilionCity_Object: + db $43 ; border block + + def_warps + warp 11, 3, 0, VERMILION_POKECENTER + warp 9, 13, 0, POKEMON_FAN_CLUB + warp 23, 13, 0, VERMILION_MART + warp 12, 19, 0, VERMILION_GYM + warp 23, 19, 0, VERMILION_PIDGEY_HOUSE + warp 18, 31, 0, VERMILION_DOCK + warp 19, 31, 0, VERMILION_DOCK + warp 15, 13, 0, VERMILION_TRADE_HOUSE + warp 7, 3, 0, VERMILION_OLD_ROD_HOUSE + + def_signs + sign 27, 3, 8 ; VermilionCityText7 + sign 37, 13, 9 ; VermilionCityText8 + sign 24, 13, 10 ; MartSignText + sign 12, 3, 11 ; PokeCenterSignText + sign 7, 13, 12 ; VermilionCityText11 + sign 7, 19, 13 ; VermilionCityText12 + sign 29, 15, 14 ; VermilionCityText13 + + def_objects + object SPRITE_COOLTRAINER_F, 19, 7, WALK, LEFT_RIGHT, 1 ; person + object SPRITE_GAMBLER, 14, 6, STAY, NONE, 2 ; person + object SPRITE_SAILOR, 19, 30, STAY, UP, 3 ; person + object SPRITE_GAMBLER, 30, 7, STAY, NONE, 4 ; person + object SPRITE_MONSTER, 29, 9, WALK, UP_DOWN, 5 ; person + object SPRITE_SAILOR, 25, 27, WALK, LEFT_RIGHT, 6 ; person + object SPRITE_OFFICER_JENNY, 19, 15, STAY, NONE, 7 ; person + + def_warps_to VERMILION_CITY diff --git a/data/maps/objects/VermilionDock.asm b/data/maps/objects/VermilionDock.asm new file mode 100755 index 000000000..f8143aaaa --- /dev/null +++ b/data/maps/objects/VermilionDock.asm @@ -0,0 +1,12 @@ +VermilionDock_Object: + db $f ; border block + + def_warps + warp 14, 0, 5, LAST_MAP + warp 14, 2, 1, SS_ANNE_1F + + def_signs + + def_objects + + def_warps_to VERMILION_DOCK diff --git a/data/maps/objects/VermilionGym.asm b/data/maps/objects/VermilionGym.asm new file mode 100755 index 000000000..ce0fd9f06 --- /dev/null +++ b/data/maps/objects/VermilionGym.asm @@ -0,0 +1,17 @@ +VermilionGym_Object: + db $3 ; border block + + def_warps + warp 4, 17, 3, LAST_MAP + warp 5, 17, 3, LAST_MAP + + def_signs + + def_objects + object SPRITE_ROCKER, 5, 1, STAY, DOWN, 1, OPP_LT_SURGE, 1 + object SPRITE_GENTLEMAN, 9, 6, STAY, LEFT, 2, OPP_GENTLEMAN, 3 + object SPRITE_SUPER_NERD, 3, 8, STAY, LEFT, 3, OPP_ROCKER, 1 + object SPRITE_SAILOR, 0, 10, STAY, RIGHT, 4, OPP_SAILOR, 8 + object SPRITE_GYM_GUIDE, 4, 14, STAY, DOWN, 5 ; person + + def_warps_to VERMILION_GYM diff --git a/data/maps/objects/VermilionMart.asm b/data/maps/objects/VermilionMart.asm new file mode 100755 index 000000000..c473b5d1e --- /dev/null +++ b/data/maps/objects/VermilionMart.asm @@ -0,0 +1,15 @@ +VermilionMart_Object: + db $0 ; border block + + def_warps + warp 3, 7, 2, LAST_MAP + warp 4, 7, 2, LAST_MAP + + def_signs + + def_objects + object SPRITE_CLERK, 0, 5, STAY, RIGHT, 1 ; person + object SPRITE_COOLTRAINER_M, 5, 6, STAY, NONE, 2 ; person + object SPRITE_COOLTRAINER_F, 3, 3, WALK, LEFT_RIGHT, 3 ; person + + def_warps_to VERMILION_MART diff --git a/data/maps/objects/VermilionOldRodHouse.asm b/data/maps/objects/VermilionOldRodHouse.asm new file mode 100755 index 000000000..878262f2d --- /dev/null +++ b/data/maps/objects/VermilionOldRodHouse.asm @@ -0,0 +1,13 @@ +VermilionOldRodHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 8, LAST_MAP + warp 3, 7, 8, LAST_MAP + + def_signs + + def_objects + object SPRITE_FISHING_GURU, 2, 4, STAY, RIGHT, 1 ; person + + def_warps_to VERMILION_OLD_ROD_HOUSE diff --git a/data/maps/objects/VermilionPidgeyHouse.asm b/data/maps/objects/VermilionPidgeyHouse.asm new file mode 100755 index 000000000..0a3574097 --- /dev/null +++ b/data/maps/objects/VermilionPidgeyHouse.asm @@ -0,0 +1,15 @@ +VermilionPidgeyHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 4, LAST_MAP + warp 3, 7, 4, LAST_MAP + + def_signs + + def_objects + object SPRITE_YOUNGSTER, 5, 3, STAY, LEFT, 1 ; person + object SPRITE_BIRD, 3, 5, WALK, LEFT_RIGHT, 2 ; person + object SPRITE_PAPER, 4, 3, STAY, NONE, 3 ; person + + def_warps_to VERMILION_PIDGEY_HOUSE diff --git a/data/maps/objects/VermilionPokecenter.asm b/data/maps/objects/VermilionPokecenter.asm new file mode 100755 index 000000000..f52bf24e6 --- /dev/null +++ b/data/maps/objects/VermilionPokecenter.asm @@ -0,0 +1,17 @@ +VermilionPokecenter_Object: + db $0 ; border block + + def_warps + warp 3, 7, 0, LAST_MAP + warp 4, 7, 0, LAST_MAP + + def_signs + + def_objects + object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person + object SPRITE_FISHING_GURU, 10, 5, STAY, NONE, 2 ; person + object SPRITE_SAILOR, 5, 4, STAY, NONE, 3 ; person + object SPRITE_LINK_RECEPTIONIST, 11, 2, STAY, DOWN, 4 ; person + object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person + + def_warps_to VERMILION_POKECENTER diff --git a/data/maps/objects/VermilionTradeHouse.asm b/data/maps/objects/VermilionTradeHouse.asm new file mode 100755 index 000000000..5eace66e3 --- /dev/null +++ b/data/maps/objects/VermilionTradeHouse.asm @@ -0,0 +1,13 @@ +VermilionTradeHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 7, LAST_MAP + warp 3, 7, 7, LAST_MAP + + def_signs + + def_objects + object SPRITE_GENTLEMAN, 3, 5, STAY, UP, 1 ; person + + def_warps_to VERMILION_TRADE_HOUSE diff --git a/data/maps/objects/VictoryRoad1F.asm b/data/maps/objects/VictoryRoad1F.asm new file mode 100755 index 000000000..e3798128d --- /dev/null +++ b/data/maps/objects/VictoryRoad1F.asm @@ -0,0 +1,20 @@ +VictoryRoad1F_Object: + db $7d ; border block + + def_warps + warp 8, 17, 2, LAST_MAP + warp 9, 17, 2, LAST_MAP + warp 1, 1, 0, VICTORY_ROAD_2F + + def_signs + + def_objects + object SPRITE_COOLTRAINER_F, 7, 5, STAY, RIGHT, 1, OPP_COOLTRAINER_F, 5 + object SPRITE_COOLTRAINER_M, 3, 2, STAY, DOWN, 2, OPP_COOLTRAINER_M, 5 + object SPRITE_POKE_BALL, 11, 0, STAY, NONE, 3, TM_SKY_ATTACK + object SPRITE_POKE_BALL, 9, 2, STAY, NONE, 4, RARE_CANDY + object SPRITE_BOULDER, 5, 15, STAY, BOULDER_MOVEMENT_BYTE_2, 5 ; person + object SPRITE_BOULDER, 14, 2, STAY, BOULDER_MOVEMENT_BYTE_2, 6 ; person + object SPRITE_BOULDER, 2, 10, STAY, BOULDER_MOVEMENT_BYTE_2, 7 ; person + + def_warps_to VICTORY_ROAD_1F diff --git a/data/maps/objects/VictoryRoad2F.asm b/data/maps/objects/VictoryRoad2F.asm new file mode 100755 index 000000000..84a32fa28 --- /dev/null +++ b/data/maps/objects/VictoryRoad2F.asm @@ -0,0 +1,30 @@ +VictoryRoad2F_Object: + db $7d ; border block + + def_warps + warp 0, 8, 2, VICTORY_ROAD_1F + warp 29, 7, 3, LAST_MAP + warp 29, 8, 3, LAST_MAP + warp 23, 7, 0, VICTORY_ROAD_3F + warp 25, 14, 2, VICTORY_ROAD_3F + warp 27, 7, 1, VICTORY_ROAD_3F + warp 1, 1, 3, VICTORY_ROAD_3F + + def_signs + + def_objects + object SPRITE_HIKER, 12, 9, STAY, LEFT, 1, OPP_BLACKBELT, 9 + object SPRITE_SUPER_NERD, 21, 13, STAY, LEFT, 2, OPP_JUGGLER, 2 + object SPRITE_COOLTRAINER_M, 19, 8, STAY, DOWN, 3, OPP_TAMER, 5 + object SPRITE_SUPER_NERD, 4, 2, STAY, DOWN, 4, OPP_POKEMANIAC, 6 + object SPRITE_SUPER_NERD, 26, 3, STAY, LEFT, 5, OPP_JUGGLER, 5 + object SPRITE_BIRD, 11, 5, STAY, UP, 6, MOLTRES, 50 + object SPRITE_POKE_BALL, 27, 5, STAY, NONE, 7, TM_SUBMISSION + object SPRITE_POKE_BALL, 18, 9, STAY, NONE, 8, FULL_HEAL + object SPRITE_POKE_BALL, 9, 11, STAY, NONE, 9, TM_MEGA_KICK + object SPRITE_POKE_BALL, 11, 0, STAY, NONE, 10, GUARD_SPEC + object SPRITE_BOULDER, 4, 14, STAY, BOULDER_MOVEMENT_BYTE_2, 11 ; person + object SPRITE_BOULDER, 5, 5, STAY, BOULDER_MOVEMENT_BYTE_2, 12 ; person + object SPRITE_BOULDER, 23, 16, STAY, BOULDER_MOVEMENT_BYTE_2, 13 ; person + + def_warps_to VICTORY_ROAD_2F diff --git a/data/maps/objects/VictoryRoad3F.asm b/data/maps/objects/VictoryRoad3F.asm new file mode 100755 index 000000000..fcab3e741 --- /dev/null +++ b/data/maps/objects/VictoryRoad3F.asm @@ -0,0 +1,24 @@ +VictoryRoad3F_Object: + db $7d ; border block + + def_warps + warp 23, 7, 3, VICTORY_ROAD_2F + warp 26, 8, 5, VICTORY_ROAD_2F + warp 27, 15, 4, VICTORY_ROAD_2F + warp 2, 0, 6, VICTORY_ROAD_2F + + def_signs + + def_objects + object SPRITE_COOLTRAINER_M, 28, 5, STAY, LEFT, 1, OPP_COOLTRAINER_M, 2 + object SPRITE_COOLTRAINER_F, 7, 13, STAY, RIGHT, 2, OPP_COOLTRAINER_F, 2 + object SPRITE_COOLTRAINER_M, 6, 14, STAY, LEFT, 3, OPP_COOLTRAINER_M, 3 + object SPRITE_COOLTRAINER_F, 13, 3, STAY, RIGHT, 4, OPP_COOLTRAINER_F, 3 + object SPRITE_POKE_BALL, 26, 5, STAY, NONE, 5, MAX_REVIVE + object SPRITE_POKE_BALL, 7, 7, STAY, NONE, 6, TM_EXPLOSION + object SPRITE_BOULDER, 22, 3, STAY, BOULDER_MOVEMENT_BYTE_2, 7 ; person + object SPRITE_BOULDER, 13, 12, STAY, BOULDER_MOVEMENT_BYTE_2, 8 ; person + object SPRITE_BOULDER, 24, 10, STAY, BOULDER_MOVEMENT_BYTE_2, 9 ; person + object SPRITE_BOULDER, 22, 15, STAY, BOULDER_MOVEMENT_BYTE_2, 10 ; person + + def_warps_to VICTORY_ROAD_3F diff --git a/data/maps/objects/ViridianCity.asm b/data/maps/objects/ViridianCity.asm new file mode 100755 index 000000000..9e3e30bb4 --- /dev/null +++ b/data/maps/objects/ViridianCity.asm @@ -0,0 +1,29 @@ +ViridianCity_Object: + db $f ; border block + + def_warps + warp 23, 25, 0, VIRIDIAN_POKECENTER + warp 29, 19, 0, VIRIDIAN_MART + warp 21, 15, 0, VIRIDIAN_SCHOOL_HOUSE + warp 21, 9, 0, VIRIDIAN_NICKNAME_HOUSE + warp 32, 7, 0, VIRIDIAN_GYM + + def_signs + sign 17, 17, 9 ; ViridianCityText8 + sign 19, 1, 10 ; ViridianCityText9 + sign 21, 29, 11 ; ViridianCityText10 + sign 30, 19, 12 ; MartSignText + sign 24, 25, 13 ; PokeCenterSignText + sign 27, 7, 14 ; ViridianCityText13 + + def_objects + object SPRITE_YOUNGSTER, 13, 20, WALK, ANY_DIR, 1 ; person + object SPRITE_GAMBLER, 30, 8, STAY, NONE, 2 ; person + object SPRITE_YOUNGSTER, 30, 25, WALK, ANY_DIR, 3 ; person + object SPRITE_GIRL, 17, 9, STAY, RIGHT, 4 ; person + object SPRITE_GAMBLER_ASLEEP, 18, 9, STAY, NONE, 5 ; person + object SPRITE_FISHER, 6, 23, STAY, DOWN, 6 ; person + object SPRITE_GAMBLER, 17, 5, WALK, LEFT_RIGHT, 7 ; person + object SPRITE_GAMBLER, 18, 9, STAY, NONE, 8 + + def_warps_to VIRIDIAN_CITY diff --git a/data/maps/objects/ViridianForest.asm b/data/maps/objects/ViridianForest.asm new file mode 100755 index 000000000..56d48f6d1 --- /dev/null +++ b/data/maps/objects/ViridianForest.asm @@ -0,0 +1,32 @@ +ViridianForest_Object: + db $3 ; border block + + def_warps + warp 1, 0, 2, VIRIDIAN_FOREST_NORTH_GATE + warp 2, 0, 2, VIRIDIAN_FOREST_NORTH_GATE + warp 15, 47, 1, VIRIDIAN_FOREST_SOUTH_GATE + warp 16, 47, 1, VIRIDIAN_FOREST_SOUTH_GATE + warp 17, 47, 1, VIRIDIAN_FOREST_SOUTH_GATE + warp 18, 47, 1, VIRIDIAN_FOREST_SOUTH_GATE + + def_signs + sign 24, 40, 11 ; ViridianForestText9 + sign 16, 32, 12 ; ViridianForestText10 + sign 26, 17, 13 ; ViridianForestText11 + sign 4, 24, 14 ; ViridianForestText12 + sign 18, 45, 15 ; ViridianForestText13 + sign 2, 1, 16 ; ViridianForestText14 + + def_objects + object SPRITE_YOUNGSTER, 16, 43, STAY, NONE, 1 ; person + object SPRITE_YOUNGSTER, 30, 33, STAY, LEFT, 2, OPP_BUG_CATCHER, 1 + object SPRITE_YOUNGSTER, 30, 19, STAY, LEFT, 3, OPP_BUG_CATCHER, 2 + object SPRITE_YOUNGSTER, 2, 18, STAY, LEFT, 4, OPP_BUG_CATCHER, 3 + object SPRITE_COOLTRAINER_F, 2, 41, STAY, NONE, 5, OPP_LASS, 19 + object SPRITE_YOUNGSTER, 13, 17, STAY, RIGHT, 6, OPP_BUG_CATCHER, 15 + object SPRITE_POKE_BALL, 25, 11, STAY, NONE, 7, POTION + object SPRITE_POKE_BALL, 12, 29, STAY, NONE, 8, POTION + object SPRITE_POKE_BALL, 1, 31, STAY, NONE, 9, POKE_BALL + object SPRITE_YOUNGSTER, 27, 40, STAY, NONE, 10 ; person + + def_warps_to VIRIDIAN_FOREST diff --git a/data/maps/objects/ViridianForestNorthGate.asm b/data/maps/objects/ViridianForestNorthGate.asm new file mode 100755 index 000000000..137b8b3b1 --- /dev/null +++ b/data/maps/objects/ViridianForestNorthGate.asm @@ -0,0 +1,16 @@ +ViridianForestNorthGate_Object: + db $a ; border block + + def_warps + warp 4, 0, 1, LAST_MAP + warp 5, 0, 1, LAST_MAP + warp 4, 7, 0, VIRIDIAN_FOREST + warp 5, 7, 0, VIRIDIAN_FOREST + + def_signs + + def_objects + object SPRITE_SUPER_NERD, 3, 2, STAY, NONE, 1 ; person + object SPRITE_GRAMPS, 2, 5, STAY, NONE, 2 ; person + + def_warps_to VIRIDIAN_FOREST_NORTH_GATE diff --git a/data/maps/objects/ViridianForestSouthGate.asm b/data/maps/objects/ViridianForestSouthGate.asm new file mode 100755 index 000000000..c73205cd8 --- /dev/null +++ b/data/maps/objects/ViridianForestSouthGate.asm @@ -0,0 +1,16 @@ +ViridianForestSouthGate_Object: + db $a ; border block + + def_warps + warp 4, 0, 3, VIRIDIAN_FOREST + warp 5, 0, 3, VIRIDIAN_FOREST + warp 4, 7, 5, LAST_MAP + warp 5, 7, 5, LAST_MAP + + def_signs + + def_objects + object SPRITE_GIRL, 8, 4, STAY, LEFT, 1 ; person + object SPRITE_LITTLE_GIRL, 2, 4, WALK, UP_DOWN, 2 ; person + + def_warps_to VIRIDIAN_FOREST_SOUTH_GATE diff --git a/data/maps/objects/ViridianGym.asm b/data/maps/objects/ViridianGym.asm new file mode 100755 index 000000000..cc1589289 --- /dev/null +++ b/data/maps/objects/ViridianGym.asm @@ -0,0 +1,23 @@ +ViridianGym_Object: + db $3 ; border block + + def_warps + warp 16, 17, 4, LAST_MAP + warp 17, 17, 4, LAST_MAP + + def_signs + + def_objects + object SPRITE_GIOVANNI, 2, 1, STAY, DOWN, 1, OPP_GIOVANNI, 3 + object SPRITE_COOLTRAINER_M, 12, 7, STAY, DOWN, 2, OPP_COOLTRAINER_M, 9 + object SPRITE_HIKER, 11, 11, STAY, UP, 3, OPP_BLACKBELT, 6 + object SPRITE_ROCKER, 10, 7, STAY, DOWN, 4, OPP_TAMER, 3 + object SPRITE_HIKER, 3, 7, STAY, LEFT, 5, OPP_BLACKBELT, 7 + object SPRITE_COOLTRAINER_M, 13, 5, STAY, RIGHT, 6, OPP_COOLTRAINER_M, 10 + object SPRITE_HIKER, 10, 1, STAY, DOWN, 7, OPP_BLACKBELT, 8 + object SPRITE_ROCKER, 2, 16, STAY, RIGHT, 8, OPP_TAMER, 4 + object SPRITE_COOLTRAINER_M, 6, 5, STAY, DOWN, 9, OPP_COOLTRAINER_M, 1 + object SPRITE_GYM_GUIDE, 16, 15, STAY, DOWN, 10 ; person + object SPRITE_POKE_BALL, 16, 9, STAY, NONE, 11, REVIVE + + def_warps_to VIRIDIAN_GYM diff --git a/data/maps/objects/ViridianMart.asm b/data/maps/objects/ViridianMart.asm new file mode 100755 index 000000000..cbb5a4a30 --- /dev/null +++ b/data/maps/objects/ViridianMart.asm @@ -0,0 +1,15 @@ +ViridianMart_Object: + db $0 ; border block + + def_warps + warp 3, 7, 1, LAST_MAP + warp 4, 7, 1, LAST_MAP + + def_signs + + def_objects + object SPRITE_CLERK, 0, 5, STAY, RIGHT, 1 ; person + object SPRITE_YOUNGSTER, 5, 5, WALK, UP_DOWN, 2 ; person + object SPRITE_COOLTRAINER_M, 3, 3, STAY, NONE, 3 ; person + + def_warps_to VIRIDIAN_MART diff --git a/data/maps/objects/ViridianNicknameHouse.asm b/data/maps/objects/ViridianNicknameHouse.asm new file mode 100755 index 000000000..c2e6b70f3 --- /dev/null +++ b/data/maps/objects/ViridianNicknameHouse.asm @@ -0,0 +1,16 @@ +ViridianNicknameHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 3, LAST_MAP + warp 3, 7, 3, LAST_MAP + + def_signs + + def_objects + object SPRITE_BALDING_GUY, 5, 3, STAY, NONE, 1 ; person + object SPRITE_LITTLE_GIRL, 1, 4, WALK, UP_DOWN, 2 ; person + object SPRITE_BIRD, 5, 5, WALK, LEFT_RIGHT, 3 ; person + object SPRITE_CLIPBOARD, 4, 0, STAY, NONE, 4 ; person + + def_warps_to VIRIDIAN_NICKNAME_HOUSE diff --git a/data/maps/objects/ViridianPokecenter.asm b/data/maps/objects/ViridianPokecenter.asm new file mode 100755 index 000000000..ef510f725 --- /dev/null +++ b/data/maps/objects/ViridianPokecenter.asm @@ -0,0 +1,17 @@ +ViridianPokecenter_Object: + db $0 ; border block + + def_warps + warp 3, 7, 0, LAST_MAP + warp 4, 7, 0, LAST_MAP + + def_signs + + def_objects + object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person + object SPRITE_GENTLEMAN, 10, 5, WALK, UP_DOWN, 2 ; person + object SPRITE_COOLTRAINER_M, 4, 3, STAY, UP, 3 ; person + object SPRITE_LINK_RECEPTIONIST, 11, 2, STAY, DOWN, 4 ; person + object SPRITE_CHANSEY, 4, 1, STAY, DOWN, 5 ; person + + def_warps_to VIRIDIAN_POKECENTER diff --git a/data/maps/objects/ViridianSchoolHouse.asm b/data/maps/objects/ViridianSchoolHouse.asm new file mode 100755 index 000000000..632baabaf --- /dev/null +++ b/data/maps/objects/ViridianSchoolHouse.asm @@ -0,0 +1,15 @@ +ViridianSchoolHouse_Object: + db $a ; border block + + def_warps + warp 2, 7, 2, LAST_MAP + warp 3, 7, 2, LAST_MAP + + def_signs + + def_objects + object SPRITE_BRUNETTE_GIRL, 3, 5, STAY, UP, 1 ; person + object SPRITE_COOLTRAINER_F, 4, 1, STAY, DOWN, 2 ; person + object SPRITE_LITTLE_GIRL, 4, 5, STAY, UP, 3 ; person + + def_warps_to VIRIDIAN_SCHOOL_HOUSE diff --git a/data/maps/objects/WardensHouse.asm b/data/maps/objects/WardensHouse.asm new file mode 100755 index 000000000..68210d659 --- /dev/null +++ b/data/maps/objects/WardensHouse.asm @@ -0,0 +1,17 @@ +WardensHouse_Object: + db $17 ; border block + + def_warps + warp 4, 7, 3, LAST_MAP + warp 5, 7, 3, LAST_MAP + + def_signs + sign 4, 3, 4 ; FuchsiaHouse2Text4 + sign 5, 3, 5 ; FuchsiaHouse2Text5 + + def_objects + object SPRITE_WARDEN, 2, 3, STAY, NONE, 1 ; person + object SPRITE_POKE_BALL, 8, 3, STAY, NONE, 2, RARE_CANDY + object SPRITE_BOULDER, 8, 4, STAY, BOULDER_MOVEMENT_BYTE_2, 3 ; person + + def_warps_to WARDENS_HOUSE diff --git a/data/maps/rest_house_maps.asm b/data/maps/rest_house_maps.asm new file mode 100644 index 000000000..88f0845ac --- /dev/null +++ b/data/maps/rest_house_maps.asm @@ -0,0 +1,5 @@ +SafariZoneRestHouses: + db SAFARI_ZONE_WEST_REST_HOUSE + db SAFARI_ZONE_EAST_REST_HOUSE + db SAFARI_ZONE_NORTH_REST_HOUSE + db -1 ; end diff --git a/data/maps/songs.asm b/data/maps/songs.asm new file mode 100644 index 000000000..1b043bfa6 --- /dev/null +++ b/data/maps/songs.asm @@ -0,0 +1,250 @@ +MapSongBanks:: + db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; PALLET_TOWN + db MUSIC_CITIES1, BANK(Music_Cities1) ; VIRIDIAN_CITY + db MUSIC_CITIES1, BANK(Music_Cities1) ; PEWTER_CITY + db MUSIC_CITIES2, BANK(Music_Cities2) ; CERULEAN_CITY + db MUSIC_LAVENDER, BANK(Music_Lavender) ; LAVENDER_TOWN + db MUSIC_VERMILION, BANK(Music_Vermilion) ; VERMILION_CITY + db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_CITY + db MUSIC_CITIES2, BANK(Music_Cities2) ; FUCHSIA_CITY + db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_ISLAND + db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; INDIGO_PLATEAU + db MUSIC_CITIES1, BANK(Music_Cities1) ; SAFFRON_CITY + db MUSIC_CITIES1, BANK(Music_Cities1) ; UNUSED_MAP_0B + db MUSIC_ROUTES1, BANK(Music_Routes1) ; ROUTE_1 + db MUSIC_ROUTES1, BANK(Music_Routes1) ; ROUTE_2 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_3 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_4 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_5 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_6 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_7 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_8 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_9 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_10 + db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_11 + db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_12 + db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_13 + db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_14 + db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_15 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_16 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_17 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_18 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_19 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_20 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_21 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_22 + db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; ROUTE_23 + db MUSIC_ROUTES2, BANK(Music_Routes2) ; ROUTE_24 + db MUSIC_ROUTES2, BANK(Music_Routes2) ; ROUTE_25 + db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; REDS_HOUSE_1F + db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; REDS_HOUSE_2F + db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; BLUES_HOUSE + db MUSIC_OAKS_LAB, BANK(Music_OaksLab) ; OAKS_LAB + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; VIRIDIAN_POKECENTER + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; VIRIDIAN_MART + db MUSIC_CITIES1, BANK(Music_Cities1) ; VIRIDIAN_SCHOOL_HOUSE + db MUSIC_CITIES1, BANK(Music_Cities1) ; VIRIDIAN_NICKNAME_HOUSE + db MUSIC_GYM, BANK(Music_Gym) ; VIRIDIAN_GYM + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; DIGLETTS_CAVE_ROUTE_2 + db MUSIC_CITIES1, BANK(Music_Cities1) ; VIRIDIAN_FOREST_NORTH_GATE + db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_2_TRADE_HOUSE + db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_2_GATE + db MUSIC_CITIES1, BANK(Music_Cities1) ; VIRIDIAN_FOREST_SOUTH_GATE + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; VIRIDIAN_FOREST + db MUSIC_CITIES1, BANK(Music_Cities1) ; MUSEUM_1F + db MUSIC_CITIES1, BANK(Music_Cities1) ; MUSEUM_2F + db MUSIC_GYM, BANK(Music_Gym) ; PEWTER_GYM + db MUSIC_CITIES1, BANK(Music_Cities1) ; PEWTER_NIDORAN_HOUSE + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; PEWTER_MART + db MUSIC_CITIES1, BANK(Music_Cities1) ; PEWTER_SPEECH_HOUSE + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; PEWTER_POKECENTER + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; MT_MOON_1F + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; MT_MOON_B1F + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; MT_MOON_B2F + db MUSIC_CITIES2, BANK(Music_Cities2) ; CERULEAN_TRASHED_HOUSE + db MUSIC_CITIES2, BANK(Music_Cities2) ; CERULEAN_TRADE_HOUSE + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CERULEAN_POKECENTER + db MUSIC_GYM, BANK(Music_Gym) ; CERULEAN_GYM + db MUSIC_CITIES2, BANK(Music_Cities2) ; BIKE_SHOP + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CERULEAN_MART + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; MT_MOON_POKECENTER + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; CERULEAN_TRASHED_HOUSE_COPY + db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_5_GATE + db MUSIC_CITIES1, BANK(Music_Cities1) ; UNDERGROUND_PATH_ROUTE_5 + db MUSIC_CITIES1, BANK(Music_Cities1) ; DAYCARE + db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_6_GATE + db MUSIC_CITIES1, BANK(Music_Cities1) ; UNDERGROUND_PATH_ROUTE_6 + db MUSIC_VERMILION, BANK(Music_Vermilion) ; UNDERGROUND_PATH_ROUTE_6_COPY + db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_7_GATE + db MUSIC_CITIES1, BANK(Music_Cities1) ; UNDERGROUND_PATH_ROUTE_7 + db MUSIC_CELADON, BANK(Music_Celadon) ; UNDERGROUND_PATH_ROUTE_7_COPY + db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_8_GATE + db MUSIC_CITIES1, BANK(Music_Cities1) ; UNDERGROUND_PATH_ROUTE_8 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; ROCK_TUNNEL_POKECENTER + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; ROCK_TUNNEL_1F + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; POWER_PLANT + db MUSIC_VERMILION, BANK(Music_Vermilion) ; ROUTE_11_GATE_1F + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; DIGLETTS_CAVE_ROUTE_11 + db MUSIC_VERMILION, BANK(Music_Vermilion) ; ROUTE_11_GATE_2F + db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_12_GATE_1F + db MUSIC_CITIES2, BANK(Music_Cities2) ; BILLS_HOUSE + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; VERMILION_POKECENTER + db MUSIC_VERMILION, BANK(Music_Vermilion) ; POKEMON_FAN_CLUB + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; VERMILION_MART + db MUSIC_GYM, BANK(Music_Gym) ; VERMILION_GYM + db MUSIC_VERMILION, BANK(Music_Vermilion) ; VERMILION_PIDGEY_HOUSE + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; VERMILION_DOCK + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_1F + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_2F + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_3F + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_B1F + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_BOW + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_KITCHEN + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_CAPTAINS_ROOM + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_1F_ROOMS + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_2F_ROOMS + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_B1F_ROOMS + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; UNUSED_MAP_69 + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; UNUSED_MAP_6A + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; UNUSED_MAP_6B + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; VICTORY_ROAD_1F + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; UNUSED_MAP_6D + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; UNUSED_MAP_6E + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_6F + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_70 + db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; LANCES_ROOM + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; UNUSED_MAP_72 + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; UNUSED_MAP_73 + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; UNUSED_MAP_74 + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; UNUSED_MAP_75 + db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; HALL_OF_FAME + db MUSIC_ROUTES1, BANK(Music_Routes1) ; UNDERGROUND_PATH_NORTH_SOUTH + db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; CHAMPIONS_ROOM + db MUSIC_ROUTES1, BANK(Music_Routes1) ; UNDERGROUND_PATH_WEST_EAST + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_1F + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_2F + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_3F + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_4F + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_ROOF + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_ELEVATOR + db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_MANSION_1F + db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_MANSION_2F + db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_MANSION_3F + db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_MANSION_ROOF + db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_MANSION_ROOF_HOUSE + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_POKECENTER + db MUSIC_GYM, BANK(Music_Gym) ; CELADON_GYM + db MUSIC_GAME_CORNER, BANK(Music_GameCorner) ; GAME_CORNER + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_5F + db MUSIC_CELADON, BANK(Music_Celadon) ; GAME_CORNER_PRIZE_ROOM + db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_DINER + db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_CHIEF_HOUSE + db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_HOTEL + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; LAVENDER_POKECENTER + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_1F + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_2F + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_3F + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_4F + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_5F + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_6F + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_7F + db MUSIC_LAVENDER, BANK(Music_Lavender) ; MR_FUJIS_HOUSE + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; LAVENDER_MART + db MUSIC_LAVENDER, BANK(Music_Lavender) ; LAVENDER_CUBONE_HOUSE + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; FUCHSIA_MART + db MUSIC_CITIES2, BANK(Music_Cities2) ; FUCHSIA_BILLS_GRANDPAS_HOUSE + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; FUCHSIA_POKECENTER + db MUSIC_CITIES2, BANK(Music_Cities2) ; WARDENS_HOUSE + db MUSIC_CITIES2, BANK(Music_Cities2) ; SAFARI_ZONE_GATE + db MUSIC_GYM, BANK(Music_Gym) ; FUCHSIA_GYM + db MUSIC_CITIES2, BANK(Music_Cities2) ; FUCHSIA_MEETING_ROOM + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SEAFOAM_ISLANDS_B1F + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SEAFOAM_ISLANDS_B2F + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SEAFOAM_ISLANDS_B3F + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SEAFOAM_ISLANDS_B4F + db MUSIC_CITIES2, BANK(Music_Cities2) ; VERMILION_OLD_ROD_HOUSE + db MUSIC_CITIES2, BANK(Music_Cities2) ; FUCHSIA_GOOD_ROD_HOUSE + db MUSIC_CINNABAR_MANSION, BANK(Music_CinnabarMansion) ; POKEMON_MANSION_1F + db MUSIC_GYM, BANK(Music_Gym) ; CINNABAR_GYM + db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_LAB + db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_LAB_TRADE_ROOM + db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_LAB_METRONOME_ROOM + db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_LAB_FOSSIL_ROOM + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CINNABAR_POKECENTER + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CINNABAR_MART + db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_MART_COPY + db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; INDIGO_PLATEAU_LOBBY + db MUSIC_CITIES1, BANK(Music_Cities1) ; COPYCATS_HOUSE_1F + db MUSIC_CITIES1, BANK(Music_Cities1) ; COPYCATS_HOUSE_2F + db MUSIC_CITIES1, BANK(Music_Cities1) ; FIGHTING_DOJO + db MUSIC_GYM, BANK(Music_Gym) ; SAFFRON_GYM + db MUSIC_CITIES1, BANK(Music_Cities1) ; SAFFRON_PIDGEY_HOUSE + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; SAFFRON_MART + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_1F + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; SAFFRON_POKECENTER + db MUSIC_CITIES1, BANK(Music_Cities1) ; MR_PSYCHICS_HOUSE + db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_15_GATE_1F + db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_15_GATE_2F + db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_16_GATE_1F + db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_16_GATE_2F + db MUSIC_CELADON, BANK(Music_Celadon) ; ROUTE_16_FLY_HOUSE + db MUSIC_CELADON, BANK(Music_Celadon) ; ROUTE_12_SUPER_ROD_HOUSE + db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_18_GATE_1F + db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_18_GATE_2F + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SEAFOAM_ISLANDS_1F + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; ROUTE_22_GATE + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; VICTORY_ROAD_2F + db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_12_GATE_2F + db MUSIC_VERMILION, BANK(Music_Vermilion) ; VERMILION_TRADE_HOUSE + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; DIGLETTS_CAVE + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; VICTORY_ROAD_3F + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; ROCKET_HIDEOUT_B1F + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; ROCKET_HIDEOUT_B2F + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; ROCKET_HIDEOUT_B3F + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; ROCKET_HIDEOUT_B4F + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; ROCKET_HIDEOUT_ELEVATOR + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; UNUSED_MAP_CC + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; UNUSED_MAP_CD + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; UNUSED_MAP_CE + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_2F + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_3F + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_4F + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_5F + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_6F + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_7F + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_8F + db MUSIC_CINNABAR_MANSION, BANK(Music_CinnabarMansion) ; POKEMON_MANSION_2F + db MUSIC_CINNABAR_MANSION, BANK(Music_CinnabarMansion) ; POKEMON_MANSION_3F + db MUSIC_CINNABAR_MANSION, BANK(Music_CinnabarMansion) ; POKEMON_MANSION_B1F + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_EAST + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_NORTH + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_WEST + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_CENTER + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_CENTER_REST_HOUSE + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_SECRET_HOUSE + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_WEST_REST_HOUSE + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_EAST_REST_HOUSE + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_NORTH_REST_HOUSE + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; CERULEAN_CAVE_2F + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; CERULEAN_CAVE_B1F + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; CERULEAN_CAVE_1F + db MUSIC_CITIES2, BANK(Music_Cities2) ; NAME_RATERS_HOUSE + db MUSIC_CITIES1, BANK(Music_Cities1) ; CERULEAN_BADGE_HOUSE + db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; UNUSED_MAP_E7 + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; ROCK_TUNNEL_B1F + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_9F + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_10F + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_11F + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_ELEVATOR + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_ED + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_EE + db MUSIC_CELADON, BANK(Music_Celadon) ; TRADE_CENTER + db MUSIC_CELADON, BANK(Music_Celadon) ; COLOSSEUM + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_F1 + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_F2 + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_F3 + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_F4 + db MUSIC_GYM, BANK(Music_Gym) ; LORELEIS_ROOM + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; BRUNOS_ROOM + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; AGATHAS_ROOM + db MUSIC_ROUTES3, BANK(Music_Routes3) ; BEACH_HOUSE diff --git a/data/maps/special_warps.asm b/data/maps/special_warps.asm new file mode 100755 index 000000000..80f88cc49 --- /dev/null +++ b/data/maps/special_warps.asm @@ -0,0 +1,91 @@ +; Format: (size 2 bytes) +; 00: target map ID +; 01: which dungeon warp in the source map was used +DungeonWarpList: + db SEAFOAM_ISLANDS_B1F, 1 + db SEAFOAM_ISLANDS_B1F, 2 + db SEAFOAM_ISLANDS_B2F, 1 + db SEAFOAM_ISLANDS_B2F, 2 + db SEAFOAM_ISLANDS_B3F, 1 + db SEAFOAM_ISLANDS_B3F, 2 + db SEAFOAM_ISLANDS_B4F, 1 + db SEAFOAM_ISLANDS_B4F, 2 + db VICTORY_ROAD_2F, 2 + db POKEMON_MANSION_1F, 1 + db POKEMON_MANSION_1F, 2 + db POKEMON_MANSION_2F, 3 + db -1 ; end + + +fly_warp: MACRO + event_displacement \1_WIDTH, \2, \3 + db ((\3) & $01) ;sub-block Y + db ((\2) & $01) ;sub-block X +ENDM + +DungeonWarpData: + fly_warp SEAFOAM_ISLANDS_B1F, 18, 7 + fly_warp SEAFOAM_ISLANDS_B1F, 23, 7 + fly_warp SEAFOAM_ISLANDS_B2F, 19, 7 + fly_warp SEAFOAM_ISLANDS_B2F, 22, 7 + fly_warp SEAFOAM_ISLANDS_B3F, 18, 7 + fly_warp SEAFOAM_ISLANDS_B3F, 19, 7 + fly_warp SEAFOAM_ISLANDS_B4F, 4, 14 + fly_warp SEAFOAM_ISLANDS_B4F, 5, 14 + fly_warp VICTORY_ROAD_2F, 22, 16 + fly_warp POKEMON_MANSION_1F, 16, 14 + fly_warp POKEMON_MANSION_1F, 16, 14 + fly_warp POKEMON_MANSION_2F, 18, 14 + + +special_warp_spec: MACRO + db \1 + fly_warp \1, \2, \3 + db \4 +ENDM + +FirstMapSpec: + special_warp_spec REDS_HOUSE_2F, 3, 6, REDS_HOUSE_2 +TradeCenterSpec1: + special_warp_spec TRADE_CENTER, 3, 4, CLUB +TradeCenterSpec2: + special_warp_spec TRADE_CENTER, 6, 4, CLUB +ColosseumSpec1: + special_warp_spec COLOSSEUM, 3, 4, CLUB +ColosseumSpec2: + special_warp_spec COLOSSEUM, 6, 4, CLUB + + +fly_warp_spec: MACRO + db \1, 0 + dw \2 +ENDM + +FlyWarpDataPtr: + fly_warp_spec PALLET_TOWN, .PalletTown + fly_warp_spec VIRIDIAN_CITY, .ViridianCity + fly_warp_spec PEWTER_CITY, .PewterCity + fly_warp_spec CERULEAN_CITY, .CeruleanCity + fly_warp_spec LAVENDER_TOWN, .LavenderTown + fly_warp_spec VERMILION_CITY, .VermilionCity + fly_warp_spec CELADON_CITY, .CeladonCity + fly_warp_spec FUCHSIA_CITY, .FuchsiaCity + fly_warp_spec CINNABAR_ISLAND, .CinnabarIsland + fly_warp_spec INDIGO_PLATEAU, .IndigoPlateau + fly_warp_spec SAFFRON_CITY, .SaffronCity + fly_warp_spec ROUTE_4, .Route4 + fly_warp_spec ROUTE_10, .Route10 + +.PalletTown: fly_warp PALLET_TOWN, 5, 6 +.ViridianCity: fly_warp VIRIDIAN_CITY, 23, 26 +.PewterCity: fly_warp PEWTER_CITY, 13, 26 +.CeruleanCity: fly_warp CERULEAN_CITY, 19, 18 +.LavenderTown: fly_warp LAVENDER_TOWN, 3, 6 +.VermilionCity: fly_warp VERMILION_CITY, 11, 4 +.CeladonCity: fly_warp CELADON_CITY, 41, 10 +.FuchsiaCity: fly_warp FUCHSIA_CITY, 19, 28 +.CinnabarIsland: fly_warp CINNABAR_ISLAND, 11, 12 +.IndigoPlateau: fly_warp INDIGO_PLATEAU, 9, 6 +.SaffronCity: fly_warp SAFFRON_CITY, 9, 30 +.Route4: fly_warp ROUTE_4, 11, 6 +.Route10: fly_warp ROUTE_10, 11, 20 diff --git a/data/maps/sprite_sets.asm b/data/maps/sprite_sets.asm new file mode 100755 index 000000000..cce86d1a4 --- /dev/null +++ b/data/maps/sprite_sets.asm @@ -0,0 +1,191 @@ +MapSpriteSets: + db $01 ; PALLET_TOWN + db $01 ; VIRIDIAN_CITY + db $02 ; PEWTER_CITY + db $02 ; CERULEAN_CITY + db $03 ; LAVENDER_TOWN + db $04 ; VERMILION_CITY + db $05 ; CELADON_CITY + db $0a ; FUCHSIA_CITY + db $01 ; CINNABAR_ISLAND + db $06 ; INDIGO_PLATEAU + db $07 ; SAFFRON_CITY + db $01 ; unused map ID + db $01 ; ROUTE_1 + db $f1 ; ROUTE_2 + db $02 ; ROUTE_3 + db $02 ; ROUTE_4 + db $f9 ; ROUTE_5 + db $fa ; ROUTE_6 + db $fb ; ROUTE_7 + db $fc ; ROUTE_8 + db $02 ; ROUTE_9 + db $f2 ; ROUTE_10 + db $f3 ; ROUTE_11 + db $f4 ; ROUTE_12 + db $08 ; ROUTE_13 + db $08 ; ROUTE_14 + db $f5 ; ROUTE_15 + db $f6 ; ROUTE_16 + db $09 ; ROUTE_17 + db $f7 ; ROUTE_18 + db $0a ; ROUTE_19 + db $f8 ; ROUTE_20 + db $01 ; ROUTE_21 + db $01 ; ROUTE_22 + db $06 ; ROUTE_23 + db $02 ; ROUTE_24 + db $02 ; ROUTE_25 + +EAST_WEST EQU 1 +NORTH_SOUTH EQU 2 + +; Format: +; 00: determines whether the map is split EAST_WEST or NORTH_SOUTH +; 01: coordinate of dividing line +; 02: sprite set ID if in the West or North side +; 03: sprite set ID if in the East or South side +SplitMapSpriteSets: + db NORTH_SOUTH, 37, $02, $01 ; $f1 + db NORTH_SOUTH, 50, $02, $03 ; $f2 + db EAST_WEST, 57, $04, $08 ; $f3 + db NORTH_SOUTH, 21, $03, $08 ; $f4 + db EAST_WEST, 8, $0A, $08 ; $f5 + db EAST_WEST, 24, $09, $05 ; $f6 + db EAST_WEST, 34, $09, $0A ; $f7 + db EAST_WEST, 53, $01, $0A ; $f8 + db NORTH_SOUTH, 33, $02, $07 ; $f9 + db NORTH_SOUTH, 2, $07, $04 ; $fa + db EAST_WEST, 17, $05, $07 ; $fb + db EAST_WEST, 3, $07, $03 ; $fc + +SpriteSets: +; sprite set $01 + db SPRITE_PIKACHU + db SPRITE_BLUE + db SPRITE_YOUNGSTER + db SPRITE_GIRL + db SPRITE_FISHER + db SPRITE_COOLTRAINER_M + db SPRITE_GAMBLER + db SPRITE_OAK + db SPRITE_SWIMMER + db SPRITE_POKE_BALL + db SPRITE_GAMBLER_ASLEEP + +; sprite set $02 + db SPRITE_PIKACHU + db SPRITE_YOUNGSTER + db SPRITE_ROCKET + db SPRITE_SUPER_NERD + db SPRITE_HIKER + db SPRITE_BLUE + db SPRITE_OFFICER_JENNY + db SPRITE_COOLTRAINER_F + db SPRITE_COOLTRAINER_M + db SPRITE_POKE_BALL + db SPRITE_UNUSED_GAMBLER_ASLEEP_2 + +; sprite set $03 + db SPRITE_PIKACHU + db SPRITE_LITTLE_GIRL + db SPRITE_GIRL + db SPRITE_SUPER_NERD + db SPRITE_HIKER + db SPRITE_GAMBLER + db SPRITE_MONSTER + db SPRITE_COOLTRAINER_F + db SPRITE_COOLTRAINER_M + db SPRITE_POKE_BALL + db SPRITE_UNUSED_GAMBLER_ASLEEP_2 + +; sprite set $04 + db SPRITE_PIKACHU + db SPRITE_OFFICER_JENNY + db SPRITE_SUPER_NERD + db SPRITE_YOUNGSTER + db SPRITE_GAMBLER + db SPRITE_MONSTER + db SPRITE_SAILOR + db SPRITE_COOLTRAINER_F + db SPRITE_COOLTRAINER_M + db SPRITE_POKE_BALL + db SPRITE_UNUSED_GAMBLER_ASLEEP_2 + +; sprite set $05 + db SPRITE_PIKACHU + db SPRITE_LITTLE_GIRL + db SPRITE_LITTLE_BOY + db SPRITE_GIRL + db SPRITE_FISHER + db SPRITE_MIDDLE_AGED_MAN + db SPRITE_GRAMPS + db SPRITE_MONSTER + db SPRITE_ROCKET + db SPRITE_POKE_BALL + db SPRITE_SNORLAX + +; sprite set $06 + db SPRITE_PIKACHU + db SPRITE_GYM_GUIDE + db SPRITE_MONSTER + db SPRITE_BLUE + db SPRITE_COOLTRAINER_F + db SPRITE_COOLTRAINER_M + db SPRITE_SWIMMER + db SPRITE_GUARD + db SPRITE_GAMBLER + db SPRITE_POKE_BALL + db SPRITE_UNUSED_GAMBLER_ASLEEP_2 + +; sprite set $07 + db SPRITE_PIKACHU + db SPRITE_ROCKET + db SPRITE_SCIENTIST + db SPRITE_SILPH_WORKER + db SPRITE_ERIKA + db SPRITE_GENTLEMAN + db SPRITE_BIRD + db SPRITE_ROCKER + db SPRITE_COOLTRAINER_M + db SPRITE_POKE_BALL + db SPRITE_UNUSED_GAMBLER_ASLEEP_2 + +; sprite set $08 + db SPRITE_PIKACHU + db SPRITE_BIKER + db SPRITE_SUPER_NERD + db SPRITE_MIDDLE_AGED_MAN + db SPRITE_COOLTRAINER_F + db SPRITE_COOLTRAINER_M + db SPRITE_BEAUTY + db SPRITE_FISHER + db SPRITE_ROCKER + db SPRITE_POKE_BALL + db SPRITE_SNORLAX + +; sprite set $09 + db SPRITE_PIKACHU + db SPRITE_BIKER + db SPRITE_COOLTRAINER_M + db SPRITE_SILPH_WORKER + db SPRITE_FISHER + db SPRITE_ROCKER + db SPRITE_HIKER + db SPRITE_GAMBLER + db SPRITE_MIDDLE_AGED_MAN + db SPRITE_POKE_BALL + db SPRITE_SNORLAX + +; sprite set $0a + db SPRITE_PIKACHU + db SPRITE_COOLTRAINER_M + db SPRITE_CHANSEY + db SPRITE_FISHER + db SPRITE_GAMBLER + db SPRITE_MONSTER + db SPRITE_SEEL + db SPRITE_SWIMMER + db SPRITE_YOUNGSTER + db SPRITE_POKE_BALL + db SPRITE_FOSSIL diff --git a/data/maps/town_map_entries.asm b/data/maps/town_map_entries.asm new file mode 100755 index 000000000..6e7545586 --- /dev/null +++ b/data/maps/town_map_entries.asm @@ -0,0 +1,118 @@ +external_map: MACRO + dn \2, \1 + dw \3 +ENDM + +; the appearance of towns and routes in the town map +ExternalMapEntries: + ; x, y, name + external_map 2, 11, PalletTownName + external_map 2, 8, ViridianCityName + external_map 2, 3, PewterCityName + external_map 10, 2, CeruleanCityName + external_map 14, 5, LavenderTownName + external_map 10, 9, VermilionCityName + external_map 7, 5, CeladonCityName + external_map 8, 13, FuchsiaCityName + external_map 2, 15, CinnabarIslandName + external_map 0, 2, IndigoPlateauName + external_map 10, 5, SaffronCityName + external_map 0, 0, PalletTownName ; unused + external_map 2, 10, Route1Name + external_map 2, 6, Route2Name + external_map 4, 3, Route3Name + external_map 8, 2, Route4Name + external_map 10, 3, Route5Name + external_map 10, 8, Route6Name + external_map 8, 5, Route7Name + external_map 13, 5, Route8Name + external_map 13, 2, Route9Name + external_map 14, 4, Route10Name + external_map 12, 9, Route11Name + external_map 14, 9, Route12Name + external_map 13, 11, Route13Name + external_map 11, 12, Route14Name + external_map 10, 13, Route15Name + external_map 5, 5, Route16Name + external_map 4, 8, Route17Name + external_map 6, 13, Route18Name + external_map 6, 15, Route19Name + external_map 4, 15, Route20Name + external_map 2, 13, Route21Name + external_map 0, 8, Route22Name + external_map 0, 6, Route23Name + external_map 10, 1, Route24Name + external_map 11, 0, Route25Name + + +internal_map: MACRO + db \1 + 1 + dn \3, \2 + dw \4 +ENDM + +; the appearance of buildings and dungeons in the town map +InternalMapEntries: + ; maximum map id subject to this rule, x, y, name + internal_map OAKS_LAB, 2, 11, PalletTownName + internal_map VIRIDIAN_GYM, 2, 8, ViridianCityName + internal_map VIRIDIAN_FOREST_SOUTH_GATE, 2, 6, Route2Name + internal_map VIRIDIAN_FOREST, 2, 4, ViridianForestName + internal_map PEWTER_POKECENTER, 2, 3, PewterCityName + internal_map MT_MOON_B2F, 6, 2, MountMoonName + internal_map CERULEAN_MART, 10, 2, CeruleanCityName + internal_map MT_MOON_POKECENTER, 5, 2, Route4Name + internal_map CERULEAN_TRASHED_HOUSE_COPY, 10, 2, CeruleanCityName + internal_map DAYCARE, 10, 4, Route5Name + internal_map UNDERGROUND_PATH_ROUTE_6_COPY, 10, 6, Route6Name + internal_map UNDERGROUND_PATH_ROUTE_7_COPY, 9, 5, Route7Name + internal_map UNDERGROUND_PATH_ROUTE_8, 11, 5, Route8Name + internal_map ROCK_TUNNEL_1F, 14, 3, RockTunnelName + internal_map POWER_PLANT, 15, 4, PowerPlantName + internal_map ROUTE_11_GATE_2F, 13, 9, Route11Name + internal_map ROUTE_12_GATE_1F, 14, 7, Route12Name + internal_map BILLS_HOUSE, 12, 0, SeaCottageName + internal_map VERMILION_DOCK, 10, 9, VermilionCityName + internal_map SS_ANNE_B1F_ROOMS, 9, 10, SSAnneName + internal_map VICTORY_ROAD_1F, 0, 4, VictoryRoadName + internal_map HALL_OF_FAME, 0, 2, PokemonLeagueName + internal_map UNDERGROUND_PATH_NORTH_SOUTH, 10, 5, UndergroundPathName + internal_map CHAMPIONS_ROOM, 0, 2, PokemonLeagueName + internal_map UNDERGROUND_PATH_WEST_EAST, 10, 5, UndergroundPathName + internal_map CELADON_HOTEL, 7, 5, CeladonCityName + internal_map LAVENDER_POKECENTER, 14, 5, LavenderTownName + internal_map POKEMON_TOWER_7F, 15, 5, PokemonTowerName + internal_map LAVENDER_CUBONE_HOUSE, 14, 5, LavenderTownName + internal_map WARDENS_HOUSE, 8, 13, FuchsiaCityName + internal_map SAFARI_ZONE_GATE, 8, 12, SafariZoneName + internal_map FUCHSIA_MEETING_ROOM, 8, 13, FuchsiaCityName + internal_map SEAFOAM_ISLANDS_B4F, 5, 15, SeafoamIslandsName + internal_map VERMILION_OLD_ROD_HOUSE, 10, 9, VermilionCityName + internal_map FUCHSIA_GOOD_ROD_HOUSE, 8, 13, FuchsiaCityName + internal_map POKEMON_MANSION_1F, 2, 15, PokemonMansionName + internal_map CINNABAR_MART_COPY, 2, 15, CinnabarIslandName + internal_map INDIGO_PLATEAU_LOBBY, 0, 2, IndigoPlateauName + internal_map MR_PSYCHICS_HOUSE, 10, 5, SaffronCityName + internal_map ROUTE_15_GATE_2F, 9, 13, Route15Name + internal_map ROUTE_16_FLY_HOUSE, 4, 5, Route16Name + internal_map ROUTE_12_SUPER_ROD_HOUSE, 14, 10, Route12Name + internal_map ROUTE_18_GATE_2F, 7, 13, Route18Name + internal_map SEAFOAM_ISLANDS_1F, 5, 15, SeafoamIslandsName + internal_map ROUTE_22_GATE, 0, 7, Route22Name + internal_map VICTORY_ROAD_2F, 0, 4, VictoryRoadName + internal_map ROUTE_12_GATE_2F, 14, 7, Route12Name + internal_map VERMILION_TRADE_HOUSE, 10, 9, VermilionCityName + internal_map DIGLETTS_CAVE, 3, 4, DiglettsCaveName + internal_map VICTORY_ROAD_3F, 0, 4, VictoryRoadName + internal_map UNUSED_MAP_CE, 7, 5, RocketHQName + internal_map SILPH_CO_8F, 10, 5, SilphCoName + internal_map POKEMON_MANSION_B1F, 2, 15, PokemonMansionName + internal_map SAFARI_ZONE_NORTH_REST_HOUSE, 8, 12, SafariZoneName + internal_map CERULEAN_CAVE_1F, 9, 1, CeruleanCaveName + internal_map NAME_RATERS_HOUSE, 14, 5, LavenderTownName + internal_map CERULEAN_BADGE_HOUSE, 10, 2, CeruleanCityName + internal_map ROCK_TUNNEL_B1F, 14, 3, RockTunnelName + internal_map SILPH_CO_ELEVATOR, 10, 5, SilphCoName + internal_map AGATHAS_ROOM, 0, 2, PokemonLeagueName + internal_map BEACH_HOUSE, 6, 15, Route19Name + db -1 ; end diff --git a/data/town_map_order.asm b/data/maps/town_map_order.asm similarity index 100% rename from data/town_map_order.asm rename to data/maps/town_map_order.asm diff --git a/data/mart_inventories.asm b/data/mart_inventories.asm deleted file mode 100755 index b821f4d7a..000000000 --- a/data/mart_inventories.asm +++ /dev/null @@ -1,64 +0,0 @@ -; mart inventories are below -; they are texts - -; Viridian -ViridianCashierText:: - TX_MART POKE_BALL,POTION,ANTIDOTE,PARLYZ_HEAL,BURN_HEAL - -; Pewter -PewterCashierText:: - TX_MART POKE_BALL,POTION,ESCAPE_ROPE,ANTIDOTE,BURN_HEAL,AWAKENING,PARLYZ_HEAL - -; Cerulean -CeruleanCashierText:: - TX_MART POKE_BALL,POTION,ESCAPE_ROPE,REPEL,ANTIDOTE,BURN_HEAL,AWAKENING,PARLYZ_HEAL - -; Bike shop - TX_MART BICYCLE - -; Vermilion -VermilionCashierText:: - TX_MART POKE_BALL,SUPER_POTION,ICE_HEAL,AWAKENING,PARLYZ_HEAL,REPEL - -; Lavender -LavenderCashierText:: - TX_MART GREAT_BALL,SUPER_POTION,REVIVE,ESCAPE_ROPE,SUPER_REPEL,ANTIDOTE,BURN_HEAL,ICE_HEAL,PARLYZ_HEAL - -; Celadon Dept. Store 2F (1) -CeladonMart2Clerk1Text:: - TX_MART GREAT_BALL,SUPER_POTION,REVIVE,SUPER_REPEL,ANTIDOTE,BURN_HEAL,ICE_HEAL,AWAKENING,PARLYZ_HEAL - -; Celadon Dept. Store 2F (2) -CeladonMart2Clerk2Text:: - TX_MART TM_32,TM_33,TM_02,TM_07,TM_37,TM_01,TM_05,TM_09,TM_17 - -; Celadon Dept. Store 4F -CeladonMart4ClerkText:: - TX_MART POKE_DOLL,FIRE_STONE,THUNDER_STONE,WATER_STONE,LEAF_STONE - -; Celadon Dept. Store 5F (1) -CeladonMart5Clerk1Text:: - TX_MART X_ACCURACY,GUARD_SPEC,DIRE_HIT,X_ATTACK,X_DEFEND,X_SPEED,X_SPECIAL - -; Celadon Dept. Store 5F (2) -CeladonMart5Clerk2Text:: - TX_MART HP_UP,PROTEIN,IRON,CARBOS,CALCIUM - -; Fuchsia -FuchsiaCashierText:: - TX_MART ULTRA_BALL,GREAT_BALL,HYPER_POTION,REVIVE,FULL_HEAL,SUPER_REPEL - -; unused? - TX_MART GREAT_BALL,HYPER_POTION,SUPER_POTION,FULL_HEAL,REVIVE - -; Cinnabar -CinnabarCashierText:: - TX_MART ULTRA_BALL,GREAT_BALL,HYPER_POTION,MAX_REPEL,ESCAPE_ROPE,FULL_HEAL,REVIVE - -; Saffron -SaffronCashierText:: - TX_MART GREAT_BALL,HYPER_POTION,MAX_REPEL,ESCAPE_ROPE,FULL_HEAL,REVIVE - -; Indigo -IndigoCashierText:: - TX_MART ULTRA_BALL,GREAT_BALL,FULL_RESTORE,MAX_POTION,FULL_HEAL,REVIVE,MAX_REPEL diff --git a/data/mon_party_sprites.asm b/data/mon_party_sprites.asm deleted file mode 100755 index b94fa0d34..000000000 --- a/data/mon_party_sprites.asm +++ /dev/null @@ -1,77 +0,0 @@ -MonPartyData: - dn SPRITE_GRASS, SPRITE_GRASS ;Bulbasaur/Ivysaur - dn SPRITE_GRASS, SPRITE_MON ;Venusaur/Charmander - dn SPRITE_MON, SPRITE_MON ;Charmeleon/Charizard - dn SPRITE_WATER, SPRITE_WATER ;Squirtle/Wartortle - dn SPRITE_WATER, SPRITE_BUG ;Blastoise/Caterpie - dn SPRITE_BUG, SPRITE_BUG ;Metapod/Butterfree - dn SPRITE_BUG, SPRITE_BUG ;Weedle/Kakuna - dn SPRITE_BUG, SPRITE_BIRD_M ;Beedrill/Pidgey - dn SPRITE_BIRD_M, SPRITE_BIRD_M ;Pidgeotto/Pidgeot - dn SPRITE_QUADRUPED, SPRITE_QUADRUPED ;Rattata/Raticate - dn SPRITE_BIRD_M, SPRITE_BIRD_M ;Spearow/Fearow - dn SPRITE_SNAKE, SPRITE_SNAKE ;Ekans/Arbok - dn SPRITE_PIKACHU_FAMILY, SPRITE_PIKACHU_FAMILY ;Pikachu/Raichu - dn SPRITE_MON, SPRITE_MON ;Sandshrew/Sandslash - dn SPRITE_MON, SPRITE_MON ;NidoranF/Nidorina - dn SPRITE_MON, SPRITE_MON ;Nidoqueen/NidoranM - dn SPRITE_MON, SPRITE_MON ;Nidorino/Nidoking - dn SPRITE_FAIRY, SPRITE_FAIRY ;Clefairy/Clefable - dn SPRITE_QUADRUPED, SPRITE_QUADRUPED ;Vulpix/Ninetales - dn SPRITE_FAIRY, SPRITE_FAIRY ;Jigglypuff/Wigglytuff - dn SPRITE_MON, SPRITE_MON ;Zubat/Golbat - dn SPRITE_GRASS, SPRITE_GRASS ;Oddish/Gloom - dn SPRITE_GRASS, SPRITE_BUG ;Vileplume/Paras - dn SPRITE_BUG, SPRITE_BUG ;Parasect/Venonat - dn SPRITE_BUG, SPRITE_MON ;Venomoth/Diglett - dn SPRITE_MON, SPRITE_MON ;Dugtrio/Meowth - dn SPRITE_MON, SPRITE_MON ;Persian/Psyduck - dn SPRITE_MON, SPRITE_MON ;Golduck/Mankey - dn SPRITE_MON, SPRITE_QUADRUPED ;Primeape/Growlithe - dn SPRITE_QUADRUPED, SPRITE_MON ;Arcanine/Poliwag - dn SPRITE_MON, SPRITE_MON ;Poliwhirl/Poliwrath - dn SPRITE_MON, SPRITE_MON ;Abra/Kadabra - dn SPRITE_MON, SPRITE_MON ;Alakazam/Machop - dn SPRITE_MON, SPRITE_MON ;Machoke/Machamp - dn SPRITE_GRASS, SPRITE_GRASS ;Bellsprout/Weepinbell - dn SPRITE_GRASS, SPRITE_WATER ;Victreebel/Tentacool - dn SPRITE_WATER, SPRITE_MON ;Tentacruel/Geodude - dn SPRITE_MON, SPRITE_MON ;Graveler/Golem - dn SPRITE_QUADRUPED, SPRITE_QUADRUPED ;Ponyta/Rapidash - dn SPRITE_QUADRUPED, SPRITE_MON ;Slowpoke/Slowbro - dn SPRITE_BALL_M, SPRITE_BALL_M ;Magnemite/Magneton - dn SPRITE_BIRD_M, SPRITE_BIRD_M ;Farfetch'd/Doduo - dn SPRITE_BIRD_M, SPRITE_WATER ;Dodrio/Seel - dn SPRITE_WATER, SPRITE_MON ;Dewgong/Grimer - dn SPRITE_MON, SPRITE_HELIX ;Muk/Shellder - dn SPRITE_HELIX, SPRITE_MON ;Cloyster/Gastly - dn SPRITE_MON, SPRITE_MON ;Haunter/Gengar - dn SPRITE_SNAKE, SPRITE_MON ;Onix/Drowzee - dn SPRITE_MON, SPRITE_WATER ;Hypno/Krabby - dn SPRITE_WATER, SPRITE_BALL_M ;Kingler/Voltorb - dn SPRITE_BALL_M, SPRITE_GRASS ;Electrode/Exeggcute - dn SPRITE_GRASS, SPRITE_MON ;Exeggutor/Cubone - dn SPRITE_MON, SPRITE_MON ;Marowak/Hitmonlee - dn SPRITE_MON, SPRITE_MON ;Hitmonchan/Lickitung - dn SPRITE_MON, SPRITE_MON ;Koffing/Weezing - dn SPRITE_QUADRUPED, SPRITE_MON ;Rhyhorn/Rhydon - dn SPRITE_FAIRY, SPRITE_GRASS ;Chansey/Tangela - dn SPRITE_MON, SPRITE_WATER ;Kangaskhan/Horsea - dn SPRITE_WATER, SPRITE_WATER ;Seadra/Goldeen - dn SPRITE_WATER, SPRITE_HELIX ;Seaking/Staryu - dn SPRITE_HELIX, SPRITE_MON ;Starmie/Mr.Mime - dn SPRITE_BUG, SPRITE_MON ;Scyther/Jynx - dn SPRITE_MON, SPRITE_MON ;Electabuzz/Magmar - dn SPRITE_BUG, SPRITE_QUADRUPED ;Pinsir/Tauros - dn SPRITE_WATER, SPRITE_SNAKE ;Magikarp/Gyarados - dn SPRITE_WATER, SPRITE_MON ;Lapras/Ditto - dn SPRITE_QUADRUPED, SPRITE_QUADRUPED ;Eevee/Vaporeon - dn SPRITE_QUADRUPED, SPRITE_QUADRUPED ;Jolteon/Flareon - dn SPRITE_MON, SPRITE_HELIX ;Porygon/Omanyte - dn SPRITE_HELIX, SPRITE_HELIX ;Omastar/Kabuto - dn SPRITE_HELIX, SPRITE_BIRD_M ;Kabutops/Aerodactyl - dn SPRITE_MON, SPRITE_BIRD_M ;Snorlax/Articuno - dn SPRITE_BIRD_M, SPRITE_BIRD_M ;Zapdos/Moltres - dn SPRITE_SNAKE, SPRITE_SNAKE ;Dratini/Dragonair - dn SPRITE_SNAKE, SPRITE_MON ;Dragonite/Mewtwo - dn SPRITE_MON, 0 ;Mew/Padding diff --git a/data/moves.asm b/data/moves.asm deleted file mode 100755 index 448596819..000000000 --- a/data/moves.asm +++ /dev/null @@ -1,178 +0,0 @@ -Moves: -; Characteristics of each move. - -move: macro - db \1 ; animation (interchangeable with move id) - db \2 ; effect - db \3 ; power - db \4 ; type - db \5 percent ; accuracy - db \6 ; pp -endm - - move POUND, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35 -MoveEnd: - move KARATE_CHOP, NO_ADDITIONAL_EFFECT, 50, NORMAL, 100, 25 - move DOUBLESLAP, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 10 - move COMET_PUNCH, TWO_TO_FIVE_ATTACKS_EFFECT, 18, NORMAL, 85, 15 - move MEGA_PUNCH, NO_ADDITIONAL_EFFECT, 80, NORMAL, 85, 20 - move PAY_DAY, PAY_DAY_EFFECT, 40, NORMAL, 100, 20 - move FIRE_PUNCH, BURN_SIDE_EFFECT1, 75, FIRE, 100, 15 - move ICE_PUNCH, FREEZE_SIDE_EFFECT, 75, ICE, 100, 15 - move THUNDERPUNCH, PARALYZE_SIDE_EFFECT1, 75, ELECTRIC, 100, 15 - move SCRATCH, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35 - move VICEGRIP, NO_ADDITIONAL_EFFECT, 55, NORMAL, 100, 30 - move GUILLOTINE, OHKO_EFFECT, 1, NORMAL, 30, 5 - move RAZOR_WIND, CHARGE_EFFECT, 80, NORMAL, 75, 10 - move SWORDS_DANCE, ATTACK_UP2_EFFECT, 0, NORMAL, 100, 30 - move CUT, NO_ADDITIONAL_EFFECT, 50, NORMAL, 95, 30 - move GUST, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35 - move WING_ATTACK, NO_ADDITIONAL_EFFECT, 35, FLYING, 100, 35 - move WHIRLWIND, SWITCH_AND_TELEPORT_EFFECT, 0, NORMAL, 85, 20 - move FLY, FLY_EFFECT, 70, FLYING, 95, 15 - move BIND, TRAPPING_EFFECT, 15, NORMAL, 75, 20 - move SLAM, NO_ADDITIONAL_EFFECT, 80, NORMAL, 75, 20 - move VINE_WHIP, NO_ADDITIONAL_EFFECT, 35, GRASS, 100, 10 - move STOMP, FLINCH_SIDE_EFFECT2, 65, NORMAL, 100, 20 - move DOUBLE_KICK, ATTACK_TWICE_EFFECT, 30, FIGHTING, 100, 30 - move MEGA_KICK, NO_ADDITIONAL_EFFECT, 120, NORMAL, 75, 5 - move JUMP_KICK, JUMP_KICK_EFFECT, 70, FIGHTING, 95, 25 - move ROLLING_KICK, FLINCH_SIDE_EFFECT2, 60, FIGHTING, 85, 15 - move SAND_ATTACK, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 100, 15 - move HEADBUTT, FLINCH_SIDE_EFFECT2, 70, NORMAL, 100, 15 - move HORN_ATTACK, NO_ADDITIONAL_EFFECT, 65, NORMAL, 100, 25 - move FURY_ATTACK, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 20 - move HORN_DRILL, OHKO_EFFECT, 1, NORMAL, 30, 5 - move TACKLE, NO_ADDITIONAL_EFFECT, 35, NORMAL, 95, 35 - move BODY_SLAM, PARALYZE_SIDE_EFFECT2, 85, NORMAL, 100, 15 - move WRAP, TRAPPING_EFFECT, 15, NORMAL, 85, 20 - move TAKE_DOWN, RECOIL_EFFECT, 90, NORMAL, 85, 20 - move THRASH, THRASH_PETAL_DANCE_EFFECT, 90, NORMAL, 100, 20 - move DOUBLE_EDGE, RECOIL_EFFECT, 100, NORMAL, 100, 15 - move TAIL_WHIP, DEFENSE_DOWN1_EFFECT, 0, NORMAL, 100, 30 - move POISON_STING, POISON_SIDE_EFFECT1, 15, POISON, 100, 35 - move TWINEEDLE, TWINEEDLE_EFFECT, 25, BUG, 100, 20 - move PIN_MISSILE, TWO_TO_FIVE_ATTACKS_EFFECT, 14, BUG, 85, 20 - move LEER, DEFENSE_DOWN1_EFFECT, 0, NORMAL, 100, 30 - move BITE, FLINCH_SIDE_EFFECT1, 60, NORMAL, 100, 25 - move GROWL, ATTACK_DOWN1_EFFECT, 0, NORMAL, 100, 40 - move ROAR, SWITCH_AND_TELEPORT_EFFECT, 0, NORMAL, 100, 20 - move SING, SLEEP_EFFECT, 0, NORMAL, 55, 15 - move SUPERSONIC, CONFUSION_EFFECT, 0, NORMAL, 55, 20 - move SONICBOOM, SPECIAL_DAMAGE_EFFECT, 1, NORMAL, 90, 20 - move DISABLE, DISABLE_EFFECT, 0, NORMAL, 55, 20 - move ACID, DEFENSE_DOWN_SIDE_EFFECT, 40, POISON, 100, 30 - move EMBER, BURN_SIDE_EFFECT1, 40, FIRE, 100, 25 - move FLAMETHROWER, BURN_SIDE_EFFECT1, 95, FIRE, 100, 15 - move MIST, MIST_EFFECT, 0, ICE, 100, 30 - move WATER_GUN, NO_ADDITIONAL_EFFECT, 40, WATER, 100, 25 - move HYDRO_PUMP, NO_ADDITIONAL_EFFECT, 120, WATER, 80, 5 - move SURF, NO_ADDITIONAL_EFFECT, 95, WATER, 100, 15 - move ICE_BEAM, FREEZE_SIDE_EFFECT, 95, ICE, 100, 10 - move BLIZZARD, FREEZE_SIDE_EFFECT, 120, ICE, 90, 5 - move PSYBEAM, CONFUSION_SIDE_EFFECT, 65, PSYCHIC, 100, 20 - move BUBBLEBEAM, SPEED_DOWN_SIDE_EFFECT, 65, WATER, 100, 20 - move AURORA_BEAM, ATTACK_DOWN_SIDE_EFFECT, 65, ICE, 100, 20 - move HYPER_BEAM, HYPER_BEAM_EFFECT, 150, NORMAL, 90, 5 - move PECK, NO_ADDITIONAL_EFFECT, 35, FLYING, 100, 35 - move DRILL_PECK, NO_ADDITIONAL_EFFECT, 80, FLYING, 100, 20 - move SUBMISSION, RECOIL_EFFECT, 80, FIGHTING, 80, 25 - move LOW_KICK, FLINCH_SIDE_EFFECT2, 50, FIGHTING, 90, 20 - move COUNTER, NO_ADDITIONAL_EFFECT, 1, FIGHTING, 100, 20 - move SEISMIC_TOSS, SPECIAL_DAMAGE_EFFECT, 1, FIGHTING, 100, 20 - move STRENGTH, NO_ADDITIONAL_EFFECT, 80, NORMAL, 100, 15 - move ABSORB, DRAIN_HP_EFFECT, 20, GRASS, 100, 20 - move MEGA_DRAIN, DRAIN_HP_EFFECT, 40, GRASS, 100, 10 - move LEECH_SEED, LEECH_SEED_EFFECT, 0, GRASS, 90, 10 - move GROWTH, SPECIAL_UP1_EFFECT, 0, NORMAL, 100, 40 - move RAZOR_LEAF, NO_ADDITIONAL_EFFECT, 55, GRASS, 95, 25 - move SOLARBEAM, CHARGE_EFFECT, 120, GRASS, 100, 10 - move POISONPOWDER, POISON_EFFECT, 0, POISON, 75, 35 - move STUN_SPORE, PARALYZE_EFFECT, 0, GRASS, 75, 30 - move SLEEP_POWDER, SLEEP_EFFECT, 0, GRASS, 75, 15 - move PETAL_DANCE, THRASH_PETAL_DANCE_EFFECT, 70, GRASS, 100, 20 - move STRING_SHOT, SPEED_DOWN1_EFFECT, 0, BUG, 95, 40 - move DRAGON_RAGE, SPECIAL_DAMAGE_EFFECT, 1, DRAGON, 100, 10 - move FIRE_SPIN, TRAPPING_EFFECT, 15, FIRE, 70, 15 - move THUNDERSHOCK, PARALYZE_SIDE_EFFECT1, 40, ELECTRIC, 100, 30 - move THUNDERBOLT, PARALYZE_SIDE_EFFECT1, 95, ELECTRIC, 100, 15 - move THUNDER_WAVE, PARALYZE_EFFECT, 0, ELECTRIC, 100, 20 - move THUNDER, PARALYZE_SIDE_EFFECT1, 120, ELECTRIC, 70, 10 - move ROCK_THROW, NO_ADDITIONAL_EFFECT, 50, ROCK, 65, 15 - move EARTHQUAKE, NO_ADDITIONAL_EFFECT, 100, GROUND, 100, 10 - move FISSURE, OHKO_EFFECT, 1, GROUND, 30, 5 - move DIG, CHARGE_EFFECT, 100, GROUND, 100, 10 - move TOXIC, POISON_EFFECT, 0, POISON, 85, 10 - move CONFUSION, CONFUSION_SIDE_EFFECT, 50, PSYCHIC, 100, 25 - move PSYCHIC_M, SPECIAL_DOWN_SIDE_EFFECT, 90, PSYCHIC, 100, 10 - move HYPNOSIS, SLEEP_EFFECT, 0, PSYCHIC, 60, 20 - move MEDITATE, ATTACK_UP1_EFFECT, 0, PSYCHIC, 100, 40 - move AGILITY, SPEED_UP2_EFFECT, 0, PSYCHIC, 100, 30 - move QUICK_ATTACK, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 30 - move RAGE, RAGE_EFFECT, 20, NORMAL, 100, 20 - move TELEPORT, SWITCH_AND_TELEPORT_EFFECT, 0, PSYCHIC, 100, 20 - move NIGHT_SHADE, SPECIAL_DAMAGE_EFFECT, 0, GHOST, 100, 15 - move MIMIC, MIMIC_EFFECT, 0, NORMAL, 100, 10 - move SCREECH, DEFENSE_DOWN2_EFFECT, 0, NORMAL, 85, 40 - move DOUBLE_TEAM, EVASION_UP1_EFFECT, 0, NORMAL, 100, 15 - move RECOVER, HEAL_EFFECT, 0, NORMAL, 100, 20 - move HARDEN, DEFENSE_UP1_EFFECT, 0, NORMAL, 100, 30 - move MINIMIZE, EVASION_UP1_EFFECT, 0, NORMAL, 100, 20 - move SMOKESCREEN, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 100, 20 - move CONFUSE_RAY, CONFUSION_EFFECT, 0, GHOST, 100, 10 - move WITHDRAW, DEFENSE_UP1_EFFECT, 0, WATER, 100, 40 - move DEFENSE_CURL, DEFENSE_UP1_EFFECT, 0, NORMAL, 100, 40 - move BARRIER, DEFENSE_UP2_EFFECT, 0, PSYCHIC, 100, 30 - move LIGHT_SCREEN, LIGHT_SCREEN_EFFECT, 0, PSYCHIC, 100, 30 - move HAZE, HAZE_EFFECT, 0, ICE, 100, 30 - move REFLECT, REFLECT_EFFECT, 0, PSYCHIC, 100, 20 - move FOCUS_ENERGY, FOCUS_ENERGY_EFFECT, 0, NORMAL, 100, 30 - move BIDE, BIDE_EFFECT, 0, NORMAL, 100, 10 - move METRONOME, METRONOME_EFFECT, 0, NORMAL, 100, 10 - move MIRROR_MOVE, MIRROR_MOVE_EFFECT, 0, FLYING, 100, 20 - move SELFDESTRUCT, EXPLODE_EFFECT, 130, NORMAL, 100, 5 - move EGG_BOMB, NO_ADDITIONAL_EFFECT, 100, NORMAL, 75, 10 - move LICK, PARALYZE_SIDE_EFFECT2, 20, GHOST, 100, 30 - move SMOG, POISON_SIDE_EFFECT2, 20, POISON, 70, 20 - move SLUDGE, POISON_SIDE_EFFECT2, 65, POISON, 100, 20 - move BONE_CLUB, FLINCH_SIDE_EFFECT1, 65, GROUND, 85, 20 - move FIRE_BLAST, BURN_SIDE_EFFECT2, 120, FIRE, 85, 5 - move WATERFALL, NO_ADDITIONAL_EFFECT, 80, WATER, 100, 15 - move CLAMP, TRAPPING_EFFECT, 35, WATER, 75, 10 - move SWIFT, SWIFT_EFFECT, 60, NORMAL, 100, 20 - move SKULL_BASH, CHARGE_EFFECT, 100, NORMAL, 100, 15 - move SPIKE_CANNON, TWO_TO_FIVE_ATTACKS_EFFECT, 20, NORMAL, 100, 15 - move CONSTRICT, SPEED_DOWN_SIDE_EFFECT, 10, NORMAL, 100, 35 - move AMNESIA, SPECIAL_UP2_EFFECT, 0, PSYCHIC, 100, 20 - move KINESIS, ACCURACY_DOWN1_EFFECT, 0, PSYCHIC, 80, 15 - move SOFTBOILED, HEAL_EFFECT, 0, NORMAL, 100, 10 - move HI_JUMP_KICK, JUMP_KICK_EFFECT, 85, FIGHTING, 90, 20 - move GLARE, PARALYZE_EFFECT, 0, NORMAL, 75, 30 - move DREAM_EATER, DREAM_EATER_EFFECT, 100, PSYCHIC, 100, 15 - move POISON_GAS, POISON_EFFECT, 0, POISON, 55, 40 - move BARRAGE, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 20 - move LEECH_LIFE, DRAIN_HP_EFFECT, 20, BUG, 100, 15 - move LOVELY_KISS, SLEEP_EFFECT, 0, NORMAL, 75, 10 - move SKY_ATTACK, CHARGE_EFFECT, 140, FLYING, 90, 5 - move TRANSFORM, TRANSFORM_EFFECT, 0, NORMAL, 100, 10 - move BUBBLE, SPEED_DOWN_SIDE_EFFECT, 20, WATER, 100, 30 - move DIZZY_PUNCH, NO_ADDITIONAL_EFFECT, 70, NORMAL, 100, 10 - move SPORE, SLEEP_EFFECT, 0, GRASS, 100, 15 - move FLASH, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 70, 20 - move PSYWAVE, SPECIAL_DAMAGE_EFFECT, 1, PSYCHIC, 80, 15 - move SPLASH, SPLASH_EFFECT, 0, NORMAL, 100, 40 - move ACID_ARMOR, DEFENSE_UP2_EFFECT, 0, POISON, 100, 40 - move CRABHAMMER, NO_ADDITIONAL_EFFECT, 90, WATER, 85, 10 - move EXPLOSION, EXPLODE_EFFECT, 170, NORMAL, 100, 5 - move FURY_SWIPES, TWO_TO_FIVE_ATTACKS_EFFECT, 18, NORMAL, 80, 15 - move BONEMERANG, ATTACK_TWICE_EFFECT, 50, GROUND, 90, 10 - move REST, HEAL_EFFECT, 0, PSYCHIC, 100, 10 - move ROCK_SLIDE, NO_ADDITIONAL_EFFECT, 75, ROCK, 90, 10 - move HYPER_FANG, FLINCH_SIDE_EFFECT1, 80, NORMAL, 90, 15 - move SHARPEN, ATTACK_UP1_EFFECT, 0, NORMAL, 100, 30 - move CONVERSION, CONVERSION_EFFECT, 0, NORMAL, 100, 30 - move TRI_ATTACK, NO_ADDITIONAL_EFFECT, 80, NORMAL, 100, 10 - move SUPER_FANG, SUPER_FANG_EFFECT, 1, NORMAL, 90, 10 - move SLASH, NO_ADDITIONAL_EFFECT, 70, NORMAL, 100, 20 - move SUBSTITUTE, SUBSTITUTE_EFFECT, 0, NORMAL, 100, 10 - move STRUGGLE, RECOIL_EFFECT, 50, NORMAL, 100, 10 diff --git a/data/moves/animations.asm b/data/moves/animations.asm new file mode 100755 index 000000000..34191472e --- /dev/null +++ b/data/moves/animations.asm @@ -0,0 +1,1269 @@ +AttackAnimationPointers: + dw PoundAnim + dw KarateChopAnim + dw DoubleSlapAnim + dw CometPunchAnim + dw MegaPunchAnim + dw PayDayAnim + dw FirePunchAnim + dw IcePunchAnim + dw ThunderPunchAnim + dw ScratchAnim + dw VicegripAnim + dw GuillotineAnim + dw RazorWindAnim + dw SwordsDanceAnim + dw CutAnim + dw GustAnim + dw WingAttackAnim + dw WhirlwindAnim + dw FlyAnim + dw BindAnim + dw SlamAnim + dw VineWhipAnim + dw StompAnim + dw DoubleKickAnim + dw MegaKickAnim + dw JumpKickAnim + dw RollingKickAnim + dw SandAttackAnim + dw HeatButtAnim + dw HornAttackAnim + dw FuryAttackAnim + dw HornDrillAnim + dw TackleAnim + dw BodySlamAnim + dw WrapAnim + dw TakeDownAnim + dw ThrashAnim + dw DoubleEdgeAnim + dw TailWhipAnim + dw PoisonStingAnim + dw TwineedleAnim + dw PinMissileAnim + dw LeerAnim + dw BiteAnim + dw GrowlAnim + dw RoarAnim + dw SingAnim + dw SupersonicAnim + dw SonicBoomAnim + dw DisableAnim + dw AcidAnim + dw EmberAnim + dw FlamethrowerAnim + dw MistAnim + dw WaterGunAnim + dw HydroPumpAnim + dw SurfAnim + dw IceBeamAnim + dw BlizzardAnim + dw PsyBeamAnim + dw BubbleBeamAnim + dw AuroraBeamAnim + dw HyperBeamAnim + dw PeckAnim + dw DrillPeckAnim + dw SubmissionAnim + dw LowKickAnim + dw CounterAnim + dw SeismicTossAnim + dw StrengthAnim + dw AbsorbAnim + dw MegaDrainAnim + dw LeechSeedAnim + dw GrowthAnim + dw RazorLeafAnim + dw SolarBeamAnim + dw PoisonPowderAnim + dw StunSporeAnim + dw SleepPowderAnim + dw PetalDanceAnim + dw StringShotAnim + dw DragonRageAnim + dw FireSpinAnim + dw ThunderShockAnim + dw ThunderBoltAnim + dw ThunderWaveAnim + dw ThunderAnim + dw RockThrowAnim + dw EarthquakeAnim + dw FissureAnim + dw DigAnim + dw ToxicAnim + dw ConfusionAnim + dw PsychicAnim + dw HypnosisAnim + dw MeditateAnim + dw AgilityAnim + dw QuickAttackAnim + dw RageAnim + dw TeleportAnim + dw NightShadeAnim + dw MimicAnim + dw ScreechAnim + dw DoubleTeamAnim + dw RecoverAnim + dw HardenAnim + dw MinimizeAnim + dw SmokeScreenAnim + dw ConfuseRayAnim + dw WithdrawAnim + dw DefenseCurlAnim + dw BarrierAnim + dw LightScreenAnim + dw HazeAnim + dw ReflectAnim + dw FocusEnergyAnim + dw BideAnim + dw MetronomeAnim + dw MirrorMoveAnim + dw SelfdestructAnim + dw EggBombAnim + dw LickAnim + dw SmogAnim + dw SludgeAnim + dw BoneClubAnim + dw FireBlastAnim + dw WaterfallAnim + dw ClampAnim + dw SwiftAnim + dw SkullBashAnim + dw SpikeCannonAnim + dw ConstrictAnim + dw AmnesiaAnim + dw KinesisAnim + dw SoftboiledAnim + dw HiJumpKickAnim + dw GlareAnim + dw DreamEaterAnim + dw PoisonGasAnim + dw BarrageAnim + dw LeechLifeAnim + dw LovelyKissAnim + dw SkyAttackAnim + dw TransformAnim + dw BubbleAnim + dw DizzyPunchAnim + dw SporeAnim + dw FlashAnim + dw PsywaveAnim + dw SplashAnim + dw AcidArmorAnim + dw CrabHammerAnim + dw ExplosionAnim + dw FurySwipesAnim + dw BonemerangAnim + dw RestAnim + dw RockSlideAnim + dw HyperFangAnim + dw SharpenAnim + dw ConversionAnim + dw TriAttackAnim + dw SuperFangAnim + dw SlashAnim + dw SubstituteAnim + dw StruggleAnim + dw ShowPicAnim + dw EnemyFlashAnim + dw PlayerFlashAnim + dw EnemyHUDShakeAnim + dw TradeBallDropAnim + dw TradeBallAppear1Anim + dw TradeBallAppear2Anim + dw TradeBallPoofAnim + dw XStatItemAnim + dw XStatItemAnim + dw ShrinkingSquareAnim + dw ShrinkingSquareAnim + dw XStatItemBlackAnim + dw XStatItemBlackAnim + dw ShrinkingSquareBlackAnim + dw ShrinkingSquareBlackAnim + dw UnusedAnim + dw UnusedAnim + dw ParalyzeAnim + dw ParalyzeAnim + dw PoisonAnim + dw PoisonAnim + dw SleepPlayerAnim + dw SleepEnemyAnim + dw ConfusedPlayerAnim + dw ConfusedEnemyAnim + dw FaintAnim + dw BallTossAnim + dw BallShakeAnim + dw BallPoofAnim + dw BallBlockAnim + dw GreatTossAnim + dw UltraTossAnim + dw ShakeScreenAnim + dw HidePicAnim + dw ThrowRockAnim + dw ThrowBaitAnim + +; each animation is a list of subanimations +; and/or special effects, terminated by -1 + +;\1: sound_id +;\2: special_effect_id or subanimation_id +; if \2 is a subanimation_id: +;\3: tileset_id +;\4: delay +battle_anim: MACRO + IF _NARG == 4 + db (\3 << 6) | \4 + db \1 - 1 + db \2 + ELSE + db \2 + db \1 - 1 + ENDC +ENDM + +PoundAnim: +StruggleAnim: + battle_anim POUND, SUBANIM_01, 0, 8 + db -1 ; end + +KarateChopAnim: + battle_anim KARATE_CHOP, SUBANIM_03, 0, 8 + db -1 ; end + +DoubleSlapAnim: + battle_anim DOUBLESLAP, SUBANIM_01, 0, 5 + battle_anim DOUBLESLAP, SUBANIM_01, 0, 5 + db -1 ; end + +CometPunchAnim: + battle_anim COMET_PUNCH, SUBANIM_02, 0, 4 + battle_anim COMET_PUNCH, SUBANIM_02, 0, 4 + db -1 ; end + +MegaPunchAnim: + battle_anim MEGA_PUNCH, SUBANIM_04, 1, 6 + db -1 ; end + +PayDayAnim: + battle_anim POUND, SUBANIM_01, 0, 8 + battle_anim PAY_DAY, SUBANIM_52, 0, 4 + db -1 ; end + +FirePunchAnim: + battle_anim FIRE_PUNCH, SUBANIM_02, 0, 6 + battle_anim NO_MOVE, SUBANIM_11, 1, 6 + db -1 ; end + +IcePunchAnim: + battle_anim ICE_PUNCH, SUBANIM_02, 0, 6 + battle_anim NO_MOVE, SUBANIM_2F, 0, 16 + db -1 ; end + +ThunderPunchAnim: + battle_anim THUNDERPUNCH, SUBANIM_02, 0, 6 + battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE + battle_anim NO_MOVE, SUBANIM_2B, 1, 6 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +ScratchAnim: + battle_anim SCRATCH, SUBANIM_0F, 0, 6 + db -1 ; end + +VicegripAnim: + battle_anim VICEGRIP, SUBANIM_2A, 0, 8 + db -1 ; end + +GuillotineAnim: + battle_anim GUILLOTINE, SUBANIM_2A, 0, 6 + db -1 ; end + +RazorWindAnim: + battle_anim RAZOR_WIND, SUBANIM_16, 0, 4 + db -1 ; end + +SwordsDanceAnim: + battle_anim SWORDS_DANCE, SUBANIM_18, 1, 6 + battle_anim SWORDS_DANCE, SUBANIM_18, 1, 6 + battle_anim SWORDS_DANCE, SUBANIM_18, 1, 6 + db -1 ; end + +CutAnim: + battle_anim CUT, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SUBANIM_16, 0, 4 + db -1 ; end + +GustAnim: + battle_anim GUST, SUBANIM_10, 1, 6 + battle_anim NO_MOVE, SUBANIM_02, 0, 6 + db -1 ; end + +WingAttackAnim: + battle_anim WING_ATTACK, SUBANIM_04, 1, 6 + db -1 ; end + +WhirlwindAnim: + battle_anim WHIRLWIND, SUBANIM_10, 1, 6 + battle_anim NO_MOVE, SE_SLIDE_ENEMY_MON_OFF + db -1 ; end + +FlyAnim: + battle_anim FLY, SUBANIM_04, 1, 6 + battle_anim NO_MOVE, SE_SHOW_MON_PIC + db -1 ; end + +BindAnim: + battle_anim BIND, SUBANIM_23, 0, 4 + battle_anim BIND, SUBANIM_23, 0, 4 + db -1 ; end + +SlamAnim: + battle_anim SLAM, SUBANIM_02, 0, 6 + db -1 ; end + +VineWhipAnim: + battle_anim VINE_WHIP, SUBANIM_16, 0, 1 + battle_anim NO_MOVE, SUBANIM_01, 0, 8 + db -1 ; end + +StompAnim: + battle_anim STOMP, SUBANIM_05, 1, 8 + db -1 ; end + +DoubleKickAnim: + battle_anim DOUBLE_KICK, SUBANIM_01, 0, 8 + battle_anim DOUBLE_KICK, SUBANIM_01, 0, 8 + db -1 ; end + +MegaKickAnim: + battle_anim MEGA_KICK, SUBANIM_04, 1, 6 + db -1 ; end + +JumpKickAnim: + battle_anim JUMP_KICK, SUBANIM_04, 1, 6 + db -1 ; end + +RollingKickAnim: + battle_anim ROLLING_KICK, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SUBANIM_04, 1, 6 + db -1 ; end + +SandAttackAnim: + battle_anim SAND_ATTACK, SUBANIM_28, 1, 6 + db -1 ; end + +HeatButtAnim: + battle_anim HEADBUTT, SUBANIM_05, 1, 6 + db -1 ; end + +HornAttackAnim: + battle_anim HORN_ATTACK, SUBANIM_45, 0, 6 + battle_anim NO_MOVE, SUBANIM_05, 1, 6 + db -1 ; end + +FuryAttackAnim: + battle_anim FURY_ATTACK, SUBANIM_46, 0, 2 + battle_anim NO_MOVE, SUBANIM_46, 0, 2 + db -1 ; end + +HornDrillAnim: + battle_anim HORN_DRILL, SUBANIM_05, 1, 2 + battle_anim NO_MOVE, SUBANIM_05, 1, 2 + battle_anim NO_MOVE, SUBANIM_05, 1, 2 + battle_anim NO_MOVE, SUBANIM_05, 1, 2 + battle_anim NO_MOVE, SUBANIM_05, 1, 2 + db -1 ; end + +TackleAnim: + battle_anim LEECH_SEED, SE_MOVE_MON_HORIZONTALLY + battle_anim NO_MOVE, SE_RESET_MON_POSITION + db -1 ; end + +BodySlamAnim: + battle_anim LEECH_SEED, SE_MOVE_MON_HORIZONTALLY + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_RESET_MON_POSITION + db -1 ; end + +WrapAnim: + battle_anim WRAP, SUBANIM_23, 0, 4 + battle_anim WRAP, SUBANIM_23, 0, 4 + battle_anim WRAP, SUBANIM_23, 0, 4 + db -1 ; end + +TakeDownAnim: + battle_anim LEECH_SEED, SE_MOVE_MON_HORIZONTALLY + battle_anim TAKE_DOWN, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_RESET_MON_POSITION + db -1 ; end + +ThrashAnim: + battle_anim THRASH, SUBANIM_04, 1, 6 + db -1 ; end + +DoubleEdgeAnim: + battle_anim LEECH_SEED, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SUBANIM_2D, 0, 6 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + battle_anim NO_MOVE, SE_MOVE_MON_HORIZONTALLY + battle_anim DOUBLE_EDGE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_RESET_MON_POSITION + db -1 ; end + +TailWhipAnim: + battle_anim AMNESIA, SE_MOVE_MON_HORIZONTALLY + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim AMNESIA, SE_RESET_MON_POSITION + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim AMNESIA, SE_MOVE_MON_HORIZONTALLY + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim AMNESIA, SE_RESET_MON_POSITION + db -1 ; end + +PoisonStingAnim: + battle_anim POISON_STING, SUBANIM_00, 0, 6 + db -1 ; end + +TwineedleAnim: + battle_anim TWINEEDLE, SUBANIM_01, 0, 5 + battle_anim TWINEEDLE, SUBANIM_01, 0, 5 + db -1 ; end + +PinMissileAnim: + battle_anim PIN_MISSILE, SUBANIM_01, 0, 3 + db -1 ; end + +LeerAnim: + battle_anim LEECH_SEED, SE_DARK_SCREEN_PALETTE + battle_anim LEER, SE_DARK_SCREEN_FLASH + battle_anim LEER, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +BiteAnim: + battle_anim BITE, SUBANIM_02, 0, 8 + db -1 ; end + +GrowlAnim: + battle_anim GROWL, SUBANIM_12, 1, 6 + db -1 ; end + +RoarAnim: + battle_anim ROAR, SUBANIM_15, 1, 6 + battle_anim ROAR, SUBANIM_15, 1, 6 + battle_anim ROAR, SUBANIM_15, 1, 6 + db -1 ; end + +SingAnim: + battle_anim SING, SUBANIM_12, 1, 6 + battle_anim NO_MOVE, SUBANIM_40, 1, 16 + battle_anim NO_MOVE, SUBANIM_40, 1, 16 + db -1 ; end + +SupersonicAnim: + battle_anim SUPERSONIC, SUBANIM_31, 0, 6 + db -1 ; end + +SonicBoomAnim: + battle_anim ROAR, SUBANIM_15, 1, 6 + battle_anim ROAR, SUBANIM_15, 1, 6 + battle_anim GUST, SUBANIM_10, 1, 6 + battle_anim NO_MOVE, SUBANIM_05, 1, 6 + db -1 ; end + +DisableAnim: + battle_anim LEECH_SEED, SE_DARK_SCREEN_PALETTE + battle_anim LEER, SE_DARK_SCREEN_FLASH + battle_anim LEER, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +AcidAnim: + battle_anim ACID, SUBANIM_13, 1, 6 + battle_anim ACID, SUBANIM_14, 1, 6 + db -1 ; end + +EmberAnim: + battle_anim EMBER, SUBANIM_11, 1, 6 + db -1 ; end + +FlamethrowerAnim: + battle_anim FLAMETHROWER, SUBANIM_1F, 1, 6 + battle_anim FLAMETHROWER, SUBANIM_0C, 1, 6 + battle_anim FLAMETHROWER, SUBANIM_0D, 1, 6 + db -1 ; end + +MistAnim: + battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE + battle_anim SURF, SE_WATER_DROPLETS_EVERYWHERE + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +WaterGunAnim: + battle_anim WATER_GUN, SUBANIM_2C, 0, 6 + db -1 ; end + +HydroPumpAnim: + battle_anim HYDRO_PUMP, SUBANIM_1A, 0, 6 + battle_anim HYDRO_PUMP, SUBANIM_1A, 0, 6 + db -1 ; end + +SurfAnim: + battle_anim SURF, SE_WATER_DROPLETS_EVERYWHERE + battle_anim HYDRO_PUMP, SUBANIM_1A, 0, 6 + db -1 ; end + +IceBeamAnim: + battle_anim ICE_BEAM, SUBANIM_2E, 0, 3 + battle_anim NO_MOVE, SUBANIM_2F, 0, 16 + db -1 ; end + +BlizzardAnim: + battle_anim BLIZZARD, SUBANIM_38, 0, 4 + battle_anim HYDRO_PUMP, SUBANIM_38, 0, 4 + db -1 ; end + +PsyBeamAnim: + battle_anim PSYBEAM, SUBANIM_2E, 0, 3 + battle_anim NO_MOVE, SE_FLASH_SCREEN_LONG + db -1 ; end + +BubbleBeamAnim: + battle_anim BUBBLEBEAM, SUBANIM_35, 0, 18 + db -1 ; end + +AuroraBeamAnim: + battle_anim AURORA_BEAM, SUBANIM_2E, 0, 3 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + db -1 ; end + +HyperBeamAnim: + battle_anim LEECH_SEED, SE_DARK_SCREEN_PALETTE + battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD + battle_anim HYPER_BEAM, SUBANIM_2E, 0, 2 + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim MEGA_PUNCH, SUBANIM_04, 1, 6 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +PeckAnim: + battle_anim PECK, SUBANIM_01, 0, 8 + db -1 ; end + +DrillPeckAnim: + battle_anim DRILL_PECK, SUBANIM_04, 1, 6 + db -1 ; end + +SubmissionAnim: + battle_anim SUBMISSION, SE_SLIDE_MON_OFF + battle_anim NO_MOVE, SUBANIM_01, 0, 6 + battle_anim NO_MOVE, SE_SHOW_MON_PIC + db -1 ; end + +LowKickAnim: + battle_anim LOW_KICK, SE_SLIDE_MON_OFF + battle_anim NO_MOVE, SUBANIM_04, 1, 6 + battle_anim NO_MOVE, SE_SHOW_MON_PIC + db -1 ; end + +CounterAnim: + battle_anim COUNTER, SE_SLIDE_MON_OFF + battle_anim NO_MOVE, SUBANIM_04, 1, 6 + battle_anim NO_MOVE, SE_SHOW_MON_PIC + db -1 ; end + +SeismicTossAnim: + battle_anim NO_MOVE, SE_BLINK_ENEMY_MON + battle_anim BARRAGE, SUBANIM_4E, 1, 1 + battle_anim NO_MOVE, SE_HIDE_ENEMY_MON_PIC + battle_anim NO_MOVE, SE_SLIDE_MON_OFF + battle_anim SEISMIC_TOSS, SUBANIM_4F, 1, 2 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_SHOW_MON_PIC + battle_anim SEISMIC_TOSS, SUBANIM_50, 1, 1 + battle_anim NO_MOVE, SE_SHOW_ENEMY_MON_PIC + battle_anim NO_MOVE, SE_SHAKE_SCREEN + db -1 ; end + +StrengthAnim: + battle_anim LEECH_SEED, SE_MOVE_MON_HORIZONTALLY + battle_anim NO_MOVE, SE_RESET_MON_POSITION + battle_anim FIRE_PUNCH, SUBANIM_04, 1, 6 + db -1 ; end + +AbsorbAnim: + battle_anim ABSORB, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SUBANIM_21, 0, 6 + battle_anim NO_MOVE, SUBANIM_22, 0, 6 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +MegaDrainAnim: + battle_anim MEGA_DRAIN, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SUBANIM_21, 0, 6 + battle_anim NO_MOVE, SUBANIM_22, 0, 6 + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +LeechSeedAnim: + battle_anim LEECH_SEED, SUBANIM_1B, 1, 6 + battle_anim STUN_SPORE, SUBANIM_1C, 1, 21 + db -1 ; end + +GrowthAnim: + battle_anim GROWTH, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +RazorLeafAnim: + battle_anim RAZOR_LEAF, SE_LEAVES_FALLING + battle_anim SWIFT, SUBANIM_44, 1, 1 + battle_anim RAZOR_WIND, SUBANIM_16, 0, 1 + db -1 ; end + +SolarBeamAnim: + battle_anim SOLARBEAM, SUBANIM_2E, 0, 6 + battle_anim NO_MOVE, SUBANIM_01, 0, 6 + db -1 ; end + +PoisonPowderAnim: + battle_anim POISONPOWDER, SUBANIM_36, 0, 6 + db -1 ; end + +StunSporeAnim: + battle_anim STUN_SPORE, SUBANIM_36, 0, 6 + db -1 ; end + +SleepPowderAnim: + battle_anim SLEEP_POWDER, SUBANIM_36, 0, 6 + db -1 ; end + +PetalDanceAnim: + battle_anim PETAL_DANCE, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SE_PETALS_FALLING + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +StringShotAnim: + battle_anim STRING_SHOT, SUBANIM_37, 0, 8 + db -1 ; end + +DragonRageAnim: + battle_anim DRAGON_RAGE, SUBANIM_1F, 1, 6 + battle_anim NO_MOVE, SUBANIM_0C, 1, 6 + battle_anim NO_MOVE, SUBANIM_0D, 1, 6 + battle_anim NO_MOVE, SUBANIM_0E, 1, 6 + db -1 ; end + +FireSpinAnim: + battle_anim FIRE_SPIN, SUBANIM_0C, 1, 6 + battle_anim NO_MOVE, SUBANIM_0D, 1, 6 + battle_anim NO_MOVE, SUBANIM_0E, 1, 6 + db -1 ; end + +ThunderShockAnim: + battle_anim THUNDERSHOCK, SUBANIM_29, 1, 2 + db -1 ; end + +ThunderBoltAnim: + battle_anim THUNDERBOLT, SUBANIM_29, 1, 1 + battle_anim THUNDERBOLT, SUBANIM_29, 1, 1 + db -1 ; end + +ThunderWaveAnim: + battle_anim THUNDER_WAVE, SUBANIM_29, 1, 2 + battle_anim NO_MOVE, SUBANIM_23, 0, 2 + battle_anim NO_MOVE, SUBANIM_23, 0, 4 + db -1 ; end + +ThunderAnim: + battle_anim THUNDER, SE_DARK_SCREEN_PALETTE + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SUBANIM_2B, 1, 6 + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim THUNDERBOLT, SUBANIM_29, 1, 2 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +RockThrowAnim: + battle_anim ROCK_THROW, SUBANIM_30, 0, 4 + db -1 ; end + +EarthquakeAnim: + battle_anim EARTHQUAKE, SE_SHAKE_SCREEN + battle_anim EARTHQUAKE, SE_SHAKE_SCREEN + db -1 ; end + +FissureAnim: + battle_anim FISSURE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_SHAKE_SCREEN + battle_anim FISSURE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_SHAKE_SCREEN + db -1 ; end + +DigAnim: + battle_anim DIG, SUBANIM_04, 1, 6 + battle_anim NO_MOVE, SE_SLIDE_MON_UP + db -1 ; end + +ToxicAnim: + battle_anim SURF, SE_WATER_DROPLETS_EVERYWHERE + battle_anim TOXIC, SUBANIM_14, 1, 6 + db -1 ; end + +ConfusionAnim: + battle_anim CONFUSION, SE_FLASH_SCREEN_LONG + db -1 ; end + +PsychicAnim: + battle_anim PSYCHIC_M, SE_FLASH_SCREEN_LONG + battle_anim NO_MOVE, SE_WAVY_SCREEN + db -1 ; end + +HypnosisAnim: + battle_anim HYPNOSIS, SE_FLASH_SCREEN_LONG + db -1 ; end + +MeditateAnim: + battle_anim MEDITATE, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SUBANIM_43, 1, 6 + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +AgilityAnim: + battle_anim AGILITY, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +QuickAttackAnim: + battle_anim QUICK_ATTACK, SE_SLIDE_MON_OFF + battle_anim NO_MOVE, SUBANIM_04, 1, 6 + battle_anim NO_MOVE, SE_SHOW_MON_PIC + db -1 ; end + +RageAnim: + battle_anim RAGE, SUBANIM_01, 0, 6 + db -1 ; end + +TeleportAnim: + battle_anim TELEPORT, SE_SQUISH_MON_PIC + battle_anim NO_MOVE, SE_SHOOT_BALLS_UPWARD + db -1 ; end + +NightShadeAnim: + battle_anim CONFUSION, SE_FLASH_SCREEN_LONG + battle_anim NO_MOVE, SE_WAVY_SCREEN + db -1 ; end + +MimicAnim: + battle_anim MIMIC, SUBANIM_21, 1, 6 + battle_anim MIMIC, SUBANIM_22, 1, 6 + db -1 ; end + +ScreechAnim: + battle_anim SCREECH, SUBANIM_12, 1, 6 + db -1 ; end + +DoubleTeamAnim: + battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + battle_anim DOUBLE_TEAM, SE_SHAKE_BACK_AND_FORTH + battle_anim NO_MOVE, SE_SHOW_MON_PIC + battle_anim BARRIER, SUBANIM_33, 1, 6 + db -1 ; end + +RecoverAnim: + battle_anim RECOVER, SE_BLINK_MON + battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +HardenAnim: + battle_anim HARDEN, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SUBANIM_43, 1, 6 + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +MinimizeAnim: + battle_anim MINIMIZE, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD + battle_anim NO_MOVE, SE_MINIMIZE_MON + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +SmokeScreenAnim: + battle_anim SMOKESCREEN, SUBANIM_28, 1, 6 + battle_anim NO_MOVE, SUBANIM_0A, 0, 4 + battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +ConfuseRayAnim: + battle_anim CONFUSE_RAY, SE_DARK_SCREEN_PALETTE + battle_anim NO_MOVE, SUBANIM_3E, 1, 6 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +WithdrawAnim: + battle_anim DEFENSE_CURL, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SE_SLIDE_MON_DOWN + battle_anim NO_MOVE, SUBANIM_51, 0, 6 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + battle_anim NO_MOVE, SE_SHOW_MON_PIC + db -1 ; end + +DefenseCurlAnim: + battle_anim DEFENSE_CURL, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SUBANIM_43, 0, 6 + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +BarrierAnim: + battle_anim BARRIER, SUBANIM_33, 1, 6 + battle_anim BARRIER, SUBANIM_33, 1, 6 + db -1 ; end + +LightScreenAnim: + battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE + battle_anim LIGHT_SCREEN, SUBANIM_33, 1, 6 + battle_anim LIGHT_SCREEN, SUBANIM_33, 1, 6 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +HazeAnim: + battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE + battle_anim SURF, SE_WATER_DROPLETS_EVERYWHERE + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +ReflectAnim: + battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE + battle_anim REFLECT, SUBANIM_33, 1, 6 + battle_anim REFLECT, SUBANIM_33, 1, 6 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +FocusEnergyAnim: + battle_anim FOCUS_ENERGY, SE_SPIRAL_BALLS_INWARD + db -1 ; end + +BideAnim: + battle_anim BIDE, SUBANIM_04, 1, 6 + db -1 ; end + +MetronomeAnim: + battle_anim AMNESIA, SE_MOVE_MON_HORIZONTALLY + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim AMNESIA, SE_RESET_MON_POSITION + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim AMNESIA, SE_MOVE_MON_HORIZONTALLY + battle_anim NO_MOVE, SE_DELAY_ANIMATION_10 + battle_anim AMNESIA, SE_RESET_MON_POSITION + db -1 ; end + +MirrorMoveAnim: + battle_anim MIRROR_MOVE, SUBANIM_01, 0, 8 + db -1 ; end + +SelfdestructAnim: + battle_anim SELFDESTRUCT, SUBANIM_34, 1, 3 + db -1 ; end + +EggBombAnim: + battle_anim EGG_BOMB, SUBANIM_41, 1, 4 + battle_anim EGG_BOMB, SUBANIM_42, 1, 4 + db -1 ; end + +LickAnim: + battle_anim SLUDGE, SUBANIM_14, 1, 6 + db -1 ; end + +SmogAnim: + battle_anim LEECH_SEED, SE_DARKEN_MON_PALETTE + battle_anim SMOG, SUBANIM_19, 1, 6 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +SludgeAnim: + battle_anim SLUDGE, SUBANIM_13, 1, 6 + battle_anim SLUDGE, SUBANIM_14, 1, 6 + db -1 ; end + +BoneClubAnim: + battle_anim BONE_CLUB, SUBANIM_02, 0, 8 + db -1 ; end + +FireBlastAnim: + battle_anim FIRE_BLAST, SUBANIM_1F, 1, 6 + battle_anim NO_MOVE, SUBANIM_20, 1, 6 + battle_anim NO_MOVE, SUBANIM_20, 1, 6 + battle_anim NO_MOVE, SUBANIM_0C, 1, 6 + battle_anim NO_MOVE, SUBANIM_0D, 1, 6 + db -1 ; end + +WaterfallAnim: + battle_anim LEECH_SEED, SE_SLIDE_MON_DOWN + battle_anim HYDRO_PUMP, SUBANIM_1A, 0, 6 + battle_anim NO_MOVE, SUBANIM_02, 0, 8 + battle_anim NO_MOVE, SE_SLIDE_MON_UP + db -1 ; end + +ClampAnim: + battle_anim CLAMP, SUBANIM_2A, 0, 8 + battle_anim CONSTRICT, SUBANIM_23, 0, 6 + battle_anim CONSTRICT, SUBANIM_23, 0, 6 + db -1 ; end + +SwiftAnim: + battle_anim SWIFT, SUBANIM_3F, 1, 3 + db -1 ; end + +SkullBashAnim: + battle_anim SKULL_BASH, SUBANIM_05, 1, 6 + db -1 ; end + +SpikeCannonAnim: + battle_anim SPIKE_CANNON, SUBANIM_04, 1, 4 + db -1 ; end + +ConstrictAnim: + battle_anim CONSTRICT, SUBANIM_23, 0, 6 + battle_anim CONSTRICT, SUBANIM_23, 0, 6 + battle_anim CONSTRICT, SUBANIM_23, 0, 6 + db -1 ; end + +AmnesiaAnim: + battle_anim AMNESIA, SUBANIM_25, 0, 8 + battle_anim AMNESIA, SUBANIM_25, 0, 8 + db -1 ; end + +KinesisAnim: + battle_anim KINESIS, SUBANIM_01, 0, 8 + db -1 ; end + +SoftboiledAnim: + battle_anim LEECH_SEED, SE_SLIDE_MON_HALF_OFF + battle_anim SOFTBOILED, SUBANIM_4C, 0, 8 + battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + battle_anim NO_MOVE, SE_SHOW_MON_PIC + db -1 ; end + +HiJumpKickAnim: + battle_anim HI_JUMP_KICK, SUBANIM_04, 1, 6 + db -1 ; end + +GlareAnim: + battle_anim LEECH_SEED, SE_DARK_SCREEN_PALETTE + battle_anim GLARE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +DreamEaterAnim: + battle_anim DREAM_EATER, SE_FLASH_SCREEN_LONG + battle_anim DREAM_EATER, SE_DARK_SCREEN_PALETTE + battle_anim DREAM_EATER, SUBANIM_02, 0, 8 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +PoisonGasAnim: + battle_anim POISON_GAS, SUBANIM_19, 1, 6 + db -1 ; end + +BarrageAnim: + battle_anim BARRAGE, SUBANIM_41, 1, 3 + battle_anim NO_MOVE, SUBANIM_55, 0, 5 + db -1 ; end + +LeechLifeAnim: + battle_anim LEECH_LIFE, SUBANIM_02, 0, 8 + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SUBANIM_21, 0, 6 + battle_anim NO_MOVE, SUBANIM_22, 0, 6 + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + db -1 ; end + +LovelyKissAnim: + battle_anim LOVELY_KISS, SUBANIM_12, 0, 6 + db -1 ; end + +SkyAttackAnim: + battle_anim SKY_ATTACK, SE_SQUISH_MON_PIC + battle_anim NO_MOVE, SE_SHOOT_BALLS_UPWARD + battle_anim HI_JUMP_KICK, SUBANIM_04, 1, 6 + battle_anim NO_MOVE, SE_SHOW_MON_PIC + db -1 ; end + +TransformAnim: + battle_anim TRANSFORM, SUBANIM_21, 1, 6 + battle_anim TRANSFORM, SUBANIM_22, 1, 4 + battle_anim NO_MOVE, SUBANIM_47, 0, 8 + battle_anim NO_MOVE, SE_TRANSFORM_MON + db -1 ; end + +BubbleAnim: + battle_anim BUBBLE, SUBANIM_35, 0, 22 + db -1 ; end + +DizzyPunchAnim: + battle_anim DIZZY_PUNCH, SUBANIM_17, 0, 6 + battle_anim DIZZY_PUNCH, SUBANIM_17, 0, 6 + battle_anim DIZZY_PUNCH, SUBANIM_17, 0, 6 + battle_anim DOUBLESLAP, SUBANIM_02, 0, 6 + db -1 ; end + +SporeAnim: + battle_anim SPORE, SUBANIM_36, 0, 6 + db -1 ; end + +FlashAnim: + battle_anim LEECH_SEED, SE_LIGHT_SCREEN_PALETTE + battle_anim GLARE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +PsywaveAnim: + battle_anim SUPERSONIC, SUBANIM_31, 0, 6 + battle_anim CONFUSION, SE_WAVY_SCREEN + db -1 ; end + +SplashAnim: + battle_anim SPLASH, SE_BOUNCE_UP_AND_DOWN + db -1 ; end + +AcidArmorAnim: + battle_anim ACID_ARMOR, SE_SLIDE_MON_DOWN_AND_HIDE + db -1 ; end + +CrabHammerAnim: + battle_anim CRABHAMMER, SUBANIM_05, 1, 6 + battle_anim NO_MOVE, SUBANIM_2A, 0, 6 + db -1 ; end + +ExplosionAnim: + battle_anim EXPLOSION, SUBANIM_34, 1, 3 + db -1 ; end + +FurySwipesAnim: + battle_anim FURY_SWIPES, SUBANIM_0F, 0, 4 + db -1 ; end + +BonemerangAnim: + battle_anim BONEMERANG, SUBANIM_02, 0, 6 + db -1 ; end + +RestAnim: + battle_anim REST, SUBANIM_3A, 0, 16 + battle_anim REST, SUBANIM_3A, 0, 16 + db -1 ; end + +RockSlideAnim: + battle_anim ROCK_SLIDE, SUBANIM_1D, 0, 4 + battle_anim ROCK_SLIDE, SUBANIM_1E, 0, 3 + battle_anim HYPER_FANG, SUBANIM_04, 1, 6 + db -1 ; end + +HyperFangAnim: + battle_anim HYPER_FANG, SUBANIM_02, 0, 6 + db -1 ; end + +SharpenAnim: + battle_anim SHARPEN, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SUBANIM_43, 1, 6 + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +ConversionAnim: + battle_anim CONVERSION, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SUBANIM_21, 1, 6 + battle_anim NO_MOVE, SUBANIM_22, 1, 6 + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + db -1 ; end + +TriAttackAnim: + battle_anim TRI_ATTACK, SE_DARK_SCREEN_FLASH + battle_anim NO_MOVE, SUBANIM_4D, 1, 6 + battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH + db -1 ; end + +SuperFangAnim: + battle_anim LEECH_SEED, SE_DARK_SCREEN_PALETTE + battle_anim SUPER_FANG, SUBANIM_04, 1, 6 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +SlashAnim: + battle_anim SLASH, SUBANIM_0F, 0, 6 + db -1 ; end + +SubstituteAnim: + battle_anim SUBSTITUTE, SE_SLIDE_MON_OFF + battle_anim NO_MOVE, SUBANIM_47, 0, 8 + battle_anim NO_MOVE, SE_SUBSTITUTE_MON + db -1 ; end + +BallTossAnim: + battle_anim NO_MOVE, SUBANIM_06, 0, 3 + db -1 ; end + +GreatTossAnim: + battle_anim NO_MOVE, SUBANIM_07, 0, 3 + db -1 ; end + +UltraTossAnim: + battle_anim NO_MOVE, SUBANIM_08, 0, 2 + db -1 ; end + +BallShakeAnim: + battle_anim NO_MOVE, SUBANIM_09, 0, 4 + db -1 ; end + +BallPoofAnim: + battle_anim NO_MOVE, SUBANIM_0A, 0, 4 + db -1 ; end + +ShowPicAnim: + battle_anim NO_MOVE, SE_SHOW_ENEMY_MON_PIC + db -1 ; end + +HidePicAnim: + battle_anim NO_MOVE, SE_HIDE_ENEMY_MON_PIC + db -1 ; end + +EnemyFlashAnim: + battle_anim NO_MOVE, SE_SHOW_MON_PIC + db -1 ; end + +PlayerFlashAnim: + battle_anim NO_MOVE, SE_FLASH_MON_PIC + db -1 ; end + +EnemyHUDShakeAnim: + battle_anim NO_MOVE, SE_SHAKE_ENEMY_HUD + db -1 ; end + +TradeBallDropAnim: + battle_anim NO_MOVE, SUBANIM_48, 2, 6 + db -1 ; end + +TradeBallAppear1Anim: + battle_anim NO_MOVE, SUBANIM_49, 2, 4 + db -1 ; end + +TradeBallAppear2Anim: + battle_anim NO_MOVE, SUBANIM_4A, 2, 6 + db -1 ; end + +TradeBallPoofAnim: + battle_anim NO_MOVE, SUBANIM_4B, 2, 6 + db -1 ; end + +XStatItemAnim: + battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +ShrinkingSquareAnim: + battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SUBANIM_43, 1, 6 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +XStatItemBlackAnim: + battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE + battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +ShrinkingSquareBlackAnim: + battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE + battle_anim NO_MOVE, SUBANIM_43, 1, 6 + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +UnusedAnim: + battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE + battle_anim NO_MOVE, SE_SHOOT_MANY_BALLS_UPWARD + battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE + db -1 ; end + +ParalyzeAnim: + battle_anim BIND, SUBANIM_24, 0, 4 + battle_anim BIND, SUBANIM_24, 0, 4 + db -1 ; end + +PoisonAnim: + battle_anim BIND, SUBANIM_27, 0, 8 + battle_anim BIND, SUBANIM_27, 0, 8 + db -1 ; end + +SleepPlayerAnim: + battle_anim REST, SUBANIM_3A, 0, 16 + battle_anim REST, SUBANIM_3A, 0, 16 + db -1 ; end + +SleepEnemyAnim: + battle_anim REST, SUBANIM_3B, 0, 16 + battle_anim REST, SUBANIM_3B, 0, 16 + db -1 ; end + +ConfusedPlayerAnim: + battle_anim AMNESIA, SUBANIM_25, 0, 8 + battle_anim AMNESIA, SUBANIM_25, 0, 8 + db -1 ; end + +ConfusedEnemyAnim: + battle_anim AMNESIA, SUBANIM_26, 0, 8 + battle_anim AMNESIA, SUBANIM_26, 0, 8 + db -1 ; end + +BallBlockAnim: + battle_anim NO_MOVE, SUBANIM_0B, 0, 3 + db -1 ; end + +FaintAnim: + battle_anim DIG, SE_SLIDE_MON_DOWN + db -1 ; end + +ShakeScreenAnim: + battle_anim NO_MOVE, SE_SHAKE_SCREEN + db -1 ; end + +ThrowRockAnim: + battle_anim BARRAGE, SUBANIM_53, 0, 3 + db -1 ; end + +ThrowBaitAnim: + battle_anim BARRAGE, SUBANIM_54, 0, 3 + db -1 ; end diff --git a/data/moves/effects_pointers.asm b/data/moves/effects_pointers.asm new file mode 100644 index 000000000..a5e3d852f --- /dev/null +++ b/data/moves/effects_pointers.asm @@ -0,0 +1,88 @@ +MoveEffectPointerTable: +; entries correspond to *_EFFECT constants + dw SleepEffect ; EFFECT_01 + dw PoisonEffect ; POISON_SIDE_EFFECT1 + dw DrainHPEffect ; DRAIN_HP_EFFECT + dw FreezeBurnParalyzeEffect ; BURN_SIDE_EFFECT1 + dw FreezeBurnParalyzeEffect ; FREEZE_SIDE_EFFECT + dw FreezeBurnParalyzeEffect ; PARALYZE_SIDE_EFFECT1 + dw ExplodeEffect ; EXPLODE_EFFECT + dw DrainHPEffect ; DREAM_EATER_EFFECT + dw NULL ; MIRROR_MOVE_EFFECT + dw StatModifierUpEffect ; ATTACK_UP1_EFFECT + dw StatModifierUpEffect ; DEFENSE_UP1_EFFECT + dw StatModifierUpEffect ; SPEED_UP1_EFFECT + dw StatModifierUpEffect ; SPECIAL_UP1_EFFECT + dw StatModifierUpEffect ; ACCURACY_UP1_EFFECT + dw StatModifierUpEffect ; EVASION_UP1_EFFECT + dw PayDayEffect ; PAY_DAY_EFFECT + dw NULL ; SWIFT_EFFECT + dw StatModifierDownEffect ; ATTACK_DOWN1_EFFECT + dw StatModifierDownEffect ; DEFENSE_DOWN1_EFFECT + dw StatModifierDownEffect ; SPEED_DOWN1_EFFECT + dw StatModifierDownEffect ; SPECIAL_DOWN1_EFFECT + dw StatModifierDownEffect ; ACCURACY_DOWN1_EFFECT + dw StatModifierDownEffect ; EVASION_DOWN1_EFFECT + dw ConversionEffect ; CONVERSION_EFFECT + dw HazeEffect ; HAZE_EFFECT + dw BideEffect ; BIDE_EFFECT + dw ThrashPetalDanceEffect ; THRASH_PETAL_DANCE_EFFECT + dw SwitchAndTeleportEffect ; SWITCH_AND_TELEPORT_EFFECT + dw TwoToFiveAttacksEffect ; TWO_TO_FIVE_ATTACKS_EFFECT + dw TwoToFiveAttacksEffect ; EFFECT_1E + dw FlinchSideEffect ; FLINCH_SIDE_EFFECT1 + dw SleepEffect ; SLEEP_EFFECT + dw PoisonEffect ; POISON_SIDE_EFFECT2 + dw FreezeBurnParalyzeEffect ; BURN_SIDE_EFFECT2 + dw FreezeBurnParalyzeEffect ; unused effect + dw FreezeBurnParalyzeEffect ; PARALYZE_SIDE_EFFECT2 + dw FlinchSideEffect ; FLINCH_SIDE_EFFECT2 + dw OneHitKOEffect ; OHKO_EFFECT + dw ChargeEffect ; CHARGE_EFFECT + dw NULL ; SUPER_FANG_EFFECT + dw NULL ; SPECIAL_DAMAGE_EFFECT + dw TrappingEffect ; TRAPPING_EFFECT + dw ChargeEffect ; FLY_EFFECT + dw TwoToFiveAttacksEffect ; ATTACK_TWICE_EFFECT + dw NULL ; JUMP_KICK_EFFECT + dw MistEffect ; MIST_EFFECT + dw FocusEnergyEffect ; FOCUS_ENERGY_EFFECT + dw RecoilEffect ; RECOIL_EFFECT + dw ConfusionEffect ; CONFUSION_EFFECT + dw StatModifierUpEffect ; ATTACK_UP2_EFFECT + dw StatModifierUpEffect ; DEFENSE_UP2_EFFECT + dw StatModifierUpEffect ; SPEED_UP2_EFFECT + dw StatModifierUpEffect ; SPECIAL_UP2_EFFECT + dw StatModifierUpEffect ; ACCURACY_UP2_EFFECT + dw StatModifierUpEffect ; EVASION_UP2_EFFECT + dw HealEffect ; HEAL_EFFECT + dw TransformEffect ; TRANSFORM_EFFECT + dw StatModifierDownEffect ; ATTACK_DOWN2_EFFECT + dw StatModifierDownEffect ; DEFENSE_DOWN2_EFFECT + dw StatModifierDownEffect ; SPEED_DOWN2_EFFECT + dw StatModifierDownEffect ; SPECIAL_DOWN2_EFFECT + dw StatModifierDownEffect ; ACCURACY_DOWN2_EFFECT + dw StatModifierDownEffect ; EVASION_DOWN2_EFFECT + dw ReflectLightScreenEffect ; LIGHT_SCREEN_EFFECT + dw ReflectLightScreenEffect ; REFLECT_EFFECT + dw PoisonEffect ; POISON_EFFECT + dw ParalyzeEffect ; PARALYZE_EFFECT + dw StatModifierDownEffect ; ATTACK_DOWN_SIDE_EFFECT + dw StatModifierDownEffect ; DEFENSE_DOWN_SIDE_EFFECT + dw StatModifierDownEffect ; SPEED_DOWN_SIDE_EFFECT + dw StatModifierDownEffect ; SPECIAL_DOWN_SIDE_EFFECT + dw StatModifierDownEffect ; unused effect + dw StatModifierDownEffect ; unused effect + dw StatModifierDownEffect ; unused effect + dw StatModifierDownEffect ; unused effect + dw ConfusionSideEffect ; CONFUSION_SIDE_EFFECT + dw TwoToFiveAttacksEffect ; TWINEEDLE_EFFECT + dw NULL ; unused effect + dw SubstituteEffect ; SUBSTITUTE_EFFECT + dw HyperBeamEffect ; HYPER_BEAM_EFFECT + dw RageEffect ; RAGE_EFFECT + dw MimicEffect ; MIMIC_EFFECT + dw NULL ; METRONOME_EFFECT + dw LeechSeedEffect ; LEECH_SEED_EFFECT + dw SplashEffect ; SPLASH_EFFECT + dw DisableEffect ; DISABLE_EFFECT diff --git a/data/moves/field_move_names.asm b/data/moves/field_move_names.asm new file mode 100644 index 000000000..b68ed828b --- /dev/null +++ b/data/moves/field_move_names.asm @@ -0,0 +1,10 @@ +FieldMoveNames: + db "CUT@" + db "FLY@" + db "@" + db "SURF@" + db "STRENGTH@" + db "FLASH@" + db "DIG@" + db "TELEPORT@" + db "SOFTBOILED@" diff --git a/data/moves/field_moves.asm b/data/moves/field_moves.asm new file mode 100644 index 000000000..d7e9219b4 --- /dev/null +++ b/data/moves/field_moves.asm @@ -0,0 +1,14 @@ +FieldMoveDisplayData: + ; move id, FieldMoveNames index, leftmost tile + ; (leftmost tile = -1 + tile column in which the first + ; letter of the move's name should be displayed) + db CUT, 1, $0C + db FLY, 2, $0C + db ANIM_B4, 3, $0C ; unused + db SURF, 4, $0C + db STRENGTH, 5, $0A + db FLASH, 6, $0C + db DIG, 7, $0C + db TELEPORT, 8, $0A + db SOFTBOILED, 9, $08 + db -1 ; end diff --git a/data/moves/grammar.asm b/data/moves/grammar.asm new file mode 100644 index 000000000..5855c98c8 --- /dev/null +++ b/data/moves/grammar.asm @@ -0,0 +1,74 @@ +ExclamationPointMoveSets: +; a grammar mistake was fixed (only concerning japanese) +; BIDE is in category 3, moved from category 2 +; set 0 + db SWORDS_DANCE + db GROWTH + db 0 ; end set + +; set 1 + db RECOVER + db SELFDESTRUCT + db AMNESIA + db 0 ; end set + +; set 2 + db MEDITATE + db AGILITY + db TELEPORT + db MIMIC + db DOUBLE_TEAM + db BIDE + db BARRAGE + db 0 ; end set + +; set 3 + db POUND + db SCRATCH + db VICEGRIP + db WING_ATTACK + db FLY + db BIND + db SLAM + db HORN_ATTACK + db BODY_SLAM + db WRAP + db THRASH + db TAIL_WHIP + db LEER + db BITE + db GROWL + db ROAR + db SING + db PECK + db COUNTER + db STRENGTH + db ABSORB + db STRING_SHOT + db EARTHQUAKE + db FISSURE + db DIG + db TOXIC + db SCREECH + db HARDEN + db MINIMIZE + db WITHDRAW + db DEFENSE_CURL + db METRONOME + db LICK + db CLAMP + db CONSTRICT + db POISON_GAS + db LEECH_LIFE + db BUBBLE + db FLASH + db SPLASH + db ACID_ARMOR + db FURY_SWIPES + db REST + db SHARPEN + db SLASH + db SUBSTITUTE + db 0 ; end set + + db -1 ; end diff --git a/data/moves/hm_moves.asm b/data/moves/hm_moves.asm new file mode 100644 index 000000000..4f14b8df6 --- /dev/null +++ b/data/moves/hm_moves.asm @@ -0,0 +1,10 @@ +; This file is INCLUDEd twice: +; - for HMMoves in home/names.asm +; - for HMMoveArray in engine/pokemon/bills_pc.asm + + db CUT + db FLY + db SURF + db STRENGTH + db FLASH + db -1 ; end diff --git a/data/moves/moves.asm b/data/moves/moves.asm new file mode 100755 index 000000000..85b6dcfcc --- /dev/null +++ b/data/moves/moves.asm @@ -0,0 +1,178 @@ +Moves: +; Characteristics of each move. + +move: MACRO + db \1 ; animation (interchangeable with move id) + db \2 ; effect + db \3 ; power + db \4 ; type + db \5 percent ; accuracy + db \6 ; pp +ENDM + + move POUND, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35 +MoveEnd: + move KARATE_CHOP, NO_ADDITIONAL_EFFECT, 50, NORMAL, 100, 25 + move DOUBLESLAP, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 10 + move COMET_PUNCH, TWO_TO_FIVE_ATTACKS_EFFECT, 18, NORMAL, 85, 15 + move MEGA_PUNCH, NO_ADDITIONAL_EFFECT, 80, NORMAL, 85, 20 + move PAY_DAY, PAY_DAY_EFFECT, 40, NORMAL, 100, 20 + move FIRE_PUNCH, BURN_SIDE_EFFECT1, 75, FIRE, 100, 15 + move ICE_PUNCH, FREEZE_SIDE_EFFECT, 75, ICE, 100, 15 + move THUNDERPUNCH, PARALYZE_SIDE_EFFECT1, 75, ELECTRIC, 100, 15 + move SCRATCH, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35 + move VICEGRIP, NO_ADDITIONAL_EFFECT, 55, NORMAL, 100, 30 + move GUILLOTINE, OHKO_EFFECT, 1, NORMAL, 30, 5 + move RAZOR_WIND, CHARGE_EFFECT, 80, NORMAL, 75, 10 + move SWORDS_DANCE, ATTACK_UP2_EFFECT, 0, NORMAL, 100, 30 + move CUT, NO_ADDITIONAL_EFFECT, 50, NORMAL, 95, 30 + move GUST, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35 + move WING_ATTACK, NO_ADDITIONAL_EFFECT, 35, FLYING, 100, 35 + move WHIRLWIND, SWITCH_AND_TELEPORT_EFFECT, 0, NORMAL, 85, 20 + move FLY, FLY_EFFECT, 70, FLYING, 95, 15 + move BIND, TRAPPING_EFFECT, 15, NORMAL, 75, 20 + move SLAM, NO_ADDITIONAL_EFFECT, 80, NORMAL, 75, 20 + move VINE_WHIP, NO_ADDITIONAL_EFFECT, 35, GRASS, 100, 10 + move STOMP, FLINCH_SIDE_EFFECT2, 65, NORMAL, 100, 20 + move DOUBLE_KICK, ATTACK_TWICE_EFFECT, 30, FIGHTING, 100, 30 + move MEGA_KICK, NO_ADDITIONAL_EFFECT, 120, NORMAL, 75, 5 + move JUMP_KICK, JUMP_KICK_EFFECT, 70, FIGHTING, 95, 25 + move ROLLING_KICK, FLINCH_SIDE_EFFECT2, 60, FIGHTING, 85, 15 + move SAND_ATTACK, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 100, 15 + move HEADBUTT, FLINCH_SIDE_EFFECT2, 70, NORMAL, 100, 15 + move HORN_ATTACK, NO_ADDITIONAL_EFFECT, 65, NORMAL, 100, 25 + move FURY_ATTACK, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 20 + move HORN_DRILL, OHKO_EFFECT, 1, NORMAL, 30, 5 + move TACKLE, NO_ADDITIONAL_EFFECT, 35, NORMAL, 95, 35 + move BODY_SLAM, PARALYZE_SIDE_EFFECT2, 85, NORMAL, 100, 15 + move WRAP, TRAPPING_EFFECT, 15, NORMAL, 85, 20 + move TAKE_DOWN, RECOIL_EFFECT, 90, NORMAL, 85, 20 + move THRASH, THRASH_PETAL_DANCE_EFFECT, 90, NORMAL, 100, 20 + move DOUBLE_EDGE, RECOIL_EFFECT, 100, NORMAL, 100, 15 + move TAIL_WHIP, DEFENSE_DOWN1_EFFECT, 0, NORMAL, 100, 30 + move POISON_STING, POISON_SIDE_EFFECT1, 15, POISON, 100, 35 + move TWINEEDLE, TWINEEDLE_EFFECT, 25, BUG, 100, 20 + move PIN_MISSILE, TWO_TO_FIVE_ATTACKS_EFFECT, 14, BUG, 85, 20 + move LEER, DEFENSE_DOWN1_EFFECT, 0, NORMAL, 100, 30 + move BITE, FLINCH_SIDE_EFFECT1, 60, NORMAL, 100, 25 + move GROWL, ATTACK_DOWN1_EFFECT, 0, NORMAL, 100, 40 + move ROAR, SWITCH_AND_TELEPORT_EFFECT, 0, NORMAL, 100, 20 + move SING, SLEEP_EFFECT, 0, NORMAL, 55, 15 + move SUPERSONIC, CONFUSION_EFFECT, 0, NORMAL, 55, 20 + move SONICBOOM, SPECIAL_DAMAGE_EFFECT, 1, NORMAL, 90, 20 + move DISABLE, DISABLE_EFFECT, 0, NORMAL, 55, 20 + move ACID, DEFENSE_DOWN_SIDE_EFFECT, 40, POISON, 100, 30 + move EMBER, BURN_SIDE_EFFECT1, 40, FIRE, 100, 25 + move FLAMETHROWER, BURN_SIDE_EFFECT1, 95, FIRE, 100, 15 + move MIST, MIST_EFFECT, 0, ICE, 100, 30 + move WATER_GUN, NO_ADDITIONAL_EFFECT, 40, WATER, 100, 25 + move HYDRO_PUMP, NO_ADDITIONAL_EFFECT, 120, WATER, 80, 5 + move SURF, NO_ADDITIONAL_EFFECT, 95, WATER, 100, 15 + move ICE_BEAM, FREEZE_SIDE_EFFECT, 95, ICE, 100, 10 + move BLIZZARD, FREEZE_SIDE_EFFECT, 120, ICE, 90, 5 + move PSYBEAM, CONFUSION_SIDE_EFFECT, 65, PSYCHIC_TYPE, 100, 20 + move BUBBLEBEAM, SPEED_DOWN_SIDE_EFFECT, 65, WATER, 100, 20 + move AURORA_BEAM, ATTACK_DOWN_SIDE_EFFECT, 65, ICE, 100, 20 + move HYPER_BEAM, HYPER_BEAM_EFFECT, 150, NORMAL, 90, 5 + move PECK, NO_ADDITIONAL_EFFECT, 35, FLYING, 100, 35 + move DRILL_PECK, NO_ADDITIONAL_EFFECT, 80, FLYING, 100, 20 + move SUBMISSION, RECOIL_EFFECT, 80, FIGHTING, 80, 25 + move LOW_KICK, FLINCH_SIDE_EFFECT2, 50, FIGHTING, 90, 20 + move COUNTER, NO_ADDITIONAL_EFFECT, 1, FIGHTING, 100, 20 + move SEISMIC_TOSS, SPECIAL_DAMAGE_EFFECT, 1, FIGHTING, 100, 20 + move STRENGTH, NO_ADDITIONAL_EFFECT, 80, NORMAL, 100, 15 + move ABSORB, DRAIN_HP_EFFECT, 20, GRASS, 100, 20 + move MEGA_DRAIN, DRAIN_HP_EFFECT, 40, GRASS, 100, 10 + move LEECH_SEED, LEECH_SEED_EFFECT, 0, GRASS, 90, 10 + move GROWTH, SPECIAL_UP1_EFFECT, 0, NORMAL, 100, 40 + move RAZOR_LEAF, NO_ADDITIONAL_EFFECT, 55, GRASS, 95, 25 + move SOLARBEAM, CHARGE_EFFECT, 120, GRASS, 100, 10 + move POISONPOWDER, POISON_EFFECT, 0, POISON, 75, 35 + move STUN_SPORE, PARALYZE_EFFECT, 0, GRASS, 75, 30 + move SLEEP_POWDER, SLEEP_EFFECT, 0, GRASS, 75, 15 + move PETAL_DANCE, THRASH_PETAL_DANCE_EFFECT, 70, GRASS, 100, 20 + move STRING_SHOT, SPEED_DOWN1_EFFECT, 0, BUG, 95, 40 + move DRAGON_RAGE, SPECIAL_DAMAGE_EFFECT, 1, DRAGON, 100, 10 + move FIRE_SPIN, TRAPPING_EFFECT, 15, FIRE, 70, 15 + move THUNDERSHOCK, PARALYZE_SIDE_EFFECT1, 40, ELECTRIC, 100, 30 + move THUNDERBOLT, PARALYZE_SIDE_EFFECT1, 95, ELECTRIC, 100, 15 + move THUNDER_WAVE, PARALYZE_EFFECT, 0, ELECTRIC, 100, 20 + move THUNDER, PARALYZE_SIDE_EFFECT1, 120, ELECTRIC, 70, 10 + move ROCK_THROW, NO_ADDITIONAL_EFFECT, 50, ROCK, 65, 15 + move EARTHQUAKE, NO_ADDITIONAL_EFFECT, 100, GROUND, 100, 10 + move FISSURE, OHKO_EFFECT, 1, GROUND, 30, 5 + move DIG, CHARGE_EFFECT, 100, GROUND, 100, 10 + move TOXIC, POISON_EFFECT, 0, POISON, 85, 10 + move CONFUSION, CONFUSION_SIDE_EFFECT, 50, PSYCHIC_TYPE, 100, 25 + move PSYCHIC_M, SPECIAL_DOWN_SIDE_EFFECT, 90, PSYCHIC_TYPE, 100, 10 + move HYPNOSIS, SLEEP_EFFECT, 0, PSYCHIC_TYPE, 60, 20 + move MEDITATE, ATTACK_UP1_EFFECT, 0, PSYCHIC_TYPE, 100, 40 + move AGILITY, SPEED_UP2_EFFECT, 0, PSYCHIC_TYPE, 100, 30 + move QUICK_ATTACK, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 30 + move RAGE, RAGE_EFFECT, 20, NORMAL, 100, 20 + move TELEPORT, SWITCH_AND_TELEPORT_EFFECT, 0, PSYCHIC_TYPE, 100, 20 + move NIGHT_SHADE, SPECIAL_DAMAGE_EFFECT, 0, GHOST, 100, 15 + move MIMIC, MIMIC_EFFECT, 0, NORMAL, 100, 10 + move SCREECH, DEFENSE_DOWN2_EFFECT, 0, NORMAL, 85, 40 + move DOUBLE_TEAM, EVASION_UP1_EFFECT, 0, NORMAL, 100, 15 + move RECOVER, HEAL_EFFECT, 0, NORMAL, 100, 20 + move HARDEN, DEFENSE_UP1_EFFECT, 0, NORMAL, 100, 30 + move MINIMIZE, EVASION_UP1_EFFECT, 0, NORMAL, 100, 20 + move SMOKESCREEN, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 100, 20 + move CONFUSE_RAY, CONFUSION_EFFECT, 0, GHOST, 100, 10 + move WITHDRAW, DEFENSE_UP1_EFFECT, 0, WATER, 100, 40 + move DEFENSE_CURL, DEFENSE_UP1_EFFECT, 0, NORMAL, 100, 40 + move BARRIER, DEFENSE_UP2_EFFECT, 0, PSYCHIC_TYPE, 100, 30 + move LIGHT_SCREEN, LIGHT_SCREEN_EFFECT, 0, PSYCHIC_TYPE, 100, 30 + move HAZE, HAZE_EFFECT, 0, ICE, 100, 30 + move REFLECT, REFLECT_EFFECT, 0, PSYCHIC_TYPE, 100, 20 + move FOCUS_ENERGY, FOCUS_ENERGY_EFFECT, 0, NORMAL, 100, 30 + move BIDE, BIDE_EFFECT, 0, NORMAL, 100, 10 + move METRONOME, METRONOME_EFFECT, 0, NORMAL, 100, 10 + move MIRROR_MOVE, MIRROR_MOVE_EFFECT, 0, FLYING, 100, 20 + move SELFDESTRUCT, EXPLODE_EFFECT, 130, NORMAL, 100, 5 + move EGG_BOMB, NO_ADDITIONAL_EFFECT, 100, NORMAL, 75, 10 + move LICK, PARALYZE_SIDE_EFFECT2, 20, GHOST, 100, 30 + move SMOG, POISON_SIDE_EFFECT2, 20, POISON, 70, 20 + move SLUDGE, POISON_SIDE_EFFECT2, 65, POISON, 100, 20 + move BONE_CLUB, FLINCH_SIDE_EFFECT1, 65, GROUND, 85, 20 + move FIRE_BLAST, BURN_SIDE_EFFECT2, 120, FIRE, 85, 5 + move WATERFALL, NO_ADDITIONAL_EFFECT, 80, WATER, 100, 15 + move CLAMP, TRAPPING_EFFECT, 35, WATER, 75, 10 + move SWIFT, SWIFT_EFFECT, 60, NORMAL, 100, 20 + move SKULL_BASH, CHARGE_EFFECT, 100, NORMAL, 100, 15 + move SPIKE_CANNON, TWO_TO_FIVE_ATTACKS_EFFECT, 20, NORMAL, 100, 15 + move CONSTRICT, SPEED_DOWN_SIDE_EFFECT, 10, NORMAL, 100, 35 + move AMNESIA, SPECIAL_UP2_EFFECT, 0, PSYCHIC_TYPE, 100, 20 + move KINESIS, ACCURACY_DOWN1_EFFECT, 0, PSYCHIC_TYPE, 80, 15 + move SOFTBOILED, HEAL_EFFECT, 0, NORMAL, 100, 10 + move HI_JUMP_KICK, JUMP_KICK_EFFECT, 85, FIGHTING, 90, 20 + move GLARE, PARALYZE_EFFECT, 0, NORMAL, 75, 30 + move DREAM_EATER, DREAM_EATER_EFFECT, 100, PSYCHIC_TYPE, 100, 15 + move POISON_GAS, POISON_EFFECT, 0, POISON, 55, 40 + move BARRAGE, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 20 + move LEECH_LIFE, DRAIN_HP_EFFECT, 20, BUG, 100, 15 + move LOVELY_KISS, SLEEP_EFFECT, 0, NORMAL, 75, 10 + move SKY_ATTACK, CHARGE_EFFECT, 140, FLYING, 90, 5 + move TRANSFORM, TRANSFORM_EFFECT, 0, NORMAL, 100, 10 + move BUBBLE, SPEED_DOWN_SIDE_EFFECT, 20, WATER, 100, 30 + move DIZZY_PUNCH, NO_ADDITIONAL_EFFECT, 70, NORMAL, 100, 10 + move SPORE, SLEEP_EFFECT, 0, GRASS, 100, 15 + move FLASH, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 70, 20 + move PSYWAVE, SPECIAL_DAMAGE_EFFECT, 1, PSYCHIC_TYPE, 80, 15 + move SPLASH, SPLASH_EFFECT, 0, NORMAL, 100, 40 + move ACID_ARMOR, DEFENSE_UP2_EFFECT, 0, POISON, 100, 40 + move CRABHAMMER, NO_ADDITIONAL_EFFECT, 90, WATER, 85, 10 + move EXPLOSION, EXPLODE_EFFECT, 170, NORMAL, 100, 5 + move FURY_SWIPES, TWO_TO_FIVE_ATTACKS_EFFECT, 18, NORMAL, 80, 15 + move BONEMERANG, ATTACK_TWICE_EFFECT, 50, GROUND, 90, 10 + move REST, HEAL_EFFECT, 0, PSYCHIC_TYPE, 100, 10 + move ROCK_SLIDE, NO_ADDITIONAL_EFFECT, 75, ROCK, 90, 10 + move HYPER_FANG, FLINCH_SIDE_EFFECT1, 80, NORMAL, 90, 15 + move SHARPEN, ATTACK_UP1_EFFECT, 0, NORMAL, 100, 30 + move CONVERSION, CONVERSION_EFFECT, 0, NORMAL, 100, 30 + move TRI_ATTACK, NO_ADDITIONAL_EFFECT, 80, NORMAL, 100, 10 + move SUPER_FANG, SUPER_FANG_EFFECT, 1, NORMAL, 90, 10 + move SLASH, NO_ADDITIONAL_EFFECT, 70, NORMAL, 100, 20 + move SUBSTITUTE, SUBSTITUTE_EFFECT, 0, NORMAL, 100, 10 + move STRUGGLE, RECOIL_EFFECT, 50, NORMAL, 100, 10 diff --git a/text/move_names.asm b/data/moves/names.asm similarity index 100% rename from text/move_names.asm rename to data/moves/names.asm diff --git a/data/moves/sfx.asm b/data/moves/sfx.asm new file mode 100644 index 000000000..c1f12084c --- /dev/null +++ b/data/moves/sfx.asm @@ -0,0 +1,168 @@ +MoveSoundTable: + ; ID, pitch mod, tempo mod + db SFX_POUND, $00, $80 ; POUND + db SFX_BATTLE_0C, $10, $80 ; KARATE_CHOP + db SFX_DOUBLESLAP, $00, $80 ; DOUBLESLAP + db SFX_BATTLE_0B, $01, $80 ; COMET_PUNCH + db SFX_BATTLE_0D, $00, $40 ; MEGA_PUNCH + db SFX_SILPH_SCOPE, $00, $ff ; PAY_DAY + db SFX_BATTLE_0D, $10, $60 ; FIRE_PUNCH + db SFX_BATTLE_0D, $20, $80 ; ICE_PUNCH + db SFX_BATTLE_0D, $00, $a0 ; THUNDERPUNCH + db SFX_DAMAGE, $00, $80 ; SCRATCH + db SFX_BATTLE_0F, $20, $40 ; VICEGRIP + db SFX_BATTLE_0F, $00, $80 ; GUILLOTINE + db SFX_BATTLE_0E, $00, $a0 ; RAZOR_WIND + db SFX_NOT_VERY_EFFECTIVE, $10, $c0 ; SWORDS_DANCE + db SFX_NOT_VERY_EFFECTIVE, $00, $a0 ; CUT + db SFX_BATTLE_12, $00, $c0 ; GUST + db SFX_BATTLE_12, $10, $a0 ; WING_ATTACK + db SFX_BATTLE_13, $00, $e0 ; WHIRLWIND + db SFX_NOT_VERY_EFFECTIVE, $20, $c0 ; FLY + db SFX_BATTLE_14, $00, $80 ; BIND + db SFX_BATTLE_22, $00, $80 ; SLAM + db SFX_VINE_WHIP, $01, $80 ; VINE_WHIP + db SFX_BATTLE_20, $00, $80 ; STOMP + db SFX_BATTLE_17, $f0, $40 ; DOUBLE_KICK + db SFX_SUPER_EFFECTIVE, $00, $80 ; MEGA_KICK + db SFX_BATTLE_17, $00, $80 ; JUMP_KICK + db SFX_BATTLE_21, $10, $80 ; ROLLING_KICK + db SFX_BATTLE_1B, $01, $a0 ; SAND_ATTACK + db SFX_BATTLE_18, $00, $80 ; HEADBUTT + db SFX_BATTLE_1E, $00, $60 ; HORN_ATTACK + db SFX_BATTLE_1E, $01, $40 ; FURY_ATTACK + db SFX_HORN_DRILL, $00, $a0 ; HORN_DRILL + db SFX_SUPER_EFFECTIVE, $10, $a0 ; TACKLE + db SFX_BATTLE_20, $00, $c0 ; BODY_SLAM + db SFX_BATTLE_14, $10, $60 ; WRAP + db SFX_SUPER_EFFECTIVE, $00, $a0 ; TAKE_DOWN + db SFX_BATTLE_22, $11, $c0 ; THRASH + db SFX_SUPER_EFFECTIVE, $20, $c0 ; DOUBLE_EDGE + db SFX_BATTLE_21, $00, $80 ; TAIL_WHIP + db SFX_BATTLE_1B, $00, $80 ; POISON_STING + db SFX_BATTLE_1B, $20, $c0 ; TWINEEDLE + db SFX_BATTLE_19, $00, $80 ; PIN_MISSILE + db SFX_BATTLE_31, $ff, $40 ; LEER + db SFX_BATTLE_1E, $00, $80 ; BITE + db SFX_BATTLE_0B, $00, $c0 ; GROWL + db SFX_BATTLE_0B, $00, $40 ; ROAR + db SFX_BATTLE_35, $00, $80 ; SING + db SFX_BATTLE_27, $40, $60 ; SUPERSONIC + db SFX_BATTLE_27, $00, $80 ; SONICBOOM + db SFX_BATTLE_27, $ff, $40 ; DISABLE + db SFX_BATTLE_2A, $80, $c0 ; ACID + db SFX_BATTLE_19, $10, $a0 ; EMBER + db SFX_BATTLE_19, $21, $e0 ; FLAMETHROWER + db SFX_BATTLE_29, $00, $80 ; MIST + db SFX_BATTLE_24, $20, $60 ; WATER_GUN + db SFX_BATTLE_2A, $00, $80 ; HYDRO_PUMP + db SFX_BATTLE_2C, $00, $80 ; SURF + db SFX_BATTLE_28, $40, $80 ; ICE_BEAM + db SFX_BATTLE_29, $f0, $e0 ; BLIZZARD + db SFX_PSYBEAM, $00, $80 ; PSYBEAM + db SFX_BATTLE_2A, $f0, $60 ; BUBBLEBEAM + db SFX_BATTLE_28, $00, $80 ; AURORA_BEAM + db SFX_BATTLE_36, $00, $80 ; HYPER_BEAM + db SFX_PECK, $01, $a0 ; PECK + db SFX_BATTLE_13, $f0, $20 ; DRILL_PECK + db SFX_BATTLE_23, $01, $c0 ; SUBMISSION + db SFX_BATTLE_23, $00, $80 ; LOW_KICK + db SFX_SUPER_EFFECTIVE, $00, $e0 ; COUNTER + db SFX_BATTLE_26, $01, $60 ; SEISMIC_TOSS + db SFX_BATTLE_26, $20, $40 ; STRENGTH + db SFX_BATTLE_24, $00, $80 ; ABSORB + db SFX_BATTLE_24, $40, $c0 ; MEGA_DRAIN + db SFX_BATTLE_1B, $03, $60 ; LEECH_SEED + db SFX_BATTLE_25, $11, $e0 ; GROWTH + db SFX_BATTLE_12, $20, $e0 ; RAZOR_LEAF + db SFX_BATTLE_2E, $00, $80 ; SOLARBEAM + db SFX_BATTLE_1C, $00, $80 ; POISONPOWDER + db SFX_BATTLE_1C, $11, $a0 ; STUN_SPORE + db SFX_BATTLE_1C, $01, $c0 ; SLEEP_POWDER + db SFX_BATTLE_13, $14, $c0 ; PETAL_DANCE + db SFX_BATTLE_1B, $02, $a0 ; STRING_SHOT + db SFX_BATTLE_29, $f0, $80 ; DRAGON_RAGE + db SFX_BATTLE_29, $20, $c0 ; FIRE_SPIN + db SFX_BATTLE_2F, $00, $20 ; THUNDERSHOCK + db SFX_BATTLE_2F, $20, $80 ; THUNDERBOLT + db SFX_BATTLE_2E, $12, $60 ; THUNDER_WAVE + db SFX_BATTLE_26, $00, $80 ; THUNDER + db SFX_BATTLE_14, $01, $e0 ; ROCK_THROW + db SFX_BATTLE_29, $0f, $e0 ; EARTHQUAKE + db SFX_BATTLE_29, $11, $20 ; FISSURE + db SFX_DAMAGE, $10, $40 ; DIG + db SFX_BATTLE_0F, $10, $c0 ; TOXIC + db SFX_BATTLE_14, $00, $20 ; CONFUSION + db SFX_PSYCHIC_M, $00, $80 ; PSYCHIC_M + db SFX_BATTLE_35, $11, $18 ; HYPNOSIS + db SFX_BATTLE_09, $20, $c0 ; MEDITATE + db SFX_FAINT_FALL, $20, $c0 ; AGILITY + db SFX_BATTLE_25, $00, $10 ; QUICK_ATTACK + db SFX_BATTLE_26, $f0, $20 ; RAGE + db SFX_BATTLE_33, $f0, $c0 ; TELEPORT + db SFX_NOT_VERY_EFFECTIVE, $f0, $e0 ; NIGHT_SHADE + db SFX_BATTLE_09, $f0, $40 ; MIMIC + db SFX_BATTLE_31, $00, $80 ; SCREECH + db SFX_BATTLE_33, $80, $40 ; DOUBLE_TEAM + db SFX_BATTLE_33, $00, $80 ; RECOVER + db SFX_BATTLE_14, $11, $20 ; HARDEN + db SFX_BATTLE_14, $22, $10 ; MINIMIZE + db SFX_BATTLE_1B, $f1, $ff ; SMOKESCREEN + db SFX_BATTLE_13, $f1, $ff ; CONFUSE_RAY + db SFX_BATTLE_14, $33, $30 ; WITHDRAW + db SFX_BATTLE_32, $40, $c0 ; DEFENSE_CURL + db SFX_BATTLE_0E, $20, $20 ; BARRIER + db SFX_BATTLE_0E, $f0, $10 ; LIGHT_SCREEN + db SFX_BATTLE_0F, $f8, $10 ; HAZE + db SFX_NOT_VERY_EFFECTIVE, $f0, $10 ; REFLECT + db SFX_BATTLE_25, $00, $80 ; FOCUS_ENERGY + db SFX_BATTLE_18, $00, $c0 ; BIDE + db SFX_BATTLE_32, $c0, $ff ; METRONOME + db SFX_BATTLE_09, $f2, $20 ; MIRROR_MOVE + db SFX_BATTLE_34, $00, $80 ; SELFDESTRUCT + db SFX_BATTLE_34, $00, $40 ; EGG_BOMB + db SFX_BATTLE_09, $00, $40 ; LICK + db SFX_NOT_VERY_EFFECTIVE, $10, $ff ; SMOG + db SFX_BATTLE_2A, $20, $20 ; SLUDGE + db SFX_BATTLE_32, $00, $80 ; BONE_CLUB + db SFX_BATTLE_29, $1f, $20 ; FIRE_BLAST + db SFX_BATTLE_25, $2f, $80 ; WATERFALL + db SFX_BATTLE_0F, $1f, $ff ; CLAMP + db SFX_BATTLE_2B, $1f, $60 ; SWIFT + db SFX_BATTLE_26, $1e, $20 ; SKULL_BASH + db SFX_BATTLE_26, $1f, $18 ; SPIKE_CANNON + db SFX_BATTLE_14, $0f, $80 ; CONSTRICT + db SFX_BATTLE_09, $f8, $10 ; AMNESIA + db SFX_FAINT_FALL, $18, $20 ; KINESIS + db SFX_BATTLE_32, $08, $40 ; SOFTBOILED + db SFX_BATTLE_17, $01, $e0 ; HI_JUMP_KICK + db SFX_NOT_VERY_EFFECTIVE, $09, $ff ; GLARE + db SFX_BATTLE_35, $42, $01 ; DREAM_EATER + db SFX_BATTLE_1C, $00, $ff ; POISON_GAS + db SFX_BATTLE_32, $08, $e0 ; BARRAGE + db SFX_BATTLE_24, $00, $80 ; LEECH_LIFE + db SFX_BATTLE_09, $88, $10 ; LOVELY_KISS + db SFX_BATTLE_25, $48, $ff ; SKY_ATTACK + db SFX_FAINT_FALL, $ff, $ff ; TRANSFORM + db SFX_BATTLE_24, $ff, $10 ; BUBBLE + db SFX_FAINT_FALL, $ff, $04 ; DIZZY_PUNCH + db SFX_BATTLE_1C, $01, $ff ; SPORE + db SFX_BATTLE_13, $f8, $ff ; FLASH + db SFX_BATTLE_0C, $f0, $f0 ; PSYWAVE + db SFX_BATTLE_0F, $08, $10 ; SPLASH + db SFX_BATTLE_0D, $f0, $ff ; ACID_ARMOR + db SFX_SUPER_EFFECTIVE, $f0, $ff ; CRABHAMMER + db SFX_BATTLE_34, $10, $ff ; EXPLOSION + db SFX_BATTLE_0E, $f0, $20 ; FURY_SWIPES + db SFX_BATTLE_2B, $f0, $60 ; BONEMERANG + db SFX_BATTLE_21, $12, $10 ; REST + db SFX_BATTLE_36, $f0, $20 ; ROCK_SLIDE + db SFX_BATTLE_1E, $12, $ff ; HYPER_FANG + db SFX_BATTLE_31, $80, $04 ; SHARPEN + db SFX_BATTLE_33, $f0, $10 ; CONVERSION + db SFX_BATTLE_29, $f8, $ff ; TRI_ATTACK + db SFX_BATTLE_26, $f0, $ff ; SUPER_FANG + db SFX_NOT_VERY_EFFECTIVE, $01, $ff ; SLASH + db SFX_BATTLE_2C, $d8, $04 ; SUBSTITUTE + db SFX_BATTLE_0B, $00, $80 ; STRUGGLE + db SFX_BATTLE_0B, $00, $80 diff --git a/data/moves/tmhm_moves.asm b/data/moves/tmhm_moves.asm new file mode 100755 index 000000000..a313af284 --- /dev/null +++ b/data/moves/tmhm_moves.asm @@ -0,0 +1,30 @@ +; The add_hm and add_tm macros in constants/item_constants.asm simultaneously +; define constants for the item IDs and for the corresponding move values. + +TechnicalMachines: + +n = 1 +REPT NUM_TMS +IF n < 10 +MOVE_FOR_TM EQUS "TM0{d:n}_MOVE" +ELSE +MOVE_FOR_TM EQUS "TM{d:n}_MOVE" +ENDC + db MOVE_FOR_TM +PURGE MOVE_FOR_TM +n = n + 1 +ENDR + +n = 1 +REPT NUM_HMS +IF n < 10 +MOVE_FOR_HM EQUS "HM0{d:n}_MOVE" +ELSE +MOVE_FOR_HM EQUS "HM{d:n}_MOVE" +ENDC + db MOVE_FOR_HM +PURGE MOVE_FOR_HM +n = n + 1 +ENDR + + db -1 ; end diff --git a/data/player_names.asm b/data/player_names.asm new file mode 100644 index 000000000..cf461a7a2 --- /dev/null +++ b/data/player_names.asm @@ -0,0 +1,13 @@ +DefaultNamesPlayer: + db "NEW NAME" + next "YELLOW" + next "ASH" + next "JACK" + db "@" + +DefaultNamesRival: + db "NEW NAME" + next "BLUE" + next "GARY" + next "JOHN" + db "@" diff --git a/data/player_names_list.asm b/data/player_names_list.asm new file mode 100644 index 000000000..a5f389190 --- /dev/null +++ b/data/player_names_list.asm @@ -0,0 +1,11 @@ +DefaultNamesPlayerList: + db "NEW NAME@" + db "YELLOW@" + db "ASH@" + db "JACK@" + +DefaultNamesRivalList: + db "NEW NAME@" + db "BLUE@" + db "GARY@" + db "JOHN@" diff --git a/data/pokedex_entries.asm b/data/pokedex_entries.asm deleted file mode 100755 index a1dad53ad..000000000 --- a/data/pokedex_entries.asm +++ /dev/null @@ -1,1265 +0,0 @@ -PokedexEntryPointers: - dw RhydonDexEntry - dw KangaskhanDexEntry - dw NidoranMDexEntry - dw ClefairyDexEntry - dw SpearowDexEntry - dw VoltorbDexEntry - dw NidokingDexEntry - dw SlowbroDexEntry - dw IvysaurDexEntry - dw ExeggutorDexEntry - dw LickitungDexEntry - dw ExeggcuteDexEntry - dw GrimerDexEntry - dw GengarDexEntry - dw NidoranFDexEntry - dw NidoqueenDexEntry - dw CuboneDexEntry - dw RhyhornDexEntry - dw LaprasDexEntry - dw ArcanineDexEntry - dw MewDexEntry - dw GyaradosDexEntry - dw ShellderDexEntry - dw TentacoolDexEntry - dw GastlyDexEntry - dw ScytherDexEntry - dw StaryuDexEntry - dw BlastoiseDexEntry - dw PinsirDexEntry - dw TangelaDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw GrowlitheDexEntry - dw OnixDexEntry - dw FearowDexEntry - dw PidgeyDexEntry - dw SlowpokeDexEntry - dw KadabraDexEntry - dw GravelerDexEntry - dw ChanseyDexEntry - dw MachokeDexEntry - dw MrMimeDexEntry - dw HitmonleeDexEntry - dw HitmonchanDexEntry - dw ArbokDexEntry - dw ParasectDexEntry - dw PsyduckDexEntry - dw DrowzeeDexEntry - dw GolemDexEntry - dw MissingNoDexEntry - dw MagmarDexEntry - dw MissingNoDexEntry - dw ElectabuzzDexEntry - dw MagnetonDexEntry - dw KoffingDexEntry - dw MissingNoDexEntry - dw MankeyDexEntry - dw SeelDexEntry - dw DiglettDexEntry - dw TaurosDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw FarfetchdDexEntry - dw VenonatDexEntry - dw DragoniteDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw DoduoDexEntry - dw PoliwagDexEntry - dw JynxDexEntry - dw MoltresDexEntry - dw ArticunoDexEntry - dw ZapdosDexEntry - dw DittoDexEntry - dw MeowthDexEntry - dw KrabbyDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw VulpixDexEntry - dw NinetalesDexEntry - dw PikachuDexEntry - dw RaichuDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw DratiniDexEntry - dw DragonairDexEntry - dw KabutoDexEntry - dw KabutopsDexEntry - dw HorseaDexEntry - dw SeadraDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw SandshrewDexEntry - dw SandslashDexEntry - dw OmanyteDexEntry - dw OmastarDexEntry - dw JigglypuffDexEntry - dw WigglytuffDexEntry - dw EeveeDexEntry - dw FlareonDexEntry - dw JolteonDexEntry - dw VaporeonDexEntry - dw MachopDexEntry - dw ZubatDexEntry - dw EkansDexEntry - dw ParasDexEntry - dw PoliwhirlDexEntry - dw PoliwrathDexEntry - dw WeedleDexEntry - dw KakunaDexEntry - dw BeedrillDexEntry - dw MissingNoDexEntry - dw DodrioDexEntry - dw PrimeapeDexEntry - dw DugtrioDexEntry - dw VenomothDexEntry - dw DewgongDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw CaterpieDexEntry - dw MetapodDexEntry - dw ButterfreeDexEntry - dw MachampDexEntry - dw MissingNoDexEntry - dw GolduckDexEntry - dw HypnoDexEntry - dw GolbatDexEntry - dw MewtwoDexEntry - dw SnorlaxDexEntry - dw MagikarpDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw MukDexEntry - dw MissingNoDexEntry - dw KinglerDexEntry - dw CloysterDexEntry - dw MissingNoDexEntry - dw ElectrodeDexEntry - dw ClefableDexEntry - dw WeezingDexEntry - dw PersianDexEntry - dw MarowakDexEntry - dw MissingNoDexEntry - dw HaunterDexEntry - dw AbraDexEntry - dw AlakazamDexEntry - dw PidgeottoDexEntry - dw PidgeotDexEntry - dw StarmieDexEntry - dw BulbasaurDexEntry - dw VenusaurDexEntry - dw TentacruelDexEntry - dw MissingNoDexEntry - dw GoldeenDexEntry - dw SeakingDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw PonytaDexEntry - dw RapidashDexEntry - dw RattataDexEntry - dw RaticateDexEntry - dw NidorinoDexEntry - dw NidorinaDexEntry - dw GeodudeDexEntry - dw PorygonDexEntry - dw AerodactylDexEntry - dw MissingNoDexEntry - dw MagnemiteDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw CharmanderDexEntry - dw SquirtleDexEntry - dw CharmeleonDexEntry - dw WartortleDexEntry - dw CharizardDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw MissingNoDexEntry - dw OddishDexEntry - dw GloomDexEntry - dw VileplumeDexEntry - dw BellsproutDexEntry - dw WeepinbellDexEntry - dw VictreebelDexEntry - -; string: species name -; height in feet, inches -; weight in pounds -; text entry - -BulbasaurDexEntry: - db "SEED@" - db 2,4 - dw 150 - TX_FAR _BulbasaurDexEntry - db "@" - -IvysaurDexEntry: - db "SEED@" - db 3,3 - dw 290 - TX_FAR _IvysaurDexEntry - db "@" - -VenusaurDexEntry: - db "SEED@" - db 6,7 - dw 2210 - TX_FAR _VenusaurDexEntry - db "@" - -CharmanderDexEntry: - db "LIZARD@" - db 2,0 - dw 190 - TX_FAR _CharmanderDexEntry - db "@" - -CharmeleonDexEntry: - db "FLAME@" - db 3,7 - dw 420 - TX_FAR _CharmeleonDexEntry - db "@" - -CharizardDexEntry: - db "FLAME@" - db 5,7 - dw 2000 - TX_FAR _CharizardDexEntry - db "@" - -SquirtleDexEntry: - db "TINYTURTLE@" - db 1,8 - dw 200 - TX_FAR _SquirtleDexEntry - db "@" - -WartortleDexEntry: - db "TURTLE@" - db 3,3 - dw 500 - TX_FAR _WartortleDexEntry - db "@" - -BlastoiseDexEntry: - db "SHELLFISH@" - db 5,3 - dw 1890 - TX_FAR _BlastoiseDexEntry - db "@" - -CaterpieDexEntry: - db "WORM@" - db 1,0 - dw 60 - TX_FAR _CaterpieDexEntry - db "@" - -MetapodDexEntry: - db "COCOON@" - db 2,4 - dw 220 - TX_FAR _MetapodDexEntry - db "@" - -ButterfreeDexEntry: - db "BUTTERFLY@" - db 3,7 - dw 710 - TX_FAR _ButterfreeDexEntry - db "@" - -WeedleDexEntry: - db "HAIRY BUG@" - db 1,0 - dw 70 - TX_FAR _WeedleDexEntry - db "@" - -KakunaDexEntry: - db "COCOON@" - db 2,0 - dw 220 - TX_FAR _KakunaDexEntry - db "@" - -BeedrillDexEntry: - db "POISON BEE@" - db 3,3 - dw 650 - TX_FAR _BeedrillDexEntry - db "@" - -PidgeyDexEntry: - db "TINY BIRD@" - db 1,0 - dw 40 - TX_FAR _PidgeyDexEntry - db "@" - -PidgeottoDexEntry: - db "BIRD@" - db 3,7 - dw 660 - TX_FAR _PidgeottoDexEntry - db "@" - -PidgeotDexEntry: - db "BIRD@" - db 4,11 - dw 870 - TX_FAR _PidgeotDexEntry - db "@" - -RattataDexEntry: - db "RAT@" - db 1,0 - dw 80 - TX_FAR _RattataDexEntry - db "@" - -RaticateDexEntry: - db "RAT@" - db 2,4 - dw 410 - TX_FAR _RaticateDexEntry - db "@" - -SpearowDexEntry: - db "TINY BIRD@" - db 1,0 - dw 40 - TX_FAR _SpearowDexEntry - db "@" - -FearowDexEntry: - db "BEAK@" - db 3,11 - dw 840 - TX_FAR _FearowDexEntry - db "@" - -EkansDexEntry: - db "SNAKE@" - db 6,7 - dw 150 - TX_FAR _EkansDexEntry - db "@" - -ArbokDexEntry: - db "COBRA@" - db 11,6 - dw 1430 - TX_FAR _ArbokDexEntry - db "@" - -PikachuDexEntry: - db "MOUSE@" - db 1,4 - dw 130 - TX_FAR _PikachuDexEntry - db "@" - -RaichuDexEntry: - db "MOUSE@" - db 2,7 - dw 660 - TX_FAR _RaichuDexEntry - db "@" - -SandshrewDexEntry: - db "MOUSE@" - db 2,0 - dw 260 - TX_FAR _SandshrewDexEntry - db "@" - -SandslashDexEntry: - db "MOUSE@" - db 3,3 - dw 650 - TX_FAR _SandslashDexEntry - db "@" - -NidoranFDexEntry: - db "POISON PIN@" - db 1,4 - dw 150 - TX_FAR _NidoranFDexEntry - db "@" - -NidorinaDexEntry: - db "POISON PIN@" - db 2,7 - dw 440 - TX_FAR _NidorinaDexEntry - db "@" - -NidoqueenDexEntry: - db "DRILL@" - db 4,3 - dw 1320 - TX_FAR _NidoqueenDexEntry - db "@" - -NidoranMDexEntry: - db "POISON PIN@" - db 1,8 - dw 200 - TX_FAR _NidoranMDexEntry - db "@" - -NidorinoDexEntry: - db "POISON PIN@" - db 2,11 - dw 430 - TX_FAR _NidorinoDexEntry - db "@" - -NidokingDexEntry: - db "DRILL@" - db 4,7 - dw 1370 - TX_FAR _NidokingDexEntry - db "@" - -ClefairyDexEntry: - db "FAIRY@" - db 2,0 - dw 170 - TX_FAR _ClefairyDexEntry - db "@" - -ClefableDexEntry: - db "FAIRY@" - db 4,3 - dw 880 - TX_FAR _ClefableDexEntry - db "@" - -VulpixDexEntry: - db "FOX@" - db 2,0 - dw 220 - TX_FAR _VulpixDexEntry - db "@" - -NinetalesDexEntry: - db "FOX@" - db 3,7 - dw 440 - TX_FAR _NinetalesDexEntry - db "@" - -JigglypuffDexEntry: - db "BALLOON@" - db 1,8 - dw 120 - TX_FAR _JigglypuffDexEntry - db "@" - -WigglytuffDexEntry: - db "BALLOON@" - db 3,3 - dw 260 - TX_FAR _WigglytuffDexEntry - db "@" - -ZubatDexEntry: - db "BAT@" - db 2,7 - dw 170 - TX_FAR _ZubatDexEntry - db "@" - -GolbatDexEntry: - db "BAT@" - db 5,3 - dw 1210 - TX_FAR _GolbatDexEntry - db "@" - -OddishDexEntry: - db "WEED@" - db 1,8 - dw 120 - TX_FAR _OddishDexEntry - db "@" - -GloomDexEntry: - db "WEED@" - db 2,7 - dw 190 - TX_FAR _GloomDexEntry - db "@" - -VileplumeDexEntry: - db "FLOWER@" - db 3,11 - dw 410 - TX_FAR _VileplumeDexEntry - db "@" - -ParasDexEntry: - db "MUSHROOM@" - db 1,0 - dw 120 - TX_FAR _ParasDexEntry - db "@" - -ParasectDexEntry: - db "MUSHROOM@" - db 3,3 - dw 650 - TX_FAR _ParasectDexEntry - db "@" - -VenonatDexEntry: - db "INSECT@" - db 3,3 - dw 660 - TX_FAR _VenonatDexEntry - db "@" - -VenomothDexEntry: - db "POISONMOTH@" - db 4,11 - dw 280 - TX_FAR _VenomothDexEntry - db "@" - -DiglettDexEntry: - db "MOLE@" - db 0,8 - dw 20 - TX_FAR _DiglettDexEntry - db "@" - -DugtrioDexEntry: - db "MOLE@" - db 2,4 - dw 730 - TX_FAR _DugtrioDexEntry - db "@" - -MeowthDexEntry: - db "SCRATCHCAT@" - db 1,4 - dw 90 - TX_FAR _MeowthDexEntry - db "@" - -PersianDexEntry: - db "CLASSY CAT@" - db 3,3 - dw 710 - TX_FAR _PersianDexEntry - db "@" - -PsyduckDexEntry: - db "DUCK@" - db 2,7 - dw 430 - TX_FAR _PsyduckDexEntry - db "@" - -GolduckDexEntry: - db "DUCK@" - db 5,7 - dw 1690 - TX_FAR _GolduckDexEntry - db "@" - -MankeyDexEntry: - db "PIG MONKEY@" - db 1,8 - dw 620 - TX_FAR _MankeyDexEntry - db "@" - -PrimeapeDexEntry: - db "PIG MONKEY@" - db 3,3 - dw 710 - TX_FAR _PrimeapeDexEntry - db "@" - -GrowlitheDexEntry: - db "PUPPY@" - db 2,4 - dw 420 - TX_FAR _GrowlitheDexEntry - db "@" - -ArcanineDexEntry: - db "LEGENDARY@" - db 6,3 - dw 3420 - TX_FAR _ArcanineDexEntry - db "@" - -PoliwagDexEntry: - db "TADPOLE@" - db 2,0 - dw 270 - TX_FAR _PoliwagDexEntry - db "@" - -PoliwhirlDexEntry: - db "TADPOLE@" - db 3,3 - dw 440 - TX_FAR _PoliwhirlDexEntry - db "@" - -PoliwrathDexEntry: - db "TADPOLE@" - db 4,3 - dw 1190 - TX_FAR _PoliwrathDexEntry - db "@" - -AbraDexEntry: - db "PSI@" - db 2,11 - dw 430 - TX_FAR _AbraDexEntry - db "@" - -KadabraDexEntry: - db "PSI@" - db 4,3 - dw 1250 - TX_FAR _KadabraDexEntry - db "@" - -AlakazamDexEntry: - db "PSI@" - db 4,11 - dw 1060 - TX_FAR _AlakazamDexEntry - db "@" - -MachopDexEntry: - db "SUPERPOWER@" - db 2,7 - dw 430 - TX_FAR _MachopDexEntry - db "@" - -MachokeDexEntry: - db "SUPERPOWER@" - db 4,11 - dw 1550 - TX_FAR _MachokeDexEntry - db "@" - -MachampDexEntry: - db "SUPERPOWER@" - db 5,3 - dw 2870 - TX_FAR _MachampDexEntry - db "@" - -BellsproutDexEntry: - db "FLOWER@" - db 2,4 - dw 90 - TX_FAR _BellsproutDexEntry - db "@" - -WeepinbellDexEntry: - db "FLYCATCHER@" - db 3,3 - dw 140 - TX_FAR _WeepinbellDexEntry - db "@" - -VictreebelDexEntry: - db "FLYCATCHER@" - db 5,7 - dw 340 - TX_FAR _VictreebelDexEntry - db "@" - -TentacoolDexEntry: - db "JELLYFISH@" - db 2,11 - dw 1000 - TX_FAR _TentacoolDexEntry - db "@" - -TentacruelDexEntry: - db "JELLYFISH@" - db 5,3 - dw 1210 - TX_FAR _TentacruelDexEntry - db "@" - -GeodudeDexEntry: - db "ROCK@" - db 1,4 - dw 440 - TX_FAR _GeodudeDexEntry - db "@" - -GravelerDexEntry: - db "ROCK@" - db 3,3 - dw 2320 - TX_FAR _GravelerDexEntry - db "@" - -GolemDexEntry: - db "MEGATON@" - db 4,7 - dw 6620 - TX_FAR _GolemDexEntry - db "@" - -PonytaDexEntry: - db "FIRE HORSE@" - db 3,3 - dw 660 - TX_FAR _PonytaDexEntry - db "@" - -RapidashDexEntry: - db "FIRE HORSE@" - db 5,7 - dw 2090 - TX_FAR _RapidashDexEntry - db "@" - -SlowpokeDexEntry: - db "DOPEY@" - db 3,11 - dw 790 - TX_FAR _SlowpokeDexEntry - db "@" - -SlowbroDexEntry: - db "HERMITCRAB@" - db 5,3 - dw 1730 - TX_FAR _SlowbroDexEntry - db "@" - -MagnemiteDexEntry: - db "MAGNET@" - db 1,0 - dw 130 - TX_FAR _MagnemiteDexEntry - db "@" - -MagnetonDexEntry: - db "MAGNET@" - db 3,3 - dw 1320 - TX_FAR _MagnetonDexEntry - db "@" - -FarfetchdDexEntry: - db "WILD DUCK@" - db 2,7 - dw 330 - TX_FAR _FarfetchdDexEntry - db "@" - -DoduoDexEntry: - db "TWIN BIRD@" - db 4,7 - dw 860 - TX_FAR _DoduoDexEntry - db "@" - -DodrioDexEntry: - db "TRIPLEBIRD@" - db 5,11 - dw 1880 - TX_FAR _DodrioDexEntry - db "@" - -SeelDexEntry: - db "SEA LION@" - db 3,7 - dw 1980 - TX_FAR _SeelDexEntry - db "@" - -DewgongDexEntry: - db "SEA LION@" - db 5,7 - dw 2650 - TX_FAR _DewgongDexEntry - db "@" - -GrimerDexEntry: - db "SLUDGE@" - db 2,11 - dw 660 - TX_FAR _GrimerDexEntry - db "@" - -MukDexEntry: - db "SLUDGE@" - db 3,11 - dw 660 - TX_FAR _MukDexEntry - db "@" - -ShellderDexEntry: - db "BIVALVE@" - db 1,0 - dw 90 - TX_FAR _ShellderDexEntry - db "@" - -CloysterDexEntry: - db "BIVALVE@" - db 4,11 - dw 2920 - TX_FAR _CloysterDexEntry - db "@" - -GastlyDexEntry: - db "GAS@" - db 4,3 - dw 2 - TX_FAR _GastlyDexEntry - db "@" - -HaunterDexEntry: - db "GAS@" - db 5,3 - dw 2 - TX_FAR _HaunterDexEntry - db "@" - -GengarDexEntry: - db "SHADOW@" - db 4,11 - dw 890 - TX_FAR _GengarDexEntry - db "@" - -OnixDexEntry: - db "ROCK SNAKE@" - db 28,10 - dw 4630 - TX_FAR _OnixDexEntry - db "@" - -DrowzeeDexEntry: - db "HYPNOSIS@" - db 3,3 - dw 710 - TX_FAR _DrowzeeDexEntry - db "@" - -HypnoDexEntry: - db "HYPNOSIS@" - db 5,3 - dw 1670 - TX_FAR _HypnoDexEntry - db "@" - -KrabbyDexEntry: - db "RIVER CRAB@" - db 1,4 - dw 140 - TX_FAR _KrabbyDexEntry - db "@" - -KinglerDexEntry: - db "PINCER@" - db 4,3 - dw 1320 - TX_FAR _KinglerDexEntry - db "@" - -VoltorbDexEntry: - db "BALL@" - db 1,8 - dw 230 - TX_FAR _VoltorbDexEntry - db "@" - -ElectrodeDexEntry: - db "BALL@" - db 3,11 - dw 1470 - TX_FAR _ElectrodeDexEntry - db "@" - -ExeggcuteDexEntry: - db "EGG@" - db 1,4 - dw 60 - TX_FAR _ExeggcuteDexEntry - db "@" - -ExeggutorDexEntry: - db "COCONUT@" - db 6,7 - dw 2650 - TX_FAR _ExeggutorDexEntry - db "@" - -CuboneDexEntry: - db "LONELY@" - db 1,4 - dw 140 - TX_FAR _CuboneDexEntry - db "@" - -MarowakDexEntry: - db "BONEKEEPER@" - db 3,3 - dw 990 - TX_FAR _MarowakDexEntry - db "@" - -HitmonleeDexEntry: - db "KICKING@" - db 4,11 - dw 1100 - TX_FAR _HitmonleeDexEntry - db "@" - -HitmonchanDexEntry: - db "PUNCHING@" - db 4,7 - dw 1110 - TX_FAR _HitmonchanDexEntry - db "@" - -LickitungDexEntry: - db "LICKING@" - db 3,11 - dw 1440 - TX_FAR _LickitungDexEntry - db "@" - -KoffingDexEntry: - db "POISON GAS@" - db 2,0 - dw 20 - TX_FAR _KoffingDexEntry - db "@" - -WeezingDexEntry: - db "POISON GAS@" - db 3,11 - dw 210 - TX_FAR _WeezingDexEntry - db "@" - -RhyhornDexEntry: - db "SPIKES@" - db 3,3 - dw 2540 - TX_FAR _RhyhornDexEntry - db "@" - -RhydonDexEntry: - db "DRILL@" - db 6,3 - dw 2650 - TX_FAR _RhydonDexEntry - db "@" - -ChanseyDexEntry: - db "EGG@" - db 3,7 - dw 760 - TX_FAR _ChanseyDexEntry - db "@" - -TangelaDexEntry: - db "VINE@" - db 3,3 - dw 770 - TX_FAR _TangelaDexEntry - db "@" - -KangaskhanDexEntry: - db "PARENT@" - db 7,3 - dw 1760 - TX_FAR _KangaskhanDexEntry - db "@" - -HorseaDexEntry: - db "DRAGON@" - db 1,4 - dw 180 - TX_FAR _HorseaDexEntry - db "@" - -SeadraDexEntry: - db "DRAGON@" - db 3,11 - dw 550 - TX_FAR _SeadraDexEntry - db "@" - -GoldeenDexEntry: - db "GOLDFISH@" - db 2,0 - dw 330 - TX_FAR _GoldeenDexEntry - db "@" - -SeakingDexEntry: - db "GOLDFISH@" - db 4,3 - dw 860 - TX_FAR _SeakingDexEntry - db "@" - -StaryuDexEntry: - db "STARSHAPE@" - db 2,7 - dw 760 - TX_FAR _StaryuDexEntry - db "@" - -StarmieDexEntry: - db "MYSTERIOUS@" - db 3,7 - dw 1760 - TX_FAR _StarmieDexEntry - db "@" - -MrMimeDexEntry: - db "BARRIER@" - db 4,3 - dw 1200 - TX_FAR _MrMimeDexEntry - db "@" - -ScytherDexEntry: - db "MANTIS@" - db 4,11 - dw 1230 - TX_FAR _ScytherDexEntry - db "@" - -JynxDexEntry: - db "HUMANSHAPE@" - db 4,7 - dw 900 - TX_FAR _JynxDexEntry - db "@" - -ElectabuzzDexEntry: - db "ELECTRIC@" - db 3,7 - dw 660 - TX_FAR _ElectabuzzDexEntry - db "@" - -MagmarDexEntry: - db "SPITFIRE@" - db 4,3 - dw 980 - TX_FAR _MagmarDexEntry - db "@" - -PinsirDexEntry: - db "STAGBEETLE@" - db 4,11 - dw 1210 - TX_FAR _PinsirDexEntry - db "@" - -TaurosDexEntry: - db "WILD BULL@" - db 4,7 - dw 1950 - TX_FAR _TaurosDexEntry - db "@" - -MagikarpDexEntry: - db "FISH@" - db 2,11 - dw 220 - TX_FAR _MagikarpDexEntry - db "@" - -GyaradosDexEntry: - db "ATROCIOUS@" - db 21,4 - dw 5180 - TX_FAR _GyaradosDexEntry - db "@" - -LaprasDexEntry: - db "TRANSPORT@" - db 8,2 - dw 4850 - TX_FAR _LaprasDexEntry - db "@" - -DittoDexEntry: - db "TRANSFORM@" - db 1,0 - dw 90 - TX_FAR _DittoDexEntry - db "@" - -EeveeDexEntry: - db "EVOLUTION@" - db 1,0 - dw 140 - TX_FAR _EeveeDexEntry - db "@" - -VaporeonDexEntry: - db "BUBBLE JET@" - db 3,3 - dw 640 - TX_FAR _VaporeonDexEntry - db "@" - -JolteonDexEntry: - db "LIGHTNING@" - db 2,7 - dw 540 - TX_FAR _JolteonDexEntry - db "@" - -FlareonDexEntry: - db "FLAME@" - db 2,11 - dw 550 - TX_FAR _FlareonDexEntry - db "@" - -PorygonDexEntry: - db "VIRTUAL@" - db 2,7 - dw 800 - TX_FAR _PorygonDexEntry - db "@" - -OmanyteDexEntry: - db "SPIRAL@" - db 1,4 - dw 170 - TX_FAR _OmanyteDexEntry - db "@" - -OmastarDexEntry: - db "SPIRAL@" - db 3,3 - dw 770 - TX_FAR _OmastarDexEntry - db "@" - -KabutoDexEntry: - db "SHELLFISH@" - db 1,8 - dw 250 - TX_FAR _KabutoDexEntry - db "@" - -KabutopsDexEntry: - db "SHELLFISH@" - db 4,3 - dw 890 - TX_FAR _KabutopsDexEntry - db "@" - -AerodactylDexEntry: - db "FOSSIL@" - db 5,11 - dw 1300 - TX_FAR _AerodactylDexEntry - db "@" - -SnorlaxDexEntry: - db "SLEEPING@" - db 6,11 - dw 10140 - TX_FAR _SnorlaxDexEntry - db "@" - -ArticunoDexEntry: - db "FREEZE@" - db 5,7 - dw 1220 - TX_FAR _ArticunoDexEntry - db "@" - -ZapdosDexEntry: - db "ELECTRIC@" - db 5,3 - dw 1160 - TX_FAR _ZapdosDexEntry - db "@" - -MoltresDexEntry: - db "FLAME@" - db 6,7 - dw 1320 - TX_FAR _MoltresDexEntry - db "@" - -DratiniDexEntry: - db "DRAGON@" - db 5,11 - dw 70 - TX_FAR _DratiniDexEntry - db "@" - -DragonairDexEntry: - db "DRAGON@" - db 13,1 - dw 360 - TX_FAR _DragonairDexEntry - db "@" - -DragoniteDexEntry: - db "DRAGON@" - db 7,3 - dw 4630 - TX_FAR _DragoniteDexEntry - db "@" - -MewtwoDexEntry: - db "GENETIC@" - db 6,7 - dw 2690 - TX_FAR _MewtwoDexEntry - db "@" - -MewDexEntry: - db "NEW SPECIE@" - db 1,4 - dw 90 - TX_FAR _MewDexEntry - db "@" - -MissingNoDexEntry: - db "???@" - db 10 ; 1.0 m - db 100 ; 10.0 kg - text "コメント さくせいちゅう@" ; コメント作成中 (Comment to be written) - -; what the game sees -; db "???@" -; db 10,100 ; 10 feet, 100 inches -; dw 35072 ; dw ("コ" << 8 | 0), 3507.2 lbs -; db "メント さくせいちゅう@" ; a whole bunch of sound effects diff --git a/data/pokemon/base_stats.asm b/data/pokemon/base_stats.asm new file mode 100755 index 000000000..b43602863 --- /dev/null +++ b/data/pokemon/base_stats.asm @@ -0,0 +1,154 @@ +BaseStats:: +MonBaseStats:: +INCLUDE "data/pokemon/base_stats/bulbasaur.asm" +MonBaseStatsEnd:: +INCLUDE "data/pokemon/base_stats/ivysaur.asm" +INCLUDE "data/pokemon/base_stats/venusaur.asm" +INCLUDE "data/pokemon/base_stats/charmander.asm" +INCLUDE "data/pokemon/base_stats/charmeleon.asm" +INCLUDE "data/pokemon/base_stats/charizard.asm" +INCLUDE "data/pokemon/base_stats/squirtle.asm" +INCLUDE "data/pokemon/base_stats/wartortle.asm" +INCLUDE "data/pokemon/base_stats/blastoise.asm" +INCLUDE "data/pokemon/base_stats/caterpie.asm" +INCLUDE "data/pokemon/base_stats/metapod.asm" +INCLUDE "data/pokemon/base_stats/butterfree.asm" +INCLUDE "data/pokemon/base_stats/weedle.asm" +INCLUDE "data/pokemon/base_stats/kakuna.asm" +INCLUDE "data/pokemon/base_stats/beedrill.asm" +INCLUDE "data/pokemon/base_stats/pidgey.asm" +INCLUDE "data/pokemon/base_stats/pidgeotto.asm" +INCLUDE "data/pokemon/base_stats/pidgeot.asm" +INCLUDE "data/pokemon/base_stats/rattata.asm" +INCLUDE "data/pokemon/base_stats/raticate.asm" +INCLUDE "data/pokemon/base_stats/spearow.asm" +INCLUDE "data/pokemon/base_stats/fearow.asm" +INCLUDE "data/pokemon/base_stats/ekans.asm" +INCLUDE "data/pokemon/base_stats/arbok.asm" +INCLUDE "data/pokemon/base_stats/pikachu.asm" +INCLUDE "data/pokemon/base_stats/raichu.asm" +INCLUDE "data/pokemon/base_stats/sandshrew.asm" +INCLUDE "data/pokemon/base_stats/sandslash.asm" +INCLUDE "data/pokemon/base_stats/nidoranf.asm" +INCLUDE "data/pokemon/base_stats/nidorina.asm" +INCLUDE "data/pokemon/base_stats/nidoqueen.asm" +INCLUDE "data/pokemon/base_stats/nidoranm.asm" +INCLUDE "data/pokemon/base_stats/nidorino.asm" +INCLUDE "data/pokemon/base_stats/nidoking.asm" +INCLUDE "data/pokemon/base_stats/clefairy.asm" +INCLUDE "data/pokemon/base_stats/clefable.asm" +INCLUDE "data/pokemon/base_stats/vulpix.asm" +INCLUDE "data/pokemon/base_stats/ninetales.asm" +INCLUDE "data/pokemon/base_stats/jigglypuff.asm" +INCLUDE "data/pokemon/base_stats/wigglytuff.asm" +INCLUDE "data/pokemon/base_stats/zubat.asm" +INCLUDE "data/pokemon/base_stats/golbat.asm" +INCLUDE "data/pokemon/base_stats/oddish.asm" +INCLUDE "data/pokemon/base_stats/gloom.asm" +INCLUDE "data/pokemon/base_stats/vileplume.asm" +INCLUDE "data/pokemon/base_stats/paras.asm" +INCLUDE "data/pokemon/base_stats/parasect.asm" +INCLUDE "data/pokemon/base_stats/venonat.asm" +INCLUDE "data/pokemon/base_stats/venomoth.asm" +INCLUDE "data/pokemon/base_stats/diglett.asm" +INCLUDE "data/pokemon/base_stats/dugtrio.asm" +INCLUDE "data/pokemon/base_stats/meowth.asm" +INCLUDE "data/pokemon/base_stats/persian.asm" +INCLUDE "data/pokemon/base_stats/psyduck.asm" +INCLUDE "data/pokemon/base_stats/golduck.asm" +INCLUDE "data/pokemon/base_stats/mankey.asm" +INCLUDE "data/pokemon/base_stats/primeape.asm" +INCLUDE "data/pokemon/base_stats/growlithe.asm" +INCLUDE "data/pokemon/base_stats/arcanine.asm" +INCLUDE "data/pokemon/base_stats/poliwag.asm" +INCLUDE "data/pokemon/base_stats/poliwhirl.asm" +INCLUDE "data/pokemon/base_stats/poliwrath.asm" +INCLUDE "data/pokemon/base_stats/abra.asm" +INCLUDE "data/pokemon/base_stats/kadabra.asm" +INCLUDE "data/pokemon/base_stats/alakazam.asm" +INCLUDE "data/pokemon/base_stats/machop.asm" +INCLUDE "data/pokemon/base_stats/machoke.asm" +INCLUDE "data/pokemon/base_stats/machamp.asm" +INCLUDE "data/pokemon/base_stats/bellsprout.asm" +INCLUDE "data/pokemon/base_stats/weepinbell.asm" +INCLUDE "data/pokemon/base_stats/victreebel.asm" +INCLUDE "data/pokemon/base_stats/tentacool.asm" +INCLUDE "data/pokemon/base_stats/tentacruel.asm" +INCLUDE "data/pokemon/base_stats/geodude.asm" +INCLUDE "data/pokemon/base_stats/graveler.asm" +INCLUDE "data/pokemon/base_stats/golem.asm" +INCLUDE "data/pokemon/base_stats/ponyta.asm" +INCLUDE "data/pokemon/base_stats/rapidash.asm" +INCLUDE "data/pokemon/base_stats/slowpoke.asm" +INCLUDE "data/pokemon/base_stats/slowbro.asm" +INCLUDE "data/pokemon/base_stats/magnemite.asm" +INCLUDE "data/pokemon/base_stats/magneton.asm" +INCLUDE "data/pokemon/base_stats/farfetchd.asm" +INCLUDE "data/pokemon/base_stats/doduo.asm" +INCLUDE "data/pokemon/base_stats/dodrio.asm" +INCLUDE "data/pokemon/base_stats/seel.asm" +INCLUDE "data/pokemon/base_stats/dewgong.asm" +INCLUDE "data/pokemon/base_stats/grimer.asm" +INCLUDE "data/pokemon/base_stats/muk.asm" +INCLUDE "data/pokemon/base_stats/shellder.asm" +INCLUDE "data/pokemon/base_stats/cloyster.asm" +INCLUDE "data/pokemon/base_stats/gastly.asm" +INCLUDE "data/pokemon/base_stats/haunter.asm" +INCLUDE "data/pokemon/base_stats/gengar.asm" +INCLUDE "data/pokemon/base_stats/onix.asm" +INCLUDE "data/pokemon/base_stats/drowzee.asm" +INCLUDE "data/pokemon/base_stats/hypno.asm" +INCLUDE "data/pokemon/base_stats/krabby.asm" +INCLUDE "data/pokemon/base_stats/kingler.asm" +INCLUDE "data/pokemon/base_stats/voltorb.asm" +INCLUDE "data/pokemon/base_stats/electrode.asm" +INCLUDE "data/pokemon/base_stats/exeggcute.asm" +INCLUDE "data/pokemon/base_stats/exeggutor.asm" +INCLUDE "data/pokemon/base_stats/cubone.asm" +INCLUDE "data/pokemon/base_stats/marowak.asm" +INCLUDE "data/pokemon/base_stats/hitmonlee.asm" +INCLUDE "data/pokemon/base_stats/hitmonchan.asm" +INCLUDE "data/pokemon/base_stats/lickitung.asm" +INCLUDE "data/pokemon/base_stats/koffing.asm" +INCLUDE "data/pokemon/base_stats/weezing.asm" +INCLUDE "data/pokemon/base_stats/rhyhorn.asm" +INCLUDE "data/pokemon/base_stats/rhydon.asm" +INCLUDE "data/pokemon/base_stats/chansey.asm" +INCLUDE "data/pokemon/base_stats/tangela.asm" +INCLUDE "data/pokemon/base_stats/kangaskhan.asm" +INCLUDE "data/pokemon/base_stats/horsea.asm" +INCLUDE "data/pokemon/base_stats/seadra.asm" +INCLUDE "data/pokemon/base_stats/goldeen.asm" +INCLUDE "data/pokemon/base_stats/seaking.asm" +INCLUDE "data/pokemon/base_stats/staryu.asm" +INCLUDE "data/pokemon/base_stats/starmie.asm" +INCLUDE "data/pokemon/base_stats/mrmime.asm" +INCLUDE "data/pokemon/base_stats/scyther.asm" +INCLUDE "data/pokemon/base_stats/jynx.asm" +INCLUDE "data/pokemon/base_stats/electabuzz.asm" +INCLUDE "data/pokemon/base_stats/magmar.asm" +INCLUDE "data/pokemon/base_stats/pinsir.asm" +INCLUDE "data/pokemon/base_stats/tauros.asm" +INCLUDE "data/pokemon/base_stats/magikarp.asm" +INCLUDE "data/pokemon/base_stats/gyarados.asm" +INCLUDE "data/pokemon/base_stats/lapras.asm" +INCLUDE "data/pokemon/base_stats/ditto.asm" +INCLUDE "data/pokemon/base_stats/eevee.asm" +INCLUDE "data/pokemon/base_stats/vaporeon.asm" +INCLUDE "data/pokemon/base_stats/jolteon.asm" +INCLUDE "data/pokemon/base_stats/flareon.asm" +INCLUDE "data/pokemon/base_stats/porygon.asm" +INCLUDE "data/pokemon/base_stats/omanyte.asm" +INCLUDE "data/pokemon/base_stats/omastar.asm" +INCLUDE "data/pokemon/base_stats/kabuto.asm" +INCLUDE "data/pokemon/base_stats/kabutops.asm" +INCLUDE "data/pokemon/base_stats/aerodactyl.asm" +INCLUDE "data/pokemon/base_stats/snorlax.asm" +INCLUDE "data/pokemon/base_stats/articuno.asm" +INCLUDE "data/pokemon/base_stats/zapdos.asm" +INCLUDE "data/pokemon/base_stats/moltres.asm" +INCLUDE "data/pokemon/base_stats/dratini.asm" +INCLUDE "data/pokemon/base_stats/dragonair.asm" +INCLUDE "data/pokemon/base_stats/dragonite.asm" +INCLUDE "data/pokemon/base_stats/mewtwo.asm" +INCLUDE "data/pokemon/base_stats/mew.asm" diff --git a/data/pokemon/base_stats/abra.asm b/data/pokemon/base_stats/abra.asm new file mode 100644 index 000000000..54c9a9c95 --- /dev/null +++ b/data/pokemon/base_stats/abra.asm @@ -0,0 +1,24 @@ + db DEX_ABRA ; pokedex id + + db 25, 20, 15, 90, 105 + ; hp atk def spd spc + + db PSYCHIC_TYPE, PSYCHIC_TYPE ; type + db 200 ; catch rate + db 73 ; base exp + + INCBIN "gfx/pokemon/front_yellow/abra.pic", 0, 1 ; sprite dimensions + dw AbraPicFront, AbraPicBack + + db TELEPORT, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + PSYCHIC_M, TELEPORT, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, METRONOME, SKULL_BASH, REST, THUNDER_WAVE, \ + PSYWAVE, TRI_ATTACK, SUBSTITUTE, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/aerodactyl.asm b/data/pokemon/base_stats/aerodactyl.asm new file mode 100644 index 000000000..5ed73b3e5 --- /dev/null +++ b/data/pokemon/base_stats/aerodactyl.asm @@ -0,0 +1,23 @@ + db DEX_AERODACTYL ; pokedex id + + db 80, 105, 65, 130, 60 + ; hp atk def spd spc + + db ROCK, FLYING ; type + db 45 ; catch rate + db 202 ; base exp + + INCBIN "gfx/pokemon/front_yellow/aerodactyl.pic", 0, 1 ; sprite dimensions + dw AerodactylPicFront, AerodactylPicBack + + db WING_ATTACK, AGILITY, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm RAZOR_WIND, WHIRLWIND, TOXIC, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, RAGE, DRAGON_RAGE, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, FIRE_BLAST, SWIFT, SKY_ATTACK, \ + REST, SUBSTITUTE, FLY + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/alakazam.asm b/data/pokemon/base_stats/alakazam.asm new file mode 100644 index 000000000..c3e1c4cdf --- /dev/null +++ b/data/pokemon/base_stats/alakazam.asm @@ -0,0 +1,25 @@ + db DEX_ALAKAZAM ; pokedex id + + db 55, 50, 45, 120, 135 + ; hp atk def spd spc + + db PSYCHIC_TYPE, PSYCHIC_TYPE ; type + db 50 ; catch rate + db 186 ; base exp + + INCBIN "gfx/pokemon/front_yellow/alakazam.pic", 0, 1 ; sprite dimensions + dw AlakazamPicFront, AlakazamPicBack + + db TELEPORT, KINESIS, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, \ + RAGE, DIG, PSYCHIC_M, TELEPORT, MIMIC, \ + DOUBLE_TEAM, REFLECT, BIDE, METRONOME, SKULL_BASH, \ + REST, THUNDER_WAVE, PSYWAVE, TRI_ATTACK, SUBSTITUTE, \ + FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/arbok.asm b/data/pokemon/base_stats/arbok.asm new file mode 100644 index 000000000..f981efae2 --- /dev/null +++ b/data/pokemon/base_stats/arbok.asm @@ -0,0 +1,23 @@ + db DEX_ARBOK ; pokedex id + + db 60, 85, 69, 80, 65 + ; hp atk def spd spc + + db POISON, POISON ; type + db 90 ; catch rate + db 147 ; base exp + + INCBIN "gfx/pokemon/front_yellow/arbok.pic", 0, 1 ; sprite dimensions + dw ArbokPicFront, ArbokPicBack + + db WRAP, LEER, POISON_STING, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, HYPER_BEAM, \ + RAGE, MEGA_DRAIN, EARTHQUAKE, FISSURE, DIG, \ + MIMIC, DOUBLE_TEAM, BIDE, SKULL_BASH, REST, \ + ROCK_SLIDE, SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/arcanine.asm b/data/pokemon/base_stats/arcanine.asm new file mode 100644 index 000000000..380be0a89 --- /dev/null +++ b/data/pokemon/base_stats/arcanine.asm @@ -0,0 +1,23 @@ + db DEX_ARCANINE ; pokedex id + + db 90, 110, 80, 95, 80 + ; hp atk def spd spc + + db FIRE, FIRE ; type + db 75 ; catch rate + db 213 ; base exp + + INCBIN "gfx/pokemon/front_yellow/arcanine.pic", 0, 1 ; sprite dimensions + dw ArcaninePicFront, ArcaninePicBack + + db ROAR, EMBER, LEER, TAKE_DOWN ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, HYPER_BEAM, \ + RAGE, DRAGON_RAGE, DIG, TELEPORT, MIMIC, \ + DOUBLE_TEAM, REFLECT, BIDE, FIRE_BLAST, SWIFT, \ + SKULL_BASH, REST, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/articuno.asm b/data/pokemon/base_stats/articuno.asm new file mode 100644 index 000000000..d53fc4fc2 --- /dev/null +++ b/data/pokemon/base_stats/articuno.asm @@ -0,0 +1,23 @@ + db DEX_ARTICUNO ; pokedex id + + db 90, 85, 100, 85, 125 + ; hp atk def spd spc + + db ICE, FLYING ; type + db 3 ; catch rate + db 215 ; base exp + + INCBIN "gfx/pokemon/front_yellow/articuno.pic", 0, 1 ; sprite dimensions + dw ArticunoPicFront, ArticunoPicBack + + db PECK, ICE_BEAM, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm RAZOR_WIND, WHIRLWIND, TOXIC, TAKE_DOWN, DOUBLE_EDGE, \ + BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, HYPER_BEAM, \ + RAGE, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + SWIFT, SKY_ATTACK, REST, SUBSTITUTE, FLY + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/beedrill.asm b/data/pokemon/base_stats/beedrill.asm new file mode 100644 index 000000000..ac1c57572 --- /dev/null +++ b/data/pokemon/base_stats/beedrill.asm @@ -0,0 +1,23 @@ + db DEX_BEEDRILL ; pokedex id + + db 65, 80, 40, 75, 45 + ; hp atk def spd spc + + db BUG, POISON ; type + db 45 ; catch rate + db 159 ; base exp + + INCBIN "gfx/pokemon/front_yellow/beedrill.pic", 0, 1 ; sprite dimensions + dw BeedrillPicFront, BeedrillPicBack + + db FURY_ATTACK, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, TAKE_DOWN, DOUBLE_EDGE, HYPER_BEAM, \ + RAGE, MEGA_DRAIN, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, SWIFT, SKULL_BASH, REST, SUBSTITUTE, \ + CUT + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/bellsprout.asm b/data/pokemon/base_stats/bellsprout.asm new file mode 100644 index 000000000..8b46be24e --- /dev/null +++ b/data/pokemon/base_stats/bellsprout.asm @@ -0,0 +1,22 @@ + db DEX_BELLSPROUT ; pokedex id + + db 50, 75, 35, 40, 70 + ; hp atk def spd spc + + db GRASS, POISON ; type + db 255 ; catch rate + db 84 ; base exp + + INCBIN "gfx/pokemon/front_yellow/bellsprout.pic", 0, 1 ; sprite dimensions + dw BellsproutPicFront, BellsproutPicBack + + db VINE_WHIP, GROWTH, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, TAKE_DOWN, DOUBLE_EDGE, RAGE, \ + MEGA_DRAIN, SOLARBEAM, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, REST, SUBSTITUTE, CUT + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/blastoise.asm b/data/pokemon/base_stats/blastoise.asm new file mode 100644 index 000000000..041db750f --- /dev/null +++ b/data/pokemon/base_stats/blastoise.asm @@ -0,0 +1,25 @@ + db DEX_BLASTOISE ; pokedex id + + db 79, 83, 100, 78, 85 + ; hp atk def spd spc + + db WATER, WATER ; type + db 45 ; catch rate + db 210 ; base exp + + INCBIN "gfx/pokemon/front_yellow/blastoise.pic", 0, 1 ; sprite dimensions + dw BlastoisePicFront, BlastoisePicBack + + db TACKLE, TAIL_WHIP, BUBBLE, WATER_GUN ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + EARTHQUAKE, FISSURE, DIG, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, SKULL_BASH, REST, SUBSTITUTE, \ + SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/bulbasaur.asm b/data/pokemon/base_stats/bulbasaur.asm new file mode 100644 index 000000000..a20d2744b --- /dev/null +++ b/data/pokemon/base_stats/bulbasaur.asm @@ -0,0 +1,22 @@ + db DEX_BULBASAUR ; pokedex id + + db 45, 49, 49, 45, 65 + ; hp atk def spd spc + + db GRASS, POISON ; type + db 45 ; catch rate + db 64 ; base exp + + INCBIN "gfx/pokemon/front_yellow/bulbasaur.pic", 0, 1 ; sprite dimensions + dw BulbasaurPicFront, BulbasaurPicBack + + db TACKLE, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + RAGE, MEGA_DRAIN, SOLARBEAM, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, REST, SUBSTITUTE, CUT + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/butterfree.asm b/data/pokemon/base_stats/butterfree.asm new file mode 100644 index 000000000..ca480b58b --- /dev/null +++ b/data/pokemon/base_stats/butterfree.asm @@ -0,0 +1,23 @@ + db DEX_BUTTERFREE ; pokedex id + + db 60, 45, 50, 70, 80 + ; hp atk def spd spc + + db BUG, FLYING ; type + db 45 ; catch rate + db 160 ; base exp + + INCBIN "gfx/pokemon/front_yellow/butterfree.pic", 0, 1 ; sprite dimensions + dw ButterfreePicFront, ButterfreePicBack + + db CONFUSION, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm RAZOR_WIND, WHIRLWIND, TOXIC, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, RAGE, MEGA_DRAIN, SOLARBEAM, PSYCHIC_M, \ + TELEPORT, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + SWIFT, REST, PSYWAVE, SUBSTITUTE, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/caterpie.asm b/data/pokemon/base_stats/caterpie.asm new file mode 100644 index 000000000..1f048547a --- /dev/null +++ b/data/pokemon/base_stats/caterpie.asm @@ -0,0 +1,20 @@ + db DEX_CATERPIE ; pokedex id + + db 45, 30, 35, 45, 20 + ; hp atk def spd spc + + db BUG, BUG ; type + db 255 ; catch rate + db 53 ; base exp + + INCBIN "gfx/pokemon/front_yellow/caterpie.pic", 0, 1 ; sprite dimensions + dw CaterpiePicFront, CaterpiePicBack + + db TACKLE, STRING_SHOT, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/chansey.asm b/data/pokemon/base_stats/chansey.asm new file mode 100644 index 000000000..81da15137 --- /dev/null +++ b/data/pokemon/base_stats/chansey.asm @@ -0,0 +1,27 @@ + db DEX_CHANSEY ; pokedex id + + db 250, 5, 5, 50, 105 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 30 ; catch rate + db 255 ; base exp + + INCBIN "gfx/pokemon/front_yellow/chansey.pic", 0, 1 ; sprite dimensions + dw ChanseyPicFront, ChanseyPicBack + + db POUND, TAIL_WHIP, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + SOLARBEAM, THUNDERBOLT, THUNDER, PSYCHIC_M, TELEPORT, \ + MIMIC, DOUBLE_TEAM, REFLECT, BIDE, METRONOME, \ + EGG_BOMB, FIRE_BLAST, SKULL_BASH, SOFTBOILED, REST, \ + THUNDER_WAVE, PSYWAVE, TRI_ATTACK, SUBSTITUTE, STRENGTH, \ + FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/charizard.asm b/data/pokemon/base_stats/charizard.asm new file mode 100644 index 000000000..7154f4729 --- /dev/null +++ b/data/pokemon/base_stats/charizard.asm @@ -0,0 +1,25 @@ + db DEX_CHARIZARD ; pokedex id + + db 78, 84, 78, 100, 85 + ; hp atk def spd spc + + db FIRE, FLYING ; type + db 45 ; catch rate + db 209 ; base exp + + INCBIN "gfx/pokemon/front_yellow/charizard.pic", 0, 1 ; sprite dimensions + dw CharizardPicFront, CharizardPicBack + + db SCRATCH, GROWL, EMBER, LEER ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, SWORDS_DANCE, MEGA_KICK, TOXIC, BODY_SLAM, \ + TAKE_DOWN, DOUBLE_EDGE, HYPER_BEAM, SUBMISSION, COUNTER, \ + SEISMIC_TOSS, RAGE, DRAGON_RAGE, EARTHQUAKE, FISSURE, \ + DIG, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + FIRE_BLAST, SWIFT, SKULL_BASH, REST, SUBSTITUTE, \ + CUT, FLY, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/charmander.asm b/data/pokemon/base_stats/charmander.asm new file mode 100644 index 000000000..4e3a7f596 --- /dev/null +++ b/data/pokemon/base_stats/charmander.asm @@ -0,0 +1,24 @@ + db DEX_CHARMANDER ; pokedex id + + db 39, 52, 43, 65, 50 + ; hp atk def spd spc + + db FIRE, FIRE ; type + db 45 ; catch rate + db 65 ; base exp + + INCBIN "gfx/pokemon/front_yellow/charmander.pic", 0, 1 ; sprite dimensions + dw CharmanderPicFront, CharmanderPicBack + + db SCRATCH, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, SWORDS_DANCE, MEGA_KICK, TOXIC, BODY_SLAM, \ + TAKE_DOWN, DOUBLE_EDGE, SUBMISSION, COUNTER, SEISMIC_TOSS, \ + RAGE, DRAGON_RAGE, DIG, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, FIRE_BLAST, SWIFT, SKULL_BASH, \ + REST, SUBSTITUTE, CUT, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/charmeleon.asm b/data/pokemon/base_stats/charmeleon.asm new file mode 100644 index 000000000..e85ef0dee --- /dev/null +++ b/data/pokemon/base_stats/charmeleon.asm @@ -0,0 +1,24 @@ + db DEX_CHARMELEON ; pokedex id + + db 58, 64, 58, 80, 65 + ; hp atk def spd spc + + db FIRE, FIRE ; type + db 45 ; catch rate + db 142 ; base exp + + INCBIN "gfx/pokemon/front_yellow/charmeleon.pic", 0, 1 ; sprite dimensions + dw CharmeleonPicFront, CharmeleonPicBack + + db SCRATCH, GROWL, EMBER, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, SWORDS_DANCE, MEGA_KICK, TOXIC, BODY_SLAM, \ + TAKE_DOWN, DOUBLE_EDGE, SUBMISSION, COUNTER, SEISMIC_TOSS, \ + RAGE, DRAGON_RAGE, DIG, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, FIRE_BLAST, SWIFT, SKULL_BASH, \ + REST, SUBSTITUTE, CUT, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/clefable.asm b/data/pokemon/base_stats/clefable.asm new file mode 100644 index 000000000..c01ac2e6f --- /dev/null +++ b/data/pokemon/base_stats/clefable.asm @@ -0,0 +1,26 @@ + db DEX_CLEFABLE ; pokedex id + + db 95, 70, 73, 60, 85 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 25 ; catch rate + db 129 ; base exp + + INCBIN "gfx/pokemon/front_yellow/clefable.pic", 0, 1 ; sprite dimensions + dw ClefablePicFront, ClefablePicBack + + db SING, DOUBLESLAP, MINIMIZE, METRONOME ; level 1 learnset + db GROWTH_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + SOLARBEAM, THUNDERBOLT, THUNDER, PSYCHIC_M, TELEPORT, \ + MIMIC, DOUBLE_TEAM, REFLECT, BIDE, METRONOME, \ + FIRE_BLAST, SKULL_BASH, REST, THUNDER_WAVE, PSYWAVE, \ + TRI_ATTACK, SUBSTITUTE, STRENGTH, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/clefairy.asm b/data/pokemon/base_stats/clefairy.asm new file mode 100644 index 000000000..a00ccafe9 --- /dev/null +++ b/data/pokemon/base_stats/clefairy.asm @@ -0,0 +1,26 @@ + db DEX_CLEFAIRY ; pokedex id + + db 70, 45, 48, 35, 60 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 150 ; catch rate + db 68 ; base exp + + INCBIN "gfx/pokemon/front_yellow/clefairy.pic", 0, 1 ; sprite dimensions + dw ClefairyPicFront, ClefairyPicBack + + db POUND, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, SOLARBEAM, \ + THUNDERBOLT, THUNDER, PSYCHIC_M, TELEPORT, MIMIC, \ + DOUBLE_TEAM, REFLECT, BIDE, METRONOME, FIRE_BLAST, \ + SKULL_BASH, REST, THUNDER_WAVE, PSYWAVE, TRI_ATTACK, \ + SUBSTITUTE, STRENGTH, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/cloyster.asm b/data/pokemon/base_stats/cloyster.asm new file mode 100644 index 000000000..eb691a501 --- /dev/null +++ b/data/pokemon/base_stats/cloyster.asm @@ -0,0 +1,24 @@ + db DEX_CLOYSTER ; pokedex id + + db 50, 95, 180, 70, 85 + ; hp atk def spd spc + + db WATER, ICE ; type + db 60 ; catch rate + db 203 ; base exp + + INCBIN "gfx/pokemon/front_yellow/cloyster.pic", 0, 1 ; sprite dimensions + dw CloysterPicFront, CloysterPicBack + + db WITHDRAW, SUPERSONIC, CLAMP, AURORA_BEAM ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, \ + ICE_BEAM, BLIZZARD, HYPER_BEAM, RAGE, TELEPORT, \ + MIMIC, DOUBLE_TEAM, REFLECT, BIDE, SELFDESTRUCT, \ + SWIFT, REST, EXPLOSION, TRI_ATTACK, SUBSTITUTE, \ + SURF + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/cubone.asm b/data/pokemon/base_stats/cubone.asm new file mode 100644 index 000000000..53224fb8a --- /dev/null +++ b/data/pokemon/base_stats/cubone.asm @@ -0,0 +1,24 @@ + db DEX_CUBONE ; pokedex id + + db 50, 50, 95, 35, 40 + ; hp atk def spd spc + + db GROUND, GROUND ; type + db 190 ; catch rate + db 87 ; base exp + + INCBIN "gfx/pokemon/front_yellow/cubone.pic", 0, 1 ; sprite dimensions + dw CubonePicFront, CubonePicBack + + db GROWL, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, EARTHQUAKE, \ + FISSURE, DIG, MIMIC, DOUBLE_TEAM, BIDE, \ + FIRE_BLAST, SKULL_BASH, REST, SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/dewgong.asm b/data/pokemon/base_stats/dewgong.asm new file mode 100644 index 000000000..7bb636629 --- /dev/null +++ b/data/pokemon/base_stats/dewgong.asm @@ -0,0 +1,23 @@ + db DEX_DEWGONG ; pokedex id + + db 90, 70, 80, 70, 95 + ; hp atk def spd spc + + db WATER, ICE ; type + db 75 ; catch rate + db 176 ; base exp + + INCBIN "gfx/pokemon/front_yellow/dewgong.pic", 0, 1 ; sprite dimensions + dw DewgongPicFront, DewgongPicBack + + db HEADBUTT, GROWL, AURORA_BEAM, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, HORN_DRILL, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, HYPER_BEAM, \ + PAY_DAY, RAGE, MIMIC, DOUBLE_TEAM, BIDE, \ + SKULL_BASH, REST, SUBSTITUTE, SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/diglett.asm b/data/pokemon/base_stats/diglett.asm new file mode 100644 index 000000000..76721d692 --- /dev/null +++ b/data/pokemon/base_stats/diglett.asm @@ -0,0 +1,22 @@ + db DEX_DIGLETT ; pokedex id + + db 10, 55, 25, 95, 45 + ; hp atk def spd spc + + db GROUND, GROUND ; type + db 255 ; catch rate + db 81 ; base exp + + INCBIN "gfx/pokemon/front_yellow/diglett.pic", 0, 1 ; sprite dimensions + dw DiglettPicFront, DiglettPicBack + + db SCRATCH, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, RAGE, \ + EARTHQUAKE, FISSURE, DIG, MIMIC, DOUBLE_TEAM, \ + BIDE, REST, ROCK_SLIDE, SUBSTITUTE, CUT + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/ditto.asm b/data/pokemon/base_stats/ditto.asm new file mode 100644 index 000000000..a8a175ecc --- /dev/null +++ b/data/pokemon/base_stats/ditto.asm @@ -0,0 +1,20 @@ + db DEX_DITTO ; pokedex id + + db 48, 48, 48, 48, 48 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 35 ; catch rate + db 61 ; base exp + + INCBIN "gfx/pokemon/front_yellow/ditto.pic", 0, 1 ; sprite dimensions + dw DittoPicFront, DittoPicBack + + db TRANSFORM, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/dodrio.asm b/data/pokemon/base_stats/dodrio.asm new file mode 100644 index 000000000..481c021bb --- /dev/null +++ b/data/pokemon/base_stats/dodrio.asm @@ -0,0 +1,23 @@ + db DEX_DODRIO ; pokedex id + + db 60, 110, 70, 100, 60 + ; hp atk def spd spc + + db NORMAL, FLYING ; type + db 45 ; catch rate + db 158 ; base exp + + INCBIN "gfx/pokemon/front_yellow/dodrio.pic", 0, 1 ; sprite dimensions + dw DodrioPicFront, DodrioPicBack + + db PECK, GROWL, FURY_ATTACK, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm WHIRLWIND, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, RAGE, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, SKULL_BASH, SKY_ATTACK, REST, TRI_ATTACK, \ + SUBSTITUTE, FLY + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/doduo.asm b/data/pokemon/base_stats/doduo.asm new file mode 100644 index 000000000..af9e2cf73 --- /dev/null +++ b/data/pokemon/base_stats/doduo.asm @@ -0,0 +1,23 @@ + db DEX_DODUO ; pokedex id + + db 35, 85, 45, 75, 35 + ; hp atk def spd spc + + db NORMAL, FLYING ; type + db 190 ; catch rate + db 96 ; base exp + + INCBIN "gfx/pokemon/front_yellow/doduo.pic", 0, 1 ; sprite dimensions + dw DoduoPicFront, DoduoPicBack + + db PECK, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm WHIRLWIND, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + RAGE, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + SKULL_BASH, SKY_ATTACK, REST, TRI_ATTACK, SUBSTITUTE, \ + FLY + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/dragonair.asm b/data/pokemon/base_stats/dragonair.asm new file mode 100644 index 000000000..c50c8e743 --- /dev/null +++ b/data/pokemon/base_stats/dragonair.asm @@ -0,0 +1,24 @@ + db DEX_DRAGONAIR ; pokedex id + + db 61, 84, 65, 70, 70 + ; hp atk def spd spc + + db DRAGON, DRAGON ; type + db 27 ; catch rate + db 144 ; base exp + + INCBIN "gfx/pokemon/front_yellow/dragonair.pic", 0, 1 ; sprite dimensions + dw DragonairPicFront, DragonairPicBack + + db WRAP, LEER, THUNDER_WAVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, HORN_DRILL, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, RAGE, \ + DRAGON_RAGE, THUNDERBOLT, THUNDER, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, FIRE_BLAST, SWIFT, SKULL_BASH, \ + REST, THUNDER_WAVE, SUBSTITUTE, SURF + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/dragonite.asm b/data/pokemon/base_stats/dragonite.asm new file mode 100644 index 000000000..ff4aa45af --- /dev/null +++ b/data/pokemon/base_stats/dragonite.asm @@ -0,0 +1,25 @@ + db DEX_DRAGONITE ; pokedex id + + db 91, 134, 95, 80, 100 + ; hp atk def spd spc + + db DRAGON, FLYING ; type + db 9 ; catch rate + db 218 ; base exp + + INCBIN "gfx/pokemon/front_yellow/dragonite.pic", 0, 1 ; sprite dimensions + dw DragonitePicFront, DragonitePicBack + + db WRAP, LEER, THUNDER_WAVE, AGILITY ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm RAZOR_WIND, TOXIC, HORN_DRILL, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + HYPER_BEAM, RAGE, DRAGON_RAGE, THUNDERBOLT, THUNDER, \ + MIMIC, DOUBLE_TEAM, REFLECT, BIDE, FIRE_BLAST, \ + SWIFT, SKULL_BASH, REST, THUNDER_WAVE, SUBSTITUTE, \ + SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/dratini.asm b/data/pokemon/base_stats/dratini.asm new file mode 100644 index 000000000..28ac755be --- /dev/null +++ b/data/pokemon/base_stats/dratini.asm @@ -0,0 +1,24 @@ + db DEX_DRATINI ; pokedex id + + db 41, 64, 45, 50, 50 + ; hp atk def spd spc + + db DRAGON, DRAGON ; type + db 45 ; catch rate + db 67 ; base exp + + INCBIN "gfx/pokemon/front_yellow/dratini.pic", 0, 1 ; sprite dimensions + dw DratiniPicFront, DratiniPicBack + + db WRAP, LEER, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, \ + WATER_GUN, ICE_BEAM, BLIZZARD, RAGE, DRAGON_RAGE, \ + THUNDERBOLT, THUNDER, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, FIRE_BLAST, SWIFT, SKULL_BASH, REST, \ + THUNDER_WAVE, SUBSTITUTE, SURF + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/drowzee.asm b/data/pokemon/base_stats/drowzee.asm new file mode 100644 index 000000000..0c71b320b --- /dev/null +++ b/data/pokemon/base_stats/drowzee.asm @@ -0,0 +1,24 @@ + db DEX_DROWZEE ; pokedex id + + db 60, 48, 45, 42, 90 + ; hp atk def spd spc + + db PSYCHIC_TYPE, PSYCHIC_TYPE ; type + db 190 ; catch rate + db 102 ; base exp + + INCBIN "gfx/pokemon/front_yellow/drowzee.pic", 0, 1 ; sprite dimensions + dw DrowzeePicFront, DrowzeePicBack + + db POUND, HYPNOSIS, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + PSYCHIC_M, TELEPORT, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, METRONOME, SKULL_BASH, DREAM_EATER, REST, \ + THUNDER_WAVE, PSYWAVE, TRI_ATTACK, SUBSTITUTE, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/dugtrio.asm b/data/pokemon/base_stats/dugtrio.asm new file mode 100644 index 000000000..e29c120ba --- /dev/null +++ b/data/pokemon/base_stats/dugtrio.asm @@ -0,0 +1,23 @@ + db DEX_DUGTRIO ; pokedex id + + db 35, 80, 50, 120, 70 + ; hp atk def spd spc + + db GROUND, GROUND ; type + db 50 ; catch rate + db 153 ; base exp + + INCBIN "gfx/pokemon/front_yellow/dugtrio.pic", 0, 1 ; sprite dimensions + dw DugtrioPicFront, DugtrioPicBack + + db SCRATCH, GROWL, DIG, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, HYPER_BEAM, \ + RAGE, EARTHQUAKE, FISSURE, DIG, MIMIC, \ + DOUBLE_TEAM, BIDE, REST, ROCK_SLIDE, SUBSTITUTE, \ + CUT + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/eevee.asm b/data/pokemon/base_stats/eevee.asm new file mode 100644 index 000000000..add50a6d8 --- /dev/null +++ b/data/pokemon/base_stats/eevee.asm @@ -0,0 +1,22 @@ + db DEX_EEVEE ; pokedex id + + db 55, 55, 50, 55, 65 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 45 ; catch rate + db 92 ; base exp + + INCBIN "gfx/pokemon/front_yellow/eevee.pic", 0, 1 ; sprite dimensions + dw EeveePicFront, EeveePicBack + + db TACKLE, TAIL_WHIP, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, RAGE, \ + MIMIC, DOUBLE_TEAM, REFLECT, BIDE, SWIFT, \ + SKULL_BASH, REST, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/ekans.asm b/data/pokemon/base_stats/ekans.asm new file mode 100644 index 000000000..0b6a8945d --- /dev/null +++ b/data/pokemon/base_stats/ekans.asm @@ -0,0 +1,23 @@ + db DEX_EKANS ; pokedex id + + db 35, 60, 44, 55, 40 + ; hp atk def spd spc + + db POISON, POISON ; type + db 255 ; catch rate + db 62 ; base exp + + INCBIN "gfx/pokemon/front_yellow/ekans.pic", 0, 1 ; sprite dimensions + dw EkansPicFront, EkansPicBack + + db WRAP, LEER, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, RAGE, \ + MEGA_DRAIN, EARTHQUAKE, FISSURE, DIG, MIMIC, \ + DOUBLE_TEAM, BIDE, SKULL_BASH, REST, ROCK_SLIDE, \ + SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/electabuzz.asm b/data/pokemon/base_stats/electabuzz.asm new file mode 100644 index 000000000..dfd153bb1 --- /dev/null +++ b/data/pokemon/base_stats/electabuzz.asm @@ -0,0 +1,25 @@ + db DEX_ELECTABUZZ ; pokedex id + + db 65, 83, 57, 105, 85 + ; hp atk def spd spc + + db ELECTRIC, ELECTRIC ; type + db 45 ; catch rate + db 156 ; base exp + + INCBIN "gfx/pokemon/front_yellow/electabuzz.pic", 0, 1 ; sprite dimensions + dw ElectabuzzPicFront, ElectabuzzPicBack + + db QUICK_ATTACK, LEER, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, \ + RAGE, THUNDERBOLT, THUNDER, PSYCHIC_M, TELEPORT, \ + MIMIC, DOUBLE_TEAM, REFLECT, BIDE, METRONOME, \ + SWIFT, SKULL_BASH, REST, THUNDER_WAVE, PSYWAVE, \ + SUBSTITUTE, STRENGTH, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/electrode.asm b/data/pokemon/base_stats/electrode.asm new file mode 100644 index 000000000..ae2e6cf43 --- /dev/null +++ b/data/pokemon/base_stats/electrode.asm @@ -0,0 +1,23 @@ + db DEX_ELECTRODE ; pokedex id + + db 60, 50, 70, 140, 80 + ; hp atk def spd spc + + db ELECTRIC, ELECTRIC ; type + db 60 ; catch rate + db 150 ; base exp + + INCBIN "gfx/pokemon/front_yellow/electrode.pic", 0, 1 ; sprite dimensions + dw ElectrodePicFront, ElectrodePicBack + + db TACKLE, SCREECH, SONICBOOM, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, TAKE_DOWN, HYPER_BEAM, RAGE, THUNDERBOLT, \ + THUNDER, TELEPORT, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, SELFDESTRUCT, SWIFT, SKULL_BASH, REST, \ + THUNDER_WAVE, EXPLOSION, SUBSTITUTE, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/exeggcute.asm b/data/pokemon/base_stats/exeggcute.asm new file mode 100644 index 000000000..418c3948d --- /dev/null +++ b/data/pokemon/base_stats/exeggcute.asm @@ -0,0 +1,23 @@ + db DEX_EXEGGCUTE ; pokedex id + + db 60, 40, 80, 40, 60 + ; hp atk def spd spc + + db GRASS, PSYCHIC_TYPE ; type + db 90 ; catch rate + db 98 ; base exp + + INCBIN "gfx/pokemon/front_yellow/exeggcute.pic", 0, 1 ; sprite dimensions + dw ExeggcutePicFront, ExeggcutePicBack + + db BARRAGE, HYPNOSIS, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, TAKE_DOWN, DOUBLE_EDGE, RAGE, PSYCHIC_M, \ + TELEPORT, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + SELFDESTRUCT, EGG_BOMB, REST, PSYWAVE, EXPLOSION, \ + SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/exeggutor.asm b/data/pokemon/base_stats/exeggutor.asm new file mode 100644 index 000000000..236d706e9 --- /dev/null +++ b/data/pokemon/base_stats/exeggutor.asm @@ -0,0 +1,23 @@ + db DEX_EXEGGUTOR ; pokedex id + + db 95, 95, 85, 55, 125 + ; hp atk def spd spc + + db GRASS, PSYCHIC_TYPE ; type + db 45 ; catch rate + db 212 ; base exp + + INCBIN "gfx/pokemon/front_yellow/exeggutor.pic", 0, 1 ; sprite dimensions + dw ExeggutorPicFront, ExeggutorPicBack + + db BARRAGE, HYPNOSIS, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, TAKE_DOWN, DOUBLE_EDGE, HYPER_BEAM, RAGE, \ + MEGA_DRAIN, SOLARBEAM, PSYCHIC_M, TELEPORT, MIMIC, \ + DOUBLE_TEAM, REFLECT, BIDE, SELFDESTRUCT, EGG_BOMB, \ + REST, PSYWAVE, EXPLOSION, SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/farfetchd.asm b/data/pokemon/base_stats/farfetchd.asm new file mode 100644 index 000000000..d608b3fb7 --- /dev/null +++ b/data/pokemon/base_stats/farfetchd.asm @@ -0,0 +1,23 @@ + db DEX_FARFETCHD ; pokedex id + + db 52, 65, 55, 60, 58 + ; hp atk def spd spc + + db NORMAL, FLYING ; type + db 45 ; catch rate + db 94 ; base exp + + INCBIN "gfx/pokemon/front_yellow/farfetchd.pic", 0, 1 ; sprite dimensions + dw FarfetchdPicFront, FarfetchdPicBack + + db PECK, SAND_ATTACK, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm RAZOR_WIND, SWORDS_DANCE, WHIRLWIND, TOXIC, BODY_SLAM, \ + TAKE_DOWN, DOUBLE_EDGE, RAGE, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, SWIFT, SKULL_BASH, REST, \ + SUBSTITUTE, CUT, FLY + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/fearow.asm b/data/pokemon/base_stats/fearow.asm new file mode 100644 index 000000000..afb899218 --- /dev/null +++ b/data/pokemon/base_stats/fearow.asm @@ -0,0 +1,22 @@ + db DEX_FEAROW ; pokedex id + + db 65, 90, 65, 100, 61 + ; hp atk def spd spc + + db NORMAL, FLYING ; type + db 90 ; catch rate + db 162 ; base exp + + INCBIN "gfx/pokemon/front_yellow/fearow.pic", 0, 1 ; sprite dimensions + dw FearowPicFront, FearowPicBack + + db PECK, GROWL, LEER, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm RAZOR_WIND, WHIRLWIND, TOXIC, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, RAGE, MIMIC, DOUBLE_TEAM, BIDE, \ + SWIFT, SKY_ATTACK, REST, SUBSTITUTE, FLY + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/flareon.asm b/data/pokemon/base_stats/flareon.asm new file mode 100644 index 000000000..0a7147830 --- /dev/null +++ b/data/pokemon/base_stats/flareon.asm @@ -0,0 +1,22 @@ + db DEX_FLAREON ; pokedex id + + db 65, 130, 60, 65, 110 + ; hp atk def spd spc + + db FIRE, FIRE ; type + db 45 ; catch rate + db 198 ; base exp + + INCBIN "gfx/pokemon/front_yellow/flareon.pic", 0, 1 ; sprite dimensions + dw FlareonPicFront, FlareonPicBack + + db TACKLE, TAIL_WHIP, QUICK_ATTACK, EMBER ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, HYPER_BEAM, \ + RAGE, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + FIRE_BLAST, SWIFT, SKULL_BASH, REST, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/gastly.asm b/data/pokemon/base_stats/gastly.asm new file mode 100644 index 000000000..fc8c86ef1 --- /dev/null +++ b/data/pokemon/base_stats/gastly.asm @@ -0,0 +1,22 @@ + db DEX_GASTLY ; pokedex id + + db 30, 35, 30, 80, 100 + ; hp atk def spd spc + + db GHOST, POISON ; type + db 190 ; catch rate + db 95 ; base exp + + INCBIN "gfx/pokemon/front_yellow/gastly.pic", 0, 1 ; sprite dimensions + dw GastlyPicFront, GastlyPicBack + + db LICK, CONFUSE_RAY, NIGHT_SHADE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, RAGE, MEGA_DRAIN, THUNDERBOLT, THUNDER, \ + PSYCHIC_M, MIMIC, DOUBLE_TEAM, BIDE, SELFDESTRUCT, \ + DREAM_EATER, REST, PSYWAVE, EXPLOSION, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/gengar.asm b/data/pokemon/base_stats/gengar.asm new file mode 100644 index 000000000..dc9105c64 --- /dev/null +++ b/data/pokemon/base_stats/gengar.asm @@ -0,0 +1,25 @@ + db DEX_GENGAR ; pokedex id + + db 60, 65, 60, 110, 130 + ; hp atk def spd spc + + db GHOST, POISON ; type + db 45 ; catch rate + db 190 ; base exp + + INCBIN "gfx/pokemon/front_yellow/gengar.pic", 0, 1 ; sprite dimensions + dw GengarPicFront, GengarPicBack + + db LICK, CONFUSE_RAY, NIGHT_SHADE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, \ + RAGE, MEGA_DRAIN, THUNDERBOLT, THUNDER, PSYCHIC_M, \ + MIMIC, DOUBLE_TEAM, BIDE, METRONOME, SELFDESTRUCT, \ + SKULL_BASH, DREAM_EATER, REST, PSYWAVE, EXPLOSION, \ + SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/geodude.asm b/data/pokemon/base_stats/geodude.asm new file mode 100644 index 000000000..a2225f5c7 --- /dev/null +++ b/data/pokemon/base_stats/geodude.asm @@ -0,0 +1,24 @@ + db DEX_GEODUDE ; pokedex id + + db 40, 80, 100, 20, 30 + ; hp atk def spd spc + + db ROCK, GROUND ; type + db 255 ; catch rate + db 86 ; base exp + + INCBIN "gfx/pokemon/front_yellow/geodude.pic", 0, 1 ; sprite dimensions + dw GeodudePicFront, GeodudePicBack + + db TACKLE, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, EARTHQUAKE, \ + FISSURE, DIG, MIMIC, DOUBLE_TEAM, BIDE, \ + METRONOME, SELFDESTRUCT, FIRE_BLAST, REST, EXPLOSION, \ + ROCK_SLIDE, SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/gloom.asm b/data/pokemon/base_stats/gloom.asm new file mode 100644 index 000000000..8c24985ce --- /dev/null +++ b/data/pokemon/base_stats/gloom.asm @@ -0,0 +1,22 @@ + db DEX_GLOOM ; pokedex id + + db 60, 65, 70, 40, 85 + ; hp atk def spd spc + + db GRASS, POISON ; type + db 120 ; catch rate + db 132 ; base exp + + INCBIN "gfx/pokemon/front_yellow/gloom.pic", 0, 1 ; sprite dimensions + dw GloomPicFront, GloomPicBack + + db ABSORB, POISONPOWDER, STUN_SPORE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, TAKE_DOWN, DOUBLE_EDGE, RAGE, \ + MEGA_DRAIN, SOLARBEAM, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, REST, SUBSTITUTE, CUT + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/golbat.asm b/data/pokemon/base_stats/golbat.asm new file mode 100644 index 000000000..6eb604902 --- /dev/null +++ b/data/pokemon/base_stats/golbat.asm @@ -0,0 +1,22 @@ + db DEX_GOLBAT ; pokedex id + + db 75, 80, 70, 90, 75 + ; hp atk def spd spc + + db POISON, FLYING ; type + db 90 ; catch rate + db 171 ; base exp + + INCBIN "gfx/pokemon/front_yellow/golbat.pic", 0, 1 ; sprite dimensions + dw GolbatPicFront, GolbatPicBack + + db LEECH_LIFE, SCREECH, BITE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm RAZOR_WIND, WHIRLWIND, TOXIC, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, RAGE, MEGA_DRAIN, MIMIC, DOUBLE_TEAM, \ + BIDE, SWIFT, REST, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/goldeen.asm b/data/pokemon/base_stats/goldeen.asm new file mode 100644 index 000000000..662c6c930 --- /dev/null +++ b/data/pokemon/base_stats/goldeen.asm @@ -0,0 +1,23 @@ + db DEX_GOLDEEN ; pokedex id + + db 45, 67, 60, 63, 50 + ; hp atk def spd spc + + db WATER, WATER ; type + db 225 ; catch rate + db 111 ; base exp + + INCBIN "gfx/pokemon/front_yellow/goldeen.pic", 0, 1 ; sprite dimensions + dw GoldeenPicFront, GoldeenPicBack + + db PECK, TAIL_WHIP, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, HORN_DRILL, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, \ + WATER_GUN, ICE_BEAM, BLIZZARD, RAGE, MIMIC, \ + DOUBLE_TEAM, BIDE, SWIFT, SKULL_BASH, REST, \ + SUBSTITUTE, SURF + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/golduck.asm b/data/pokemon/base_stats/golduck.asm new file mode 100644 index 000000000..b7c035c69 --- /dev/null +++ b/data/pokemon/base_stats/golduck.asm @@ -0,0 +1,25 @@ + db DEX_GOLDUCK ; pokedex id + + db 80, 82, 78, 85, 80 + ; hp atk def spd spc + + db WATER, WATER ; type + db 75 ; catch rate + db 174 ; base exp + + INCBIN "gfx/pokemon/front_yellow/golduck.pic", 0, 1 ; sprite dimensions + dw GolduckPicFront, GolduckPicBack + + db SCRATCH, TAIL_WHIP, DISABLE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + HYPER_BEAM, PAY_DAY, SUBMISSION, COUNTER, SEISMIC_TOSS, \ + RAGE, DIG, MIMIC, DOUBLE_TEAM, BIDE, \ + SWIFT, SKULL_BASH, REST, SUBSTITUTE, SURF, \ + STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/golem.asm b/data/pokemon/base_stats/golem.asm new file mode 100644 index 000000000..a8f5cbf94 --- /dev/null +++ b/data/pokemon/base_stats/golem.asm @@ -0,0 +1,24 @@ + db DEX_GOLEM ; pokedex id + + db 80, 110, 130, 45, 55 + ; hp atk def spd spc + + db ROCK, GROUND ; type + db 45 ; catch rate + db 177 ; base exp + + INCBIN "gfx/pokemon/front_yellow/golem.pic", 0, 1 ; sprite dimensions + dw GolemPicFront, GolemPicBack + + db TACKLE, DEFENSE_CURL, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, \ + RAGE, EARTHQUAKE, FISSURE, DIG, MIMIC, \ + DOUBLE_TEAM, BIDE, METRONOME, SELFDESTRUCT, FIRE_BLAST, \ + REST, EXPLOSION, ROCK_SLIDE, SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/graveler.asm b/data/pokemon/base_stats/graveler.asm new file mode 100644 index 000000000..d5dfda811 --- /dev/null +++ b/data/pokemon/base_stats/graveler.asm @@ -0,0 +1,24 @@ + db DEX_GRAVELER ; pokedex id + + db 55, 95, 115, 35, 45 + ; hp atk def spd spc + + db ROCK, GROUND ; type + db 120 ; catch rate + db 134 ; base exp + + INCBIN "gfx/pokemon/front_yellow/graveler.pic", 0, 1 ; sprite dimensions + dw GravelerPicFront, GravelerPicBack + + db TACKLE, DEFENSE_CURL, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, EARTHQUAKE, \ + FISSURE, DIG, MIMIC, DOUBLE_TEAM, BIDE, \ + METRONOME, SELFDESTRUCT, FIRE_BLAST, REST, EXPLOSION, \ + ROCK_SLIDE, SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/grimer.asm b/data/pokemon/base_stats/grimer.asm new file mode 100644 index 000000000..b2e0f08a5 --- /dev/null +++ b/data/pokemon/base_stats/grimer.asm @@ -0,0 +1,22 @@ + db DEX_GRIMER ; pokedex id + + db 80, 80, 50, 25, 40 + ; hp atk def spd spc + + db POISON, POISON ; type + db 190 ; catch rate + db 90 ; base exp + + INCBIN "gfx/pokemon/front_yellow/grimer.pic", 0, 1 ; sprite dimensions + dw GrimerPicFront, GrimerPicBack + + db POUND, DISABLE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, RAGE, MEGA_DRAIN, THUNDERBOLT, \ + THUNDER, MIMIC, DOUBLE_TEAM, BIDE, SELFDESTRUCT, \ + FIRE_BLAST, REST, EXPLOSION, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/growlithe.asm b/data/pokemon/base_stats/growlithe.asm new file mode 100644 index 000000000..2c70184fa --- /dev/null +++ b/data/pokemon/base_stats/growlithe.asm @@ -0,0 +1,23 @@ + db DEX_GROWLITHE ; pokedex id + + db 55, 70, 45, 60, 50 + ; hp atk def spd spc + + db FIRE, FIRE ; type + db 190 ; catch rate + db 91 ; base exp + + INCBIN "gfx/pokemon/front_yellow/growlithe.pic", 0, 1 ; sprite dimensions + dw GrowlithePicFront, GrowlithePicBack + + db BITE, ROAR, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, RAGE, \ + DRAGON_RAGE, DIG, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, FIRE_BLAST, SWIFT, SKULL_BASH, REST, \ + SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/gyarados.asm b/data/pokemon/base_stats/gyarados.asm new file mode 100644 index 000000000..13c30ff84 --- /dev/null +++ b/data/pokemon/base_stats/gyarados.asm @@ -0,0 +1,24 @@ + db DEX_GYARADOS ; pokedex id + + db 95, 125, 79, 81, 100 + ; hp atk def spd spc + + db WATER, FLYING ; type + db 45 ; catch rate + db 214 ; base exp + + INCBIN "gfx/pokemon/front_yellow/gyarados.pic", 0, 1 ; sprite dimensions + dw GyaradosPicFront, GyaradosPicBack + + db TACKLE, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, \ + WATER_GUN, ICE_BEAM, BLIZZARD, HYPER_BEAM, RAGE, \ + DRAGON_RAGE, THUNDERBOLT, THUNDER, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, FIRE_BLAST, SKULL_BASH, REST, \ + SUBSTITUTE, SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/haunter.asm b/data/pokemon/base_stats/haunter.asm new file mode 100644 index 000000000..cf9df9ec7 --- /dev/null +++ b/data/pokemon/base_stats/haunter.asm @@ -0,0 +1,22 @@ + db DEX_HAUNTER ; pokedex id + + db 45, 50, 45, 95, 115 + ; hp atk def spd spc + + db GHOST, POISON ; type + db 90 ; catch rate + db 126 ; base exp + + INCBIN "gfx/pokemon/front_yellow/haunter.pic", 0, 1 ; sprite dimensions + dw HaunterPicFront, HaunterPicBack + + db LICK, CONFUSE_RAY, NIGHT_SHADE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, RAGE, MEGA_DRAIN, THUNDERBOLT, THUNDER, \ + PSYCHIC_M, MIMIC, DOUBLE_TEAM, BIDE, SELFDESTRUCT, \ + DREAM_EATER, REST, PSYWAVE, EXPLOSION, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/hitmonchan.asm b/data/pokemon/base_stats/hitmonchan.asm new file mode 100644 index 000000000..1b7651ff9 --- /dev/null +++ b/data/pokemon/base_stats/hitmonchan.asm @@ -0,0 +1,23 @@ + db DEX_HITMONCHAN ; pokedex id + + db 50, 105, 79, 76, 35 + ; hp atk def spd spc + + db FIGHTING, FIGHTING ; type + db 45 ; catch rate + db 140 ; base exp + + INCBIN "gfx/pokemon/front_yellow/hitmonchan.pic", 0, 1 ; sprite dimensions + dw HitmonchanPicFront, HitmonchanPicBack + + db COMET_PUNCH, AGILITY, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + MIMIC, DOUBLE_TEAM, BIDE, METRONOME, SWIFT, \ + SKULL_BASH, REST, SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/hitmonlee.asm b/data/pokemon/base_stats/hitmonlee.asm new file mode 100644 index 000000000..51da5f75f --- /dev/null +++ b/data/pokemon/base_stats/hitmonlee.asm @@ -0,0 +1,23 @@ + db DEX_HITMONLEE ; pokedex id + + db 50, 120, 53, 87, 35 + ; hp atk def spd spc + + db FIGHTING, FIGHTING ; type + db 45 ; catch rate + db 139 ; base exp + + INCBIN "gfx/pokemon/front_yellow/hitmonlee.pic", 0, 1 ; sprite dimensions + dw HitmonleePicFront, HitmonleePicBack + + db DOUBLE_KICK, MEDITATE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + MIMIC, DOUBLE_TEAM, BIDE, METRONOME, SWIFT, \ + SKULL_BASH, REST, SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/horsea.asm b/data/pokemon/base_stats/horsea.asm new file mode 100644 index 000000000..1a5a5affb --- /dev/null +++ b/data/pokemon/base_stats/horsea.asm @@ -0,0 +1,23 @@ + db DEX_HORSEA ; pokedex id + + db 30, 40, 70, 60, 70 + ; hp atk def spd spc + + db WATER, WATER ; type + db 225 ; catch rate + db 83 ; base exp + + INCBIN "gfx/pokemon/front_yellow/horsea.pic", 0, 1 ; sprite dimensions + dw HorseaPicFront, HorseaPicBack + + db BUBBLE, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, \ + ICE_BEAM, BLIZZARD, RAGE, MIMIC, DOUBLE_TEAM, \ + BIDE, SWIFT, SKULL_BASH, REST, SUBSTITUTE, \ + SURF + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/hypno.asm b/data/pokemon/base_stats/hypno.asm new file mode 100644 index 000000000..b43cd961d --- /dev/null +++ b/data/pokemon/base_stats/hypno.asm @@ -0,0 +1,25 @@ + db DEX_HYPNO ; pokedex id + + db 85, 73, 70, 67, 115 + ; hp atk def spd spc + + db PSYCHIC_TYPE, PSYCHIC_TYPE ; type + db 75 ; catch rate + db 165 ; base exp + + INCBIN "gfx/pokemon/front_yellow/hypno.pic", 0, 1 ; sprite dimensions + dw HypnoPicFront, HypnoPicBack + + db POUND, HYPNOSIS, DISABLE, CONFUSION ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, \ + RAGE, PSYCHIC_M, TELEPORT, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, METRONOME, SKULL_BASH, DREAM_EATER, \ + REST, THUNDER_WAVE, PSYWAVE, TRI_ATTACK, SUBSTITUTE, \ + FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/ivysaur.asm b/data/pokemon/base_stats/ivysaur.asm new file mode 100644 index 000000000..3d69a8d75 --- /dev/null +++ b/data/pokemon/base_stats/ivysaur.asm @@ -0,0 +1,22 @@ + db DEX_IVYSAUR ; pokedex id + + db 60, 62, 63, 60, 80 + ; hp atk def spd spc + + db GRASS, POISON ; type + db 45 ; catch rate + db 141 ; base exp + + INCBIN "gfx/pokemon/front_yellow/ivysaur.pic", 0, 1 ; sprite dimensions + dw IvysaurPicFront, IvysaurPicBack + + db TACKLE, GROWL, LEECH_SEED, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + RAGE, MEGA_DRAIN, SOLARBEAM, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, REST, SUBSTITUTE, CUT + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/jigglypuff.asm b/data/pokemon/base_stats/jigglypuff.asm new file mode 100644 index 000000000..8348431d8 --- /dev/null +++ b/data/pokemon/base_stats/jigglypuff.asm @@ -0,0 +1,26 @@ + db DEX_JIGGLYPUFF ; pokedex id + + db 115, 45, 20, 20, 25 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 170 ; catch rate + db 76 ; base exp + + INCBIN "gfx/pokemon/front_yellow/jigglypuff.pic", 0, 1 ; sprite dimensions + dw JigglypuffPicFront, JigglypuffPicBack + + db SING, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, SOLARBEAM, \ + THUNDERBOLT, THUNDER, PSYCHIC_M, TELEPORT, MIMIC, \ + DOUBLE_TEAM, REFLECT, BIDE, FIRE_BLAST, SKULL_BASH, \ + REST, THUNDER_WAVE, PSYWAVE, TRI_ATTACK, SUBSTITUTE, \ + STRENGTH, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/jolteon.asm b/data/pokemon/base_stats/jolteon.asm new file mode 100644 index 000000000..3db8c96a8 --- /dev/null +++ b/data/pokemon/base_stats/jolteon.asm @@ -0,0 +1,23 @@ + db DEX_JOLTEON ; pokedex id + + db 65, 65, 60, 130, 110 + ; hp atk def spd spc + + db ELECTRIC, ELECTRIC ; type + db 45 ; catch rate + db 197 ; base exp + + INCBIN "gfx/pokemon/front_yellow/jolteon.pic", 0, 1 ; sprite dimensions + dw JolteonPicFront, JolteonPicBack + + db TACKLE, TAIL_WHIP, QUICK_ATTACK, THUNDERSHOCK ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, HYPER_BEAM, \ + RAGE, THUNDERBOLT, THUNDER, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, SWIFT, SKULL_BASH, REST, \ + THUNDER_WAVE, SUBSTITUTE, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/jynx.asm b/data/pokemon/base_stats/jynx.asm new file mode 100644 index 000000000..f4fe28c75 --- /dev/null +++ b/data/pokemon/base_stats/jynx.asm @@ -0,0 +1,25 @@ + db DEX_JYNX ; pokedex id + + db 65, 50, 35, 95, 95 + ; hp atk def spd spc + + db ICE, PSYCHIC_TYPE ; type + db 45 ; catch rate + db 137 ; base exp + + INCBIN "gfx/pokemon/front_yellow/jynx.pic", 0, 1 ; sprite dimensions + dw JynxPicFront, JynxPicBack + + db POUND, LOVELY_KISS, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + PSYCHIC_M, TELEPORT, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, METRONOME, SKULL_BASH, REST, PSYWAVE, \ + SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/kabuto.asm b/data/pokemon/base_stats/kabuto.asm new file mode 100644 index 000000000..d5d96d1f2 --- /dev/null +++ b/data/pokemon/base_stats/kabuto.asm @@ -0,0 +1,23 @@ + db DEX_KABUTO ; pokedex id + + db 30, 80, 90, 55, 45 + ; hp atk def spd spc + + db ROCK, WATER ; type + db 45 ; catch rate + db 119 ; base exp + + INCBIN "gfx/pokemon/front_yellow/kabuto.pic", 0, 1 ; sprite dimensions + dw KabutoPicFront, KabutoPicBack + + db SCRATCH, HARDEN, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, \ + WATER_GUN, ICE_BEAM, BLIZZARD, RAGE, MIMIC, \ + DOUBLE_TEAM, REFLECT, BIDE, REST, SUBSTITUTE, \ + SURF + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/kabutops.asm b/data/pokemon/base_stats/kabutops.asm new file mode 100644 index 000000000..f067949ec --- /dev/null +++ b/data/pokemon/base_stats/kabutops.asm @@ -0,0 +1,24 @@ + db DEX_KABUTOPS ; pokedex id + + db 60, 115, 105, 80, 70 + ; hp atk def spd spc + + db ROCK, WATER ; type + db 45 ; catch rate + db 201 ; base exp + + INCBIN "gfx/pokemon/front_yellow/kabutops.pic", 0, 1 ; sprite dimensions + dw KabutopsPicFront, KabutopsPicBack + + db SCRATCH, HARDEN, ABSORB, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm RAZOR_WIND, SWORDS_DANCE, MEGA_KICK, TOXIC, BODY_SLAM, \ + TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, \ + BLIZZARD, HYPER_BEAM, SUBMISSION, SEISMIC_TOSS, RAGE, \ + MIMIC, DOUBLE_TEAM, REFLECT, BIDE, SKULL_BASH, \ + REST, SUBSTITUTE, CUT, SURF + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/kadabra.asm b/data/pokemon/base_stats/kadabra.asm new file mode 100644 index 000000000..30d2feeff --- /dev/null +++ b/data/pokemon/base_stats/kadabra.asm @@ -0,0 +1,24 @@ + db DEX_KADABRA ; pokedex id + + db 40, 35, 30, 105, 120 + ; hp atk def spd spc + + db PSYCHIC_TYPE, PSYCHIC_TYPE ; type + db 100 ; catch rate + db 145 ; base exp + + INCBIN "gfx/pokemon/front_yellow/kadabra.pic", 0, 1 ; sprite dimensions + dw KadabraPicFront, KadabraPicBack + + db TELEPORT, KINESIS, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + DIG, PSYCHIC_M, TELEPORT, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, METRONOME, SKULL_BASH, REST, \ + THUNDER_WAVE, PSYWAVE, TRI_ATTACK, SUBSTITUTE, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/kakuna.asm b/data/pokemon/base_stats/kakuna.asm new file mode 100644 index 000000000..39870dc4d --- /dev/null +++ b/data/pokemon/base_stats/kakuna.asm @@ -0,0 +1,20 @@ + db DEX_KAKUNA ; pokedex id + + db 45, 25, 50, 35, 25 + ; hp atk def spd spc + + db BUG, POISON ; type + db 120 ; catch rate + db 71 ; base exp + + INCBIN "gfx/pokemon/front_yellow/kakuna.pic", 0, 1 ; sprite dimensions + dw KakunaPicFront, KakunaPicBack + + db HARDEN, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/kangaskhan.asm b/data/pokemon/base_stats/kangaskhan.asm new file mode 100644 index 000000000..7d3cf971d --- /dev/null +++ b/data/pokemon/base_stats/kangaskhan.asm @@ -0,0 +1,25 @@ + db DEX_KANGASKHAN ; pokedex id + + db 105, 95, 80, 90, 40 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 45 ; catch rate + db 175 ; base exp + + INCBIN "gfx/pokemon/front_yellow/kangaskhan.pic", 0, 1 ; sprite dimensions + dw KangaskhanPicFront, KangaskhanPicBack + + db COMET_PUNCH, RAGE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + THUNDERBOLT, THUNDER, EARTHQUAKE, FISSURE, MIMIC, \ + DOUBLE_TEAM, BIDE, FIRE_BLAST, SKULL_BASH, REST, \ + ROCK_SLIDE, SUBSTITUTE, SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/kingler.asm b/data/pokemon/base_stats/kingler.asm new file mode 100644 index 000000000..c0d75d629 --- /dev/null +++ b/data/pokemon/base_stats/kingler.asm @@ -0,0 +1,23 @@ + db DEX_KINGLER ; pokedex id + + db 55, 130, 115, 75, 50 + ; hp atk def spd spc + + db WATER, WATER ; type + db 60 ; catch rate + db 206 ; base exp + + INCBIN "gfx/pokemon/front_yellow/kingler.pic", 0, 1 ; sprite dimensions + dw KinglerPicFront, KinglerPicBack + + db BUBBLE, LEER, VICEGRIP, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, HYPER_BEAM, \ + RAGE, MIMIC, DOUBLE_TEAM, BIDE, REST, \ + SUBSTITUTE, CUT, SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/koffing.asm b/data/pokemon/base_stats/koffing.asm new file mode 100644 index 000000000..5b63ebc8c --- /dev/null +++ b/data/pokemon/base_stats/koffing.asm @@ -0,0 +1,22 @@ + db DEX_KOFFING ; pokedex id + + db 40, 65, 95, 35, 60 + ; hp atk def spd spc + + db POISON, POISON ; type + db 190 ; catch rate + db 114 ; base exp + + INCBIN "gfx/pokemon/front_yellow/koffing.pic", 0, 1 ; sprite dimensions + dw KoffingPicFront, KoffingPicBack + + db TACKLE, SMOG, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, RAGE, THUNDERBOLT, THUNDER, MIMIC, \ + DOUBLE_TEAM, BIDE, SELFDESTRUCT, FIRE_BLAST, REST, \ + EXPLOSION, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/krabby.asm b/data/pokemon/base_stats/krabby.asm new file mode 100644 index 000000000..dd0f739a2 --- /dev/null +++ b/data/pokemon/base_stats/krabby.asm @@ -0,0 +1,23 @@ + db DEX_KRABBY ; pokedex id + + db 30, 105, 90, 50, 25 + ; hp atk def spd spc + + db WATER, WATER ; type + db 225 ; catch rate + db 115 ; base exp + + INCBIN "gfx/pokemon/front_yellow/krabby.pic", 0, 1 ; sprite dimensions + dw KrabbyPicFront, KrabbyPicBack + + db BUBBLE, LEER, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, RAGE, \ + MIMIC, DOUBLE_TEAM, BIDE, REST, SUBSTITUTE, \ + CUT, SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/lapras.asm b/data/pokemon/base_stats/lapras.asm new file mode 100644 index 000000000..eb45e08c8 --- /dev/null +++ b/data/pokemon/base_stats/lapras.asm @@ -0,0 +1,25 @@ + db DEX_LAPRAS ; pokedex id + + db 130, 85, 80, 60, 95 + ; hp atk def spd spc + + db WATER, ICE ; type + db 45 ; catch rate + db 219 ; base exp + + INCBIN "gfx/pokemon/front_yellow/lapras.pic", 0, 1 ; sprite dimensions + dw LaprasPicFront, LaprasPicBack + + db WATER_GUN, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, HORN_DRILL, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, HYPER_BEAM, \ + RAGE, SOLARBEAM, DRAGON_RAGE, THUNDERBOLT, THUNDER, \ + PSYCHIC_M, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + SKULL_BASH, REST, PSYWAVE, SUBSTITUTE, SURF, \ + STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/lickitung.asm b/data/pokemon/base_stats/lickitung.asm new file mode 100644 index 000000000..eef139469 --- /dev/null +++ b/data/pokemon/base_stats/lickitung.asm @@ -0,0 +1,25 @@ + db DEX_LICKITUNG ; pokedex id + + db 90, 55, 75, 30, 60 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 45 ; catch rate + db 127 ; base exp + + INCBIN "gfx/pokemon/front_yellow/lickitung.pic", 0, 1 ; sprite dimensions + dw LickitungPicFront, LickitungPicBack + + db WRAP, SUPERSONIC, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, SWORDS_DANCE, MEGA_KICK, TOXIC, BODY_SLAM, \ + TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, \ + BLIZZARD, HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, \ + RAGE, THUNDERBOLT, THUNDER, EARTHQUAKE, FISSURE, \ + MIMIC, DOUBLE_TEAM, BIDE, FIRE_BLAST, SKULL_BASH, \ + REST, SUBSTITUTE, CUT, SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/machamp.asm b/data/pokemon/base_stats/machamp.asm new file mode 100644 index 000000000..e00ccea60 --- /dev/null +++ b/data/pokemon/base_stats/machamp.asm @@ -0,0 +1,24 @@ + db DEX_MACHAMP ; pokedex id + + db 90, 130, 80, 55, 65 + ; hp atk def spd spc + + db FIGHTING, FIGHTING ; type + db 45 ; catch rate + db 193 ; base exp + + INCBIN "gfx/pokemon/front_yellow/machamp.pic", 0, 1 ; sprite dimensions + dw MachampPicFront, MachampPicBack + + db KARATE_CHOP, LOW_KICK, LEER, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, \ + RAGE, EARTHQUAKE, FISSURE, DIG, MIMIC, \ + DOUBLE_TEAM, BIDE, METRONOME, FIRE_BLAST, SKULL_BASH, \ + REST, ROCK_SLIDE, SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/machoke.asm b/data/pokemon/base_stats/machoke.asm new file mode 100644 index 000000000..0e1a1d466 --- /dev/null +++ b/data/pokemon/base_stats/machoke.asm @@ -0,0 +1,24 @@ + db DEX_MACHOKE ; pokedex id + + db 80, 100, 70, 45, 50 + ; hp atk def spd spc + + db FIGHTING, FIGHTING ; type + db 90 ; catch rate + db 146 ; base exp + + INCBIN "gfx/pokemon/front_yellow/machoke.pic", 0, 1 ; sprite dimensions + dw MachokePicFront, MachokePicBack + + db KARATE_CHOP, LOW_KICK, LEER, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + EARTHQUAKE, FISSURE, DIG, MIMIC, DOUBLE_TEAM, \ + BIDE, METRONOME, FIRE_BLAST, SKULL_BASH, REST, \ + ROCK_SLIDE, SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/machop.asm b/data/pokemon/base_stats/machop.asm new file mode 100644 index 000000000..3c7b84913 --- /dev/null +++ b/data/pokemon/base_stats/machop.asm @@ -0,0 +1,24 @@ + db DEX_MACHOP ; pokedex id + + db 70, 80, 50, 35, 35 + ; hp atk def spd spc + + db FIGHTING, FIGHTING ; type + db 180 ; catch rate + db 88 ; base exp + + INCBIN "gfx/pokemon/front_yellow/machop.pic", 0, 1 ; sprite dimensions + dw MachopPicFront, MachopPicBack + + db KARATE_CHOP, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + EARTHQUAKE, FISSURE, DIG, MIMIC, DOUBLE_TEAM, \ + BIDE, METRONOME, FIRE_BLAST, SKULL_BASH, REST, \ + ROCK_SLIDE, SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/magikarp.asm b/data/pokemon/base_stats/magikarp.asm new file mode 100644 index 000000000..8d7eef464 --- /dev/null +++ b/data/pokemon/base_stats/magikarp.asm @@ -0,0 +1,20 @@ + db DEX_MAGIKARP ; pokedex id + + db 20, 10, 55, 80, 20 + ; hp atk def spd spc + + db WATER, WATER ; type + db 255 ; catch rate + db 20 ; base exp + + INCBIN "gfx/pokemon/front_yellow/magikarp.pic", 0, 1 ; sprite dimensions + dw MagikarpPicFront, MagikarpPicBack + + db SPLASH, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/magmar.asm b/data/pokemon/base_stats/magmar.asm new file mode 100644 index 000000000..1619e211f --- /dev/null +++ b/data/pokemon/base_stats/magmar.asm @@ -0,0 +1,24 @@ + db DEX_MAGMAR ; pokedex id + + db 65, 95, 57, 93, 85 + ; hp atk def spd spc + + db FIRE, FIRE ; type + db 45 ; catch rate + db 167 ; base exp + + INCBIN "gfx/pokemon/front_yellow/magmar.pic", 0, 1 ; sprite dimensions + dw MagmarPicFront, MagmarPicBack + + db EMBER, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, \ + RAGE, PSYCHIC_M, TELEPORT, MIMIC, DOUBLE_TEAM, \ + BIDE, METRONOME, FIRE_BLAST, SKULL_BASH, REST, \ + PSYWAVE, SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/magnemite.asm b/data/pokemon/base_stats/magnemite.asm new file mode 100644 index 000000000..cb2494964 --- /dev/null +++ b/data/pokemon/base_stats/magnemite.asm @@ -0,0 +1,23 @@ + db DEX_MAGNEMITE ; pokedex id + + db 25, 35, 70, 45, 95 + ; hp atk def spd spc + + db ELECTRIC, ELECTRIC ; type + db 190 ; catch rate + db 89 ; base exp + + INCBIN "gfx/pokemon/front_yellow/magnemite.pic", 0, 1 ; sprite dimensions + dw MagnemitePicFront, MagnemitePicBack + + db TACKLE, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, TAKE_DOWN, DOUBLE_EDGE, RAGE, THUNDERBOLT, \ + THUNDER, TELEPORT, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, SWIFT, REST, THUNDER_WAVE, SUBSTITUTE, \ + FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/magneton.asm b/data/pokemon/base_stats/magneton.asm new file mode 100644 index 000000000..36db24281 --- /dev/null +++ b/data/pokemon/base_stats/magneton.asm @@ -0,0 +1,23 @@ + db DEX_MAGNETON ; pokedex id + + db 50, 60, 95, 70, 120 + ; hp atk def spd spc + + db ELECTRIC, ELECTRIC ; type + db 60 ; catch rate + db 161 ; base exp + + INCBIN "gfx/pokemon/front_yellow/magneton.pic", 0, 1 ; sprite dimensions + dw MagnetonPicFront, MagnetonPicBack + + db TACKLE, SONICBOOM, THUNDERSHOCK, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, TAKE_DOWN, DOUBLE_EDGE, HYPER_BEAM, RAGE, \ + THUNDERBOLT, THUNDER, TELEPORT, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, SWIFT, REST, THUNDER_WAVE, \ + SUBSTITUTE, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/mankey.asm b/data/pokemon/base_stats/mankey.asm new file mode 100644 index 000000000..cb60435ba --- /dev/null +++ b/data/pokemon/base_stats/mankey.asm @@ -0,0 +1,24 @@ + db DEX_MANKEY ; pokedex id + + db 40, 80, 35, 70, 35 + ; hp atk def spd spc + + db FIGHTING, FIGHTING ; type + db 190 ; catch rate + db 74 ; base exp + + INCBIN "gfx/pokemon/front_yellow/mankey.pic", 0, 1 ; sprite dimensions + dw MankeyPicFront, MankeyPicBack + + db SCRATCH, LEER, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, PAY_DAY, SUBMISSION, COUNTER, SEISMIC_TOSS, \ + RAGE, THUNDERBOLT, THUNDER, DIG, MIMIC, \ + DOUBLE_TEAM, BIDE, METRONOME, SWIFT, SKULL_BASH, \ + REST, ROCK_SLIDE, SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/marowak.asm b/data/pokemon/base_stats/marowak.asm new file mode 100644 index 000000000..bdd1636e1 --- /dev/null +++ b/data/pokemon/base_stats/marowak.asm @@ -0,0 +1,25 @@ + db DEX_MAROWAK ; pokedex id + + db 60, 80, 110, 45, 50 + ; hp atk def spd spc + + db GROUND, GROUND ; type + db 75 ; catch rate + db 124 ; base exp + + INCBIN "gfx/pokemon/front_yellow/marowak.pic", 0, 1 ; sprite dimensions + dw MarowakPicFront, MarowakPicBack + + db BONE_CLUB, TAIL_WHIP, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + EARTHQUAKE, FISSURE, DIG, MIMIC, DOUBLE_TEAM, \ + BIDE, FIRE_BLAST, SKULL_BASH, REST, SUBSTITUTE, \ + STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/meowth.asm b/data/pokemon/base_stats/meowth.asm new file mode 100644 index 000000000..9b06043bd --- /dev/null +++ b/data/pokemon/base_stats/meowth.asm @@ -0,0 +1,23 @@ + db DEX_MEOWTH ; pokedex id + + db 40, 45, 35, 90, 40 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 255 ; catch rate + db 69 ; base exp + + INCBIN "gfx/pokemon/front_yellow/meowth.pic", 0, 1 ; sprite dimensions + dw MeowthPicFront, MeowthPicBack + + db SCRATCH, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, \ + WATER_GUN, PAY_DAY, RAGE, THUNDERBOLT, THUNDER, \ + MIMIC, DOUBLE_TEAM, BIDE, SWIFT, SKULL_BASH, \ + REST, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/metapod.asm b/data/pokemon/base_stats/metapod.asm new file mode 100644 index 000000000..5d3d17408 --- /dev/null +++ b/data/pokemon/base_stats/metapod.asm @@ -0,0 +1,20 @@ + db DEX_METAPOD ; pokedex id + + db 50, 20, 55, 30, 25 + ; hp atk def spd spc + + db BUG, BUG ; type + db 120 ; catch rate + db 72 ; base exp + + INCBIN "gfx/pokemon/front_yellow/metapod.pic", 0, 1 ; sprite dimensions + dw MetapodPicFront, MetapodPicBack + + db HARDEN, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/mew.asm b/data/pokemon/base_stats/mew.asm new file mode 100644 index 000000000..caa7fb854 --- /dev/null +++ b/data/pokemon/base_stats/mew.asm @@ -0,0 +1,30 @@ + db DEX_MEW ; pokedex id + + db 100, 100, 100, 100, 100 + ; hp atk def spd spc + + db PSYCHIC_TYPE, PSYCHIC_TYPE ; type + db 45 ; catch rate + db 64 ; base exp + + INCBIN "gfx/pokemon/front_yellow/mew.pic", 0, 1 ; sprite dimensions + dw MewPicFront, MewPicBack + + db POUND, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, RAZOR_WIND, SWORDS_DANCE, WHIRLWIND, MEGA_KICK, \ + TOXIC, HORN_DRILL, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, HYPER_BEAM, \ + PAY_DAY, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + MEGA_DRAIN, SOLARBEAM, DRAGON_RAGE, THUNDERBOLT, THUNDER, \ + EARTHQUAKE, FISSURE, DIG, PSYCHIC_M, TELEPORT, \ + MIMIC, DOUBLE_TEAM, REFLECT, BIDE, METRONOME, \ + SELFDESTRUCT, EGG_BOMB, FIRE_BLAST, SWIFT, SKULL_BASH, \ + SOFTBOILED, DREAM_EATER, SKY_ATTACK, REST, THUNDER_WAVE, \ + PSYWAVE, EXPLOSION, ROCK_SLIDE, TRI_ATTACK, SUBSTITUTE, \ + CUT, FLY, SURF, STRENGTH, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/mewtwo.asm b/data/pokemon/base_stats/mewtwo.asm new file mode 100644 index 000000000..99ff53fe5 --- /dev/null +++ b/data/pokemon/base_stats/mewtwo.asm @@ -0,0 +1,26 @@ + db DEX_MEWTWO ; pokedex id + + db 106, 110, 90, 130, 154 + ; hp atk def spd spc + + db PSYCHIC_TYPE, PSYCHIC_TYPE ; type + db 3 ; catch rate + db 220 ; base exp + + INCBIN "gfx/pokemon/front_yellow/mewtwo.pic", 0, 1 ; sprite dimensions + dw MewtwoPicFront, MewtwoPicBack + + db CONFUSION, DISABLE, SWIFT, PSYCHIC_M ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + SOLARBEAM, THUNDERBOLT, THUNDER, PSYCHIC_M, TELEPORT, \ + MIMIC, DOUBLE_TEAM, REFLECT, BIDE, METRONOME, \ + SELFDESTRUCT, FIRE_BLAST, SKULL_BASH, REST, THUNDER_WAVE, \ + PSYWAVE, TRI_ATTACK, SUBSTITUTE, STRENGTH, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/moltres.asm b/data/pokemon/base_stats/moltres.asm new file mode 100644 index 000000000..50b23fd8b --- /dev/null +++ b/data/pokemon/base_stats/moltres.asm @@ -0,0 +1,23 @@ + db DEX_MOLTRES ; pokedex id + + db 90, 100, 90, 90, 125 + ; hp atk def spd spc + + db FIRE, FLYING ; type + db 3 ; catch rate + db 217 ; base exp + + INCBIN "gfx/pokemon/front_yellow/moltres.pic", 0, 1 ; sprite dimensions + dw MoltresPicFront, MoltresPicBack + + db PECK, FIRE_SPIN, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm RAZOR_WIND, WHIRLWIND, TOXIC, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, RAGE, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, FIRE_BLAST, SWIFT, SKY_ATTACK, REST, \ + SUBSTITUTE, FLY + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/mrmime.asm b/data/pokemon/base_stats/mrmime.asm new file mode 100644 index 000000000..e6cdba214 --- /dev/null +++ b/data/pokemon/base_stats/mrmime.asm @@ -0,0 +1,25 @@ + db DEX_MR_MIME ; pokedex id + + db 40, 45, 65, 90, 100 + ; hp atk def spd spc + + db PSYCHIC_TYPE, PSYCHIC_TYPE ; type + db 45 ; catch rate + db 136 ; base exp + + INCBIN "gfx/pokemon/front_yellow/mr.mime.pic", 0, 1 ; sprite dimensions + dw MrMimePicFront, MrMimePicBack + + db CONFUSION, BARRIER, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, \ + RAGE, SOLARBEAM, THUNDERBOLT, THUNDER, PSYCHIC_M, \ + TELEPORT, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + METRONOME, SKULL_BASH, REST, THUNDER_WAVE, PSYWAVE, \ + SUBSTITUTE, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/muk.asm b/data/pokemon/base_stats/muk.asm new file mode 100644 index 000000000..428850507 --- /dev/null +++ b/data/pokemon/base_stats/muk.asm @@ -0,0 +1,22 @@ + db DEX_MUK ; pokedex id + + db 105, 105, 75, 50, 65 + ; hp atk def spd spc + + db POISON, POISON ; type + db 75 ; catch rate + db 157 ; base exp + + INCBIN "gfx/pokemon/front_yellow/muk.pic", 0, 1 ; sprite dimensions + dw MukPicFront, MukPicBack + + db POUND, DISABLE, POISON_GAS, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, HYPER_BEAM, RAGE, MEGA_DRAIN, \ + THUNDERBOLT, THUNDER, MIMIC, DOUBLE_TEAM, BIDE, \ + SELFDESTRUCT, FIRE_BLAST, REST, EXPLOSION, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/nidoking.asm b/data/pokemon/base_stats/nidoking.asm new file mode 100644 index 000000000..602ed2ff6 --- /dev/null +++ b/data/pokemon/base_stats/nidoking.asm @@ -0,0 +1,26 @@ + db DEX_NIDOKING ; pokedex id + + db 81, 92, 77, 85, 75 + ; hp atk def spd spc + + db POISON, GROUND ; type + db 45 ; catch rate + db 195 ; base exp + + INCBIN "gfx/pokemon/front_yellow/nidoking.pic", 0, 1 ; sprite dimensions + dw NidokingPicFront, NidokingPicBack + + db TACKLE, HORN_ATTACK, POISON_STING, THRASH ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, HORN_DRILL, BODY_SLAM, \ + TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, \ + BLIZZARD, HYPER_BEAM, PAY_DAY, SUBMISSION, COUNTER, \ + SEISMIC_TOSS, RAGE, THUNDERBOLT, THUNDER, EARTHQUAKE, \ + FISSURE, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + FIRE_BLAST, SKULL_BASH, REST, ROCK_SLIDE, SUBSTITUTE, \ + SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/nidoqueen.asm b/data/pokemon/base_stats/nidoqueen.asm new file mode 100644 index 000000000..5fba3fed7 --- /dev/null +++ b/data/pokemon/base_stats/nidoqueen.asm @@ -0,0 +1,26 @@ + db DEX_NIDOQUEEN ; pokedex id + + db 90, 82, 87, 76, 75 + ; hp atk def spd spc + + db POISON, GROUND ; type + db 45 ; catch rate + db 194 ; base exp + + INCBIN "gfx/pokemon/front_yellow/nidoqueen.pic", 0, 1 ; sprite dimensions + dw NidoqueenPicFront, NidoqueenPicBack + + db TACKLE, SCRATCH, TAIL_WHIP, BODY_SLAM ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, HORN_DRILL, BODY_SLAM, \ + TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, \ + BLIZZARD, HYPER_BEAM, PAY_DAY, SUBMISSION, COUNTER, \ + SEISMIC_TOSS, RAGE, THUNDERBOLT, THUNDER, EARTHQUAKE, \ + FISSURE, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + FIRE_BLAST, SKULL_BASH, REST, ROCK_SLIDE, SUBSTITUTE, \ + SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/nidoranf.asm b/data/pokemon/base_stats/nidoranf.asm new file mode 100644 index 000000000..814e2dd76 --- /dev/null +++ b/data/pokemon/base_stats/nidoranf.asm @@ -0,0 +1,22 @@ + db DEX_NIDORAN_F ; pokedex id + + db 55, 47, 52, 41, 40 + ; hp atk def spd spc + + db POISON, POISON ; type + db 235 ; catch rate + db 59 ; base exp + + INCBIN "gfx/pokemon/front_yellow/nidoranf.pic", 0, 1 ; sprite dimensions + dw NidoranFPicFront, NidoranFPicBack + + db GROWL, TACKLE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, BLIZZARD, \ + RAGE, THUNDERBOLT, THUNDER, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, SKULL_BASH, REST, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/nidoranm.asm b/data/pokemon/base_stats/nidoranm.asm new file mode 100644 index 000000000..05b3050a4 --- /dev/null +++ b/data/pokemon/base_stats/nidoranm.asm @@ -0,0 +1,23 @@ + db DEX_NIDORAN_M ; pokedex id + + db 46, 57, 40, 50, 40 + ; hp atk def spd spc + + db POISON, POISON ; type + db 235 ; catch rate + db 60 ; base exp + + INCBIN "gfx/pokemon/front_yellow/nidoranm.pic", 0, 1 ; sprite dimensions + dw NidoranMPicFront, NidoranMPicBack + + db LEER, TACKLE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, HORN_DRILL, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + BLIZZARD, RAGE, THUNDERBOLT, THUNDER, MIMIC, \ + DOUBLE_TEAM, REFLECT, BIDE, SKULL_BASH, REST, \ + SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/nidorina.asm b/data/pokemon/base_stats/nidorina.asm new file mode 100644 index 000000000..9831db3e4 --- /dev/null +++ b/data/pokemon/base_stats/nidorina.asm @@ -0,0 +1,23 @@ + db DEX_NIDORINA ; pokedex id + + db 70, 62, 67, 56, 55 + ; hp atk def spd spc + + db POISON, POISON ; type + db 120 ; catch rate + db 117 ; base exp + + INCBIN "gfx/pokemon/front_yellow/nidorina.pic", 0, 1 ; sprite dimensions + dw NidorinaPicFront, NidorinaPicBack + + db GROWL, TACKLE, SCRATCH, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, HORN_DRILL, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, RAGE, \ + THUNDERBOLT, THUNDER, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, SKULL_BASH, REST, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/nidorino.asm b/data/pokemon/base_stats/nidorino.asm new file mode 100644 index 000000000..d8abd0360 --- /dev/null +++ b/data/pokemon/base_stats/nidorino.asm @@ -0,0 +1,23 @@ + db DEX_NIDORINO ; pokedex id + + db 61, 72, 57, 65, 55 + ; hp atk def spd spc + + db POISON, POISON ; type + db 120 ; catch rate + db 118 ; base exp + + INCBIN "gfx/pokemon/front_yellow/nidorino.pic", 0, 1 ; sprite dimensions + dw NidorinoPicFront, NidorinoPicBack + + db LEER, TACKLE, HORN_ATTACK, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, HORN_DRILL, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, RAGE, \ + THUNDERBOLT, THUNDER, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, SKULL_BASH, REST, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/ninetales.asm b/data/pokemon/base_stats/ninetales.asm new file mode 100644 index 000000000..7373d2e9a --- /dev/null +++ b/data/pokemon/base_stats/ninetales.asm @@ -0,0 +1,23 @@ + db DEX_NINETALES ; pokedex id + + db 73, 76, 75, 100, 100 + ; hp atk def spd spc + + db FIRE, FIRE ; type + db 75 ; catch rate + db 178 ; base exp + + INCBIN "gfx/pokemon/front_yellow/ninetales.pic", 0, 1 ; sprite dimensions + dw NinetalesPicFront, NinetalesPicBack + + db EMBER, TAIL_WHIP, QUICK_ATTACK, ROAR ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, HYPER_BEAM, \ + RAGE, DIG, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, FIRE_BLAST, SWIFT, SKULL_BASH, REST, \ + SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/oddish.asm b/data/pokemon/base_stats/oddish.asm new file mode 100644 index 000000000..de1498b98 --- /dev/null +++ b/data/pokemon/base_stats/oddish.asm @@ -0,0 +1,22 @@ + db DEX_ODDISH ; pokedex id + + db 45, 50, 55, 30, 75 + ; hp atk def spd spc + + db GRASS, POISON ; type + db 255 ; catch rate + db 78 ; base exp + + INCBIN "gfx/pokemon/front_yellow/oddish.pic", 0, 1 ; sprite dimensions + dw OddishPicFront, OddishPicBack + + db ABSORB, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, TAKE_DOWN, DOUBLE_EDGE, RAGE, \ + MEGA_DRAIN, SOLARBEAM, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, REST, SUBSTITUTE, CUT + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/omanyte.asm b/data/pokemon/base_stats/omanyte.asm new file mode 100644 index 000000000..1dff5d202 --- /dev/null +++ b/data/pokemon/base_stats/omanyte.asm @@ -0,0 +1,23 @@ + db DEX_OMANYTE ; pokedex id + + db 35, 40, 100, 35, 90 + ; hp atk def spd spc + + db ROCK, WATER ; type + db 45 ; catch rate + db 120 ; base exp + + INCBIN "gfx/pokemon/front_yellow/omanyte.pic", 0, 1 ; sprite dimensions + dw OmanytePicFront, OmanytePicBack + + db WATER_GUN, WITHDRAW, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, \ + WATER_GUN, ICE_BEAM, BLIZZARD, RAGE, MIMIC, \ + DOUBLE_TEAM, REFLECT, BIDE, REST, SUBSTITUTE, \ + SURF + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/omastar.asm b/data/pokemon/base_stats/omastar.asm new file mode 100644 index 000000000..1deaf7893 --- /dev/null +++ b/data/pokemon/base_stats/omastar.asm @@ -0,0 +1,24 @@ + db DEX_OMASTAR ; pokedex id + + db 70, 60, 125, 55, 115 + ; hp atk def spd spc + + db ROCK, WATER ; type + db 45 ; catch rate + db 199 ; base exp + + INCBIN "gfx/pokemon/front_yellow/omastar.pic", 0, 1 ; sprite dimensions + dw OmastarPicFront, OmastarPicBack + + db WATER_GUN, WITHDRAW, HORN_ATTACK, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, HORN_DRILL, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, HYPER_BEAM, \ + SUBMISSION, SEISMIC_TOSS, RAGE, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, SKULL_BASH, REST, SUBSTITUTE, \ + SURF + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/onix.asm b/data/pokemon/base_stats/onix.asm new file mode 100644 index 000000000..96048ee57 --- /dev/null +++ b/data/pokemon/base_stats/onix.asm @@ -0,0 +1,23 @@ + db DEX_ONIX ; pokedex id + + db 35, 45, 160, 70, 30 + ; hp atk def spd spc + + db ROCK, GROUND ; type + db 45 ; catch rate + db 108 ; base exp + + INCBIN "gfx/pokemon/front_yellow/onix.pic", 0, 1 ; sprite dimensions + dw OnixPicFront, OnixPicBack + + db TACKLE, SCREECH, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, RAGE, \ + EARTHQUAKE, FISSURE, DIG, MIMIC, DOUBLE_TEAM, \ + BIDE, SELFDESTRUCT, SKULL_BASH, REST, EXPLOSION, \ + ROCK_SLIDE, SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/paras.asm b/data/pokemon/base_stats/paras.asm new file mode 100644 index 000000000..82e9920ec --- /dev/null +++ b/data/pokemon/base_stats/paras.asm @@ -0,0 +1,23 @@ + db DEX_PARAS ; pokedex id + + db 35, 70, 55, 25, 55 + ; hp atk def spd spc + + db BUG, GRASS ; type + db 190 ; catch rate + db 70 ; base exp + + INCBIN "gfx/pokemon/front_yellow/paras.pic", 0, 1 ; sprite dimensions + dw ParasPicFront, ParasPicBack + + db SCRATCH, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + RAGE, MEGA_DRAIN, SOLARBEAM, DIG, MIMIC, \ + DOUBLE_TEAM, REFLECT, BIDE, SKULL_BASH, REST, \ + SUBSTITUTE, CUT + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/parasect.asm b/data/pokemon/base_stats/parasect.asm new file mode 100644 index 000000000..bcd47673b --- /dev/null +++ b/data/pokemon/base_stats/parasect.asm @@ -0,0 +1,23 @@ + db DEX_PARASECT ; pokedex id + + db 60, 95, 80, 30, 80 + ; hp atk def spd spc + + db BUG, GRASS ; type + db 75 ; catch rate + db 128 ; base exp + + INCBIN "gfx/pokemon/front_yellow/parasect.pic", 0, 1 ; sprite dimensions + dw ParasectPicFront, ParasectPicBack + + db SCRATCH, STUN_SPORE, LEECH_LIFE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, RAGE, MEGA_DRAIN, SOLARBEAM, DIG, \ + MIMIC, DOUBLE_TEAM, REFLECT, BIDE, SKULL_BASH, \ + REST, SUBSTITUTE, CUT + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/persian.asm b/data/pokemon/base_stats/persian.asm new file mode 100644 index 000000000..4da05861c --- /dev/null +++ b/data/pokemon/base_stats/persian.asm @@ -0,0 +1,23 @@ + db DEX_PERSIAN ; pokedex id + + db 65, 70, 60, 115, 65 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 90 ; catch rate + db 148 ; base exp + + INCBIN "gfx/pokemon/front_yellow/persian.pic", 0, 1 ; sprite dimensions + dw PersianPicFront, PersianPicBack + + db SCRATCH, GROWL, BITE, SCREECH ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, \ + WATER_GUN, HYPER_BEAM, PAY_DAY, RAGE, THUNDERBOLT, \ + THUNDER, MIMIC, DOUBLE_TEAM, BIDE, SWIFT, \ + SKULL_BASH, REST, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/pidgeot.asm b/data/pokemon/base_stats/pidgeot.asm new file mode 100644 index 000000000..b4370201a --- /dev/null +++ b/data/pokemon/base_stats/pidgeot.asm @@ -0,0 +1,23 @@ + db DEX_PIDGEOT ; pokedex id + + db 83, 80, 75, 91, 70 + ; hp atk def spd spc + + db NORMAL, FLYING ; type + db 45 ; catch rate + db 172 ; base exp + + INCBIN "gfx/pokemon/front_yellow/pidgeot.pic", 0, 1 ; sprite dimensions + dw PidgeotPicFront, PidgeotPicBack + + db GUST, SAND_ATTACK, QUICK_ATTACK, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm RAZOR_WIND, WHIRLWIND, TOXIC, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, RAGE, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, SWIFT, SKY_ATTACK, REST, SUBSTITUTE, \ + FLY + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/pidgeotto.asm b/data/pokemon/base_stats/pidgeotto.asm new file mode 100644 index 000000000..c44325db9 --- /dev/null +++ b/data/pokemon/base_stats/pidgeotto.asm @@ -0,0 +1,22 @@ + db DEX_PIDGEOTTO ; pokedex id + + db 63, 60, 55, 71, 50 + ; hp atk def spd spc + + db NORMAL, FLYING ; type + db 120 ; catch rate + db 113 ; base exp + + INCBIN "gfx/pokemon/front_yellow/pidgeotto.pic", 0, 1 ; sprite dimensions + dw PidgeottoPicFront, PidgeottoPicBack + + db GUST, SAND_ATTACK, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm RAZOR_WIND, WHIRLWIND, TOXIC, TAKE_DOWN, DOUBLE_EDGE, \ + RAGE, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + SWIFT, SKY_ATTACK, REST, SUBSTITUTE, FLY + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/pidgey.asm b/data/pokemon/base_stats/pidgey.asm new file mode 100644 index 000000000..0c1c241b9 --- /dev/null +++ b/data/pokemon/base_stats/pidgey.asm @@ -0,0 +1,22 @@ + db DEX_PIDGEY ; pokedex id + + db 40, 45, 40, 56, 35 + ; hp atk def spd spc + + db NORMAL, FLYING ; type + db 255 ; catch rate + db 55 ; base exp + + INCBIN "gfx/pokemon/front_yellow/pidgey.pic", 0, 1 ; sprite dimensions + dw PidgeyPicFront, PidgeyPicBack + + db GUST, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm RAZOR_WIND, WHIRLWIND, TOXIC, TAKE_DOWN, DOUBLE_EDGE, \ + RAGE, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + SWIFT, SKY_ATTACK, REST, SUBSTITUTE, FLY + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/pikachu.asm b/data/pokemon/base_stats/pikachu.asm new file mode 100644 index 000000000..8bef5f8b9 --- /dev/null +++ b/data/pokemon/base_stats/pikachu.asm @@ -0,0 +1,24 @@ + db DEX_PIKACHU ; pokedex id + + db 35, 55, 30, 90, 50 + ; hp atk def spd spc + + db ELECTRIC, ELECTRIC ; type + db 190 ; catch rate + db 82 ; base exp + + INCBIN "gfx/pokemon/front_yellow/pikachu.pic", 0, 1 ; sprite dimensions + dw PikachuPicFront, PikachuPicBack + + db THUNDERSHOCK, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, PAY_DAY, SUBMISSION, SEISMIC_TOSS, RAGE, \ + THUNDERBOLT, THUNDER, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, SWIFT, SKULL_BASH, REST, THUNDER_WAVE, \ + SUBSTITUTE, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/pinsir.asm b/data/pokemon/base_stats/pinsir.asm new file mode 100644 index 000000000..e67a28968 --- /dev/null +++ b/data/pokemon/base_stats/pinsir.asm @@ -0,0 +1,23 @@ + db DEX_PINSIR ; pokedex id + + db 65, 125, 100, 85, 55 + ; hp atk def spd spc + + db BUG, BUG ; type + db 45 ; catch rate + db 200 ; base exp + + INCBIN "gfx/pokemon/front_yellow/pinsir.pic", 0, 1 ; sprite dimensions + dw PinsirPicFront, PinsirPicBack + + db VICEGRIP, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, SUBMISSION, SEISMIC_TOSS, RAGE, MIMIC, \ + DOUBLE_TEAM, BIDE, REST, SUBSTITUTE, CUT, \ + STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/poliwag.asm b/data/pokemon/base_stats/poliwag.asm new file mode 100644 index 000000000..04f0aae58 --- /dev/null +++ b/data/pokemon/base_stats/poliwag.asm @@ -0,0 +1,23 @@ + db DEX_POLIWAG ; pokedex id + + db 40, 50, 40, 90, 40 + ; hp atk def spd spc + + db WATER, WATER ; type + db 255 ; catch rate + db 77 ; base exp + + INCBIN "gfx/pokemon/front_yellow/poliwag.pic", 0, 1 ; sprite dimensions + dw PoliwagPicFront, PoliwagPicBack + + db BUBBLE, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, \ + WATER_GUN, ICE_BEAM, BLIZZARD, RAGE, PSYCHIC_M, \ + MIMIC, DOUBLE_TEAM, BIDE, SKULL_BASH, REST, \ + PSYWAVE, SUBSTITUTE, SURF + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/poliwhirl.asm b/data/pokemon/base_stats/poliwhirl.asm new file mode 100644 index 000000000..54673b747 --- /dev/null +++ b/data/pokemon/base_stats/poliwhirl.asm @@ -0,0 +1,25 @@ + db DEX_POLIWHIRL ; pokedex id + + db 65, 65, 65, 90, 50 + ; hp atk def spd spc + + db WATER, WATER ; type + db 120 ; catch rate + db 131 ; base exp + + INCBIN "gfx/pokemon/front_yellow/poliwhirl.pic", 0, 1 ; sprite dimensions + dw PoliwhirlPicFront, PoliwhirlPicBack + + db BUBBLE, HYPNOSIS, WATER_GUN, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, EARTHQUAKE, \ + FISSURE, PSYCHIC_M, MIMIC, DOUBLE_TEAM, BIDE, \ + METRONOME, SKULL_BASH, REST, PSYWAVE, SUBSTITUTE, \ + SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/poliwrath.asm b/data/pokemon/base_stats/poliwrath.asm new file mode 100644 index 000000000..2c3b6bc5e --- /dev/null +++ b/data/pokemon/base_stats/poliwrath.asm @@ -0,0 +1,25 @@ + db DEX_POLIWRATH ; pokedex id + + db 90, 85, 95, 70, 70 + ; hp atk def spd spc + + db WATER, FIGHTING ; type + db 45 ; catch rate + db 185 ; base exp + + INCBIN "gfx/pokemon/front_yellow/poliwrath.pic", 0, 1 ; sprite dimensions + dw PoliwrathPicFront, PoliwrathPicBack + + db HYPNOSIS, WATER_GUN, DOUBLESLAP, BODY_SLAM ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + EARTHQUAKE, FISSURE, PSYCHIC_M, MIMIC, DOUBLE_TEAM, \ + BIDE, METRONOME, SKULL_BASH, REST, PSYWAVE, \ + SUBSTITUTE, SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/ponyta.asm b/data/pokemon/base_stats/ponyta.asm new file mode 100644 index 000000000..ee8e33894 --- /dev/null +++ b/data/pokemon/base_stats/ponyta.asm @@ -0,0 +1,22 @@ + db DEX_PONYTA ; pokedex id + + db 50, 85, 55, 90, 65 + ; hp atk def spd spc + + db FIRE, FIRE ; type + db 190 ; catch rate + db 152 ; base exp + + INCBIN "gfx/pokemon/front_yellow/ponyta.pic", 0, 1 ; sprite dimensions + dw PonytaPicFront, PonytaPicBack + + db EMBER, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, HORN_DRILL, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + RAGE, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + FIRE_BLAST, SWIFT, SKULL_BASH, REST, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/porygon.asm b/data/pokemon/base_stats/porygon.asm new file mode 100644 index 000000000..8be8923ee --- /dev/null +++ b/data/pokemon/base_stats/porygon.asm @@ -0,0 +1,24 @@ + db DEX_PORYGON ; pokedex id + + db 65, 60, 70, 40, 75 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 45 ; catch rate + db 130 ; base exp + + INCBIN "gfx/pokemon/front_yellow/porygon.pic", 0, 1 ; sprite dimensions + dw PorygonPicFront, PorygonPicBack + + db TACKLE, SHARPEN, CONVERSION, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, TAKE_DOWN, DOUBLE_EDGE, ICE_BEAM, BLIZZARD, \ + HYPER_BEAM, RAGE, THUNDERBOLT, THUNDER, PSYCHIC_M, \ + TELEPORT, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + SWIFT, SKULL_BASH, REST, THUNDER_WAVE, PSYWAVE, \ + TRI_ATTACK, SUBSTITUTE, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/primeape.asm b/data/pokemon/base_stats/primeape.asm new file mode 100644 index 000000000..57f6e9011 --- /dev/null +++ b/data/pokemon/base_stats/primeape.asm @@ -0,0 +1,24 @@ + db DEX_PRIMEAPE ; pokedex id + + db 65, 105, 60, 95, 60 + ; hp atk def spd spc + + db FIGHTING, FIGHTING ; type + db 75 ; catch rate + db 149 ; base exp + + INCBIN "gfx/pokemon/front_yellow/primeape.pic", 0, 1 ; sprite dimensions + dw PrimeapePicFront, PrimeapePicBack + + db SCRATCH, LEER, LOW_KICK, KARATE_CHOP ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, HYPER_BEAM, PAY_DAY, SUBMISSION, COUNTER, \ + SEISMIC_TOSS, RAGE, THUNDERBOLT, THUNDER, DIG, \ + MIMIC, DOUBLE_TEAM, BIDE, METRONOME, SWIFT, \ + SKULL_BASH, REST, ROCK_SLIDE, SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/psyduck.asm b/data/pokemon/base_stats/psyduck.asm new file mode 100644 index 000000000..1f6c4437e --- /dev/null +++ b/data/pokemon/base_stats/psyduck.asm @@ -0,0 +1,24 @@ + db DEX_PSYDUCK ; pokedex id + + db 50, 52, 48, 55, 50 + ; hp atk def spd spc + + db WATER, WATER ; type + db 190 ; catch rate + db 80 ; base exp + + INCBIN "gfx/pokemon/front_yellow/psyduck.pic", 0, 1 ; sprite dimensions + dw PsyduckPicFront, PsyduckPicBack + + db SCRATCH, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + PAY_DAY, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + DIG, MIMIC, DOUBLE_TEAM, BIDE, SWIFT, \ + SKULL_BASH, REST, SUBSTITUTE, SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/raichu.asm b/data/pokemon/base_stats/raichu.asm new file mode 100644 index 000000000..9ac938131 --- /dev/null +++ b/data/pokemon/base_stats/raichu.asm @@ -0,0 +1,24 @@ + db DEX_RAICHU ; pokedex id + + db 60, 90, 55, 100, 90 + ; hp atk def spd spc + + db ELECTRIC, ELECTRIC ; type + db 75 ; catch rate + db 122 ; base exp + + INCBIN "gfx/pokemon/front_yellow/raichu.pic", 0, 1 ; sprite dimensions + dw RaichuPicFront, RaichuPicBack + + db THUNDERSHOCK, GROWL, THUNDER_WAVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, HYPER_BEAM, PAY_DAY, SUBMISSION, SEISMIC_TOSS, \ + RAGE, THUNDERBOLT, THUNDER, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, SWIFT, SKULL_BASH, REST, \ + THUNDER_WAVE, SUBSTITUTE, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/rapidash.asm b/data/pokemon/base_stats/rapidash.asm new file mode 100644 index 000000000..8a0938590 --- /dev/null +++ b/data/pokemon/base_stats/rapidash.asm @@ -0,0 +1,23 @@ + db DEX_RAPIDASH ; pokedex id + + db 65, 100, 70, 105, 80 + ; hp atk def spd spc + + db FIRE, FIRE ; type + db 60 ; catch rate + db 192 ; base exp + + INCBIN "gfx/pokemon/front_yellow/rapidash.pic", 0, 1 ; sprite dimensions + dw RapidashPicFront, RapidashPicBack + + db EMBER, TAIL_WHIP, STOMP, GROWL ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, HORN_DRILL, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, RAGE, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, FIRE_BLAST, SWIFT, SKULL_BASH, REST, \ + SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/raticate.asm b/data/pokemon/base_stats/raticate.asm new file mode 100644 index 000000000..9dc46afbe --- /dev/null +++ b/data/pokemon/base_stats/raticate.asm @@ -0,0 +1,23 @@ + db DEX_RATICATE ; pokedex id + + db 55, 81, 60, 97, 50 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 90 ; catch rate + db 116 ; base exp + + INCBIN "gfx/pokemon/front_yellow/raticate.pic", 0, 1 ; sprite dimensions + dw RaticatePicFront, RaticatePicBack + + db TACKLE, TAIL_WHIP, QUICK_ATTACK, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, \ + WATER_GUN, ICE_BEAM, BLIZZARD, HYPER_BEAM, RAGE, \ + THUNDERBOLT, THUNDER, DIG, MIMIC, DOUBLE_TEAM, \ + BIDE, SWIFT, SKULL_BASH, REST, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/rattata.asm b/data/pokemon/base_stats/rattata.asm new file mode 100644 index 000000000..9cace6294 --- /dev/null +++ b/data/pokemon/base_stats/rattata.asm @@ -0,0 +1,23 @@ + db DEX_RATTATA ; pokedex id + + db 30, 56, 35, 72, 25 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 255 ; catch rate + db 57 ; base exp + + INCBIN "gfx/pokemon/front_yellow/rattata.pic", 0, 1 ; sprite dimensions + dw RattataPicFront, RattataPicBack + + db TACKLE, TAIL_WHIP, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, \ + WATER_GUN, BLIZZARD, RAGE, THUNDERBOLT, THUNDER, \ + DIG, MIMIC, DOUBLE_TEAM, BIDE, SWIFT, \ + SKULL_BASH, REST, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/rhydon.asm b/data/pokemon/base_stats/rhydon.asm new file mode 100644 index 000000000..f08f72555 --- /dev/null +++ b/data/pokemon/base_stats/rhydon.asm @@ -0,0 +1,26 @@ + db DEX_RHYDON ; pokedex id + + db 105, 130, 120, 40, 45 + ; hp atk def spd spc + + db GROUND, ROCK ; type + db 60 ; catch rate + db 204 ; base exp + + INCBIN "gfx/pokemon/front_yellow/rhydon.pic", 0, 1 ; sprite dimensions + dw RhydonPicFront, RhydonPicBack + + db HORN_ATTACK, STOMP, TAIL_WHIP, FURY_ATTACK ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, HORN_DRILL, BODY_SLAM, \ + TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, \ + BLIZZARD, HYPER_BEAM, PAY_DAY, SUBMISSION, COUNTER, \ + SEISMIC_TOSS, RAGE, THUNDERBOLT, THUNDER, EARTHQUAKE, \ + FISSURE, DIG, MIMIC, DOUBLE_TEAM, BIDE, \ + FIRE_BLAST, SKULL_BASH, REST, ROCK_SLIDE, SUBSTITUTE, \ + SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/rhyhorn.asm b/data/pokemon/base_stats/rhyhorn.asm new file mode 100644 index 000000000..3b8b1eb4c --- /dev/null +++ b/data/pokemon/base_stats/rhyhorn.asm @@ -0,0 +1,23 @@ + db DEX_RHYHORN ; pokedex id + + db 80, 85, 95, 25, 30 + ; hp atk def spd spc + + db GROUND, ROCK ; type + db 120 ; catch rate + db 135 ; base exp + + INCBIN "gfx/pokemon/front_yellow/rhyhorn.pic", 0, 1 ; sprite dimensions + dw RhyhornPicFront, RhyhornPicBack + + db HORN_ATTACK, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, HORN_DRILL, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + RAGE, THUNDERBOLT, THUNDER, EARTHQUAKE, FISSURE, \ + DIG, MIMIC, DOUBLE_TEAM, BIDE, FIRE_BLAST, \ + SKULL_BASH, REST, ROCK_SLIDE, SUBSTITUTE, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/sandshrew.asm b/data/pokemon/base_stats/sandshrew.asm new file mode 100644 index 000000000..aa107190f --- /dev/null +++ b/data/pokemon/base_stats/sandshrew.asm @@ -0,0 +1,24 @@ + db DEX_SANDSHREW ; pokedex id + + db 50, 75, 85, 40, 30 + ; hp atk def spd spc + + db GROUND, GROUND ; type + db 255 ; catch rate + db 93 ; base exp + + INCBIN "gfx/pokemon/front_yellow/sandshrew.pic", 0, 1 ; sprite dimensions + dw SandshrewPicFront, SandshrewPicBack + + db SCRATCH, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + SUBMISSION, SEISMIC_TOSS, RAGE, EARTHQUAKE, FISSURE, \ + DIG, MIMIC, DOUBLE_TEAM, BIDE, SWIFT, \ + SKULL_BASH, REST, ROCK_SLIDE, SUBSTITUTE, CUT, \ + STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/sandslash.asm b/data/pokemon/base_stats/sandslash.asm new file mode 100644 index 000000000..9c51bbbaa --- /dev/null +++ b/data/pokemon/base_stats/sandslash.asm @@ -0,0 +1,24 @@ + db DEX_SANDSLASH ; pokedex id + + db 75, 100, 110, 65, 55 + ; hp atk def spd spc + + db GROUND, GROUND ; type + db 90 ; catch rate + db 163 ; base exp + + INCBIN "gfx/pokemon/front_yellow/sandslash.pic", 0, 1 ; sprite dimensions + dw SandslashPicFront, SandslashPicBack + + db SCRATCH, SAND_ATTACK, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, SUBMISSION, SEISMIC_TOSS, RAGE, EARTHQUAKE, \ + FISSURE, DIG, MIMIC, DOUBLE_TEAM, BIDE, \ + SWIFT, SKULL_BASH, REST, ROCK_SLIDE, SUBSTITUTE, \ + CUT, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/scyther.asm b/data/pokemon/base_stats/scyther.asm new file mode 100644 index 000000000..de73eea45 --- /dev/null +++ b/data/pokemon/base_stats/scyther.asm @@ -0,0 +1,22 @@ + db DEX_SCYTHER ; pokedex id + + db 70, 110, 80, 105, 55 + ; hp atk def spd spc + + db BUG, FLYING ; type + db 45 ; catch rate + db 187 ; base exp + + INCBIN "gfx/pokemon/front_yellow/scyther.pic", 0, 1 ; sprite dimensions + dw ScytherPicFront, ScytherPicBack + + db QUICK_ATTACK, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, TAKE_DOWN, DOUBLE_EDGE, HYPER_BEAM, \ + RAGE, MIMIC, DOUBLE_TEAM, BIDE, SWIFT, \ + SKULL_BASH, REST, SUBSTITUTE, CUT + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/seadra.asm b/data/pokemon/base_stats/seadra.asm new file mode 100644 index 000000000..89ab670fc --- /dev/null +++ b/data/pokemon/base_stats/seadra.asm @@ -0,0 +1,23 @@ + db DEX_SEADRA ; pokedex id + + db 55, 65, 95, 85, 95 + ; hp atk def spd spc + + db WATER, WATER ; type + db 75 ; catch rate + db 155 ; base exp + + INCBIN "gfx/pokemon/front_yellow/seadra.pic", 0, 1 ; sprite dimensions + dw SeadraPicFront, SeadraPicBack + + db BUBBLE, SMOKESCREEN, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, \ + ICE_BEAM, BLIZZARD, HYPER_BEAM, RAGE, MIMIC, \ + DOUBLE_TEAM, BIDE, SWIFT, SKULL_BASH, REST, \ + SUBSTITUTE, SURF + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/seaking.asm b/data/pokemon/base_stats/seaking.asm new file mode 100644 index 000000000..bcb0dd645 --- /dev/null +++ b/data/pokemon/base_stats/seaking.asm @@ -0,0 +1,23 @@ + db DEX_SEAKING ; pokedex id + + db 80, 92, 65, 68, 80 + ; hp atk def spd spc + + db WATER, WATER ; type + db 60 ; catch rate + db 170 ; base exp + + INCBIN "gfx/pokemon/front_yellow/seaking.pic", 0, 1 ; sprite dimensions + dw SeakingPicFront, SeakingPicBack + + db PECK, TAIL_WHIP, SUPERSONIC, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, HORN_DRILL, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, \ + WATER_GUN, ICE_BEAM, BLIZZARD, HYPER_BEAM, RAGE, \ + MIMIC, DOUBLE_TEAM, BIDE, SWIFT, SKULL_BASH, \ + REST, SUBSTITUTE, SURF + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/seel.asm b/data/pokemon/base_stats/seel.asm new file mode 100644 index 000000000..eba3d34d8 --- /dev/null +++ b/data/pokemon/base_stats/seel.asm @@ -0,0 +1,23 @@ + db DEX_SEEL ; pokedex id + + db 65, 45, 55, 45, 70 + ; hp atk def spd spc + + db WATER, WATER ; type + db 190 ; catch rate + db 100 ; base exp + + INCBIN "gfx/pokemon/front_yellow/seel.pic", 0, 1 ; sprite dimensions + dw SeelPicFront, SeelPicBack + + db HEADBUTT, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, HORN_DRILL, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, PAY_DAY, \ + RAGE, MIMIC, DOUBLE_TEAM, BIDE, SKULL_BASH, \ + REST, SUBSTITUTE, SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/shellder.asm b/data/pokemon/base_stats/shellder.asm new file mode 100644 index 000000000..ed8cc1544 --- /dev/null +++ b/data/pokemon/base_stats/shellder.asm @@ -0,0 +1,23 @@ + db DEX_SHELLDER ; pokedex id + + db 30, 65, 100, 40, 45 + ; hp atk def spd spc + + db WATER, WATER ; type + db 190 ; catch rate + db 97 ; base exp + + INCBIN "gfx/pokemon/front_yellow/shellder.pic", 0, 1 ; sprite dimensions + dw ShellderPicFront, ShellderPicBack + + db TACKLE, WITHDRAW, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, \ + ICE_BEAM, BLIZZARD, RAGE, TELEPORT, MIMIC, \ + DOUBLE_TEAM, REFLECT, BIDE, SELFDESTRUCT, SWIFT, \ + REST, EXPLOSION, TRI_ATTACK, SUBSTITUTE, SURF + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/slowbro.asm b/data/pokemon/base_stats/slowbro.asm new file mode 100644 index 000000000..33f02f229 --- /dev/null +++ b/data/pokemon/base_stats/slowbro.asm @@ -0,0 +1,27 @@ + db DEX_SLOWBRO ; pokedex id + + db 95, 75, 110, 30, 80 + ; hp atk def spd spc + + db WATER, PSYCHIC_TYPE ; type + db 75 ; catch rate + db 164 ; base exp + + INCBIN "gfx/pokemon/front_yellow/slowbro.pic", 0, 1 ; sprite dimensions + dw SlowbroPicFront, SlowbroPicBack + + db CONFUSION, DISABLE, HEADBUTT, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + HYPER_BEAM, PAY_DAY, SUBMISSION, COUNTER, SEISMIC_TOSS, \ + RAGE, EARTHQUAKE, FISSURE, DIG, PSYCHIC_M, \ + TELEPORT, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + FIRE_BLAST, SWIFT, SKULL_BASH, REST, THUNDER_WAVE, \ + PSYWAVE, TRI_ATTACK, SUBSTITUTE, SURF, STRENGTH, \ + FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/slowpoke.asm b/data/pokemon/base_stats/slowpoke.asm new file mode 100644 index 000000000..32eb6aa9a --- /dev/null +++ b/data/pokemon/base_stats/slowpoke.asm @@ -0,0 +1,25 @@ + db DEX_SLOWPOKE ; pokedex id + + db 90, 65, 65, 15, 40 + ; hp atk def spd spc + + db WATER, PSYCHIC_TYPE ; type + db 190 ; catch rate + db 99 ; base exp + + INCBIN "gfx/pokemon/front_yellow/slowpoke.pic", 0, 1 ; sprite dimensions + dw SlowpokePicFront, SlowpokePicBack + + db CONFUSION, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, \ + WATER_GUN, ICE_BEAM, BLIZZARD, PAY_DAY, RAGE, \ + EARTHQUAKE, FISSURE, DIG, PSYCHIC_M, TELEPORT, \ + MIMIC, DOUBLE_TEAM, REFLECT, BIDE, FIRE_BLAST, \ + SWIFT, SKULL_BASH, REST, THUNDER_WAVE, PSYWAVE, \ + TRI_ATTACK, SUBSTITUTE, SURF, STRENGTH, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/snorlax.asm b/data/pokemon/base_stats/snorlax.asm new file mode 100644 index 000000000..f835a4b9e --- /dev/null +++ b/data/pokemon/base_stats/snorlax.asm @@ -0,0 +1,27 @@ + db DEX_SNORLAX ; pokedex id + + db 160, 110, 65, 30, 65 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 25 ; catch rate + db 154 ; base exp + + INCBIN "gfx/pokemon/front_yellow/snorlax.pic", 0, 1 ; sprite dimensions + dw SnorlaxPicFront, SnorlaxPicBack + + db HEADBUTT, AMNESIA, REST, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + HYPER_BEAM, PAY_DAY, SUBMISSION, COUNTER, SEISMIC_TOSS, \ + RAGE, SOLARBEAM, THUNDERBOLT, THUNDER, EARTHQUAKE, \ + FISSURE, PSYCHIC_M, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, METRONOME, SELFDESTRUCT, FIRE_BLAST, SKULL_BASH, \ + REST, PSYWAVE, ROCK_SLIDE, SUBSTITUTE, SURF, \ + STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/spearow.asm b/data/pokemon/base_stats/spearow.asm new file mode 100644 index 000000000..c353fc89c --- /dev/null +++ b/data/pokemon/base_stats/spearow.asm @@ -0,0 +1,22 @@ + db DEX_SPEAROW ; pokedex id + + db 40, 60, 30, 70, 31 + ; hp atk def spd spc + + db NORMAL, FLYING ; type + db 255 ; catch rate + db 58 ; base exp + + INCBIN "gfx/pokemon/front_yellow/spearow.pic", 0, 1 ; sprite dimensions + dw SpearowPicFront, SpearowPicBack + + db PECK, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm RAZOR_WIND, WHIRLWIND, TOXIC, TAKE_DOWN, DOUBLE_EDGE, \ + RAGE, MIMIC, DOUBLE_TEAM, BIDE, SWIFT, \ + SKY_ATTACK, REST, SUBSTITUTE, FLY + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/squirtle.asm b/data/pokemon/base_stats/squirtle.asm new file mode 100644 index 000000000..11db64acb --- /dev/null +++ b/data/pokemon/base_stats/squirtle.asm @@ -0,0 +1,24 @@ + db DEX_SQUIRTLE ; pokedex id + + db 44, 48, 65, 43, 50 + ; hp atk def spd spc + + db WATER, WATER ; type + db 45 ; catch rate + db 66 ; base exp + + INCBIN "gfx/pokemon/front_yellow/squirtle.pic", 0, 1 ; sprite dimensions + dw SquirtlePicFront, SquirtlePicBack + + db TACKLE, TAIL_WHIP, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, DIG, \ + MIMIC, DOUBLE_TEAM, REFLECT, BIDE, SKULL_BASH, \ + REST, SUBSTITUTE, SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/starmie.asm b/data/pokemon/base_stats/starmie.asm new file mode 100644 index 000000000..6f9681a2c --- /dev/null +++ b/data/pokemon/base_stats/starmie.asm @@ -0,0 +1,25 @@ + db DEX_STARMIE ; pokedex id + + db 60, 75, 85, 115, 100 + ; hp atk def spd spc + + db WATER, PSYCHIC_TYPE ; type + db 60 ; catch rate + db 207 ; base exp + + INCBIN "gfx/pokemon/front_yellow/starmie.pic", 0, 1 ; sprite dimensions + dw StarmiePicFront, StarmiePicBack + + db TACKLE, WATER_GUN, HARDEN, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, \ + ICE_BEAM, BLIZZARD, HYPER_BEAM, RAGE, THUNDERBOLT, \ + THUNDER, PSYCHIC_M, TELEPORT, MIMIC, DOUBLE_TEAM, \ + REFLECT, BIDE, SWIFT, SKULL_BASH, REST, \ + THUNDER_WAVE, PSYWAVE, TRI_ATTACK, SUBSTITUTE, SURF, \ + FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/staryu.asm b/data/pokemon/base_stats/staryu.asm new file mode 100644 index 000000000..08b1250bf --- /dev/null +++ b/data/pokemon/base_stats/staryu.asm @@ -0,0 +1,24 @@ + db DEX_STARYU ; pokedex id + + db 30, 45, 55, 85, 70 + ; hp atk def spd spc + + db WATER, WATER ; type + db 225 ; catch rate + db 106 ; base exp + + INCBIN "gfx/pokemon/front_yellow/staryu.pic", 0, 1 ; sprite dimensions + dw StaryuPicFront, StaryuPicBack + + db TACKLE, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, \ + ICE_BEAM, BLIZZARD, RAGE, THUNDERBOLT, THUNDER, \ + PSYCHIC_M, TELEPORT, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, SWIFT, SKULL_BASH, REST, THUNDER_WAVE, \ + PSYWAVE, TRI_ATTACK, SUBSTITUTE, SURF, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/tangela.asm b/data/pokemon/base_stats/tangela.asm new file mode 100644 index 000000000..bb0bafd14 --- /dev/null +++ b/data/pokemon/base_stats/tangela.asm @@ -0,0 +1,23 @@ + db DEX_TANGELA ; pokedex id + + db 65, 55, 115, 60, 100 + ; hp atk def spd spc + + db GRASS, GRASS ; type + db 45 ; catch rate + db 166 ; base exp + + INCBIN "gfx/pokemon/front_yellow/tangela.pic", 0, 1 ; sprite dimensions + dw TangelaPicFront, TangelaPicBack + + db CONSTRICT, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, RAGE, MEGA_DRAIN, SOLARBEAM, MIMIC, \ + DOUBLE_TEAM, BIDE, SKULL_BASH, REST, SUBSTITUTE, \ + CUT + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/tauros.asm b/data/pokemon/base_stats/tauros.asm new file mode 100644 index 000000000..311eecad1 --- /dev/null +++ b/data/pokemon/base_stats/tauros.asm @@ -0,0 +1,24 @@ + db DEX_TAUROS ; pokedex id + + db 75, 100, 95, 110, 70 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 45 ; catch rate + db 211 ; base exp + + INCBIN "gfx/pokemon/front_yellow/tauros.pic", 0, 1 ; sprite dimensions + dw TaurosPicFront, TaurosPicBack + + db TACKLE, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm TOXIC, HORN_DRILL, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + ICE_BEAM, BLIZZARD, HYPER_BEAM, RAGE, THUNDERBOLT, \ + THUNDER, EARTHQUAKE, FISSURE, MIMIC, DOUBLE_TEAM, \ + BIDE, FIRE_BLAST, SKULL_BASH, REST, SUBSTITUTE, \ + STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/tentacool.asm b/data/pokemon/base_stats/tentacool.asm new file mode 100644 index 000000000..7f128c3fb --- /dev/null +++ b/data/pokemon/base_stats/tentacool.asm @@ -0,0 +1,23 @@ + db DEX_TENTACOOL ; pokedex id + + db 40, 40, 35, 70, 100 + ; hp atk def spd spc + + db WATER, POISON ; type + db 190 ; catch rate + db 105 ; base exp + + INCBIN "gfx/pokemon/front_yellow/tentacool.pic", 0, 1 ; sprite dimensions + dw TentacoolPicFront, TentacoolPicBack + + db ACID, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, \ + WATER_GUN, ICE_BEAM, BLIZZARD, RAGE, MEGA_DRAIN, \ + MIMIC, DOUBLE_TEAM, REFLECT, BIDE, SKULL_BASH, \ + REST, SUBSTITUTE, CUT, SURF + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/tentacruel.asm b/data/pokemon/base_stats/tentacruel.asm new file mode 100644 index 000000000..eeea2d0fc --- /dev/null +++ b/data/pokemon/base_stats/tentacruel.asm @@ -0,0 +1,23 @@ + db DEX_TENTACRUEL ; pokedex id + + db 80, 70, 65, 100, 120 + ; hp atk def spd spc + + db WATER, POISON ; type + db 60 ; catch rate + db 205 ; base exp + + INCBIN "gfx/pokemon/front_yellow/tentacruel.pic", 0, 1 ; sprite dimensions + dw TentacruelPicFront, TentacruelPicBack + + db ACID, SUPERSONIC, WRAP, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, \ + WATER_GUN, ICE_BEAM, BLIZZARD, HYPER_BEAM, RAGE, \ + MEGA_DRAIN, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + SKULL_BASH, REST, SUBSTITUTE, CUT, SURF + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/vaporeon.asm b/data/pokemon/base_stats/vaporeon.asm new file mode 100644 index 000000000..bc800feae --- /dev/null +++ b/data/pokemon/base_stats/vaporeon.asm @@ -0,0 +1,23 @@ + db DEX_VAPOREON ; pokedex id + + db 130, 65, 60, 65, 110 + ; hp atk def spd spc + + db WATER, WATER ; type + db 45 ; catch rate + db 196 ; base exp + + INCBIN "gfx/pokemon/front_yellow/vaporeon.pic", 0, 1 ; sprite dimensions + dw VaporeonPicFront, VaporeonPicBack + + db TACKLE, TAIL_WHIP, QUICK_ATTACK, WATER_GUN ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, \ + WATER_GUN, ICE_BEAM, BLIZZARD, HYPER_BEAM, RAGE, \ + MIMIC, DOUBLE_TEAM, REFLECT, BIDE, SWIFT, \ + SKULL_BASH, REST, SUBSTITUTE, SURF + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/venomoth.asm b/data/pokemon/base_stats/venomoth.asm new file mode 100644 index 000000000..85c1de76f --- /dev/null +++ b/data/pokemon/base_stats/venomoth.asm @@ -0,0 +1,23 @@ + db DEX_VENOMOTH ; pokedex id + + db 70, 65, 60, 90, 90 + ; hp atk def spd spc + + db BUG, POISON ; type + db 75 ; catch rate + db 138 ; base exp + + INCBIN "gfx/pokemon/front_yellow/venomoth.pic", 0, 1 ; sprite dimensions + dw VenomothPicFront, VenomothPicBack + + db TACKLE, DISABLE, SUPERSONIC, CONFUSION ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm RAZOR_WIND, WHIRLWIND, TOXIC, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, RAGE, MEGA_DRAIN, SOLARBEAM, PSYCHIC_M, \ + TELEPORT, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + SWIFT, REST, PSYWAVE, SUBSTITUTE, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/venonat.asm b/data/pokemon/base_stats/venonat.asm new file mode 100644 index 000000000..47590f615 --- /dev/null +++ b/data/pokemon/base_stats/venonat.asm @@ -0,0 +1,22 @@ + db DEX_VENONAT ; pokedex id + + db 60, 55, 50, 45, 40 + ; hp atk def spd spc + + db BUG, POISON ; type + db 190 ; catch rate + db 75 ; base exp + + INCBIN "gfx/pokemon/front_yellow/venonat.pic", 0, 1 ; sprite dimensions + dw VenonatPicFront, VenonatPicBack + + db TACKLE, DISABLE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, TAKE_DOWN, DOUBLE_EDGE, RAGE, MEGA_DRAIN, \ + SOLARBEAM, PSYCHIC_M, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, REST, PSYWAVE, SUBSTITUTE, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/venusaur.asm b/data/pokemon/base_stats/venusaur.asm new file mode 100644 index 000000000..d97b9c644 --- /dev/null +++ b/data/pokemon/base_stats/venusaur.asm @@ -0,0 +1,23 @@ + db DEX_VENUSAUR ; pokedex id + + db 80, 82, 83, 80, 100 + ; hp atk def spd spc + + db GRASS, POISON ; type + db 45 ; catch rate + db 208 ; base exp + + INCBIN "gfx/pokemon/front_yellow/venusaur.pic", 0, 1 ; sprite dimensions + dw VenusaurPicFront, VenusaurPicBack + + db TACKLE, GROWL, LEECH_SEED, VINE_WHIP ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, RAGE, MEGA_DRAIN, SOLARBEAM, MIMIC, \ + DOUBLE_TEAM, REFLECT, BIDE, REST, SUBSTITUTE, \ + CUT + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/victreebel.asm b/data/pokemon/base_stats/victreebel.asm new file mode 100644 index 000000000..8fd9c2f96 --- /dev/null +++ b/data/pokemon/base_stats/victreebel.asm @@ -0,0 +1,23 @@ + db DEX_VICTREEBEL ; pokedex id + + db 80, 105, 65, 70, 100 + ; hp atk def spd spc + + db GRASS, POISON ; type + db 45 ; catch rate + db 191 ; base exp + + INCBIN "gfx/pokemon/front_yellow/victreebel.pic", 0, 1 ; sprite dimensions + dw VictreebelPicFront, VictreebelPicBack + + db SLEEP_POWDER, STUN_SPORE, ACID, RAZOR_LEAF ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, RAGE, MEGA_DRAIN, SOLARBEAM, MIMIC, \ + DOUBLE_TEAM, REFLECT, BIDE, REST, SUBSTITUTE, \ + CUT + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/vileplume.asm b/data/pokemon/base_stats/vileplume.asm new file mode 100644 index 000000000..d6baddb94 --- /dev/null +++ b/data/pokemon/base_stats/vileplume.asm @@ -0,0 +1,23 @@ + db DEX_VILEPLUME ; pokedex id + + db 75, 80, 85, 50, 100 + ; hp atk def spd spc + + db GRASS, POISON ; type + db 45 ; catch rate + db 184 ; base exp + + INCBIN "gfx/pokemon/front_yellow/vileplume.pic", 0, 1 ; sprite dimensions + dw VileplumePicFront, VileplumePicBack + + db STUN_SPORE, SLEEP_POWDER, ACID, PETAL_DANCE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, RAGE, MEGA_DRAIN, SOLARBEAM, MIMIC, \ + DOUBLE_TEAM, REFLECT, BIDE, REST, SUBSTITUTE, \ + CUT + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/voltorb.asm b/data/pokemon/base_stats/voltorb.asm new file mode 100644 index 000000000..6234d3a44 --- /dev/null +++ b/data/pokemon/base_stats/voltorb.asm @@ -0,0 +1,23 @@ + db DEX_VOLTORB ; pokedex id + + db 40, 30, 50, 100, 55 + ; hp atk def spd spc + + db ELECTRIC, ELECTRIC ; type + db 190 ; catch rate + db 103 ; base exp + + INCBIN "gfx/pokemon/front_yellow/voltorb.pic", 0, 1 ; sprite dimensions + dw VoltorbPicFront, VoltorbPicBack + + db TACKLE, SCREECH, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, TAKE_DOWN, RAGE, THUNDERBOLT, THUNDER, \ + TELEPORT, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + SELFDESTRUCT, SWIFT, REST, THUNDER_WAVE, EXPLOSION, \ + SUBSTITUTE, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/vulpix.asm b/data/pokemon/base_stats/vulpix.asm new file mode 100644 index 000000000..7aba033ec --- /dev/null +++ b/data/pokemon/base_stats/vulpix.asm @@ -0,0 +1,22 @@ + db DEX_VULPIX ; pokedex id + + db 38, 41, 40, 65, 65 + ; hp atk def spd spc + + db FIRE, FIRE ; type + db 190 ; catch rate + db 63 ; base exp + + INCBIN "gfx/pokemon/front_yellow/vulpix.pic", 0, 1 ; sprite dimensions + dw VulpixPicFront, VulpixPicBack + + db EMBER, TAIL_WHIP, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, BODY_SLAM, TAKE_DOWN, DOUBLE_EDGE, RAGE, \ + DIG, MIMIC, DOUBLE_TEAM, REFLECT, BIDE, \ + FIRE_BLAST, SWIFT, SKULL_BASH, REST, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/wartortle.asm b/data/pokemon/base_stats/wartortle.asm new file mode 100644 index 000000000..df4c7314f --- /dev/null +++ b/data/pokemon/base_stats/wartortle.asm @@ -0,0 +1,24 @@ + db DEX_WARTORTLE ; pokedex id + + db 59, 63, 80, 58, 65 + ; hp atk def spd spc + + db WATER, WATER ; type + db 45 ; catch rate + db 143 ; base exp + + INCBIN "gfx/pokemon/front_yellow/wartortle.pic", 0, 1 ; sprite dimensions + dw WartortlePicFront, WartortlePicBack + + db TACKLE, TAIL_WHIP, BUBBLE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, DIG, \ + MIMIC, DOUBLE_TEAM, REFLECT, BIDE, SKULL_BASH, \ + REST, SUBSTITUTE, SURF, STRENGTH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/weedle.asm b/data/pokemon/base_stats/weedle.asm new file mode 100644 index 000000000..67769f3b3 --- /dev/null +++ b/data/pokemon/base_stats/weedle.asm @@ -0,0 +1,20 @@ + db DEX_WEEDLE ; pokedex id + + db 40, 35, 30, 50, 20 + ; hp atk def spd spc + + db BUG, POISON ; type + db 255 ; catch rate + db 52 ; base exp + + INCBIN "gfx/pokemon/front_yellow/weedle.pic", 0, 1 ; sprite dimensions + dw WeedlePicFront, WeedlePicBack + + db POISON_STING, STRING_SHOT, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/weepinbell.asm b/data/pokemon/base_stats/weepinbell.asm new file mode 100644 index 000000000..90a3dc497 --- /dev/null +++ b/data/pokemon/base_stats/weepinbell.asm @@ -0,0 +1,22 @@ + db DEX_WEEPINBELL ; pokedex id + + db 65, 90, 50, 55, 85 + ; hp atk def spd spc + + db GRASS, POISON ; type + db 120 ; catch rate + db 151 ; base exp + + INCBIN "gfx/pokemon/front_yellow/weepinbell.pic", 0, 1 ; sprite dimensions + dw WeepinbellPicFront, WeepinbellPicBack + + db VINE_WHIP, GROWTH, WRAP, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_SLOW ; growth rate + + ; tm/hm learnset + tmhm SWORDS_DANCE, TOXIC, TAKE_DOWN, DOUBLE_EDGE, RAGE, \ + MEGA_DRAIN, SOLARBEAM, MIMIC, DOUBLE_TEAM, REFLECT, \ + BIDE, REST, SUBSTITUTE, CUT + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/weezing.asm b/data/pokemon/base_stats/weezing.asm new file mode 100644 index 000000000..f5618bb0d --- /dev/null +++ b/data/pokemon/base_stats/weezing.asm @@ -0,0 +1,22 @@ + db DEX_WEEZING ; pokedex id + + db 65, 90, 120, 60, 85 + ; hp atk def spd spc + + db POISON, POISON ; type + db 60 ; catch rate + db 173 ; base exp + + INCBIN "gfx/pokemon/front_yellow/weezing.pic", 0, 1 ; sprite dimensions + dw WeezingPicFront, WeezingPicBack + + db TACKLE, SMOG, SLUDGE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm TOXIC, HYPER_BEAM, RAGE, THUNDERBOLT, THUNDER, \ + MIMIC, DOUBLE_TEAM, BIDE, SELFDESTRUCT, FIRE_BLAST, \ + REST, EXPLOSION, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/wigglytuff.asm b/data/pokemon/base_stats/wigglytuff.asm new file mode 100644 index 000000000..2a6876b28 --- /dev/null +++ b/data/pokemon/base_stats/wigglytuff.asm @@ -0,0 +1,26 @@ + db DEX_WIGGLYTUFF ; pokedex id + + db 140, 70, 45, 45, 50 + ; hp atk def spd spc + + db NORMAL, NORMAL ; type + db 50 ; catch rate + db 109 ; base exp + + INCBIN "gfx/pokemon/front_yellow/wigglytuff.pic", 0, 1 ; sprite dimensions + dw WigglytuffPicFront, WigglytuffPicBack + + db SING, DISABLE, DEFENSE_CURL, DOUBLESLAP ; level 1 learnset + db GROWTH_FAST ; growth rate + + ; tm/hm learnset + tmhm MEGA_PUNCH, MEGA_KICK, TOXIC, BODY_SLAM, TAKE_DOWN, \ + DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \ + HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, RAGE, \ + SOLARBEAM, THUNDERBOLT, THUNDER, PSYCHIC_M, TELEPORT, \ + MIMIC, DOUBLE_TEAM, REFLECT, BIDE, FIRE_BLAST, \ + SKULL_BASH, REST, THUNDER_WAVE, PSYWAVE, TRI_ATTACK, \ + SUBSTITUTE, STRENGTH, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/zapdos.asm b/data/pokemon/base_stats/zapdos.asm new file mode 100644 index 000000000..68b6396ad --- /dev/null +++ b/data/pokemon/base_stats/zapdos.asm @@ -0,0 +1,23 @@ + db DEX_ZAPDOS ; pokedex id + + db 90, 90, 85, 100, 125 + ; hp atk def spd spc + + db ELECTRIC, FLYING ; type + db 3 ; catch rate + db 216 ; base exp + + INCBIN "gfx/pokemon/front_yellow/zapdos.pic", 0, 1 ; sprite dimensions + dw ZapdosPicFront, ZapdosPicBack + + db THUNDERSHOCK, DRILL_PECK, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_SLOW ; growth rate + + ; tm/hm learnset + tmhm RAZOR_WIND, WHIRLWIND, TOXIC, TAKE_DOWN, DOUBLE_EDGE, \ + HYPER_BEAM, RAGE, THUNDERBOLT, THUNDER, MIMIC, \ + DOUBLE_TEAM, REFLECT, BIDE, SWIFT, SKY_ATTACK, \ + REST, THUNDER_WAVE, SUBSTITUTE, FLY, FLASH + ; end + + db 0 ; padding diff --git a/data/pokemon/base_stats/zubat.asm b/data/pokemon/base_stats/zubat.asm new file mode 100644 index 000000000..9e4fa80f0 --- /dev/null +++ b/data/pokemon/base_stats/zubat.asm @@ -0,0 +1,22 @@ + db DEX_ZUBAT ; pokedex id + + db 40, 45, 35, 55, 40 + ; hp atk def spd spc + + db POISON, FLYING ; type + db 255 ; catch rate + db 54 ; base exp + + INCBIN "gfx/pokemon/front_yellow/zubat.pic", 0, 1 ; sprite dimensions + dw ZubatPicFront, ZubatPicBack + + db LEECH_LIFE, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset + db GROWTH_MEDIUM_FAST ; growth rate + + ; tm/hm learnset + tmhm RAZOR_WIND, WHIRLWIND, TOXIC, TAKE_DOWN, DOUBLE_EDGE, \ + RAGE, MEGA_DRAIN, MIMIC, DOUBLE_TEAM, BIDE, \ + SWIFT, REST, SUBSTITUTE + ; end + + db 0 ; padding diff --git a/data/pokemon/cries.asm b/data/pokemon/cries.asm new file mode 100755 index 000000000..e4bf07d95 --- /dev/null +++ b/data/pokemon/cries.asm @@ -0,0 +1,197 @@ +mon_cry: MACRO + db (\1 - CRY_SFX_START) / 3 + db \2, \3 +ENDM + +CryData:: + ; base cry, pitch, length + mon_cry SFX_CRY_11, $00, $80 ; Rhydon + mon_cry SFX_CRY_03, $00, $80 ; Kangaskhan + mon_cry SFX_CRY_00, $00, $80 ; Nidoran♂ + mon_cry SFX_CRY_19, $CC, $01 ; Clefairy + mon_cry SFX_CRY_10, $00, $80 ; Spearow + mon_cry SFX_CRY_06, $ED, $80 ; Voltorb + mon_cry SFX_CRY_09, $00, $80 ; Nidoking + mon_cry SFX_CRY_1F, $00, $80 ; Slowbro + mon_cry SFX_CRY_0F, $20, $80 ; Ivysaur + mon_cry SFX_CRY_0D, $00, $80 ; Exeggutor + mon_cry SFX_CRY_0C, $00, $80 ; Lickitung + mon_cry SFX_CRY_0B, $00, $80 ; Exeggcute + mon_cry SFX_CRY_05, $00, $80 ; Grimer + mon_cry SFX_CRY_07, $00, $FF ; Gengar + mon_cry SFX_CRY_01, $00, $80 ; Nidoran♀ + mon_cry SFX_CRY_0A, $00, $80 ; Nidoqueen + mon_cry SFX_CRY_19, $00, $80 ; Cubone + mon_cry SFX_CRY_04, $00, $80 ; Rhyhorn + mon_cry SFX_CRY_1B, $00, $80 ; Lapras + mon_cry SFX_CRY_15, $00, $80 ; Arcanine + mon_cry SFX_CRY_1E, $EE, $FF ; Mew + mon_cry SFX_CRY_17, $00, $80 ; Gyarados + mon_cry SFX_CRY_18, $00, $80 ; Shellder + mon_cry SFX_CRY_1A, $00, $80 ; Tentacool + mon_cry SFX_CRY_1C, $00, $80 ; Gastly + mon_cry SFX_CRY_16, $00, $80 ; Scyther + mon_cry SFX_CRY_1E, $02, $20 ; Staryu + mon_cry SFX_CRY_13, $00, $80 ; Blastoise + mon_cry SFX_CRY_14, $00, $80 ; Pinsir + mon_cry SFX_CRY_12, $00, $80 ; Tangela + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_1F, $20, $40 ; Growlithe + mon_cry SFX_CRY_17, $FF, $C0 ; Onix + mon_cry SFX_CRY_18, $40, $A0 ; Fearow + mon_cry SFX_CRY_0E, $DF, $04 ; Pidgey + mon_cry SFX_CRY_02, $00, $80 ; Slowpoke + mon_cry SFX_CRY_1C, $A8, $C0 ; Kadabra + mon_cry SFX_CRY_24, $00, $80 ; Graveler + mon_cry SFX_CRY_14, $0A, $C0 ; Chansey + mon_cry SFX_CRY_1F, $48, $60 ; Machoke + mon_cry SFX_CRY_20, $08, $40 ; Mr.Mime + mon_cry SFX_CRY_12, $80, $C0 ; Hitmonlee + mon_cry SFX_CRY_0C, $EE, $C0 ; Hitmonchan + mon_cry SFX_CRY_17, $E0, $10 ; Arbok + mon_cry SFX_CRY_1E, $42, $FF ; Parasect + mon_cry SFX_CRY_21, $20, $60 ; Psyduck + mon_cry SFX_CRY_0D, $88, $20 ; Drowzee + mon_cry SFX_CRY_12, $E0, $40 ; Golem + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_04, $FF, $30 ; Magmar + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_06, $8F, $FF ; Electabuzz + mon_cry SFX_CRY_1C, $20, $C0 ; Magneton + mon_cry SFX_CRY_12, $E6, $DD ; Koffing + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_0A, $DD, $60 ; Mankey + mon_cry SFX_CRY_0C, $88, $C0 ; Seel + mon_cry SFX_CRY_0B, $AA, $01 ; Diglett + mon_cry SFX_CRY_1D, $11, $40 ; Tauros + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_10, $DD, $01 ; Farfetch'd + mon_cry SFX_CRY_1A, $44, $40 ; Venonat + mon_cry SFX_CRY_0F, $3C, $C0 ; Dragonite + mon_cry SFX_CRY_00, $80, $10 ; MissingNo. + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_1D, $E0, $80 ; MissingNo. + mon_cry SFX_CRY_0B, $BB, $01 ; Doduo + mon_cry SFX_CRY_0E, $FF, $FF ; Poliwag + mon_cry SFX_CRY_0D, $FF, $FF ; Jynx + mon_cry SFX_CRY_09, $F8, $40 ; Moltres + mon_cry SFX_CRY_09, $80, $40 ; Articuno + mon_cry SFX_CRY_18, $FF, $80 ; Zapdos + mon_cry SFX_CRY_0E, $FF, $FF ; Ditto + mon_cry SFX_CRY_19, $77, $10 ; Meowth + mon_cry SFX_CRY_20, $20, $E0 ; Krabby + mon_cry SFX_CRY_22, $FF, $40 ; MissingNo. + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_0E, $E0, $60 ; MissingNo. + mon_cry SFX_CRY_24, $4F, $10 ; Vulpix + mon_cry SFX_CRY_24, $88, $60 ; Ninetales + mon_cry SFX_CRY_0F, $EE, $01 ; Pikachu + mon_cry SFX_CRY_09, $EE, $08 ; Raichu + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_0F, $60, $40 ; Dratini + mon_cry SFX_CRY_0F, $40, $80 ; Dragonair + mon_cry SFX_CRY_16, $BB, $40 ; Kabuto + mon_cry SFX_CRY_18, $EE, $01 ; Kabutops + mon_cry SFX_CRY_19, $99, $10 ; Horsea + mon_cry SFX_CRY_19, $3C, $01 ; Seadra + mon_cry SFX_CRY_0F, $40, $C0 ; MissingNo. + mon_cry SFX_CRY_0F, $20, $C0 ; MissingNo. + mon_cry SFX_CRY_00, $20, $40 ; Sandshrew + mon_cry SFX_CRY_00, $FF, $FF ; Sandslash + mon_cry SFX_CRY_1F, $F0, $01 ; Omanyte + mon_cry SFX_CRY_1F, $FF, $40 ; Omastar + mon_cry SFX_CRY_0E, $FF, $35 ; Jigglypuff + mon_cry SFX_CRY_0E, $68, $60 ; Wigglytuff + mon_cry SFX_CRY_1A, $88, $60 ; Eevee + mon_cry SFX_CRY_1A, $10, $20 ; Flareon + mon_cry SFX_CRY_1A, $3D, $80 ; Jolteon + mon_cry SFX_CRY_1A, $AA, $FF ; Vaporeon + mon_cry SFX_CRY_1F, $EE, $01 ; Machop + mon_cry SFX_CRY_1D, $E0, $80 ; Zubat + mon_cry SFX_CRY_17, $12, $40 ; Ekans + mon_cry SFX_CRY_1E, $20, $E0 ; Paras + mon_cry SFX_CRY_0E, $77, $60 ; Poliwhirl + mon_cry SFX_CRY_0E, $00, $FF ; Poliwrath + mon_cry SFX_CRY_15, $EE, $01 ; Weedle + mon_cry SFX_CRY_13, $FF, $01 ; Kakuna + mon_cry SFX_CRY_13, $60, $80 ; Beedrill + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_0B, $99, $20 ; Dodrio + mon_cry SFX_CRY_0A, $AF, $40 ; Primeape + mon_cry SFX_CRY_0B, $2A, $10 ; Dugtrio + mon_cry SFX_CRY_1A, $29, $80 ; Venomoth + mon_cry SFX_CRY_0C, $23, $FF ; Dewgong + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_16, $80, $20 ; Caterpie + mon_cry SFX_CRY_1C, $CC, $01 ; Metapod + mon_cry SFX_CRY_16, $77, $40 ; Butterfree + mon_cry SFX_CRY_1F, $08, $C0 ; Machamp + mon_cry SFX_CRY_11, $20, $10 ; MissingNo. + mon_cry SFX_CRY_21, $FF, $40 ; Golduck + mon_cry SFX_CRY_0D, $EE, $40 ; Hypno + mon_cry SFX_CRY_1D, $FA, $80 ; Golbat + mon_cry SFX_CRY_1E, $99, $FF ; Mewtwo + mon_cry SFX_CRY_05, $55, $01 ; Snorlax + mon_cry SFX_CRY_17, $80, $00 ; Magikarp + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_07, $EF, $FF ; Muk + mon_cry SFX_CRY_0F, $40, $80 ; MissingNo. + mon_cry SFX_CRY_20, $EE, $E0 ; Kingler + mon_cry SFX_CRY_18, $6F, $E0 ; Cloyster + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_06, $A8, $90 ; Electrode + mon_cry SFX_CRY_19, $AA, $20 ; Clefable + mon_cry SFX_CRY_12, $FF, $FF ; Weezing + mon_cry SFX_CRY_19, $99, $FF ; Persian + mon_cry SFX_CRY_08, $4F, $60 ; Marowak + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_1C, $30, $40 ; Haunter + mon_cry SFX_CRY_1C, $C0, $01 ; Abra + mon_cry SFX_CRY_1C, $98, $FF ; Alakazam + mon_cry SFX_CRY_14, $28, $C0 ; Pidgeotto + mon_cry SFX_CRY_14, $11, $FF ; Pidgeot + mon_cry SFX_CRY_1E, $00, $80 ; Starmie + mon_cry SFX_CRY_0F, $80, $01 ; Bulbasaur + mon_cry SFX_CRY_0F, $00, $C0 ; Venusaur + mon_cry SFX_CRY_1A, $EE, $FF ; Tentacruel + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_16, $80, $40 ; Goldeen + mon_cry SFX_CRY_16, $10, $FF ; Seaking + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_25, $00, $80 ; Ponyta + mon_cry SFX_CRY_25, $20, $C0 ; Rapidash + mon_cry SFX_CRY_22, $00, $80 ; Rattata + mon_cry SFX_CRY_22, $20, $FF ; Raticate + mon_cry SFX_CRY_00, $2C, $C0 ; Nidorino + mon_cry SFX_CRY_01, $2C, $E0 ; Nidorina + mon_cry SFX_CRY_24, $F0, $10 ; Geodude + mon_cry SFX_CRY_25, $AA, $FF ; Porygon + mon_cry SFX_CRY_23, $20, $F0 ; Aerodactyl + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_1C, $80, $60 ; Magnemite + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_04, $60, $40 ; Charmander + mon_cry SFX_CRY_1D, $60, $40 ; Squirtle + mon_cry SFX_CRY_04, $20, $40 ; Charmeleon + mon_cry SFX_CRY_1D, $20, $40 ; Wartortle + mon_cry SFX_CRY_04, $00, $80 ; Charizard + mon_cry SFX_CRY_1D, $00, $80 ; MissingNo. + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_00, $00, $00 ; MissingNo. + mon_cry SFX_CRY_08, $DD, $01 ; Oddish + mon_cry SFX_CRY_08, $AA, $40 ; Gloom + mon_cry SFX_CRY_23, $22, $FF ; Vileplume + mon_cry SFX_CRY_21, $55, $01 ; Bellsprout + mon_cry SFX_CRY_25, $44, $20 ; Weepinbell + mon_cry SFX_CRY_25, $66, $CC ; Victreebel diff --git a/data/pokemon/dex_entries.asm b/data/pokemon/dex_entries.asm new file mode 100755 index 000000000..5b9acf27c --- /dev/null +++ b/data/pokemon/dex_entries.asm @@ -0,0 +1,1259 @@ +PokedexEntryPointers: + dw RhydonDexEntry + dw KangaskhanDexEntry + dw NidoranMDexEntry + dw ClefairyDexEntry + dw SpearowDexEntry + dw VoltorbDexEntry + dw NidokingDexEntry + dw SlowbroDexEntry + dw IvysaurDexEntry + dw ExeggutorDexEntry + dw LickitungDexEntry + dw ExeggcuteDexEntry + dw GrimerDexEntry + dw GengarDexEntry + dw NidoranFDexEntry + dw NidoqueenDexEntry + dw CuboneDexEntry + dw RhyhornDexEntry + dw LaprasDexEntry + dw ArcanineDexEntry + dw MewDexEntry + dw GyaradosDexEntry + dw ShellderDexEntry + dw TentacoolDexEntry + dw GastlyDexEntry + dw ScytherDexEntry + dw StaryuDexEntry + dw BlastoiseDexEntry + dw PinsirDexEntry + dw TangelaDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw GrowlitheDexEntry + dw OnixDexEntry + dw FearowDexEntry + dw PidgeyDexEntry + dw SlowpokeDexEntry + dw KadabraDexEntry + dw GravelerDexEntry + dw ChanseyDexEntry + dw MachokeDexEntry + dw MrMimeDexEntry + dw HitmonleeDexEntry + dw HitmonchanDexEntry + dw ArbokDexEntry + dw ParasectDexEntry + dw PsyduckDexEntry + dw DrowzeeDexEntry + dw GolemDexEntry + dw MissingNoDexEntry + dw MagmarDexEntry + dw MissingNoDexEntry + dw ElectabuzzDexEntry + dw MagnetonDexEntry + dw KoffingDexEntry + dw MissingNoDexEntry + dw MankeyDexEntry + dw SeelDexEntry + dw DiglettDexEntry + dw TaurosDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw FarfetchdDexEntry + dw VenonatDexEntry + dw DragoniteDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw DoduoDexEntry + dw PoliwagDexEntry + dw JynxDexEntry + dw MoltresDexEntry + dw ArticunoDexEntry + dw ZapdosDexEntry + dw DittoDexEntry + dw MeowthDexEntry + dw KrabbyDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw VulpixDexEntry + dw NinetalesDexEntry + dw PikachuDexEntry + dw RaichuDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw DratiniDexEntry + dw DragonairDexEntry + dw KabutoDexEntry + dw KabutopsDexEntry + dw HorseaDexEntry + dw SeadraDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw SandshrewDexEntry + dw SandslashDexEntry + dw OmanyteDexEntry + dw OmastarDexEntry + dw JigglypuffDexEntry + dw WigglytuffDexEntry + dw EeveeDexEntry + dw FlareonDexEntry + dw JolteonDexEntry + dw VaporeonDexEntry + dw MachopDexEntry + dw ZubatDexEntry + dw EkansDexEntry + dw ParasDexEntry + dw PoliwhirlDexEntry + dw PoliwrathDexEntry + dw WeedleDexEntry + dw KakunaDexEntry + dw BeedrillDexEntry + dw MissingNoDexEntry + dw DodrioDexEntry + dw PrimeapeDexEntry + dw DugtrioDexEntry + dw VenomothDexEntry + dw DewgongDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw CaterpieDexEntry + dw MetapodDexEntry + dw ButterfreeDexEntry + dw MachampDexEntry + dw MissingNoDexEntry + dw GolduckDexEntry + dw HypnoDexEntry + dw GolbatDexEntry + dw MewtwoDexEntry + dw SnorlaxDexEntry + dw MagikarpDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw MukDexEntry + dw MissingNoDexEntry + dw KinglerDexEntry + dw CloysterDexEntry + dw MissingNoDexEntry + dw ElectrodeDexEntry + dw ClefableDexEntry + dw WeezingDexEntry + dw PersianDexEntry + dw MarowakDexEntry + dw MissingNoDexEntry + dw HaunterDexEntry + dw AbraDexEntry + dw AlakazamDexEntry + dw PidgeottoDexEntry + dw PidgeotDexEntry + dw StarmieDexEntry + dw BulbasaurDexEntry + dw VenusaurDexEntry + dw TentacruelDexEntry + dw MissingNoDexEntry + dw GoldeenDexEntry + dw SeakingDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw PonytaDexEntry + dw RapidashDexEntry + dw RattataDexEntry + dw RaticateDexEntry + dw NidorinoDexEntry + dw NidorinaDexEntry + dw GeodudeDexEntry + dw PorygonDexEntry + dw AerodactylDexEntry + dw MissingNoDexEntry + dw MagnemiteDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw CharmanderDexEntry + dw SquirtleDexEntry + dw CharmeleonDexEntry + dw WartortleDexEntry + dw CharizardDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw MissingNoDexEntry + dw OddishDexEntry + dw GloomDexEntry + dw VileplumeDexEntry + dw BellsproutDexEntry + dw WeepinbellDexEntry + dw VictreebelDexEntry + +; string: species name +; height in feet, inches +; weight in pounds +; text entry + +BulbasaurDexEntry: + db "SEED@" + db 2,4 + dw 150 + text_far _BulbasaurDexEntry + text_end + +IvysaurDexEntry: + db "SEED@" + db 3,3 + dw 290 + text_far _IvysaurDexEntry + text_end + +VenusaurDexEntry: + db "SEED@" + db 6,7 + dw 2210 + text_far _VenusaurDexEntry + text_end + +CharmanderDexEntry: + db "LIZARD@" + db 2,0 + dw 190 + text_far _CharmanderDexEntry + text_end + +CharmeleonDexEntry: + db "FLAME@" + db 3,7 + dw 420 + text_far _CharmeleonDexEntry + text_end + +CharizardDexEntry: + db "FLAME@" + db 5,7 + dw 2000 + text_far _CharizardDexEntry + text_end + +SquirtleDexEntry: + db "TINYTURTLE@" + db 1,8 + dw 200 + text_far _SquirtleDexEntry + text_end + +WartortleDexEntry: + db "TURTLE@" + db 3,3 + dw 500 + text_far _WartortleDexEntry + text_end + +BlastoiseDexEntry: + db "SHELLFISH@" + db 5,3 + dw 1890 + text_far _BlastoiseDexEntry + text_end + +CaterpieDexEntry: + db "WORM@" + db 1,0 + dw 60 + text_far _CaterpieDexEntry + text_end + +MetapodDexEntry: + db "COCOON@" + db 2,4 + dw 220 + text_far _MetapodDexEntry + text_end + +ButterfreeDexEntry: + db "BUTTERFLY@" + db 3,7 + dw 710 + text_far _ButterfreeDexEntry + text_end + +WeedleDexEntry: + db "HAIRY BUG@" + db 1,0 + dw 70 + text_far _WeedleDexEntry + text_end + +KakunaDexEntry: + db "COCOON@" + db 2,0 + dw 220 + text_far _KakunaDexEntry + text_end + +BeedrillDexEntry: + db "POISON BEE@" + db 3,3 + dw 650 + text_far _BeedrillDexEntry + text_end + +PidgeyDexEntry: + db "TINY BIRD@" + db 1,0 + dw 40 + text_far _PidgeyDexEntry + text_end + +PidgeottoDexEntry: + db "BIRD@" + db 3,7 + dw 660 + text_far _PidgeottoDexEntry + text_end + +PidgeotDexEntry: + db "BIRD@" + db 4,11 + dw 870 + text_far _PidgeotDexEntry + text_end + +RattataDexEntry: + db "RAT@" + db 1,0 + dw 80 + text_far _RattataDexEntry + text_end + +RaticateDexEntry: + db "RAT@" + db 2,4 + dw 410 + text_far _RaticateDexEntry + text_end + +SpearowDexEntry: + db "TINY BIRD@" + db 1,0 + dw 40 + text_far _SpearowDexEntry + text_end + +FearowDexEntry: + db "BEAK@" + db 3,11 + dw 840 + text_far _FearowDexEntry + text_end + +EkansDexEntry: + db "SNAKE@" + db 6,7 + dw 150 + text_far _EkansDexEntry + text_end + +ArbokDexEntry: + db "COBRA@" + db 11,6 + dw 1430 + text_far _ArbokDexEntry + text_end + +PikachuDexEntry: + db "MOUSE@" + db 1,4 + dw 130 + text_far _PikachuDexEntry + text_end + +RaichuDexEntry: + db "MOUSE@" + db 2,7 + dw 660 + text_far _RaichuDexEntry + text_end + +SandshrewDexEntry: + db "MOUSE@" + db 2,0 + dw 260 + text_far _SandshrewDexEntry + text_end + +SandslashDexEntry: + db "MOUSE@" + db 3,3 + dw 650 + text_far _SandslashDexEntry + text_end + +NidoranFDexEntry: + db "POISON PIN@" + db 1,4 + dw 150 + text_far _NidoranFDexEntry + text_end + +NidorinaDexEntry: + db "POISON PIN@" + db 2,7 + dw 440 + text_far _NidorinaDexEntry + text_end + +NidoqueenDexEntry: + db "DRILL@" + db 4,3 + dw 1320 + text_far _NidoqueenDexEntry + text_end + +NidoranMDexEntry: + db "POISON PIN@" + db 1,8 + dw 200 + text_far _NidoranMDexEntry + text_end + +NidorinoDexEntry: + db "POISON PIN@" + db 2,11 + dw 430 + text_far _NidorinoDexEntry + text_end + +NidokingDexEntry: + db "DRILL@" + db 4,7 + dw 1370 + text_far _NidokingDexEntry + text_end + +ClefairyDexEntry: + db "FAIRY@" + db 2,0 + dw 170 + text_far _ClefairyDexEntry + text_end + +ClefableDexEntry: + db "FAIRY@" + db 4,3 + dw 880 + text_far _ClefableDexEntry + text_end + +VulpixDexEntry: + db "FOX@" + db 2,0 + dw 220 + text_far _VulpixDexEntry + text_end + +NinetalesDexEntry: + db "FOX@" + db 3,7 + dw 440 + text_far _NinetalesDexEntry + text_end + +JigglypuffDexEntry: + db "BALLOON@" + db 1,8 + dw 120 + text_far _JigglypuffDexEntry + text_end + +WigglytuffDexEntry: + db "BALLOON@" + db 3,3 + dw 260 + text_far _WigglytuffDexEntry + text_end + +ZubatDexEntry: + db "BAT@" + db 2,7 + dw 170 + text_far _ZubatDexEntry + text_end + +GolbatDexEntry: + db "BAT@" + db 5,3 + dw 1210 + text_far _GolbatDexEntry + text_end + +OddishDexEntry: + db "WEED@" + db 1,8 + dw 120 + text_far _OddishDexEntry + text_end + +GloomDexEntry: + db "WEED@" + db 2,7 + dw 190 + text_far _GloomDexEntry + text_end + +VileplumeDexEntry: + db "FLOWER@" + db 3,11 + dw 410 + text_far _VileplumeDexEntry + text_end + +ParasDexEntry: + db "MUSHROOM@" + db 1,0 + dw 120 + text_far _ParasDexEntry + text_end + +ParasectDexEntry: + db "MUSHROOM@" + db 3,3 + dw 650 + text_far _ParasectDexEntry + text_end + +VenonatDexEntry: + db "INSECT@" + db 3,3 + dw 660 + text_far _VenonatDexEntry + text_end + +VenomothDexEntry: + db "POISONMOTH@" + db 4,11 + dw 280 + text_far _VenomothDexEntry + text_end + +DiglettDexEntry: + db "MOLE@" + db 0,8 + dw 20 + text_far _DiglettDexEntry + text_end + +DugtrioDexEntry: + db "MOLE@" + db 2,4 + dw 730 + text_far _DugtrioDexEntry + text_end + +MeowthDexEntry: + db "SCRATCHCAT@" + db 1,4 + dw 90 + text_far _MeowthDexEntry + text_end + +PersianDexEntry: + db "CLASSY CAT@" + db 3,3 + dw 710 + text_far _PersianDexEntry + text_end + +PsyduckDexEntry: + db "DUCK@" + db 2,7 + dw 430 + text_far _PsyduckDexEntry + text_end + +GolduckDexEntry: + db "DUCK@" + db 5,7 + dw 1690 + text_far _GolduckDexEntry + text_end + +MankeyDexEntry: + db "PIG MONKEY@" + db 1,8 + dw 620 + text_far _MankeyDexEntry + text_end + +PrimeapeDexEntry: + db "PIG MONKEY@" + db 3,3 + dw 710 + text_far _PrimeapeDexEntry + text_end + +GrowlitheDexEntry: + db "PUPPY@" + db 2,4 + dw 420 + text_far _GrowlitheDexEntry + text_end + +ArcanineDexEntry: + db "LEGENDARY@" + db 6,3 + dw 3420 + text_far _ArcanineDexEntry + text_end + +PoliwagDexEntry: + db "TADPOLE@" + db 2,0 + dw 270 + text_far _PoliwagDexEntry + text_end + +PoliwhirlDexEntry: + db "TADPOLE@" + db 3,3 + dw 440 + text_far _PoliwhirlDexEntry + text_end + +PoliwrathDexEntry: + db "TADPOLE@" + db 4,3 + dw 1190 + text_far _PoliwrathDexEntry + text_end + +AbraDexEntry: + db "PSI@" + db 2,11 + dw 430 + text_far _AbraDexEntry + text_end + +KadabraDexEntry: + db "PSI@" + db 4,3 + dw 1250 + text_far _KadabraDexEntry + text_end + +AlakazamDexEntry: + db "PSI@" + db 4,11 + dw 1060 + text_far _AlakazamDexEntry + text_end + +MachopDexEntry: + db "SUPERPOWER@" + db 2,7 + dw 430 + text_far _MachopDexEntry + text_end + +MachokeDexEntry: + db "SUPERPOWER@" + db 4,11 + dw 1550 + text_far _MachokeDexEntry + text_end + +MachampDexEntry: + db "SUPERPOWER@" + db 5,3 + dw 2870 + text_far _MachampDexEntry + text_end + +BellsproutDexEntry: + db "FLOWER@" + db 2,4 + dw 90 + text_far _BellsproutDexEntry + text_end + +WeepinbellDexEntry: + db "FLYCATCHER@" + db 3,3 + dw 140 + text_far _WeepinbellDexEntry + text_end + +VictreebelDexEntry: + db "FLYCATCHER@" + db 5,7 + dw 340 + text_far _VictreebelDexEntry + text_end + +TentacoolDexEntry: + db "JELLYFISH@" + db 2,11 + dw 1000 + text_far _TentacoolDexEntry + text_end + +TentacruelDexEntry: + db "JELLYFISH@" + db 5,3 + dw 1210 + text_far _TentacruelDexEntry + text_end + +GeodudeDexEntry: + db "ROCK@" + db 1,4 + dw 440 + text_far _GeodudeDexEntry + text_end + +GravelerDexEntry: + db "ROCK@" + db 3,3 + dw 2320 + text_far _GravelerDexEntry + text_end + +GolemDexEntry: + db "MEGATON@" + db 4,7 + dw 6620 + text_far _GolemDexEntry + text_end + +PonytaDexEntry: + db "FIRE HORSE@" + db 3,3 + dw 660 + text_far _PonytaDexEntry + text_end + +RapidashDexEntry: + db "FIRE HORSE@" + db 5,7 + dw 2090 + text_far _RapidashDexEntry + text_end + +SlowpokeDexEntry: + db "DOPEY@" + db 3,11 + dw 790 + text_far _SlowpokeDexEntry + text_end + +SlowbroDexEntry: + db "HERMITCRAB@" + db 5,3 + dw 1730 + text_far _SlowbroDexEntry + text_end + +MagnemiteDexEntry: + db "MAGNET@" + db 1,0 + dw 130 + text_far _MagnemiteDexEntry + text_end + +MagnetonDexEntry: + db "MAGNET@" + db 3,3 + dw 1320 + text_far _MagnetonDexEntry + text_end + +FarfetchdDexEntry: + db "WILD DUCK@" + db 2,7 + dw 330 + text_far _FarfetchdDexEntry + text_end + +DoduoDexEntry: + db "TWIN BIRD@" + db 4,7 + dw 860 + text_far _DoduoDexEntry + text_end + +DodrioDexEntry: + db "TRIPLEBIRD@" + db 5,11 + dw 1880 + text_far _DodrioDexEntry + text_end + +SeelDexEntry: + db "SEA LION@" + db 3,7 + dw 1980 + text_far _SeelDexEntry + text_end + +DewgongDexEntry: + db "SEA LION@" + db 5,7 + dw 2650 + text_far _DewgongDexEntry + text_end + +GrimerDexEntry: + db "SLUDGE@" + db 2,11 + dw 660 + text_far _GrimerDexEntry + text_end + +MukDexEntry: + db "SLUDGE@" + db 3,11 + dw 660 + text_far _MukDexEntry + text_end + +ShellderDexEntry: + db "BIVALVE@" + db 1,0 + dw 90 + text_far _ShellderDexEntry + text_end + +CloysterDexEntry: + db "BIVALVE@" + db 4,11 + dw 2920 + text_far _CloysterDexEntry + text_end + +GastlyDexEntry: + db "GAS@" + db 4,3 + dw 2 + text_far _GastlyDexEntry + text_end + +HaunterDexEntry: + db "GAS@" + db 5,3 + dw 2 + text_far _HaunterDexEntry + text_end + +GengarDexEntry: + db "SHADOW@" + db 4,11 + dw 890 + text_far _GengarDexEntry + text_end + +OnixDexEntry: + db "ROCK SNAKE@" + db 28,10 + dw 4630 + text_far _OnixDexEntry + text_end + +DrowzeeDexEntry: + db "HYPNOSIS@" + db 3,3 + dw 710 + text_far _DrowzeeDexEntry + text_end + +HypnoDexEntry: + db "HYPNOSIS@" + db 5,3 + dw 1670 + text_far _HypnoDexEntry + text_end + +KrabbyDexEntry: + db "RIVER CRAB@" + db 1,4 + dw 140 + text_far _KrabbyDexEntry + text_end + +KinglerDexEntry: + db "PINCER@" + db 4,3 + dw 1320 + text_far _KinglerDexEntry + text_end + +VoltorbDexEntry: + db "BALL@" + db 1,8 + dw 230 + text_far _VoltorbDexEntry + text_end + +ElectrodeDexEntry: + db "BALL@" + db 3,11 + dw 1470 + text_far _ElectrodeDexEntry + text_end + +ExeggcuteDexEntry: + db "EGG@" + db 1,4 + dw 60 + text_far _ExeggcuteDexEntry + text_end + +ExeggutorDexEntry: + db "COCONUT@" + db 6,7 + dw 2650 + text_far _ExeggutorDexEntry + text_end + +CuboneDexEntry: + db "LONELY@" + db 1,4 + dw 140 + text_far _CuboneDexEntry + text_end + +MarowakDexEntry: + db "BONEKEEPER@" + db 3,3 + dw 990 + text_far _MarowakDexEntry + text_end + +HitmonleeDexEntry: + db "KICKING@" + db 4,11 + dw 1100 + text_far _HitmonleeDexEntry + text_end + +HitmonchanDexEntry: + db "PUNCHING@" + db 4,7 + dw 1110 + text_far _HitmonchanDexEntry + text_end + +LickitungDexEntry: + db "LICKING@" + db 3,11 + dw 1440 + text_far _LickitungDexEntry + text_end + +KoffingDexEntry: + db "POISON GAS@" + db 2,0 + dw 20 + text_far _KoffingDexEntry + text_end + +WeezingDexEntry: + db "POISON GAS@" + db 3,11 + dw 210 + text_far _WeezingDexEntry + text_end + +RhyhornDexEntry: + db "SPIKES@" + db 3,3 + dw 2540 + text_far _RhyhornDexEntry + text_end + +RhydonDexEntry: + db "DRILL@" + db 6,3 + dw 2650 + text_far _RhydonDexEntry + text_end + +ChanseyDexEntry: + db "EGG@" + db 3,7 + dw 760 + text_far _ChanseyDexEntry + text_end + +TangelaDexEntry: + db "VINE@" + db 3,3 + dw 770 + text_far _TangelaDexEntry + text_end + +KangaskhanDexEntry: + db "PARENT@" + db 7,3 + dw 1760 + text_far _KangaskhanDexEntry + text_end + +HorseaDexEntry: + db "DRAGON@" + db 1,4 + dw 180 + text_far _HorseaDexEntry + text_end + +SeadraDexEntry: + db "DRAGON@" + db 3,11 + dw 550 + text_far _SeadraDexEntry + text_end + +GoldeenDexEntry: + db "GOLDFISH@" + db 2,0 + dw 330 + text_far _GoldeenDexEntry + text_end + +SeakingDexEntry: + db "GOLDFISH@" + db 4,3 + dw 860 + text_far _SeakingDexEntry + text_end + +StaryuDexEntry: + db "STARSHAPE@" + db 2,7 + dw 760 + text_far _StaryuDexEntry + text_end + +StarmieDexEntry: + db "MYSTERIOUS@" + db 3,7 + dw 1760 + text_far _StarmieDexEntry + text_end + +MrMimeDexEntry: + db "BARRIER@" + db 4,3 + dw 1200 + text_far _MrMimeDexEntry + text_end + +ScytherDexEntry: + db "MANTIS@" + db 4,11 + dw 1230 + text_far _ScytherDexEntry + text_end + +JynxDexEntry: + db "HUMANSHAPE@" + db 4,7 + dw 900 + text_far _JynxDexEntry + text_end + +ElectabuzzDexEntry: + db "ELECTRIC@" + db 3,7 + dw 660 + text_far _ElectabuzzDexEntry + text_end + +MagmarDexEntry: + db "SPITFIRE@" + db 4,3 + dw 980 + text_far _MagmarDexEntry + text_end + +PinsirDexEntry: + db "STAGBEETLE@" + db 4,11 + dw 1210 + text_far _PinsirDexEntry + text_end + +TaurosDexEntry: + db "WILD BULL@" + db 4,7 + dw 1950 + text_far _TaurosDexEntry + text_end + +MagikarpDexEntry: + db "FISH@" + db 2,11 + dw 220 + text_far _MagikarpDexEntry + text_end + +GyaradosDexEntry: + db "ATROCIOUS@" + db 21,4 + dw 5180 + text_far _GyaradosDexEntry + text_end + +LaprasDexEntry: + db "TRANSPORT@" + db 8,2 + dw 4850 + text_far _LaprasDexEntry + text_end + +DittoDexEntry: + db "TRANSFORM@" + db 1,0 + dw 90 + text_far _DittoDexEntry + text_end + +EeveeDexEntry: + db "EVOLUTION@" + db 1,0 + dw 140 + text_far _EeveeDexEntry + text_end + +VaporeonDexEntry: + db "BUBBLE JET@" + db 3,3 + dw 640 + text_far _VaporeonDexEntry + text_end + +JolteonDexEntry: + db "LIGHTNING@" + db 2,7 + dw 540 + text_far _JolteonDexEntry + text_end + +FlareonDexEntry: + db "FLAME@" + db 2,11 + dw 550 + text_far _FlareonDexEntry + text_end + +PorygonDexEntry: + db "VIRTUAL@" + db 2,7 + dw 800 + text_far _PorygonDexEntry + text_end + +OmanyteDexEntry: + db "SPIRAL@" + db 1,4 + dw 170 + text_far _OmanyteDexEntry + text_end + +OmastarDexEntry: + db "SPIRAL@" + db 3,3 + dw 770 + text_far _OmastarDexEntry + text_end + +KabutoDexEntry: + db "SHELLFISH@" + db 1,8 + dw 250 + text_far _KabutoDexEntry + text_end + +KabutopsDexEntry: + db "SHELLFISH@" + db 4,3 + dw 890 + text_far _KabutopsDexEntry + text_end + +AerodactylDexEntry: + db "FOSSIL@" + db 5,11 + dw 1300 + text_far _AerodactylDexEntry + text_end + +SnorlaxDexEntry: + db "SLEEPING@" + db 6,11 + dw 10140 + text_far _SnorlaxDexEntry + text_end + +ArticunoDexEntry: + db "FREEZE@" + db 5,7 + dw 1220 + text_far _ArticunoDexEntry + text_end + +ZapdosDexEntry: + db "ELECTRIC@" + db 5,3 + dw 1160 + text_far _ZapdosDexEntry + text_end + +MoltresDexEntry: + db "FLAME@" + db 6,7 + dw 1320 + text_far _MoltresDexEntry + text_end + +DratiniDexEntry: + db "DRAGON@" + db 5,11 + dw 70 + text_far _DratiniDexEntry + text_end + +DragonairDexEntry: + db "DRAGON@" + db 13,1 + dw 360 + text_far _DragonairDexEntry + text_end + +DragoniteDexEntry: + db "DRAGON@" + db 7,3 + dw 4630 + text_far _DragoniteDexEntry + text_end + +MewtwoDexEntry: + db "GENETIC@" + db 6,7 + dw 2690 + text_far _MewtwoDexEntry + text_end + +MewDexEntry: + db "NEW SPECIE@" + db 1,4 + dw 90 + text_far _MewDexEntry + text_end + +MissingNoDexEntry: + db "???@" + db 10 ; 1.0 m + dw 100 ; 10.0 kg + db "コメント さくせいちゅう@" ; コメント作成中 (Comment to be written) diff --git a/data/pokedex_order.asm b/data/pokemon/dex_order.asm similarity index 100% rename from data/pokedex_order.asm rename to data/pokemon/dex_order.asm diff --git a/text/pokedex.asm b/data/pokemon/dex_text.asm similarity index 100% rename from text/pokedex.asm rename to data/pokemon/dex_text.asm diff --git a/data/pokemon/evos_moves.asm b/data/pokemon/evos_moves.asm new file mode 100755 index 000000000..19016d14a --- /dev/null +++ b/data/pokemon/evos_moves.asm @@ -0,0 +1,2161 @@ +; See constants/pokemon_data_constants.asm +; The max number of evolutions per monster is MAX_EVOLUTIONS + +EvosMovesPointerTable: + dw RhydonEvosMoves + dw KangaskhanEvosMoves + dw NidoranMEvosMoves + dw ClefairyEvosMoves + dw SpearowEvosMoves + dw VoltorbEvosMoves + dw NidokingEvosMoves + dw SlowbroEvosMoves + dw IvysaurEvosMoves + dw ExeggutorEvosMoves + dw LickitungEvosMoves + dw ExeggcuteEvosMoves + dw GrimerEvosMoves + dw GengarEvosMoves + dw NidoranFEvosMoves + dw NidoqueenEvosMoves + dw CuboneEvosMoves + dw RhyhornEvosMoves + dw LaprasEvosMoves + dw ArcanineEvosMoves + dw MewEvosMoves + dw GyaradosEvosMoves + dw ShellderEvosMoves + dw TentacoolEvosMoves + dw GastlyEvosMoves + dw ScytherEvosMoves + dw StaryuEvosMoves + dw BlastoiseEvosMoves + dw PinsirEvosMoves + dw TangelaEvosMoves + dw MissingNo1FEvosMoves + dw MissingNo20EvosMoves + dw GrowlitheEvosMoves + dw OnixEvosMoves + dw FearowEvosMoves + dw PidgeyEvosMoves + dw SlowpokeEvosMoves + dw KadabraEvosMoves + dw GravelerEvosMoves + dw ChanseyEvosMoves + dw MachokeEvosMoves + dw MrMimeEvosMoves + dw HitmonleeEvosMoves + dw HitmonchanEvosMoves + dw ArbokEvosMoves + dw ParasectEvosMoves + dw PsyduckEvosMoves + dw DrowzeeEvosMoves + dw GolemEvosMoves + dw MissingNo32EvosMoves + dw MagmarEvosMoves + dw MissingNo34EvosMoves + dw ElectabuzzEvosMoves + dw MagnetonEvosMoves + dw KoffingEvosMoves + dw MissingNo38EvosMoves + dw MankeyEvosMoves + dw SeelEvosMoves + dw DiglettEvosMoves + dw TaurosEvosMoves + dw MissingNo3DEvosMoves + dw MissingNo3EEvosMoves + dw MissingNo3FEvosMoves + dw FarfetchdEvosMoves + dw VenonatEvosMoves + dw DragoniteEvosMoves + dw MissingNo43EvosMoves + dw MissingNo44EvosMoves + dw MissingNo45EvosMoves + dw DoduoEvosMoves + dw PoliwagEvosMoves + dw JynxEvosMoves + dw MoltresEvosMoves + dw ArticunoEvosMoves + dw ZapdosEvosMoves + dw DittoEvosMoves + dw MeowthEvosMoves + dw KrabbyEvosMoves + dw MissingNo4FEvosMoves + dw MissingNo50EvosMoves + dw MissingNo51EvosMoves + dw VulpixEvosMoves + dw NinetalesEvosMoves + dw PikachuEvosMoves + dw RaichuEvosMoves + dw MissingNo56EvosMoves + dw MissingNo57EvosMoves + dw DratiniEvosMoves + dw DragonairEvosMoves + dw KabutoEvosMoves + dw KabutopsEvosMoves + dw HorseaEvosMoves + dw SeadraEvosMoves + dw MissingNo5EEvosMoves + dw MissingNo5FEvosMoves + dw SandshrewEvosMoves + dw SandslashEvosMoves + dw OmanyteEvosMoves + dw OmastarEvosMoves + dw JigglypuffEvosMoves + dw WigglytuffEvosMoves + dw EeveeEvosMoves + dw FlareonEvosMoves + dw JolteonEvosMoves + dw VaporeonEvosMoves + dw MachopEvosMoves + dw ZubatEvosMoves + dw EkansEvosMoves + dw ParasEvosMoves + dw PoliwhirlEvosMoves + dw PoliwrathEvosMoves + dw WeedleEvosMoves + dw KakunaEvosMoves + dw BeedrillEvosMoves + dw MissingNo73EvosMoves + dw DodrioEvosMoves + dw PrimeapeEvosMoves + dw DugtrioEvosMoves + dw VenomothEvosMoves + dw DewgongEvosMoves + dw MissingNo79EvosMoves + dw MissingNo7AEvosMoves + dw CaterpieEvosMoves + dw MetapodEvosMoves + dw ButterfreeEvosMoves + dw MachampEvosMoves + dw MissingNo7FEvosMoves + dw GolduckEvosMoves + dw HypnoEvosMoves + dw GolbatEvosMoves + dw MewtwoEvosMoves + dw SnorlaxEvosMoves + dw MagikarpEvosMoves + dw MissingNo86EvosMoves + dw MissingNo87EvosMoves + dw MukEvosMoves + dw MissingNo8AEvosMoves + dw KinglerEvosMoves + dw CloysterEvosMoves + dw MissingNo8CEvosMoves + dw ElectrodeEvosMoves + dw ClefableEvosMoves + dw WeezingEvosMoves + dw PersianEvosMoves + dw MarowakEvosMoves + dw MissingNo92EvosMoves + dw HaunterEvosMoves + dw AbraEvosMoves + dw AlakazamEvosMoves + dw PidgeottoEvosMoves + dw PidgeotEvosMoves + dw StarmieEvosMoves + dw BulbasaurEvosMoves + dw VenusaurEvosMoves + dw TentacruelEvosMoves + dw MissingNo9CEvosMoves + dw GoldeenEvosMoves + dw SeakingEvosMoves + dw MissingNo9FEvosMoves + dw MissingNoA0EvosMoves + dw MissingNoA1EvosMoves + dw MissingNoA2EvosMoves + dw PonytaEvosMoves + dw RapidashEvosMoves + dw RattataEvosMoves + dw RaticateEvosMoves + dw NidorinoEvosMoves + dw NidorinaEvosMoves + dw GeodudeEvosMoves + dw PorygonEvosMoves + dw AerodactylEvosMoves + dw MissingNoACEvosMoves + dw MagnemiteEvosMoves + dw MissingNoAEEvosMoves + dw MissingNoAFEvosMoves + dw CharmanderEvosMoves + dw SquirtleEvosMoves + dw CharmeleonEvosMoves + dw WartortleEvosMoves + dw CharizardEvosMoves + dw MissingNoB5EvosMoves + dw FossilKabutopsEvosMoves + dw FossilAerodactylEvosMoves + dw MonGhostEvosMoves + dw OddishEvosMoves + dw GloomEvosMoves + dw VileplumeEvosMoves + dw BellsproutEvosMoves + dw WeepinbellEvosMoves + dw VictreebelEvosMoves + +RhydonEvosMoves: +; Evolutions + db 0 +; Learnset + db 30, STOMP + db 35, TAIL_WHIP + db 40, FURY_ATTACK + db 48, HORN_DRILL + db 55, LEER + db 64, TAKE_DOWN + db 0 + +KangaskhanEvosMoves: +; Evolutions + db 0 +; Learnset + db 26, BITE + db 31, TAIL_WHIP + db 36, MEGA_PUNCH + db 41, LEER + db 46, DIZZY_PUNCH + db 0 + +NidoranMEvosMoves: +; Evolutions + db EV_LEVEL, 16, NIDORINO + db 0 +; Learnset + 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 + +ClefairyEvosMoves: +; Evolutions + db EV_ITEM, MOON_STONE, 1, CLEFABLE + db 0 +; Learnset + db 13, SING + db 18, DOUBLESLAP + db 24, MINIMIZE + db 31, METRONOME + db 39, DEFENSE_CURL + db 48, LIGHT_SCREEN + db 0 + +SpearowEvosMoves: +; Evolutions + db EV_LEVEL, 20, FEAROW + db 0 +; Learnset + db 9, LEER + db 15, FURY_ATTACK + db 22, MIRROR_MOVE + db 29, DRILL_PECK + db 36, AGILITY + db 0 + +VoltorbEvosMoves: +; Evolutions + db EV_LEVEL, 30, ELECTRODE + db 0 +; Learnset + db 17, SONICBOOM + db 22, SELFDESTRUCT + db 29, LIGHT_SCREEN + db 36, SWIFT + db 43, EXPLOSION + db 0 + +NidokingEvosMoves: +; Evolutions + db 0 +; Learnset + db 8, HORN_ATTACK + db 12, DOUBLE_KICK + db 23, THRASH + db 0 + +SlowbroEvosMoves: +; Evolutions + db 0 +; Learnset + db 18, DISABLE + db 22, HEADBUTT + db 27, GROWL + db 33, WATER_GUN + db 37, WITHDRAW + db 44, AMNESIA + db 55, PSYCHIC_M + db 0 + +IvysaurEvosMoves: +; Evolutions + db EV_LEVEL, 32, VENUSAUR + db 0 +; Learnset + db 7, LEECH_SEED + db 13, VINE_WHIP + db 22, POISONPOWDER + db 30, RAZOR_LEAF + db 38, GROWTH + db 46, SLEEP_POWDER + db 54, SOLARBEAM + db 0 + +ExeggutorEvosMoves: +; Evolutions + db 0 +; Learnset + db 28, STOMP + db 0 + +LickitungEvosMoves: +; Evolutions + db 0 +; Learnset + db 7, STOMP + db 15, DISABLE + db 23, DEFENSE_CURL + db 31, SLAM + db 39, SCREECH + db 0 + +ExeggcuteEvosMoves: +; Evolutions + db EV_ITEM, LEAF_STONE, 1, EXEGGUTOR + db 0 +; Learnset + db 25, REFLECT + db 28, LEECH_SEED + db 32, STUN_SPORE + db 37, POISONPOWDER + db 42, SOLARBEAM + db 48, SLEEP_POWDER + db 0 + +GrimerEvosMoves: +; Evolutions + db EV_LEVEL, 38, MUK + db 0 +; Learnset + db 30, POISON_GAS + db 33, MINIMIZE + db 37, SLUDGE + db 42, HARDEN + db 48, SCREECH + db 55, ACID_ARMOR + db 0 + +GengarEvosMoves: +; Evolutions + db 0 +; Learnset + db 29, HYPNOSIS + db 38, DREAM_EATER + db 0 + +NidoranFEvosMoves: +; Evolutions + db EV_LEVEL, 16, NIDORINA + db 0 +; Learnset + db 8, SCRATCH + db 12, DOUBLE_KICK + db 17, POISON_STING + db 23, TAIL_WHIP + db 30, BITE + db 38, FURY_SWIPES + db 0 + +NidoqueenEvosMoves: +; Evolutions + db 0 +; Learnset + db 8, SCRATCH + db 12, DOUBLE_KICK + db 23, BODY_SLAM + db 0 + +CuboneEvosMoves: +; Evolutions + db EV_LEVEL, 28, MAROWAK + db 0 +; Learnset + db 10, BONE_CLUB + db 13, TAIL_WHIP + db 18, HEADBUTT + db 25, LEER + db 31, FOCUS_ENERGY + db 38, THRASH + db 43, BONEMERANG + db 46, RAGE + db 0 + +RhyhornEvosMoves: +; Evolutions + db EV_LEVEL, 42, RHYDON + db 0 +; Learnset + db 30, STOMP + db 35, TAIL_WHIP + db 40, FURY_ATTACK + db 45, HORN_DRILL + db 50, LEER + db 55, TAKE_DOWN + db 0 + +LaprasEvosMoves: +; Evolutions + db 0 +; Learnset + db 16, SING + db 20, MIST + db 25, BODY_SLAM + db 31, CONFUSE_RAY + db 38, ICE_BEAM + db 46, HYDRO_PUMP + db 0 + +ArcanineEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MewEvosMoves: +; Evolutions + db 0 +; Learnset + db 10, TRANSFORM + db 20, MEGA_PUNCH + db 30, METRONOME + db 40, PSYCHIC_M + db 0 + +GyaradosEvosMoves: +; Evolutions + db 0 +; Learnset + db 20, BITE + db 25, DRAGON_RAGE + db 32, LEER + db 41, HYDRO_PUMP + db 52, HYPER_BEAM + db 0 + +ShellderEvosMoves: +; Evolutions + db EV_ITEM, WATER_STONE, 1, CLOYSTER + db 0 +; Learnset + db 18, SUPERSONIC + db 23, CLAMP + db 30, AURORA_BEAM + db 39, LEER + db 50, ICE_BEAM + db 0 + +TentacoolEvosMoves: +; Evolutions + db EV_LEVEL, 30, TENTACRUEL + db 0 +; Learnset + db 7, SUPERSONIC + db 13, WRAP + db 18, POISON_STING + db 22, WATER_GUN + db 27, CONSTRICT + db 33, BARRIER + db 40, SCREECH + db 48, HYDRO_PUMP + db 0 + +GastlyEvosMoves: +; Evolutions + db EV_LEVEL, 25, HAUNTER + db 0 +; Learnset + db 27, HYPNOSIS + db 35, DREAM_EATER + db 0 + +ScytherEvosMoves: +; Evolutions + db 0 +; Learnset + db 17, LEER + db 20, FOCUS_ENERGY + db 24, DOUBLE_TEAM + db 29, SLASH + db 35, SWORDS_DANCE + db 42, AGILITY + db 50, WING_ATTACK + db 0 + +StaryuEvosMoves: +; Evolutions + db EV_ITEM, WATER_STONE, 1, STARMIE + db 0 +; Learnset + db 17, WATER_GUN + db 22, HARDEN + db 27, RECOVER + db 32, SWIFT + db 37, MINIMIZE + db 42, LIGHT_SCREEN + db 47, HYDRO_PUMP + db 0 + +BlastoiseEvosMoves: +; Evolutions + db 0 +; Learnset + db 8, BUBBLE + db 15, WATER_GUN + db 24, BITE + db 31, WITHDRAW + db 42, SKULL_BASH + db 52, HYDRO_PUMP + db 0 + +PinsirEvosMoves: +; Evolutions + db 0 +; Learnset + db 21, BIND + db 25, SEISMIC_TOSS + db 30, GUILLOTINE + db 36, FOCUS_ENERGY + db 43, HARDEN + db 49, SLASH + db 54, SWORDS_DANCE + db 0 + +TangelaEvosMoves: +; Evolutions + db 0 +; Learnset + db 24, BIND + db 27, ABSORB + db 29, VINE_WHIP + db 32, POISONPOWDER + db 36, STUN_SPORE + db 39, SLEEP_POWDER + db 45, SLAM + db 48, GROWTH + db 0 + +MissingNo1FEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MissingNo20EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +GrowlitheEvosMoves: +; Evolutions + db EV_ITEM, FIRE_STONE, 1, ARCANINE + db 0 +; Learnset + db 18, EMBER + db 23, LEER + db 30, TAKE_DOWN + db 39, AGILITY + db 50, FLAMETHROWER + db 0 + +OnixEvosMoves: +; Evolutions + db 0 +; Learnset + db 15, BIND + db 19, ROCK_THROW + db 25, RAGE + db 33, SLAM + db 43, HARDEN + db 0 + +FearowEvosMoves: +; Evolutions + db 0 +; Learnset + db 9, LEER + db 15, FURY_ATTACK + db 25, MIRROR_MOVE + db 34, DRILL_PECK + db 43, AGILITY + db 0 + +PidgeyEvosMoves: +; Evolutions + db EV_LEVEL, 18, PIDGEOTTO + db 0 +; Learnset + db 5, SAND_ATTACK + db 12, QUICK_ATTACK + db 19, WHIRLWIND + db 28, WING_ATTACK + db 36, AGILITY + db 44, MIRROR_MOVE + db 0 + +SlowpokeEvosMoves: +; Evolutions + db EV_LEVEL, 37, SLOWBRO + db 0 +; Learnset + db 18, DISABLE + db 22, HEADBUTT + db 27, GROWL + db 33, WATER_GUN + db 40, AMNESIA + db 48, PSYCHIC_M + db 0 + +KadabraEvosMoves: +; Evolutions + db EV_TRADE, 1, ALAKAZAM + db 0 +; Learnset + db 16, CONFUSION + db 20, DISABLE + db 27, PSYBEAM + db 31, RECOVER + db 38, PSYCHIC_M + db 42, REFLECT + db 0 + +GravelerEvosMoves: +; Evolutions + db EV_TRADE, 1, GOLEM + db 0 +; Learnset + db 11, DEFENSE_CURL + db 16, ROCK_THROW + db 21, SELFDESTRUCT + db 29, HARDEN + db 36, EARTHQUAKE + db 43, EXPLOSION + db 0 + +ChanseyEvosMoves: +; Evolutions + db 0 +; Learnset + db 12, DOUBLESLAP + db 24, SING + db 30, GROWL + db 38, MINIMIZE + db 44, DEFENSE_CURL + db 48, LIGHT_SCREEN + db 54, DOUBLE_EDGE + db 0 + +MachokeEvosMoves: +; Evolutions + db EV_TRADE, 1, MACHAMP + db 0 +; Learnset + db 20, LOW_KICK + db 25, LEER + db 36, FOCUS_ENERGY + db 44, SEISMIC_TOSS + db 52, SUBMISSION + db 0 + +MrMimeEvosMoves: +; Evolutions + db 0 +; Learnset + db 15, CONFUSION + db 23, LIGHT_SCREEN + db 31, DOUBLESLAP + db 39, MEDITATE + db 47, SUBSTITUTE + db 0 + +HitmonleeEvosMoves: +; Evolutions + db 0 +; Learnset + db 33, ROLLING_KICK + db 38, JUMP_KICK + db 43, FOCUS_ENERGY + db 48, HI_JUMP_KICK + db 53, MEGA_KICK + db 0 + +HitmonchanEvosMoves: +; Evolutions + db 0 +; Learnset + db 33, FIRE_PUNCH + db 38, ICE_PUNCH + db 43, THUNDERPUNCH + db 48, MEGA_PUNCH + db 53, COUNTER + db 0 + +ArbokEvosMoves: +; Evolutions + db 0 +; Learnset + db 10, POISON_STING + db 17, BITE + db 27, GLARE + db 36, SCREECH + db 47, ACID + db 0 + +ParasectEvosMoves: +; Evolutions + db 0 +; Learnset + db 13, STUN_SPORE + db 20, LEECH_LIFE + db 30, SPORE + db 39, SLASH + db 48, GROWTH + db 0 + +PsyduckEvosMoves: +; Evolutions + db EV_LEVEL, 33, GOLDUCK + db 0 +; Learnset + db 28, TAIL_WHIP + db 31, DISABLE + db 36, CONFUSION + db 43, FURY_SWIPES + db 52, HYDRO_PUMP + db 0 + +DrowzeeEvosMoves: +; Evolutions + db EV_LEVEL, 26, HYPNO + db 0 +; Learnset + db 12, DISABLE + db 17, CONFUSION + db 24, HEADBUTT + db 29, POISON_GAS + db 32, PSYCHIC_M + db 37, MEDITATE + db 0 + +GolemEvosMoves: +; Evolutions + db 0 +; Learnset + db 11, DEFENSE_CURL + db 16, ROCK_THROW + db 21, SELFDESTRUCT + db 29, HARDEN + db 36, EARTHQUAKE + db 43, EXPLOSION + db 0 + +MissingNo32EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MagmarEvosMoves: +; Evolutions + db 0 +; Learnset + db 36, LEER + db 39, CONFUSE_RAY + db 43, FIRE_PUNCH + db 48, SMOKESCREEN + db 52, SMOG + db 55, FLAMETHROWER + db 0 + +MissingNo34EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +ElectabuzzEvosMoves: +; Evolutions + db 0 +; Learnset + db 34, THUNDERSHOCK + db 37, SCREECH + db 42, THUNDERPUNCH + db 49, LIGHT_SCREEN + db 54, THUNDER + db 0 + +MagnetonEvosMoves: +; Evolutions + db 0 +; Learnset + db 21, SONICBOOM + db 25, THUNDERSHOCK + db 29, SUPERSONIC + db 38, THUNDER_WAVE + db 46, SWIFT + db 54, SCREECH + db 0 + +KoffingEvosMoves: +; Evolutions + db EV_LEVEL, 35, WEEZING + db 0 +; Learnset + db 32, SLUDGE + db 37, SMOKESCREEN + db 40, SELFDESTRUCT + db 45, HAZE + db 48, EXPLOSION + db 0 + +MissingNo38EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MankeyEvosMoves: +; Evolutions + db EV_LEVEL, 28, PRIMEAPE + db 0 +; Learnset + db 9, LOW_KICK + db 15, KARATE_CHOP + db 21, FURY_SWIPES + db 27, FOCUS_ENERGY + db 33, SEISMIC_TOSS + db 39, THRASH + db 45, SCREECH + db 0 + +SeelEvosMoves: +; Evolutions + db EV_LEVEL, 34, DEWGONG + db 0 +; Learnset + db 30, GROWL + db 35, AURORA_BEAM + db 40, REST + db 45, TAKE_DOWN + db 50, ICE_BEAM + db 0 + +DiglettEvosMoves: +; Evolutions + db EV_LEVEL, 26, DUGTRIO + db 0 +; Learnset + db 15, GROWL + db 19, DIG + db 24, SAND_ATTACK + db 31, SLASH + db 40, EARTHQUAKE + db 0 + +TaurosEvosMoves: +; Evolutions + db 0 +; Learnset + db 21, STOMP + db 28, TAIL_WHIP + db 35, LEER + db 44, RAGE + db 51, TAKE_DOWN + db 0 + +MissingNo3DEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MissingNo3EEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MissingNo3FEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +FarfetchdEvosMoves: +; Evolutions + db 0 +; Learnset + db 7, LEER + db 15, FURY_ATTACK + db 23, SWORDS_DANCE + db 31, AGILITY + db 39, SLASH + db 0 + +VenonatEvosMoves: +; Evolutions + db EV_LEVEL, 31, VENOMOTH + db 0 +; Learnset + db 11, SUPERSONIC + db 19, CONFUSION + db 22, POISONPOWDER + db 27, LEECH_LIFE + db 30, STUN_SPORE + db 35, PSYBEAM + db 38, SLEEP_POWDER + db 43, PSYCHIC_M + db 0 + +DragoniteEvosMoves: +; Evolutions + db 0 +; Learnset + db 10, THUNDER_WAVE + db 20, AGILITY + db 35, SLAM + db 45, DRAGON_RAGE + db 60, HYPER_BEAM + db 0 + +MissingNo43EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MissingNo44EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MissingNo45EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +DoduoEvosMoves: +; Evolutions + db EV_LEVEL, 31, DODRIO + db 0 +; Learnset + db 20, GROWL + db 24, FURY_ATTACK + db 30, DRILL_PECK + db 36, RAGE + db 40, TRI_ATTACK + db 44, AGILITY + db 0 + +PoliwagEvosMoves: +; Evolutions + db EV_LEVEL, 25, POLIWHIRL + db 0 +; Learnset + db 16, HYPNOSIS + db 19, WATER_GUN + db 25, DOUBLESLAP + db 31, BODY_SLAM + db 38, AMNESIA + db 45, HYDRO_PUMP + db 0 + +JynxEvosMoves: +; Evolutions + db 0 +; Learnset + db 18, LICK + db 23, DOUBLESLAP + db 31, ICE_PUNCH + db 39, BODY_SLAM + db 47, THRASH + db 58, BLIZZARD + db 0 + +MoltresEvosMoves: +; Evolutions + db 0 +; Learnset + db 51, LEER + db 55, AGILITY + db 60, SKY_ATTACK + db 0 + +ArticunoEvosMoves: +; Evolutions + db 0 +; Learnset + db 51, BLIZZARD + db 55, AGILITY + db 60, MIST + db 0 + +ZapdosEvosMoves: +; Evolutions + db 0 +; Learnset + db 51, THUNDER + db 55, AGILITY + db 60, LIGHT_SCREEN + db 0 + +DittoEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MeowthEvosMoves: +; Evolutions + db EV_LEVEL, 28, PERSIAN + db 0 +; Learnset + db 12, BITE + db 17, PAY_DAY + db 24, SCREECH + db 33, FURY_SWIPES + db 44, SLASH + db 0 + +KrabbyEvosMoves: +; Evolutions + db EV_LEVEL, 28, KINGLER + db 0 +; Learnset + db 20, VICEGRIP + db 25, GUILLOTINE + db 30, STOMP + db 35, CRABHAMMER + db 40, HARDEN + db 0 + +MissingNo4FEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MissingNo50EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MissingNo51EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +VulpixEvosMoves: +; Evolutions + db EV_ITEM, FIRE_STONE, 1, NINETALES + db 0 +; Learnset + db 16, QUICK_ATTACK + db 21, ROAR + db 28, CONFUSE_RAY + db 35, FLAMETHROWER + db 42, FIRE_SPIN + db 0 + +NinetalesEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +PikachuEvosMoves: +; Evolutions + db EV_ITEM, THUNDER_STONE, 1, RAICHU + db 0 +; Learnset + 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 + +RaichuEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MissingNo56EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MissingNo57EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +DratiniEvosMoves: +; Evolutions + db EV_LEVEL, 30, DRAGONAIR + db 0 +; Learnset + db 10, THUNDER_WAVE + db 20, AGILITY + db 30, SLAM + db 40, DRAGON_RAGE + db 50, HYPER_BEAM + db 0 + +DragonairEvosMoves: +; Evolutions + db EV_LEVEL, 55, DRAGONITE + db 0 +; Learnset + db 10, THUNDER_WAVE + db 20, AGILITY + db 35, SLAM + db 45, DRAGON_RAGE + db 55, HYPER_BEAM + db 0 + +KabutoEvosMoves: +; Evolutions + db EV_LEVEL, 40, KABUTOPS + db 0 +; Learnset + db 34, ABSORB + db 39, SLASH + db 44, LEER + db 49, HYDRO_PUMP + db 0 + +KabutopsEvosMoves: +; Evolutions + db 0 +; Learnset + db 34, ABSORB + db 39, SLASH + db 46, LEER + db 53, HYDRO_PUMP + db 0 + +HorseaEvosMoves: +; Evolutions + db EV_LEVEL, 32, SEADRA + db 0 +; Learnset + db 19, SMOKESCREEN + db 24, LEER + db 30, WATER_GUN + db 37, AGILITY + db 45, HYDRO_PUMP + db 0 + +SeadraEvosMoves: +; Evolutions + db 0 +; Learnset + db 19, SMOKESCREEN + db 24, LEER + db 30, WATER_GUN + db 41, AGILITY + db 52, HYDRO_PUMP + db 0 + +MissingNo5EEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MissingNo5FEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +SandshrewEvosMoves: +; Evolutions + db EV_LEVEL, 22, SANDSLASH + db 0 +; Learnset + db 10, SAND_ATTACK + db 17, SLASH + db 24, POISON_STING + db 31, SWIFT + db 38, FURY_SWIPES + db 0 + +SandslashEvosMoves: +; Evolutions + db 0 +; Learnset + db 10, SAND_ATTACK + db 17, SLASH + db 27, POISON_STING + db 36, SWIFT + db 47, FURY_SWIPES + db 0 + +OmanyteEvosMoves: +; Evolutions + db EV_LEVEL, 40, OMASTAR + db 0 +; Learnset + db 34, HORN_ATTACK + db 39, LEER + db 46, SPIKE_CANNON + db 53, HYDRO_PUMP + db 0 + +OmastarEvosMoves: +; Evolutions + db 0 +; Learnset + db 34, HORN_ATTACK + db 39, LEER + db 44, SPIKE_CANNON + db 49, HYDRO_PUMP + db 0 + +JigglypuffEvosMoves: +; Evolutions + db EV_ITEM, MOON_STONE, 1, WIGGLYTUFF + db 0 +; Learnset + db 9, POUND + db 14, DISABLE + db 19, DEFENSE_CURL + db 24, DOUBLESLAP + db 29, REST + db 34, BODY_SLAM + db 39, DOUBLE_EDGE + db 0 + +WigglytuffEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +EeveeEvosMoves: +; Evolutions + db EV_ITEM, FIRE_STONE, 1, FLAREON + db EV_ITEM, THUNDER_STONE, 1, JOLTEON + db EV_ITEM, WATER_STONE, 1, VAPOREON + db 0 +; Learnset + db 8, SAND_ATTACK + db 16, GROWL + db 23, QUICK_ATTACK + db 30, BITE + db 36, FOCUS_ENERGY + db 42, TAKE_DOWN + db 0 + +FlareonEvosMoves: +; Evolutions + db 0 +; Learnset + 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 + +JolteonEvosMoves: +; Evolutions + db 0 +; Learnset + 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 + +VaporeonEvosMoves: +; Evolutions + db 0 +; Learnset + db 8, SAND_ATTACK + db 16, WATER_GUN + db 23, QUICK_ATTACK + db 30, BITE + db 36, AURORA_BEAM + db 42, HAZE + db 42, MIST + db 47, ACID_ARMOR + db 52, HYDRO_PUMP + db 0 + +MachopEvosMoves: +; Evolutions + db EV_LEVEL, 28, MACHOKE + db 0 +; Learnset + db 20, LOW_KICK + db 25, LEER + db 32, FOCUS_ENERGY + db 39, SEISMIC_TOSS + db 46, SUBMISSION + db 0 + +ZubatEvosMoves: +; Evolutions + db EV_LEVEL, 22, GOLBAT + db 0 +; Learnset + db 10, SUPERSONIC + db 15, BITE + db 21, CONFUSE_RAY + db 28, WING_ATTACK + db 36, HAZE + db 0 + +EkansEvosMoves: +; Evolutions + db EV_LEVEL, 22, ARBOK + db 0 +; Learnset + db 10, POISON_STING + db 17, BITE + db 24, GLARE + db 31, SCREECH + db 38, ACID + db 0 + +ParasEvosMoves: +; Evolutions + db EV_LEVEL, 24, PARASECT + db 0 +; Learnset + db 13, STUN_SPORE + db 20, LEECH_LIFE + db 27, SPORE + db 34, SLASH + db 41, GROWTH + db 0 + +PoliwhirlEvosMoves: +; Evolutions + db EV_ITEM, WATER_STONE, 1, POLIWRATH + db 0 +; Learnset + db 16, HYPNOSIS + db 19, WATER_GUN + db 26, DOUBLESLAP + db 33, BODY_SLAM + db 41, AMNESIA + db 49, HYDRO_PUMP + db 0 + +PoliwrathEvosMoves: +; Evolutions + db 0 +; Learnset + db 16, HYPNOSIS + db 19, WATER_GUN + db 0 + +WeedleEvosMoves: +; Evolutions + db EV_LEVEL, 7, KAKUNA + db 0 +; Learnset + db 0 + +KakunaEvosMoves: +; Evolutions + db EV_LEVEL, 10, BEEDRILL + db 0 +; Learnset + db 0 + +BeedrillEvosMoves: +; Evolutions + db 0 +; Learnset + db 12, FURY_ATTACK + db 16, FOCUS_ENERGY + db 20, TWINEEDLE + db 25, RAGE + db 30, PIN_MISSILE + db 35, AGILITY + db 0 + +MissingNo73EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +DodrioEvosMoves: +; Evolutions + db 0 +; Learnset + db 20, GROWL + db 24, FURY_ATTACK + db 30, DRILL_PECK + db 39, RAGE + db 45, TRI_ATTACK + db 51, AGILITY + db 0 + +PrimeapeEvosMoves: +; Evolutions + db 0 +; Learnset + db 9, LOW_KICK + db 15, KARATE_CHOP + db 21, FURY_SWIPES + db 27, FOCUS_ENERGY + db 28, RAGE + db 37, SEISMIC_TOSS + db 46, THRASH + db 45, SCREECH + db 0 + +DugtrioEvosMoves: +; Evolutions + db 0 +; Learnset + db 15, GROWL + db 19, DIG + db 24, SAND_ATTACK + db 35, SLASH + db 47, EARTHQUAKE + db 0 + +VenomothEvosMoves: +; Evolutions + db 0 +; Learnset + db 22, POISONPOWDER + db 27, LEECH_LIFE + db 30, STUN_SPORE + db 38, PSYBEAM + db 43, SLEEP_POWDER + db 50, PSYCHIC_M + db 0 + +DewgongEvosMoves: +; Evolutions + db 0 +; Learnset + db 30, GROWL + db 35, AURORA_BEAM + db 44, REST + db 50, TAKE_DOWN + db 56, ICE_BEAM + db 0 + +MissingNo79EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MissingNo7AEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +CaterpieEvosMoves: +; Evolutions + db EV_LEVEL, 7, METAPOD + db 0 +; Learnset + db 0 + +MetapodEvosMoves: +; Evolutions + db EV_LEVEL, 10, BUTTERFREE + db 0 +; Learnset + db 7, HARDEN + db 0 + +ButterfreeEvosMoves: +; Evolutions + db 0 +; Learnset + 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 0 + +MachampEvosMoves: +; Evolutions + db 0 +; Learnset + db 20, LOW_KICK + db 25, LEER + db 36, FOCUS_ENERGY + db 44, SEISMIC_TOSS + db 52, SUBMISSION + db 0 + +MissingNo7FEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +GolduckEvosMoves: +; Evolutions + db 0 +; Learnset + db 28, TAIL_WHIP + db 31, DISABLE + db 39, CONFUSION + db 48, FURY_SWIPES + db 59, HYDRO_PUMP + db 0 + +HypnoEvosMoves: +; Evolutions + db 0 +; Learnset + db 12, DISABLE + db 17, CONFUSION + db 24, HEADBUTT + db 33, POISON_GAS + db 37, PSYCHIC_M + db 43, MEDITATE + db 0 + +GolbatEvosMoves: +; Evolutions + db 0 +; Learnset + db 10, SUPERSONIC + db 15, BITE + db 21, CONFUSE_RAY + db 32, WING_ATTACK + db 43, HAZE + db 0 + +MewtwoEvosMoves: +; Evolutions + db 0 +; Learnset + db 63, BARRIER + db 66, PSYCHIC_M + db 70, RECOVER + db 75, MIST + db 81, AMNESIA + db 0 + +SnorlaxEvosMoves: +; Evolutions + db 0 +; Learnset + db 35, BODY_SLAM + db 41, HARDEN + db 48, DOUBLE_EDGE + db 56, HYPER_BEAM + db 0 + +MagikarpEvosMoves: +; Evolutions + db EV_LEVEL, 20, GYARADOS + db 0 +; Learnset + db 15, TACKLE + db 0 + +MissingNo86EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MissingNo87EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MukEvosMoves: +; Evolutions + db 0 +; Learnset + db 30, POISON_GAS + db 33, MINIMIZE + db 37, SLUDGE + db 45, HARDEN + db 53, SCREECH + db 60, ACID_ARMOR + db 0 + +MissingNo8AEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +KinglerEvosMoves: +; Evolutions + db 0 +; Learnset + db 20, VICEGRIP + db 25, GUILLOTINE + db 34, STOMP + db 42, CRABHAMMER + db 49, HARDEN + db 0 + +CloysterEvosMoves: +; Evolutions + db 0 +; Learnset + db 50, SPIKE_CANNON + db 0 + +MissingNo8CEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +ElectrodeEvosMoves: +; Evolutions + db 0 +; Learnset + db 17, SONICBOOM + db 22, SELFDESTRUCT + db 29, LIGHT_SCREEN + db 40, SWIFT + db 50, EXPLOSION + db 0 + +ClefableEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +WeezingEvosMoves: +; Evolutions + db 0 +; Learnset + db 32, SLUDGE + db 39, SMOKESCREEN + db 43, SELFDESTRUCT + db 49, HAZE + db 53, EXPLOSION + db 0 + +PersianEvosMoves: +; Evolutions + db 0 +; Learnset + db 12, BITE + db 17, PAY_DAY + db 24, SCREECH + db 37, FURY_SWIPES + db 51, SLASH + db 0 + +MarowakEvosMoves: +; Evolutions + db 0 +; Learnset + db 10, BONE_CLUB + db 13, TAIL_WHIP + db 18, HEADBUTT + db 25, LEER + db 33, FOCUS_ENERGY + db 41, THRASH + db 48, BONEMERANG + db 55, RAGE + db 0 + +MissingNo92EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +HaunterEvosMoves: +; Evolutions + db EV_TRADE, 1, GENGAR + db 0 +; Learnset + db 29, HYPNOSIS + db 38, DREAM_EATER + db 0 + +AbraEvosMoves: +; Evolutions + db EV_LEVEL, 16, KADABRA + db 0 +; Learnset + db 0 + +AlakazamEvosMoves: +; Evolutions + db 0 +; Learnset + db 16, CONFUSION + db 20, DISABLE + db 27, PSYBEAM + db 31, RECOVER + db 38, PSYCHIC_M + db 42, REFLECT + db 0 + +PidgeottoEvosMoves: +; Evolutions + db EV_LEVEL, 36, PIDGEOT + db 0 +; Learnset + db 5, SAND_ATTACK + db 12, QUICK_ATTACK + db 21, WHIRLWIND + db 31, WING_ATTACK + db 40, AGILITY + db 49, MIRROR_MOVE + db 0 + +PidgeotEvosMoves: +; Evolutions + db 0 +; Learnset + db 5, SAND_ATTACK + db 12, QUICK_ATTACK + db 21, WHIRLWIND + db 31, WING_ATTACK + db 44, AGILITY + db 54, MIRROR_MOVE + db 0 + +StarmieEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +BulbasaurEvosMoves: +; Evolutions + db EV_LEVEL, 16, IVYSAUR + db 0 +; Learnset + db 7, LEECH_SEED + db 13, VINE_WHIP + db 20, POISONPOWDER + db 27, RAZOR_LEAF + db 34, GROWTH + db 41, SLEEP_POWDER + db 48, SOLARBEAM + db 0 + +VenusaurEvosMoves: +; Evolutions + db 0 +; Learnset + db 7, LEECH_SEED + db 13, VINE_WHIP + db 22, POISONPOWDER + db 30, RAZOR_LEAF + db 43, GROWTH + db 55, SLEEP_POWDER + db 65, SOLARBEAM + db 0 + +TentacruelEvosMoves: +; Evolutions + db 0 +; Learnset + db 7, SUPERSONIC + db 13, WRAP + db 18, POISON_STING + db 22, WATER_GUN + db 27, CONSTRICT + db 35, BARRIER + db 43, SCREECH + db 50, HYDRO_PUMP + db 0 + +MissingNo9CEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +GoldeenEvosMoves: +; Evolutions + db EV_LEVEL, 33, SEAKING + db 0 +; Learnset + db 19, SUPERSONIC + db 24, HORN_ATTACK + db 30, FURY_ATTACK + db 37, WATERFALL + db 45, HORN_DRILL + db 54, AGILITY + db 0 + +SeakingEvosMoves: +; Evolutions + db 0 +; Learnset + db 19, SUPERSONIC + db 24, HORN_ATTACK + db 30, FURY_ATTACK + db 39, WATERFALL + db 48, HORN_DRILL + db 54, AGILITY + db 0 + +MissingNo9FEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MissingNoA0EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MissingNoA1EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MissingNoA2EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +PonytaEvosMoves: +; Evolutions + db EV_LEVEL, 40, RAPIDASH + db 0 +; Learnset + db 30, TAIL_WHIP + db 32, STOMP + db 35, GROWL + db 39, FIRE_SPIN + db 43, TAKE_DOWN + db 48, AGILITY + db 0 + +RapidashEvosMoves: +; Evolutions + db 0 +; Learnset + db 30, TAIL_WHIP + db 32, STOMP + db 35, GROWL + db 39, FIRE_SPIN + db 47, TAKE_DOWN + db 55, AGILITY + db 0 + +RattataEvosMoves: +; Evolutions + db EV_LEVEL, 20, RATICATE + db 0 +; Learnset + db 7, QUICK_ATTACK + db 14, HYPER_FANG + db 23, FOCUS_ENERGY + db 34, SUPER_FANG + db 0 + +RaticateEvosMoves: +; Evolutions + db 0 +; Learnset + db 7, QUICK_ATTACK + db 14, HYPER_FANG + db 27, FOCUS_ENERGY + db 41, SUPER_FANG + db 0 + +NidorinoEvosMoves: +; Evolutions + db EV_ITEM, MOON_STONE, 1, NIDOKING + db 0 +; Learnset + 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 + +NidorinaEvosMoves: +; Evolutions + db EV_ITEM, MOON_STONE, 1, NIDOQUEEN + db 0 +; Learnset + db 8, SCRATCH + db 12, DOUBLE_KICK + db 19, POISON_STING + db 27, TAIL_WHIP + db 36, BITE + db 46, FURY_SWIPES + db 0 + +GeodudeEvosMoves: +; Evolutions + db EV_LEVEL, 25, GRAVELER + db 0 +; Learnset + db 11, DEFENSE_CURL + db 16, ROCK_THROW + db 21, SELFDESTRUCT + db 26, HARDEN + db 31, EARTHQUAKE + db 36, EXPLOSION + db 0 + +PorygonEvosMoves: +; Evolutions + db 0 +; Learnset + db 23, PSYBEAM + db 28, RECOVER + db 35, AGILITY + db 42, TRI_ATTACK + db 0 + +AerodactylEvosMoves: +; Evolutions + db 0 +; Learnset + db 33, SUPERSONIC + db 38, BITE + db 45, TAKE_DOWN + db 54, HYPER_BEAM + db 0 + +MissingNoACEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MagnemiteEvosMoves: +; Evolutions + db EV_LEVEL, 30, MAGNETON + db 0 +; Learnset + db 21, SONICBOOM + db 25, THUNDERSHOCK + db 29, SUPERSONIC + db 35, THUNDER_WAVE + db 41, SWIFT + db 47, SCREECH + db 0 + +MissingNoAEEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MissingNoAFEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +CharmanderEvosMoves: +; Evolutions + db EV_LEVEL, 16, CHARMELEON + db 0 +; Learnset + db 9, EMBER + db 15, LEER + db 22, RAGE + db 30, SLASH + db 38, FLAMETHROWER + db 46, FIRE_SPIN + db 0 + +SquirtleEvosMoves: +; Evolutions + db EV_LEVEL, 16, WARTORTLE + db 0 +; Learnset + db 8, BUBBLE + db 15, WATER_GUN + db 22, BITE + db 28, WITHDRAW + db 35, SKULL_BASH + db 42, HYDRO_PUMP + db 0 + +CharmeleonEvosMoves: +; Evolutions + db EV_LEVEL, 36, CHARIZARD + db 0 +; Learnset + db 9, EMBER + db 15, LEER + db 24, RAGE + db 33, SLASH + db 42, FLAMETHROWER + db 56, FIRE_SPIN + db 0 + +WartortleEvosMoves: +; Evolutions + db EV_LEVEL, 36, BLASTOISE + db 0 +; Learnset + db 8, BUBBLE + db 15, WATER_GUN + db 24, BITE + db 31, WITHDRAW + db 39, SKULL_BASH + db 47, HYDRO_PUMP + db 0 + +CharizardEvosMoves: +; Evolutions + db 0 +; Learnset + db 9, EMBER + db 15, LEER + db 24, RAGE + db 36, SLASH + db 46, FLAMETHROWER + db 55, FIRE_SPIN + db 0 + +MissingNoB5EvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +FossilKabutopsEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +FossilAerodactylEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +MonGhostEvosMoves: +; Evolutions + db 0 +; Learnset + db 0 + +OddishEvosMoves: +; Evolutions + db EV_LEVEL, 21, GLOOM + db 0 +; Learnset + db 15, POISONPOWDER + db 17, STUN_SPORE + db 19, SLEEP_POWDER + db 24, ACID + db 33, PETAL_DANCE + db 46, SOLARBEAM + db 0 + +GloomEvosMoves: +; Evolutions + db EV_ITEM, LEAF_STONE, 1, VILEPLUME + db 0 +; Learnset + db 15, POISONPOWDER + db 17, STUN_SPORE + db 19, SLEEP_POWDER + db 28, ACID + db 38, PETAL_DANCE + db 52, SOLARBEAM + db 0 + +VileplumeEvosMoves: +; Evolutions + db 0 +; Learnset + db 15, POISONPOWDER + db 17, STUN_SPORE + db 19, SLEEP_POWDER + db 0 + +BellsproutEvosMoves: +; Evolutions + db EV_LEVEL, 21, WEEPINBELL + db 0 +; Learnset + db 13, WRAP + db 15, POISONPOWDER + db 18, SLEEP_POWDER + db 21, STUN_SPORE + db 26, ACID + db 33, RAZOR_LEAF + db 42, SLAM + db 0 + +WeepinbellEvosMoves: +; Evolutions + db EV_ITEM, LEAF_STONE, 1, VICTREEBEL + db 0 +; Learnset + db 13, WRAP + db 15, POISONPOWDER + db 18, SLEEP_POWDER + db 23, STUN_SPORE + db 29, ACID + db 38, RAZOR_LEAF + db 49, SLAM + db 0 + +VictreebelEvosMoves: +; Evolutions + db 0 +; Learnset + db 13, WRAP + db 15, POISONPOWDER + db 18, SLEEP_POWDER + db 0 diff --git a/data/pokemon/menu_icons.asm b/data/pokemon/menu_icons.asm new file mode 100755 index 000000000..0fbc92607 --- /dev/null +++ b/data/pokemon/menu_icons.asm @@ -0,0 +1,77 @@ +MonPartyData: + dn ICON_GRASS, ICON_GRASS ; Bulbasaur / Ivysaur + dn ICON_GRASS, ICON_MON ; Venusaur / Charmander + dn ICON_MON, ICON_MON ; Charmeleon / Charizard + dn ICON_WATER, ICON_WATER ; Squirtle / Wartortle + dn ICON_WATER, ICON_BUG ; Blastoise / Caterpie + dn ICON_BUG, ICON_BUG ; Metapod / Butterfree + dn ICON_BUG, ICON_BUG ; Weedle / Kakuna + dn ICON_BUG, ICON_BIRD ; Beedrill / Pidgey + dn ICON_BIRD, ICON_BIRD ; Pidgeotto / Pidgeot + dn ICON_QUADRUPED, ICON_QUADRUPED ; Rattata / Raticate + dn ICON_BIRD, ICON_BIRD ; Spearow / Fearow + dn ICON_SNAKE, ICON_SNAKE ; Ekans / Arbok + dn ICON_PIKACHU, ICON_PIKACHU ; Pikachu / Raichu + dn ICON_MON, ICON_MON ; Sandshrew / Sandslash + dn ICON_MON, ICON_MON ; NidoranF / Nidorina + dn ICON_MON, ICON_MON ; Nidoqueen / NidoranM + dn ICON_MON, ICON_MON ; Nidorino / Nidoking + dn ICON_FAIRY, ICON_FAIRY ; Clefairy / Clefable + dn ICON_QUADRUPED, ICON_QUADRUPED ; Vulpix / Ninetales + dn ICON_FAIRY, ICON_FAIRY ; Jigglypuff / Wigglytuff + dn ICON_MON, ICON_MON ; Zubat / Golbat + dn ICON_GRASS, ICON_GRASS ; Oddish / Gloom + dn ICON_GRASS, ICON_BUG ; Vileplume / Paras + dn ICON_BUG, ICON_BUG ; Parasect / Venonat + dn ICON_BUG, ICON_MON ; Venomoth / Diglett + dn ICON_MON, ICON_MON ; Dugtrio / Meowth + dn ICON_MON, ICON_MON ; Persian / Psyduck + dn ICON_MON, ICON_MON ; Golduck / Mankey + dn ICON_MON, ICON_QUADRUPED ; Primeape / Growlithe + dn ICON_QUADRUPED, ICON_MON ; Arcanine / Poliwag + dn ICON_MON, ICON_MON ; Poliwhirl / Poliwrath + dn ICON_MON, ICON_MON ; Abra / Kadabra + dn ICON_MON, ICON_MON ; Alakazam / Machop + dn ICON_MON, ICON_MON ; Machoke / Machamp + dn ICON_GRASS, ICON_GRASS ; Bellsprout / Weepinbell + dn ICON_GRASS, ICON_WATER ; Victreebel / Tentacool + dn ICON_WATER, ICON_MON ; Tentacruel / Geodude + dn ICON_MON, ICON_MON ; Graveler / Golem + dn ICON_QUADRUPED, ICON_QUADRUPED ; Ponyta / Rapidash + dn ICON_QUADRUPED, ICON_MON ; Slowpoke / Slowbro + dn ICON_BALL, ICON_BALL ; Magnemite / Magneton + dn ICON_BIRD, ICON_BIRD ; Farfetch'd / Doduo + dn ICON_BIRD, ICON_WATER ; Dodrio / Seel + dn ICON_WATER, ICON_MON ; Dewgong / Grimer + dn ICON_MON, ICON_HELIX ; Muk / Shellder + dn ICON_HELIX, ICON_MON ; Cloyster / Gastly + dn ICON_MON, ICON_MON ; Haunter / Gengar + dn ICON_SNAKE, ICON_MON ; Onix / Drowzee + dn ICON_MON, ICON_WATER ; Hypno / Krabby + dn ICON_WATER, ICON_BALL ; Kingler / Voltorb + dn ICON_BALL, ICON_GRASS ; Electrode / Exeggcute + dn ICON_GRASS, ICON_MON ; Exeggutor / Cubone + dn ICON_MON, ICON_MON ; Marowak / Hitmonlee + dn ICON_MON, ICON_MON ; Hitmonchan / Lickitung + dn ICON_MON, ICON_MON ; Koffing / Weezing + dn ICON_QUADRUPED, ICON_MON ; Rhyhorn / Rhydon + dn ICON_FAIRY, ICON_GRASS ; Chansey / Tangela + dn ICON_MON, ICON_WATER ; Kangaskhan / Horsea + dn ICON_WATER, ICON_WATER ; Seadra / Goldeen + dn ICON_WATER, ICON_HELIX ; Seaking / Staryu + dn ICON_HELIX, ICON_MON ; Starmie / Mr.Mime + dn ICON_BUG, ICON_MON ; Scyther / Jynx + dn ICON_MON, ICON_MON ; Electabuzz / Magmar + dn ICON_BUG, ICON_QUADRUPED ; Pinsir / Tauros + dn ICON_WATER, ICON_SNAKE ; Magikarp / Gyarados + dn ICON_WATER, ICON_MON ; Lapras / Ditto + dn ICON_QUADRUPED, ICON_QUADRUPED ; Eevee / Vaporeon + dn ICON_QUADRUPED, ICON_QUADRUPED ; Jolteon / Flareon + dn ICON_MON, ICON_HELIX ; Porygon / Omanyte + dn ICON_HELIX, ICON_HELIX ; Omastar / Kabuto + dn ICON_HELIX, ICON_BIRD ; Kabutops / Aerodactyl + dn ICON_MON, ICON_BIRD ; Snorlax / Articuno + dn ICON_BIRD, ICON_BIRD ; Zapdos / Moltres + dn ICON_SNAKE, ICON_SNAKE ; Dratini / Dragonair + dn ICON_SNAKE, ICON_MON ; Dragonite / Mewtwo + dn ICON_MON, 0 ; Mew / padding diff --git a/data/pokemon/names.asm b/data/pokemon/names.asm new file mode 100755 index 000000000..83a45b77f --- /dev/null +++ b/data/pokemon/names.asm @@ -0,0 +1,191 @@ +MonsterNames:: + db "RHYDON@@@@" + db "KANGASKHAN" + db "NIDORAN♂@@" + db "CLEFAIRY@@" + db "SPEAROW@@@" + db "VOLTORB@@@" + db "NIDOKING@@" + db "SLOWBRO@@@" + db "IVYSAUR@@@" + db "EXEGGUTOR@" + db "LICKITUNG@" + db "EXEGGCUTE@" + db "GRIMER@@@@" + db "GENGAR@@@@" + db "NIDORAN♀@@" + db "NIDOQUEEN@" + db "CUBONE@@@@" + db "RHYHORN@@@" + db "LAPRAS@@@@" + db "ARCANINE@@" + db "MEW@@@@@@@" + db "GYARADOS@@" + db "SHELLDER@@" + db "TENTACOOL@" + db "GASTLY@@@@" + db "SCYTHER@@@" + db "STARYU@@@@" + db "BLASTOISE@" + db "PINSIR@@@@" + db "TANGELA@@@" + db "MISSINGNO." + db "MISSINGNO." + db "GROWLITHE@" + db "ONIX@@@@@@" + db "FEAROW@@@@" + db "PIDGEY@@@@" + db "SLOWPOKE@@" + db "KADABRA@@@" + db "GRAVELER@@" + db "CHANSEY@@@" + db "MACHOKE@@@" + db "MR.MIME@@@" + db "HITMONLEE@" + db "HITMONCHAN" + db "ARBOK@@@@@" + db "PARASECT@@" + db "PSYDUCK@@@" + db "DROWZEE@@@" + db "GOLEM@@@@@" + db "MISSINGNO." + db "MAGMAR@@@@" + db "MISSINGNO." + db "ELECTABUZZ" + db "MAGNETON@@" + db "KOFFING@@@" + db "MISSINGNO." + db "MANKEY@@@@" + db "SEEL@@@@@@" + db "DIGLETT@@@" + db "TAUROS@@@@" + db "MISSINGNO." + db "MISSINGNO." + db "MISSINGNO." + db "FARFETCH'D" + db "VENONAT@@@" + db "DRAGONITE@" + db "MISSINGNO." + db "MISSINGNO." + db "MISSINGNO." + db "DODUO@@@@@" + db "POLIWAG@@@" + db "JYNX@@@@@@" + db "MOLTRES@@@" + db "ARTICUNO@@" + db "ZAPDOS@@@@" + db "DITTO@@@@@" + db "MEOWTH@@@@" + db "KRABBY@@@@" + db "MISSINGNO." + db "MISSINGNO." + db "MISSINGNO." + db "VULPIX@@@@" + db "NINETALES@" + db "PIKACHU@@@" + db "RAICHU@@@@" + db "MISSINGNO." + db "MISSINGNO." + db "DRATINI@@@" + db "DRAGONAIR@" + db "KABUTO@@@@" + db "KABUTOPS@@" + db "HORSEA@@@@" + db "SEADRA@@@@" + db "MISSINGNO." + db "MISSINGNO." + db "SANDSHREW@" + db "SANDSLASH@" + db "OMANYTE@@@" + db "OMASTAR@@@" + db "JIGGLYPUFF" + db "WIGGLYTUFF" + db "EEVEE@@@@@" + db "FLAREON@@@" + db "JOLTEON@@@" + db "VAPOREON@@" + db "MACHOP@@@@" + db "ZUBAT@@@@@" + db "EKANS@@@@@" + db "PARAS@@@@@" + db "POLIWHIRL@" + db "POLIWRATH@" + db "WEEDLE@@@@" + db "KAKUNA@@@@" + db "BEEDRILL@@" + db "MISSINGNO." + db "DODRIO@@@@" + db "PRIMEAPE@@" + db "DUGTRIO@@@" + db "VENOMOTH@@" + db "DEWGONG@@@" + db "MISSINGNO." + db "MISSINGNO." + db "CATERPIE@@" + db "METAPOD@@@" + db "BUTTERFREE" + db "MACHAMP@@@" + db "MISSINGNO." + db "GOLDUCK@@@" + db "HYPNO@@@@@" + db "GOLBAT@@@@" + db "MEWTWO@@@@" + db "SNORLAX@@@" + db "MAGIKARP@@" + db "MISSINGNO." + db "MISSINGNO." + db "MUK@@@@@@@" + db "MISSINGNO." + db "KINGLER@@@" + db "CLOYSTER@@" + db "MISSINGNO." + db "ELECTRODE@" + db "CLEFABLE@@" + db "WEEZING@@@" + db "PERSIAN@@@" + db "MAROWAK@@@" + db "MISSINGNO." + db "HAUNTER@@@" + db "ABRA@@@@@@" + db "ALAKAZAM@@" + db "PIDGEOTTO@" + db "PIDGEOT@@@" + db "STARMIE@@@" + db "BULBASAUR@" + db "VENUSAUR@@" + db "TENTACRUEL" + db "MISSINGNO." + db "GOLDEEN@@@" + db "SEAKING@@@" + db "MISSINGNO." + db "MISSINGNO." + db "MISSINGNO." + db "MISSINGNO." + db "PONYTA@@@@" + db "RAPIDASH@@" + db "RATTATA@@@" + db "RATICATE@@" + db "NIDORINO@@" + db "NIDORINA@@" + db "GEODUDE@@@" + db "PORYGON@@@" + db "AERODACTYL" + db "MISSINGNO." + db "MAGNEMITE@" + db "MISSINGNO." + db "MISSINGNO." + db "CHARMANDER" + db "SQUIRTLE@@" + db "CHARMELEON" + db "WARTORTLE@" + db "CHARIZARD@" + db "MISSINGNO." + db "MISSINGNO." + db "MISSINGNO." + db "MISSINGNO." + db "ODDISH@@@@" + db "GLOOM@@@@@" + db "VILEPLUME@" + db "BELLSPROUT" + db "WEEPINBELL" + db "VICTREEBEL" diff --git a/data/mon_palettes.asm b/data/pokemon/palettes.asm similarity index 100% rename from data/mon_palettes.asm rename to data/pokemon/palettes.asm diff --git a/data/predef_pointers.asm b/data/predef_pointers.asm new file mode 100644 index 000000000..b8911f3c3 --- /dev/null +++ b/data/predef_pointers.asm @@ -0,0 +1,111 @@ +add_predef: MACRO +\1Predef:: +IF _NARG == 1 + dba \1 +ELSE + dbw \2, \1 +ENDC +ENDM + +PredefPointers:: +; these are pointers to ASM routines. +; they appear to be used in overworld map scripts. + add_predef DrawPlayerHUDAndHPBar + add_predef CopyUncompressedPicToTilemap + add_predef AnimateSendingOutMon + add_predef ScaleSpriteByTwo + add_predef LoadMonBackPic + add_predef CopyDownscaledMonTiles + add_predef JumpMoveEffect, $03 ; wrong bank + add_predef HealParty + add_predef MoveAnimation + add_predef DivideBCDPredef + add_predef DivideBCDPredef2 + add_predef AddBCDPredef + add_predef SubBCDPredef + add_predef DivideBCDPredef3 + add_predef DivideBCDPredef4 + add_predef InitPlayerData + add_predef FlagActionPredef + add_predef HideObject + add_predef IsObjectHidden + add_predef ApplyOutOfBattlePoisonDamage + add_predef AnyPartyAlive + add_predef ShowObject + add_predef ShowObject2 + add_predef ReplaceTileBlock + add_predef InitPlayerData2 + add_predef LoadTilesetHeader + add_predef LearnMoveFromLevelUp + add_predef LearnMove + add_predef GetQuantityOfItemInBag + add_predef CheckForHiddenObjectOrBookshelfOrCardKeyDoor, $03 ; home bank + add_predef GiveItem, $03 ; home bank + add_predef ChangeBGPalColor0_4Frames + add_predef FindPathToPlayer + add_predef PredefShakeScreenVertically + add_predef CalcPositionOfPlayerRelativeToNPC + add_predef ConvertNPCMovementDirectionsToJoypadMasks + add_predef PredefShakeScreenHorizontally + add_predef UpdateHPBar + add_predef HPBarLength + add_predef Diploma_TextBoxBorder + add_predef DoubleOrHalveSelectedStats + add_predef ShowPokedexMenu + add_predef EvolutionAfterBattle + add_predef SaveSAVtoSRAM0 + add_predef InitOpponent + add_predef CableClub_Run + add_predef DrawBadges + add_predef ExternalClockTradeAnim + add_predef BattleTransition + add_predef CopyTileIDsFromList + add_predef PlayIntro + add_predef GetMoveSoundB + add_predef FlashScreen + add_predef GetTileAndCoordsInFrontOfPlayer + add_predef StatusScreen + add_predef StatusScreen2 + add_predef InternalClockTradeAnim + add_predef TrainerEngage + add_predef IndexToPokedex + add_predef DisplayPicCenteredOrUpperRight + add_predef UsedCut + add_predef ShowPokedexData + add_predef WriteMonMoves + add_predef SaveSAV + add_predef LoadSGB + add_predef MarkTownVisitedAndLoadMissableObjects + add_predef SetPartyMonTypes + add_predef CanLearnTM + add_predef TMToMove + add_predef _RunPaletteCommand + add_predef StarterDex + add_predef _AddPartyMon + add_predef UpdateHPBar2 + add_predef DrawEnemyHUDAndHPBar + add_predef LoadTownMap_Nest + add_predef PrintMonType + add_predef EmotionBubble + add_predef EmptyFunc ; return immediately + add_predef AskName + add_predef PewterGuys + add_predef SaveSAVtoSRAM2 + add_predef LoadSAV2 + add_predef LoadSAV + add_predef SaveSAVtoSRAM1 + add_predef DoInGameTradeDialogue + add_predef HallOfFamePC + add_predef DisplayDexRating + add_predef _LeaveMapAnim, $1E ; wrong bank + add_predef EnterMapAnim, $1E ; wrong bank + add_predef GetTileTwoStepsInFrontOfPlayer + add_predef CheckForCollisionWhenPushingBoulder + add_predef PrintStrengthTxt + add_predef PickUpItem + add_predef PrintMoveType + add_predef LoadMovePPs + add_predef DrawHP + add_predef DrawHP2 + add_predef DisplayElevatorFloorMenu + add_predef OaksAideScript diff --git a/data/prize_mon_levels.asm b/data/prize_mon_levels.asm deleted file mode 100755 index eb126d37b..000000000 --- a/data/prize_mon_levels.asm +++ /dev/null @@ -1,8 +0,0 @@ -PrizeMonLevelDictionary: - db ABRA,15 - db VULPIX,18 - db WIGGLYTUFF,22 - - db SCYTHER,30 - db PINSIR,30 - db PORYGON,26 diff --git a/data/prizes.asm b/data/prizes.asm deleted file mode 100755 index b113c7cbd..000000000 --- a/data/prizes.asm +++ /dev/null @@ -1,45 +0,0 @@ -PrizeDifferentMenuPtrs: - dw PrizeMenuMon1Entries - dw PrizeMenuMon1Cost - - dw PrizeMenuMon2Entries - dw PrizeMenuMon2Cost - - dw PrizeMenuTMsEntries - dw PrizeMenuTMsCost - -PrizeMenuMon1Entries: - db ABRA - db VULPIX - db WIGGLYTUFF - db "@" - -PrizeMenuMon1Cost: - coins 230 - coins 1000 - coins 2680 - db "@" - -PrizeMenuMon2Entries: - db SCYTHER - db PINSIR - db PORYGON - db "@" - -PrizeMenuMon2Cost: - coins 6500 - coins 6500 - coins 9999 - db "@" - -PrizeMenuTMsEntries: - db TM_23 - db TM_15 - db TM_50 - db "@" - -PrizeMenuTMsCost: - coins 3300 - coins 5500 - coins 7700 - db "@" diff --git a/data/sgb_border.asm b/data/sgb/sgb_border.asm similarity index 93% rename from data/sgb_border.asm rename to data/sgb/sgb_border.asm index cc5924877..9955acda1 100755 --- a/data/sgb_border.asm +++ b/data/sgb/sgb_border.asm @@ -1,5 +1,5 @@ BorderPalettes: - INCBIN "gfx/tilemaps/sgbborder.map" + INCBIN "gfx/sgb/border.tilemap" ds $100 @@ -84,4 +84,4 @@ BorderPalettes: RGB 31, 31, 25 SGBBorderGraphics: - INCBIN "gfx/pokemon_yellow.2bpp" + INCBIN "gfx/sgb/border.2bpp" diff --git a/data/sgb_packets.asm b/data/sgb/sgb_packets.asm similarity index 92% rename from data/sgb_packets.asm rename to data/sgb/sgb_packets.asm index b188ad42f..a0582416d 100755 --- a/data/sgb_packets.asm +++ b/data/sgb/sgb_packets.asm @@ -4,6 +4,7 @@ ATTR_BLK: MACRO db ($4 << 3) + ((\1 * 6) / 16 + 1) db \1 ENDM + ATTR_BLK_DATA: MACRO db \1 ; which regions are affected db \2 + (\3 << 2) + (\4 << 4) ; palette for each region @@ -13,35 +14,35 @@ ENDM PAL_SET: MACRO db ($a << 3) + 1 dw \1, \2, \3, \4 - ds 7 + ds 7, 0 ENDM PAL_TRN: MACRO - db ($b<< 3) + 1 - ds 15 + db ($b << 3) + 1 + ds 15, 0 ENDM MLT_REQ: MACRO db ($11 << 3) + 1 db \1 - 1 - ds 14 + ds 14, 0 ENDM CHR_TRN: MACRO db ($13 << 3) + 1 db \1 + (\2 << 1) - ds 14 + ds 14, 0 ENDM PCT_TRN: MACRO db ($14 << 3) + 1 - ds 15 + ds 15, 0 ENDM MASK_EN: MACRO db ($17 << 3) + 1 db \1 - ds 14 + ds 14, 0 ENDM DATA_SND: MACRO @@ -51,10 +52,11 @@ DATA_SND: MACRO db \3 ; length (1-11) ENDM + BlkPacket_WholeScreen: ATTR_BLK 1 ATTR_BLK_DATA %011, 0,0,0, 00,00, 19,17 - ds 8 + ds 8, 0 BlkPacket_Battle: ATTR_BLK 5 @@ -67,12 +69,12 @@ BlkPacket_Battle: BlkPacket_StatusScreen: ATTR_BLK 1 ATTR_BLK_DATA %111, 1,1,0, 01,00, 07,06 ; mon: pal 1, HP bar: pal 0 - ds 8 + ds 8, 0 BlkPacket_Pokedex: ATTR_BLK 1 ATTR_BLK_DATA %111, 1,1,0, 01,01, 08,08 ; mon: pal 1, everything else: pal 0 - ds 8 + ds 8, 0 BlkPacket_Slots: ATTR_BLK 5 @@ -87,14 +89,14 @@ BlkPacket_Titlescreen: ATTR_BLK_DATA %011, 0,0,0, 00,00, 19,07 ATTR_BLK_DATA %011, 2,2,0, 00,08, 19,17 ATTR_BLK_DATA %010, 0,0,0, 09,08, 10,08 - ds 12 + ds 12, 0 BlkPacket_NidorinoIntro: ATTR_BLK 3 ATTR_BLK_DATA %011, 1,1,0, 00,00, 19,03 ; upper black bar: pal 1 ATTR_BLK_DATA %011, 0,0,0, 00,04, 19,13 ; letterbox: pal 0 ATTR_BLK_DATA %011, 1,1,0, 00,14, 19,17 ; lower black bar: pal 1 - ds 12 + ds 12, 0 BlkPacket_PartyMenu: ATTR_BLK 7 @@ -105,7 +107,7 @@ BlkPacket_PartyMenu: ATTR_BLK_DATA %010, 0,0,0, 05,07, 11,07 ; HP bar 3: pal set dynamically ATTR_BLK_DATA %010, 0,0,0, 05,09, 11,09 ; HP bar 4: pal set dynamically ATTR_BLK_DATA %010, 0,0,0, 05,11, 11,11 ; HP bar 5: pal set dynamically - ds 4 + ds 4, 0 BlkPacket_TrainerCard: ATTR_BLK 10 @@ -119,20 +121,21 @@ BlkPacket_TrainerCard: ATTR_BLK_DATA %010, 3,3,0, 07,15, 08,16 ATTR_BLK_DATA %010, 2,2,0, 11,15, 12,16 ATTR_BLK_DATA %010, 1,1,0, 15,15, 16,16 - ds 2 + ds 2, 0 BlkPacket_GameFreakIntro: ATTR_BLK 3 ATTR_BLK_DATA %111, 1,1,0, 05,11, 07,13 ; falling stars (left): pal 1, GameFreak logo: pal 0 ATTR_BLK_DATA %010, 2,2,0, 08,11, 09,13 ; falling stars (middle): pal 2 ATTR_BLK_DATA %011, 3,3,0, 12,11, 14,13 ; falling stars (right): pal 3 - ds 12 + ds 12, 0 UnknownPacket_72751: ATTR_BLK 1 ATTR_BLK_DATA %111, 1,1,0, 04,00, 15,05 ds 8 + PalPacket_Empty: PAL_SET 0, 0, 0, 0 PalPacket_PartyMenu: PAL_SET PAL_MEWMON, PAL_GREENBAR, PAL_YELLOWBAR, PAL_REDBAR PalPacket_Black: PAL_SET PAL_BLACK, PAL_BLACK, PAL_BLACK, PAL_BLACK @@ -160,13 +163,15 @@ MaskEnCancelPacket: MASK_EN 0 ; This set of packets is found in several Japanese SGB-compatible titles. ; It appears to be part of NCL's SGB devkit. -DataSnd_728a1: DATA_SND $85d, $0, 11 +DataSnd_728a1: + DATA_SND $85d, $0, 11 db $8C ; cpx #$8c (2) db $D0, $F4 ; bne -$0c db $60 ; rts - ds 7 + ds 7, 0 -DataSnd_728b1: DATA_SND $852, $0, 11 +DataSnd_728b1: + DATA_SND $852, $0, 11 db $A9, $E7 ; lda #$e7 db $9F, $01, $C0, $7E ; sta $7ec001, x db $E8 ; inx @@ -175,7 +180,8 @@ DataSnd_728b1: DATA_SND $852, $0, 11 db $E8 ; inx db $E0 ; cpx #$8c (1) -DataSnd_728c1: DATA_SND $847, $0, 11 ; 728c1 (1c:68c1) +DataSnd_728c1: + DATA_SND $847, $0, 11 ; 728c1 (1c:68c1) db $C4 ; cmp #$c4 (2) db $D0, $16 ; bne +$16 db $A5 ; lda dp @@ -184,7 +190,8 @@ DataSnd_728c1: DATA_SND $847, $0, 11 ; 728c1 (1c:68c1) db $D0, $10 ; bne +$10 db $A2, $28 ; ldx #$28 -DataSnd_728d1: DATA_SND $83c, $0, 11 ; 728d1 (1c:68d1) +DataSnd_728d1: + DATA_SND $83c, $0, 11 ; 728d1 (1c:68d1) db $F0, $12 ; beq +$12 db $A5 ; lda dp db $C9, $C9 ; cmp #$c9 @@ -194,7 +201,8 @@ DataSnd_728d1: DATA_SND $83c, $0, 11 ; 728d1 (1c:68d1) db $CA ; dex db $C9 ; cmp #$c4 (1) -DataSnd_728e1: DATA_SND $831, $0, 11 +DataSnd_728e1: + DATA_SND $831, $0, 11 dbw $0C, $CAA5 ; tsb $caa5 db $C9, $7E ; cmp #$7e db $D0, $06 ; bne +$06 @@ -202,7 +210,8 @@ DataSnd_728e1: DATA_SND $831, $0, 11 db $CB ; wai db $C9, $7E ; cmp #$7e -DataSnd_728f1: DATA_SND $826, $0, 11 +DataSnd_728f1: + DATA_SND $826, $0, 11 db $39 ; bne +$39 (2) dbw $CD, $C48 ; cmp $c48 db $D0, $34 ; bne +$34 @@ -210,7 +219,8 @@ DataSnd_728f1: DATA_SND $826, $0, 11 db $C9, $C9 ; cmp #$c9 db $80, $D0 ; bra -$30 -DataSnd_72901: DATA_SND $81b, $0, 11 +DataSnd_72901: + DATA_SND $81b, $0, 11 db $EA ; nop db $EA ; nop db $EA ; nop @@ -221,7 +231,8 @@ DataSnd_72901: DATA_SND $81b, $0, 11 dbw $CD,$C4F ; cmp $c4f db $D0 ; bne +$39 (1) -DataSnd_72911: DATA_SND $810, $0, 11 +DataSnd_72911: + DATA_SND $810, $0, 11 dbw $4C, $820 ; jmp $820 db $EA ; nop db $EA ; nop diff --git a/data/sgb/sgb_palettes.asm b/data/sgb/sgb_palettes.asm new file mode 100755 index 000000000..5ddca0020 --- /dev/null +++ b/data/sgb/sgb_palettes.asm @@ -0,0 +1,84 @@ +SuperPalettes: +; entries correspond to PAL_* constants + RGB 31,31,30, 23,26,19, 23,27,31, 06,06,06 ; PAL_ROUTE + RGB 31,31,30, 28,27,31, 23,27,31, 06,06,06 ; PAL_PALLET + RGB 31,31,30, 26,31,21, 23,27,31, 06,06,06 ; PAL_VIRIDIAN + RGB 31,31,30, 23,23,22, 23,27,31, 06,06,06 ; PAL_PEWTER + RGB 31,31,30, 22,23,31, 23,27,31, 06,06,06 ; PAL_CERULEAN + RGB 31,31,30, 27,23,29, 23,27,31, 06,06,06 ; PAL_LAVENDER + RGB 31,31,30, 31,25,16, 23,27,31, 06,06,06 ; PAL_VERMILION + RGB 31,31,30, 22,31,22, 23,27,31, 06,06,06 ; PAL_CELADON + RGB 31,31,30, 31,26,26, 23,27,31, 06,06,06 ; PAL_FUCHSIA + RGB 31,31,30, 31,15,14, 23,27,31, 06,06,06 ; PAL_CINNABAR + RGB 31,31,30, 17,17,25, 23,27,31, 06,06,06 ; PAL_INDIGO + RGB 31,31,30, 31,31,19, 23,27,31, 06,06,06 ; PAL_SAFFRON + RGB 31,31,30, 20,26,31, 17,23,10, 03,02,02 ; PAL_TOWNMAP + RGB 31,31,30, 30,30,17, 21,00,04, 21,00,04 ; PAL_LOGO1 + RGB 31,31,30, 30,30,17, 18,18,24, 07,07,16 ; PAL_LOGO2 + RGB 31,31,30, 24,20,30, 11,20,30, 03,02,02 ; PAL_0F + RGB 31,31,30, 31,30,22, 27,16,16, 06,06,06 ; PAL_MEWMON + RGB 31,31,30, 21,22,31, 09,10,20, 06,06,06 ; PAL_BLUEMON + RGB 31,31,30, 31,24,11, 26,09,06, 06,06,06 ; PAL_REDMON + RGB 31,31,30, 26,28,31, 07,24,28, 06,06,06 ; PAL_CYANMON + RGB 31,31,30, 27,22,30, 22,15,23, 06,06,06 ; PAL_PURPLEMON + RGB 31,31,30, 26,23,18, 18,14,10, 06,06,06 ; PAL_BROWNMON + RGB 31,31,30, 24,28,18, 13,21,15, 06,06,06 ; PAL_GREENMON + RGB 31,31,30, 31,24,26, 31,18,21, 06,06,06 ; PAL_PINKMON + RGB 31,31,30, 31,31,19, 28,23,09, 06,06,06 ; PAL_YELLOWMON + RGB 31,31,30, 25,25,18, 16,16,14, 06,06,06 ; PAL_GREYMON + RGB 31,31,30, 27,22,30, 26,09,06, 06,06,06 ; PAL_SLOTS1 + RGB 31,31,30, 31,23,26, 29,29,08, 06,06,06 ; PAL_SLOTS2 + RGB 31,31,30, 23,31,20, 29,29,08, 06,06,06 ; PAL_SLOTS3 + RGB 31,31,30, 23,29,31, 29,29,08, 06,06,06 ; PAL_SLOTS4 + RGB 31,31,30, 06,06,06, 06,06,06, 06,06,06 ; PAL_BLACK + RGB 31,31,30, 31,31,19, 00,21,00, 06,06,06 ; PAL_GREENBAR + RGB 31,31,30, 31,31,19, 28,23,09, 06,06,06 ; PAL_YELLOWBAR + RGB 31,31,30, 31,31,19, 26,09,06, 06,06,06 ; PAL_REDBAR + RGB 31,31,30, 20,15,11, 22,21,20, 06,06,06 ; PAL_BADGE + RGB 31,31,30, 20,15,11, 22,21,20, 06,06,06 ; PAL_CAVE + RGB 31,31,30, 28,24,14, 20,20,11, 06,06,06 ; PAL_GAMEFREAK + RGB 31,31,30, 31,30,22, 23,27,31, 06,06,06 ; PAL_25 + RGB 31,31,30, 28,23,09, 18,14,10, 06,06,06 ; PAL_26 + RGB 31,31,30, 16,16,16, 31,25,09, 06,06,06 ; PAL_27 + +GBCBasePalettes: + RGB 31,31,31, 16,31,04, 11,23,31, 03,03,03 ; PAL_ROUTE + RGB 31,31,31, 23,17,31, 11,23,31, 03,03,03 ; PAL_PALLET + RGB 31,31,31, 19,31,00, 11,23,31, 03,03,03 ; PAL_VIRIDIAN + RGB 31,31,31, 18,18,15, 11,23,31, 03,03,03 ; PAL_PEWTER + RGB 31,31,31, 05,08,31, 11,23,31, 03,03,03 ; PAL_CERULEAN + RGB 31,31,31, 25,04,31, 11,23,31, 03,03,03 ; PAL_LAVENDER + RGB 31,31,31, 31,19,00, 11,23,31, 03,03,03 ; PAL_VERMILION + RGB 31,31,31, 05,31,05, 11,23,31, 03,03,03 ; PAL_CELADON + RGB 31,31,31, 31,15,15, 11,23,31, 03,03,03 ; PAL_FUCHSIA + RGB 31,31,31, 31,08,08, 11,23,31, 03,03,03 ; PAL_CINNABAR + RGB 31,31,31, 11,08,31, 11,23,31, 03,03,03 ; PAL_INDIGO + RGB 31,31,31, 31,31,00, 11,23,31, 03,03,03 ; PAL_SAFFRON + RGB 31,31,31, 00,21,31, 10,28,00, 01,01,01 ; PAL_TOWNMAP + RGB 31,31,31, 31,31,00, 31,00,00, 31,00,00 ; PAL_LOGO1 + RGB 31,31,31, 31,31,00, 07,07,25, 00,00,17 ; PAL_LOGO2 + RGB 31,31,31, 13,01,31, 00,09,31, 01,01,01 ; PAL_0F + RGB 31,31,31, 31,31,00, 31,01,01, 03,03,03 ; PAL_MEWMON + RGB 31,31,31, 16,18,31, 00,01,25, 03,03,03 ; PAL_BLUEMON + RGB 31,31,31, 31,17,00, 31,00,00, 03,03,03 ; PAL_REDMON + RGB 31,31,31, 16,26,31, 00,17,31, 03,03,03 ; PAL_CYANMON + RGB 31,31,31, 25,15,31, 19,00,22, 03,03,03 ; PAL_PURPLEMON + RGB 31,31,31, 29,18,10, 17,09,05, 03,03,03 ; PAL_BROWNMON + RGB 31,31,31, 17,31,11, 01,22,06, 03,03,03 ; PAL_GREENMON + RGB 31,31,31, 31,15,18, 31,00,06, 03,03,03 ; PAL_PINKMON + RGB 31,31,31, 31,31,00, 28,14,00, 03,03,03 ; PAL_YELLOWMON + RGB 31,31,31, 20,23,10, 11,11,05, 03,03,03 ; PAL_GREYMON + RGB 31,31,31, 25,01,31, 31,00,00, 03,03,03 ; PAL_SLOTS1 + RGB 31,31,31, 31,04,19, 31,31,00, 03,03,03 ; PAL_SLOTS2 + RGB 31,31,31, 08,31,00, 31,31,00, 03,03,03 ; PAL_SLOTS3 + RGB 31,31,31, 00,31,31, 31,31,00, 03,03,03 ; PAL_SLOTS4 + RGB 31,31,31, 03,03,03, 03,03,03, 03,03,03 ; PAL_BLACK + RGB 31,31,31, 31,31,00, 00,31,00, 03,03,03 ; PAL_GREENBAR + RGB 31,31,31, 31,31,00, 31,18,00, 03,03,03 ; PAL_YELLOWBAR + RGB 31,31,31, 31,31,00, 31,00,00, 03,03,03 ; PAL_REDBAR + RGB 31,31,31, 23,08,00, 17,14,11, 03,03,03 ; PAL_BADGE + RGB 31,31,31, 23,08,00, 17,14,11, 03,03,03 ; PAL_CAVE + RGB 31,31,31, 31,19,00, 19,19,00, 03,03,03 ; PAL_GAMEFREAK + RGB 31,31,31, 31,31,00, 11,23,31, 03,03,03 ; PAL_25 + RGB 31,31,31, 31,18,00, 19,07,01, 03,03,03 ; PAL_26 + RGB 31,31,31, 09,09,09, 31,21,00, 03,03,03 ; PAL_27 diff --git a/data/special_warps.asm b/data/special_warps.asm deleted file mode 100755 index 6b536b674..000000000 --- a/data/special_warps.asm +++ /dev/null @@ -1,119 +0,0 @@ -; Format: (size 2 bytes) -; 00: target map ID -; 01: which dungeon warp in the source map was used -DungeonWarpList: - db SEAFOAM_ISLANDS_B1F,$01 - db SEAFOAM_ISLANDS_B1F,$02 - db SEAFOAM_ISLANDS_B2F,$01 - db SEAFOAM_ISLANDS_B2F,$02 - db SEAFOAM_ISLANDS_B3F,$01 - db SEAFOAM_ISLANDS_B3F,$02 - db SEAFOAM_ISLANDS_B4F,$01 - db SEAFOAM_ISLANDS_B4F,$02 - db VICTORY_ROAD_2F,$02 - db POKEMON_MANSION_1F,$01 - db POKEMON_MANSION_1F,$02 - db POKEMON_MANSION_2F,$03 - db $FF - -DungeonWarpData: - FLYWARP_DATA SEAFOAM_ISLANDS_B1F_WIDTH,7,18 - FLYWARP_DATA SEAFOAM_ISLANDS_B1F_WIDTH,7,23 - FLYWARP_DATA SEAFOAM_ISLANDS_B2F_WIDTH,7,19 - FLYWARP_DATA SEAFOAM_ISLANDS_B2F_WIDTH,7,22 - FLYWARP_DATA SEAFOAM_ISLANDS_B3F_WIDTH,7,18 - FLYWARP_DATA SEAFOAM_ISLANDS_B3F_WIDTH,7,19 - FLYWARP_DATA SEAFOAM_ISLANDS_B4F_WIDTH,14,4 - FLYWARP_DATA SEAFOAM_ISLANDS_B4F_WIDTH,14,5 - FLYWARP_DATA VICTORY_ROAD_2F_WIDTH,16,22 - FLYWARP_DATA POKEMON_MANSION_1F_WIDTH,14,16 - FLYWARP_DATA POKEMON_MANSION_1F_WIDTH,14,16 - FLYWARP_DATA POKEMON_MANSION_2F_WIDTH,14,18 - -;Format: -; db Map_id -; FLYWARP_DATA [Map Width][Y-pos][X-pos] -; db Tileset_id -FirstMapSpec: - db REDS_HOUSE_2F - FLYWARP_DATA REDS_HOUSE_2F_WIDTH,6,3 - db REDS_HOUSE_2 - -TradeCenterSpec1: - db TRADE_CENTER - FLYWARP_DATA TRADE_CENTER_WIDTH,4,3 - db CLUB - -TradeCenterSpec2: - db TRADE_CENTER - FLYWARP_DATA TRADE_CENTER_WIDTH,4,6 - db CLUB - -ColosseumSpec1: - db COLOSSEUM - FLYWARP_DATA COLOSSEUM_WIDTH,4,3 - db CLUB - -ColosseumSpec2: - db COLOSSEUM - FLYWARP_DATA COLOSSEUM_WIDTH,4,6 - db CLUB - -FlyWarpDataPtr: - db PALLET_TOWN, 0 - dw PalletTownFlyWarp - db VIRIDIAN_CITY, 0 - dw ViridianCityFlyWarp - db PEWTER_CITY, 0 - dw PewterCityFlyWarp - db CERULEAN_CITY, 0 - dw CeruleanCityFlyWarp - db LAVENDER_TOWN, 0 - dw LavenderTownFlyWarp - db VERMILION_CITY, 0 - dw VermilionCityFlyWarp - db CELADON_CITY, 0 - dw CeladonCityFlyWarp - db FUCHSIA_CITY, 0 - dw FuchsiaCityFlyWarp - db CINNABAR_ISLAND, 0 - dw CinnabarIslandFlyWarp - db INDIGO_PLATEAU, 0 - dw IndigoPlateauFlyWarp - db SAFFRON_CITY, 0 - dw SaffronCityFlyWarp - db ROUTE_4, 0 - dw Route4FlyWarp - db ROUTE_10, 0 - dw Route10FlyWarp - -; Original Format: -; [Event Displacement][Y-block][X-block][Y-sub_block][X-sub_block] -; Macro Format: -; FLYWARP_DATA [Map Width][Y-pos][X-pos] -PalletTownFlyWarp: - FLYWARP_DATA PALLET_TOWN_WIDTH, 6, 5 -ViridianCityFlyWarp: - FLYWARP_DATA VIRIDIAN_CITY_WIDTH, 26, 23 -PewterCityFlyWarp: - FLYWARP_DATA PEWTER_CITY_WIDTH, 26, 13 -CeruleanCityFlyWarp: - FLYWARP_DATA CERULEAN_CITY_WIDTH, 18, 19 -LavenderTownFlyWarp: - FLYWARP_DATA LAVENDER_TOWN_WIDTH, 6, 3 -VermilionCityFlyWarp: - FLYWARP_DATA VERMILION_CITY_WIDTH, 4, 11 -CeladonCityFlyWarp: - FLYWARP_DATA CELADON_CITY_WIDTH, 10, 41 -FuchsiaCityFlyWarp: - FLYWARP_DATA FUCHSIA_CITY_WIDTH, 28, 19 -CinnabarIslandFlyWarp: - FLYWARP_DATA CINNABAR_ISLAND_WIDTH, 12, 11 -IndigoPlateauFlyWarp: - FLYWARP_DATA INDIGO_PLATEAU_WIDTH, 6, 9 -SaffronCityFlyWarp: - FLYWARP_DATA SAFFRON_CITY_WIDTH, 30, 9 -Route4FlyWarp: - FLYWARP_DATA ROUTE_4_WIDTH, 6, 11 -Route10FlyWarp: - FLYWARP_DATA ROUTE_10_WIDTH, 20, 11 diff --git a/data/sprite_sets.asm b/data/sprite_sets.asm deleted file mode 100755 index d74c9d2f9..000000000 --- a/data/sprite_sets.asm +++ /dev/null @@ -1,601 +0,0 @@ -MapSpriteSets: - db $01 ; PALLET_TOWN - db $01 ; VIRIDIAN_CITY - db $02 ; PEWTER_CITY - db $02 ; CERULEAN_CITY - db $03 ; LAVENDER_TOWN - db $04 ; VERMILION_CITY - db $05 ; CELADON_CITY - db $0a ; FUCHSIA_CITY - db $01 ; CINNABAR_ISLAND - db $06 ; INDIGO_PLATEAU - db $07 ; SAFFRON_CITY - db $01 ; unused map ID - db $01 ; ROUTE_1 - db $f1 ; ROUTE_2 - db $02 ; ROUTE_3 - db $02 ; ROUTE_4 - db $f9 ; ROUTE_5 - db $fa ; ROUTE_6 - db $fb ; ROUTE_7 - db $fc ; ROUTE_8 - db $02 ; ROUTE_9 - db $f2 ; ROUTE_10 - db $f3 ; ROUTE_11 - db $f4 ; ROUTE_12 - db $08 ; ROUTE_13 - db $08 ; ROUTE_14 - db $f5 ; ROUTE_15 - db $f6 ; ROUTE_16 - db $09 ; ROUTE_17 - db $f7 ; ROUTE_18 - db $0a ; ROUTE_19 - db $f8 ; ROUTE_20 - db $01 ; ROUTE_21 - db $01 ; ROUTE_22 - db $06 ; ROUTE_23 - db $02 ; ROUTE_24 - db $02 ; ROUTE_25 - -; Format: -; 00: determines whether the map is split East/West or North/South -; $01 = East/West divide -; $02 = North/South divide -; 01: coordinate of dividing line -; 02: sprite set ID if in the West or North side -; 03: sprite set ID if in the East or South side -SplitMapSpriteSets: - db $02,$25,$02,$01 ; $f1 - db $02,$32,$02,$03 ; $f2 - db $01,$39,$04,$08 ; $f3 - db $02,$15,$03,$08 ; $f4 - db $01,$08,$0A,$08 ; $f5 - db $01,$18,$09,$05 ; $f6 - db $01,$22,$09,$0A ; $f7 - db $01,$35,$01,$0A ; $f8 - db $02,$21,$02,$07 ; $f9 - db $02,$02,$07,$04 ; $fa - db $01,$11,$05,$07 ; $fb - db $01,$03,$07,$03 ; $fc - -SpriteSets: -; sprite set $01 - db SPRITE_PIKACHU - db SPRITE_BLUE - db SPRITE_BUG_CATCHER - db SPRITE_GIRL - db SPRITE_FISHER2 - db SPRITE_BLACK_HAIR_BOY_1 - db SPRITE_GAMBLER - db SPRITE_OAK - db SPRITE_SWIMMER - db SPRITE_BALL - db SPRITE_LYING_OLD_MAN - -; sprite set $02 - db SPRITE_PIKACHU - db SPRITE_BUG_CATCHER - db SPRITE_ROCKET - db SPRITE_BLACK_HAIR_BOY_2 - db SPRITE_HIKER - db SPRITE_BLUE - db SPRITE_OFFICER_JENNY - db SPRITE_LASS - db SPRITE_BLACK_HAIR_BOY_1 - db SPRITE_BALL - db SPRITE_LYING_OLD_MAN_UNUSED_2 - -; sprite set $03 - db SPRITE_PIKACHU - db SPRITE_LITTLE_GIRL - db SPRITE_GIRL - db SPRITE_BLACK_HAIR_BOY_2 - db SPRITE_HIKER - db SPRITE_GAMBLER - db SPRITE_SLOWBRO - db SPRITE_LASS - db SPRITE_BLACK_HAIR_BOY_1 - db SPRITE_BALL - db SPRITE_LYING_OLD_MAN_UNUSED_2 - -; sprite set $04 - db SPRITE_PIKACHU - db SPRITE_OFFICER_JENNY - db SPRITE_BLACK_HAIR_BOY_2 - db SPRITE_BUG_CATCHER - db SPRITE_GAMBLER - db SPRITE_SLOWBRO - db SPRITE_SAILOR - db SPRITE_LASS - db SPRITE_BLACK_HAIR_BOY_1 - db SPRITE_BALL - db SPRITE_LYING_OLD_MAN_UNUSED_2 - -; sprite set $05 - db SPRITE_PIKACHU - db SPRITE_LITTLE_GIRL - db SPRITE_YOUNG_BOY - db SPRITE_GIRL - db SPRITE_FISHER2 - db SPRITE_FAT_BALD_GUY - db SPRITE_OLD_PERSON - db SPRITE_SLOWBRO - db SPRITE_ROCKET - db SPRITE_BALL - db SPRITE_SNORLAX - -; sprite set $06 - db SPRITE_PIKACHU - db SPRITE_GYM_HELPER - db SPRITE_SLOWBRO - db SPRITE_BLUE - db SPRITE_LASS - db SPRITE_BLACK_HAIR_BOY_1 - db SPRITE_SWIMMER - db SPRITE_GUARD - db SPRITE_GAMBLER - db SPRITE_BALL - db SPRITE_LYING_OLD_MAN_UNUSED_2 - -; sprite set $07 - db SPRITE_PIKACHU - db SPRITE_ROCKET - db SPRITE_OAK_AIDE - db SPRITE_LAPRAS_GIVER - db SPRITE_ERIKA - db SPRITE_GENTLEMAN - db SPRITE_BIRD - db SPRITE_ROCKER - db SPRITE_BLACK_HAIR_BOY_1 - db SPRITE_BALL - db SPRITE_LYING_OLD_MAN_UNUSED_2 - -; sprite set $08 - db SPRITE_PIKACHU - db SPRITE_BIKER - db SPRITE_BLACK_HAIR_BOY_2 - db SPRITE_FAT_BALD_GUY - db SPRITE_LASS - db SPRITE_BLACK_HAIR_BOY_1 - db SPRITE_FOULARD_WOMAN - db SPRITE_FISHER2 - db SPRITE_ROCKER - db SPRITE_BALL - db SPRITE_SNORLAX - -; sprite set $09 - db SPRITE_PIKACHU - db SPRITE_BIKER - db SPRITE_BLACK_HAIR_BOY_1 - db SPRITE_LAPRAS_GIVER - db SPRITE_FISHER2 - db SPRITE_ROCKER - db SPRITE_HIKER - db SPRITE_GAMBLER - db SPRITE_FAT_BALD_GUY - db SPRITE_BALL - db SPRITE_SNORLAX - -; sprite set $0a - db SPRITE_PIKACHU - db SPRITE_BLACK_HAIR_BOY_1 - db SPRITE_CHANSEY - db SPRITE_FISHER2 - db SPRITE_GAMBLER - db SPRITE_SLOWBRO - db SPRITE_SEEL - db SPRITE_SWIMMER - db SPRITE_BUG_CATCHER - db SPRITE_BALL - db SPRITE_OMANYTE - -SpriteSheetPointerTable: - ; SPRITE_RED - dw RedSprite - db $c0 ; byte count - db BANK(RedSprite) - - ; SPRITE_BLUE - dw BlueSprite - db $c0 ; byte count - db BANK(BlueSprite) - - ; SPRITE_OAK - dw OakSprite - db $c0 ; byte count - db BANK(OakSprite) - - ; SPRITE_BUG_CATCHER - dw BugCatcherSprite - db $c0 ; byte count - db BANK(BugCatcherSprite) - - ; SPRITE_SLOWBRO - dw SlowbroSprite - db $c0 ; byte count - db BANK(SlowbroSprite) - - ; SPRITE_LASS - dw LassSprite - db $c0 ; byte count - db BANK(LassSprite) - - ; SPRITE_BLACK_HAIR_BOY_1 - dw BlackHairBoy1Sprite - db $c0 ; byte count - db BANK(BlackHairBoy1Sprite) - - ; SPRITE_LITTLE_GIRL - dw LittleGirlSprite - db $c0 ; byte count - db BANK(LittleGirlSprite) - - ; SPRITE_BIRD - dw BirdSprite - db $c0 ; byte count - db BANK(BirdSprite) - - ; SPRITE_FAT_BALD_GUY - dw FatBaldGuySprite - db $c0 ; byte count - db BANK(FatBaldGuySprite) - - ; SPRITE_GAMBLER - dw GamblerSprite - db $c0 ; byte count - db BANK(GamblerSprite) - - ; SPRITE_BLACK_HAIR_BOY_2 - dw BlackHairBoy2Sprite - db $c0 ; byte count - db BANK(BlackHairBoy2Sprite) - - ; SPRITE_GIRL - dw GirlSprite - db $c0 ; byte count - db BANK(GirlSprite) - - ; SPRITE_HIKER - dw HikerSprite - db $c0 ; byte count - db BANK(HikerSprite) - - ; SPRITE_FOULARD_WOMAN - dw FoulardWomanSprite - db $c0 ; byte count - db BANK(FoulardWomanSprite) - - ; SPRITE_GENTLEMAN - dw GentlemanSprite - db $c0 ; byte count - db BANK(GentlemanSprite) - - ; SPRITE_DAISY - dw DaisySprite - db $c0 ; byte count - db BANK(DaisySprite) - - ; SPRITE_BIKER - dw BikerSprite - db $c0 ; byte count - db BANK(BikerSprite) - - ; SPRITE_SAILOR - dw SailorSprite - db $c0 ; byte count - db BANK(SailorSprite) - - ; SPRITE_COOK - dw CookSprite - db $c0 ; byte count - db BANK(CookSprite) - - ; SPRITE_BIKE_SHOP_GUY - dw BikeShopGuySprite - db $c0 ; byte count - db BANK(BikeShopGuySprite) - - ; SPRITE_MR_FUJI - dw MrFujiSprite - db $c0 ; byte count - db BANK(MrFujiSprite) - - ; SPRITE_GIOVANNI - dw GiovanniSprite - db $c0 ; byte count - db BANK(GiovanniSprite) - - ; SPRITE_ROCKET - dw RocketSprite - db $c0 ; byte count - db BANK(RocketSprite) - - ; SPRITE_MEDIUM - dw MediumSprite - db $c0 ; byte count - db BANK(MediumSprite) - - ; SPRITE_WAITER - dw WaiterSprite - db $c0 ; byte count - db BANK(WaiterSprite) - - ; SPRITE_ERIKA - dw ErikaSprite - db $c0 ; byte count - db BANK(ErikaSprite) - - ; SPRITE_MOM_GEISHA - dw MomGeishaSprite - db $c0 ; byte count - db BANK(MomGeishaSprite) - - ; SPRITE_BRUNETTE_GIRL - dw BrunetteGirlSprite - db $c0 ; byte count - db BANK(BrunetteGirlSprite) - - ; SPRITE_LANCE - dw LanceSprite - db $c0 ; byte count - db BANK(LanceSprite) - - ; SPRITE_UNUSED_1 - dw RedSprite - db $c0 ; byte count - db BANK(RedSprite) - - ; SPRITE_OAK_AIDE - dw OakAideSprite - db $c0 ; byte count - db BANK(OakAideSprite) - - ; SPRITE_ROCKER - dw RockerSprite - db $c0 ; byte count - db BANK(RockerSprite) - - ; SPRITE_SWIMMER - dw SwimmerSprite - db $c0 ; byte count - db BANK(SwimmerSprite) - - ; SPRITE_WHITE_PLAYER - dw WhitePlayerSprite - db $c0 ; byte count - db BANK(WhitePlayerSprite) - - ; SPRITE_GYM_HELPER - dw GymHelperSprite - db $c0 ; byte count - db BANK(GymHelperSprite) - - ; SPRITE_OLD_PERSON - dw OldPersonSprite - db $c0 ; byte count - db BANK(OldPersonSprite) - - ; SPRITE_MART_GUY - dw MartGuySprite - db $c0 ; byte count - db BANK(MartGuySprite) - - ; SPRITE_FISHER - dw FisherSprite - db $c0 ; byte count - db BANK(FisherSprite) - - ; SPRITE_OLD_MEDIUM_WOMAN - dw OldMediumWomanSprite - db $c0 ; byte count - db BANK(OldMediumWomanSprite) - - ; SPRITE_NURSE - dw NurseSprite - db $c0 ; byte count - db BANK(NurseSprite) - - ; SPRITE_CABLE_CLUB_WOMAN - dw CableClubWomanSprite - db $c0 ; byte count - db BANK(CableClubWomanSprite) - - ; SPRITE_MR_MASTERBALL - dw MrMasterballSprite - db $c0 ; byte count - db BANK(MrMasterballSprite) - - ; SPRITE_LAPRAS_GIVER - dw LaprasGiverSprite - db $c0 ; byte count - db BANK(LaprasGiverSprite) - - ; SPRITE_WARDEN - dw WardenSprite - db $c0 ; byte count - db BANK(WardenSprite) - - ; SPRITE_SS_CAPTAIN - dw SsCaptainSprite - db $c0 ; byte count - db BANK(SsCaptainSprite) - - ; SPRITE_FISHER2 - dw Fisher2Sprite - db $c0 ; byte count - db BANK(Fisher2Sprite) - - ; SPRITE_BLACKBELT - dw BlackbeltSprite - db $c0 ; byte count - db BANK(BlackbeltSprite) - - ; SPRITE_GUARD - dw GuardSprite - db $c0 ; byte count - db BANK(GuardSprite) - - ; SPRITE_UNUSED_2 - dw RedSprite - db $c0 ; byte count - db BANK(RedSprite) - - ; SPRITE_MOM - dw MomSprite - db $c0 ; byte count - db BANK(MomSprite) - - ; SPRITE_BALDING_GUY - dw BaldingGuySprite - db $c0 ; byte count - db BANK(BaldingGuySprite) - - ; SPRITE_YOUNG_BOY - dw YoungBoySprite - db $c0 ; byte count - db BANK(YoungBoySprite) - - ; SPRITE_UNUSED_3 - dw RedSprite - db $c0 ; byte count - db BANK(RedSprite) - - ; SPRITE_GAMEBOY_KID - dw GameboyKidSprite - db $c0 ; byte count - db BANK(GameboyKidSprite) - - ; SPRITE_CLEFAIRY - dw ClefairySprite - db $c0 ; byte count - db BANK(ClefairySprite) - - ; SPRITE_AGATHA - dw AgathaSprite - db $c0 ; byte count - db BANK(AgathaSprite) - - ; SPRITE_BRUNO - dw BrunoSprite - db $c0 ; byte count - db BANK(BrunoSprite) - - ; SPRITE_LORELEI - dw LoreleiSprite - db $c0 ; byte count - db BANK(LoreleiSprite) - - ; SPRITE_SEEL - dw SeelSprite - db $c0 ; byte count - db BANK(SeelSprite) - - ; SPRITE_PIKACHU - dw PikachuSprite - db $c0 - db BANK(PikachuSprite) - - ; SPRITE_OFFICER_JENNY - dw OfficerJennySprite - db $c0 - db BANK(OfficerJennySprite) - - ; SPRITE_SANDSHREW - dw SandshrewSprite - db $c0 - db BANK(SandshrewSprite) - - ; SPRITE_ODDISH - dw OddishSprite - db $c0 - db BANK(OddishSprite) - - ; SPRITE_BULBASAUR - dw BulbasaurSprite - db $c0 - db BANK(BulbasaurSprite) - - ; SPRITE_JIGGLYPUFF - dw JigglypuffSprite - db $c0 - db BANK(JigglypuffSprite) - - ; SPRITE_CLEFAIRY_2 - dw Clefairy2Sprite - db $c0 - db BANK(Clefairy2Sprite) - - ; SPRITE_CHANSEY - dw ChanseySprite - db $c0 - db BANK(ChanseySprite) - - ; SPRITE_JESSIE - dw JessieSprite - db $c0 - db BANK(JessieSprite) - - ; SPRITE_JAMES - dw JamesSprite - db $c0 - db BANK(JamesSprite) - - ; SPRITE_BALL - dw BallSprite - db $40 ; byte count - db BANK(BallSprite) - - ; SPRITE_OMANYTE - dw OmanyteSprite - db $40 ; byte count - db BANK(OmanyteSprite) - - ; SPRITE_BOULDER - dw BoulderSprite - db $40 ; byte count - db BANK(BoulderSprite) - - ; SPRITE_PAPER_SHEET - dw PaperSheetSprite - db $40 ; byte count - db BANK(PaperSheetSprite) - - ; SPRITE_BOOK_MAP_DEX - dw BookMapDexSprite - db $40 ; byte count - db BANK(BookMapDexSprite) - - ; SPRITE_CLIPBOARD - dw ClipboardSprite - db $40 ; byte count - db BANK(ClipboardSprite) - - ; SPRITE_SNORLAX - dw SnorlaxSprite - db $40 ; byte count - db BANK(SnorlaxSprite) - - ; SPRITE_OLD_AMBER_COPY - dw OldAmberSprite - db $40 ; byte count - db BANK(OldAmberSprite) - - ; SPRITE_OLD_AMBER - dw OldAmberSprite - db $40 ; byte count - db BANK(OldAmberSprite) - - ; SPRITE_LYING_OLD_MAN_UNUSED_1 - dw LyingOldManSprite - db $40 ; byte count - db BANK(LyingOldManSprite) - - ; SPRITE_LYING_OLD_MAN_UNUSED_2 - dw LyingOldManSprite - db $40 ; byte count - db BANK(LyingOldManSprite) - - ; SPRITE_LYING_OLD_MAN - dw LyingOldManSprite - db $40 ; byte count - db BANK(LyingOldManSprite) diff --git a/data/sprites/facings.asm b/data/sprites/facings.asm new file mode 100644 index 000000000..e87a96274 --- /dev/null +++ b/data/sprites/facings.asm @@ -0,0 +1,131 @@ +SpriteFacingAndAnimationTable: + dw .StandingDown ; facing down, walk animation frame 0 + dw .WalkingDown ; facing down, walk animation frame 1 + dw .StandingDown ; facing down, walk animation frame 2 + dw .WalkingDown2 ; facing down, walk animation frame 3 + dw .StandingUp ; facing up, walk animation frame 0 + dw .WalkingUp ; facing up, walk animation frame 1 + dw .StandingUp ; facing up, walk animation frame 2 + dw .WalkingUp2 ; facing up, walk animation frame 3 + dw .StandingLeft ; facing left, walk animation frame 0 + dw .WalkingLeft ; facing left, walk animation frame 1 + dw .StandingLeft ; facing left, walk animation frame 2 + dw .WalkingLeft ; facing left, walk animation frame 3 + dw .StandingRight ; facing right, walk animation frame 0 + dw .WalkingRight ; facing right, walk animation frame 1 + dw .StandingRight ; facing right, walk animation frame 2 + dw .WalkingRight ; facing right, walk animation frame 3 +; The rest of this table is used for sprites $a and $b. +; All orientation and animation parameters lead to the same result. +; Used for immobile sprites like items on the ground. + dw .StandingDown + dw .StandingDown + dw .StandingDown + dw .StandingDown + dw .StandingDown + dw .StandingDown + dw .StandingDown + dw .StandingDown + dw .StandingDown + dw .StandingDown + dw .StandingDown + dw .StandingDown + dw .StandingDown + dw .StandingDown + dw .StandingDown + dw .StandingDown +; special case + dw SpriteSpecialCase ; pikachu maybe? + +.StandingDown: + db $04 +; Sprite OAM Parameters + db $00, $00, $00, $00 ; top left + db $00, $08, $01, $00 ; top right + db $08, $00, $02, OAMFLAG_CANBEMASKED ; bottom left + db $08, $08, $03, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right + +.WalkingDown: + db $04 +; Sprite OAM Parameters + db $00, $00, $80, $00 ; top left + db $00, $08, $81, $00 ; top right + db $08, $00, $82, OAMFLAG_CANBEMASKED ; bottom left + db $08, $08, $83, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right + +.WalkingDown2: + db $04 +; Sprite OAM Parameters + db $00, $08, $80, OAM_HFLIP ; top left + db $00, $00, $81, OAM_HFLIP ; top right + db $08, $08, $82, OAM_HFLIP | OAMFLAG_CANBEMASKED ; bottom left + db $08, $00, $83, OAM_HFLIP | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right + +.StandingUp: + db $04 +; Sprite OAM Parameters + db $00, $00, $04, $00 ; top left + db $00, $08, $05, $00 ; top right + db $08, $00, $06, OAMFLAG_CANBEMASKED ; bottom left + db $08, $08, $07, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right + +.WalkingUp: + db $04 +; Sprite OAM Parameters + db $00, $00, $84, $00 ; top left + db $00, $08, $85, $00 ; top right + db $08, $00, $86, OAMFLAG_CANBEMASKED ; bottom left + db $08, $08, $87, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right + +.WalkingUp2: + db $04 +; Sprite OAM Parameters + db $00, $08, $84, OAM_HFLIP ; top left + db $00, $00, $85, OAM_HFLIP ; top right + db $08, $08, $86, OAM_HFLIP | OAMFLAG_CANBEMASKED ; bottom left + db $08, $00, $87, OAM_HFLIP | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right + +.StandingLeft: + db $04 +; Sprite OAM Parameters + db $00, $00, $08, $00 ; top left + db $00, $08, $09, $00 ; top right + db $08, $00, $0a, OAMFLAG_CANBEMASKED ; bottom left + db $08, $08, $0b, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right + +.WalkingLeft: + db $04 +; Sprite OAM Parameters + db $00, $00, $88, $00 ; top left + db $00, $08, $89, $00 ; top right + db $08, $00, $8a, OAMFLAG_CANBEMASKED ; bottom left + db $08, $08, $8b, OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right + +.StandingRight: + db $04 +; Sprite OAM Parameters + db $00, $08, $08, OAM_HFLIP ; top left + db $00, $00, $09, OAM_HFLIP ; top right + db $08, $08, $0a, OAM_HFLIP | OAMFLAG_CANBEMASKED ; bottom left + db $08, $00, $0b, OAM_HFLIP | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right + +.WalkingRight: + db $04 +; Sprite OAM Parameters + db $00, $08, $88, OAM_HFLIP ; top left + db $00, $00, $89, OAM_HFLIP ; top right + db $08, $08, $8a, OAM_HFLIP | OAMFLAG_CANBEMASKED ; bottom left + db $08, $00, $8b, OAM_HFLIP | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA ; bottom right + +SpriteSpecialCase: + db $09 +; Sprite OAM Parameters + db -$4, -$4, $00, $00 + db -$4, $04, $01, $00 + db -$4, $0c, $00, OAM_HFLIP + db $04, -$4, $01, $00 + db $04, $04, $02, $00 + db $04, $0c, $01, $00 + db $0c, -$4, $00, OAM_VFLIP | OAMFLAG_CANBEMASKED + db $0c, $04, $01, OAMFLAG_CANBEMASKED + db $0c, $0c, $00, OAM_VFLIP | OAM_HFLIP | OAMFLAG_CANBEMASKED | OAMFLAG_ENDOFDATA diff --git a/data/sprites/sprites.asm b/data/sprites/sprites.asm new file mode 100644 index 000000000..b7bee609f --- /dev/null +++ b/data/sprites/sprites.asm @@ -0,0 +1,90 @@ +overworld_sprite: MACRO + dw \1 + db \2 tiles + db BANK(\1) +ENDM + +SpriteSheetPointerTable: + ; graphics, tile count + overworld_sprite RedSprite, 12 ; SPRITE_RED + overworld_sprite BlueSprite, 12 ; SPRITE_BLUE + overworld_sprite OakSprite, 12 ; SPRITE_OAK + overworld_sprite YoungsterSprite, 12 ; SPRITE_YOUNGSTER + overworld_sprite MonsterSprite, 12 ; SPRITE_MONSTER + overworld_sprite CooltrainerFSprite, 12 ; SPRITE_COOLTRAINER_F + overworld_sprite CooltrainerMSprite, 12 ; SPRITE_COOLTRAINER_M + overworld_sprite LittleGirlSprite, 12 ; SPRITE_LITTLE_GIRL + overworld_sprite BirdSprite, 12 ; SPRITE_BIRD + overworld_sprite MiddleAgedManSprite, 12 ; SPRITE_MIDDLE_AGED_MAN + overworld_sprite GamblerSprite, 12 ; SPRITE_GAMBLER + overworld_sprite SuperNerdSprite, 12 ; SPRITE_SUPER_NERD + overworld_sprite GirlSprite, 12 ; SPRITE_GIRL + overworld_sprite HikerSprite, 12 ; SPRITE_HIKER + overworld_sprite BeautySprite, 12 ; SPRITE_BEAUTY + overworld_sprite GentlemanSprite, 12 ; SPRITE_GENTLEMAN + overworld_sprite DaisySprite, 12 ; SPRITE_DAISY + overworld_sprite BikerSprite, 12 ; SPRITE_BIKER + overworld_sprite SailorSprite, 12 ; SPRITE_SAILOR + overworld_sprite CookSprite, 12 ; SPRITE_COOK + overworld_sprite BikeShopClerkSprite, 12 ; SPRITE_BIKE_SHOP_CLERK + overworld_sprite MrFujiSprite, 12 ; SPRITE_MR_FUJI + overworld_sprite GiovanniSprite, 12 ; SPRITE_GIOVANNI + overworld_sprite RocketSprite, 12 ; SPRITE_ROCKET + overworld_sprite ChannelerSprite, 12 ; SPRITE_CHANNELER + overworld_sprite WaiterSprite, 12 ; SPRITE_WAITER + overworld_sprite ErikaSprite, 12 ; SPRITE_ERIKA + overworld_sprite MiddleAgedWomanSprite, 12 ; SPRITE_MIDDLE_AGED_WOMAN + overworld_sprite BrunetteGirlSprite, 12 ; SPRITE_BRUNETTE_GIRL + overworld_sprite LanceSprite, 12 ; SPRITE_LANCE + overworld_sprite RedSprite, 12 ; SPRITE_UNUSED_SCIENTIST + overworld_sprite ScientistSprite, 12 ; SPRITE_SCIENTIST + overworld_sprite RockerSprite, 12 ; SPRITE_ROCKER + overworld_sprite SwimmerSprite, 12 ; SPRITE_SWIMMER + overworld_sprite SafariZoneWorkerSprite, 12 ; SPRITE_SAFARI_ZONE_WORKER + overworld_sprite GymGuideSprite, 12 ; SPRITE_GYM_GUIDE + overworld_sprite GrampsSprite, 12 ; SPRITE_GRAMPS + overworld_sprite ClerkSprite, 12 ; SPRITE_CLERK + overworld_sprite FishingGuruSprite, 12 ; SPRITE_FISHING_GURU + overworld_sprite GrannySprite, 12 ; SPRITE_GRANNY + overworld_sprite NurseSprite, 12 ; SPRITE_NURSE + overworld_sprite LinkReceptionistSprite, 12 ; SPRITE_LINK_RECEPTIONIST + overworld_sprite SilphPresidentSprite, 12 ; SPRITE_SILPH_PRESIDENT + overworld_sprite SilphWorkerSprite, 12 ; SPRITE_SILPH_WORKER + overworld_sprite WardenSprite, 12 ; SPRITE_WARDEN + overworld_sprite CaptainSprite, 12 ; SPRITE_CAPTAIN + overworld_sprite FisherSprite, 12 ; SPRITE_FISHER + overworld_sprite KogaSprite, 12 ; SPRITE_KOGA + overworld_sprite GuardSprite, 12 ; SPRITE_GUARD + overworld_sprite RedSprite, 12 ; SPRITE_UNUSED_GUARD + overworld_sprite MomSprite, 12 ; SPRITE_MOM + overworld_sprite BaldingGuySprite, 12 ; SPRITE_BALDING_GUY + overworld_sprite LittleBoySprite, 12 ; SPRITE_LITTLE_BOY + overworld_sprite RedSprite, 12 ; SPRITE_UNUSED_GAMEBOY_KID + overworld_sprite GameboyKidSprite, 12 ; SPRITE_GAMEBOY_KID + overworld_sprite FairySprite, 12 ; SPRITE_FAIRY + overworld_sprite AgathaSprite, 12 ; SPRITE_AGATHA + overworld_sprite BrunoSprite, 12 ; SPRITE_BRUNO + overworld_sprite LoreleiSprite, 12 ; SPRITE_LORELEI + overworld_sprite SeelSprite, 12 ; SPRITE_SEEL + overworld_sprite PikachuSprite, 12 ; SPRITE_PIKACHU + overworld_sprite OfficerJennySprite, 12 ; SPRITE_OFFICER_JENNY + overworld_sprite SandshrewSprite, 12 ; SPRITE_SANDSHREW + overworld_sprite OddishSprite, 12 ; SPRITE_ODDISH + overworld_sprite BulbasaurSprite, 12 ; SPRITE_BULBASAUR + overworld_sprite JigglypuffSprite, 12 ; SPRITE_JIGGLYPUFF + overworld_sprite ClefairySprite, 12 ; SPRITE_CLEFAIRY + overworld_sprite ChanseySprite, 12 ; SPRITE_CHANSEY + overworld_sprite JessieSprite, 12 ; SPRITE_JESSIE + overworld_sprite JamesSprite, 12 ; SPRITE_JAMES + overworld_sprite PokeBallSprite, 4 ; SPRITE_POKE_BALL + overworld_sprite FossilSprite, 4 ; SPRITE_FOSSIL + overworld_sprite BoulderSprite, 4 ; SPRITE_BOULDER + overworld_sprite PaperSprite, 4 ; SPRITE_PAPER + overworld_sprite PokedexSprite, 4 ; SPRITE_POKEDEX + overworld_sprite ClipboardSprite, 4 ; SPRITE_CLIPBOARD + overworld_sprite SnorlaxSprite, 4 ; SPRITE_SNORLAX + overworld_sprite OldAmberSprite, 4 ; SPRITE_UNUSED_OLD_AMBER + overworld_sprite OldAmberSprite, 4 ; SPRITE_OLD_AMBER + overworld_sprite GamblerAsleepSprite, 4 ; SPRITE_UNUSED_GAMBLER_ASLEEP_1 + overworld_sprite GamblerAsleepSprite, 4 ; SPRITE_UNUSED_GAMBLER_ASLEEP_2 + overworld_sprite GamblerAsleepSprite, 4 ; SPRITE_GAMBLER_ASLEEP diff --git a/data/super_palettes.asm b/data/super_palettes.asm deleted file mode 100755 index d04d461e1..000000000 --- a/data/super_palettes.asm +++ /dev/null @@ -1,481 +0,0 @@ -SuperPalettes: - ; PAL_ROUTE - RGB 31, 31, 30 - RGB 23, 26, 19 - RGB 23, 27, 31 - RGB 6, 6, 6 - - ; PAL_PALLET - RGB 31, 31, 30 - RGB 28, 27, 31 - RGB 23, 27, 31 - RGB 6, 6, 6 - - ; PAL_VIRIDIAN - RGB 31, 31, 30 - RGB 26, 31, 21 - RGB 23, 27, 31 - RGB 6, 6, 6 - - ; PAL_PEWTER - RGB 31, 31, 30 - RGB 23, 23, 22 - RGB 23, 27, 31 - RGB 6, 6, 6 - - ; PAL_CERULEAN - RGB 31, 31, 30 - RGB 22, 23, 31 - RGB 23, 27, 31 - RGB 6, 6, 6 - - ; PAL_LAVENDER - RGB 31, 31, 30 - RGB 27, 23, 29 - RGB 23, 27, 31 - RGB 6, 6, 6 - - ; PAL_VERMILION - RGB 31, 31, 30 - RGB 31, 25, 16 - RGB 23, 27, 31 - RGB 6, 6, 6 - - ; PAL_CELADON - RGB 31, 31, 30 - RGB 22, 31, 22 - RGB 23, 27, 31 - RGB 6, 6, 6 - - ; PAL_FUCHSIA - RGB 31, 31, 30 - RGB 31, 26, 26 - RGB 23, 27, 31 - RGB 6, 6, 6 - - ; PAL_CINNABAR - RGB 31, 31, 30 - RGB 31, 15, 14 - RGB 23, 27, 31 - RGB 6, 6, 6 - - ; PAL_INDIGO - RGB 31, 31, 30 - RGB 17, 17, 25 - RGB 23, 27, 31 - RGB 6, 6, 6 - - ; PAL_SAFFRON - RGB 31, 31, 30 - RGB 31, 31, 19 - RGB 23, 27, 31 - RGB 6, 6, 6 - - ; PAL_TOWNMAP - RGB 31, 31, 30 - RGB 20, 26, 31 - RGB 17, 23, 10 - RGB 3, 2, 2 - - ; PAL_LOGO1 - RGB 31, 31, 30 - RGB 30, 30, 17 - RGB 21, 0, 4 - RGB 21, 0, 4 - - ; PAL_LOGO2 - RGB 31, 31, 30 - RGB 30, 30, 17 - RGB 18, 18, 24 - RGB 7, 7, 16 - - ; PAL_0F - RGB 31, 31, 30 - RGB 24, 20, 30 - RGB 11, 20, 30 - RGB 3, 2, 2 - - ; PAL_MEWMON - RGB 31, 31, 30 - RGB 31, 30, 22 - RGB 27, 16, 16 - RGB 6, 6, 6 - - ; PAL_BLUEMON - RGB 31, 31, 30 - RGB 21, 22, 31 - RGB 9, 10, 20 - RGB 6, 6, 6 - - ; PAL_REDMON - RGB 31, 31, 30 - RGB 31, 24, 11 - RGB 26, 9, 6 - RGB 6, 6, 6 - - ; PAL_CYANMON - RGB 31, 31, 30 - RGB 26, 28, 31 - RGB 7, 24, 28 - RGB 6, 6, 6 - - ; PAL_PURPLEMON - RGB 31, 31, 30 - RGB 27, 22, 30 - RGB 22, 15, 23 - RGB 6, 6, 6 - - ; PAL_BROWNMON - RGB 31, 31, 30 - RGB 26, 23, 18 - RGB 18, 14, 10 - RGB 6, 6, 6 - - ; PAL_GREENMON - RGB 31, 31, 30 - RGB 24, 28, 18 - RGB 13, 21, 15 - RGB 6, 6, 6 - - ; PAL_PINKMON - RGB 31, 31, 30 - RGB 31, 24, 26 - RGB 31, 18, 21 - RGB 6, 6, 6 - - ; PAL_YELLOWMON - RGB 31, 31, 30 - RGB 31, 31, 19 - RGB 28, 23, 9 - RGB 6, 6, 6 - - ; PAL_GREYMON - RGB 31, 31, 30 - RGB 25, 25, 18 - RGB 16, 16, 14 - RGB 6, 6, 6 - - ; PAL_SLOTS1 - RGB 31, 31, 30 - RGB 27, 22, 30 - RGB 26, 9, 6 - RGB 6, 6, 6 - - ; PAL_SLOTS2 - RGB 31, 31, 30 - RGB 31, 23, 26 - RGB 29, 29, 8 - RGB 6, 6, 6 - - ; PAL_SLOTS3 - RGB 31, 31, 30 - RGB 23, 31, 20 - RGB 29, 29, 8 - RGB 6, 6, 6 - - ; PAL_SLOTS4 - RGB 31, 31, 30 - RGB 23, 29, 31 - RGB 29, 29, 8 - RGB 6, 6, 6 - - ; PAL_BLACK - RGB 31, 31, 30 - RGB 6, 6, 6 - RGB 6, 6, 6 - RGB 6, 6, 6 - - ; PAL_GREENBAR - RGB 31, 31, 30 - RGB 31, 31, 19 - RGB 0, 21, 0 - RGB 6, 6, 6 - - ; PAL_YELLOWBAR - RGB 31, 31, 30 - RGB 31, 31, 19 - RGB 28, 23, 9 - RGB 6, 6, 6 - - ; PAL_REDBAR - RGB 31, 31, 30 - RGB 31, 31, 19 - RGB 26, 9, 6 - RGB 6, 6, 6 - - ; PAL_BADGE - RGB 31, 31, 30 - RGB 20, 15, 11 - RGB 22, 21, 20 - RGB 6, 6, 6 - - ; PAL_CAVE - RGB 31, 31, 30 - RGB 20, 15, 11 - RGB 22, 21, 20 - RGB 6, 6, 6 - - ; PAL_GAMEFREAK - RGB 31, 31, 30 - RGB 28, 24, 14 - RGB 20, 20, 11 - RGB 6, 6, 6 - - ; PAL_25 - RGB 31, 31, 30 - RGB 31, 30, 22 - RGB 23, 27, 31 - RGB 6, 6, 6 - - ; PAL_26 - RGB 31, 31, 30 - RGB 28, 23, 9 - RGB 18, 14, 10 - RGB 6, 6, 6 - - ; PAL_27 - RGB 31, 31, 30 - RGB 16, 16, 16 - RGB 31, 25, 9 - RGB 6, 6, 6 - -GBCBasePalettes: - ; PAL_ROUTE - RGB 31, 31, 31 - RGB 16, 31, 4 - RGB 11, 23, 31 - RGB 3, 3, 3 - - ; PAL_PALLET - RGB 31, 31, 31 - RGB 23, 17, 31 - RGB 11, 23, 31 - RGB 3, 3, 3 - - ; PAL_VIRIDIAN - RGB 31, 31, 31 - RGB 19, 31, 0 - RGB 11, 23, 31 - RGB 3, 3, 3 - - ; PAL_PEWTER - RGB 31, 31, 31 - RGB 18, 18, 15 - RGB 11, 23, 31 - RGB 3, 3, 3 - - ; PAL_CERULEAN - RGB 31, 31, 31 - RGB 5, 8, 31 - RGB 11, 23, 31 - RGB 3, 3, 3 - - ; PAL_LAVENDER - RGB 31, 31, 31 - RGB 25, 4, 31 - RGB 11, 23, 31 - RGB 3, 3, 3 - - ; PAL_VERMILION - RGB 31, 31, 31 - RGB 31, 19, 0 - RGB 11, 23, 31 - RGB 3, 3, 3 - - ; PAL_CELADON - RGB 31, 31, 31 - RGB 5, 31, 5 - RGB 11, 23, 31 - RGB 3, 3, 3 - - ; PAL_FUCHSIA - RGB 31, 31, 31 - RGB 31, 15, 15 - RGB 11, 23, 31 - RGB 3, 3, 3 - - ; PAL_CINNABAR - RGB 31, 31, 31 - RGB 31, 8, 8 - RGB 11, 23, 31 - RGB 3, 3, 3 - - ; PAL_INDIGO - RGB 31, 31, 31 - RGB 11, 8, 31 - RGB 11, 23, 31 - RGB 3, 3, 3 - - ; PAL_SAFFRON - RGB 31, 31, 31 - RGB 31, 31, 0 - RGB 11, 23, 31 - RGB 3, 3, 3 - - ; PAL_TOWNMAP - RGB 31, 31, 31 - RGB 0, 21, 31 - RGB 10, 28, 0 - RGB 1, 1, 1 - - ; PAL_LOGO1 - RGB 31, 31, 31 - RGB 31, 31, 0 - RGB 31, 0, 0 - RGB 31, 0, 0 - - ; PAL_LOGO2 - RGB 31, 31, 31 - RGB 31, 31, 0 - RGB 7, 7, 25 - RGB 0, 0, 17 - - ; PAL_0F - RGB 31, 31, 31 - RGB 13, 1, 31 - RGB 0, 9, 31 - RGB 1, 1, 1 - - ; PAL_MEWMON - RGB 31, 31, 31 - RGB 31, 31, 0 - RGB 31, 1, 1 - RGB 3, 3, 3 - - ; PAL_BLUEMON - RGB 31, 31, 31 - RGB 16, 18, 31 - RGB 0, 1, 25 - RGB 3, 3, 3 - - ; PAL_REDMON - RGB 31, 31, 31 - RGB 31, 17, 0 - RGB 31, 0, 0 - RGB 3, 3, 3 - - ; PAL_CYANMON - RGB 31, 31, 31 - RGB 16, 26, 31 - RGB 0, 17, 31 - RGB 3, 3, 3 - - ; PAL_PURPLEMON - RGB 31, 31, 31 - RGB 25, 15, 31 - RGB 19, 0, 22 - RGB 3, 3, 3 - - ; PAL_BROWNMON - RGB 31, 31, 31 - RGB 29, 18, 10 - RGB 17, 9, 5 - RGB 3, 3, 3 - - ; PAL_GREENMON - RGB 31, 31, 31 - RGB 17, 31, 11 - RGB 1, 22, 6 - RGB 3, 3, 3 - - ; PAL_PINKMON - RGB 31, 31, 31 - RGB 31, 15, 18 - RGB 31, 0, 6 - RGB 3, 3, 3 - - ; PAL_YELLOWMON - RGB 31, 31, 31 - RGB 31, 31, 0 - RGB 28, 14, 0 - RGB 3, 3, 3 - - ; PAL_GREYMON - RGB 31, 31, 31 - RGB 20, 23, 10 - RGB 11, 11, 5 - RGB 3, 3, 3 - - ; PAL_SLOTS1 - RGB 31, 31, 31 - RGB 25, 1, 31 - RGB 31, 0, 0 - RGB 3, 3, 3 - - ; PAL_SLOTS2 - RGB 31, 31, 31 - RGB 31, 4, 19 - RGB 31, 31, 0 - RGB 3, 3, 3 - - ; PAL_SLOTS3 - RGB 31, 31, 31 - RGB 8, 31, 0 - RGB 31, 31, 0 - RGB 3, 3, 3 - - ; PAL_SLOTS4 - RGB 31, 31, 31 - RGB 0, 31, 31 - RGB 31, 31, 0 - RGB 3, 3, 3 - - ; PAL_BLACK - RGB 31, 31, 31 - RGB 3, 3, 3 - RGB 3, 3, 3 - RGB 3, 3, 3 - - ; PAL_GREENBAR - RGB 31, 31, 31 - RGB 31, 31, 0 - RGB 0, 31, 0 - RGB 3, 3, 3 - - ; PAL_YELLOWBAR - RGB 31, 31, 31 - RGB 31, 31, 0 - RGB 31, 18, 0 - RGB 3, 3, 3 - - ; PAL_REDBAR - RGB 31, 31, 31 - RGB 31, 31, 0 - RGB 31, 0, 0 - RGB 3, 3, 3 - - ; PAL_BADGE - RGB 31, 31, 31 - RGB 23, 8, 0 - RGB 17, 14, 11 - RGB 3, 3, 3 - - ; PAL_CAVE - RGB 31, 31, 31 - RGB 23, 8, 0 - RGB 17, 14, 11 - RGB 3, 3, 3 - - ; PAL_GAMEFREAK - RGB 31, 31, 31 - RGB 31, 19, 0 - RGB 19, 19, 0 - RGB 3, 3, 3 - - ; PAL_25 - RGB 31, 31, 31 - RGB 31, 31, 0 - RGB 11, 23, 31 - RGB 3, 3, 3 - - ; PAL_26 - RGB 31, 31, 31 - RGB 31, 18, 0 - RGB 19, 7, 1 - RGB 3, 3, 3 - - ; PAL_27 - RGB 31, 31, 31 - RGB 9, 9, 9 - RGB 31, 21, 0 - RGB 3, 3, 3 diff --git a/data/super_rod.asm b/data/super_rod.asm deleted file mode 100755 index 01c6b588c..000000000 --- a/data/super_rod.asm +++ /dev/null @@ -1,33 +0,0 @@ -FishingSlots:: - db PALLET_TOWN,STARYU,10,TENTACOOL,10,STARYU,5,TENTACOOL,20 - db VIRIDIAN_CITY,POLIWAG,5,POLIWAG,10,POLIWAG,15,POLIWAG,10 - db CERULEAN_CITY,GOLDEEN,25,GOLDEEN,30,SEAKING,30,SEAKING,40 - db VERMILION_CITY,TENTACOOL,15,TENTACOOL,20,TENTACOOL,10,HORSEA,5 - db CELADON_CITY,GOLDEEN,5,GOLDEEN,10,GOLDEEN,15,GOLDEEN,20 - db FUCHSIA_CITY,MAGIKARP,5,MAGIKARP,10,MAGIKARP,15,GYARADOS,15 - db CINNABAR_ISLAND,STARYU,15,TENTACOOL,15,STARYU,10,TENTACOOL,30 - db ROUTE_4,GOLDEEN,20,GOLDEEN,25,GOLDEEN,30,SEAKING,30 - db ROUTE_6,GOLDEEN,5,GOLDEEN,10,GOLDEEN,15,GOLDEEN,20 - db ROUTE_24,GOLDEEN,20,GOLDEEN,25,GOLDEEN,30,SEAKING,30 - db ROUTE_25,KRABBY,10,KRABBY,15,KINGLER,15,KINGLER,25 - db ROUTE_10,KRABBY,15,KRABBY,20,HORSEA,10,KINGLER,25 - db ROUTE_11,TENTACOOL,15,TENTACOOL,20,TENTACOOL,10,HORSEA,5 - db ROUTE_12,HORSEA,20,HORSEA,25,SEADRA,25,SEADRA,35 - db ROUTE_13,HORSEA,15,HORSEA,20,TENTACOOL,10,SEADRA,20 - db ROUTE_17,TENTACOOL,5,TENTACOOL,15,SHELLDER,25,SHELLDER,35 - db ROUTE_18,TENTACOOL,15,SHELLDER,20,SHELLDER,30,SHELLDER,40 - db ROUTE_19,TENTACOOL,15,STARYU,20,TENTACOOL,30,TENTACRUEL,30 - db ROUTE_20,TENTACOOL,20,TENTACRUEL,20,STARYU,30,TENTACRUEL,40 - db ROUTE_21,TENTACOOL,15,STARYU,20,TENTACOOL,30,TENTACRUEL,30 - db ROUTE_22,POLIWAG,5,POLIWAG,10,POLIWAG,15,POLIWHIRL,15 - db ROUTE_23,POLIWAG,25,POLIWAG,30,POLIWHIRL,30,POLIWHIRL,40 - db VERMILION_DOCK,TENTACOOL,10,TENTACOOL,15,STARYU,15,SHELLDER,10 - db SAFARI_ZONE_CENTER,MAGIKARP,5,MAGIKARP,10,DRATINI,10,DRAGONAIR,15 - db SAFARI_ZONE_EAST,MAGIKARP,5,MAGIKARP,10,MAGIKARP,15,DRATINI,15 - db SAFARI_ZONE_NORTH,MAGIKARP,5,MAGIKARP,10,MAGIKARP,15,DRATINI,15 - db SAFARI_ZONE_WEST,MAGIKARP,5,MAGIKARP,10,MAGIKARP,15,DRATINI,15 - db SEAFOAM_ISLANDS_B3F,KRABBY,25,STARYU,20,KINGLER,35,STARYU,40 - db SEAFOAM_ISLANDS_B4F,KRABBY,25,STARYU,20,KINGLER,35,STARYU,40 - db CERULEAN_CAVE_1F,GOLDEEN,25,SEAKING,35,SEAKING,45,SEAKING,55 - db CERULEAN_CAVE_B1F,GOLDEEN,30,SEAKING,40,SEAKING,50,SEAKING,60 - db $ff diff --git a/data/text/alphabets.asm b/data/text/alphabets.asm new file mode 100644 index 000000000..07e6cf96a --- /dev/null +++ b/data/text/alphabets.asm @@ -0,0 +1,15 @@ +LowerCaseAlphabet: + db "abcdefghi" + db "jklmnopqr" + db "stuvwxyz " + db "×():;[]" + db "-?!♂♀/," + db "UPPER CASE@" + +UpperCaseAlphabet: + db "ABCDEFGHI" + db "JKLMNOPQR" + db "STUVWXYZ " + db "×():;[]" + db "-?!♂♀/," + db "lower case@" diff --git a/data/text/dakutens.asm b/data/text/dakutens.asm new file mode 100644 index 000000000..7a53c71f1 --- /dev/null +++ b/data/text/dakutens.asm @@ -0,0 +1,15 @@ +Dakutens: + db "かが", "きぎ", "くぐ", "けげ", "こご" + db "さざ", "しじ", "すず", "せぜ", "そぞ" + db "ただ", "ちぢ", "つづ", "てで", "とど" + db "はば", "ひび", "ふぶ", "へべ", "ほぼ" + db "カガ", "キギ", "クグ", "ケゲ", "コゴ" + db "サザ", "シジ", "スズ", "セゼ", "ソゾ" + db "タダ", "チヂ", "ツヅ", "テデ", "トド" + db "ハバ", "ヒビ", "フブ", "へべ", "ホボ" + db -1 ; end + +Handakutens: + db "はぱ", "ひぴ", "ふぷ", "へぺ", "ほぽ" + db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ" + db -1 ; end diff --git a/data/text/text_1.asm b/data/text/text_1.asm new file mode 100644 index 000000000..eb394afe9 --- /dev/null +++ b/data/text/text_1.asm @@ -0,0 +1,154 @@ +_CardKeySuccessText1:: + text "Bingo!@" + text_end + +_CardKeySuccessText2:: + text_start + line "The CARD KEY" + cont "opened the door!" + done + +_CardKeyFailText:: + text "Darn! It needs a" + line "CARD KEY!" + done + +_TrainerNameText:: + text_ram wcd6d + text ": @" + text_end + +_NoNibbleText:: + text "Not even a nibble!" + prompt + +_NothingHereText:: + text "Looks like there's" + line "nothing here." + prompt + +_ItsABiteText:: + text "Oh!" + line "It's a bite!" + prompt + +_ExclamationText:: + text "!" + done + +_GroundRoseText:: + text "Ground rose up" + line "somewhere!" + done + +_BoulderText:: + text "This requires" + line "STRENGTH to move!" + done + +_MartSignText:: + text "All your item" + line "needs fulfilled!" + cont "#MON MART" + done + +_PokeCenterSignText:: + text "Heal Your #MON!" + line "#MON CENTER" + done + +_FoundItemText:: + text " found" + line "@" + text_ram wcf4b + text "!@" + text_end + +_NoMoreRoomForItemText:: + text "No more room for" + line "items!" + done + +_OaksAideHiText:: + text "Hi! Remember me?" + line "I'm PROF.OAK's" + cont "AIDE!" + + para "If you caught @" + text_decimal hOaksAideRequirement, 1, 3 + text_start + line "kinds of #MON," + cont "I'm supposed to" + cont "give you an" + cont "@" + text_ram wOaksAideRewardItemName + text "!" + + para "So, ! Have" + line "you caught at" + cont "least @" + text_decimal hOaksAideRequirement, 1, 3 + text " kinds of" + cont "#MON?" + done + +_OaksAideUhOhText:: + text "Let's see..." + line "Uh-oh! You have" + cont "caught only @" + text_decimal hOaksAideNumMonsOwned, 1, 3 + text_start + cont "kinds of #MON!" + + para "You need @" + text_decimal hOaksAideRequirement, 1, 3 + text " kinds" + line "if you want the" + cont "@" + text_ram wOaksAideRewardItemName + text "." + done + +_OaksAideComeBackText:: + text "Oh. I see." + + para "When you get @" + text_decimal hOaksAideRequirement, 1, 3 + text_start + line "kinds, come back" + cont "for @" + text_ram wOaksAideRewardItemName + text "." + done + +_OaksAideHereYouGoText:: + text "Great! You have" + line "caught @" + text_decimal hOaksAideNumMonsOwned, 1, 3 + text " kinds " + cont "of #MON!" + cont "Congratulations!" + + para "Here you go!" + prompt + +_OaksAideGotItemText:: + text " got the" + line "@" + text_ram wOaksAideRewardItemName + text "!@" + text_end + +_OaksAideNoRoomText:: + text "Oh! I see you" + line "don't have any" + cont "room for the" + cont "@" + text_ram wOaksAideRewardItemName + text "." + done + +_NurseChanseyText:: + text "CHANSEY: Chaaan" + line "sey!" + done diff --git a/data/text/text_2.asm b/data/text/text_2.asm new file mode 100644 index 000000000..f1e5b68d7 --- /dev/null +++ b/data/text/text_2.asm @@ -0,0 +1,1322 @@ +_AIBattleWithdrawText:: + text_ram wTrainerName + text " with-" + line "drew @" + text_ram wEnemyMonNick + text "!" + prompt + +_AIBattleUseItemText:: + text_ram wTrainerName + text_start + line "used @" + text_ram wcd6d + text_start + cont "on @" + text_ram wEnemyMonNick + text "!" + prompt + +_BoxFullTest:: + text "The BOX is full!" + done + +_BoxWillBeClearedText:: + text "The BOX will be" + line "cleared." + done + +_TradeWentToText:: + text_ram wcf4b + text " went" + line "to @" + text_ram wLinkEnemyTrainerName + text "." + done + +_TradeForText:: + text "For 's" + line "@" + text_ram wcf4b + text "," + done + +_TradeSendsText:: + text_ram wLinkEnemyTrainerName + text " sends" + line "@" + text_ram wcd6d + text "." + done + +_TradeWavesFarewellText:: + text_ram wLinkEnemyTrainerName + text " waves" + line "farewell as" + done + +_TradeTransferredText:: + text_ram wcd6d + text " is" + line "transferred." + done + +_TradeTakeCareText:: + text "Take good care of" + line "@" + text_ram wcd6d + text "." + done + +_TradeWillTradeText:: + text_ram wLinkEnemyTrainerName + text " will" + line "trade @" + text_ram wcd6d + text_start + done + +_TradeforText:: + text "for 's" + line "@" + text_ram wcf4b + text "." + done + +_PlaySlotMachineText:: + text "A slot machine!" + line "Want to play?" + done + +_OutOfCoinsSlotMachineText:: + text "Darn!" + line "Ran out of coins!" + done + +_BetHowManySlotMachineText:: + text "Bet how many" + line "coins?" + done + +_StartSlotMachineText:: + text "Start!" + done + +_NotEnoughCoinsSlotMachineText:: + text "Not enough" + line "coins!" + prompt + +_OneMoreGoSlotMachineText:: + text "One more " + line "go?" + done + +_LinedUpText:: + text " lined up!" + line "Scored @" + text_ram wcf4b + text " coins!" + done + +_NotThisTimeText:: + text "Not this time!" + prompt + +_YeahText:: + text "Yeah!@" + text_end + +_DexSeenOwnedText:: + text "#DEX Seen:@" + text_decimal wDexRatingNumMonsSeen, 1, 3 + text_start + line " Owned:@" + text_decimal wDexRatingNumMonsOwned, 1, 3 + text_end + +_DexRatingText:: + text "#DEX Rating" + done + +_GymStatueText1:: + text_ram wGymCityName + text_start + line "#MON GYM" + cont "LEADER: @" + text_ram wGymLeaderName + text_start + + para "WINNING TRAINERS:" + line "" + done + +_GymStatueText2:: + text_ram wGymCityName + text_start + line "#MON GYM" + cont "LEADER: @" + text_ram wGymLeaderName + text_start + + para "WINNING TRAINERS:" + line "" + cont "" + done + +_ViridianCityPokecenterGuyText:: + text "#MON CENTERs" + line "heal your tired," + cont "hurt or fainted" + cont "#MON!" + done + +_PewterCityPokecenterGuyText:: + text "Yawn!" + + para "When JIGGLYPUFF" + line "sings, #MON" + cont "get drowsy..." + + para "...Me too..." + line "Snore..." + done + +_CeruleanPokecenterGuyText:: + text "BILL has lots of" + line "#MON!" + + para "He collects rare" + line "ones too!" + done + +_LavenderPokecenterGuyText:: + text "CUBONEs wear" + line "skulls, right?" + + para "People will pay a" + line "lot for one!" + done + +_MtMoonPokecenterBenchGuyText:: + text "If you have too" + line "many #MON, you" + cont "should store them" + cont "via PC!" + done + +_RockTunnelPokecenterGuyText:: + text "I heard that" + line "GHOSTs haunt" + cont "LAVENDER TOWN!" + done + +_UnusedBenchGuyText1:: + text "I wish I could" + line "catch #MON." + done + +_UnusedBenchGuyText2:: + text "I'm tired from" + line "all the fun..." + done + +_UnusedBenchGuyText3:: + text "SILPH's manager" + line "is hiding in the" + cont "SAFARI ZONE." + done + +_VermilionPokecenterGuyText:: + text "It is true that a" + line "higher level" + cont "#MON will be" + cont "more powerful..." + + para "But, all #MON" + line "will have weak" + cont "points against" + cont "specific types." + + para "So, there is no" + line "universally" + cont "strong #MON." + done + +_CeladonCityPokecenterGuyText:: + text "If I had a BIKE," + line "I would go to" + cont "CYCLING ROAD!" + done + +_FuchsiaCityPokecenterGuyText:: + text "If you're studying " + line "#MON, visit" + cont "the SAFARI ZONE." + + para "It has all sorts" + line "of rare #MON." + done + +_CinnabarPokecenterGuyText:: + text "#MON can still" + line "learn techniques" + cont "after canceling" + cont "evolution." + + para "Evolution can wait" + line "until new moves" + cont "have been learned." + done + +_SaffronCityPokecenterGuyText1:: + text "It would be great" + line "if the ELITE FOUR" + cont "came and stomped" + cont "TEAM ROCKET!" + done + +_SaffronCityPokecenterGuyText2:: + text "TEAM ROCKET took" + line "off! We can go" + cont "out safely again!" + cont "That's great!" + done + +_CeladonCityHotelText:: + text "My sis brought me" + line "on this vacation!" + done + +_BookcaseText:: + text "Crammed full of" + line "#MON books!" + done + +_NewBicycleText:: + text "A shiny new" + line "BICYCLE!" + done + +_PushStartText:: + text "Push START to" + line "open the MENU!" + done + +_SaveOptionText:: + text "The SAVE option is" + line "on the MENU" + cont "screen." + done + +_StrengthsAndWeaknessesText:: + text "All #MON types" + line "have strong and" + cont "weak points" + cont "against others." + done + +_TimesUpText:: + text "PA: Ding-dong!" + + para "Time's up!" + prompt + +_GameOverText:: + text "PA: Your SAFARI" + line "GAME is over!" + done + +_CinnabarGymQuizDummyIntroText:: + text "#MON Quiz!" + + para "Get it right and" + line "the door opens to" + cont "the next room!" + + para "Get it wrong and" + line "face a trainer!" + + para "If you want to" + line "conserve your" + cont "#MON for the" + cont "GYM LEADER..." + + para "Then get it right!" + line "Here we go!" + prompt + +_CinnabarGymQuizIntroText:: + text "#MON Quiz!" + + para "Get it right and" + line "the door opens to" + cont "the next room!" + + para "Get it wrong and" + line "face the trainer" + cont "blocking the way!" + + para "If you want to" + line "conserve your" + cont "#MON for the" + cont "GYM LEADER..." + + para "Then get it right!" + line "Here we go!" + para "" + done + +_CinnabarGymQuizShortIntroText:: + text "#MON Quiz!" + + line "Test your skill!" + para "" + done + +_CinnabarQuizQuestionsText1:: + text "CATERPIE evolves" + line "into BUTTERFREE?" + done + +_CinnabarQuizQuestionsText2:: + text "There are 9" + line "certified #MON" + cont "LEAGUE BADGEs?" + done + +_CinnabarQuizQuestionsText3:: + text "POLIWAG evolves 3" + line "times?" + done + +_CinnabarQuizQuestionsText4:: + text "Are thunder moves" + line "effective against" + cont "ground element-" + cont "type #MON?" + done + +_CinnabarQuizQuestionsText5:: + text "#MON of the" + line "same kind and" + cont "level are not" + cont "identical?" + done + +_CinnabarQuizQuestionsText6:: + text "TM28 contains" + line "TOMBSTONER?" + done + +_CinnabarGymQuizCorrectText:: + text "You're absolutely" + line "correct!" + + para "Go on through!@" + text_end + +_CinnabarGymQuizIncorrectText:: + text "Sorry! Bad call!" + prompt + +_MagazinesText:: + text "#MON magazines!" + + para "#MON notebooks!" + + para "#MON graphs!" + done + +_BillsHouseMonitorText:: + text "TELEPORTER is" + line "displayed on the" + cont "PC monitor." + done + +_BillsHouseInitiatedText:: + text " initiated" + line "TELEPORTER's Cell" + cont "Separator!@" + text_end + +_BillsHousePokemonListText1:: + text "BILL's favorite" + line "#MON list!" + prompt + +_BillsHousePokemonListText2:: + text "Which #MON do" + line "you want to see?" + done + +_OakLabEmailText:: + text "There's an e-mail" + line "message here!" + + para "..." + + para "Calling all" + line "#MON trainers!" + + para "The elite trainers" + line "of #MON LEAGUE" + cont "are ready to take" + cont "on all comers!" + + para "Bring your best" + line "#MON and see" + cont "how you rate as a" + cont "trainer!" + + para "#MON LEAGUE HQ" + line "INDIGO PLATEAU" + + para "PS: PROF.OAK," + line "please visit us!" + cont "..." + done + +_GameCornerCoinCaseText:: + text "A COIN CASE is" + line "required!" + done + +_GameCornerNoCoinsText:: + text "You don't have" + line "any coins!" + done + +_GameCornerOutOfOrderText:: + text "OUT OF ORDER" + line "This is broken." + done + +_GameCornerOutToLunchText:: + text "OUT TO LUNCH" + line "This is reserved." + done + +_GameCornerSomeonesKeysText:: + text "Someone's keys!" + line "They'll be back." + done + +_JustAMomentText:: + text "Just a moment." + done + +TMNotebookText:: + text "It's a pamphlet" + line "on TMs." + + para "..." + + para "There are 50 TMs" + line "in all." + + para "There are also 5" + line "HMs that can be" + cont "used repeatedly." + + para "SILPH CO.@" + text_end + +_TurnPageText:: + text "Turn the page?" + done + +_ViridianSchoolNotebookText5:: + text "GIRL: Hey! Don't" + line "look at my notes!@" + text_end + +_ViridianSchoolNotebookText1:: + text "Looked at the" + line "notebook!" + + para "First page..." + + para "# BALLs are" + line "used to catch" + cont "#MON." + + para "Up to 6 #MON" + line "can be carried." + + para "People who raise" + line "and make #MON" + cont "fight are called" + cont "#MON trainers." + prompt + +_ViridianSchoolNotebookText2:: + text "Second page..." + + para "A healthy #MON" + line "may be hard to" + cont "catch, so weaken" + cont "it first!" + + para "Poison, burns and" + line "other damage are" + cont "effective!" + prompt + +_ViridianSchoolNotebookText3:: + text "Third page..." + + para "#MON trainers" + line "seek others to" + cont "engage in #MON" + cont "fights." + + para "Battles are" + line "constantly fought" + cont "at #MON GYMs." + prompt + +_ViridianSchoolNotebookText4:: + text "Fourth page..." + + para "The goal for" + line "#MON trainers" + cont "is to beat the " + cont "top 8 #MON" + cont "GYM LEADERs." + + para "Do so to earn the" + line "right to face..." + + para "The ELITE FOUR of" + line "#MON LEAGUE!" + prompt + +_EnemiesOnEverySideText:: + text "Enemies on every" + line "side!" + done + +_WhatGoesAroundComesAroundText:: + text "What goes around" + line "comes around!" + done + +_FightingDojoText:: + text "FIGHTING DOJO" + done + +_IndigoPlateauHQText:: + text "INDIGO PLATEAU" + line "#MON LEAGUE HQ" + done + +_RedBedroomSNESText:: + text " is" + line "playing the SNES!" + cont "...Okay!" + cont "It's time to go!" + done + +_Route15UpstairsBinocularsText:: + text "Looked into the" + line "binoculars..." + + para "A large, shining" + line "bird is flying" + cont "toward the sea." + done + +_AerodactylFossilText:: + text "AERODACTYL Fossil" + line "A primitive and" + cont "rare #MON." + done + +_KabutopsFossilText:: + text "KABUTOPS Fossil" + line "A primitive and" + cont "rare #MON." + done + +_FanClubPicture1Text:: + text "My cute RAPIDASH." + done + +_FanClubPicture2Text:: + text "My beloved FEAROW." + done + +_LinkCableHelpText1:: + text "TRAINER TIPS" + + para "Using a Game Link" + line "Cable" + prompt + +_LinkCableHelpText2:: + text "Which heading do" + line "you want to read?" + done + +_LinkCableInfoText1:: + text "When you have" + line "linked your GAME" + cont "BOY with another" + cont "GAME BOY, talk to" + cont "the attendant on" + cont "the right in any" + cont "#MON CENTER." + prompt + +_LinkCableInfoText2:: + text "COLOSSEUM lets" + line "you play against" + cont "a friend." + prompt + +_LinkCableInfoText3:: + text "TRADE CENTER is" + line "used for trading" + cont "#MON." + prompt + +_ViridianSchoolBlackboardText1:: + text "The blackboard" + line "describes #MON" + cont "STATUS changes" + cont "during battles." + prompt + +_ViridianSchoolBlackboardText2:: + text "Which heading do" + line "you want to read?" + done + +_ViridianBlackboardSleepText:: + text "A #MON can't" + line "attack if it's" + cont "asleep!" + + para "#MON will stay" + line "asleep even after" + cont "battles." + + para "Use AWAKENING to" + line "wake them up!" + prompt + +_ViridianBlackboardPoisonText:: + text "When poisoned, a" + line "#MON's health" + cont "steadily drops." + + para "Poison lingers" + line "after battles." + + para "Use an ANTIDOTE" + line "to cure poison!" + prompt + +_ViridianBlackboardPrlzText:: + text "Paralysis could" + line "make #MON" + cont "moves misfire!" + + para "Paralysis remains" + line "after battles." + + para "Use PARLYZ HEAL" + line "for treatment!" + prompt + +_ViridianBlackboardBurnText:: + text "A burn reduces" + line "power and speed." + cont "It also causes" + cont "ongoing damage." + + para "Burns remain" + line "after battles." + + para "Use BURN HEAL to" + line "cure a burn!" + prompt + +_ViridianBlackboardFrozenText:: + text "If frozen, a" + line "#MON becomes" + cont "totally immobile!" + + para "It stays frozen" + line "even after the" + cont "battle ends." + + para "Use ICE HEAL to" + line "thaw out #MON!" + prompt + +_VermilionGymTrashText:: + text "Nope, there's" + line "only trash here." + done + +_VermilionGymTrashSuccessText1:: + text "Hey! There's a" + line "switch under the" + cont "trash!" + cont "Turn it on!" + + para "The 1st electric" + line "lock opened!@" + text_end + +_VermilionGymTrashSuccessText2:: + text "Hey! There's" + line "another switch" + cont "under the trash!" + cont "Turn it on!" + prompt + +_VermilionGymTrashSuccessText3:: + text "The 2nd electric" + line "lock opened!" + + para "The motorized door" + line "opened!@" + text_end + +_VermilionGymTrashFailText:: + text "Nope! There's" + line "only trash here." + cont "Hey! The electric" + cont "locks were reset!@" + text_end + +_FoundHiddenItemText:: + text " found" + line "@" + text_ram wcd6d + text "!@" + text_end + +_HiddenItemBagFullText:: + text "But, has" + line "no more room for" + cont "other items!" + done + +_FoundHiddenCoinsText:: + text " found" + line "@" + text_bcd hCoins, 2 | LEADING_ZEROES | LEFT_ALIGN + text " coins!@" + text_end + +_FoundHiddenCoins2Text:: + text " found" + line "@" + text_bcd hCoins, 2 | LEADING_ZEROES | LEFT_ALIGN + text " coins!@" + text_end + +_DroppedHiddenCoinsText:: + text_start + para "Oops! Dropped" + line "some coins!" + done + +_IndigoPlateauStatuesText1:: + text "INDIGO PLATEAU" + prompt + +_IndigoPlateauStatuesText2:: + text "The ultimate goal" + line "of trainers!" + cont "#MON LEAGUE HQ" + done + +_IndigoPlateauStatuesText3:: + text "The highest" + line "#MON authority" + cont "#MON LEAGUE HQ" + done + +_PokemonBooksText:: + text "Crammed full of" + line "#MON books!" + done + +_DiglettSculptureText:: + text "It's a sculpture" + line "of DIGLETT." + done + +_ElevatorText:: + text "This is an" + line "elevator." + done + +_TownMapText:: + text "A TOWN MAP.@" + text_end + +_PokemonStuffText:: + text "Wow! Tons of" + line "#MON stuff!" + done + +_OutOfSafariBallsText:: + text "PA: Ding-dong!" + + para "You are out of" + line "SAFARI BALLs!" + prompt + +_WildRanText:: + text "Wild @" + text_ram wEnemyMonNick + text_start + line "ran!" + prompt + +_EnemyRanText:: + text "Enemy @" + text_ram wEnemyMonNick + text_start + line "ran!" + prompt + +_HurtByPoisonText:: + text "'s" + line "hurt by poison!" + prompt + +_HurtByBurnText:: + text "'s" + line "hurt by the burn!" + prompt + +_HurtByLeechSeedText:: + text "LEECH SEED saps" + line "!" + prompt + +_EnemyMonFaintedText:: + text "Enemy @" + text_ram wEnemyMonNick + text_start + line "fainted!" + prompt + +_MoneyForWinningText:: + text " got ¥@" + text_bcd wAmountMoneyWon, 3 | LEADING_ZEROES | LEFT_ALIGN + text_start + line "for winning!" + prompt + +_TrainerDefeatedText:: + text " defeated" + line "@" + text_ram wTrainerName + text "!" + prompt + +_PlayerMonFaintedText:: + text_ram wBattleMonNick + text_start + line "fainted!" + prompt + +_UseNextMonText:: + text "Use next #MON?" + done + +_Sony1WinText:: + text ": Yeah! Am" + line "I great or what?" + prompt + +_PlayerBlackedOutText2:: + text " is out of" + line "useable #MON!" + + para " blacked" + line "out!" + prompt + +_LinkBattleLostText:: + text " lost to" + line "@" + text_ram wTrainerName + text "!" + prompt + +_TrainerAboutToUseText:: + text_ram wTrainerName + text " is" + line "about to use" + cont"@" + text_ram wEnemyMonNick + text "!" + + para "Will " + line "change #MON?" + done + +_TrainerSentOutText:: + text_ram wTrainerName + text " sent" + line "out @" + text_ram wEnemyMonNick + text "!" + done + +_NoWillText:: + text "There's no will" + line "to fight!" + prompt + +_CantEscapeText:: + text "Can't escape!" + prompt + +_NoRunningText:: + text "No! There's no" + line "running from a" + cont "trainer battle!" + prompt + +_GotAwayText:: + text "Got away safely!" + prompt + +_RunAwayText:: + text "Hurry, get away!" + prompt + +_ItemsCantBeUsedHereText:: + text "Items can't be" + line "used here." + prompt + +_AlreadyOutText:: + text_ram wBattleMonNick + text " is" + line "already out!" + prompt + +_MoveNoPPText:: + text "No PP left for" + line "this move!" + prompt + +_MoveDisabledText:: + text "The move is" + line "disabled!" + prompt + +_NoMovesLeftText:: + text_ram wBattleMonNick + text " has no" + line "moves left!" + done + +_MultiHitText:: + text "Hit the enemy" + line "@" + text_decimal wPlayerNumHits,1,1 + text " times!" + prompt + +_ScaredText:: + text_ram wBattleMonNick + text " is too" + line "scared to move!" + prompt + +_GetOutText:: + text "GHOST: Get out..." + line "Get out..." + prompt + +_FastAsleepText:: + text "" + line "is fast asleep!" + prompt + +_WokeUpText:: + text "" + line "woke up!" + prompt + +_IsFrozenText:: + text "" + line "is frozen solid!" + prompt + +_FullyParalyzedText:: + text "'s" + line "fully paralyzed!" + prompt + +_FlinchedText:: + text "" + line "flinched!" + prompt + +_MustRechargeText:: + text "" + line "must recharge!" + prompt + +_DisabledNoMoreText:: + text "'s" + line "disabled no more!" + prompt + +_IsConfusedText:: + text "" + line "is confused!" + prompt + +_HurtItselfText:: + text "It hurt itself in" + line "its confusion!" + prompt + +_ConfusedNoMoreText:: + text "'s" + line "confused no more!" + prompt + +_SavingEnergyText:: + text "" + line "is saving energy!" + prompt + +_UnleashedEnergyText:: + text "" + line "unleashed energy!" + prompt + +_ThrashingAboutText:: + text "'s" + line "thrashing about!" + done + +_AttackContinuesText:: + text "'s" + line "attack continues!" + done + +_CantMoveText:: + text "" + line "can't move!" + prompt + +_MoveIsDisabledText:: + text "'s" + line "@" + text_ram wcd6d + text " is" + cont "disabled!" + prompt + +_MonName1Text:: + text "@" + text_end + +_Used1Text:: + text_start + line "used @" + text_end + +_Used2Text:: + text_start + line "used @" + text_end + +_InsteadText:: + text "instead," + cont "@" + text_end + +_CF4BText:: + text_ram wcf4b + text "@" + +_ExclamationPoint1Text:: + text "!" + done + +_ExclamationPoint2Text:: + text "!" + done + +_ExclamationPoint3Text:: + text "!" + done + +_ExclamationPoint4Text:: + text "!" + done + +_ExclamationPoint5Text:: + text "!" + done + +_AttackMissedText:: + text "'s" + line "attack missed!" + prompt + +_KeptGoingAndCrashedText:: + text "" + line "kept going and" + cont "crashed!" + prompt + +_UnaffectedText:: + text "'s" + line "unaffected!" + prompt + +_DoesntAffectMonText:: + text "It doesn't affect" + line "!" + prompt + +_CriticalHitText:: + text "Critical hit!" + prompt + +_OHKOText:: + text "One-hit KO!" + prompt + +_LoafingAroundText:: + text_ram wBattleMonNick + text " is" + line "loafing around." + prompt + +_BeganToNapText:: + text_ram wBattleMonNick + text " began" + line "to nap!" + prompt + +_WontObeyText:: + text_ram wBattleMonNick + text " won't" + line "obey!" + prompt + +_TurnedAwayText:: + text_ram wBattleMonNick + text " turned" + line "away!" + prompt + +_IgnoredOrdersText:: + text_ram wBattleMonNick + text_start + line "ignored orders!" + prompt + +_SubstituteTookDamageText:: + text "The SUBSTITUTE" + line "took damage for" + cont "!" + prompt + +_SubstituteBrokeText:: + text "'s" + line "SUBSTITUTE broke!" + prompt + +_BuildingRageText:: + text "'s" + line "RAGE is building!" + prompt + +_MirrorMoveFailedText:: + text "The MIRROR MOVE" + next "failed!" + prompt + +_HitXTimesText:: + text "Hit @" + text_decimal wEnemyNumHits, 1, 1 + text " times!" + prompt + +_GainedText:: + text_ram wcd6d + text " gained" + line "@" + text_end + +_WithExpAllText:: + text "with EXP.ALL," + cont "@" + text_end + +_BoostedText:: + text "a boosted" + cont "@" + text_end + +_ExpPointsText:: + text_decimal wExpAmountGained, 2, 4 + text " EXP. Points!" + prompt + +_GrewLevelText:: + text_ram wcd6d + text " grew" + line "to level @" + text_decimal wCurEnemyLVL, 1, 3 + text "!@" + text_end + +_SuperEffectiveText:: + text "It's super" + line "effective!" + prompt + +_NotVeryEffectiveText:: + text "It's not very" + line "effective..." + prompt + +_SafariZoneEatingText:: + text "Wild @" + text_ram wEnemyMonNick + text_start + line "is eating!" + prompt + +_SafariZoneAngryText:: + text "Wild @" + text_ram wEnemyMonNick + text_start + line "is angry!" + prompt + +_WildMonAppearedText:: + text "Wild @" + text_ram wEnemyMonNick + text_start + line "appeared!" + prompt + +_HookedMonAttackedText:: + text "The hooked" + line "@" + text_ram wEnemyMonNick + text_start + cont "attacked!" + prompt diff --git a/data/text/text_3.asm b/data/text/text_3.asm new file mode 100644 index 000000000..bd4184029 --- /dev/null +++ b/data/text/text_3.asm @@ -0,0 +1,637 @@ +_EnemyAppearedText:: + text_ram wEnemyMonNick + text_start + line "appeared!" + prompt + +_TrainerWantsToFightText:: + text_ram wTrainerName + text " wants" + line "to fight!" + prompt + +_UnveiledGhostText:: + text "SILPH SCOPE" + line "unveiled the" + cont "GHOST's identity!" + prompt + +_GhostCantBeIDdText:: + text "Darn! The GHOST" + line "can't be ID'd!" + prompt + +_GoText:: + text "Go! @" + text_end + +_DoItText:: + text "Do it! @" + text_end + +_GetmText:: + text "Get'm! @" + text_end + +_EnemysWeakText:: + text "The enemy's weak!" + line "Get'm! @" + text_end + +_PlayerMon1Text:: + text_ram wBattleMonNick + text "!" + done + +_PlayerMon2Text:: + text_ram wBattleMonNick + text " @" + text_end + +_EnoughText:: + text "enough!@" + text_end + +_OKExclamationText:: + text "OK!@" + text_end + +_GoodText:: + text "good!@" + text_end + +_ComeBackText:: + text_start + line "Come back!" + done + +; money related +_PickUpPayDayMoneyText:: + text " picked up" + line "¥@" + text_bcd wTotalPayDayMoney, 3 | LEADING_ZEROES | LEFT_ALIGN + text "!" + prompt + +_ClearSaveDataText:: + text "Clear all saved" + line "data?" + done + +_WhichFloorText:: + text "Which floor do" + line "you want? " + done + +_SleepingPikachuText1:: + text "There isn't any" + line "response..." + prompt + +_PartyMenuNormalText:: + text "Choose a #MON." + done + +_PartyMenuItemUseText:: + text "Use item on which" + line "#MON?" + done + +_PartyMenuBattleText:: + text "Bring out which" + line "#MON?" + done + +_PartyMenuUseTMText:: + text "Teach to which" + line "#MON?" + done + +_PartyMenuSwapMonText:: + text "Move #MON" + line "where?" + done + +_PotionText:: + text_ram wcd6d + text_start + line "recovered by @" + text_decimal wHPBarHPDifference, 2, 3 + text "!" + done + +_AntidoteText:: + text_ram wcd6d + text " was" + line "cured of poison!" + done + +_ParlyzHealText:: + text_ram wcd6d + text "'s" + line "rid of paralysis!" + done + +_BurnHealText:: + text_ram wcd6d + text "'s" + line "burn was healed!" + done + +_IceHealText:: + text_ram wcd6d + text " was" + line "defrosted!" + done + +_AwakeningText:: + text_ram wcd6d + text_start + line "woke up!" + done + +_FullHealText:: + text_ram wcd6d + text "'s" + line "health returned!" + done + +_ReviveText:: + text_ram wcd6d + text_start + line "is revitalized!" + done + +_RareCandyText:: + text_ram wcd6d + text " grew" + line "to level @" + text_decimal wCurEnemyLVL, 1, 3 + text "!@" + text_end + +_TurnedOnPC1Text:: + text " turned on" + line "the PC." + prompt + +_AccessedBillsPCText:: + text "Accessed BILL's" + line "PC." + + para "Accessed #MON" + line "Storage System." + prompt + +_AccessedSomeonesPCText:: + text "Accessed someone's" + line "PC." + + para "Accessed #MON" + line "Storage System." + prompt + +_AccessedMyPCText:: + text "Accessed my PC." + + para "Accessed Item" + line "Storage System." + prompt + +_TurnedOnPC2Text:: + text " turned on" + line "the PC." + prompt + +_WhatDoYouWantText:: + text "What do you want" + line "to do?" + done + +_WhatToDepositText:: + text "What do you want" + line "to deposit?" + done + +_DepositHowManyText:: + text "How many?" + done + +_ItemWasStoredText:: + text_ram wcd6d + text " was" + line "stored via PC." + prompt + +_NothingToDepositText:: + text "You have nothing" + line "to deposit." + prompt + +_NoRoomToStoreText:: + text "No room left to" + line "store items." + prompt + +_WhatToWithdrawText:: + text "What do you want" + line "to withdraw?" + done + +_WithdrawHowManyText:: + text "How many?" + done + +_WithdrewItemText:: + text "Withdrew" + line "@" + text_ram wcd6d + text "." + prompt + +_NothingStoredText:: + text "There is nothing" + line "stored." + prompt + +_CantCarryMoreText:: + text "You can't carry" + line "any more items." + prompt + +_WhatToTossText:: + text "What do you want" + line "to toss away?" + done + +_TossHowManyText:: + text "How many?" + done + +_AccessedHoFPCText:: + text "Accessed #MON" + line "LEAGUE's site." + + para "Accessed the HALL" + line "OF FAME List." + prompt + +_SleepingPikachuText2:: + text "There isn't any" + line "response..." + prompt + +_SwitchOnText:: + text "Switch on!" + prompt + +_WhatText:: + text "What?" + done + +_DepositWhichMonText:: + text "Deposit which" + line "#MON?" + done + +_MonWasStoredText:: + text_ram wcf4b + text " was" + line "stored in Box @" + text_ram wBoxNumString + text "." + prompt + +_CantDepositLastMonText:: + text "You can't deposit" + line "the last #MON!" + prompt + +_BoxFullText:: + text "Oops! This Box is" + line "full of #MON." + prompt + +_MonIsTakenOutText:: + text_ram wcf4b + text " is" + line "taken out." + cont "Got @" + text_ram wcf4b + text "." + prompt + +_NoMonText:: + text "What? There are" + line "no #MON here!" + prompt + +_CantTakeMonText:: + text "You can't take" + line "any more #MON." + + para "Deposit #MON" + line "first." + prompt + +_PikachuUnhappyText:: + text_ram wcd6d + text " looks" + line "unhappy about it!" + prompt + +_ReleaseWhichMonText:: + text "Release which" + line "#MON?" + done + +_OnceReleasedText:: + text "Once released," + line "@" + text_ram wcf4b + text " is" + cont "gone forever. OK?" + done + +_MonWasReleasedText:: + text_ram wcf4b + text " was" + line "released outside." + cont "Bye @" + +_CF4BExclamationText:: + text_ram wcf4b + text "!" + prompt + +_RequireCoinCaseText:: + text "A COIN CASE is" + line "required!@" + text_end + +_ExchangeCoinsForPrizesText:: + text "We exchange your" + line "coins for prizes." + prompt + +_WhichPrizeText:: + text "Which prize do" + line "you want?" + done + +_HereYouGoText:: + text "Here you go!@" + text_end + +_SoYouWantPrizeText:: + text "So, you want" + line "@" + text_ram wcd6d + text "?" + done + +_SorryNeedMoreCoinsText:: + text "Sorry, you need" + line "more coins.@" + text_end + +_OopsYouDontHaveEnoughRoomText:: + text "Oops! You don't" + line "have enough room.@" + text_end + +_OhFineThenText:: + text "Oh, fine then.@" + text_end + +_GetDexRatedText:: + text "Want to get your" + line "#DEX rated?" + done + +_ClosedOaksPCText:: + text "Closed link to" + line "PROF.OAK's PC.@" + text_end + +_AccessedOaksPCText:: + text "Accessed PROF." + line "OAK's PC." + + para "Accessed #DEX" + line "Rating System." + prompt + +_ExpressionText:: + text "This expression is" + line "No. @" + text_decimal wExpressionNumber, 1, 2 + text "." + prompt + +_NotEnoughMemoryText:: + text "Not enough Yellow" + line "Version memory." + done + +_OakSpeechText1:: + text "Hello there!" + line "Welcome to the" + cont "world of #MON!" + + para "My name is OAK!" + line "People call me" + cont "the #MON PROF!" + prompt + +_OakSpeechText2A:: + text "This world is" + line "inhabited by" + cont "creatures called" + cont "#MON!@" + text_end + +_OakSpeechText2B:: + text $51,"For some people," + line "#MON are" + cont "pets. Others use" + cont "them for fights." + + para "Myself..." + + para "I study #MON" + line "as a profession." + prompt + +_IntroducePlayerText:: + text "First, what is" + line "your name?" + prompt + +_IntroduceRivalText:: + text "This is my grand-" + line "son. He's been" + cont "your rival since" + cont "you were a baby." + + para "...Erm, what is" + line "his name again?" + prompt + +_OakSpeechText3:: + text "!" + + para "Your very own" + line "#MON legend is" + cont "about to unfold!" + + para "A world of dreams" + line "and adventures" + cont "with #MON" + cont "awaits! Let's go!" + done + +_DoYouWantToNicknameText:: + text "Do you want to" + line "give a nickname" + cont "to @" + text_ram wcd6d + text "?" + done + +_YourNameIsText:: + text "Right! So your" + line "name is !" + prompt + +_HisNameIsText:: + text "That's right! I" + line "remember now! His" + cont "name is !" + prompt + +_WillBeTradedText:: + text_ram wNameOfPlayerMonToBeTraded + text " and" + line "@" + text_ram wcd6d + text " will" + cont "be traded." + done + +_Colosseum3MonsText:: + text "You need 3 #MON" + line "to fight!" + prompt + +_ColosseumMewText:: + text "Sorry, MEW can't" + line "attend!" + prompt + +_ColosseumDifferentMonsText:: + text "Your #MON must" + line "all be different!" + prompt + +_ColosseumMaxL55Text:: + text "No #MON can" + line "exceed L55!" + prompt + +_ColosseumMinL50Text:: + text "All #MON must" + line "be at least L50!" + prompt + +_ColosseumTotalL155Text:: + text "Your total levels" + line "exceed 155!" + prompt + +_ColosseumMaxL30Text:: + text "No #MON can" + line "exceed L30!" + prompt + +_ColosseumMinL25Text:: + text "All #MON must" + line "be at least L25!" + prompt + +_ColosseumTotalL80Text:: + text "Your total levels" + line "exceed 80!" + prompt + +_ColosseumMaxL20Text:: + text "No #MON can" + line "exceed L20!" + prompt + +_ColosseumMinL15Text:: + text "All #MON must" + line "be at least L15!" + prompt + +_ColosseumTotalL50Text:: + text "Your total levels" + line "exceed 50!" + prompt + +_ColosseumHeightText:: + text_ram wcd6d + text " is over" + line "6’8” tall!" + prompt + +_ColosseumWeightText:: + text_ram wcd6d + text " weighs" + line "over 44 pounds!" + prompt + +_ColosseumEvolvedText:: + text_ram wcd6d + text " is an" + line "evolved #MON!" + prompt + +_ColosseumIneligibleText:: + text "Your opponent is" + line "ineligible." + prompt + +_ColosseumWhereToText:: + text "Where would you" + line "like to go?" + done + +_ColosseumPleaseWaitText:: + text "OK, please wait" + line "just a moment." + done + +_ColosseumCanceledText:: + text "The link was" + line "canceled." + done + +_ColosseumVersionText:: + text "The game versions" + line "don't match." + prompt + +_TextIDErrorText:: + text_decimal hSpriteIndexOrTextID, 1, 2 + text " error." + done + +_ContCharText:: + text "<_CONT>@" + text_end + +_NoPokemonText:: + text "There are no" + line "#MON here!" + prompt diff --git a/data/text/text_4.asm b/data/text/text_4.asm new file mode 100644 index 000000000..4c3d6a9c9 --- /dev/null +++ b/data/text/text_4.asm @@ -0,0 +1,56 @@ +_FileDataDestroyedText:: + text "The file data is" + line "destroyed!" + prompt + +_WouldYouLikeToSaveText:: + text "Would you like to" + line "SAVE the game?" + done + +_SavingText:: + text "Saving..." + done + +_GameSavedText:: + text " saved" + line "the game!" + done + +_OlderFileWillBeErasedText:: + text "The older file" + line "will be erased to" + cont "save. Okay?" + done + +_WhenYouChangeBoxText:: + text "When you change a" + line "#MON BOX, data" + cont "will be saved." + + para "Is that okay?" + done + +_ChooseABoxText:: + text "Choose a" + line " BOX.@" + text_end + +_EvolvedText:: + text_ram wcf4b + text " evolved" + done + +_IntoText:: + text_start + line "into @" + text_ram wcd6d + text "!" + done + +_StoppedEvolvingText:: + text "Huh? @" + text_ram wcf4b + text_start + line "stopped evolving!" + prompt diff --git a/data/text/text_5.asm b/data/text/text_5.asm new file mode 100644 index 000000000..fc758be9b --- /dev/null +++ b/data/text/text_5.asm @@ -0,0 +1,277 @@ +_IsEvolvingText:: + text "What? @" + text_ram wcf4b + text_start + line "is evolving!" + done + +_FellAsleepText:: + text "" + line "fell asleep!" + prompt + +_AlreadyAsleepText:: + text "'s" + line "already asleep!" + prompt + +_PoisonedText:: + text "" + line "was poisoned!" + prompt + +_BadlyPoisonedText:: + text "'s" + line "badly poisoned!" + prompt + +_BurnedText:: + text "" + line "was burned!" + prompt + +_FrozenText:: + text "" + line "was frozen solid!" + prompt + +_FireDefrostedText:: + text "Fire defrosted" + line "!" + prompt + +_MonsStatsRoseText:: + text "'s" + line "@" + text_ram wcf4b + text "@" + text_end + +_GreatlyRoseText:: + text "greatly@" + text_end + +_RoseText:: + text " rose!" + prompt + +_MonsStatsFellText:: + text "'s" + line "@" + text_ram wcf4b + text "@" + text_end + +_GreatlyFellText:: + text "greatly@" + text_end + +_FellText:: + text " fell!" + prompt + +_RanFromBattleText:: + text "" + line "ran from battle!" + prompt + +_RanAwayScaredText:: + text "" + line "ran away scared!" + prompt + +_WasBlownAwayText:: + text "" + line "was blown away!" + prompt + +_ChargeMoveEffectText:: + text "@" + text_end + +_MadeWhirlwindText:: + text_start + line "made a whirlwind!" + prompt + +_TookInSunlightText:: + text_start + line "took in sunlight!" + prompt + +_LoweredItsHeadText:: + text_start + line "lowered its head!" + prompt + +_SkyAttackGlowingText:: + text_start + line "is glowing!" + prompt + +_FlewUpHighText:: + text_start + line "flew up high!" + prompt + +_DugAHoleText:: + text_start + line "dug a hole!" + prompt + +_BecameConfusedText:: + text "" + line "became confused!" + prompt + +_MimicLearnedMoveText:: + text "" + line "learned" + cont "@" + text_ram wcd6d + text "!" + prompt + +_MoveWasDisabledText:: + text "'s" + line "@" + text_ram wcd6d + text " was" + cont "disabled!" + prompt + +_NothingHappenedText:: + text "Nothing happened!" + prompt + +_NoEffectText:: + text "No effect!" + prompt + +_ButItFailedText:: + text "But, it failed! " + prompt + +_DidntAffectText:: + text "It didn't affect" + line "!" + prompt + +_IsUnaffectedText:: + text "" + line "is unaffected!" + prompt + +_ParalyzedMayNotAttackText:: + text "'s" + line "paralyzed! It may" + cont "not attack!" + prompt + +_SubstituteText:: + text "It created a" + line "SUBSTITUTE!" + prompt + +_HasSubstituteText:: + text "" + line "has a SUBSTITUTE!" + prompt + +_TooWeakSubstituteText:: + text "Too weak to make" + line "a SUBSTITUTE!" + prompt + +_WasSeededText:: + text "" + line "was seeded!" + prompt + +_EvadedAttackText:: + text "" + line "evaded attack!" + prompt + +_HitWithRecoilText:: + text "'s" + line "hit with recoil!" + prompt + +_ConvertedTypeText:: + text "Converted type to" + line "'s!" + prompt + +_StatusChangesEliminatedText:: + text "All STATUS changes" + line "are eliminated!" + prompt + +_GettingPumpedText:: + text "'s" + line "getting pumped!" + prompt + +_StartedSleepingEffect:: + text "" + line "started sleeping!" + done + +_FellAsleepBecameHealthyText:: + text "" + line "fell asleep and" + cont "became healthy!" + done + +_RegainedHealthText:: + text "" + line "regained health!" + prompt + +_TransformedText:: + text "" + line "transformed into" + cont "@" + text_ram wcd6d + text "!" + prompt + +_LightScreenProtectedText:: + text "'s" + line "protected against" + cont "special attacks!" + prompt + +_ReflectGainedArmorText:: + text "" + line "gained armor!" + prompt + +_ShroudedInMistText:: + text "'s" + line "shrouded in mist!" + prompt + +_CoinsScatteredText:: + text "Coins scattered" + line "everywhere!" + prompt + +_SuckedHealthText:: + text "Sucked health from" + line "!" + prompt + +_DreamWasEatenText:: + text "'s" + line "dream was eaten!" + prompt + +_TradeCenterText1:: + text "!" + done + +_ColosseumText1:: + text "!" + done diff --git a/data/text/text_6.asm b/data/text/text_6.asm new file mode 100644 index 000000000..bcdc75a31 --- /dev/null +++ b/data/text/text_6.asm @@ -0,0 +1,10 @@ +TeachingHMsText:: + text "Once a #MON" + line "learns an HM, the" + cont "technique can't" + cont "be replaced." + + para "Better think care-" + line "fully before you" + cont "teach HM moves." + done diff --git a/data/text/text_7.asm b/data/text/text_7.asm new file mode 100644 index 000000000..88c7d884a --- /dev/null +++ b/data/text/text_7.asm @@ -0,0 +1,216 @@ +_PokemonText:: + text "#MON!" + done + +_PokemartGreetingText:: + text "Hi there!" + next "May I help you?" + done + +_PokemonFaintedText:: + text_ram wcd6d + text_start + line "fainted!" + done + +_PlayerBlackedOutText:: + text " is out of" + line "useable #MON!" + + para " blacked" + line "out!" + prompt + +_RepelWoreOffText:: + text "REPEL's effect" + line "wore off." + done + +_PokemartBuyingGreetingText:: + text "Take your time." + done + +_PokemartTellBuyPriceText:: + text_ram wcf4b + text "?" + line "That will be" + cont "¥@" + text_bcd hMoney, 3 | LEADING_ZEROES | LEFT_ALIGN + text ". OK?" + done + +_PokemartBoughtItemText:: + text "Here you are!" + line "Thank you!" + prompt + +_PokemartNotEnoughMoneyText:: + text "You don't have" + line "enough money." + prompt + +_PokemartItemBagFullText:: + text "You can't carry" + line "any more items." + prompt + +_PokemonSellingGreetingText:: + text "What would you" + line "like to sell?" + done + +_PokemartTellSellPriceText:: + text "I can pay you" + line "¥@" + text_bcd hMoney, 3 | LEADING_ZEROES | LEFT_ALIGN + text " for that." + done + +_PokemartItemBagEmptyText:: + text "You don't have" + line "anything to sell." + prompt + +_PokemartUnsellableItemText:: + text "I can't put a" + line "price on that." + prompt + +_PokemartThankYouText:: + text "Thank you!" + done + +_PokemartAnythingElseText:: + text "Is there anything" + line "else I can do?" + done + +_LearnedMove1Text:: + text_ram wLearnMoveMonName + text " learned" + line "@" + text_ram wcf4b + text "!@" + text_end + +_WhichMoveToForgetText:: + text "Which move should" + next "be forgotten?" + done + +_AbandonLearningText:: + text "Abandon learning" + line "@" + text_ram wcf4b + text "?" + done + +_DidNotLearnText:: + text_ram wLearnMoveMonName + text_start + line "did not learn" + cont "@" + text_ram wcf4b + text "!" + prompt + +_TryingToLearnText:: + text_ram wLearnMoveMonName + text " is" + line "trying to learn" + cont "@" + text_ram wcf4b + text "!" + + para "But, @" + text_ram wLearnMoveMonName + text_start + line "can't learn more" + cont "than 4 moves!" + + para "Delete an older" + line "move to make room" + cont "for @" + text_ram wcf4b + text "?" + done + +_OneTwoAndText:: + text "1, 2 and...@" + text_end + +_PoofText:: + text " Poof!@" + text_end + +_ForgotAndText:: + text_start + para "@" + text_ram wLearnMoveMonName + text " forgot" + line "@" + text_ram wcd6d + text "!" + + para "And..." + prompt + +_HMCantDeleteText:: + text "HM techniques" + line "can't be deleted!" + prompt + +_PokemonCenterWelcomeText:: + text "Welcome to our" + line "#MON CENTER!" + + para "We heal your" + line "#MON back to" + cont "perfect health!" + prompt + +_ShallWeHealYourPokemonText:: + text "Shall we heal your" + line "#MON?" + done + +_NeedYourPokemonText:: + text "OK. We'll need" + line "your #MON." + done + +_PokemonFightingFitText:: + text "Thank you!" + line "Your #MON are" + cont "fighting fit!" + prompt + +_PokemonCenterFarewellText:: + text "We hope to see" + line "you again!" + done + +_LooksContentText:: + text "It looks very" + line "content asleep." + done + +_CableClubNPCAreaReservedFor2FriendsLinkedByCableText:: + text "This area is" + line "reserved for 2" + cont "friends who are" + cont "linked by cable." + done + +_CableClubNPCWelcomeText:: + text "Welcome to the" + line "Cable Club!" + done + +_CableClubNPCPleaseApplyHereHaveToSaveText:: + text "Please apply here." + + para "Before opening" + line "the link, we have" + cont "to save the game." + done diff --git a/data/text/text_8.asm b/data/text/text_8.asm new file mode 100644 index 000000000..d8d11d50c --- /dev/null +++ b/data/text/text_8.asm @@ -0,0 +1,118 @@ +_CableClubNPCPleaseWaitText:: + text "Please wait.@" + text_end + +_CableClubNPCLinkClosedBecauseOfInactivityText:: + text "The link has been" + line "closed because of" + cont "inactivity." + + para "Please contact" + line "your friend and" + cont "come again!" + done + +_CableClubNPCPleaseComeAgainText:: + text "Please come again!" + done + +_CableClubNPCMakingPreparationsText:: + text "We're making" + line "preparations." + cont "Please wait." + done + +_FlashLightsAreaText:: + text "A blinding FLASH" + line "lights the area!" + prompt + +_WarpToLastPokemonCenterText:: + text "Warp to the last" + line "#MON CENTER." + done + +_CannotUseTeleportNowText:: + text_ram wcd6d + text " can't" + line "use TELEPORT now." + prompt + +_CannotFlyHereText:: + text_ram wcd6d + text " can't" + line "FLY here." + prompt + +_NotHealthyEnoughText:: + text "Not healthy" + line "enough." + prompt + +_NewBadgeRequiredText:: + text "No! A new BADGE" + line "is required." + prompt + +_CannotUseItemsHereText:: + text "You can't use items" + line "here." + prompt + +_CannotGetOffHereText:: + text "You can't get off" + line "here." + prompt + +_UsedStrengthText:: + text_ram wcd6d + text " used" + line "STRENGTH.@" + text_end + +_CanMoveBouldersText:: + text_ram wcd6d + text " can" + line "move boulders." + prompt + +_CurrentTooFastText:: + text "The current is" + line "much too fast!" + prompt + +_CyclingIsFunText:: + text "Cycling is fun!" + line "Forget SURFing!" + prompt + +_GotMonText:: + text " got" + line "@" + text_ram wcd6d + text "!@" + text_end + +_SentToBoxText:: + text "There's no more" + line "room for #MON!" + cont "@" + text_ram wBoxMonNicks + text " was" + cont "sent to #MON" + cont "BOX @" + text_ram wcf4b + text " on PC!" + done + +_BoxIsFullText:: + text "There's no more" + line "room for #MON!" + + para "The #MON BOX" + line "is full and can't" + cont "accept any more!" + + para "Change the BOX at" + line "a #MON CENTER!" + done diff --git a/data/text/text_9.asm b/data/text/text_9.asm new file mode 100644 index 000000000..a5aff49c4 --- /dev/null +++ b/data/text/text_9.asm @@ -0,0 +1,442 @@ +_ItemUseBallText00:: + text "It dodged the" + line "thrown BALL!" + + para "This #MON" + line "can't be caught!" + prompt + +_ItemUseBallText01:: + text "You missed the" + line "#MON!" + prompt + +_ItemUseBallText02:: + text "Darn! The #MON" + line "broke free!" + prompt + +_ItemUseBallText03:: + text "Aww! It appeared" + line "to be caught! " + prompt + +_ItemUseBallText04:: + text "Shoot! It was so" + line "close too!" + prompt + +_ItemUseBallText05:: + text "All right!" + line "@" + text_ram wEnemyMonNick + text " was" + cont "caught!@" + text_end + +_ItemUseBallText07:: + text_ram wBoxMonNicks + text " was" + line "transferred to" + cont "BILL's PC!" + prompt + +_ItemUseBallText08:: + text_ram wBoxMonNicks + text " was" + line "transferred to" + cont "someone's PC!" + prompt + +_ItemUseBallText06:: + text "New #DEX data" + line "will be added for" + cont "@" + text_ram wEnemyMonNick + text "!@" + text_end + +_SurfingGotOnText:: + text " got on" + line "@" + text_ram wcd6d + text "!" + prompt + +_SurfingNoPlaceToGetOffText:: + text "There's no place" + line "to get off!" + prompt + +_RefusingText:: + text_ram wcd6d + text_start + line "is refusing!" + prompt + +_VitaminStatRoseText:: + text_ram wcd6d + text "'s" + line "@" + text_ram wcf4b + text " rose." + prompt + +_VitaminNoEffectText:: + text "It won't have any" + line "effect." + prompt + +_ThrewBaitText:: + text " threw" + line "some BAIT." + done + +_ThrewRockText:: + text " threw a" + line "ROCK." + done + +_PlayedFluteNoEffectText:: + text "Played the #" + line "FLUTE." + + para "Now, that's a" + line "catchy tune!" + prompt + +_FluteWokeUpText:: + text "All sleeping" + line "#MON woke up." + prompt + +_PlayedFluteHadEffectText:: + text " played the" + line "# FLUTE.@" + text_end + +_CoinCaseNumCoinsText:: + text "Coins" + line "@" + text_bcd wPlayerCoins, 2 | LEADING_ZEROES | LEFT_ALIGN + text " " + prompt + +_ItemfinderFoundItemText:: + text "Yes! ITEMFINDER" + line "indicates there's" + cont "an item nearby." + prompt + +_ItemfinderFoundNothingText:: + text "Nope! ITEMFINDER" + line "isn't responding." + prompt + +_RaisePPWhichTechniqueText:: + text "Raise PP of which" + line "technique?" + done + +_RestorePPWhichTechniqueText:: + text "Restore PP of" + line "which technique?" + done + +_PPMaxedOutText:: + text_ram wcf4b + text "'s PP" + line "is maxed out." + prompt + +_PPIncreasedText:: + text_ram wcf4b + text "'s PP" + line "increased." + prompt + +_PPRestoredText:: + text "PP was restored." + prompt + +_BootedUpTMText:: + text "Booted up a TM!" + prompt + +_BootedUpHMText:: + text "Booted up an HM!" + prompt + +_TeachMachineMoveText:: + text "It contained" + line "@" + text_ram wcf4b + text "!" + + para "Teach @" + text_ram wcf4b + text_start + line "to a #MON?" + done + +_MonCannotLearnMachineMoveText:: + text_ram wcd6d + text " is not" + line "compatible with" + cont "@" + text_ram wcf4b + text "." + + para "It can't learn" + line "@" + text_ram wcf4b + text "." + prompt + +_ItemUseNotTimeText:: + text "OAK: !" + line "This isn't the" + cont "time to use that! " + prompt + +_ItemUseNotYoursToUseText:: + text "This isn't yours" + line "to use!" + prompt + +_ItemUseNoEffectText:: + text "It won't have any" + line "effect." + prompt + +_ThrowBallAtTrainerMonText1:: + text "The trainer" + line "blocked the BALL!" + prompt + +_ThrowBallAtTrainerMonText2:: + text "Don't be a thief!" + prompt + +_NoCyclingAllowedHereText:: + text "No cycling" + next "allowed here." + prompt + +_NoSurfingHereText:: + text "No SURFing on" + line "@" + text_ram wcd6d + text " here!" + prompt + +_BoxFullCannotThrowBallText:: + text "The #MON BOX" + line "is full! Can't" + cont "use that item!" + prompt + +_DontHavePokemonText:: + text "You don't have a " + line "#MON!" + prompt + +_ItemUseText001:: + text " used@" + text_end + +_ItemUseText002:: + text_ram wcf4b + text "!" + done + +_GotOnBicycleText1:: + text " got on the@" + text_end + +_GotOnBicycleText2:: + text_ram wcf4b + text "!" + prompt + +_GotOffBicycleText1:: + text " got off@" + text_end + +_GotOffBicycleText2:: + text "the @" + text_ram wcf4b + text "." + prompt + +_ThrewAwayItemText:: + text "Threw away" + line "@" + text_ram wcd6d + text "." + prompt + +_IsItOKToTossItemText:: + text "Is it OK to toss" + line "@" + text_ram wcf4b + text "?" + prompt + +_TooImportantToTossText:: + text "That's too impor-" + line "tant to toss!" + prompt + +_AlreadyKnowsText:: + text_ram wcd6d + text " knows" + line "@" + text_ram wcf4b + text "!" + prompt + +_ConnectCableText:: + text "Okay, connect the" + line "cable like so!" + prompt + +_TradedForText:: + text " traded" + line "@" + text_ram wInGameTradeGiveMonName + text " for" + cont "@" + text_ram wInGameTradeReceiveMonName + text "!@" + text_end + +_WannaTrade1Text:: + text "I'm looking for" + line "@" + text_ram wInGameTradeGiveMonName + text "! Wanna" + + para "trade one for" + line "@" + text_ram wInGameTradeReceiveMonName + text "? " + done + +_NoTrade1Text:: + text "Awww!" + line "Oh well..." + done + +_WrongMon1Text:: + text "What? That's not" + line "@" + text_ram wInGameTradeGiveMonName + text "!" + + para "If you get one," + line "come back here!" + done + +_Thanks1Text:: + text "Hey thanks!" + done + +_AfterTrade1Text:: + text "Isn't my old" + line "@" + text_ram wInGameTradeReceiveMonName + text " great?" + done + +_WannaTrade2Text:: + text "Hello there! Do" + line "you want to trade" + + para "your @" + text_ram wInGameTradeGiveMonName + text_start + line "for @" + text_ram wInGameTradeReceiveMonName + text "?" + done + +_NoTrade2Text:: + text "Well, if you" + line "don't want to..." + done + +_WrongMon2Text:: + text "Hmmm? This isn't" + line "@" + text_ram wInGameTradeGiveMonName + text "." + + para "Think of me when" + line "you get one." + done + +_Thanks2Text:: + text "Thanks!" + done + +_AfterTrade2Text:: + text "Hello there! Your" + line "old @" + text_ram wInGameTradeGiveMonName + text " is" + cont "magnificent!" + done + +_WannaTrade3Text:: + text "Hi! Do you have" + line "@" + text_ram wInGameTradeGiveMonName + text "?" + + para "Want to trade it" + line "for @" + text_ram wInGameTradeReceiveMonName + text "?" + done + +_NoTrade3Text:: + text "That's too bad." + done + +_WrongMon3Text:: + text "...This is no" + line "@" + text_ram wInGameTradeGiveMonName + text "." + + para "If you get one," + line "trade it with me!" + done + +_Thanks3Text:: + text "Thanks, pal!" + done + +_AfterTrade3Text:: + text "How is my old" + line "@" + text_ram wInGameTradeReceiveMonName + text "?" + + para "My @" + text_ram wInGameTradeGiveMonName + text " is" + line "doing great!" + done + +_NothingToCutText:: + text "There isn't" + line "anything to CUT!" + prompt + +_UsedCutText:: + text_ram wcd6d + text " hacked" + line "away with CUT!" + prompt diff --git a/data/text/unused_names.asm b/data/text/unused_names.asm new file mode 100644 index 000000000..349a31cf8 --- /dev/null +++ b/data/text/unused_names.asm @@ -0,0 +1,22 @@ +UnusedBadgeNames:: + db "かみなりバッヂ@" ; THUNDER BADGE + db "かいがらバッヂ@" ; SHELL BADGE + db "おじぞうバッヂ@" ; JIZOU BADGE + db "はやぶさバッヂ@" ; FALCON BADGE + db "ひんやりバッヂ@" ; CHILL BADGE + db "なかよしバッヂ@" ; FRIENDSHIP BADGE + db "バラバッヂ@" ; ROSE BADGE + db "ひのたまバッヂ@" ; FIREBALL BADGE + db "ゴールドバッヂ@" ; GOLD BADGE + +UnusedRankingNames: + db "たまご@" ; EGG + db "ひよこ@" ; CHICK + db "ブロンズ@" ; BRONZE + db "シルバー@" ; SILVER + db "ゴールド@" ; GOLD + db "プチキャプテン@" ; PETIT CAPTAIN + db "キャプテン@" ; CAPTAIN + db "プチマスター@" ; PETIT MASTER + db "マスター@" ; MASTER + db "エクセレント" ; EXCELLENT diff --git a/data/text_boxes.asm b/data/text_boxes.asm new file mode 100644 index 000000000..34e6a4147 --- /dev/null +++ b/data/text_boxes.asm @@ -0,0 +1,88 @@ +TextBoxFunctionTable: + ; text box ID, function address + dbw MONEY_BOX, DisplayMoneyBox + dbw BUY_SELL_QUIT_MENU, DoBuySellQuitMenu + dbw FIELD_MOVE_MON_MENU, DisplayFieldMoveMonMenu + db -1 ; end + +TextBoxCoordTable: + ; text box ID, upper-left X, upper-left Y, lower-right X, lower-right Y + db MESSAGE_BOX, 0, 12, 19, 17 + db MENU_TEMPLATE_03, 0, 0, 19, 14 + db MENU_TEMPLATE_07, 0, 0, 11, 6 + db LIST_MENU_BOX, 4, 2, 19, 12 + db MENU_TEMPLATE_10, 7, 0, 19, 17 + db MON_SPRITE_POPUP, 6, 4, 14, 13 + db -1 ; end + +text_box_text: MACRO + db \1 ; text box ID + db \2, \3, \4, \5 ; text box coordinates + dw \6 ; text pointer + db \7, \8 ; text coordinates +ENDM + +TextBoxTextAndCoordTable: + ; text box ID, upper-left X, upper-left Y, lower-right X, lower-right Y, text pointer, text X, text Y + text_box_text JP_MOCHIMONO_MENU_TEMPLATE, 0, 0, 14, 17, JapaneseMochimonoText, 3, 0 + text_box_text USE_TOSS_MENU_TEMPLATE, 13, 10, 19, 14, UseTossText, 15, 11 + text_box_text JP_SAVE_MESSAGE_MENU_TEMPLATE, 0, 0, 7, 5, JapaneseSaveMessageText, 2, 2 + text_box_text JP_SPEED_OPTIONS_MENU_TEMPLATE, 0, 6, 5, 10, JapaneseSpeedOptionsText, 2, 7 + text_box_text BATTLE_MENU_TEMPLATE, 8, 12, 19, 17, BattleMenuText, 10, 14 + text_box_text SAFARI_BATTLE_MENU_TEMPLATE, 0, 12, 19, 17, SafariZoneBattleMenuText, 2, 14 + text_box_text SWITCH_STATS_CANCEL_MENU_TEMPLATE, 11, 11, 19, 17, SwitchStatsCancelText, 13, 12 + text_box_text BUY_SELL_QUIT_MENU_TEMPLATE, 0, 0, 10, 6, BuySellQuitText, 2, 1 + text_box_text MONEY_BOX_TEMPLATE, 11, 0, 19, 2, MoneyText, 13, 0 + text_box_text JP_AH_MENU_TEMPLATE, 7, 6, 11, 10, JapaneseAhText, 8, 8 + text_box_text JP_POKEDEX_MENU_TEMPLATE, 11, 8, 19, 17, JapanesePokedexMenu, 12, 10 + +BuySellQuitText: + db "BUY" + next "SELL" + next "QUIT@" + + db "@" ; unused + +UseTossText: + db "USE" + next "TOSS@" + +JapaneseSaveMessageText: + db "きろく" + next "メッセージ@" + +JapaneseSpeedOptionsText: + db "はやい" + next "おそい@" + +MoneyText: + db "MONEY@" + +JapaneseMochimonoText: + db "もちもの@" + +JapaneseMainMenuText: + db "つづきから" + next "さいしょから@" + +BattleMenuText: + db "FIGHT " + next "ITEM RUN@" + +SafariZoneBattleMenuText: + db "BALL× BAIT" + next "THROW ROCK RUN@" + +SwitchStatsCancelText: + db "SWITCH" + next "STATS" + next "CANCEL@" + +JapaneseAhText: + db "アッ!@" + +JapanesePokedexMenu: + db "データをみる" + next "なきごえ" + next "ぶんぷをみる" + next "キャンセル@" diff --git a/data/text_predef_pointers.asm b/data/text_predef_pointers.asm new file mode 100644 index 000000000..df882ebdb --- /dev/null +++ b/data/text_predef_pointers.asm @@ -0,0 +1,74 @@ +add_tx_pre: MACRO +\1_id:: + dw \1 +ENDM + +TextPredefs:: + add_tx_pre CardKeySuccessText ; 01 + add_tx_pre CardKeyFailText ; 02 + add_tx_pre RedBedroomPCText ; 03 + add_tx_pre RedBedroomSNESText ; 04 + add_tx_pre PushStartText ; 05 + add_tx_pre SaveOptionText ; 06 + add_tx_pre StrengthsAndWeaknessesText ; 07 + add_tx_pre OakLabEmailText ; 08 + add_tx_pre AerodactylFossilText ; 09 + add_tx_pre Route15UpstairsBinocularsText ; 0A + add_tx_pre KabutopsFossilText ; 0B + add_tx_pre FanClubPicture1Text ; 0C + add_tx_pre FanClubPicture2Text ; 0D + add_tx_pre GymStatueText1 ; 0E + add_tx_pre GymStatueText2 ; 0F + add_tx_pre BookcaseText ; 10 + add_tx_pre ViridianCityPokecenterBenchGuyText ; 11 + add_tx_pre PewterCityPokecenterBenchGuyText ; 12 + add_tx_pre CeruleanCityPokecenterBenchGuyText ; 13 + add_tx_pre LavenderCityPokecenterBenchGuyText ; 14 + add_tx_pre VermilionCityPokecenterBenchGuyText ; 15 + add_tx_pre CeladonCityPokecenterBenchGuyText ; 16 + add_tx_pre CeladonCityHotelText ; 17 + add_tx_pre FuchsiaCityPokecenterBenchGuyText ; 18 + add_tx_pre CinnabarIslandPokecenterBenchGuyText ; 19 + add_tx_pre SaffronCityPokecenterBenchGuyText ; 1A + add_tx_pre MtMoonPokecenterBenchGuyText ; 1B + add_tx_pre RockTunnelPokecenterBenchGuyText ; 1C + add_tx_pre UnusedBenchGuyText1 ; 1D XXX unused + add_tx_pre UnusedBenchGuyText2 ; 1E XXX unused + add_tx_pre UnusedBenchGuyText3 ; 1F XXX unused + add_tx_pre UnusedPredefText ; 20 XXX unused + add_tx_pre PokemonCenterPCText ; 21 + add_tx_pre ViridianSchoolNotebook ; 22 + add_tx_pre ViridianSchoolBlackboard ; 23 + add_tx_pre JustAMomentText ; 24 + add_tx_pre OpenBillsPCText ; 25 + add_tx_pre FoundHiddenItemText ; 26 + add_tx_pre HiddenItemBagFullText ; 27 XXX unused + add_tx_pre VermilionGymTrashText ; 28 + add_tx_pre IndigoPlateauHQText ; 29 + add_tx_pre GameCornerOutOfOrderText ; 2A + add_tx_pre GameCornerOutToLunchText ; 2B + add_tx_pre GameCornerSomeonesKeysText ; 2C + add_tx_pre FoundHiddenCoinsText ; 2D + add_tx_pre DroppedHiddenCoinsText ; 2E + add_tx_pre BillsHouseMonitorText ; 2F + add_tx_pre BillsHouseInitiatedText ; 30 + add_tx_pre BillsHousePokemonList ; 31 + add_tx_pre MagazinesText ; 32 + add_tx_pre CinnabarGymQuiz ; 33 + add_tx_pre GameCornerNoCoinsText ; 34 + add_tx_pre GameCornerCoinCaseText ; 35 + add_tx_pre LinkCableHelp ; 36 + add_tx_pre TMNotebook ; 37 + add_tx_pre FightingDojoText ; 38 + add_tx_pre EnemiesOnEverySideText ; 39 + add_tx_pre WhatGoesAroundComesAroundText ; 3A + add_tx_pre NewBicycleText ; 3B + add_tx_pre IndigoPlateauStatues ; 3C + add_tx_pre VermilionGymTrashSuccessText1 ; 3D + add_tx_pre VermilionGymTrashSuccessText2 ; 3E XXX unused + add_tx_pre VermilionGymTrashSuccessText3 ; 3F + add_tx_pre VermilionGymTrashFailText ; 40 + add_tx_pre TownMapText ; 41 + add_tx_pre BookOrSculptureText ; 42 + add_tx_pre ElevatorText ; 43 + add_tx_pre PokemonStuffText ; 44 diff --git a/data/tilemaps.asm b/data/tilemaps.asm new file mode 100644 index 000000000..97e687fdf --- /dev/null +++ b/data/tilemaps.asm @@ -0,0 +1,46 @@ +tile_ids: MACRO + dw \1 + dn \3, \2 +ENDM + +TileIDListPointerTable: +; entries correspond to TILEMAP_* constants (see constants/gfx_constants.asm) + ; tilemap pointer, width, height + tile_ids MonTiles, 7, 7 + tile_ids SlideDownMonTiles_7x5, 7, 5 + tile_ids SlideDownMonTiles_7x3, 7, 3 + tile_ids GengarIntroTiles1, 7, 7 + tile_ids GengarIntroTiles2, 7, 7 + tile_ids GengarIntroTiles3, 7, 7 + tile_ids GameBoyTiles, 6, 8 + tile_ids LinkCableTiles, 12, 3 + +DownscaledMonTiles_5x5: + INCBIN "gfx/pokemon/downscaled_5x5.tilemap" + +DownscaledMonTiles_3x3: + INCBIN "gfx/pokemon/downscaled_3x3.tilemap" + +MonTiles: + INCBIN "gfx/pokemon/front.tilemap" + +SlideDownMonTiles_7x5: + INCBIN "gfx/pokemon/slide_down_7x5.tilemap" + +SlideDownMonTiles_7x3: + INCBIN "gfx/pokemon/slide_down_7x3.tilemap" + +GengarIntroTiles1: + INCBIN "gfx/intro/gengar_1.tilemap" + +GengarIntroTiles2: + INCBIN "gfx/intro/gengar_2.tilemap" + +GengarIntroTiles3: + INCBIN "gfx/intro/gengar_3.tilemap" + +GameBoyTiles: + INCBIN "gfx/trade/game_boy.tilemap" + +LinkCableTiles: + INCBIN "gfx/trade/link_cable.tilemap" diff --git a/data/tilesets/bike_riding_tilesets.asm b/data/tilesets/bike_riding_tilesets.asm new file mode 100755 index 000000000..b78c7c8ca --- /dev/null +++ b/data/tilesets/bike_riding_tilesets.asm @@ -0,0 +1,7 @@ +BikeRidingTilesets:: + db OVERWORLD + db FOREST + db UNDERGROUND + db SHIP_PORT + db CAVERN + db -1 ; end diff --git a/data/tilesets/bookshelf_tile_ids.asm b/data/tilesets/bookshelf_tile_ids.asm new file mode 100644 index 000000000..55143d730 --- /dev/null +++ b/data/tilesets/bookshelf_tile_ids.asm @@ -0,0 +1,25 @@ +bookshelf_tile: MACRO + db \1, \2 + db_tx_pre \3 +ENDM + +BookshelfTileIDs: + ; tileset id, bookshelf tile id, text id + bookshelf_tile PLATEAU, $30, IndigoPlateauStatues + bookshelf_tile HOUSE, $3D, TownMapText + bookshelf_tile HOUSE, $1E, BookOrSculptureText + bookshelf_tile MANSION, $32, BookOrSculptureText + bookshelf_tile REDS_HOUSE_1, $32, BookOrSculptureText + bookshelf_tile LAB, $28, BookOrSculptureText + bookshelf_tile LOBBY, $16, ElevatorText + bookshelf_tile GYM, $1D, BookOrSculptureText + bookshelf_tile DOJO, $1D, BookOrSculptureText + bookshelf_tile GATE, $22, BookOrSculptureText + bookshelf_tile MART, $54, PokemonStuffText + bookshelf_tile MART, $55, PokemonStuffText + bookshelf_tile POKECENTER, $54, PokemonStuffText + bookshelf_tile POKECENTER, $55, PokemonStuffText + bookshelf_tile LOBBY, $50, PokemonStuffText + bookshelf_tile LOBBY, $52, PokemonStuffText + bookshelf_tile SHIP, $36, BookOrSculptureText + db -1 ; end diff --git a/data/tilesets/collision_tile_ids.asm b/data/tilesets/collision_tile_ids.asm new file mode 100644 index 000000000..058a815c4 --- /dev/null +++ b/data/tilesets/collision_tile_ids.asm @@ -0,0 +1,74 @@ +coll_tiles: MACRO +REPT _NARG + db \1 + shift +ENDR + db -1 ; end +ENDM + +Underground_Coll:: + coll_tiles $0b, $0c, $13, $15, $18 + +Overworld_Coll:: + coll_tiles $00, $10, $1b, $20, $21, $23, $2c, $2d, $2e, $30, $31, $33, $39, $3c, $3e, $52, $54, $58, $5b + +RedsHouse1_Coll:: +RedsHouse2_Coll:: + coll_tiles $01, $02, $03, $11, $12, $13, $14, $1c, $1a + +Mart_Coll:: +Pokecenter_Coll:: + coll_tiles $11, $1a, $1c, $3c, $5e + +Dojo_Coll:: +Gym_Coll:: + coll_tiles $11, $16, $19, $2b, $3c, $3d, $3f, $4a, $4c, $4d, $03 + +Forest_Coll:: + coll_tiles $1e, $20, $2e, $30, $34, $37, $39, $3a, $40, $51, $52, $5a, $5c, $5e, $5f + +House_Coll:: + coll_tiles $01, $12, $14, $28, $32, $37, $44, $54, $5c + +ForestGate_Coll:: +Museum_Coll:: +Gate_Coll:: + coll_tiles $01, $12, $14, $1a, $1c, $37, $38, $3b, $3c, $5e + +Ship_Coll:: + coll_tiles $04, $0d, $17, $1d, $1e, $23, $34, $37, $39, $4a + +ShipPort_Coll:: + coll_tiles $0a, $1a, $32, $3b + +Cemetery_Coll:: + coll_tiles $01, $10, $13, $1b, $22, $42, $52 + +Interior_Coll:: + coll_tiles $04, $0f, $15, $1f, $3b, $45, $47, $55, $56 + +Cavern_Coll:: + coll_tiles $05, $15, $18, $1a, $20, $21, $22, $2a, $2d, $30 + + coll_tiles ; unused + +Lobby_Coll:: + coll_tiles $14, $17, $1a, $1c, $20, $38, $45 + +Mansion_Coll:: + coll_tiles $01, $05, $11, $12, $14, $1a, $1c, $2c, $53 + +Lab_Coll:: + coll_tiles $0c, $26, $16, $1e, $34, $37 + +Club_Coll:: + coll_tiles $0f, $1a, $1f, $26, $28, $29, $2c, $2d, $2e, $2f, $41 + +Facility_Coll:: + coll_tiles $01, $10, $11, $13, $1b, $20, $21, $22, $30, $31, $32, $42, $43, $48, $52, $55, $58, $5e + +Plateau_Coll:: + coll_tiles $1b, $23, $2c, $2d, $3b, $45 + +BeachHouse_Coll:: + coll_tiles $01, $11, $12, $14 diff --git a/data/tilesets/cut_tree_blocks.asm b/data/tilesets/cut_tree_blocks.asm new file mode 100644 index 000000000..ddbe28fc4 --- /dev/null +++ b/data/tilesets/cut_tree_blocks.asm @@ -0,0 +1,13 @@ +CutTreeBlockSwaps: + ; first byte = tileset block containing the cut tree + ; second byte = corresponding tileset block after the cut animation happens + db $32, $6D + db $33, $6C + db $34, $6F + db $35, $4C + db $60, $6E + db $0B, $0A + db $3C, $35 + db $3F, $35 + db $3D, $36 + db -1 ; end diff --git a/data/tilesets/door_tile_ids.asm b/data/tilesets/door_tile_ids.asm new file mode 100644 index 000000000..5fca7114d --- /dev/null +++ b/data/tilesets/door_tile_ids.asm @@ -0,0 +1,60 @@ +DoorTileIDPointers: + dbw OVERWORLD, .OverworldDoorTileIDs + dbw FOREST, .ForestDoorTileIDs + dbw MART, .MartDoorTileIDs + dbw HOUSE, .HouseDoorTileIDs + dbw FOREST_GATE, .TilesetMuseumDoorTileIDs + dbw MUSEUM, .TilesetMuseumDoorTileIDs + dbw GATE, .TilesetMuseumDoorTileIDs + dbw SHIP, .ShipDoorTileIDs + dbw LOBBY, .LobbyDoorTileIDs + dbw MANSION, .MansionDoorTileIDs + dbw LAB, .LabDoorTileIDs + dbw FACILITY, .FacilityDoorTileIDs + dbw PLATEAU, .PlateauDoorTileIDs + dbw INTERIOR, .InteriorDoorTileIDs + db -1 ; end + +door_tiles: MACRO +REPT _NARG + db \1 + shift +ENDR + db 0 ; end +ENDM + +.OverworldDoorTileIDs: + door_tiles $1B, $58 + +.ForestDoorTileIDs: + door_tiles $3a + +.MartDoorTileIDs: + door_tiles $5e + +.HouseDoorTileIDs: + door_tiles $54 + +.TilesetMuseumDoorTileIDs: + door_tiles $3b + +.ShipDoorTileIDs: + door_tiles $1e + +.LobbyDoorTileIDs: + door_tiles $1c, $38, $1a + +.MansionDoorTileIDs: + door_tiles $1a, $1c, $53 + +.LabDoorTileIDs: + door_tiles $34 + +.FacilityDoorTileIDs: + door_tiles $43, $58, $1b + +.PlateauDoorTileIDs: + door_tiles $3b, $1b + +.InteriorDoorTileIDs: + door_tiles $04, $15 diff --git a/data/tilesets/dungeon_tilesets.asm b/data/tilesets/dungeon_tilesets.asm new file mode 100755 index 000000000..2af36696d --- /dev/null +++ b/data/tilesets/dungeon_tilesets.asm @@ -0,0 +1,13 @@ +DungeonTilesets: + db FOREST + db MUSEUM + db SHIP + db CAVERN + db LOBBY + db MANSION + db GATE + db LAB + db FACILITY + db CEMETERY + db GYM + db -1 ; end diff --git a/data/tilesets/escape_rope_tilesets.asm b/data/tilesets/escape_rope_tilesets.asm new file mode 100644 index 000000000..6a40089ce --- /dev/null +++ b/data/tilesets/escape_rope_tilesets.asm @@ -0,0 +1,7 @@ +EscapeRopeTilesets: + db FOREST + db CEMETERY + db CAVERN + db FACILITY + db INTERIOR + db -1 ; end diff --git a/data/tilesets/ledge_tiles.asm b/data/tilesets/ledge_tiles.asm new file mode 100644 index 000000000..db2938004 --- /dev/null +++ b/data/tilesets/ledge_tiles.asm @@ -0,0 +1,11 @@ +LedgeTiles: + ; player direction, tile player standing on, ledge tile, input required + db SPRITE_FACING_DOWN, $2C, $37, D_DOWN + db SPRITE_FACING_DOWN, $39, $36, D_DOWN + db SPRITE_FACING_DOWN, $39, $37, D_DOWN + db SPRITE_FACING_LEFT, $2C, $27, D_LEFT + db SPRITE_FACING_LEFT, $39, $27, D_LEFT + db SPRITE_FACING_RIGHT, $2C, $0D, D_RIGHT + db SPRITE_FACING_RIGHT, $2C, $1D, D_RIGHT + db SPRITE_FACING_RIGHT, $39, $0D, D_RIGHT + db -1 ; end diff --git a/data/tilesets/pair_collision_tile_ids.asm b/data/tilesets/pair_collision_tile_ids.asm new file mode 100644 index 000000000..848695568 --- /dev/null +++ b/data/tilesets/pair_collision_tile_ids.asm @@ -0,0 +1,24 @@ +; FORMAT: tileset number, tile 1, tile 2 +; terminated by -1 +; these entries indicate that the player may not cross between tile 1 and tile 2 +; it's mainly used to simulate differences in elevation + +TilePairCollisionsLand:: + db CAVERN, $20, $05 + db CAVERN, $41, $05 + db FOREST, $30, $2E + db CAVERN, $2A, $05 + db CAVERN, $05, $21 + db FOREST, $52, $2E + db FOREST, $55, $2E + db FOREST, $56, $2E + db FOREST, $20, $2E + db FOREST, $5E, $2E + db FOREST, $5F, $2E + db -1 ; end + +TilePairCollisionsWater:: + db FOREST, $14, $2E + db FOREST, $48, $2E + db CAVERN, $14, $05 + db -1 ; end diff --git a/data/tilesets/spinner_tiles.asm b/data/tilesets/spinner_tiles.asm new file mode 100644 index 000000000..82506b6df --- /dev/null +++ b/data/tilesets/spinner_tiles.asm @@ -0,0 +1,29 @@ +spinner: MACRO +; \1: source +; \2: offset (BANK() chokes on literals) +; \3: dest + dw \1 tile \2 + db 1 + db BANK(\1) + dw vTileset tile \3 +ENDM + +FacilitySpinnerArrows: + spinner SpinnerArrowAnimTiles, 0, $20 + spinner SpinnerArrowAnimTiles, 1, $21 + spinner SpinnerArrowAnimTiles, 2, $30 + spinner SpinnerArrowAnimTiles, 3, $31 + spinner Facility_GFX, $20, $20 + spinner Facility_GFX, $21, $21 + spinner Facility_GFX, $30, $30 + spinner Facility_GFX, $31, $31 + +GymSpinnerArrows: + spinner SpinnerArrowAnimTiles, 1, $3c + spinner SpinnerArrowAnimTiles, 3, $3d + spinner SpinnerArrowAnimTiles, 0, $4c + spinner SpinnerArrowAnimTiles, 2, $4d + spinner Gym_GFX, $3c, $3c + spinner Gym_GFX, $3d, $3d + spinner Gym_GFX, $4c, $4c + spinner Gym_GFX, $4d, $4d diff --git a/data/tileset_headers.asm b/data/tilesets/tileset_headers.asm similarity index 89% rename from data/tileset_headers.asm rename to data/tilesets/tileset_headers.asm index c85a51e54..4e0555914 100755 --- a/data/tileset_headers.asm +++ b/data/tilesets/tileset_headers.asm @@ -1,5 +1,13 @@ -Tilesets: +tileset: MACRO + db BANK(\2) ; BANK(GFX) + dw \1, \2, \3 ; Block, GFX, Coll + db \4, \5, \6 ; counter tiles + db \7 ; grass tile + db \8 ; permission (indoor, cave, outdoor) +ENDM +Tilesets: + ; block, gfx, coll, 3 counter tiles, grass tile, permission tileset Overworld_Block, Overworld_GFX, Overworld_Coll, $FF,$FF,$FF, $52, OUTDOOR tileset RedsHouse1_Block, RedsHouse1_GFX, RedsHouse1_Coll, $FF,$FF,$FF, $FF, INDOOR tileset Mart_Block, Mart_GFX, Mart_Coll, $18,$19,$1E, $FF, INDOOR diff --git a/data/tilesets/warp_carpet_tile_ids.asm b/data/tilesets/warp_carpet_tile_ids.asm new file mode 100644 index 000000000..be3275990 --- /dev/null +++ b/data/tilesets/warp_carpet_tile_ids.asm @@ -0,0 +1,25 @@ +WarpTileListPointers: + dw .FacingDownWarpTiles + dw .FacingUpWarpTiles + dw .FacingLeftWarpTiles + dw .FacingRightWarpTiles + +warp_carpet_tiles: MACRO +REPT _NARG + db \1 + shift +ENDR + db -1 ; end +ENDM + +.FacingDownWarpTiles: + warp_carpet_tiles $01, $12, $17, $3D, $04, $18, $33 + +.FacingUpWarpTiles: + warp_carpet_tiles $01, $5C + +.FacingLeftWarpTiles: + warp_carpet_tiles $1A, $4B + +.FacingRightWarpTiles: + warp_carpet_tiles $0F, $4E diff --git a/data/tilesets/warp_pad_hole_tile_ids.asm b/data/tilesets/warp_pad_hole_tile_ids.asm new file mode 100644 index 000000000..e12b3735f --- /dev/null +++ b/data/tilesets/warp_pad_hole_tile_ids.asm @@ -0,0 +1,7 @@ +WarpPadAndHoleData: + ; tileset id, tile id, value for [wStandingOnWarpPadOrHole] + db FACILITY, $20, 1 ; warp pad + db FACILITY, $11, 2 ; hole + db CAVERN, $22, 2 ; hole + db INTERIOR, $55, 1 ; warp pad + db -1 ; end diff --git a/data/tilesets/warp_tile_ids.asm b/data/tilesets/warp_tile_ids.asm new file mode 100755 index 000000000..7c207e277 --- /dev/null +++ b/data/tilesets/warp_tile_ids.asm @@ -0,0 +1,97 @@ +WarpTileIDPointers: + dw .OverworldWarpTileIDs + dw .RedsHouse1WarpTileIDs + dw .MartWarpTileIDs + dw .ForestWarpTileIDs + dw .RedsHouse2WarpTileIDs + dw .DojoWarpTileIDs + dw .PokecenterWarpTileIDs + dw .GymWarpTileIDs + dw .HouseWarpTileIDs + dw .ForestGateWarpTileIDs + dw .MuseumWarpTileIDs + dw .UndergroundWarpTileIDs + dw .GateWarpTileIDs + dw .ShipWarpTileIDs + dw .ShipPortWarpTileIDs + dw .CemeteryWarpTileIDs + dw .InteriorWarpTileIDs + dw .CavernWarpTileIDs + dw .LobbyWarpTileIDs + dw .MansionWarpTileIDs + dw .LabWarpTileIDs + dw .ClubWarpTileIDs + dw .FacilityWarpTileIDs + dw .PlateauWarpTileIDs + dw .BeachHouseWarpTileIDs + +warp_tiles: MACRO +REPT _NARG + db \1 + shift +ENDR + db -1 ; end +ENDM + +.OverworldWarpTileIDs: + warp_tiles $1B, $58 + +.ForestGateWarpTileIDs: +.MuseumWarpTileIDs: +.GateWarpTileIDs: + db $3B + ; fallthrough +.RedsHouse1WarpTileIDs: +.RedsHouse2WarpTileIDs: + warp_tiles $1A, $1C + +.MartWarpTileIDs: +.PokecenterWarpTileIDs: + warp_tiles $5E + +.ForestWarpTileIDs: + warp_tiles $5A, $5C, $3A + +.DojoWarpTileIDs: +.GymWarpTileIDs: + warp_tiles $4A + +.HouseWarpTileIDs: + warp_tiles $54, $5C, $32 + +.ShipWarpTileIDs: + warp_tiles $37, $39, $1E, $4A + +.InteriorWarpTileIDs: + warp_tiles $15, $55, $04 + +.CavernWarpTileIDs: + warp_tiles $18, $1A, $22 + +.LobbyWarpTileIDs: + warp_tiles $1A, $1C, $38 + +.MansionWarpTileIDs: + warp_tiles $1A, $1C, $53 + +.LabWarpTileIDs: + warp_tiles $34 + +.FacilityWarpTileIDs: + db $43, $58, $20 + ; fallthrough +.CemeteryWarpTileIDs: + db $1B + ; fallthrough +.UndergroundWarpTileIDs: + warp_tiles $13 + +.PlateauWarpTileIDs: + db $1B, $3B + ; fallthrough +.ShipPortWarpTileIDs: +.ClubWarpTileIDs: + warp_tiles + +.BeachHouseWarpTileIDs: + warp_tiles ; end diff --git a/data/tilesets/water_tilesets.asm b/data/tilesets/water_tilesets.asm new file mode 100644 index 000000000..8abdce394 --- /dev/null +++ b/data/tilesets/water_tilesets.asm @@ -0,0 +1,12 @@ +; tilesets with water +WaterTilesets: + db OVERWORLD + db FOREST + db DOJO + db GYM + db SHIP + db SHIP_PORT + db CAVERN + db FACILITY + db PLATEAU + db -1 ; end diff --git a/data/tm_prices.asm b/data/tm_prices.asm deleted file mode 100755 index ccc8be056..000000000 --- a/data/tm_prices.asm +++ /dev/null @@ -1,27 +0,0 @@ -TechnicalMachinePrices: -; In thousands (nybbles). - dn 3, 2 ; TM_01, TM_02 - dn 2, 1 ; TM_03, TM_04 - dn 3, 4 ; TM_05, TM_06 - dn 2, 4 ; TM_07, TM_08 - dn 3, 4 ; TM_09, TM_10 - dn 2, 1 ; TM_11, TM_12 - dn 4, 5 ; TM_13, TM_14 - dn 5, 5 ; TM_15, TM_16 - dn 3, 2 ; TM_17, TM_18 - dn 3, 2 ; TM_19, TM_20 - dn 5, 5 ; TM_21, TM_22 - dn 5, 2 ; TM_23, TM_24 - dn 5, 4 ; TM_25, TM_26 - dn 5, 2 ; TM_27, TM_28 - dn 4, 1 ; TM_29, TM_30 - dn 2, 1 ; TM_31, TM_32 - dn 1, 2 ; TM_33, TM_34 - dn 4, 2 ; TM_35, TM_36 - dn 2, 5 ; TM_37, TM_38 - dn 2, 4 ; TM_39, TM_40 - dn 2, 2 ; TM_41, TM_42 - dn 5, 2 ; TM_43, TM_44 - dn 2, 4 ; TM_45, TM_46 - dn 3, 4 ; TM_47, TM_48 - dn 4, 2 ; TM_49, TM_50 diff --git a/data/tms.asm b/data/tms.asm deleted file mode 100755 index d61392c4f..000000000 --- a/data/tms.asm +++ /dev/null @@ -1,57 +0,0 @@ -TechnicalMachines: - db MEGA_PUNCH - db RAZOR_WIND - db SWORDS_DANCE - db WHIRLWIND - db MEGA_KICK - db TOXIC - db HORN_DRILL - db BODY_SLAM - db TAKE_DOWN - db DOUBLE_EDGE - db BUBBLEBEAM - db WATER_GUN - db ICE_BEAM - db BLIZZARD - db HYPER_BEAM - db PAY_DAY - db SUBMISSION - db COUNTER - db SEISMIC_TOSS - db RAGE - db MEGA_DRAIN - db SOLARBEAM - db DRAGON_RAGE - db THUNDERBOLT - db THUNDER - db EARTHQUAKE - db FISSURE - db DIG - db PSYCHIC_M - db TELEPORT - db MIMIC - db DOUBLE_TEAM - db REFLECT - db BIDE - db METRONOME - db SELFDESTRUCT - db EGG_BOMB - db FIRE_BLAST - db SWIFT - db SKULL_BASH - db SOFTBOILED - db DREAM_EATER - db SKY_ATTACK - db REST - db THUNDER_WAVE - db PSYWAVE - db EXPLOSION - db ROCK_SLIDE - db TRI_ATTACK - db SUBSTITUTE - db CUT - db FLY - db SURF - db STRENGTH - db FLASH - db $ff ; terminator diff --git a/data/town_map_entries.asm b/data/town_map_entries.asm deleted file mode 100755 index eed569198..000000000 --- a/data/town_map_entries.asm +++ /dev/null @@ -1,102 +0,0 @@ -ExternalMapEntries: - EMAP $2,$B,PalletTownName - EMAP $2,$8,ViridianCityName - EMAP $2,$3,PewterCityName - EMAP $A,$2,CeruleanCityName - EMAP $E,$5,LavenderTownName - EMAP $A,$9,VermilionCityName - EMAP $7,$5,CeladonCityName - EMAP $8,$D,FuchsiaCityName - EMAP $2,$F,CinnabarIslandName - EMAP $0,$2,IndigoPlateauName - EMAP $A,$5,SaffronCityName - EMAP $0,$0,PalletTownName ; unused - EMAP $2,$A,Route1Name - EMAP $2,$6,Route2Name - EMAP $4,$3,Route3Name - EMAP $8,$2,Route4Name - EMAP $A,$3,Route5Name - EMAP $A,$8,Route6Name - EMAP $8,$5,Route7Name - EMAP $D,$5,Route8Name - EMAP $D,$2,Route9Name - EMAP $E,$4,Route10Name - EMAP $C,$9,Route11Name - EMAP $E,$9,Route12Name - EMAP $D,$B,Route13Name - EMAP $B,$C,Route14Name - EMAP $A,$D,Route15Name - EMAP $5,$5,Route16Name - EMAP $4,$8,Route17Name - EMAP $6,$D,Route18Name - EMAP $6,$F,Route19Name - EMAP $4,$F,Route20Name - EMAP $2,$D,Route21Name - EMAP $0,$8,Route22Name - EMAP $0,$6,Route23Name - EMAP $A,$1,Route24Name - EMAP $B,$0,Route25Name - -InternalMapEntries: - IMAP OAKS_LAB, $2,$B,PalletTownName - IMAP VIRIDIAN_GYM, $2,$8,ViridianCityName - IMAP VIRIDIAN_FOREST_SOUTH_GATE, $2,$6,Route2Name - IMAP VIRIDIAN_FOREST, $2,$4,ViridianForestName - IMAP PEWTER_POKECENTER, $2,$3,PewterCityName - IMAP MT_MOON_B2F, $6,$2,MountMoonName - IMAP CERULEAN_MART, $A,$2,CeruleanCityName - IMAP MT_MOON_POKECENTER, $5,$2,Route4Name - IMAP CERULEAN_TRASHED_HOUSE_COPY, $A,$2,CeruleanCityName - IMAP DAYCARE, $A,$4,Route5Name - IMAP UNDERGROUND_PATH_ROUTE_6_COPY, $A,$6,Route6Name - IMAP UNDERGROUND_PATH_ROUTE_7_COPY, $9,$5,Route7Name - IMAP UNDERGROUND_PATH_ROUTE_8, $B,$5,Route8Name - IMAP ROCK_TUNNEL_1F, $E,$3,RockTunnelName - IMAP POWER_PLANT, $F,$4,PowerPlantName - IMAP ROUTE_11_GATE_2F, $D,$9,Route11Name - IMAP ROUTE_12_GATE_1F, $E,$7,Route12Name - IMAP BILLS_HOUSE, $C,$0,SeaCottageName - IMAP VERMILION_DOCK, $A,$9,VermilionCityName - IMAP SS_ANNE_B1F_ROOMS, $9,$A,SSAnneName - IMAP VICTORY_ROAD_1F, $0,$4,VictoryRoadName - IMAP HALL_OF_FAME, $0,$2,PokemonLeagueName - IMAP UNDERGROUND_PATH_NORTH_SOUTH, $A,$5,UndergroundPathName - IMAP CHAMPIONS_ROOM, $0,$2,PokemonLeagueName - IMAP UNDERGROUND_PATH_WEST_EAST, $A,$5,UndergroundPathName - IMAP CELADON_HOTEL, $7,$5,CeladonCityName - IMAP LAVENDER_POKECENTER, $E,$5,LavenderTownName - IMAP POKEMON_TOWER_7F, $F,$5,PokemonTowerName - IMAP LAVENDER_CUBONE_HOUSE, $E,$5,LavenderTownName - IMAP WARDENS_HOUSE, $8,$D,FuchsiaCityName - IMAP SAFARI_ZONE_GATE, $8,$C,SafariZoneName - IMAP FUCHSIA_MEETING_ROOM, $8,$D,FuchsiaCityName - IMAP SEAFOAM_ISLANDS_B4F, $5,$F,SeafoamIslandsName - IMAP VERMILION_OLD_ROD_HOUSE, $A,$9,VermilionCityName - IMAP FUCHSIA_GOOD_ROD_HOUSE, $8,$D,FuchsiaCityName - IMAP POKEMON_MANSION_1F, $2,$F,PokemonMansionName - IMAP CINNABAR_MART_COPY, $2,$F,CinnabarIslandName - IMAP INDIGO_PLATEAU_LOBBY, $0,$2,IndigoPlateauName - IMAP MR_PSYCHICS_HOUSE, $A,$5,SaffronCityName - IMAP ROUTE_15_GATE_2F, $9,$D,Route15Name - IMAP ROUTE_16_FLY_HOUSE, $4,$5,Route16Name - IMAP ROUTE_12_SUPER_ROD_HOUSE, $E,$A,Route12Name - IMAP ROUTE_18_GATE_2F, $7,$D,Route18Name - IMAP SEAFOAM_ISLANDS_1F, $5,$F,SeafoamIslandsName - IMAP ROUTE_22_GATE, $0,$7,Route22Name - IMAP VICTORY_ROAD_2F, $0,$4,VictoryRoadName - IMAP ROUTE_12_GATE_2F, $E,$7,Route12Name - IMAP VERMILION_TRADE_HOUSE, $A,$9,VermilionCityName - IMAP DIGLETTS_CAVE, $3,$4,DiglettsCaveName - IMAP VICTORY_ROAD_3F, $0,$4,VictoryRoadName - IMAP UNUSED_MAP_CE, $7,$5,RocketHQName - IMAP SILPH_CO_8F, $A,$5,SilphCoName - IMAP POKEMON_MANSION_B1F, $2,$F,PokemonMansionName - IMAP SAFARI_ZONE_NORTH_REST_HOUSE, $8,$C,SafariZoneName - IMAP CERULEAN_CAVE_1F, $9,$1,CeruleanCaveName - IMAP NAME_RATERS_HOUSE, $E,$5,LavenderTownName - IMAP CERULEAN_BADGE_HOUSE, $A,$2,CeruleanCityName - IMAP ROCK_TUNNEL_B1F, $E,$3,RockTunnelName - IMAP SILPH_CO_ELEVATOR, $A,$5,SilphCoName - IMAP AGATHAS_ROOM, $0,$2,PokemonLeagueName - IMAP BEACH_HOUSE, $6,$F,Route19Name - db $FF diff --git a/data/trades.asm b/data/trades.asm deleted file mode 100755 index 4fa52d307..000000000 --- a/data/trades.asm +++ /dev/null @@ -1,12 +0,0 @@ -TradeMons: -; givemonster, getmonster, textstring, nickname (11 bytes), 14 bytes total - db LICKITUNG, DUGTRIO, 0,"GURIO@@@@@@" - db CLEFAIRY, MR_MIME, 0,"MILES@@@@@@" - db BUTTERFREE,BEEDRILL,2,"STINGER@@@@" - db KANGASKHAN,MUK, 0,"STICKY@@@@@" - db MEW, MEW, 2,"BART@@@@@@@" - db TANGELA, PARASECT,0,"SPIKE@@@@@@" - db PIDGEOT, PIDGEOT, 1,"MARTY@@@@@@" - db GOLDUCK, RHYDON, 1,"BUFFY@@@@@@" - db GROWLITHE, DEWGONG, 2,"CEZANNE@@@@" - db CUBONE, MACHOKE, 2,"RICKY@@@@@@" diff --git a/data/trainer_moves.asm b/data/trainer_moves.asm deleted file mode 100755 index 696253e35..000000000 --- a/data/trainer_moves.asm +++ /dev/null @@ -1,160 +0,0 @@ -; yellow has its own format. - -; entry = trainerclass, trainerid, moveset+, 0 -; moveset = partymon location, partymon's move, moveid - -SpecialTrainerMoves: - db BUG_CATCHER,$f - db 2,2,TACKLE - db 2,3,STRING_SHOT - db 0 - - db YOUNGSTER,$e - db 1,4,FISSURE - db 0 - - db BROCK,$1 - db 2,3,BIND - db 2,4,BIDE - db 0 - - db MISTY,$1 - db 2,4,BUBBLEBEAM - db 0 - - db LT_SURGE,$1 - db 1,1,THUNDERBOLT - db 1,2,MEGA_PUNCH - db 1,3,MEGA_KICK - db 1,4,GROWL - db 0 - - db ERIKA,$1 - db 1,3,MEGA_DRAIN - db 2,1,RAZOR_LEAF - db 3,1,PETAL_DANCE - db 0 - - db KOGA,$1 - db 1,1,TOXIC - db 1,2,TACKLE - db 2,1,TOXIC - db 2,3,SUPERSONIC - db 3,1,TOXIC - db 3,2,DOUBLE_EDGE - db 4,1,LEECH_LIFE - db 4,2,DOUBLE_TEAM - db 4,3,PSYCHIC_M - db 4,4,TOXIC - db 0 - - db BLAINE,$1 - db 1,1,FLAMETHROWER - db 1,4,CONFUSE_RAY - db 3,1,FLAMETHROWER - db 3,2,FIRE_BLAST - db 3,3,REFLECT - db 0 - - db SABRINA,$1 - db 1,1,FLASH - db 2,1,KINESIS - db 2,4,PSYWAVE - db 3,1,PSYWAVE - db 0 - - db GIOVANNI,$3 - db 1,3,FISSURE - db 2,2,DOUBLE_TEAM - db 3,1,EARTHQUAKE - db 3,3,THUNDER - db 4,1,EARTHQUAKE - db 4,2,LEER - db 4,3,THUNDER - db 5,1,ROCK_SLIDE - db 5,4,EARTHQUAKE - db 0 - - db LORELEI,$1 - db 1,1,BUBBLEBEAM - db 2,3,ICE_BEAM - db 3,1,PSYCHIC_M - db 3,2,SURF - db 4,3,LOVELY_KISS - db 5,3,BLIZZARD - db 0 - - db BRUNO,$1 - db 1,1,ROCK_SLIDE - db 1,2,SCREECH - db 1,4,DIG - db 2,3,FIRE_PUNCH - db 2,4,DOUBLE_TEAM - db 3,1,DOUBLE_KICK - db 3,2,MEGA_KICK - db 3,4,DOUBLE_TEAM - db 4,1,ROCK_SLIDE - db 4,2,SCREECH - db 4,4,EARTHQUAKE - db 5,2,KARATE_CHOP - db 5,3,STRENGTH - db 0 - - db AGATHA,$1 - db 1,2,SUBSTITUTE - db 1,3,LICK - db 1,4,MEGA_DRAIN - db 2,2,TOXIC - db 2,4,LEECH_LIFE - db 3,2,LICK - db 4,1,WRAP - db 5,2,PSYCHIC_M - db 0 - - db LANCE,$1 - db 1,1,DRAGON_RAGE - db 2,1,THUNDER_WAVE - db 2,3,THUNDERBOLT - db 3,1,BUBBLEBEAM - db 3,2,WRAP - db 3,3,ICE_BEAM - db 4,1,WING_ATTACK - db 4,2,SWIFT - db 4,3,FLY - db 5,1,BLIZZARD - db 5,2,FIRE_BLAST - db 5,3,THUNDER - db 0 - - db SONY3,$1 - db 1,3,EARTHQUAKE - db 2,4,KINESIS - db 3,4,LEECH_SEED - db 4,1,ICE_BEAM - db 5,1,CONFUSE_RAY - db 5,4,FIRE_SPIN - db 6,3,QUICK_ATTACK - db 0 - - db SONY3,$2 - db 1,3,EARTHQUAKE - db 2,4,KINESIS - db 3,4,LEECH_SEED - db 4,1,THUNDERBOLT - db 5,1,ICE_BEAM - db 6,2,REFLECT - db 6,3,QUICK_ATTACK - db 0 - - db SONY3,$3 - db 1,3,EARTHQUAKE - db 2,4,KINESIS - db 3,4,LEECH_SEED - db 4,1,CONFUSE_RAY - db 4,4,FIRE_SPIN - db 5,1,THUNDERBOLT - db 6,1,AURORA_BEAM - db 6,3,QUICK_ATTACK - db 0 - - db $ff diff --git a/data/trainer_parties.asm b/data/trainer_parties.asm deleted file mode 100755 index 0c3dcc8f7..000000000 --- a/data/trainer_parties.asm +++ /dev/null @@ -1,699 +0,0 @@ -TrainerDataPointers: - dw YoungsterData - dw BugCatcherData - dw LassData - dw SailorData - dw JrTrainerMData - dw JrTrainerFData - dw PokemaniacData - dw SuperNerdData - dw HikerData - dw BikerData - dw BurglarData - dw EngineerData - dw Juggler1Data - dw FisherData - dw SwimmerData - dw CueBallData - dw GamblerData - dw BeautyData - dw PsychicData - dw RockerData - dw JugglerData - dw TamerData - dw BirdKeeperData - dw BlackbeltData - dw Green1Data - dw ProfOakData - dw ChiefData - dw ScientistData - dw GiovanniData - dw RocketData - dw CooltrainerMData - dw CooltrainerFData - dw BrunoData - dw BrockData - dw MistyData - dw LtSurgeData - dw ErikaData - dw KogaData - dw BlaineData - dw SabrinaData - dw GentlemanData - dw Green2Data - dw Green3Data - dw LoreleiData - dw ChannelerData - dw AgathaData - dw LanceData - -; if first byte != FF, then - ; first byte is level (of all pokemon on this team) - ; all the next bytes are pokemon species - ; null-terminated -; if first byte == FF, then - ; first byte is FF (obviously) - ; every next two bytes are a level and species - ; null-terminated - -YoungsterData: - db 11,RATTATA,EKANS,0 - db 14,SPEAROW,0 -; Mt. Moon 1F - db 10,RATTATA,RATTATA,ZUBAT,0 -; Route 24 - db 14,RATTATA,EKANS,ZUBAT,0 -; Route 25 - db 15,RATTATA,SPEAROW,0 - db 17,SLOWPOKE,0 - db 14,EKANS,SANDSHREW,0 -; SS Anne 1F Rooms - db 21,NIDORAN_M,0 -; Route 11 - db 21,EKANS,0 - db 19,SANDSHREW,ZUBAT,0 - db 17,RATTATA,RATTATA,RATICATE,0 - db 18,NIDORAN_M,NIDORINO,0 -; Unused - db 17,SPEAROW,RATTATA,RATTATA,SPEAROW,0 - db 24,SANDSHREW,0 -BugCatcherData: - db 7,CATERPIE,CATERPIE,0 - db 6,METAPOD,CATERPIE,METAPOD,0 - db 10,CATERPIE,0 - db 10,CATERPIE,WEEDLE,CATERPIE,0 - db 9,WEEDLE,KAKUNA,CATERPIE,METAPOD,0 - db 11,CATERPIE,METAPOD,0 -; Mt. Moon 1F - db 11,WEEDLE,KAKUNA,0 - db 10,CATERPIE,METAPOD,CATERPIE,0 -; Route 24 - db 14,CATERPIE,WEEDLE,0 -; Route 6 - db 16,WEEDLE,CATERPIE,WEEDLE,0 - db 20,BUTTERFREE,0 -; Unused - db 18,METAPOD,CATERPIE,VENONAT,0 -; Route 9 - db 19,BEEDRILL,BEEDRILL,0 - db 20,CATERPIE,WEEDLE,VENONAT,0 - db 8,CATERPIE,METAPOD,0 -LassData: - db 9,PIDGEY,PIDGEY,0 - db 10,RATTATA,NIDORAN_M,0 - db 14,JIGGLYPUFF,0 -; Route 4 - db 31,PARAS,PARAS,PARASECT,0 -; Mt. Moon 1F - db 11,ODDISH,BELLSPROUT,0 - db 14,CLEFAIRY,0 -; Route 24 - db 16,PIDGEY,NIDORAN_F,0 - db 14,PIDGEY,NIDORAN_F,0 -; Route 25 - db 15,NIDORAN_M,NIDORAN_F,0 - db 13,ODDISH,PIDGEY,ODDISH,0 -; SS Anne 1F Rooms - db 18,PIDGEY,NIDORAN_F,0 -; SS Anne 2F Rooms - db 20,JIGGLYPUFF,0 -; Route 8 - db 23,NIDORAN_F,NIDORINA,0 - db 24,MEOWTH,MEOWTH,MEOWTH,0 - db 19,PIDGEY,RATTATA,NIDORAN_F,MEOWTH,NIDORAN_M,0 - db 22,CLEFAIRY,CLEFAIRY,0 -; Celadon Gym - db 23,BELLSPROUT,WEEPINBELL,0 - db 23,ODDISH,GLOOM,0 - db 6,NIDORAN_F,NIDORAN_M,0 -SailorData: -; SS Anne Stern - db 18,MACHOP,SHELLDER,0 - db 17,MACHOP,TENTACOOL,0 -; SS Anne B1F Rooms - db 21,SHELLDER,0 - db 17,HORSEA,SHELLDER,TENTACOOL,0 - db 18,TENTACOOL,STARYU,0 - db 17,HORSEA,HORSEA,HORSEA,0 - db 20,MACHOP,0 -; Vermilion Gym - db 24,MAGNEMITE,0 -JrTrainerMData: -; Pewter Gym - db 9,DIGLETT,SANDSHREW,0 -; Route 24/Route 25 - db 14,RATTATA,EKANS,0 -; Route 24 - db 18,MANKEY,0 -; Route 6 - db 20,SQUIRTLE,0 - db 16,SPEAROW,RATICATE,0 -; Unused - db 18,DIGLETT,DIGLETT,SANDSHREW,0 -; Route 9 - db 21,GROWLITHE,CHARMANDER,0 - db 19,RATTATA,DIGLETT,EKANS,SANDSHREW,0 -; Route 12 - db 29,NIDORAN_M,NIDORINO,0 - db 16,WEEPINBELL,0 -JrTrainerFData: -; Cerulean Gym - db 19,GOLDEEN,0 -; Route 6 - db 16,ODDISH,BELLSPROUT,0 - db 16,PIDGEY,PIDGEY,PIDGEY,0 -; Unused - db 22,BULBASAUR,0 -; Route 9 - db 18,ODDISH,BELLSPROUT,ODDISH,BELLSPROUT,0 - db 23,MEOWTH,0 -; Route 10 - db 20,JIGGLYPUFF,CLEFAIRY,0 - db 21,PIDGEY,PIDGEOTTO,0 -; Rock Tunnel B1F - db 21,JIGGLYPUFF,PIDGEY,MEOWTH,0 - db 22,ODDISH,BULBASAUR,0 -; Celadon Gym - db 24,BULBASAUR,IVYSAUR,0 -; Route 13 - db 24,PIDGEY,MEOWTH,RATTATA,PIDGEY,MEOWTH,0 - db 30,POLIWAG,POLIWAG,0 - db 27,PIDGEY,MEOWTH,PIDGEY,PIDGEOTTO,0 - db 28,GOLDEEN,POLIWAG,HORSEA,0 -; Route 20 - db 31,GOLDEEN,SEAKING,0 -; Rock Tunnel 1F - db 22,BELLSPROUT,CLEFAIRY,0 - db 20,MEOWTH,ODDISH,PIDGEY,0 - db 19,PIDGEY,RATTATA,RATTATA,BELLSPROUT,0 -; Route 15 - db 28,GLOOM,ODDISH,ODDISH,0 - db 29,PIDGEY,PIDGEOTTO,0 - db 33,CLEFAIRY,0 - db 29,BELLSPROUT,ODDISH,TANGELA,0 -; Route 20 - db 30,TENTACOOL,HORSEA,SEEL,0 - db 20,CUBONE,0 -PokemaniacData: -; Route 10 - db 30,RHYHORN,LICKITUNG,0 - db 20,CUBONE,SLOWPOKE,0 -; Rock Tunnel B1F - db 20,SLOWPOKE,SLOWPOKE,SLOWPOKE,0 - db 22,CHARMANDER,CUBONE,0 - db 25,SLOWPOKE,0 -; Victory Road 2F - db 40,CHARMELEON,LAPRAS,LICKITUNG,0 -; Rock Tunnel 1F - db 23,CUBONE,SLOWPOKE,0 -SuperNerdData: -; Mt. Moon 1F - db 11,MAGNEMITE,VOLTORB,0 -; Mt. Moon B2F - db 12,GRIMER,VOLTORB,KOFFING,0 -; Route 8 - db 20,VOLTORB,KOFFING,VOLTORB,MAGNEMITE,0 - db 22,GRIMER,MUK,GRIMER,0 - db 26,KOFFING,0 -; Unused - db 22,KOFFING,MAGNEMITE,WEEZING,0 - db 20,MAGNEMITE,MAGNEMITE,KOFFING,MAGNEMITE,0 - db 24,MAGNEMITE,VOLTORB,0 -; Cinnabar Gym - db 36,VULPIX,VULPIX,NINETALES,0 - db 34,PONYTA,CHARMANDER,VULPIX,GROWLITHE,0 - db 41,RAPIDASH,0 - db 37,GROWLITHE,VULPIX,0 -HikerData: -; Mt. Moon 1F - db 10,GEODUDE,GEODUDE,ONIX,0 -; Route 25 - db 15,MACHOP,GEODUDE,0 - db 13,GEODUDE,GEODUDE,MACHOP,GEODUDE,0 - db 17,ONIX,0 -; Route 9 - db 21,GEODUDE,ONIX,0 - db 20,GEODUDE,MACHOP,GEODUDE,0 -; Route 10 - db 21,GEODUDE,ONIX,0 - db 19,ONIX,GRAVELER,0 -; Rock Tunnel B1F - db 21,GEODUDE,GEODUDE,GRAVELER,0 - db 25,GEODUDE,0 -; Route 9/Rock Tunnel B1F - db 20,MACHOP,ONIX,0 -; Rock Tunnel 1F - db 19,GEODUDE,MACHOP,GEODUDE,GEODUDE,0 - db 20,ONIX,ONIX,GEODUDE,0 - db 21,GEODUDE,GRAVELER,0 -BikerData: -; Route 13 - db 28,KOFFING,KOFFING,KOFFING,0 -; Route 14 - db 29,KOFFING,GRIMER,0 -; Route 15 - db 25,KOFFING,KOFFING,WEEZING,KOFFING,GRIMER,0 - db 28,KOFFING,GRIMER,WEEZING,0 -; Route 16 - db 29,GRIMER,KOFFING,0 - db 33,WEEZING,0 - db 26,GRIMER,GRIMER,GRIMER,GRIMER,0 -; Route 17 - ; From https://www.smogon.com/smog/issue27/glitch: - ; 0E:5FC2 is offset of the ending 0 for this first Biker on Route 17. - ; BaseStats + (MonBaseStatsEnd - MonBaseStats) * (000 - 1) = $5FC2; - ; that's the formula from GetMonHeader for the base stats of mon #000. - ; (BaseStats = $43DE and BANK(BaseStats) = $0E.) - ; Finally, PokedexOrder lists 0 as the dex ID for every MissingNo. - ; The result is that this data gets interpreted as the base stats - ; for MissingNo: 0,33,MUK,0,29,VOLTORB,VOLTORB,0,...,28,GRIMER,GRIMER. - db 28,WEEZING,KOFFING,WEEZING,0 - db 33,MUK,0 - db 29,VOLTORB,VOLTORB,0 - db 29,WEEZING,MUK,0 - db 25,KOFFING,WEEZING,KOFFING,KOFFING,WEEZING,0 -; Route 14 - db 26,KOFFING,KOFFING,GRIMER,KOFFING,0 - db 28,GRIMER,GRIMER,KOFFING,0 - db 29,KOFFING,MUK,0 -BurglarData: -; Unused - db 29,GROWLITHE,VULPIX,0 - db 33,GROWLITHE,0 - db 28,VULPIX,CHARMANDER,PONYTA,0 -; Cinnabar Gym - db 36,GROWLITHE,VULPIX,NINETALES,0 - db 41,PONYTA,0 - db 37,VULPIX,GROWLITHE,0 -; Mansion 2F - db 34,CHARMANDER,CHARMELEON,0 -; Mansion 3F - db 38,NINETALES,0 -; Mansion B1F - db 34,GROWLITHE,PONYTA,0 -EngineerData: -; Unused - db 21,VOLTORB,MAGNEMITE,0 -; Route 11 - db 21,MAGNEMITE,0 - db 18,MAGNEMITE,MAGNEMITE,MAGNETON,0 -Juggler1Data: -; none -FisherData: -; SS Anne 2F Rooms - db 17,GOLDEEN,TENTACOOL,GOLDEEN,0 -; SS Anne B1F Rooms - db 17,TENTACOOL,STARYU,SHELLDER,0 -; Route 12 - db 22,GOLDEEN,POLIWAG,GOLDEEN,0 - db 24,TENTACOOL,GOLDEEN,0 - db 27,GOLDEEN,0 - db 21,POLIWAG,SHELLDER,GOLDEEN,HORSEA,0 -; Route 21 - db 28,SEAKING,GOLDEEN,SEAKING,SEAKING,0 - db 31,SHELLDER,CLOYSTER,0 - db 27,MAGIKARP,MAGIKARP,MAGIKARP,MAGIKARP,MAGIKARP,MAGIKARP,0 - db 33,SEAKING,GOLDEEN,0 -; Route 12 - db 24,MAGIKARP,MAGIKARP,0 -SwimmerData: -; Cerulean Gym - db 16,HORSEA,SHELLDER,0 -; Route 19 - db 30,TENTACOOL,SHELLDER,0 - db 29,GOLDEEN,HORSEA,STARYU,0 - db 30,POLIWAG,POLIWHIRL,0 - db 27,HORSEA,TENTACOOL,TENTACOOL,GOLDEEN,0 - db 29,GOLDEEN,SHELLDER,SEAKING,0 - db 30,HORSEA,HORSEA,0 - db 27,TENTACOOL,TENTACOOL,STARYU,HORSEA,TENTACRUEL,0 -; Route 20 - db 31,SHELLDER,CLOYSTER,0 - db 35,STARYU,0 - db 28,HORSEA,HORSEA,SEADRA,HORSEA,0 -; Route 21 - db 33,SEADRA,TENTACRUEL,0 - db 37,STARMIE,0 - db 33,STARYU,WARTORTLE,0 - db 32,POLIWHIRL,TENTACOOL,SEADRA,0 -CueBallData: -; Route 16 - db 28,MACHOP,MANKEY,MACHOP,0 - db 29,MANKEY,MACHOP,0 - db 33,MACHOP,0 -; Route 17 - db 29,MANKEY,PRIMEAPE,0 - db 29,MACHOP,MACHOKE,0 - db 33,MACHOKE,0 - db 26,MANKEY,MANKEY,MACHOKE,MACHOP,0 - db 29,PRIMEAPE,MACHOKE,0 -; Route 21 - db 31,TENTACOOL,TENTACOOL,TENTACRUEL,0 -GamblerData: -; Route 11 - db 18,POLIWAG,HORSEA,0 - db 18,BELLSPROUT,ODDISH,0 - db 18,VOLTORB,MAGNEMITE,0 - db 18,GROWLITHE,VULPIX,0 -; Route 8 - db 22,POLIWAG,POLIWAG,POLIWHIRL,0 -; Unused - db 22,ONIX,GEODUDE,GRAVELER,0 -; Route 8 - db 24,GROWLITHE,VULPIX,0 -BeautyData: -; Celadon Gym - db 21,ODDISH,BELLSPROUT,ODDISH,BELLSPROUT,0 - db 24,BELLSPROUT,BELLSPROUT,0 - db 26,EXEGGCUTE,0 -; Route 13 - db 27,RATTATA,VULPIX,RATTATA,0 - db 29,CLEFAIRY,MEOWTH,0 -; Route 20 - db 35,SEAKING,0 - db 30,SHELLDER,SHELLDER,CLOYSTER,0 - db 31,POLIWAG,SEAKING,0 -; Route 15 - db 29,PIDGEOTTO,WIGGLYTUFF,0 - db 29,BULBASAUR,IVYSAUR,0 -; Unused - db 33,WEEPINBELL,BELLSPROUT,WEEPINBELL,0 -; Route 19 - db 27,POLIWAG,GOLDEEN,SEAKING,GOLDEEN,POLIWAG,0 - db 30,GOLDEEN,SEAKING,0 - db 29,STARYU,STARYU,STARYU,0 -; Route 20 - db 30,SEADRA,HORSEA,SEADRA,0 -PsychicData: -; Saffron Gym - db 31,KADABRA,SLOWPOKE,MR_MIME,KADABRA,0 - db 34,MR_MIME,KADABRA,0 - db 33,SLOWPOKE,SLOWPOKE,SLOWBRO,0 - db 38,SLOWBRO,0 -RockerData: -; Vermilion Gym - db 20,VOLTORB,VOLTORB,VOLTORB,0 -; Route 12 - db 29,VOLTORB,ELECTRODE,0 -JugglerData: -; Silph Co. 5F - db 29,KADABRA,MR_MIME,0 -; Victory Road 2F - db 41,DROWZEE,HYPNO,KADABRA,KADABRA,0 -; Fuchsia Gym - db 31,DROWZEE,DROWZEE,KADABRA,DROWZEE,0 - db 34,DROWZEE,HYPNO,0 -; Victory Road 2F - db 48,MR_MIME,0 -; Unused - db 33,HYPNO,0 -; Fuchsia Gym - db 38,HYPNO,0 - db 34,DROWZEE,KADABRA,0 -TamerData: -; Fuchsia Gym - db 34,SANDSLASH,ARBOK,0 - db 33,ARBOK,SANDSLASH,ARBOK,0 -; Viridian Gym - db 43,RHYHORN,0 - db 39,ARBOK,TAUROS,0 -; Victory Road 2F - db 44,PERSIAN,GOLDUCK,0 -; Unused - db 42,RHYHORN,PRIMEAPE,ARBOK,TAUROS,0 -BirdKeeperData: -; Route 13 - db 29,PIDGEY,PIDGEOTTO,0 - db 25,SPEAROW,PIDGEY,PIDGEY,SPEAROW,SPEAROW,0 - db 26,PIDGEY,PIDGEOTTO,SPEAROW,FEAROW,0 -; Route 14 - db 33,FARFETCHD,0 - db 29,SPEAROW,FEAROW,0 -; Route 15 - db 26,PIDGEOTTO,FARFETCHD,DODUO,PIDGEY,0 - db 28,DODRIO,DODUO,DODUO,0 -; Route 18 - db 29,SPEAROW,FEAROW,0 - db 34,DODRIO,0 - db 26,SPEAROW,SPEAROW,FEAROW,SPEAROW,0 -; Route 20 - db 30,FEAROW,FEAROW,PIDGEOTTO,0 -; Unused - db 39,PIDGEOTTO,PIDGEOTTO,PIDGEY,PIDGEOTTO,0 - db 42,FARFETCHD,FEAROW,0 -; Route 14 - db 28,PIDGEY,DODUO,PIDGEOTTO,0 - db 26,PIDGEY,SPEAROW,PIDGEY,FEAROW,0 - db 29,PIDGEOTTO,FEAROW,0 - db 28,SPEAROW,DODUO,FEAROW,0 -BlackbeltData: -; Fighting Dojo - db 37,HITMONLEE,HITMONCHAN,0 - db 31,MANKEY,MANKEY,PRIMEAPE,0 - db 32,MACHOP,MACHOKE,0 - db 36,PRIMEAPE,0 - db 31,MACHOP,MANKEY,PRIMEAPE,0 -; Viridian Gym - db 40,MACHOP,MACHOKE,0 - db 43,MACHOKE,0 - db 38,MACHOKE,MACHOP,MACHOKE,0 -; Victory Road 2F - db 43,MACHOKE,MACHOP,MACHOKE,0 -Green1Data: - db 5,EEVEE,0 -; Route 22 - db $FF,9,SPEAROW,8,EEVEE,0 -; Cerulean City - db $FF,18,SPEAROW,15,SANDSHREW,15,RATTATA,17,EEVEE,0 -ProfOakData: -; Unused - db $FF,66,TAUROS,67,EXEGGUTOR,68,ARCANINE,69,BLASTOISE,70,GYARADOS,0 - db $FF,66,TAUROS,67,EXEGGUTOR,68,ARCANINE,69,VENUSAUR,70,GYARADOS,0 - db $FF,66,TAUROS,67,EXEGGUTOR,68,ARCANINE,69,CHARIZARD,70,GYARADOS,0 -ChiefData: -; none -ScientistData: -; Unused - db 34,KOFFING,VOLTORB,0 -; Silph Co. 2F - db 26,GRIMER,WEEZING,KOFFING,WEEZING,0 - db 28,MAGNEMITE,VOLTORB,MAGNETON,0 -; Silph Co. 3F/Mansion 1F - db 29,ELECTRODE,WEEZING,0 -; Silph Co. 4F - db 33,ELECTRODE,0 -; Silph Co. 5F - db 26,MAGNETON,KOFFING,WEEZING,MAGNEMITE,0 -; Silph Co. 6F - db 25,VOLTORB,KOFFING,MAGNETON,MAGNEMITE,KOFFING,0 -; Silph Co. 7F - db 29,ELECTRODE,MUK,0 -; Silph Co. 8F - db 29,GRIMER,ELECTRODE,0 -; Silph Co. 9F - db 28,VOLTORB,KOFFING,MAGNETON,0 -; Silph Co. 10F - db 29,MAGNEMITE,KOFFING,0 -; Mansion 3F - db 33,MAGNEMITE,MAGNETON,VOLTORB,0 -; Mansion B1F - db 34,MAGNEMITE,ELECTRODE,0 -GiovanniData: -; Rocket Hideout B4F - db $FF,25,ONIX,24,RHYHORN,29,PERSIAN,0 -; Silph Co. 11F - db $FF,37,NIDORINO,35,PERSIAN,37,RHYHORN,41,NIDOQUEEN,0 -; Viridian Gym - db $FF,50,DUGTRIO,53,PERSIAN,53,NIDOQUEEN,55,NIDOKING,55,RHYDON,0 -RocketData: -; Mt. Moon B2F - db 13,RATTATA,ZUBAT,0 - db 11,SANDSHREW,RATTATA,ZUBAT,0 - db 12,ZUBAT,EKANS,0 - db 16,RATICATE,0 -; Cerulean City - db 17,MACHOP,DROWZEE,0 -; Route 24 - db 15,EKANS,ZUBAT,0 -; Game Corner - db 20,RATICATE,ZUBAT,0 -; Rocket Hideout B1F - db 21,DROWZEE,MACHOP,0 - db 21,RATICATE,RATICATE,0 - db 20,GRIMER,KOFFING,KOFFING,0 - db 19,RATTATA,RATICATE,RATICATE,RATTATA,0 - db 22,GRIMER,KOFFING,0 -; Rocket Hideout B2F - db 17,ZUBAT,KOFFING,GRIMER,ZUBAT,RATICATE,0 -; Rocket Hideout B3F - db 20,RATTATA,RATICATE,DROWZEE,0 - db 21,MACHOP,MACHOP,0 -; Rocket Hideout B4F - db 23,SANDSHREW,EKANS,SANDSLASH,0 - db 23,EKANS,SANDSHREW,ARBOK,0 - db 21,KOFFING,ZUBAT,0 -; Pokémon Tower 7F - db 25,ZUBAT,ZUBAT,GOLBAT,0 - db 26,KOFFING,DROWZEE,0 - db 23,ZUBAT,RATTATA,RATICATE,ZUBAT,0 -; Unused - db 26,DROWZEE,KOFFING,0 -; Silph Co. 2F - db 29,CUBONE,ZUBAT,0 - db 25,GOLBAT,ZUBAT,ZUBAT,RATICATE,ZUBAT,0 -; Silph Co. 3F - db 28,RATICATE,HYPNO,RATICATE,0 -; Silph Co. 4F - db 29,MACHOP,DROWZEE,0 - db 28,EKANS,ZUBAT,CUBONE,0 -; Silph Co. 5F - db 33,ARBOK,0 - db 33,HYPNO,0 -; Silph Co. 6F - db 29,MACHOP,MACHOKE,0 - db 28,ZUBAT,ZUBAT,GOLBAT,0 -; Silph Co. 7F - db 26,RATICATE,ARBOK,KOFFING,GOLBAT,0 - db 29,CUBONE,CUBONE,0 - db 29,SANDSHREW,SANDSLASH,0 -; Silph Co. 8F - db 26,RATICATE,ZUBAT,GOLBAT,RATTATA,0 - db 28,WEEZING,GOLBAT,KOFFING,0 -; Silph Co. 9F - db 28,DROWZEE,GRIMER,MACHOP,0 - db 28,GOLBAT,DROWZEE,HYPNO,0 -; Silph Co. 10F - db 33,MACHOKE,0 -; Silph Co. 11F - db 25,RATTATA,RATTATA,ZUBAT,RATTATA,EKANS,0 - db 32,CUBONE,DROWZEE,MAROWAK,0 -;JessieJamesData: - db 14,EKANS,MEOWTH,KOFFING,0 - db 25,KOFFING,MEOWTH,EKANS,0 - db 27,MEOWTH,ARBOK,WEEZING,0 - db 31,WEEZING,ARBOK,MEOWTH,0 -; unused JessieJames trainers - db 16,KOFFING,0 - db 27,KOFFING,0 - db 29,WEEZING,0 - db 33,WEEZING,0 -CooltrainerMData: -; Viridian Gym - db 39,NIDORINO,NIDOKING,0 -; Victory Road 3F - db 43,EXEGGUTOR,CLOYSTER,ARCANINE,0 - db 43,KINGLER,TENTACRUEL,BLASTOISE,0 -; Unused - db 45,KINGLER,STARMIE,0 -; Victory Road 1F - db 42,IVYSAUR,WARTORTLE,CHARMELEON,CHARIZARD,0 -; Unused - db 44,IVYSAUR,WARTORTLE,CHARMELEON,0 - db 49,NIDOKING,0 - db 44,KINGLER,CLOYSTER,0 -; Viridian Gym - db 39,SANDSLASH,DUGTRIO,0 - db 43,RHYHORN,0 -CooltrainerFData: -; Celadon Gym - db 24,WEEPINBELL,GLOOM,IVYSAUR,0 -; Victory Road 3F - db 43,BELLSPROUT,WEEPINBELL,VICTREEBEL,0 - db 43,PARASECT,DEWGONG,CHANSEY,0 -; Unused - db 46,VILEPLUME,BUTTERFREE,0 -; Victory Road 1F - db 44,PERSIAN,NINETALES,0 -; Unused - db 45,IVYSAUR,VENUSAUR,0 - db 45,NIDORINA,NIDOQUEEN,0 - db 43,PERSIAN,NINETALES,RAICHU,0 -BrunoData: - db $FF,53,ONIX,55,HITMONCHAN,55,HITMONLEE,56,ONIX,58,MACHAMP,0 -BrockData: - db $FF,10,GEODUDE,12,ONIX,0 -MistyData: - db $FF,18,STARYU,21,STARMIE,0 -LtSurgeData: - db $FF,28,RAICHU,0 -ErikaData: - db $FF,30,TANGELA,32,WEEPINBELL,32,GLOOM,0 -KogaData: - db $FF,44,VENONAT,46,VENONAT,48,VENONAT,50,VENOMOTH,0 -BlaineData: - db $FF,48,NINETALES,50,RAPIDASH,54,ARCANINE,0 -SabrinaData: - db $FF,50,ABRA,50,KADABRA,50,ALAKAZAM,0 -GentlemanData: -; SS Anne 1F Rooms - db 18,GROWLITHE,GROWLITHE,0 - db 19,NIDORAN_M,NIDORAN_F,0 -; SS Anne 2F Rooms/Vermilion Gym - db 22,VOLTORB,MAGNEMITE,0 -; Unused - db 48,PRIMEAPE,0 -; SS Anne 2F Rooms - db 17,GROWLITHE,PONYTA,0 -Green2Data: -; SS Anne 2F - db $FF,19,SPEAROW,16,RATTATA,18,SANDSHREW,20,EEVEE,0 -; Pokémon Tower 2F - db $FF,25,FEAROW,23,SHELLDER,22,VULPIX,20,SANDSHREW,25,EEVEE,0 - db $FF,25,FEAROW,23,MAGNEMITE,22,SHELLDER,20,SANDSHREW,25,EEVEE,0 - db $FF,25,FEAROW,23,VULPIX,22,MAGNEMITE,20,SANDSHREW,25,EEVEE,0 -; Silph Co. 7F - db $FF,38,SANDSLASH,35,NINETALES,37,CLOYSTER,35,KADABRA,40,JOLTEON,0 - db $FF,38,SANDSLASH,35,CLOYSTER,37,MAGNETON,35,KADABRA,40,FLAREON,0 - db $FF,38,SANDSLASH,35,MAGNETON,37,NINETALES,35,KADABRA,40,VAPOREON,0 -; Route 22 - db $FF,47,SANDSLASH,45,EXEGGCUTE,45,NINETALES,47,CLOYSTER,50,KADABRA,53,JOLTEON,0 - db $FF,47,SANDSLASH,45,EXEGGCUTE,45,CLOYSTER,47,MAGNETON,50,KADABRA,53,FLAREON,0 - db $FF,47,SANDSLASH,45,EXEGGCUTE,45,MAGNETON,47,NINETALES,50,KADABRA,53,VAPOREON,0 -Green3Data: - db $FF,61,SANDSLASH,59,ALAKAZAM,61,EXEGGUTOR,61,CLOYSTER,63,NINETALES,65,JOLTEON,0 - db $FF,61,SANDSLASH,59,ALAKAZAM,61,EXEGGUTOR,61,MAGNETON,63,CLOYSTER,65,FLAREON,0 - db $FF,61,SANDSLASH,59,ALAKAZAM,61,EXEGGUTOR,61,NINETALES,63,MAGNETON,65,VAPOREON,0 -LoreleiData: - db $FF,54,DEWGONG,53,CLOYSTER,54,SLOWBRO,56,JYNX,56,LAPRAS,0 -ChannelerData: -; Unused - db 22,GASTLY,0 - db 24,GASTLY,0 - db 23,GASTLY,GASTLY,0 - db 24,GASTLY,0 -; Pokémon Tower 3F - db 23,GASTLY,0 - db 24,GASTLY,0 -; Unused - db 24,HAUNTER,0 -; Pokémon Tower 3F - db 22,GASTLY,0 -; Pokémon Tower 4F - db 24,GASTLY,0 - db 23,GASTLY,GASTLY,0 -; Unused - db 24,GASTLY,0 -; Pokémon Tower 4F - db 22,GASTLY,0 -; Unused - db 24,GASTLY,0 -; Pokémon Tower 5F - db 23,HAUNTER,0 -; Unused - db 24,GASTLY,0 -; Pokémon Tower 5F - db 22,GASTLY,0 - db 24,GASTLY,0 - db 22,HAUNTER,0 -; Pokémon Tower 6F - db 22,GASTLY,GASTLY,GASTLY,0 - db 24,GASTLY,0 - db 24,GASTLY,0 -; Saffron Gym - db 34,GASTLY,HAUNTER,0 - db 38,HAUNTER,0 - db 33,GASTLY,GASTLY,HAUNTER,0 -AgathaData: - db $FF,56,GENGAR,56,GOLBAT,55,HAUNTER,58,ARBOK,60,GENGAR,0 -LanceData: - db $FF,58,GYARADOS,56,DRAGONAIR,56,DRAGONAIR,60,AERODACTYL,62,DRAGONITE,0 diff --git a/data/trainer_types.asm b/data/trainer_types.asm deleted file mode 100755 index cc7ca6057..000000000 --- a/data/trainer_types.asm +++ /dev/null @@ -1,17 +0,0 @@ -FemaleTrainerList:: - db OPP_LASS - db OPP_JR_TRAINER_F - db OPP_BEAUTY - db OPP_COOLTRAINER_F - db $FF - -EvilTrainerList:: - db OPP_JUGGLER_X - db OPP_GAMBLER - db OPP_ROCKER - db OPP_JUGGLER - db OPP_CHIEF - db OPP_SCIENTIST - db OPP_GIOVANNI - db OPP_ROCKET - db $FF diff --git a/data/trainers/ai_pointers.asm b/data/trainers/ai_pointers.asm new file mode 100644 index 000000000..9008be86f --- /dev/null +++ b/data/trainers/ai_pointers.asm @@ -0,0 +1,52 @@ +TrainerAIPointers: + ; one entry per trainer class + ; first byte, number of times (per Pokémon) it can occur + ; next two bytes, pointer to AI subroutine for trainer class + ; subroutines are defined in engine/battle/trainer_ai.asm + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, JugglerAI ; unused_juggler + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, GenericAI + dbw 3, JugglerAI ; juggler + dbw 3, GenericAI + dbw 3, GenericAI + dbw 2, BlackbeltAI ; blackbelt + dbw 3, GenericAI + dbw 3, GenericAI + dbw 1, GenericAI ; chief + dbw 3, GenericAI + dbw 1, GiovanniAI ; giovanni + dbw 3, GenericAI + dbw 2, CooltrainerMAI ; cooltrainerm + dbw 1, CooltrainerFAI ; cooltrainerf + dbw 2, BrunoAI ; bruno + dbw 5, BrockAI ; brock + dbw 1, MistyAI ; misty + dbw 1, LtSurgeAI ; surge + dbw 1, ErikaAI ; erika + dbw 2, KogaAI ; koga + dbw 2, BlaineAI ; blaine + dbw 1, SabrinaAI ; sabrina + dbw 3, GenericAI + dbw 1, Sony2AI ; sony2 + dbw 1, Sony3AI ; sony3 + dbw 2, LoreleiAI ; lorelei + dbw 3, GenericAI + dbw 2, AgathaAI ; agatha + dbw 1, LanceAI ; lance diff --git a/data/trainers/encounter_types.asm b/data/trainers/encounter_types.asm new file mode 100755 index 000000000..5bca25172 --- /dev/null +++ b/data/trainers/encounter_types.asm @@ -0,0 +1,17 @@ +FemaleTrainerList:: + db OPP_LASS + db OPP_JR_TRAINER_F + db OPP_BEAUTY + db OPP_COOLTRAINER_F + db -1 ; end + +EvilTrainerList:: + db OPP_UNUSED_JUGGLER + db OPP_GAMBLER + db OPP_ROCKER + db OPP_JUGGLER + db OPP_CHIEF + db OPP_SCIENTIST + db OPP_GIOVANNI + db OPP_ROCKET + db -1 ; end diff --git a/data/trainers/move_choices.asm b/data/trainers/move_choices.asm new file mode 100644 index 000000000..dd8277dc0 --- /dev/null +++ b/data/trainers/move_choices.asm @@ -0,0 +1,57 @@ +move_choices: MACRO +REPT _NARG + db \1 + shift +ENDR + db 0 ; end +ENDM + +; move choice modification methods that are applied for each trainer class +TrainerClassMoveChoiceModifications: + move_choices ; YOUNGSTER + move_choices 1 ; BUG CATCHER + move_choices 1 ; LASS + move_choices 1, 3 ; SAILOR + move_choices 1 ; JR_TRAINER_M + move_choices 1 ; JR_TRAINER_F + move_choices 1, 2, 3 ; POKEMANIAC + move_choices 1, 2 ; SUPER_NERD + move_choices 1 ; HIKER + move_choices 1 ; BIKER + move_choices 1, 3 ; BURGLAR + move_choices 1 ; ENGINEER + move_choices 1, 2 ; UNUSED_JUGGLER + move_choices 1, 3 ; FISHER + move_choices 1, 3 ; SWIMMER + move_choices ; CUE_BALL + move_choices 1 ; GAMBLER + move_choices 1, 3 ; BEAUTY + move_choices 1, 2 ; PSYCHIC_TR + move_choices 1 ; ROCKER + move_choices 1 ; JUGGLER + move_choices 1 ; TAMER + move_choices 1 ; BIRD_KEEPER + move_choices 1 ; BLACKBELT + move_choices 1 ; RIVAL1 + move_choices 1, 3 ; PROF_OAK + move_choices 1, 2 ; CHIEF + move_choices 1, 2 ; SCIENTIST + move_choices 1, 3 ; GIOVANNI + move_choices 1 ; ROCKET + move_choices 1, 3 ; COOLTRAINER_M + move_choices 1, 3 ; COOLTRAINER_F + move_choices 1 ; BRUNO + move_choices 1 ; BROCK + move_choices 1, 3 ; MISTY + move_choices 1 ; LT_SURGE + move_choices 1, 3 ; ERIKA + move_choices 1, 3 ; KOGA + move_choices 1 ; BLAINE + move_choices 1 ; SABRINA + move_choices 1, 2 ; GENTLEMAN + move_choices 1, 3 ; RIVAL2 + move_choices 1, 3 ; RIVAL3 + move_choices 1, 2, 3 ; LORELEI + move_choices 1 ; CHANNELER + move_choices 1 ; AGATHA + move_choices 1, 3 ; LANCE diff --git a/data/trainers/name_pointers.asm b/data/trainers/name_pointers.asm new file mode 100644 index 000000000..98e2e4063 --- /dev/null +++ b/data/trainers/name_pointers.asm @@ -0,0 +1,71 @@ +TrainerNamePointers: +; what is the point of these? + dw .YoungsterName + dw .BugCatcherName + dw .LassName + dw wTrainerName + dw .JrTrainerMName + dw .JrTrainerFName + dw .PokemaniacName + dw .SuperNerdName + dw wTrainerName + dw wTrainerName + dw .BurglarName + dw .EngineerName + dw .UnusedJugglerName + dw wTrainerName + dw .SwimmerName + dw wTrainerName + dw wTrainerName + dw .BeautyName + dw wTrainerName + dw .RockerName + dw .JugglerName + dw wTrainerName + dw wTrainerName + dw .BlackbeltName + dw wTrainerName + dw .ProfOakName + dw .ChiefName + dw .ScientistName + dw wTrainerName + dw .RocketName + dw .CooltrainerMName + dw .CooltrainerFName + dw wTrainerName + dw wTrainerName + dw wTrainerName + dw wTrainerName + dw wTrainerName + dw wTrainerName + dw wTrainerName + dw wTrainerName + dw wTrainerName + dw wTrainerName + dw wTrainerName + dw wTrainerName + dw wTrainerName + dw wTrainerName + dw wTrainerName + +.YoungsterName: db "YOUNGSTER@" +.BugCatcherName: db "BUG CATCHER@" +.LassName: db "LASS@" +.JrTrainerMName: db "JR.TRAINER♂@" +.JrTrainerFName: db "JR.TRAINER♀@" +.PokemaniacName: db "POKéMANIAC@" +.SuperNerdName: db "SUPER NERD@" +.BurglarName: db "BURGLAR@" +.EngineerName: db "ENGINEER@" +.UnusedJugglerName: db "JUGGLER@" +.SwimmerName: db "SWIMMER@" +.BeautyName: db "BEAUTY@" +.RockerName: db "ROCKER@" +.JugglerName: db "JUGGLER@" +.BlackbeltName: db "BLACKBELT@" +.ProfOakName: db "PROF.OAK@" +.ChiefName: db "CHIEF@" +.ScientistName: db "SCIENTIST@" +.RocketName: db "ROCKET@" +.CooltrainerMName: db "COOLTRAINER♂@" +.CooltrainerFName: db "COOLTRAINER♀@" diff --git a/data/trainers/names.asm b/data/trainers/names.asm new file mode 100755 index 000000000..d8e1f550f --- /dev/null +++ b/data/trainers/names.asm @@ -0,0 +1,48 @@ +TrainerNames:: + db "YOUNGSTER@" + db "BUG CATCHER@" + db "LASS@" + db "SAILOR@" + db "JR.TRAINER♂@" + db "JR.TRAINER♀@" + db "POKéMANIAC@" + db "SUPER NERD@" + db "HIKER@" + db "BIKER@" + db "BURGLAR@" + db "ENGINEER@" + db "JUGGLER@" + db "FISHERMAN@" + db "SWIMMER@" + db "CUE BALL@" + db "GAMBLER@" + db "BEAUTY@" + db "PSYCHIC@" + db "ROCKER@" + db "JUGGLER@" + db "TAMER@" + db "BIRD KEEPER@" + db "BLACKBELT@" + db "RIVAL1@" + db "PROF.OAK@" + db "CHIEF@" + db "SCIENTIST@" + db "GIOVANNI@" + db "ROCKET@" + db "COOLTRAINER♂@" + db "COOLTRAINER♀@" + db "BRUNO@" + db "BROCK@" + db "MISTY@" + db "LT.SURGE@" + db "ERIKA@" + db "KOGA@" + db "BLAINE@" + db "SABRINA@" + db "GENTLEMAN@" + db "RIVAL2@" + db "RIVAL3@" + db "LORELEI@" + db "CHANNELER@" + db "AGATHA@" + db "LANCE@" diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm new file mode 100755 index 000000000..af33a273c --- /dev/null +++ b/data/trainers/parties.asm @@ -0,0 +1,749 @@ +TrainerDataPointers: + dw YoungsterData + dw BugCatcherData + dw LassData + dw SailorData + dw JrTrainerMData + dw JrTrainerFData + dw PokemaniacData + dw SuperNerdData + dw HikerData + dw BikerData + dw BurglarData + dw EngineerData + dw UnusedJugglerData + dw FisherData + dw SwimmerData + dw CueBallData + dw GamblerData + dw BeautyData + dw PsychicData + dw RockerData + dw JugglerData + dw TamerData + dw BirdKeeperData + dw BlackbeltData + dw Green1Data + dw ProfOakData + dw ChiefData + dw ScientistData + dw GiovanniData + dw RocketData + dw CooltrainerMData + dw CooltrainerFData + dw BrunoData + dw BrockData + dw MistyData + dw LtSurgeData + dw ErikaData + dw KogaData + dw BlaineData + dw SabrinaData + dw GentlemanData + dw Green2Data + dw Green3Data + dw LoreleiData + dw ChannelerData + dw AgathaData + dw LanceData + +; if first byte != $FF, then + ; first byte is level (of all pokemon on this team) + ; all the next bytes are pokemon species + ; null-terminated +; if first byte == $FF, then + ; first byte is $FF (obviously) + ; every next two bytes are a level and species + ; null-terminated + +YoungsterData: +; Route 3 + db 11, RATTATA, EKANS, 0 + db 14, SPEAROW, 0 +; Mt. Moon 1F + db 10, RATTATA, RATTATA, ZUBAT, 0 +; Route 24 + db 14, RATTATA, EKANS, ZUBAT, 0 +; Route 25 + db 15, RATTATA, SPEAROW, 0 + db 17, SLOWPOKE, 0 + db 14, EKANS, SANDSHREW, 0 +; SS Anne 1F Rooms + db 21, NIDORAN_M, 0 +; Route 11 + db 21, EKANS, 0 + db 19, SANDSHREW, ZUBAT, 0 + db 17, RATTATA, RATTATA, RATICATE, 0 + db 18, NIDORAN_M, NIDORINO, 0 +; Unused + db 17, SPEAROW, RATTATA, RATTATA, SPEAROW, 0 + db 24, SANDSHREW, 0 + +BugCatcherData: +; Viridian Forest + db 7, CATERPIE, CATERPIE, 0 + db 6, METAPOD, CATERPIE, METAPOD, 0 + db 10, CATERPIE, 0 +; Route 3 + db 10, CATERPIE, WEEDLE, CATERPIE, 0 + db 9, WEEDLE, KAKUNA, CATERPIE, METAPOD, 0 + db 11, CATERPIE, METAPOD, 0 +; Mt. Moon 1F + db 11, WEEDLE, KAKUNA, 0 + db 10, CATERPIE, METAPOD, CATERPIE, 0 +; Route 24 + db 14, CATERPIE, WEEDLE, 0 +; Route 6 + db 16, WEEDLE, CATERPIE, WEEDLE, 0 + db 20, BUTTERFREE, 0 +; Unused + db 18, METAPOD, CATERPIE, VENONAT, 0 +; Route 9 + db 19, BEEDRILL, BEEDRILL, 0 + db 20, CATERPIE, WEEDLE, VENONAT, 0 + db 8, CATERPIE, METAPOD, 0 + +LassData: +; Route 3 + db 9, PIDGEY, PIDGEY, 0 + db 10, RATTATA, NIDORAN_M, 0 + db 14, JIGGLYPUFF, 0 +; Route 4 + db 31, PARAS, PARAS, PARASECT, 0 +; Mt. Moon 1F + db 11, ODDISH, BELLSPROUT, 0 + db 14, CLEFAIRY, 0 +; Route 24 + db 16, PIDGEY, NIDORAN_F, 0 + db 14, PIDGEY, NIDORAN_F, 0 +; Route 25 + db 15, NIDORAN_M, NIDORAN_F, 0 + db 13, ODDISH, PIDGEY, ODDISH, 0 +; SS Anne 1F Rooms + db 18, PIDGEY, NIDORAN_F, 0 +; SS Anne 2F Rooms + db 20, JIGGLYPUFF, 0 +; Route 8 + db 23, NIDORAN_F, NIDORINA, 0 + db 24, MEOWTH, MEOWTH, MEOWTH, 0 + db 19, PIDGEY, RATTATA, NIDORAN_F, MEOWTH, NIDORAN_M, 0 + db 22, CLEFAIRY, CLEFAIRY, 0 +; Celadon Gym + db 23, BELLSPROUT, WEEPINBELL, 0 + db 23, ODDISH, GLOOM, 0 + db 6, NIDORAN_F, NIDORAN_M, 0 + +SailorData: +; SS Anne Stern + db 18, MACHOP, SHELLDER, 0 + db 17, MACHOP, TENTACOOL, 0 +; SS Anne B1F Rooms + db 21, SHELLDER, 0 + db 17, HORSEA, SHELLDER, TENTACOOL, 0 + db 18, TENTACOOL, STARYU, 0 + db 17, HORSEA, HORSEA, HORSEA, 0 + db 20, MACHOP, 0 +; Vermilion Gym + db 24, MAGNEMITE, 0 + +JrTrainerMData: +; Pewter Gym + db 9, DIGLETT, SANDSHREW, 0 +; Route 24/Route 25 + db 14, RATTATA, EKANS, 0 +; Route 24 + db 18, MANKEY, 0 +; Route 6 + db 20, SQUIRTLE, 0 + db 16, SPEAROW, RATICATE, 0 +; Unused + db 18, DIGLETT, DIGLETT, SANDSHREW, 0 +; Route 9 + db 21, GROWLITHE, CHARMANDER, 0 + db 19, RATTATA, DIGLETT, EKANS, SANDSHREW, 0 +; Route 12 + db 29, NIDORAN_M, NIDORINO, 0 + db 16, WEEPINBELL, 0 + +JrTrainerFData: +; Cerulean Gym + db 19, GOLDEEN, 0 +; Route 6 + db 16, ODDISH, BELLSPROUT, 0 + db 16, PIDGEY, PIDGEY, PIDGEY, 0 +; Unused + db 22, BULBASAUR, 0 +; Route 9 + db 18, ODDISH, BELLSPROUT, ODDISH, BELLSPROUT, 0 + db 23, MEOWTH, 0 +; Route 10 + db 20, JIGGLYPUFF, CLEFAIRY, 0 + db 21, PIDGEY, PIDGEOTTO, 0 +; Rock Tunnel B1F + db 21, JIGGLYPUFF, PIDGEY, MEOWTH, 0 + db 22, ODDISH, BULBASAUR, 0 +; Celadon Gym + db 24, BULBASAUR, IVYSAUR, 0 +; Route 13 + db 24, PIDGEY, MEOWTH, RATTATA, PIDGEY, MEOWTH, 0 + db 30, POLIWAG, POLIWAG, 0 + db 27, PIDGEY, MEOWTH, PIDGEY, PIDGEOTTO, 0 + db 28, GOLDEEN, POLIWAG, HORSEA, 0 +; Route 20 + db 31, GOLDEEN, SEAKING, 0 +; Rock Tunnel 1F + db 22, BELLSPROUT, CLEFAIRY, 0 + db 20, MEOWTH, ODDISH, PIDGEY, 0 + db 19, PIDGEY, RATTATA, RATTATA, BELLSPROUT, 0 +; Route 15 + db 28, GLOOM, ODDISH, ODDISH, 0 + db 29, PIDGEY, PIDGEOTTO, 0 + db 33, CLEFAIRY, 0 + db 29, BELLSPROUT, ODDISH, TANGELA, 0 +; Route 20 + db 30, TENTACOOL, HORSEA, SEEL, 0 + db 20, CUBONE, 0 + +PokemaniacData: +; Route 10 + db 30, RHYHORN, LICKITUNG, 0 + db 20, CUBONE, SLOWPOKE, 0 +; Rock Tunnel B1F + db 20, SLOWPOKE, SLOWPOKE, SLOWPOKE, 0 + db 22, CHARMANDER, CUBONE, 0 + db 25, SLOWPOKE, 0 +; Victory Road 2F + db 40, CHARMELEON, LAPRAS, LICKITUNG, 0 +; Rock Tunnel 1F + db 23, CUBONE, SLOWPOKE, 0 + +SuperNerdData: +; Mt. Moon 1F + db 11, MAGNEMITE, VOLTORB, 0 +; Mt. Moon B2F + db 12, GRIMER, VOLTORB, KOFFING, 0 +; Route 8 + db 20, VOLTORB, KOFFING, VOLTORB, MAGNEMITE, 0 + db 22, GRIMER, MUK, GRIMER, 0 + db 26, KOFFING, 0 +; Unused + db 22, KOFFING, MAGNEMITE, WEEZING, 0 + db 20, MAGNEMITE, MAGNEMITE, KOFFING, MAGNEMITE, 0 + db 24, MAGNEMITE, VOLTORB, 0 +; Cinnabar Gym + db 36, VULPIX, VULPIX, NINETALES, 0 + db 34, PONYTA, CHARMANDER, VULPIX, GROWLITHE, 0 + db 41, RAPIDASH, 0 + db 37, GROWLITHE, VULPIX, 0 + +HikerData: +; Mt. Moon 1F + db 10, GEODUDE, GEODUDE, ONIX, 0 +; Route 25 + db 15, MACHOP, GEODUDE, 0 + db 13, GEODUDE, GEODUDE, MACHOP, GEODUDE, 0 + db 17, ONIX, 0 +; Route 9 + db 21, GEODUDE, ONIX, 0 + db 20, GEODUDE, MACHOP, GEODUDE, 0 +; Route 10 + db 21, GEODUDE, ONIX, 0 + db 19, ONIX, GRAVELER, 0 +; Rock Tunnel B1F + db 21, GEODUDE, GEODUDE, GRAVELER, 0 + db 25, GEODUDE, 0 +; Route 9/Rock Tunnel B1F + db 20, MACHOP, ONIX, 0 +; Rock Tunnel 1F + db 19, GEODUDE, MACHOP, GEODUDE, GEODUDE, 0 + db 20, ONIX, ONIX, GEODUDE, 0 + db 21, GEODUDE, GRAVELER, 0 + +BikerData: +; Route 13 + db 28, KOFFING, KOFFING, KOFFING, 0 +; Route 14 + db 29, KOFFING, GRIMER, 0 +; Route 15 + db 25, KOFFING, KOFFING, WEEZING, KOFFING, GRIMER, 0 + db 28, KOFFING, GRIMER, WEEZING, 0 +; Route 16 + db 29, GRIMER, KOFFING, 0 + db 33, WEEZING, 0 + db 26, GRIMER, GRIMER, GRIMER, GRIMER, 0 +; Route 17 + ; From https://www.smogon.com/smog/issue27/glitch: + ; 0E:5FC2 is offset of the ending 0 for this first Biker on Route 17. + ; BaseStats + (MonBaseStatsEnd - MonBaseStats) * (000 - 1) = $5FC2; + ; that's the formula from GetMonHeader for the base stats of mon #000. + ; (BaseStats = $43DE and BANK(BaseStats) = $0E.) + ; Finally, PokedexOrder lists 0 as the dex ID for every MissingNo. + ; The result is that this data gets interpreted as the base stats + ; for MissingNo: 0, 33, MUK, 0, 29, VOLTORB, VOLTORB, 0, ..., 28, GRIMER, GRIMER. + db 28, WEEZING, KOFFING, WEEZING, 0 + db 33, MUK, 0 + db 29, VOLTORB, VOLTORB, 0 + db 29, WEEZING, MUK, 0 + db 25, KOFFING, WEEZING, KOFFING, KOFFING, WEEZING, 0 +; Route 14 + db 26, KOFFING, KOFFING, GRIMER, KOFFING, 0 + db 28, GRIMER, GRIMER, KOFFING, 0 + db 29, KOFFING, MUK, 0 + +BurglarData: +; Unused + db 29, GROWLITHE, VULPIX, 0 + db 33, GROWLITHE, 0 + db 28, VULPIX, CHARMANDER, PONYTA, 0 +; Cinnabar Gym + db 36, GROWLITHE, VULPIX, NINETALES, 0 + db 41, PONYTA, 0 + db 37, VULPIX, GROWLITHE, 0 +; Mansion 2F + db 34, CHARMANDER, CHARMELEON, 0 +; Mansion 3F + db 38, NINETALES, 0 +; Mansion B1F + db 34, GROWLITHE, PONYTA, 0 + +EngineerData: +; Unused + db 21, VOLTORB, MAGNEMITE, 0 +; Route 11 + db 21, MAGNEMITE, 0 + db 18, MAGNEMITE, MAGNEMITE, MAGNETON, 0 + +UnusedJugglerData: +; none + +FisherData: +; SS Anne 2F Rooms + db 17, GOLDEEN, TENTACOOL, GOLDEEN, 0 +; SS Anne B1F Rooms + db 17, TENTACOOL, STARYU, SHELLDER, 0 +; Route 12 + db 22, GOLDEEN, POLIWAG, GOLDEEN, 0 + db 24, TENTACOOL, GOLDEEN, 0 + db 27, GOLDEEN, 0 + db 21, POLIWAG, SHELLDER, GOLDEEN, HORSEA, 0 +; Route 21 + db 28, SEAKING, GOLDEEN, SEAKING, SEAKING, 0 + db 31, SHELLDER, CLOYSTER, 0 + db 27, MAGIKARP, MAGIKARP, MAGIKARP, MAGIKARP, MAGIKARP, MAGIKARP, 0 + db 33, SEAKING, GOLDEEN, 0 +; Route 12 + db 24, MAGIKARP, MAGIKARP, 0 + +SwimmerData: +; Cerulean Gym + db 16, HORSEA, SHELLDER, 0 +; Route 19 + db 30, TENTACOOL, SHELLDER, 0 + db 29, GOLDEEN, HORSEA, STARYU, 0 + db 30, POLIWAG, POLIWHIRL, 0 + db 27, HORSEA, TENTACOOL, TENTACOOL, GOLDEEN, 0 + db 29, GOLDEEN, SHELLDER, SEAKING, 0 + db 30, HORSEA, HORSEA, 0 + db 27, TENTACOOL, TENTACOOL, STARYU, HORSEA, TENTACRUEL, 0 +; Route 20 + db 31, SHELLDER, CLOYSTER, 0 + db 35, STARYU, 0 + db 28, HORSEA, HORSEA, SEADRA, HORSEA, 0 +; Route 21 + db 33, SEADRA, TENTACRUEL, 0 + db 37, STARMIE, 0 + db 33, STARYU, WARTORTLE, 0 + db 32, POLIWHIRL, TENTACOOL, SEADRA, 0 + +CueBallData: +; Route 16 + db 28, MACHOP, MANKEY, MACHOP, 0 + db 29, MANKEY, MACHOP, 0 + db 33, MACHOP, 0 +; Route 17 + db 29, MANKEY, PRIMEAPE, 0 + db 29, MACHOP, MACHOKE, 0 + db 33, MACHOKE, 0 + db 26, MANKEY, MANKEY, MACHOKE, MACHOP, 0 + db 29, PRIMEAPE, MACHOKE, 0 +; Route 21 + db 31, TENTACOOL, TENTACOOL, TENTACRUEL, 0 + +GamblerData: +; Route 11 + db 18, POLIWAG, HORSEA, 0 + db 18, BELLSPROUT, ODDISH, 0 + db 18, VOLTORB, MAGNEMITE, 0 + db 18, GROWLITHE, VULPIX, 0 +; Route 8 + db 22, POLIWAG, POLIWAG, POLIWHIRL, 0 +; Unused + db 22, ONIX, GEODUDE, GRAVELER, 0 +; Route 8 + db 24, GROWLITHE, VULPIX, 0 + +BeautyData: +; Celadon Gym + db 21, ODDISH, BELLSPROUT, ODDISH, BELLSPROUT, 0 + db 24, BELLSPROUT, BELLSPROUT, 0 + db 26, EXEGGCUTE, 0 +; Route 13 + db 27, RATTATA, VULPIX, RATTATA, 0 + db 29, CLEFAIRY, MEOWTH, 0 +; Route 20 + db 35, SEAKING, 0 + db 30, SHELLDER, SHELLDER, CLOYSTER, 0 + db 31, POLIWAG, SEAKING, 0 +; Route 15 + db 29, PIDGEOTTO, WIGGLYTUFF, 0 + db 29, BULBASAUR, IVYSAUR, 0 +; Unused + db 33, WEEPINBELL, BELLSPROUT, WEEPINBELL, 0 +; Route 19 + db 27, POLIWAG, GOLDEEN, SEAKING, GOLDEEN, POLIWAG, 0 + db 30, GOLDEEN, SEAKING, 0 + db 29, STARYU, STARYU, STARYU, 0 +; Route 20 + db 30, SEADRA, HORSEA, SEADRA, 0 + +PsychicData: +; Saffron Gym + db 31, KADABRA, SLOWPOKE, MR_MIME, KADABRA, 0 + db 34, MR_MIME, KADABRA, 0 + db 33, SLOWPOKE, SLOWPOKE, SLOWBRO, 0 + db 38, SLOWBRO, 0 + +RockerData: +; Vermilion Gym + db 20, VOLTORB, VOLTORB, VOLTORB, 0 +; Route 12 + db 29, VOLTORB, ELECTRODE, 0 + +JugglerData: +; Silph Co. 5F + db 29, KADABRA, MR_MIME, 0 +; Victory Road 2F + db 41, DROWZEE, HYPNO, KADABRA, KADABRA, 0 +; Fuchsia Gym + db 31, DROWZEE, DROWZEE, KADABRA, DROWZEE, 0 + db 34, DROWZEE, HYPNO, 0 +; Victory Road 2F + db 48, MR_MIME, 0 +; Unused + db 33, HYPNO, 0 +; Fuchsia Gym + db 38, HYPNO, 0 + db 34, DROWZEE, KADABRA, 0 + +TamerData: +; Fuchsia Gym + db 34, SANDSLASH, ARBOK, 0 + db 33, ARBOK, SANDSLASH, ARBOK, 0 +; Viridian Gym + db 43, RHYHORN, 0 + db 39, ARBOK, TAUROS, 0 +; Victory Road 2F + db 44, PERSIAN, GOLDUCK, 0 +; Unused + db 42, RHYHORN, PRIMEAPE, ARBOK, TAUROS, 0 + +BirdKeeperData: +; Route 13 + db 29, PIDGEY, PIDGEOTTO, 0 + db 25, SPEAROW, PIDGEY, PIDGEY, SPEAROW, SPEAROW, 0 + db 26, PIDGEY, PIDGEOTTO, SPEAROW, FEAROW, 0 +; Route 14 + db 33, FARFETCHD, 0 + db 29, SPEAROW, FEAROW, 0 +; Route 15 + db 26, PIDGEOTTO, FARFETCHD, DODUO, PIDGEY, 0 + db 28, DODRIO, DODUO, DODUO, 0 +; Route 18 + db 29, SPEAROW, FEAROW, 0 + db 34, DODRIO, 0 + db 26, SPEAROW, SPEAROW, FEAROW, SPEAROW, 0 +; Route 20 + db 30, FEAROW, FEAROW, PIDGEOTTO, 0 +; Unused + db 39, PIDGEOTTO, PIDGEOTTO, PIDGEY, PIDGEOTTO, 0 + db 42, FARFETCHD, FEAROW, 0 +; Route 14 + db 28, PIDGEY, DODUO, PIDGEOTTO, 0 + db 26, PIDGEY, SPEAROW, PIDGEY, FEAROW, 0 + db 29, PIDGEOTTO, FEAROW, 0 + db 28, SPEAROW, DODUO, FEAROW, 0 + +BlackbeltData: +; Fighting Dojo + db 37, HITMONLEE, HITMONCHAN, 0 + db 31, MANKEY, MANKEY, PRIMEAPE, 0 + db 32, MACHOP, MACHOKE, 0 + db 36, PRIMEAPE, 0 + db 31, MACHOP, MANKEY, PRIMEAPE, 0 +; Viridian Gym + db 40, MACHOP, MACHOKE, 0 + db 43, MACHOKE, 0 + db 38, MACHOKE, MACHOP, MACHOKE, 0 +; Victory Road 2F + db 43, MACHOKE, MACHOP, MACHOKE, 0 + +Green1Data: + db 5, EEVEE, 0 +; Route 22 + db $FF, 9, SPEAROW, 8, EEVEE, 0 +; Cerulean City + db $FF, 18, SPEAROW, 15, SANDSHREW, 15, RATTATA, 17, EEVEE, 0 + +ProfOakData: +; Unused + db $FF, 66, TAUROS, 67, EXEGGUTOR, 68, ARCANINE, 69, BLASTOISE, 70, GYARADOS, 0 + db $FF, 66, TAUROS, 67, EXEGGUTOR, 68, ARCANINE, 69, VENUSAUR, 70, GYARADOS, 0 + db $FF, 66, TAUROS, 67, EXEGGUTOR, 68, ARCANINE, 69, CHARIZARD, 70, GYARADOS, 0 + +ChiefData: +; none + +ScientistData: +; Unused + db 34, KOFFING, VOLTORB, 0 +; Silph Co. 2F + db 26, GRIMER, WEEZING, KOFFING, WEEZING, 0 + db 28, MAGNEMITE, VOLTORB, MAGNETON, 0 +; Silph Co. 3F/Mansion 1F + db 29, ELECTRODE, WEEZING, 0 +; Silph Co. 4F + db 33, ELECTRODE, 0 +; Silph Co. 5F + db 26, MAGNETON, KOFFING, WEEZING, MAGNEMITE, 0 +; Silph Co. 6F + db 25, VOLTORB, KOFFING, MAGNETON, MAGNEMITE, KOFFING, 0 +; Silph Co. 7F + db 29, ELECTRODE, MUK, 0 +; Silph Co. 8F + db 29, GRIMER, ELECTRODE, 0 +; Silph Co. 9F + db 28, VOLTORB, KOFFING, MAGNETON, 0 +; Silph Co. 10F + db 29, MAGNEMITE, KOFFING, 0 +; Mansion 3F + db 33, MAGNEMITE, MAGNETON, VOLTORB, 0 +; Mansion B1F + db 34, MAGNEMITE, ELECTRODE, 0 + +GiovanniData: +; Rocket Hideout B4F + db $FF, 25, ONIX, 24, RHYHORN, 29, PERSIAN, 0 +; Silph Co. 11F + db $FF, 37, NIDORINO, 35, PERSIAN, 37, RHYHORN, 41, NIDOQUEEN, 0 +; Viridian Gym + db $FF, 50, DUGTRIO, 53, PERSIAN, 53, NIDOQUEEN, 55, NIDOKING, 55, RHYDON, 0 + +RocketData: +; Mt. Moon B2F + db 13, RATTATA, ZUBAT, 0 + db 11, SANDSHREW, RATTATA, ZUBAT, 0 + db 12, ZUBAT, EKANS, 0 + db 16, RATICATE, 0 +; Cerulean City + db 17, MACHOP, DROWZEE, 0 +; Route 24 + db 15, EKANS, ZUBAT, 0 +; Game Corner + db 20, RATICATE, ZUBAT, 0 +; Rocket Hideout B1F + db 21, DROWZEE, MACHOP, 0 + db 21, RATICATE, RATICATE, 0 + db 20, GRIMER, KOFFING, KOFFING, 0 + db 19, RATTATA, RATICATE, RATICATE, RATTATA, 0 + db 22, GRIMER, KOFFING, 0 +; Rocket Hideout B2F + db 17, ZUBAT, KOFFING, GRIMER, ZUBAT, RATICATE, 0 +; Rocket Hideout B3F + db 20, RATTATA, RATICATE, DROWZEE, 0 + db 21, MACHOP, MACHOP, 0 +; Rocket Hideout B4F + db 23, SANDSHREW, EKANS, SANDSLASH, 0 + db 23, EKANS, SANDSHREW, ARBOK, 0 + db 21, KOFFING, ZUBAT, 0 +; Pokémon Tower 7F + db 25, ZUBAT, ZUBAT, GOLBAT, 0 + db 26, KOFFING, DROWZEE, 0 + db 23, ZUBAT, RATTATA, RATICATE, ZUBAT, 0 +; Unused + db 26, DROWZEE, KOFFING, 0 +; Silph Co. 2F + db 29, CUBONE, ZUBAT, 0 + db 25, GOLBAT, ZUBAT, ZUBAT, RATICATE, ZUBAT, 0 +; Silph Co. 3F + db 28, RATICATE, HYPNO, RATICATE, 0 +; Silph Co. 4F + db 29, MACHOP, DROWZEE, 0 + db 28, EKANS, ZUBAT, CUBONE, 0 +; Silph Co. 5F + db 33, ARBOK, 0 + db 33, HYPNO, 0 +; Silph Co. 6F + db 29, MACHOP, MACHOKE, 0 + db 28, ZUBAT, ZUBAT, GOLBAT, 0 +; Silph Co. 7F + db 26, RATICATE, ARBOK, KOFFING, GOLBAT, 0 + db 29, CUBONE, CUBONE, 0 + db 29, SANDSHREW, SANDSLASH, 0 +; Silph Co. 8F + db 26, RATICATE, ZUBAT, GOLBAT, RATTATA, 0 + db 28, WEEZING, GOLBAT, KOFFING, 0 +; Silph Co. 9F + db 28, DROWZEE, GRIMER, MACHOP, 0 + db 28, GOLBAT, DROWZEE, HYPNO, 0 +; Silph Co. 10F + db 33, MACHOKE, 0 +; Silph Co. 11F + db 25, RATTATA, RATTATA, ZUBAT, RATTATA, EKANS, 0 + db 32, CUBONE, DROWZEE, MAROWAK, 0 +;JessieJamesData: + db 14, EKANS, MEOWTH, KOFFING, 0 + db 25, KOFFING, MEOWTH, EKANS, 0 + db 27, MEOWTH, ARBOK, WEEZING, 0 + db 31, WEEZING, ARBOK, MEOWTH, 0 +; unused JessieJames trainers + db 16, KOFFING, 0 + db 27, KOFFING, 0 + db 29, WEEZING, 0 + db 33, WEEZING, 0 + +CooltrainerMData: +; Viridian Gym + db 39, NIDORINO, NIDOKING, 0 +; Victory Road 3F + db 43, EXEGGUTOR, CLOYSTER, ARCANINE, 0 + db 43, KINGLER, TENTACRUEL, BLASTOISE, 0 +; Unused + db 45, KINGLER, STARMIE, 0 +; Victory Road 1F + db 42, IVYSAUR, WARTORTLE, CHARMELEON, CHARIZARD, 0 +; Unused + db 44, IVYSAUR, WARTORTLE, CHARMELEON, 0 + db 49, NIDOKING, 0 + db 44, KINGLER, CLOYSTER, 0 +; Viridian Gym + db 39, SANDSLASH, DUGTRIO, 0 + db 43, RHYHORN, 0 + +CooltrainerFData: +; Celadon Gym + db 24, WEEPINBELL, GLOOM, IVYSAUR, 0 +; Victory Road 3F + db 43, BELLSPROUT, WEEPINBELL, VICTREEBEL, 0 + db 43, PARASECT, DEWGONG, CHANSEY, 0 +; Unused + db 46, VILEPLUME, BUTTERFREE, 0 +; Victory Road 1F + db 44, PERSIAN, NINETALES, 0 +; Unused + db 45, IVYSAUR, VENUSAUR, 0 + db 45, NIDORINA, NIDOQUEEN, 0 + db 43, PERSIAN, NINETALES, RAICHU, 0 + +BrunoData: + db $FF, 53, ONIX, 55, HITMONCHAN, 55, HITMONLEE, 56, ONIX, 58, MACHAMP, 0 + +BrockData: + db $FF, 10, GEODUDE, 12, ONIX, 0 + +MistyData: + db $FF, 18, STARYU, 21, STARMIE, 0 + +LtSurgeData: + db $FF, 28, RAICHU, 0 + +ErikaData: + db $FF, 30, TANGELA, 32, WEEPINBELL, 32, GLOOM, 0 + +KogaData: + db $FF, 44, VENONAT, 46, VENONAT, 48, VENONAT, 50, VENOMOTH, 0 + +BlaineData: + db $FF, 48, NINETALES, 50, RAPIDASH, 54, ARCANINE, 0 + +SabrinaData: + db $FF, 50, ABRA, 50, KADABRA, 50, ALAKAZAM, 0 + +GentlemanData: +; SS Anne 1F Rooms + db 18, GROWLITHE, GROWLITHE, 0 + db 19, NIDORAN_M, NIDORAN_F, 0 +; SS Anne 2F Rooms/Vermilion Gym + db 22, VOLTORB, MAGNEMITE, 0 +; Unused + db 48, PRIMEAPE, 0 +; SS Anne 2F Rooms + db 17, GROWLITHE, PONYTA, 0 + +Green2Data: +; SS Anne 2F + db $FF, 19, SPEAROW, 16, RATTATA, 18, SANDSHREW, 20, EEVEE, 0 +; Pokémon Tower 2F + db $FF, 25, FEAROW, 23, SHELLDER, 22, VULPIX, 20, SANDSHREW, 25, EEVEE, 0 + db $FF, 25, FEAROW, 23, MAGNEMITE, 22, SHELLDER, 20, SANDSHREW, 25, EEVEE, 0 + db $FF, 25, FEAROW, 23, VULPIX, 22, MAGNEMITE, 20, SANDSHREW, 25, EEVEE, 0 +; Silph Co. 7F + db $FF, 38, SANDSLASH, 35, NINETALES, 37, CLOYSTER, 35, KADABRA, 40, JOLTEON, 0 + db $FF, 38, SANDSLASH, 35, CLOYSTER, 37, MAGNETON, 35, KADABRA, 40, FLAREON, 0 + db $FF, 38, SANDSLASH, 35, MAGNETON, 37, NINETALES, 35, KADABRA, 40, VAPOREON, 0 +; Route 22 + db $FF, 47, SANDSLASH, 45, EXEGGCUTE, 45, NINETALES, 47, CLOYSTER, 50, KADABRA, 53, JOLTEON, 0 + db $FF, 47, SANDSLASH, 45, EXEGGCUTE, 45, CLOYSTER, 47, MAGNETON, 50, KADABRA, 53, FLAREON, 0 + db $FF, 47, SANDSLASH, 45, EXEGGCUTE, 45, MAGNETON, 47, NINETALES, 50, KADABRA, 53, VAPOREON, 0 + +Green3Data: + db $FF, 61, SANDSLASH, 59, ALAKAZAM, 61, EXEGGUTOR, 61, CLOYSTER, 63, NINETALES, 65, JOLTEON, 0 + db $FF, 61, SANDSLASH, 59, ALAKAZAM, 61, EXEGGUTOR, 61, MAGNETON, 63, CLOYSTER, 65, FLAREON, 0 + db $FF, 61, SANDSLASH, 59, ALAKAZAM, 61, EXEGGUTOR, 61, NINETALES, 63, MAGNETON, 65, VAPOREON, 0 + +LoreleiData: + db $FF, 54, DEWGONG, 53, CLOYSTER, 54, SLOWBRO, 56, JYNX, 56, LAPRAS, 0 + +ChannelerData: +; Unused + db 22, GASTLY, 0 + db 24, GASTLY, 0 + db 23, GASTLY, GASTLY, 0 + db 24, GASTLY, 0 +; Pokémon Tower 3F + db 23, GASTLY, 0 + db 24, GASTLY, 0 +; Unused + db 24, HAUNTER, 0 +; Pokémon Tower 3F + db 22, GASTLY, 0 +; Pokémon Tower 4F + db 24, GASTLY, 0 + db 23, GASTLY, GASTLY, 0 +; Unused + db 24, GASTLY, 0 +; Pokémon Tower 4F + db 22, GASTLY, 0 +; Unused + db 24, GASTLY, 0 +; Pokémon Tower 5F + db 23, HAUNTER, 0 +; Unused + db 24, GASTLY, 0 +; Pokémon Tower 5F + db 22, GASTLY, 0 + db 24, GASTLY, 0 + db 22, HAUNTER, 0 +; Pokémon Tower 6F + db 22, GASTLY, GASTLY, GASTLY, 0 + db 24, GASTLY, 0 + db 24, GASTLY, 0 +; Saffron Gym + db 34, GASTLY, HAUNTER, 0 + db 38, HAUNTER, 0 + db 33, GASTLY, GASTLY, HAUNTER, 0 + +AgathaData: + db $FF, 56, GENGAR, 56, GOLBAT, 55, HAUNTER, 58, ARBOK, 60, GENGAR, 0 + +LanceData: + db $FF, 58, GYARADOS, 56, DRAGONAIR, 56, DRAGONAIR, 60, AERODACTYL, 62, DRAGONITE, 0 diff --git a/data/trainers/pic_pointers_money.asm b/data/trainers/pic_pointers_money.asm new file mode 100755 index 000000000..d40073948 --- /dev/null +++ b/data/trainers/pic_pointers_money.asm @@ -0,0 +1,55 @@ +pic_money: MACRO + dw \1 + money \2 +ENDM + +TrainerPicAndMoneyPointers:: + ; pic pointer, base reward money + ; money received after battle = base money × level of highest-level enemy mon + pic_money YoungsterPic, 1500 + pic_money BugCatcherPic, 1000 + pic_money LassPic, 1500 + pic_money SailorPic, 3000 + pic_money JrTrainerMPic, 2000 + pic_money JrTrainerFPic, 2000 + pic_money PokemaniacPic, 5000 + pic_money SuperNerdPic, 2500 + pic_money HikerPic, 3500 + pic_money BikerPic, 2000 + pic_money BurglarPic, 9000 + pic_money EngineerPic, 5000 + pic_money JugglerPic, 3500 + pic_money FisherPic, 3500 + pic_money SwimmerPic, 500 + pic_money CueBallPic, 2500 + pic_money GamblerPic, 7000 + pic_money BeautyPic, 7000 + pic_money PsychicPic, 1000 + pic_money RockerPic, 2500 + pic_money JugglerPic, 3500 + pic_money TamerPic, 4000 + pic_money BirdKeeperPic, 2500 + pic_money BlackbeltPic, 2500 + pic_money Rival1Pic, 3500 + pic_money ProfOakPic, 9900 + pic_money ChiefPic, 3000 + pic_money ScientistPic, 5000 + pic_money GiovanniPic, 9900 + pic_money RocketPic, 3000 + pic_money CooltrainerMPic, 3500 + pic_money CooltrainerFPic, 3500 + pic_money BrunoPic, 9900 + pic_money BrockPic, 9900 + pic_money MistyPic, 9900 + pic_money LtSurgePic, 9900 + pic_money ErikaPic, 9900 + pic_money KogaPic, 9900 + pic_money BlainePic, 9900 + pic_money SabrinaPic, 9900 + pic_money GentlemanPic, 7000 + pic_money Rival2Pic, 6500 + pic_money Rival3Pic, 9900 + pic_money LoreleiPic, 9900 + pic_money ChannelerPic, 3000 + pic_money AgathaPic, 9900 + pic_money LancePic, 9900 diff --git a/data/trainers/special_moves.asm b/data/trainers/special_moves.asm new file mode 100755 index 000000000..f858fa574 --- /dev/null +++ b/data/trainers/special_moves.asm @@ -0,0 +1,160 @@ +; yellow has its own format. + +; entry = trainerclass, trainerid, moveset+, 0 +; moveset = partymon location, partymon's move, moveid + +SpecialTrainerMoves: + db BUG_CATCHER, 15 + db 2, 2, TACKLE + db 2, 3, STRING_SHOT + db 0 + + db YOUNGSTER, 14 + db 1, 4, FISSURE + db 0 + + db BROCK, 1 + db 2, 3, BIND + db 2, 4, BIDE + db 0 + + db MISTY, 1 + db 2, 4, BUBBLEBEAM + db 0 + + db LT_SURGE, 1 + db 1, 1, THUNDERBOLT + db 1, 2, MEGA_PUNCH + db 1, 3, MEGA_KICK + db 1, 4, GROWL + db 0 + + db ERIKA, 1 + db 1, 3, MEGA_DRAIN + db 2, 1, RAZOR_LEAF + db 3, 1, PETAL_DANCE + db 0 + + db KOGA, 1 + db 1, 1, TOXIC + db 1, 2, TACKLE + db 2, 1, TOXIC + db 2, 3, SUPERSONIC + db 3, 1, TOXIC + db 3, 2, DOUBLE_EDGE + db 4, 1, LEECH_LIFE + db 4, 2, DOUBLE_TEAM + db 4, 3, PSYCHIC_M + db 4, 4, TOXIC + db 0 + + db BLAINE, 1 + db 1, 1, FLAMETHROWER + db 1, 4, CONFUSE_RAY + db 3, 1, FLAMETHROWER + db 3, 2, FIRE_BLAST + db 3, 3, REFLECT + db 0 + + db SABRINA, 1 + db 1, 1, FLASH + db 2, 1, KINESIS + db 2, 4, PSYWAVE + db 3, 1, PSYWAVE + db 0 + + db GIOVANNI, 3 + db 1, 3, FISSURE + db 2, 2, DOUBLE_TEAM + db 3, 1, EARTHQUAKE + db 3, 3, THUNDER + db 4, 1, EARTHQUAKE + db 4, 2, LEER + db 4, 3, THUNDER + db 5, 1, ROCK_SLIDE + db 5, 4, EARTHQUAKE + db 0 + + db LORELEI, 1 + db 1, 1, BUBBLEBEAM + db 2, 3, ICE_BEAM + db 3, 1, PSYCHIC_M + db 3, 2, SURF + db 4, 3, LOVELY_KISS + db 5, 3, BLIZZARD + db 0 + + db BRUNO, 1 + db 1, 1, ROCK_SLIDE + db 1, 2, SCREECH + db 1, 4, DIG + db 2, 3, FIRE_PUNCH + db 2, 4, DOUBLE_TEAM + db 3, 1, DOUBLE_KICK + db 3, 2, MEGA_KICK + db 3, 4, DOUBLE_TEAM + db 4, 1, ROCK_SLIDE + db 4, 2, SCREECH + db 4, 4, EARTHQUAKE + db 5, 2, KARATE_CHOP + db 5, 3, STRENGTH + db 0 + + db AGATHA, 1 + db 1, 2, SUBSTITUTE + db 1, 3, LICK + db 1, 4, MEGA_DRAIN + db 2, 2, TOXIC + db 2, 4, LEECH_LIFE + db 3, 2, LICK + db 4, 1, WRAP + db 5, 2, PSYCHIC_M + db 0 + + db LANCE, 1 + db 1, 1, DRAGON_RAGE + db 2, 1, THUNDER_WAVE + db 2, 3, THUNDERBOLT + db 3, 1, BUBBLEBEAM + db 3, 2, WRAP + db 3, 3, ICE_BEAM + db 4, 1, WING_ATTACK + db 4, 2, SWIFT + db 4, 3, FLY + db 5, 1, BLIZZARD + db 5, 2, FIRE_BLAST + db 5, 3, THUNDER + db 0 + + db RIVAL3, 1 + db 1, 3, EARTHQUAKE + db 2, 4, KINESIS + db 3, 4, LEECH_SEED + db 4, 1, ICE_BEAM + db 5, 1, CONFUSE_RAY + db 5, 4, FIRE_SPIN + db 6, 3, QUICK_ATTACK + db 0 + + db RIVAL3, 2 + db 1, 3, EARTHQUAKE + db 2, 4, KINESIS + db 3, 4, LEECH_SEED + db 4, 1, THUNDERBOLT + db 5, 1, ICE_BEAM + db 6, 2, REFLECT + db 6, 3, QUICK_ATTACK + db 0 + + db RIVAL3, 3 + db 1, 3, EARTHQUAKE + db 2, 4, KINESIS + db 3, 4, LEECH_SEED + db 4, 1, CONFUSE_RAY + db 4, 4, FIRE_SPIN + db 5, 1, THUNDERBOLT + db 6, 1, AURORA_BEAM + db 6, 3, QUICK_ATTACK + db 0 + + db -1 ; end diff --git a/data/type_effects.asm b/data/type_effects.asm deleted file mode 100755 index 1321a3d90..000000000 --- a/data/type_effects.asm +++ /dev/null @@ -1,89 +0,0 @@ -TypeEffects: -; format: attacking type, defending type, damage multiplier -; the multiplier is a (decimal) fixed-point number: -; 20 is ×2.0 -; 05 is ×0.5 -; 00 is ×0 - db WATER,FIRE,20 - db FIRE,GRASS,20 - db FIRE,ICE,20 - db GRASS,WATER,20 - db ELECTRIC,WATER,20 - db WATER,ROCK,20 - db GROUND,FLYING,00 - db WATER,WATER,05 - db FIRE,FIRE,05 - db ELECTRIC,ELECTRIC,05 - db ICE,ICE,05 - db GRASS,GRASS,05 - db PSYCHIC,PSYCHIC,05 - db FIRE,WATER,05 - db GRASS,FIRE,05 - db WATER,GRASS,05 - db ELECTRIC,GRASS,05 - db NORMAL,ROCK,05 - db NORMAL,GHOST,00 - db GHOST,GHOST,20 - db FIRE,BUG,20 - db FIRE,ROCK,05 - db WATER,GROUND,20 - db ELECTRIC,GROUND,00 - db ELECTRIC,FLYING,20 - db GRASS,GROUND,20 - db GRASS,BUG,05 - db GRASS,POISON,05 - db GRASS,ROCK,20 - db GRASS,FLYING,05 - db ICE,WATER,05 - db ICE,GRASS,20 - db ICE,GROUND,20 - db ICE,FLYING,20 - db FIGHTING,NORMAL,20 - db FIGHTING,POISON,05 - db FIGHTING,FLYING,05 - db FIGHTING,PSYCHIC,05 - db FIGHTING,BUG,05 - db FIGHTING,ROCK,20 - db FIGHTING,ICE,20 - db FIGHTING,GHOST,00 - db POISON,GRASS,20 - db POISON,POISON,05 - db POISON,GROUND,05 - db POISON,BUG,20 - db POISON,ROCK,05 - db POISON,GHOST,05 - db GROUND,FIRE,20 - db GROUND,ELECTRIC,20 - db GROUND,GRASS,05 - db GROUND,BUG,05 - db GROUND,ROCK,20 - db GROUND,POISON,20 - db FLYING,ELECTRIC,05 - db FLYING,FIGHTING,20 - db FLYING,BUG,20 - db FLYING,GRASS,20 - db FLYING,ROCK,05 - db PSYCHIC,FIGHTING,20 - db PSYCHIC,POISON,20 - db BUG,FIRE,05 - db BUG,GRASS,20 - db BUG,FIGHTING,05 - db BUG,FLYING,05 - db BUG,PSYCHIC,20 - db BUG,GHOST,05 - db BUG,POISON,20 - db ROCK,FIRE,20 - db ROCK,FIGHTING,05 - db ROCK,GROUND,05 - db ROCK,FLYING,20 - db ROCK,BUG,20 - db ROCK,ICE,20 - db GHOST,NORMAL,00 - db GHOST,PSYCHIC,00 - db FIRE,DRAGON,05 - db WATER,DRAGON,05 - db ELECTRIC,DRAGON,05 - db GRASS,DRAGON,05 - db ICE,DRAGON,20 - db DRAGON,DRAGON,20 - db $FF diff --git a/data/types/names.asm b/data/types/names.asm new file mode 100755 index 000000000..b1c35f652 --- /dev/null +++ b/data/types/names.asm @@ -0,0 +1,40 @@ +TypeNames: + + dw .Normal + dw .Fighting + dw .Flying + dw .Poison + dw .Ground + dw .Rock + dw .Bird + dw .Bug + dw .Ghost + +REPT FIRE - GHOST - 1 + dw .Normal +ENDR + + dw .Fire + dw .Water + dw .Grass + dw .Electric + dw .Psychic + dw .Ice + dw .Dragon + +.Normal: db "NORMAL@" +.Fighting: db "FIGHTING@" +.Flying: db "FLYING@" +.Poison: db "POISON@" +.Fire: db "FIRE@" +.Water: db "WATER@" +.Grass: db "GRASS@" +.Electric: db "ELECTRIC@" +.Psychic: db "PSYCHIC@" +.Ice: db "ICE@" +.Ground: db "GROUND@" +.Rock: db "ROCK@" +.Bird: db "BIRD@" +.Bug: db "BUG@" +.Ghost: db "GHOST@" +.Dragon: db "DRAGON@" diff --git a/data/types/type_matchups.asm b/data/types/type_matchups.asm new file mode 100755 index 000000000..52e3d9561 --- /dev/null +++ b/data/types/type_matchups.asm @@ -0,0 +1,85 @@ +TypeEffects: + ; attacker, defender, *= + db WATER, FIRE, SUPER_EFFECTIVE + db FIRE, GRASS, SUPER_EFFECTIVE + db FIRE, ICE, SUPER_EFFECTIVE + db GRASS, WATER, SUPER_EFFECTIVE + db ELECTRIC, WATER, SUPER_EFFECTIVE + db WATER, ROCK, SUPER_EFFECTIVE + db GROUND, FLYING, NO_EFFECT + db WATER, WATER, NOT_VERY_EFFECTIVE + db FIRE, FIRE, NOT_VERY_EFFECTIVE + db ELECTRIC, ELECTRIC, NOT_VERY_EFFECTIVE + db ICE, ICE, NOT_VERY_EFFECTIVE + db GRASS, GRASS, NOT_VERY_EFFECTIVE + db PSYCHIC_TYPE, PSYCHIC_TYPE, NOT_VERY_EFFECTIVE + db FIRE, WATER, NOT_VERY_EFFECTIVE + db GRASS, FIRE, NOT_VERY_EFFECTIVE + db WATER, GRASS, NOT_VERY_EFFECTIVE + db ELECTRIC, GRASS, NOT_VERY_EFFECTIVE + db NORMAL, ROCK, NOT_VERY_EFFECTIVE + db NORMAL, GHOST, NO_EFFECT + db GHOST, GHOST, SUPER_EFFECTIVE + db FIRE, BUG, SUPER_EFFECTIVE + db FIRE, ROCK, NOT_VERY_EFFECTIVE + db WATER, GROUND, SUPER_EFFECTIVE + db ELECTRIC, GROUND, NO_EFFECT + db ELECTRIC, FLYING, SUPER_EFFECTIVE + db GRASS, GROUND, SUPER_EFFECTIVE + db GRASS, BUG, NOT_VERY_EFFECTIVE + db GRASS, POISON, NOT_VERY_EFFECTIVE + db GRASS, ROCK, SUPER_EFFECTIVE + db GRASS, FLYING, NOT_VERY_EFFECTIVE + db ICE, WATER, NOT_VERY_EFFECTIVE + db ICE, GRASS, SUPER_EFFECTIVE + db ICE, GROUND, SUPER_EFFECTIVE + db ICE, FLYING, SUPER_EFFECTIVE + db FIGHTING, NORMAL, SUPER_EFFECTIVE + db FIGHTING, POISON, NOT_VERY_EFFECTIVE + db FIGHTING, FLYING, NOT_VERY_EFFECTIVE + db FIGHTING, PSYCHIC_TYPE, NOT_VERY_EFFECTIVE + db FIGHTING, BUG, NOT_VERY_EFFECTIVE + db FIGHTING, ROCK, SUPER_EFFECTIVE + db FIGHTING, ICE, SUPER_EFFECTIVE + db FIGHTING, GHOST, NO_EFFECT + db POISON, GRASS, SUPER_EFFECTIVE + db POISON, POISON, NOT_VERY_EFFECTIVE + db POISON, GROUND, NOT_VERY_EFFECTIVE + db POISON, BUG, SUPER_EFFECTIVE + db POISON, ROCK, NOT_VERY_EFFECTIVE + db POISON, GHOST, NOT_VERY_EFFECTIVE + db GROUND, FIRE, SUPER_EFFECTIVE + db GROUND, ELECTRIC, SUPER_EFFECTIVE + db GROUND, GRASS, NOT_VERY_EFFECTIVE + db GROUND, BUG, NOT_VERY_EFFECTIVE + db GROUND, ROCK, SUPER_EFFECTIVE + db GROUND, POISON, SUPER_EFFECTIVE + db FLYING, ELECTRIC, NOT_VERY_EFFECTIVE + db FLYING, FIGHTING, SUPER_EFFECTIVE + db FLYING, BUG, SUPER_EFFECTIVE + db FLYING, GRASS, SUPER_EFFECTIVE + db FLYING, ROCK, NOT_VERY_EFFECTIVE + db PSYCHIC_TYPE, FIGHTING, SUPER_EFFECTIVE + db PSYCHIC_TYPE, POISON, SUPER_EFFECTIVE + db BUG, FIRE, NOT_VERY_EFFECTIVE + db BUG, GRASS, SUPER_EFFECTIVE + db BUG, FIGHTING, NOT_VERY_EFFECTIVE + db BUG, FLYING, NOT_VERY_EFFECTIVE + db BUG, PSYCHIC_TYPE, SUPER_EFFECTIVE + db BUG, GHOST, NOT_VERY_EFFECTIVE + db BUG, POISON, SUPER_EFFECTIVE + db ROCK, FIRE, SUPER_EFFECTIVE + db ROCK, FIGHTING, NOT_VERY_EFFECTIVE + db ROCK, GROUND, NOT_VERY_EFFECTIVE + db ROCK, FLYING, SUPER_EFFECTIVE + db ROCK, BUG, SUPER_EFFECTIVE + db ROCK, ICE, SUPER_EFFECTIVE + db GHOST, NORMAL, NO_EFFECT + db GHOST, PSYCHIC_TYPE, NO_EFFECT + db FIRE, DRAGON, NOT_VERY_EFFECTIVE + db WATER, DRAGON, NOT_VERY_EFFECTIVE + db ELECTRIC, DRAGON, NOT_VERY_EFFECTIVE + db GRASS, DRAGON, NOT_VERY_EFFECTIVE + db ICE, DRAGON, SUPER_EFFECTIVE + db DRAGON, DRAGON, SUPER_EFFECTIVE + db -1 ; end diff --git a/data/warp_tile_ids.asm b/data/warp_tile_ids.asm deleted file mode 100755 index 4edc48a53..000000000 --- a/data/warp_tile_ids.asm +++ /dev/null @@ -1,89 +0,0 @@ -WarpTileIDPointers: - dw OverworldWarpTileIDs - dw RedsHouse1WarpTileIDs - dw MartWarpTileIDs - dw ForestWarpTileIDs - dw RedsHouse2WarpTileIDs - dw DojoWarpTileIDs - dw PokecenterWarpTileIDs - dw GymWarpTileIDs - dw HouseWarpTileIDs - dw ForestGateWarpTileIDs - dw MuseumWarpTileIDs - dw UndergroundWarpTileIDs - dw GateWarpTileIDs - dw ShipWarpTileIDs - dw ShipPortWarpTileIDs - dw CemeteryWarpTileIDs - dw InteriorWarpTileIDs - dw CavernWarpTileIDs - dw LobbyWarpTileIDs - dw MansionWarpTileIDs - dw LabWarpTileIDs - dw ClubWarpTileIDs - dw FacilityWarpTileIDs - dw PlateauWarpTileIDs - dw BeachHouseWarpTileIDs - -OverworldWarpTileIDs: - db $1B,$58,$FF - -ForestGateWarpTileIDs: -MuseumWarpTileIDs: -GateWarpTileIDs: - db $3B - -RedsHouse1WarpTileIDs: -RedsHouse2WarpTileIDs: - db $1A,$1C,$FF - -MartWarpTileIDs: -PokecenterWarpTileIDs: - db $5E,$FF - -ForestWarpTileIDs: - db $5A,$5C,$3A,$FF - -DojoWarpTileIDs: -GymWarpTileIDs: - db $4A,$FF - -HouseWarpTileIDs: - db $54,$5C,$32,$FF - -ShipWarpTileIDs: - db $37,$39,$1E,$4A,$FF - -InteriorWarpTileIDs: - db $15,$55,$04,$FF - -CavernWarpTileIDs: - db $18,$1A,$22,$FF - -LobbyWarpTileIDs: - db $1A,$1C,$38,$FF - -MansionWarpTileIDs: - db $1A,$1C,$53,$FF - -LabWarpTileIDs: - db $34,$FF - -FacilityWarpTileIDs: - db $43,$58,$20 - -CemeteryWarpTileIDs: - db $1B - -UndergroundWarpTileIDs: - db $13,$FF - -PlateauWarpTileIDs: - db $1B,$3B - -ShipPortWarpTileIDs: -ClubWarpTileIDs: - db $FF - -BeachHouseWarpTileIDs: - db $FF diff --git a/data/wild/good_rod.asm b/data/wild/good_rod.asm new file mode 100755 index 000000000..700a55162 --- /dev/null +++ b/data/wild/good_rod.asm @@ -0,0 +1,5 @@ +; random choice of 2 good rod encounters +GoodRodMons: + ; level, species + db 10, GOLDEEN + db 10, POLIWAG diff --git a/data/wild/grass_water.asm b/data/wild/grass_water.asm new file mode 100755 index 000000000..a991e9ae2 --- /dev/null +++ b/data/wild/grass_water.asm @@ -0,0 +1,323 @@ +WildDataPointers: + dw NoMons ; PALLET_TOWN + dw NoMons ; VIRIDIAN_CITY + dw NoMons ; PEWTER_CITY + dw NoMons ; CERULEAN_CITY + dw NoMons ; LAVENDER_TOWN + dw NoMons ; VERMILION_CITY + dw NoMons ; CELADON_CITY + dw NoMons ; FUCHSIA_CITY + dw NoMons ; CINNABAR_ISLAND + dw NoMons ; INDIGO_PLATEAU + dw NoMons ; SAFFRON_CITY + dw NoMons ; unused + dw Route1Mons ; ROUTE_1 + dw Route2Mons ; ROUTE_2 + dw Route3Mons ; ROUTE_3 + dw Route4Mons ; ROUTE_4 + dw Route5Mons ; ROUTE_5 + dw Route6Mons ; ROUTE_6 + dw Route7Mons ; ROUTE_7 + dw Route8Mons ; ROUTE_8 + dw Route9Mons ; ROUTE_9 + dw Route10Mons ; ROUTE_10 + dw Route11Mons ; ROUTE_11 + dw Route12Mons ; ROUTE_12 + dw Route13Mons ; ROUTE_13 + dw Route14Mons ; ROUTE_14 + dw Route15Mons ; ROUTE_15 + dw Route16Mons ; ROUTE_16 + dw Route17Mons ; ROUTE_17 + dw Route18Mons ; ROUTE_18 + dw Route19Mons ; ROUTE_19 + dw Route20Mons ; ROUTE_20 + dw Route21Mons ; ROUTE_21 + dw Route22Mons ; ROUTE_22 + dw Route23Mons ; ROUTE_23 + dw Route24Mons ; ROUTE_24 + dw Route25Mons ; ROUTE_25 + dw NoMons ; REDS_HOUSE_1F + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw ForestMons ; ViridianForest + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw MoonMons1 + dw MoonMonsB1 + dw MoonMonsB2 + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw TunnelMonsB1 + dw PowerPlantMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw PlateauMons1 + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw TowerMons1 + dw TowerMons2 + dw TowerMons3 + dw TowerMons4 + dw TowerMons5 + dw TowerMons6 + dw TowerMons7 + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw IslandMonsB1 + dw IslandMonsB2 + dw IslandMonsB3 + dw IslandMonsB4 + dw NoMons + dw NoMons + dw MansionMons1 + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw IslandMons1 + dw NoMons + dw PlateauMons2 + dw NoMons + dw NoMons + dw CaveMons + dw PlateauMons3 + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw MansionMons2 + dw MansionMons3 + dw MansionMonsB1 + dw ZoneMons1 + dw ZoneMons2 + dw ZoneMons3 + dw ZoneMonsCenter + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw DungeonMons2 + dw DungeonMonsB1 + dw DungeonMons1 + dw NoMons + dw NoMons + dw NoMons + dw TunnelMonsB2 + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw NoMons + dw -1 ; end + +; wild pokemon data is divided into two parts. +; first part: pokemon found in grass +; second part: pokemon found while surfing +; each part goes as follows: + ; if first byte == 0, then + ; no wild pokemon on this map + ; if first byte != 0, then + ; first byte is encounter rate + ; followed by 20 bytes: + ; level, species (ten times) + +INCLUDE "data/wild/maps/nothing.asm" +INCLUDE "data/wild/maps/Route1.asm" +INCLUDE "data/wild/maps/Route2.asm" +INCLUDE "data/wild/maps/Route22.asm" +INCLUDE "data/wild/maps/ViridianForest.asm" +INCLUDE "data/wild/maps/Route3.asm" +INCLUDE "data/wild/maps/MtMoon1F.asm" +INCLUDE "data/wild/maps/MtMoonB1F.asm" +INCLUDE "data/wild/maps/MtMoonB2F.asm" +INCLUDE "data/wild/maps/Route4.asm" +INCLUDE "data/wild/maps/Route24.asm" +INCLUDE "data/wild/maps/Route25.asm" +INCLUDE "data/wild/maps/Route9.asm" +INCLUDE "data/wild/maps/Route5.asm" +INCLUDE "data/wild/maps/Route6.asm" +INCLUDE "data/wild/maps/Route11.asm" +INCLUDE "data/wild/maps/RockTunnel1F.asm" +INCLUDE "data/wild/maps/RockTunnelB1F.asm" +INCLUDE "data/wild/maps/Route10.asm" +INCLUDE "data/wild/maps/Route12.asm" +INCLUDE "data/wild/maps/Route8.asm" +INCLUDE "data/wild/maps/Route7.asm" +INCLUDE "data/wild/maps/PokemonTower1F.asm" +INCLUDE "data/wild/maps/PokemonTower2F.asm" +INCLUDE "data/wild/maps/PokemonTower3F.asm" +INCLUDE "data/wild/maps/PokemonTower4F.asm" +INCLUDE "data/wild/maps/PokemonTower5F.asm" +INCLUDE "data/wild/maps/PokemonTower6F.asm" +INCLUDE "data/wild/maps/PokemonTower7F.asm" +INCLUDE "data/wild/maps/Route13.asm" +INCLUDE "data/wild/maps/Route14.asm" +INCLUDE "data/wild/maps/Route15.asm" +INCLUDE "data/wild/maps/Route16.asm" +INCLUDE "data/wild/maps/Route17.asm" +INCLUDE "data/wild/maps/Route18.asm" +INCLUDE "data/wild/maps/SafariZoneCenter.asm" +INCLUDE "data/wild/maps/SafariZoneEast.asm" +INCLUDE "data/wild/maps/SafariZoneNorth.asm" +INCLUDE "data/wild/maps/SafariZoneWest.asm" +INCLUDE "data/wild/maps/Route19.asm" +INCLUDE "data/wild/maps/Route20.asm" +INCLUDE "data/wild/maps/SeafoamIslands1F.asm" +INCLUDE "data/wild/maps/SeafoamIslandsB1F.asm" +INCLUDE "data/wild/maps/SeafoamIslandsB2F.asm" +INCLUDE "data/wild/maps/SeafoamIslandsB3F.asm" +INCLUDE "data/wild/maps/SeafoamIslandsB4F.asm" +INCLUDE "data/wild/maps/PokemonMansion1F.asm" +INCLUDE "data/wild/maps/PokemonMansion2F.asm" +INCLUDE "data/wild/maps/PokemonMansion3F.asm" +INCLUDE "data/wild/maps/PokemonMansionB1F.asm" +INCLUDE "data/wild/maps/Route21.asm" +INCLUDE "data/wild/maps/CeruleanCave1F.asm" +INCLUDE "data/wild/maps/CeruleanCave2F.asm" +INCLUDE "data/wild/maps/CeruleanCaveB1F.asm" +INCLUDE "data/wild/maps/PowerPlant.asm" +INCLUDE "data/wild/maps/Route23.asm" +INCLUDE "data/wild/maps/VictoryRoad2F.asm" +INCLUDE "data/wild/maps/VictoryRoad3F.asm" +INCLUDE "data/wild/maps/VictoryRoad1F.asm" +INCLUDE "data/wild/maps/DiglettsCave.asm" diff --git a/data/wild/maps/CeruleanCave1F.asm b/data/wild/maps/CeruleanCave1F.asm new file mode 100644 index 000000000..24a24f606 --- /dev/null +++ b/data/wild/maps/CeruleanCave1F.asm @@ -0,0 +1,14 @@ +DungeonMons1: + db 10 ; grass encounter rate + db 50, GOLBAT + db 55, GOLBAT + db 45, GRAVELER + db 55, GLOOM + db 55, WEEPINBELL + db 52, SANDSLASH + db 54, VENOMOTH + db 54, PARASECT + db 55, DITTO + db 60, DITTO + + db 0 ; water encounter rate diff --git a/data/wild/maps/CeruleanCave2F.asm b/data/wild/maps/CeruleanCave2F.asm new file mode 100644 index 000000000..07b345276 --- /dev/null +++ b/data/wild/maps/CeruleanCave2F.asm @@ -0,0 +1,14 @@ +DungeonMons2: + db 15 ; grass encounter rate + db 52, GOLBAT + db 57, GOLBAT + db 50, GRAVELER + db 56, SANDSLASH + db 50, RHYHORN + db 60, DITTO + db 58, GLOOM + db 58, WEEPINBELL + db 60, RHYDON + db 58, RHYDON + + db 0 ; water encounter rate diff --git a/data/wild/maps/CeruleanCaveB1F.asm b/data/wild/maps/CeruleanCaveB1F.asm new file mode 100644 index 000000000..969ab18fd --- /dev/null +++ b/data/wild/maps/CeruleanCaveB1F.asm @@ -0,0 +1,14 @@ +DungeonMonsB1: + db 25 ; grass encounter rate + db 54, GOLBAT + db 59, GOLBAT + db 55, GRAVELER + db 52, RHYHORN + db 62, RHYDON + db 60, DITTO + db 56, CHANSEY + db 65, DITTO + db 55, LICKITUNG + db 50, LICKITUNG + + db 0 ; water encounter rate diff --git a/data/wild/maps/DiglettsCave.asm b/data/wild/maps/DiglettsCave.asm new file mode 100755 index 000000000..d1e73af47 --- /dev/null +++ b/data/wild/maps/DiglettsCave.asm @@ -0,0 +1,14 @@ +CaveMons: + db 20 ; grass encounter rate + db 18, DIGLETT + db 19, DIGLETT + db 17, DIGLETT + db 20, DIGLETT + db 16, DIGLETT + db 15, DIGLETT + db 21, DIGLETT + db 22, DIGLETT + db 29, DUGTRIO + db 31, DUGTRIO + + db 0 ; water encounter rate diff --git a/data/wild/maps/MtMoon1F.asm b/data/wild/maps/MtMoon1F.asm new file mode 100755 index 000000000..2e4266551 --- /dev/null +++ b/data/wild/maps/MtMoon1F.asm @@ -0,0 +1,14 @@ +MoonMons1: + db 10 ; grass encounter rate + db 8, ZUBAT + db 9, ZUBAT + db 10, GEODUDE + db 6, ZUBAT + db 7, ZUBAT + db 10, ZUBAT + db 10, GEODUDE + db 11, ZUBAT + db 12, SANDSHREW + db 11, CLEFAIRY + + db 0 ; water encounter rate diff --git a/data/wild/maps/MtMoonB1F.asm b/data/wild/maps/MtMoonB1F.asm new file mode 100755 index 000000000..1eee34ce8 --- /dev/null +++ b/data/wild/maps/MtMoonB1F.asm @@ -0,0 +1,14 @@ +MoonMonsB1: + db 10 ; grass encounter rate + db 8, ZUBAT + db 9, ZUBAT + db 10, ZUBAT + db 10, GEODUDE + db 11, GEODUDE + db 11, ZUBAT + db 9, PARAS + db 11, PARAS + db 10, CLEFAIRY + db 12, CLEFAIRY + + db 0 ; water encounter rate diff --git a/data/wild/maps/MtMoonB2F.asm b/data/wild/maps/MtMoonB2F.asm new file mode 100755 index 000000000..d49ec5856 --- /dev/null +++ b/data/wild/maps/MtMoonB2F.asm @@ -0,0 +1,14 @@ +MoonMonsB2: + db 10 ; grass encounter rate + db 10, ZUBAT + db 11, GEODUDE + db 13, PARAS + db 11, ZUBAT + db 11, ZUBAT + db 12, ZUBAT + db 13, ZUBAT + db 9, CLEFAIRY + db 11, CLEFAIRY + db 13, CLEFAIRY + + db 0 ; water encounter rate diff --git a/data/wild/maps/PokemonMansion1F.asm b/data/wild/maps/PokemonMansion1F.asm new file mode 100755 index 000000000..75fcadfee --- /dev/null +++ b/data/wild/maps/PokemonMansion1F.asm @@ -0,0 +1,14 @@ +MansionMons1: + db 10 ; grass encounter rate + db 34, RATTATA + db 34, RATICATE + db 23, GRIMER + db 26, GROWLITHE + db 37, RATTATA + db 37, RATICATE + db 30, GROWLITHE + db 26, GRIMER + db 34, GROWLITHE + db 38, GROWLITHE + + db 0 ; water encounter rate diff --git a/data/wild/maps/PokemonMansion2F.asm b/data/wild/maps/PokemonMansion2F.asm new file mode 100755 index 000000000..2143532f6 --- /dev/null +++ b/data/wild/maps/PokemonMansion2F.asm @@ -0,0 +1,14 @@ +MansionMons2: + db 10 ; grass encounter rate + db 37, RATTATA + db 37, RATICATE + db 26, GRIMER + db 29, GRIMER + db 40, RATTATA + db 40, RATICATE + db 32, GRIMER + db 35, GRIMER + db 35, MUK + db 38, MUK + + db 0 ; water encounter rate diff --git a/data/wild/maps/PokemonMansion3F.asm b/data/wild/maps/PokemonMansion3F.asm new file mode 100755 index 000000000..f0c779778 --- /dev/null +++ b/data/wild/maps/PokemonMansion3F.asm @@ -0,0 +1,14 @@ +MansionMons3: + db 10 ; grass encounter rate + db 40, RATTATA + db 40, RATICATE + db 32, GRIMER + db 35, GRIMER + db 43, RATTATA + db 43, RATICATE + db 38, GRIMER + db 38, GRIMER + db 38, MUK + db 41, MUK + + db 0 ; water encounter rate diff --git a/data/wild/maps/PokemonMansionB1F.asm b/data/wild/maps/PokemonMansionB1F.asm new file mode 100755 index 000000000..c0ad432ba --- /dev/null +++ b/data/wild/maps/PokemonMansionB1F.asm @@ -0,0 +1,14 @@ +MansionMonsB1: + db 10 ; grass encounter rate + db 35, GRIMER + db 38, GRIMER + db 37, RATICATE + db 40, RATICATE + db 41, MUK + db 43, RATICATE + db 24, DITTO + db 46, RATICATE + db 18, DITTO + db 12, DITTO + + db 0 ; water encounter rate diff --git a/data/wild/maps/PokemonTower1F.asm b/data/wild/maps/PokemonTower1F.asm new file mode 100755 index 000000000..95bef4a37 --- /dev/null +++ b/data/wild/maps/PokemonTower1F.asm @@ -0,0 +1,4 @@ +TowerMons1: + db 0 ; grass encounter rate + + db 0 ; water encounter rate diff --git a/data/wild/maps/PokemonTower2F.asm b/data/wild/maps/PokemonTower2F.asm new file mode 100755 index 000000000..77b7d415e --- /dev/null +++ b/data/wild/maps/PokemonTower2F.asm @@ -0,0 +1,4 @@ +TowerMons2: + db 0 ; grass encounter rate + + db 0 ; water encounter rate diff --git a/data/wild/maps/PokemonTower3F.asm b/data/wild/maps/PokemonTower3F.asm new file mode 100755 index 000000000..b608ea153 --- /dev/null +++ b/data/wild/maps/PokemonTower3F.asm @@ -0,0 +1,14 @@ +TowerMons3: + db 10 ; grass encounter rate + db 20, GASTLY + db 21, GASTLY + db 22, GASTLY + db 23, GASTLY + db 24, GASTLY + db 19, GASTLY + db 18, GASTLY + db 25, GASTLY + db 20, HAUNTER + db 25, HAUNTER + + db 0 ; water encounter rate diff --git a/data/wild/maps/PokemonTower4F.asm b/data/wild/maps/PokemonTower4F.asm new file mode 100755 index 000000000..425b200c4 --- /dev/null +++ b/data/wild/maps/PokemonTower4F.asm @@ -0,0 +1,14 @@ +TowerMons4: + db 10 ; grass encounter rate + db 20, GASTLY + db 21, GASTLY + db 22, GASTLY + db 23, GASTLY + db 24, GASTLY + db 19, GASTLY + db 18, GASTLY + db 25, GASTLY + db 20, HAUNTER + db 25, HAUNTER + + db 0 ; water encounter rate diff --git a/data/wild/maps/PokemonTower5F.asm b/data/wild/maps/PokemonTower5F.asm new file mode 100755 index 000000000..5a0c96e1e --- /dev/null +++ b/data/wild/maps/PokemonTower5F.asm @@ -0,0 +1,14 @@ +TowerMons5: + db 15 ; grass encounter rate + db 22, GASTLY + db 23, GASTLY + db 24, GASTLY + db 25, GASTLY + db 26, GASTLY + db 21, GASTLY + db 20, CUBONE + db 27, GASTLY + db 22, HAUNTER + db 27, HAUNTER + + db 0 ; water encounter rate diff --git a/data/wild/maps/PokemonTower6F.asm b/data/wild/maps/PokemonTower6F.asm new file mode 100755 index 000000000..5e9d23f46 --- /dev/null +++ b/data/wild/maps/PokemonTower6F.asm @@ -0,0 +1,14 @@ +TowerMons6: + db 15 ; grass encounter rate + db 22, GASTLY + db 23, GASTLY + db 24, GASTLY + db 25, GASTLY + db 26, GASTLY + db 21, GASTLY + db 22, CUBONE + db 27, GASTLY + db 22, HAUNTER + db 27, HAUNTER + + db 0 ; water encounter rate diff --git a/data/wild/maps/PokemonTower7F.asm b/data/wild/maps/PokemonTower7F.asm new file mode 100755 index 000000000..8a3467ffa --- /dev/null +++ b/data/wild/maps/PokemonTower7F.asm @@ -0,0 +1,14 @@ +TowerMons7: + db 20 ; grass encounter rate + db 24, GASTLY + db 25, GASTLY + db 26, GASTLY + db 27, GASTLY + db 28, GASTLY + db 23, GASTLY + db 24, CUBONE + db 29, GASTLY + db 24, HAUNTER + db 29, HAUNTER + + db 0 ; water encounter rate diff --git a/data/wild/maps/PowerPlant.asm b/data/wild/maps/PowerPlant.asm new file mode 100755 index 000000000..a910420e5 --- /dev/null +++ b/data/wild/maps/PowerPlant.asm @@ -0,0 +1,14 @@ +PowerPlantMons: + db 10 ; grass encounter rate + db 30, MAGNEMITE + db 35, MAGNEMITE + db 33, MAGNETON + db 33, VOLTORB + db 37, VOLTORB + db 33, GRIMER + db 37, GRIMER + db 38, MAGNETON + db 33, MUK + db 37, MUK + + db 0 ; water encounter rate diff --git a/data/wild/maps/RockTunnel1F.asm b/data/wild/maps/RockTunnel1F.asm new file mode 100755 index 000000000..5c64bac47 --- /dev/null +++ b/data/wild/maps/RockTunnel1F.asm @@ -0,0 +1,14 @@ +TunnelMonsB1: + db 15 ; grass encounter rate + db 15, ZUBAT + db 16, GEODUDE + db 17, ZUBAT + db 19, ZUBAT + db 18, GEODUDE + db 20, GEODUDE + db 21, ZUBAT + db 17, MACHOP + db 19, MACHOP + db 21, MACHOP + + db 0 ; water encounter rate diff --git a/data/wild/maps/RockTunnelB1F.asm b/data/wild/maps/RockTunnelB1F.asm new file mode 100755 index 000000000..3f0349583 --- /dev/null +++ b/data/wild/maps/RockTunnelB1F.asm @@ -0,0 +1,14 @@ +TunnelMonsB2: + db 15 ; grass encounter rate + db 20, ZUBAT + db 17, GEODUDE + db 18, MACHOP + db 21, ZUBAT + db 22, ZUBAT + db 21, GEODUDE + db 20, MACHOP + db 14, ONIX + db 18, ONIX + db 22, ONIX + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route1.asm b/data/wild/maps/Route1.asm new file mode 100755 index 000000000..df599383a --- /dev/null +++ b/data/wild/maps/Route1.asm @@ -0,0 +1,14 @@ +Route1Mons: + db 25 ; grass encounter rate + db 3, PIDGEY + db 4, PIDGEY + db 2, RATTATA + db 3, RATTATA + db 2, PIDGEY + db 3, PIDGEY + db 5, PIDGEY + db 4, RATTATA + db 6, PIDGEY + db 7, PIDGEY + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route10.asm b/data/wild/maps/Route10.asm new file mode 100755 index 000000000..b7ca364c5 --- /dev/null +++ b/data/wild/maps/Route10.asm @@ -0,0 +1,14 @@ +Route10Mons: + db 15 ; grass encounter rate + db 16, MAGNEMITE + db 18, RATTATA + db 18, MAGNEMITE + db 20, MAGNEMITE + db 17, NIDORAN_M + db 17, NIDORAN_F + db 22, MAGNEMITE + db 20, RATICATE + db 16, MACHOP + db 18, MACHOP + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route11.asm b/data/wild/maps/Route11.asm new file mode 100755 index 000000000..eb00aa7e6 --- /dev/null +++ b/data/wild/maps/Route11.asm @@ -0,0 +1,14 @@ +Route11Mons: + db 15 ; grass encounter rate + db 16, PIDGEY + db 15, RATTATA + db 18, PIDGEY + db 15, DROWZEE + db 17, RATTATA + db 17, DROWZEE + db 18, PIDGEOTTO + db 20, PIDGEOTTO + db 19, DROWZEE + db 17, RATICATE + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route12.asm b/data/wild/maps/Route12.asm new file mode 100755 index 000000000..46c4106ec --- /dev/null +++ b/data/wild/maps/Route12.asm @@ -0,0 +1,24 @@ +Route12Mons: + db 15 ; grass encounter rate + db 25, ODDISH + db 25, BELLSPROUT + db 28, PIDGEY + db 28, PIDGEOTTO + db 27, ODDISH + db 27, BELLSPROUT + db 29, GLOOM + db 29, WEEPINBELL + db 26, FARFETCHD + db 31, FARFETCHD + + db 3 ; water encounter rate + db 15, SLOWPOKE + db 15, SLOWPOKE + db 15, SLOWPOKE + db 15, SLOWPOKE + db 15, SLOWPOKE + db 15, SLOWPOKE + db 15, SLOWPOKE + db 15, SLOWPOKE + db 15, SLOWBRO + db 20, SLOWBRO diff --git a/data/wild/maps/Route13.asm b/data/wild/maps/Route13.asm new file mode 100755 index 000000000..d19e0d83a --- /dev/null +++ b/data/wild/maps/Route13.asm @@ -0,0 +1,24 @@ +Route13Mons: + db 15 ; grass encounter rate + db 25, ODDISH + db 25, BELLSPROUT + db 28, PIDGEOTTO + db 28, PIDGEY + db 27, ODDISH + db 27, BELLSPROUT + db 29, GLOOM + db 29, WEEPINBELL + db 26, FARFETCHD + db 31, FARFETCHD + + db 3 ; water encounter rate + db 15, SLOWPOKE + db 15, SLOWPOKE + db 15, SLOWPOKE + db 15, SLOWPOKE + db 15, SLOWPOKE + db 15, SLOWPOKE + db 15, SLOWPOKE + db 15, SLOWPOKE + db 15, SLOWBRO + db 20, SLOWBRO diff --git a/data/wild/maps/Route14.asm b/data/wild/maps/Route14.asm new file mode 100755 index 000000000..fe600bed2 --- /dev/null +++ b/data/wild/maps/Route14.asm @@ -0,0 +1,14 @@ +Route14Mons: + db 15 ; grass encounter rate + db 26, ODDISH + db 26, BELLSPROUT + db 24, VENONAT + db 30, PIDGEOTTO + db 28, ODDISH + db 28, BELLSPROUT + db 30, GLOOM + db 30, WEEPINBELL + db 27, VENONAT + db 30, VENOMOTH + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route15.asm b/data/wild/maps/Route15.asm new file mode 100755 index 000000000..4374acfb9 --- /dev/null +++ b/data/wild/maps/Route15.asm @@ -0,0 +1,14 @@ +Route15Mons: + db 15 ; grass encounter rate + db 26, ODDISH + db 26, BELLSPROUT + db 24, VENONAT + db 32, PIDGEOTTO + db 28, ODDISH + db 28, BELLSPROUT + db 30, GLOOM + db 30, WEEPINBELL + db 27, VENONAT + db 30, VENOMOTH + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route16.asm b/data/wild/maps/Route16.asm new file mode 100755 index 000000000..f858dcdbd --- /dev/null +++ b/data/wild/maps/Route16.asm @@ -0,0 +1,14 @@ +Route16Mons: + db 25 ; grass encounter rate + db 22, SPEAROW + db 22, DODUO + db 23, RATTATA + db 24, DODUO + db 24, RATTATA + db 26, DODUO + db 23, SPEAROW + db 24, FEAROW + db 25, RATICATE + db 26, RATICATE + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route17.asm b/data/wild/maps/Route17.asm new file mode 100755 index 000000000..3f6316f34 --- /dev/null +++ b/data/wild/maps/Route17.asm @@ -0,0 +1,14 @@ +Route17Mons: + db 25 ; grass encounter rate + db 26, DODUO + db 27, FEAROW + db 27, DODUO + db 28, DODUO + db 28, PONYTA + db 30, PONYTA + db 29, FEAROW + db 28, DODUO + db 32, PONYTA + db 29, DODRIO + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route18.asm b/data/wild/maps/Route18.asm new file mode 100755 index 000000000..b76cef02c --- /dev/null +++ b/data/wild/maps/Route18.asm @@ -0,0 +1,14 @@ +Route18Mons: + db 25 ; grass encounter rate + db 22, SPEAROW + db 22, DODUO + db 23, RATTATA + db 24, DODUO + db 24, RATTATA + db 26, DODUO + db 23, SPEAROW + db 24, FEAROW + db 25, RATICATE + db 26, RATICATE + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route19.asm b/data/wild/maps/Route19.asm new file mode 100644 index 000000000..70b06ac8b --- /dev/null +++ b/data/wild/maps/Route19.asm @@ -0,0 +1,14 @@ +Route19Mons: + db 0 ; grass encounter rate + + db 5 ; water encounter rate + db 5, TENTACOOL + db 10, TENTACOOL + db 15, TENTACOOL + db 5, TENTACOOL + db 10, TENTACOOL + db 15, TENTACOOL + db 20, TENTACOOL + db 30, TENTACOOL + db 35, TENTACOOL + db 40, TENTACOOL diff --git a/data/wild/maps/Route2.asm b/data/wild/maps/Route2.asm new file mode 100755 index 000000000..40093712a --- /dev/null +++ b/data/wild/maps/Route2.asm @@ -0,0 +1,14 @@ +Route2Mons: + db 25 ; grass encounter rate + db 3, RATTATA + db 3, PIDGEY + db 4, RATTATA + db 4, NIDORAN_M + db 4, NIDORAN_F + db 5, PIDGEY + db 6, NIDORAN_M + db 6, NIDORAN_F + db 7, PIDGEY + db 7, PIDGEY + + db 0 ; water encounter rate diff --git a/data/wildPokemon/route20.asm b/data/wild/maps/Route20.asm similarity index 100% rename from data/wildPokemon/route20.asm rename to data/wild/maps/Route20.asm diff --git a/data/wild/maps/Route21.asm b/data/wild/maps/Route21.asm new file mode 100755 index 000000000..e934e079d --- /dev/null +++ b/data/wild/maps/Route21.asm @@ -0,0 +1,24 @@ +Route21Mons: + db 25 ; grass encounter rate + db 15, PIDGEY + db 13, RATTATA + db 13, PIDGEY + db 11, PIDGEY + db 17, PIDGEY + db 15, RATTATA + db 15, RATICATE + db 17, PIDGEOTTO + db 19, PIDGEOTTO + db 15, PIDGEOTTO + + db 5 ; water encounter rate + db 5, TENTACOOL + db 10, TENTACOOL + db 15, TENTACOOL + db 5, TENTACOOL + db 10, TENTACOOL + db 15, TENTACOOL + db 20, TENTACOOL + db 30, TENTACOOL + db 35, TENTACOOL + db 40, TENTACOOL diff --git a/data/wild/maps/Route22.asm b/data/wild/maps/Route22.asm new file mode 100755 index 000000000..1b50ded0a --- /dev/null +++ b/data/wild/maps/Route22.asm @@ -0,0 +1,14 @@ +Route22Mons: + db 25 ; grass encounter rate + db 2, NIDORAN_M + db 2, NIDORAN_F + db 3, MANKEY + db 3, RATTATA + db 4, NIDORAN_M + db 4, NIDORAN_F + db 5, MANKEY + db 2, SPEAROW + db 4, SPEAROW + db 6, SPEAROW + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route23.asm b/data/wild/maps/Route23.asm new file mode 100755 index 000000000..cc1642e8d --- /dev/null +++ b/data/wild/maps/Route23.asm @@ -0,0 +1,14 @@ +Route23Mons: + db 10 ; grass encounter rate + db 41, NIDORINO + db 41, NIDORINA + db 36, MANKEY + db 44, NIDORINO + db 44, NIDORINA + db 40, FEAROW + db 41, MANKEY + db 45, FEAROW + db 41, PRIMEAPE + db 46, PRIMEAPE + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route24.asm b/data/wild/maps/Route24.asm new file mode 100755 index 000000000..e493dfbf2 --- /dev/null +++ b/data/wild/maps/Route24.asm @@ -0,0 +1,14 @@ +Route24Mons: + db 25 ; grass encounter rate + db 12, ODDISH + db 12, BELLSPROUT + db 13, PIDGEY + db 14, ODDISH + db 14, BELLSPROUT + db 15, PIDGEY + db 13, VENONAT + db 16, VENONAT + db 17, PIDGEY + db 17, PIDGEOTTO + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route25.asm b/data/wild/maps/Route25.asm new file mode 100755 index 000000000..2daa060c2 --- /dev/null +++ b/data/wild/maps/Route25.asm @@ -0,0 +1,14 @@ +Route25Mons: + db 15 ; grass encounter rate + db 12, ODDISH + db 12, BELLSPROUT + db 13, PIDGEY + db 14, ODDISH + db 14, BELLSPROUT + db 15, PIDGEY + db 13, VENONAT + db 16, VENONAT + db 17, PIDGEY + db 17, PIDGEOTTO + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route3.asm b/data/wild/maps/Route3.asm new file mode 100755 index 000000000..be7afe957 --- /dev/null +++ b/data/wild/maps/Route3.asm @@ -0,0 +1,14 @@ +Route3Mons: + db 20 ; grass encounter rate + db 8, SPEAROW + db 9, SPEAROW + db 9, MANKEY + db 10, SPEAROW + db 8, SANDSHREW + db 10, RATTATA + db 10, SANDSHREW + db 12, RATTATA + db 11, SPEAROW + db 12, SPEAROW + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route4.asm b/data/wild/maps/Route4.asm new file mode 100755 index 000000000..29f0aec49 --- /dev/null +++ b/data/wild/maps/Route4.asm @@ -0,0 +1,14 @@ +Route4Mons: + db 20 ; grass encounter rate + db 8, SPEAROW + db 9, SPEAROW + db 9, MANKEY + db 10, SPEAROW + db 8, SANDSHREW + db 10, RATTATA + db 10, SANDSHREW + db 12, RATTATA + db 11, SPEAROW + db 12, SPEAROW + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route5.asm b/data/wild/maps/Route5.asm new file mode 100755 index 000000000..7517bcb9d --- /dev/null +++ b/data/wild/maps/Route5.asm @@ -0,0 +1,14 @@ +Route5Mons: + db 15 ; grass encounter rate + db 15, PIDGEY + db 14, RATTATA + db 7, ABRA + db 16, PIDGEY + db 16, RATTATA + db 17, PIDGEY + db 17, PIDGEOTTO + db 3, JIGGLYPUFF + db 5, JIGGLYPUFF + db 7, JIGGLYPUFF + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route6.asm b/data/wild/maps/Route6.asm new file mode 100755 index 000000000..067d26945 --- /dev/null +++ b/data/wild/maps/Route6.asm @@ -0,0 +1,24 @@ +Route6Mons: + db 15 ; grass encounter rate + db 15, PIDGEY + db 14, RATTATA + db 7, ABRA + db 16, PIDGEY + db 16, RATTATA + db 17, PIDGEY + db 17, PIDGEOTTO + db 3, JIGGLYPUFF + db 5, JIGGLYPUFF + db 7, JIGGLYPUFF + + db 3 ; water encounter rate + db 15, PSYDUCK + db 15, PSYDUCK + db 15, PSYDUCK + db 15, PSYDUCK + db 15, PSYDUCK + db 15, PSYDUCK + db 15, PSYDUCK + db 15, PSYDUCK + db 15, GOLDUCK + db 20, GOLDUCK diff --git a/data/wild/maps/Route7.asm b/data/wild/maps/Route7.asm new file mode 100755 index 000000000..1ebb1ce9b --- /dev/null +++ b/data/wild/maps/Route7.asm @@ -0,0 +1,14 @@ +Route7Mons: + db 15 ; grass encounter rate + db 20, PIDGEY + db 22, PIDGEY + db 20, RATTATA + db 15, ABRA + db 19, ABRA + db 24, PIDGEOTTO + db 26, ABRA + db 19, JIGGLYPUFF + db 24, JIGGLYPUFF + db 24, JIGGLYPUFF + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route8.asm b/data/wild/maps/Route8.asm new file mode 100755 index 000000000..db07dbbaf --- /dev/null +++ b/data/wild/maps/Route8.asm @@ -0,0 +1,14 @@ +Route8Mons: + db 15 ; grass encounter rate + db 20, PIDGEY + db 22, PIDGEY + db 20, RATTATA + db 15, ABRA + db 19, ABRA + db 24, PIDGEOTTO + db 19, JIGGLYPUFF + db 24, JIGGLYPUFF + db 20, KADABRA + db 27, KADABRA + + db 0 ; water encounter rate diff --git a/data/wild/maps/Route9.asm b/data/wild/maps/Route9.asm new file mode 100755 index 000000000..785124020 --- /dev/null +++ b/data/wild/maps/Route9.asm @@ -0,0 +1,14 @@ +Route9Mons: + db 15 ; grass encounter rate + db 16, NIDORAN_M + db 16, NIDORAN_F + db 18, RATTATA + db 18, NIDORAN_M + db 18, NIDORAN_F + db 17, SPEAROW + db 18, NIDORINO + db 18, NIDORINA + db 20, RATICATE + db 19, FEAROW + + db 0 ; water encounter rate diff --git a/data/wild/maps/SafariZoneCenter.asm b/data/wild/maps/SafariZoneCenter.asm new file mode 100755 index 000000000..125fbc6aa --- /dev/null +++ b/data/wild/maps/SafariZoneCenter.asm @@ -0,0 +1,14 @@ +ZoneMonsCenter: + db 30 ; grass encounter rate + db 14, NIDORAN_M + db 36, NIDORAN_F + db 24, EXEGGCUTE + db 20, RHYHORN + db 23, NIDORINO + db 27, PARASECT + db 27, PARAS + db 32, PARASECT + db 22, TANGELA + db 7, CHANSEY + + db 0 ; water encounter rate diff --git a/data/wild/maps/SafariZoneEast.asm b/data/wild/maps/SafariZoneEast.asm new file mode 100755 index 000000000..ba0a1954a --- /dev/null +++ b/data/wild/maps/SafariZoneEast.asm @@ -0,0 +1,14 @@ +ZoneMons1: + db 30 ; grass encounter rate + db 21, NIDORAN_M + db 29, NIDORAN_F + db 22, EXEGGCUTE + db 21, TAUROS + db 32, NIDORINA + db 19, CUBONE + db 26, EXEGGCUTE + db 24, MAROWAK + db 21, CHANSEY + db 15, SCYTHER + + db 0 ; water encounter rate diff --git a/data/wild/maps/SafariZoneNorth.asm b/data/wild/maps/SafariZoneNorth.asm new file mode 100755 index 000000000..fa6dd3b47 --- /dev/null +++ b/data/wild/maps/SafariZoneNorth.asm @@ -0,0 +1,14 @@ +ZoneMons2: + db 30 ; grass encounter rate + db 36, NIDORAN_M + db 14, NIDORAN_F + db 20, EXEGGCUTE + db 25, RHYHORN + db 23, NIDORINA + db 28, KANGASKHAN + db 16, CUBONE + db 33, KANGASKHAN + db 25, SCYTHER + db 15, PINSIR + + db 0 ; water encounter rate diff --git a/data/wild/maps/SafariZoneWest.asm b/data/wild/maps/SafariZoneWest.asm new file mode 100755 index 000000000..b1e2fe3a7 --- /dev/null +++ b/data/wild/maps/SafariZoneWest.asm @@ -0,0 +1,14 @@ +ZoneMons3: + db 30 ; grass encounter rate + db 29, NIDORAN_M + db 21, NIDORAN_F + db 22, EXEGGCUTE + db 21, TAUROS + db 32, NIDORINO + db 19, CUBONE + db 26, EXEGGCUTE + db 24, MAROWAK + db 25, PINSIR + db 27, TANGELA + + db 0 ; water encounter rate diff --git a/data/wild/maps/SeafoamIslands1F.asm b/data/wild/maps/SeafoamIslands1F.asm new file mode 100755 index 000000000..e37005b2e --- /dev/null +++ b/data/wild/maps/SeafoamIslands1F.asm @@ -0,0 +1,14 @@ +IslandMons1: + db 15 ; grass encounter rate + db 18, ZUBAT + db 25, KRABBY + db 27, KRABBY + db 27, ZUBAT + db 36, ZUBAT + db 28, SLOWPOKE + db 30, SLOWPOKE + db 9, ZUBAT + db 27, GOLBAT + db 36, GOLBAT + + db 0 ; water encounter rate diff --git a/data/wild/maps/SeafoamIslandsB1F.asm b/data/wild/maps/SeafoamIslandsB1F.asm new file mode 100755 index 000000000..fd9ab09aa --- /dev/null +++ b/data/wild/maps/SeafoamIslandsB1F.asm @@ -0,0 +1,14 @@ +IslandMonsB1: + db 10 ; grass encounter rate + db 27, ZUBAT + db 26, KRABBY + db 36, ZUBAT + db 28, KRABBY + db 27, GOLBAT + db 29, SLOWPOKE + db 18, ZUBAT + db 28, KINGLER + db 22, SEEL + db 26, SEEL + + db 0 ; water encounter rate diff --git a/data/wild/maps/SeafoamIslandsB2F.asm b/data/wild/maps/SeafoamIslandsB2F.asm new file mode 100755 index 000000000..53961534a --- /dev/null +++ b/data/wild/maps/SeafoamIslandsB2F.asm @@ -0,0 +1,14 @@ +IslandMonsB2: + db 10 ; grass encounter rate + db 27, ZUBAT + db 27, KRABBY + db 36, ZUBAT + db 27, GOLBAT + db 28, KINGLER + db 24, SEEL + db 29, KRABBY + db 36, GOLBAT + db 31, SLOWPOKE + db 31, SLOWBRO + + db 0 ; water encounter rate diff --git a/data/wild/maps/SeafoamIslandsB3F.asm b/data/wild/maps/SeafoamIslandsB3F.asm new file mode 100755 index 000000000..5435d1e61 --- /dev/null +++ b/data/wild/maps/SeafoamIslandsB3F.asm @@ -0,0 +1,24 @@ +IslandMonsB3: + db 10 ; grass encounter rate + db 27, GOLBAT + db 36, ZUBAT + db 29, KRABBY + db 27, ZUBAT + db 30, KINGLER + db 26, SEEL + db 31, KRABBY + db 30, SEEL + db 28, DEWGONG + db 32, DEWGONG + + db 5 ; water encounter rate + db 25, TENTACOOL + db 30, TENTACOOL + db 20, TENTACOOL + db 30, STARYU + db 35, TENTACOOL + db 30, STARYU + db 40, TENTACOOL + db 30, STARYU + db 30, STARYU + db 30, STARYU diff --git a/data/wild/maps/SeafoamIslandsB4F.asm b/data/wild/maps/SeafoamIslandsB4F.asm new file mode 100755 index 000000000..bfeb68216 --- /dev/null +++ b/data/wild/maps/SeafoamIslandsB4F.asm @@ -0,0 +1,24 @@ +IslandMonsB4: + db 10 ; grass encounter rate + db 36, GOLBAT + db 36, ZUBAT + db 30, KRABBY + db 32, KINGLER + db 28, SEEL + db 32, SEEL + db 27, GOLBAT + db 45, ZUBAT + db 30, DEWGONG + db 34, DEWGONG + + db 5 ; water encounter rate + db 25, TENTACOOL + db 30, TENTACOOL + db 20, TENTACOOL + db 30, STARYU + db 35, TENTACOOL + db 30, STARYU + db 40, TENTACOOL + db 30, STARYU + db 30, STARYU + db 30, STARYU diff --git a/data/wild/maps/VictoryRoad1F.asm b/data/wild/maps/VictoryRoad1F.asm new file mode 100755 index 000000000..bcb16dc86 --- /dev/null +++ b/data/wild/maps/VictoryRoad1F.asm @@ -0,0 +1,14 @@ +PlateauMons1: + db 15 ; grass encounter rate + db 26, GEODUDE + db 31, GEODUDE + db 36, GEODUDE + db 39, ZUBAT + db 44, ZUBAT + db 41, GEODUDE + db 43, ONIX + db 45, ONIX + db 41, GRAVELER + db 47, GRAVELER + + db 0 ; water encounter rate diff --git a/data/wild/maps/VictoryRoad2F.asm b/data/wild/maps/VictoryRoad2F.asm new file mode 100755 index 000000000..89b736cd2 --- /dev/null +++ b/data/wild/maps/VictoryRoad2F.asm @@ -0,0 +1,14 @@ +PlateauMons2: + db 10 ; grass encounter rate + db 31, GEODUDE + db 36, GEODUDE + db 41, GEODUDE + db 44, ZUBAT + db 39, GOLBAT + db 44, GRAVELER + db 45, ONIX + db 47, ONIX + db 39, MACHOKE + db 42, MACHOKE + + db 0 ; water encounter rate diff --git a/data/wild/maps/VictoryRoad3F.asm b/data/wild/maps/VictoryRoad3F.asm new file mode 100755 index 000000000..aec2d0978 --- /dev/null +++ b/data/wild/maps/VictoryRoad3F.asm @@ -0,0 +1,14 @@ +PlateauMons3: + db 15 ; grass encounter rate + db 36, GEODUDE + db 44, GOLBAT + db 41, GEODUDE + db 49, ONIX + db 46, GEODUDE + db 41, GRAVELER + db 42, MACHOKE + db 45, MACHOKE + db 47, GRAVELER + db 47, GRAVELER + + db 0 ; water encounter rate diff --git a/data/wild/maps/ViridianForest.asm b/data/wild/maps/ViridianForest.asm new file mode 100755 index 000000000..e7b1288f4 --- /dev/null +++ b/data/wild/maps/ViridianForest.asm @@ -0,0 +1,14 @@ +ForestMons: + db 25 ; grass encounter rate + db 3, CATERPIE + db 4, METAPOD + db 4, CATERPIE + db 5, CATERPIE + db 4, PIDGEY + db 6, PIDGEY + db 6, CATERPIE + db 6, METAPOD + db 8, PIDGEY + db 9, PIDGEOTTO + + db 0 ; water encounter rate diff --git a/data/wild/maps/nothing.asm b/data/wild/maps/nothing.asm new file mode 100755 index 000000000..19570b50e --- /dev/null +++ b/data/wild/maps/nothing.asm @@ -0,0 +1,4 @@ +NoMons: + db 0 ; grass encounter rate + + db 0 ; water encounter rate diff --git a/data/wild/probabilities.asm b/data/wild/probabilities.asm new file mode 100644 index 000000000..2c56c6b9c --- /dev/null +++ b/data/wild/probabilities.asm @@ -0,0 +1,15 @@ +WildMonEncounterSlotChances: +; There are 10 slots for wild pokemon, and this is the table that defines how common each of +; those 10 slots is. A random number is generated and then the first byte of each pair in this +; table is compared against that random number. If the random number is less than or equal +; to the first byte, then that slot is chosen. The second byte is double the slot number. + db 50, $00 ; 51/256 = 19.9% chance of slot 0 + db 101, $02 ; 51/256 = 19.9% chance of slot 1 + db 140, $04 ; 39/256 = 15.2% chance of slot 2 + db 165, $06 ; 25/256 = 9.8% chance of slot 3 + db 190, $08 ; 25/256 = 9.8% chance of slot 4 + db 215, $0A ; 25/256 = 9.8% chance of slot 5 + db 228, $0C ; 13/256 = 5.1% chance of slot 6 + db 241, $0E ; 13/256 = 5.1% chance of slot 7 + db 252, $10 ; 11/256 = 4.3% chance of slot 8 + db 255, $12 ; 3/256 = 1.2% chance of slot 9 diff --git a/data/wild/super_rod.asm b/data/wild/super_rod.asm new file mode 100755 index 000000000..154980cc6 --- /dev/null +++ b/data/wild/super_rod.asm @@ -0,0 +1,33 @@ +FishingSlots:: + db PALLET_TOWN, STARYU, 10, TENTACOOL, 10, STARYU, 5, TENTACOOL, 20 + db VIRIDIAN_CITY, POLIWAG, 5, POLIWAG, 10, POLIWAG, 15, POLIWAG, 10 + db CERULEAN_CITY, GOLDEEN, 25, GOLDEEN, 30, SEAKING, 30, SEAKING, 40 + db VERMILION_CITY, TENTACOOL, 15, TENTACOOL, 20, TENTACOOL, 10, HORSEA, 5 + db CELADON_CITY, GOLDEEN, 5, GOLDEEN, 10, GOLDEEN, 15, GOLDEEN, 20 + db FUCHSIA_CITY, MAGIKARP, 5, MAGIKARP, 10, MAGIKARP, 15, GYARADOS, 15 + db CINNABAR_ISLAND, STARYU, 15, TENTACOOL, 15, STARYU, 10, TENTACOOL, 30 + db ROUTE_4, GOLDEEN, 20, GOLDEEN, 25, GOLDEEN, 30, SEAKING, 30 + db ROUTE_6, GOLDEEN, 5, GOLDEEN, 10, GOLDEEN, 15, GOLDEEN, 20 + db ROUTE_24, GOLDEEN, 20, GOLDEEN, 25, GOLDEEN, 30, SEAKING, 30 + db ROUTE_25, KRABBY, 10, KRABBY, 15, KINGLER, 15, KINGLER, 25 + db ROUTE_10, KRABBY, 15, KRABBY, 20, HORSEA, 10, KINGLER, 25 + db ROUTE_11, TENTACOOL, 15, TENTACOOL, 20, TENTACOOL, 10, HORSEA, 5 + db ROUTE_12, HORSEA, 20, HORSEA, 25, SEADRA, 25, SEADRA, 35 + db ROUTE_13, HORSEA, 15, HORSEA, 20, TENTACOOL, 10, SEADRA, 20 + db ROUTE_17, TENTACOOL, 5, TENTACOOL, 15, SHELLDER, 25, SHELLDER, 35 + db ROUTE_18, TENTACOOL, 15, SHELLDER, 20, SHELLDER, 30, SHELLDER, 40 + db ROUTE_19, TENTACOOL, 15, STARYU, 20, TENTACOOL, 30, TENTACRUEL, 30 + db ROUTE_20, TENTACOOL, 20, TENTACRUEL, 20, STARYU, 30, TENTACRUEL, 40 + db ROUTE_21, TENTACOOL, 15, STARYU, 20, TENTACOOL, 30, TENTACRUEL, 30 + db ROUTE_22, POLIWAG, 5, POLIWAG, 10, POLIWAG, 15, POLIWHIRL, 15 + db ROUTE_23, POLIWAG, 25, POLIWAG, 30, POLIWHIRL, 30, POLIWHIRL, 40 + db VERMILION_DOCK, TENTACOOL, 10, TENTACOOL, 15, STARYU, 15, SHELLDER, 10 + db SAFARI_ZONE_CENTER, MAGIKARP, 5, MAGIKARP, 10, DRATINI, 10, DRAGONAIR, 15 + db SAFARI_ZONE_EAST, MAGIKARP, 5, MAGIKARP, 10, MAGIKARP, 15, DRATINI, 15 + db SAFARI_ZONE_NORTH, MAGIKARP, 5, MAGIKARP, 10, MAGIKARP, 15, DRATINI, 15 + db SAFARI_ZONE_WEST, MAGIKARP, 5, MAGIKARP, 10, MAGIKARP, 15, DRATINI, 15 + db SEAFOAM_ISLANDS_B3F, KRABBY, 25, STARYU, 20, KINGLER, 35, STARYU, 40 + db SEAFOAM_ISLANDS_B4F, KRABBY, 25, STARYU, 20, KINGLER, 35, STARYU, 40 + db CERULEAN_CAVE_1F, GOLDEEN, 25, SEAKING, 35, SEAKING, 45, SEAKING, 55 + db CERULEAN_CAVE_B1F, GOLDEEN, 30, SEAKING, 40, SEAKING, 50, SEAKING, 60 + db -1 ; end diff --git a/data/wildPokemon/ceruleancave1.asm b/data/wildPokemon/ceruleancave1.asm deleted file mode 100644 index ff7be04e7..000000000 --- a/data/wildPokemon/ceruleancave1.asm +++ /dev/null @@ -1,14 +0,0 @@ -DungeonMons1: - db $0A - db 50,GOLBAT - db 55,GOLBAT - db 45,GRAVELER - db 55,GLOOM - db 55,WEEPINBELL - db 52,SANDSLASH - db 54,VENOMOTH - db 54,PARASECT - db 55,DITTO - db 60,DITTO - db $00 - diff --git a/data/wildPokemon/ceruleancave2.asm b/data/wildPokemon/ceruleancave2.asm deleted file mode 100644 index 1fd20019f..000000000 --- a/data/wildPokemon/ceruleancave2.asm +++ /dev/null @@ -1,14 +0,0 @@ -DungeonMons2: - db $0F - db 52,GOLBAT - db 57,GOLBAT - db 50,GRAVELER - db 56,SANDSLASH - db 50,RHYHORN - db 60,DITTO - db 58,GLOOM - db 58,WEEPINBELL - db 60,RHYDON - db 58,RHYDON - db $00 - diff --git a/data/wildPokemon/ceruleancaveb1.asm b/data/wildPokemon/ceruleancaveb1.asm deleted file mode 100644 index 5848678f0..000000000 --- a/data/wildPokemon/ceruleancaveb1.asm +++ /dev/null @@ -1,14 +0,0 @@ -DungeonMonsB1: - db $19 - db 54,GOLBAT - db 59,GOLBAT - db 55,GRAVELER - db 52,RHYHORN - db 62,RHYDON - db 60,DITTO - db 56,CHANSEY - db 65,DITTO - db 55,LICKITUNG - db 50,LICKITUNG - db $00 - diff --git a/data/wildPokemon/diglettscave.asm b/data/wildPokemon/diglettscave.asm deleted file mode 100755 index 0b8ec1c7c..000000000 --- a/data/wildPokemon/diglettscave.asm +++ /dev/null @@ -1,14 +0,0 @@ -CaveMons: - db $14 - db 18,DIGLETT - db 19,DIGLETT - db 17,DIGLETT - db 20,DIGLETT - db 16,DIGLETT - db 15,DIGLETT - db 21,DIGLETT - db 22,DIGLETT - db 29,DUGTRIO - db 31,DUGTRIO - db $00 - diff --git a/data/wildPokemon/mansion1.asm b/data/wildPokemon/mansion1.asm deleted file mode 100755 index 2e5a8f514..000000000 --- a/data/wildPokemon/mansion1.asm +++ /dev/null @@ -1,14 +0,0 @@ -MansionMons1: - db $0A - db 34,RATTATA - db 34,RATICATE - db 23,GRIMER - db 26,GROWLITHE - db 37,RATTATA - db 37,RATICATE - db 30,GROWLITHE - db 26,GRIMER - db 34,GROWLITHE - db 38,GROWLITHE - db $00 - diff --git a/data/wildPokemon/mansion2.asm b/data/wildPokemon/mansion2.asm deleted file mode 100755 index e830560a9..000000000 --- a/data/wildPokemon/mansion2.asm +++ /dev/null @@ -1,14 +0,0 @@ -MansionMons2: - db $0A - db 37,RATTATA - db 37,RATICATE - db 26,GRIMER - db 29,GRIMER - db 40,RATTATA - db 40,RATICATE - db 32,GRIMER - db 35,GRIMER - db 35,MUK - db 38,MUK - db $00 - diff --git a/data/wildPokemon/mansion3.asm b/data/wildPokemon/mansion3.asm deleted file mode 100755 index cc180e3b8..000000000 --- a/data/wildPokemon/mansion3.asm +++ /dev/null @@ -1,14 +0,0 @@ -MansionMons3: - db $0A - db 40,RATTATA - db 40,RATICATE - db 32,GRIMER - db 35,GRIMER - db 43,RATTATA - db 43,RATICATE - db 38,GRIMER - db 38,GRIMER - db 38,MUK - db 41,MUK - db $00 - diff --git a/data/wildPokemon/mansionb1.asm b/data/wildPokemon/mansionb1.asm deleted file mode 100755 index dcace0d8c..000000000 --- a/data/wildPokemon/mansionb1.asm +++ /dev/null @@ -1,13 +0,0 @@ -MansionMonsB1: - db $0A - db 35,GRIMER - db 38,GRIMER - db 37,RATICATE - db 40,RATICATE - db 41,MUK - db 43,RATICATE - db 24,DITTO - db 46,RATICATE - db 18,DITTO - db 12,DITTO - db $00 diff --git a/data/wildPokemon/mtmoon1.asm b/data/wildPokemon/mtmoon1.asm deleted file mode 100755 index 75f19efd2..000000000 --- a/data/wildPokemon/mtmoon1.asm +++ /dev/null @@ -1,14 +0,0 @@ -MoonMons1: - db $0A - db 8,ZUBAT - db 9,ZUBAT - db 10,GEODUDE - db 6,ZUBAT - db 7,ZUBAT - db 10,ZUBAT - db 10,GEODUDE - db 11,ZUBAT - db 12,SANDSHREW - db 11,CLEFAIRY - db $00 - diff --git a/data/wildPokemon/mtmoonb1.asm b/data/wildPokemon/mtmoonb1.asm deleted file mode 100755 index 61c0b05c9..000000000 --- a/data/wildPokemon/mtmoonb1.asm +++ /dev/null @@ -1,14 +0,0 @@ -MoonMonsB1: - db $0A - db 8,ZUBAT - db 9,ZUBAT - db 10,ZUBAT - db 10,GEODUDE - db 11,GEODUDE - db 11,ZUBAT - db 9,PARAS - db 11,PARAS - db 10,CLEFAIRY - db 12,CLEFAIRY - db $00 - diff --git a/data/wildPokemon/mtmoonb2.asm b/data/wildPokemon/mtmoonb2.asm deleted file mode 100755 index 27c765001..000000000 --- a/data/wildPokemon/mtmoonb2.asm +++ /dev/null @@ -1,14 +0,0 @@ -MoonMonsB2: - db $0A - db 10,ZUBAT - db 11,GEODUDE - db 13,PARAS - db 11,ZUBAT - db 11,ZUBAT - db 12,ZUBAT - db 13,ZUBAT - db 9,CLEFAIRY - db 11,CLEFAIRY - db 13,CLEFAIRY - db $00 - diff --git a/data/wildPokemon/nomons.asm b/data/wildPokemon/nomons.asm deleted file mode 100755 index 895cf2e06..000000000 --- a/data/wildPokemon/nomons.asm +++ /dev/null @@ -1,4 +0,0 @@ -NoMons: - db $00 - db $00 - diff --git a/data/wildPokemon/pokemontower1.asm b/data/wildPokemon/pokemontower1.asm deleted file mode 100755 index 4911c790c..000000000 --- a/data/wildPokemon/pokemontower1.asm +++ /dev/null @@ -1,4 +0,0 @@ -TowerMons1: - db $00 - db $00 - diff --git a/data/wildPokemon/pokemontower2.asm b/data/wildPokemon/pokemontower2.asm deleted file mode 100755 index a849668d3..000000000 --- a/data/wildPokemon/pokemontower2.asm +++ /dev/null @@ -1,4 +0,0 @@ -TowerMons2: - db $00 - db $00 - diff --git a/data/wildPokemon/pokemontower3.asm b/data/wildPokemon/pokemontower3.asm deleted file mode 100755 index c071c972c..000000000 --- a/data/wildPokemon/pokemontower3.asm +++ /dev/null @@ -1,14 +0,0 @@ -TowerMons3: - db $0A - db 20,GASTLY - db 21,GASTLY - db 22,GASTLY - db 23,GASTLY - db 24,GASTLY - db 19,GASTLY - db 18,GASTLY - db 25,GASTLY - db 20,HAUNTER - db 25,HAUNTER - db $00 - diff --git a/data/wildPokemon/pokemontower4.asm b/data/wildPokemon/pokemontower4.asm deleted file mode 100755 index 35be620ed..000000000 --- a/data/wildPokemon/pokemontower4.asm +++ /dev/null @@ -1,14 +0,0 @@ -TowerMons4: - db $0A - db 20,GASTLY - db 21,GASTLY - db 22,GASTLY - db 23,GASTLY - db 24,GASTLY - db 19,GASTLY - db 18,GASTLY - db 25,GASTLY - db 20,HAUNTER - db 25,HAUNTER - db $00 - diff --git a/data/wildPokemon/pokemontower5.asm b/data/wildPokemon/pokemontower5.asm deleted file mode 100755 index 55fe2e274..000000000 --- a/data/wildPokemon/pokemontower5.asm +++ /dev/null @@ -1,14 +0,0 @@ -TowerMons5: - db $0F - db 22,GASTLY - db 23,GASTLY - db 24,GASTLY - db 25,GASTLY - db 26,GASTLY - db 21,GASTLY - db 20,CUBONE - db 27,GASTLY - db 22,HAUNTER - db 27,HAUNTER - db $00 - diff --git a/data/wildPokemon/pokemontower6.asm b/data/wildPokemon/pokemontower6.asm deleted file mode 100755 index 6e914c5ce..000000000 --- a/data/wildPokemon/pokemontower6.asm +++ /dev/null @@ -1,14 +0,0 @@ -TowerMons6: - db $0F - db 22,GASTLY - db 23,GASTLY - db 24,GASTLY - db 25,GASTLY - db 26,GASTLY - db 21,GASTLY - db 22,CUBONE - db 27,GASTLY - db 22,HAUNTER - db 27,HAUNTER - db $00 - diff --git a/data/wildPokemon/pokemontower7.asm b/data/wildPokemon/pokemontower7.asm deleted file mode 100755 index 34ca62256..000000000 --- a/data/wildPokemon/pokemontower7.asm +++ /dev/null @@ -1,14 +0,0 @@ -TowerMons7: - db $14 - db 24,GASTLY - db 25,GASTLY - db 26,GASTLY - db 27,GASTLY - db 28,GASTLY - db 23,GASTLY - db 24,CUBONE - db 29,GASTLY - db 24,HAUNTER - db 29,HAUNTER - db $00 - diff --git a/data/wildPokemon/powerplant.asm b/data/wildPokemon/powerplant.asm deleted file mode 100755 index 8a1667a57..000000000 --- a/data/wildPokemon/powerplant.asm +++ /dev/null @@ -1,13 +0,0 @@ -PowerPlantMons: - db $0A - db 30,MAGNEMITE - db 35,MAGNEMITE - db 33,MAGNETON - db 33,VOLTORB - db 37,VOLTORB - db 33,GRIMER - db 37,GRIMER - db 38,MAGNETON - db 33,MUK - db 37,MUK - db $00 diff --git a/data/wildPokemon/rocktunnel1.asm b/data/wildPokemon/rocktunnel1.asm deleted file mode 100755 index 9999490e4..000000000 --- a/data/wildPokemon/rocktunnel1.asm +++ /dev/null @@ -1,14 +0,0 @@ -TunnelMonsB1: - db $0F - db 15,ZUBAT - db 16,GEODUDE - db 17,ZUBAT - db 19,ZUBAT - db 18,GEODUDE - db 20,GEODUDE - db 21,ZUBAT - db 17,MACHOP - db 19,MACHOP - db 21,MACHOP - db $00 - diff --git a/data/wildPokemon/rocktunnel2.asm b/data/wildPokemon/rocktunnel2.asm deleted file mode 100755 index 411119095..000000000 --- a/data/wildPokemon/rocktunnel2.asm +++ /dev/null @@ -1,14 +0,0 @@ -TunnelMonsB2: - db $0F - db 20,ZUBAT - db 17,GEODUDE - db 18,MACHOP - db 21,ZUBAT - db 22,ZUBAT - db 21,GEODUDE - db 20,MACHOP - db 14,ONIX - db 18,ONIX - db 22,ONIX - db $00 - diff --git a/data/wildPokemon/route1.asm b/data/wildPokemon/route1.asm deleted file mode 100755 index 4b85ba402..000000000 --- a/data/wildPokemon/route1.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route1Mons: - db $19 - db 3,PIDGEY - db 4,PIDGEY - db 2,RATTATA - db 3,RATTATA - db 2,PIDGEY - db 3,PIDGEY - db 5,PIDGEY - db 4,RATTATA - db 6,PIDGEY - db 7,PIDGEY - db $00 - diff --git a/data/wildPokemon/route10.asm b/data/wildPokemon/route10.asm deleted file mode 100755 index af835c99e..000000000 --- a/data/wildPokemon/route10.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route10Mons: - db $0F - db 16,MAGNEMITE - db 18,RATTATA - db 18,MAGNEMITE - db 20,MAGNEMITE - db 17,NIDORAN_M - db 17,NIDORAN_F - db 22,MAGNEMITE - db 20,RATICATE - db 16,MACHOP - db 18,MACHOP - db $00 - diff --git a/data/wildPokemon/route11.asm b/data/wildPokemon/route11.asm deleted file mode 100755 index 0b1425c0b..000000000 --- a/data/wildPokemon/route11.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route11Mons: - db $0F - db 16,PIDGEY - db 15,RATTATA - db 18,PIDGEY - db 15,DROWZEE - db 17,RATTATA - db 17,DROWZEE - db 18,PIDGEOTTO - db 20,PIDGEOTTO - db 19,DROWZEE - db 17,RATICATE - db $00 - diff --git a/data/wildPokemon/route12.asm b/data/wildPokemon/route12.asm deleted file mode 100755 index 6dc3d7399..000000000 --- a/data/wildPokemon/route12.asm +++ /dev/null @@ -1,25 +0,0 @@ -Route12Mons: - db $0F - db 25,ODDISH - db 25,BELLSPROUT - db 28,PIDGEY - db 28,PIDGEOTTO - db 27,ODDISH - db 27,BELLSPROUT - db 29,GLOOM - db 29,WEEPINBELL - db 26,FARFETCHD - db 31,FARFETCHD - - db $03 - db 15,SLOWPOKE - db 15,SLOWPOKE - db 15,SLOWPOKE - db 15,SLOWPOKE - db 15,SLOWPOKE - db 15,SLOWPOKE - db 15,SLOWPOKE - db 15,SLOWPOKE - db 15,SLOWBRO - db 20,SLOWBRO - diff --git a/data/wildPokemon/route13.asm b/data/wildPokemon/route13.asm deleted file mode 100755 index 3b6ca1525..000000000 --- a/data/wildPokemon/route13.asm +++ /dev/null @@ -1,25 +0,0 @@ -Route13Mons: - db $0F - db 25,ODDISH - db 25,BELLSPROUT - db 28,PIDGEOTTO - db 28,PIDGEY - db 27,ODDISH - db 27,BELLSPROUT - db 29,GLOOM - db 29,WEEPINBELL - db 26,FARFETCHD - db 31,FARFETCHD - - db $03 - db 15,SLOWPOKE - db 15,SLOWPOKE - db 15,SLOWPOKE - db 15,SLOWPOKE - db 15,SLOWPOKE - db 15,SLOWPOKE - db 15,SLOWPOKE - db 15,SLOWPOKE - db 15,SLOWBRO - db 20,SLOWBRO - diff --git a/data/wildPokemon/route14.asm b/data/wildPokemon/route14.asm deleted file mode 100755 index 9eb0e4c51..000000000 --- a/data/wildPokemon/route14.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route14Mons: - db $0F - db 26,ODDISH - db 26,BELLSPROUT - db 24,VENONAT - db 30,PIDGEOTTO - db 28,ODDISH - db 28,BELLSPROUT - db 30,GLOOM - db 30,WEEPINBELL - db 27,VENONAT - db 30,VENOMOTH - db $00 - diff --git a/data/wildPokemon/route15.asm b/data/wildPokemon/route15.asm deleted file mode 100755 index 30d96ed24..000000000 --- a/data/wildPokemon/route15.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route15Mons: - db $0F - db 26,ODDISH - db 26,BELLSPROUT - db 24,VENONAT - db 32,PIDGEOTTO - db 28,ODDISH - db 28,BELLSPROUT - db 30,GLOOM - db 30,WEEPINBELL - db 27,VENONAT - db 30,VENOMOTH - db $00 - diff --git a/data/wildPokemon/route16.asm b/data/wildPokemon/route16.asm deleted file mode 100755 index eeefa9ba6..000000000 --- a/data/wildPokemon/route16.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route16Mons: - db $19 - db 22,SPEAROW - db 22,DODUO - db 23,RATTATA - db 24,DODUO - db 24,RATTATA - db 26,DODUO - db 23,SPEAROW - db 24,FEAROW - db 25,RATICATE - db 26,RATICATE - db $00 - diff --git a/data/wildPokemon/route17.asm b/data/wildPokemon/route17.asm deleted file mode 100755 index ce72f376d..000000000 --- a/data/wildPokemon/route17.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route17Mons: - db $19 - db 26,DODUO - db 27,FEAROW - db 27,DODUO - db 28,DODUO - db 28,PONYTA - db 30,PONYTA - db 29,FEAROW - db 28,DODUO - db 32,PONYTA - db 29,DODRIO - db $00 - diff --git a/data/wildPokemon/route18.asm b/data/wildPokemon/route18.asm deleted file mode 100755 index 62ce6c3e2..000000000 --- a/data/wildPokemon/route18.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route18Mons: - db $19 - db 22,SPEAROW - db 22,DODUO - db 23,RATTATA - db 24,DODUO - db 24,RATTATA - db 26,DODUO - db 23,SPEAROW - db 24,FEAROW - db 25,RATICATE - db 26,RATICATE - db $00 - diff --git a/data/wildPokemon/route19.asm b/data/wildPokemon/route19.asm deleted file mode 100644 index 77e1e3ef8..000000000 --- a/data/wildPokemon/route19.asm +++ /dev/null @@ -1,15 +0,0 @@ -Route19Mons: - db $00 - - db $05 - db 5,TENTACOOL - db 10,TENTACOOL - db 15,TENTACOOL - db 5,TENTACOOL - db 10,TENTACOOL - db 15,TENTACOOL - db 20,TENTACOOL - db 30,TENTACOOL - db 35,TENTACOOL - db 40,TENTACOOL - diff --git a/data/wildPokemon/route2.asm b/data/wildPokemon/route2.asm deleted file mode 100755 index 93f3726f0..000000000 --- a/data/wildPokemon/route2.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route2Mons: - db $19 - db 3,RATTATA - db 3,PIDGEY - db 4,RATTATA - db 4,NIDORAN_M - db 4,NIDORAN_F - db 5,PIDGEY - db 6,NIDORAN_M - db 6,NIDORAN_F - db 7,PIDGEY - db 7,PIDGEY - db $00 - diff --git a/data/wildPokemon/route21.asm b/data/wildPokemon/route21.asm deleted file mode 100755 index 11ac7e6b3..000000000 --- a/data/wildPokemon/route21.asm +++ /dev/null @@ -1,25 +0,0 @@ -Route21Mons: - db $19 - db 15,PIDGEY - db 13,RATTATA - db 13,PIDGEY - db 11,PIDGEY - db 17,PIDGEY - db 15,RATTATA - db 15,RATICATE - db 17,PIDGEOTTO - db 19,PIDGEOTTO - db 15,PIDGEOTTO - - db $05 - db 5,TENTACOOL - db 10,TENTACOOL - db 15,TENTACOOL - db 5,TENTACOOL - db 10,TENTACOOL - db 15,TENTACOOL - db 20,TENTACOOL - db 30,TENTACOOL - db 35,TENTACOOL - db 40,TENTACOOL - diff --git a/data/wildPokemon/route22.asm b/data/wildPokemon/route22.asm deleted file mode 100755 index 39f1f29cc..000000000 --- a/data/wildPokemon/route22.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route22Mons: - db $19 - db 2,NIDORAN_M - db 2,NIDORAN_F - db 3,MANKEY - db 3,RATTATA - db 4,NIDORAN_M - db 4,NIDORAN_F - db 5,MANKEY - db 2,SPEAROW - db 4,SPEAROW - db 6,SPEAROW - db $00 - diff --git a/data/wildPokemon/route23.asm b/data/wildPokemon/route23.asm deleted file mode 100755 index 43de8c2b5..000000000 --- a/data/wildPokemon/route23.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route23Mons: - db $0A - db 41,NIDORINO - db 41,NIDORINA - db 36,MANKEY - db 44,NIDORINO - db 44,NIDORINA - db 40,FEAROW - db 41,MANKEY - db 45,FEAROW - db 41,PRIMEAPE - db 46,PRIMEAPE - db $00 - diff --git a/data/wildPokemon/route24.asm b/data/wildPokemon/route24.asm deleted file mode 100755 index df4a3bce2..000000000 --- a/data/wildPokemon/route24.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route24Mons: - db $19 - db 12,ODDISH - db 12,BELLSPROUT - db 13,PIDGEY - db 14,ODDISH - db 14,BELLSPROUT - db 15,PIDGEY - db 13,VENONAT - db 16,VENONAT - db 17,PIDGEY - db 17,PIDGEOTTO - db $00 - diff --git a/data/wildPokemon/route25.asm b/data/wildPokemon/route25.asm deleted file mode 100755 index 1546dd74b..000000000 --- a/data/wildPokemon/route25.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route25Mons: - db $0F - db 12,ODDISH - db 12,BELLSPROUT - db 13,PIDGEY - db 14,ODDISH - db 14,BELLSPROUT - db 15,PIDGEY - db 13,VENONAT - db 16,VENONAT - db 17,PIDGEY - db 17,PIDGEOTTO - db $00 - diff --git a/data/wildPokemon/route3.asm b/data/wildPokemon/route3.asm deleted file mode 100755 index f867fbbff..000000000 --- a/data/wildPokemon/route3.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route3Mons: - db $14 - db 8,SPEAROW - db 9,SPEAROW - db 9,MANKEY - db 10,SPEAROW - db 8,SANDSHREW - db 10,RATTATA - db 10,SANDSHREW - db 12,RATTATA - db 11,SPEAROW - db 12,SPEAROW - db $00 - diff --git a/data/wildPokemon/route4.asm b/data/wildPokemon/route4.asm deleted file mode 100755 index b62126d8a..000000000 --- a/data/wildPokemon/route4.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route4Mons: - db $14 - db 8,SPEAROW - db 9,SPEAROW - db 9,MANKEY - db 10,SPEAROW - db 8,SANDSHREW - db 10,RATTATA - db 10,SANDSHREW - db 12,RATTATA - db 11,SPEAROW - db 12,SPEAROW - db $00 - diff --git a/data/wildPokemon/route5.asm b/data/wildPokemon/route5.asm deleted file mode 100755 index 1e9703a71..000000000 --- a/data/wildPokemon/route5.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route5Mons: - db $0F - db 15,PIDGEY - db 14,RATTATA - db 7,ABRA - db 16,PIDGEY - db 16,RATTATA - db 17,PIDGEY - db 17,PIDGEOTTO - db 3,JIGGLYPUFF - db 5,JIGGLYPUFF - db 7,JIGGLYPUFF - db $00 - diff --git a/data/wildPokemon/route6.asm b/data/wildPokemon/route6.asm deleted file mode 100755 index b84e50295..000000000 --- a/data/wildPokemon/route6.asm +++ /dev/null @@ -1,25 +0,0 @@ -Route6Mons: - db $0F - db 15,PIDGEY - db 14,RATTATA - db 7,ABRA - db 16,PIDGEY - db 16,RATTATA - db 17,PIDGEY - db 17,PIDGEOTTO - db 3,JIGGLYPUFF - db 5,JIGGLYPUFF - db 7,JIGGLYPUFF - - db $03 - db 15,PSYDUCK - db 15,PSYDUCK - db 15,PSYDUCK - db 15,PSYDUCK - db 15,PSYDUCK - db 15,PSYDUCK - db 15,PSYDUCK - db 15,PSYDUCK - db 15,GOLDUCK - db 20,GOLDUCK - diff --git a/data/wildPokemon/route7.asm b/data/wildPokemon/route7.asm deleted file mode 100755 index dad77e692..000000000 --- a/data/wildPokemon/route7.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route7Mons: - db $0F - db 20,PIDGEY - db 22,PIDGEY - db 20,RATTATA - db 15,ABRA - db 19,ABRA - db 24,PIDGEOTTO - db 26,ABRA - db 19,JIGGLYPUFF - db 24,JIGGLYPUFF - db 24,JIGGLYPUFF - db $00 - diff --git a/data/wildPokemon/route8.asm b/data/wildPokemon/route8.asm deleted file mode 100755 index 8b47b1631..000000000 --- a/data/wildPokemon/route8.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route8Mons: - db $0F - db 20,PIDGEY - db 22,PIDGEY - db 20,RATTATA - db 15,ABRA - db 19,ABRA - db 24,PIDGEOTTO - db 19,JIGGLYPUFF - db 24,JIGGLYPUFF - db 20,KADABRA - db 27,KADABRA - db $00 - diff --git a/data/wildPokemon/route9.asm b/data/wildPokemon/route9.asm deleted file mode 100755 index 95f5b4518..000000000 --- a/data/wildPokemon/route9.asm +++ /dev/null @@ -1,14 +0,0 @@ -Route9Mons: - db $0F - db 16,NIDORAN_M - db 16,NIDORAN_F - db 18,RATTATA - db 18,NIDORAN_M - db 18,NIDORAN_F - db 17,SPEAROW - db 18,NIDORINO - db 18,NIDORINA - db 20,RATICATE - db 19,FEAROW - db $00 - diff --git a/data/wildPokemon/safarizone1.asm b/data/wildPokemon/safarizone1.asm deleted file mode 100755 index c8632351f..000000000 --- a/data/wildPokemon/safarizone1.asm +++ /dev/null @@ -1,14 +0,0 @@ -ZoneMons1: - db $1E - db 21,NIDORAN_M - db 29,NIDORAN_F - db 22,EXEGGCUTE - db 21,TAUROS - db 32,NIDORINA - db 19,CUBONE - db 26,EXEGGCUTE - db 24,MAROWAK - db 21,CHANSEY - db 15,SCYTHER - db $00 - diff --git a/data/wildPokemon/safarizone2.asm b/data/wildPokemon/safarizone2.asm deleted file mode 100755 index 1e4a6744e..000000000 --- a/data/wildPokemon/safarizone2.asm +++ /dev/null @@ -1,14 +0,0 @@ -ZoneMons2: - db $1E - db 36,NIDORAN_M - db 14,NIDORAN_F - db 20,EXEGGCUTE - db 25,RHYHORN - db 23,NIDORINA - db 28,KANGASKHAN - db 16,CUBONE - db 33,KANGASKHAN - db 25,SCYTHER - db 15,PINSIR - db $00 - diff --git a/data/wildPokemon/safarizone3.asm b/data/wildPokemon/safarizone3.asm deleted file mode 100755 index 3424f1d7b..000000000 --- a/data/wildPokemon/safarizone3.asm +++ /dev/null @@ -1,14 +0,0 @@ -ZoneMons3: - db $1E - db 29,NIDORAN_M - db 21,NIDORAN_F - db 22,EXEGGCUTE - db 21,TAUROS - db 32,NIDORINO - db 19,CUBONE - db 26,EXEGGCUTE - db 24,MAROWAK - db 25,PINSIR - db 27,TANGELA - db $00 - diff --git a/data/wildPokemon/safarizonecenter.asm b/data/wildPokemon/safarizonecenter.asm deleted file mode 100755 index e563fff22..000000000 --- a/data/wildPokemon/safarizonecenter.asm +++ /dev/null @@ -1,14 +0,0 @@ -ZoneMonsCenter: - db $1E - db 14,NIDORAN_M - db 36,NIDORAN_F - db 24,EXEGGCUTE - db 20,RHYHORN - db 23,NIDORINO - db 27,PARASECT - db 27,PARAS - db 32,PARASECT - db 22,TANGELA - db 7,CHANSEY - db $00 - diff --git a/data/wildPokemon/seafoamisland1.asm b/data/wildPokemon/seafoamisland1.asm deleted file mode 100755 index f4799c128..000000000 --- a/data/wildPokemon/seafoamisland1.asm +++ /dev/null @@ -1,14 +0,0 @@ -IslandMons1: - db $0F - db 18,ZUBAT - db 25,KRABBY - db 27,KRABBY - db 27,ZUBAT - db 36,ZUBAT - db 28,SLOWPOKE - db 30,SLOWPOKE - db 9,ZUBAT - db 27,GOLBAT - db 36,GOLBAT - db $00 - diff --git a/data/wildPokemon/seafoamislandb1.asm b/data/wildPokemon/seafoamislandb1.asm deleted file mode 100755 index 2f0f255eb..000000000 --- a/data/wildPokemon/seafoamislandb1.asm +++ /dev/null @@ -1,14 +0,0 @@ -IslandMonsB1: - db $0A - db 27,ZUBAT - db 26,KRABBY - db 36,ZUBAT - db 28,KRABBY - db 27,GOLBAT - db 29,SLOWPOKE - db 18,ZUBAT - db 28,KINGLER - db 22,SEEL - db 26,SEEL - db $00 - diff --git a/data/wildPokemon/seafoamislandb2.asm b/data/wildPokemon/seafoamislandb2.asm deleted file mode 100755 index f3a23b079..000000000 --- a/data/wildPokemon/seafoamislandb2.asm +++ /dev/null @@ -1,14 +0,0 @@ -IslandMonsB2: - db $0A - db 27,ZUBAT - db 27,KRABBY - db 36,ZUBAT - db 27,GOLBAT - db 28,KINGLER - db 24,SEEL - db 29,KRABBY - db 36,GOLBAT - db 31,SLOWPOKE - db 31,SLOWBRO - db $00 - diff --git a/data/wildPokemon/seafoamislandb3.asm b/data/wildPokemon/seafoamislandb3.asm deleted file mode 100755 index ddf6acd36..000000000 --- a/data/wildPokemon/seafoamislandb3.asm +++ /dev/null @@ -1,25 +0,0 @@ -IslandMonsB3: - db $0A - db 27,GOLBAT - db 36,ZUBAT - db 29,KRABBY - db 27,ZUBAT - db 30,KINGLER - db 26,SEEL - db 31,KRABBY - db 30,SEEL - db 28,DEWGONG - db 32,DEWGONG - - db $05 - db 25,TENTACOOL - db 30,TENTACOOL - db 20,TENTACOOL - db 30,STARYU - db 35,TENTACOOL - db 30,STARYU - db 40,TENTACOOL - db 30,STARYU - db 30,STARYU - db 30,STARYU - diff --git a/data/wildPokemon/seafoamislandb4.asm b/data/wildPokemon/seafoamislandb4.asm deleted file mode 100755 index dd842ddad..000000000 --- a/data/wildPokemon/seafoamislandb4.asm +++ /dev/null @@ -1,25 +0,0 @@ -IslandMonsB4: - db $0A - db 36,GOLBAT - db 36,ZUBAT - db 30,KRABBY - db 32,KINGLER - db 28,SEEL - db 32,SEEL - db 27,GOLBAT - db 45,ZUBAT - db 30,DEWGONG - db 34,DEWGONG - - db $05 - db 25,TENTACOOL - db 30,TENTACOOL - db 20,TENTACOOL - db 30,STARYU - db 35,TENTACOOL - db 30,STARYU - db 40,TENTACOOL - db 30,STARYU - db 30,STARYU - db 30,STARYU - diff --git a/data/wildPokemon/victoryroad1.asm b/data/wildPokemon/victoryroad1.asm deleted file mode 100755 index f3e029fa0..000000000 --- a/data/wildPokemon/victoryroad1.asm +++ /dev/null @@ -1,14 +0,0 @@ -PlateauMons1: - db $0F - db 26,GEODUDE - db 31,GEODUDE - db 36,GEODUDE - db 39,ZUBAT - db 44,ZUBAT - db 41,GEODUDE - db 43,ONIX - db 45,ONIX - db 41,GRAVELER - db 47,GRAVELER - db $00 - diff --git a/data/wildPokemon/victoryroad2.asm b/data/wildPokemon/victoryroad2.asm deleted file mode 100755 index fcd910d28..000000000 --- a/data/wildPokemon/victoryroad2.asm +++ /dev/null @@ -1,14 +0,0 @@ -PlateauMons2: - db $0A - db 31,GEODUDE - db 36,GEODUDE - db 41,GEODUDE - db 44,ZUBAT - db 39,GOLBAT - db 44,GRAVELER - db 45,ONIX - db 47,ONIX - db 39,MACHOKE - db 42,MACHOKE - db $00 - diff --git a/data/wildPokemon/victoryroad3.asm b/data/wildPokemon/victoryroad3.asm deleted file mode 100755 index ed4d773b7..000000000 --- a/data/wildPokemon/victoryroad3.asm +++ /dev/null @@ -1,14 +0,0 @@ -PlateauMons3: - db $0F - db 36,GEODUDE - db 44,GOLBAT - db 41,GEODUDE - db 49,ONIX - db 46,GEODUDE - db 41,GRAVELER - db 42,MACHOKE - db 45,MACHOKE - db 47,GRAVELER - db 47,GRAVELER - db $00 - diff --git a/data/wildPokemon/viridianforest.asm b/data/wildPokemon/viridianforest.asm deleted file mode 100755 index eb4889a7d..000000000 --- a/data/wildPokemon/viridianforest.asm +++ /dev/null @@ -1,14 +0,0 @@ -ForestMons: - db $19 - db 3,CATERPIE - db 4,METAPOD - db 4,CATERPIE - db 5,CATERPIE - db 4,PIDGEY - db 6,PIDGEY - db 6,CATERPIE - db 6,METAPOD - db 8,PIDGEY - db 9,PIDGEOTTO - db $00 - diff --git a/data/wild_mons.asm b/data/wild_mons.asm deleted file mode 100755 index ac4a88979..000000000 --- a/data/wild_mons.asm +++ /dev/null @@ -1,323 +0,0 @@ -WildDataPointers: - dw NoMons ; PALLET_TOWN - dw NoMons ; VIRIDIAN_CITY - dw NoMons ; PEWTER_CITY - dw NoMons ; CERULEAN_CITY - dw NoMons ; LAVENDER_TOWN - dw NoMons ; VERMILION_CITY - dw NoMons ; CELADON_CITY - dw NoMons ; FUCHSIA_CITY - dw NoMons ; CINNABAR_ISLAND - dw NoMons ; INDIGO_PLATEAU - dw NoMons ; SAFFRON_CITY - dw NoMons ; unused - dw Route1Mons ; ROUTE_1 - dw Route2Mons ; ROUTE_2 - dw Route3Mons ; ROUTE_3 - dw Route4Mons ; ROUTE_4 - dw Route5Mons ; ROUTE_5 - dw Route6Mons ; ROUTE_6 - dw Route7Mons ; ROUTE_7 - dw Route8Mons ; ROUTE_8 - dw Route9Mons ; ROUTE_9 - dw Route10Mons ; ROUTE_10 - dw Route11Mons ; ROUTE_11 - dw Route12Mons ; ROUTE_12 - dw Route13Mons ; ROUTE_13 - dw Route14Mons ; ROUTE_14 - dw Route15Mons ; ROUTE_15 - dw Route16Mons ; ROUTE_16 - dw Route17Mons ; ROUTE_17 - dw Route18Mons ; ROUTE_18 - dw Route19Mons ; ROUTE_19 - dw Route20Mons ; ROUTE_20 - dw Route21Mons ; ROUTE_21 - dw Route22Mons ; ROUTE_22 - dw Route23Mons ; ROUTE_23 - dw Route24Mons ; ROUTE_24 - dw Route25Mons ; ROUTE_25 - dw NoMons ; REDS_HOUSE_1F - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw ForestMons ; ViridianForest - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw MoonMons1 - dw MoonMonsB1 - dw MoonMonsB2 - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw TunnelMonsB1 - dw PowerPlantMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw PlateauMons1 - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw TowerMons1 - dw TowerMons2 - dw TowerMons3 - dw TowerMons4 - dw TowerMons5 - dw TowerMons6 - dw TowerMons7 - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw IslandMonsB1 - dw IslandMonsB2 - dw IslandMonsB3 - dw IslandMonsB4 - dw NoMons - dw NoMons - dw MansionMons1 - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw IslandMons1 - dw NoMons - dw PlateauMons2 - dw NoMons - dw NoMons - dw CaveMons - dw PlateauMons3 - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw MansionMons2 - dw MansionMons3 - dw MansionMonsB1 - dw ZoneMons1 - dw ZoneMons2 - dw ZoneMons3 - dw ZoneMonsCenter - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw DungeonMons2 - dw DungeonMonsB1 - dw DungeonMons1 - dw NoMons - dw NoMons - dw NoMons - dw TunnelMonsB2 - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw NoMons - dw $FFFF - -; wild pokemon data is divided into two parts. -; first part: pokemon found in grass -; second part: pokemon found while surfing -; each part goes as follows: - ; if first byte == 00, then - ; no wild pokemon on this map - ; if first byte != 00, then - ; first byte is encounter rate - ; followed by 20 bytes: - ; level, species (ten times) - -INCLUDE "data/wildPokemon/nomons.asm" -INCLUDE "data/wildPokemon/route1.asm" -INCLUDE "data/wildPokemon/route2.asm" -INCLUDE "data/wildPokemon/route22.asm" -INCLUDE "data/wildPokemon/viridianforest.asm" -INCLUDE "data/wildPokemon/route3.asm" -INCLUDE "data/wildPokemon/mtmoon1.asm" -INCLUDE "data/wildPokemon/mtmoonb1.asm" -INCLUDE "data/wildPokemon/mtmoonb2.asm" -INCLUDE "data/wildPokemon/route4.asm" -INCLUDE "data/wildPokemon/route24.asm" -INCLUDE "data/wildPokemon/route25.asm" -INCLUDE "data/wildPokemon/route9.asm" -INCLUDE "data/wildPokemon/route5.asm" -INCLUDE "data/wildPokemon/route6.asm" -INCLUDE "data/wildPokemon/route11.asm" -INCLUDE "data/wildPokemon/rocktunnel1.asm" -INCLUDE "data/wildPokemon/rocktunnel2.asm" -INCLUDE "data/wildPokemon/route10.asm" -INCLUDE "data/wildPokemon/route12.asm" -INCLUDE "data/wildPokemon/route8.asm" -INCLUDE "data/wildPokemon/route7.asm" -INCLUDE "data/wildPokemon/pokemontower1.asm" -INCLUDE "data/wildPokemon/pokemontower2.asm" -INCLUDE "data/wildPokemon/pokemontower3.asm" -INCLUDE "data/wildPokemon/pokemontower4.asm" -INCLUDE "data/wildPokemon/pokemontower5.asm" -INCLUDE "data/wildPokemon/pokemontower6.asm" -INCLUDE "data/wildPokemon/pokemontower7.asm" -INCLUDE "data/wildPokemon/route13.asm" -INCLUDE "data/wildPokemon/route14.asm" -INCLUDE "data/wildPokemon/route15.asm" -INCLUDE "data/wildPokemon/route16.asm" -INCLUDE "data/wildPokemon/route17.asm" -INCLUDE "data/wildPokemon/route18.asm" -INCLUDE "data/wildPokemon/safarizonecenter.asm" -INCLUDE "data/wildPokemon/safarizone1.asm" -INCLUDE "data/wildPokemon/safarizone2.asm" -INCLUDE "data/wildPokemon/safarizone3.asm" -INCLUDE "data/wildPokemon/route19.asm" -INCLUDE "data/wildPokemon/route20.asm" -INCLUDE "data/wildPokemon/seafoamisland1.asm" -INCLUDE "data/wildPokemon/seafoamislandb1.asm" -INCLUDE "data/wildPokemon/seafoamislandb2.asm" -INCLUDE "data/wildPokemon/seafoamislandb3.asm" -INCLUDE "data/wildPokemon/seafoamislandb4.asm" -INCLUDE "data/wildPokemon/mansion1.asm" -INCLUDE "data/wildPokemon/mansion2.asm" -INCLUDE "data/wildPokemon/mansion3.asm" -INCLUDE "data/wildPokemon/mansionb1.asm" -INCLUDE "data/wildPokemon/route21.asm" -INCLUDE "data/wildPokemon/ceruleancave1.asm" -INCLUDE "data/wildPokemon/ceruleancave2.asm" -INCLUDE "data/wildPokemon/ceruleancaveb1.asm" -INCLUDE "data/wildPokemon/powerplant.asm" -INCLUDE "data/wildPokemon/route23.asm" -INCLUDE "data/wildPokemon/victoryroad2.asm" -INCLUDE "data/wildPokemon/victoryroad3.asm" -INCLUDE "data/wildPokemon/victoryroad1.asm" -INCLUDE "data/wildPokemon/diglettscave.asm" diff --git a/data/yes_no_menu_strings.asm b/data/yes_no_menu_strings.asm new file mode 100644 index 000000000..db2eeb4c6 --- /dev/null +++ b/data/yes_no_menu_strings.asm @@ -0,0 +1,44 @@ +two_option_menu: MACRO + db \1, \2, \3 + dw \4 +ENDM + +TwoOptionMenuStrings: +; entries correspond to *_MENU constants + ; width, height, blank line before first menu item?, text pointer + two_option_menu 4, 3, FALSE, .YesNoMenu + two_option_menu 6, 3, FALSE, .NorthWestMenu + two_option_menu 6, 3, FALSE, .SouthEastMenu + two_option_menu 6, 3, FALSE, .YesNoMenu + two_option_menu 6, 3, FALSE, .NorthEastMenu + two_option_menu 7, 3, FALSE, .TradeCancelMenu + two_option_menu 7, 4, TRUE, .HealCancelMenu + two_option_menu 4, 3, FALSE, .NoYesMenu + +.NoYesMenu: + db "NO" + next "YES@" + +.YesNoMenu: + db "YES" + next "NO@" + +.NorthWestMenu: + db "NORTH" + next "WEST@" + +.SouthEastMenu: + db "SOUTH" + next "EAST@" + +.NorthEastMenu: + db "NORTH" + next "EAST@" + +.TradeCancelMenu: + db "TRADE" + next "CANCEL@" + +.HealCancelMenu: + db "HEAL" + next "CANCEL@" diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md index a82a52a80..cb4cfc819 100644 --- a/docs/bugs_and_glitches.md +++ b/docs/bugs_and_glitches.md @@ -23,7 +23,7 @@ Fixes are written in the `diff` format. If you've used Git before, this should l This bug (or feature!) results in all options being shifted left or right if the respective direction is pressed on the same frame the options menu is opened. The bug also exists in pokegold and pokecrystal. -**Fix:** Update [engine/menu/options.asm](/engine/menu/options.asm) +**Fix:** Update [engine/menus/options.asm](/engine/menus/options.asm) ```diff DisplayOptionMenu_: diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm deleted file mode 100755 index 71a98c597..000000000 --- a/engine/HoF_room_pc.asm +++ /dev/null @@ -1,323 +0,0 @@ -HallOfFamePC: - callab AnimateHallOfFame - call ClearScreen - ld c, 100 - call DelayFrames - - call DisableLCD - ld a, $a7 - ld [rWX], a - xor a - ld [rSCX], a - ld [rSCY], a - ld [hSCX], a - ld [hSCY], a - ld [hWY], a - ld [rWY], a - call CreditsLoadFont - coord hl, 0, 0 - call FillFourRowsWithBlack - coord hl, 0, 14 - call FillFourRowsWithBlack - ld a, %11000000 - ld [rBGP], a - call UpdateGBCPal_BGP - call EnableLCD - call StopAllMusic - ld hl, vBGMap1 - call CreditsCopyTileMapToVRAM - ld hl, vBGMap0 - call CreditsCopyTileMapToVRAM - ld c, BANK(Music_Credits) - ld a, MUSIC_CREDITS - call PlayMusic - ld c, 128 - call DelayFrames - xor a - ld [wHoFMonSpecies], a - ld [wNumCreditsMonsDisplayed], a - jp Credits - -FadeInCreditsText: - ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a - ld hl, HoFGBPalettes - ld b, 4 -.loop - ld a, [hli] - ld [rBGP], a - call UpdateGBCPal_BGP - ld c, 5 - call DelayFrames - dec b - jr nz, .loop - ret - -HoFGBPalettes: - db %11000000 - db %11010000 - db %11100000 - db %11110000 - -DisplayCreditsMon: - ld hl, vBGMap1 - call CreditsCopyTileMapToVRAM - xor a - ld [H_AUTOBGTRANSFERENABLED], a - ld hl, rLCDC - set 3, [hl] - call SaveScreenTilesToBuffer2 - call FillMiddleOfScreenWithWhite - call GetNextCreditsMon - ld hl, vBGMap0 + 12 - call CreditsCopyTileMapToVRAM - xor a - ld [H_AUTOBGTRANSFERENABLED], a - call LoadScreenTilesFromBuffer2DisableBGTransfer - ld hl, vBGMap0 - call CreditsCopyTileMapToVRAM - ld a, %11111100 ; make the mon a black silhouette - ld [rBGP], a - call UpdateGBCPal_BGP - ld hl, rLCDC - res 3, [hl] - ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a - ld b, 0 - ld c, 10 - call ScrollCreditsMonLeft - call FillLeftHalfOfScreenWithWhite - ld c, 10 - call ScrollCreditsMonLeft - call FillRightHalfOfScreenWithWhite - ld c, 8 - call ScrollCreditsMonLeft - ld a, %11000000 - ld [rBGP], a - call UpdateGBCPal_BGP - xor a - ld [hSCX], a - ret - -ScrollCreditsMonLeft: - ld a, b - ld [hSCX], a - add 8 - ld b, a - call DelayFrame - dec c - jr nz, ScrollCreditsMonLeft - ret - -GetNextCreditsMon: - ld hl, wNumCreditsMonsDisplayed - ld c, [hl] - inc [hl] - ld b, 0 - ld hl, CreditsMons - add hl, bc - ld a, [hl] - ld [wcf91], a - ld [wd0b5], a - coord hl, 8, 6 - call GetMonHeader - call LoadFrontSpriteByMonIndex - ret - -INCLUDE "data/credit_mons.asm" - -CreditsCopyTileMapToVRAM: - ld a, l - ld [H_AUTOBGTRANSFERDEST], a - ld a, h - ld [H_AUTOBGTRANSFERDEST + 1], a - ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a - jp Delay3 - -CreditsLoadFont: - call LoadFontTilePatterns - ld hl, vChars1 - ld bc, $40 * $10 - call ZeroMemory - - call LoadTextBoxTilePatterns - ld hl, vChars2 + $60 * $10 - ld bc, $10 * $10 - call ZeroMemory - - ld hl, vChars2 + $7e * $10 - ld bc, $1 * $10 - ld a, $ff - call FillMemory - ret - -ZeroMemory: -; zero bc bytes at hl - ld [hl], 0 - inc hl - inc hl - dec bc - ld a, b - or c - jr nz, ZeroMemory - ret - -FillFourRowsWithBlack: - ld bc, SCREEN_WIDTH * 4 - ld a, $7e - jp FillMemory - -FillMiddleOfScreenWithWhite: - coord hl, 0, 4 - ld bc, SCREEN_WIDTH * 10 - ld a, " " - jp FillMemory - -FillLeftHalfOfScreenWithWhite: - coord hl, 0, 4 - push bc - call FillHalfOfScreenWithWhite - pop bc - ret - -FillRightHalfOfScreenWithWhite: - coord hl, 10, 4 - push bc - call FillHalfOfScreenWithWhite - pop bc - ret - -FillHalfOfScreenWithWhite: - ld b, 10 - ld c, 10 - ld a, " " -.loop - push bc - push hl -.innerLoop - ld [hli], a - dec c - jr nz, .innerLoop - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .loop - ret - -Credits: ; Roll credits - ld de, CreditsOrder - push de -.nextCreditsScreen - pop de - coord hl, 9, 6 - push hl - call FillMiddleOfScreenWithWhite - pop hl -.nextCreditsCommand - ld a, [de] - inc de - push de - cp $ff - jr z, .fadeInTextAndShowMon - cp $fe - jr z, .showTextAndShowMon - cp $fd - jr z, .fadeInText - cp $fc - jr z, .showText - cp $fb - jr z, .showCopyrightText - cp $fa - jr z, .showTheEnd - call PlaceCreditsText - pop de - jr .nextCreditsCommand - -.showCopyrightText - callba LoadCopyrightTiles - pop de - jr .nextCreditsCommand - - -.fadeInTextAndShowMon - call FadeInCreditsText - ld c, 102 - jr .next1 - -.showTextAndShowMon - ld c, 122 -.next1 - call DelayFrames - call DisplayCreditsMon - jr .nextCreditsScreen - -.fadeInText - call FadeInCreditsText - ld c, 132 - jr .next2 - -.showText - ld c, 152 -.next2 - call DelayFrames - jr .nextCreditsScreen - -.showTheEnd - call ShowTheEndGFX - pop de - ret - -ShowTheEndGFX: - ld c, 24 - call DelayFrames - call FillMiddleOfScreenWithWhite - ld de, TheEndGfx - ld hl, vChars2 + $600 - lb bc, BANK(TheEndGfx), (TheEndGfxEnd - TheEndGfx) / $10 - call CopyVideoData - coord hl, 4, 8 - ld de, TheEndTextString - call PlaceString - coord hl, 4, 9 - inc de - call PlaceString - jp FadeInCreditsText - -TheEndTextString: -; "T H E E N D" - db $60, " ", $62, " ", $64, " ", $64, " ", $66, " ", $68, "@" - db $61, " ", $63, " ", $65, " ", $65, " ", $67, " ", $69, "@" - -PlaceCreditsText: - push hl - push hl - ld hl, CreditsTextPointers - ld c, a - ld b, 0 - add hl, bc - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - pop hl - ld a, [de] - inc de - ld c, a - ld b, $ff - add hl, bc - call PlaceString - pop hl - ld bc, SCREEN_WIDTH * 2 - add hl, bc - ret - -INCLUDE "data/credits_order.asm" - -INCLUDE "text/credits_text.asm" - -TheEndGfx: - INCBIN "gfx/theend.2bpp" -TheEndGfxEnd: diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 9c0e281fd..8eb328371 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -1,9 +1,9 @@ INCLUDE "engine/pikachu_pcm.asm" INCLUDE "engine/overworld/advance_player_sprite.asm" -INCLUDE "engine/black_out.asm" +INCLUDE "engine/events/black_out.asm" -SetMapSpecificScriptFlagsOnMapReload: +SetMapSpecificScriptFlagsOnMapReload:: ld a, [wCurMap] cp VERMILION_GYM ; ??? new thing about verm gym? jr z, .verm_gym @@ -65,7 +65,7 @@ BeachHouse_Block: Func_f0a54: ret -LoadUnusedBluesHouseMissableObjectData: +LoadUnusedBluesHouseMissableObjectData:: ; referenced in an unused function ld hl, .MissableObjectsMaps .loop @@ -112,7 +112,7 @@ TryApplyPikachuMovementData: ret nz push hl push bc - callab GetPikachuFacingDirectionAndReturnToE + callfar GetPikachuFacingDirectionAndReturnToE pop bc pop hl ld a, b @@ -123,12 +123,12 @@ TryApplyPikachuMovementData: push af ld a, $ff ld [wUpdateSpritesEnabled], a - callab LoadPikachuShadowIntoVRAM + callfar LoadPikachuShadowIntoVRAM pop af ld [wUpdateSpritesEnabled], a pop hl call ApplyPikachuMovementData - callab RefreshPikachuFollow + callfar RefreshPikachuFollow ret Pic_f0abf: @@ -140,7 +140,7 @@ INCBIN "gfx/pikachu/unknown_f0cf4.pic" GFX_f0d82: INCBIN "gfx/pikachu/unknown_f0d82.2bpp" -PokecenterChanseyText: +PokecenterChanseyText:: ld hl, NurseChanseyText call PrintText ld a, CHANSEY @@ -149,10 +149,10 @@ PokecenterChanseyText: ret NurseChanseyText: - TX_FAR _NurseChanseyText - db "@" + text_far _NurseChanseyText + text_end -INCLUDE "engine/HoF_room_pc.asm" +INCLUDE "engine/movie/credits.asm" INCLUDE "scripts/ViridianCity2.asm" INCLUDE "scripts/VermilionCity2.asm" INCLUDE "scripts/CeladonCity2.asm" @@ -173,11 +173,11 @@ INCLUDE "scripts/SafariZoneGate2.asm" INCLUDE "scripts/CinnabarGym3.asm" INCLUDE "scripts/MtMoonPokecenter2.asm" -INCLUDE "data/mapHeaders/BeachHouse.asm" +INCLUDE "data/maps/headers/BeachHouse.asm" INCLUDE "scripts/BeachHouse.asm" BeachHouse_Blocks: INCBIN "maps/BeachHouse.blk" -INCLUDE "data/mapObjects/BeachHouse.asm" +INCLUDE "data/maps/objects/BeachHouse.asm" INCLUDE "scripts/BeachHouse2.asm" INCLUDE "scripts/BillsHouse2.asm" diff --git a/engine/bank3d.asm b/engine/bank3d.asm index 6d0b3a50c..e929e44e0 100644 --- a/engine/bank3d.asm +++ b/engine/bank3d.asm @@ -4,7 +4,7 @@ INCLUDE "engine/battle/unused_stats_functions.asm" INCLUDE "engine/battle/scroll_draw_trainer_pic.asm" StarterPikachuBattleEntranceAnimation: - coord hl, 0, 5 + hlcoord 0, 5 ld c, 0 .loop1 inc c @@ -60,14 +60,14 @@ ModifyPikachuHappiness:: cp PIKAHAPPY_WALKING jr z, .checkanywhereinparty push de - callab IsThisPartymonStarterPikachu_Party + callfar IsThisPartymonStarterPikachu_Party pop de ret nc jr .proceed .checkanywhereinparty push de - callab IsStarterPikachuInOurParty + callfar IsStarterPikachuInOurParty pop de ret nc @@ -172,9 +172,9 @@ PikachuMoods: db $6c ; Unknown (d = 10) db $00 ; Unknown (d = 11) -RedPicBack: INCBIN "pic/trainer/redb.pic" -OldManPic: INCBIN "pic/trainer/oldman.pic" -ProfOakPicBack: INCBIN "pic/ytrainer/prof.oakb.pic" +RedPicBack: INCBIN "gfx/player/redb.pic" +OldManPic: INCBIN "gfx/battle/oldman.pic" +ProfOakPicBack: INCBIN "gfx/battle/prof.oakb.pic" LoadYellowTitleScreenGFX: ld hl, PokemonLogoGraphics @@ -200,35 +200,35 @@ LoadYellowTitleScreenGFX: ret TitleScreen_PlacePokemonLogo: - coord hl, 2, 1 + hlcoord 2, 1 ld de, TitleScreenPokemonLogoTilemap lb bc, 7, 16 call Bank3D_CopyBox ret TitleScreen_PlacePikaSpeechBubble: - coord hl, 6, 4 + hlcoord 6, 4 ld de, TitleScreenPikaBubbleTilemap lb bc, 4, 7 call Bank3D_CopyBox - coord hl, 9, 8 + hlcoord 9, 8 ld [hl], $64 inc hl ld [hl], $65 ret TitleScreen_PlacePikachu: - coord hl, 4, 8 + hlcoord 4, 8 ld de, TitleScreenPikachuTilemap lb bc, 9, 12 call Bank3D_CopyBox - coord hl, 16, 10 + hlcoord 16, 10 ld [hl], $96 - coord hl, 16, 11 + hlcoord 16, 11 ld [hl], $9d - coord hl, 16, 12 + hlcoord 16, 12 ld [hl], $a7 - coord hl, 16, 13 + hlcoord 16, 13 ld [hl], $b1 ld hl, TitleScreenPikachuEyesOAMData ld de, wOAMBuffer @@ -298,45 +298,45 @@ TitleScreenPikachuTilemap: db $00, $b9, $ba, $8a, $8a, $8a, $8a, $8a, $8a, $bb, $bc, $00 db $00, $00, $bd, $8a, $8a, $8a, $8a, $8a, $8a, $be, $bf, $00 -PokemonLogoGraphics: INCBIN "gfx/pokemon_logo.2bpp" +PokemonLogoGraphics: INCBIN "gfx/title/pokemon_logo.2bpp" PokemonLogoGraphicsEnd: YellowLogoGraphics: INCBIN "gfx/yellow_titlescreen.2bpp" YellowLogoGraphicsEnd: -INCLUDE "engine/menu/link_menu.asm" +INCLUDE "engine/menus/link_menu.asm" HandleMenuInputDouble: xor a ld [wPartyMenuAnimMonEnabled], a HandleMenuInputPokemonSelectionDouble: - ld a, [H_DOWNARROWBLINKCNT1] + ldh a, [hDownArrowBlinkCount1] push af - ld a, [H_DOWNARROWBLINKCNT2] + ldh a, [hDownArrowBlinkCount2] push af ; save existing values on stack xor a - ld [H_DOWNARROWBLINKCNT1], a ; blinking down arrow timing value 1 + ldh [hDownArrowBlinkCount1], a ; blinking down arrow timing value 1 ld a, $06 - ld [H_DOWNARROWBLINKCNT2], a ; blinking down arrow timing value 2 + ldh [hDownArrowBlinkCount2], a ; blinking down arrow timing value 2 .loop1 xor a ld [wAnimCounter], a ; counter for pokemon shaking animation call .UpdateCursorTile call JoypadLowSensitivity - ld a, [hJoy5] + ldh a, [hJoy5] and a ; was a key pressed? jr nz, .keyPressed pop af - ld [H_DOWNARROWBLINKCNT2], a + ldh [hDownArrowBlinkCount2], a pop af - ld [H_DOWNARROWBLINKCNT1], a ; restore previous values + ldh [hDownArrowBlinkCount1], a ; restore previous values xor a ld [wMenuWrappingEnabled], a ; disable menu wrapping ret .keyPressed xor a ld [wCheckFor180DegreeTurn], a - ld a, [hJoy5] + ldh a, [hJoy5] ld b, a bit 6, a ; pressed Up key? jr z, .checkIfDownPressed @@ -365,7 +365,7 @@ HandleMenuInputPokemonSelectionDouble: and b ; does the menu care about any of the pressed keys? jp z, .loop1 .checkIfAButtonOrBButtonPressed - ld a, [hJoy5] + ldh a, [hJoy5] and A_BUTTON | B_BUTTON jr z, .skipPlayingSound .AButtonOrBButtonPressed @@ -373,17 +373,17 @@ HandleMenuInputPokemonSelectionDouble: call PlaySound ; play sound .skipPlayingSound pop af - ld [H_DOWNARROWBLINKCNT2], a + ldh [hDownArrowBlinkCount2], a pop af - ld [H_DOWNARROWBLINKCNT1], a ; restore previous values - ld a, [hJoy5] + ldh [hDownArrowBlinkCount1], a ; restore previous values + ldh a, [hJoy5] ret .UpdateCursorTile: ld a, [wTopMenuItemY] and a jr z, .asm_f5ac0 - coord hl, 0, 0 + hlcoord 0, 0 ld bc, SCREEN_WIDTH .loop add hl, bc @@ -439,11 +439,7 @@ INCLUDE "engine/overworld/field_move_messages.asm" INCLUDE "engine/items/inventory.asm" -TrainerInfoTextBoxTileGraphics: INCBIN "gfx/trainer_info.2bpp" -TrainerInfoTextBoxTileGraphicsEnd: -BlankLeaderNames: INCBIN "gfx/blank_leader_names.2bpp" -CircleTile: INCBIN "gfx/circle_tile.2bpp" -BadgeNumbersTileGraphics: INCBIN "gfx/badge_numbers.2bpp" +INCLUDE "gfx/trainer_card.asm" ReadSuperRodData: ld a, [wCurMap] @@ -485,11 +481,11 @@ GenerateRandomFishingEncounter: ld d, [hl] ret -INCLUDE "data/super_rod.asm" +INCLUDE "data/wild/super_rod.asm" INCLUDE "engine/battle/bank3d_battle.asm" INCLUDE "engine/items/tm_prices.asm" -INCLUDE "engine/multiply_divide.asm" -INCLUDE "engine/give_pokemon.asm" +INCLUDE "engine/math/multiply_divide.asm" +INCLUDE "engine/events/give_pokemon.asm" INCLUDE "engine/battle/get_trainer_name.asm" -INCLUDE "engine/random.asm" +INCLUDE "engine/math/random.asm" INCLUDE "engine/predefs.asm" diff --git a/engine/bank3f.asm b/engine/bank3f.asm index 23eadbb16..c26e98347 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -1,6 +1,6 @@ -INCLUDE "data/map_songs.asm" -INCLUDE "data/map_header_pointers.asm" -INCLUDE "data/map_header_banks.asm" +INCLUDE "data/maps/songs.asm" +INCLUDE "data/maps/map_header_pointers.asm" +INCLUDE "data/maps/map_header_banks.asm" INCLUDE "engine/pikachu_follow.asm" INCLUDE "engine/pikachu_status.asm" INCLUDE "engine/pikachu_emotions.asm" @@ -16,8 +16,8 @@ SandshrewSprite: INCBIN "gfx/sprites/sandshrew.2bpp" OddishSprite: INCBIN "gfx/sprites/oddish.2bpp" BulbasaurSprite: INCBIN "gfx/sprites/bulbasaur.2bpp" JigglypuffSprite: INCBIN "gfx/sprites/jigglypuff.2bpp" -Clefairy2Sprite: INCBIN "gfx/sprites/clefairy2.2bpp" +ClefairySprite: INCBIN "gfx/sprites/clefairy.2bpp" ChanseySprite: INCBIN "gfx/sprites/chansey.2bpp" -SurfingPikachuSprite: INCBIN "gfx/sprites/surfing_pikachu.2bpp" +SurfingPikachuSprite:: INCBIN "gfx/sprites/surfing_pikachu.2bpp" JessieSprite: INCBIN "gfx/sprites/jessie.2bpp" JamesSprite: INCBIN "gfx/sprites/james.2bpp" diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index de1e67b94..4508dbaad 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -19,11 +19,11 @@ DrawFrameBlock: ld [wdef5], a ld a, [wSubAnimTransform] dec a - jr z, .flipHorizontalAndVertical ; 1 + jr z, .flipHorizontalAndVertical ; SUBANIMTYPE_HVFLIP dec a - jp z, .flipHorizontalTranslateDown ; 2 + jp z, .flipHorizontalTranslateDown ; SUBANIMTYPE_HFLIP dec a - jr z, .flipBaseCoords ; 3 + jr z, .flipBaseCoords ; SUBANIMTYPE_COORDFLIP .noTransformation ld a, [wBaseCoordY] add [hl] @@ -45,7 +45,7 @@ DrawFrameBlock: ld b, a ld a, 168 sub b ; flip X base coordinate -.finishCopying ; finish copying values to OAM (when [wSubAnimTransform] not 1 or 2) +.finishCopying ; finish copying values to OAM (when subanimation not transformed) add [hl] ; X offset ld [de], a ; store X cp 88 @@ -159,15 +159,15 @@ DrawFrameBlock: jp nz, .loop ; go back up if there are more tiles to draw .afterDrawingTiles ld a, [wFBMode] - cp 2 + cp FRAMEBLOCKMODE_02 jr z, .advanceFrameBlockDestAddr; skip delay and don't clean OAM buffer ld a, [wSubAnimFrameDelay] ld c, a call DelayFrames ld a, [wFBMode] - cp 3 + cp FRAMEBLOCKMODE_03 jr z, .advanceFrameBlockDestAddr ; skip cleaning OAM buffer - cp 4 + cp FRAMEBLOCKMODE_04 jr z, .done ; skip cleaning OAM buffer and don't advance the frame block destination address ld a, [wAnimationID] cp GROWL @@ -190,7 +190,7 @@ DrawFrameBlock: PlayAnimation: xor a - ld [$FF8B], a ; it looks like nothing reads this + ldh [hROMBankTemp], a ; it looks like nothing reads this ld [wSubAnimTransform], a ld a, [wAnimationID] ; get animation number dec a @@ -204,9 +204,9 @@ PlayAnimation: ld l, a .animationLoop ld a, [hli] - cp $FF + cp -1 jr z, .AnimationOver - cp $C0 ; is this subanimation or a special effect? + cp FIRST_SE_ID ; is this subanimation or a special effect? jr c, .playSubanimation .doSpecialEffect ld c, a @@ -221,7 +221,7 @@ PlayAnimation: jr .searchSpecialEffectTableLoop .foundMatch ld a, [hli] - cp $FF ; is there a sound to play? + cp NO_MOVE - 1 ; is there a sound to play? jr z, .skipPlayingSound ld [wAnimSoundID], a ; store sound push hl @@ -268,16 +268,16 @@ PlayAnimation: ld l, c ld h, b push hl - ld a, [rOBP0] + ldh a, [rOBP0] push af ld a, [wAnimPalette] - ld [rOBP0], a + ldh [rOBP0], a call UpdateGBCPal_OBP0 call LoadAnimationTileset call LoadSubanimation call PlaySubanimation pop af - ld [rOBP0], a + ldh [rOBP0], a call UpdateGBCPal_OBP0 .nextAnimationCommand pop hl @@ -296,11 +296,11 @@ LoadSubanimation: ld d, a ; de = address of subanimation ld a, [de] ld b, a - and 31 + and %00011111 ld [wSubAnimCounter], a ; number of frame blocks ld a, b and %11100000 - cp 5 << 5 ; is subanimation type 5? + cp SUBANIMTYPE_ENEMY << 5 jr nz, .isNotType5 .isType5 call GetSubanimationTransform2 @@ -312,7 +312,7 @@ LoadSubanimation: srl a swap a ld [wSubAnimTransform], a - cp 4 ; is the animation reversed? + cp SUBANIMTYPE_REVERSE ld hl, 0 jr nz, .storeSubentryAddr ; if the animation is reversed, then place the initial subentry address at the end of the list of subentries @@ -332,27 +332,27 @@ LoadSubanimation: ld [wSubAnimSubEntryAddr + 1], a ret -; called if the subanimation type is not 5 -; sets the transform to 0 (i.e. no transform) if it's the player's turn +; called if the subanimation type is not SUBANIMTYPE_ENEMY +; sets the transform to SUBANIMTYPE_NORMAL if it's the player's turn ; sets the transform to the subanimation type if it's the enemy's turn GetSubanimationTransform1: ld b, a - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a ld a, b ret nz - xor a + xor a ; SUBANIMTYPE_NORMAL << 5 ret -; called if the subanimation type is 5 -; sets the transform to 2 (i.e. horizontal and vertical flip) if it's the player's turn -; sets the transform to 0 (i.e. no transform) if it's the enemy's turn +; called if the subanimation type is SUBANIMTYPE_ENEMY +; sets the transform to SUBANIMTYPE_HFLIP if it's the player's turn +; sets the transform to SUBANIMTYPE_NORMAL if it's the enemy's turn GetSubanimationTransform2: - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a - ld a, 2 << 5 + ld a, SUBANIMTYPE_HFLIP << 5 ret z - xor a + xor a ; SUBANIMTYPE_NORMAL << 5 ret ; loads tile patterns for battle animations @@ -370,33 +370,33 @@ LoadAnimationTileset: ld e, a ld a, [hl] ld d, a ; de = address of tileset - ld hl, vSprites + $310 + ld hl, vSprites tile $31 ld b, BANK(AnimationTileset1) ; ROM bank ld a, [wTempTilesetNumTiles] ld c, a ; number of tiles jp CopyVideoData ; load tileset -AnimationTilesetPointers: - db 79 ; number of tiles - dw AnimationTileset1 - db $FF - - db 79 ; number of tiles - dw AnimationTileset2 - db $FF +anim_tileset: MACRO + db \1 + dw \2 + db -1 ; padding +ENDM - db 64 ; number of tiles - dw AnimationTileset1 - db $FF +AnimationTilesetPointers: + ; number of tiles, gfx pointer + anim_tileset 79, AnimationTileset1 + anim_tileset 79, AnimationTileset2 + anim_tileset 64, AnimationTileset1 AnimationTileset1: - INCBIN "gfx/attack_anim_1.2bpp" + INCBIN "gfx/battle/attack_anim_1.2bpp" AnimationTileset2: - INCBIN "gfx/attack_anim_2.2bpp" + INCBIN "gfx/battle/attack_anim_2.2bpp" SlotMachineTiles2: - INCBIN "gfx/slotmachine2.2bpp" + INCBIN "gfx/slots/slots_2.2bpp" +SlotMachineTiles2End: MoveAnimation: push hl @@ -435,7 +435,7 @@ MoveAnimation: ld [wSubAnimSubEntryAddr], a ld [wUnusedD09B], a ld [wSubAnimTransform], a - dec a + dec a ; NO_MOVE - 1 ld [wAnimSoundID], a pop af pop bc @@ -445,11 +445,11 @@ MoveAnimation: ShareMoveAnimations: ; some moves just reuse animations from status conditions - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a ret z - ; opponent’s turn + ; opponent's turn ld a, [wAnimationID] @@ -484,10 +484,10 @@ PlayApplyingAttackAnimation: jp hl AnimationTypePointerTable: - dw ShakeScreenVertically ; enemy mon has used a damaging move without a side effect + dw ShakeScreenVertically ; enemy mon has used a damaging move without a side effect dw ShakeScreenHorizontallyHeavy ; enemy mon has used a damaging move with a side effect - dw ShakeScreenHorizontallySlow ; enemy mon has used a non-damaging move - dw BlinkEnemyMonSprite ; player mon has used a damaging move without a side effect + dw ShakeScreenHorizontallySlow ; enemy mon has used a non-damaging move + dw BlinkEnemyMonSprite ; player mon has used a damaging move without a side effect dw ShakeScreenHorizontallyLight ; player mon has used a damaging move with a side effect dw ShakeScreenHorizontallySlow2 ; player mon has used a non-damaging move @@ -521,18 +521,18 @@ AnimationShakeScreenHorizontallySlow: push bc push bc .loop1 - ld a, [rWX] + ldh a, [rWX] inc a - ld [rWX], a + ldh [rWX], a ld c, 2 call DelayFrames dec b jr nz, .loop1 pop bc .loop2 - ld a, [rWX] + ldh a, [rWX] dec a - ld [rWX], a + ldh [rWX], a ld c, 2 call DelayFrames dec b @@ -558,18 +558,18 @@ SetAnimationPalette: ld b, $f0 .next ld a, b - ld [rOBP0], a + ldh [rOBP0], a ld a, $6c - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 ret .notSGB ld a, $e4 ld [wAnimPalette], a - ld [rOBP0], a + ldh [rOBP0], a ld a, $6c - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 ret @@ -577,13 +577,13 @@ SetAnimationPalette: Func_78e98: call SaveScreenTilesToBuffer2 xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call ClearScreen ld h, vBGMap0 / $100 call WriteLowerByteOfBGMapAndEnableBGTransfer call Delay3 xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call LoadScreenTilesFromBuffer2 ld h, vBGMap1 / $100 @@ -591,12 +591,12 @@ WriteLowerByteOfBGMapAndEnableBGTransfer: ld l, vBGMap0 & $ff call BattleAnimCopyTileMapToVRAM ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ret PlaySubanimation: ld a, [wAnimSoundID] - cp $FF + cp NO_MOVE - 1 jr z, .skipPlayingSound call GetMoveSound call PlaySound @@ -648,7 +648,7 @@ PlaySubanimation: ld a, [wSubAnimSubEntryAddr] ld l, a ld a, [wSubAnimTransform] - cp 4 ; is the animation reversed? + cp SUBANIMTYPE_REVERSE ld bc, 3 jr nz, .nextSubanimationSubentry ld bc, -3 @@ -697,90 +697,16 @@ DoSpecialEffectByAnimationId: pop hl ret -; Format: Animation ID (1 byte), Address (2 bytes) -AnimationIdSpecialEffects: - db MEGA_PUNCH - dw AnimationFlashScreen - - db GUILLOTINE - dw AnimationFlashScreen - - db MEGA_KICK - dw AnimationFlashScreen - - db HEADBUTT - dw AnimationFlashScreen - - db TAIL_WHIP - dw TailWhipAnimationUnused - - db GROWL - dw DoGrowlSpecialEffects - - db DISABLE - dw AnimationFlashScreen - - db BLIZZARD - dw DoBlizzardSpecialEffects - - db BUBBLEBEAM - dw AnimationFlashScreen - - db HYPER_BEAM - dw FlashScreenEveryFourFrameBlocks - - db THUNDERBOLT - dw FlashScreenEveryEightFrameBlocks - - db REFLECT - dw AnimationFlashScreen - - db SELFDESTRUCT - dw DoExplodeSpecialEffects - - db SPORE - dw FlashScreenEveryFourFrameBlocks - - db EXPLOSION - dw DoExplodeSpecialEffects - - db ROCK_SLIDE - dw DoRockSlideSpecialEffects - - db TRADE_BALL_DROP_ANIM - dw TradeHidePokemon - - db TRADE_BALL_SHAKE_ANIM - dw TradeShakePokeball - - db TRADE_BALL_TILT_ANIM - dw TradeJumpPokeball - - db TOSS_ANIM - dw DoBallTossSpecialEffects - - db SHAKE_ANIM - dw DoBallShakeSpecialEffects - - db POOF_ANIM - dw DoPoofSpecialEffects - - db GREATTOSS_ANIM - dw DoBallTossSpecialEffects - - db ULTRATOSS_ANIM - dw DoBallTossSpecialEffects - - db $FF ; terminator +INCLUDE "data/battle_anims/special_effects.asm" DoBallTossSpecialEffects: ld a, [wcf91] cp 3 ; is it a Master Ball or Ultra Ball? jr nc, .skipFlashingEffect .flashingEffect ; do a flashing effect if it's Master Ball or Ultra Ball - ld a, [rOBP0] + ldh a, [rOBP0] xor %00111100 ; complement colors 1 and 2 - ld [rOBP0], a + ldh [rOBP0], a call UpdateGBCPal_OBP0 .skipFlashingEffect ld a, [wSubAnimCounter] @@ -805,7 +731,7 @@ DoBallTossSpecialEffects: cp 1 ret nz .moveGhostMarowakLeft - coord hl, 17, 0 + hlcoord 17, 0 ld de, 20 lb bc, 7, 7 .loop @@ -818,7 +744,7 @@ DoBallTossSpecialEffects: dec b jr nz, .loop ld a, %00001000 - ld [rNR10], a ; Channel 1 sweep register + ldh [rNR10], a ; Channel 1 sweep register ret .isTrainerBattle ; if it's a trainer battle, shorten the animation by one frame ld a, [wSubAnimCounter] @@ -904,7 +830,7 @@ DoExplodeSpecialEffects: cp 1 ; is it the end of the subanimation? jr nz, FlashScreenEveryFourFrameBlocks ; if it's the end of the subanimation, make the attacking pokemon disappear - coord hl, 1, 5 + hlcoord 1, 5 jp AnimationHideMonPic ; make pokemon disappear ; flashes the screen when subanimation counter is 1 modulo 4 @@ -972,7 +898,7 @@ TradeShakePokeball: BallMoveDistances1: db -12, -12, -8 - db $ff ; terminator + db -1 ; end ; function to make the pokeball jump up TradeJumpPokeball: @@ -1005,15 +931,15 @@ TradeJumpPokeball: ld c, 5 call DelayFrames pop bc - ld a, [hSCX] ; background scroll X + ldh a, [hSCX] ; background scroll X sub 8 ; scroll to the left - ld [hSCX], a + ldh [hSCX], a pop de jr .loop BallMoveDistances2: db 11, 12, -12, -7, 7, 12, -8, 8 - db $ff ; terminator + db -1 ; end ; this function copies the current musical note graphic ; so that there are two musical notes flying towards the defending pokemon @@ -1034,87 +960,7 @@ TailWhipAnimationUnused: ld c, 20 jp DelayFrames -; Format: Special Effect ID (1 byte), Address (2 bytes) -SpecialEffectPointers: - db SE_DARK_SCREEN_FLASH ; $FE - dw AnimationFlashScreen - db SE_DARK_SCREEN_PALETTE ; $FD - dw AnimationDarkScreenPalette - db SE_RESET_SCREEN_PALETTE ; $FC - dw AnimationResetScreenPalette - db SE_SHAKE_SCREEN ; $FB - dw AnimationShakeScreen - db SE_WATER_DROPLETS_EVERYWHERE ; $FA - dw AnimationWaterDropletsEverywhere - db SE_DARKEN_MON_PALETTE ; $F9 - dw AnimationDarkenMonPalette - db SE_FLASH_SCREEN_LONG ; $F8 - dw AnimationFlashScreenLong - db SE_SLIDE_MON_UP ; $F7 - dw AnimationSlideMonUp - db SE_SLIDE_MON_DOWN ; $F6 - dw AnimationSlideMonDown - db SE_FLASH_MON_PIC ; $F5 - dw AnimationFlashMonPic - db SE_SLIDE_MON_OFF ; $F4 - dw AnimationSlideMonOff - db SE_BLINK_MON ; $F3 - dw AnimationBlinkMon - db SE_MOVE_MON_HORIZONTALLY ; $F2 - dw AnimationMoveMonHorizontally - db SE_RESET_MON_POSITION ; $F1 - dw AnimationResetMonPosition - db SE_LIGHT_SCREEN_PALETTE ; $F0 - dw AnimationLightScreenPalette - db SE_HIDE_MON_PIC ; $EF - dw AnimationHideMonPic - db SE_SQUISH_MON_PIC ; $EE - dw AnimationSquishMonPic - db SE_SHOOT_BALLS_UPWARD ; $ED - dw AnimationShootBallsUpward - db SE_SHOOT_MANY_BALLS_UPWARD ; $EC - dw AnimationShootManyBallsUpward - db SE_BOUNCE_UP_AND_DOWN ; $EB - dw AnimationBoundUpAndDown - db SE_MINIMIZE_MON ; $EA - dw AnimationMinimizeMon - db SE_SLIDE_MON_DOWN_AND_HIDE ; $E9 - dw AnimationSlideMonDownAndHide - db SE_TRANSFORM_MON ; $E8 - dw AnimationTransformMon - db SE_LEAVES_FALLING ; $E7 - dw AnimationLeavesFalling - db SE_PETALS_FALLING ; $E6 - dw AnimationPetalsFalling - db SE_SLIDE_MON_HALF_OFF ; $E5 - dw AnimationSlideMonHalfOff - db SE_SHAKE_ENEMY_HUD ; $E4 - dw AnimationShakeEnemyHUD - db SE_SHAKE_ENEMY_HUD_2 ; unused--same pointer as SE_SHAKE_ENEMY_HUD ($E4) - dw AnimationShakeEnemyHUD - db SE_SPIRAL_BALLS_INWARD ; $E2 - dw AnimationSpiralBallsInward - db SE_DELAY_ANIMATION_10 ; $E1 - dw AnimationDelay10 - db SE_FLASH_ENEMY_MON_PIC ; unused--same as SE_FLASH_MON_PIC ($F5), but for the enemy mon - dw AnimationFlashEnemyMonPic - db SE_HIDE_ENEMY_MON_PIC ; $DF - dw AnimationHideEnemyMonPic - db SE_BLINK_ENEMY_MON ; $DE - dw AnimationBlinkEnemyMon - db SE_SHOW_MON_PIC ; $DD - dw AnimationShowMonPic - db SE_SHOW_ENEMY_MON_PIC ; $DC - dw AnimationShowEnemyMonPic - db SE_SLIDE_ENEMY_MON_OFF ; $DB - dw AnimationSlideEnemyMonOff - db SE_SHAKE_BACK_AND_FORTH ; $DA - dw AnimationShakeBackAndForth - db SE_SUBSTITUTE_MON ; $D9 - dw AnimationSubstitute - db SE_WAVY_SCREEN ; $D8 - dw AnimationWavyScreen - db $FF +INCLUDE "data/battle_anims/special_effect_pointers.asm" AnimationDelay10: ld c, 10 @@ -1123,16 +969,16 @@ AnimationDelay10: ; calls a function with the turn flipped from player to enemy or vice versa ; input - hl - address of function to call CallWithTurnFlipped: - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] push af xor 1 - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a ld de, .returnAddress push de jp hl .returnAddress pop af - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a ret ; flashes the screen for an extended period (48 frames) @@ -1150,7 +996,7 @@ AnimationFlashScreenLong: ld a, [hli] cp $01 ; is it the end of the palettes? jr z, .endOfPalettes - ld [rBGP], a + ldh [rBGP], a call UpdateGBCPal_BGP call FlashScreenLongDelay jr .innerLoop @@ -1210,20 +1056,20 @@ FlashScreenLongDelay: jp DelayFrames AnimationFlashScreen: - ld a, [rBGP] + ldh a, [rBGP] push af ; save initial palette ld a, %00011011 ; 0, 1, 2, 3 (inverted colors) - ld [rBGP], a + ldh [rBGP], a call UpdateGBCPal_BGP ld c, 2 call DelayFrames xor a ; white out background - ld [rBGP], a + ldh [rBGP], a call UpdateGBCPal_BGP ld c, 2 call DelayFrames pop af - ld [rBGP], a ; restore initial palette + ldh [rBGP], a ; restore initial palette call UpdateGBCPal_BGP ret @@ -1269,7 +1115,7 @@ SetAnimationBGPalette: jr z, .next ld a, c .next - ld [rBGP], a + ldh [rBGP], a call UpdateGBCPal_BGP ret @@ -1356,14 +1202,14 @@ _AnimationWaterDroplets: AnimationSlideMonUp: ; Slides the mon's sprite upwards. ld c, 7 - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a - coord hl, 1, 6 - coord de, 1, 5 + hlcoord 1, 6 + decoord 1, 5 ld a, $30 jr z, .next - coord hl, 12, 1 - coord de, 12, 0 + hlcoord 12, 1 + decoord 12, 0 ld a, $ff .next ld [wSlideMonUpBottomRowLeftTile], a @@ -1371,7 +1217,7 @@ AnimationSlideMonUp: AnimationSlideMonDown: ; Slides the mon's sprite down out of the screen. - xor a + xor a ; TILEMAP_MON_PIC call GetTileIDList .loop call GetMonSpriteTileMapPointerFromRowCount @@ -1424,11 +1270,11 @@ _AnimationSlideMonUp: jr nz, .slideLoop ; Fill in the bottom row of the mon pic with the next row's tile IDs. - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a - coord hl, 1, 11 + hlcoord 1, 11 jr z, .next - coord hl, 12, 6 + hlcoord 12, 6 .next ld a, [wSlideMonUpBottomRowLeftTile] inc a @@ -1592,7 +1438,7 @@ AnimationFlashEnemyMonPic: jp CallWithTurnFlipped AnimationShowMonPic: - xor a + xor a ; TILEMAP_MON_PIC call GetTileIDList call GetMonSpriteTileMapPointerFromRowCount call CopyPicTiles @@ -1607,16 +1453,16 @@ AnimationShowEnemyMonPic: AnimationShakeBackAndForth: ; Shakes the mon's sprite back and forth rapidly. This is used in Double Team. ; The mon's sprite disappears after this animation. - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a - coord hl, 0, 5 - coord de, 2, 5 + hlcoord 0, 5 + decoord 2, 5 jr z, .next - coord hl, 11, 0 - coord de, 13, 0 + hlcoord 11, 0 + decoord 13, 0 .next - xor a + xor a ; TILEMAP_MON_PIC ld c, $10 .loop push af @@ -1655,13 +1501,13 @@ AnimationMoveMonHorizontally: ; Shifts the mon's sprite horizontally to a fixed location. Used by lots of ; animations like Tackle/Body Slam. call AnimationHideMonPic - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a - coord hl, 2, 5 + hlcoord 2, 5 jr z, .next - coord hl, 11, 0 + hlcoord 11, 0 .next - xor a + xor a ; TILEMAP_MON_PIC push hl call GetTileIDList pop hl @@ -1671,7 +1517,7 @@ AnimationMoveMonHorizontally: AnimationResetMonPosition: ; Resets the mon's sprites to be located at the normal coordinates. - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a ld a, 5 * SCREEN_WIDTH + 2 jr z, .next @@ -1683,7 +1529,7 @@ AnimationResetMonPosition: AnimationSpiralBallsInward: ; Creates an effect that looks like energy balls spiralling into the ; player mon's sprite. Used in Focus Energy, for example. - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playerTurn ld a, -40 @@ -1772,7 +1618,7 @@ SpiralBallAnimationCoordinates: db $58, $28 db $50, $30 db $50, $28 - db $FF ; list terminator + db -1 ; end AnimationSquishMonPic: ; Squishes the mon's sprite horizontally making it @@ -1780,15 +1626,15 @@ AnimationSquishMonPic: ld c, 4 .loop push bc - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playerTurn - coord hl, 16, 0 - coord de, 14, 0 + hlcoord 16, 0 + decoord 14, 0 jr .next .playerTurn - coord hl, 5, 5 - coord de, 3, 5 + hlcoord 5, 5 + decoord 3, 5 .next push de xor a ; left @@ -1833,7 +1679,7 @@ _AnimationSquishMonPic: AnimationShootBallsUpward: ; Shoots one pillar of "energy" balls upwards. Used in Teleport/Sky Attack ; animations. - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playerTurn lb bc, 0, 16 * 8 @@ -1901,7 +1747,7 @@ _AnimationShootBallsUpward: AnimationShootManyBallsUpward: ; Shoots several pillars of "energy" balls upward. - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a ld hl, UpwardBallsAnimXCoordinatesPlayerTurn ld a, $50 ; y coordinate for "energy" ball pillar @@ -1927,13 +1773,13 @@ UpwardBallsAnimXCoordinatesPlayerTurn: ; List of x coordinates for each pillar of "energy" balls in the ; AnimationShootManyBallsUpward animation. It's unused in the game. db $10, $40, $28, $18, $38, $30 - db $FF ; list terminator + db -1 ; end UpwardBallsAnimXCoordinatesEnemyTurn: ; List of x coordinates for each pillar of "energy" balls in the ; AnimationShootManyBallsUpward animation. It's unused in the game. db $60, $90, $78, $68, $88, $80 - db $FF ; list terminator + db -1 ; end AnimationMinimizeMon: ; Changes the mon's sprite to a mini black sprite. Used by the @@ -1960,13 +1806,13 @@ AnimationMinimizeMon: jp AnimationShowMonPic MinimizedMonSprite: - INCBIN "gfx/minimized_mon_sprite.1bpp" + INCBIN "gfx/battle/minimize.1bpp" MinimizedMonSpriteEnd: AnimationSlideMonDownAndHide: ; Slides the mon's sprite down and disappears. Used in Acid Armor. - ld a, $1 - ld c, $2 + ld a, TILEMAP_SLIDE_DOWN_MON_PIC_7X5 + ld c, 2 .loop push bc push af @@ -1985,7 +1831,7 @@ AnimationSlideMonDownAndHide: jr nz, .loop call AnimationHideMonPic ld hl, wTempPic - ld bc, $0310 + ld bc, 7 * 7 tiles xor a call FillMemory jp CopyTempPicToMonPic @@ -1993,13 +1839,13 @@ AnimationSlideMonDownAndHide: _AnimationSlideMonOff: ; Slides the mon's sprite off the screen horizontally by e tiles and waits ; [wSlideMonDelay] V-blanks each time the pic is slid by one tile. - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playerTurn - coord hl, 12, 0 + hlcoord 12, 0 jr .next .playerTurn - coord hl, 0, 5 + hlcoord 0, 5 .next ld d, 8 ; d's value is unused .slideLoop ; iterates once for each time the pic slides by one tile @@ -2008,7 +1854,7 @@ _AnimationSlideMonOff: .rowLoop ; iterates once for each row ld c, 8 .tileLoop ; iterates once for each tile in the row - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playerTurn2 call .EnemyNextTile @@ -2069,7 +1915,7 @@ AnimationSlideMonHalfOff: jp Delay3 CopyTempPicToMonPic: - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a ld hl, vBackPic ; player turn jr z, .next @@ -2085,18 +1931,18 @@ AnimationWavyScreen: call BattleAnimCopyTileMapToVRAM call Delay3 xor a - ld [H_AUTOBGTRANSFERENABLED], a - ld a, SCREEN_HEIGHT_PIXELS - ld [hWY], a + ldh [hAutoBGTransferEnabled], a + ld a, SCREEN_HEIGHT_PX + ldh [hWY], a ld d, $80 ; terminator - ld e, SCREEN_HEIGHT_PIXELS - 1 + ld e, SCREEN_HEIGHT_PX - 1 ld c, $ff ld hl, WavyScreenLineOffsets .loop push hl .innerLoop call WavyScreen_SetSCX - ld a, [rLY] + ldh a, [rLY] cp e ; is it the last visible line in the frame? jr nz, .innerLoop ; keep going if not pop hl @@ -2109,11 +1955,11 @@ AnimationWavyScreen: dec c jr nz, .loop xor a - ld [hWY], a + ldh [hWY], a call SaveScreenTilesToBuffer2 call ClearScreen ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Delay3 call LoadScreenTilesFromBuffer2 ld hl, vBGMap1 @@ -2121,11 +1967,11 @@ AnimationWavyScreen: ret WavyScreen_SetSCX: - ld a, [rSTAT] + ldh a, [rSTAT] and $3 ; is it H-blank? jr nz, WavyScreen_SetSCX ; wait until it's H-blank ld a, [hl] - ld [rSCX], a + ldh [rSCX], a inc hl ld a, [hl] cp d ; have we reached the end? @@ -2144,48 +1990,48 @@ AnimationSubstitute: ; Changes the pokemon's sprite to the mini sprite ld hl, wTempPic xor a - ld bc, $0310 + ld bc, $310 call FillMemory - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playerTurn - ld hl, SlowbroSprite ; facing down sprite + ld hl, MonsterSprite tile 0 ; facing down sprite ld de, wTempPic + $120 - call CopySlowbroSpriteData - ld hl, SlowbroSprite + $10 + call CopyMonsterSpriteData + ld hl, MonsterSprite tile 1 ld de, wTempPic + $120 + $70 - call CopySlowbroSpriteData - ld hl, SlowbroSprite + $20 + call CopyMonsterSpriteData + ld hl, MonsterSprite tile 2 ld de, wTempPic + $120 + $10 - call CopySlowbroSpriteData - ld hl, SlowbroSprite + $30 + call CopyMonsterSpriteData + ld hl, MonsterSprite tile 3 ld de, wTempPic + $120 + $10 + $70 - call CopySlowbroSpriteData + call CopyMonsterSpriteData jr .next .playerTurn - ld hl, SlowbroSprite + $40 ; facing up sprite + ld hl, MonsterSprite tile 4 ; facing up sprite ld de, wTempPic + $120 + $70 - call CopySlowbroSpriteData - ld hl, SlowbroSprite + $50 + call CopyMonsterSpriteData + ld hl, MonsterSprite tile 5 ld de, wTempPic + $120 + $e0 - call CopySlowbroSpriteData - ld hl, SlowbroSprite + $60 + call CopyMonsterSpriteData + ld hl, MonsterSprite tile 6 ld de, wTempPic + $120 + $80 - call CopySlowbroSpriteData - ld hl, SlowbroSprite + $70 + call CopyMonsterSpriteData + ld hl, MonsterSprite tile 7 ld de, wTempPic + $120 + $f0 - call CopySlowbroSpriteData + call CopyMonsterSpriteData .next call CopyTempPicToMonPic jp AnimationShowMonPic -CopySlowbroSpriteData: - ld bc, $0010 - ld a, BANK(SlowbroSprite) +CopyMonsterSpriteData: + ld bc, 1 tiles + ld a, BANK(MonsterSprite) jp FarCopyData HideSubstituteShowMonAnim: - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a ld hl, wPlayerMonMinimized ld de, wPlayerBattleStatus1 @@ -2226,7 +2072,7 @@ HideSubstituteShowMonAnim: call AnimationFlashMonPic jp AnimationShowMonPic .flyOrDig - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr nz, .enemy ld a, [wPlayerMonMinimized] @@ -2294,7 +2140,7 @@ AnimationTransformMon: ld [wChangeMonPicEnemyTurnSpecies], a ChangeMonPic: - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playerTurn ld a, [wChangeMonPicEnemyTurnSpecies] @@ -2303,7 +2149,7 @@ ChangeMonPic: xor a ld [wSpriteFlipped], a call GetMonHeader - coord hl, 12, 0 + hlcoord 12, 0 call LoadFrontSpriteByMonIndex jr .done .playerTurn @@ -2314,7 +2160,7 @@ ChangeMonPic: ld [wd0b5], a call GetMonHeader predef LoadMonBackPic - xor a + xor a ; TILEMAP_MON_PIC call GetTileIDList call GetMonSpriteTileMapPointerFromRowCount call CopyPicTiles @@ -2327,16 +2173,16 @@ ChangeMonPic: AnimationHideEnemyMonPic: ; Hides the enemy mon's sprite xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld hl, AnimationHideMonPic call CallWithTurnFlipped ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a jp Delay3 Func_79929: ld hl, wPlayerMonMinimized - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playerTurn ld hl, wEnemyMonMinimized @@ -2376,7 +2222,7 @@ InitMultipleObjectsOAM: AnimationHideMonPic: ; Hides the mon's sprite. - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playerTurn ld a, 12 @@ -2390,7 +2236,7 @@ ClearMonPicFromTileMap: push bc ld e, a ld d, 0 - coord hl, 0, 0 + hlcoord 0, 0 add hl, de lb bc, 7, 7 call ClearScreenArea @@ -2404,7 +2250,7 @@ ClearMonPicFromTileMap: ; in order to show only a portion of the mon sprite. GetMonSpriteTileMapPointerFromRowCount: push de - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr nz, .enemyTurn ld a, 20 * 5 + 1 @@ -2412,7 +2258,7 @@ GetMonSpriteTileMapPointerFromRowCount: .enemyTurn ld a, 12 .next - coord hl, 0, 0 + hlcoord 0, 0 ld e, a ld d, 0 add hl, de @@ -2492,7 +2338,7 @@ GetMoveSound: ld b, a call IsCryMove jr nc, .NotCryMove - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr nz, .next ld a, [wBattleMonSpecies] ; get number of current monster @@ -2534,184 +2380,17 @@ IsCryMove: scf ret -MoveSoundTable: - ; ID, pitch mod, tempo mod - db SFX_POUND, $00, $80 ; POUND - db SFX_BATTLE_0C, $10, $80 ; KARATE_CHOP - db SFX_DOUBLESLAP, $00, $80 ; DOUBLESLAP - db SFX_BATTLE_0B, $01, $80 ; COMET_PUNCH - db SFX_BATTLE_0D, $00, $40 ; MEGA_PUNCH - db SFX_SILPH_SCOPE, $00, $ff ; PAY_DAY - db SFX_BATTLE_0D, $10, $60 ; FIRE_PUNCH - db SFX_BATTLE_0D, $20, $80 ; ICE_PUNCH - db SFX_BATTLE_0D, $00, $a0 ; THUNDERPUNCH - db SFX_DAMAGE, $00, $80 ; SCRATCH - db SFX_BATTLE_0F, $20, $40 ; VICEGRIP - db SFX_BATTLE_0F, $00, $80 ; GUILLOTINE - db SFX_BATTLE_0E, $00, $a0 ; RAZOR_WIND - db SFX_NOT_VERY_EFFECTIVE, $10, $c0 ; SWORDS_DANCE - db SFX_NOT_VERY_EFFECTIVE, $00, $a0 ; CUT - db SFX_BATTLE_12, $00, $c0 ; GUST - db SFX_BATTLE_12, $10, $a0 ; WING_ATTACK - db SFX_BATTLE_13, $00, $e0 ; WHIRLWIND - db SFX_NOT_VERY_EFFECTIVE, $20, $c0 ; FLY - db SFX_BATTLE_14, $00, $80 ; BIND - db SFX_BATTLE_22, $00, $80 ; SLAM - db SFX_VINE_WHIP, $01, $80 ; VINE_WHIP - db SFX_BATTLE_20, $00, $80 ; STOMP - db SFX_BATTLE_17, $f0, $40 ; DOUBLE_KICK - db SFX_SUPER_EFFECTIVE, $00, $80 ; MEGA_KICK - db SFX_BATTLE_17, $00, $80 ; JUMP_KICK - db SFX_BATTLE_21, $10, $80 ; ROLLING_KICK - db SFX_BATTLE_1B, $01, $a0 ; SAND_ATTACK - db SFX_BATTLE_18, $00, $80 ; HEADBUTT - db SFX_BATTLE_1E, $00, $60 ; HORN_ATTACK - db SFX_BATTLE_1E, $01, $40 ; FURY_ATTACK - db SFX_HORN_DRILL, $00, $a0 ; HORN_DRILL - db SFX_SUPER_EFFECTIVE, $10, $a0 ; TACKLE - db SFX_BATTLE_20, $00, $c0 ; BODY_SLAM - db SFX_BATTLE_14, $10, $60 ; WRAP - db SFX_SUPER_EFFECTIVE, $00, $a0 ; TAKE_DOWN - db SFX_BATTLE_22, $11, $c0 ; THRASH - db SFX_SUPER_EFFECTIVE, $20, $c0 ; DOUBLE_EDGE - db SFX_BATTLE_21, $00, $80 ; TAIL_WHIP - db SFX_BATTLE_1B, $00, $80 ; POISON_STING - db SFX_BATTLE_1B, $20, $c0 ; TWINEEDLE - db SFX_BATTLE_19, $00, $80 ; PIN_MISSILE - db SFX_BATTLE_31, $ff, $40 ; LEER - db SFX_BATTLE_1E, $00, $80 ; BITE - db SFX_BATTLE_0B, $00, $c0 ; GROWL - db SFX_BATTLE_0B, $00, $40 ; ROAR - db SFX_BATTLE_35, $00, $80 ; SING - db SFX_BATTLE_27, $40, $60 ; SUPERSONIC - db SFX_BATTLE_27, $00, $80 ; SONICBOOM - db SFX_BATTLE_27, $ff, $40 ; DISABLE - db SFX_BATTLE_2A, $80, $c0 ; ACID - db SFX_BATTLE_19, $10, $a0 ; EMBER - db SFX_BATTLE_19, $21, $e0 ; FLAMETHROWER - db SFX_BATTLE_29, $00, $80 ; MIST - db SFX_BATTLE_24, $20, $60 ; WATER_GUN - db SFX_BATTLE_2A, $00, $80 ; HYDRO_PUMP - db SFX_BATTLE_2C, $00, $80 ; SURF - db SFX_BATTLE_28, $40, $80 ; ICE_BEAM - db SFX_BATTLE_29, $f0, $e0 ; BLIZZARD - db SFX_PSYBEAM, $00, $80 ; PSYBEAM - db SFX_BATTLE_2A, $f0, $60 ; BUBBLEBEAM - db SFX_BATTLE_28, $00, $80 ; AURORA_BEAM - db SFX_BATTLE_36, $00, $80 ; HYPER_BEAM - db SFX_PECK, $01, $a0 ; PECK - db SFX_BATTLE_13, $f0, $20 ; DRILL_PECK - db SFX_BATTLE_23, $01, $c0 ; SUBMISSION - db SFX_BATTLE_23, $00, $80 ; LOW_KICK - db SFX_SUPER_EFFECTIVE, $00, $e0 ; COUNTER - db SFX_BATTLE_26, $01, $60 ; SEISMIC_TOSS - db SFX_BATTLE_26, $20, $40 ; STRENGTH - db SFX_BATTLE_24, $00, $80 ; ABSORB - db SFX_BATTLE_24, $40, $c0 ; MEGA_DRAIN - db SFX_BATTLE_1B, $03, $60 ; LEECH_SEED - db SFX_BATTLE_25, $11, $e0 ; GROWTH - db SFX_BATTLE_12, $20, $e0 ; RAZOR_LEAF - db SFX_BATTLE_2E, $00, $80 ; SOLARBEAM - db SFX_BATTLE_1C, $00, $80 ; POISONPOWDER - db SFX_BATTLE_1C, $11, $a0 ; STUN_SPORE - db SFX_BATTLE_1C, $01, $c0 ; SLEEP_POWDER - db SFX_BATTLE_13, $14, $c0 ; PETAL_DANCE - db SFX_BATTLE_1B, $02, $a0 ; STRING_SHOT - db SFX_BATTLE_29, $f0, $80 ; DRAGON_RAGE - db SFX_BATTLE_29, $20, $c0 ; FIRE_SPIN - db SFX_BATTLE_2F, $00, $20 ; THUNDERSHOCK - db SFX_BATTLE_2F, $20, $80 ; THUNDERBOLT - db SFX_BATTLE_2E, $12, $60 ; THUNDER_WAVE - db SFX_BATTLE_26, $00, $80 ; THUNDER - db SFX_BATTLE_14, $01, $e0 ; ROCK_THROW - db SFX_BATTLE_29, $0f, $e0 ; EARTHQUAKE - db SFX_BATTLE_29, $11, $20 ; FISSURE - db SFX_DAMAGE, $10, $40 ; DIG - db SFX_BATTLE_0F, $10, $c0 ; TOXIC - db SFX_BATTLE_14, $00, $20 ; CONFUSION - db SFX_PSYCHIC_M, $00, $80 ; PSYCHIC_M - db SFX_BATTLE_35, $11, $18 ; HYPNOSIS - db SFX_BATTLE_09, $20, $c0 ; MEDITATE - db SFX_FAINT_FALL, $20, $c0 ; AGILITY - db SFX_BATTLE_25, $00, $10 ; QUICK_ATTACK - db SFX_BATTLE_26, $f0, $20 ; RAGE - db SFX_BATTLE_33, $f0, $c0 ; TELEPORT - db SFX_NOT_VERY_EFFECTIVE, $f0, $e0 ; NIGHT_SHADE - db SFX_BATTLE_09, $f0, $40 ; MIMIC - db SFX_BATTLE_31, $00, $80 ; SCREECH - db SFX_BATTLE_33, $80, $40 ; DOUBLE_TEAM - db SFX_BATTLE_33, $00, $80 ; RECOVER - db SFX_BATTLE_14, $11, $20 ; HARDEN - db SFX_BATTLE_14, $22, $10 ; MINIMIZE - db SFX_BATTLE_1B, $f1, $ff ; SMOKESCREEN - db SFX_BATTLE_13, $f1, $ff ; CONFUSE_RAY - db SFX_BATTLE_14, $33, $30 ; WITHDRAW - db SFX_BATTLE_32, $40, $c0 ; DEFENSE_CURL - db SFX_BATTLE_0E, $20, $20 ; BARRIER - db SFX_BATTLE_0E, $f0, $10 ; LIGHT_SCREEN - db SFX_BATTLE_0F, $f8, $10 ; HAZE - db SFX_NOT_VERY_EFFECTIVE, $f0, $10 ; REFLECT - db SFX_BATTLE_25, $00, $80 ; FOCUS_ENERGY - db SFX_BATTLE_18, $00, $c0 ; BIDE - db SFX_BATTLE_32, $c0, $ff ; METRONOME - db SFX_BATTLE_09, $f2, $20 ; MIRROR_MOVE - db SFX_BATTLE_34, $00, $80 ; SELFDESTRUCT - db SFX_BATTLE_34, $00, $40 ; EGG_BOMB - db SFX_BATTLE_09, $00, $40 ; LICK - db SFX_NOT_VERY_EFFECTIVE, $10, $ff ; SMOG - db SFX_BATTLE_2A, $20, $20 ; SLUDGE - db SFX_BATTLE_32, $00, $80 ; BONE_CLUB - db SFX_BATTLE_29, $1f, $20 ; FIRE_BLAST - db SFX_BATTLE_25, $2f, $80 ; WATERFALL - db SFX_BATTLE_0F, $1f, $ff ; CLAMP - db SFX_BATTLE_2B, $1f, $60 ; SWIFT - db SFX_BATTLE_26, $1e, $20 ; SKULL_BASH - db SFX_BATTLE_26, $1f, $18 ; SPIKE_CANNON - db SFX_BATTLE_14, $0f, $80 ; CONSTRICT - db SFX_BATTLE_09, $f8, $10 ; AMNESIA - db SFX_FAINT_FALL, $18, $20 ; KINESIS - db SFX_BATTLE_32, $08, $40 ; SOFTBOILED - db SFX_BATTLE_17, $01, $e0 ; HI_JUMP_KICK - db SFX_NOT_VERY_EFFECTIVE, $09, $ff ; GLARE - db SFX_BATTLE_35, $42, $01 ; DREAM_EATER - db SFX_BATTLE_1C, $00, $ff ; POISON_GAS - db SFX_BATTLE_32, $08, $e0 ; BARRAGE - db SFX_BATTLE_24, $00, $80 ; LEECH_LIFE - db SFX_BATTLE_09, $88, $10 ; LOVELY_KISS - db SFX_BATTLE_25, $48, $ff ; SKY_ATTACK - db SFX_FAINT_FALL, $ff, $ff ; TRANSFORM - db SFX_BATTLE_24, $ff, $10 ; BUBBLE - db SFX_FAINT_FALL, $ff, $04 ; DIZZY_PUNCH - db SFX_BATTLE_1C, $01, $ff ; SPORE - db SFX_BATTLE_13, $f8, $ff ; FLASH - db SFX_BATTLE_0C, $f0, $f0 ; PSYWAVE - db SFX_BATTLE_0F, $08, $10 ; SPLASH - db SFX_BATTLE_0D, $f0, $ff ; ACID_ARMOR - db SFX_SUPER_EFFECTIVE, $f0, $ff ; CRABHAMMER - db SFX_BATTLE_34, $10, $ff ; EXPLOSION - db SFX_BATTLE_0E, $f0, $20 ; FURY_SWIPES - db SFX_BATTLE_2B, $f0, $60 ; BONEMERANG - db SFX_BATTLE_21, $12, $10 ; REST - db SFX_BATTLE_36, $f0, $20 ; ROCK_SLIDE - db SFX_BATTLE_1E, $12, $ff ; HYPER_FANG - db SFX_BATTLE_31, $80, $04 ; SHARPEN - db SFX_BATTLE_33, $f0, $10 ; CONVERSION - db SFX_BATTLE_29, $f8, $ff ; TRI_ATTACK - db SFX_BATTLE_26, $f0, $ff ; SUPER_FANG - db SFX_NOT_VERY_EFFECTIVE, $01, $ff ; SLASH - db SFX_BATTLE_2C, $d8, $04 ; SUBSTITUTE - db SFX_BATTLE_0B, $00, $80 ; STRUGGLE - db SFX_BATTLE_0B, $00, $80 +INCLUDE "data/moves/sfx.asm" CopyPicTiles: - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a ld a, $31 ; base tile ID of player mon sprite jr z, .next ; enemy turn xor a ; base tile ID of enemy mon sprite .next - ld [hBaseTileID], a + ldh [hBaseTileID], a jr CopyTileIDs_NoBGTransfer ; copy the tiles used when a mon is being sent out of or into a pokeball @@ -2728,7 +2407,7 @@ CopyDownscaledMonTiles: CopyTileIDs_NoBGTransfer: xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ; fall through ; b = number of rows @@ -2738,7 +2417,7 @@ CopyTileIDs: .rowLoop push bc push hl - ld a, [hBaseTileID] + ldh a, [hBaseTileID] ld b, a .columnLoop ld a, [de] @@ -2754,108 +2433,17 @@ CopyTileIDs: dec b jr nz, .rowLoop ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a pop hl ret -TileIDListPointerTable: - dw DownscaledMonTiles_7x7 - dn 7, 7 - dw DownscaledMonTiles_5x7 - dn 5, 7 - dw DownscaledMonTiles_3x7 - dn 3, 7 - dw GengarIntroTiles1 - dn 7, 7 - dw GengarIntroTiles2 - dn 7, 7 - dw GengarIntroTiles3 - dn 7, 7 - dw DownscaledMonTiles_79d7c - dn 8, 6 - dw DownscaledMonTiles_79dac - dn 3, 12 - -DownscaledMonTiles_5x5: - db $31, $38, $46, $54, $5B - db $32, $39, $47, $55, $5C - db $34, $3B, $49, $57, $5E - db $36, $3D, $4B, $59, $60 - db $37, $3E, $4C, $5A, $61 - -DownscaledMonTiles_3x3: - db $31, $46, $5B - db $34, $49, $5E - db $37, $4C, $61 - -DownscaledMonTiles_7x7: - db $00, $07, $0E, $15, $1C, $23, $2A - db $01, $08, $0F, $16, $1D, $24, $2B - db $02, $09, $10, $17, $1E, $25, $2C - db $03, $0A, $11, $18, $1F, $26, $2D - db $04, $0B, $12, $19, $20, $27, $2E - db $05, $0C, $13, $1A, $21, $28, $2F - db $06, $0D, $14, $1B, $22, $29, $30 - -DownscaledMonTiles_5x7: - db $00, $07, $0E, $15, $1C, $23, $2A - db $01, $08, $0F, $16, $1D, $24, $2B - db $03, $0A, $11, $18, $1F, $26, $2D - db $04, $0B, $12, $19, $20, $27, $2E - db $05, $0C, $13, $1A, $21, $28, $2F - -DownscaledMonTiles_3x7: - db $00, $07, $0E, $15, $1C, $23, $2A - db $02, $09, $10, $17, $1E, $25, $2C - db $04, $0B, $12, $19, $20, $27, $2E - -GengarIntroTiles1: - db $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $19, $00 - db $02, $06, $0B, $10, $14, $1A, $00 - db $00, $07, $0C, $11, $15, $1B, $00 - db $03, $08, $0D, $12, $16, $1C, $00 - db $04, $09, $0E, $13, $17, $1D, $1F - db $05, $0A, $0F, $01, $18, $1E, $20 - -GengarIntroTiles2: - db $00, $00, $00, $30, $00, $37, $00 - db $00, $00, $2B, $31, $34, $38, $3D - db $21, $26, $2C, $01, $35, $39, $3E - db $22, $27, $2D, $32, $36, $01, $00 - db $23, $28, $2E, $33, $01, $3A, $00 - db $24, $29, $2F, $01, $01, $3B, $00 - db $25, $2A, $01, $01, $01, $3C, $00 - -GengarIntroTiles3: - db $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $47, $4D, $00, $00, $00 - db $00, $00, $48, $4E, $52, $56, $5B - db $3F, $43, $49, $4F, $53, $57, $5C - db $40, $44, $4A, $50, $54, $58, $00 - db $41, $45, $4B, $51, $4C, $59, $5D - db $42, $46, $4C, $4C, $55, $5A, $5E - -DownscaledMonTiles_79d7c: - 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 - -DownscaledMonTiles_79dac: - 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 +INCLUDE "data/tilemaps.asm" AnimationLeavesFalling: ; Makes leaves float down from the top of the screen. This is used ; in Razor Leaf's animation. ld a, [wAnimPalette] - ld [rOBP0], a + ldh [rOBP0], a call UpdateGBCPal_OBP0 ld d, $37 ; leaf tile ld a, 3 ; number of leaves @@ -3043,7 +2631,7 @@ AnimationShakeEnemyHUD: call CopyVideoData xor a - ld [hSCX], a + ldh [hSCX], a ; Copy wTileMap to BG map 0. The regular BG (not the window) is set to use ; map 0 and can be scrolled with SCX, which allows a shaking effect. @@ -3052,8 +2640,8 @@ AnimationShakeEnemyHUD: ; Now that the regular BG is showing the same thing the window was, move the ; window off the screen so that we can modify its contents below. - ld a, SCREEN_HEIGHT_PIXELS - ld [hWY], a + ld a, SCREEN_HEIGHT_PX + ldh [hWY], a ; Copy wTileMap to VRAM such that the row below the enemy HUD (in wTileMap) is ; lined up with row 0 of the window. @@ -3061,11 +2649,11 @@ AnimationShakeEnemyHUD: call BattleAnimCopyTileMapToVRAM ; update BGMap attributes - ld a, [hGBC] + ldh a, [hGBC] and a jr z, .notGBC ld c, 13 - callba LoadBGMapAttributes + farcall LoadBGMapAttributes .notGBC ; Move the window so that the row below the enemy HUD (in BG map 0) lines up @@ -3073,7 +2661,7 @@ AnimationShakeEnemyHUD: ; covers everything below the enemy HD with a copy that looks just like what ; was there before. ld a, 7 * 8 - ld [hWY], a + ldh [hWY], a ; Write OAM entries so that the copy of the back pic from the top of this ; function shows up on screen. We need this because the back pic's Y coordinates @@ -3097,19 +2685,19 @@ AnimationShakeEnemyHUD: ; Restore the original graphics. call AnimationShowMonPic call ClearSprites - ld a, SCREEN_HEIGHT_PIXELS - ld [hWY], a + ld a, SCREEN_HEIGHT_PX + ldh [hWY], a ld hl, vBGMap1 call BattleAnimCopyTileMapToVRAM ; update BGMap attributes - ld a, [hGBC] + ldh a, [hGBC] and a jr z, .notGBC2 ld c, 11 - callba LoadBGMapAttributes + farcall LoadBGMapAttributes .notGBC2 xor a - ld [hWY], a + ldh [hWY], a call SaveScreenTilesToBuffer1 ld hl, vBGMap0 call BattleAnimCopyTileMapToVRAM @@ -3122,7 +2710,7 @@ AnimationShakeEnemyHUD: CopyTileIDsFromList: call GetPredefRegisters ld a, c - ld [hBaseTileID], a + ldh [hBaseTileID], a ld a, b push hl call GetTileIDList @@ -3130,30 +2718,30 @@ CopyTileIDsFromList: jp CopyTileIDs ShakeEnemyHUD_ShakeBG: - ld a, [hSCX] + ldh a, [hSCX] ld [wTempSCX], a .loop ld a, [wTempSCX] add d - ld [hSCX], a + ldh [hSCX], a ld c, 2 call DelayFrames ld a, [wTempSCX] sub d - ld [hSCX], a + ldh [hSCX], a ld c, 2 call DelayFrames dec e jr nz, .loop ld a, [wTempSCX] - ld [hSCX], a + ldh [hSCX], a ret BattleAnimCopyTileMapToVRAM: ld a, h - ld [H_AUTOBGTRANSFERDEST + 1], a + ldh [hAutoBGTransferDest + 1], a ld a, l - ld [H_AUTOBGTRANSFERDEST], a + ldh [hAutoBGTransferDest], a jp Delay3 TossBallAnimation: diff --git a/engine/battle/bank3d_battle.asm b/engine/battle/bank3d_battle.asm index 5edc4571f..48c3cde3e 100644 --- a/engine/battle/bank3d_battle.asm +++ b/engine/battle/bank3d_battle.asm @@ -1,27 +1,28 @@ -InitBattle: +InitBattle:: ld a, [wCurOpponent] and a - jr z, asm_f6003 + jr z, DetermineWildOpponent InitOpponent: ld a, [wCurOpponent] ld [wcf91], a ld [wEnemyMonSpecies2], a - jr asm_f601d -asm_f6003: + jr InitBattleCommon + +DetermineWildOpponent: ld a, [wd732] bit 1, a - jr z, .asm_f600f - ld a, [hJoyHeld] + jr z, .asm_3ef2f + ldh a, [hJoyHeld] bit 1, a ; B button pressed? ret nz -.asm_f600f +.asm_3ef2f ld a, [wNumberOfNoRandomBattleStepsLeft] and a ret nz - callab TryDoWildEncounter + callfar TryDoWildEncounter ret nz -asm_f601d: +InitBattleCommon: ld a, [wMapPalOffset] push af ld hl, wLetterPrintingDelayFlags @@ -34,37 +35,37 @@ asm_f601d: jp c, InitWildBattle ld [wTrainerClass], a call GetTrainerInformation - callab ReadTrainer - callab DoBattleTransitionAndInitBattleVariables + callfar ReadTrainer + callfar DoBattleTransitionAndInitBattleVariables call _LoadTrainerPic xor a ld [wEnemyMonSpecies2], a - ld [$ffe1], a + ldh [hStartTileID], a dec a ld [wAICount], a - coord hl, 12, 0 + hlcoord 12, 0 predef CopyUncompressedPicToTilemap ld a, $ff ld [wEnemyMonPartyPos], a ld a, $2 ld [wIsInBattle], a - ; Is this a major story battle? - ld a,[wLoneAttackNo] +; Is this a major story battle? + ld a, [wLoneAttackNo] and a - jp z,InitBattle_Common + jp z, _InitBattleCommon callabd_ModifyPikachuHappiness PIKAHAPPY_GYMLEADER ; useless since already in bank3d - jp InitBattle_Common + jp _InitBattleCommon InitWildBattle: ld a, $1 ld [wIsInBattle], a - callab LoadEnemyMonData - callab DoBattleTransitionAndInitBattleVariables + callfar LoadEnemyMonData + callfar DoBattleTransitionAndInitBattleVariables ld a, [wCurOpponent] cp RESTLESS_SOUL jr z, .isGhost - callab IsGhostBattle + callfar IsGhostBattle jr nz, .isNoGhost .isGhost ld hl, wMonHSpriteDim @@ -101,49 +102,49 @@ InitWildBattle: .spriteLoaded xor a ld [wTrainerClass], a - ld [$ffe1], a - coord hl, 12, 0 + ldh [hStartTileID], a + hlcoord 12, 0 predef CopyUncompressedPicToTilemap ; common code that executes after init battle code specific to trainer or wild battles -InitBattle_Common: - ld b, $0 +_InitBattleCommon: + ld b, SET_PAL_BATTLE_BLACK call RunPaletteCommand - callab SlidePlayerAndEnemySilhouettesOnScreen + callfar SlidePlayerAndEnemySilhouettesOnScreen xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld hl, .emptyString call PrintText call SaveScreenTilesToBuffer1 call ClearScreen ld a, $98 - ld [$ffbd], a + ldh [hAutoBGTransferDest + 1], a ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Delay3 ld a, $9c - ld [$ffbd], a + ldh [hAutoBGTransferDest + 1], a call LoadScreenTilesFromBuffer1 - coord hl, 9, 7 - ld bc, $50a + hlcoord 9, 7 + lb bc, 5, 10 call ClearScreenArea - coord hl, 1, 0 - ld bc, $40a + hlcoord 1, 0 + lb bc, 4, 10 call ClearScreenArea call ClearSprites ld a, [wIsInBattle] dec a ; is it a wild battle? ld hl, DrawEnemyHUDAndHPBar - ld b,BANK(DrawEnemyHUDAndHPBar) + ld b, BANK(DrawEnemyHUDAndHPBar) call z, Bankswitch ; draw enemy HUD and HP bar if it's a wild battle - callab StartBattle - callab EndOfBattle + callfar StartBattle + callfar EndOfBattle pop af ld [wLetterPrintingDelayFlags], a pop af ld [wMapPalOffset], a ld a, [wSavedTilesetType] - ld [hTilesetType], a + ldh [hTilesetType], a scf ret .emptyString @@ -157,9 +158,9 @@ _LoadTrainerPic: ld d, a ; de contains pointer to trainer pic ld a, [wLinkState] and a - ld a, Bank(TrainerPics) ; this is where all the trainer pics are (not counting Red's) + ld a, BANK(TrainerPics) ; this is where all the trainer pics are (not counting Red's) jr z, .loadSprite - ld a, Bank(RedPicFront) + ld a, BANK(RedPicFront) .loadSprite call UncompressSpriteFromDE ld de, vFrontPic @@ -172,8 +173,8 @@ LoadMonBackPic: ; been loaded with GetMonHeader. ld a, [wBattleMonSpecies2] ld [wcf91], a - coord hl, 1, 5 - ld bc,$708 + hlcoord 1, 5 + lb bc, 7, 8 call ClearScreenArea ld hl, wMonHBackSprite - wMonHeader call UncompressMonSprite @@ -183,7 +184,7 @@ LoadMonBackPic: ld hl, vSprites ld de, vBackPic ld c, (2*SPRITEBUFFERSIZE)/16 ; count of 16-byte chunks to be copied - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] ld b, a jp CopyVideoData @@ -192,8 +193,8 @@ AnimateSendingOutMon: ld h, a ld a, [wPredefRegisters + 1] ld l, a - ld a, [$ffe1] - ld [H_DOWNARROWBLINKCNT1], a + ldh a, [hStartTileID] + ldh [hDownArrowBlinkCount1], a ld b, $4c ld a, [wIsInBattle] and a @@ -223,7 +224,7 @@ AnimateSendingOutMon: ld bc, -123 .asm_f61f2 add hl, bc - ld a, [H_DOWNARROWBLINKCNT1] + ldh a, [hDownArrowBlinkCount1] add $31 jr CopyUncompressedPicToHL @@ -232,8 +233,8 @@ CopyUncompressedPicToTilemap: ld h, a ld a, [wPredefRegisters + 1] ld l, a - ld a, [$ffe1] -CopyUncompressedPicToHL: + ldh a, [hStartTileID] +CopyUncompressedPicToHL:: ld bc, $707 ld de, $14 push af @@ -281,11 +282,11 @@ CopyUncompressedPicToHL: ret INCLUDE "engine/battle/init_battle_variables.asm" -INCLUDE "engine/battle/moveEffects/focus_energy_effect.asm" -INCLUDE "engine/battle/moveEffects/heal_effect.asm" -INCLUDE "engine/battle/moveEffects/transform_effect.asm" -INCLUDE "engine/battle/moveEffects/reflect_light_screen_effect.asm" -INCLUDE "engine/battle/moveEffects/mist_effect.asm" -INCLUDE "engine/battle/moveEffects/one_hit_ko_effect.asm" -INCLUDE "engine/battle/moveEffects/pay_day_effect.asm" -INCLUDE "engine/battle/moveEffects/paralyze_effect.asm" +INCLUDE "engine/battle/move_effects/focus_energy.asm" +INCLUDE "engine/battle/move_effects/heal.asm" +INCLUDE "engine/battle/move_effects/transform.asm" +INCLUDE "engine/battle/move_effects/reflect_light_screen.asm" +INCLUDE "engine/battle/move_effects/mist.asm" +INCLUDE "engine/battle/move_effects/one_hit_ko.asm" +INCLUDE "engine/battle/move_effects/pay_day.asm" +INCLUDE "engine/battle/move_effects/paralyze.asm" diff --git a/engine/battle/battle_transitions.asm b/engine/battle/battle_transitions.asm index e4392a017..82c3318c0 100644 --- a/engine/battle/battle_transitions.asm +++ b/engine/battle/battle_transitions.asm @@ -1,17 +1,17 @@ BattleTransition: ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Delay3 xor a - ld [hWY], a + ldh [hWY], a dec a ld [wUpdateSpritesEnabled], a call DelayFrame ; Determine which OAM block is being used by the enemy trainer sprite (if there ; is one). - ld hl, wSpriteStateData1 + 2 - ld a, [hSpriteIndexOrTextID] ; enemy trainer sprite index (0 if wild battle) + ld hl, wSpritePlayerStateData1ImageIndex + ldh a, [hSpriteIndexOrTextID] ; enemy trainer sprite index (0 if wild battle) ld c, a ld b, 0 ld de, $10 @@ -118,9 +118,6 @@ GetBattleTransitionID_CompareLevels: ld [wBattleTransitionSpiralDirection], a ret -; fails to recognize VICTORY_ROAD_2F, VICTORY_ROAD_3F, all ROCKET_HIDEOUT maps, -; POKEMON_MANSION_1F, SEAFOAM_ISLANDS_[B1F-B4F], POWER_PLANT, DIGLETTS_CAVE -; and SILPH_CO_[9-11]F as dungeon maps GetBattleTransitionID_IsDungeonMap: ld a, [wCurMap] ld e, a @@ -151,51 +148,21 @@ GetBattleTransitionID_IsDungeonMap: res 2, c ret -; GetBattleTransitionID_IsDungeonMap checks if wCurMap -; is equal to one of these maps -DungeonMaps1: - db VIRIDIAN_FOREST - db ROCK_TUNNEL_1F - db SEAFOAM_ISLANDS_1F - db ROCK_TUNNEL_B1F - db $FF - -; GetBattleTransitionID_IsDungeonMap checks if wCurMap -; is in between or equal to each pair of maps -DungeonMaps2: - ; all MT_MOON maps - db MT_MOON_1F - db MT_MOON_B2F - - ; all SS_ANNE maps, VICTORY_ROAD_1F, LANCES_ROOM, and HALL_OF_FAME - db SS_ANNE_1F - db HALL_OF_FAME - - ; all POKEMON_TOWER maps and Lavender Town buildings - db LAVENDER_POKECENTER - db LAVENDER_CUBONE_HOUSE - - ; SILPH_CO_[2-8]F, POKEMON_MANSION[2F-B1F], SAFARI_ZONE, and - ; CERULEAN_CAVE maps, except for SILPH_CO_1F - db SILPH_CO_2F - db CERULEAN_CAVE_1F - db $FF +INCLUDE "data/maps/dungeon_maps.asm" LoadBattleTransitionTile: - ld hl, vChars1 + $7f0 + ld hl, vChars1 tile $7f ld de, BattleTransitionTile - lb bc, BANK(BattleTransitionTile), (BattleTransitionTileEnd - BattleTransitionTile) / $10 + lb bc, BANK(BattleTransitionTile), 1 jp CopyVideoData -BattleTransitionTile: - INCBIN "gfx/battle_transition.2bpp" -BattleTransitionTileEnd: +BattleTransitionTile: INCBIN "gfx/overworld/battle_transition.2bpp" BattleTransition_BlackScreen: ld a, $ff - ld [rBGP], a - ld [rOBP0], a - ld [rOBP1], a + ldh [rBGP], a + ldh [rOBP0], a + ldh [rOBP1], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 @@ -212,7 +179,7 @@ BattleTransition_Spiral: call BattleTransition_InwardSpiral jr .done .outwardSpiral - coord hl, 10, 10 + hlcoord 10, 10 ld a, $3 ld [wOutwardSpiralCurrentDirection], a ld a, l @@ -241,7 +208,7 @@ BattleTransition_Spiral: BattleTransition_InwardSpiral: ld a, 7 ld [wInwardSpiralUpdateScreenCounter], a - coord hl, 0, 0 + hlcoord 0, 0 ld c, SCREEN_HEIGHT - 1 ld de, SCREEN_WIDTH call BattleTransition_InwardSpiral_ @@ -359,9 +326,9 @@ BattleTransition_FlashScreen_: ld hl, BattleTransition_FlashScreenPalettes .loop ld a, [hli] - cp $1 + cp 1 jr z, .done - ld [rBGP], a + ldh [rBGP], a call UpdateGBCPal_BGP ld c, 2 call DelayFrames @@ -372,8 +339,19 @@ BattleTransition_FlashScreen_: ret BattleTransition_FlashScreenPalettes: - db $F9,$FE,$FF,$FE,$F9,$E4,$90,$40,$00,$40,$90,$E4 - db $01 ; terminator + db %11111001 + db %11111110 + db %11111111 + db %11111110 + db %11111001 + db %11100100 + db %10010000 + db %01000000 + db %00000000 + db %01000000 + db %10010000 + db %11100100 + db 1 ; end ; used for low level trainer dungeon battles BattleTransition_Shrink: @@ -381,25 +359,25 @@ BattleTransition_Shrink: .loop push bc xor a - ld [H_AUTOBGTRANSFERENABLED], a - coord hl, 0, 7 - coord de, 0, 8 + ldh [hAutoBGTransferEnabled], a + hlcoord 0, 7 + decoord 0, 8 ld bc, -SCREEN_WIDTH * 2 call BattleTransition_CopyTiles1 - coord hl, 0, 10 - coord de, 0, 9 + hlcoord 0, 10 + decoord 0, 9 ld bc, SCREEN_WIDTH * 2 call BattleTransition_CopyTiles1 - coord hl, 8, 0 - coord de, 9, 0 + hlcoord 8, 0 + decoord 9, 0 ld bc, -2 call BattleTransition_CopyTiles2 - coord hl, 11, 0 - coord de, 10, 0 + hlcoord 11, 0 + decoord 10, 0 ld bc, 2 call BattleTransition_CopyTiles2 ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld c, 6 call DelayFrames pop bc @@ -413,23 +391,23 @@ BattleTransition_Shrink: BattleTransition_Split: ld c, 9 xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a .loop push bc - coord hl, 0, 16 - coord de, 0, 17 + hlcoord 0, 16 + decoord 0, 17 ld bc, -SCREEN_WIDTH * 2 call BattleTransition_CopyTiles1 - coord hl, 0, 1 - coord de, 0, 0 + hlcoord 0, 1 + decoord 0, 0 ld bc, SCREEN_WIDTH * 2 call BattleTransition_CopyTiles1 - coord hl, 18, 0 - coord de, 19, 0 + hlcoord 18, 0 + decoord 19, 0 ld bc, -2 call BattleTransition_CopyTiles2 - coord hl, 1, 0 - coord de, 0, 0 + hlcoord 1, 0 + decoord 0, 0 ld bc, 2 call BattleTransition_CopyTiles2 call BattleTransition_TransferDelay3 @@ -525,10 +503,10 @@ BattleTransition_CopyTiles2: ; used for high level wild dungeon battles BattleTransition_VerticalStripes: ld c, SCREEN_HEIGHT - coord hl, 0, 0 - coord de, 1, 17 + hlcoord 0, 0 + decoord 1, 17 xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a .loop push bc push hl @@ -564,10 +542,10 @@ BattleTransition_VerticalStripes_: ; used for low level wild dungeon battles BattleTransition_HorizontalStripes: ld c, SCREEN_WIDTH - coord hl, 0, 0 - coord de, 19, 1 + hlcoord 0, 0 + decoord 19, 1 xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a .loop push bc push hl @@ -614,7 +592,7 @@ BattleTransition_FlashScreen: ld b, $3 call BattleTransition_FlashScreen_ xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ret BattleTransition_Circle_Sub1: @@ -633,10 +611,10 @@ BattleTransition_Circle_Sub1: BattleTransition_TransferDelay3: ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Delay3 xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ret ; used for low level wild non-dungeon battles @@ -683,87 +661,41 @@ BattleTransition_Circle_Sub2: ld l, a jp BattleTransition_Circle_Sub3 -BattleTransition_HalfCircle1: - db $01 - dw BattleTransition_CircleData1 - dwCoord 18, 6 - - db $01 - dw BattleTransition_CircleData2 - dwCoord 19, 3 - - db $01 - dw BattleTransition_CircleData3 - dwCoord 18, 0 - - db $01 - dw BattleTransition_CircleData4 - dwCoord 14, 0 - - db $01 - dw BattleTransition_CircleData5 - dwCoord 10, 0 +; halves + const_def + const CIRCLE_LEFT + const CIRCLE_RIGHT - db $00 - dw BattleTransition_CircleData5 - dwCoord 9, 0 +half_circle: MACRO + ; quadrant x, circle data, target coord + db \1 + dw \2 + dwcoord \3, \4 +ENDM - db $00 - dw BattleTransition_CircleData4 - dwCoord 5, 0 - - db $00 - dw BattleTransition_CircleData3 - dwCoord 1, 0 - - db $00 - dw BattleTransition_CircleData2 - dwCoord 0, 3 - - db $00 - dw BattleTransition_CircleData1 - dwCoord 1, 6 +BattleTransition_HalfCircle1: + half_circle CIRCLE_RIGHT, BattleTransition_CircleData1, 18, 6 + half_circle CIRCLE_RIGHT, BattleTransition_CircleData2, 19, 3 + half_circle CIRCLE_RIGHT, BattleTransition_CircleData3, 18, 0 + half_circle CIRCLE_RIGHT, BattleTransition_CircleData4, 14, 0 + half_circle CIRCLE_RIGHT, BattleTransition_CircleData5, 10, 0 + half_circle CIRCLE_LEFT, BattleTransition_CircleData5, 9, 0 + half_circle CIRCLE_LEFT, BattleTransition_CircleData4, 5, 0 + half_circle CIRCLE_LEFT, BattleTransition_CircleData3, 1, 0 + half_circle CIRCLE_LEFT, BattleTransition_CircleData2, 0, 3 + half_circle CIRCLE_LEFT, BattleTransition_CircleData1, 1, 6 BattleTransition_HalfCircle2: - db $00 - dw BattleTransition_CircleData1 - dwCoord 1, 11 - - db $00 - dw BattleTransition_CircleData2 - dwCoord 0, 14 - - db $00 - dw BattleTransition_CircleData3 - dwCoord 1, 17 - - db $00 - dw BattleTransition_CircleData4 - dwCoord 5, 17 - - db $00 - dw BattleTransition_CircleData5 - dwCoord 9, 17 - - db $01 - dw BattleTransition_CircleData5 - dwCoord 10, 17 - - db $01 - dw BattleTransition_CircleData4 - dwCoord 14, 17 - - db $01 - dw BattleTransition_CircleData3 - dwCoord 18, 17 - - db $01 - dw BattleTransition_CircleData2 - dwCoord 19, 14 - - db $01 - dw BattleTransition_CircleData1 - dwCoord 18, 11 + half_circle CIRCLE_LEFT, BattleTransition_CircleData1, 1, 11 + half_circle CIRCLE_LEFT, BattleTransition_CircleData2, 0, 14 + half_circle CIRCLE_LEFT, BattleTransition_CircleData3, 1, 17 + half_circle CIRCLE_LEFT, BattleTransition_CircleData4, 5, 17 + half_circle CIRCLE_LEFT, BattleTransition_CircleData5, 9, 17 + half_circle CIRCLE_RIGHT, BattleTransition_CircleData5, 10, 17 + half_circle CIRCLE_RIGHT, BattleTransition_CircleData4, 14, 17 + half_circle CIRCLE_RIGHT, BattleTransition_CircleData3, 18, 17 + half_circle CIRCLE_RIGHT, BattleTransition_CircleData2, 19, 14 + half_circle CIRCLE_RIGHT, BattleTransition_CircleData1, 18, 11 BattleTransition_Circle_Sub3: push hl @@ -792,7 +724,7 @@ BattleTransition_Circle_Sub3: add hl, bc ld a, [de] inc de - cp $ff + cp -1 ret z and a jr z, BattleTransition_Circle_Sub3 @@ -810,17 +742,8 @@ BattleTransition_Circle_Sub3: jr nz, .loop2 jr BattleTransition_Circle_Sub3 -BattleTransition_CircleData1: - db $02,$03,$05,$04,$09,$FF - -BattleTransition_CircleData2: - db $01,$01,$02,$02,$04,$02,$04,$02,$03,$FF - -BattleTransition_CircleData3: - db $02,$01,$03,$01,$04,$01,$04,$01,$04,$01,$03,$01,$02,$01,$01,$01,$01,$FF - -BattleTransition_CircleData4: - db $04,$01,$04,$00,$03,$01,$03,$00,$02,$01,$02,$00,$01,$FF - -BattleTransition_CircleData5: - db $04,$00,$03,$00,$03,$00,$02,$00,$02,$00,$01,$00,$01,$00,$01,$FF +BattleTransition_CircleData1: db 2, 3, 5, 4, 9, -1 +BattleTransition_CircleData2: db 1, 1, 2, 2, 4, 2, 4, 2, 3, -1 +BattleTransition_CircleData3: db 2, 1, 3, 1, 4, 1, 4, 1, 4, 1, 3, 1, 2, 1, 1, 1, 1, -1 +BattleTransition_CircleData4: db 4, 1, 4, 0, 3, 1, 3, 0, 2, 1, 2, 0, 1, -1 +BattleTransition_CircleData5: db 4, 0, 3, 0, 3, 0, 2, 0, 2, 0, 1, 0, 1, 0, 1, -1 diff --git a/engine/battle/common_text.asm b/engine/battle/common_text.asm index 1c85efe9c..95c06bf5d 100644 --- a/engine/battle/common_text.asm +++ b/engine/battle/common_text.asm @@ -5,18 +5,18 @@ PrintBeginningBattleText: ld a, [wCurMap] cp POKEMON_TOWER_3F jr c, .notPokemonTower - cp MR_FUJIS_HOUSE + cp POKEMON_TOWER_7F + 1 jr c, .pokemonTower .notPokemonTower - ld a,[wBattleType] + ld a, [wBattleType] cp BATTLE_TYPE_PIKACHU - jr nz,.notPikachuBattle - callab IsPlayerPikachuAsleepInParty - ld e,$24 - jr c,.asm_f4026 - ld e,$a + jr nz, .notPikachuBattle + callfar IsPlayerPikachuAsleepInParty + ld e, $24 + jr c, .asm_f4026 + ld e, $a .asm_f4026 - callab PlayPikachuSoundClip + callfar PlayPikachuSoundClip jr .continue .notPikachuBattle ld a, [wEnemyMonSpecies2] @@ -39,7 +39,7 @@ PrintBeginningBattleText: and a jr nz, .doNotDrawPokeballs push hl - callab DrawAllPokeballs + callfar DrawAllPokeballs pop hl .doNotDrawPokeballs call PrintText @@ -54,7 +54,7 @@ PrintBeginningBattleText: ld a, b and a jr z, .noSilphScope - callab LoadEnemyMonData + callfar LoadEnemyMonData jr .notPokemonTower .noSilphScope ld hl, EnemyAppearedText @@ -70,8 +70,8 @@ PrintBeginningBattleText: call PrintText ld hl, UnveiledGhostText call PrintText - callab LoadEnemyMonData - callab MarowakAnim + callfar LoadEnemyMonData + callfar MarowakAnim ld hl, WildMonAppearedText call PrintText @@ -87,28 +87,28 @@ PrintBeginningBattleText: ret WildMonAppearedText: - TX_FAR _WildMonAppearedText - db "@" + text_far _WildMonAppearedText + text_end HookedMonAttackedText: - TX_FAR _HookedMonAttackedText - db "@" + text_far _HookedMonAttackedText + text_end EnemyAppearedText: - TX_FAR _EnemyAppearedText - db "@" + text_far _EnemyAppearedText + text_end TrainerWantsToFightText: - TX_FAR _TrainerWantsToFightText - db "@" + text_far _TrainerWantsToFightText + text_end UnveiledGhostText: - TX_FAR _UnveiledGhostText - db "@" + text_far _UnveiledGhostText + text_end GhostCantBeIDdText: - TX_FAR _GhostCantBeIDdText - db "@" + text_far _GhostCantBeIDdText + text_end PrintSendOutMonMessage: ld hl, wEnemyMonHP @@ -117,16 +117,16 @@ PrintSendOutMonMessage: ld hl, GoText jr z, .printText xor a - ld [H_MULTIPLICAND], a + ldh [hMultiplicand], a ld hl, wEnemyMonHP ld a, [hli] ld [wLastSwitchInEnemyMonHP], a - ld [H_MULTIPLICAND + 1], a + ldh [hMultiplicand + 1], a ld a, [hl] ld [wLastSwitchInEnemyMonHP + 1], a - ld [H_MULTIPLICAND + 2], a + ldh [hMultiplicand + 2], a ld a, 25 - ld [H_MULTIPLIER], a + ldh [hMultiplier], a call Multiply ld hl, wEnemyMonMaxHP ld a, [hli] @@ -137,9 +137,9 @@ PrintSendOutMonMessage: rr b ld a, b ld b, 4 - ld [H_DIVISOR], a ; enemy mon max HP divided by 4 + ldh [hDivisor], a ; enemy mon max HP divided by 4 call Divide - ld a, [H_QUOTIENT + 3] ; a = (enemy mon current HP * 25) / (enemy max HP / 4); this approximates the current percentage of max HP + ldh a, [hQuotient + 3] ; a = (enemy mon current HP * 25) / (enemy max HP / 4); this approximates the current percentage of max HP ld hl, GoText ; 70% or greater cp 70 jr nc, .printText @@ -154,39 +154,39 @@ PrintSendOutMonMessage: jp PrintText GoText: - TX_FAR _GoText - TX_ASM + text_far _GoText + text_asm jr PrintPlayerMon1Text DoItText: - TX_FAR _DoItText - TX_ASM + text_far _DoItText + text_asm jr PrintPlayerMon1Text GetmText: - TX_FAR _GetmText - TX_ASM + text_far _GetmText + text_asm jr PrintPlayerMon1Text EnemysWeakText: - TX_FAR _EnemysWeakText - TX_ASM + text_far _EnemysWeakText + text_asm PrintPlayerMon1Text: ld hl, PlayerMon1Text ret PlayerMon1Text: - TX_FAR _PlayerMon1Text - db "@" + text_far _PlayerMon1Text + text_end RetreatMon: ld hl, PlayerMon2Text jp PrintText PlayerMon2Text: - TX_FAR _PlayerMon2Text - TX_ASM + text_far _PlayerMon2Text + text_asm push de push bc ld hl, wEnemyMonHP + 1 @@ -195,14 +195,14 @@ PlayerMon2Text: dec hl ld a, [de] sub b - ld [H_MULTIPLICAND + 2], a + ldh [hMultiplicand + 2], a dec de ld b, [hl] ld a, [de] sbc b - ld [H_MULTIPLICAND + 1], a + ldh [hMultiplicand + 1], a ld a, 25 - ld [H_MULTIPLIER], a + ldh [hMultiplier], a call Multiply ld hl, wEnemyMonMaxHP ld a, [hli] @@ -213,11 +213,11 @@ PlayerMon2Text: rr b ld a, b ld b, 4 - ld [H_DIVISOR], a + ldh [hDivisor], a call Divide pop bc pop de - ld a, [H_QUOTIENT + 3] ; a = ((LastSwitchInEnemyMonHP - CurrentEnemyMonHP) / 25) / (EnemyMonMaxHP / 4) + ldh a, [hQuotient + 3] ; a = ((LastSwitchInEnemyMonHP - CurrentEnemyMonHP) / 25) / (EnemyMonMaxHP / 4) ; Assuming that the enemy mon hasn't gained HP since the last switch in, ; a approximates the percentage that the enemy mon's total HP has decreased ; since the last switch in. @@ -236,18 +236,18 @@ PlayerMon2Text: ret EnoughText: - TX_FAR _EnoughText - TX_ASM + text_far _EnoughText + text_asm jr PrintComeBackText OKExclamationText: - TX_FAR _OKExclamationText - TX_ASM + text_far _OKExclamationText + text_asm jr PrintComeBackText GoodText: - TX_FAR _GoodText - TX_ASM + text_far _GoodText + text_asm jr PrintComeBackText PrintComeBackText: @@ -255,5 +255,5 @@ PrintComeBackText: ret ComeBackText: - TX_FAR _ComeBackText - db "@" + text_far _ComeBackText + text_end diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 601469029..f66f509fd 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -1,107 +1,17 @@ BattleCore: -; These are move effects (second value from the Moves table in bank $E). -ResidualEffects1: -; most non-side effects - db CONVERSION_EFFECT - db HAZE_EFFECT - db SWITCH_AND_TELEPORT_EFFECT - db MIST_EFFECT - db FOCUS_ENERGY_EFFECT - db CONFUSION_EFFECT - db HEAL_EFFECT - db TRANSFORM_EFFECT - db LIGHT_SCREEN_EFFECT - db REFLECT_EFFECT - db POISON_EFFECT - db PARALYZE_EFFECT - db SUBSTITUTE_EFFECT - db MIMIC_EFFECT - db LEECH_SEED_EFFECT - db SPLASH_EFFECT - db -1 -SetDamageEffects: -; moves that do damage but not through normal calculations -; e.g., Super Fang, Psywave - db SUPER_FANG_EFFECT - db SPECIAL_DAMAGE_EFFECT - db -1 -ResidualEffects2: -; non-side effects not included in ResidualEffects1 -; stat-affecting moves, sleep-inflicting moves, and Bide -; e.g., Meditate, Bide, Hypnosis - db $01 - db ATTACK_UP1_EFFECT - db DEFENSE_UP1_EFFECT - db SPEED_UP1_EFFECT - db SPECIAL_UP1_EFFECT - db ACCURACY_UP1_EFFECT - db EVASION_UP1_EFFECT - db ATTACK_DOWN1_EFFECT - db DEFENSE_DOWN1_EFFECT - db SPEED_DOWN1_EFFECT - db SPECIAL_DOWN1_EFFECT - db ACCURACY_DOWN1_EFFECT - db EVASION_DOWN1_EFFECT - db BIDE_EFFECT - db SLEEP_EFFECT - db ATTACK_UP2_EFFECT - db DEFENSE_UP2_EFFECT - db SPEED_UP2_EFFECT - db SPECIAL_UP2_EFFECT - db ACCURACY_UP2_EFFECT - db EVASION_UP2_EFFECT - db ATTACK_DOWN2_EFFECT - db DEFENSE_DOWN2_EFFECT - db SPEED_DOWN2_EFFECT - db SPECIAL_DOWN2_EFFECT - db ACCURACY_DOWN2_EFFECT - db EVASION_DOWN2_EFFECT - db -1 -AlwaysHappenSideEffects: -; Attacks that aren't finished after they faint the opponent. - db DRAIN_HP_EFFECT - db EXPLODE_EFFECT - db DREAM_EATER_EFFECT - db PAY_DAY_EFFECT - db TWO_TO_FIVE_ATTACKS_EFFECT - db $1E - db ATTACK_TWICE_EFFECT - db RECOIL_EFFECT - db TWINEEDLE_EFFECT - db RAGE_EFFECT - db -1 -SpecialEffects: -; Effects from arrays 2, 4, and 5B, minus Twineedle and Rage. -; Includes all effects that do not need to be called at the end of -; ExecutePlayerMove (or ExecuteEnemyMove), because they have already been handled - db DRAIN_HP_EFFECT - db EXPLODE_EFFECT - db DREAM_EATER_EFFECT - db PAY_DAY_EFFECT - db SWIFT_EFFECT - db TWO_TO_FIVE_ATTACKS_EFFECT - db $1E - db CHARGE_EFFECT - db SUPER_FANG_EFFECT - db SPECIAL_DAMAGE_EFFECT - db FLY_EFFECT - db ATTACK_TWICE_EFFECT - db JUMP_KICK_EFFECT - db RECOIL_EFFECT - ; fallthrough to Next EffectsArray -SpecialEffectsCont: -; damaging moves whose effect is executed prior to damage calculation - db THRASH_PETAL_DANCE_EFFECT - db TRAPPING_EFFECT - db -1 +INCLUDE "data/battle/residual_effects_1.asm" +INCLUDE "data/battle/set_damage_effects.asm" +INCLUDE "data/battle/residual_effects_2.asm" +INCLUDE "data/battle/always_happen_effects.asm" +INCLUDE "data/battle/special_effects.asm" SlidePlayerAndEnemySilhouettesOnScreen: call LoadPlayerBackPic ld a, MESSAGE_BOX ; the usual text box at the bottom of the screen ld [wTextBoxID], a call DisplayTextBoxID - coord hl, 1, 5 + hlcoord 1, 5 lb bc, 3, 7 call ClearScreenArea call DisableLCD @@ -117,7 +27,7 @@ SlidePlayerAndEnemySilhouettesOnScreen: or c jr nz, .clearBackgroundLoop ; copy the work RAM tile map to VRAM - coord hl, 0, 0 + hlcoord 0, 0 ld de, vBGMap0 ld b, 18 ; number of rows .copyRowLoop @@ -138,25 +48,25 @@ SlidePlayerAndEnemySilhouettesOnScreen: jr nz, .copyRowLoop call EnableLCD ld a, $90 - ld [hWY], a - ld [rWY], a + ldh [hWY], a + ldh [rWY], a xor a - ld [hTilesetType], a - ld [hSCY], a + ldh [hTilesetType], a + ldh [hSCY], a dec a ld [wUpdateSpritesEnabled], a call Delay3 xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld b, $70 ld c, $90 ld a, c - ld [hSCX], a + ldh [hSCX], a call DelayFrame ld a, %11100100 ; inverted palette for silhouette effect - ld [rBGP], a - ld [rOBP0], a - ld [rOBP1], a + ldh [rBGP], a + ldh [rOBP0], a + ldh [rOBP1], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 @@ -171,26 +81,26 @@ SlidePlayerAndEnemySilhouettesOnScreen: call SetScrollXForSlidingPlayerBodyLeft ; end background scrolling on line $60 call SlidePlayerHeadLeft ld a, c - ld [hSCX], a + ldh [hSCX], a dec c dec c jr nz, .slideSilhouettesLoop ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld a, $31 - ld [hStartTileID], a - coord hl, 1, 5 + ldh [hStartTileID], a + hlcoord 1, 5 predef CopyUncompressedPicToTilemap xor a - ld [hWY], a - ld [rWY], a + ldh [hWY], a + ldh [rWY], a inc a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Delay3 ld b, SET_PAL_BATTLE call RunPaletteCommand call HideSprites - jpab PrintBeginningBattleText + jpfar PrintBeginningBattleText ; when a battle is starting, silhouettes of the player's pic and the enemy's pic are slid onto the screen ; the lower of the player's pic (his body) is part of the background, but his head is a sprite @@ -211,13 +121,13 @@ SlidePlayerHeadLeft: ret SetScrollXForSlidingPlayerBodyLeft: - ld a, [rLY] + ldh a, [rLY] cp l jr nz, SetScrollXForSlidingPlayerBodyLeft ld a, h - ld [rSCX], a + ldh [rSCX], a .loop - ld a, [rLY] + ldh a, [rLY] cp h jr z, .loop ret @@ -277,7 +187,7 @@ StartBattle: ld hl, .outOfSafariBallsText jp PrintText .notOutOfSafariBalls - callab PrintSafariZoneBattleText + callfar PrintSafariZoneBattleText ld a, [wEnemyMonSpeed + 1] add a ld b, a ; init b (which is later compared with random value) to (enemy speed % 256) * 2 @@ -306,8 +216,8 @@ StartBattle: jr EnemyRan ; if b was greater than the random value, the enemy runs .outOfSafariBallsText - TX_FAR _OutOfSafariBallsText - db "@" + text_far _OutOfSafariBallsText + text_end .playerSendOutFirstMon xor a @@ -331,7 +241,7 @@ StartBattle: ld [wcf91], a ld [wBattleMonSpecies2], a call LoadScreenTilesFromBuffer1 - coord hl, 1, 5 + hlcoord 1, 5 ld a, $9 call SlideTrainerPicOffScreen call SaveScreenTilesToBuffer1 @@ -365,16 +275,16 @@ EnemyRan: ld a, SFX_RUN call PlaySoundWaitForCurrent xor a - ld [H_WHOSETURN], a - jpab AnimationSlideEnemyMonOff + ldh [hWhoseTurn], a + jpfar AnimationSlideEnemyMonOff WildRanText: - TX_FAR _WildRanText - db "@" + text_far _WildRanText + text_end EnemyRanText: - TX_FAR _EnemyRanText - db "@" + text_far _EnemyRanText + text_end MainInBattleLoop: call ReadPlayerMonCurHPAndStatus @@ -464,7 +374,7 @@ MainInBattleLoop: jr nz, .specialMoveNotUsed ld [wPlayerSelectedMove], a .specialMoveNotUsed - callab SwitchEnemyMon + callfar SwitchEnemyMon .noLinkBattle ld a, [wPlayerSelectedMove] cp QUICK_ATTACK @@ -497,7 +407,7 @@ MainInBattleLoop: jr nc, .playerMovesFirst ; if player is faster jr .enemyMovesFirst ; if enemy is faster .speedEqual ; 50/50 chance for both players - ld a, [hSerialConnectionStatus] + ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK jr z, .invertOutcome call BattleRandom @@ -511,8 +421,8 @@ MainInBattleLoop: jr .playerMovesFirst .enemyMovesFirst ld a, $1 - ld [H_WHOSETURN], a - callab TrainerAI + ldh [hWhoseTurn], a + callfar TrainerAI jr c, .AIActionUsedEnemyFirst call ExecuteEnemyMove ld a, [wEscapedFromBattle] @@ -549,8 +459,8 @@ MainInBattleLoop: jp z, HandlePlayerMonFainted call DrawHUDsAndHPBars ld a, $1 - ld [H_WHOSETURN], a - callab TrainerAI + ldh [hWhoseTurn], a + callfar TrainerAI jr c, .AIActionUsedPlayerFirst call ExecuteEnemyMove ld a, [wEscapedFromBattle] @@ -569,7 +479,7 @@ MainInBattleLoop: HandlePoisonBurnLeechSeed: ld hl, wBattleMonHP ld de, wBattleMonStatus - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playersTurn ld hl, wEnemyMonHP @@ -594,7 +504,7 @@ HandlePoisonBurnLeechSeed: call HandlePoisonBurnLeechSeed_DecreaseOwnHP .notBurnedOrPoisoned ld de, wPlayerBattleStatus2 - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playersTurn2 ld de, wEnemyBattleStatus2 @@ -603,16 +513,16 @@ HandlePoisonBurnLeechSeed: add a jr nc, .notLeechSeeded push hl - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] push af xor $1 - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a xor a ld [wAnimationType], a ld a, ABSORB call PlayMoveAnimation ; play leech seed animation (from opposing mon) pop af - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a pop hl call HandlePoisonBurnLeechSeed_DecreaseOwnHP call HandlePoisonBurnLeechSeed_IncreaseEnemyHP @@ -631,16 +541,16 @@ HandlePoisonBurnLeechSeed: ret HurtByPoisonText: - TX_FAR _HurtByPoisonText - db "@" + text_far _HurtByPoisonText + text_end HurtByBurnText: - TX_FAR _HurtByBurnText - db "@" + text_far _HurtByBurnText + text_end HurtByLeechSeedText: - TX_FAR _HurtByLeechSeedText - db "@" + text_far _HurtByLeechSeedText + text_end ; decreases the mon's current HP by 1/16 of the Max HP (multiplied by number of toxic ticks if active) ; note that the toxic ticks are considered even if the damage is not poison (hence the Leech Seed glitch) @@ -670,7 +580,7 @@ HandlePoisonBurnLeechSeed_DecreaseOwnHP: .nonZeroDamage ld hl, wPlayerBattleStatus3 ld de, wPlayerToxicCounter - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playersTurn ld hl, wEnemyBattleStatus3 @@ -681,7 +591,7 @@ HandlePoisonBurnLeechSeed_DecreaseOwnHP: ld a, [de] ; increment toxic counter inc a ld [de], a - ld hl, $0000 + ld hl, 0 .toxicTicksLoop add hl, bc dec a @@ -717,7 +627,7 @@ HandlePoisonBurnLeechSeed_DecreaseOwnHP: HandlePoisonBurnLeechSeed_IncreaseEnemyHP: push hl ld hl, wEnemyMonMaxHP - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playersTurn ld hl, wBattleMonMaxHP @@ -754,23 +664,23 @@ HandlePoisonBurnLeechSeed_IncreaseEnemyHP: ld [hl], a ld [wHPBarNewHP], a .noOverfullHeal - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] xor $1 - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a call UpdateCurMonHPBar - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] xor $1 - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a pop hl ret UpdateCurMonHPBar: - coord hl, 10, 9 ; tile pointer to player HP bar - ld a, [H_WHOSETURN] + hlcoord 10, 9 ; tile pointer to player HP bar + ldh a, [hWhoseTurn] and a ld a, $1 jr z, .playersTurn - coord hl, 2, 2 ; tile pointer to enemy HP bar + hlcoord 2, 2 ; tile pointer to enemy HP bar xor a .playersTurn push bc @@ -866,10 +776,10 @@ FaintEnemyPokemon: ld hl, wPlayerUsedMove ld [hli], a ld [hl], a - coord hl, 12, 5 - coord de, 12, 6 + hlcoord 12, 5 + decoord 12, 6 call SlideDownFaintedMonPic - coord hl, 0, 0 + hlcoord 0, 0 lb bc, 4, 11 call ClearScreenArea ld a, [wIsInBattle] @@ -936,7 +846,7 @@ FaintEnemyPokemon: .giveExpToMonsThatFought xor a ld [wBoostExpByExpAll], a - callab GainExperience + callfar GainExperience pop af ret z ; return if no exp all @@ -954,11 +864,11 @@ FaintEnemyPokemon: jr nz, .gainExpFlagsLoop ld a, b ld [wPartyGainExpFlags], a - jpab GainExperience + jpfar GainExperience EnemyMonFaintedText: - TX_FAR _EnemyMonFaintedText - db "@" + text_far _EnemyMonFaintedText + text_end EndLowHealthAlarm: ; This function is called when the player has the won the battle. It turns off @@ -993,11 +903,11 @@ ReplaceFaintedEnemyMon: ld e, $30 call GetBattleHealthBarColor setpal SHADE_BLACK, SHADE_DARK, SHADE_LIGHT, SHADE_WHITE - ld [rOBP0], a - ld [rOBP1], a + ldh [rOBP0], a + ldh [rOBP1], a call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 - callab DrawEnemyPokeballs + callfar DrawEnemyPokeballs ld a, [wLinkState] cp LINK_STATE_BATTLING jr nz, .notLinkBattle @@ -1025,7 +935,7 @@ TrainerBattleVictory: ld b, MUSIC_DEFEATED_TRAINER .gymleader ld a, [wTrainerClass] - cp SONY3 ; final battle against rival + cp RIVAL3 ; final battle against rival jr nz, .notrival ld b, MUSIC_DEFEATED_GYM_LEADER ld hl, wFlags_D733 @@ -1053,12 +963,12 @@ TrainerBattleVictory: predef_jump AddBCDPredef MoneyForWinningText: - TX_FAR _MoneyForWinningText - db "@" + text_far _MoneyForWinningText + text_end TrainerDefeatedText: - TX_FAR _TrainerDefeatedText - db "@" + text_far _TrainerDefeatedText + text_end PlayBattleVictoryMusic: push af @@ -1124,11 +1034,11 @@ RemoveFaintedPlayerMon: ld [hl], a ld [wBattleMonStatus], a call ReadPlayerMonCurHPAndStatus - coord hl, 9, 7 + hlcoord 9, 7 lb bc, 5, 11 call ClearScreenArea - coord hl, 1, 10 - coord de, 1, 11 + hlcoord 1, 10 + decoord 1, 11 call SlideDownFaintedMonPic ld a, $1 ld [wBattleResult], a @@ -1143,10 +1053,10 @@ RemoveFaintedPlayerMon: ld a, [wPlayerMonNumber] ld [wWhichPokemon], a - callab IsThisPartymonStarterPikachu_Party + callfar IsThisPartymonStarterPikachu_Party jr nc, .notPlayerPikachu ld e, $3 - callab PlayPikachuSoundClip + callfar PlayPikachuSoundClip jr .printText .notPlayerPikachu ld a, [wBattleMonSpecies] @@ -1173,8 +1083,8 @@ RemoveFaintedPlayerMon: ret PlayerMonFaintedText: - TX_FAR _PlayerMonFaintedText - db "@" + text_far _PlayerMonFaintedText + text_end ; asks if you want to use next mon ; stores whether you ran in C flag @@ -1188,7 +1098,7 @@ DoUseNextMonDialogue: ld hl, UseNextMonText call PrintText .displayYesNoBox - coord hl, 13, 9 + hlcoord 13, 9 lb bc, 10, 14 ld a, TWO_OPTION_MENU ld [wTextBoxID], a @@ -1207,8 +1117,8 @@ DoUseNextMonDialogue: jp TryRunningFromBattle UseNextMonText: - TX_FAR _UseNextMonText - db "@" + text_far _UseNextMonText + text_end ; choose next player mon to send out ; stores whether enemy mon has no HP left in Z flag @@ -1263,9 +1173,9 @@ HandlePlayerBlackOut: cp LINK_STATE_BATTLING jr z, .notSony1Battle ld a, [wCurOpponent] - cp OPP_SONY1 + cp OPP_RIVAL1 jr nz, .notSony1Battle - coord hl, 0, 0 ; sony 1 battle + hlcoord 0, 0 ; sony 1 battle lb bc, 8, 21 call ClearScreenArea call ScrollTrainerPicAfterBattle @@ -1294,19 +1204,19 @@ HandlePlayerBlackOut: ret Sony1WinText: - TX_FAR _Sony1WinText - db "@" + text_far _Sony1WinText + text_end PlayerBlackedOutText2: - TX_FAR _PlayerBlackedOutText2 - db "@" + text_far _PlayerBlackedOutText2 + text_end LinkBattleLostText: - TX_FAR _LinkBattleLostText - db "@" + text_far _LinkBattleLostText + text_end ; slides pic of fainted mon downwards until it disappears -; bug: when this is called, [H_AUTOBGTRANSFERENABLED] is non-zero, so there is screen tearing +; bug: when this is called, [hAutoBGTransferEnabled] is non-zero, so there is screen tearing SlideDownFaintedMonPic: ld a, [wd730] push af @@ -1359,9 +1269,9 @@ SevenSpacesText: ; slides the player or enemy trainer off screen ; a is the number of tiles to slide it horizontally (always 9 for the player trainer or 8 for the enemy trainer) ; if a is 8, the slide is to the right, else it is to the left -; bug: when this is called, [H_AUTOBGTRANSFERENABLED] is non-zero, so there is screen tearing +; bug: when this is called, [hAutoBGTransferEnabled] is non-zero, so there is screen tearing SlideTrainerPicOffScreen: - ld [hSlideAmount], a + ldh [hSlideAmount], a ld c, a .slideStepLoop ; each iteration, the trainer pic is slid one tile left/right push bc @@ -1369,10 +1279,10 @@ SlideTrainerPicOffScreen: ld b, 7 ; number of rows .rowLoop push hl - ld a, [hSlideAmount] + ldh a, [hSlideAmount] ld c, a .columnLoop - ld a, [hSlideAmount] + ldh a, [hSlideAmount] cp 8 jr z, .slideRight .slideLeft ; slide player sprite off screen @@ -1435,7 +1345,7 @@ EnemySendOutFirstMon: ld [wAICount], a ld hl, wPlayerBattleStatus1 res 5, [hl] - coord hl, 18, 0 + hlcoord 18, 0 ld a, 8 call SlideTrainerPicOffScreen call PrintEmptyString @@ -1505,7 +1415,7 @@ EnemySendOutFirstMon: jr nz, .next4 ld hl, TrainerAboutToUseText call PrintText - coord hl, 0, 7 + hlcoord 0, 7 lb bc, 8, 1 ld a, TWO_OPTION_MENU ld [wTextBoxID], a @@ -1540,7 +1450,7 @@ EnemySendOutFirstMon: call LoadScreenTilesFromBuffer1 .next4 call ClearSprites - coord hl, 0, 0 + hlcoord 0, 0 lb bc, 4, 11 call ClearScreenArea ld b, SET_PAL_BATTLE @@ -1555,8 +1465,8 @@ EnemySendOutFirstMon: ld de, vFrontPic call LoadMonFrontSprite ld a, -$31 - ld [hStartTileID], a - coord hl, 15, 6 + ldh [hStartTileID], a + hlcoord 15, 6 predef AnimateSendingOutMon ld a, [wEnemyMonSpecies2] call PlayCry @@ -1571,16 +1481,16 @@ EnemySendOutFirstMon: jp SwitchPlayerMon TrainerAboutToUseText: - TX_FAR _TrainerAboutToUseText - db "@" + text_far _TrainerAboutToUseText + text_end TrainerSentOutText: - TX_FAR _TrainerSentOutText - db "@" + text_far _TrainerSentOutText + text_end ; tests if the player has any pokemon that are not fainted ; sets d = 0 if all fainted, d != 0 if some mons are still alive -AnyPartyAlive: +AnyPartyAlive:: ld a, [wPartyCount] ld e, a xor a @@ -1616,8 +1526,8 @@ HasMonFainted: ret NoWillText: - TX_FAR _NoWillText - db "@" + text_far _NoWillText + text_end ; try to run from battle (hl = player speed, de = enemy speed) ; stores whether the attempt was successful in carry flag @@ -1639,32 +1549,32 @@ TryRunningFromBattle: inc a ld [wNumRunAttempts], a ld a, [hli] - ld [H_MULTIPLICAND + 1], a + ldh [hMultiplicand + 1], a ld a, [hl] - ld [H_MULTIPLICAND + 2], a + ldh [hMultiplicand + 2], a ld a, [de] - ld [hEnemySpeed], a + ldh [hEnemySpeed], a inc de ld a, [de] - ld [hEnemySpeed + 1], a + ldh [hEnemySpeed + 1], a call LoadScreenTilesFromBuffer1 - ld de, H_MULTIPLICAND + 1 + ld de, hMultiplicand + 1 ld hl, hEnemySpeed ld c, 2 call StringCmp jr nc, .canEscape ; jump if player speed greater than enemy speed xor a - ld [H_MULTIPLICAND], a + ldh [hMultiplicand], a ld a, 32 - ld [H_MULTIPLIER], a + ldh [hMultiplier], a call Multiply ; multiply player speed by 32 - ld a, [H_PRODUCT + 2] - ld [H_DIVIDEND], a - ld a, [H_PRODUCT + 3] - ld [H_DIVIDEND + 1], a - ld a, [hEnemySpeed] + ldh a, [hProduct + 2] + ldh [hDividend], a + ldh a, [hProduct + 3] + ldh [hDividend + 1], a + ldh a, [hEnemySpeed] ld b, a - ld a, [hEnemySpeed + 1] + ldh a, [hEnemySpeed + 1] ; divide enemy speed by 4 srl b rr a @@ -1672,10 +1582,10 @@ TryRunningFromBattle: rr a and a jr z, .canEscape ; jump if enemy speed divided by 4, mod 256 is 0 - ld [H_DIVISOR], a ; ((enemy speed / 4) % 256) + ldh [hDivisor], a ; ((enemy speed / 4) % 256) ld b, $2 call Divide ; divide (player speed * 32) by ((enemy speed / 4) % 256) - ld a, [H_QUOTIENT + 2] + ldh a, [hQuotient + 2] and a ; is the quotient greater than 256? jr nz, .canEscape ; if so, the player can escape ld a, [wNumRunAttempts] @@ -1685,15 +1595,15 @@ TryRunningFromBattle: dec c jr z, .compareWithRandomValue ld b, 30 - ld a, [H_QUOTIENT + 3] + ldh a, [hQuotient + 3] add b - ld [H_QUOTIENT + 3], a + ldh [hQuotient + 3], a jr c, .canEscape jr .loop .compareWithRandomValue call BattleRandom ld b, a - ld a, [H_QUOTIENT + 3] + ldh a, [hQuotient + 3] cp b jr nc, .canEscape ; if the random value was less than or equal to the quotient ; plus 30 times the number of attempts, the player can escape @@ -1741,16 +1651,16 @@ TryRunningFromBattle: ret CantEscapeText: - TX_FAR _CantEscapeText - db "@" + text_far _CantEscapeText + text_end NoRunningText: - TX_FAR _NoRunningText - db "@" + text_far _NoRunningText + text_end GotAwayText: - TX_FAR _GotAwayText - db "@" + text_far _GotAwayText + text_end ; copies from party data to battle mon data when sending out a new player mon LoadBattleMonFromParty: @@ -1851,7 +1761,7 @@ LoadEnemyMonFromParty: ret SendOutMon: - callab PrintSendOutMonMessage + callfar PrintSendOutMonMessage ld hl, wEnemyMonHP ld a, [hli] or [hl] ; is enemy mon HP zero? @@ -1861,7 +1771,7 @@ SendOutMon: call DrawPlayerHUDAndHPBar predef LoadMonBackPic xor a - ld [hStartTileID], a + ldh [hStartTileID], a ld hl, wBattleAndStartSavedMenuItem ld [hli], a ld [hl], a @@ -1884,27 +1794,27 @@ SendOutMon: call RunPaletteCommand ld hl, wEnemyBattleStatus1 res USING_TRAPPING_MOVE, [hl] - callab IsThisPartymonStarterPikachu + callfar IsThisPartymonStarterPikachu jr c, .starterPikachu ld a, $1 - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a ld a, POOF_ANIM call PlayMoveAnimation - coord hl, 4, 11 + hlcoord 4, 11 predef AnimateSendingOutMon jr .playRegularCry .starterPikachu xor a - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a - callab StarterPikachuBattleEntranceAnimation - callab IsPlayerPikachuAsleepInParty + ldh [hAutoBGTransferEnabled], a + callfar StarterPikachuBattleEntranceAnimation + callfar IsPlayerPikachuAsleepInParty ld e, $24 jr c, .asm_3cd81 ld e, $a .asm_3cd81 - callab PlayPikachuSoundClip + callfar PlayPikachuSoundClip jr .done .playRegularCry ld a, [wcf91] @@ -1919,42 +1829,42 @@ AnimateRetreatingPlayerMon: push af ld a, [wPlayerMonNumber] ld [wWhichPokemon], a - callab IsThisPartymonStarterPikachu + callfar IsThisPartymonStarterPikachu pop bc ld a, b ld [wWhichPokemon], a jr c, .starterPikachu - coord hl, 1, 5 + hlcoord 1, 5 lb bc, 7, 7 call ClearScreenArea - coord hl, 3, 7 + hlcoord 3, 7 lb bc, 5, 5 xor a ld [wDownscaledMonSize], a - ld [hBaseTileID], a + ldh [hBaseTileID], a predef CopyDownscaledMonTiles ld c, 4 call DelayFrames call .clearScreenArea - coord hl, 4, 9 + hlcoord 4, 9 lb bc, 3, 3 ld a, 1 ld [wDownscaledMonSize], a xor a - ld [hBaseTileID], a + ldh [hBaseTileID], a predef CopyDownscaledMonTiles call Delay3 call .clearScreenArea ld a, $4c - Coorda 5, 11 + ldcoord_a 5, 11 jr .clearScreenArea .starterPikachu xor a - ld [H_WHOSETURN], a - callab AnimationSlideMonOff + ldh [hWhoseTurn], a + callfar AnimationSlideMonOff ret .clearScreenArea - coord hl, 1, 5 + hlcoord 1, 5 lb bc, 7, 7 call ClearScreenArea ret @@ -1977,15 +1887,15 @@ DrawHUDsAndHPBars: DrawPlayerHUDAndHPBar: xor a - ld [H_AUTOBGTRANSFERENABLED], a - coord hl, 9, 7 + ldh [hAutoBGTransferEnabled], a + hlcoord 9, 7 lb bc, 5, 11 call ClearScreenArea - callab PlacePlayerHUDTiles - coord hl, 18, 9 + callfar PlacePlayerHUDTiles + hlcoord 18, 9 ld [hl], $73 ld de, wBattleMonNick - coord hl, 10, 7 + hlcoord 10, 7 call CenterMonName call PlaceString ld hl, wBattleMonSpecies @@ -1996,7 +1906,7 @@ DrawPlayerHUDAndHPBar: ld de, wLoadedMonLevel ld bc, wBattleMonPP - wBattleMonLevel call CopyData - coord hl, 14, 8 + hlcoord 14, 8 push hl inc hl ld de, wLoadedMonStatus @@ -2007,10 +1917,10 @@ DrawPlayerHUDAndHPBar: .doNotPrintLevel ld a, [wLoadedMonSpecies] ld [wcf91], a - coord hl, 10, 9 + hlcoord 10, 9 predef DrawHP ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld hl, wPlayerHPBarColor call GetBattleHealthBarColor ld hl, wBattleMonHP @@ -2038,16 +1948,16 @@ DrawPlayerHUDAndHPBar: DrawEnemyHUDAndHPBar: xor a - ld [H_AUTOBGTRANSFERENABLED], a - coord hl, 0, 0 + ldh [hAutoBGTransferEnabled], a + hlcoord 0, 0 lb bc, 4, 12 call ClearScreenArea - callab PlaceEnemyHUDTiles + callfar PlaceEnemyHUDTiles ld de, wEnemyMonNick - coord hl, 1, 0 + hlcoord 1, 0 call CenterMonName call PlaceString - coord hl, 4, 1 + hlcoord 4, 1 push hl inc hl ld de, wEnemyMonStatus @@ -2060,9 +1970,9 @@ DrawEnemyHUDAndHPBar: .skipPrintLevel ld hl, wEnemyMonHP ld a, [hli] - ld [H_MULTIPLICAND + 1], a + ldh [hMultiplicand + 1], a ld a, [hld] - ld [H_MULTIPLICAND + 2], a + ldh [hMultiplicand + 2], a or [hl] ; is current HP zero? jr nz, .hpNonzero ; current HP is 0 @@ -2073,45 +1983,45 @@ DrawEnemyHUDAndHPBar: jp .drawHPBar .hpNonzero xor a - ld [H_MULTIPLICAND], a + ldh [hMultiplicand], a ld a, 48 - ld [H_MULTIPLIER], a + ldh [hMultiplier], a call Multiply ; multiply current HP by 48 ld hl, wEnemyMonMaxHP ld a, [hli] ld b, a ld a, [hl] - ld [H_DIVISOR], a + ldh [hDivisor], a ld a, b and a ; is max HP > 255? jr z, .doDivide ; if max HP > 255, scale both (current HP * 48) and max HP by dividing by 4 so that max HP fits in one byte ; (it needs to be one byte so it can be used as the divisor for the Divide function) - ld a, [H_DIVISOR] + ldh a, [hDivisor] srl b rr a srl b rr a - ld [H_DIVISOR], a - ld a, [H_PRODUCT + 2] + ldh [hDivisor], a + ldh a, [hProduct + 2] ld b, a srl b - ld a, [H_PRODUCT + 3] + ldh a, [hProduct + 3] rr a srl b rr a - ld [H_PRODUCT + 3], a + ldh [hProduct + 3], a ld a, b - ld [H_PRODUCT + 2], a + ldh [hProduct + 2], a .doDivide - ld a, [H_PRODUCT + 2] - ld [H_DIVIDEND], a - ld a, [H_PRODUCT + 3] - ld [H_DIVIDEND + 1], a + ldh a, [hProduct + 2] + ldh [hDividend], a + ldh a, [hProduct + 3] + ldh [hDividend + 1], a ld a, $2 ld b, a call Divide ; divide (current HP * 48) by max HP - ld a, [H_QUOTIENT + 3] + ldh a, [hQuotient + 3] ; set variables for DrawHPBar ld e, a ld a, $6 @@ -2120,10 +2030,10 @@ DrawEnemyHUDAndHPBar: .drawHPBar xor a ld [wHPBarType], a - coord hl, 2, 2 + hlcoord 2, 2 call DrawHPBar ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld hl, wEnemyHPBarColor GetBattleHealthBarColor: @@ -2161,7 +2071,7 @@ CenterMonName: pop de ret -DisplayBattleMenu: +DisplayBattleMenu:: call LoadScreenTilesFromBuffer1 ; restore saved screen ld a, [wBattleType] and a @@ -2206,12 +2116,12 @@ DisplayBattleMenu: ld bc, NAME_LENGTH call CopyData ; the following simulates the keystrokes by drawing menus on screen - coord hl, 9, 14 + hlcoord 9, 14 ld [hl], "▶" ld c, 20 call DelayFrames ld [hl], " " - coord hl, 9, 16 + hlcoord 9, 16 ld [hl], "▶" ld c, 20 call DelayFrames @@ -2238,14 +2148,14 @@ DisplayBattleMenu: ld a, " " jr z, .safariLeftColumn ; put cursor in left column for normal battle menu (i.e. when it's not a Safari battle) - Coorda 15, 14 ; clear upper cursor position in right column - Coorda 15, 16 ; clear lower cursor position in right column + ldcoord_a 15, 14 ; clear upper cursor position in right column + ldcoord_a 15, 16 ; clear lower cursor position in right column ld b, $9 ; top menu item X jr .leftColumn_WaitForInput .safariLeftColumn - Coorda 13, 14 - Coorda 13, 16 - coord hl, 7, 14 + ldcoord_a 13, 14 + ldcoord_a 13, 16 + hlcoord 7, 14 ld de, wNumSafariBalls lb bc, 1, 2 call PrintNumber @@ -2271,14 +2181,14 @@ DisplayBattleMenu: ld a, " " jr z, .safariRightColumn ; put cursor in right column for normal battle menu (i.e. when it's not a Safari battle) - Coorda 9, 14 ; clear upper cursor position in left column - Coorda 9, 16 ; clear lower cursor position in left column + ldcoord_a 9, 14 ; clear upper cursor position in left column + ldcoord_a 9, 16 ; clear lower cursor position in left column ld b, $f ; top menu item X jr .rightColumn_WaitForInput .safariRightColumn - Coorda 1, 14 ; clear upper cursor position in left column - Coorda 1, 16 ; clear lower cursor position in left column - coord hl, 7, 14 + ldcoord_a 1, 14 ; clear upper cursor position in left column + ldcoord_a 1, 16 ; clear lower cursor position in left column + hlcoord 7, 14 ld de, wNumSafariBalls lb bc, 1, 2 call PrintNumber @@ -2348,8 +2258,8 @@ DisplayBattleMenu: jp DisplayBattleMenu .RunAwayText - TX_FAR _RunAwayText - db "@" + text_far _RunAwayText + text_end .upperLeftMenuItemWasNotSelected ; a menu item other than the upper left item was selected cp $2 @@ -2485,8 +2395,8 @@ UseBagItem: ret ItemsCantBeUsedHereText: - TX_FAR _ItemsCantBeUsedHereText - db "@" + text_far _ItemsCantBeUsedHereText + text_end PartyMenuOrRockOrRun: dec a ; was Run selected? @@ -2517,7 +2427,7 @@ PartyMenuOrRockOrRun: call GBPalNormal jp DisplayBattleMenu .partyMonDeselected - coord hl, 11, 11 + hlcoord 11, 11 ld bc, 6 * SCREEN_WIDTH + 9 ld a, " " call FillMemory @@ -2562,7 +2472,7 @@ PartyMenuOrRockOrRun: predef StatusScreen2 ; now we need to reload the enemy mon pic ld a, 1 - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a ld a, [wEnemyBattleStatus2] bit HAS_SUBSTITUTE_UP, a ; does the enemy mon have a substitute? ld hl, AnimationSubstitute @@ -2609,7 +2519,7 @@ PartyMenuOrRockOrRun: ; fall through to SwitchPlayerMon SwitchPlayerMon: - callab RetreatMon + callfar RetreatMon ld c, 50 call DelayFrames call AnimateRetreatingPlayerMon @@ -2632,8 +2542,8 @@ SwitchPlayerMon: ret AlreadyOutText: - TX_FAR _AlreadyOutText - db "@" + text_far _AlreadyOutText + text_end BattleMenu_RunWasSelected: call LoadScreenTilesFromBuffer1 @@ -2662,18 +2572,18 @@ MoveSelectionMenu: ld de, wMoves ld bc, NUM_MOVES call CopyData - callab FormatMovesString + callfar FormatMovesString ret .writemoves ld de, wMovesString - ld a, [hFlags_0xFFFA] + ldh a, [hFlagsFFFA] set 2, a - ld [hFlags_0xFFFA], a + ldh [hFlagsFFFA], a call PlaceString - ld a, [hFlags_0xFFFA] + ldh a, [hFlagsFFFA] res 2, a - ld [hFlags_0xFFFA], a + ldh [hFlagsFFFA], a ret .regularmenu @@ -2681,17 +2591,17 @@ MoveSelectionMenu: ret z ld hl, wBattleMonMoves call .loadmoves - coord hl, 4, 12 + hlcoord 4, 12 lb bc, 4, 14 di ; out of pure coincidence, it is possible for vblank to occur between the di and ei ; so it is necessary to put the di ei block to not cause tearing call TextBoxBorder - coord hl, 4, 12 + hlcoord 4, 12 ld [hl], $7a - coord hl, 10, 12 + hlcoord 10, 12 ld [hl], $7e ei - coord hl, 6, 13 + hlcoord 6, 13 call .writemoves ld b, $5 ld a, $c @@ -2699,10 +2609,10 @@ MoveSelectionMenu: .mimicmenu ld hl, wEnemyMonMoves call .loadmoves - coord hl, 0, 7 + hlcoord 0, 7 lb bc, 4, 14 call TextBoxBorder - coord hl, 2, 8 + hlcoord 2, 8 call .writemoves ld b, $1 ld a, $7 @@ -2713,10 +2623,10 @@ MoveSelectionMenu: ld bc, wPartyMon2 - wPartyMon1 call AddNTimes call .loadmoves - coord hl, 4, 7 + hlcoord 4, 7 lb bc, 4, 14 call TextBoxBorder - coord hl, 6, 8 + hlcoord 6, 8 call .writemoves ld b, $5 ld a, $7 @@ -2770,7 +2680,7 @@ SelectMenuItem: jr z, .battleselect dec a jr nz, .select - coord hl, 1, 14 + hlcoord 1, 14 ld de, WhichTechniqueString call PlaceString jr .select @@ -2782,16 +2692,16 @@ SelectMenuItem: ld a, [wMenuItemToSwap] and a jr z, .select - coord hl, 5, 13 + hlcoord 5, 13 dec a ld bc, SCREEN_WIDTH call AddNTimes ld [hl], "▷" .select - ld hl, hFlags_0xFFFA + ld hl, hFlagsFFFA set 1, [hl] call HandleMenuInput - ld hl, hFlags_0xFFFA + ld hl, hFlagsFFFA res 1, [hl] bit 6, a jp nz, SelectMenuItem_CursorUp ; up @@ -2860,12 +2770,12 @@ SelectMenuItem: jp MoveSelectionMenu MoveNoPPText: - TX_FAR _MoveNoPPText - db "@" + text_far _MoveNoPPText + text_end MoveDisabledText: - TX_FAR _MoveDisabledText - db "@" + text_far _MoveDisabledText + text_end WhichTechniqueString: db "WHICH TECHNIQUE?@" @@ -2899,7 +2809,7 @@ Func_3d4f5: jr nz, .asm_3d4fd ld a, $1 .asm_3d4fd - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a call LoadScreenTilesFromBuffer1 call Func_3d536 ld a, [wTestBattlePlayerSelectedMove] @@ -2909,7 +2819,7 @@ Func_3d4f5: xor a ld [wAnimationType], a predef MoveAnimation - callab Func_78e98 + callfar Func_78e98 jp MoveSelectionMenu Func_3d523: @@ -2925,10 +2835,10 @@ asm_3d52d: jp MoveSelectionMenu Func_3d536: - coord hl, 10, 16 + hlcoord 10, 16 lb bc, 2, 10 call ClearScreenArea - coord hl, 10, 17 + hlcoord 10, 17 ld de, wTestBattlePlayerSelectedMove lb bc, LEADING_ZEROES | 1, 3 call PrintNumber @@ -2939,7 +2849,7 @@ Func_3d536: ret nc ld [wd11e], a call GetMoveName - coord hl, 13, 17 + hlcoord 13, 17 jp PlaceString AnyMoveToSelect: @@ -2989,8 +2899,8 @@ AnyMoveToSelect: ret NoMovesLeftText: - TX_FAR _NoMovesLeftText - db "@" + text_far _NoMovesLeftText + text_end SwapMovesInMenu: ld a, [wPlayerBattleStatus3] @@ -3073,8 +2983,8 @@ SwapMovesInMenu: PrintMenuItem: xor a - ld [H_AUTOBGTRANSFERENABLED], a - coord hl, 0, 8 + ldh [hAutoBGTransferEnabled], a + hlcoord 0, 8 lb bc, 3, 9 call TextBoxBorder ld a, [wPlayerDisabledMove] @@ -3086,7 +2996,7 @@ PrintMenuItem: ld a, [wCurrentMenuItem] cp b jr nz, .notDisabled - coord hl, 1, 10 + hlcoord 1, 10 ld de, DisabledText call PlaceString jr .moveDisabled @@ -3094,7 +3004,7 @@ PrintMenuItem: ld hl, wCurrentMenuItem dec [hl] xor a - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a ld hl, wBattleMonMoves ld a, [wCurrentMenuItem] ld c, a @@ -3107,7 +3017,7 @@ PrintMenuItem: ld [wWhichPokemon], a ld a, BATTLE_MON_DATA ld [wMonDataLocation], a - callab GetMaxPP + callfar GetMaxPP ld hl, wCurrentMenuItem ld c, [hl] inc [hl] @@ -3118,27 +3028,27 @@ PrintMenuItem: and $3f ld [wcd6d], a ; print TYPE/ and / - coord hl, 1, 9 + hlcoord 1, 9 ld de, TypeText call PlaceString - coord hl, 7, 11 + hlcoord 7, 11 ld [hl], "/" - coord hl, 5, 9 + hlcoord 5, 9 ld [hl], "/" - coord hl, 5, 11 + hlcoord 5, 11 ld de, wcd6d lb bc, 1, 2 call PrintNumber - coord hl, 8, 11 + hlcoord 8, 11 ld de, wMaxPP lb bc, 1, 2 call PrintNumber call GetCurrentMove - coord hl, 2, 10 + hlcoord 2, 10 predef PrintMoveType .moveDisabled ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a jp Delay3 DisabledText: @@ -3202,7 +3112,7 @@ SelectEnemyMove: ld a, [wIsInBattle] dec a jr z, .chooseRandomMove ; wild encounter - callab AIEnemyTrainerChooseMoves + callfar AIEnemyTrainerChooseMoves .chooseRandomMove push hl call BattleRandom @@ -3267,7 +3177,7 @@ LinkBattleExchangeData: ld a, b .doExchange ld [wSerialExchangeNybbleSendData], a - callab PrintWaitingText + callfar PrintWaitingText .syncLoop1 call Serial_ExchangeNybble call DelayFrame @@ -3290,7 +3200,7 @@ LinkBattleExchangeData: ExecutePlayerMove: xor a - ld [H_WHOSETURN], a ; set player's turn + ldh [hWhoseTurn], a ; set player's turn ld a, [wPlayerSelectedMove] inc a jp z, ExecutePlayerMoveDone ; for selected move = FF, skip most of player's turn @@ -3443,7 +3353,7 @@ MirrorMoveCheck: .moveDidNotMiss call ApplyAttackToEnemyPokemon call PrintCriticalOHKOText - callab DisplayEffectiveness + callfar DisplayEffectiveness ld a, 1 ld [wMoveDidntMiss], a .notDone @@ -3486,8 +3396,8 @@ MirrorMoveCheck: jp ExecutePlayerMoveDone MultiHitText: - TX_FAR _MultiHitText - db "@" + text_far _MultiHitText + text_end ExecutePlayerMoveDone: xor a @@ -3499,29 +3409,29 @@ PrintGhostText: ; print the ghost battle messages call IsGhostBattle ret nz - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr nz, .Ghost - ld a, [wBattleMonStatus] ; player’s turn + ld a, [wBattleMonStatus] ; player's turn and SLP | (1 << FRZ) ret nz ld hl, ScaredText call PrintText xor a ret -.Ghost ; ghost’s turn +.Ghost ; ghost's turn ld hl, GetOutText call PrintText xor a ret ScaredText: - TX_FAR _ScaredText - db "@" + text_far _ScaredText + text_end GetOutText: - TX_FAR _GetOutText - db "@" + text_far _GetOutText + text_end IsGhostBattle: ld a, [wIsInBattle] @@ -3804,69 +3714,69 @@ CheckPlayerStatusConditions: ret FastAsleepText: - TX_FAR _FastAsleepText - db "@" + text_far _FastAsleepText + text_end WokeUpText: - TX_FAR _WokeUpText - db "@" + text_far _WokeUpText + text_end IsFrozenText: - TX_FAR _IsFrozenText - db "@" + text_far _IsFrozenText + text_end FullyParalyzedText: - TX_FAR _FullyParalyzedText - db "@" + text_far _FullyParalyzedText + text_end FlinchedText: - TX_FAR _FlinchedText - db "@" + text_far _FlinchedText + text_end MustRechargeText: - TX_FAR _MustRechargeText - db "@" + text_far _MustRechargeText + text_end DisabledNoMoreText: - TX_FAR _DisabledNoMoreText - db "@" + text_far _DisabledNoMoreText + text_end IsConfusedText: - TX_FAR _IsConfusedText - db "@" + text_far _IsConfusedText + text_end HurtItselfText: - TX_FAR _HurtItselfText - db "@" + text_far _HurtItselfText + text_end ConfusedNoMoreText: - TX_FAR _ConfusedNoMoreText - db "@" + text_far _ConfusedNoMoreText + text_end SavingEnergyText: - TX_FAR _SavingEnergyText - db "@" + text_far _SavingEnergyText + text_end UnleashedEnergyText: - TX_FAR _UnleashedEnergyText - db "@" + text_far _UnleashedEnergyText + text_end ThrashingAboutText: - TX_FAR _ThrashingAboutText - db "@" + text_far _ThrashingAboutText + text_end AttackContinuesText: - TX_FAR _AttackContinuesText - db "@" + text_far _AttackContinuesText + text_end CantMoveText: - TX_FAR _CantMoveText - db "@" + text_far _CantMoveText + text_end PrintMoveIsDisabledText: ld hl, wPlayerSelectedMove ld de, wPlayerBattleStatus1 - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .removeChargingUp inc hl @@ -3882,8 +3792,8 @@ PrintMoveIsDisabledText: jp PrintText MoveIsDisabledText: - TX_FAR _MoveIsDisabledText - db "@" + text_far _MoveIsDisabledText + text_end HandleSelfConfusionDamage: ld hl, HurtItselfText @@ -3922,11 +3832,11 @@ HandleSelfConfusionDamage: xor a ld [wAnimationType], a inc a - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a call PlayMoveAnimation call DrawPlayerHUDAndHPBar xor a - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a jp ApplyDamageToPlayerPokemon PrintMonName1Text: @@ -3939,9 +3849,9 @@ PrintMonName1Text: ; this likely had to do with Japanese grammar that got translated, ; but the functionality didn't get removed MonName1Text: - TX_FAR _MonName1Text - TX_ASM - ld a, [H_WHOSETURN] + text_far _MonName1Text + text_asm + ldh a, [hWhoseTurn] and a ld a, [wPlayerMoveNum] ld hl, wPlayerUsedMove @@ -3964,13 +3874,13 @@ MonName1Text: ret Used1Text: - TX_FAR _Used1Text - TX_ASM + text_far _Used1Text + text_asm jr PrintInsteadText Used2Text: - TX_FAR _Used2Text - TX_ASM + text_far _Used2Text + text_asm ; fall through PrintInsteadText: @@ -3981,8 +3891,8 @@ PrintInsteadText: ret InsteadText: - TX_FAR _InsteadText - TX_ASM + text_far _InsteadText + text_asm ; fall through PrintMoveName: @@ -3990,8 +3900,8 @@ PrintMoveName: ret _PrintMoveName: - TX_FAR _CF4BText - TX_ASM + text_far _CF4BText + text_asm ld hl, ExclamationPointPointerTable ld a, [wd11e] ; exclamation point num add a @@ -4013,24 +3923,24 @@ ExclamationPointPointerTable: dw ExclamationPoint5Text ExclamationPoint1Text: - TX_FAR _ExclamationPoint1Text - db "@" + text_far _ExclamationPoint1Text + text_end ExclamationPoint2Text: - TX_FAR _ExclamationPoint2Text - db "@" + text_far _ExclamationPoint2Text + text_end ExclamationPoint3Text: - TX_FAR _ExclamationPoint3Text - db "@" + text_far _ExclamationPoint3Text + text_end ExclamationPoint4Text: - TX_FAR _ExclamationPoint4Text - db "@" + text_far _ExclamationPoint4Text + text_end ExclamationPoint5Text: - TX_FAR _ExclamationPoint5Text - db "@" + text_far _ExclamationPoint5Text + text_end ; this function does nothing useful ; if the move being used is in set [1-4] from ExclamationPointMoveSets, @@ -4061,26 +3971,11 @@ DetermineExclamationPointTextNum: pop bc ret -ExclamationPointMoveSets: -; a grammar mistake was fixed (only concerning japanese) -; BIDE is in category 3, moved from category 2 - db SWORDS_DANCE, GROWTH - db $00 - db RECOVER, SELFDESTRUCT, AMNESIA - db $00 - db MEDITATE, AGILITY, TELEPORT, MIMIC, DOUBLE_TEAM, BIDE, BARRAGE - db $00 - db POUND, SCRATCH, VICEGRIP, WING_ATTACK, FLY, BIND, SLAM, HORN_ATTACK, BODY_SLAM - db WRAP, THRASH, TAIL_WHIP, LEER, BITE, GROWL, ROAR, SING, PECK, COUNTER - db STRENGTH, ABSORB, STRING_SHOT, EARTHQUAKE, FISSURE, DIG, TOXIC, SCREECH, HARDEN - db MINIMIZE, WITHDRAW, DEFENSE_CURL, METRONOME, LICK, CLAMP, CONSTRICT, POISON_GAS - db LEECH_LIFE, BUBBLE, FLASH, SPLASH, ACID_ARMOR, FURY_SWIPES, REST, SHARPEN, SLASH, SUBSTITUTE - db $00 - db $FF ; terminator +INCLUDE "data/moves/grammar.asm" PrintMoveFailureText: ld de, wPlayerMoveEffect - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playersTurn ld de, wEnemyMoveEffect @@ -4128,7 +4023,7 @@ PrintMoveFailureText: call PrintText ld b, $4 predef PredefShakeScreenHorizontally - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr nz, .enemyTurn jp ApplyDamageToPlayerPokemon @@ -4136,24 +4031,24 @@ PrintMoveFailureText: jp ApplyDamageToEnemyPokemon AttackMissedText: - TX_FAR _AttackMissedText - db "@" + text_far _AttackMissedText + text_end KeptGoingAndCrashedText: - TX_FAR _KeptGoingAndCrashedText - db "@" + text_far _KeptGoingAndCrashedText + text_end UnaffectedText: - TX_FAR _UnaffectedText - db "@" + text_far _UnaffectedText + text_end PrintDoesntAffectText: ld hl, DoesntAffectMonText jp PrintText DoesntAffectMonText: - TX_FAR _DoesntAffectMonText - db "@" + text_far _DoesntAffectMonText + text_end ; if there was a critical hit or an OHKO was successful, print the corresponding text PrintCriticalOHKOText: @@ -4181,12 +4076,12 @@ CriticalOHKOTextPointers: dw OHKOText CriticalHitText: - TX_FAR _CriticalHitText - db "@" + text_far _CriticalHitText + text_end OHKOText: - TX_FAR _OHKOText - db "@" + text_far _OHKOText + text_end ; checks if a traded mon will disobey due to lack of badges ; stores whether the mon will use a move in Z flag @@ -4216,16 +4111,16 @@ CheckForDisobedience: .monIsTraded ; what level might disobey? ld hl, wObtainedBadges - bit 7, [hl] + bit BIT_EARTHBADGE, [hl] ld a, 101 jr nz, .next - bit 5, [hl] + bit BIT_MARSHBADGE, [hl] ld a, 70 jr nz, .next - bit 3, [hl] + bit BIT_RAINBOWBADGE, [hl] ld a, 50 jr nz, .next - bit 1, [hl] + bit BIT_CASCADEBADGE, [hl] ld a, 30 jr nz, .next ld a, 10 @@ -4370,24 +4265,24 @@ CheckForDisobedience: ret LoafingAroundText: - TX_FAR _LoafingAroundText - db "@" + text_far _LoafingAroundText + text_end BeganToNapText: - TX_FAR _BeganToNapText - db "@" + text_far _BeganToNapText + text_end WontObeyText: - TX_FAR _WontObeyText - db "@" + text_far _WontObeyText + text_end TurnedAwayText: - TX_FAR _TurnedAwayText - db "@" + text_far _TurnedAwayText + text_end IgnoredOrdersText: - TX_FAR _IgnoredOrdersText - db "@" + text_far _IgnoredOrdersText + text_end ; sets b, c, d, and e for the CalculateDamage routine in the case of an attack by the player mon GetDamageVarsForPlayerAttack: @@ -4401,7 +4296,7 @@ GetDamageVarsForPlayerAttack: ld d, a ; d = move power ret z ; return if move power is zero ld a, [hl] ; a = [wPlayerMoveType] - cp FIRE ; types >= FIRE are all special + cp SPECIAL ; types >= SPECIAL are all special jr nc, .specialAttack .physicalAttack ld hl, wEnemyMonDefense @@ -4422,9 +4317,9 @@ GetDamageVarsForPlayerAttack: ; in the case of a critical hit, reset the player's attack and the enemy's defense to their base values ld c, 3 ; defense stat call GetEnemyMonStat - ld a, [H_PRODUCT + 2] + ldh a, [hProduct + 2] ld b, a - ld a, [H_PRODUCT + 3] + ldh a, [hProduct + 3] ld c, a push bc ld hl, wPartyMon1Attack @@ -4444,8 +4339,8 @@ GetDamageVarsForPlayerAttack: ; if the enemy has used Light Screen, double the enemy's special sla c rl b -; reflect and light screen boosts do not cap the stat at 999, so weird things will happen during stats scaling if -; a Pokemon with 512 or more Defense has used Reflect, or if a Pokemon with 512 or more Special has used Light Screen +; reflect and light screen boosts do not cap the stat at MAX_STAT_VALUE, so weird things will happen during stats scaling +; if a Pokemon with 512 or more Defense has used Reflect, or if a Pokemon with 512 or more Special has used Light Screen .specialAttackCritCheck ld hl, wBattleMonSpecial ld a, [wCriticalHitOrOHKO] @@ -4454,9 +4349,9 @@ GetDamageVarsForPlayerAttack: ; in the case of a critical hit, reset the player's and enemy's specials to their base values ld c, 5 ; special stat call GetEnemyMonStat - ld a, [H_PRODUCT + 2] + ldh a, [hProduct + 2] ld b, a - ld a, [H_PRODUCT + 3] + ldh a, [hProduct + 3] ld c, a push bc ld hl, wPartyMon1Special @@ -4514,7 +4409,7 @@ GetDamageVarsForEnemyAttack: and a ret z ; return if move power is zero ld a, [hl] ; a = [wEnemyMoveType] - cp FIRE ; types >= FIRE are all special + cp SPECIAL ; types >= SPECIAL are all special jr nc, .specialAttack .physicalAttack ld hl, wBattleMonDefense @@ -4543,7 +4438,7 @@ GetDamageVarsForEnemyAttack: push bc ld c, 2 ; attack stat call GetEnemyMonStat - ld hl, H_PRODUCT + 2 + ld hl, hProduct + 2 pop bc jr .scaleStats .specialAttack @@ -4557,8 +4452,8 @@ GetDamageVarsForEnemyAttack: ; if the player has used Light Screen, double the player's special sla c rl b -; reflect and light screen boosts do not cap the stat at 999, so weird things will happen during stats scaling if -; a Pokemon with 512 or more Defense has used Reflect, or if a Pokemon with 512 or more Special has used Light Screen +; reflect and light screen boosts do not cap the stat at MAX_STAT_VALUE, so weird things will happen during stats scaling +; if a Pokemon with 512 or more Defense has used Reflect, or if a Pokemon with 512 or more Special has used Light Screen .specialAttackCritCheck ld hl, wEnemyMonSpecial ld a, [wCriticalHitOrOHKO] @@ -4575,7 +4470,7 @@ GetDamageVarsForEnemyAttack: push bc ld c, 5 ; special stat call GetEnemyMonStat - ld hl, H_PRODUCT + 2 + ld hl, hProduct + 2 pop bc ; if either the offensive or defensive stat is too large to store in a byte, scale both stats by dividing them by 4 ; this allows values with up to 10 bits (values up to 1023) to be handled @@ -4633,9 +4528,9 @@ GetEnemyMonStat: ld bc, wEnemyMon2 - wEnemyMon1 call AddNTimes ld a, [hli] - ld [H_MULTIPLICAND + 1], a + ldh [hMultiplicand + 1], a ld a, [hl] - ld [H_MULTIPLICAND + 2], a + ldh [hMultiplicand + 2], a pop bc pop de ret @@ -4666,7 +4561,7 @@ CalculateDamage: ; d: base power ; e: level - ld a, [H_WHOSETURN] ; whose turn? + ldh a, [hWhoseTurn] ; whose turn? and a ld a, [wPlayerMoveEffect] jr z, .effect @@ -4698,7 +4593,7 @@ CalculateDamage: .skipbp xor a - ld hl, H_DIVIDEND + ld hl, hDividend ldi [hl], a ldi [hl], a ld [hl], a @@ -4747,76 +4642,82 @@ CalculateDamage: ld b, 4 call Divide +; Update wCurDamage. +; Capped at MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE: 999 - 2 = 997. ld hl, wDamage ld b, [hl] - ld a, [H_QUOTIENT + 3] + ldh a, [hQuotient + 3] add b - ld [H_QUOTIENT + 3], a - jr nc, .asm_3e142 + ldh [hQuotient + 3], a + jr nc, .dont_cap_1 - ld a, [H_QUOTIENT + 2] + ldh a, [hQuotient + 2] inc a - ld [H_QUOTIENT + 2], a + ldh [hQuotient + 2], a and a - jr z, .asm_3e176 + jr z, .cap -.asm_3e142 - ld a, [H_QUOTIENT] +.dont_cap_1 + ldh a, [hQuotient] ld b, a - ld a, [H_QUOTIENT + 1] + ldh a, [hQuotient + 1] or a - jr nz, .asm_3e176 - - ld a, [H_QUOTIENT + 2] - cp 998 / $100 - jr c, .asm_3e15a - cp 998 / $100 + 1 - jr nc, .asm_3e176 - ld a, [H_QUOTIENT + 3] - cp 998 % $100 - jr nc, .asm_3e176 - -.asm_3e15a + jr nz, .cap + + ldh a, [hQuotient + 2] + cp HIGH(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) + jr c, .dont_cap_2 + + cp HIGH(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) + 1 + jr nc, .cap + + ldh a, [hQuotient + 3] + cp LOW(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) + jr nc, .cap + +.dont_cap_2 inc hl - ld a, [H_QUOTIENT + 3] + + ldh a, [hQuotient + 3] ld b, [hl] add b ld [hld], a - ld a, [H_QUOTIENT + 2] + ldh a, [hQuotient + 2] ld b, [hl] adc b ld [hl], a - jr c, .asm_3e176 + jr c, .cap ld a, [hl] - cp 998 / $100 - jr c, .asm_3e17c - cp 998 / $100 + 1 - jr nc, .asm_3e176 + cp HIGH(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) + jr c, .dont_cap_3 + + cp HIGH(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) + 1 + jr nc, .cap + inc hl ld a, [hld] - cp 998 % $100 - jr c, .asm_3e17c + cp LOW(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) + jr c, .dont_cap_3 -.asm_3e176 -; cap at 997 - ld a, 997 / $100 +.cap + ld a, HIGH(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE) ld [hli], a - ld a, 997 % $100 + ld a, LOW(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE) ld [hld], a -.asm_3e17c -; add 2 +.dont_cap_3 +; Add back MIN_NEUTRAL_DAMAGE (capping at 999). inc hl ld a, [hl] - add 2 + add MIN_NEUTRAL_DAMAGE ld [hld], a - jr nc, .done + jr nc, .dont_floor inc [hl] +.dont_floor -.done -; minimum damage is 1 +; Returns nz and nc. ld a, 1 and a ret @@ -4827,13 +4728,7 @@ JumpToOHKOMoveEffect: dec a ret - -UnusedHighCriticalMoves: - db KARATE_CHOP - db RAZOR_LEAF - db CRABHAMMER - db SLASH - db $FF +INCLUDE "data/battle/unused_critical_hit_moves.asm" ; determines if attack is a critical hit ; azure heights claims "the fastest pokémon (who are, not coincidentally, @@ -4841,7 +4736,7 @@ UnusedHighCriticalMoves: CriticalHitTest: xor a ld [wCriticalHitOrOHKO], a - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a ld a, [wEnemyMonSpecies] jr nz, .handleEnemy @@ -4852,7 +4747,7 @@ CriticalHitTest: ld a, [wMonHBaseSpeed] ld b, a srl b ; (effective (base speed/2)) - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a ld hl, wPlayerMovePower ld de, wPlayerBattleStatus2 @@ -4904,14 +4799,7 @@ CriticalHitTest: ld [wCriticalHitOrOHKO], a ; set critical hit flag ret -; high critical hit moves -HighCriticalMoves: - db KARATE_CHOP - db RAZOR_LEAF - db CRABHAMMER - db SLASH - db $FF - +INCLUDE "data/battle/critical_hit_moves.asm" ; function to determine if Counter hits and if so, how much damage it does HandleCounterMove: @@ -4921,7 +4809,7 @@ HandleCounterMove: ; the outcome may be affected by the player's actions in the move selection menu prior to switching the Pokemon. ; This might also lead to desync glitches in link battles. - ld a, [H_WHOSETURN] ; whose turn + ldh a, [hWhoseTurn] ; whose turn and a ; player's turn ld hl, wEnemySelectedMove @@ -5091,7 +4979,7 @@ ApplyDamageToEnemyPokemon: ld [wHPBarNewHP+1], a ld a, [hl] ld [wHPBarNewHP], a - coord hl, 2, 2 + hlcoord 2, 2 xor a ld [wHPBarType], a predef UpdateHPBar2 ; animate the HP bar shortening @@ -5209,7 +5097,7 @@ ApplyDamageToPlayerPokemon: ld [wHPBarMaxHP+1], a ld a, [hl] ld [wHPBarMaxHP], a - coord hl, 10, 9 + hlcoord 10, 9 ld a, $01 ld [wHPBarType], a predef UpdateHPBar2 ; animate the HP bar shortening @@ -5229,7 +5117,7 @@ AttackSubstitute: ; values for player turn ld de, wEnemySubstituteHP ld bc, wEnemyBattleStatus2 - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .applyDamageToSubstitute ; values for enemy turn @@ -5254,14 +5142,14 @@ AttackSubstitute: ld hl, SubstituteBrokeText call PrintText ; flip whose turn it is for the next function call - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] xor $01 - ld [H_WHOSETURN], a - callab Func_79929 ; animate the substitute breaking + ldh [hWhoseTurn], a + callfar Func_79929 ; animate the substitute breaking ; flip the turn back to the way it was - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] xor $01 - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a ld hl, wPlayerMoveEffect ; value for player's turn and a jr z, .nullifyEffect @@ -5272,12 +5160,12 @@ AttackSubstitute: jp DrawHUDsAndHPBars SubstituteTookDamageText: - TX_FAR _SubstituteTookDamageText - db "@" + text_far _SubstituteTookDamageText + text_end SubstituteBrokeText: - TX_FAR _SubstituteBrokeText - db "@" + text_far _SubstituteBrokeText + text_end ; this function raises the attack modifier of a pokemon using Rage when that pokemon is attacked HandleBuildingRage: @@ -5285,7 +5173,7 @@ HandleBuildingRage: ld hl, wEnemyBattleStatus2 ld de, wEnemyMonStatMods ld bc, wEnemyMoveNum - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .next ; values for the enemy turn @@ -5298,9 +5186,9 @@ HandleBuildingRage: ld a, [de] cp $0d ; maximum stat modifier value ret z ; return if attack modifier is already maxed - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] xor $01 ; flip turn for the stat modifier raising function - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a ; temporarily change the target pokemon's move to $00 and the effect to the one ; that causes the attack modifier to go up one stage ld h, b @@ -5317,25 +5205,25 @@ HandleBuildingRage: ldd [hl], a ; null move effect ld a, RAGE ld [hl], a ; restore the target pokemon's move number to Rage - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] xor $01 ; flip turn back to the way it was - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a ret BuildingRageText: - TX_FAR _BuildingRageText - db "@" + text_far _BuildingRageText + text_end ; copy last move for Mirror Move ; sets zero flag on failure and unsets zero flag on success MirrorMoveCopyMove: -; Mirror Move makes use of ccf1 (wPlayerUsedMove) and ccf2 (wEnemyUsedMove) addresses, +; Mirror Move makes use of wPlayerUsedMove and wEnemyUsedMove, ; which are mainly used to print the "[Pokemon] used [Move]" text. ; Both are set to 0 whenever a new Pokemon is sent out -; ccf1 is also set to 0 whenever the player is fast asleep or frozen solid. -; ccf2 is also set to 0 whenever the enemy is fast asleep or frozen solid. +; wPlayerUsedMove is also set to 0 whenever the player is fast asleep or frozen solid. +; wEnemyUsedMove is also set to 0 whenever the enemy is fast asleep or frozen solid. - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a ; values for player turn ld a, [wEnemyUsedMove] @@ -5359,8 +5247,8 @@ MirrorMoveCopyMove: ret MirrorMoveFailedText: - TX_FAR _MirrorMoveFailedText - db "@" + text_far _MirrorMoveFailedText + text_end ; function used to reload move data for moves like Mirror Move and Metronome ReloadMoveData: @@ -5388,7 +5276,7 @@ MetronomePickMove: ; values for player turn ld de, wPlayerMoveNum ld hl, wPlayerSelectedMove - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .pickMoveLoop ; values for enemy turn @@ -5410,7 +5298,7 @@ MetronomePickMove: ; it's used to prevent moves that run another move within the same turn ; (like Mirror Move and Metronome) from losing 2 PP IncrementMovePP: - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a ; values for player turn ld hl, wBattleMonPP @@ -5429,7 +5317,7 @@ IncrementMovePP: ld h, d ld l, e add hl, bc - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a ld a, [wPlayerMonNumber] ; value for player turn jr z, .updatePP @@ -5453,7 +5341,7 @@ AdjustDamageForMoveType: ld e, [hl] ; e = type 2 of defender ld a, [wPlayerMoveType] ld [wMoveType], a - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .next ; values for enemy turn @@ -5517,25 +5405,25 @@ AdjustDamageForMoveType: and $80 ld b, a ld a, [hl] ; a = damage multiplier - ld [H_MULTIPLIER], a + ldh [hMultiplier], a add b ld [wDamageMultipliers], a xor a - ld [H_MULTIPLICAND], a + ldh [hMultiplicand], a ld hl, wDamage ld a, [hli] - ld [H_MULTIPLICAND + 1], a + ldh [hMultiplicand + 1], a ld a, [hld] - ld [H_MULTIPLICAND + 2], a + ldh [hMultiplicand + 2], a call Multiply ld a, 10 - ld [H_DIVISOR], a + ldh [hDivisor], a ld b, $04 call Divide - ld a, [H_QUOTIENT + 2] + ldh a, [hQuotient + 2] ld [hli], a ld b, a - ld a, [H_QUOTIENT + 3] + ldh a, [hQuotient + 3] ld [hl], a or b ; is damage 0? jr nz, .skipTypeImmunity @@ -5598,7 +5486,7 @@ AIGetTypeEffectiveness: ld [wd11e], a ; store damage multiplier ret -INCLUDE "data/type_effects.asm" +INCLUDE "data/types/type_matchups.asm" ; some tests that need to pass for a move to hit MoveHitTest: @@ -5606,7 +5494,7 @@ MoveHitTest: ld hl, wEnemyBattleStatus1 ld de, wPlayerMoveEffect ld bc, wEnemyMonStatus - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .dreamEaterCheck ; enemy's turn @@ -5626,8 +5514,8 @@ MoveHitTest: ret z ; Swift never misses (interestingly, Azure Heights lists this is a myth, but it appears to be true) call CheckTargetSubstitute ; substitute check (note that this overwrites a) jr z, .checkForDigOrFlyStatus -; this code is buggy. it's supposed to prevent HP draining moves from working on substitutes. -; since $7b79 overwrites a with either $00 or $01, it never works. +; This code is buggy. It's supposed to prevent HP draining moves from working on substitutes. +; Since CheckTargetSubstitute overwrites a with either $00 or $01, it never works. cp DRAIN_HP_EFFECT jp z, .moveMissed cp DREAM_EATER_EFFECT @@ -5635,7 +5523,7 @@ MoveHitTest: .checkForDigOrFlyStatus bit INVULNERABLE, [hl] jp nz, .moveMissed - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr nz, .enemyTurn .playerTurn @@ -5689,7 +5577,7 @@ MoveHitTest: call CalcHitChance ; scale the move accuracy according to attacker's accuracy and target's evasion ld a, [wPlayerMoveAccuracy] ld b, a - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .doAccuracyCheck ld a, [wEnemyMoveAccuracy] @@ -5708,7 +5596,7 @@ MoveHitTest: ld [hl], a inc a ld [wMoveMissed], a - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playerTurn2 .enemyTurn2 @@ -5723,7 +5611,7 @@ MoveHitTest: ; values for player turn CalcHitChance: ld hl, wPlayerMoveAccuracy - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a ld a, [wPlayerMonAccuracyMod] ld b, a @@ -5743,10 +5631,10 @@ CalcHitChance: ; decreases the hit chance instead of increasing the hit chance) ; zero the high bytes of the multiplicand xor a - ld [H_MULTIPLICAND], a - ld [H_MULTIPLICAND + 1], a + ldh [hMultiplicand], a + ldh [hMultiplicand + 1], a ld a, [hl] - ld [H_MULTIPLICAND + 2], a ; set multiplicand to move accuracy + ldh [hMultiplicand + 2], a ; set multiplicand to move accuracy push hl ld d, $02 ; loop has two iterations ; loop to do the calculations, the first iteration multiplies by the accuracy ratio and @@ -5761,29 +5649,29 @@ CalcHitChance: add hl, bc ; hl = address of stat modifier ratio pop bc ld a, [hli] - ld [H_MULTIPLIER], a ; set multiplier to the numerator of the ratio + ldh [hMultiplier], a ; set multiplier to the numerator of the ratio call Multiply ld a, [hl] - ld [H_DIVISOR], a ; set divisor to the the denominator of the ratio + ldh [hDivisor], a ; set divisor to the the denominator of the ratio ; (the dividend is the product of the previous multiplication) ld b, $04 ; number of bytes in the dividend call Divide - ld a, [H_QUOTIENT + 3] + ldh a, [hQuotient + 3] ld b, a - ld a, [H_QUOTIENT + 2] + ldh a, [hQuotient + 2] or b jp nz, .nextCalculation ; make sure the result is always at least one - ld [H_QUOTIENT + 2], a + ldh [hQuotient + 2], a ld a, $01 - ld [H_QUOTIENT + 3], a + ldh [hQuotient + 3], a .nextCalculation ld b, c dec d jr nz, .loop - ld a, [H_QUOTIENT + 2] + ldh a, [hQuotient + 2] and a ; is the calculated hit chance over 0xFF? - ld a, [H_QUOTIENT + 3] + ldh a, [hQuotient + 3] jr z, .storeAccuracy ; if calculated hit chance over 0xFF ld a, $ff ; set the hit chance to 0xFF @@ -5803,29 +5691,29 @@ RandomizeDamage: ret c ; return if damage is equal to 0 or 1 .DamageGreaterThanOne xor a - ld [H_MULTIPLICAND], a + ldh [hMultiplicand], a dec hl ld a, [hli] - ld [H_MULTIPLICAND + 1], a + ldh [hMultiplicand + 1], a ld a, [hl] - ld [H_MULTIPLICAND + 2], a + ldh [hMultiplicand + 2], a ; loop until a random number greater than or equal to 217 is generated .loop call BattleRandom rrca cp 217 jr c, .loop - ld [H_MULTIPLIER], a + ldh [hMultiplier], a call Multiply ; multiply damage by the random number, which is in the range [217, 255] ld a, 255 - ld [H_DIVISOR], a + ldh [hDivisor], a ld b, $4 call Divide ; divide the result by 255 ; store the modified damage - ld a, [H_QUOTIENT + 2] + ldh a, [hQuotient + 2] ld hl, wDamage ld [hli], a - ld a, [H_QUOTIENT + 3] + ldh a, [hQuotient + 3] ld [hl], a ret @@ -6001,7 +5889,7 @@ EnemyCheckIfMirrorMoveEffect: .moveDidNotMiss call ApplyAttackToPlayerPokemon call PrintCriticalOHKOText - callab DisplayEffectiveness + callfar DisplayEffectiveness ld a, 1 ld [wMoveDidntMiss], a .handleExplosionMiss @@ -6040,8 +5928,8 @@ EnemyCheckIfMirrorMoveEffect: jr ExecuteEnemyMoveDone HitXTimesText: - TX_FAR _HitXTimesText - db "@" + text_far _HitXTimesText + text_end ExecuteEnemyMoveDone: ld b, $1 @@ -6181,11 +6069,11 @@ CheckEnemyStatusConditions: ld [hl], a xor a ld [wAnimationType], a - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a ld a, POUND call PlayMoveAnimation ld a, $1 - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a call ApplyDamageToEnemyPokemon jr .monHurtItselfOrFullyParalysed .checkIfTriedToUseDisabledMove @@ -6332,7 +6220,7 @@ CheckEnemyStatusConditions: ret GetCurrentMove: - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jp z, .player ld de, wEnemyMoveNum @@ -6379,8 +6267,8 @@ LoadEnemyMonData: ld a, [wIsInBattle] cp $2 ; is it a trainer battle? ; fixed DVs for trainer mon - ld a, $98 - ld b, $88 + ld a, ATKDEFDV_TRAINER + ld b, SPDSPCDV_TRAINER jr z, .storeDVs ; random DVs for wild mon call BattleRandom @@ -6529,25 +6417,25 @@ DoBattleTransitionAndInitBattleVariables: ; link battle xor a ld [wMenuJoypadPollCount], a - callab DisplayLinkBattleVersusTextBox + callfar DisplayLinkBattleVersusTextBox ld a, $1 ld [wUpdateSpritesEnabled], a call ClearScreen .next call DelayFrame predef BattleTransition - callab LoadHudAndHpBarAndStatusTilePatterns + callfar LoadHudAndHpBarAndStatusTilePatterns ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld a, $ff ld [wUpdateSpritesEnabled], a call ClearSprites call ClearScreen xor a - ld [H_AUTOBGTRANSFERENABLED], a - ld [hWY], a - ld [rWY], a - ld [hTilesetType], a + ldh [hAutoBGTransferEnabled], a + ldh [hWY], a + ldh [rWY], a + ldh [hTilesetType], a ld hl, wPlayerStatsToDouble ld [hli], a ld [hli], a @@ -6587,7 +6475,7 @@ LoadPlayerBackPic: predef ScaleSpriteByTwo ld hl, wOAMBuffer xor a - ld [hOAMTile], a ; initial tile number + ldh [hOAMTile], a ; initial tile number ld b, $7 ; 7 columns ld e, $a0 ; X for the left-most column .loop ; each loop iteration writes 3 OAM entries in a vertical column @@ -6601,18 +6489,18 @@ LoadPlayerBackPic: add d ; increase Y by height of tile ld d, a inc hl - ld a, [hOAMTile] + ldh a, [hOAMTile] ld [hli], a ; OAM tile number inc a ; increment tile number - ld [hOAMTile], a + ldh [hOAMTile], a ld a, $2 ld [hl], a inc hl dec c jr nz, .innerLoop - ld a, [hOAMTile] + ldh a, [hOAMTile] add $4 ; increase tile number by 4 - ld [hOAMTile], a + ldh [hOAMTile], a ld a, $8 ; width of tile add e ; increase X by width of tile ld e, a @@ -6624,23 +6512,23 @@ LoadPlayerBackPic: call SwitchSRAMBankAndLatchClockData ld hl, vSprites ld de, sSpriteBuffer1 - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] ld b, a ld c, 7 * 7 call CopyVideoData call PrepareRTCDataAndDisableSRAM ld a, $31 - ld [hStartTileID], a - coord hl, 1, 5 + ldh [hStartTileID], a + hlcoord 1, 5 predef_jump CopyUncompressedPicToTilemap ; does nothing since no stats are ever selected (barring glitches) DoubleOrHalveSelectedStats: - callab DoubleSelectedStats - jpab HalveSelectedStats + callfar DoubleSelectedStats + jpfar HalveSelectedStats ScrollTrainerPicAfterBattle: - jpab _ScrollTrainerPicAfterBattle + jpfar _ScrollTrainerPicAfterBattle ApplyBurnAndParalysisPenaltiesToPlayer: ld a, $1 @@ -6650,12 +6538,12 @@ ApplyBurnAndParalysisPenaltiesToEnemy: xor a ApplyBurnAndParalysisPenalties: - ld [H_WHOSETURN], a + ldh [hWhoseTurn], a call QuarterSpeedDueToParalysis jp HalveAttackDueToBurn QuarterSpeedDueToParalysis: - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playerTurn .enemyTurn ; quarter the player's speed @@ -6698,7 +6586,7 @@ QuarterSpeedDueToParalysis: ret HalveAttackDueToBurn: - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a jr z, .playerTurn .enemyTurn ; halve the player's attack @@ -6788,35 +6676,35 @@ CalculateModifiedStat: ld b, 0 add hl, bc xor a - ld [H_MULTIPLICAND], a + ldh [hMultiplicand], a ld a, [de] - ld [H_MULTIPLICAND + 1], a + ldh [hMultiplicand + 1], a inc de ld a, [de] - ld [H_MULTIPLICAND + 2], a + ldh [hMultiplicand + 2], a ld a, [hli] - ld [H_MULTIPLIER], a + ldh [hMultiplier], a call Multiply ld a, [hl] - ld [H_DIVISOR], a + ldh [hDivisor], a ld b, $4 call Divide pop hl - ld a, [H_DIVIDEND + 3] - sub 999 % $100 - ld a, [H_DIVIDEND + 2] - sbc 999 / $100 + ldh a, [hDividend + 3] + sub LOW(MAX_STAT_VALUE) + ldh a, [hDividend + 2] + sbc HIGH(MAX_STAT_VALUE) jp c, .storeNewStatValue -; cap the stat at 999 - ld a, 999 / $100 - ld [H_DIVIDEND + 2], a - ld a, 999 % $100 - ld [H_DIVIDEND + 3], a +; cap the stat at MAX_STAT_VALUE (999) + ld a, HIGH(MAX_STAT_VALUE) + ldh [hDividend + 2], a + ld a, LOW(MAX_STAT_VALUE) + ldh [hDividend + 3], a .storeNewStatValue - ld a, [H_DIVIDEND + 2] + ldh a, [hDividend + 2] ld [hli], a ld b, a - ld a, [H_DIVIDEND + 3] + ldh a, [hDividend + 3] ld [hl], a or b jr nz, .done @@ -6850,7 +6738,7 @@ ApplyBadgeStatBoosts: ret ; multiply stat at hl by 1.125 -; cap stat at 999 +; cap stat at MAX_STAT_VALUE .applyBoostToStat ld a, [hli] ld d, a @@ -6868,13 +6756,13 @@ ApplyBadgeStatBoosts: adc d ld [hli], a ld a, [hld] - sub 999 % $100 + sub LOW(MAX_STAT_VALUE) ld a, [hl] - sbc 999 / $100 + sbc HIGH(MAX_STAT_VALUE) ret c - ld a, 999 / $100 + ld a, HIGH(MAX_STAT_VALUE) ld [hli], a - ld a, 999 % $100 + ld a, LOW(MAX_STAT_VALUE) ld [hld], a ret @@ -6882,33 +6770,34 @@ LoadHudAndHpBarAndStatusTilePatterns: call LoadHpBarAndStatusTilePatterns LoadHudTilePatterns: - ld a, [rLCDC] + ldh a, [rLCDC] add a ; is LCD disabled? jr c, .lcdEnabled .lcdDisabled ld hl, BattleHudTiles1 - ld de, vChars2 + $6d0 + ld de, vChars2 tile $6d ld bc, BattleHudTiles1End - BattleHudTiles1 ld a, BANK(BattleHudTiles1) call FarCopyDataDouble ld hl, BattleHudTiles2 - ld de, vChars2 + $730 + ld de, vChars2 tile $73 ld bc, BattleHudTiles3End - BattleHudTiles2 ld a, BANK(BattleHudTiles2) jp FarCopyDataDouble .lcdEnabled ld de, BattleHudTiles1 - ld hl, vChars2 + $6d0 + ld hl, vChars2 tile $6d lb bc, BANK(BattleHudTiles1), (BattleHudTiles1End - BattleHudTiles1) / $8 call CopyVideoDataDouble ld de, BattleHudTiles2 - ld hl, vChars2 + $730 + ld hl, vChars2 tile $73 lb bc, BANK(BattleHudTiles2), (BattleHudTiles3End - BattleHudTiles2) / $8 jp CopyVideoDataDouble PrintEmptyString: ld hl, .emptyString jp PrintText + .emptyString db "@" @@ -6966,7 +6855,7 @@ BattleRandom: HandleExplodingAnimation: - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a ld hl, wEnemyMonType1 ld de, wEnemyBattleStatus1 @@ -7000,1662 +6889,5 @@ PlayMoveAnimation: ld [wAnimationID], a call Delay3 predef MoveAnimation - callab Func_78e98 - ret - -JumpMoveEffect: - call _JumpMoveEffect - ld b, $1 - ret - -_JumpMoveEffect: - ld a, [H_WHOSETURN] - and a - ld a, [wPlayerMoveEffect] - jr z, .next1 - ld a, [wEnemyMoveEffect] -.next1 - dec a ; subtract 1, there is no special effect for 00 - add a ; x2, 16bit pointers - ld hl, MoveEffectPointerTable - ld b, 0 - ld c, a - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - jp hl ; jump to special effect handler - -MoveEffectPointerTable: - dw SleepEffect ; unused effect - dw PoisonEffect ; POISON_SIDE_EFFECT1 - dw DrainHPEffect ; DRAIN_HP_EFFECT - dw FreezeBurnParalyzeEffect ; BURN_SIDE_EFFECT1 - dw FreezeBurnParalyzeEffect ; FREEZE_SIDE_EFFECT - dw FreezeBurnParalyzeEffect ; PARALYZE_SIDE_EFFECT1 - dw ExplodeEffect ; EXPLODE_EFFECT - dw DrainHPEffect ; DREAM_EATER_EFFECT - dw $0000 ; MIRROR_MOVE_EFFECT - dw StatModifierUpEffect ; ATTACK_UP1_EFFECT - dw StatModifierUpEffect ; DEFENSE_UP1_EFFECT - dw StatModifierUpEffect ; SPEED_UP1_EFFECT - dw StatModifierUpEffect ; SPECIAL_UP1_EFFECT - dw StatModifierUpEffect ; ACCURACY_UP1_EFFECT - dw StatModifierUpEffect ; EVASION_UP1_EFFECT - dw PayDayEffect ; PAY_DAY_EFFECT - dw $0000 ; SWIFT_EFFECT - dw StatModifierDownEffect ; ATTACK_DOWN1_EFFECT - dw StatModifierDownEffect ; DEFENSE_DOWN1_EFFECT - dw StatModifierDownEffect ; SPEED_DOWN1_EFFECT - dw StatModifierDownEffect ; SPECIAL_DOWN1_EFFECT - dw StatModifierDownEffect ; ACCURACY_DOWN1_EFFECT - dw StatModifierDownEffect ; EVASION_DOWN1_EFFECT - dw ConversionEffect ; CONVERSION_EFFECT - dw HazeEffect ; HAZE_EFFECT - dw BideEffect ; BIDE_EFFECT - dw ThrashPetalDanceEffect ; THRASH_PETAL_DANCE_EFFECT - dw SwitchAndTeleportEffect ; SWITCH_AND_TELEPORT_EFFECT - dw TwoToFiveAttacksEffect ; TWO_TO_FIVE_ATTACKS_EFFECT - dw TwoToFiveAttacksEffect ; unused effect - dw FlinchSideEffect ; FLINCH_SIDE_EFFECT1 - dw SleepEffect ; SLEEP_EFFECT - dw PoisonEffect ; POISON_SIDE_EFFECT2 - dw FreezeBurnParalyzeEffect ; BURN_SIDE_EFFECT2 - dw FreezeBurnParalyzeEffect ; unused effect - dw FreezeBurnParalyzeEffect ; PARALYZE_SIDE_EFFECT2 - dw FlinchSideEffect ; FLINCH_SIDE_EFFECT2 - dw OneHitKOEffect ; OHKO_EFFECT - dw ChargeEffect ; CHARGE_EFFECT - dw $0000 ; SUPER_FANG_EFFECT - dw $0000 ; SPECIAL_DAMAGE_EFFECT - dw TrappingEffect ; TRAPPING_EFFECT - dw ChargeEffect ; FLY_EFFECT - dw TwoToFiveAttacksEffect ; ATTACK_TWICE_EFFECT - dw $0000 ; JUMP_KICK_EFFECT - dw MistEffect ; MIST_EFFECT - dw FocusEnergyEffect ; FOCUS_ENERGY_EFFECT - dw RecoilEffect ; RECOIL_EFFECT - dw ConfusionEffect ; CONFUSION_EFFECT - dw StatModifierUpEffect ; ATTACK_UP2_EFFECT - dw StatModifierUpEffect ; DEFENSE_UP2_EFFECT - dw StatModifierUpEffect ; SPEED_UP2_EFFECT - dw StatModifierUpEffect ; SPECIAL_UP2_EFFECT - dw StatModifierUpEffect ; ACCURACY_UP2_EFFECT - dw StatModifierUpEffect ; EVASION_UP2_EFFECT - dw HealEffect ; HEAL_EFFECT - dw TransformEffect ; TRANSFORM_EFFECT - dw StatModifierDownEffect ; ATTACK_DOWN2_EFFECT - dw StatModifierDownEffect ; DEFENSE_DOWN2_EFFECT - dw StatModifierDownEffect ; SPEED_DOWN2_EFFECT - dw StatModifierDownEffect ; SPECIAL_DOWN2_EFFECT - dw StatModifierDownEffect ; ACCURACY_DOWN2_EFFECT - dw StatModifierDownEffect ; EVASION_DOWN2_EFFECT - dw ReflectLightScreenEffect ; LIGHT_SCREEN_EFFECT - dw ReflectLightScreenEffect ; REFLECT_EFFECT - dw PoisonEffect ; POISON_EFFECT - dw ParalyzeEffect ; PARALYZE_EFFECT - dw StatModifierDownEffect ; ATTACK_DOWN_SIDE_EFFECT - dw StatModifierDownEffect ; DEFENSE_DOWN_SIDE_EFFECT - dw StatModifierDownEffect ; SPEED_DOWN_SIDE_EFFECT - dw StatModifierDownEffect ; SPECIAL_DOWN_SIDE_EFFECT - dw StatModifierDownEffect ; unused effect - dw StatModifierDownEffect ; unused effect - dw StatModifierDownEffect ; unused effect - dw StatModifierDownEffect ; unused effect - dw ConfusionSideEffect ; CONFUSION_SIDE_EFFECT - dw TwoToFiveAttacksEffect ; TWINEEDLE_EFFECT - dw $0000 ; unused effect - dw SubstituteEffect ; SUBSTITUTE_EFFECT - dw HyperBeamEffect ; HYPER_BEAM_EFFECT - dw RageEffect ; RAGE_EFFECT - dw MimicEffect ; MIMIC_EFFECT - dw $0000 ; METRONOME_EFFECT - dw LeechSeedEffect ; LEECH_SEED_EFFECT - dw SplashEffect ; SPLASH_EFFECT - dw DisableEffect ; DISABLE_EFFECT - -SleepEffect: - ld de, wEnemyMonStatus - ld bc, wEnemyBattleStatus2 - ld a, [H_WHOSETURN] - and a - jp z, .sleepEffect - ld de, wBattleMonStatus - ld bc, wPlayerBattleStatus2 - -.sleepEffect - ld a, [bc] - bit NEEDS_TO_RECHARGE, a ; does the target need to recharge? (hyper beam) - res NEEDS_TO_RECHARGE, a ; target no longer needs to recharge - ld [bc], a - jr nz, .setSleepCounter ; if the target had to recharge, all hit tests will be skipped - ; including the event where the target already has another status - ld a, [de] - ld b, a - and $7 - jr z, .notAlreadySleeping ; can't affect a mon that is already asleep - ld hl, AlreadyAsleepText - jp PrintText -.notAlreadySleeping - ld a, b - and a - jr nz, .didntAffect ; can't affect a mon that is already statused - push de - call MoveHitTest ; apply accuracy tests - pop de - ld a, [wMoveMissed] - and a - jr nz, .didntAffect -.setSleepCounter -; set target's sleep counter to a random number between 1 and 7 - call BattleRandom - and $7 - jr z, .setSleepCounter - ld b, a - ld a, [wUnknownSerialFlag_d499] - and a - jr z, .asm_3f1ba ; XXX stadium stuff? - ld a, b - and $3 - jr z, .setSleepCounter - ld b, a -.asm_3f1ba - ld a, b - ld [de], a - call PlayCurrentMoveAnimation2 - ld hl, FellAsleepText - jp PrintText -.didntAffect - jp PrintDidntAffectText - -FellAsleepText: - TX_FAR _FellAsleepText - db "@" - -AlreadyAsleepText: - TX_FAR _AlreadyAsleepText - db "@" - -PoisonEffect: - ld hl, wEnemyMonStatus - ld de, wPlayerMoveEffect - ld a, [H_WHOSETURN] - and a - jr z, .poisonEffect - ld hl, wBattleMonStatus - ld de, wEnemyMoveEffect -.poisonEffect - call CheckTargetSubstitute - jr nz, .noEffect ; can't poison a substitute target - ld a, [hli] - ld b, a - and a - jr nz, .noEffect ; miss if target is already statused - ld a, [hli] - cp POISON ; can't poison a poison-type target - jr z, .noEffect - ld a, [hld] - cp POISON ; can't poison a poison-type target - jr z, .noEffect - ld a, [de] - cp POISON_SIDE_EFFECT1 - ld b, $34 ; ~20% chance of poisoning - jr z, .sideEffectTest - cp POISON_SIDE_EFFECT2 - ld b, $67 ; ~40% chance of poisoning - jr z, .sideEffectTest - push hl - push de - call MoveHitTest ; apply accuracy tests - pop de - pop hl - ld a, [wMoveMissed] - and a - jr nz, .didntAffect - jr .inflictPoison -.sideEffectTest - call BattleRandom - cp b ; was side effect successful? - ret nc -.inflictPoison - dec hl - set 3, [hl] ; mon is now poisoned - push de - dec de - ld a, [H_WHOSETURN] - and a - ld b, ANIM_C7 - ld hl, wPlayerBattleStatus3 - ld a, [de] - ld de, wPlayerToxicCounter - jr nz, .ok - ld b, ANIM_A9 - ld hl, wEnemyBattleStatus3 - ld de, wEnemyToxicCounter -.ok - cp TOXIC - jr nz, .normalPoison ; done if move is not Toxic - set BADLY_POISONED, [hl] ; else set Toxic battstatus - xor a - ld [de], a - ld hl, BadlyPoisonedText - jr .continue -.normalPoison - ld hl, PoisonedText -.continue - pop de - ld a, [de] - cp POISON_EFFECT - jr z, .regularPoisonEffect - ld a, b - call PlayBattleAnimation2 - jp PrintText -.regularPoisonEffect - call PlayCurrentMoveAnimation2 - jp PrintText -.noEffect - ld a, [de] - cp POISON_EFFECT - ret nz -.didntAffect - ld c, 50 - call DelayFrames - jp PrintDidntAffectText - -PoisonedText: - TX_FAR _PoisonedText - db "@" - -BadlyPoisonedText: - TX_FAR _BadlyPoisonedText - db "@" - -DrainHPEffect: - jpab DrainHPEffect_ - -ExplodeEffect: - ld hl, wBattleMonHP - ld de, wPlayerBattleStatus2 - ld a, [H_WHOSETURN] - and a - jr z, .faintUser - ld hl, wEnemyMonHP - ld de, wEnemyBattleStatus2 -.faintUser - xor a - ld [hli], a ; set the mon's HP to 0 - ld [hli], a - inc hl - ld [hl], a ; set mon's status to 0 - ld a, [de] - res SEEDED, a ; clear mon's leech seed status - ld [de], a - ret - -FreezeBurnParalyzeEffect: - xor a - ld [wAnimationType], a - call CheckTargetSubstitute ; test bit 4 of d063/d068 flags [target has substitute flag] - ret nz ; return if they have a substitute, can't effect them - ld a, [H_WHOSETURN] - and a - jp nz, .opponentAttacker - ld a, [wEnemyMonStatus] - and a - jp nz, CheckDefrost ; can't inflict status if opponent is already statused - ld a, [wPlayerMoveType] - ld b, a - ld a, [wEnemyMonType1] - cp b ; do target type 1 and move type match? - ret z ; return if they match (an ice move can't freeze an ice-type, body slam can't paralyze a normal-type, etc.) - ld a, [wEnemyMonType2] - cp b ; do target type 2 and move type match? - ret z ; return if they match - ld a, [wPlayerMoveEffect] - cp UNUSED_EFFECT_23 ; more stadium stuff - jr nz, .asm_3f2c7 - ld a, [wUnknownSerialFlag_d499] - and a - ld a, FREEZE_SIDE_EFFECT - ld b, $4d ; else use 0x4D/0x100 or 77/256 = 30.1%~ chance - jr z, .next1 - ld b, $1a ; 0x1A/0x100 or 26/256 = 10.2%~ chance - jr .next1 -.asm_3f2c7 - cp a, PARALYZE_SIDE_EFFECT1 + 1 ; 10% status effects are 04, 05, 06 so 07 will set carry for those - ld b, $1a ; 0x1A/0x100 or 26/256 = 10.2%~ chance - jr c, .next1 ; branch ahead if this is a 10% chance effect.. - ld b, $4d ; else use 0x4D/0x100 or 77/256 = 30.1%~ chance - sub $1e ; subtract $1E to map to equivalent 10% chance effects -.next1 - push af - call BattleRandom ; get random 8bit value for probability test - cp b - pop bc - ret nc ; do nothing if random value is >= 1A or 4D [no status applied] - ld a, b ; what type of effect is this? - cp BURN_SIDE_EFFECT1 - jr z, .burn1 - cp FREEZE_SIDE_EFFECT - jr z, .freeze1 -; .paralyze - ld a, 1 << PAR - ld [wEnemyMonStatus], a - call QuarterSpeedDueToParalysis ; quarter speed of affected mon - ld a, ANIM_A9 - call PlayBattleAnimation - jp PrintMayNotAttackText ; print paralysis text -.burn1 - ld a, 1 << BRN - ld [wEnemyMonStatus], a - call HalveAttackDueToBurn ; halve attack of affected mon - ld a, ANIM_A9 - call PlayBattleAnimation - ld hl, BurnedText - jp PrintText -.freeze1 - call ClearHyperBeam ; resets hyper beam (recharge) condition from target - ld a, 1 << FRZ - ld [wEnemyMonStatus], a - ld a, ANIM_A9 - call PlayBattleAnimation - ld hl, FrozenText - jp PrintText -.opponentAttacker - ld a, [wBattleMonStatus] ; mostly same as above with addresses swapped for opponent - and a - jp nz, CheckDefrost - ld a, [wEnemyMoveType] - ld b, a - ld a, [wBattleMonType1] - cp b - ret z - ld a, [wBattleMonType2] - cp b - ret z - ld a, [wEnemyMoveEffect] - cp UNUSED_EFFECT_23 ; more stadium stuff - jr nz, .asm_3f341 - ld a, [wUnknownSerialFlag_d499] - and a - ld a, FREEZE_SIDE_EFFECT - ld b, $4d ; else use 0x4D/0x100 or 77/256 = 30.1%~ chance - jr z, .next2 - ld b, $1a ; 0x1A/0x100 or 26/256 = 10.2%~ chance - jr .next2 -.asm_3f341 - cp a, PARALYZE_SIDE_EFFECT1 + 1 - ld b, $1a - jr c, .next2 - ld b, $4d - sub $1e -.next2 - push af - call BattleRandom - cp b - pop bc - ret nc - ld a, b - cp BURN_SIDE_EFFECT1 - jr z, .burn2 - cp FREEZE_SIDE_EFFECT - jr z, .freeze2 - ld a, 1 << PAR - ld [wBattleMonStatus], a - call QuarterSpeedDueToParalysis - ld a, ANIM_C7 - call PlayBattleAnimation2 - jp PrintMayNotAttackText -.burn2 - ld a, 1 << BRN - ld [wBattleMonStatus], a - call HalveAttackDueToBurn - ld a, ANIM_C7 - call PlayBattleAnimation2 - ld hl, BurnedText - jp PrintText -.freeze2 -; hyper beam bits aren't reseted for opponent's side - ld a, 1 << FRZ - ld [wBattleMonStatus], a - ld a, ANIM_C7 - call PlayBattleAnimation2 - ld hl, FrozenText - jp PrintText - -BurnedText: - TX_FAR _BurnedText - db "@" - -FrozenText: - TX_FAR _FrozenText - db "@" - -CheckDefrost: -; any fire-type move that has a chance inflict burn (all but Fire Spin) will defrost a frozen target - and 1 << FRZ ; are they frozen? - ret z ; return if so - ld a, [H_WHOSETURN] - and a - jr nz, .opponent - ;player [attacker] - ld a, [wPlayerMoveType] - sub FIRE - ret nz ; return if type of move used isn't fire - ld [wEnemyMonStatus], a ; set opponent status to 00 ["defrost" a frozen monster] - ld hl, wEnemyMon1Status - ld a, [wEnemyMonPartyPos] - ld bc, wEnemyMon2 - wEnemyMon1 - call AddNTimes - xor a - ld [hl], a ; clear status in roster - ld hl, FireDefrostedText - jr .common -.opponent - ld a, [wEnemyMoveType] ; same as above with addresses swapped - sub FIRE - ret nz - ld [wBattleMonStatus], a - ld hl, wPartyMon1Status - ld a, [wPlayerMonNumber] - ld bc, wPartyMon2 - wPartyMon1 - call AddNTimes - xor a - ld [hl], a - ld hl, FireDefrostedText -.common - jp PrintText - -FireDefrostedText: - TX_FAR _FireDefrostedText - db "@" - -StatModifierUpEffect: - ld hl, wPlayerMonStatMods - ld de, wPlayerMoveEffect - ld a, [H_WHOSETURN] - and a - jr z, .statModifierUpEffect - ld hl, wEnemyMonStatMods - ld de, wEnemyMoveEffect -.statModifierUpEffect - ld a, [de] - sub ATTACK_UP1_EFFECT - cp EVASION_UP1_EFFECT + $3 - ATTACK_UP1_EFFECT ; covers all +1 effects - jr c, .incrementStatMod - sub ATTACK_UP2_EFFECT - ATTACK_UP1_EFFECT ; map +2 effects to equivalent +1 effect -.incrementStatMod - ld c, a - ld b, $0 - add hl, bc - ld b, [hl] - inc b ; increment corresponding stat mod - ld a, $d - cp b ; can't raise stat past +6 ($d or 13) - jp c, PrintNothingHappenedText - ld a, [de] - cp ATTACK_UP1_EFFECT + $8 ; is it a +2 effect? - jr c, .ok - inc b ; if so, increment stat mod again - ld a, $d - cp b ; unless it's already +6 - jr nc, .ok - ld b, a -.ok - ld [hl], b - ld a, c - cp $4 - jr nc, UpdateStatDone ; jump if mod affected is evasion/accuracy - push hl - ld hl, wBattleMonAttack + 1 - ld de, wPlayerMonUnmodifiedAttack - ld a, [H_WHOSETURN] - and a - jr z, .pointToStats - ld hl, wEnemyMonAttack + 1 - ld de, wEnemyMonUnmodifiedAttack -.pointToStats - push bc - sla c - ld b, $0 - add hl, bc ; hl = modified stat - ld a, c - add e - ld e, a - jr nc, .checkIf999 - inc d ; de = unmodified (original) stat -.checkIf999 - pop bc - ld a, [hld] - sub 999 % $100 ; check if stat is already 999 - jr nz, .recalculateStat - ld a, [hl] - sbc 999 / $100 - jp z, RestoreOriginalStatModifier -.recalculateStat ; recalculate affected stat - ; paralysis and burn penalties, as well as badge boosts are ignored - push hl - push bc - ld hl, StatModifierRatios - dec b - sla b - ld c, b - ld b, $0 - add hl, bc - pop bc - xor a - ld [H_MULTIPLICAND], a - ld a, [de] - ld [H_MULTIPLICAND + 1], a - inc de - ld a, [de] - ld [H_MULTIPLICAND + 2], a - ld a, [hli] - ld [H_MULTIPLIER], a - call Multiply - ld a, [hl] - ld [H_DIVISOR], a - ld b, $4 - call Divide - pop hl -; cap at 999 - ld a, [H_PRODUCT + 3] - sub 999 % $100 - ld a, [H_PRODUCT + 2] - sbc 999 / $100 - jp c, UpdateStat - ld a, 999 / $100 - ld [H_MULTIPLICAND + 1], a - ld a, 999 % $100 - ld [H_MULTIPLICAND + 2], a - -UpdateStat: - ld a, [H_PRODUCT + 2] - ld [hli], a - ld a, [H_PRODUCT + 3] - ld [hl], a - pop hl -UpdateStatDone: - ld b, c - inc b - call PrintStatText - ld hl, wPlayerBattleStatus2 - ld de, wPlayerMoveNum - ld bc, wPlayerMonMinimized - ld a, [H_WHOSETURN] - and a - jr z, .playerTurn - ld hl, wEnemyBattleStatus2 - ld de, wEnemyMoveNum - ld bc, wEnemyMonMinimized -.playerTurn - ld a, [de] - cp MINIMIZE - jr nz, .notMinimize - ; if a substitute is up, slide off the substitute and show the mon pic before - ; playing the minimize animation - bit HAS_SUBSTITUTE_UP, [hl] - push af - push bc - push de - ld hl, HideSubstituteShowMonAnim - ld b, BANK(HideSubstituteShowMonAnim) - call nz, Bankswitch - pop de -.notMinimize - call PlayCurrentMoveAnimation - ld a, [de] - cp MINIMIZE - jr nz, .applyBadgeBoostsAndStatusPenalties - pop bc - ld a, $1 - ld [bc], a - ld hl, ReshowSubstituteAnim - ld b, BANK(ReshowSubstituteAnim) - pop af - call nz, Bankswitch -.applyBadgeBoostsAndStatusPenalties - ld a, [H_WHOSETURN] - and a - call z, ApplyBadgeStatBoosts ; whenever the player uses a stat-up move, badge boosts get reapplied again to every stat, - ; even to those not affected by the stat-up move (will be boosted further) - ld hl, MonsStatsRoseText - call PrintText - -; these shouldn't be here - call QuarterSpeedDueToParalysis ; apply speed penalty to the player whose turn is not, if it's paralyzed - jp HalveAttackDueToBurn ; apply attack penalty to the player whose turn is not, if it's burned - -RestoreOriginalStatModifier: - pop hl - dec [hl] - -PrintNothingHappenedText: - ld hl, NothingHappenedText - jp PrintText - -MonsStatsRoseText: - TX_FAR _MonsStatsRoseText - TX_ASM - ld hl, GreatlyRoseText - ld a, [H_WHOSETURN] - and a - ld a, [wPlayerMoveEffect] - jr z, .playerTurn - ld a, [wEnemyMoveEffect] -.playerTurn - cp ATTACK_DOWN1_EFFECT - ret nc - ld hl, RoseText - ret - -GreatlyRoseText: - TX_DELAY - TX_FAR _GreatlyRoseText -; fallthrough -RoseText: - TX_FAR _RoseText - db "@" - -StatModifierDownEffect: - ld hl, wEnemyMonStatMods - ld de, wPlayerMoveEffect - ld bc, wEnemyBattleStatus1 - ld a, [H_WHOSETURN] - and a - jr z, .statModifierDownEffect - ld hl, wPlayerMonStatMods - ld de, wEnemyMoveEffect - ld bc, wPlayerBattleStatus1 - ld a, [wLinkState] - cp LINK_STATE_BATTLING - jr z, .statModifierDownEffect - call BattleRandom - cp $40 ; 1/4 chance to miss by in regular battle - jp c, MoveMissed -.statModifierDownEffect - call CheckTargetSubstitute ; can't hit through substitute - jp nz, MoveMissed - ld a, [de] - cp ATTACK_DOWN_SIDE_EFFECT - jr c, .nonSideEffect - call BattleRandom - cp $55 ; 85/256 chance for side effects - jp nc, CantLowerAnymore - ld a, [de] - sub ATTACK_DOWN_SIDE_EFFECT ; map each stat to 0-3 - jr .decrementStatMod -.nonSideEffect ; non-side effects only - push hl - push de - push bc - call MoveHitTest ; apply accuracy tests - pop bc - pop de - pop hl - ld a, [wMoveMissed] - and a - jp nz, MoveMissed - ld a, [bc] - bit INVULNERABLE, a ; fly/dig - jp nz, MoveMissed - ld a, [de] - sub ATTACK_DOWN1_EFFECT - cp EVASION_DOWN1_EFFECT + $3 - ATTACK_DOWN1_EFFECT ; covers all -1 effects - jr c, .decrementStatMod - sub ATTACK_DOWN2_EFFECT - ATTACK_DOWN1_EFFECT ; map -2 effects to corresponding -1 effect -.decrementStatMod - ld c, a - ld b, $0 - add hl, bc - ld b, [hl] - dec b ; dec corresponding stat mod - jp z, CantLowerAnymore ; if stat mod is 1 (-6), can't lower anymore - ld a, [de] - cp ATTACK_DOWN2_EFFECT - $16 ; $24 - jr c, .ok - cp EVASION_DOWN2_EFFECT + $5 ; $44 - jr nc, .ok - dec b ; stat down 2 effects only (dec mod again) - jr nz, .ok - inc b ; increment mod to 1 (-6) if it would become 0 (-7) -.ok - ld [hl], b ; save modified mod - ld a, c - cp $4 - jr nc, UpdateLoweredStatDone ; jump for evasion/accuracy - push hl - push de - ld hl, wEnemyMonAttack + 1 - ld de, wEnemyMonUnmodifiedAttack - ld a, [H_WHOSETURN] - and a - jr z, .pointToStat - ld hl, wBattleMonAttack + 1 - ld de, wPlayerMonUnmodifiedAttack -.pointToStat - push bc - sla c - ld b, $0 - add hl, bc ; hl = modified stat - ld a, c - add e - ld e, a - jr nc, .noCarry - inc d ; de = unmodified stat -.noCarry - pop bc - ld a, [hld] - sub $1 ; can't lower stat below 1 (-6) - jr nz, .recalculateStat - ld a, [hl] - and a - jp z, CantLowerAnymore_Pop -.recalculateStat -; recalculate affected stat -; paralysis and burn penalties, as well as badge boosts are ignored - push hl - push bc - ld hl, StatModifierRatios - dec b - sla b - ld c, b - ld b, $0 - add hl, bc - pop bc - xor a - ld [H_MULTIPLICAND], a - ld a, [de] - ld [H_MULTIPLICAND + 1], a - inc de - ld a, [de] - ld [H_MULTIPLICAND + 2], a - ld a, [hli] - ld [H_MULTIPLIER], a - call Multiply - ld a, [hl] - ld [H_DIVISOR], a - ld b, $4 - call Divide - pop hl - ld a, [H_PRODUCT + 3] - ld b, a - ld a, [H_PRODUCT + 2] - or b - jp nz, UpdateLoweredStat - ld [H_MULTIPLICAND + 1], a - ld a, $1 - ld [H_MULTIPLICAND + 2], a - -UpdateLoweredStat: - ld a, [H_PRODUCT + 2] - ld [hli], a - ld a, [H_PRODUCT + 3] - ld [hl], a - pop de - pop hl -UpdateLoweredStatDone: - ld b, c - inc b - push de - call PrintStatText - pop de - ld a, [de] - cp $44 - jr nc, .ApplyBadgeBoostsAndStatusPenalties - call PlayCurrentMoveAnimation2 -.ApplyBadgeBoostsAndStatusPenalties - ld a, [H_WHOSETURN] - and a - call nz, ApplyBadgeStatBoosts ; whenever the player uses a stat-down move, badge boosts get reapplied again to every stat, - ; even to those not affected by the stat-up move (will be boosted further) - ld hl, MonsStatsFellText - call PrintText - -; These where probably added given that a stat-down move affecting speed or attack will override -; the stat penalties from paralysis and burn respectively. -; But they are always called regardless of the stat affected by the stat-down move. - call QuarterSpeedDueToParalysis - jp HalveAttackDueToBurn - -CantLowerAnymore_Pop: - pop de - pop hl - inc [hl] - -CantLowerAnymore: - ld a, [de] - cp ATTACK_DOWN_SIDE_EFFECT - ret nc - ld hl, NothingHappenedText - jp PrintText - -MoveMissed: - ld a, [de] - cp $44 - ret nc - jp ConditionalPrintButItFailed - -MonsStatsFellText: - TX_FAR _MonsStatsFellText - TX_ASM - ld hl, FellText - ld a, [H_WHOSETURN] - and a - ld a, [wPlayerMoveEffect] - jr z, .playerTurn - ld a, [wEnemyMoveEffect] -.playerTurn -; check if the move's effect decreases a stat by 2 - cp BIDE_EFFECT - ret c - cp ATTACK_DOWN_SIDE_EFFECT - ret nc - ld hl, GreatlyFellText - ret - -GreatlyFellText: - TX_DELAY - TX_FAR _GreatlyFellText -; fallthrough -FellText: - TX_FAR _FellText - db "@" - -PrintStatText: - ld hl, StatsTextStrings - ld c, "@" -.findStatName_outer - dec b - jr z, .foundStatName -.findStatName_inner - ld a, [hli] - cp c - jr z, .findStatName_outer - jr .findStatName_inner -.foundStatName - ld de, wcf4b - ld bc, $a - jp CopyData - -StatsTextStrings: - db "ATTACK@" - db "DEFENSE@" - db "SPEED@" - db "SPECIAL@" - db "ACCURACY@" - db "EVADE@" - -StatModifierRatios: -; first byte is numerator, second byte is denominator - db 25, 100 ; 0.25 - db 28, 100 ; 0.28 - db 33, 100 ; 0.33 - db 40, 100 ; 0.40 - db 50, 100 ; 0.50 - db 66, 100 ; 0.66 - db 1, 1 ; 1.00 - db 15, 10 ; 1.50 - db 2, 1 ; 2.00 - db 25, 10 ; 2.50 - db 3, 1 ; 3.00 - db 35, 10 ; 3.50 - db 4, 1 ; 4.00 - -BideEffect: - ld hl, wPlayerBattleStatus1 - ld de, wPlayerBideAccumulatedDamage - ld bc, wPlayerNumAttacksLeft - ld a, [H_WHOSETURN] - and a - jr z, .bideEffect - ld hl, wEnemyBattleStatus1 - ld de, wEnemyBideAccumulatedDamage - ld bc, wEnemyNumAttacksLeft -.bideEffect - set STORING_ENERGY, [hl] ; mon is now using bide - xor a - ld [de], a - inc de - ld [de], a - ld [wPlayerMoveEffect], a - ld [wEnemyMoveEffect], a - call BattleRandom - and $1 - inc a - inc a - ld [bc], a ; set Bide counter to 2 or 3 at random - ld a, [H_WHOSETURN] - add XSTATITEM_ANIM - jp PlayBattleAnimation2 - -ThrashPetalDanceEffect: - ld hl, wPlayerBattleStatus1 - ld de, wPlayerNumAttacksLeft - ld a, [H_WHOSETURN] - and a - jr z, .thrashPetalDanceEffect - ld hl, wEnemyBattleStatus1 - ld de, wEnemyNumAttacksLeft -.thrashPetalDanceEffect - set THRASHING_ABOUT, [hl] ; mon is now using thrash/petal dance - call BattleRandom - and $1 - inc a - inc a - ld [de], a ; set thrash/petal dance counter to 2 or 3 at random - ld a, [H_WHOSETURN] - add ANIM_B0 - jp PlayBattleAnimation2 - -SwitchAndTeleportEffect: - ld a, [H_WHOSETURN] - and a - jr nz, .handleEnemy - ld a, [wIsInBattle] - dec a - jr nz, .notWildBattle1 - ld a, [wCurEnemyLVL] - ld b, a - ld a, [wBattleMonLevel] - cp b ; is the player's level greater than the enemy's level? - jr nc, .playerMoveWasSuccessful ; if so, teleport will always succeed - add b - ld c, a - inc c ; c = sum of player level and enemy level -.rejectionSampleLoop1 - call BattleRandom - cp c ; get a random number between 0 and c - jr nc, .rejectionSampleLoop1 - srl b - srl b ; b = enemyLevel / 4 - cp b ; is rand[0, playerLevel + enemyLevel) >= (enemyLevel / 4)? - jr nc, .playerMoveWasSuccessful ; if so, allow teleporting - ld c, 50 - call DelayFrames - ld a, [wPlayerMoveNum] - cp TELEPORT - jp nz, PrintDidntAffectText - jp PrintButItFailedText_ -.playerMoveWasSuccessful - call ReadPlayerMonCurHPAndStatus - xor a - ld [wAnimationType], a - inc a - ld [wEscapedFromBattle], a - ld a, [wPlayerMoveNum] - jr .playAnimAndPrintText -.notWildBattle1 - ld c, 50 - call DelayFrames - ld hl, IsUnaffectedText - ld a, [wPlayerMoveNum] - cp TELEPORT - jp nz, PrintText - jp PrintButItFailedText_ -.handleEnemy - ld a, [wIsInBattle] - dec a - jr nz, .notWildBattle2 - ld a, [wBattleMonLevel] - ld b, a - ld a, [wCurEnemyLVL] - cp b - jr nc, .enemyMoveWasSuccessful - add b - ld c, a - inc c -.rejectionSampleLoop2 - call BattleRandom - cp c - jr nc, .rejectionSampleLoop2 - srl b - srl b - cp b - jr nc, .enemyMoveWasSuccessful - ld c, 50 - call DelayFrames - ld a, [wEnemyMoveNum] - cp TELEPORT - jp nz, PrintDidntAffectText - jp PrintButItFailedText_ -.enemyMoveWasSuccessful - call ReadPlayerMonCurHPAndStatus - xor a - ld [wAnimationType], a - inc a - ld [wEscapedFromBattle], a - ld a, [wEnemyMoveNum] - jr .playAnimAndPrintText -.notWildBattle2 - ld c, 50 - call DelayFrames - ld hl, IsUnaffectedText - ld a, [wEnemyMoveNum] - cp TELEPORT - jp nz, PrintText - jp ConditionalPrintButItFailed -.playAnimAndPrintText - push af - call PlayBattleAnimation - ld c, 20 - call DelayFrames - pop af - ld hl, RanFromBattleText - cp TELEPORT - jr z, .printText - ld hl, RanAwayScaredText - cp ROAR - jr z, .printText - ld hl, WasBlownAwayText -.printText - jp PrintText - -RanFromBattleText: - TX_FAR _RanFromBattleText - db "@" - -RanAwayScaredText: - TX_FAR _RanAwayScaredText - db "@" - -WasBlownAwayText: - TX_FAR _WasBlownAwayText - db "@" - -TwoToFiveAttacksEffect: - ld hl, wPlayerBattleStatus1 - ld de, wPlayerNumAttacksLeft - ld bc, wPlayerNumHits - ld a, [H_WHOSETURN] - and a - jr z, .twoToFiveAttacksEffect - ld hl, wEnemyBattleStatus1 - ld de, wEnemyNumAttacksLeft - ld bc, wEnemyNumHits -.twoToFiveAttacksEffect - bit ATTACKING_MULTIPLE_TIMES, [hl] ; is mon attacking multiple times? - ret nz - set ATTACKING_MULTIPLE_TIMES, [hl] ; mon is now attacking multiple times - ld hl, wPlayerMoveEffect - ld a, [H_WHOSETURN] - and a - jr z, .setNumberOfHits - ld hl, wEnemyMoveEffect -.setNumberOfHits - ld a, [hl] - cp TWINEEDLE_EFFECT - jr z, .twineedle - cp ATTACK_TWICE_EFFECT - ld a, $2 ; number of hits it's always 2 for ATTACK_TWICE_EFFECT - jr z, .saveNumberOfHits -; for TWO_TO_FIVE_ATTACKS_EFFECT 3/8 chance for 2 and 3 hits, and 1/8 chance for 4 and 5 hits - call BattleRandom - and $3 - cp $2 - jr c, .gotNumHits -; if the number of hits was greater than 2, re-roll again for a lower chance - call BattleRandom - and $3 -.gotNumHits - inc a - inc a -.saveNumberOfHits - ld [de], a - ld [bc], a - ret -.twineedle - ld a, POISON_SIDE_EFFECT1 - ld [hl], a ; set Twineedle's effect to poison effect - jr .saveNumberOfHits - -FlinchSideEffect: - call CheckTargetSubstitute - ret nz - ld hl, wEnemyBattleStatus1 - ld de, wPlayerMoveEffect - ld a, [H_WHOSETURN] - and a - jr z, .flinchSideEffect - ld hl, wPlayerBattleStatus1 - ld de, wEnemyMoveEffect -.flinchSideEffect - ld a, [wLinkState] - cp LINK_STATE_BATTLING - call z, ClearHyperBeam - ld a, [de] - cp FLINCH_SIDE_EFFECT1 - ld b, $1a ; ~10% chance of flinch - jr z, .gotEffectChance - ld b, $4d ; ~30% chance of flinch -.gotEffectChance - call BattleRandom - cp b - ret nc - set FLINCHED, [hl] ; set mon's status to flinching - call ClearHyperBeam - ret - -OneHitKOEffect: - jpab OneHitKOEffect_ - -ChargeEffect: - ld hl, wPlayerBattleStatus1 - ld de, wPlayerMoveEffect - ld a, [H_WHOSETURN] - and a - ld b, XSTATITEM_ANIM - jr z, .chargeEffect - ld hl, wEnemyBattleStatus1 - ld de, wEnemyMoveEffect - ld b, ANIM_AF -.chargeEffect - set CHARGING_UP, [hl] - ld a, [de] - dec de ; de contains enemy or player MOVENUM - cp FLY_EFFECT - jr nz, .notFly - set INVULNERABLE, [hl] ; mon is now invulnerable to typical attacks (fly/dig) - ld b, TELEPORT ; load Teleport's animation -.notFly - ld a, [de] - cp DIG - jr nz, .notDigOrFly - set INVULNERABLE, [hl] ; mon is now invulnerable to typical attacks (fly/dig) - ld b, ANIM_C0 -.notDigOrFly - push de - push bc - inc hl ; battle status 2 - push hl - ld a, [hl] - bit HAS_SUBSTITUTE_UP, a - ld hl, HideSubstituteShowMonAnim - ld b, BANK(HideSubstituteShowMonAnim) - call nz, Bankswitch - pop hl - pop bc - xor a - ld [wAnimationType], a - ld a, b - call PlayBattleAnimation - ld a, [hl] - bit HAS_SUBSTITUTE_UP, a - ld hl, ReshowSubstituteAnim - ld b, BANK(ReshowSubstituteAnim) - call nz, Bankswitch - pop de - ld a, [de] - ld [wChargeMoveNum], a - ld hl, ChargeMoveEffectText - jp PrintText - -ChargeMoveEffectText: - TX_FAR _ChargeMoveEffectText - TX_ASM - ld a, [wChargeMoveNum] - cp RAZOR_WIND - ld hl, MadeWhirlwindText - jr z, .gotText - cp SOLARBEAM - ld hl, TookInSunlightText - jr z, .gotText - cp SKULL_BASH - ld hl, LoweredItsHeadText - jr z, .gotText - cp SKY_ATTACK - ld hl, SkyAttackGlowingText - jr z, .gotText - cp FLY - ld hl, FlewUpHighText - jr z, .gotText - cp DIG - ld hl, DugAHoleText -.gotText - ret - -MadeWhirlwindText: - TX_FAR _MadeWhirlwindText - db "@" - -TookInSunlightText: - TX_FAR _TookInSunlightText - db "@" - -LoweredItsHeadText: - TX_FAR _LoweredItsHeadText - db "@" - -SkyAttackGlowingText: - TX_FAR _SkyAttackGlowingText - db "@" - -FlewUpHighText: - TX_FAR _FlewUpHighText - db "@" - -DugAHoleText: - TX_FAR _DugAHoleText - db "@" - -TrappingEffect: - ld hl, wPlayerBattleStatus1 - ld de, wPlayerNumAttacksLeft - ld a, [H_WHOSETURN] - and a - jr z, .trappingEffect - ld hl, wEnemyBattleStatus1 - ld de, wEnemyNumAttacksLeft -.trappingEffect - bit USING_TRAPPING_MOVE, [hl] - ret nz - call ClearHyperBeam ; since this effect is called before testing whether the move will hit, - ; the target won't need to recharge even if the trapping move missed - set USING_TRAPPING_MOVE, [hl] ; mon is now using a trapping move - call BattleRandom ; 3/8 chance for 2 and 3 attacks, and 1/8 chance for 4 and 5 attacks - and $3 - cp $2 - jr c, .setTrappingCounter - call BattleRandom - and $3 -.setTrappingCounter - inc a - ld [de], a - ret - -MistEffect: - jpab MistEffect_ - -FocusEnergyEffect: - jpab FocusEnergyEffect_ - -RecoilEffect: - jpab RecoilEffect_ - -ConfusionSideEffect: - call BattleRandom - cp $19 ; ~10% chance - ret nc - jr ConfusionSideEffectSuccess - -ConfusionEffect: - call CheckTargetSubstitute - jr nz, ConfusionEffectFailed - call MoveHitTest - ld a, [wMoveMissed] - and a - jr nz, ConfusionEffectFailed - -ConfusionSideEffectSuccess: - ld a, [H_WHOSETURN] - and a - ld hl, wEnemyBattleStatus1 - ld bc, wEnemyConfusedCounter - ld a, [wPlayerMoveEffect] - jr z, .confuseTarget - ld hl, wPlayerBattleStatus1 - ld bc, wPlayerConfusedCounter - ld a, [wEnemyMoveEffect] -.confuseTarget - bit CONFUSED, [hl] ; is mon confused? - jr nz, ConfusionEffectFailed - set CONFUSED, [hl] ; mon is now confused - push af - call BattleRandom - and $3 - inc a - inc a - ld [bc], a ; confusion status will last 2-5 turns - pop af - cp CONFUSION_SIDE_EFFECT - call nz, PlayCurrentMoveAnimation2 - ld hl, BecameConfusedText - jp PrintText - -BecameConfusedText: - TX_FAR _BecameConfusedText - db "@" - -ConfusionEffectFailed: - cp CONFUSION_SIDE_EFFECT - ret z - ld c, 50 - call DelayFrames - jp ConditionalPrintButItFailed - -ParalyzeEffect: - jpab ParalyzeEffect_ - -SubstituteEffect: - jpab SubstituteEffect_ - -HyperBeamEffect: - ld hl, wPlayerBattleStatus2 - ld a, [H_WHOSETURN] - and a - jr z, .hyperBeamEffect - ld hl, wEnemyBattleStatus2 -.hyperBeamEffect - set NEEDS_TO_RECHARGE, [hl] ; mon now needs to recharge - ret - -ClearHyperBeam: - push hl - ld hl, wEnemyBattleStatus2 - ld a, [H_WHOSETURN] - and a - jr z, .playerTurn - ld hl, wPlayerBattleStatus2 -.playerTurn - res NEEDS_TO_RECHARGE, [hl] ; mon no longer needs to recharge - pop hl - ret - -RageEffect: - ld hl, wPlayerBattleStatus2 - ld a, [H_WHOSETURN] - and a - jr z, .player - ld hl, wEnemyBattleStatus2 -.player - set USING_RAGE, [hl] ; mon is now in "rage" mode - ret - -MimicEffect: - ld c, 50 - call DelayFrames - call MoveHitTest - ld a, [wMoveMissed] - and a - jr nz, .mimicMissed - ld a, [H_WHOSETURN] - and a - ld hl, wBattleMonMoves - ld a, [wPlayerBattleStatus1] - jr nz, .enemyTurn - ld a, [wLinkState] - cp LINK_STATE_BATTLING - jr nz, .letPlayerChooseMove - ld hl, wEnemyMonMoves - ld a, [wEnemyBattleStatus1] -.enemyTurn - bit INVULNERABLE, a - jr nz, .mimicMissed -.getRandomMove - push hl - call BattleRandom - and $3 - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - pop hl - and a - jr z, .getRandomMove - ld d, a - ld a, [H_WHOSETURN] - and a - ld hl, wBattleMonMoves - ld a, [wPlayerMoveListIndex] - jr z, .playerTurn - ld hl, wEnemyMonMoves - ld a, [wEnemyMoveListIndex] - jr .playerTurn -.letPlayerChooseMove - ld a, [wEnemyBattleStatus1] - bit INVULNERABLE, a - jr nz, .mimicMissed - ld a, [wCurrentMenuItem] - push af - ld a, $1 - ld [wMoveMenuType], a - call MoveSelectionMenu - call LoadScreenTilesFromBuffer1 - ld hl, wEnemyMonMoves - ld a, [wCurrentMenuItem] - ld c, a - ld b, $0 - add hl, bc - ld d, [hl] - pop af - ld hl, wBattleMonMoves -.playerTurn - ld c, a - ld b, $0 - add hl, bc - ld a, d - ld [hl], a - ld [wd11e], a - call GetMoveName - call PlayCurrentMoveAnimation - ld hl, MimicLearnedMoveText - jp PrintText -.mimicMissed - jp PrintButItFailedText_ - -MimicLearnedMoveText: - TX_FAR _MimicLearnedMoveText - db "@" - -LeechSeedEffect: - jpab LeechSeedEffect_ - -SplashEffect: - call PlayCurrentMoveAnimation - jp PrintNoEffectText - -DisableEffect: - call MoveHitTest - ld a, [wMoveMissed] - and a - jr nz, .moveMissed - ld de, wEnemyDisabledMove - ld hl, wEnemyMonMoves - ld a, [H_WHOSETURN] - and a - jr z, .disableEffect - ld de, wPlayerDisabledMove - ld hl, wBattleMonMoves -.disableEffect -; no effect if target already has a move disabled - ld a, [de] - and a - jr nz, .moveMissed -.pickMoveToDisable - push hl - call BattleRandom - and $3 - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - pop hl - and a - jr z, .pickMoveToDisable ; loop until a non-00 move slot is found - ld [wd11e], a ; store move number - push hl - ld a, [H_WHOSETURN] - and a - ld hl, wBattleMonPP - jr nz, .enemyTurn - ld a, [wLinkState] - cp LINK_STATE_BATTLING - pop hl ; wEnemyMonMoves - jr nz, .playerTurnNotLinkBattle -; .playerTurnLinkBattle - push hl - ld hl, wEnemyMonPP -.enemyTurn - push hl - ld a, [hli] - or [hl] - inc hl - or [hl] - inc hl - or [hl] - and $3f - pop hl ; wBattleMonPP or wEnemyMonPP - jr z, .moveMissedPopHL ; nothing to do if all moves have no PP left - add hl, bc - ld a, [hl] - pop hl - and a - jr z, .pickMoveToDisable ; pick another move if this one had 0 PP -.playerTurnNotLinkBattle -; non-link battle enemies have unlimited PP so the previous checks aren't needed - call BattleRandom - and $7 - inc a ; 1-8 turns disabled - inc c ; move 1-4 will be disabled - swap c - add c ; map disabled move to high nibble of wEnemyDisabledMove / wPlayerDisabledMove - ld [de], a - call PlayCurrentMoveAnimation2 - ld hl, wPlayerDisabledMoveNumber - ld a, [H_WHOSETURN] - and a - jr nz, .printDisableText - inc hl ; wEnemyDisabledMoveNumber -.printDisableText - ld a, [wd11e] ; move number - ld [hl], a - call GetMoveName - ld hl, MoveWasDisabledText - jp PrintText -.moveMissedPopHL - pop hl -.moveMissed - jp PrintButItFailedText_ - -MoveWasDisabledText: - TX_FAR _MoveWasDisabledText - db "@" - -PayDayEffect: - jpab PayDayEffect_ - -ConversionEffect: - jpab ConversionEffect_ - -HazeEffect: - jpab HazeEffect_ - -HealEffect: - jpab HealEffect_ - -TransformEffect: - jpab TransformEffect_ - -ReflectLightScreenEffect: - jpab ReflectLightScreenEffect_ - -NothingHappenedText: - TX_FAR _NothingHappenedText - db "@" - -PrintNoEffectText: - ld hl, NoEffectText - jp PrintText - -NoEffectText: - TX_FAR _NoEffectText - db "@" - -ConditionalPrintButItFailed: - ld a, [wMoveDidntMiss] - and a - ret nz ; return if the side effect failed, yet the attack was successful - -PrintButItFailedText_: - ld hl, ButItFailedText - jp PrintText - -ButItFailedText: - TX_FAR _ButItFailedText - db "@" - -PrintDidntAffectText: - ld hl, DidntAffectText - jp PrintText - -DidntAffectText: - TX_FAR _DidntAffectText - db "@" - -IsUnaffectedText: - TX_FAR _IsUnaffectedText - db "@" - -PrintMayNotAttackText: - ld hl, ParalyzedMayNotAttackText - jp PrintText - -ParalyzedMayNotAttackText: - TX_FAR _ParalyzedMayNotAttackText - db "@" - -CheckTargetSubstitute: - push hl - ld hl, wEnemyBattleStatus2 - ld a, [H_WHOSETURN] - and a - jr z, .next1 - ld hl, wPlayerBattleStatus2 -.next1 - bit HAS_SUBSTITUTE_UP, [hl] - pop hl - ret - -PlayCurrentMoveAnimation2: -; animation at MOVENUM will be played unless MOVENUM is 0 -; plays wAnimationType 3 or 6 - ld a, [H_WHOSETURN] - and a - ld a, [wPlayerMoveNum] - jr z, .notEnemyTurn - ld a, [wEnemyMoveNum] -.notEnemyTurn - and a - ret z - -PlayBattleAnimation2: -; play animation ID at a and animation type 6 or 3 - ld [wAnimationID], a - ld a, [H_WHOSETURN] - and a - ld a, $6 - jr z, .storeAnimationType - ld a, $3 -.storeAnimationType - ld [wAnimationType], a - jp PlayBattleAnimationGotID - -PlayCurrentMoveAnimation: -; animation at MOVENUM will be played unless MOVENUM is 0 -; resets wAnimationType - xor a - ld [wAnimationType], a - ld a, [H_WHOSETURN] - and a - ld a, [wPlayerMoveNum] - jr z, .notEnemyTurn - ld a, [wEnemyMoveNum] -.notEnemyTurn - and a - ret z - -PlayBattleAnimation: -; play animation ID at a and predefined animation type - ld [wAnimationID], a - -PlayBattleAnimationGotID: -; play animation at wAnimationID - push hl - push de - push bc - predef MoveAnimation - callab Func_78e98 - pop bc - pop de - pop hl + callfar Func_78e98 ret diff --git a/engine/battle/decrement_pp.asm b/engine/battle/decrement_pp.asm index b7c428f75..441bbb814 100644 --- a/engine/battle/decrement_pp.asm +++ b/engine/battle/decrement_pp.asm @@ -37,7 +37,7 @@ DecrementPP: ld a, [wPlayerMoveListIndex] ; which move (0, 1, 2, 3) did we use? ld c, a ld b, 0 - add hl ,bc ; calculate the address in memory of the PP we need to decrement + add hl, bc ; calculate the address in memory of the PP we need to decrement ; based on the move chosen. dec [hl] ; Decrement PP ret diff --git a/engine/battle/display_effectiveness.asm b/engine/battle/display_effectiveness.asm index 1bf144604..b23695cf8 100644 --- a/engine/battle/display_effectiveness.asm +++ b/engine/battle/display_effectiveness.asm @@ -10,9 +10,9 @@ DisplayEffectiveness: jp PrintText SuperEffectiveText: - TX_FAR _SuperEffectiveText - db "@" + text_far _SuperEffectiveText + text_end NotVeryEffectiveText: - TX_FAR _NotVeryEffectiveText - db "@" + text_far _NotVeryEffectiveText + text_end diff --git a/engine/battle/draw_hud_pokeball_gfx.asm b/engine/battle/draw_hud_pokeball_gfx.asm index 962947744..6aed1d0a4 100644 --- a/engine/battle/draw_hud_pokeball_gfx.asm +++ b/engine/battle/draw_hud_pokeball_gfx.asm @@ -12,7 +12,7 @@ DrawEnemyPokeballs: LoadPartyPokeballGfx: ld de, PokeballTileGraphics - ld hl, vSprites + $310 + ld hl, vSprites tile $31 lb bc, BANK(PokeballTileGraphics), (PokeballTileGraphicsEnd - PokeballTileGraphics) / $10 jp CopyVideoData @@ -125,7 +125,7 @@ PlacePlayerHUDTiles: ld de, wHUDGraphicsTiles ld bc, $3 call CopyData - coord hl, 18, 10 + hlcoord 18, 10 ld de, -1 jr PlaceHUDTiles @@ -140,7 +140,7 @@ PlaceEnemyHUDTiles: ld de, wHUDGraphicsTiles ld bc, $3 call CopyData - coord hl, 1, 2 + hlcoord 1, 2 ld de, $1 jr PlaceHUDTiles @@ -196,5 +196,5 @@ SetupPlayerAndEnemyPokeballs: ; four tiles: pokeball, black pokeball (status ailment), crossed out pokeball (fainted) and pokeball slot (no mon) PokeballTileGraphics:: - INCBIN "gfx/pokeball.2bpp" + INCBIN "gfx/battle/balls.2bpp" PokeballTileGraphicsEnd: diff --git a/engine/battle/effects.asm b/engine/battle/effects.asm new file mode 100644 index 000000000..c4e818164 --- /dev/null +++ b/engine/battle/effects.asm @@ -0,0 +1,1551 @@ +JumpMoveEffect: + call _JumpMoveEffect + ld b, $1 + ret + +_JumpMoveEffect: + ldh a, [hWhoseTurn] + and a + ld a, [wPlayerMoveEffect] + jr z, .next1 + ld a, [wEnemyMoveEffect] +.next1 + dec a ; subtract 1, there is no special effect for 00 + add a ; x2, 16bit pointers + ld hl, MoveEffectPointerTable + ld b, 0 + ld c, a + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + jp hl ; jump to special effect handler + +INCLUDE "data/moves/effects_pointers.asm" + +SleepEffect: + ld de, wEnemyMonStatus + ld bc, wEnemyBattleStatus2 + ldh a, [hWhoseTurn] + and a + jp z, .sleepEffect + ld de, wBattleMonStatus + ld bc, wPlayerBattleStatus2 + +.sleepEffect + ld a, [bc] + bit NEEDS_TO_RECHARGE, a ; does the target need to recharge? (hyper beam) + res NEEDS_TO_RECHARGE, a ; target no longer needs to recharge + ld [bc], a + jr nz, .setSleepCounter ; if the target had to recharge, all hit tests will be skipped + ; including the event where the target already has another status + ld a, [de] + ld b, a + and $7 + jr z, .notAlreadySleeping ; can't affect a mon that is already asleep + ld hl, AlreadyAsleepText + jp PrintText +.notAlreadySleeping + ld a, b + and a + jr nz, .didntAffect ; can't affect a mon that is already statused + push de + call MoveHitTest ; apply accuracy tests + pop de + ld a, [wMoveMissed] + and a + jr nz, .didntAffect +.setSleepCounter +; set target's sleep counter to a random number between 1 and 7 + call BattleRandom + and $7 + jr z, .setSleepCounter + ld b, a + ld a, [wUnknownSerialFlag_d499] + and a + jr z, .asm_3f1ba ; XXX stadium stuff? + ld a, b + and $3 + jr z, .setSleepCounter + ld b, a +.asm_3f1ba + ld a, b + ld [de], a + call PlayCurrentMoveAnimation2 + ld hl, FellAsleepText + jp PrintText +.didntAffect + jp PrintDidntAffectText + +FellAsleepText: + text_far _FellAsleepText + text_end + +AlreadyAsleepText: + text_far _AlreadyAsleepText + text_end + +PoisonEffect: + ld hl, wEnemyMonStatus + ld de, wPlayerMoveEffect + ldh a, [hWhoseTurn] + and a + jr z, .poisonEffect + ld hl, wBattleMonStatus + ld de, wEnemyMoveEffect +.poisonEffect + call CheckTargetSubstitute + jr nz, .noEffect ; can't poison a substitute target + ld a, [hli] + ld b, a + and a + jr nz, .noEffect ; miss if target is already statused + ld a, [hli] + cp POISON ; can't poison a poison-type target + jr z, .noEffect + ld a, [hld] + cp POISON ; can't poison a poison-type target + jr z, .noEffect + ld a, [de] + cp POISON_SIDE_EFFECT1 + ld b, $34 ; ~20% chance of poisoning + jr z, .sideEffectTest + cp POISON_SIDE_EFFECT2 + ld b, $67 ; ~40% chance of poisoning + jr z, .sideEffectTest + push hl + push de + call MoveHitTest ; apply accuracy tests + pop de + pop hl + ld a, [wMoveMissed] + and a + jr nz, .didntAffect + jr .inflictPoison +.sideEffectTest + call BattleRandom + cp b ; was side effect successful? + ret nc +.inflictPoison + dec hl + set 3, [hl] ; mon is now poisoned + push de + dec de + ldh a, [hWhoseTurn] + and a + ld b, ANIM_C7 + ld hl, wPlayerBattleStatus3 + ld a, [de] + ld de, wPlayerToxicCounter + jr nz, .ok + ld b, ANIM_A9 + ld hl, wEnemyBattleStatus3 + ld de, wEnemyToxicCounter +.ok + cp TOXIC + jr nz, .normalPoison ; done if move is not Toxic + set BADLY_POISONED, [hl] ; else set Toxic battstatus + xor a + ld [de], a + ld hl, BadlyPoisonedText + jr .continue +.normalPoison + ld hl, PoisonedText +.continue + pop de + ld a, [de] + cp POISON_EFFECT + jr z, .regularPoisonEffect + ld a, b + call PlayBattleAnimation2 + jp PrintText +.regularPoisonEffect + call PlayCurrentMoveAnimation2 + jp PrintText +.noEffect + ld a, [de] + cp POISON_EFFECT + ret nz +.didntAffect + ld c, 50 + call DelayFrames + jp PrintDidntAffectText + +PoisonedText: + text_far _PoisonedText + text_end + +BadlyPoisonedText: + text_far _BadlyPoisonedText + text_end + +DrainHPEffect: + jpfar DrainHPEffect_ + +ExplodeEffect: + ld hl, wBattleMonHP + ld de, wPlayerBattleStatus2 + ldh a, [hWhoseTurn] + and a + jr z, .faintUser + ld hl, wEnemyMonHP + ld de, wEnemyBattleStatus2 +.faintUser + xor a + ld [hli], a ; set the mon's HP to 0 + ld [hli], a + inc hl + ld [hl], a ; set mon's status to 0 + ld a, [de] + res SEEDED, a ; clear mon's leech seed status + ld [de], a + ret + +FreezeBurnParalyzeEffect: + xor a + ld [wAnimationType], a + call CheckTargetSubstitute ; test bit 4 of d063/d068 flags [target has substitute flag] + ret nz ; return if they have a substitute, can't effect them + ldh a, [hWhoseTurn] + and a + jp nz, .opponentAttacker + ld a, [wEnemyMonStatus] + and a + jp nz, CheckDefrost ; can't inflict status if opponent is already statused + ld a, [wPlayerMoveType] + ld b, a + ld a, [wEnemyMonType1] + cp b ; do target type 1 and move type match? + ret z ; return if they match (an ice move can't freeze an ice-type, body slam can't paralyze a normal-type, etc.) + ld a, [wEnemyMonType2] + cp b ; do target type 2 and move type match? + ret z ; return if they match + ld a, [wPlayerMoveEffect] + cp UNUSED_EFFECT_23 ; more stadium stuff + jr nz, .asm_3f2c7 + ld a, [wUnknownSerialFlag_d499] + and a + ld a, FREEZE_SIDE_EFFECT + ld b, $4d ; else use 0x4D/0x100 or 77/256 = 30.1%~ chance + jr z, .next1 + ld b, $1a ; 0x1A/0x100 or 26/256 = 10.2%~ chance + jr .next1 +.asm_3f2c7 + cp a, PARALYZE_SIDE_EFFECT1 + 1 ; 10% status effects are 04, 05, 06 so 07 will set carry for those + ld b, $1a ; 0x1A/0x100 or 26/256 = 10.2%~ chance + jr c, .next1 ; branch ahead if this is a 10% chance effect.. + ld b, $4d ; else use 0x4D/0x100 or 77/256 = 30.1%~ chance + sub $1e ; subtract $1E to map to equivalent 10% chance effects +.next1 + push af + call BattleRandom ; get random 8bit value for probability test + cp b + pop bc + ret nc ; do nothing if random value is >= 1A or 4D [no status applied] + ld a, b ; what type of effect is this? + cp BURN_SIDE_EFFECT1 + jr z, .burn1 + cp FREEZE_SIDE_EFFECT + jr z, .freeze1 +; .paralyze + ld a, 1 << PAR + ld [wEnemyMonStatus], a + call QuarterSpeedDueToParalysis ; quarter speed of affected mon + ld a, ANIM_A9 + call PlayBattleAnimation + jp PrintMayNotAttackText ; print paralysis text +.burn1 + ld a, 1 << BRN + ld [wEnemyMonStatus], a + call HalveAttackDueToBurn ; halve attack of affected mon + ld a, ANIM_A9 + call PlayBattleAnimation + ld hl, BurnedText + jp PrintText +.freeze1 + call ClearHyperBeam ; resets hyper beam (recharge) condition from target + ld a, 1 << FRZ + ld [wEnemyMonStatus], a + ld a, ANIM_A9 + call PlayBattleAnimation + ld hl, FrozenText + jp PrintText +.opponentAttacker + ld a, [wBattleMonStatus] ; mostly same as above with addresses swapped for opponent + and a + jp nz, CheckDefrost + ld a, [wEnemyMoveType] + ld b, a + ld a, [wBattleMonType1] + cp b + ret z + ld a, [wBattleMonType2] + cp b + ret z + ld a, [wEnemyMoveEffect] + cp UNUSED_EFFECT_23 ; more stadium stuff + jr nz, .asm_3f341 + ld a, [wUnknownSerialFlag_d499] + and a + ld a, FREEZE_SIDE_EFFECT + ld b, $4d ; else use 0x4D/0x100 or 77/256 = 30.1%~ chance + jr z, .next2 + ld b, $1a ; 0x1A/0x100 or 26/256 = 10.2%~ chance + jr .next2 +.asm_3f341 + cp a, PARALYZE_SIDE_EFFECT1 + 1 + ld b, $1a + jr c, .next2 + ld b, $4d + sub $1e +.next2 + push af + call BattleRandom + cp b + pop bc + ret nc + ld a, b + cp BURN_SIDE_EFFECT1 + jr z, .burn2 + cp FREEZE_SIDE_EFFECT + jr z, .freeze2 + ld a, 1 << PAR + ld [wBattleMonStatus], a + call QuarterSpeedDueToParalysis + ld a, ANIM_C7 + call PlayBattleAnimation2 + jp PrintMayNotAttackText +.burn2 + ld a, 1 << BRN + ld [wBattleMonStatus], a + call HalveAttackDueToBurn + ld a, ANIM_C7 + call PlayBattleAnimation2 + ld hl, BurnedText + jp PrintText +.freeze2 +; hyper beam bits aren't reseted for opponent's side + ld a, 1 << FRZ + ld [wBattleMonStatus], a + ld a, ANIM_C7 + call PlayBattleAnimation2 + ld hl, FrozenText + jp PrintText + +BurnedText: + text_far _BurnedText + text_end + +FrozenText: + text_far _FrozenText + text_end + +CheckDefrost: +; any fire-type move that has a chance inflict burn (all but Fire Spin) will defrost a frozen target + and 1 << FRZ ; are they frozen? + ret z ; return if so + ldh a, [hWhoseTurn] + and a + jr nz, .opponent + ;player [attacker] + ld a, [wPlayerMoveType] + sub FIRE + ret nz ; return if type of move used isn't fire + ld [wEnemyMonStatus], a ; set opponent status to 00 ["defrost" a frozen monster] + ld hl, wEnemyMon1Status + ld a, [wEnemyMonPartyPos] + ld bc, wEnemyMon2 - wEnemyMon1 + call AddNTimes + xor a + ld [hl], a ; clear status in roster + ld hl, FireDefrostedText + jr .common +.opponent + ld a, [wEnemyMoveType] ; same as above with addresses swapped + sub FIRE + ret nz + ld [wBattleMonStatus], a + ld hl, wPartyMon1Status + ld a, [wPlayerMonNumber] + ld bc, wPartyMon2 - wPartyMon1 + call AddNTimes + xor a + ld [hl], a + ld hl, FireDefrostedText +.common + jp PrintText + +FireDefrostedText: + text_far _FireDefrostedText + text_end + +StatModifierUpEffect: + ld hl, wPlayerMonStatMods + ld de, wPlayerMoveEffect + ldh a, [hWhoseTurn] + and a + jr z, .statModifierUpEffect + ld hl, wEnemyMonStatMods + ld de, wEnemyMoveEffect +.statModifierUpEffect + ld a, [de] + sub ATTACK_UP1_EFFECT + cp EVASION_UP1_EFFECT + $3 - ATTACK_UP1_EFFECT ; covers all +1 effects + jr c, .incrementStatMod + sub ATTACK_UP2_EFFECT - ATTACK_UP1_EFFECT ; map +2 effects to equivalent +1 effect +.incrementStatMod + ld c, a + ld b, $0 + add hl, bc + ld b, [hl] + inc b ; increment corresponding stat mod + ld a, $d + cp b ; can't raise stat past +6 ($d or 13) + jp c, PrintNothingHappenedText + ld a, [de] + cp ATTACK_UP1_EFFECT + $8 ; is it a +2 effect? + jr c, .ok + inc b ; if so, increment stat mod again + ld a, $d + cp b ; unless it's already +6 + jr nc, .ok + ld b, a +.ok + ld [hl], b + ld a, c + cp $4 + jr nc, UpdateStatDone ; jump if mod affected is evasion/accuracy + push hl + ld hl, wBattleMonAttack + 1 + ld de, wPlayerMonUnmodifiedAttack + ldh a, [hWhoseTurn] + and a + jr z, .pointToStats + ld hl, wEnemyMonAttack + 1 + ld de, wEnemyMonUnmodifiedAttack +.pointToStats + push bc + sla c + ld b, $0 + add hl, bc ; hl = modified stat + ld a, c + add e + ld e, a + jr nc, .checkIf999 + inc d ; de = unmodified (original) stat +.checkIf999 + pop bc + ; check if stat is already 999 + ld a, [hld] + sub LOW(MAX_STAT_VALUE) + jr nz, .recalculateStat + ld a, [hl] + sbc HIGH(MAX_STAT_VALUE) + jp z, RestoreOriginalStatModifier +.recalculateStat ; recalculate affected stat + ; paralysis and burn penalties, as well as badge boosts are ignored + push hl + push bc + ld hl, StatModifierRatios + dec b + sla b + ld c, b + ld b, $0 + add hl, bc + pop bc + xor a + ldh [hMultiplicand], a + ld a, [de] + ldh [hMultiplicand + 1], a + inc de + ld a, [de] + ldh [hMultiplicand + 2], a + ld a, [hli] + ldh [hMultiplier], a + call Multiply + ld a, [hl] + ldh [hDivisor], a + ld b, $4 + call Divide + pop hl +; cap at MAX_STAT_VALUE (999) + ldh a, [hProduct + 3] + sub LOW(MAX_STAT_VALUE) + ldh a, [hProduct + 2] + sbc HIGH(MAX_STAT_VALUE) + jp c, UpdateStat + ld a, HIGH(MAX_STAT_VALUE) + ldh [hMultiplicand + 1], a + ld a, LOW(MAX_STAT_VALUE) + ldh [hMultiplicand + 2], a + +UpdateStat: + ldh a, [hProduct + 2] + ld [hli], a + ldh a, [hProduct + 3] + ld [hl], a + pop hl +UpdateStatDone: + ld b, c + inc b + call PrintStatText + ld hl, wPlayerBattleStatus2 + ld de, wPlayerMoveNum + ld bc, wPlayerMonMinimized + ldh a, [hWhoseTurn] + and a + jr z, .playerTurn + ld hl, wEnemyBattleStatus2 + ld de, wEnemyMoveNum + ld bc, wEnemyMonMinimized +.playerTurn + ld a, [de] + cp MINIMIZE + jr nz, .notMinimize + ; if a substitute is up, slide off the substitute and show the mon pic before + ; playing the minimize animation + bit HAS_SUBSTITUTE_UP, [hl] + push af + push bc + push de + ld hl, HideSubstituteShowMonAnim + ld b, BANK(HideSubstituteShowMonAnim) + call nz, Bankswitch + pop de +.notMinimize + call PlayCurrentMoveAnimation + ld a, [de] + cp MINIMIZE + jr nz, .applyBadgeBoostsAndStatusPenalties + pop bc + ld a, $1 + ld [bc], a + ld hl, ReshowSubstituteAnim + ld b, BANK(ReshowSubstituteAnim) + pop af + call nz, Bankswitch +.applyBadgeBoostsAndStatusPenalties + ldh a, [hWhoseTurn] + and a + call z, ApplyBadgeStatBoosts ; whenever the player uses a stat-up move, badge boosts get reapplied again to every stat, + ; even to those not affected by the stat-up move (will be boosted further) + ld hl, MonsStatsRoseText + call PrintText + +; these shouldn't be here + call QuarterSpeedDueToParalysis ; apply speed penalty to the player whose turn is not, if it's paralyzed + jp HalveAttackDueToBurn ; apply attack penalty to the player whose turn is not, if it's burned + +RestoreOriginalStatModifier: + pop hl + dec [hl] + +PrintNothingHappenedText: + ld hl, NothingHappenedText + jp PrintText + +MonsStatsRoseText: + text_far _MonsStatsRoseText + text_asm + ld hl, GreatlyRoseText + ldh a, [hWhoseTurn] + and a + ld a, [wPlayerMoveEffect] + jr z, .playerTurn + ld a, [wEnemyMoveEffect] +.playerTurn + cp ATTACK_DOWN1_EFFECT + ret nc + ld hl, RoseText + ret + +GreatlyRoseText: + text_pause + text_far _GreatlyRoseText +; fallthrough +RoseText: + text_far _RoseText + text_end + +StatModifierDownEffect: + ld hl, wEnemyMonStatMods + ld de, wPlayerMoveEffect + ld bc, wEnemyBattleStatus1 + ldh a, [hWhoseTurn] + and a + jr z, .statModifierDownEffect + ld hl, wPlayerMonStatMods + ld de, wEnemyMoveEffect + ld bc, wPlayerBattleStatus1 + ld a, [wLinkState] + cp LINK_STATE_BATTLING + jr z, .statModifierDownEffect + call BattleRandom + cp $40 ; 1/4 chance to miss by in regular battle + jp c, MoveMissed +.statModifierDownEffect + call CheckTargetSubstitute ; can't hit through substitute + jp nz, MoveMissed + ld a, [de] + cp ATTACK_DOWN_SIDE_EFFECT + jr c, .nonSideEffect + call BattleRandom + cp $55 ; 85/256 chance for side effects + jp nc, CantLowerAnymore + ld a, [de] + sub ATTACK_DOWN_SIDE_EFFECT ; map each stat to 0-3 + jr .decrementStatMod +.nonSideEffect ; non-side effects only + push hl + push de + push bc + call MoveHitTest ; apply accuracy tests + pop bc + pop de + pop hl + ld a, [wMoveMissed] + and a + jp nz, MoveMissed + ld a, [bc] + bit INVULNERABLE, a ; fly/dig + jp nz, MoveMissed + ld a, [de] + sub ATTACK_DOWN1_EFFECT + cp EVASION_DOWN1_EFFECT + $3 - ATTACK_DOWN1_EFFECT ; covers all -1 effects + jr c, .decrementStatMod + sub ATTACK_DOWN2_EFFECT - ATTACK_DOWN1_EFFECT ; map -2 effects to corresponding -1 effect +.decrementStatMod + ld c, a + ld b, $0 + add hl, bc + ld b, [hl] + dec b ; dec corresponding stat mod + jp z, CantLowerAnymore ; if stat mod is 1 (-6), can't lower anymore + ld a, [de] + cp ATTACK_DOWN2_EFFECT - $16 ; $24 + jr c, .ok + cp EVASION_DOWN2_EFFECT + $5 ; $44 + jr nc, .ok + dec b ; stat down 2 effects only (dec mod again) + jr nz, .ok + inc b ; increment mod to 1 (-6) if it would become 0 (-7) +.ok + ld [hl], b ; save modified mod + ld a, c + cp $4 + jr nc, UpdateLoweredStatDone ; jump for evasion/accuracy + push hl + push de + ld hl, wEnemyMonAttack + 1 + ld de, wEnemyMonUnmodifiedAttack + ldh a, [hWhoseTurn] + and a + jr z, .pointToStat + ld hl, wBattleMonAttack + 1 + ld de, wPlayerMonUnmodifiedAttack +.pointToStat + push bc + sla c + ld b, $0 + add hl, bc ; hl = modified stat + ld a, c + add e + ld e, a + jr nc, .noCarry + inc d ; de = unmodified stat +.noCarry + pop bc + ld a, [hld] + sub $1 ; can't lower stat below 1 (-6) + jr nz, .recalculateStat + ld a, [hl] + and a + jp z, CantLowerAnymore_Pop +.recalculateStat +; recalculate affected stat +; paralysis and burn penalties, as well as badge boosts are ignored + push hl + push bc + ld hl, StatModifierRatios + dec b + sla b + ld c, b + ld b, $0 + add hl, bc + pop bc + xor a + ldh [hMultiplicand], a + ld a, [de] + ldh [hMultiplicand + 1], a + inc de + ld a, [de] + ldh [hMultiplicand + 2], a + ld a, [hli] + ldh [hMultiplier], a + call Multiply + ld a, [hl] + ldh [hDivisor], a + ld b, $4 + call Divide + pop hl + ldh a, [hProduct + 3] + ld b, a + ldh a, [hProduct + 2] + or b + jp nz, UpdateLoweredStat + ldh [hMultiplicand + 1], a + ld a, $1 + ldh [hMultiplicand + 2], a + +UpdateLoweredStat: + ldh a, [hProduct + 2] + ld [hli], a + ldh a, [hProduct + 3] + ld [hl], a + pop de + pop hl +UpdateLoweredStatDone: + ld b, c + inc b + push de + call PrintStatText + pop de + ld a, [de] + cp $44 + jr nc, .ApplyBadgeBoostsAndStatusPenalties + call PlayCurrentMoveAnimation2 +.ApplyBadgeBoostsAndStatusPenalties + ldh a, [hWhoseTurn] + and a + call nz, ApplyBadgeStatBoosts ; whenever the player uses a stat-down move, badge boosts get reapplied again to every stat, + ; even to those not affected by the stat-up move (will be boosted further) + ld hl, MonsStatsFellText + call PrintText + +; These where probably added given that a stat-down move affecting speed or attack will override +; the stat penalties from paralysis and burn respectively. +; But they are always called regardless of the stat affected by the stat-down move. + call QuarterSpeedDueToParalysis + jp HalveAttackDueToBurn + +CantLowerAnymore_Pop: + pop de + pop hl + inc [hl] + +CantLowerAnymore: + ld a, [de] + cp ATTACK_DOWN_SIDE_EFFECT + ret nc + ld hl, NothingHappenedText + jp PrintText + +MoveMissed: + ld a, [de] + cp $44 + ret nc + jp ConditionalPrintButItFailed + +MonsStatsFellText: + text_far _MonsStatsFellText + text_asm + ld hl, FellText + ldh a, [hWhoseTurn] + and a + ld a, [wPlayerMoveEffect] + jr z, .playerTurn + ld a, [wEnemyMoveEffect] +.playerTurn +; check if the move's effect decreases a stat by 2 + cp BIDE_EFFECT + ret c + cp ATTACK_DOWN_SIDE_EFFECT + ret nc + ld hl, GreatlyFellText + ret + +GreatlyFellText: + text_pause + text_far _GreatlyFellText +; fallthrough +FellText: + text_far _FellText + text_end + +PrintStatText: + ld hl, StatsTextStrings + ld c, "@" +.findStatName_outer + dec b + jr z, .foundStatName +.findStatName_inner + ld a, [hli] + cp c + jr z, .findStatName_outer + jr .findStatName_inner +.foundStatName + ld de, wcf4b + ld bc, $a + jp CopyData + +INCLUDE "data/battle/stat_names.asm" + +INCLUDE "data/battle/stat_modifiers.asm" + +BideEffect: + ld hl, wPlayerBattleStatus1 + ld de, wPlayerBideAccumulatedDamage + ld bc, wPlayerNumAttacksLeft + ldh a, [hWhoseTurn] + and a + jr z, .bideEffect + ld hl, wEnemyBattleStatus1 + ld de, wEnemyBideAccumulatedDamage + ld bc, wEnemyNumAttacksLeft +.bideEffect + set STORING_ENERGY, [hl] ; mon is now using bide + xor a + ld [de], a + inc de + ld [de], a + ld [wPlayerMoveEffect], a + ld [wEnemyMoveEffect], a + call BattleRandom + and $1 + inc a + inc a + ld [bc], a ; set Bide counter to 2 or 3 at random + ldh a, [hWhoseTurn] + add XSTATITEM_ANIM + jp PlayBattleAnimation2 + +ThrashPetalDanceEffect: + ld hl, wPlayerBattleStatus1 + ld de, wPlayerNumAttacksLeft + ldh a, [hWhoseTurn] + and a + jr z, .thrashPetalDanceEffect + ld hl, wEnemyBattleStatus1 + ld de, wEnemyNumAttacksLeft +.thrashPetalDanceEffect + set THRASHING_ABOUT, [hl] ; mon is now using thrash/petal dance + call BattleRandom + and $1 + inc a + inc a + ld [de], a ; set thrash/petal dance counter to 2 or 3 at random + ldh a, [hWhoseTurn] + add ANIM_B0 + jp PlayBattleAnimation2 + +SwitchAndTeleportEffect: + ldh a, [hWhoseTurn] + and a + jr nz, .handleEnemy + ld a, [wIsInBattle] + dec a + jr nz, .notWildBattle1 + ld a, [wCurEnemyLVL] + ld b, a + ld a, [wBattleMonLevel] + cp b ; is the player's level greater than the enemy's level? + jr nc, .playerMoveWasSuccessful ; if so, teleport will always succeed + add b + ld c, a + inc c ; c = sum of player level and enemy level +.rejectionSampleLoop1 + call BattleRandom + cp c ; get a random number between 0 and c + jr nc, .rejectionSampleLoop1 + srl b + srl b ; b = enemyLevel / 4 + cp b ; is rand[0, playerLevel + enemyLevel) >= (enemyLevel / 4)? + jr nc, .playerMoveWasSuccessful ; if so, allow teleporting + ld c, 50 + call DelayFrames + ld a, [wPlayerMoveNum] + cp TELEPORT + jp nz, PrintDidntAffectText + jp PrintButItFailedText_ +.playerMoveWasSuccessful + call ReadPlayerMonCurHPAndStatus + xor a + ld [wAnimationType], a + inc a + ld [wEscapedFromBattle], a + ld a, [wPlayerMoveNum] + jr .playAnimAndPrintText +.notWildBattle1 + ld c, 50 + call DelayFrames + ld hl, IsUnaffectedText + ld a, [wPlayerMoveNum] + cp TELEPORT + jp nz, PrintText + jp PrintButItFailedText_ +.handleEnemy + ld a, [wIsInBattle] + dec a + jr nz, .notWildBattle2 + ld a, [wBattleMonLevel] + ld b, a + ld a, [wCurEnemyLVL] + cp b + jr nc, .enemyMoveWasSuccessful + add b + ld c, a + inc c +.rejectionSampleLoop2 + call BattleRandom + cp c + jr nc, .rejectionSampleLoop2 + srl b + srl b + cp b + jr nc, .enemyMoveWasSuccessful + ld c, 50 + call DelayFrames + ld a, [wEnemyMoveNum] + cp TELEPORT + jp nz, PrintDidntAffectText + jp PrintButItFailedText_ +.enemyMoveWasSuccessful + call ReadPlayerMonCurHPAndStatus + xor a + ld [wAnimationType], a + inc a + ld [wEscapedFromBattle], a + ld a, [wEnemyMoveNum] + jr .playAnimAndPrintText +.notWildBattle2 + ld c, 50 + call DelayFrames + ld hl, IsUnaffectedText + ld a, [wEnemyMoveNum] + cp TELEPORT + jp nz, PrintText + jp ConditionalPrintButItFailed +.playAnimAndPrintText + push af + call PlayBattleAnimation + ld c, 20 + call DelayFrames + pop af + ld hl, RanFromBattleText + cp TELEPORT + jr z, .printText + ld hl, RanAwayScaredText + cp ROAR + jr z, .printText + ld hl, WasBlownAwayText +.printText + jp PrintText + +RanFromBattleText: + text_far _RanFromBattleText + text_end + +RanAwayScaredText: + text_far _RanAwayScaredText + text_end + +WasBlownAwayText: + text_far _WasBlownAwayText + text_end + +TwoToFiveAttacksEffect: + ld hl, wPlayerBattleStatus1 + ld de, wPlayerNumAttacksLeft + ld bc, wPlayerNumHits + ldh a, [hWhoseTurn] + and a + jr z, .twoToFiveAttacksEffect + ld hl, wEnemyBattleStatus1 + ld de, wEnemyNumAttacksLeft + ld bc, wEnemyNumHits +.twoToFiveAttacksEffect + bit ATTACKING_MULTIPLE_TIMES, [hl] ; is mon attacking multiple times? + ret nz + set ATTACKING_MULTIPLE_TIMES, [hl] ; mon is now attacking multiple times + ld hl, wPlayerMoveEffect + ldh a, [hWhoseTurn] + and a + jr z, .setNumberOfHits + ld hl, wEnemyMoveEffect +.setNumberOfHits + ld a, [hl] + cp TWINEEDLE_EFFECT + jr z, .twineedle + cp ATTACK_TWICE_EFFECT + ld a, $2 ; number of hits it's always 2 for ATTACK_TWICE_EFFECT + jr z, .saveNumberOfHits +; for TWO_TO_FIVE_ATTACKS_EFFECT 3/8 chance for 2 and 3 hits, and 1/8 chance for 4 and 5 hits + call BattleRandom + and $3 + cp $2 + jr c, .gotNumHits +; if the number of hits was greater than 2, re-roll again for a lower chance + call BattleRandom + and $3 +.gotNumHits + inc a + inc a +.saveNumberOfHits + ld [de], a + ld [bc], a + ret +.twineedle + ld a, POISON_SIDE_EFFECT1 + ld [hl], a ; set Twineedle's effect to poison effect + jr .saveNumberOfHits + +FlinchSideEffect: + call CheckTargetSubstitute + ret nz + ld hl, wEnemyBattleStatus1 + ld de, wPlayerMoveEffect + ldh a, [hWhoseTurn] + and a + jr z, .flinchSideEffect + ld hl, wPlayerBattleStatus1 + ld de, wEnemyMoveEffect +.flinchSideEffect + ld a, [wLinkState] + cp LINK_STATE_BATTLING + call z, ClearHyperBeam + ld a, [de] + cp FLINCH_SIDE_EFFECT1 + ld b, $1a ; ~10% chance of flinch + jr z, .gotEffectChance + ld b, $4d ; ~30% chance of flinch +.gotEffectChance + call BattleRandom + cp b + ret nc + set FLINCHED, [hl] ; set mon's status to flinching + call ClearHyperBeam + ret + +OneHitKOEffect: + jpfar OneHitKOEffect_ + +ChargeEffect: + ld hl, wPlayerBattleStatus1 + ld de, wPlayerMoveEffect + ldh a, [hWhoseTurn] + and a + ld b, XSTATITEM_ANIM + jr z, .chargeEffect + ld hl, wEnemyBattleStatus1 + ld de, wEnemyMoveEffect + ld b, ANIM_AF +.chargeEffect + set CHARGING_UP, [hl] + ld a, [de] + dec de ; de contains enemy or player MOVENUM + cp FLY_EFFECT + jr nz, .notFly + set INVULNERABLE, [hl] ; mon is now invulnerable to typical attacks (fly/dig) + ld b, TELEPORT ; load Teleport's animation +.notFly + ld a, [de] + cp DIG + jr nz, .notDigOrFly + set INVULNERABLE, [hl] ; mon is now invulnerable to typical attacks (fly/dig) + ld b, ANIM_C0 +.notDigOrFly + push de + push bc + inc hl ; battle status 2 + push hl + ld a, [hl] + bit HAS_SUBSTITUTE_UP, a + ld hl, HideSubstituteShowMonAnim + ld b, BANK(HideSubstituteShowMonAnim) + call nz, Bankswitch + pop hl + pop bc + xor a + ld [wAnimationType], a + ld a, b + call PlayBattleAnimation + ld a, [hl] + bit HAS_SUBSTITUTE_UP, a + ld hl, ReshowSubstituteAnim + ld b, BANK(ReshowSubstituteAnim) + call nz, Bankswitch + pop de + ld a, [de] + ld [wChargeMoveNum], a + ld hl, ChargeMoveEffectText + jp PrintText + +ChargeMoveEffectText: + text_far _ChargeMoveEffectText + text_asm + ld a, [wChargeMoveNum] + cp RAZOR_WIND + ld hl, MadeWhirlwindText + jr z, .gotText + cp SOLARBEAM + ld hl, TookInSunlightText + jr z, .gotText + cp SKULL_BASH + ld hl, LoweredItsHeadText + jr z, .gotText + cp SKY_ATTACK + ld hl, SkyAttackGlowingText + jr z, .gotText + cp FLY + ld hl, FlewUpHighText + jr z, .gotText + cp DIG + ld hl, DugAHoleText +.gotText + ret + +MadeWhirlwindText: + text_far _MadeWhirlwindText + text_end + +TookInSunlightText: + text_far _TookInSunlightText + text_end + +LoweredItsHeadText: + text_far _LoweredItsHeadText + text_end + +SkyAttackGlowingText: + text_far _SkyAttackGlowingText + text_end + +FlewUpHighText: + text_far _FlewUpHighText + text_end + +DugAHoleText: + text_far _DugAHoleText + text_end + +TrappingEffect: + ld hl, wPlayerBattleStatus1 + ld de, wPlayerNumAttacksLeft + ldh a, [hWhoseTurn] + and a + jr z, .trappingEffect + ld hl, wEnemyBattleStatus1 + ld de, wEnemyNumAttacksLeft +.trappingEffect + bit USING_TRAPPING_MOVE, [hl] + ret nz + call ClearHyperBeam ; since this effect is called before testing whether the move will hit, + ; the target won't need to recharge even if the trapping move missed + set USING_TRAPPING_MOVE, [hl] ; mon is now using a trapping move + call BattleRandom ; 3/8 chance for 2 and 3 attacks, and 1/8 chance for 4 and 5 attacks + and $3 + cp $2 + jr c, .setTrappingCounter + call BattleRandom + and $3 +.setTrappingCounter + inc a + ld [de], a + ret + +MistEffect: + jpfar MistEffect_ + +FocusEnergyEffect: + jpfar FocusEnergyEffect_ + +RecoilEffect: + jpfar RecoilEffect_ + +ConfusionSideEffect: + call BattleRandom + cp $19 ; ~10% chance + ret nc + jr ConfusionSideEffectSuccess + +ConfusionEffect: + call CheckTargetSubstitute + jr nz, ConfusionEffectFailed + call MoveHitTest + ld a, [wMoveMissed] + and a + jr nz, ConfusionEffectFailed + +ConfusionSideEffectSuccess: + ldh a, [hWhoseTurn] + and a + ld hl, wEnemyBattleStatus1 + ld bc, wEnemyConfusedCounter + ld a, [wPlayerMoveEffect] + jr z, .confuseTarget + ld hl, wPlayerBattleStatus1 + ld bc, wPlayerConfusedCounter + ld a, [wEnemyMoveEffect] +.confuseTarget + bit CONFUSED, [hl] ; is mon confused? + jr nz, ConfusionEffectFailed + set CONFUSED, [hl] ; mon is now confused + push af + call BattleRandom + and $3 + inc a + inc a + ld [bc], a ; confusion status will last 2-5 turns + pop af + cp CONFUSION_SIDE_EFFECT + call nz, PlayCurrentMoveAnimation2 + ld hl, BecameConfusedText + jp PrintText + +BecameConfusedText: + text_far _BecameConfusedText + text_end + +ConfusionEffectFailed: + cp CONFUSION_SIDE_EFFECT + ret z + ld c, 50 + call DelayFrames + jp ConditionalPrintButItFailed + +ParalyzeEffect: + jpfar ParalyzeEffect_ + +SubstituteEffect: + jpfar SubstituteEffect_ + +HyperBeamEffect: + ld hl, wPlayerBattleStatus2 + ldh a, [hWhoseTurn] + and a + jr z, .hyperBeamEffect + ld hl, wEnemyBattleStatus2 +.hyperBeamEffect + set NEEDS_TO_RECHARGE, [hl] ; mon now needs to recharge + ret + +ClearHyperBeam: + push hl + ld hl, wEnemyBattleStatus2 + ldh a, [hWhoseTurn] + and a + jr z, .playerTurn + ld hl, wPlayerBattleStatus2 +.playerTurn + res NEEDS_TO_RECHARGE, [hl] ; mon no longer needs to recharge + pop hl + ret + +RageEffect: + ld hl, wPlayerBattleStatus2 + ldh a, [hWhoseTurn] + and a + jr z, .player + ld hl, wEnemyBattleStatus2 +.player + set USING_RAGE, [hl] ; mon is now in "rage" mode + ret + +MimicEffect: + ld c, 50 + call DelayFrames + call MoveHitTest + ld a, [wMoveMissed] + and a + jr nz, .mimicMissed + ldh a, [hWhoseTurn] + and a + ld hl, wBattleMonMoves + ld a, [wPlayerBattleStatus1] + jr nz, .enemyTurn + ld a, [wLinkState] + cp LINK_STATE_BATTLING + jr nz, .letPlayerChooseMove + ld hl, wEnemyMonMoves + ld a, [wEnemyBattleStatus1] +.enemyTurn + bit INVULNERABLE, a + jr nz, .mimicMissed +.getRandomMove + push hl + call BattleRandom + and $3 + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + pop hl + and a + jr z, .getRandomMove + ld d, a + ldh a, [hWhoseTurn] + and a + ld hl, wBattleMonMoves + ld a, [wPlayerMoveListIndex] + jr z, .playerTurn + ld hl, wEnemyMonMoves + ld a, [wEnemyMoveListIndex] + jr .playerTurn +.letPlayerChooseMove + ld a, [wEnemyBattleStatus1] + bit INVULNERABLE, a + jr nz, .mimicMissed + ld a, [wCurrentMenuItem] + push af + ld a, $1 + ld [wMoveMenuType], a + call MoveSelectionMenu + call LoadScreenTilesFromBuffer1 + ld hl, wEnemyMonMoves + ld a, [wCurrentMenuItem] + ld c, a + ld b, $0 + add hl, bc + ld d, [hl] + pop af + ld hl, wBattleMonMoves +.playerTurn + ld c, a + ld b, $0 + add hl, bc + ld a, d + ld [hl], a + ld [wd11e], a + call GetMoveName + call PlayCurrentMoveAnimation + ld hl, MimicLearnedMoveText + jp PrintText +.mimicMissed + jp PrintButItFailedText_ + +MimicLearnedMoveText: + text_far _MimicLearnedMoveText + text_end + +LeechSeedEffect: + jpfar LeechSeedEffect_ + +SplashEffect: + call PlayCurrentMoveAnimation + jp PrintNoEffectText + +DisableEffect: + call MoveHitTest + ld a, [wMoveMissed] + and a + jr nz, .moveMissed + ld de, wEnemyDisabledMove + ld hl, wEnemyMonMoves + ldh a, [hWhoseTurn] + and a + jr z, .disableEffect + ld de, wPlayerDisabledMove + ld hl, wBattleMonMoves +.disableEffect +; no effect if target already has a move disabled + ld a, [de] + and a + jr nz, .moveMissed +.pickMoveToDisable + push hl + call BattleRandom + and $3 + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + pop hl + and a + jr z, .pickMoveToDisable ; loop until a non-00 move slot is found + ld [wd11e], a ; store move number + push hl + ldh a, [hWhoseTurn] + and a + ld hl, wBattleMonPP + jr nz, .enemyTurn + ld a, [wLinkState] + cp LINK_STATE_BATTLING + pop hl ; wEnemyMonMoves + jr nz, .playerTurnNotLinkBattle +; .playerTurnLinkBattle + push hl + ld hl, wEnemyMonPP +.enemyTurn + push hl + ld a, [hli] + or [hl] + inc hl + or [hl] + inc hl + or [hl] + and $3f + pop hl ; wBattleMonPP or wEnemyMonPP + jr z, .moveMissedPopHL ; nothing to do if all moves have no PP left + add hl, bc + ld a, [hl] + pop hl + and a + jr z, .pickMoveToDisable ; pick another move if this one had 0 PP +.playerTurnNotLinkBattle +; non-link battle enemies have unlimited PP so the previous checks aren't needed + call BattleRandom + and $7 + inc a ; 1-8 turns disabled + inc c ; move 1-4 will be disabled + swap c + add c ; map disabled move to high nibble of wEnemyDisabledMove / wPlayerDisabledMove + ld [de], a + call PlayCurrentMoveAnimation2 + ld hl, wPlayerDisabledMoveNumber + ldh a, [hWhoseTurn] + and a + jr nz, .printDisableText + inc hl ; wEnemyDisabledMoveNumber +.printDisableText + ld a, [wd11e] ; move number + ld [hl], a + call GetMoveName + ld hl, MoveWasDisabledText + jp PrintText +.moveMissedPopHL + pop hl +.moveMissed + jp PrintButItFailedText_ + +MoveWasDisabledText: + text_far _MoveWasDisabledText + text_end + +PayDayEffect: + jpfar PayDayEffect_ + +ConversionEffect: + jpfar ConversionEffect_ + +HazeEffect: + jpfar HazeEffect_ + +HealEffect: + jpfar HealEffect_ + +TransformEffect: + jpfar TransformEffect_ + +ReflectLightScreenEffect: + jpfar ReflectLightScreenEffect_ + +NothingHappenedText: + text_far _NothingHappenedText + text_end + +PrintNoEffectText: + ld hl, NoEffectText + jp PrintText + +NoEffectText: + text_far _NoEffectText + text_end + +ConditionalPrintButItFailed: + ld a, [wMoveDidntMiss] + and a + ret nz ; return if the side effect failed, yet the attack was successful + +PrintButItFailedText_: + ld hl, ButItFailedText + jp PrintText + +ButItFailedText: + text_far _ButItFailedText + text_end + +PrintDidntAffectText: + ld hl, DidntAffectText + jp PrintText + +DidntAffectText: + text_far _DidntAffectText + text_end + +IsUnaffectedText: + text_far _IsUnaffectedText + text_end + +PrintMayNotAttackText: + ld hl, ParalyzedMayNotAttackText + jp PrintText + +ParalyzedMayNotAttackText: + text_far _ParalyzedMayNotAttackText + text_end + +CheckTargetSubstitute: + push hl + ld hl, wEnemyBattleStatus2 + ldh a, [hWhoseTurn] + and a + jr z, .next1 + ld hl, wPlayerBattleStatus2 +.next1 + bit HAS_SUBSTITUTE_UP, [hl] + pop hl + ret + +PlayCurrentMoveAnimation2: +; animation at MOVENUM will be played unless MOVENUM is 0 +; plays wAnimationType 3 or 6 + ldh a, [hWhoseTurn] + and a + ld a, [wPlayerMoveNum] + jr z, .notEnemyTurn + ld a, [wEnemyMoveNum] +.notEnemyTurn + and a + ret z + +PlayBattleAnimation2: +; play animation ID at a and animation type 6 or 3 + ld [wAnimationID], a + ldh a, [hWhoseTurn] + and a + ld a, $6 + jr z, .storeAnimationType + ld a, $3 +.storeAnimationType + ld [wAnimationType], a + jp PlayBattleAnimationGotID + +PlayCurrentMoveAnimation: +; animation at MOVENUM will be played unless MOVENUM is 0 +; resets wAnimationType + xor a + ld [wAnimationType], a + ldh a, [hWhoseTurn] + and a + ld a, [wPlayerMoveNum] + jr z, .notEnemyTurn + ld a, [wEnemyMoveNum] +.notEnemyTurn + and a + ret z + +PlayBattleAnimation: +; play animation ID at a and predefined animation type + ld [wAnimationID], a + +PlayBattleAnimationGotID: +; play animation at wAnimationID + push hl + push de + push bc + predef MoveAnimation + callfar Func_78e98 + pop bc + pop de + pop hl + ret diff --git a/engine/battle/end_of_battle.asm b/engine/battle/end_of_battle.asm index 5c0c39919..e64f54e76 100755 --- a/engine/battle/end_of_battle.asm +++ b/engine/battle/end_of_battle.asm @@ -12,7 +12,7 @@ EndOfBattle: call ClearScreen ld b, SET_PAL_OVERWORLD call RunPaletteCommand - callab DisplayLinkBattleVersusTextBox + callfar DisplayLinkBattleVersusTextBox ld a, [wBattleResult] cp $1 ld de, YouWinText @@ -21,7 +21,7 @@ EndOfBattle: jr z, .placeWinOrLoseString ld de, DrawText .placeWinOrLoseString - coord hl, 6, 8 + hlcoord 6, 8 call PlaceString ld c, 200 call DelayFrames @@ -46,7 +46,7 @@ EndOfBattle: ld [wForceEvolution], a predef EvolutionAfterBattle ld d, $82 - callab UpdatePikachuMoodAfterBattle + callfar UpdatePikachuMoodAfterBattle .resetVariables xor a ld [wLowHealthAlarm], a ;disable low health alarm @@ -88,5 +88,5 @@ DrawText: db " DRAW@" PickUpPayDayMoneyText: - TX_FAR _PickUpPayDayMoneyText - db "@" + text_far _PickUpPayDayMoneyText + text_end diff --git a/engine/battle/experience.asm b/engine/battle/experience.asm index 722685c2b..bab804bbd 100644 --- a/engine/battle/experience.asm +++ b/engine/battle/experience.asm @@ -55,15 +55,15 @@ GainExperience: jr .gainStatExpLoop .statExpDone xor a - ld [H_MULTIPLICAND], a - ld [H_MULTIPLICAND + 1], a + ldh [hMultiplicand], a + ldh [hMultiplicand + 1], a ld a, [wEnemyMonBaseExp] - ld [H_MULTIPLICAND + 2], a + ldh [hMultiplicand + 2], a ld a, [wEnemyMonLevel] - ld [H_MULTIPLIER], a + ldh [hMultiplier], a call Multiply ld a, 7 - ld [H_DIVISOR], a + ldh [hDivisor], a ld b, 4 call Divide ld hl, wPartyMon1OTID - (wPartyMon1DVs - 1) @@ -91,12 +91,12 @@ GainExperience: inc hl ; add the gained exp to the party mon's exp ld b, [hl] - ld a, [H_QUOTIENT + 3] + ldh a, [hQuotient + 3] ld [wExpAmountGained + 1], a add b ld [hld], a ld b, [hl] - ld a, [H_QUOTIENT + 2] + ldh a, [hQuotient + 2] ld [wExpAmountGained], a adc b ld [hl], a @@ -117,13 +117,13 @@ GainExperience: ld [wd0b5], a call GetMonHeader ld d, MAX_LEVEL - callab CalcExperience ; get max exp + callfar CalcExperience ; get max exp ; compare max exp with current exp - ld a, [hExperience] + ldh a, [hExperience] ld b, a - ld a, [hExperience + 1] + ldh a, [hExperience + 1] ld c, a - ld a, [hExperience + 2] + ldh a, [hExperience + 2] ld d, a pop hl ld a, [hld] @@ -155,7 +155,7 @@ GainExperience: ld bc, wPartyMon1Level - wPartyMon1Exp add hl, bc push hl - callba CalcLevelFromExperience + farcall CalcLevelFromExperience pop hl ld a, [hl] ; current level cp d @@ -252,7 +252,7 @@ GainExperience: ld [wMonDataLocation], a call LoadMonData ld d, $1 - callab PrintStatsBox + callfar PrintStatsBox call WaitForTextScrollButtonPress call LoadScreenTilesFromBuffer1 xor a ; PLAYER_PARTY_DATA @@ -317,14 +317,14 @@ DivideExpDataByNumMonsGainingExp: ld c, wEnemyMonBaseExp + 1 - wEnemyMonBaseStats .divideLoop xor a - ld [H_DIVIDEND], a + ldh [hDividend], a ld a, [hl] - ld [H_DIVIDEND + 1], a + ldh [hDividend + 1], a ld a, [wd11e] - ld [H_DIVISOR], a + ldh [hDivisor], a ld b, $2 call Divide ; divide value by number of mons gaining exp - ld a, [H_QUOTIENT + 3] + ldh a, [hQuotient + 3] ld [hli], a dec c jr nz, .divideLoop @@ -332,17 +332,17 @@ DivideExpDataByNumMonsGainingExp: ; multiplies exp by 1.5 BoostExp: - ld a, [H_QUOTIENT + 2] + ldh a, [hQuotient + 2] ld b, a - ld a, [H_QUOTIENT + 3] + ldh a, [hQuotient + 3] ld c, a srl b rr c add c - ld [H_QUOTIENT + 3], a - ld a, [H_QUOTIENT + 2] + ldh [hQuotient + 3], a + ldh a, [hQuotient + 2] adc b - ld [H_QUOTIENT + 2], a + ldh [hQuotient + 2], a ret Bankswitch15ToF: @@ -350,8 +350,8 @@ Bankswitch15ToF: jp Bankswitch GainedText: - TX_FAR _GainedText - TX_ASM + text_far _GainedText + text_asm ld a, [wBoostExpByExpAll] ld hl, WithExpAllText and a @@ -364,19 +364,19 @@ GainedText: ret WithExpAllText: - TX_FAR _WithExpAllText - TX_ASM + text_far _WithExpAllText + text_asm ld hl, ExpPointsText ret BoostedText: - TX_FAR _BoostedText + text_far _BoostedText ExpPointsText: - TX_FAR _ExpPointsText - db "@" + text_far _ExpPointsText + text_end GrewLevelText: - TX_FAR _GrewLevelText - TX_SFX_LEVEL_UP - db "@" + text_far _GrewLevelText + sound_level_up + text_end diff --git a/engine/battle/get_trainer_name.asm b/engine/battle/get_trainer_name.asm index 36ca019ed..b2daebfe1 100644 --- a/engine/battle/get_trainer_name.asm +++ b/engine/battle/get_trainer_name.asm @@ -1,15 +1,15 @@ -GetTrainerName_: +GetTrainerName_:: ld hl, wGrassRate ld a, [wLinkState] and a jr nz, .foundName ld hl, wRivalName ld a, [wTrainerClass] - cp SONY1 + cp RIVAL1 jr z, .foundName - cp SONY2 + cp RIVAL2 jr z, .foundName - cp SONY3 + cp RIVAL3 jr z, .foundName ld [wd0b5], a ld a, TRAINER_NAME diff --git a/engine/battle/ghost_marowak_anim.asm b/engine/battle/ghost_marowak_anim.asm index 972d5bf53..030590227 100644 --- a/engine/battle/ghost_marowak_anim.asm +++ b/engine/battle/ghost_marowak_anim.asm @@ -1,22 +1,22 @@ MarowakAnim: ; animate the ghost being unveiled as a Marowak ld a, $e4 - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_OBP1 call CopyMonPicFromBGToSpriteVRAM ; cover the BG ghost pic with a sprite ghost pic that looks the same ; now that the ghost pic is being displayed using sprites, clear the ghost pic from the BG tilemap - coord hl, 12, 0 + hlcoord 12, 0 lb bc, 7, 7 call ClearScreenArea call Delay3 xor a - ld [H_AUTOBGTRANSFERENABLED], a ; disable BG transfer so we don't see the Marowak too soon + ldh [hAutoBGTransferEnabled], a ; disable BG transfer so we don't see the Marowak too soon ; replace ghost pic with Marowak in BG ld a, RESTLESS_SOUL ld [wChangeMonPicEnemyTurnSpecies], a ld a, $1 - ld [H_WHOSETURN], a - callab ChangeMonPic + ldh [hWhoseTurn], a + callfar ChangeMonPic ; alternate between black and light grey 8 times. ; this makes the ghost's body appear to flash ld d, $80 @@ -24,10 +24,10 @@ MarowakAnim: .fadeOutGhostLoop ld c, 10 call DelayFrames - ld a, [rOBP1] + ldh a, [rOBP1] sla a sla a - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_OBP1 jr nz, .fadeOutGhostLoop call ClearSprites @@ -36,18 +36,18 @@ MarowakAnim: .fadeInMarowakLoop ld c, 10 call DelayFrames - ld a, [rOBP1] + ldh a, [rOBP1] srl b rra srl b rra - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_OBP1 ld a, b and a jr nz, .fadeInMarowakLoop ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a ; enable BG transfer so the BG Marowak pic will be visible after the sprite one is cleared + ldh [hAutoBGTransferEnabled], a ; enable BG transfer so the BG Marowak pic will be visible after the sprite one is cleared call Delay3 jp ClearSprites diff --git a/engine/battle/init_battle_variables.asm b/engine/battle/init_battle_variables.asm index 7bc912d2c..0d403b554 100644 --- a/engine/battle/init_battle_variables.asm +++ b/engine/battle/init_battle_variables.asm @@ -1,5 +1,5 @@ InitBattleVariables: - ld a, [hTilesetType] + ldh a, [hTilesetType] ld [wSavedTilesetType], a xor a ld [wActionResultOrTookBattleTurn], a @@ -35,4 +35,4 @@ InitBattleVariables: ld a, BATTLE_TYPE_SAFARI ld [wBattleType], a .notSafariBattle - jpab PlayBattleMusic + jpfar PlayBattleMusic diff --git a/engine/battle/link_battle_versus_text.asm b/engine/battle/link_battle_versus_text.asm index 63142ba6a..e55a06722 100644 --- a/engine/battle/link_battle_versus_text.asm +++ b/engine/battle/link_battle_versus_text.asm @@ -1,22 +1,22 @@ ; display "[player] VS [enemy]" text box with pokeballs representing their parties next to the names DisplayLinkBattleVersusTextBox: call LoadTextBoxTilePatterns - coord hl, 3, 4 + hlcoord 3, 4 lb bc, 7, 12 call TextBoxBorder - coord hl, 4, 5 + hlcoord 4, 5 ld de, wPlayerName call PlaceString - coord hl, 4, 10 + hlcoord 4, 10 ld de, wLinkEnemyTrainerName call PlaceString ; place bold "VS" tiles between the names - coord hl, 9, 8 + hlcoord 9, 8 ld a, $69 ld [hli], a ld [hl], $6a xor a ld [wUpdateSpritesEnabled], a - callab SetupPlayerAndEnemyPokeballs + callfar SetupPlayerAndEnemyPokeballs ld c, 150 jp DelayFrames diff --git a/engine/battle/bank_e_misc.asm b/engine/battle/misc.asm similarity index 100% rename from engine/battle/bank_e_misc.asm rename to engine/battle/misc.asm diff --git a/engine/battle/moveEffects/conversion_effect.asm b/engine/battle/moveEffects/conversion_effect.asm deleted file mode 100644 index f23c3d707..000000000 --- a/engine/battle/moveEffects/conversion_effect.asm +++ /dev/null @@ -1,35 +0,0 @@ -ConversionEffect_: - ld hl, wEnemyMonType1 - ld de, wBattleMonType1 - ld a, [H_WHOSETURN] - and a - ld a, [wEnemyBattleStatus1] - jr z, .conversionEffect - push hl - ld h, d - ld l, e - pop de - ld a, [wPlayerBattleStatus1] -.conversionEffect - bit INVULNERABLE, a ; is mon immune to typical attacks (dig/fly) - jr nz, PrintButItFailedText -; copy target's types to user - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - ld hl, PlayCurrentMoveAnimation - call CallBankF - ld hl, ConvertedTypeText - jp PrintText - -ConvertedTypeText: - TX_FAR _ConvertedTypeText - db "@" - -PrintButItFailedText: - ld hl, PrintButItFailedText_ -CallBankF: - ld b, BANK(PrintButItFailedText_) - jp Bankswitch diff --git a/engine/battle/moveEffects/drain_hp_effect.asm b/engine/battle/moveEffects/drain_hp_effect.asm deleted file mode 100644 index e5f4681ae..000000000 --- a/engine/battle/moveEffects/drain_hp_effect.asm +++ /dev/null @@ -1,104 +0,0 @@ -DrainHPEffect_: - ld hl, wDamage - ld a, [hl] - srl a ; divide damage by 2 - ld [hli], a - ld a, [hl] - rr a - ld [hld], a - or [hl] ; is damage 0? - jr nz, .getAttackerHP -; if damage is 0, increase to 1 so that the attacker gains at least 1 HP - inc hl - inc [hl] -.getAttackerHP - ld hl, wBattleMonHP - ld de, wBattleMonMaxHP - ld a, [H_WHOSETURN] - and a - jp z, .addDamageToAttackerHP - ld hl, wEnemyMonHP - ld de, wEnemyMonMaxHP -.addDamageToAttackerHP - ld bc, wHPBarOldHP+1 -; copy current HP to wHPBarOldHP - ld a, [hli] - ld [bc], a - ld a, [hl] - dec bc - ld [bc], a -; copy max HP to wHPBarMaxHP - ld a, [de] - dec bc - ld [bc], a - inc de - ld a, [de] - dec bc - ld [bc], a -; add damage to attacker's HP and copy new HP to wHPBarNewHP - ld a, [wDamage + 1] - ld b, [hl] - add b - ld [hld], a - ld [wHPBarNewHP], a - ld a, [wDamage] - ld b, [hl] - adc b - ld [hli], a - ld [wHPBarNewHP+1], a - jr c, .capToMaxHP ; if HP > 65,535, cap to max HP -; compare HP with max HP - ld a, [hld] - ld b, a - ld a, [de] - dec de - sub b - ld a, [hli] - ld b, a - ld a, [de] - inc de - sbc b - jr nc, .next -.capToMaxHP - ld a, [de] - ld [hld], a - ld [wHPBarNewHP], a - dec de - ld a, [de] - ld [hli], a - ld [wHPBarNewHP+1], a - inc de -.next - ld a, [H_WHOSETURN] - and a - coord hl, 10, 9 - ld a, $1 - jr z, .next2 - coord hl, 2, 2 - xor a -.next2 - ld [wHPBarType], a - predef UpdateHPBar2 - predef DrawPlayerHUDAndHPBar - predef DrawEnemyHUDAndHPBar - callab ReadPlayerMonCurHPAndStatus - ld hl, SuckedHealthText - ld a, [H_WHOSETURN] - and a - ld a, [wPlayerMoveEffect] - jr z, .next3 - ld a, [wEnemyMoveEffect] -.next3 - cp DREAM_EATER_EFFECT - jr nz, .printText - ld hl, DreamWasEatenText -.printText - jp PrintText - -SuckedHealthText: - TX_FAR _SuckedHealthText - db "@" - -DreamWasEatenText: - TX_FAR _DreamWasEatenText - db "@" diff --git a/engine/battle/moveEffects/focus_energy_effect.asm b/engine/battle/moveEffects/focus_energy_effect.asm deleted file mode 100644 index 16dad7bb6..000000000 --- a/engine/battle/moveEffects/focus_energy_effect.asm +++ /dev/null @@ -1,22 +0,0 @@ -FocusEnergyEffect_: - ld hl, wPlayerBattleStatus2 - ld a, [H_WHOSETURN] - and a - jr z, .notEnemy - ld hl, wEnemyBattleStatus2 -.notEnemy - bit GETTING_PUMPED, [hl] ; is mon already using focus energy? - jr nz, .alreadyUsing - set GETTING_PUMPED, [hl] ; mon is now using focus energy - callab PlayCurrentMoveAnimation - ld hl, GettingPumpedText - jp PrintText -.alreadyUsing - ld c, 50 - call DelayFrames - jpab PrintButItFailedText_ - -GettingPumpedText: - TX_DELAY - TX_FAR _GettingPumpedText - db "@" diff --git a/engine/battle/moveEffects/haze_effect.asm b/engine/battle/moveEffects/haze_effect.asm deleted file mode 100644 index 47723ba28..000000000 --- a/engine/battle/moveEffects/haze_effect.asm +++ /dev/null @@ -1,81 +0,0 @@ -HazeEffect_: - ld a, $7 -; store 7 on every stat mod - ld hl, wPlayerMonAttackMod - call ResetStatMods - ld hl, wEnemyMonAttackMod - call ResetStatMods -; copy unmodified stats to battle stats - ld hl, wPlayerMonUnmodifiedAttack - ld de, wBattleMonAttack - call ResetStats - ld hl, wEnemyMonUnmodifiedAttack - ld de, wEnemyMonAttack - call ResetStats -; cure non-volatile status, but only for the target - ld hl, wEnemyMonStatus - ld de, wEnemySelectedMove - ld a, [H_WHOSETURN] - and a - jr z, .cureStatuses - ld hl, wBattleMonStatus - dec de ; wPlayerSelectedMove - -.cureStatuses - ld a, [hl] - ld [hl], $0 - and SLP | (1 << FRZ) - jr z, .cureVolatileStatuses -; prevent the Pokemon from executing a move if it was asleep or frozen - ld a, $ff - ld [de], a - -.cureVolatileStatuses - xor a - ld [wPlayerDisabledMove], a - ld [wEnemyDisabledMove], a - ld hl, wPlayerDisabledMoveNumber - ld [hli], a - ld [hl], a - ld hl, wPlayerBattleStatus1 - call CureVolatileStatuses - ld hl, wEnemyBattleStatus1 - call CureVolatileStatuses - ld hl, PlayCurrentMoveAnimation - call CallBankF - ld hl, StatusChangesEliminatedText - jp PrintText - -CureVolatileStatuses: - res CONFUSED, [hl] - inc hl ; BATTSTATUS2 - ld a, [hl] - ; clear USING_X_ACCURACY, PROTECTED_BY_MIST, GETTING_PUMPED, and SEEDED statuses - and $ff ^((1 << USING_X_ACCURACY) | (1 << PROTECTED_BY_MIST) | (1 << GETTING_PUMPED) | (1 << SEEDED)) - ld [hli], a ; BATTSTATUS3 - ld a, [hl] - and %11110000 | (1 << TRANSFORMED) ; clear Bad Poison, Reflect and Light Screen statuses - ld [hl], a - ret - -ResetStatMods: - ld b, $8 -.loop - ld [hli], a - dec b - jr nz, .loop - ret - -ResetStats: - ld b, $8 -.loop - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .loop - ret - -StatusChangesEliminatedText: - TX_FAR _StatusChangesEliminatedText - db "@" diff --git a/engine/battle/moveEffects/heal_effect.asm b/engine/battle/moveEffects/heal_effect.asm deleted file mode 100644 index 97afa3948..000000000 --- a/engine/battle/moveEffects/heal_effect.asm +++ /dev/null @@ -1,120 +0,0 @@ -HealEffect_: - ld a, [H_WHOSETURN] - and a - ld de, wBattleMonHP - ld hl, wBattleMonMaxHP - ld a, [wPlayerMoveNum] - jr z, .healEffect - ld de, wEnemyMonHP - ld hl, wEnemyMonMaxHP - ld a, [wEnemyMoveNum] -.healEffect - ld b, a - ld a, [de] - cp [hl] ; most significant bytes comparison is ignored - ; causes the move to miss if max HP is 255 or 511 points higher than the current HP - inc de - inc hl - ld a, [de] - sbc [hl] - jp z, .failed ; no effect if user's HP is already at its maximum - ld a, b - cp REST - jr nz, .healHP - push hl - push de - push af - ld c, 50 - call DelayFrames - ld hl, wBattleMonStatus - ld a, [H_WHOSETURN] - and a - jr z, .restEffect - ld hl, wEnemyMonStatus -.restEffect - ld a, [hl] - and a - ld [hl], 2 ; clear status and set number of turns asleep to 2 - ld hl, StartedSleepingEffect ; if mon didn't have an status - jr z, .printRestText - ld hl, FellAsleepBecameHealthyText ; if mon had an status -.printRestText - call PrintText - pop af - pop de - pop hl -.healHP - ld a, [hld] - ld [wHPBarMaxHP], a - ld c, a - ld a, [hl] - ld [wHPBarMaxHP+1], a - ld b, a - jr z, .gotHPAmountToHeal -; Recover and Softboiled only heal for half the mon's max HP - srl b - rr c -.gotHPAmountToHeal -; update HP - ld a, [de] - ld [wHPBarOldHP], a - add c - ld [de], a - ld [wHPBarNewHP], a - dec de - ld a, [de] - ld [wHPBarOldHP+1], a - adc b - ld [de], a - ld [wHPBarNewHP+1], a - inc hl - inc de - ld a, [de] - dec de - sub [hl] - dec hl - ld a, [de] - sbc [hl] - jr c, .playAnim -; copy max HP to current HP if an overflow occurred - ld a, [hli] - ld [de], a - ld [wHPBarNewHP+1], a - inc de - ld a, [hl] - ld [de], a - ld [wHPBarNewHP], a -.playAnim - ld hl, PlayCurrentMoveAnimation - call Bankswitch3DtoF - ld a, [H_WHOSETURN] - and a - coord hl, 10, 9 - ld a, $1 - jr z, .updateHPBar - coord hl, 2, 2 - xor a -.updateHPBar - ld [wHPBarType], a - predef UpdateHPBar2 - ld hl, DrawHUDsAndHPBars - call Bankswitch3DtoF - ld hl, RegainedHealthText - jp PrintText -.failed - ld c, 50 - call DelayFrames - ld hl, PrintButItFailedText_ - jp Bankswitch3DtoF - -StartedSleepingEffect: - TX_FAR _StartedSleepingEffect - db "@" - -FellAsleepBecameHealthyText: - TX_FAR _FellAsleepBecameHealthyText - db "@" - -RegainedHealthText: - TX_FAR _RegainedHealthText - db "@" diff --git a/engine/battle/moveEffects/leech_seed_effect.asm b/engine/battle/moveEffects/leech_seed_effect.asm deleted file mode 100644 index f4d3ee9c3..000000000 --- a/engine/battle/moveEffects/leech_seed_effect.asm +++ /dev/null @@ -1,40 +0,0 @@ -LeechSeedEffect_: - callab MoveHitTest - ld a, [wMoveMissed] - and a - jr nz, .moveMissed - ld hl, wEnemyBattleStatus2 - ld de, wEnemyMonType1 - ld a, [H_WHOSETURN] - and a - jr z, .leechSeedEffect - ld hl, wPlayerBattleStatus2 - ld de, wBattleMonType1 -.leechSeedEffect -; miss if the target is grass-type or already seeded - ld a, [de] - cp GRASS - jr z, .moveMissed - inc de - ld a, [de] - cp GRASS - jr z, .moveMissed - bit SEEDED, [hl] - jr nz, .moveMissed - set SEEDED, [hl] - callab PlayCurrentMoveAnimation - ld hl, WasSeededText - jp PrintText -.moveMissed - ld c, 50 - call DelayFrames - ld hl, EvadedAttackText - jp PrintText - -WasSeededText: - TX_FAR _WasSeededText - db "@" - -EvadedAttackText: - TX_FAR _EvadedAttackText - db "@" diff --git a/engine/battle/moveEffects/mist_effect.asm b/engine/battle/moveEffects/mist_effect.asm deleted file mode 100644 index 65070a3eb..000000000 --- a/engine/battle/moveEffects/mist_effect.asm +++ /dev/null @@ -1,19 +0,0 @@ -MistEffect_: - ld hl, wPlayerBattleStatus2 - ld a, [H_WHOSETURN] - and a - jr z, .mistEffect - ld hl, wEnemyBattleStatus2 -.mistEffect - bit PROTECTED_BY_MIST, [hl] ; is mon protected by mist? - jr nz, .mistAlreadyInUse - set PROTECTED_BY_MIST, [hl] ; mon is now protected by mist - callab PlayCurrentMoveAnimation - ld hl, ShroudedInMistText - jp PrintText -.mistAlreadyInUse - jpab PrintButItFailedText_ - -ShroudedInMistText: - TX_FAR _ShroudedInMistText - db "@" diff --git a/engine/battle/moveEffects/one_hit_ko_effect.asm b/engine/battle/moveEffects/one_hit_ko_effect.asm deleted file mode 100644 index 827e21973..000000000 --- a/engine/battle/moveEffects/one_hit_ko_effect.asm +++ /dev/null @@ -1,38 +0,0 @@ -OneHitKOEffect_: - ld hl, wDamage - xor a - ld [hli], a - ld [hl], a ; set the damage output to zero - dec a - ld [wCriticalHitOrOHKO], a - ld hl, wBattleMonSpeed + 1 - ld de, wEnemyMonSpeed + 1 - ld a, [H_WHOSETURN] - and a - jr z, .compareSpeed - ld hl, wEnemyMonSpeed + 1 - ld de, wBattleMonSpeed + 1 -.compareSpeed -; set damage to 65535 and OHKO flag is the user's current speed is higher than the target's - ld a, [de] - dec de - ld b, a - ld a, [hld] - sub b - ld a, [de] - ld b, a - ld a, [hl] - sbc b - jr c, .userIsSlower - ld hl, wDamage - ld a, $ff - ld [hli], a - ld [hl], a - ld a, $2 - ld [wCriticalHitOrOHKO], a - ret -.userIsSlower -; keep damage at 0 and set move missed flag if target's current speed is higher instead - ld a, $1 - ld [wMoveMissed], a - ret diff --git a/engine/battle/moveEffects/paralyze_effect.asm b/engine/battle/moveEffects/paralyze_effect.asm deleted file mode 100644 index 95979ae6f..000000000 --- a/engine/battle/moveEffects/paralyze_effect.asm +++ /dev/null @@ -1,47 +0,0 @@ -ParalyzeEffect_: - ld hl, wEnemyMonStatus - ld de, wPlayerMoveType - ld a, [H_WHOSETURN] - and a - jp z, .next - ld hl, wBattleMonStatus - ld de, wEnemyMoveType -.next - ld a, [hl] - and a ; does the target already have a status ailment? - jr nz, .didntAffect -; check if the target is immune due to types - ld a, [de] - cp ELECTRIC - jr nz, .hitTest - ld b, h - ld c, l - inc bc - ld a, [bc] - cp GROUND - jr z, .doesntAffect - inc bc - ld a, [bc] - cp GROUND - jr z, .doesntAffect -.hitTest - push hl - callab MoveHitTest - pop hl - ld a, [wMoveMissed] - and a - jr nz, .didntAffect - set PAR, [hl] - callab QuarterSpeedDueToParalysis - ld c, 30 - call DelayFrames - callab PlayCurrentMoveAnimation - jpab PrintMayNotAttackText -.didntAffect - ld c, 50 - call DelayFrames - jpab PrintDidntAffectText -.doesntAffect - ld c, 50 - call DelayFrames - jpab PrintDoesntAffectText diff --git a/engine/battle/moveEffects/pay_day_effect.asm b/engine/battle/moveEffects/pay_day_effect.asm deleted file mode 100644 index e5daf0147..000000000 --- a/engine/battle/moveEffects/pay_day_effect.asm +++ /dev/null @@ -1,45 +0,0 @@ -PayDayEffect_: - xor a - ld hl, wcd6d - ld [hli], a - ld a, [H_WHOSETURN] - and a - ld a, [wBattleMonLevel] - jr z, .payDayEffect - ld a, [wEnemyMonLevel] -.payDayEffect -; level * 2 - add a - ld [H_DIVIDEND + 3], a - xor a - ld [H_DIVIDEND], a - ld [H_DIVIDEND + 1], a - ld [H_DIVIDEND + 2], a -; convert to BCD - ld a, 100 - ld [H_DIVISOR], a - ld b, $4 - call Divide - ld a, [H_QUOTIENT + 3] - ld [hli], a - ld a, [H_REMAINDER] - ld [H_DIVIDEND + 3], a - ld a, 10 - ld [H_DIVISOR], a - ld b, $4 - call Divide - ld a, [H_QUOTIENT + 3] - swap a - ld b, a - ld a, [H_REMAINDER] - add b - ld [hl], a - ld de, wTotalPayDayMoney + 2 - ld c, $3 - predef AddBCDPredef - ld hl, CoinsScatteredText - jp PrintText - -CoinsScatteredText: - TX_FAR _CoinsScatteredText - db "@" diff --git a/engine/battle/moveEffects/recoil_effect.asm b/engine/battle/moveEffects/recoil_effect.asm deleted file mode 100644 index 0f2f087b1..000000000 --- a/engine/battle/moveEffects/recoil_effect.asm +++ /dev/null @@ -1,70 +0,0 @@ -RecoilEffect_: - ld a, [H_WHOSETURN] - and a - ld a, [wPlayerMoveNum] - ld hl, wBattleMonMaxHP - jr z, .recoilEffect - ld a, [wEnemyMoveNum] - ld hl, wEnemyMonMaxHP -.recoilEffect - ld d, a - ld a, [wDamage] - ld b, a - ld a, [wDamage + 1] - ld c, a - srl b - rr c - ld a, d - cp STRUGGLE ; struggle deals 50% recoil damage - jr z, .gotRecoilDamage - srl b - rr c -.gotRecoilDamage - ld a, b - or c - jr nz, .updateHP - inc c ; minimum recoil damage is 1 -.updateHP -; subtract HP from user due to the recoil damage - ld a, [hli] - ld [wHPBarMaxHP+1], a - ld a, [hl] - ld [wHPBarMaxHP], a - push bc - ld bc, wBattleMonHP - wBattleMonMaxHP - add hl, bc - pop bc - ld a, [hl] - ld [wHPBarOldHP], a - sub c - ld [hld], a - ld [wHPBarNewHP], a - ld a, [hl] - ld [wHPBarOldHP+1], a - sbc b - ld [hl], a - ld [wHPBarNewHP+1], a - jr nc, .getHPBarCoords -; if recoil damage is higher than the Pokemon's HP, set its HP to 0 - xor a - ld [hli], a - ld [hl], a - ld hl, wHPBarNewHP - ld [hli], a - ld [hl], a -.getHPBarCoords - coord hl, 10, 9 - ld a, [H_WHOSETURN] - and a - ld a, $1 - jr z, .updateHPBar - coord hl, 2, 2 - xor a -.updateHPBar - ld [wHPBarType], a - predef UpdateHPBar2 - ld hl, HitWithRecoilText - jp PrintText -HitWithRecoilText: - TX_FAR _HitWithRecoilText - db "@" diff --git a/engine/battle/moveEffects/reflect_light_screen_effect.asm b/engine/battle/moveEffects/reflect_light_screen_effect.asm deleted file mode 100644 index e5748b194..000000000 --- a/engine/battle/moveEffects/reflect_light_screen_effect.asm +++ /dev/null @@ -1,45 +0,0 @@ -ReflectLightScreenEffect_: - ld hl, wPlayerBattleStatus3 - ld de, wPlayerMoveEffect - ld a, [H_WHOSETURN] - and a - jr z, .reflectLightScreenEffect - ld hl, wEnemyBattleStatus3 - ld de, wEnemyMoveEffect -.reflectLightScreenEffect - ld a, [de] - cp LIGHT_SCREEN_EFFECT - jr nz, .reflect - bit HAS_LIGHT_SCREEN_UP, [hl] ; is mon already protected by light screen? - jr nz, .moveFailed - set HAS_LIGHT_SCREEN_UP, [hl] ; mon is now protected by light screen - ld hl, LightScreenProtectedText - jr .playAnim -.reflect - bit HAS_REFLECT_UP, [hl] ; is mon already protected by reflect? - jr nz, .moveFailed - set HAS_REFLECT_UP, [hl] ; mon is now protected by reflect - ld hl, ReflectGainedArmorText -.playAnim - push hl - ld hl, PlayCurrentMoveAnimation - call Bankswitch3DtoF - pop hl - jp PrintText -.moveFailed - ld c, 50 - call DelayFrames - ld hl, PrintButItFailedText_ - jp Bankswitch3DtoF - -LightScreenProtectedText: - TX_FAR _LightScreenProtectedText - db "@" - -ReflectGainedArmorText: - TX_FAR _ReflectGainedArmorText - db "@" - -Bankswitch3DtoF: - ld b, BANK(BattleCore) - jp Bankswitch diff --git a/engine/battle/moveEffects/substitute_effect.asm b/engine/battle/moveEffects/substitute_effect.asm deleted file mode 100644 index b5d006fc0..000000000 --- a/engine/battle/moveEffects/substitute_effect.asm +++ /dev/null @@ -1,77 +0,0 @@ -SubstituteEffect_: - ld c, 50 - call DelayFrames - ld hl, wBattleMonMaxHP - ld de, wPlayerSubstituteHP - ld bc, wPlayerBattleStatus2 - ld a, [H_WHOSETURN] - and a - jr z, .notEnemy - ld hl, wEnemyMonMaxHP - ld de, wEnemySubstituteHP - ld bc, wEnemyBattleStatus2 -.notEnemy - ld a, [bc] - bit HAS_SUBSTITUTE_UP, a ; user already has substitute? - jr nz, .alreadyHasSubstitute -; quarter health to remove from user -; assumes max HP is 1023 or lower - push bc - ld a, [hli] - ld b, [hl] - srl a - rr b - srl a - rr b ; max hp / 4 - push de - ld de, wBattleMonHP - wBattleMonMaxHP - add hl, de ; point hl to current HP low byte - pop de - ld a, b - ld [de], a ; save copy of HP to subtract in ccd7/ccd8 [how much HP substitute has] - ld a, [hld] -; subtract [max hp / 4] to current HP - sub b - ld d, a - ld a, [hl] - sbc 0 - pop bc - jr c, .notEnoughHP ; underflow means user would be left with negative health - ; bug: since it only branches on carry, it will possibly leave user with 0 HP -.userHasZeroOrMoreHP - ldi [hl], a ; save resulting HP after subtraction into current HP - ld [hl], d - ld h, b - ld l, c - set HAS_SUBSTITUTE_UP, [hl] - ld a, [wOptions] - bit 7, a ; battle animation is enabled? - ld hl, PlayCurrentMoveAnimation - ld b, BANK(PlayCurrentMoveAnimation) - jr z, .animationEnabled - ld hl, AnimationSubstitute - ld b, BANK(AnimationSubstitute) -.animationEnabled - call Bankswitch ; jump to routine depending on animation setting - ld hl, SubstituteText - call PrintText - jpab DrawHUDsAndHPBars -.alreadyHasSubstitute - ld hl, HasSubstituteText - jr .printText -.notEnoughHP - ld hl, TooWeakSubstituteText -.printText - jp PrintText - -SubstituteText: - TX_FAR _SubstituteText - db "@" - -HasSubstituteText: - TX_FAR _HasSubstituteText - db "@" - -TooWeakSubstituteText: - TX_FAR _TooWeakSubstituteText - db "@" diff --git a/engine/battle/moveEffects/transform_effect.asm b/engine/battle/moveEffects/transform_effect.asm deleted file mode 100644 index ec07b303b..000000000 --- a/engine/battle/moveEffects/transform_effect.asm +++ /dev/null @@ -1,141 +0,0 @@ -TransformEffect_: - ld hl, wBattleMonSpecies - ld de, wEnemyMonSpecies - ld bc, wEnemyBattleStatus3 - ld a, [wEnemyBattleStatus1] - ld a, [H_WHOSETURN] - and a - jr nz, .hitTest - ld hl, wEnemyMonSpecies - ld de, wBattleMonSpecies - ld bc, wPlayerBattleStatus3 - ld [wPlayerMoveListIndex], a - ld a, [wPlayerBattleStatus1] -.hitTest - bit INVULNERABLE, a ; is mon invulnerable to typical attacks? (fly/dig) - jp nz, .failed - push hl - push de - push bc - ld hl, wPlayerBattleStatus2 - ld a, [H_WHOSETURN] - and a - jr z, .transformEffect - ld hl, wEnemyBattleStatus2 -.transformEffect -; animation(s) played are different if target has Substitute up - bit HAS_SUBSTITUTE_UP, [hl] - push af - ld hl, HideSubstituteShowMonAnim - ld b, BANK(HideSubstituteShowMonAnim) - call nz, Bankswitch - ld a, [wOptions] - add a - ld hl, PlayCurrentMoveAnimation - ld b, BANK(PlayCurrentMoveAnimation) - jr nc, .gotAnimToPlay - ld hl, AnimationTransformMon - ld b, BANK(AnimationTransformMon) -.gotAnimToPlay - call Bankswitch - ld hl, ReshowSubstituteAnim - ld b, BANK(ReshowSubstituteAnim) - pop af - call nz, Bankswitch - pop bc - ld a, [bc] - set TRANSFORMED, a ; mon is now transformed - ld [bc], a - pop de - pop hl - push hl -; transform user into opposing Pokemon -; species - ld a, [hl] - ld [de], a -; type 1, type 2, catch rate, and moves - ld bc, $5 - add hl, bc - inc de - inc de - inc de - inc de - inc de - inc bc - inc bc - call CopyData - ld a, [H_WHOSETURN] - and a - jr z, .next -; save enemy mon DVs at wTransformedEnemyMonOriginalDVs - ld a, [de] - ld [wTransformedEnemyMonOriginalDVs], a - inc de - ld a, [de] - ld [wTransformedEnemyMonOriginalDVs + 1], a - dec de -.next -; DVs - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de -; Attack, Defense, Speed, and Special stats - inc hl - inc hl - inc hl - inc de - inc de - inc de - ld bc, $8 - call CopyData - ld bc, wBattleMonMoves - wBattleMonPP - add hl, bc ; ld hl, wBattleMonMoves - ld b, NUM_MOVES -.copyPPLoop -; 5 PP for all moves - ld a, [hli] - and a - jr z, .lessThanFourMoves - ld a, $5 -.lessThanFourMoves - ld [de], a - inc de - dec b - jr nz, .copyPPLoop -.copyStats -; original (unmodified) stats and stat mods - pop hl - ld a, [hl] - ld [wd11e], a - call GetMonName - ld hl, wEnemyMonUnmodifiedAttack - ld de, wPlayerMonUnmodifiedAttack - call .copyBasedOnTurn ; original (unmodified) stats - ld hl, wEnemyMonStatMods - ld de, wPlayerMonStatMods - call .copyBasedOnTurn ; stat mods - ld hl, TransformedText - jp PrintText - -.copyBasedOnTurn - ld a, [H_WHOSETURN] - and a - jr z, .gotStatsOrModsToCopy - push hl - ld h, d - ld l, e - pop de -.gotStatsOrModsToCopy - ld bc, $8 - jp CopyData - -.failed - ld hl, PrintButItFailedText_ - jp Bankswitch3DtoF - -TransformedText: - TX_FAR _TransformedText - db "@" diff --git a/engine/battle/move_effects/conversion.asm b/engine/battle/move_effects/conversion.asm new file mode 100644 index 000000000..1f64ec5bf --- /dev/null +++ b/engine/battle/move_effects/conversion.asm @@ -0,0 +1,35 @@ +ConversionEffect_: + ld hl, wEnemyMonType1 + ld de, wBattleMonType1 + ldh a, [hWhoseTurn] + and a + ld a, [wEnemyBattleStatus1] + jr z, .conversionEffect + push hl + ld h, d + ld l, e + pop de + ld a, [wPlayerBattleStatus1] +.conversionEffect + bit INVULNERABLE, a ; is mon immune to typical attacks (dig/fly) + jr nz, PrintButItFailedText +; copy target's types to user + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + ld hl, PlayCurrentMoveAnimation + call CallBankF + ld hl, ConvertedTypeText + jp PrintText + +ConvertedTypeText: + text_far _ConvertedTypeText + text_end + +PrintButItFailedText: + ld hl, PrintButItFailedText_ +CallBankF: + ld b, BANK(PrintButItFailedText_) + jp Bankswitch diff --git a/engine/battle/move_effects/drain_hp.asm b/engine/battle/move_effects/drain_hp.asm new file mode 100644 index 000000000..04a585cc6 --- /dev/null +++ b/engine/battle/move_effects/drain_hp.asm @@ -0,0 +1,104 @@ +DrainHPEffect_: + ld hl, wDamage + ld a, [hl] + srl a ; divide damage by 2 + ld [hli], a + ld a, [hl] + rr a + ld [hld], a + or [hl] ; is damage 0? + jr nz, .getAttackerHP +; if damage is 0, increase to 1 so that the attacker gains at least 1 HP + inc hl + inc [hl] +.getAttackerHP + ld hl, wBattleMonHP + ld de, wBattleMonMaxHP + ldh a, [hWhoseTurn] + and a + jp z, .addDamageToAttackerHP + ld hl, wEnemyMonHP + ld de, wEnemyMonMaxHP +.addDamageToAttackerHP + ld bc, wHPBarOldHP+1 +; copy current HP to wHPBarOldHP + ld a, [hli] + ld [bc], a + ld a, [hl] + dec bc + ld [bc], a +; copy max HP to wHPBarMaxHP + ld a, [de] + dec bc + ld [bc], a + inc de + ld a, [de] + dec bc + ld [bc], a +; add damage to attacker's HP and copy new HP to wHPBarNewHP + ld a, [wDamage + 1] + ld b, [hl] + add b + ld [hld], a + ld [wHPBarNewHP], a + ld a, [wDamage] + ld b, [hl] + adc b + ld [hli], a + ld [wHPBarNewHP+1], a + jr c, .capToMaxHP ; if HP > 65,535, cap to max HP +; compare HP with max HP + ld a, [hld] + ld b, a + ld a, [de] + dec de + sub b + ld a, [hli] + ld b, a + ld a, [de] + inc de + sbc b + jr nc, .next +.capToMaxHP + ld a, [de] + ld [hld], a + ld [wHPBarNewHP], a + dec de + ld a, [de] + ld [hli], a + ld [wHPBarNewHP+1], a + inc de +.next + ldh a, [hWhoseTurn] + and a + hlcoord 10, 9 + ld a, $1 + jr z, .next2 + hlcoord 2, 2 + xor a +.next2 + ld [wHPBarType], a + predef UpdateHPBar2 + predef DrawPlayerHUDAndHPBar + predef DrawEnemyHUDAndHPBar + callfar ReadPlayerMonCurHPAndStatus + ld hl, SuckedHealthText + ldh a, [hWhoseTurn] + and a + ld a, [wPlayerMoveEffect] + jr z, .next3 + ld a, [wEnemyMoveEffect] +.next3 + cp DREAM_EATER_EFFECT + jr nz, .printText + ld hl, DreamWasEatenText +.printText + jp PrintText + +SuckedHealthText: + text_far _SuckedHealthText + text_end + +DreamWasEatenText: + text_far _DreamWasEatenText + text_end diff --git a/engine/battle/move_effects/focus_energy.asm b/engine/battle/move_effects/focus_energy.asm new file mode 100644 index 000000000..1fafe9208 --- /dev/null +++ b/engine/battle/move_effects/focus_energy.asm @@ -0,0 +1,22 @@ +FocusEnergyEffect_: + ld hl, wPlayerBattleStatus2 + ldh a, [hWhoseTurn] + and a + jr z, .notEnemy + ld hl, wEnemyBattleStatus2 +.notEnemy + bit GETTING_PUMPED, [hl] ; is mon already using focus energy? + jr nz, .alreadyUsing + set GETTING_PUMPED, [hl] ; mon is now using focus energy + callfar PlayCurrentMoveAnimation + ld hl, GettingPumpedText + jp PrintText +.alreadyUsing + ld c, 50 + call DelayFrames + jpfar PrintButItFailedText_ + +GettingPumpedText: + text_pause + text_far _GettingPumpedText + text_end diff --git a/engine/battle/move_effects/haze.asm b/engine/battle/move_effects/haze.asm new file mode 100644 index 000000000..915eeed8e --- /dev/null +++ b/engine/battle/move_effects/haze.asm @@ -0,0 +1,81 @@ +HazeEffect_: + ld a, $7 +; store 7 on every stat mod + ld hl, wPlayerMonAttackMod + call ResetStatMods + ld hl, wEnemyMonAttackMod + call ResetStatMods +; copy unmodified stats to battle stats + ld hl, wPlayerMonUnmodifiedAttack + ld de, wBattleMonAttack + call ResetStats + ld hl, wEnemyMonUnmodifiedAttack + ld de, wEnemyMonAttack + call ResetStats +; cure non-volatile status, but only for the target + ld hl, wEnemyMonStatus + ld de, wEnemySelectedMove + ldh a, [hWhoseTurn] + and a + jr z, .cureStatuses + ld hl, wBattleMonStatus + dec de ; wPlayerSelectedMove + +.cureStatuses + ld a, [hl] + ld [hl], $0 + and SLP | (1 << FRZ) + jr z, .cureVolatileStatuses +; prevent the Pokemon from executing a move if it was asleep or frozen + ld a, $ff + ld [de], a + +.cureVolatileStatuses + xor a + ld [wPlayerDisabledMove], a + ld [wEnemyDisabledMove], a + ld hl, wPlayerDisabledMoveNumber + ld [hli], a + ld [hl], a + ld hl, wPlayerBattleStatus1 + call CureVolatileStatuses + ld hl, wEnemyBattleStatus1 + call CureVolatileStatuses + ld hl, PlayCurrentMoveAnimation + call CallBankF + ld hl, StatusChangesEliminatedText + jp PrintText + +CureVolatileStatuses: + res CONFUSED, [hl] + inc hl ; BATTSTATUS2 + ld a, [hl] + ; clear USING_X_ACCURACY, PROTECTED_BY_MIST, GETTING_PUMPED, and SEEDED statuses + and $ff ^((1 << USING_X_ACCURACY) | (1 << PROTECTED_BY_MIST) | (1 << GETTING_PUMPED) | (1 << SEEDED)) + ld [hli], a ; BATTSTATUS3 + ld a, [hl] + and %11110000 | (1 << TRANSFORMED) ; clear Bad Poison, Reflect and Light Screen statuses + ld [hl], a + ret + +ResetStatMods: + ld b, $8 +.loop + ld [hli], a + dec b + jr nz, .loop + ret + +ResetStats: + ld b, $8 +.loop + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .loop + ret + +StatusChangesEliminatedText: + text_far _StatusChangesEliminatedText + text_end diff --git a/engine/battle/move_effects/heal.asm b/engine/battle/move_effects/heal.asm new file mode 100644 index 000000000..80923a299 --- /dev/null +++ b/engine/battle/move_effects/heal.asm @@ -0,0 +1,120 @@ +HealEffect_: + ldh a, [hWhoseTurn] + and a + ld de, wBattleMonHP + ld hl, wBattleMonMaxHP + ld a, [wPlayerMoveNum] + jr z, .healEffect + ld de, wEnemyMonHP + ld hl, wEnemyMonMaxHP + ld a, [wEnemyMoveNum] +.healEffect + ld b, a + ld a, [de] + cp [hl] ; most significant bytes comparison is ignored + ; causes the move to miss if max HP is 255 or 511 points higher than the current HP + inc de + inc hl + ld a, [de] + sbc [hl] + jp z, .failed ; no effect if user's HP is already at its maximum + ld a, b + cp REST + jr nz, .healHP + push hl + push de + push af + ld c, 50 + call DelayFrames + ld hl, wBattleMonStatus + ldh a, [hWhoseTurn] + and a + jr z, .restEffect + ld hl, wEnemyMonStatus +.restEffect + ld a, [hl] + and a + ld [hl], 2 ; clear status and set number of turns asleep to 2 + ld hl, StartedSleepingEffect ; if mon didn't have an status + jr z, .printRestText + ld hl, FellAsleepBecameHealthyText ; if mon had an status +.printRestText + call PrintText + pop af + pop de + pop hl +.healHP + ld a, [hld] + ld [wHPBarMaxHP], a + ld c, a + ld a, [hl] + ld [wHPBarMaxHP+1], a + ld b, a + jr z, .gotHPAmountToHeal +; Recover and Softboiled only heal for half the mon's max HP + srl b + rr c +.gotHPAmountToHeal +; update HP + ld a, [de] + ld [wHPBarOldHP], a + add c + ld [de], a + ld [wHPBarNewHP], a + dec de + ld a, [de] + ld [wHPBarOldHP+1], a + adc b + ld [de], a + ld [wHPBarNewHP+1], a + inc hl + inc de + ld a, [de] + dec de + sub [hl] + dec hl + ld a, [de] + sbc [hl] + jr c, .playAnim +; copy max HP to current HP if an overflow occurred + ld a, [hli] + ld [de], a + ld [wHPBarNewHP+1], a + inc de + ld a, [hl] + ld [de], a + ld [wHPBarNewHP], a +.playAnim + ld hl, PlayCurrentMoveAnimation + call Bankswitch3DtoF + ldh a, [hWhoseTurn] + and a + hlcoord 10, 9 + ld a, $1 + jr z, .updateHPBar + hlcoord 2, 2 + xor a +.updateHPBar + ld [wHPBarType], a + predef UpdateHPBar2 + ld hl, DrawHUDsAndHPBars + call Bankswitch3DtoF + ld hl, RegainedHealthText + jp PrintText +.failed + ld c, 50 + call DelayFrames + ld hl, PrintButItFailedText_ + jp Bankswitch3DtoF + +StartedSleepingEffect: + text_far _StartedSleepingEffect + text_end + +FellAsleepBecameHealthyText: + text_far _FellAsleepBecameHealthyText + text_end + +RegainedHealthText: + text_far _RegainedHealthText + text_end diff --git a/engine/battle/move_effects/leech_seed.asm b/engine/battle/move_effects/leech_seed.asm new file mode 100644 index 000000000..61bd982a4 --- /dev/null +++ b/engine/battle/move_effects/leech_seed.asm @@ -0,0 +1,40 @@ +LeechSeedEffect_: + callfar MoveHitTest + ld a, [wMoveMissed] + and a + jr nz, .moveMissed + ld hl, wEnemyBattleStatus2 + ld de, wEnemyMonType1 + ldh a, [hWhoseTurn] + and a + jr z, .leechSeedEffect + ld hl, wPlayerBattleStatus2 + ld de, wBattleMonType1 +.leechSeedEffect +; miss if the target is grass-type or already seeded + ld a, [de] + cp GRASS + jr z, .moveMissed + inc de + ld a, [de] + cp GRASS + jr z, .moveMissed + bit SEEDED, [hl] + jr nz, .moveMissed + set SEEDED, [hl] + callfar PlayCurrentMoveAnimation + ld hl, WasSeededText + jp PrintText +.moveMissed + ld c, 50 + call DelayFrames + ld hl, EvadedAttackText + jp PrintText + +WasSeededText: + text_far _WasSeededText + text_end + +EvadedAttackText: + text_far _EvadedAttackText + text_end diff --git a/engine/battle/move_effects/mist.asm b/engine/battle/move_effects/mist.asm new file mode 100644 index 000000000..163d386fa --- /dev/null +++ b/engine/battle/move_effects/mist.asm @@ -0,0 +1,19 @@ +MistEffect_: + ld hl, wPlayerBattleStatus2 + ldh a, [hWhoseTurn] + and a + jr z, .mistEffect + ld hl, wEnemyBattleStatus2 +.mistEffect + bit PROTECTED_BY_MIST, [hl] ; is mon protected by mist? + jr nz, .mistAlreadyInUse + set PROTECTED_BY_MIST, [hl] ; mon is now protected by mist + callfar PlayCurrentMoveAnimation + ld hl, ShroudedInMistText + jp PrintText +.mistAlreadyInUse + jpfar PrintButItFailedText_ + +ShroudedInMistText: + text_far _ShroudedInMistText + text_end diff --git a/engine/battle/move_effects/one_hit_ko.asm b/engine/battle/move_effects/one_hit_ko.asm new file mode 100644 index 000000000..7e5db0f7b --- /dev/null +++ b/engine/battle/move_effects/one_hit_ko.asm @@ -0,0 +1,38 @@ +OneHitKOEffect_: + ld hl, wDamage + xor a + ld [hli], a + ld [hl], a ; set the damage output to zero + dec a + ld [wCriticalHitOrOHKO], a + ld hl, wBattleMonSpeed + 1 + ld de, wEnemyMonSpeed + 1 + ldh a, [hWhoseTurn] + and a + jr z, .compareSpeed + ld hl, wEnemyMonSpeed + 1 + ld de, wBattleMonSpeed + 1 +.compareSpeed +; set damage to 65535 and OHKO flag is the user's current speed is higher than the target's + ld a, [de] + dec de + ld b, a + ld a, [hld] + sub b + ld a, [de] + ld b, a + ld a, [hl] + sbc b + jr c, .userIsSlower + ld hl, wDamage + ld a, $ff + ld [hli], a + ld [hl], a + ld a, $2 + ld [wCriticalHitOrOHKO], a + ret +.userIsSlower +; keep damage at 0 and set move missed flag if target's current speed is higher instead + ld a, $1 + ld [wMoveMissed], a + ret diff --git a/engine/battle/move_effects/paralyze.asm b/engine/battle/move_effects/paralyze.asm new file mode 100644 index 000000000..dbaa0fb89 --- /dev/null +++ b/engine/battle/move_effects/paralyze.asm @@ -0,0 +1,47 @@ +ParalyzeEffect_: + ld hl, wEnemyMonStatus + ld de, wPlayerMoveType + ldh a, [hWhoseTurn] + and a + jp z, .next + ld hl, wBattleMonStatus + ld de, wEnemyMoveType +.next + ld a, [hl] + and a ; does the target already have a status ailment? + jr nz, .didntAffect +; check if the target is immune due to types + ld a, [de] + cp ELECTRIC + jr nz, .hitTest + ld b, h + ld c, l + inc bc + ld a, [bc] + cp GROUND + jr z, .doesntAffect + inc bc + ld a, [bc] + cp GROUND + jr z, .doesntAffect +.hitTest + push hl + callfar MoveHitTest + pop hl + ld a, [wMoveMissed] + and a + jr nz, .didntAffect + set PAR, [hl] + callfar QuarterSpeedDueToParalysis + ld c, 30 + call DelayFrames + callfar PlayCurrentMoveAnimation + jpfar PrintMayNotAttackText +.didntAffect + ld c, 50 + call DelayFrames + jpfar PrintDidntAffectText +.doesntAffect + ld c, 50 + call DelayFrames + jpfar PrintDoesntAffectText diff --git a/engine/battle/move_effects/pay_day.asm b/engine/battle/move_effects/pay_day.asm new file mode 100644 index 000000000..fa373038b --- /dev/null +++ b/engine/battle/move_effects/pay_day.asm @@ -0,0 +1,45 @@ +PayDayEffect_: + xor a + ld hl, wcd6d + ld [hli], a + ldh a, [hWhoseTurn] + and a + ld a, [wBattleMonLevel] + jr z, .payDayEffect + ld a, [wEnemyMonLevel] +.payDayEffect +; level * 2 + add a + ldh [hDividend + 3], a + xor a + ldh [hDividend], a + ldh [hDividend + 1], a + ldh [hDividend + 2], a +; convert to BCD + ld a, 100 + ldh [hDivisor], a + ld b, $4 + call Divide + ldh a, [hQuotient + 3] + ld [hli], a + ldh a, [hRemainder] + ldh [hDividend + 3], a + ld a, 10 + ldh [hDivisor], a + ld b, $4 + call Divide + ldh a, [hQuotient + 3] + swap a + ld b, a + ldh a, [hRemainder] + add b + ld [hl], a + ld de, wTotalPayDayMoney + 2 + ld c, $3 + predef AddBCDPredef + ld hl, CoinsScatteredText + jp PrintText + +CoinsScatteredText: + text_far _CoinsScatteredText + text_end diff --git a/engine/battle/move_effects/recoil.asm b/engine/battle/move_effects/recoil.asm new file mode 100644 index 000000000..85110d50f --- /dev/null +++ b/engine/battle/move_effects/recoil.asm @@ -0,0 +1,70 @@ +RecoilEffect_: + ldh a, [hWhoseTurn] + and a + ld a, [wPlayerMoveNum] + ld hl, wBattleMonMaxHP + jr z, .recoilEffect + ld a, [wEnemyMoveNum] + ld hl, wEnemyMonMaxHP +.recoilEffect + ld d, a + ld a, [wDamage] + ld b, a + ld a, [wDamage + 1] + ld c, a + srl b + rr c + ld a, d + cp STRUGGLE ; struggle deals 50% recoil damage + jr z, .gotRecoilDamage + srl b + rr c +.gotRecoilDamage + ld a, b + or c + jr nz, .updateHP + inc c ; minimum recoil damage is 1 +.updateHP +; subtract HP from user due to the recoil damage + ld a, [hli] + ld [wHPBarMaxHP+1], a + ld a, [hl] + ld [wHPBarMaxHP], a + push bc + ld bc, wBattleMonHP - wBattleMonMaxHP + add hl, bc + pop bc + ld a, [hl] + ld [wHPBarOldHP], a + sub c + ld [hld], a + ld [wHPBarNewHP], a + ld a, [hl] + ld [wHPBarOldHP+1], a + sbc b + ld [hl], a + ld [wHPBarNewHP+1], a + jr nc, .getHPBarCoords +; if recoil damage is higher than the Pokemon's HP, set its HP to 0 + xor a + ld [hli], a + ld [hl], a + ld hl, wHPBarNewHP + ld [hli], a + ld [hl], a +.getHPBarCoords + hlcoord 10, 9 + ldh a, [hWhoseTurn] + and a + ld a, $1 + jr z, .updateHPBar + hlcoord 2, 2 + xor a +.updateHPBar + ld [wHPBarType], a + predef UpdateHPBar2 + ld hl, HitWithRecoilText + jp PrintText +HitWithRecoilText: + text_far _HitWithRecoilText + text_end diff --git a/engine/battle/move_effects/reflect_light_screen.asm b/engine/battle/move_effects/reflect_light_screen.asm new file mode 100644 index 000000000..c05055fa8 --- /dev/null +++ b/engine/battle/move_effects/reflect_light_screen.asm @@ -0,0 +1,45 @@ +ReflectLightScreenEffect_: + ld hl, wPlayerBattleStatus3 + ld de, wPlayerMoveEffect + ldh a, [hWhoseTurn] + and a + jr z, .reflectLightScreenEffect + ld hl, wEnemyBattleStatus3 + ld de, wEnemyMoveEffect +.reflectLightScreenEffect + ld a, [de] + cp LIGHT_SCREEN_EFFECT + jr nz, .reflect + bit HAS_LIGHT_SCREEN_UP, [hl] ; is mon already protected by light screen? + jr nz, .moveFailed + set HAS_LIGHT_SCREEN_UP, [hl] ; mon is now protected by light screen + ld hl, LightScreenProtectedText + jr .playAnim +.reflect + bit HAS_REFLECT_UP, [hl] ; is mon already protected by reflect? + jr nz, .moveFailed + set HAS_REFLECT_UP, [hl] ; mon is now protected by reflect + ld hl, ReflectGainedArmorText +.playAnim + push hl + ld hl, PlayCurrentMoveAnimation + call Bankswitch3DtoF + pop hl + jp PrintText +.moveFailed + ld c, 50 + call DelayFrames + ld hl, PrintButItFailedText_ + jp Bankswitch3DtoF + +LightScreenProtectedText: + text_far _LightScreenProtectedText + text_end + +ReflectGainedArmorText: + text_far _ReflectGainedArmorText + text_end + +Bankswitch3DtoF: + ld b, BANK(BattleCore) + jp Bankswitch diff --git a/engine/battle/move_effects/substitute.asm b/engine/battle/move_effects/substitute.asm new file mode 100644 index 000000000..860b76b6b --- /dev/null +++ b/engine/battle/move_effects/substitute.asm @@ -0,0 +1,77 @@ +SubstituteEffect_: + ld c, 50 + call DelayFrames + ld hl, wBattleMonMaxHP + ld de, wPlayerSubstituteHP + ld bc, wPlayerBattleStatus2 + ldh a, [hWhoseTurn] + and a + jr z, .notEnemy + ld hl, wEnemyMonMaxHP + ld de, wEnemySubstituteHP + ld bc, wEnemyBattleStatus2 +.notEnemy + ld a, [bc] + bit HAS_SUBSTITUTE_UP, a ; user already has substitute? + jr nz, .alreadyHasSubstitute +; quarter health to remove from user +; assumes max HP is 1023 or lower + push bc + ld a, [hli] + ld b, [hl] + srl a + rr b + srl a + rr b ; max hp / 4 + push de + ld de, wBattleMonHP - wBattleMonMaxHP + add hl, de ; point hl to current HP low byte + pop de + ld a, b + ld [de], a ; save copy of HP to subtract in wPlayerSubstituteHP/wEnemySubstituteHP + ld a, [hld] +; subtract [max hp / 4] to current HP + sub b + ld d, a + ld a, [hl] + sbc 0 + pop bc + jr c, .notEnoughHP ; underflow means user would be left with negative health + ; bug: since it only branches on carry, it will possibly leave user with 0 HP +.userHasZeroOrMoreHP + ldi [hl], a ; save resulting HP after subtraction into current HP + ld [hl], d + ld h, b + ld l, c + set HAS_SUBSTITUTE_UP, [hl] + ld a, [wOptions] + bit 7, a ; battle animation is enabled? + ld hl, PlayCurrentMoveAnimation + ld b, BANK(PlayCurrentMoveAnimation) + jr z, .animationEnabled + ld hl, AnimationSubstitute + ld b, BANK(AnimationSubstitute) +.animationEnabled + call Bankswitch ; jump to routine depending on animation setting + ld hl, SubstituteText + call PrintText + jpfar DrawHUDsAndHPBars +.alreadyHasSubstitute + ld hl, HasSubstituteText + jr .printText +.notEnoughHP + ld hl, TooWeakSubstituteText +.printText + jp PrintText + +SubstituteText: + text_far _SubstituteText + text_end + +HasSubstituteText: + text_far _HasSubstituteText + text_end + +TooWeakSubstituteText: + text_far _TooWeakSubstituteText + text_end diff --git a/engine/battle/move_effects/transform.asm b/engine/battle/move_effects/transform.asm new file mode 100644 index 000000000..d37bd94d0 --- /dev/null +++ b/engine/battle/move_effects/transform.asm @@ -0,0 +1,141 @@ +TransformEffect_: + ld hl, wBattleMonSpecies + ld de, wEnemyMonSpecies + ld bc, wEnemyBattleStatus3 + ld a, [wEnemyBattleStatus1] + ldh a, [hWhoseTurn] + and a + jr nz, .hitTest + ld hl, wEnemyMonSpecies + ld de, wBattleMonSpecies + ld bc, wPlayerBattleStatus3 + ld [wPlayerMoveListIndex], a + ld a, [wPlayerBattleStatus1] +.hitTest + bit INVULNERABLE, a ; is mon invulnerable to typical attacks? (fly/dig) + jp nz, .failed + push hl + push de + push bc + ld hl, wPlayerBattleStatus2 + ldh a, [hWhoseTurn] + and a + jr z, .transformEffect + ld hl, wEnemyBattleStatus2 +.transformEffect +; animation(s) played are different if target has Substitute up + bit HAS_SUBSTITUTE_UP, [hl] + push af + ld hl, HideSubstituteShowMonAnim + ld b, BANK(HideSubstituteShowMonAnim) + call nz, Bankswitch + ld a, [wOptions] + add a + ld hl, PlayCurrentMoveAnimation + ld b, BANK(PlayCurrentMoveAnimation) + jr nc, .gotAnimToPlay + ld hl, AnimationTransformMon + ld b, BANK(AnimationTransformMon) +.gotAnimToPlay + call Bankswitch + ld hl, ReshowSubstituteAnim + ld b, BANK(ReshowSubstituteAnim) + pop af + call nz, Bankswitch + pop bc + ld a, [bc] + set TRANSFORMED, a ; mon is now transformed + ld [bc], a + pop de + pop hl + push hl +; transform user into opposing Pokemon +; species + ld a, [hl] + ld [de], a +; type 1, type 2, catch rate, and moves + ld bc, $5 + add hl, bc + inc de + inc de + inc de + inc de + inc de + inc bc + inc bc + call CopyData + ldh a, [hWhoseTurn] + and a + jr z, .next +; save enemy mon DVs at wTransformedEnemyMonOriginalDVs + ld a, [de] + ld [wTransformedEnemyMonOriginalDVs], a + inc de + ld a, [de] + ld [wTransformedEnemyMonOriginalDVs + 1], a + dec de +.next +; DVs + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de +; Attack, Defense, Speed, and Special stats + inc hl + inc hl + inc hl + inc de + inc de + inc de + ld bc, $8 + call CopyData + ld bc, wBattleMonMoves - wBattleMonPP + add hl, bc ; ld hl, wBattleMonMoves + ld b, NUM_MOVES +.copyPPLoop +; 5 PP for all moves + ld a, [hli] + and a + jr z, .lessThanFourMoves + ld a, $5 +.lessThanFourMoves + ld [de], a + inc de + dec b + jr nz, .copyPPLoop +.copyStats +; original (unmodified) stats and stat mods + pop hl + ld a, [hl] + ld [wd11e], a + call GetMonName + ld hl, wEnemyMonUnmodifiedAttack + ld de, wPlayerMonUnmodifiedAttack + call .copyBasedOnTurn ; original (unmodified) stats + ld hl, wEnemyMonStatMods + ld de, wPlayerMonStatMods + call .copyBasedOnTurn ; stat mods + ld hl, TransformedText + jp PrintText + +.copyBasedOnTurn + ldh a, [hWhoseTurn] + and a + jr z, .gotStatsOrModsToCopy + push hl + ld h, d + ld l, e + pop de +.gotStatsOrModsToCopy + ld bc, $8 + jp CopyData + +.failed + ld hl, PrintButItFailedText_ + jp Bankswitch3DtoF + +TransformedText: + text_far _TransformedText + text_end diff --git a/engine/battle/print_type.asm b/engine/battle/print_type.asm index f717f8712..7da0dc8c6 100644 --- a/engine/battle/print_type.asm +++ b/engine/battle/print_type.asm @@ -49,4 +49,4 @@ PrintType_: pop hl jp PlaceString -INCLUDE "text/type_names.asm" +INCLUDE "data/types/names.asm" diff --git a/engine/battle/read_trainer_party.asm b/engine/battle/read_trainer_party.asm index b4ee46a0f..02fbfeda5 100755 --- a/engine/battle/read_trainer_party.asm +++ b/engine/battle/read_trainer_party.asm @@ -110,7 +110,7 @@ ReadTrainer: dec a ld c, a ld b, 0 - add hl,bc + add hl, bc ld a, [de] inc de ld [hl], a diff --git a/engine/battle/safari_zone.asm b/engine/battle/safari_zone.asm index 88064f9af..9362cc3ab 100755 --- a/engine/battle/safari_zone.asm +++ b/engine/battle/safari_zone.asm @@ -28,9 +28,9 @@ PrintSafariZoneBattleText: jp PrintText SafariZoneEatingText: - TX_FAR _SafariZoneEatingText - db "@" + text_far _SafariZoneEatingText + text_end SafariZoneAngryText: - TX_FAR _SafariZoneAngryText - db "@" + text_far _SafariZoneAngryText + text_end diff --git a/engine/battle/save_trainer_name.asm b/engine/battle/save_trainer_name.asm index 49d0429f4..4d40fd827 100644 --- a/engine/battle/save_trainer_name.asm +++ b/engine/battle/save_trainer_name.asm @@ -1,4 +1,4 @@ -SaveTrainerName: +SaveTrainerName:: ld hl, TrainerNamePointers ld a, [wTrainerClass] dec a @@ -18,95 +18,4 @@ SaveTrainerName: jr nz, .CopyCharacter ret -TrainerNamePointers: -; what is the point of these? - dw YoungsterName - dw BugCatcherName - dw LassName - dw wTrainerName - dw JrTrainerMName - dw JrTrainerFName - dw PokemaniacName - dw SuperNerdName - dw wTrainerName - dw wTrainerName - dw BurglarName - dw EngineerName - dw JugglerXName - dw wTrainerName - dw SwimmerName - dw wTrainerName - dw wTrainerName - dw BeautyName - dw wTrainerName - dw RockerName - dw JugglerName - dw wTrainerName - dw wTrainerName - dw BlackbeltName - dw wTrainerName - dw ProfOakName - dw ChiefName - dw ScientistName - dw wTrainerName - dw RocketName - dw CooltrainerMName - dw CooltrainerFName - dw wTrainerName - dw wTrainerName - dw wTrainerName - dw wTrainerName - dw wTrainerName - dw wTrainerName - dw wTrainerName - dw wTrainerName - dw wTrainerName - dw wTrainerName - dw wTrainerName - dw wTrainerName - dw wTrainerName - dw wTrainerName - dw wTrainerName - -YoungsterName: - db "YOUNGSTER@" -BugCatcherName: - db "BUG CATCHER@" -LassName: - db "LASS@" -JrTrainerMName: - db "JR.TRAINER♂@" -JrTrainerFName: - db "JR.TRAINER♀@" -PokemaniacName: - db "POKéMANIAC@" -SuperNerdName: - db "SUPER NERD@" -BurglarName: - db "BURGLAR@" -EngineerName: - db "ENGINEER@" -JugglerXName: - db "JUGGLER@" -SwimmerName: - db "SWIMMER@" -BeautyName: - db "BEAUTY@" -RockerName: - db "ROCKER@" -JugglerName: - db "JUGGLER@" -BlackbeltName: - db "BLACKBELT@" -ProfOakName: - db "PROF.OAK@" -ChiefName: - db "CHIEF@" -ScientistName: - db "SCIENTIST@" -RocketName: - db "ROCKET@" -CooltrainerMName: - db "COOLTRAINER♂@" -CooltrainerFName: - db "COOLTRAINER♀@" +INCLUDE "data/trainers/name_pointers.asm" diff --git a/engine/battle/scale_sprites.asm b/engine/battle/scale_sprites.asm index c614d638f..794a65aba 100644 --- a/engine/battle/scale_sprites.asm +++ b/engine/battle/scale_sprites.asm @@ -24,7 +24,7 @@ ScaleFirstThreeSpriteColumnsByTwo: .columnInnerLoop push bc ld a, [de] - ld bc, -(7*8)+1 ; $ffc9, scale lower nybble and seek to previous output column + ld bc, -(7*8)+1 ; -$37, scale lower nybble and seek to previous output column call ScalePixelsByTwo ld a, [de] dec de @@ -39,7 +39,7 @@ ScaleFirstThreeSpriteColumnsByTwo: dec de dec de ld a, b - ld bc, -7*8 ; $ffc8, skip one output column (which has already been written along with the current one) + ld bc, -7*8 ; -$38, skip one output column (which has already been written along with the current one) add hl, bc ld b, a dec b @@ -48,16 +48,16 @@ ScaleFirstThreeSpriteColumnsByTwo: ScaleLastSpriteColumnByTwo: ld a, 4*8 - 4 ; $1c, 4 tiles minus 4 unused rows - ld [H_SPRITEINTERLACECOUNTER], a + ldh [hSpriteInterlaceCounter], a ld bc, -1 .columnInnerLoop ld a, [de] dec de swap a ; only high nybble contains information call ScalePixelsByTwo - ld a, [H_SPRITEINTERLACECOUNTER] + ldh a, [hSpriteInterlaceCounter] dec a - ld [H_SPRITEINTERLACECOUNTER], a + ldh [hSpriteInterlaceCounter], a jr nz, .columnInnerLoop dec de ; skip last 4 rows of new column dec de @@ -86,7 +86,19 @@ ScalePixelsByTwo: ; repeats each input bit twice DuplicateBitsTable: - db $00, $03, $0c, $0f - db $30, $33, $3c, $3f - db $c0, $c3, $cc, $cf - db $f0, $f3, $fc, $ff + db %00000000 + db %00000011 + db %00001100 + db %00001111 + db %00110000 + db %00110011 + db %00111100 + db %00111111 + db %11000000 + db %11000011 + db %11001100 + db %11001111 + db %11110000 + db %11110011 + db %11111100 + db %11111111 diff --git a/engine/battle/scroll_draw_trainer_pic.asm b/engine/battle/scroll_draw_trainer_pic.asm index 98893dcff..e19d681a8 100644 --- a/engine/battle/scroll_draw_trainer_pic.asm +++ b/engine/battle/scroll_draw_trainer_pic.asm @@ -5,8 +5,8 @@ _ScrollTrainerPicAfterBattle: ld [wEnemyMonSpecies2], a ld b, SET_PAL_BATTLE call RunPaletteCommand - callab _LoadTrainerPic - coord hl, 19, 0 + callfar _LoadTrainerPic + hlcoord 19, 0 ld c, $0 .scrollLoop inc c diff --git a/engine/battle/trainer_ai.asm b/engine/battle/trainer_ai.asm index c8fdfb29f..17e68e75a 100644 --- a/engine/battle/trainer_ai.asm +++ b/engine/battle/trainer_ai.asm @@ -134,7 +134,7 @@ AIMoveChoiceModification1: push de push bc ld hl, StatusAilmentMoveEffects - ld de, $0001 + ld de, 1 call IsInArray pop bc pop de @@ -146,11 +146,11 @@ AIMoveChoiceModification1: jr .nextMove StatusAilmentMoveEffects: - db $01 ; unused sleep effect + db EFFECT_01 ; unused sleep effect db SLEEP_EFFECT db POISON_EFFECT db PARALYZE_EFFECT - db $FF + db -1 ; end ; slightly encourage moves with specific effects. ; in particular, stat-modifying moves and other move effects @@ -204,7 +204,7 @@ AIMoveChoiceModification3: push hl push bc push de - callab AIGetTypeEffectiveness + callfar AIGetTypeEffectiveness pop de pop bc pop hl @@ -273,68 +273,19 @@ ReadMove: pop hl ret -; move choice modification methods that are applied for each trainer class -; 0 is sentinel value -TrainerClassMoveChoiceModifications: - db 0 ; YOUNGSTER - db 1,0 ; BUG CATCHER - db 1,0 ; LASS - db 1,3,0 ; SAILOR - db 1,0 ; JR_TRAINER_M - db 1,0 ; JR_TRAINER_F - db 1,2,3,0; POKEMANIAC - db 1,2,0 ; SUPER_NERD - db 1,0 ; HIKER - db 1,0 ; BIKER - db 1,3,0 ; BURGLAR - db 1,0 ; ENGINEER - db 1,2,0 ; JUGGLER_X - db 1,3,0 ; FISHER - db 1,3,0 ; SWIMMER - db 0 ; CUE_BALL - db 1,0 ; GAMBLER - db 1,3,0 ; BEAUTY - db 1,2,0 ; PSYCHIC_TR - db 1,0 ; ROCKER - db 1,0 ; JUGGLER - db 1,0 ; TAMER - db 1,0 ; BIRD_KEEPER - db 1,0 ; BLACKBELT - db 1,0 ; SONY1 - db 1,3,0 ; PROF_OAK - db 1,2,0 ; CHIEF - db 1,2,0 ; SCIENTIST - db 1,3,0 ; GIOVANNI - db 1,0 ; ROCKET - db 1,3,0 ; COOLTRAINER_M - db 1,3,0 ; COOLTRAINER_F - db 1,0 ; BRUNO - db 1,0 ; BROCK - db 1,3,0 ; MISTY - db 1,0 ; LT_SURGE - db 1,3,0 ; ERIKA - db 1,3,0 ; KOGA - db 1,0 ; BLAINE - db 1,0 ; SABRINA - db 1,2,0 ; GENTLEMAN - db 1,3,0 ; SONY2 - db 1,3,0 ; SONY3 - db 1,2,3,0; LORELEI - db 1,0 ; CHANNELER - db 1,0 ; AGATHA - db 1,3,0 ; LANCE - -INCLUDE "engine/battle/trainer_pic_money_pointers.asm" - -INCLUDE "text/trainer_names.asm" - -INCLUDE "engine/battle/bank_e_misc.asm" +INCLUDE "data/trainers/move_choices.asm" + +INCLUDE "data/trainers/pic_pointers_money.asm" + +INCLUDE "data/trainers/names.asm" + +INCLUDE "engine/battle/misc.asm" INCLUDE "engine/battle/read_trainer_party.asm" -INCLUDE "data/trainer_moves.asm" +INCLUDE "data/trainers/special_moves.asm" -INCLUDE "data/trainer_parties.asm" +INCLUDE "data/trainers/parties.asm" TrainerAI: ld a, [wIsInBattle] @@ -350,7 +301,7 @@ TrainerAI: and 1 << USING_RAGE ; %1000000 jr nz, .done ; don't follow trainer ai if opponent is locked in rage ; note that this doesn't check for hyper beam recharge which can cause problems - ld a,[wTrainerClass] ; what trainer class is this? + ld a, [wTrainerClass] ; what trainer class is this? dec a ld c, a ld b, 0 @@ -377,57 +328,7 @@ TrainerAI: and a ret -TrainerAIPointers: -; one entry per trainer class -; first byte, number of times (per Pokémon) it can occur -; next two bytes, pointer to AI subroutine for trainer class - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,JugglerAI ; juggler_x - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,GenericAI - dbw 3,JugglerAI ; juggler - dbw 3,GenericAI - dbw 3,GenericAI - dbw 2,BlackbeltAI ; blackbelt - dbw 3,GenericAI - dbw 3,GenericAI - dbw 1,GenericAI ; chief - dbw 3,GenericAI - dbw 1,GiovanniAI ; giovanni - dbw 3,GenericAI - dbw 2,CooltrainerMAI ; cooltrainerm - dbw 1,CooltrainerFAI ; cooltrainerf - dbw 2,BrunoAI ; bruno - dbw 5,BrockAI ; brock - dbw 1,MistyAI ; misty - dbw 1,LtSurgeAI ; surge - dbw 1,ErikaAI ; erika - dbw 2,KogaAI ; koga - dbw 2,BlaineAI ; blaine - dbw 1,SabrinaAI ; sabrina - dbw 3,GenericAI - dbw 1,Sony2AI ; sony2 - dbw 1,Sony3AI ; sony3 - dbw 2,LoreleiAI ; lorelei - dbw 3,GenericAI - dbw 2,AgathaAI ; agatha - dbw 1,LanceAI ; lance +INCLUDE "data/trainers/ai_pointers.asm" JugglerAI: cp 25 percent + 1 @@ -650,14 +551,14 @@ AIRecoverHP: AIPrintItemUseAndUpdateHPBar: call AIPrintItemUse_ - coord hl, 2, 2 + hlcoord 2, 2 xor a ld [wHPBarType], a predef UpdateHPBar2 jp DecrementAICount AISwitchIfEnoughMons: -; enemy trainer switches if there are 3 or more unfainted mons in party +; enemy trainer switches if there are 2 or more unfainted mons in party ld a, [wEnemyPartyCount] ld c, a ld hl, wEnemyMon1HP @@ -681,7 +582,7 @@ AISwitchIfEnoughMons: jr nz, .loop ld a, d ; how many available monsters are there? - cp 2 ; don't bother if only 1 or 2 + cp 2 ; don't bother if only 1 jp nc, SwitchEnemyMon and a ret @@ -707,7 +608,7 @@ SwitchEnemyMon: ; switching in a new mon in response to this switch. ld a, 1 ld [wFirstMonsNotOutYet], a - callab EnemySendOut + callfar EnemySendOut xor a ld [wFirstMonsNotOutYet], a @@ -718,8 +619,8 @@ SwitchEnemyMon: ret AIBattleWithdrawText: - TX_FAR _AIBattleWithdrawText - db "@" + text_far _AIBattleWithdrawText + text_end AIUseFullHeal: call AIPlayRestoringSFX @@ -763,17 +664,17 @@ AIUseDireHit: ; unused AICheckIfHPBelowFraction: ; return carry if enemy trainer's current HP is below 1 / a of the maximum - ld [H_DIVISOR], a + ldh [hDivisor], a ld hl, wEnemyMonMaxHP ld a, [hli] - ld [H_DIVIDEND], a + ldh [hDividend], a ld a, [hl] - ld [H_DIVIDEND + 1], a + ldh [hDividend + 1], a ld b, 2 call Divide - ld a, [H_QUOTIENT + 3] + ldh a, [hQuotient + 3] ld c, a - ld a, [H_QUOTIENT + 2] + ldh a, [hQuotient + 2] ld b, a ld hl, wEnemyMonHP + 1 ld a, [hld] @@ -821,7 +722,7 @@ AIIncreaseStat: ld a, ANIM_AF ld [hli], a ld [hl], b - callab StatModifierUpEffect + callfar StatModifierUpEffect pop hl pop af ld [hli], a @@ -843,5 +744,5 @@ AIPrintItemUse_: jp PrintText AIBattleUseItemText: - TX_FAR _AIBattleUseItemText - db "@" + text_far _AIBattleUseItemText + text_end diff --git a/engine/battle/trainer_pic_money_pointers.asm b/engine/battle/trainer_pic_money_pointers.asm deleted file mode 100755 index 37678e74f..000000000 --- a/engine/battle/trainer_pic_money_pointers.asm +++ /dev/null @@ -1,143 +0,0 @@ -TrainerPicAndMoneyPointers: -; trainer pic pointers and base money. -; money received after battle = base money × level of highest-level enemy mon - dw YoungsterPic - money 1500 - - dw BugCatcherPic - money 1000 - - dw LassPic - money 1500 - - dw SailorPic - money 3000 - - dw JrTrainerMPic - money 2000 - - dw JrTrainerFPic - money 2000 - - dw PokemaniacPic - money 5000 - - dw SuperNerdPic - money 2500 - - dw HikerPic - money 3500 - - dw BikerPic - money 2000 - - dw BurglarPic - money 9000 - - dw EngineerPic - money 5000 - - dw JugglerPic - money 3500 - - dw FisherPic - money 3500 - - dw SwimmerPic - money 500 - - dw CueBallPic - money 2500 - - dw GamblerPic - money 7000 - - dw BeautyPic - money 7000 - - dw PsychicPic - money 1000 - - dw RockerPic - money 2500 - - dw JugglerPic - money 3500 - - dw TamerPic - money 4000 - - dw BirdKeeperPic - money 2500 - - dw BlackbeltPic - money 2500 - - dw Rival1Pic - money 3500 - - dw ProfOakPic - money 9900 - - dw ChiefPic - money 3000 - - dw ScientistPic - money 5000 - - dw GiovanniPic - money 9900 - - dw RocketPic - money 3000 - - dw CooltrainerMPic - money 3500 - - dw CooltrainerFPic - money 3500 - - dw BrunoPic - money 9900 - - dw BrockPic - money 9900 - - dw MistyPic - money 9900 - - dw LtSurgePic - money 9900 - - dw ErikaPic - money 9900 - - dw KogaPic - money 9900 - - dw BlainePic - money 9900 - - dw SabrinaPic - money 9900 - - dw GentlemanPic - money 7000 - - dw Rival2Pic - money 6500 - - dw Rival3Pic - money 9900 - - dw LoreleiPic - money 9900 - - dw ChannelerPic - money 3000 - - dw AgathaPic - money 9900 - - dw LancePic - money 9900 diff --git a/engine/battle/unused_stats_functions.asm b/engine/battle/unused_stats_functions.asm index 55f78fd33..5174adf53 100644 --- a/engine/battle/unused_stats_functions.asm +++ b/engine/battle/unused_stats_functions.asm @@ -1,6 +1,6 @@ ; does nothing since no stats are ever selected (barring glitches) DoubleSelectedStats: - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a ld a, [wPlayerStatsToDouble] ld hl, wBattleMonAttack + 1 @@ -30,7 +30,7 @@ DoubleSelectedStats: ; does nothing since no stats are ever selected (barring glitches) HalveSelectedStats: - ld a, [H_WHOSETURN] + ldh a, [hWhoseTurn] and a ld a, [wPlayerStatsToHalve] ld hl, wBattleMonAttack diff --git a/engine/battle/wild_encounters.asm b/engine/battle/wild_encounters.asm index 0285346e0..d16c65150 100644 --- a/engine/battle/wild_encounters.asm +++ b/engine/battle/wild_encounters.asm @@ -7,14 +7,14 @@ TryDoWildEncounter: ld a, [wd736] and a ret nz - callab IsPlayerStandingOnDoorTileOrWarpTile + callfar IsPlayerStandingOnDoorTileOrWarpTile jr nc, .notStandingOnDoorOrWarpTile .CantEncounter ld a, $1 and a ret .notStandingOnDoorOrWarpTile - callab IsPlayerJustOutsideMap + callfar IsPlayerJustOutsideMap jr z, .CantEncounter ld a, [wRepelRemainingSteps] and a @@ -26,7 +26,7 @@ TryDoWildEncounter: ; determine if wild pokemon can appear in the half-block we're standing in ; is the bottom left tile (8,9) of the half-block we're standing in a grass/water tile? ; note that by using the bottom left tile, this prevents the "left-shore" tiles from generating grass encounters - coord hl, 8, 9 + hlcoord 8, 9 ld c, [hl] ld a, [wGrassTile] cp c @@ -40,7 +40,7 @@ TryDoWildEncounter: ; so long as the map is "indoor" and has wild pokemon defined. ; ...as long as it's not Viridian Forest or Safari Zone. ld a, [wCurMap] - cp REDS_HOUSE_1F ; is this an indoor map? + cp FIRST_INDOOR_MAP ; is this an indoor map? jr c, .CantEncounter2 ld a, [wCurMapTileset] cp FOREST ; Viridian Forest/Safari Zone @@ -49,10 +49,10 @@ TryDoWildEncounter: .CanEncounter ; compare encounter chance with a random number to determine if there will be an encounter ld b, a - ld a, [hRandomAdd] + ldh a, [hRandomAdd] cp b jr nc, .CantEncounter2 - ld a, [hRandomSub] + ldh a, [hRandomSub] ld b, a ld hl, WildMonEncounterSlotChances .determineEncounterSlot @@ -65,7 +65,7 @@ TryDoWildEncounter: ; determine which wild pokemon (grass or water) can appear in the half-block we're standing in ld c, [hl] ld hl, wGrassMons - aCoord 8, 9 + lda_coord 8, 9 cp $14 ; is the bottom left tile (8,9) of the half-block we're standing in a water tile? jr nz, .gotWildEncounterType ; else, it's treated as a grass tile by default ld hl, wWaterMons @@ -89,7 +89,7 @@ TryDoWildEncounter: .lastRepelStep ld [wRepelRemainingSteps], a ld a, TEXT_REPEL_WORE_OFF - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call EnableAutoTextBoxDrawing call DisplayTextID .CantEncounter2 @@ -100,18 +100,4 @@ TryDoWildEncounter: xor a ret -WildMonEncounterSlotChances: -; There are 10 slots for wild pokemon, and this is the table that defines how common each of -; those 10 slots is. A random number is generated and then the first byte of each pair in this -; table is compared against that random number. If the random number is less than or equal -; to the first byte, then that slot is chosen. The second byte is double the slot number. - db $32, $00 ; 51/256 = 19.9% chance of slot 0 - db $65, $02 ; 51/256 = 19.9% chance of slot 1 - db $8C, $04 ; 39/256 = 15.2% chance of slot 2 - db $A5, $06 ; 25/256 = 9.8% chance of slot 3 - db $BE, $08 ; 25/256 = 9.8% chance of slot 4 - db $D7, $0A ; 25/256 = 9.8% chance of slot 5 - db $E4, $0C ; 13/256 = 5.1% chance of slot 6 - db $F1, $0E ; 13/256 = 5.1% chance of slot 7 - db $FC, $10 ; 11/256 = 4.3% chance of slot 8 - db $FF, $12 ; 3/256 = 1.2% chance of slot 9 +INCLUDE "data/wild/probabilities.asm" diff --git a/engine/bcd.asm b/engine/bcd.asm deleted file mode 100644 index d84e504b5..000000000 --- a/engine/bcd.asm +++ /dev/null @@ -1,218 +0,0 @@ -; divide hMoney by hDivideBCDDivisor -; return output in hDivideBCDQuotient (same as hDivideBCDDivisor) -; used only to halve player money upon losing a fight -DivideBCDPredef:: -DivideBCDPredef2:: -DivideBCDPredef3:: ; only used function -DivideBCDPredef4:: - call GetPredefRegisters - -DivideBCD:: - xor a - ld [hDivideBCDBuffer], a - ld [hDivideBCDBuffer + 1], a - ld [hDivideBCDBuffer + 2], a - ld d, $1 -.mulBy10Loop -; multiply the divisor by 10 until the leading digit is nonzero -; to set up the standard long division algorithm - ld a, [hDivideBCDDivisor] - and $f0 - jr nz, .next - inc d - ld a, [hDivideBCDDivisor] - swap a - and $f0 - ld b, a - ld a, [hDivideBCDDivisor + 1] - swap a - ld [hDivideBCDDivisor + 1], a - and $f - or b - ld [hDivideBCDDivisor], a - ld a, [hDivideBCDDivisor + 1] - and $f0 - ld b, a - ld a, [hDivideBCDDivisor + 2] - swap a - ld [hDivideBCDDivisor + 2], a - and $f - or b - ld [hDivideBCDDivisor + 1], a - ld a, [hDivideBCDDivisor + 2] - and $f0 - ld [hDivideBCDDivisor + 2], a - jr .mulBy10Loop - -.next - push de - push de - call DivideBCD_getNextDigit - pop de - ld a, b - swap a - and $f0 - ld [hDivideBCDBuffer], a - dec d - jr z, .next2 - push de - call DivideBCD_divDivisorBy10 - call DivideBCD_getNextDigit - pop de - ld a, [hDivideBCDBuffer] - or b - ld [hDivideBCDBuffer], a - dec d - jr z, .next2 - push de - call DivideBCD_divDivisorBy10 - call DivideBCD_getNextDigit - pop de - ld a, b - swap a - and $f0 - ld [hDivideBCDBuffer + 1], a - dec d - jr z, .next2 - push de - call DivideBCD_divDivisorBy10 - call DivideBCD_getNextDigit - pop de - ld a, [hDivideBCDBuffer + 1] - or b - ld [hDivideBCDBuffer + 1], a - dec d - jr z, .next2 - push de - call DivideBCD_divDivisorBy10 - call DivideBCD_getNextDigit - pop de - ld a, b - swap a - and $f0 - ld [hDivideBCDBuffer + 2], a - dec d - jr z, .next2 - push de - call DivideBCD_divDivisorBy10 - call DivideBCD_getNextDigit - pop de - ld a, [hDivideBCDBuffer + 2] - or b - ld [hDivideBCDBuffer + 2], a -.next2 - ld a, [hDivideBCDBuffer] - ld [hDivideBCDQuotient], a ; the same memory location as hDivideBCDDivisor - ld a, [hDivideBCDBuffer + 1] - ld [hDivideBCDQuotient + 1], a - ld a, [hDivideBCDBuffer + 2] - ld [hDivideBCDQuotient + 2], a - pop de - ld a, $6 - sub d - and a - ret z -.divResultBy10loop - push af - call DivideBCD_divDivisorBy10 - pop af - dec a - jr nz, .divResultBy10loop - ret - -DivideBCD_divDivisorBy10: - ld a, [hDivideBCDDivisor + 2] - swap a - and $f - ld b, a - ld a, [hDivideBCDDivisor + 1] - swap a - ld [hDivideBCDDivisor + 1], a - and $f0 - or b - ld [hDivideBCDDivisor + 2], a - ld a, [hDivideBCDDivisor + 1] - and $f - ld b, a - ld a, [hDivideBCDDivisor] - swap a - ld [hDivideBCDDivisor], a - and $f0 - or b - ld [hDivideBCDDivisor + 1], a - ld a, [hDivideBCDDivisor] - and $f - ld [hDivideBCDDivisor], a - ret - -DivideBCD_getNextDigit: - ld bc, $3 -.loop - ld de, hMoney ; the dividend - ld hl, hDivideBCDDivisor - push bc - call StringCmp - pop bc - ret c - inc b - ld de, hMoney + 2 ; since SubBCD works starting from the least significant digit - ld hl, hDivideBCDDivisor + 2 - push bc - call SubBCD - pop bc - jr .loop - - -AddBCDPredef:: - call GetPredefRegisters - -AddBCD:: - and a - ld b, c -.add - ld a, [de] - adc [hl] - daa - ld [de], a - dec de - dec hl - dec c - jr nz, .add - jr nc, .done - ld a, $99 - inc de -.fill - ld [de], a - inc de - dec b - jr nz, .fill -.done - ret - - -SubBCDPredef:: - call GetPredefRegisters - -SubBCD:: - and a - ld b, c -.sub - ld a, [de] - sbc [hl] - daa - ld [de], a - dec de - dec hl - dec c - jr nz, .sub - jr nc, .done - ld a, $00 - inc de -.fill - ld [de], a - inc de - dec b - jr nz, .fill - scf -.done - ret diff --git a/engine/bg_map_attributes.asm b/engine/bg_map_attributes.asm index 90df9e276..4c50bcf8d 100644 --- a/engine/bg_map_attributes.asm +++ b/engine/bg_map_attributes.asm @@ -19,37 +19,37 @@ LoadBGMapAttributes:: di ld a, $1 - ld [rVBK], a + ldh [rVBK], a push hl ld a, [hl] ld c, a ; save attribute count for later ld de, $10 add hl, de ld a, h - ld [rHDMA1], a + ldh [rHDMA1], a ld a, l - ld [rHDMA2], a + ldh [rHDMA2], a ld de, vBGMap0 ld a, d - ld [rHDMA3], a + ldh [rHDMA3], a ld a, e - ld [rHDMA4], a + ldh [rHDMA4], a - ld a, [rLCDC] + ldh a, [rLCDC] and rLCDC_ENABLE_MASK ; is LCD off? jr z, .lcdOff ; if off, transfer immediately ; wait for VBlank if LCD is on .waitForVBlankLoop1 - ld a, [rLY] + ldh a, [rLY] cp $90 jr nz, .waitForVBlankLoop1 .waitForAccessibleVRAMLoop1 - ld a, [rSTAT] + ldh a, [rSTAT] and %10 ; are we in HBlank or VBlank? jr nz, .waitForAccessibleVRAMLoop1 ; loop until we're in a safe period to transfer to VRAM .lcdOff ld a, c ; number of BG attributes to transfer, plus 1 times 16 - ld [rHDMA5], a ; initiate transfer + ldh [rHDMA5], a ; initiate transfer call Func_3082 ; update audio so it doesn't "lag" pop hl ld a, [hli] @@ -60,30 +60,30 @@ LoadBGMapAttributes:: ld d, a ; offset of the attributes add hl, de ; hl = new pointer ld a, h - ld [rHDMA1], a + ldh [rHDMA1], a ld a, l - ld [rHDMA2], a + ldh [rHDMA2], a ld de, vBGMap1 ; copy to vBGMap1 ld a, d - ld [rHDMA3], a + ldh [rHDMA3], a ld a, e - ld [rHDMA4], a + ldh [rHDMA4], a ; LCD check again - ld a, [rLCDC] + ldh a, [rLCDC] and rLCDC_ENABLE_MASK ; is LCD off? jr z, .lcdOff2 ; if off, transfer immediately ; wait for VBlank if LCD is on .waitForVBlankLoop2 - ld a, [rLY] + ldh a, [rLY] cp $90 jr nz, .waitForVBlankLoop2 .waitForAccessibleVRAMLoop2 - ld a, [rSTAT] + ldh a, [rSTAT] and %10 ; are we in HBlank or VBlank? jr nz, .waitForAccessibleVRAMLoop2 ; loop until we're in a safe period to transfer to VRAM .lcdOff2 ld a, c - ld [rHDMA5], a + ldh [rHDMA5], a pop af dec a dec a @@ -97,11 +97,11 @@ LoadBGMapAttributes:: call z, HandlePartyHPBarAttributes .done call Func_3082 - ld a, [rIF] + ldh a, [rIF] res VBLANK, a - ld [rIF], a + ldh [rIF], a xor a - ld [rVBK], a + ldh [rVBK], a ei ret diff --git a/engine/black_out.asm b/engine/black_out.asm deleted file mode 100644 index 0daa084b7..000000000 --- a/engine/black_out.asm +++ /dev/null @@ -1,48 +0,0 @@ -ResetStatusAndHalveMoneyOnBlackout:: -; Reset player status on blackout. - xor a - ld [wd435], a - xor a ; gamefreak copypasting functions (double xor a) - ld [wBattleResult], a - ld [wWalkBikeSurfState], a - ld [wIsInBattle], a - ld [wMapPalOffset], a - ld [wNPCMovementScriptFunctionNum], a - ld [hJoyHeld], a - ld [wNPCMovementScriptPointerTableNum], a - ld [wFlags_0xcd60], a - - ld [hMoney], a - ld [hMoney + 1], a - ld [hMoney + 2], a - call HasEnoughMoney - jr c, .lostmoney ; never happens - - ; Halve the player's money. - ld a, [wPlayerMoney] - ld [hMoney], a - ld a, [wPlayerMoney + 1] - ld [hMoney + 1], a - ld a, [wPlayerMoney + 2] - ld [hMoney + 2], a - xor a - ld [hDivideBCDDivisor], a - ld [hDivideBCDDivisor + 1], a - ld a, 2 - ld [hDivideBCDDivisor + 2], a - predef DivideBCDPredef3 - ld a, [hDivideBCDQuotient] - ld [wPlayerMoney], a - ld a, [hDivideBCDQuotient + 1] - ld [wPlayerMoney + 1], a - ld a, [hDivideBCDQuotient + 2] - ld [wPlayerMoney + 2], a - -.lostmoney - ld hl, wd732 - set 2, [hl] - res 3, [hl] - set 6, [hl] - ld a, %11111111 - ld [wJoyIgnore], a - predef_jump HealParty diff --git a/engine/debug/debug_menu.asm b/engine/debug/debug_menu.asm new file mode 100644 index 000000000..a85c9c64a --- /dev/null +++ b/engine/debug/debug_menu.asm @@ -0,0 +1,46 @@ +DebugMenu: + ret + +TestBattle: +.loop + call GBPalNormal + + ; Don't mess around + ; with obedience. + ld a, 1 << BIT_EARTHBADGE + ld [wObtainedBadges], a + + ld hl, wFlags_D733 + set BIT_TEST_BATTLE, [hl] + + ; Reset the party. + ld hl, wPartyCount + xor a + ld [hli], a + dec a + ld [hl], a + + ; Give the player a + ; level 20 Rhydon. + ld a, RHYDON + ld [wcf91], a + ld a, 20 + ld [wCurEnemyLVL], a + xor a + ld [wMonDataLocation], a + ld [wCurMap], a + call AddPartyMon + + ; Fight against a + ; level 20 Rhydon. + ld a, RHYDON + ld [wCurOpponent], a + + predef InitOpponent + + ; When the battle ends, + ; do it all again. + ld a, 1 + ld [wUpdateSpritesEnabled], a + ldh [hAutoBGTransferEnabled], a + jr .loop diff --git a/engine/debug/debug_party.asm b/engine/debug/debug_party.asm new file mode 100644 index 000000000..8545b8483 --- /dev/null +++ b/engine/debug/debug_party.asm @@ -0,0 +1,24 @@ +; not IshiharaTeam +SetDebugTeam: + ld de, DebugTeam +.loop + ld a, [de] + cp -1 + ret z + ld [wcf91], a + inc de + ld a, [de] + ld [wCurEnemyLVL], a + inc de + call AddPartyMon + jr .loop + +DebugTeam: + db SNORLAX, 80 + db PERSIAN, 80 + db JIGGLYPUFF, 15 + db PIKACHU, 5 + db -1 ; end + +DebugStart: + ret diff --git a/engine/debug1.asm b/engine/debug1.asm deleted file mode 100644 index a39e8cac4..000000000 --- a/engine/debug1.asm +++ /dev/null @@ -1,24 +0,0 @@ -; not IshiharaTeam -SetDebugTeam: - ld de, DebugTeam -.loop - ld a, [de] - cp $ff - ret z - ld [wcf91], a - inc de - ld a, [de] - ld [wCurEnemyLVL], a - inc de - call AddPartyMon - jr .loop - -DebugTeam: - db SNORLAX,80 - db PERSIAN,80 - db JIGGLYPUFF,15 - db PIKACHU,5 - db $FF - -EmptyFunc: - ret diff --git a/engine/diploma_3a.asm b/engine/diploma_3a.asm index f4504ad77..83a7345be 100755 --- a/engine/diploma_3a.asm +++ b/engine/diploma_3a.asm @@ -1,3 +1,5 @@ +CIRCLE_TILE_ID EQU $10 + _DisplayDiploma: call GBPalWhiteOutWithDelay3 call ClearScreen @@ -6,51 +8,51 @@ _DisplayDiploma: lb bc, BANK(SurfingPikachu3Graphics), (SurfingPikachu3GraphicsEnd - SurfingPikachu3Graphics) / $10 call CopyVideoData - coord hl, 0, 0 + hlcoord 0, 0 call Func_e9bdf - coord hl, 0, 0 + hlcoord 0, 0 call Func_e9beb - coord hl, 19, 0 + hlcoord 19, 0 call Func_e9beb ld a, $00 - coord hl, 0, 0 + hlcoord 0, 0 ld [hl], a - coord hl, 19, 0 + hlcoord 19, 0 ld [hl], a ld de, String_e9a73 - coord hl, 5, 2 + hlcoord 5, 2 call PlaceString ld de, String_e9a7d - coord hl, 3, 4 + hlcoord 3, 4 call PlaceString ld de, wPlayerName - coord hl, 10, 4 + hlcoord 10, 4 call PlaceString ld de, String_e9a84 - coord hl, 2, 6 + hlcoord 2, 6 call PlaceString ld de, String_e9ac8 - coord hl, 9, 16 + hlcoord 9, 16 call PlaceString ld b, SET_PAL_GENERIC call RunPaletteCommand ld a, $01 - ld [$ffba], a + ldh [hAutoBGTransferEnabled], a call Delay3 call GBPalNormal ret String_e9a73: - db $10, "Diploma", $10, "@" + db CIRCLE_TILE_ID, "Diploma", CIRCLE_TILE_ID, "@" String_e9a7d: db "Player@" @@ -67,29 +69,29 @@ String_e9ac8: Func_e9ad3: call ClearScreen - coord hl, 0, 17 + hlcoord 0, 17 call Func_e9bdf - coord hl, 0, 0 + hlcoord 0, 0 call Func_e9beb - coord hl, 19, 0 + hlcoord 19, 0 call Func_e9beb ld a, $00 - coord hl, 0, 17 + hlcoord 0, 17 ld [hl], a - coord hl, 19, 17 + hlcoord 19, 17 ld [hl], a ld de, Tilemap_e9b3e - coord hl, 6, 2 + hlcoord 6, 2 lb bc, 10, 12 call Diploma_Surfing_CopyBox ld de, Tilemap_e9bb6 - coord hl, 5, 13 + hlcoord 5, 13 lb bc, 1, 11 call Diploma_Surfing_CopyBox ld de, String_e9bd5 - coord hl, 2, 15 + hlcoord 2, 15 call PlaceString - coord hl, 12, 15 + hlcoord 12, 15 ld de, wPlayTimeHours lb bc, $40 | 1, 3 call PrintNumber @@ -102,7 +104,7 @@ Func_e9ad3: cp 151 ret nz ld de, TileMap_e9bc1 - coord hl, 2, 0 + hlcoord 2, 0 lb bc, 4, 5 call Diploma_Surfing_CopyBox ret diff --git a/engine/display_text_id_init.asm b/engine/display_text_id_init.asm deleted file mode 100644 index 0ef37370c..000000000 --- a/engine/display_text_id_init.asm +++ /dev/null @@ -1,75 +0,0 @@ -; function that performs initialization for DisplayTextID -DisplayTextIDInit: - xor a - ld [wListMenuID], a - ld a, [wAutoTextBoxDrawingControl] - bit 0, a - jr nz, .skipDrawingTextBoxBorder - ld a, [hSpriteIndexOrTextID] ; text ID (or sprite ID) - and a - jr nz, .notStartMenu -; if text ID is 0 (i.e. the start menu) -; Note that the start menu text border is also drawn in the function directly -; below this, so this seems unnecessary. - CheckEvent EVENT_GOT_POKEDEX -; start menu with pokedex - coord hl, 10, 0 - lb bc, 14, 8 - jr nz, .drawTextBoxBorder -; start menu without pokedex - coord hl, 10, 0 - lb bc, 12, 8 - jr .drawTextBoxBorder -; if text ID is not 0 (i.e. not the start menu) then do a standard dialogue text box -.notStartMenu - coord hl, 0, 12 - lb bc, 4, 18 -.drawTextBoxBorder - call TextBoxBorder -.skipDrawingTextBoxBorder - ld hl, wFontLoaded - set 0, [hl] - ld hl, wFlags_0xcd60 - bit 4, [hl] - res 4, [hl] - jr nz, .skipMovingSprites - call UpdateSprites -.skipMovingSprites -; loop to copy C1X9 (direction the sprite is facing) to C2X9 for each sprite -; this is done because when you talk to an NPC, they turn to look your way -; the original direction they were facing must be restored after the dialogue is over - ld hl, wSpriteStateData1 + $19 - ld c, $0f - ld de, $0010 -.spriteFacingDirectionCopyLoop - ld a, [hl] - inc h - ld [hl], a - dec h - add hl, de - dec c - jr nz, .spriteFacingDirectionCopyLoop -; loop to force all the sprites in the middle of animation to stand still -; (so that they don't like they're frozen mid-step during the dialogue) - ld hl, wSpriteStateData1 + 2 - ld de, $0010 - ld c, e -.spriteStandStillLoop - ld a, [hl] - cp $ff ; is the sprite visible? - jr z, .nextSprite -; if it is visible - and $fc - ld [hl], a -.nextSprite - add hl, de - dec c - jr nz, .spriteStandStillLoop - ld b, $9c ; window background address - call CopyScreenTileBufferToVRAM ; transfer background in WRAM to VRAM - xor a - ld [hWY], a ; put the window on the screen - call LoadFontTilePatterns - ld a, $01 - ld [H_AUTOBGTRANSFERENABLED], a ; enable continuous WRAM to VRAM transfer each V-blank - ret diff --git a/engine/events/black_out.asm b/engine/events/black_out.asm new file mode 100644 index 000000000..6d3d91b89 --- /dev/null +++ b/engine/events/black_out.asm @@ -0,0 +1,48 @@ +ResetStatusAndHalveMoneyOnBlackout:: +; Reset player status on blackout. + xor a + ld [wd435], a + xor a ; gamefreak copypasting functions (double xor a) + ld [wBattleResult], a + ld [wWalkBikeSurfState], a + ld [wIsInBattle], a + ld [wMapPalOffset], a + ld [wNPCMovementScriptFunctionNum], a + ldh [hJoyHeld], a + ld [wNPCMovementScriptPointerTableNum], a + ld [wFlags_0xcd60], a + + ldh [hMoney], a + ldh [hMoney + 1], a + ldh [hMoney + 2], a + call HasEnoughMoney + jr c, .lostmoney ; never happens + + ; Halve the player's money. + ld a, [wPlayerMoney] + ldh [hMoney], a + ld a, [wPlayerMoney + 1] + ldh [hMoney + 1], a + ld a, [wPlayerMoney + 2] + ldh [hMoney + 2], a + xor a + ldh [hDivideBCDDivisor], a + ldh [hDivideBCDDivisor + 1], a + ld a, 2 + ldh [hDivideBCDDivisor + 2], a + predef DivideBCDPredef3 + ldh a, [hDivideBCDQuotient] + ld [wPlayerMoney], a + ldh a, [hDivideBCDQuotient + 1] + ld [wPlayerMoney + 1], a + ldh a, [hDivideBCDQuotient + 2] + ld [wPlayerMoney + 2], a + +.lostmoney + ld hl, wd732 + set 2, [hl] + res 3, [hl] + set 6, [hl] + ld a, %11111111 + ld [wJoyIgnore], a + predef_jump HealParty diff --git a/engine/events/card_key.asm b/engine/events/card_key.asm new file mode 100755 index 000000000..de5f402e5 --- /dev/null +++ b/engine/events/card_key.asm @@ -0,0 +1,102 @@ +PrintCardKeyText: + ld hl, SilphCoMapList + ld a, [wCurMap] + ld b, a +.silphCoMapListLoop + ld a, [hli] + cp -1 + ret z + cp b + jr nz, .silphCoMapListLoop +; does not check for tile in front of player. This might be buggy + ;predef GetTileAndCoordsInFrontOfPlayer + ld a, [wTileInFrontOfPlayer] + cp $18 + jr z, .cardKeyDoorInFrontOfPlayer + cp $24 + jr z, .cardKeyDoorInFrontOfPlayer + ld b, a + ld a, [wCurMap] + cp SILPH_CO_11F + ret nz + ld a, b + cp $5e + ret nz +.cardKeyDoorInFrontOfPlayer + ld b, CARD_KEY + call IsItemInBag + jr z, .noCardKey + xor a + ld [wPlayerMovingDirection], a + tx_pre_id CardKeySuccessText + ldh [hSpriteIndexOrTextID], a + call PrintPredefTextID + call GetCoordsInFrontOfPlayer + srl d + ld a, d + ld b, a + ld [wCardKeyDoorY], a + srl e + ld a, e + ld c, a + ld [wCardKeyDoorX], a + ld a, [wCurMap] + cp SILPH_CO_11F + jr nz, .notSilphCo11F + ld a, $3 + jr .replaceCardKeyDoorTileBlock +.notSilphCo11F + ld a, $e +.replaceCardKeyDoorTileBlock + ld [wNewTileBlockID], a + predef ReplaceTileBlock + ld hl, wCurrentMapScriptFlags + set 5, [hl] + ld a, SFX_GO_INSIDE + jp PlaySound +.noCardKey + tx_pre_id CardKeyFailText + ldh [hSpriteIndexOrTextID], a + jp PrintPredefTextID + +INCLUDE "data/events/card_key_maps.asm" + +CardKeySuccessText:: + text_far _CardKeySuccessText1 + sound_get_item_1 + text_far _CardKeySuccessText2 + text_end + +CardKeyFailText:: + text_far _CardKeyFailText + text_end + +; d = Y +; e = X +GetCoordsInFrontOfPlayer: + ld a, [wYCoord] + ld d, a + ld a, [wXCoord] + ld e, a + ld a, [wSpritePlayerStateData1FacingDirection] + and a + jr nz, .notFacingDown +; facing down + inc d + ret +.notFacingDown + cp SPRITE_FACING_UP + jr nz, .notFacingUp +; facing up + dec d + ret +.notFacingUp + cp SPRITE_FACING_LEFT + jr nz, .notFacingLeft +; facing left + dec e + ret +.notFacingLeft +; facing right + inc e + ret diff --git a/engine/overworld/cinnabar_lab.asm b/engine/events/cinnabar_lab.asm similarity index 84% rename from engine/overworld/cinnabar_lab.asm rename to engine/events/cinnabar_lab.asm index 133137461..bccc95d16 100755 --- a/engine/overworld/cinnabar_lab.asm +++ b/engine/events/cinnabar_lab.asm @@ -1,4 +1,4 @@ -GiveFossilToCinnabarLab: +GiveFossilToCinnabarLab:: ld hl, wd730 set 6, [hl] xor a @@ -20,7 +20,7 @@ GiveFossilToCinnabarLab: dec l ld b, l ld c, $d - coord hl, 0, 0 + hlcoord 0, 0 call TextBoxBorder call UpdateSprites call PrintFossilsInBag @@ -35,7 +35,7 @@ GiveFossilToCinnabarLab: ld e, a add hl, de ld a, [hl] - ld [$ffdb], a + ldh [hItemToRemoveID], a cp DOME_FOSSIL jr z, .choseDomeFossil cp HELIX_FOSSIL @@ -61,8 +61,8 @@ GiveFossilToCinnabarLab: ld hl, LabFossil_610b3 call PrintText ld a, [wFossilItem] - ld [hItemToRemoveID], a - callba RemoveItemByID + ldh [hItemToRemoveID], a + farcall RemoveItemByID ld hl, LabFossil_610b8 call PrintText SetEvents EVENT_GAVE_FOSSIL_TO_LAB, EVENT_LAB_STILL_REVIVING_FOSSIL @@ -73,26 +73,26 @@ GiveFossilToCinnabarLab: ret LabFossil_610ae: - TX_FAR _Lab4Text_610ae - db "@" + text_far _Lab4Text_610ae + text_end LabFossil_610b3: - TX_FAR _Lab4Text_610b3 - db "@" + text_far _Lab4Text_610b3 + text_end LabFossil_610b8: - TX_FAR _Lab4Text_610b8 - db "@" + text_far _Lab4Text_610b8 + text_end LabFossil_610bd: - TX_FAR _Lab4Text_610bd - db "@" + text_far _Lab4Text_610bd + text_end PrintFossilsInBag: ; Prints each fossil in the player's bag on a separate line in the menu. ld hl, wFilteredBagItems xor a - ld [hItemCounter], a + ldh [hItemCounter], a .loop ld a, [hli] cp $ff @@ -100,8 +100,8 @@ PrintFossilsInBag: push hl ld [wd11e], a call GetItemName - coord hl, 2, 2 - ld a, [hItemCounter] + hlcoord 2, 2 + ldh a, [hItemCounter] ld bc, SCREEN_WIDTH * 2 call AddNTimes ld de, wcd6d @@ -112,7 +112,7 @@ PrintFossilsInBag: jr .loop ; loads the names of the fossil item and the resulting mon -LoadFossilItemAndMonName: +LoadFossilItemAndMonName:: ld a, [wFossilMon] ld [wd11e], a call GetMonName diff --git a/engine/menu/diploma.asm b/engine/events/diploma.asm similarity index 89% rename from engine/menu/diploma.asm rename to engine/events/diploma.asm index 3f309bd20..a5a007fad 100644 --- a/engine/menu/diploma.asm +++ b/engine/events/diploma.asm @@ -1,4 +1,4 @@ -DisplayDiploma: +DisplayDiploma:: call SaveScreenTilesToBuffer2 call GBPalWhiteOutWithDelay3 call ClearScreen @@ -6,7 +6,7 @@ DisplayDiploma: ld [wUpdateSpritesEnabled], a ld hl, wd730 set 6, [hl] - callab _DisplayDiploma + callfar _DisplayDiploma call WaitForTextScrollButtonPress ld hl, wd730 res 6, [hl] diff --git a/engine/display_pokedex.asm b/engine/events/display_pokedex.asm similarity index 94% rename from engine/display_pokedex.asm rename to engine/events/display_pokedex.asm index 96a2dd6cc..d657ea858 100644 --- a/engine/display_pokedex.asm +++ b/engine/events/display_pokedex.asm @@ -1,4 +1,4 @@ -_DisplayPokedex: +_DisplayPokedex:: ld hl, wd730 set 6, [hl] predef ShowPokedexData diff --git a/engine/events/elevator.asm b/engine/events/elevator.asm new file mode 100755 index 000000000..004893a08 --- /dev/null +++ b/engine/events/elevator.asm @@ -0,0 +1,54 @@ +DisplayElevatorFloorMenu: + ld hl, wd730 + ld a, [hl] + push af + set 6, [hl] + ld hl, WhichFloorText + call PrintText + pop af + ld [wd730], a + ld hl, wItemList + ld a, l + ld [wListPointer], a + ld a, h + ld [wListPointer + 1], a + ld a, [wListScrollOffset] + push af + xor a + ld [wCurrentMenuItem], a + ld [wListScrollOffset], a + ld [wPrintItemPrices], a + ld a, SPECIALLISTMENU + ld [wListMenuID], a + call DisplayListMenuID + pop bc + ld a, b + ld [wListScrollOffset], a + ret c + ld hl, wCurrentMapScriptFlags + set 7, [hl] + ld hl, wElevatorWarpMaps + ld a, [wWhichPokemon] + add a + ld d, 0 + ld e, a + add hl, de + ld a, [hli] + ld b, a + ld a, [hl] + ld c, a + ld hl, wWarpEntries + call .UpdateWarp + +.UpdateWarp + inc hl + inc hl + ld a, b + ld [hli], a ; destination warp ID + ld a, c + ld [hli], a ; destination map ID + ret + +WhichFloorText: + text_far _WhichFloorText + text_end diff --git a/engine/give_pokemon.asm b/engine/events/give_pokemon.asm similarity index 83% rename from engine/give_pokemon.asm rename to engine/events/give_pokemon.asm index 6fdca2ef0..efc184f87 100755 --- a/engine/give_pokemon.asm +++ b/engine/events/give_pokemon.asm @@ -1,4 +1,4 @@ -_GivePokemon: +_GivePokemon:: ; returns success in carry ; and whether the mon was added to the party in [wAddedToParty] call EnableAutoTextBoxDrawing @@ -15,9 +15,9 @@ _GivePokemon: ld [wEnemyBattleStatus3], a ld a, [wcf91] ld [wEnemyMonSpecies2], a - callab LoadEnemyMonData + callfar LoadEnemyMonData call SetPokedexOwnedFlag - callab SendNewMonToBox + callfar SendNewMonToBox ld hl, wcf4b ld a, [wCurrentBoxNum] and $7f @@ -33,7 +33,7 @@ _GivePokemon: .next ld [hli], a ld [hl], "@" - ld hl, SetToBoxText + ld hl, SentToBoxText call PrintText scf ret @@ -71,17 +71,17 @@ SetPokedexOwnedFlag: jp PrintText UnknownTerminator_f6794: - db "@" + text_end GotMonText: - TX_FAR _GotMonText - TX_SFX_ITEM_1 - db "@" + text_far _GotMonText + sound_get_item_1 + text_end -SetToBoxText: - TX_FAR _SetToBoxText - db "@" +SentToBoxText: + text_far _SentToBoxText + text_end BoxIsFullText: - TX_FAR _BoxIsFullText - db "@" + text_far _BoxIsFullText + text_end diff --git a/engine/heal_party.asm b/engine/events/heal_party.asm similarity index 100% rename from engine/heal_party.asm rename to engine/events/heal_party.asm diff --git a/engine/overworld/hidden_items.asm b/engine/events/hidden_items.asm similarity index 79% rename from engine/overworld/hidden_items.asm rename to engine/events/hidden_items.asm index b64411c72..63b95bcfd 100755 --- a/engine/overworld/hidden_items.asm +++ b/engine/events/hidden_items.asm @@ -20,14 +20,14 @@ HiddenItems: .itemAlreadyFound ld a, $ff - ld [hItemAlreadyFound], a + ldh [hItemAlreadyFound], a ret -INCLUDE "data/hidden_item_coords.asm" +INCLUDE "data/events/hidden_item_coords.asm" -FoundHiddenItemText: - TX_FAR _FoundHiddenItemText - TX_ASM +FoundHiddenItemText:: + text_far _FoundHiddenItemText + text_asm ld a, [wHiddenObjectFunctionArgument] ; item ID ld b, a ld c, 1 @@ -50,9 +50,9 @@ FoundHiddenItemText: call PrintText jp TextScriptEnd -HiddenItemBagFullText: - TX_FAR _HiddenItemBagFullText - db "@" +HiddenItemBagFullText:: + text_far _HiddenItemBagFullText + text_end HiddenCoins: ld b, COIN_CASE @@ -72,9 +72,9 @@ HiddenCoins: and a jr nz, .doNotPickUpCoins xor a - ld [hUnusedCoinsByte], a - ld [hCoins], a - ld [hCoins + 1], a + ldh [hUnusedCoinsByte], a + ldh [hCoins], a + ldh [hCoins + 1], a ld a, [wHiddenObjectFunctionArgument] sub COIN cp 10 @@ -87,24 +87,24 @@ HiddenCoins: .doNotPickUpCoins ld a, $ff - ld [hItemAlreadyFound], a + ldh [hItemAlreadyFound], a ret .bcd10 ld a, $10 - ld [hCoins + 1], a + ldh [hCoins + 1], a jr .bcdDone .bcd20 ld a, $20 - ld [hCoins + 1], a + ldh [hCoins + 1], a jr .bcdDone .bcd40 ; due to a typo, this is never used ld a, $40 - ld [hCoins + 1], a + ldh [hCoins + 1], a jr .bcdDone .bcd100 ld a, $1 - ld [hCoins], a + ldh [hCoins], a .bcdDone ld de, wPlayerCoins + 1 ld hl, hCoins + 1 @@ -129,18 +129,18 @@ HiddenCoins: .done jp PrintPredefTextID -INCLUDE "data/hidden_coins.asm" +INCLUDE "data/events/hidden_coins.asm" -FoundHiddenCoinsText: - TX_FAR _FoundHiddenCoinsText - TX_SFX_ITEM_2 - db "@" +FoundHiddenCoinsText:: + text_far _FoundHiddenCoinsText + sound_get_item_2 + text_end -DroppedHiddenCoinsText: - TX_FAR _FoundHiddenCoins2Text - TX_SFX_ITEM_2 - TX_FAR _DroppedHiddenCoinsText - db "@" +DroppedHiddenCoinsText:: + text_far _FoundHiddenCoins2Text + sound_get_item_2 + text_far _DroppedHiddenCoinsText + text_end FindHiddenItemOrCoinsIndex: ld a, [wHiddenObjectY] @@ -153,7 +153,7 @@ FindHiddenItemOrCoinsIndex: .loop inc c ld a, [hli] - cp $ff ; end of the list? + cp -1 ; end of the list? ret z ; if so, we're done here cp b jr nz, .next1 diff --git a/engine/events/hidden_objects/bench_guys.asm b/engine/events/hidden_objects/bench_guys.asm new file mode 100644 index 000000000..b41434ad5 --- /dev/null +++ b/engine/events/hidden_objects/bench_guys.asm @@ -0,0 +1,98 @@ +PrintBenchGuyText: + call EnableAutoTextBoxDrawing + ld hl, BenchGuyTextPointers + ld a, [wCurMap] + ld b, a +.loop + ld a, [hli] + cp -1 + ret z + cp b + jr z, .match + inc hl + inc hl + jr .loop +.match + ld a, [hli] + ld b, a + ld a, [wSpritePlayerStateData1FacingDirection] + cp b + jr nz, .loop ; player isn't facing the bench guy + ld a, [hl] + jp PrintPredefTextID + +INCLUDE "data/events/bench_guys.asm" + +ViridianCityPokecenterBenchGuyText:: + text_far _ViridianCityPokecenterGuyText + text_end + +PewterCityPokecenterBenchGuyText:: + text_far _PewterCityPokecenterGuyText + text_end + +CeruleanCityPokecenterBenchGuyText:: + text_far _CeruleanPokecenterGuyText + text_end + +LavenderCityPokecenterBenchGuyText:: + text_far _LavenderPokecenterGuyText + text_end + +MtMoonPokecenterBenchGuyText:: + text_far _MtMoonPokecenterBenchGuyText + text_end + +RockTunnelPokecenterBenchGuyText:: + text_far _RockTunnelPokecenterGuyText + text_end + +UnusedBenchGuyText1:: + text_far _UnusedBenchGuyText1 + text_end + +UnusedBenchGuyText2:: + text_far _UnusedBenchGuyText2 + text_end + +UnusedBenchGuyText3:: + text_far _UnusedBenchGuyText3 + text_end + +VermilionCityPokecenterBenchGuyText:: + text_far _VermilionPokecenterGuyText + text_end + +CeladonCityPokecenterBenchGuyText:: + text_far _CeladonCityPokecenterGuyText + text_end + +FuchsiaCityPokecenterBenchGuyText:: + text_far _FuchsiaCityPokecenterGuyText + text_end + +CinnabarIslandPokecenterBenchGuyText:: + text_far _CinnabarPokecenterGuyText + text_end + +SaffronCityPokecenterBenchGuyText:: + text_asm + CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI + ld hl, SaffronCityPokecenterBenchGuyText2 + jr nz, .asm_624f2 + ld hl, SaffronCityPokecenterBenchGuyText1 +.asm_624f2 + call PrintText + jp TextScriptEnd + +SaffronCityPokecenterBenchGuyText1: + text_far _SaffronCityPokecenterGuyText1 + text_end + +SaffronCityPokecenterBenchGuyText2: + text_far _SaffronCityPokecenterGuyText2 + text_end + +CeladonCityHotelText:: + text_far _CeladonCityHotelText + text_end diff --git a/engine/events/hidden_objects/bills_house_pc.asm b/engine/events/hidden_objects/bills_house_pc.asm new file mode 100644 index 000000000..bdbaff7e8 --- /dev/null +++ b/engine/events/hidden_objects/bills_house_pc.asm @@ -0,0 +1,131 @@ +BillsHousePC: + call EnableAutoTextBoxDrawing + ld a, [wSpritePlayerStateData1FacingDirection] + cp SPRITE_FACING_UP + ret nz + CheckEvent EVENT_LEFT_BILLS_HOUSE_AFTER_HELPING + jr nz, .displayBillsHousePokemonList + CheckEventReuseA EVENT_USED_CELL_SEPARATOR_ON_BILL + jr nz, .displayBillsHouseMonitorText + CheckEventReuseA EVENT_BILL_SAID_USE_CELL_SEPARATOR + jr nz, .doCellSeparator +.displayBillsHouseMonitorText + tx_pre_jump BillsHouseMonitorText +.doCellSeparator + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + tx_pre BillsHouseInitiatedText + ld c, 32 + call DelayFrames + ld a, SFX_TINK + call PlaySound + call WaitForSoundToFinish + ld c, 80 + call DelayFrames + ld a, SFX_SHRINK + call PlaySound + call WaitForSoundToFinish + ld c, 48 + call DelayFrames + ld a, SFX_TINK + call PlaySound + call WaitForSoundToFinish + ld c, 32 + call DelayFrames + ld a, SFX_GET_ITEM_1 + call PlaySound + call WaitForSoundToFinish + call PlayDefaultMusic + SetEvent EVENT_USED_CELL_SEPARATOR_ON_BILL + ret +.displayBillsHousePokemonList + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + tx_pre BillsHousePokemonList + ret + +BillsHouseMonitorText:: + text_far _BillsHouseMonitorText + text_end + +BillsHouseInitiatedText:: + text_far _BillsHouseInitiatedText + text_promptbutton + text_asm + call StopAllMusic + ld c, 16 + call DelayFrames + ld a, SFX_SWITCH + call PlaySound + call WaitForSoundToFinish + ld c, 60 + call DelayFrames + jp TextScriptEnd + +BillsHousePokemonList:: + text_asm + call SaveScreenTilesToBuffer1 + ld hl, BillsHousePokemonListText1 + call PrintText + xor a + ld [wMenuItemOffset], a ; not used + ld [wCurrentMenuItem], a + ld [wLastMenuItem], a + ld a, A_BUTTON | B_BUTTON + ld [wMenuWatchedKeys], a + ld a, 4 + ld [wMaxMenuItem], a + ld a, 2 + ld [wTopMenuItemY], a + ld a, 1 + ld [wTopMenuItemX], a +.billsPokemonLoop + ld hl, wd730 + set 6, [hl] + hlcoord 0, 0 + lb bc, 10, 9 + call TextBoxBorder + hlcoord 2, 2 + ld de, BillsMonListText + call PlaceString + ld hl, BillsHousePokemonListText2 + call PrintText + call SaveScreenTilesToBuffer2 + call HandleMenuInput + bit 1, a ; pressed b + jr nz, .cancel + ld a, [wCurrentMenuItem] + add EEVEE + cp EEVEE + jr z, .displayPokedex + cp FLAREON + jr z, .displayPokedex + cp JOLTEON + jr z, .displayPokedex + cp VAPOREON + jr z, .displayPokedex + jr .cancel +.displayPokedex + call DisplayPokedex + call LoadScreenTilesFromBuffer2 + jr .billsPokemonLoop +.cancel + ld hl, wd730 + res 6, [hl] + call LoadScreenTilesFromBuffer2 + jp TextScriptEnd + +BillsHousePokemonListText1: + text_far _BillsHousePokemonListText1 + text_end + +BillsMonListText: + db "EEVEE" + next "FLAREON" + next "JOLTEON" + next "VAPOREON" + next "CANCEL@" + +BillsHousePokemonListText2: + text_far _BillsHousePokemonListText2 + text_end diff --git a/engine/events/hidden_objects/blues_room.asm b/engine/events/hidden_objects/blues_room.asm new file mode 100644 index 000000000..bcbad556f --- /dev/null +++ b/engine/events/hidden_objects/blues_room.asm @@ -0,0 +1,13 @@ + + ret ; unused + +UnusedPredefText:: + db "@" + +PrintBookcaseText: + call EnableAutoTextBoxDrawing + tx_pre_jump BookcaseText + +BookcaseText:: + text_far _BookcaseText + text_end diff --git a/engine/events/hidden_objects/book_or_sculpture.asm b/engine/events/hidden_objects/book_or_sculpture.asm new file mode 100644 index 000000000..e04f4047f --- /dev/null +++ b/engine/events/hidden_objects/book_or_sculpture.asm @@ -0,0 +1,21 @@ +BookOrSculptureText:: + text_asm + ld hl, PokemonBooksText + ld a, [wCurMapTileset] + cp MANSION ; Celadon Mansion tileset + jr nz, .ok + lda_coord 8, 6 + cp $38 + jr nz, .ok + ld hl, DiglettSculptureText +.ok + call PrintText + jp TextScriptEnd + +PokemonBooksText: + text_far _PokemonBooksText + text_end + +DiglettSculptureText: + text_far _DiglettSculptureText + text_end diff --git a/engine/events/hidden_objects/bookshelves.asm b/engine/events/hidden_objects/bookshelves.asm new file mode 100644 index 000000000..b58444af8 --- /dev/null +++ b/engine/events/hidden_objects/bookshelves.asm @@ -0,0 +1,39 @@ +; prints text for bookshelves in buildings without sign events +PrintBookshelfText:: + ld a, [wSpritePlayerStateData1FacingDirection] + cp SPRITE_FACING_UP + jr nz, .noMatch +; facing up + ld a, [wCurMapTileset] + ld b, a + lda_coord 8, 7 + ld c, a + ld hl, BookshelfTileIDs +.loop + ld a, [hli] + cp $ff + jr z, .noMatch + cp b + jr nz, .nextBookshelfEntry1 + ld a, [hli] + cp c + jr nz, .nextBookshelfEntry2 + ld a, [hl] + push af + call EnableAutoTextBoxDrawing + pop af + call PrintPredefTextID + xor a + ldh [hFFDB], a + ret +.nextBookshelfEntry1 + inc hl +.nextBookshelfEntry2 + inc hl + jr .loop +.noMatch + ld a, $ff + ldh [hFFDB], a + farjp PrintCardKeyText + +INCLUDE "data/tilesets/bookshelf_tile_ids.asm" diff --git a/engine/events/hidden_objects/cinnabar_gym_quiz.asm b/engine/events/hidden_objects/cinnabar_gym_quiz.asm new file mode 100644 index 000000000..da550c76d --- /dev/null +++ b/engine/events/hidden_objects/cinnabar_gym_quiz.asm @@ -0,0 +1,246 @@ +PrintCinnabarQuiz: + ld a, [wSpritePlayerStateData1FacingDirection] + cp SPRITE_FACING_UP + ret nz + call EnableAutoTextBoxDrawing + tx_pre_jump CinnabarGymQuiz + +CinnabarGymQuiz:: + text_asm + xor a + ld [wOpponentAfterWrongAnswer], a + ld hl, wd475 + res 7, [hl] + ld a, [wHiddenObjectFunctionArgument] + push af + and $f + ldh [hGymGateIndex], a + pop af + and $f0 + swap a + ldh [hGymGateAnswer], a + ldh a, [hGymGateIndex] + ld hl, CinnabarGymQuizIntroText + cp 1 + jr z, .onFirstQuestion + ld hl, CinnabarGymQuizShortIntroText +.onFirstQuestion + call PrintText + ldh a, [hGymGateIndex] + dec a + add a + ld d, 0 + ld e, a + ld hl, CinnabarQuizQuestions + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + ld a, 1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + call CinnabarGymQuiz_1ea92 + jp TextScriptEnd + +CinnabarGymQuizDummyIntroText: + text_far _CinnabarGymQuizDummyIntroText + text_end + +CinnabarGymQuizIntroText: + text_far _CinnabarGymQuizIntroText + text_end + +CinnabarGymQuizShortIntroText: + text_far _CinnabarGymQuizShortIntroText + text_end + +CinnabarQuizQuestions: + dw CinnabarQuizQuestionsText1 + dw CinnabarQuizQuestionsText2 + dw CinnabarQuizQuestionsText3 + dw CinnabarQuizQuestionsText4 + dw CinnabarQuizQuestionsText5 + dw CinnabarQuizQuestionsText6 + +CinnabarQuizQuestionsText1: + text_far _CinnabarQuizQuestionsText1 + text_end + +CinnabarQuizQuestionsText2: + text_far _CinnabarQuizQuestionsText2 + text_end + +CinnabarQuizQuestionsText3: + text_far _CinnabarQuizQuestionsText3 + text_end + +CinnabarQuizQuestionsText4: + text_far _CinnabarQuizQuestionsText4 + text_end + +CinnabarQuizQuestionsText5: + text_far _CinnabarQuizQuestionsText5 + text_end + +CinnabarQuizQuestionsText6: + text_far _CinnabarQuizQuestionsText6 + text_end + +CinnabarGymQuiz_1ea92: + call YesNoChoice + ldh a, [hGymGateAnswer] + ld c, a + ld a, [wCurrentMenuItem] + cp c + jr nz, .wrongAnswer + ld hl, wCurrentMapScriptFlags + set 5, [hl] + ldh a, [hGymGateIndex] + ldh [hBackupGymGateIndex], a + ld hl, CinnabarGymQuizCorrectText + call PrintText + ldh a, [hBackupGymGateIndex] + AdjustEventBit EVENT_CINNABAR_GYM_GATE0_UNLOCKED, 0 + ld c, a + ld b, FLAG_SET + call CinnabarGymGateFlagAction + jp UpdateCinnabarGymGateTileBlocks_ +.wrongAnswer + call WaitForSoundToFinish + ld a, SFX_DENIED + call PlaySound + call WaitForSoundToFinish + ld hl, CinnabarGymQuizIncorrectText + call PrintText + ldh a, [hGymGateIndex] + add $2 + AdjustEventBit EVENT_BEAT_CINNABAR_GYM_TRAINER_0, 2 + ld c, a + ld b, FLAG_TEST + EventFlagAddress hl, EVENT_BEAT_CINNABAR_GYM_TRAINER_0 + predef FlagActionPredef + ld a, c + and a + ret nz + ldh a, [hGymGateIndex] + add $2 + ld [wOpponentAfterWrongAnswer], a + ld hl, wd475 + set 7, [hl] + ret + +CinnabarGymQuizCorrectText: + sound_get_item_1 + text_far _CinnabarGymQuizCorrectText + text_promptbutton + text_asm + + ldh a, [hBackupGymGateIndex] + AdjustEventBit EVENT_CINNABAR_GYM_GATE0_UNLOCKED, 0 + ld c, a + ld b, FLAG_TEST + call CinnabarGymGateFlagAction + ld a, c + and a + jp nz, TextScriptEnd + call WaitForSoundToFinish + ld a, SFX_GO_INSIDE + call PlaySound + call WaitForSoundToFinish + jp TextScriptEnd + +CinnabarGymQuizIncorrectText: + text_far _CinnabarGymQuizIncorrectText + text_end + +CinnabarGymGateFlagAction: + EventFlagAddress hl, EVENT_CINNABAR_GYM_GATE0_UNLOCKED + predef_jump FlagActionPredef + +UpdateCinnabarGymGateTileBlocks_:: +; Update the overworld map with open floor blocks or locked gate blocks +; depending on event flags. + ld a, 6 + ldh [hGymGateIndex], a +.loop + ldh a, [hGymGateIndex] + dec a + add a + add a + ld d, 0 + ld e, a + ld hl, CinnabarGymGateCoords + add hl, de + ld a, [hli] + ld b, [hl] + ld c, a + inc hl + ld a, [hl] + ld [wGymGateTileBlock], a + push bc + ldh a, [hGymGateIndex] + ldh [hBackupGymGateIndex], a + AdjustEventBit EVENT_CINNABAR_GYM_GATE0_UNLOCKED, 0 + ld c, a + ld b, FLAG_TEST + call CinnabarGymGateFlagAction + ld a, c + and a + jr nz, .unlocked + ld a, [wGymGateTileBlock] + jr .next +.unlocked + ld a, $e +.next + pop bc + ld [wNewTileBlockID], a + call CinnabarGym_ReplaceTileBlock + ld hl, hGymGateIndex + dec [hl] + jr nz, .loop + callfar RedrawMapView + ret + +gym_gate_coord: MACRO + db \1, \2, \3, 0 +ENDM + +HORIZONTAL_GATE_BLOCK EQU $54 +VERTICAL_GATE_BLOCK EQU $5f + +CinnabarGymGateCoords: + ; x coord, y coord, block id + gym_gate_coord 9, 3, HORIZONTAL_GATE_BLOCK + gym_gate_coord 6, 3, HORIZONTAL_GATE_BLOCK + gym_gate_coord 6, 6, HORIZONTAL_GATE_BLOCK + gym_gate_coord 3, 8, VERTICAL_GATE_BLOCK + gym_gate_coord 2, 6, HORIZONTAL_GATE_BLOCK + gym_gate_coord 2, 3, HORIZONTAL_GATE_BLOCK + + +CinnabarGym_ReplaceTileBlock: +; basically a copy of the first half of ReplaceTileBlock +; before checking if it is necessary to redraw the map view + ld hl, wOverworldMap + ld a, [wCurMapWidth] + add $6 + ld e, a + ld d, $0 + add hl, de + add hl, de + add hl, de + ld e, $3 + add hl, de + ld e, a + ld a, b + and a + jr z, .addX +.addWidthYTimesLoop + add hl, de + dec b + jr nz, .addWidthYTimesLoop +.addX + add hl, bc + ld a, [wNewTileBlockID] + ld [hl], a + ret diff --git a/engine/events/hidden_objects/elevator.asm b/engine/events/hidden_objects/elevator.asm new file mode 100644 index 000000000..ab0f731fc --- /dev/null +++ b/engine/events/hidden_objects/elevator.asm @@ -0,0 +1,3 @@ +ElevatorText:: + text_far _ElevatorText + text_end diff --git a/engine/events/hidden_objects/fanclub_pictures.asm b/engine/events/hidden_objects/fanclub_pictures.asm new file mode 100644 index 000000000..30bc72c78 --- /dev/null +++ b/engine/events/hidden_objects/fanclub_pictures.asm @@ -0,0 +1,23 @@ +FanClubPicture1: + ld a, RAPIDASH + ld [wcf91], a + call DisplayMonFrontSpriteInBox + call EnableAutoTextBoxDrawing + tx_pre FanClubPicture1Text + ret + +FanClubPicture1Text:: + text_far _FanClubPicture1Text + text_end + +FanClubPicture2: + ld a, FEAROW + ld [wcf91], a + call DisplayMonFrontSpriteInBox + call EnableAutoTextBoxDrawing + tx_pre FanClubPicture2Text + ret + +FanClubPicture2Text:: + text_far _FanClubPicture2Text + text_end diff --git a/engine/events/hidden_objects/fighting_dojo.asm b/engine/events/hidden_objects/fighting_dojo.asm new file mode 100644 index 000000000..b4f899854 --- /dev/null +++ b/engine/events/hidden_objects/fighting_dojo.asm @@ -0,0 +1,23 @@ +PrintFightingDojoText2: + call EnableAutoTextBoxDrawing + tx_pre_jump EnemiesOnEverySideText + +EnemiesOnEverySideText:: + text_far _EnemiesOnEverySideText + text_end + +PrintFightingDojoText3: + call EnableAutoTextBoxDrawing + tx_pre_jump WhatGoesAroundComesAroundText + +WhatGoesAroundComesAroundText:: + text_far _WhatGoesAroundComesAroundText + text_end + +PrintFightingDojoText: + call EnableAutoTextBoxDrawing + tx_pre_jump FightingDojoText + +FightingDojoText:: + text_far _FightingDojoText + text_end diff --git a/engine/events/hidden_objects/gym_statues.asm b/engine/events/hidden_objects/gym_statues.asm new file mode 100644 index 000000000..1c7eb9706 --- /dev/null +++ b/engine/events/hidden_objects/gym_statues.asm @@ -0,0 +1,39 @@ +GymStatues: +; if in a gym and have the corresponding badge, a = GymStatueText2_id and jp PrintPredefTextID +; if in a gym and don't have the corresponding badge, a = GymStatueText1_id and jp PrintPredefTextID +; else ret + call EnableAutoTextBoxDrawing + ld a, [wSpritePlayerStateData1FacingDirection] + cp SPRITE_FACING_UP + ret nz + ld hl, MapBadgeFlags + ld a, [wCurMap] + ld b, a +.loop + ld a, [hli] + cp $ff + ret z + cp b + jr z, .match + inc hl + jr .loop +.match + ld b, [hl] + ld a, [wBeatGymFlags] + and b + cp b + tx_pre_id GymStatueText2 + jr z, .haveBadge + tx_pre_id GymStatueText1 +.haveBadge + jp PrintPredefTextID + +INCLUDE "data/maps/badge_maps.asm" + +GymStatueText1:: + text_far _GymStatueText1 + text_end + +GymStatueText2:: + text_far _GymStatueText2 + text_end diff --git a/engine/events/hidden_objects/indigo_plateau_hq.asm b/engine/events/hidden_objects/indigo_plateau_hq.asm new file mode 100644 index 000000000..e8fd02204 --- /dev/null +++ b/engine/events/hidden_objects/indigo_plateau_hq.asm @@ -0,0 +1,10 @@ +PrintIndigoPlateauHQText: + ld a, [wSpritePlayerStateData1FacingDirection] + cp SPRITE_FACING_UP + ret nz + call EnableAutoTextBoxDrawing + tx_pre_jump IndigoPlateauHQText + +IndigoPlateauHQText:: + text_far _IndigoPlateauHQText + text_end diff --git a/engine/events/hidden_objects/indigo_plateau_statues.asm b/engine/events/hidden_objects/indigo_plateau_statues.asm new file mode 100644 index 000000000..23e94fcf2 --- /dev/null +++ b/engine/events/hidden_objects/indigo_plateau_statues.asm @@ -0,0 +1,24 @@ +IndigoPlateauStatues:: + text_asm + ld hl, IndigoPlateauStatuesText1 + call PrintText + ld a, [wXCoord] + bit 0, a + ld hl, IndigoPlateauStatuesText2 + jr nz, .ok + ld hl, IndigoPlateauStatuesText3 +.ok + call PrintText + jp TextScriptEnd + +IndigoPlateauStatuesText1: + text_far _IndigoPlateauStatuesText1 + text_end + +IndigoPlateauStatuesText2: + text_far _IndigoPlateauStatuesText2 + text_end + +IndigoPlateauStatuesText3: + text_far _IndigoPlateauStatuesText3 + text_end diff --git a/engine/events/hidden_objects/magazines.asm b/engine/events/hidden_objects/magazines.asm new file mode 100644 index 000000000..b58636ffe --- /dev/null +++ b/engine/events/hidden_objects/magazines.asm @@ -0,0 +1,8 @@ +PrintMagazinesText: + call EnableAutoTextBoxDrawing + tx_pre MagazinesText + ret + +MagazinesText:: + text_far _MagazinesText + text_end diff --git a/engine/events/hidden_objects/museum_fossils.asm b/engine/events/hidden_objects/museum_fossils.asm new file mode 100644 index 000000000..539f2c3f7 --- /dev/null +++ b/engine/events/hidden_objects/museum_fossils.asm @@ -0,0 +1,23 @@ +AerodactylFossil: + ld a, FOSSIL_AERODACTYL + ld [wcf91], a + call DisplayMonFrontSpriteInBox + call EnableAutoTextBoxDrawing + tx_pre AerodactylFossilText + ret + +AerodactylFossilText:: + text_far _AerodactylFossilText + text_end + +KabutopsFossil: + ld a, FOSSIL_KABUTOPS + ld [wcf91], a + call DisplayMonFrontSpriteInBox + call EnableAutoTextBoxDrawing + tx_pre KabutopsFossilText + ret + +KabutopsFossilText:: + text_far _KabutopsFossilText + text_end diff --git a/engine/events/hidden_objects/museum_fossils2.asm b/engine/events/hidden_objects/museum_fossils2.asm new file mode 100644 index 000000000..fce0f03a2 --- /dev/null +++ b/engine/events/hidden_objects/museum_fossils2.asm @@ -0,0 +1,28 @@ +DisplayMonFrontSpriteInBox: +; Displays a pokemon's front sprite in a pop-up window. +; [wcf91] = pokemon internal id number + ld a, 1 + ldh [hAutoBGTransferEnabled], a + call Delay3 + xor a + ldh [hWY], a + call SaveScreenTilesToBuffer1 + ld a, MON_SPRITE_POPUP + ld [wTextBoxID], a + call DisplayTextBoxID + call UpdateSprites + ld a, [wcf91] + ld [wd0b5], a + call GetMonHeader + ld de, vChars1 + $310 + call LoadMonFrontSprite + ld a, $80 + ldh [hStartTileID], a + hlcoord 10, 11 + predef AnimateSendingOutMon + call WaitForTextScrollButtonPress + call LoadScreenTilesFromBuffer1 + call Delay3 + ld a, $90 + ldh [hWY], a + ret diff --git a/engine/events/hidden_objects/new_bike.asm b/engine/events/hidden_objects/new_bike.asm new file mode 100644 index 000000000..5bce59373 --- /dev/null +++ b/engine/events/hidden_objects/new_bike.asm @@ -0,0 +1,7 @@ +PrintNewBikeText: + call EnableAutoTextBoxDrawing + tx_pre_jump NewBicycleText + +NewBicycleText:: + text_far _NewBicycleText + text_end diff --git a/engine/events/hidden_objects/oaks_lab_email.asm b/engine/events/hidden_objects/oaks_lab_email.asm new file mode 100644 index 000000000..bd4c66d7c --- /dev/null +++ b/engine/events/hidden_objects/oaks_lab_email.asm @@ -0,0 +1,11 @@ +DisplayOakLabEmailText: + ld a, [wSpritePlayerStateData1FacingDirection] + cp SPRITE_FACING_UP + ret nz + call EnableAutoTextBoxDrawing + tx_pre OakLabEmailText + ret + +OakLabEmailText:: + text_far _OakLabEmailText + text_end diff --git a/engine/events/hidden_objects/oaks_lab_posters.asm b/engine/events/hidden_objects/oaks_lab_posters.asm new file mode 100644 index 000000000..502cf9517 --- /dev/null +++ b/engine/events/hidden_objects/oaks_lab_posters.asm @@ -0,0 +1,29 @@ +DisplayOakLabLeftPoster: + call EnableAutoTextBoxDrawing + tx_pre_jump PushStartText + +PushStartText:: + text_far _PushStartText + text_end + +DisplayOakLabRightPoster: + call EnableAutoTextBoxDrawing + ld hl, wPokedexOwned + ld b, wPokedexOwnedEnd - wPokedexOwned + call CountSetBits + ld a, [wNumSetBits] + cp 2 + tx_pre_id SaveOptionText + jr c, .ownLessThanTwo + ; own two or more mon + tx_pre_id StrengthsAndWeaknessesText +.ownLessThanTwo + jp PrintPredefTextID + +SaveOptionText:: + text_far _SaveOptionText + text_end + +StrengthsAndWeaknessesText:: + text_far _StrengthsAndWeaknessesText + text_end diff --git a/engine/events/hidden_objects/pokecenter_pc.asm b/engine/events/hidden_objects/pokecenter_pc.asm new file mode 100644 index 000000000..f20f40ed4 --- /dev/null +++ b/engine/events/hidden_objects/pokecenter_pc.asm @@ -0,0 +1,11 @@ +OpenPokemonCenterPC: + ld a, [wSpritePlayerStateData1FacingDirection] + cp SPRITE_FACING_UP + ret nz + call EnableAutoTextBoxDrawing + ld a, TRUE + ld [wAutoTextBoxDrawingControl], a + tx_pre_jump PokemonCenterPCText + +PokemonCenterPCText:: + script_pokecenter_pc diff --git a/engine/events/hidden_objects/pokemon_stuff.asm b/engine/events/hidden_objects/pokemon_stuff.asm new file mode 100644 index 000000000..267a191a8 --- /dev/null +++ b/engine/events/hidden_objects/pokemon_stuff.asm @@ -0,0 +1,3 @@ +PokemonStuffText:: + text_far _PokemonStuffText + text_end diff --git a/engine/events/hidden_objects/reds_room.asm b/engine/events/hidden_objects/reds_room.asm new file mode 100644 index 000000000..7b8d51a04 --- /dev/null +++ b/engine/events/hidden_objects/reds_room.asm @@ -0,0 +1,14 @@ +PrintRedSNESText: + call EnableAutoTextBoxDrawing + tx_pre_jump RedBedroomSNESText + +RedBedroomSNESText:: + text_far _RedBedroomSNESText + text_end + +OpenRedsPC: + call EnableAutoTextBoxDrawing + tx_pre_jump RedBedroomPCText + +RedBedroomPCText:: + script_players_pc diff --git a/engine/events/hidden_objects/route_15_binoculars.asm b/engine/events/hidden_objects/route_15_binoculars.asm new file mode 100644 index 000000000..9734e8338 --- /dev/null +++ b/engine/events/hidden_objects/route_15_binoculars.asm @@ -0,0 +1,17 @@ +Route15GateLeftBinoculars: + ld a, [wSpritePlayerStateData1FacingDirection] + cp SPRITE_FACING_UP + ret nz + call EnableAutoTextBoxDrawing + tx_pre Route15UpstairsBinocularsText + ld a, ARTICUNO + ld [wcf91], a + call PlayCry + call DisplayMonFrontSpriteInBox + xor a + ldh [hAutoBGTransferEnabled], a + ret + +Route15UpstairsBinocularsText:: + text_far _Route15UpstairsBinocularsText + text_end diff --git a/engine/events/hidden_objects/safari_game.asm b/engine/events/hidden_objects/safari_game.asm new file mode 100644 index 000000000..5001a5d43 --- /dev/null +++ b/engine/events/hidden_objects/safari_game.asm @@ -0,0 +1,78 @@ +SafariZoneCheck:: + CheckEventHL EVENT_IN_SAFARI_ZONE ; if we are not in the Safari Zone, + jr z, SafariZoneGameStillGoing ; don't bother printing game over text + ld a, [wNumSafariBalls] + and a + jr z, SafariZoneGameOver + jr SafariZoneGameStillGoing + +SafariZoneCheckSteps:: + ld a, [wSafariSteps] + ld b, a + ld a, [wSafariSteps + 1] + ld c, a + or b + jr z, SafariZoneGameOver + dec bc + ld a, b + ld [wSafariSteps], a + ld a, c + ld [wSafariSteps + 1], a +SafariZoneGameStillGoing: + xor a + ld [wSafariZoneGameOver], a + ret + +SafariZoneGameOver: + call EnableAutoTextBoxDrawing + xor a + ld [wAudioFadeOutControl], a + call StopAllMusic + ld c, BANK(SFX_Safari_Zone_PA) + ld a, SFX_SAFARI_ZONE_PA + call PlayMusic +.waitForMusicToPlay + ld a, [wChannelSoundIDs + Ch5] + cp SFX_SAFARI_ZONE_PA + jr nz, .waitForMusicToPlay + ld a, TEXT_SAFARI_GAME_OVER + ldh [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ld [wPlayerMovingDirection], a + ld a, SAFARI_ZONE_GATE + ldh [hWarpDestinationMap], a + ld a, $3 + ld [wDestinationWarpID], a + ld a, $5 + ld [wSafariZoneGateCurScript], a + SetEvent EVENT_SAFARI_GAME_OVER + ld a, 1 + ld [wSafariZoneGameOver], a + ret + +PrintSafariGameOverText:: + xor a + ld [wJoyIgnore], a + ld hl, SafariGameOverText + jp PrintText + +SafariGameOverText: + text_asm + ld a, [wNumSafariBalls] + and a + jr z, .noMoreSafariBalls + ld hl, TimesUpText + call PrintText +.noMoreSafariBalls + ld hl, GameOverText + call PrintText + jp TextScriptEnd + +TimesUpText: + text_far _TimesUpText + text_end + +GameOverText: + text_far _GameOverText + text_end diff --git a/engine/events/hidden_objects/school_blackboard.asm b/engine/events/hidden_objects/school_blackboard.asm new file mode 100644 index 000000000..eb9272927 --- /dev/null +++ b/engine/events/hidden_objects/school_blackboard.asm @@ -0,0 +1,223 @@ +PrintBlackboardLinkCableText: + call EnableAutoTextBoxDrawing + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld a, [wHiddenObjectFunctionArgument] + call PrintPredefTextID + ret + +LinkCableHelp:: + text_asm + call SaveScreenTilesToBuffer1 + ld hl, LinkCableHelpText1 + call PrintText + xor a + ld [wMenuItemOffset], a ; not used + ld [wCurrentMenuItem], a + ld [wLastMenuItem], a + ld a, A_BUTTON | B_BUTTON + ld [wMenuWatchedKeys], a + ld a, 3 + ld [wMaxMenuItem], a + ld a, 2 + ld [wTopMenuItemY], a + ld a, 1 + ld [wTopMenuItemX], a +.linkHelpLoop + ld hl, wd730 + set 6, [hl] + hlcoord 0, 0 + lb bc, 8, 13 + call TextBoxBorder + hlcoord 2, 2 + ld de, HowToLinkText + call PlaceString + ld hl, LinkCableHelpText2 + call PrintText + call HandleMenuInput + bit 1, a ; pressed b + jr nz, .exit + ld a, [wCurrentMenuItem] + cp 3 ; pressed a on "STOP READING" + jr z, .exit + ld hl, wd730 + res 6, [hl] + ld hl, LinkCableInfoTexts + add a + ld d, 0 + ld e, a + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + jp .linkHelpLoop +.exit + ld hl, wd730 + res 6, [hl] + call LoadScreenTilesFromBuffer1 + jp TextScriptEnd + +LinkCableHelpText1: + text_far _LinkCableHelpText1 + text_end + +LinkCableHelpText2: + text_far _LinkCableHelpText2 + text_end + +HowToLinkText: + db "HOW TO LINK" + next "COLOSSEUM" + next "TRADE CENTER" + next "STOP READING@" + +LinkCableInfoTexts: + dw LinkCableInfoText1 + dw LinkCableInfoText2 + dw LinkCableInfoText3 + +LinkCableInfoText1: + text_far _LinkCableInfoText1 + text_end + +LinkCableInfoText2: + text_far _LinkCableInfoText2 + text_end + +LinkCableInfoText3: + text_far _LinkCableInfoText3 + text_end + +ViridianSchoolBlackboard:: + text_asm + call SaveScreenTilesToBuffer1 + ld hl, ViridianSchoolBlackboardText1 + call PrintText + xor a + ld [wMenuItemOffset], a + ld [wCurrentMenuItem], a + ld [wLastMenuItem], a + ld a, D_LEFT | D_RIGHT | A_BUTTON | B_BUTTON + ld [wMenuWatchedKeys], a + ld a, 2 + ld [wMaxMenuItem], a + ld a, 2 + ld [wTopMenuItemY], a + ld a, 1 + ld [wTopMenuItemX], a +.blackboardLoop + ld hl, wd730 + set 6, [hl] + hlcoord 0, 0 + lb bc, 6, 10 + call TextBoxBorder + hlcoord 1, 2 + ld de, StatusAilmentText1 + call PlaceString + hlcoord 6, 2 + ld de, StatusAilmentText2 + call PlaceString + ld hl, ViridianSchoolBlackboardText2 + call PrintText + call HandleMenuInput ; pressing up and down is handled in here + bit 1, a ; pressed b + jr nz, .exitBlackboard + bit 4, a ; pressed right + jr z, .didNotPressRight + ; move cursor to right column + ld a, 2 + ld [wMaxMenuItem], a + ld a, 2 + ld [wTopMenuItemY], a + ld a, 6 + ld [wTopMenuItemX], a + ld a, 3 ; in the the right column, use an offset to prevent overlap + ld [wMenuItemOffset], a + jr .blackboardLoop +.didNotPressRight + bit 5, a ; pressed left + jr z, .didNotPressLeftOrRight + ; move cursor to left column + ld a, 2 + ld [wMaxMenuItem], a + ld a, 2 + ld [wTopMenuItemY], a + ld a, 1 + ld [wTopMenuItemX], a + xor a + ld [wMenuItemOffset], a + jr .blackboardLoop +.didNotPressLeftOrRight + ld a, [wCurrentMenuItem] + ld b, a + ld a, [wMenuItemOffset] + add b + cp 5 ; cursor is pointing to "QUIT" + jr z, .exitBlackboard + ; we must have pressed a on a status condition + ; so print the text + ld hl, wd730 + res 6, [hl] + ld hl, ViridianBlackboardStatusPointers + add a + ld d, 0 + ld e, a + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + jp .blackboardLoop +.exitBlackboard + ld hl, wd730 + res 6, [hl] + call LoadScreenTilesFromBuffer1 + jp TextScriptEnd + +ViridianSchoolBlackboardText1: + text_far _ViridianSchoolBlackboardText1 + text_end + +ViridianSchoolBlackboardText2: + text_far _ViridianSchoolBlackboardText2 + text_end + +StatusAilmentText1: + db " SLP" + next " PSN" + next " PAR@" + +StatusAilmentText2: + db " BRN" + next " FRZ" + next " QUIT@" + + db "@" ; unused + +ViridianBlackboardStatusPointers: + dw ViridianBlackboardSleepText + dw ViridianBlackboardPoisonText + dw ViridianBlackboardPrlzText + dw ViridianBlackboardBurnText + dw ViridianBlackboardFrozenText + +ViridianBlackboardSleepText: + text_far _ViridianBlackboardSleepText + text_end + +ViridianBlackboardPoisonText: + text_far _ViridianBlackboardPoisonText + text_end + +ViridianBlackboardPrlzText: + text_far _ViridianBlackboardPrlzText + text_end + +ViridianBlackboardBurnText: + text_far _ViridianBlackboardBurnText + text_end + +ViridianBlackboardFrozenText: + text_far _ViridianBlackboardFrozenText + text_end diff --git a/engine/events/hidden_objects/school_notebooks.asm b/engine/events/hidden_objects/school_notebooks.asm new file mode 100644 index 000000000..96a44ab5a --- /dev/null +++ b/engine/events/hidden_objects/school_notebooks.asm @@ -0,0 +1,65 @@ +PrintNotebookText: + call EnableAutoTextBoxDrawing + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld a, [wHiddenObjectFunctionArgument] + jp PrintPredefTextID + +TMNotebook:: + text_far TMNotebookText + text_waitbutton + text_end + +ViridianSchoolNotebook:: + text_asm + ld hl, ViridianSchoolNotebookText1 + call PrintText + call TurnPageSchoolNotebook + jr nz, .doneReading + ld hl, ViridianSchoolNotebookText2 + call PrintText + call TurnPageSchoolNotebook + jr nz, .doneReading + ld hl, ViridianSchoolNotebookText3 + call PrintText + call TurnPageSchoolNotebook + jr nz, .doneReading + ld hl, ViridianSchoolNotebookText4 + call PrintText + ld hl, ViridianSchoolNotebookText5 + call PrintText +.doneReading + jp TextScriptEnd + +TurnPageSchoolNotebook: + ld hl, TurnPageText + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + ret + +TurnPageText: + text_far _TurnPageText + text_end + +ViridianSchoolNotebookText5: + text_far _ViridianSchoolNotebookText5 + text_waitbutton + text_end + +ViridianSchoolNotebookText1: + text_far _ViridianSchoolNotebookText1 + text_end + +ViridianSchoolNotebookText2: + text_far _ViridianSchoolNotebookText2 + text_end + +ViridianSchoolNotebookText3: + text_far _ViridianSchoolNotebookText3 + text_end + +ViridianSchoolNotebookText4: + text_far _ViridianSchoolNotebookText4 + text_end diff --git a/engine/events/hidden_objects/town_map.asm b/engine/events/hidden_objects/town_map.asm new file mode 100644 index 000000000..4284214fc --- /dev/null +++ b/engine/events/hidden_objects/town_map.asm @@ -0,0 +1,22 @@ +TownMapText:: + text_far _TownMapText + text_promptbutton + text_asm + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld hl, wd730 + set 6, [hl] + call GBPalWhiteOutWithDelay3 + xor a + ldh [hWY], a + inc a + ldh [hAutoBGTransferEnabled], a + call LoadFontTilePatterns + farcall DisplayTownMap + ld hl, wd730 + res 6, [hl] + ld de, TextScriptEnd + push de + ldh a, [hLoadedROMBank] + push af + jp CloseTextDisplay diff --git a/engine/events/hidden_objects/vermilion_gym_trash.asm b/engine/events/hidden_objects/vermilion_gym_trash.asm new file mode 100644 index 000000000..21dd3ee03 --- /dev/null +++ b/engine/events/hidden_objects/vermilion_gym_trash.asm @@ -0,0 +1,134 @@ +PrintTrashText: + call EnableAutoTextBoxDrawing + tx_pre_jump VermilionGymTrashText + +VermilionGymTrashText:: + text_far _VermilionGymTrashText + text_end + +GymTrashScript: + call EnableAutoTextBoxDrawing + ld a, [wHiddenObjectFunctionArgument] + ld [wGymTrashCanIndex], a + +; Don't do the trash can puzzle if it's already been done. + CheckEvent EVENT_2ND_LOCK_OPENED + jr z, .ok + + tx_pre_jump VermilionGymTrashText + +.ok + CheckEventReuseA EVENT_1ST_LOCK_OPENED + jr nz, .trySecondLock + + ld a, [wFirstLockTrashCanIndex] + ld b, a + ld a, [wGymTrashCanIndex] + cp b + jr z, .openFirstLock + + tx_pre_id VermilionGymTrashText + jr .done + +.openFirstLock +; Next can is trying for the second switch. + SetEvent EVENT_1ST_LOCK_OPENED + callfar Yellow_SampleSecondTrashCan + tx_pre_id VermilionGymTrashSuccessText1 + jr .done + +.trySecondLock + ld a, [wGymTrashCanIndex] + ld b, a + ld a, [wSecondLockTrashCanIndex] + cp b + jr z, .openSecondLock + ld a, [wSecondLockTrashCanIndex + 1] + cp b + jr z, .openSecondLock + +; Reset the cans. + ResetEvent EVENT_1ST_LOCK_OPENED + call Random + + and $e + ld [wFirstLockTrashCanIndex], a + + tx_pre_id VermilionGymTrashFailText + jr .done + +.openSecondLock +; Completed the trash can puzzle. + SetEvent EVENT_2ND_LOCK_OPENED + ld hl, wCurrentMapScriptFlags + set 6, [hl] + + tx_pre_id VermilionGymTrashSuccessText3 + +.done + jp PrintPredefTextID + +GymTrashCans: +; byte 0: mask for random number +; bytes 1-4: indices of the trash cans that can have the second lock +; Note that the mask is simply the number of valid trash can indices that +; follow. The remaining bytes are filled with -1 to pad the length of each entry +; to 5 bytes. +; This is functionally replaced with GymTrashCans3a but was never removed from source. + + db 2, 1, 3, -1, -1 ; 0 + db 3, 0, 2, 4, -1 ; 1 + db 2, 1, 5, -1, -1 ; 2 + db 3, 0, 4, 6, -1 ; 3 + db 4, 1, 3, 5, 7 ; 4 + db 3, 2, 4, 8, -1 ; 5 + db 3, 3, 7, 9, -1 ; 6 + db 4, 4, 6, 8, 10 ; 7 + db 3, 5, 7, 11, -1 ; 8 + db 3, 6, 10, 12, -1 ; 9 + db 4, 7, 9, 11, 13 ; 10 + db 3, 8, 10, 14, -1 ; 11 + db 2, 9, 13, -1, -1 ; 12 + db 3, 10, 12, 14, -1 ; 13 + db 2, 11, 13, -1, -1 ; 14 + +VermilionGymTrashSuccessText1:: + text_far _VermilionGymTrashSuccessText1 + text_asm + call WaitForSoundToFinish + ld a, SFX_SWITCH + call PlaySound + call WaitForSoundToFinish + jp TextScriptEnd + +; unused +VermilionGymTrashSuccessText2:: + text_far _VermilionGymTrashSuccessText2 + text_end + +; unused +VermilionGymTrashSuccesPlaySfx: + text_asm + call WaitForSoundToFinish + ld a, SFX_SWITCH + call PlaySound + call WaitForSoundToFinish + jp TextScriptEnd + +VermilionGymTrashSuccessText3:: + text_far _VermilionGymTrashSuccessText3 + text_asm + call WaitForSoundToFinish + ld a, SFX_GO_INSIDE + call PlaySound + call WaitForSoundToFinish + jp TextScriptEnd + +VermilionGymTrashFailText:: + text_far _VermilionGymTrashFailText + text_asm + call WaitForSoundToFinish + ld a, SFX_DENIED + call PlaySound + call WaitForSoundToFinish + jp TextScriptEnd diff --git a/engine/in_game_trades.asm b/engine/events/in_game_trades.asm similarity index 83% rename from engine/in_game_trades.asm rename to engine/events/in_game_trades.asm index 720920dfa..a0a23dfa0 100755 --- a/engine/in_game_trades.asm +++ b/engine/events/in_game_trades.asm @@ -76,7 +76,7 @@ InGameTrade_GetMonName: ld bc, NAME_LENGTH jp CopyData -INCLUDE "data/trades.asm" +INCLUDE "data/events/trades.asm" InGameTrade_DoTrade: xor a ; NORMAL_PARTY_MENU @@ -129,7 +129,7 @@ InGameTrade_DoTrade: call InGameTrade_CheckForTradeEvo call ClearScreen call InGameTrade_RestoreScreen - callba RedrawMapView + farcall RedrawMapView and a ld a, $3 jr .tradeSucceeded @@ -148,7 +148,7 @@ InGameTrade_RestoreScreen: call LoadGBPal ld c, 10 call DelayFrames - jpba LoadWildData + farjp LoadWildData InGameTrade_PrepareTradeData: ld hl, wTradedPlayerMonSpecies @@ -219,41 +219,41 @@ InGameTrade_GetReceivedMonPointer: ret InGameTrade_FlagActionPredef: - ld hl,wCompletedInGameTradeFlags - ld a,[wWhichTrade] - ld c,a + ld hl, wCompletedInGameTradeFlags + ld a, [wWhichTrade] + ld c, a predef_jump FlagActionPredef InGameTrade_CheckForTradeEvo: - ld a,[wInGameTradeReceiveMonSpecies] + ld a, [wInGameTradeReceiveMonSpecies] cp KADABRA - jr z,.tradeEvo + jr z, .tradeEvo cp GRAVELER - jr z,.tradeEvo + jr z, .tradeEvo cp MACHOKE - jr z,.tradeEvo + jr z, .tradeEvo cp HAUNTER - jr z,.tradeEvo + jr z, .tradeEvo ret .tradeEvo - ld a,[wPartyCount] + ld a, [wPartyCount] dec a - ld [wWhichPokemon],a - ld a,$1 - ld [wForceEvolution],a - ld a,LINK_STATE_TRADING - ld [wLinkState],a - callab EvolveTradeMon + ld [wWhichPokemon], a + ld a, $1 + ld [wForceEvolution], a + ld a, LINK_STATE_TRADING + ld [wLinkState], a + callfar EvolveTradeMon xor a ; LINK_STATE_NONE - ld [wLinkState],a + ld [wLinkState], a jp PlayDefaultMusic InGameTrade_TrainerString: - ; "TRAINER@@@@@@@@@@" - db $5d, "@@@@@@@@@@" + db "@@@@@@@@@@" InGameTradeTextPointers: +; entries correspond to TRADE_DIALOGSET_* constants dw TradeTextPointers1 dw TradeTextPointers2 dw TradeTextPointers3 @@ -280,71 +280,71 @@ TradeTextPointers3: dw AfterTrade3Text ConnectCableText: - TX_FAR _ConnectCableText - db "@" + text_far _ConnectCableText + text_end TradedForText: - TX_FAR _TradedForText - TX_SFX_KEY_ITEM - TX_DELAY - db "@" + text_far _TradedForText + sound_get_key_item + text_pause + text_end WannaTrade1Text: - TX_FAR _WannaTrade1Text - db "@" + text_far _WannaTrade1Text + text_end NoTrade1Text: - TX_FAR _NoTrade1Text - db "@" + text_far _NoTrade1Text + text_end WrongMon1Text: - TX_FAR _WrongMon1Text - db "@" + text_far _WrongMon1Text + text_end Thanks1Text: - TX_FAR _Thanks1Text - db "@" + text_far _Thanks1Text + text_end AfterTrade1Text: - TX_FAR _AfterTrade1Text - db "@" + text_far _AfterTrade1Text + text_end WannaTrade2Text: - TX_FAR _WannaTrade2Text - db "@" + text_far _WannaTrade2Text + text_end NoTrade2Text: - TX_FAR _NoTrade2Text - db "@" + text_far _NoTrade2Text + text_end WrongMon2Text: - TX_FAR _WrongMon2Text - db "@" + text_far _WrongMon2Text + text_end Thanks2Text: - TX_FAR _Thanks2Text - db "@" + text_far _Thanks2Text + text_end AfterTrade2Text: - TX_FAR _AfterTrade2Text - db "@" + text_far _AfterTrade2Text + text_end WannaTrade3Text: - TX_FAR _WannaTrade3Text - db "@" + text_far _WannaTrade3Text + text_end NoTrade3Text: - TX_FAR _NoTrade3Text - db "@" + text_far _NoTrade3Text + text_end WrongMon3Text: - TX_FAR _WrongMon3Text - db "@" + text_far _WrongMon3Text + text_end Thanks3Text: - TX_FAR _Thanks3Text - db "@" + text_far _Thanks3Text + text_end AfterTrade3Text: - TX_FAR _AfterTrade3Text - db "@" + text_far _AfterTrade3Text + text_end diff --git a/engine/events/oaks_aide.asm b/engine/events/oaks_aide.asm new file mode 100755 index 000000000..f1801f5cf --- /dev/null +++ b/engine/events/oaks_aide.asm @@ -0,0 +1,71 @@ +OaksAideScript: + ld hl, OaksAideHiText + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .choseNo + ld hl, wPokedexOwned + ld b, wPokedexOwnedEnd - wPokedexOwned + call CountSetBits + ld a, [wNumSetBits] + ldh [hOaksAideNumMonsOwned], a + ld b, a + ldh a, [hOaksAideRequirement] + cp b + jr z, .giveItem + jr nc, .notEnoughOwnedMons +.giveItem + ld hl, OaksAideHereYouGoText + call PrintText + ldh a, [hOaksAideRewardItem] + ld b, a + ld c, 1 + call GiveItem + jr nc, .bagFull + ld hl, OaksAideGotItemText + call PrintText + ld a, OAKS_AIDE_GOT_ITEM + jr .done +.bagFull + ld hl, OaksAideNoRoomText + call PrintText + xor a ; OAKS_AIDE_BAG_FULL + jr .done +.notEnoughOwnedMons + ld hl, OaksAideUhOhText + call PrintText + ld a, OAKS_AIDE_NOT_ENOUGH_MONS + jr .done +.choseNo + ld hl, OaksAideComeBackText + call PrintText + ld a, OAKS_AIDE_REFUSED +.done + ldh [hOaksAideResult], a + ret + +OaksAideHiText: + text_far _OaksAideHiText + text_end + +OaksAideUhOhText: + text_far _OaksAideUhOhText + text_end + +OaksAideComeBackText: + text_far _OaksAideComeBackText + text_end + +OaksAideHereYouGoText: + text_far _OaksAideHereYouGoText + text_end + +OaksAideGotItemText: + text_far _OaksAideGotItemText + sound_get_item_1 + text_end + +OaksAideNoRoomText: + text_far _OaksAideNoRoomText + text_end diff --git a/engine/overworld/pewter_guys.asm b/engine/events/pewter_guys.asm similarity index 100% rename from engine/overworld/pewter_guys.asm rename to engine/events/pewter_guys.asm diff --git a/engine/events/pick_up_item.asm b/engine/events/pick_up_item.asm new file mode 100644 index 000000000..548db5be9 --- /dev/null +++ b/engine/events/pick_up_item.asm @@ -0,0 +1,54 @@ +PickUpItem: + call EnableAutoTextBoxDrawing + + ldh a, [hSpriteIndexOrTextID] + ld b, a + ld hl, wMissableObjectList +.missableObjectsListLoop + ld a, [hli] + cp $ff + ret z + cp b + jr z, .isMissable + inc hl + jr .missableObjectsListLoop + +.isMissable + ld a, [hl] + ldh [hMissableObjectIndex], a + + ld hl, wMapSpriteExtraData + ldh a, [hSpriteIndexOrTextID] + dec a + add a + ld d, 0 + ld e, a + add hl, de + ld a, [hl] + ld b, a ; item + ld c, 1 ; quantity + call GiveItem + jr nc, .BagFull + + ldh a, [hMissableObjectIndex] + ld [wMissableObjectIndex], a + predef HideObject + ld a, 1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld hl, FoundItemText + jr .print + +.BagFull + ld hl, NoMoreRoomForItemText +.print + call PrintText + ret + +FoundItemText: + text_far _FoundItemText + sound_get_item_1 + text_end + +NoMoreRoomForItemText: + text_far _NoMoreRoomForItemText + text_end diff --git a/engine/overworld/poison.asm b/engine/events/poison.asm similarity index 94% rename from engine/overworld/poison.asm rename to engine/events/poison.asm index 03fb8a65e..9f3ad3917 100644 --- a/engine/overworld/poison.asm +++ b/engine/events/poison.asm @@ -59,12 +59,12 @@ ApplyOutOfBattlePoisonDamage: ld [wJoyIgnore], a call EnableAutoTextBoxDrawing ld a, TEXT_MON_FAINTED - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID - callab IsThisPartymonStarterPikachu_Party + callfar IsThisPartymonStarterPikachu_Party jr nc, .curMonNotPlayerPikachu ld e, $3 - callab PlayPikachuSoundClip + callfar PlayPikachuSoundClip calladb_ModifyPikachuHappiness PIKAHAPPY_PSNFNT .curMonNotPlayerPikachu pop de @@ -112,7 +112,7 @@ ApplyOutOfBattlePoisonDamage: jr nz, .noBlackOut call EnableAutoTextBoxDrawing ld a, TEXT_BLACKED_OUT - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd72e set 5, [hl] diff --git a/engine/events/pokecenter.asm b/engine/events/pokecenter.asm new file mode 100755 index 000000000..e007030ad --- /dev/null +++ b/engine/events/pokecenter.asm @@ -0,0 +1,149 @@ +DisplayPokemonCenterDialogue_:: + ld a, [wCurMap] + cp PEWTER_POKECENTER + jr nz, .regularCenter + call CheckPikachuFollowingPlayer + jr z, .regularCenter + ld hl, LooksContentText ; if pikachu is sleeping, don't heal + call PrintText + ret +.regularCenter + call SaveScreenTilesToBuffer1 ; save screen + ld hl, PokemonCenterWelcomeText + call PrintText + ld hl, wd72e + bit 2, [hl] + set 1, [hl] + set 2, [hl] + jr nz, .skipShallWeHealYourPokemon + ld hl, ShallWeHealYourPokemonText + call PrintText +.skipShallWeHealYourPokemon + call YesNoChoicePokeCenter ; yes/no menu + call UpdateSprites + ld a, [wCurrentMenuItem] + and a + jp nz, .declinedHealing ; if the player chose No + call SetLastBlackoutMap + callfar IsStarterPikachuInOurParty + jr nc, .notHealingPlayerPikachu + call CheckPikachuFollowingPlayer + jr nz, .notHealingPlayerPikachu + call LoadCurrentMapView + call Delay3 + call UpdateSprites + callfar PikachuWalksToNurseJoy ; todo +.notHealingPlayerPikachu + ld hl, NeedYourPokemonText + call PrintText + ld c, 64 + call DelayFrames + call CheckPikachuFollowingPlayer + jr nz, .playerPikachuNotOnScreen + call DisablePikachuOverworldSpriteDrawing + callfar IsStarterPikachuInOurParty + call c, Func_6eaa +.playerPikachuNotOnScreen + lb bc, 1, 8 + call Func_6ebb + ld c, 30 + call DelayFrames + farcall AnimateHealingMachine ; do the healing machine animation + predef HealParty + xor a + ld [wAudioFadeOutControl], a + ld a, [wAudioSavedROMBank] + ld [wAudioROMBank], a + ld a, [wMapMusicSoundID] + ld [wLastMusicSoundID], a + ld [wNewSoundID], a + call PlaySound + call CheckPikachuFollowingPlayer + jr nz, .doNotReturnPikachu + callfar IsStarterPikachuInOurParty + call c, Func_6eaa + ld a, $5 + ld [wPikachuSpawnState], a + call EnablePikachuOverworldSpriteDrawing +.doNotReturnPikachu + lb bc, 1, 0 + call Func_6ebb + ld hl, PokemonFightingFitText + call PrintText + callfar IsStarterPikachuInOurParty + jr nc, .notInParty + lb bc, 15, 0 + call Func_6ebb +.notInParty + call LoadCurrentMapView + call Delay3 + call UpdateSprites + callfar ReloadWalkingTilePatterns + ld a, $1 + ldh [hSpriteIndex], a + ld a, $1 + ldh [hSpriteImageIndex], a + call SpriteFunc_34a1 + ld c, 40 + call DelayFrames + call UpdateSprites + call LoadFontTilePatterns + jr .done +.declinedHealing + call LoadScreenTilesFromBuffer1 ; restore screen +.done + ld hl, PokemonCenterFarewellText + call PrintText + call UpdateSprites + ret + +Func_6eaa: + ld a, $1 + ldh [hSpriteIndex], a + ld a, $4 + ldh [hSpriteImageIndex], a + call SpriteFunc_34a1 + ld c, 64 + call DelayFrames + ret + +Func_6ebb: + ld a, b + ldh [hSpriteIndex], a + ld a, c + ldh [hSpriteImageIndex], a + push bc + call SetSpriteFacingDirectionAndDelay + pop bc + ld a, b + ldh [hSpriteIndex], a + ld a, c + ldh [hSpriteImageIndex], a + call SpriteFunc_34a1 + ret + +PokemonCenterWelcomeText: + text_far _PokemonCenterWelcomeText + text_end + +ShallWeHealYourPokemonText: + text_pause + text_far _ShallWeHealYourPokemonText + text_end + +NeedYourPokemonText: + text_far _NeedYourPokemonText + text_end + +PokemonFightingFitText: + text_far _PokemonFightingFitText + text_end + +PokemonCenterFarewellText: + text_pause + text_far _PokemonCenterFarewellText + text_end + +LooksContentText: + text_far _LooksContentText + text_end diff --git a/engine/events/pokedex_rating.asm b/engine/events/pokedex_rating.asm new file mode 100755 index 000000000..1086257a9 --- /dev/null +++ b/engine/events/pokedex_rating.asm @@ -0,0 +1,138 @@ +DisplayDexRating: + ld hl, wPokedexSeen + ld b, wPokedexSeenEnd - wPokedexSeen + call CountSetBits + ld a, [wNumSetBits] + ldh [hDexRatingNumMonsSeen], a + ld hl, wPokedexOwned + ld b, wPokedexOwnedEnd - wPokedexOwned + call CountSetBits + ld a, [wNumSetBits] + ldh [hDexRatingNumMonsOwned], a + ld hl, DexRatingsTable +.findRating + ld a, [hli] + ld b, a + ldh a, [hDexRatingNumMonsOwned] + cp b + jr c, .foundRating + inc hl + inc hl + jr .findRating +.foundRating + ld a, [hli] + ld h, [hl] + ld l, a ; load text pointer into hl + CheckAndResetEventA EVENT_HALL_OF_FAME_DEX_RATING + jr nz, .hallOfFame + push hl + ld hl, DexCompletionText + call PrintText + pop hl + call PrintText + farcall PlayPokedexRatingSfx + jp WaitForTextScrollButtonPress +.hallOfFame + ld de, wDexRatingNumMonsSeen + ldh a, [hDexRatingNumMonsSeen] + ld [de], a + inc de + ldh a, [hDexRatingNumMonsOwned] + ld [de], a + inc de +.copyRatingTextLoop + ld a, [hli] + cp "@" + jr z, .doneCopying + ld [de], a + inc de + jr .copyRatingTextLoop +.doneCopying + ld [de], a + ret + +DexCompletionText: + text_far _DexCompletionText + text_end + +DexRatingsTable: + dbw 10, DexRatingText_Own0To9 + dbw 20, DexRatingText_Own10To19 + dbw 30, DexRatingText_Own20To29 + dbw 40, DexRatingText_Own30To39 + dbw 50, DexRatingText_Own40To49 + dbw 60, DexRatingText_Own50To59 + dbw 70, DexRatingText_Own60To69 + dbw 80, DexRatingText_Own70To79 + dbw 90, DexRatingText_Own80To89 + dbw 100, DexRatingText_Own90To99 + dbw 110, DexRatingText_Own100To109 + dbw 120, DexRatingText_Own110To119 + dbw 130, DexRatingText_Own120To129 + dbw 140, DexRatingText_Own130To139 + dbw 150, DexRatingText_Own140To149 + dbw NUM_POKEMON + 1, DexRatingText_Own150To151 + +DexRatingText_Own0To9: + text_far _DexRatingText_Own0To9 + text_end + +DexRatingText_Own10To19: + text_far _DexRatingText_Own10To19 + text_end + +DexRatingText_Own20To29: + text_far _DexRatingText_Own20To29 + text_end + +DexRatingText_Own30To39: + text_far _DexRatingText_Own30To39 + text_end + +DexRatingText_Own40To49: + text_far _DexRatingText_Own40To49 + text_end + +DexRatingText_Own50To59: + text_far _DexRatingText_Own50To59 + text_end + +DexRatingText_Own60To69: + text_far _DexRatingText_Own60To69 + text_end + +DexRatingText_Own70To79: + text_far _DexRatingText_Own70To79 + text_end + +DexRatingText_Own80To89: + text_far _DexRatingText_Own80To89 + text_end + +DexRatingText_Own90To99: + text_far _DexRatingText_Own90To99 + text_end + +DexRatingText_Own100To109: + text_far _DexRatingText_Own100To109 + text_end + +DexRatingText_Own110To119: + text_far _DexRatingText_Own110To119 + text_end + +DexRatingText_Own120To129: + text_far _DexRatingText_Own120To129 + text_end + +DexRatingText_Own130To139: + text_far _DexRatingText_Own130To139 + text_end + +DexRatingText_Own140To149: + text_far _DexRatingText_Own140To149 + text_end + +DexRatingText_Own150To151: + text_far _DexRatingText_Own150To151 + text_end diff --git a/engine/overworld/pokemart.asm b/engine/events/pokemart.asm similarity index 88% rename from engine/overworld/pokemart.asm rename to engine/events/pokemart.asm index dc5b29b59..c7cb81157 100755 --- a/engine/overworld/pokemart.asm +++ b/engine/events/pokemart.asm @@ -1,4 +1,4 @@ -DisplayPokemartDialogue_: +DisplayPokemartDialogue_:: ld a, [wListScrollOffset] ld [wSavedListScrollOffset], a call UpdateSprites @@ -42,7 +42,7 @@ DisplayPokemartDialogue_: ld [wPrintItemPrices], a ld a, INIT_BAG_ITEM_LIST ld [wInitListType], a - callab InitList + callfar InitList ld a, [wNumBagItems] and a @@ -77,14 +77,14 @@ DisplayPokemartDialogue_: jr c, .unsellableItem ld a, PRICEDITEMLISTMENU ld [wListMenuID], a - ld [hHalveItemPrices], a ; halve prices when selling + ldh [hHalveItemPrices], a ; halve prices when selling call DisplayChooseQuantityMenu inc a jr z, .sellMenuLoop ; if the player closed the choose quantity menu with the B button ld hl, PokemartTellSellPriceText lb bc, 14, 1 ; location that PrintText always prints to, this is useless call PrintText - coord hl, 14, 7 + hlcoord 14, 7 lb bc, 8, 15 ld a, TWO_OPTION_MENU ld [wTextBoxID], a @@ -126,7 +126,7 @@ DisplayPokemartDialogue_: ld [wPrintItemPrices], a ld a, INIT_OTHER_ITEM_LIST ld [wInitListType], a - callab InitList + callfar InitList ld hl, PokemartBuyingGreetingText call PrintText @@ -152,7 +152,7 @@ DisplayPokemartDialogue_: ld a, 99 ld [wMaxItemQuantity], a xor a - ld [hHalveItemPrices], a ; don't halve item prices when buying + ldh [hHalveItemPrices], a ; don't halve item prices when buying call DisplayChooseQuantityMenu inc a jr z, .buyMenuLoop ; if the player closed the choose quantity menu with the B button @@ -162,7 +162,7 @@ DisplayPokemartDialogue_: call CopyStringToCF4B ; copy name to wcf4b ld hl, PokemartTellBuyPriceText call PrintText - coord hl, 14, 7 + hlcoord 14, 7 lb bc, 8, 15 ld a, TWO_OPTION_MENU ld [wTextBoxID], a @@ -228,45 +228,45 @@ DisplayPokemartDialogue_: ret PokemartBuyingGreetingText: - TX_FAR _PokemartBuyingGreetingText - db "@" + text_far _PokemartBuyingGreetingText + text_end PokemartTellBuyPriceText: - TX_FAR _PokemartTellBuyPriceText - db "@" + text_far _PokemartTellBuyPriceText + text_end PokemartBoughtItemText: - TX_FAR _PokemartBoughtItemText - db "@" + text_far _PokemartBoughtItemText + text_end PokemartNotEnoughMoneyText: - TX_FAR _PokemartNotEnoughMoneyText - db "@" + text_far _PokemartNotEnoughMoneyText + text_end PokemartItemBagFullText: - TX_FAR _PokemartItemBagFullText - db "@" + text_far _PokemartItemBagFullText + text_end PokemonSellingGreetingText: - TX_FAR _PokemonSellingGreetingText - db "@" + text_far _PokemonSellingGreetingText + text_end PokemartTellSellPriceText: - TX_FAR _PokemartTellSellPriceText - db "@" + text_far _PokemartTellSellPriceText + text_end PokemartItemBagEmptyText: - TX_FAR _PokemartItemBagEmptyText - db "@" + text_far _PokemartItemBagEmptyText + text_end PokemartUnsellableItemText: - TX_FAR _PokemartUnsellableItemText - db "@" + text_far _PokemartUnsellableItemText + text_end PokemartThankYouText: - TX_FAR _PokemartThankYouText - db "@" + text_far _PokemartThankYouText + text_end PokemartAnythingElseText: - TX_FAR _PokemartAnythingElseText - db "@" + text_far _PokemartAnythingElseText + text_end diff --git a/engine/menu/prize_menu.asm b/engine/events/prize_menu.asm similarity index 84% rename from engine/menu/prize_menu.asm rename to engine/events/prize_menu.asm index 405441c8a..872441199 100755 --- a/engine/menu/prize_menu.asm +++ b/engine/events/prize_menu.asm @@ -1,4 +1,4 @@ -CeladonPrizeMenu: +CeladonPrizeMenu:: ld b, COIN_CASE call IsItemInBag jr nz, .havingCoinCase @@ -22,7 +22,7 @@ CeladonPrizeMenu: ld a, $01 ld [wTopMenuItemX], a call PrintPrizePrice - coord hl, 0, 2 + hlcoord 0, 2 lb bc, 8, 16 call TextBoxBorder call GetPrizeMenuId @@ -42,17 +42,17 @@ CeladonPrizeMenu: ret RequireCoinCaseTextPtr: - TX_FAR _RequireCoinCaseText - TX_WAIT - db "@" + text_far _RequireCoinCaseText + text_waitbutton + text_end ExchangeCoinsForPrizesTextPtr: - TX_FAR _ExchangeCoinsForPrizesText - db "@" + text_far _ExchangeCoinsForPrizesText + text_end WhichPrizeTextPtr: - TX_FAR _WhichPrizeText - db "@" + text_far _WhichPrizeText + text_end GetPrizeMenuId: ; determine which one among the three @@ -63,7 +63,7 @@ GetPrizeMenuId: ; display the three prizes' names ; (distinguishing between Pokemon names ; and Items (specifically TMs) names) - ld a, [hSpriteIndexOrTextID] + ldh a, [hSpriteIndexOrTextID] sub 3 ; prize-texts' id are 3, 4 and 5 ld [wWhichPrizeWindow], a ; prize-texts' id (relative, i.e. 0, 1 or 2) add a @@ -92,75 +92,73 @@ GetPrizeMenuId: ld a, [wPrize1] ld [wd11e], a call GetItemName - coord hl, 2, 4 + hlcoord 2, 4 call PlaceString ld a, [wPrize2] ld [wd11e], a call GetItemName - coord hl, 2, 6 + hlcoord 2, 6 call PlaceString ld a, [wPrize3] ld [wd11e], a call GetItemName - coord hl, 2, 8 + hlcoord 2, 8 call PlaceString jr .putNoThanksText .putMonName ld a, [wPrize1] ld [wd11e], a call GetMonName - coord hl, 2, 4 + hlcoord 2, 4 call PlaceString ld a, [wPrize2] ld [wd11e], a call GetMonName - coord hl, 2, 6 + hlcoord 2, 6 call PlaceString ld a, [wPrize3] ld [wd11e], a call GetMonName - coord hl, 2, 8 + hlcoord 2, 8 call PlaceString .putNoThanksText - coord hl, 2, 10 + hlcoord 2, 10 ld de, NoThanksText call PlaceString ; put prices on the right side of the textbox ld de, wPrize1Price - coord hl, 13, 5 + hlcoord 13, 5 ; reg. c: ; [low nybble] number of bytes -; [bit 765 = %100] space-padding (not zero-padding) +; [bits 765 = %100] space-padding (not zero-padding) ld c, (1 << 7 | 2) -; Function $15CD displays BCD value (same routine -; used by text-command $02) call PrintBCDNumber ld de, wPrize2Price - coord hl, 13, 7 + hlcoord 13, 7 ld c, (1 << 7 | 2) call PrintBCDNumber ld de, wPrize3Price - coord hl, 13, 9 + hlcoord 13, 9 ld c, (1 << 7 | 2) jp PrintBCDNumber NoThanksText: db "NO THANKS@" -INCLUDE "data/prizes.asm" +INCLUDE "data/events/prizes.asm" PrintPrizePrice: - coord hl, 11, 0 + hlcoord 11, 0 lb bc, 1, 7 call TextBoxBorder call UpdateSprites - coord hl, 12, 0 + hlcoord 12, 0 ld de, .CoinString call PlaceString - coord hl, 13, 1 + hlcoord 13, 1 ld de, .SixSpacesString call PlaceString - coord hl, 13, 1 + hlcoord 13, 1 ld de, wPlayerCoins ld c, %10000010 call PrintBCDNumber @@ -180,11 +178,11 @@ LoadCoinsToSubtract: ld hl, wPrize1Price add hl, de ; get selected prize's price xor a - ld [hUnusedCoinsByte], a + ldh [hUnusedCoinsByte], a ld a, [hli] - ld [hCoins], a + ldh [hCoins], a ld a, [hl] - ld [hCoins + 1], a + ldh [hCoins + 1], a ret HandlePrizeChoice: @@ -266,28 +264,28 @@ UnknownPrizeData: db $00,$01,$00,$01,$00,$01,$00,$00,$01 HereYouGoTextPtr: - TX_FAR _HereYouGoText - TX_WAIT - db "@" + text_far _HereYouGoText + text_waitbutton + text_end SoYouWantPrizeTextPtr: - TX_FAR _SoYouWantPrizeText - db "@" + text_far _SoYouWantPrizeText + text_end SorryNeedMoreCoinsText: - TX_FAR _SorryNeedMoreCoinsText - TX_WAIT - db "@" + text_far _SorryNeedMoreCoinsText + text_waitbutton + text_end PrizeRoomBagIsFullTextPtr: - TX_FAR _OopsYouDontHaveEnoughRoomText - TX_WAIT - db "@" + text_far _OopsYouDontHaveEnoughRoomText + text_waitbutton + text_end OhFineThenTextPtr: - TX_FAR _OhFineThenText - TX_WAIT - db "@" + text_far _OhFineThenText + text_waitbutton + text_end GetPrizeMonLevel: ld a, [wcf91] @@ -304,4 +302,4 @@ GetPrizeMonLevel: ld [wCurEnemyLVL], a ret -INCLUDE "data/prize_mon_levels.asm" +INCLUDE "data/events/prize_mon_levels.asm" diff --git a/engine/events/saffron_guards.asm b/engine/events/saffron_guards.asm new file mode 100755 index 000000000..bf30b8c59 --- /dev/null +++ b/engine/events/saffron_guards.asm @@ -0,0 +1,15 @@ +RemoveGuardDrink:: + ld hl, GuardDrinksList +.drinkLoop + ld a, [hli] + ldh [hItemToRemoveID], a + and a + ret z + push hl + ld b, a + call IsItemInBag + pop hl + jr z, .drinkLoop + farjp RemoveItemByID + +INCLUDE "data/items/guard_drink_items.asm" diff --git a/engine/events/set_blackout_map.asm b/engine/events/set_blackout_map.asm new file mode 100644 index 000000000..e84602406 --- /dev/null +++ b/engine/events/set_blackout_map.asm @@ -0,0 +1,25 @@ +SetLastBlackoutMap: +; Set the map to return to when +; blacking out or using Teleport or Dig. +; Safari rest houses don't count. + + push hl + ld hl, SafariZoneRestHouses + ld a, [wCurMap] + ld b, a +.loop + ld a, [hli] + cp -1 + jr z, .notresthouse + cp b + jr nz, .loop + jr .done + +.notresthouse + ld a, [wLastMap] + ld [wLastBlackoutMap], a +.done + pop hl + ret + +INCLUDE "data/maps/rest_house_maps.asm" diff --git a/engine/events/starter_dex.asm b/engine/events/starter_dex.asm new file mode 100755 index 000000000..7cfe9af26 --- /dev/null +++ b/engine/events/starter_dex.asm @@ -0,0 +1,9 @@ +; this function temporarily makes the starters (and Ivysaur) seen +; so that the full Pokedex information gets displayed in Oak's lab +StarterDex: + ld a, 1 << (DEX_BULBASAUR - 1) | 1 << (DEX_IVYSAUR - 1) | 1 << (DEX_CHARMANDER - 1) | 1 << (DEX_SQUIRTLE - 1) + ld [wPokedexOwned], a + predef ShowPokedexData + xor a + ld [wPokedexOwned], a + ret diff --git a/engine/menu/vending_machine.asm b/engine/events/vending_machine.asm similarity index 75% rename from engine/menu/vending_machine.asm rename to engine/events/vending_machine.asm index 37d9b9e7c..6ff6a5e45 100755 --- a/engine/menu/vending_machine.asm +++ b/engine/events/vending_machine.asm @@ -1,4 +1,4 @@ -VendingMachineMenu: +VendingMachineMenu:: ld hl, VendingMachineText1 call PrintText ld a, MONEY_BOX @@ -17,14 +17,14 @@ VendingMachineMenu: ld [wTopMenuItemX], a ld hl, wd730 set 6, [hl] - coord hl, 0, 3 + hlcoord 0, 3 lb bc, 8, 12 call TextBoxBorder call UpdateSprites - coord hl, 2, 5 + hlcoord 2, 5 ld de, DrinkText call PlaceString - coord hl, 9, 6 + hlcoord 9, 6 ld de, DrinkPriceText call PlaceString ld hl, wd730 @@ -36,17 +36,17 @@ VendingMachineMenu: cp 3 ; chose Cancel? jr z, .notThirsty xor a - ld [hMoney], a - ld [hMoney + 2], a + ldh [hMoney], a + ldh [hMoney + 2], a ld a, $2 - ld [hMoney + 1], a + ldh [hMoney + 1], a call HasEnoughMoney jr nc, .enoughMoney ld hl, VendingMachineText4 jp PrintText .enoughMoney call LoadVendingMachineItem - ld a, [hVendingMachineItem] + ldh a, [hVendingMachineItem] ld b, a ld c, 1 call GiveItem @@ -80,8 +80,8 @@ VendingMachineMenu: jp PrintText VendingMachineText1: - TX_FAR _VendingMachineText1 - db "@" + text_far _VendingMachineText1 + text_end DrinkText: db "FRESH WATER" @@ -96,20 +96,20 @@ DrinkPriceText: next "@" VendingMachineText4: - TX_FAR _VendingMachineText4 - db "@" + text_far _VendingMachineText4 + text_end VendingMachineText5: - TX_FAR _VendingMachineText5 - db "@" + text_far _VendingMachineText5 + text_end VendingMachineText6: - TX_FAR _VendingMachineText6 - db "@" + text_far _VendingMachineText6 + text_end VendingMachineText7: - TX_FAR _VendingMachineText7 - db "@" + text_far _VendingMachineText7 + text_end LoadVendingMachineItem: ld hl, VendingPrices @@ -120,19 +120,13 @@ LoadVendingMachineItem: ld e, a add hl, de ld a, [hli] - ld [hVendingMachineItem], a + ldh [hVendingMachineItem], a ld a, [hli] - ld [hVendingMachinePrice], a + ldh [hVendingMachinePrice], a ld a, [hli] - ld [hVendingMachinePrice + 1], a + ldh [hVendingMachinePrice + 1], a ld a, [hl] - ld [hVendingMachinePrice + 2], a + ldh [hVendingMachinePrice + 2], a ret -VendingPrices: - db FRESH_WATER - money 200 - db SODA_POP - money 300 - db LEMONADE - money 350 +INCLUDE "data/items/vending_prices.asm" diff --git a/engine/evos_moves.asm b/engine/evos_moves.asm deleted file mode 100755 index 8ec2c4c74..000000000 --- a/engine/evos_moves.asm +++ /dev/null @@ -1,668 +0,0 @@ -; try to evolve the mon in [wWhichPokemon] -TryEvolvingMon: -EvolveTradeMon: - ld hl, wCanEvolveFlags - xor a - ld [hl], a - ld a, [wWhichPokemon] - ld c, a - ld b, FLAG_SET - call Evolution_FlagAction - -; this is only called after battle -; it is supposed to do level up evolutions, though there is a bug that allows item evolutions to occur -EvolutionAfterBattle: - ld a, [hTilesetType] - push af - xor a - ld [wEvolutionOccurred], a - dec a - ld [wWhichPokemon], a - push hl - push bc - push de - ld hl, wPartyCount - push hl - -Evolution_PartyMonLoop: ; loop over party mons - ld hl, wWhichPokemon - inc [hl] - pop hl - inc hl - ld a, [hl] - cp $ff ; have we reached the end of the party? - jp z, .done - ld [wEvoOldSpecies], a - push hl - ld a, [wWhichPokemon] - ld c, a - ld hl, wCanEvolveFlags - ld b, FLAG_TEST - call Evolution_FlagAction - ld a, c - and a ; is the mon's bit set? - jp z, Evolution_PartyMonLoop ; if not, go to the next mon - ld a, [wEvoOldSpecies] - dec a - ld b, 0 - ld hl, EvosMovesPointerTable - add a - rl b - ld c, a - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push hl - ld a, [wcf91] - push af - xor a ; PLAYER_PARTY_DATA - ld [wMonDataLocation], a - call LoadMonData - pop af - ld [wcf91], a - pop hl - -.evoEntryLoop ; loop over evolution entries - ld a, [hli] - and a ; have we reached the end of the evolution data? - jr z, Evolution_PartyMonLoop - ld b, a ; evolution type - cp EV_TRADE - jr z, .checkTradeEvo -; not trade evolution - ld a, [wLinkState] - cp LINK_STATE_TRADING - jr z, Evolution_PartyMonLoop ; if trading, go the next mon - ld a, b - cp EV_ITEM - jr z, .checkItemEvo - ld a, [wForceEvolution] - and a - jr nz, Evolution_PartyMonLoop - ld a, b - cp EV_LEVEL - jr z, .checkLevel -.checkTradeEvo - ld a, [wLinkState] - cp LINK_STATE_TRADING - jp nz, .nextEvoEntry1 ; if not trading, go to the next evolution entry - ld a, [hli] ; level requirement - ld b, a - ld a, [wLoadedMonLevel] - cp b ; is the mon's level greater than the evolution requirement? - jp c, Evolution_PartyMonLoop ; if so, go the next mon - jr .doEvolution -.checkItemEvo - ld a, [wIsInBattle] ; are we in battle? - and a - ld a, [hli] - jp nz, .nextEvoEntry1 ; don't evolve if we're in a battle as wcf91 could be holding the last mon sent out - - ld b, a ; evolution item - ld a, [wcf91] ; last item used - cp b ; was the evolution item in this entry used? - jp nz, .nextEvoEntry1 ; if not, go to the next evolution entry -.checkLevel - ld a, [hli] ; level requirement - ld b, a - ld a, [wLoadedMonLevel] - cp b ; is the mon's level greater than the evolution requirement? - jp c, .nextEvoEntry2 ; if so, go the next evolution entry -.doEvolution - ld [wCurEnemyLVL], a - ld a, 1 - ld [wEvolutionOccurred], a - push hl - ld a, [hl] - ld [wEvoNewSpecies], a - ld a, [wWhichPokemon] - ld hl, wPartyMonNicks - call GetPartyMonName - call CopyStringToCF4B - ld hl, IsEvolvingText - call PrintText - ld c, 50 - call DelayFrames - xor a - ld [H_AUTOBGTRANSFERENABLED], a - coord hl, 0, 0 - lb bc, 12, 20 - call ClearScreenArea - ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a - ld a, $ff - ld [wUpdateSpritesEnabled], a - call ClearSprites - callab EvolveMon - jp c, CancelledEvolution - ld hl, EvolvedText - call PrintText - pop hl - ld a, [hl] - ld [wd0b5], a - ld [wLoadedMonSpecies], a - ld [wEvoNewSpecies], a - ld a, MONSTER_NAME - ld [wNameListType], a - ld a, BANK(MonsterNames) ; bank is not used for monster names - ld [wPredefBank], a - call GetName - push hl - ld hl, IntoText - call PrintText_NoCreatingTextBox - ld a, SFX_GET_ITEM_2 - call PlaySoundWaitForCurrent - call WaitForSoundToFinish - ld c, 40 - call DelayFrames - call ClearScreen - call RenameEvolvedMon - ld a, [wd11e] - push af - ld a, [wd0b5] - ld [wd11e], a - predef IndexToPokedex - ld a, [wd11e] - dec a - ld hl, BaseStats - ld bc, MonBaseStatsEnd - MonBaseStats - call AddNTimes - ld de, wMonHeader - call CopyData - ld a, [wd0b5] - ld [wMonHIndex], a - pop af - ld [wd11e], a - ld hl, wLoadedMonHPExp - 1 - ld de, wLoadedMonStats - ld b, $1 - call CalcStats - ld a, [wWhichPokemon] - ld hl, wPartyMon1 - ld bc, wPartyMon2 - wPartyMon1 - call AddNTimes - ld e, l - ld d, h - push hl - push bc - ld bc, wPartyMon1MaxHP - wPartyMon1 - add hl, bc - ld a, [hli] - ld b, a - ld c, [hl] - ld hl, wLoadedMonMaxHP + 1 - ld a, [hld] - sub c - ld c, a - ld a, [hl] - sbc b - ld b, a - ld hl, wLoadedMonHP + 1 - ld a, [hl] - add c - ld [hld], a - ld a, [hl] - adc b - ld [hl], a - dec hl - pop bc - call CopyData - ld a, [wd0b5] - ld [wd11e], a - xor a - ld [wMonDataLocation], a - call LearnMoveFromLevelUp - pop hl - predef SetPartyMonTypes - ld a, [wIsInBattle] - and a - call z, Evolution_ReloadTilesetTilePatterns - predef IndexToPokedex - ld a, [wd11e] - dec a - ld c, a - ld b, FLAG_SET - ld hl, wPokedexOwned - push bc - call Evolution_FlagAction - pop bc - ld hl, wPokedexSeen - call Evolution_FlagAction - pop de - pop hl - ld a, [wLoadedMonSpecies] - ld [hl], a - push hl - ld l, e - ld h, d - jr .nextEvoEntry2 - -.nextEvoEntry1 - inc hl - -.nextEvoEntry2 - inc hl - jp .evoEntryLoop - -.done - pop de - pop bc - pop hl - pop af - ld [hTilesetType], a - ld a, [wLinkState] - cp LINK_STATE_TRADING - ret z - ld a, [wIsInBattle] - and a - ret nz - ld a, [wEvolutionOccurred] - and a - call nz, PlayDefaultMusic - ret - -RenameEvolvedMon: -; Renames the mon to its new, evolved form's standard name unless it had a -; nickname, in which case the nickname is kept. - ld a, [wd0b5] - push af - ld a, [wMonHIndex] - ld [wd0b5], a - call GetName - pop af - ld [wd0b5], a - ld hl, wcd6d - ld de, wcf4b -.compareNamesLoop - ld a, [de] - inc de - cp [hl] - inc hl - ret nz - cp "@" - jr nz, .compareNamesLoop - ld a, [wWhichPokemon] - ld bc, NAME_LENGTH - ld hl, wPartyMonNicks - call AddNTimes - push hl - call GetName - ld hl, wcd6d - pop de - jp CopyData - -CancelledEvolution: - ld hl, StoppedEvolvingText - call PrintText - call ClearScreen - pop hl - call Evolution_ReloadTilesetTilePatterns - jp Evolution_PartyMonLoop - -EvolvedText: - TX_FAR _EvolvedText - db "@" - -IntoText: - TX_FAR _IntoText - db "@" - -StoppedEvolvingText: - TX_FAR _StoppedEvolvingText - db "@" - -IsEvolvingText: - TX_FAR _IsEvolvingText - db "@" - -Evolution_ReloadTilesetTilePatterns: - ld a, [wLinkState] - cp LINK_STATE_TRADING - ret z - jp ReloadTilesetTilePatterns - -LearnMoveFromLevelUp: - ld a, [wd11e] ; species - ld [wcf91], a - call GetMonLearnset -.learnSetLoop ; loop over the learn set until we reach a move that is learnt at the current level or the end of the list - ld a, [hli] - and a ; have we reached the end of the learn set? - jr z, .done ; if we've reached the end of the learn set, jump - ld b, a ; level the move is learnt at - ld a, [wCurEnemyLVL] - cp b ; is the move learnt at the mon's current level? - ld a, [hli] ; move ID - jr nz, .learnSetLoop - ld d, a ; ID of move to learn - ld a, [wMonDataLocation] - and a - jr nz, .next -; If [wMonDataLocation] is 0 (PLAYER_PARTY_DATA), get the address of the mon's -; current moves in party data. Every call to this function sets -; [wMonDataLocation] to 0 because other data locations are not supported. -; If it is not 0, this function will not work properly. - ld hl, wPartyMon1Moves - ld a, [wWhichPokemon] - ld bc, wPartyMon2 - wPartyMon1 - call AddNTimes -.next - ld b, NUM_MOVES -.checkCurrentMovesLoop ; check if the move to learn is already known - ld a, [hli] - cp d - jr z, .done ; if already known, jump - dec b - jr nz, .checkCurrentMovesLoop - ld a, d - ld [wMoveNum], a - ld [wd11e], a - call GetMoveName - call CopyStringToCF4B - predef LearnMove - ld a, b - and a - jr z, .done - callab IsThisPartymonStarterPikachu_Party - jr nc, .done - ld a, [wMoveNum] - cp THUNDERBOLT - jr z, .foundThunderOrThunderbolt - cp THUNDER - jr nz, .done -.foundThunderOrThunderbolt - ld a, $5 - ld [wd49c], a - ld a, $85 - ld [wPikachuMood], a -.done - ld a, [wcf91] - ld [wd11e], a - ret - -Func_3b079: - ld a, [wcf91] - push af - call Func_3b0a2 - jr c, .asm_3b09c - - call Func_3b10f - jr nc, .asm_3b096 - - call Func_3b0a2 - jr c, .asm_3b09c - - call Func_3b10f - jr nc, .asm_3b096 - - call Func_3b0a2 - jr c, .asm_3b09c -.asm_3b096 - pop af - ld [wcf91], a - and a - ret -.asm_3b09c - pop af - ld [wcf91], a - scf - ret - -Func_3b0a2: -; XXX what is wcf91 entering this function? - ld a, [wd11e] - ld [wMoveNum], a - predef CanLearnTM - ld a, c - and a - jr nz, .asm_3b0ec - ld hl, Pointer_3b0ee - ld a, [wcf91] - ld de, $1 - call IsInArray - jr c, .asm_3b0d2 - ld a, $ff - ld [wMonHGrowthRate], a - ld a, [wd11e] - ld hl, wMonHMoves - ld de, $1 - call IsInArray - jr c, .asm_3b0ec -.asm_3b0d2 - ld a, [wd11e] - ld d, a - call GetMonLearnset -.loop - ld a, [hli] - and a - jr z, .asm_3b0ea - ld b, a - ld a, [wCurEnemyLVL] - cp b - jr c, .asm_3b0ea - ld a, [hli] - cp d - jr z, .asm_3b0ec - jr .loop -.asm_3b0ea - and a - ret -.asm_3b0ec - scf - ret - -Pointer_3b0ee: - db NIDOKING - db IVYSAUR - db EXEGGUTOR - db GENGAR - db NIDOQUEEN - db ARCANINE - db GYARADOS - db BLASTOISE - db GOLEM - db DRAGONITE - db NINETALES - db DRAGONAIR - db KABUTOPS - db OMASTAR - db JIGGLYPUFF - db FLAREON - db JOLTEON - db VAPOREON - db BEEDRILL - db BUTTERFREE - db MACHAMP - db CLOYSTER - db CLEFABLE - db ALAKAZAM - db STARMIE - db VENUSAUR - db TENTACRUEL - db CHARMELEON - db WARTORTLE - db CHARIZARD - db VILEPLUME - db VICTREEBEL - db $ff - -Func_3b10f: - ld c, $0 -.asm_3b111 - ld hl, EvosMovesPointerTable - ld b, $0 - add hl, bc - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a -.asm_3b11b - ld a, [hli] - and a - jr z, .asm_3b130 - cp $2 - jr nz, .asm_3b124 - inc hl -.asm_3b124 - inc hl - ld a, [wcf91] - cp [hl] - jr z, .asm_3b138 - inc hl - ld a, [hl] - and a - jr nz, .asm_3b11b -.asm_3b130 - inc c - ld a, c - cp VICTREEBEL - jr c, .asm_3b111 - and a - ret -.asm_3b138 - inc c - ld a, c - ld [wcf91], a - scf - ret - -; writes the moves a mon has at level [wCurEnemyLVL] to [de] -; move slots are being filled up sequentially and shifted if all slots are full -WriteMonMoves: - call GetPredefRegisters - push hl - push de - push bc - call GetMonLearnset - jr .firstMove -.nextMove - pop de -.nextMove2 - inc hl -.firstMove - ld a, [hli] ; read level of next move in learnset - and a - jp z, .done ; end of list - ld b, a - ld a, [wCurEnemyLVL] - cp b - jp c, .done ; mon level < move level (assumption: learnset is sorted by level) - ld a, [wLearningMovesFromDayCare] - and a - jr z, .skipMinLevelCheck - ld a, [wDayCareStartLevel] - cp b - jr nc, .nextMove2 ; min level >= move level - -.skipMinLevelCheck - -; check if the move is already known - push de - ld c, NUM_MOVES -.alreadyKnowsCheckLoop - ld a, [de] - inc de - cp [hl] - jr z, .nextMove - dec c - jr nz, .alreadyKnowsCheckLoop - -; try to find an empty move slot - pop de - push de - ld c, NUM_MOVES -.findEmptySlotLoop - ld a, [de] - and a - jr z, .writeMoveToSlot2 - inc de - dec c - jr nz, .findEmptySlotLoop - -; no empty move slots found - pop de - push de - push hl - ld h, d - ld l, e - call WriteMonMoves_ShiftMoveData ; shift all moves one up (deleting move 1) - ld a, [wLearningMovesFromDayCare] - and a - jr z, .writeMoveToSlot - -; shift PP as well if learning moves from day care - push de - ld bc, wPartyMon1PP - (wPartyMon1Moves + 3) - add hl, bc - ld d, h - ld e, l - call WriteMonMoves_ShiftMoveData ; shift all move PP data one up - pop de - -.writeMoveToSlot - pop hl -.writeMoveToSlot2 - ld a, [hl] - ld [de], a - ld a, [wLearningMovesFromDayCare] - and a - jr z, .nextMove - -; write move PP value if learning moves from day care - push hl - ld a, [hl] - ld hl, wPartyMon1PP - wPartyMon1Moves - add hl, de - push hl - dec a - ld hl, Moves - ld bc, MoveEnd - Moves - call AddNTimes - ld de, wBuffer - ld a, BANK(Moves) - call FarCopyData - ld a, [wBuffer + 5] - pop hl - ld [hl], a - pop hl - jr .nextMove - -.done - pop bc - pop de - pop hl - ret - -; shifts all move data one up (freeing 4th move slot) -WriteMonMoves_ShiftMoveData: - ld c, NUM_MOVES - 1 -.loop - inc de - ld a, [de] - ld [hli], a - dec c - jr nz, .loop - ret - -Evolution_FlagAction: - predef_jump FlagActionPredef - -GetMonLearnset: - ld hl, EvosMovesPointerTable - ld b, 0 - ld a, [wcf91] - dec a - ld c, a - add hl, bc - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a -.skipEvolutionDataLoop ; loop to skip past the evolution data, which comes before the move data - ld a, [hli] - and a ; have we reached the end of the evolution data? - jr nz, .skipEvolutionDataLoop ; if not, jump back up - ret - -INCLUDE "data/evos_moves.asm" diff --git a/engine/experience.asm b/engine/experience.asm deleted file mode 100755 index 2efc13de7..000000000 --- a/engine/experience.asm +++ /dev/null @@ -1,160 +0,0 @@ -; calculates the level a mon should be based on its current exp -CalcLevelFromExperience: - ld a, [wLoadedMonSpecies] - ld [wd0b5], a - call GetMonHeader - ld d, $1 ; init level to 1 -.loop - inc d ; increment level - call CalcExperience - push hl - ld hl, wLoadedMonExp + 2 ; current exp -; compare exp needed for level d with current exp - ld a, [hExperience + 2] - ld c, a - ld a, [hld] - sub c - ld a, [hExperience + 1] - ld c, a - ld a, [hld] - sbc c - ld a, [hExperience] - ld c, a - ld a, [hl] - sbc c - pop hl - jr nc, .loop ; if exp needed for level d is not greater than exp, try the next level - dec d ; since the exp was too high on the last loop iteration, go back to the previous value and return - ret - -; calculates the amount of experience needed for level d -CalcExperience: - ld a, [wMonHGrowthRate] - add a - add a - ld c, a - ld b, 0 - ld hl, GrowthRateTable - add hl, bc - call CalcDSquared - ld a, d - ld [H_MULTIPLIER], a - call Multiply - ld a, [hl] - and $f0 - swap a - ld [H_MULTIPLIER], a - call Multiply - ld a, [hli] - and $f - ld [H_DIVISOR], a - ld b, $4 - call Divide - ld a, [H_QUOTIENT + 1] - push af - ld a, [H_QUOTIENT + 2] - push af - ld a, [H_QUOTIENT + 3] - push af - call CalcDSquared - ld a, [hl] - and $7f - ld [H_MULTIPLIER], a - call Multiply - ld a, [H_PRODUCT + 1] - push af - ld a, [H_PRODUCT + 2] - push af - ld a, [H_PRODUCT + 3] - push af - ld a, [hli] - push af - xor a - ld [H_MULTIPLICAND], a - ld [H_MULTIPLICAND + 1], a - ld a, d - ld [H_MULTIPLICAND + 2], a - ld a, [hli] - ld [H_MULTIPLIER], a - call Multiply - ld b, [hl] - ld a, [H_PRODUCT + 3] - sub b - ld [H_PRODUCT + 3], a - ld b, $0 - ld a, [H_PRODUCT + 2] - sbc b - ld [H_PRODUCT + 2], a - ld a, [H_PRODUCT + 1] - sbc b - ld [H_PRODUCT + 1], a -; The difference of the linear term and the constant term consists of 3 bytes -; starting at H_PRODUCT + 1. Below, hExperience (an alias of that address) will -; be used instead for the further work of adding or subtracting the squared -; term and adding the cubed term. - pop af - and $80 - jr nz, .subtractSquaredTerm ; check sign - pop bc - ld a, [hExperience + 2] - add b - ld [hExperience + 2], a - pop bc - ld a, [hExperience + 1] - adc b - ld [hExperience + 1], a - pop bc - ld a, [hExperience] - adc b - ld [hExperience], a - jr .addCubedTerm -.subtractSquaredTerm - pop bc - ld a, [hExperience + 2] - sub b - ld [hExperience + 2], a - pop bc - ld a, [hExperience + 1] - sbc b - ld [hExperience + 1], a - pop bc - ld a, [hExperience] - sbc b - ld [hExperience], a -.addCubedTerm - pop bc - ld a, [hExperience + 2] - add b - ld [hExperience + 2], a - pop bc - ld a, [hExperience + 1] - adc b - ld [hExperience + 1], a - pop bc - ld a, [hExperience] - adc b - ld [hExperience], a - ret - -; calculates d*d -CalcDSquared: - xor a - ld [H_MULTIPLICAND], a - ld [H_MULTIPLICAND + 1], a - ld a, d - ld [H_MULTIPLICAND + 2], a - ld [H_MULTIPLIER], a - jp Multiply - -; each entry has the following scheme: -; %AAAABBBB %SCCCCCCC %DDDDDDDD %EEEEEEEE -; resulting in -; (a*n^3)/b + sign*c*n^2 + d*n - e -; where sign = -1 <=> S=1 -GrowthRateTable: - db $11,$00,$00,$00 ; medium fast n^3 - db $34,$0A,$00,$1E ; (unused?) 3/4 n^3 + 10 n^2 - 30 - db $34,$14,$00,$46 ; (unused?) 3/4 n^3 + 20 n^2 - 70 - db $65,$8F,$64,$8C ; medium slow: 6/5 n^3 - 15 n^2 + 100 n - 140 - db $45,$00,$00,$00 ; fast: 4/5 n^3 - db $54,$00,$00,$00 ; slow: 5/4 n^3 diff --git a/engine/game_corner_slots.asm b/engine/game_corner_slots.asm deleted file mode 100755 index 3c5b3a10b..000000000 --- a/engine/game_corner_slots.asm +++ /dev/null @@ -1,54 +0,0 @@ -StartSlotMachine: - ld a, [wHiddenObjectFunctionArgument] - cp $fd - jr z, .printOutOfOrder - cp $fe - jr z, .printOutToLunch - cp $ff - jr z, .printSomeonesKeys - callba AbleToPlaySlotsCheck - ld a, [wCanPlaySlots] - and a - ret z - ld a, [wLuckySlotHiddenObjectIndex] - ld b, a - ld a, [wHiddenObjectIndex] - inc a - cp b - jr z, .match - ld a, 253 - jr .next -.match - ld a, 250 -.next - ld [wSlotMachineSevenAndBarModeChance], a - ld a, [H_LOADEDROMBANK] - ld [wSlotMachineSavedROMBank], a - call PromptUserToPlaySlots - ret -.printOutOfOrder - tx_pre_id GameCornerOutOfOrderText - jr .printText -.printOutToLunch - tx_pre_id GameCornerOutToLunchText - jr .printText -.printSomeonesKeys - tx_pre_id GameCornerSomeonesKeysText -.printText - push af - call EnableAutoTextBoxDrawing - pop af - call PrintPredefTextID - ret - -GameCornerOutOfOrderText: - TX_FAR _GameCornerOutOfOrderText - db "@" - -GameCornerOutToLunchText: - TX_FAR _GameCornerOutToLunchText - db "@" - -GameCornerSomeonesKeysText: - TX_FAR _GameCornerSomeonesKeysText - db "@" diff --git a/engine/game_corner_slots2.asm b/engine/game_corner_slots2.asm deleted file mode 100755 index 6bbaf72df..000000000 --- a/engine/game_corner_slots2.asm +++ /dev/null @@ -1,31 +0,0 @@ -AbleToPlaySlotsCheck: - ld a, [wSpriteStateData1 + 2] - and $8 - jr z, .done ; not able - ld b, COIN_CASE - predef GetQuantityOfItemInBag - ld a, b - and a - ld b, (GameCornerCoinCaseText_id - TextPredefs) / 2 + 1 - jr z, .printCoinCaseRequired - ld hl, wPlayerCoins - ld a, [hli] - or [hl] - jr nz, .done ; able to play - ld b, (GameCornerNoCoinsText_id - TextPredefs) / 2 + 1 -.printCoinCaseRequired - call EnableAutoTextBoxDrawing - ld a, b - call PrintPredefTextID - xor a -.done - ld [wCanPlaySlots], a - ret - -GameCornerCoinCaseText: - TX_FAR _GameCornerCoinCaseText - db "@" - -GameCornerNoCoinsText: - TX_FAR _GameCornerNoCoinsText - db "@" diff --git a/engine/gamefreak.asm b/engine/gamefreak.asm deleted file mode 100755 index 5472a56e3..000000000 --- a/engine/gamefreak.asm +++ /dev/null @@ -1,263 +0,0 @@ -LoadShootingStarGraphics: - ld a, $f9 - ld [rOBP0], a - ld a, $a4 - ld [rOBP1], a - call UpdateGBCPal_OBP0 - call UpdateGBCPal_OBP1 - ld de, AnimationTileset2 + $30 ; star tile (top left quadrant) - ld hl, vChars1 + $200 - lb bc, BANK(AnimationTileset2), $01 - call CopyVideoData - ld de, AnimationTileset2 + $130 ; star tile (bottom left quadrant) - ld hl, vChars1 + $210 - lb bc, BANK(AnimationTileset2), $01 - call CopyVideoData - ld de, FallingStar - ld hl, vChars1 + $220 - lb bc, BANK(FallingStar), (FallingStarEnd - FallingStar) / $10 - call CopyVideoData - ld hl, GameFreakLogoOAMData - ld de, wOAMBuffer + $60 - ld bc, GameFreakLogoOAMDataEnd - GameFreakLogoOAMData - call CopyData - ld hl, GameFreakShootingStarOAMData - ld de, wOAMBuffer - ld bc, GameFreakShootingStarOAMDataEnd - GameFreakShootingStarOAMData - jp CopyData - -AnimateShootingStar: - call LoadShootingStarGraphics - ld a, SFX_SHOOTING_STAR - call PlaySound - -; Move the big star down and left across the screen. - ld hl, wOAMBuffer - lb bc, $a0, $4 -.bigStarLoop - push hl - push bc -.bigStarInnerLoop - ld a, [hl] ; Y - add 4 - ld [hli], a - ld a, [hl] ; X - add -4 - ld [hli], a - inc hl - inc hl - dec c - jr nz, .bigStarInnerLoop - ld c, 1 - call CheckForUserInterruption - pop bc - pop hl - ret c - ld a, [hl] - cp 80 - jr nz, .next - jr .bigStarLoop -.next - cp b - jr nz, .bigStarLoop - -; Clear big star OAM. - ld hl, wOAMBuffer - ld c, 4 - ld de, 4 -.clearOAMLoop - ld [hl], 160 - add hl, de - dec c - jr nz, .clearOAMLoop - -; Make Gamefreak logo flash. - ld b, 3 -.flashLogoLoop - ld hl, rOBP0 - rrc [hl] - rrc [hl] - call UpdateGBCPal_OBP0 - ld c, 10 - call CheckForUserInterruption - ret c - dec b - jr nz, .flashLogoLoop - -; Copy 24 instances of the small stars OAM data. -; Note that their coordinates put them off-screen. - ld de, wOAMBuffer - ld a, 24 -.initSmallStarsOAMLoop - push af - ld hl, SmallStarsOAM - ld bc, SmallStarsOAMEnd - SmallStarsOAM - call CopyData - pop af - dec a - jr nz, .initSmallStarsOAMLoop - -; Animate the small stars falling from the Gamefreak logo. - xor a - ld [wMoveDownSmallStarsOAMCount], a - ld hl, SmallStarsWaveCoordsPointerTable - ld c, 6 -.smallStarsLoop - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push bc - push hl - ld hl, wOAMBuffer + $50 - ld c, 4 -.smallStarsInnerLoop ; introduce new wave of 4 small stars OAM entries - ld a, [de] - cp $ff - jr z, .next2 - ld [hli], a ; Y - inc de - ld a, [de] - ld [hli], a ; X - inc de - inc hl - push bc - ld a, [de] - ld b,a - ld a, [hl] - and $f0 - or b - ld [hl], a - inc de - pop bc - inc hl - dec c - jr nz, .smallStarsInnerLoop - ld a, [wMoveDownSmallStarsOAMCount] - cp 24 - jr z, .next2 - add 6 ; should be 4, but the extra 2 aren't visible on screen - ld [wMoveDownSmallStarsOAMCount], a -.next2 - call MoveDownSmallStars - push af - -; shift the existing OAM entries down to make room for the next wave - ld hl, wOAMBuffer + $10 - ld de, wOAMBuffer - ld bc, $50 - call CopyData - - pop af - pop hl - pop bc - ret c - dec c - jr nz, .smallStarsLoop - and a - ret - -SmallStarsOAM: - db $00,$00,$A2,$90 -SmallStarsOAMEnd: - -SmallStarsWaveCoordsPointerTable: - dw SmallStarsWave1Coords - dw SmallStarsWave2Coords - dw SmallStarsWave3Coords - dw SmallStarsWave4Coords - dw SmallStarsEmptyWave - dw SmallStarsEmptyWave - -; The stars that fall from the Gamefreak logo come in 4 waves of 4 OAM entries. -; These arrays contain the Y and X coordinates of each OAM entry. - -SmallStarsWave1Coords: - db $68,$30 - db $05,$68 - db $40,$05 - db $68,$58 - db $04,$68 - db $78,$07 - -SmallStarsWave2Coords: - db $68,$38 - db $05,$68 - db $48,$06 - db $68,$60 - db $04,$68 - db $70,$07 - -SmallStarsWave3Coords: - db $68,$34 - db $05,$68 - db $4c,$06 - db $68,$54 - db $06,$68 - db $64,$07 - -SmallStarsWave4Coords: - db $68,$3c - db $05,$68 - db $5c,$04 - db $68,$6c - db $07,$68 - db $74,$07 - -SmallStarsEmptyWave: - db $FF - -MoveDownSmallStars: - ld b, 8 -.loop - ld hl, wOAMBuffer + $5c - ld a, [wMoveDownSmallStarsOAMCount] - ld de, -4 - ld c, a -.innerLoop - inc [hl] ; Y - add hl, de - dec c - jr nz, .innerLoop -; Toggle the palette so that the lower star in the small stars tile blinks in -; and out. - ld a, [rOBP1] - xor %10100000 - ld [rOBP1], a - call UpdateGBCPal_OBP1 - ld c, 3 - call CheckForUserInterruption - ret c - dec b - jr nz, .loop - ret - -GameFreakLogoOAMData: - db $48,$50,$8D,$00 - db $48,$58,$8E,$00 - db $50,$50,$8F,$00 - db $50,$58,$90,$00 - db $58,$50,$91,$00 - db $58,$58,$92,$00 - db $60,$30,$80,$00 - db $60,$38,$81,$00 - db $60,$40,$82,$00 - db $60,$48,$83,$00 - db $60,$50,$93,$00 - db $60,$58,$84,$00 - db $60,$60,$85,$00 - db $60,$68,$83,$00 - db $60,$70,$81,$00 - db $60,$78,$86,$00 -GameFreakLogoOAMDataEnd: - -GameFreakShootingStarOAMData: - db $00,$A0,$A0,$14 - db $00,$A8,$A0,$34 - db $08,$A0,$A1,$14 - db $08,$A8,$A1,$34 -GameFreakShootingStarOAMDataEnd: - -FallingStar: - INCBIN "gfx/falling_star.2bpp" -FallingStarEnd: diff --git a/engine/hp_bar.asm b/engine/gfx/hp_bar.asm similarity index 95% rename from engine/hp_bar.asm rename to engine/gfx/hp_bar.asm index 566a7b61f..b47b1fbda 100755 --- a/engine/hp_bar.asm +++ b/engine/gfx/hp_bar.asm @@ -6,7 +6,7 @@ HPBarLength: GetHPBarLength: push hl xor a - ld hl, H_MULTIPLICAND + ld hl, hMultiplicand ld [hli], a ld a, b ld [hli], a @@ -21,22 +21,22 @@ GetHPBarLength: rr e srl d rr e - ld a, [H_MULTIPLICAND+1] + ldh a, [hMultiplicand+1] ld b, a - ld a, [H_MULTIPLICAND+2] + ldh a, [hMultiplicand+2] srl b ; divide multiplication result as well rr a srl b rr a - ld [H_MULTIPLICAND+2], a + ldh [hMultiplicand+2], a ld a, b - ld [H_MULTIPLICAND+1], a + ldh [hMultiplicand+1], a .maxHPSmaller256 ld a, e - ld [H_DIVISOR], a + ldh [hDivisor], a ld b, $4 call Divide - ld a, [H_MULTIPLICAND+2] + ldh a, [hMultiplicand+2] ld e, a ; e = bc * 48 / de (num of pixels of HP bar) pop hl and a @@ -214,7 +214,7 @@ UpdateHPBar_PrintHPNumber: ld [wHPBarTempHP], a push hl ld de, $15 - ld a, [hFlags_0xFFFA] + ldh a, [hFlagsFFFA] bit 0, a jr z, .next ld de, $9 diff --git a/engine/load_pokedex_tiles.asm b/engine/gfx/load_pokedex_tiles.asm similarity index 79% rename from engine/load_pokedex_tiles.asm rename to engine/gfx/load_pokedex_tiles.asm index 70bcf04df..a3f691714 100755 --- a/engine/load_pokedex_tiles.asm +++ b/engine/gfx/load_pokedex_tiles.asm @@ -2,10 +2,10 @@ LoadPokedexTilePatterns: call LoadHpBarAndStatusTilePatterns ld de, PokedexTileGraphics - ld hl, vChars2 + $600 + ld hl, vChars2 tile $60 lb bc, BANK(PokedexTileGraphics), (PokedexTileGraphicsEnd - PokedexTileGraphics) / $10 call CopyVideoData ld de, PokeballTileGraphics - ld hl, vChars2 + $720 - lb bc, BANK(PokeballTileGraphics), $01 + ld hl, vChars2 tile $72 + lb bc, BANK(PokeballTileGraphics), 1 jp CopyVideoData ; load pokeball tile for marking caught mons diff --git a/engine/gfx/mon_icons.asm b/engine/gfx/mon_icons.asm new file mode 100755 index 000000000..6e2cf0bad --- /dev/null +++ b/engine/gfx/mon_icons.asm @@ -0,0 +1,307 @@ +AnimatePartyMon_ForceSpeed1: + xor a + ld [wCurrentMenuItem], a + ld b, a + inc a + jr GetAnimationSpeed + +; wPartyMenuHPBarColors contains the party mon's health bar colors +; 0: green +; 1: yellow +; 2: red +AnimatePartyMon:: + ld hl, wPartyMenuHPBarColors + ld a, [wCurrentMenuItem] + ld c, a + ld b, 0 + add hl, bc + ld a, [hl] + +GetAnimationSpeed: + ld c, a + ld hl, PartyMonSpeeds + add hl, bc + ld a, [wOnSGB] + xor $1 + add [hl] + ld c, a + add a + ld b, a + ld a, [wAnimCounter] + and a + jr z, .resetSprites + cp c + jr z, .animateSprite +.incTimer + inc a + cp b + jr nz, .skipResetTimer + xor a ; reset timer +.skipResetTimer + ld [wAnimCounter], a + jp DelayFrame +.resetSprites + push bc + ld hl, wMonPartySpritesSavedOAM + ld de, wOAMBuffer + ld bc, $60 + call CopyData + pop bc + xor a + jr .incTimer +.animateSprite + push bc + ld hl, wOAMBuffer + $02 ; OAM tile id + ld bc, $10 + ld a, [wCurrentMenuItem] + call AddNTimes + ld c, ICONOFFSET + ld a, [hl] + cp ICON_BALL << 2 + jr z, .editCoords + cp ICON_HELIX << 2 + jr nz, .editTileIDS +; ICON_BALL and ICON_HELIX only shake up and down +.editCoords + dec hl + dec hl ; dec hl to the OAM y coord + ld c, $1 ; amount to increase the y coord by +; otherwise, load a second sprite frame +.editTileIDS + ld b, $4 + ld de, $4 +.loop + ld a, [hl] + add c + ld [hl], a + add hl, de + dec b + jr nz, .loop + pop bc + ld a, c + jr .incTimer + +; Party mon animations cycle between 2 frames. +; The members of the PartyMonSpeeds array specify the number of V-blanks +; that each frame lasts for green HP, yellow HP, and red HP in order. +; On the naming screen, the yellow HP speed is always used. +PartyMonSpeeds: + db 5, 16, 32 + +LoadMonPartySpriteGfx: +; Load mon party sprite tile patterns into VRAM during V-blank. + ld hl, MonPartySpritePointers + ld a, $1e + +LoadAnimSpriteGfx: +; Load animated sprite tile patterns into VRAM during V-blank. hl is the address +; of an array of structures that contain arguments for CopyVideoData and a is +; the number of structures in the array. + ld bc, $0 +.loop + push af + push bc + push hl + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld h, [hl] + ld l, a + call CopyVideoData + pop hl + pop bc + ld a, $6 + add c + ld c, a + pop af + dec a + jr nz, .loop + ret + +LoadMonPartySpriteGfxWithLCDDisabled: +; Load mon party sprite tile patterns into VRAM immediately by disabling the +; LCD. + call DisableLCD + ld hl, MonPartySpritePointers + ld a, $1e + ld bc, $0 +.loop + push af + push bc + push hl + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push de + ld a, [hli] + ld c, a + swap c + ld b, $0 + ld a, [hli] + ld e, [hl] + inc hl + ld d, [hl] + pop hl + call FarCopyData + pop hl + pop bc + ld a, $6 + add c + ld c, a + pop af + dec a + jr nz, .loop + jp EnableLCD + +INCLUDE "data/icon_pointers.asm" + +WriteMonPartySpriteOAMByPartyIndex: +; Write OAM blocks for the party mon in [hPartyMonIndex]. + push hl + push de + push bc + ldh a, [hPartyMonIndex] + cp $ff + jr z, .asm_7191f + ld hl, wPartySpecies + ld e, a + ld d, 0 + add hl, de + ld a, [hl] + call GetPartyMonSpriteID + ld [wOAMBaseTile], a + call WriteMonPartySpriteOAM + pop bc + pop de + pop hl + ret + +.asm_7191f + ld hl, wOAMBuffer + ld de, wMonPartySpritesSavedOAM + ld bc, $60 + call CopyData + pop bc + pop de + pop hl + ret + +WriteMonPartySpriteOAMBySpecies: +; Write OAM blocks for the party sprite of the species in +; [wMonPartySpriteSpecies]. + xor a + ldh [hPartyMonIndex], a + ld a, [wMonPartySpriteSpecies] + call GetPartyMonSpriteID + ld [wOAMBaseTile], a + jr WriteMonPartySpriteOAM + +UnusedPartyMonSpriteFunction: +; This function is unused and doesn't appear to do anything useful. It looks +; like it may have been intended to load the tile patterns and OAM data for +; the mon party sprite associated with the species in [wcf91]. +; However, its calculations are off and it loads garbage data. + ld a, [wcf91] + call GetPartyMonSpriteID + push af + ld hl, vSprites tile $00 + call .LoadTilePatterns + pop af + add $5A + ld hl, vSprites tile $04 + call .LoadTilePatterns + xor a + ld [wMonPartySpriteSpecies], a + jr WriteMonPartySpriteOAMBySpecies + +.LoadTilePatterns + push hl + add a + ld c, a + ld b, 0 + ld hl, MonPartySpritePointers + add hl, bc + add hl, bc + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + pop hl + jp CopyVideoData + +WriteMonPartySpriteOAM: +; Write the OAM blocks for the first animation frame into the OAM buffer and +; make a copy at wMonPartySpritesSavedOAM. + push af + ld c, $10 + ld h, HIGH(wOAMBuffer) + ldh a, [hPartyMonIndex] + swap a + ld l, a + add $10 + ld b, a + pop af + cp ICON_HELIX << 2 + jr z, .helix + call WriteSymmetricMonPartySpriteOAM + jr .makeCopy +.helix + call WriteAsymmetricMonPartySpriteOAM +; Make a copy of the OAM buffer with the first animation frame written so that +; we can flip back to it from the second frame by copying it back. +.makeCopy + ld hl, wOAMBuffer + ld de, wMonPartySpritesSavedOAM + ld bc, $60 + jp CopyData + +GetPartyMonSpriteID: + ld [wd11e], a + predef IndexToPokedex + ld a, [wd11e] + ld c, a + dec a + srl a + ld hl, MonPartyData + ld e, a + ld d, 0 + add hl, de + ld a, [hl] + bit 0, c + jr nz, .skipSwap + swap a ; use lower nybble if pokedex num is even +.skipSwap + and $f0 + srl a ; value == ICON constant << 2 + srl a + ret + +INCLUDE "data/pokemon/menu_icons.asm" + +INC_FRAME_1 EQUS "0, $20" +INC_FRAME_2 EQUS "$20, $20" + +BugIconFrame1: INCBIN "gfx/icons/bug.2bpp", INC_FRAME_1 +PlantIconFrame1: INCBIN "gfx/icons/plant.2bpp", INC_FRAME_1 +BugIconFrame2: INCBIN "gfx/icons/bug.2bpp", INC_FRAME_2 +PlantIconFrame2: INCBIN "gfx/icons/plant.2bpp", INC_FRAME_2 +SnakeIconFrame1: INCBIN "gfx/icons/snake.2bpp", INC_FRAME_1 +QuadrupedIconFrame1: INCBIN "gfx/icons/quadruped.2bpp", INC_FRAME_1 +SnakeIconFrame2: INCBIN "gfx/icons/snake.2bpp", INC_FRAME_2 +QuadrupedIconFrame2: INCBIN "gfx/icons/quadruped.2bpp", INC_FRAME_2 + +TradeBubbleIconGFX: INCBIN "gfx/trade/bubble.2bpp" diff --git a/engine/gfx/oam_dma.asm b/engine/gfx/oam_dma.asm new file mode 100644 index 000000000..fe93e90d4 --- /dev/null +++ b/engine/gfx/oam_dma.asm @@ -0,0 +1,28 @@ +WriteDMACodeToHRAM:: +; Since no other memory is available during OAM DMA, +; DMARoutine is copied to HRAM and executed there. + ld c, LOW(hDMARoutine) + ld b, DMARoutineEnd - DMARoutine + ld hl, DMARoutine +.copy + ld a, [hli] + ldh [c], a + inc c + dec b + jr nz, .copy + ret + +DMARoutine: +LOAD "OAM DMA", HRAM +hDMARoutine:: + ; initiate DMA + ld a, HIGH(wOAMBuffer) + ldh [rDMA], a + ; wait for DMA to finish + ld a, $28 +.wait + dec a + jr nz, .wait + ret +ENDL +DMARoutineEnd: diff --git a/engine/gfx/palettes.asm b/engine/gfx/palettes.asm new file mode 100755 index 000000000..dd723afa3 --- /dev/null +++ b/engine/gfx/palettes.asm @@ -0,0 +1,1117 @@ +_RunPaletteCommand: + call GetPredefRegisters + ld a, b + cp SET_PAL_DEFAULT + jr nz, .not_default + ld a, [wDefaultPaletteCommand] +.not_default + cp SET_PAL_PARTY_MENU_HP_BARS + jp z, UpdatePartyMenuBlkPacket + ld l, a + ld h, 0 + add hl, hl + ld de, SetPalFunctions + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld de, SendSGBPackets + push de + jp hl + +SetPal_Black: + ld hl, PalPacket_Black + ld de, BlkPacket_Battle + ret + +; uses PalPacket_Empty to build a packet based on mon IDs and health color +SetPal_Battle: + ld hl, PalPacket_Empty + ld de, wPalPacket + ld bc, $10 + call CopyData + ;ld a, [wPlayerBattleStatus3] + ld hl, wBattleMonSpecies + ld a, [hl] + and a + jr z, .asm_71ef9 + ld hl, wPartyMon1 + ld a, [wPlayerMonNumber] + ld bc, wPartyMon2 - wPartyMon1 + call AddNTimes +.asm_71ef9 + call DeterminePaletteID + ld b, a + ;ld a, [wEnemyBattleStatus3] + ld hl, wEnemyMonSpecies2 + call DeterminePaletteID + ld c, a + ld hl, wPalPacket + 1 + ld a, [wPlayerHPBarColor] + add PAL_GREENBAR + ld [hli], a + inc hl + ld a, [wEnemyHPBarColor] + add PAL_GREENBAR + ld [hli], a + inc hl + ld a, b + ld [hli], a + inc hl + ld a, c + ld [hl], a + ld hl, wPalPacket + ld de, BlkPacket_Battle + ld a, SET_PAL_BATTLE + ld [wDefaultPaletteCommand], a + ret + +SetPal_TownMap: + ld hl, PalPacket_TownMap + ld de, BlkPacket_WholeScreen + ret + +; uses PalPacket_Empty to build a packet based the mon ID +SetPal_StatusScreen: + ld hl, PalPacket_Empty + ld de, wPalPacket + ld bc, $10 + call CopyData + ld a, [wcf91] + cp NUM_POKEMON_INDEXES + 1 + jr c, .pokemon + ld a, $1 ; not pokemon +.pokemon + call DeterminePaletteIDOutOfBattle + push af + ld hl, wPalPacket + 1 + ld a, [wStatusScreenHPBarColor] + add PAL_GREENBAR + ld [hli], a + inc hl + pop af + ld [hl], a + ld hl, wPalPacket + ld de, BlkPacket_StatusScreen + ret + +SetPal_PartyMenu: + ld hl, PalPacket_PartyMenu + ld de, wPartyMenuBlkPacket + ret + +SetPal_Pokedex: + ld hl, PalPacket_Pokedex + ld de, wPalPacket + ld bc, $10 + call CopyData + ld a, [wcf91] + call DeterminePaletteIDOutOfBattle + ld hl, wPalPacket + 3 + ld [hl], a + ld hl, wPalPacket + ld de, BlkPacket_Pokedex + ret + +SetPal_Slots: + ld hl, PalPacket_Slots + ld de, BlkPacket_Slots + ret + +SetPal_Titlescreen: + ld hl, PalPacket_Titlescreen + ld de, BlkPacket_Titlescreen + ret + +; used mostly for menus and the Oak intro +SetPal_Generic: + ld hl, PalPacket_Generic + ld de, BlkPacket_WholeScreen + ret + +SetPal_NidorinoIntro: + ld hl, PalPacket_NidorinoIntro + ld de, BlkPacket_NidorinoIntro + ret + +SetPal_GameFreakIntro: + ld hl, PalPacket_GameFreakIntro + ld de, BlkPacket_GameFreakIntro + ld a, SET_PAL_GENERIC + ld [wDefaultPaletteCommand], a + ret + +; uses PalPacket_Empty to build a packet based on the current map +SetPal_Overworld: + ld hl, PalPacket_Empty + ld de, wPalPacket + ld bc, $10 + call CopyData + ld a, [wCurMapTileset] + cp CEMETERY + jr z, .PokemonTowerOrAgatha + cp CAVERN + jr z, .caveOrBruno + ld a, [wCurMap] + cp FIRST_INDOOR_MAP + jr c, .townOrRoute + cp CERULEAN_CAVE_2F + jr c, .normalDungeonOrBuilding + cp CERULEAN_CAVE_1F + 1 + jr c, .caveOrBruno + cp LORELEIS_ROOM + jr z, .Lorelei + cp BRUNOS_ROOM + jr z, .caveOrBruno + cp TRADE_CENTER + jr z, .trade_center_colosseum + cp COLOSSEUM + jr z, .trade_center_colosseum +.normalDungeonOrBuilding + ld a, [wLastMap] ; town or route that current dungeon or building is located +.townOrRoute + cp NUM_CITY_MAPS + jr c, .town + ld a, PAL_ROUTE - 1 +.town + inc a ; a town's palette ID is its map ID + 1 + ld hl, wPalPacket + 1 + ld [hld], a + ld de, BlkPacket_WholeScreen + ld a, SET_PAL_OVERWORLD + ld [wDefaultPaletteCommand], a + ret +.PokemonTowerOrAgatha + ld a, PAL_GREYMON - 1 + jr .town +.caveOrBruno + ld a, PAL_CAVE - 1 + jr .town +.Lorelei + xor a + jr .town +.trade_center_colosseum + ld a, PAL_GREYMON - 1 + jr .town + +; used when a Pokemon is the only thing on the screen +; such as evolution, trading and the Hall of Fame +SetPal_PokemonWholeScreen: + push bc + ld hl, PalPacket_Empty + ld de, wPalPacket + ld bc, $10 + call CopyData + pop bc + ld a, c + and a + ld a, PAL_BLACK + jr nz, .next + ld a, [wWholeScreenPaletteMonSpecies] + call DeterminePaletteIDOutOfBattle +.next + ld [wPalPacket + 1], a + ld hl, wPalPacket + ld de, BlkPacket_WholeScreen + ret + +SetPal_TrainerCard: + ld hl, BlkPacket_TrainerCard + ld de, wTrainerCardBlkPacket + ld bc, $40 + call CopyData + ld de, BadgeBlkDataLengths + ld hl, wTrainerCardBlkPacket + 2 + ld a, [wObtainedBadges] + ld c, NUM_BADGES +.badgeLoop + srl a + push af + jr c, .haveBadge +; The player doens't have the badge, so zero the badge's blk data. + push bc + ld a, [de] + ld c, a + xor a +.zeroBadgeDataLoop + ld [hli], a + dec c + jr nz, .zeroBadgeDataLoop + pop bc + jr .nextBadge +.haveBadge +; The player does have the badge, so skip past the badge's blk data. + ld a, [de] +.skipBadgeDataLoop + inc hl + dec a + jr nz, .skipBadgeDataLoop +.nextBadge + pop af + inc de + dec c + jr nz, .badgeLoop + ld hl, PalPacket_TrainerCard + ld de, wTrainerCardBlkPacket + ret + +SendUnknownPalPacket_7205d:: + ld hl, UnknownPalPacket_72811 + ld de, BlkPacket_WholeScreen + ret + +SendUnknownPalPacket_72064:: + ld hl, UnknownPalPacket_72821 + ld de, UnknownPacket_72751 + ret + +SetPalFunctions: +; entries correspond to SET_PAL_* constants + dw SetPal_Black + dw SetPal_Battle + dw SetPal_TownMap + dw SetPal_StatusScreen + dw SetPal_Pokedex + dw SetPal_Slots + dw SetPal_Titlescreen + dw SetPal_NidorinoIntro + dw SetPal_Generic + dw SetPal_Overworld + dw SetPal_PartyMenu + dw SetPal_PokemonWholeScreen + dw SetPal_GameFreakIntro + dw SetPal_TrainerCard + dw SendUnknownPalPacket_7205d + dw SendUnknownPalPacket_72064 + +; The length of the blk data of each badge on the Trainer Card. +; The Rainbow Badge has 3 entries because of its many colors. +BadgeBlkDataLengths: + db 6 ; Boulder Badge + db 6 ; Cascade Badge + db 6 ; Thunder Badge + db 6 * 3 ; Rainbow Badge + db 6 ; Soul Badge + db 6 ; Marsh Badge + db 6 ; Volcano Badge + db 6 ; Earth Badge + +DeterminePaletteID: + ld a, [hl] +DeterminePaletteIDOutOfBattle: + ld [wd11e], a + and a ; is the mon index 0? + jr z, .skipDexNumConversion + push bc + predef IndexToPokedex + pop bc + ld a, [wd11e] +.skipDexNumConversion + ld e, a + ld d, 0 + ld hl, MonsterPalettes ; not just for Pokemon, Trainers use it too + add hl, de + ld a, [hl] + ret + +YellowIntroPaletteAction:: + ld a, e + and a + jr nz, .asm_720bd + ld hl, PalPacket_Generic + ldh a, [hGBC] + and a + jp z, SendSGBPacket + jp InitGBCPalettes + +.asm_720bd + ld hl, UnknownPalPacket_72811 + ldh a, [hGBC] + and a + jp z, SendSGBPacket + call InitGBCPalettes + ld hl, PalPacket_Generic + inc hl + ld a, [hli] + call GetGBCBasePalAddress + ld a, e + ld [wGBCBasePalPointers + 2], a + ld a, d + ld [wGBCBasePalPointers + 2 + 1], a + xor a ; CONVERT_BGP + call DMGPalToGBCPal + ld a, 1 + call TransferCurBGPData + ret + +LoadOverworldPikachuFrontpicPalettes:: + ld hl, PalPacket_Empty + ld de, wPalPacket + ld bc, $10 + call CopyData + call GetPal_Pikachu + ld hl, wPartyMenuBlkPacket + ld [hl], a + ld hl, wPartyMenuBlkPacket + 2 + ld a, $26 + ld [hl], a + ld hl, wPalPacket + ldh a, [hGBC] + and a + jr nz, .cgb_1 + call SendSGBPacket + jr .okay_1 + +.cgb_1 + call InitGBCPalettes +.okay_1 + ld hl, BlkPacket_WholeScreen + ld de, wPalPacket + ld bc, $10 + call CopyData + ld hl, wPartyMenuBlkPacket + 2 + ld a, $5 + ld [hli], a + ld a, $7 + ld [hli], a + ld a, $6 + ld [hli], a + ld a, $b + ld [hli], a + ld a, $a + ld [hl], a + ld hl, wPalPacket + ldh a, [hGBC] + and a + jr nz, .cgb_2 + call SendSGBPacket + jr .okay_2 + +.cgb_2 + call InitGBCPalettes +.okay_2 + ret + +GetPal_Pikachu:: +; similar to SetPal_Overworld + ld a, [wCurMapTileset] + cp CEMETERY + jr z, .PokemonTowerOrAgatha + cp CAVERN + jr z, .caveOrBruno + ld a, [wCurMap] + cp REDS_HOUSE_1F + jr c, .townOrRoute + cp CERULEAN_CAVE_2F + jr c, .normalDungeonOrBuilding + cp NAME_RATERS_HOUSE + jr c, .caveOrBruno + cp LORELEIS_ROOM + jr z, .Lorelei + cp BRUNOS_ROOM + jr z, .caveOrBruno + cp TRADE_CENTER + jr z, .battleOrTradeCenter + cp COLOSSEUM + jr z, .battleOrTradeCenter +.normalDungeonOrBuilding + ld a, [wLastMap] ; town or route that current dungeon or building is located +.townOrRoute + cp SAFFRON_CITY + 1 + jr c, .town + ld a, PAL_ROUTE - 1 +.town + inc a ; a town's pallete ID is its map ID + 1 + ret + +.PokemonTowerOrAgatha + ld a, PAL_GREYMON - 1 + jr .town + +.caveOrBruno + ld a, PAL_CAVE - 1 + jr .town + +.Lorelei + xor a ; PAL_PALLET - 1 + jr .town + +.battleOrTradeCenter + ld a, PAL_GREYMON - 1 + jr .town + +InitPartyMenuBlkPacket: + ld hl, BlkPacket_PartyMenu + ld de, wPartyMenuBlkPacket + ld bc, $30 + jp CopyData + +UpdatePartyMenuBlkPacket: +; Update the blk packet with the palette of the HP bar that is +; specified in [wWhichPartyMenuHPBar]. + ld hl, wPartyMenuHPBarColors + ld a, [wWhichPartyMenuHPBar] + ld e, a + ld d, 0 + add hl, de + ld e, l + ld d, h + ld a, [de] + and a + ld e, (1 << 2) | 1 ; green + jr z, .next + dec a + ld e, (2 << 2) | 2 ; yellow + jr z, .next + ld e, (3 << 2) | 3 ; red +.next + push de + ld hl, wPartyMenuBlkPacket + 8 + 1 + ld bc, 6 + ld a, [wWhichPartyMenuHPBar] + call AddNTimes + pop de + ld [hl], e + ret + +SendSGBPacket: + ld a, 1 + ldh [hDisableJoypadPolling], a ; don't poll joypad while sending packet + call _SendSGBPacket + xor a + ldh [hDisableJoypadPolling], a + ret + +_SendSGBPacket: +;check number of packets + ld a, [hl] + and $07 + ret z +; store number of packets in B + ld b, a +.loop2 +; save B for later use + push bc +; send RESET signal (P14=LOW, P15=LOW) + xor a + ldh [rJOYP], a +; set P14=HIGH, P15=HIGH + ld a, $30 + ldh [rJOYP], a +;load length of packets (16 bytes) + ld b, $10 +.nextByte +;set bit counter (8 bits per byte) + ld e, $08 +; get next byte in the packet + ld a, [hli] + ld d, a +.nextBit0 + bit 0, d +; if 0th bit is not zero set P14=HIGH, P15=LOW (send bit 1) + ld a, $10 + jr nz, .next0 +; else (if 0th bit is zero) set P14=LOW, P15=HIGH (send bit 0) + ld a, $20 +.next0 + ldh [rJOYP], a +; must set P14=HIGH,P15=HIGH between each "pulse" + ld a, $30 + ldh [rJOYP], a +; rotation will put next bit in 0th position (so we can always use command +; "bit 0, d" to fetch the bit that has to be sent) + rr d +; decrease bit counter so we know when we have sent all 8 bits of current byte + dec e + jr nz, .nextBit0 + dec b + jr nz, .nextByte +; send bit 1 as a "stop bit" (end of parameter data) + ld a, $20 + ldh [rJOYP], a +; set P14=HIGH,P15=HIGH + ld a, $30 + ldh [rJOYP], a +; wait for about 70000 cycles + call Wait7000 +; restore (previously pushed) number of packets + pop bc + dec b +; return if there are no more packets + ret z +; else send 16 more bytes + jr .loop2 + +LoadSGB: + xor a + ld [wOnSGB], a + call CheckSGB + jr c, .onSGB + ldh a, [hGBC] + and a + jr z, .onDMG + ld a, $1 + ld [wOnSGB], a +.onDMG + ret +.onSGB + ld a, $1 + ld [wOnSGB], a + di + call PrepareSuperNintendoVRAMTransfer + ei + ld a, 1 + ld [wCopyingSGBTileData], a + ld de, ChrTrnPacket + ld hl, SGBBorderGraphics + call CopyGfxToSuperNintendoVRAM + xor a + ld [wCopyingSGBTileData], a + ld de, PctTrnPacket + ld hl, BorderPalettes + call CopyGfxToSuperNintendoVRAM + xor a + ld [wCopyingSGBTileData], a + ld de, PalTrnPacket + ld hl, SuperPalettes + call CopyGfxToSuperNintendoVRAM + call ClearVram + ld hl, MaskEnCancelPacket + jp SendSGBPacket + +PrepareSuperNintendoVRAMTransfer: + ld hl, .packetPointers + ld c, 9 +.loop + push bc + ld a, [hli] + push hl + ld h, [hl] + ld l, a + call SendSGBPacket + pop hl + inc hl + pop bc + dec c + jr nz, .loop + ret + +.packetPointers +; Only the first packet is needed. + dw MaskEnFreezePacket + dw DataSnd_728a1 + dw DataSnd_728b1 + dw DataSnd_728c1 + dw DataSnd_728d1 + dw DataSnd_728e1 + dw DataSnd_728f1 + dw DataSnd_72901 + dw DataSnd_72911 + +CheckSGB: +; Returns whether the game is running on an SGB in carry. + ld hl, MltReq2Packet + call SendSGBPacket + call Wait7000 + ldh a, [rJOYP] + and $3 + cp $3 + jr nz, .isSGB + ld a, $20 + ldh [rJOYP], a + ldh a, [rJOYP] + ldh a, [rJOYP] + call Wait7000 + call Wait7000 + ld a, $30 + ldh [rJOYP], a + call Wait7000 + call Wait7000 + ld a, $10 + ldh [rJOYP], a + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + call Wait7000 + call Wait7000 + ld a, $30 + ldh [rJOYP], a + ldh a, [rJOYP] + ldh a, [rJOYP] + ldh a, [rJOYP] + call Wait7000 + call Wait7000 + ldh a, [rJOYP] + and $3 + cp $3 + jr nz, .isSGB + call SendMltReq1Packet + and a + ret +.isSGB + call SendMltReq1Packet + scf + ret + +SendMltReq1Packet: + ld hl, MltReq1Packet + call SendSGBPacket + jp Wait7000 + +CopyGfxToSuperNintendoVRAM: + di + push de + call DisableLCD + ld a, $e4 + ldh [rBGP], a + call _UpdateGBCPal_BGP_CheckDMG + ld de, vChars1 + ld a, [wCopyingSGBTileData] + and a + jr z, .notCopyingTileData + call CopySGBBorderTiles + jr .next +.notCopyingTileData + ld bc, $1000 + call CopyData +.next + ld hl, vBGMap0 + ld de, $c + ld a, $80 + ld c, $d +.loop + ld b, $14 +.innerLoop + ld [hli], a + inc a + dec b + jr nz, .innerLoop + add hl, de + dec c + jr nz, .loop + ld a, $e3 + ldh [rLCDC], a + pop hl + call SendSGBPacket + xor a + ldh [rBGP], a + call _UpdateGBCPal_BGP_CheckDMG + ei + ret + +Wait7000: +; Each loop takes 9 cycles so this routine actually waits 63000 cycles. + ld de, 7000 +.loop + nop + nop + nop + dec de + ld a, d + or e + jr nz, .loop + ret + +SendSGBPackets: + ldh a, [hGBC] + and a + jr z, .notGBC + push de + call InitGBCPalettes + pop hl + call InitGBCPalettes + ldh a, [rLCDC] + and rLCDC_ENABLE_MASK + ret z + call Delay3 + ret +.notGBC + push de + call SendSGBPacket + pop hl + jp SendSGBPacket + +InitGBCPalettes: + ld a, [hl] + and $f8 + cp $20 + jp z, TranslatePalPacketToBGMapAttributes + + inc hl + +index = 0 + + REPT NUM_ACTIVE_PALS + IF index > 0 + pop hl + ENDC + + ld a, [hli] + inc hl + + IF index < (NUM_ACTIVE_PALS + -1) + push hl + ENDC + + call GetGBCBasePalAddress + ld a, e + ld [wGBCBasePalPointers + index * 2], a + ld a, d + ld [wGBCBasePalPointers + index * 2 + 1], a + + xor a ; CONVERT_BGP + call DMGPalToGBCPal + ld a, index + call TransferCurBGPData + + ld a, CONVERT_OBP0 + call DMGPalToGBCPal + ld a, index + call TransferCurOBPData + + ld a, CONVERT_OBP1 + call DMGPalToGBCPal + ld a, index + 4 + call TransferCurOBPData + +index = index + 1 + ENDR + + ret + +GetGBCBasePalAddress:: +; Input: a = palette ID +; Output: de = palette address + push hl + ld l, a + xor a + ld h, a + add hl, hl + add hl, hl + add hl, hl + ld de, GBCBasePalettes + add hl, de + ld a, l + ld e, a + ld a, h + ld d, a + pop hl + ret + +DMGPalToGBCPal:: +; Populate wGBCPal with colors from a base palette, selected using one of the +; DMG palette registers. +; Input: +; a = which DMG palette register +; de = address of GBC base palette + and a + jr nz, .notBGP + ldh a, [rBGP] + ld [wLastBGP], a + jr .convert +.notBGP + dec a + jr nz, .notOBP0 + ldh a, [rOBP0] + ld [wLastOBP0], a + jr .convert +.notOBP0 + ldh a, [rOBP1] + ld [wLastOBP1], a +.convert +color_index = 0 + REPT NUM_COLORS + ld b, a + and %11 + call .GetColorAddress + ld a, [hli] + ld [wGBCPal + color_index * 2], a + ld a, [hl] + ld [wGBCPal + color_index * 2 + 1], a + + IF color_index < (NUM_COLORS + -1) + ld a, b + rrca + rrca + ENDC + +color_index = color_index + 1 + ENDR + ret + +.GetColorAddress: + add a + ld l, a + xor a + ld h, a + add hl, de + ret + +TransferCurBGPData:: + push de + add a + add a + add a + or $80 ; auto-increment + ldh [rBGPI], a + ld de, rBGPD + ld hl, wGBCPal + ld b, %10 ; mask for non-V-blank/non-H-blank STAT mode + ldh a, [rLCDC] + and rLCDC_ENABLE_MASK + jr nz, .lcdEnabled + rept NUM_COLORS + call TransferPalColorLCDDisabled + endr + jr .done +.lcdEnabled + rept NUM_COLORS + call TransferPalColorLCDEnabled + endr +.done + pop de + ret + +BufferBGPPal:: +; Copy wGBCPal to palette a in wBGPPalsBuffer. + push de + add a + add a + add a + ld l, a + xor a + ld h, a + ld de, wBGPPalsBuffer + add hl, de + ld de, wGBCPal + ld c, PAL_SIZE +.loop + ld a, [de] + ld [hli], a + inc de + dec c + jr nz, .loop + pop de + ret + +TransferBGPPals:: +; Transfer the buffered BG palettes. + ldh a, [rLCDC] + and rLCDC_ENABLE_MASK + jr z, .lcdDisabled + di +.waitLoop + ldh a, [rLY] + cp 144 + jr c, .waitLoop +.lcdDisabled + call .DoTransfer + ei + ret + +.DoTransfer: + xor a + or $80 ; auto-increment + ldh [rBGPI], a + ld de, rBGPD + ld hl, wBGPPalsBuffer + ld c, 4 * PAL_SIZE +.loop + ld a, [hli] + ld [de], a + dec c + jr nz, .loop + ret + +TransferCurOBPData: + push de + add a + add a + add a + or $80 ; auto-increment + ldh [rOBPI], a + ld de, rOBPD + ld hl, wGBCPal + ld b, %10 ; mask for non-V-blank/non-H-blank STAT mode + ldh a, [rLCDC] + and rLCDC_ENABLE_MASK + jr nz, .lcdEnabled + rept NUM_COLORS + call TransferPalColorLCDDisabled + endr + jr .done +.lcdEnabled + rept NUM_COLORS + call TransferPalColorLCDEnabled + endr +.done + pop de + ret + +TransferPalColorLCDEnabled: +; Transfer a palette color while the LCD is enabled. + +; In case we're already in H-blank or V-blank, wait for it to end. This is a +; precaution so that the transfer doesn't extend past the blanking period. + ldh a, [rSTAT] + and b + jr z, TransferPalColorLCDEnabled + +; Wait for H-blank or V-blank to begin. +.notInBlankingPeriod + ldh a, [rSTAT] + and b + jr nz, .notInBlankingPeriod +; fall through + +TransferPalColorLCDDisabled: +; Transfer a palette color while the LCD is disabled. + ld a, [hli] + ld [de], a + ld a, [hli] + ld [de], a + ret + +_UpdateGBCPal_BGP_CheckDMG:: + ldh a, [hGBC] + and a + ret z +; fall through + +_UpdateGBCPal_BGP:: +index = 0 + + REPT NUM_ACTIVE_PALS + ld a, [wGBCBasePalPointers + index * 2] + ld e, a + ld a, [wGBCBasePalPointers + index * 2 + 1] + ld d, a + xor a ; CONVERT_BGP + call DMGPalToGBCPal + ld a, index + call BufferBGPPal + +index = index + 1 + ENDR + + call TransferBGPPals + ret + +_UpdateGBCPal_OBP:: +index = 0 + + REPT NUM_ACTIVE_PALS + ld a, [wGBCBasePalPointers + index * 2] + ld e, a + ld a, [wGBCBasePalPointers + index * 2 + 1] + ld d, a + ld a, c + call DMGPalToGBCPal + ld a, c + dec a + rlca + rlca + + IF index > 0 + IF index == 1 + inc a + ELSE + add index + ENDC + ENDC + + call TransferCurOBPData + +index = index + 1 + ENDR + + ret + +TranslatePalPacketToBGMapAttributes:: +; translate the SGB pal packets into something usable for the GBC + push hl + pop de + ld hl, PalPacketPointers + ld a, [hli] + ld c, a +.loop + ld a, e +.innerLoop + cp [hl] + jr z, .checkHighByte + inc hl + inc hl + dec c + jr nz, .innerLoop + ret +.checkHighByte +; the low byte of pointer matched, so check the high byte + inc hl + ld a, d + cp [hl] + jr z, .foundMatchingPointer + inc hl + dec c + jr nz, .loop + ret +.foundMatchingPointer + farcall LoadBGMapAttributes + ret + +PalPacketPointers:: + db (palPacketPointersEnd - palPacketPointers) / 2 +palPacketPointers: + dw BlkPacket_WholeScreen + dw BlkPacket_Battle + dw BlkPacket_StatusScreen + dw BlkPacket_Pokedex + dw BlkPacket_Slots + dw BlkPacket_Titlescreen + dw BlkPacket_NidorinoIntro + dw wPartyMenuBlkPacket + dw wTrainerCardBlkPacket + dw BlkPacket_GameFreakIntro + dw wPalPacket + dw UnknownPacket_72751 +palPacketPointersEnd: + +CopySGBBorderTiles: +; SGB tile data is stored in a 4BPP planar format. +; Each tile is 32 bytes. The first 16 bytes contain bit planes 1 and 2, while +; the second 16 bytes contain bit planes 3 and 4. +; This function converts 2BPP planar data into this format by mapping +; 2BPP colors 0-3 to 4BPP colors 0-3. 4BPP colors 4-15 are not used. + ld b, 128 +.tileLoop +; Copy bit planes 1 and 2 of the tile data. + ld c, 16 +.copyLoop + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .copyLoop + +; Zero bit planes 3 and 4. + ld c, 16 + xor a +.zeroLoop + ld [de], a + inc de + dec c + jr nz, .zeroLoop + + dec b + jr nz, .tileLoop + ret + +INCLUDE "data/sgb/sgb_packets.asm" + +INCLUDE "data/pokemon/palettes.asm" + +INCLUDE "data/sgb/sgb_palettes.asm" + +INCLUDE "data/sgb/sgb_border.asm" diff --git a/engine/gfx/screen_effects.asm b/engine/gfx/screen_effects.asm new file mode 100644 index 000000000..973a951ae --- /dev/null +++ b/engine/gfx/screen_effects.asm @@ -0,0 +1,73 @@ +; inverts the BGP for 4 (6 on CGB due to lag) frames +ChangeBGPalColor0_4Frames: + call GetPredefRegisters ; leftover of red/blue, has no use here + ldh a, [rBGP] + xor $ff + ldh [rBGP], a + call UpdateGBCPal_BGP + ld c, 4 + call DelayFrames + ldh a, [rBGP] + xor $ff + ldh [rBGP], a + call UpdateGBCPal_BGP + ret + +PredefShakeScreenVertically: +; Moves the window down and then back in a sequence of progressively smaller +; numbers of pixels, starting at b. + call GetPredefRegisters + ld a, 1 + ld [wDisableVBlankWYUpdate], a + xor a +.loop + ldh [hMutateWY], a + call .MutateWY + call .MutateWY + dec b + ld a, b + jr nz, .loop + xor a + ld [wDisableVBlankWYUpdate], a + ret + +.MutateWY + ldh a, [hMutateWY] + xor b + ldh [hMutateWY], a + ldh [rWY], a + ld c, 3 + jp DelayFrames + +PredefShakeScreenHorizontally: +; Moves the window right and then back in a sequence of progressively smaller +; numbers of pixels, starting at b. + call GetPredefRegisters + xor a +.loop + ldh [hMutateWX], a + call .MutateWX + ld c, 1 + call DelayFrames + call .MutateWX + dec b + ld a, b + jr nz, .loop + +; restore normal WX + ld a, 7 + ldh [rWX], a + ret + +.MutateWX + ldh a, [hMutateWX] + xor b + ldh [hMutateWX], a + bit 7, a + jr z, .skipZeroing + xor a ; zero a if it's negative +.skipZeroing + add 7 + ldh [rWX], a + ld c, 4 + jp DelayFrames diff --git a/engine/gfx/sprite_oam.asm b/engine/gfx/sprite_oam.asm new file mode 100644 index 000000000..01b2c4123 --- /dev/null +++ b/engine/gfx/sprite_oam.asm @@ -0,0 +1,232 @@ +PrepareOAMData:: +; Determine OAM data for currently visible +; sprites and write it to wOAMBuffer. +; Yellow code has been changed to use registers more efficiently +; as well as tweaking the code to show gbc palettes + + ld a, [wUpdateSpritesEnabled] + dec a + jr z, .updateEnabled + + cp -1 + ret nz + ld [wUpdateSpritesEnabled], a + jp HideSprites + +.updateEnabled + xor a + ldh [hOAMBufferOffset], a + +.spriteLoop + ldh [hSpriteOffset2], a + + ld e, a + ld d, HIGH(wSpriteStateData1) + + ld a, [de] ; [x#SPRITESTATEDATA1_PICTUREID] + and a + jp z, .nextSprite + + inc e + inc e + ld a, [de] ; [x#SPRITESTATEDATA1_IMAGEINDEX] + ld [wd5cd], a + cp $ff ; off-screen (don't draw) + jr nz, .visible + + call GetSpriteScreenXY + jr .nextSprite + +.visible + cp $a0 ; is the sprite unchanging like an item ball or boulder? + jr c, .usefacing + +; unchanging + ld a, $0 + jr .next + +.usefacing + and $f + +.next +; read the entry from the table + ld c, a + ld b, 0 + ld hl, SpriteFacingAndAnimationTable + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a +; get sprite priority + push de + inc d + ld a, e + add $5 + ld e, a + ld a, [de] ; [x#SPRITESTATEDATA2_GRASSPRIORITY] + and $80 + ldh [hSpritePriority], a ; temp store sprite priority + pop de + + + call GetSpriteScreenXY + + ldh a, [hOAMBufferOffset] + add [hl] + cp $a0 + jr z, .hidden + jr nc, .asm_4a41 +.hidden + call Func_4a7b + ld [wd5cd], a + ldh a, [hOAMBufferOffset] + + ld e, a + ld d, HIGH(wOAMBuffer) + +.tileLoop + ld a, [hli] + ld c, a +.loop + ldh a, [hSpriteScreenY] ; temp for sprite Y position + add $10 ; Y=16 is top of screen (Y=0 is invisible) + add [hl] ; add Y offset from table + ld [de], a ; write new sprite OAM Y position + inc hl + inc e + ldh a, [hSpriteScreenX] ; temp for sprite X position + add $8 ; X=8 is left of screen (X=0 is invisible) + add [hl] ; add X offset from table + ld [de], a + inc hl + inc e + ld a, [wd5cd] + add [hl] + cp $80 + jr c, .asm_4a1c + ld b, a + ldh a, [hFFFC] + add b +.asm_4a1c + ld [de], a ; tile id + inc hl + inc e + ld a, [hl] + bit 1, a ; is the tile allowed to set the sprite priority bit? + jr z, .skipPriority + ldh a, [hSpritePriority] + or [hl] +.skipPriority + and $f0 + bit 4, a ; OBP0 or OBP1 + jr z, .spriteusesOBP0 + or %100 ; palettes 4-7 are OBP1 +.spriteusesOBP0 + ld [de], a + inc hl + inc e + dec c + jr nz, .loop + + ld a, e + ldh [hOAMBufferOffset], a +.nextSprite + ldh a, [hSpriteOffset2] + add $10 + cp LOW($100) + jp nz, .spriteLoop + + ; Clear unused OAM. +.asm_4a41 + ld a, [wd736] + bit 6, a ; jumping down ledge or fishing animation? + ld c, $a0 + jr z, .clear + +; Don't clear the last 4 entries because they are used for the shadow in the +; jumping down ledge animation and the rod in the fishing animation. + ld c, $90 + +.clear + ldh a, [hOAMBufferOffset] + cp c + ret nc + ld l, a + ld h, wOAMBuffer / $100 + ld a, c + ld de, $4 ; entry size + ld b, $a0 +.clearLoop + ld [hl], b + add hl, de + cp l + jr nz, .clearLoop + ret + +GetSpriteScreenXY: + inc e + inc e + ld a, [de] ; [x#SPRITESTATEDATA1_YPIXELS] + ldh [hSpriteScreenY], a + inc e + inc e + ld a, [de] ; [x#SPRITESTATEDATA1_XPIXELS] + ldh [hSpriteScreenX], a + ld a, 4 + add e + ld e, a + ldh a, [hSpriteScreenY] + add 4 + and $f0 + ld [de], a ; [x#SPRITESTATEDATA1_YADJUSTED] + inc e + ldh a, [hSpriteScreenX] + and $f0 + ld [de], a ; [x#SPRITESTATEDATA1_XADJUSTED] + ret + +Func_4a7b: + push bc + ld a, [wd5cd] ; temp copy of [x#SPRITESTATEDATA1_IMAGEINDEX] + swap a ; high nybble determines sprite used (0 is always player sprite, next are some npcs) + and $f + + ; Sprites $a and $b have one face (and therefore 4 tiles instead of 12). + ; As a result, sprite $b's tile offset is less than normal. + cp $b + jr nz, .notFourTileSprite + ld a, $a * 12 + 4 ; $7c + jr .done + +.notFourTileSprite + ; a *= 12 + add a + add a + ld c, a + add a + add c +.done + pop bc + ret + +INCLUDE "engine/gfx/oam_dma.asm" + +_IsTilePassable:: + ld hl, wTilesetCollisionPtr ; pointer to list of passable tiles + ld a, [hli] + ld h, [hl] + ld l, a ; hl now points to passable tiles +.loop + ld a, [hli] + cp a, $ff + jr z, .tileNotPassable + cp c + jr nz, .loop + xor a + ret +.tileNotPassable + scf + ret + +INCLUDE "data/tilesets/collision_tile_ids.asm" diff --git a/engine/hidden_object_functions14.asm b/engine/hidden_object_functions14.asm deleted file mode 100755 index 04f9cb359..000000000 --- a/engine/hidden_object_functions14.asm +++ /dev/null @@ -1,100 +0,0 @@ -PrintNotebookText: - call EnableAutoTextBoxDrawing - ld a, $1 - ld [wDoNotWaitForButtonPressAfterDisplayingText], a - ld a, [wHiddenObjectFunctionArgument] - jp PrintPredefTextID - -TMNotebook: - TX_FAR TMNotebookText - TX_WAIT - db "@" - -ViridianSchoolNotebook: - TX_ASM - ld hl, ViridianSchoolNotebookText1 - call PrintText - call TurnPageSchoolNotebook - jr nz, .doneReading - ld hl, ViridianSchoolNotebookText2 - call PrintText - call TurnPageSchoolNotebook - jr nz, .doneReading - ld hl, ViridianSchoolNotebookText3 - call PrintText - call TurnPageSchoolNotebook - jr nz, .doneReading - ld hl, ViridianSchoolNotebookText4 - call PrintText - ld hl, ViridianSchoolNotebookText5 - call PrintText -.doneReading - jp TextScriptEnd - -TurnPageSchoolNotebook: - ld hl, TurnPageText - call PrintText - call YesNoChoice - ld a, [wCurrentMenuItem] - and a - ret - -TurnPageText: - TX_FAR _TurnPageText - db "@" - -ViridianSchoolNotebookText5: - TX_FAR _ViridianSchoolNotebookText5 - TX_WAIT - db "@" - -ViridianSchoolNotebookText1: - TX_FAR _ViridianSchoolNotebookText1 - db "@" - -ViridianSchoolNotebookText2: - TX_FAR _ViridianSchoolNotebookText2 - db "@" - -ViridianSchoolNotebookText3: - TX_FAR _ViridianSchoolNotebookText3 - db "@" - -ViridianSchoolNotebookText4: - TX_FAR _ViridianSchoolNotebookText4 - db "@" - -PrintFightingDojoText2: - call EnableAutoTextBoxDrawing - tx_pre_jump EnemiesOnEverySideText - -EnemiesOnEverySideText: - TX_FAR _EnemiesOnEverySideText - db "@" - -PrintFightingDojoText3: - call EnableAutoTextBoxDrawing - tx_pre_jump WhatGoesAroundComesAroundText - -WhatGoesAroundComesAroundText: - TX_FAR _WhatGoesAroundComesAroundText - db "@" - -PrintFightingDojoText: - call EnableAutoTextBoxDrawing - tx_pre_jump FightingDojoText - -FightingDojoText: - TX_FAR _FightingDojoText - db "@" - -PrintIndigoPlateauHQText: - ld a, [wSpritePlayerStateData1FacingDirection] - cp SPRITE_FACING_UP - ret nz - call EnableAutoTextBoxDrawing - tx_pre_jump IndigoPlateauHQText - -IndigoPlateauHQText: - TX_FAR _IndigoPlateauHQText - db "@" diff --git a/engine/hidden_object_functions17.asm b/engine/hidden_object_functions17.asm deleted file mode 100755 index 8775fd39f..000000000 --- a/engine/hidden_object_functions17.asm +++ /dev/null @@ -1,466 +0,0 @@ -PrintRedSNESText: - call EnableAutoTextBoxDrawing - tx_pre_jump RedBedroomSNESText - -RedBedroomSNESText: - TX_FAR _RedBedroomSNESText - db "@" - -OpenRedsPC: - call EnableAutoTextBoxDrawing - tx_pre_jump RedBedroomPCText - -RedBedroomPCText: - TX_PLAYERS_PC - -Route15GateLeftBinoculars: - ld a, [wSpritePlayerStateData1FacingDirection] - cp SPRITE_FACING_UP - ret nz - call EnableAutoTextBoxDrawing - tx_pre Route15UpstairsBinocularsText - ld a, ARTICUNO - ld [wcf91], a - call PlayCry - call DisplayMonFrontSpriteInBox - xor a - ld [H_AUTOBGTRANSFERENABLED], a - ret - -Route15UpstairsBinocularsText: - TX_FAR _Route15UpstairsBinocularsText - db "@" - -AerodactylFossil: - ld a, FOSSIL_AERODACTYL - ld [wcf91], a - call DisplayMonFrontSpriteInBox - call EnableAutoTextBoxDrawing - tx_pre AerodactylFossilText - ret - -AerodactylFossilText: - TX_FAR _AerodactylFossilText - db "@" - -KabutopsFossil: - ld a, FOSSIL_KABUTOPS - ld [wcf91], a - call DisplayMonFrontSpriteInBox - call EnableAutoTextBoxDrawing - tx_pre KabutopsFossilText - ret - -KabutopsFossilText: - TX_FAR _KabutopsFossilText - db "@" - -FanClubPicture1: - ld a, RAPIDASH - ld [wcf91], a - call DisplayMonFrontSpriteInBox - call EnableAutoTextBoxDrawing - tx_pre FanClubPicture1Text - ret - -FanClubPicture1Text: - TX_FAR _FanClubPicture1Text - db "@" - -FanClubPicture2: - ld a, FEAROW - ld [wcf91], a - call DisplayMonFrontSpriteInBox - call EnableAutoTextBoxDrawing - tx_pre FanClubPicture2Text - ret - -FanClubPicture2Text: - TX_FAR _FanClubPicture2Text - db "@" - -DisplayMonFrontSpriteInBox: -; Displays a pokemon's front sprite in a pop-up window. -; [wcf91] = pokemon internal id number - ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a - call Delay3 - xor a - ld [hWY], a - call SaveScreenTilesToBuffer1 - ld a, MON_SPRITE_POPUP - ld [wTextBoxID], a - call DisplayTextBoxID - call UpdateSprites - ld a, [wcf91] - ld [wd0b5], a - call GetMonHeader - ld de, vChars1 + $310 - call LoadMonFrontSprite - ld a, $80 - ld [hStartTileID], a - coord hl, 10, 11 - predef AnimateSendingOutMon - call WaitForTextScrollButtonPress - call LoadScreenTilesFromBuffer1 - call Delay3 - ld a, $90 - ld [hWY], a - ret - -PrintBlackboardLinkCableText: - call EnableAutoTextBoxDrawing - ld a, $1 - ld [wDoNotWaitForButtonPressAfterDisplayingText], a - ld a, [wHiddenObjectFunctionArgument] - call PrintPredefTextID - ret - -LinkCableHelp: - TX_ASM - call SaveScreenTilesToBuffer1 - ld hl, LinkCableHelpText1 - call PrintText - xor a - ld [wMenuItemOffset], a ; not used - ld [wCurrentMenuItem], a - ld [wLastMenuItem], a - ld a, A_BUTTON | B_BUTTON - ld [wMenuWatchedKeys], a - ld a, 3 - ld [wMaxMenuItem], a - ld a, 2 - ld [wTopMenuItemY], a - ld a, 1 - ld [wTopMenuItemX], a -.linkHelpLoop - ld hl, wd730 - set 6, [hl] - coord hl, 0, 0 - lb bc, 8, 13 - call TextBoxBorder - coord hl, 2, 2 - ld de, HowToLinkText - call PlaceString - ld hl, LinkCableHelpText2 - call PrintText - call HandleMenuInput - bit 1, a ; pressed b - jr nz, .exit - ld a, [wCurrentMenuItem] - cp 3 ; pressed a on "STOP READING" - jr z, .exit - ld hl, wd730 - res 6, [hl] - ld hl, LinkCableInfoTexts - add a - ld d, 0 - ld e, a - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - call PrintText - jp .linkHelpLoop -.exit - ld hl, wd730 - res 6, [hl] - call LoadScreenTilesFromBuffer1 - jp TextScriptEnd - -LinkCableHelpText1: - TX_FAR _LinkCableHelpText1 - db "@" - -LinkCableHelpText2: - TX_FAR _LinkCableHelpText2 - db "@" - -HowToLinkText: - db "HOW TO LINK" - next "COLOSSEUM" - next "TRADE CENTER" - next "STOP READING@" - -LinkCableInfoTexts: - dw LinkCableInfoText1 - dw LinkCableInfoText2 - dw LinkCableInfoText3 - -LinkCableInfoText1: - TX_FAR _LinkCableInfoText1 - db "@" - -LinkCableInfoText2: - TX_FAR _LinkCableInfoText2 - db "@" - -LinkCableInfoText3: - TX_FAR _LinkCableInfoText3 - db "@" - -ViridianSchoolBlackboard: - TX_ASM - call SaveScreenTilesToBuffer1 - ld hl, ViridianSchoolBlackboardText1 - call PrintText - xor a - ld [wMenuItemOffset], a - ld [wCurrentMenuItem], a - ld [wLastMenuItem], a - ld a, D_LEFT | D_RIGHT | A_BUTTON | B_BUTTON - ld [wMenuWatchedKeys], a - ld a, 2 - ld [wMaxMenuItem], a - ld a, 2 - ld [wTopMenuItemY], a - ld a, 1 - ld [wTopMenuItemX], a -.blackboardLoop - ld hl, wd730 - set 6, [hl] - coord hl, 0, 0 - lb bc, 6, 10 - call TextBoxBorder - coord hl, 1, 2 - ld de, StatusAilmentText1 - call PlaceString - coord hl, 6, 2 - ld de, StatusAilmentText2 - call PlaceString - ld hl, ViridianSchoolBlackboardText2 - call PrintText - call HandleMenuInput ; pressing up and down is handled in here - bit 1, a ; pressed b - jr nz, .exitBlackboard - bit 4, a ; pressed right - jr z, .didNotPressRight - ; move cursor to right column - ld a, 2 - ld [wMaxMenuItem], a - ld a, 2 - ld [wTopMenuItemY], a - ld a, 6 - ld [wTopMenuItemX], a - ld a, 3 ; in the the right column, use an offset to prevent overlap - ld [wMenuItemOffset], a - jr .blackboardLoop -.didNotPressRight - bit 5, a ; pressed left - jr z, .didNotPressLeftOrRight - ; move cursor to left column - ld a, 2 - ld [wMaxMenuItem], a - ld a, 2 - ld [wTopMenuItemY], a - ld a, 1 - ld [wTopMenuItemX], a - xor a - ld [wMenuItemOffset], a - jr .blackboardLoop -.didNotPressLeftOrRight - ld a, [wCurrentMenuItem] - ld b, a - ld a, [wMenuItemOffset] - add b - cp 5 ; cursor is pointing to "QUIT" - jr z, .exitBlackboard - ; we must have pressed a on a status condition - ; so print the text - ld hl, wd730 - res 6, [hl] - ld hl, ViridianBlackboardStatusPointers - add a - ld d, 0 - ld e, a - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - call PrintText - jp .blackboardLoop -.exitBlackboard - ld hl, wd730 - res 6, [hl] - call LoadScreenTilesFromBuffer1 - jp TextScriptEnd - -ViridianSchoolBlackboardText1: - TX_FAR _ViridianSchoolBlackboardText1 - db "@" - -ViridianSchoolBlackboardText2: - TX_FAR _ViridianSchoolBlackboardText2 - db "@" - -StatusAilmentText1: - db " SLP" - next " PSN" - next " PAR@" - -StatusAilmentText2: - db " BRN" - next " FRZ" - next " QUIT@@" - -ViridianBlackboardStatusPointers: - dw ViridianBlackboardSleepText - dw ViridianBlackboardPoisonText - dw ViridianBlackboardPrlzText - dw ViridianBlackboardBurnText - dw ViridianBlackboardFrozenText - -ViridianBlackboardSleepText: - TX_FAR _ViridianBlackboardSleepText - db "@" - -ViridianBlackboardPoisonText: - TX_FAR _ViridianBlackboardPoisonText - db "@" - -ViridianBlackboardPrlzText: - TX_FAR _ViridianBlackboardPrlzText - db "@" - -ViridianBlackboardBurnText: - TX_FAR _ViridianBlackboardBurnText - db "@" - -ViridianBlackboardFrozenText: - TX_FAR _ViridianBlackboardFrozenText - db "@" - -PrintTrashText: - call EnableAutoTextBoxDrawing - tx_pre_jump VermilionGymTrashText - -VermilionGymTrashText: - TX_FAR _VermilionGymTrashText - db "@" - -GymTrashScript: - call EnableAutoTextBoxDrawing - ld a, [wHiddenObjectFunctionArgument] - ld [wGymTrashCanIndex], a - -; Don't do the trash can puzzle if it's already been done. - CheckEvent EVENT_2ND_LOCK_OPENED - jr z, .ok - - tx_pre_jump VermilionGymTrashText - -.ok - CheckEventReuseA EVENT_1ST_LOCK_OPENED - jr nz, .trySecondLock - - ld a, [wFirstLockTrashCanIndex] - ld b, a - ld a, [wGymTrashCanIndex] - cp b - jr z, .openFirstLock - - tx_pre_id VermilionGymTrashText - jr .done - -.openFirstLock -; Next can is trying for the second switch. - SetEvent EVENT_1ST_LOCK_OPENED - callab Yellow_SampleSecondTrashCan - tx_pre_id VermilionGymTrashSuccessText1 - jr .done - -.trySecondLock - ld a, [wGymTrashCanIndex] - ld b, a - ld a, [wSecondLockTrashCanIndex] - cp b - jr z, .openSecondLock - ld a, [wSecondLockTrashCanIndex + 1] - cp b - jr z, .openSecondLock - -; Reset the cans. - ResetEvent EVENT_1ST_LOCK_OPENED - call Random - - and $e - ld [wFirstLockTrashCanIndex], a - - tx_pre_id VermilionGymTrashFailText - jr .done - -.openSecondLock -; Completed the trash can puzzle. - SetEvent EVENT_2ND_LOCK_OPENED - ld hl, wCurrentMapScriptFlags - set 6, [hl] - - tx_pre_id VermilionGymTrashSuccessText3 - -.done - jp PrintPredefTextID - -GymTrashCans: -; byte 0: mask for random number -; bytes 1-4: indices of the trash cans that can have the second lock -; Note that the mask is simply the number of valid trash can indices that -; follow. The remaining bytes are filled with -1 to pad the length of each entry -; to 5 bytes. -; This is functionally replaced with GymTrashCans3a but was never removed from source. - - db 2, 1, 3, -1, -1 ; 0 - db 3, 0, 2, 4, -1 ; 1 - db 2, 1, 5, -1, -1 ; 2 - db 3, 0, 4, 6, -1 ; 3 - db 4, 1, 3, 5, 7 ; 4 - db 3, 2, 4, 8, -1 ; 5 - db 3, 3, 7, 9, -1 ; 6 - db 4, 4, 6, 8, 10 ; 7 - db 3, 5, 7, 11, -1 ; 8 - db 3, 6, 10, 12, -1 ; 9 - db 4, 7, 9, 11, 13 ; 10 - db 3, 8, 10, 14, -1 ; 11 - db 2, 9, 13, -1, -1 ; 12 - db 3, 10, 12, 14, -1 ; 13 - db 2, 11, 13, -1, -1 ; 14 - -VermilionGymTrashSuccessText1: - TX_FAR _VermilionGymTrashSuccessText1 - TX_ASM - call WaitForSoundToFinish - ld a, SFX_SWITCH - call PlaySound - call WaitForSoundToFinish - jp TextScriptEnd - -; unused -VermilionGymTrashSuccessText2: - TX_FAR _VermilionGymTrashSuccessText2 - db "@" - -; unused -VermilionGymTrashSuccesPlaySfx: - TX_ASM - call WaitForSoundToFinish - ld a, SFX_SWITCH - call PlaySound - call WaitForSoundToFinish - jp TextScriptEnd - -VermilionGymTrashSuccessText3: - TX_FAR _VermilionGymTrashSuccessText3 - TX_ASM - call WaitForSoundToFinish - ld a, SFX_GO_INSIDE - call PlaySound - call WaitForSoundToFinish - jp TextScriptEnd - -VermilionGymTrashFailText: - TX_FAR _VermilionGymTrashFailText - TX_ASM - call WaitForSoundToFinish - ld a, SFX_DENIED - call PlaySound - call WaitForSoundToFinish - jp TextScriptEnd diff --git a/engine/hidden_object_functions18.asm b/engine/hidden_object_functions18.asm deleted file mode 100755 index 3fd5dd47d..000000000 --- a/engine/hidden_object_functions18.asm +++ /dev/null @@ -1,204 +0,0 @@ -GymStatues: -; if in a gym and have the corresponding badge, a = GymStatueText2_id and jp PrintPredefTextID -; if in a gym and don’t have the corresponding badge, a = GymStatueText1_id and jp PrintPredefTextID -; else ret - call EnableAutoTextBoxDrawing - ld a, [wSpritePlayerStateData1FacingDirection] - cp SPRITE_FACING_UP - ret nz - ld hl, .BadgeFlags - ld a, [wCurMap] - ld b, a -.loop - ld a, [hli] - cp $ff - ret z - cp b - jr z, .match - inc hl - jr .loop -.match - ld b, [hl] - ld a, [wBeatGymFlags] - and b - cp b - tx_pre_id GymStatueText2 - jr z, .haveBadge - tx_pre_id GymStatueText1 -.haveBadge - jp PrintPredefTextID - -.BadgeFlags: - db PEWTER_GYM, %00000001 - db CERULEAN_GYM, %00000010 - db VERMILION_GYM, %00000100 - db CELADON_GYM, %00001000 - db FUCHSIA_GYM, %00010000 - db SAFFRON_GYM, %00100000 - db CINNABAR_GYM, %01000000 - db VIRIDIAN_GYM, %10000000 - db $ff - -GymStatueText1: - TX_FAR _GymStatueText1 - db "@" - -GymStatueText2: - TX_FAR _GymStatueText2 - db "@" - -PrintBenchGuyText: - call EnableAutoTextBoxDrawing - ld hl, BenchGuyTextPointers - ld a, [wCurMap] - ld b, a -.loop - ld a, [hli] - cp $ff - ret z - cp b - jr z, .match - inc hl - inc hl - jr .loop -.match - ld a, [hli] - ld b, a - ld a, [wSpritePlayerStateData1FacingDirection] - cp b - jr nz, .loop ; player isn't facing left at the bench guy - ld a, [hl] - jp PrintPredefTextID - -; format: db map id, player sprite facing direction, text id of PredefTextIDPointerTable -BenchGuyTextPointers: - db VIRIDIAN_POKECENTER, SPRITE_FACING_LEFT - db_tx_pre ViridianCityPokecenterBenchGuyText - db PEWTER_POKECENTER, SPRITE_FACING_LEFT - db_tx_pre PewterCityPokecenterBenchGuyText - db CERULEAN_POKECENTER, SPRITE_FACING_LEFT - db_tx_pre CeruleanCityPokecenterBenchGuyText - db LAVENDER_POKECENTER, SPRITE_FACING_LEFT - db_tx_pre LavenderCityPokecenterBenchGuyText - db VERMILION_POKECENTER, SPRITE_FACING_LEFT - db_tx_pre VermilionCityPokecenterBenchGuyText - db CELADON_POKECENTER, SPRITE_FACING_LEFT - db_tx_pre CeladonCityPokecenterBenchGuyText - db CELADON_HOTEL, SPRITE_FACING_LEFT - db_tx_pre CeladonCityHotelText - db FUCHSIA_POKECENTER, SPRITE_FACING_LEFT - db_tx_pre FuchsiaCityPokecenterBenchGuyText - db CINNABAR_POKECENTER, SPRITE_FACING_LEFT - db_tx_pre CinnabarIslandPokecenterBenchGuyText - db SAFFRON_POKECENTER, SPRITE_FACING_LEFT - db_tx_pre SaffronCityPokecenterBenchGuyText - db MT_MOON_POKECENTER, SPRITE_FACING_LEFT - db_tx_pre MtMoonPokecenterBenchGuyText - db ROCK_TUNNEL_POKECENTER, SPRITE_FACING_LEFT - db_tx_pre RockTunnelPokecenterBenchGuyText - db SAFARI_ZONE_WEST_REST_HOUSE,SPRITE_FACING_LEFT - db_tx_pre UnusedBenchGuyText1 - db SAFARI_ZONE_EAST_REST_HOUSE,SPRITE_FACING_LEFT - db_tx_pre UnusedBenchGuyText2 - db SAFARI_ZONE_NORTH_REST_HOUSE,SPRITE_FACING_LEFT - db_tx_pre UnusedBenchGuyText3 - db $FF - -ViridianCityPokecenterBenchGuyText: - TX_FAR _ViridianCityPokecenterGuyText - db "@" - -PewterCityPokecenterBenchGuyText: - TX_FAR _PewterCityPokecenterGuyText - db "@" - -CeruleanCityPokecenterBenchGuyText: - TX_FAR _CeruleanPokecenterGuyText - db "@" - -LavenderCityPokecenterBenchGuyText: - TX_FAR _LavenderPokecenterGuyText - db "@" - -MtMoonPokecenterBenchGuyText: - TX_FAR _MtMoonPokecenterBenchGuyText - db "@" - -RockTunnelPokecenterBenchGuyText: - TX_FAR _RockTunnelPokecenterGuyText - db "@" - -UnusedBenchGuyText1: - TX_FAR _UnusedBenchGuyText1 - db "@" - -UnusedBenchGuyText2: - TX_FAR _UnusedBenchGuyText2 - db "@" - -UnusedBenchGuyText3: - TX_FAR _UnusedBenchGuyText3 - db "@" - -VermilionCityPokecenterBenchGuyText: - TX_FAR _VermilionPokecenterGuyText - db "@" - -CeladonCityPokecenterBenchGuyText: - TX_FAR _CeladonCityPokecenterGuyText - db "@" - -FuchsiaCityPokecenterBenchGuyText: - TX_FAR _FuchsiaCityPokecenterGuyText - db "@" - -CinnabarIslandPokecenterBenchGuyText: - TX_FAR _CinnabarPokecenterGuyText - db "@" - -SaffronCityPokecenterBenchGuyText: - TX_ASM - CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI - ld hl, SaffronCityPokecenterBenchGuyText2 - jr nz, .asm_624f2 - ld hl, SaffronCityPokecenterBenchGuyText1 -.asm_624f2 - call PrintText - jp TextScriptEnd - -SaffronCityPokecenterBenchGuyText1: - TX_FAR _SaffronCityPokecenterGuyText1 - db "@" - -SaffronCityPokecenterBenchGuyText2: - TX_FAR _SaffronCityPokecenterGuyText2 - db "@" - -CeladonCityHotelText: - TX_FAR _CeladonCityHotelText - db "@" - - ret - -UnusedPredefText: - db "@" - -PrintBookcaseText: - call EnableAutoTextBoxDrawing - tx_pre_jump BookcaseText - -BookcaseText: - TX_FAR _BookcaseText - db "@" - -OpenPokemonCenterPC: - ld a, [wSpritePlayerStateData1FacingDirection] - cp SPRITE_FACING_UP ; check to see if player is facing up - ret nz - call EnableAutoTextBoxDrawing - ld a, $1 - ld [wAutoTextBoxDrawingControl], a - tx_pre_jump PokemonCenterPCText - -PokemonCenterPCText: - TX_POKECENTER_PC diff --git a/engine/hidden_object_functions3.asm b/engine/hidden_object_functions3.asm deleted file mode 100755 index 11aecd5b2..000000000 --- a/engine/hidden_object_functions3.asm +++ /dev/null @@ -1,153 +0,0 @@ -; prints text for bookshelves in buildings without sign events -PrintBookshelfText: - ld a, [wSpritePlayerStateData1FacingDirection] ; player's sprite facing direction - cp SPRITE_FACING_UP - jr nz, .noMatch -; facing up - ld a, [wCurMapTileset] - ld b, a - aCoord 8, 7 - ld c, a - ld hl, BookshelfTileIDs -.loop - ld a, [hli] - cp $ff - jr z, .noMatch - cp b - jr nz, .nextBookshelfEntry1 - ld a, [hli] - cp c - jr nz, .nextBookshelfEntry2 - ld a, [hl] - push af - call EnableAutoTextBoxDrawing - pop af - call PrintPredefTextID - xor a - ld [$ffdb], a - ret -.nextBookshelfEntry1 - inc hl -.nextBookshelfEntry2 - inc hl - jr .loop -.noMatch - ld a, $ff - ld [$ffdb], a - jpba PrintCardKeyText - -; format: db tileset id, bookshelf tile id, text id -BookshelfTileIDs: - db PLATEAU, $30 - db_tx_pre IndigoPlateauStatues - db HOUSE, $3D - db_tx_pre TownMapText - db HOUSE, $1E - db_tx_pre BookOrSculptureText - db MANSION, $32 - db_tx_pre BookOrSculptureText - db REDS_HOUSE_1, $32 - db_tx_pre BookOrSculptureText - db LAB, $28 - db_tx_pre BookOrSculptureText - db LOBBY, $16 - db_tx_pre ElevatorText - db GYM, $1D - db_tx_pre BookOrSculptureText - db DOJO, $1D - db_tx_pre BookOrSculptureText - db GATE, $22 - db_tx_pre BookOrSculptureText - db MART, $54 - db_tx_pre PokemonStuffText - db MART, $55 - db_tx_pre PokemonStuffText - db POKECENTER, $54 - db_tx_pre PokemonStuffText - db POKECENTER, $55 - db_tx_pre PokemonStuffText - db LOBBY, $50 - db_tx_pre PokemonStuffText - db LOBBY, $52 - db_tx_pre PokemonStuffText - db SHIP, $36 - db_tx_pre BookOrSculptureText - db $FF - -IndigoPlateauStatues: - TX_ASM - ld hl, IndigoPlateauStatuesText1 - call PrintText - ld a, [wXCoord] - bit 0, a - ld hl, IndigoPlateauStatuesText2 - jr nz, .ok - ld hl, IndigoPlateauStatuesText3 -.ok - call PrintText - jp TextScriptEnd - -IndigoPlateauStatuesText1: - TX_FAR _IndigoPlateauStatuesText1 - db "@" - -IndigoPlateauStatuesText2: - TX_FAR _IndigoPlateauStatuesText2 - db "@" - -IndigoPlateauStatuesText3: - TX_FAR _IndigoPlateauStatuesText3 - db "@" - -BookOrSculptureText: - TX_ASM - ld hl, PokemonBooksText - ld a, [wCurMapTileset] - cp MANSION ; Celadon Mansion tileset - jr nz, .ok - aCoord 8, 6 - cp $38 - jr nz, .ok - ld hl, DiglettSculptureText -.ok - call PrintText - jp TextScriptEnd - -PokemonBooksText: - TX_FAR _PokemonBooksText - db "@" - -DiglettSculptureText: - TX_FAR _DiglettSculptureText - db "@" - -ElevatorText: - TX_FAR _ElevatorText - db "@" - -TownMapText: - TX_FAR _TownMapText - TX_BLINK - TX_ASM - ld a, $1 - ld [wDoNotWaitForButtonPressAfterDisplayingText], a - ld hl, wd730 - set 6, [hl] - call GBPalWhiteOutWithDelay3 - xor a - ld [hWY], a - inc a - ld [H_AUTOBGTRANSFERENABLED], a - call LoadFontTilePatterns - callba DisplayTownMap - ld hl, wd730 - res 6, [hl] - ld de, TextScriptEnd - push de - ld a, [H_LOADEDROMBANK] - push af - jp CloseTextDisplay - -PokemonStuffText: - TX_FAR _PokemonStuffText - db "@" diff --git a/engine/hidden_object_functions7.asm b/engine/hidden_object_functions7.asm deleted file mode 100755 index 2498c167d..000000000 --- a/engine/hidden_object_functions7.asm +++ /dev/null @@ -1,510 +0,0 @@ -PrintNewBikeText: - call EnableAutoTextBoxDrawing - tx_pre_jump NewBicycleText - -NewBicycleText: - TX_FAR _NewBicycleText - db "@" - -DisplayOakLabLeftPoster: - call EnableAutoTextBoxDrawing - tx_pre_jump PushStartText - -PushStartText: - TX_FAR _PushStartText - db "@" - -DisplayOakLabRightPoster: - call EnableAutoTextBoxDrawing - ld hl, wPokedexOwned - ld b, wPokedexOwnedEnd - wPokedexOwned - call CountSetBits - ld a, [wNumSetBits] - cp 2 - tx_pre_id SaveOptionText - jr c, .ownLessThanTwo - ; own two or more mon - tx_pre_id StrengthsAndWeaknessesText -.ownLessThanTwo - jp PrintPredefTextID - -SaveOptionText: - TX_FAR _SaveOptionText - db "@" - -StrengthsAndWeaknessesText: - TX_FAR _StrengthsAndWeaknessesText - db "@" - -SafariZoneCheck: - CheckEventHL EVENT_IN_SAFARI_ZONE ; if we are not in the Safari Zone, - jr z, SafariZoneGameStillGoing ; don't bother printing game over text - ld a, [wNumSafariBalls] - and a - jr z, SafariZoneGameOver - jr SafariZoneGameStillGoing - -SafariZoneCheckSteps: - ld a, [wSafariSteps] - ld b, a - ld a, [wSafariSteps + 1] - ld c, a - or b - jr z, SafariZoneGameOver - dec bc - ld a, b - ld [wSafariSteps], a - ld a, c - ld [wSafariSteps + 1], a -SafariZoneGameStillGoing: - xor a - ld [wSafariZoneGameOver], a - ret - -SafariZoneGameOver: - call EnableAutoTextBoxDrawing - xor a - ld [wAudioFadeOutControl], a - call StopAllMusic - ld c, BANK(SFX_Safari_Zone_PA) - ld a, SFX_SAFARI_ZONE_PA - call PlayMusic -.waitForMusicToPlay - ld a, [wChannelSoundIDs + Ch5] - cp SFX_SAFARI_ZONE_PA - jr nz, .waitForMusicToPlay - ld a, TEXT_SAFARI_GAME_OVER - ld [hSpriteIndexOrTextID], a - call DisplayTextID - xor a - ld [wPlayerMovingDirection], a - ld a, SAFARI_ZONE_GATE - ld [hWarpDestinationMap], a - ld a, $3 - ld [wDestinationWarpID], a - ld a, $5 - ld [wSafariZoneGateCurScript], a - SetEvent EVENT_SAFARI_GAME_OVER - ld a, 1 - ld [wSafariZoneGameOver], a - ret - -PrintSafariGameOverText: - xor a - ld [wJoyIgnore], a - ld hl, SafariGameOverText - jp PrintText - -SafariGameOverText: - TX_ASM - ld a, [wNumSafariBalls] - and a - jr z, .noMoreSafariBalls - ld hl, TimesUpText - call PrintText -.noMoreSafariBalls - ld hl, GameOverText - call PrintText - jp TextScriptEnd - -TimesUpText: - TX_FAR _TimesUpText - db "@" - -GameOverText: - TX_FAR _GameOverText - db "@" - -PrintCinnabarQuiz: - ld a, [wSpritePlayerStateData1FacingDirection] - cp SPRITE_FACING_UP - ret nz - call EnableAutoTextBoxDrawing - tx_pre_jump CinnabarGymQuiz - -CinnabarGymQuiz: - TX_ASM - xor a - ld [wOpponentAfterWrongAnswer], a - ld hl, wd475 - res 7, [hl] - ld a, [wHiddenObjectFunctionArgument] - push af - and $f - ld [hGymGateIndex], a - pop af - and $f0 - swap a - ld [$ffdc], a - ld a, [hGymGateIndex] - ld hl, CinnabarGymQuizIntroText - cp 1 - jr z, .onFirstQuestion - ld hl, CinnabarGymQuizShortIntroText -.onFirstQuestion - call PrintText - ld a, [hGymGateIndex] - dec a - add a - ld d, 0 - ld e, a - ld hl, CinnabarQuizQuestions - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - call PrintText - ld a, 1 - ld [wDoNotWaitForButtonPressAfterDisplayingText], a - call CinnabarGymQuiz_1ea92 - jp TextScriptEnd - -CinnabarGymQuizDummyIntroText: - TX_FAR _CinnabarGymQuizDummyIntroText - db "@" - -CinnabarGymQuizIntroText: - TX_FAR _CinnabarGymQuizIntroText - db "@" - -CinnabarGymQuizShortIntroText: - TX_FAR _CinnabarGymQuizShortIntroText - db "@" - -CinnabarQuizQuestions: - dw CinnabarQuizQuestionsText1 - dw CinnabarQuizQuestionsText2 - dw CinnabarQuizQuestionsText3 - dw CinnabarQuizQuestionsText4 - dw CinnabarQuizQuestionsText5 - dw CinnabarQuizQuestionsText6 - -CinnabarQuizQuestionsText1: - TX_FAR _CinnabarQuizQuestionsText1 - db "@" - -CinnabarQuizQuestionsText2: - TX_FAR _CinnabarQuizQuestionsText2 - db "@" - -CinnabarQuizQuestionsText3: - TX_FAR _CinnabarQuizQuestionsText3 - db "@" - -CinnabarQuizQuestionsText4: - TX_FAR _CinnabarQuizQuestionsText4 - db "@" - -CinnabarQuizQuestionsText5: - TX_FAR _CinnabarQuizQuestionsText5 - db "@" - -CinnabarQuizQuestionsText6: - TX_FAR _CinnabarQuizQuestionsText6 - db "@" - -CinnabarGymQuiz_1ea92: - call YesNoChoice - ld a, [$ffdc] - ld c, a - ld a, [wCurrentMenuItem] - cp c - jr nz, .wrongAnswer - ld hl, wCurrentMapScriptFlags - set 5, [hl] - ld a, [hGymGateIndex] - ld [$ffe0], a - ld hl, CinnabarGymQuizCorrectText - call PrintText - ld a, [$ffe0] - AdjustEventBit EVENT_CINNABAR_GYM_GATE0_UNLOCKED, 0 - ld c, a - ld b, FLAG_SET - call CinnabarGymGateFlagAction - jp UpdateCinnabarGymGateTileBlocks_ -.wrongAnswer - call WaitForSoundToFinish - ld a, SFX_DENIED - call PlaySound - call WaitForSoundToFinish - ld hl, CinnabarGymQuizIncorrectText - call PrintText - ld a, [hGymGateIndex] - add $2 - AdjustEventBit EVENT_BEAT_CINNABAR_GYM_TRAINER_0, 2 - ld c, a - ld b, FLAG_TEST - EventFlagAddress hl, EVENT_BEAT_CINNABAR_GYM_TRAINER_0 - predef FlagActionPredef - ld a, c - and a - ret nz - ld a, [hGymGateIndex] - add $2 - ld [wOpponentAfterWrongAnswer], a - ld hl, wd475 - set 7, [hl] - ret - -CinnabarGymQuizCorrectText: - TX_SFX_ITEM_1 - TX_FAR _CinnabarGymQuizCorrectText - TX_BLINK - TX_ASM - - ld a, [$ffe0] - AdjustEventBit EVENT_CINNABAR_GYM_GATE0_UNLOCKED, 0 - ld c, a - ld b, FLAG_TEST - call CinnabarGymGateFlagAction - ld a, c - and a - jp nz, TextScriptEnd - call WaitForSoundToFinish - ld a, SFX_GO_INSIDE - call PlaySound - call WaitForSoundToFinish - jp TextScriptEnd - -CinnabarGymQuizIncorrectText: - TX_FAR _CinnabarGymQuizIncorrectText - db "@" - -CinnabarGymGateFlagAction: - EventFlagAddress hl, EVENT_CINNABAR_GYM_GATE0_UNLOCKED - predef_jump FlagActionPredef - -UpdateCinnabarGymGateTileBlocks_: -; Update the overworld map with open floor blocks or locked gate blocks -; depending on event flags. - ld a, 6 - ld [hGymGateIndex], a -.loop - ld a, [hGymGateIndex] - dec a - add a - add a - ld d, 0 - ld e, a - ld hl, CinnabarGymGateCoords - add hl, de - ld a, [hli] - ld b, [hl] - ld c, a - inc hl - ld a, [hl] - ld [wGymGateTileBlock], a - push bc - ld a, [hGymGateIndex] - ld [$ffe0], a - AdjustEventBit EVENT_CINNABAR_GYM_GATE0_UNLOCKED, 0 - ld c, a - ld b, FLAG_TEST - call CinnabarGymGateFlagAction - ld a, c - and a - jr nz, .unlocked - ld a, [wGymGateTileBlock] - jr .next -.unlocked - ld a, $e -.next - pop bc - ld [wNewTileBlockID], a - call CinnabarGym_ReplaceTileBlock - ld hl, hGymGateIndex - dec [hl] - jr nz, .loop - callab RedrawMapView - ret - -CinnabarGymGateCoords: - ; format: x-coord, y-coord, direction, padding - ; direction: $54 = horizontal gate, $5f = vertical gate - db $09,$03,$54,$00 - db $06,$03,$54,$00 - db $06,$06,$54,$00 - db $03,$08,$5f,$00 - db $02,$06,$54,$00 - db $02,$03,$54,$00 - - -CinnabarGym_ReplaceTileBlock: -; basically a copy of the first half of ReplaceTileBlock -; before checking if it is necessary to redraw the map view - ld hl, wOverworldMap - ld a, [wCurMapWidth] - add $6 - ld e, a - ld d, $0 - add hl, de - add hl, de - add hl, de - ld e, $3 - add hl, de - ld e, a - ld a, b - and a - jr z, .addX -.addWidthYTimesLoop - add hl, de - dec b - jr nz, .addWidthYTimesLoop -.addX - add hl, bc - ld a, [wNewTileBlockID] - ld [hl], a - ret - -PrintMagazinesText: - call EnableAutoTextBoxDrawing - tx_pre MagazinesText - ret - -MagazinesText: - TX_FAR _MagazinesText - db "@" - -BillsHousePC: - call EnableAutoTextBoxDrawing - ld a, [wSpritePlayerStateData1FacingDirection] - cp SPRITE_FACING_UP - ret nz - CheckEvent EVENT_LEFT_BILLS_HOUSE_AFTER_HELPING - jr nz, .displayBillsHousePokemonList - CheckEventReuseA EVENT_USED_CELL_SEPARATOR_ON_BILL - jr nz, .displayBillsHouseMonitorText - CheckEventReuseA EVENT_BILL_SAID_USE_CELL_SEPARATOR - jr nz, .doCellSeparator -.displayBillsHouseMonitorText - tx_pre_jump BillsHouseMonitorText -.doCellSeparator - ld a, $1 - ld [wDoNotWaitForButtonPressAfterDisplayingText], a - tx_pre BillsHouseInitiatedText - ld c, 32 - call DelayFrames - ld a, SFX_TINK - call PlaySound - call WaitForSoundToFinish - ld c, 80 - call DelayFrames - ld a, SFX_SHRINK - call PlaySound - call WaitForSoundToFinish - ld c, 48 - call DelayFrames - ld a, SFX_TINK - call PlaySound - call WaitForSoundToFinish - ld c, 32 - call DelayFrames - ld a, SFX_GET_ITEM_1 - call PlaySound - call WaitForSoundToFinish - call PlayDefaultMusic - SetEvent EVENT_USED_CELL_SEPARATOR_ON_BILL - ret -.displayBillsHousePokemonList - ld a, $1 - ld [wDoNotWaitForButtonPressAfterDisplayingText], a - tx_pre BillsHousePokemonList - ret - -BillsHouseMonitorText: - TX_FAR _BillsHouseMonitorText - db "@" - -BillsHouseInitiatedText: - TX_FAR _BillsHouseInitiatedText - TX_BLINK - TX_ASM - call StopAllMusic - ld c, 16 - call DelayFrames - ld a, SFX_SWITCH - call PlaySound - call WaitForSoundToFinish - ld c, 60 - call DelayFrames - jp TextScriptEnd - -BillsHousePokemonList: - TX_ASM - call SaveScreenTilesToBuffer1 - ld hl, BillsHousePokemonListText1 - call PrintText - xor a - ld [wMenuItemOffset], a ; not used - ld [wCurrentMenuItem], a - ld [wLastMenuItem], a - ld a, A_BUTTON | B_BUTTON - ld [wMenuWatchedKeys], a - ld a, 4 - ld [wMaxMenuItem], a - ld a, 2 - ld [wTopMenuItemY], a - ld a, 1 - ld [wTopMenuItemX], a -.billsPokemonLoop - ld hl, wd730 - set 6, [hl] - coord hl, 0, 0 - lb bc, 10, 9 - call TextBoxBorder - coord hl, 2, 2 - ld de, BillsMonListText - call PlaceString - ld hl, BillsHousePokemonListText2 - call PrintText - call SaveScreenTilesToBuffer2 - call HandleMenuInput - bit 1, a ; pressed b - jr nz, .cancel - ld a, [wCurrentMenuItem] - add EEVEE - cp EEVEE - jr z, .displayPokedex - cp FLAREON - jr z, .displayPokedex - cp JOLTEON - jr z, .displayPokedex - cp VAPOREON - jr z, .displayPokedex - jr .cancel -.displayPokedex - call DisplayPokedex - call LoadScreenTilesFromBuffer2 - jr .billsPokemonLoop -.cancel - ld hl, wd730 - res 6, [hl] - call LoadScreenTilesFromBuffer2 - jp TextScriptEnd - -BillsHousePokemonListText1: - TX_FAR _BillsHousePokemonListText1 - db "@" - -BillsMonListText: - db "EEVEE" - next "FLAREON" - next "JOLTEON" - next "VAPOREON" - next "CANCEL@" - -BillsHousePokemonListText2: - TX_FAR _BillsHousePokemonListText2 - db "@" - -DisplayOakLabEmailText: - ld a, [wSpritePlayerStateData1FacingDirection] - cp SPRITE_FACING_UP - ret nz - call EnableAutoTextBoxDrawing - tx_pre OakLabEmailText - ret - -OakLabEmailText: - TX_FAR _OakLabEmailText - db "@" diff --git a/engine/get_bag_item_quantity.asm b/engine/items/get_bag_item_quantity.asm similarity index 100% rename from engine/get_bag_item_quantity.asm rename to engine/items/get_bag_item_quantity.asm diff --git a/engine/items/inventory.asm b/engine/items/inventory.asm index 58bcf7e97..c2e0b2b46 100644 --- a/engine/items/inventory.asm +++ b/engine/items/inventory.asm @@ -4,7 +4,7 @@ ; [wcf91] = item ID ; [wItemQuantity] = item quantity ; sets carry flag if successful, unsets carry flag if unsuccessful -AddItemToInventory_: +AddItemToInventory_:: ld a, [wItemQuantity] ; a = item quantity push af push bc @@ -12,10 +12,10 @@ AddItemToInventory_: push hl push hl ld d, PC_ITEM_CAPACITY ; how many items the PC can hold - ld a, wNumBagItems & $FF + ld a, LOW(wNumBagItems) cp l jr nz, .checkIfInventoryFull - ld a, wNumBagItems >> 8 + ld a, HIGH(wNumBagItems) cp h jr nz, .checkIfInventoryFull ; if the destination is the bag @@ -98,7 +98,7 @@ AddItemToInventory_: ; hl = address of inventory (either wNumBagItems or wNumBoxItems) ; [wWhichPokemon] = index (within the inventory) of the item to remove ; [wItemQuantity] = quantity to remove -RemoveItemFromInventory_: +RemoveItemFromInventory_:: push hl inc hl ld a, [wWhichPokemon] ; index (within the inventory) of the item being removed diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm new file mode 100755 index 000000000..b1b458abe --- /dev/null +++ b/engine/items/item_effects.asm @@ -0,0 +1,3186 @@ +UseItem_:: + ld a, 1 + ld [wActionResultOrTookBattleTurn], a ; initialise to success value + ld a, [wcf91] ;contains item_ID + cp HM01 + jp nc, ItemUseTMHM + ld hl, ItemUsePtrTable + dec a + add a + ld c, a + ld b, 0 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +ItemUsePtrTable: +; entries correspond to item ids + dw ItemUseBall ; MASTER_BALL + dw ItemUseBall ; ULTRA_BALL + dw ItemUseBall ; GREAT_BALL + dw ItemUseBall ; POKE_BALL + dw ItemUseTownMap ; TOWN_MAP + dw ItemUseBicycle ; BICYCLE + dw ItemUseSurfboard ; out-of-battle Surf effect + dw ItemUseBall ; SAFARI_BALL + dw ItemUsePokedex ; POKEDEX + dw ItemUseEvoStone ; MOON_STONE + dw ItemUseMedicine ; ANTIDOTE + dw ItemUseMedicine ; BURN_HEAL + dw ItemUseMedicine ; ICE_HEAL + dw ItemUseMedicine ; AWAKENING + dw ItemUseMedicine ; PARLYZ_HEAL + dw ItemUseMedicine ; FULL_RESTORE + dw ItemUseMedicine ; MAX_POTION + dw ItemUseMedicine ; HYPER_POTION + dw ItemUseMedicine ; SUPER_POTION + dw ItemUseMedicine ; POTION + dw ItemUseBait ; BOULDERBADGE + dw ItemUseRock ; CASCADEBADGE + dw UnusableItem ; THUNDERBADGE + dw UnusableItem ; RAINBOWBADGE + dw UnusableItem ; SOULBADGE + dw UnusableItem ; MARSHBADGE + dw UnusableItem ; VOLCANOBADGE + dw UnusableItem ; EARTHBADGE + dw ItemUseEscapeRope ; ESCAPE_ROPE + dw ItemUseRepel ; REPEL + dw UnusableItem ; OLD_AMBER + dw ItemUseEvoStone ; FIRE_STONE + dw ItemUseEvoStone ; THUNDER_STONE + dw ItemUseEvoStone ; WATER_STONE + dw ItemUseVitamin ; HP_UP + dw ItemUseVitamin ; PROTEIN + dw ItemUseVitamin ; IRON + dw ItemUseVitamin ; CARBOS + dw ItemUseVitamin ; CALCIUM + dw ItemUseVitamin ; RARE_CANDY + dw UnusableItem ; DOME_FOSSIL + dw UnusableItem ; HELIX_FOSSIL + dw UnusableItem ; SECRET_KEY + dw UnusableItem + dw UnusableItem ; BIKE_VOUCHER + dw ItemUseXAccuracy ; X_ACCURACY + dw ItemUseEvoStone ; LEAF_STONE + dw ItemUseCardKey ; CARD_KEY + dw UnusableItem ; NUGGET + dw UnusableItem ; ??? PP_UP + dw ItemUsePokedoll ; POKE_DOLL + dw ItemUseMedicine ; FULL_HEAL + dw ItemUseMedicine ; REVIVE + dw ItemUseMedicine ; MAX_REVIVE + dw ItemUseGuardSpec ; GUARD_SPEC + dw ItemUseSuperRepel ; SUPER_REPL + dw ItemUseMaxRepel ; MAX_REPEL + dw ItemUseDireHit ; DIRE_HIT + dw UnusableItem ; COIN + dw ItemUseMedicine ; FRESH_WATER + dw ItemUseMedicine ; SODA_POP + dw ItemUseMedicine ; LEMONADE + dw UnusableItem ; S_S_TICKET + dw UnusableItem ; GOLD_TEETH + dw ItemUseXStat ; X_ATTACK + dw ItemUseXStat ; X_DEFEND + dw ItemUseXStat ; X_SPEED + dw ItemUseXStat ; X_SPECIAL + dw ItemUseCoinCase ; COIN_CASE + dw ItemUseOaksParcel ; OAKS_PARCEL + dw ItemUseItemfinder ; ITEMFINDER + dw UnusableItem ; SILPH_SCOPE + dw ItemUsePokeflute ; POKE_FLUTE + dw UnusableItem ; LIFT_KEY + dw UnusableItem ; EXP_ALL + dw ItemUseOldRod ; OLD_ROD + dw ItemUseGoodRod ; GOOD_ROD + dw ItemUseSuperRod ; SUPER_ROD + dw ItemUsePPUp ; PP_UP (real one) + dw ItemUsePPRestore ; ETHER + dw ItemUsePPRestore ; MAX_ETHER + dw ItemUsePPRestore ; ELIXER + dw ItemUsePPRestore ; MAX_ELIXER + +ItemUseBall: + +; Balls can't be used out of battle. + ld a, [wIsInBattle] + and a + jp z, ItemUseNotTime + +; Balls can't catch trainers' Pokémon. + dec a + jp nz, ThrowBallAtTrainerMon + +; If this is for the old man battle, skip checking if the party & box are full. + ld a, [wBattleType] + cp BATTLE_TYPE_OLD_MAN + jr z, .canUseBall + cp BATTLE_TYPE_PIKACHU + jr z, .canUseBall + + ld a, [wPartyCount] ; is party full? + cp PARTY_LENGTH + jr nz, .canUseBall + ld a, [wNumInBox] ; is box full? + cp MONS_PER_BOX + jp z, BoxFullCannotThrowBall + +.canUseBall + xor a + ld [wCapturedMonSpecies], a + + ld a, [wBattleType] + cp BATTLE_TYPE_SAFARI + jr nz, .skipSafariZoneCode + +.safariZone + ld hl, wNumSafariBalls + dec [hl] ; remove a Safari Ball + +.skipSafariZoneCode + call RunDefaultPaletteCommand + + ld a, $43 ; successful capture value + ld [wPokeBallAnimData], a + + call LoadScreenTilesFromBuffer1 + ld hl, ItemUseText00 + call PrintText + +; If the player is fighting an unidentified ghost, set the value that indicates +; the Pokémon can't be caught and skip the capture calculations. + callfar IsGhostBattle + ld b, $10 ; can't be caught value + jp z, .setAnimData + + ld a, [wBattleType] + cp BATTLE_TYPE_OLD_MAN + jr z, .oldManBattle + cp BATTLE_TYPE_PIKACHU + jr z, .oldManBattle ; pikachu battle technically old man battle + jr .notOldManBattle + +.oldManBattle + ld hl, wGrassRate + ld de, wPlayerName + ld bc, NAME_LENGTH + call CopyData ; save the player's name in the Wild Monster data (part of the Cinnabar Island Missingno. glitch) + ld a, [wBattleType] + cp BATTLE_TYPE_OLD_MAN + jp nz, .captured + ld a, $1 + ld [wCapturedMonSpecies], a + CheckEvent EVENT_02F + ld b, $63 + jp nz, .setAnimData + jp .captured +.notOldManBattle +; If the player is fighting the ghost Marowak, set the value that indicates the +; Pokémon can't be caught and skip the capture calculations. + ld a, [wCurMap] + cp POKEMON_TOWER_6F + jr nz, .loop + ld a, [wEnemyMonSpecies2] + cp RESTLESS_SOUL + ld b, $10 ; can't be caught value + jp z, .setAnimData + +; Get the first random number. Let it be called Rand1. +; Rand1 must be within a certain range according the kind of ball being thrown. +; The ranges are as follows. +; Poké Ball: [0, 255] +; Great Ball: [0, 200] +; Ultra/Safari Ball: [0, 150] +; Loop until an acceptable number is found. + +.loop + call Random + ld b, a + +; Get the item ID. + ld hl, wcf91 + ld a, [hl] + +; The Master Ball always succeeds. + cp MASTER_BALL + jp z, .captured + +; Anything will do for the basic Poké Ball. + cp POKE_BALL + jr z, .checkForAilments + +; If it's a Great/Ultra/Safari Ball and Rand1 is greater than 200, try again. + ld a, 200 + cp b + jr c, .loop + +; Less than or equal to 200 is good enough for a Great Ball. + ld a, [hl] + cp GREAT_BALL + jr z, .checkForAilments + +; If it's an Ultra/Safari Ball and Rand1 is greater than 150, try again. + ld a, 150 + cp b + jr c, .loop + +.checkForAilments +; Pokémon can be caught more easily with a status ailment. +; Depending on the status ailment, a certain value will be subtracted from +; Rand1. Let this value be called Status. +; The larger Status is, the more easily the Pokémon can be caught. +; no status ailment: Status = 0 +; Burn/Paralysis/Poison: Status = 12 +; Freeze/Sleep: Status = 25 +; If Status is greater than Rand1, the Pokémon will be caught for sure. + ld a, [wEnemyMonStatus] + and a + jr z, .skipAilmentValueSubtraction ; no ailments + and 1 << FRZ | SLP + ld c, 12 + jr z, .notFrozenOrAsleep + ld c, 25 +.notFrozenOrAsleep + ld a, b + sub c + jp c, .captured + ld b, a + +.skipAilmentValueSubtraction + push bc ; save (Rand1 - Status) + +; Calculate MaxHP * 255. + xor a + ldh [hMultiplicand], a + ld hl, wEnemyMonMaxHP + ld a, [hli] + ldh [hMultiplicand + 1], a + ld a, [hl] + ldh [hMultiplicand + 2], a + ld a, 255 + ldh [hMultiplier], a + call Multiply + +; Determine BallFactor. It's 8 for Great Balls and 12 for the others. + ld a, [wcf91] + cp GREAT_BALL + ld a, 12 + jr nz, .skip1 + ld a, 8 + +.skip1 +; Note that the results of all division operations are floored. + +; Calculate (MaxHP * 255) / BallFactor. + ldh [hDivisor], a + ld b, 4 ; number of bytes in dividend + call Divide + +; Divide the enemy's current HP by 4. HP is not supposed to exceed 999 so +; the result should fit in a. If the division results in a quotient of 0, +; change it to 1. + ld hl, wEnemyMonHP + ld a, [hli] + ld b, a + ld a, [hl] + srl b + rr a + srl b + rr a + and a + jr nz, .skip2 + inc a + +.skip2 + +; Let W = ((MaxHP * 255) / BallFactor) / max(HP / 4, 1). Calculate W. + ldh [hDivisor], a + ld b, 4 + call Divide + +; If W > 255, store 255 in [hQuotient + 3]. +; Let X = min(W, 255) = [hQuotient + 3]. + ldh a, [hQuotient + 2] + and a + jr z, .skip3 + ld a, 255 + ldh [hQuotient + 3], a + +.skip3 + pop bc ; b = Rand1 - Status + +; If Rand1 - Status > CatchRate, the ball fails to capture the Pokémon. + ld a, [wEnemyMonActualCatchRate] + cp b + jr c, .failedToCapture + +; If W > 255, the ball captures the Pokémon. + ldh a, [hQuotient + 2] + and a + jr nz, .captured + + call Random ; Let this random number be called Rand2. + +; If Rand2 > X, the ball fails to capture the Pokémon. + ld b, a + ldh a, [hQuotient + 3] + cp b + jr c, .failedToCapture + +.captured + jr .skipShakeCalculations + +.failedToCapture + ldh a, [hQuotient + 3] + ld [wPokeBallCaptureCalcTemp], a ; Save X. + +; Calculate CatchRate * 100. + xor a + ldh [hMultiplicand], a + ldh [hMultiplicand + 1], a + ld a, [wEnemyMonActualCatchRate] + ldh [hMultiplicand + 2], a + ld a, 100 + ldh [hMultiplier], a + call Multiply + +; Determine BallFactor2. +; Poké Ball: BallFactor2 = 255 +; Great Ball: BallFactor2 = 200 +; Ultra/Safari Ball: BallFactor2 = 150 + ld a, [wcf91] + ld b, 255 + cp POKE_BALL + jr z, .skip4 + ld b, 200 + cp GREAT_BALL + jr z, .skip4 + ld b, 150 + cp ULTRA_BALL + jr z, .skip4 + +.skip4 + +; Let Y = (CatchRate * 100) / BallFactor2. Calculate Y. + ld a, b + ldh [hDivisor], a + ld b, 4 + call Divide + +; If Y > 255, there are 3 shakes. +; Note that this shouldn't be possible. +; The maximum value of Y is (255 * 100) / 150 = 170. + ldh a, [hQuotient + 2] + and a + ld b, $63 ; 3 shakes + jr nz, .setAnimData + +; Calculate X * Y. + ld a, [wPokeBallCaptureCalcTemp] + ldh [hMultiplier], a + call Multiply + +; Calculate (X * Y) / 255. + ld a, 255 + ldh [hDivisor], a + ld b, 4 + call Divide + +; Determine Status2. +; no status ailment: Status2 = 0 +; Burn/Paralysis/Poison: Status2 = 5 +; Freeze/Sleep: Status2 = 10 + ld a, [wEnemyMonStatus] + and a + jr z, .skip5 + and 1 << FRZ | SLP + ld b, 5 + jr z, .addAilmentValue + ld b, 10 + +.addAilmentValue +; If the Pokémon has a status ailment, add Status2. + ldh a, [hQuotient + 3] + add b + ldh [hQuotient + 3], a + +.skip5 +; Finally determine the number of shakes. +; Let Z = ((X * Y) / 255) + Status2 = [hQuotient + 3]. +; The number of shakes depend on the range Z is in. +; 0 ≤ Z < 10: 0 shakes (the ball misses) +; 10 ≤ Z < 30: 1 shake +; 30 ≤ Z < 70: 2 shakes +; 70 ≤ Z: 3 shakes + ldh a, [hQuotient + 3] + cp 10 + ld b, $20 + jr c, .setAnimData + cp 30 + ld b, $61 + jr c, .setAnimData + cp 70 + ld b, $62 + jr c, .setAnimData + ld b, $63 + +.setAnimData + ld a, b + ld [wPokeBallAnimData], a + +.skipShakeCalculations + ld c, 20 + call DelayFrames + +; Do the animation. + ld a, TOSS_ANIM + ld [wAnimationID], a + xor a + ldh [hWhoseTurn], a + ld [wAnimationType], a + ld [wDamageMultipliers], a + ld a, [wWhichPokemon] + push af + ld a, [wcf91] + push af + predef MoveAnimation + pop af + ld [wcf91], a + pop af + ld [wWhichPokemon], a + +; Determine the message to display from the animation. + ld a, [wPokeBallAnimData] + cp $10 + ld hl, ItemUseBallText00 + jp z, .printMessage + cp $20 + ld hl, ItemUseBallText01 + jp z, .printMessage + cp $61 + ld hl, ItemUseBallText02 + jp z, .printMessage + cp $62 + ld hl, ItemUseBallText03 + jp z, .printMessage + cp $63 + ld hl, ItemUseBallText04 + jp z, .printMessage + +; Save current HP. + ld hl, wEnemyMonHP + ld a, [hli] + push af + ld a, [hli] + push af + +; Save status ailment. + inc hl + ld a, [hl] + push af + + push hl + +; If the Pokémon is transformed, the Pokémon is assumed to be a Ditto. +; This is a bug because a wild Pokémon could have used Transform via +; Mirror Move even though the only wild Pokémon that knows Transform is Ditto. + ld hl, wEnemyBattleStatus3 + bit TRANSFORMED, [hl] + jr z, .notTransformed + ld a, DITTO + ld [wEnemyMonSpecies2], a + jr .skip6 + +.notTransformed +; If the Pokémon is not transformed, set the transformed bit and copy the +; DVs to wTransformedEnemyMonOriginalDVs so that LoadEnemyMonData won't generate +; new DVs. + set TRANSFORMED, [hl] + ld hl, wTransformedEnemyMonOriginalDVs + ld a, [wEnemyMonDVs] + ld [hli], a + ld a, [wEnemyMonDVs + 1] + ld [hl], a + +.skip6 + ld a, [wcf91] + push af + ld a, [wEnemyMonSpecies2] + ld [wcf91], a + ld a, [wEnemyMonLevel] + ld [wCurEnemyLVL], a + callfar LoadEnemyMonData + pop af + ld [wcf91], a + pop hl + pop af + ld [hld], a + dec hl + pop af + ld [hld], a + pop af + ld [hl], a + ld a, [wEnemyMonSpecies] + ld [wCapturedMonSpecies], a + ld [wcf91], a + ld [wd11e], a + ld a, [wBattleType] + cp BATTLE_TYPE_OLD_MAN ; is this the old man battle? + jp z, .oldManCaughtMon ; if so, don't give the player the caught Pokémon + cp BATTLE_TYPE_PIKACHU + jr z, .oldManCaughtMon ; same with Pikachu battle + ld hl, ItemUseBallText05 + call PrintText + +; Add the caught Pokémon to the Pokédex. + predef IndexToPokedex + ld a, [wd11e] + dec a + ld c, a + ld b, FLAG_TEST + ld hl, wPokedexOwned + predef FlagActionPredef + ld a, c + push af + ld a, [wd11e] + dec a + ld c, a + ld b, FLAG_SET + predef FlagActionPredef + pop af + + and a ; was the Pokémon already in the Pokédex? + jr nz, .skipShowingPokedexData ; if so, don't show the Pokédex data + + ld hl, ItemUseBallText06 + call PrintText + call ClearSprites + ld a, [wEnemyMonSpecies] + ld [wd11e], a + predef ShowPokedexData + +.skipShowingPokedexData + ld a, $1 + ld [wd49c], a + ld a, $85 + ld [wPikachuMood], a + ld a, [wPartyCount] + cp PARTY_LENGTH ; is party full? + jr z, .sendToBox + xor a ; PLAYER_PARTY_DATA + ld [wMonDataLocation], a + call ClearSprites + ld hl, .emptyString + call PrintText + call AddPartyMon + jr .done + +.sendToBox + call ClearSprites + call SendNewMonToBox + ld hl, ItemUseBallText07 + CheckEvent EVENT_MET_BILL + jr nz, .printTransferredToPCText + ld hl, ItemUseBallText08 +.printTransferredToPCText + call PrintText + jr .done + +.oldManCaughtMon + ld hl, ItemUseBallText05 + +.printMessage + call PrintText + call ClearSprites + +.done + ld a, [wBattleType] + and a ; is this the old man battle? + ret nz ; if so, don't remove a ball from the bag + +; Remove a ball from the bag. + ld hl, wNumBagItems + inc a + ld [wItemQuantity], a + jp RemoveItemFromInventory + +.emptyString + db "@" + +ItemUseBallText00: +;"It dodged the thrown ball!" +;"This pokemon can't be caught" + text_far _ItemUseBallText00 + text_end +ItemUseBallText01: +;"You missed the pokemon!" + text_far _ItemUseBallText01 + text_end +ItemUseBallText02: +;"Darn! The pokemon broke free!" + text_far _ItemUseBallText02 + text_end +ItemUseBallText03: +;"Aww! It appeared to be caught!" + text_far _ItemUseBallText03 + text_end +ItemUseBallText04: +;"Shoot! It was so close too!" + text_far _ItemUseBallText04 + text_end +ItemUseBallText05: +;"All right! {MonName} was caught!" +;play sound + text_far _ItemUseBallText05 + sound_caught_mon + text_promptbutton + text_end +ItemUseBallText07: +;"X was transferred to Bill's PC" + text_far _ItemUseBallText07 + text_end +ItemUseBallText08: +;"X was transferred to someone's PC" + text_far _ItemUseBallText08 + text_end + +ItemUseBallText06: +;"New DEX data will be added..." +;play sound + text_far _ItemUseBallText06 + sound_dex_page_added + text_promptbutton + text_end + +ItemUseTownMap: + ld a, [wIsInBattle] + and a + jp nz, ItemUseNotTime + farjp DisplayTownMap + +ItemUseBicycle: + ld a, [wIsInBattle] + and a + jp nz, ItemUseNotTime + ld a, [wWalkBikeSurfState] + ld [wWalkBikeSurfStateCopy], a + cp 2 ; is the player surfing? + jp z, ItemUseNotTime + dec a ; is player already bicycling? + jr nz, .tryToGetOnBike +.getOffBike + call ItemUseReloadOverworldData + xor a + ld [wWalkBikeSurfState], a ; change player state to walking + ld a, $00 + ld [wPikachuSpawnState], a + call PlayDefaultMusic ; play walking music + ld hl, GotOffBicycleText + jp PrintText + +.tryToGetOnBike + call IsBikeRidingAllowed + jp nc, NoCyclingAllowedHere + call ItemUseReloadOverworldData + xor a ; no keys pressed + ldh [hJoyHeld], a ; current joypad state + ld a, $1 + ld [wWalkBikeSurfState], a ; change player state to bicycling + call PlayDefaultMusic ; play bike riding music + xor a + ld [wWalkBikeSurfState], a + ld hl, GotOnBicycleText + call PrintText + ld a, $1 + ld [wWalkBikeSurfState], a + ret + +; used for Surf out-of-battle effect +ItemUseSurfboard: + ld a, [wWalkBikeSurfState] + ld [wWalkBikeSurfStateCopy], a + cp 2 ; is the player already surfing? + jr z, .tryToStopSurfing +.tryToSurf + call IsNextTileShoreOrWater + jp nc, SurfingAttemptFailed + ld hl, TilePairCollisionsWater + call CheckForTilePairCollisions + jp c, SurfingAttemptFailed +.surf + call .makePlayerMoveForward + ld hl, wd730 + set 7, [hl] + ld a, 2 + ld [wWalkBikeSurfState], a ; change player state to surfing + call PlayDefaultMusic ; play surfing music + ld hl, SurfingGotOnText + jp PrintText + +.tryToStopSurfing + xor a + ldh [hSpriteIndexOrTextID], a + ld d, 16 ; talking range in pixels (normal range) + call IsSpriteInFrontOfPlayer2 + res 7, [hl] + ldh a, [hSpriteIndexOrTextID] + and a ; is there a sprite in the way? + jr nz, .cannotStopSurfing + ld hl, TilePairCollisionsWater + call CheckForTilePairCollisions + jr c, .cannotStopSurfing + ld a, [wTileInFrontOfPlayer] + ld c, a + call IsTilePassable + jr nc, .stopSurfing +.cannotStopSurfing + ld hl, SurfingNoPlaceToGetOffText + jp PrintText + +.stopSurfing + call .makePlayerMoveForward + ld a, $3 + ld [wPikachuSpawnState], a + ld hl, wPikachuOverworldStateFlags + set 5, [hl] + ld hl, wd730 + set 7, [hl] + xor a + ld [wWalkBikeSurfState], a ; change player state to walking + dec a + ld [wJoyIgnore], a + call PlayDefaultMusic ; play walking music + call GBPalWhiteOutWithDelay3 + jp LoadWalkingPlayerSpriteGraphics + +; uses a simulated button press to make the player move forward +.makePlayerMoveForward + ld a, [wPlayerDirection] ; direction the player is going + bit PLAYER_DIR_BIT_UP, a + ld b, D_UP + jr nz, .storeSimulatedButtonPress + bit PLAYER_DIR_BIT_DOWN, a + ld b, D_DOWN + jr nz, .storeSimulatedButtonPress + bit PLAYER_DIR_BIT_LEFT, a + ld b, D_LEFT + jr nz, .storeSimulatedButtonPress + ld b, D_RIGHT +.storeSimulatedButtonPress + ld a, b + ld [wSimulatedJoypadStatesEnd], a + xor a + ld [wWastedByteCD39], a + inc a + ld [wSimulatedJoypadStatesIndex], a + ret + +SurfingGotOnText: + text_far _SurfingGotOnText + text_end + +SurfingNoPlaceToGetOffText: + text_far _SurfingNoPlaceToGetOffText + text_end + +ItemUsePokedex: + predef_jump ShowPokedexMenu + +ItemUseEvoStone: + ld a, [wIsInBattle] + and a + jp nz, ItemUseNotTime + ld a, [wWhichPokemon] + push af + ld a, [wcf91] + ld [wEvoStoneItemID], a + push af + ld a, EVO_STONE_PARTY_MENU + ld [wPartyMenuTypeOrMessageID], a + ld a, $ff + ld [wUpdateSpritesEnabled], a + call DisplayPartyMenu + ld a, [wcf91] + ld [wLoadedMon], a + pop bc + jr c, .canceledItemUse + ld a, b + ld [wcf91], a + call Func_d85d + jr nc, .noEffect + callfar IsThisPartymonStarterPikachu_Party + jr nc, .notPlayerPikachu + ld e, $1b + callfar PlayPikachuSoundClip + ld a, [wWhichPokemon] + ld hl, wPartyMonNicks + call GetPartyMonName + ld hl, RefusingText + call PrintText + ld a, $4 + ld [wd49c], a + ld a, $82 + ld [wPikachuMood], a + jr .canceledItemUse + +.notPlayerPikachu + ld a, SFX_HEAL_AILMENT + call PlaySoundWaitForCurrent + call WaitForSoundToFinish + ld a, $01 + ld [wForceEvolution], a + callfar TryEvolvingMon ; try to evolve pokemon + pop af + ld [wWhichPokemon], a + ld hl, wNumBagItems + ld a, 1 ; remove 1 stone + ld [wItemQuantity], a + jp RemoveItemFromInventory + +.noEffect + call ItemUseNoEffect +.canceledItemUse + xor a + ld [wActionResultOrTookBattleTurn], a ; item not used + pop af + ret + +Func_d85d: + ld hl, EvosMovesPointerTable + ld a, [wLoadedMon] + dec a + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld de, wcd6d + ld a, BANK(TryEvolvingMon) + ld bc, $2 + call FarCopyData + ld hl, wcd6d + ld a, [hli] + ld h, [hl] + ld l, a + ld de, wcd6d + ld a, BANK(TryEvolvingMon) + ld bc, 13 + call FarCopyData + ld hl, wcd6d +.loop + ld a, [hli] + and a + jr z, .cannotEvolveWithUsedStone + inc hl + inc hl + cp EV_ITEM + jr nz, .loop + dec hl + dec hl + ld b, [hl] + ld a, [wcf91] + inc hl + inc hl + inc hl + cp b + jr nz, .loop + scf + ret + +.cannotEvolveWithUsedStone + and a + ret + +RefusingText: + text_far _RefusingText + text_end + +ItemUseVitamin: + ld a, [wIsInBattle] + and a + jp nz, ItemUseNotTime + +ItemUseMedicine: + ld a, [wPartyCount] + and a + jp z, Func_e4bf + ld a, [wWhichPokemon] + push af + ld a, [wcf91] + push af + ld a, USE_ITEM_PARTY_MENU + ld [wPartyMenuTypeOrMessageID], a + ld a, $ff + ld [wUpdateSpritesEnabled], a + ld a, [wPseudoItemID] + and a ; using Softboiled? + jr z, .notUsingSoftboiled +; if using softboiled + call GoBackToPartyMenu + jr .getPartyMonDataAddress +.notUsingSoftboiled + call DisplayPartyMenu +.getPartyMonDataAddress + jp c, .canceledItemUse + ld hl, wPartyMons + ld bc, wPartyMon2 - wPartyMon1 + ld a, [wWhichPokemon] + call AddNTimes + ld a, [wWhichPokemon] + ld [wUsedItemOnWhichPokemon], a + ld d, a + ld a, [wcf91] + ld e, a + ld [wd0b5], a + pop af + push af + cp $28 + jr nc, .asm_d906 + push hl + push de + callabd_ModifyPikachuHappiness PIKAHAPPY_USEDITEM + pop de + pop hl +.asm_d906 + pop af + ld [wcf91], a + pop af + ld [wWhichPokemon], a + ld a, [wPseudoItemID] + and a ; using Softboiled? + jr z, .checkItemType +; if using softboiled + ld a, [wWhichPokemon] + cp d ; is the pokemon trying to use softboiled on itself? + jr z, ItemUseMedicine ; if so, force another choice +.checkItemType + ld a, [wcf91] + cp REVIVE + jr nc, .healHP ; if it's a Revive or Max Revive + cp FULL_HEAL + jr z, .cureStatusAilment ; if it's a Full Heal + cp HP_UP + jp nc, .useVitamin ; if it's a vitamin or Rare Candy + cp FULL_RESTORE + jr nc, .healHP ; if it's a Full Restore or one of the potions +; fall through if it's one of the status-specific healing items +.cureStatusAilment + ld bc, wPartyMon1Status - wPartyMon1 + add hl, bc ; hl now points to status + ld a, [wcf91] + lb bc, ANTIDOTE_MSG, 1 << PSN + cp ANTIDOTE + jr z, .checkMonStatus + lb bc, BURN_HEAL_MSG, 1 << BRN + cp BURN_HEAL + jr z, .checkMonStatus + lb bc, ICE_HEAL_MSG, 1 << FRZ + cp ICE_HEAL + jr z, .checkMonStatus + lb bc, AWAKENING_MSG, SLP + cp AWAKENING + jr z, .checkMonStatus + lb bc, PARALYZ_HEAL_MSG, 1 << PAR + cp PARLYZ_HEAL + jr z, .checkMonStatus + lb bc, FULL_HEAL_MSG, $ff ; Full Heal +.checkMonStatus + ld a, [hl] ; pokemon's status + and c ; does the pokemon have a status ailment the item can cure? + jp z, .healingItemNoEffect +; if the pokemon has a status the item can heal + xor a + ld [hl], a ; remove the status ailment in the party data + ld a, b + ld [wPartyMenuTypeOrMessageID], a ; the message to display for the item used + ld a, [wPlayerMonNumber] + cp d ; is pokemon the item was used on active in battle? + jp nz, .doneHealing +; if it is active in battle + xor a + ld [wBattleMonStatus], a ; remove the status ailment in the in-battle pokemon data + push hl + ld hl, wPlayerBattleStatus3 + res BADLY_POISONED, [hl] ; heal Toxic status + pop hl + ld bc, wPartyMon1Stats - wPartyMon1Status + add hl, bc ; hl now points to party stats + ld de, wBattleMonStats + ld bc, NUM_STATS * 2 + call CopyData ; copy party stats to in-battle stat data + predef DoubleOrHalveSelectedStats + jp .doneHealing + +.healHP + inc hl ; hl = address of current HP + ld a, [hli] + ld b, a + ld [wHPBarOldHP+1], a + ld a, [hl] + ld c, a + ld [wHPBarOldHP], a ; current HP stored at wHPBarOldHP (2 bytes, big-endian) + or b + jr nz, .notFainted +.fainted + ld a, [wcf91] + cp REVIVE + jr z, .updateInBattleFaintedData + cp MAX_REVIVE + jr z, .updateInBattleFaintedData + jp .healingItemNoEffect + +.updateInBattleFaintedData + ld a, [wWhichPokemon] + push af + ld a, [wUsedItemOnWhichPokemon] + ld [wWhichPokemon], a + push hl + push de + push bc + callfar Func_2fd6a + pop bc + pop de + pop hl + pop af + ld [wWhichPokemon], a + + ld a, [wIsInBattle] + and a + jr z, .compareCurrentHPToMaxHP + push hl + push de + push bc + ld a, [wUsedItemOnWhichPokemon] + ld c, a + ld hl, wPartyFoughtCurrentEnemyFlags + ld b, FLAG_TEST + predef FlagActionPredef + ld a, c + and a + jr z, .next + ld a, [wUsedItemOnWhichPokemon] + ld c, a + ld hl, wPartyGainExpFlags + ld b, FLAG_SET + predef FlagActionPredef +.next + pop bc + pop de + pop hl + jr .compareCurrentHPToMaxHP + +.notFainted + ld a, [wcf91] + cp REVIVE + jp z, .healingItemNoEffect + cp MAX_REVIVE + jp z, .healingItemNoEffect +.compareCurrentHPToMaxHP + push hl + push bc + ld bc, wPartyMon1MaxHP - (wPartyMon1HP + 1) + add hl, bc ; hl now points to max HP + pop bc + ld a, [hli] + cp b + jr nz, .skipComparingLSB ; no need to compare the LSB's if the MSB's don't match + ld a, [hl] + cp c +.skipComparingLSB + pop hl + jr nz, .notFullHP +.fullHP ; if the pokemon's current HP equals its max HP + ld a, [wcf91] + cp FULL_RESTORE + jp nz, .healingItemNoEffect + inc hl + inc hl + ld a, [hld] ; status ailment + and a ; does the pokemon have a status ailment? + jp z, .healingItemNoEffect + ld a, FULL_HEAL + ld [wcf91], a + dec hl + dec hl + dec hl + jp .cureStatusAilment + +.notFullHP ; if the pokemon's current HP doesn't equal its max HP + xor a + ld [wLowHealthAlarm], a ;disable low health alarm + ld [wChannelSoundIDs + Ch5], a + push hl + push de + ld bc, wPartyMon1MaxHP - (wPartyMon1HP + 1) + add hl, bc ; hl now points to max HP + ld a, [hli] + ld [wHPBarMaxHP+1], a + ld a, [hl] + ld [wHPBarMaxHP], a ; max HP stored at wHPBarMaxHP (2 bytes, big-endian) + ld a, [wPseudoItemID] + and a ; using Softboiled? + jp z, .notUsingSoftboiled2 +; if using softboiled + ld hl, wHPBarMaxHP + ld a, [hli] + push af + ld a, [hli] + push af + ld a, [hli] + push af + ld a, [hl] + push af + ld hl, wPartyMon1MaxHP + ld a, [wWhichPokemon] + ld bc, wPartyMon2 - wPartyMon1 + call AddNTimes + ld a, [hli] + ld [wHPBarMaxHP + 1], a + ldh [hDividend], a + ld a, [hl] + ld [wHPBarMaxHP], a + ldh [hDividend + 1], a + ld a, 5 + ldh [hDivisor], a + ld b, 2 ; number of bytes + call Divide ; get 1/5 of max HP of pokemon that used Softboiled + ld bc, (wPartyMon1HP + 1) - (wPartyMon1MaxHP + 1) + add hl, bc ; hl now points to LSB of current HP of pokemon that used Softboiled +; subtract 1/5 of max HP from current HP of pokemon that used Softboiled + ldh a, [hQuotient + 3] + push af + ld b, a + ld a, [hl] + ld [wHPBarOldHP], a + sub b + ld [hld], a + ld [wHPBarNewHP], a + ldh a, [hQuotient + 2] + ld b, a + ld a, [hl] + ld [wHPBarOldHP+1], a + sbc b + ld [hl], a + ld [wHPBarNewHP+1], a + hlcoord 4, 1 + ld a, [wWhichPokemon] + ld bc, 2 * SCREEN_WIDTH + call AddNTimes ; calculate coordinates of HP bar of pokemon that used Softboiled + ld a, SFX_HEAL_HP + call PlaySoundWaitForCurrent + ldh a, [hFlagsFFFA] + set 0, a + ldh [hFlagsFFFA], a + ld a, $02 + ld [wHPBarType], a + predef UpdateHPBar2 ; animate HP bar decrease of pokemon that used Softboiled + ldh a, [hFlagsFFFA] + res 0, a + ldh [hFlagsFFFA], a + pop af + ld b, a ; store heal amount (1/5 of max HP) + ld hl, wHPBarOldHP + 1 + pop af + ld [hld], a + pop af + ld [hld], a + pop af + ld [hld], a + pop af + ld [hl], a + jr .addHealAmount + +.notUsingSoftboiled2 + ld a, [wcf91] + cp SODA_POP + ld b, 60 ; Soda Pop heal amount + jr z, .addHealAmount + ld b, 80 ; Lemonade heal amount + jr nc, .addHealAmount + cp FRESH_WATER + ld b, 50 ; Fresh Water heal amount + jr z, .addHealAmount + cp SUPER_POTION + ld b, 200 ; Hyper Potion heal amount + jr c, .addHealAmount + ld b, 50 ; Super Potion heal amount + jr z, .addHealAmount + ld b, 20 ; Potion heal amount +.addHealAmount + pop de + pop hl + ld a, [hl] + add b + ld [hld], a + ld [wHPBarNewHP], a + ld a, [hl] + ld [wHPBarNewHP+1], a + jr nc, .noCarry + inc [hl] + ld a, [hl] + ld [wHPBarNewHP + 1], a +.noCarry + push de + inc hl + ld d, h + ld e, l ; de now points to current HP + ld hl, (wPartyMon1MaxHP + 1) - (wPartyMon1HP + 1) + add hl, de ; hl now points to max HP + ld a, [wcf91] + cp REVIVE + jr z, .setCurrentHPToHalfMaxHP + ld a, [hld] + ld b, a + ld a, [de] + sub b + dec de + ld b, [hl] + ld a, [de] + sbc b + jr nc, .setCurrentHPToMaxHp ; if current HP exceeds max HP after healing + ld a, [wcf91] + cp HYPER_POTION + jr c, .setCurrentHPToMaxHp ; if using a Full Restore or Max Potion + cp MAX_REVIVE + jr z, .setCurrentHPToMaxHp ; if using a Max Revive + jr .updateInBattleData + +.setCurrentHPToHalfMaxHP + dec hl + dec de + ld a, [hli] + srl a + ld [de], a + ld [wHPBarNewHP+1], a + ld a, [hl] + rr a + inc de + ld [de], a + ld [wHPBarNewHP], a + dec de + jr .doneHealingPartyHP + +.setCurrentHPToMaxHp + ld a, [hli] + ld [de], a + ld [wHPBarNewHP+1], a + inc de + ld a, [hl] + ld [de], a + ld [wHPBarNewHP], a + dec de +.doneHealingPartyHP ; done updating the pokemon's current HP in the party data structure + ld a, [wcf91] + cp FULL_RESTORE + jr nz, .updateInBattleData + ld bc, wPartyMon1Status - (wPartyMon1MaxHP + 1) + add hl, bc + xor a + ld [hl], a ; remove the status ailment in the party data +.updateInBattleData + ld h, d + ld l, e + pop de + ld a, [wPlayerMonNumber] + cp d ; is pokemon the item was used on active in battle? + jr nz, .calculateHPBarCoords +; copy party HP to in-battle HP + ld a, [hli] + ld [wBattleMonHP], a + ld a, [hld] + ld [wBattleMonHP + 1], a + ld a, [wcf91] + cp FULL_RESTORE + jr nz, .calculateHPBarCoords + xor a + ld [wBattleMonStatus], a ; remove the status ailment in the in-battle pokemon data +.calculateHPBarCoords + ld hl, wOAMBuffer + $90 + ld bc, 2 * SCREEN_WIDTH + inc d +.calculateHPBarCoordsLoop + add hl, bc + dec d + jr nz, .calculateHPBarCoordsLoop + jr .doneHealing + +.healingItemNoEffect + call ItemUseNoEffect + jp .done + +.doneHealing + ld a, [wPseudoItemID] + and a ; using Softboiled? + jr nz, .skipRemovingItem ; no item to remove if using Softboiled + push hl + call RemoveUsedItem + pop hl +.skipRemovingItem + ld a, [wcf91] + cp FULL_RESTORE + jr c, .playStatusAilmentCuringSound + cp FULL_HEAL + jr z, .playStatusAilmentCuringSound + ld a, SFX_HEAL_HP + call PlaySoundWaitForCurrent + ldh a, [hFlagsFFFA] + set 0, a + ldh [hFlagsFFFA], a + ld a, $02 + ld [wHPBarType], a + predef UpdateHPBar2 ; animate the HP bar lengthening + ldh a, [hFlagsFFFA] + res 0, a + ldh [hFlagsFFFA], a + ld a, REVIVE_MSG + ld [wPartyMenuTypeOrMessageID], a + ld a, [wcf91] + cp REVIVE + jr z, .showHealingItemMessage + cp MAX_REVIVE + jr z, .showHealingItemMessage + ld a, POTION_MSG + ld [wPartyMenuTypeOrMessageID], a + jr .showHealingItemMessage + +.playStatusAilmentCuringSound + ld a, SFX_HEAL_AILMENT + call PlaySoundWaitForCurrent +.showHealingItemMessage + xor a + ldh [hAutoBGTransferEnabled], a + call ClearScreen + dec a + ld [wUpdateSpritesEnabled], a + call RedrawPartyMenu ; redraws the party menu and displays the message + ld a, 1 + ldh [hAutoBGTransferEnabled], a + ld c, 50 + call DelayFrames + call WaitForTextScrollButtonPress + jr .done + +.canceledItemUse + xor a + ld [wActionResultOrTookBattleTurn], a ; item use failed + pop af + pop af +.done + ld a, [wPseudoItemID] + and a ; using Softboiled? + ret nz ; if so, return + call GBPalWhiteOut + call z, RunDefaultPaletteCommand + ld a, [wIsInBattle] + and a + ret nz + jp ReloadMapData + +.useVitamin + push hl + ld a, [hl] + ld [wd0b5], a + ld [wd11e], a + ld bc, wPartyMon1Level - wPartyMon1 + add hl, bc ; hl now points to level + ld a, [hl] ; a = level + ld [wCurEnemyLVL], a ; store level + call GetMonHeader + push de + ld a, d + ld hl, wPartyMonNicks + call GetPartyMonName + pop de + pop hl + ld a, [wcf91] + cp RARE_CANDY + jp z, .useRareCandy + push hl + sub HP_UP + add a + ld bc, wPartyMon1HPExp - wPartyMon1 + add hl, bc + add l + ld l, a + jr nc, .noCarry2 + inc h +.noCarry2 + ld a, 10 + ld b, a + ld a, [hl] ; a = MSB of stat experience of the appropriate stat + cp 100 ; is there already at least 25600 (256 * 100) stat experience? + jr nc, .vitaminNoEffect ; if so, vitamins can't add any more + add b ; add 2560 (256 * 10) stat experience + jr nc, .noCarry3 ; a carry should be impossible here, so this will always jump + ld a, 255 +.noCarry3 + ld [hl], a + pop hl + call .recalculateStats + ld hl, VitaminText + ld a, [wcf91] + sub HP_UP - 1 + ld c, a +.statNameLoop ; loop to get the address of the name of the stat the vitamin increases + dec c + jr z, .gotStatName +.statNameInnerLoop + ld a, [hli] + ld b, a + ld a, $50 + cp b + jr nz, .statNameInnerLoop + jr .statNameLoop + +.gotStatName + ld de, wcf4b + ld bc, 10 + call CopyData ; copy the stat's name to wcf4b + ld a, SFX_HEAL_AILMENT + call PlaySound + ld hl, VitaminStatRoseText + call PrintText + jp RemoveUsedItem + +.vitaminNoEffect + pop hl + ld hl, VitaminNoEffectText + call PrintText + jp GBPalWhiteOut + +.recalculateStats + ld bc, wPartyMon1Stats - wPartyMon1 + add hl, bc + ld d, h + ld e, l ; de now points to stats + ld bc, (wPartyMon1Exp + 2) - wPartyMon1Stats + add hl, bc ; hl now points to LSB of experience + ld b, 1 + jp CalcStats ; recalculate stats +.useRareCandy + push hl + ld bc, wPartyMon1Level - wPartyMon1 + add hl, bc ; hl now points to level + ld a, [hl] ; a = level + cp MAX_LEVEL + jr z, .vitaminNoEffect ; can't raise level above 100 + inc a + ld [hl], a ; store incremented level + ld [wCurEnemyLVL], a + push hl + push de + ld d, a + callfar CalcExperience ; calculate experience for next level and store it at hExperience + pop de + pop hl + ld bc, wPartyMon1Exp - wPartyMon1Level + add hl, bc ; hl now points to MSB of experience +; update experience to minimum for new level + ldh a, [hExperience] + ld [hli], a + ldh a, [hExperience + 1] + ld [hli], a + ldh a, [hExperience + 2] + ld [hl], a + pop hl + ld a, [wWhichPokemon] + push af + ld a, [wcf91] + push af + push de + push hl + ld bc, wPartyMon1MaxHP - wPartyMon1 + add hl, bc ; hl now points to MSB of max HP + ld a, [hli] + ld b, a + ld c, [hl] + pop hl + push bc + push hl + call .recalculateStats + pop hl + ld bc, (wPartyMon1MaxHP + 1) - wPartyMon1 + add hl, bc ; hl now points to LSB of max HP + pop bc + ld a, [hld] + sub c + ld c, a + ld a, [hl] + sbc b + ld b, a ; bc = the amount of max HP gained from leveling up +; add the amount gained to the current HP + ld de, (wPartyMon1HP + 1) - wPartyMon1MaxHP + add hl, de ; hl now points to LSB of current HP + ld a, [hl] + add c + ld [hld], a + ld a, [hl] + adc b + ld [hl], a + ld a, RARE_CANDY_MSG + ld [wPartyMenuTypeOrMessageID], a + call RedrawPartyMenu + pop de + ld a, d + ld [wWhichPokemon], a + ld a, e + ld [wd11e], a + xor a ; PLAYER_PARTY_DATA + ld [wMonDataLocation], a + call LoadMonData + ld d, $01 + callfar PrintStatsBox ; display new stats text box + call WaitForTextScrollButtonPress ; wait for button press + xor a ; PLAYER_PARTY_DATA + ld [wMonDataLocation], a + predef LearnMoveFromLevelUp ; learn level up move, if any + + xor a + ld [wForceEvolution], a + callabd_ModifyPikachuHappiness PIKAHAPPY_LEVELUP + ld a, [wWhichPokemon] + push af + ld a, [wUsedItemOnWhichPokemon] + ld [wWhichPokemon], a + callfar Func_2fd6a ; evolve pokemon, if appropriate + pop af + ld [wWhichPokemon], a + + callfar TryEvolvingMon + ld a, $01 + ld [wUpdateSpritesEnabled], a + pop af + ld [wcf91], a + pop af + ld [wWhichPokemon], a + jp RemoveUsedItem + +VitaminStatRoseText: + text_far _VitaminStatRoseText + text_end + +VitaminNoEffectText: + text_far _VitaminNoEffectText + text_end + +VitaminText: + db "HEALTH@" + db "ATTACK@" + db "DEFENSE@" + db "SPEED@" + db "SPECIAL@" + +ItemUseBait: + ld hl, ThrewBaitText + call PrintText + ld hl, wEnemyMonActualCatchRate ; catch rate + srl [hl] ; halve catch rate + ld a, BAIT_ANIM + ld hl, wSafariBaitFactor ; bait factor + ld de, wSafariEscapeFactor ; escape factor + jr BaitRockCommon + +ItemUseRock: + ld hl, ThrewRockText + call PrintText + ld hl, wEnemyMonActualCatchRate ; catch rate + ld a, [hl] + add a ; double catch rate + jr nc, .noCarry + ld a, $ff +.noCarry + ld [hl], a + ld a, ROCK_ANIM + ld hl, wSafariEscapeFactor ; escape factor + ld de, wSafariBaitFactor ; bait factor + +BaitRockCommon: + ld [wAnimationID], a + xor a + ld [wAnimationType], a + ldh [hWhoseTurn], a + ld [de], a ; zero escape factor (for bait), zero bait factor (for rock) +.randomLoop ; loop until a random number less than 5 is generated + call Random + and 7 + cp 5 + jr nc, .randomLoop + inc a ; increment the random number, giving a range from 1 to 5 inclusive + ld b, a + ld a, [hl] + add b ; increase bait factor (for bait), increase escape factor (for rock) + jr nc, .noCarry + ld a, $ff +.noCarry + ld [hl], a + predef MoveAnimation ; do animation + ld c, 70 + jp DelayFrames + +ThrewBaitText: + text_far _ThrewBaitText + text_end + +ThrewRockText: + text_far _ThrewRockText + text_end + +; also used for Dig out-of-battle effect +ItemUseEscapeRope: + ld a, [wIsInBattle] + and a + jr nz, .notUsable + ld a, [wCurMap] + cp AGATHAS_ROOM + jr z, .notUsable + cp BILLS_HOUSE + jr z, .notUsable + cp POKEMON_FAN_CLUB + jr z, .notUsable + ld a, [wCurMapTileset] + ld b, a + ld hl, EscapeRopeTilesets +.loop + ld a, [hli] + cp $ff + jr z, .notUsable + cp b + jr nz, .loop + ld hl, wd732 + set 3, [hl] + set 6, [hl] + call Func_1510 + ld hl, wd72e + res 4, [hl] + ResetEvent EVENT_IN_SAFARI_ZONE + xor a + ld [wNumSafariBalls], a + ld [wSafariZoneGateCurScript], a + inc a + ld [wEscapedFromBattle], a + ld [wActionResultOrTookBattleTurn], a ; item used + ld a, [wPseudoItemID] + and a ; using Dig? + ret nz ; if so, return + call ItemUseReloadOverworldData + ld c, 30 + call DelayFrames + jp RemoveUsedItem + +.notUsable + jp ItemUseNotTime + +INCLUDE "data/tilesets/escape_rope_tilesets.asm" + +ItemUseRepel: + ld b, 100 + +ItemUseRepelCommon: + ld a, [wIsInBattle] + and a + jp nz, ItemUseNotTime + ld a, b + ld [wRepelRemainingSteps], a + jp PrintItemUseTextAndRemoveItem + +; handles X Accuracy item +ItemUseXAccuracy: + ld a, [wIsInBattle] + and a + jp z, ItemUseNotTime + ld hl, wPlayerBattleStatus2 + set USING_X_ACCURACY, [hl] ; X Accuracy bit + callabd_ModifyPikachuHappiness PIKAHAPPY_USEDXITEM + jp PrintItemUseTextAndRemoveItem + +; This function is bugged and never works. It always jumps to ItemUseNotTime. +; The Card Key is handled in a different way. +ItemUseCardKey: + xor a + ld [wUnusedD71F], a + call GetTileAndCoordsInFrontOfPlayer + ld a, [GetTileAndCoordsInFrontOfPlayer] + cp $18 + jr nz, .next0 + ld hl, CardKeyTable1 + jr .next1 + +.next0 + cp $24 + jr nz, .next2 + ld hl, CardKeyTable2 + jr .next1 + +.next2 + cp $5e + jp nz, ItemUseNotTime + ld hl, CardKeyTable3 +.next1 + ld a, [wCurMap] + ld b, a +.loop + ld a, [hli] + cp -1 + jp z, ItemUseNotTime + cp b + jr nz, .nextEntry1 + ld a, [hli] + cp d + jr nz, .nextEntry2 + ld a, [hli] + cp e + jr nz, .nextEntry3 + ld a, [hl] + ld [wUnusedD71F], a + jr .done + +.nextEntry1 + inc hl +.nextEntry2 + inc hl +.nextEntry3 + inc hl + jr .loop + +.done + ld hl, ItemUseText00 + call PrintText + ld hl, wd728 + set 7, [hl] + ret + +INCLUDE "data/events/card_key_coords.asm" + +ItemUsePokedoll: + ld a, [wIsInBattle] + dec a + jp nz, ItemUseNotTime + ld a, $01 + ld [wEscapedFromBattle], a + jp PrintItemUseTextAndRemoveItem + +ItemUseGuardSpec: + ld a, [wIsInBattle] + and a + jp z, ItemUseNotTime + + ld a, [wWhichPokemon] + push af + ld a, [wPlayerMonNumber] + ld [wWhichPokemon], a + callabd_ModifyPikachuHappiness PIKAHAPPY_USEDXITEM + pop af + ld [wWhichPokemon], a + + ld hl, wPlayerBattleStatus2 + set PROTECTED_BY_MIST, [hl] ; Mist bit + jp PrintItemUseTextAndRemoveItem + +ItemUseSuperRepel: + ld b, 200 + jp ItemUseRepelCommon + +ItemUseMaxRepel: + ld b, 250 + jp ItemUseRepelCommon + +ItemUseDireHit: + ld a, [wIsInBattle] + and a + jp z, ItemUseNotTime + + ld a, [wWhichPokemon] + push af + ld a, [wPlayerMonNumber] + ld [wWhichPokemon], a + callabd_ModifyPikachuHappiness PIKAHAPPY_USEDXITEM + pop af + ld [wWhichPokemon], a + + ld hl, wPlayerBattleStatus2 + set GETTING_PUMPED, [hl] ; Focus Energy bit + jp PrintItemUseTextAndRemoveItem + +ItemUseXStat: + ld a, [wIsInBattle] + and a + jr nz, .inBattle + call ItemUseNotTime + ld a, 2 + ld [wActionResultOrTookBattleTurn], a ; item not used + ret + +.inBattle + ld hl, wPlayerMoveNum + ld a, [hli] + push af ; save [wPlayerMoveNum] + ld a, [hl] + push af ; save [wPlayerMoveEffect] + push hl + ld a, [wcf91] + sub X_ATTACK - ATTACK_UP1_EFFECT + ld [hl], a ; store player move effect + call PrintItemUseTextAndRemoveItem + ld a, XSTATITEM_ANIM ; X stat item animation ID + ld [wPlayerMoveNum], a + call LoadScreenTilesFromBuffer1 ; restore saved screen + call Delay3 + xor a + ldh [hWhoseTurn], a ; set turn to player's turn + farcall StatModifierUpEffect ; do stat increase move + + ld a, [wWhichPokemon] + push af + ld a, [wPlayerMonNumber] + ld [wWhichPokemon], a + callabd_ModifyPikachuHappiness PIKAHAPPY_USEDXITEM + pop af + ld [wWhichPokemon], a + + pop hl + pop af + ld [hld], a ; restore [wPlayerMoveEffect] + pop af + ld [hl], a ; restore [wPlayerMoveNum] + ret + +ItemUsePokeflute: + ld a, [wIsInBattle] + and a + jr nz, .inBattle +; if not in battle + call ItemUseReloadOverworldData + ld a, [wCurMap] + cp ROUTE_12 + jr nz, .notRoute12 + CheckEvent EVENT_BEAT_ROUTE12_SNORLAX + jr nz, .noSnorlaxOrPikachuToWakeUp +; if the player hasn't beaten Route 12 Snorlax + ld hl, Route12SnorlaxFluteCoords + call ArePlayerCoordsInArray + jr nc, .noSnorlaxOrPikachuToWakeUp + ld hl, PlayedFluteHadEffectText + call PrintText + SetEvent EVENT_FIGHT_ROUTE12_SNORLAX + ret + +.notRoute12 + cp ROUTE_16 + jr nz, .notRoute16 + CheckEvent EVENT_BEAT_ROUTE16_SNORLAX + jr nz, .noSnorlaxOrPikachuToWakeUp +; if the player hasn't beaten Route 16 Snorlax + ld hl, Route16SnorlaxFluteCoords + call ArePlayerCoordsInArray + jr nc, .noSnorlaxOrPikachuToWakeUp + ld hl, PlayedFluteHadEffectText + call PrintText + SetEvent EVENT_FIGHT_ROUTE16_SNORLAX + ret + +.notRoute16 + cp PEWTER_POKECENTER + jr nz, .noSnorlaxOrPikachuToWakeUp + call CheckPikachuFollowingPlayer + jr z, .noSnorlaxOrPikachuToWakeUp + callfar IsPikachuRightNextToPlayer + jr nc, .noSnorlaxOrPikachuToWakeUp + ld hl, PlayedFluteHadEffectText + call PrintText + call ItemUseReloadOverworldData + ldpikaemotion e, PikachuEmotion26 + callfar PlaySpecificPikachuEmotion + ret + +.noSnorlaxOrPikachuToWakeUp + ld hl, PlayedFluteNoEffectText + jp PrintText + +.inBattle + xor a + ld [wWereAnyMonsAsleep], a + ld b, ~SLP & $ff + ld hl, wPartyMon1Status + call WakeUpEntireParty + ld a, [wIsInBattle] + dec a ; is it a trainer battle? + jr z, .skipWakingUpEnemyParty +; if it's a trainer battle + ld hl, wEnemyMon1Status + call WakeUpEntireParty +.skipWakingUpEnemyParty + ld hl, wBattleMonStatus + ld a, [hl] + and b ; remove Sleep status + ld [hl], a + ld hl, wEnemyMonStatus + ld a, [hl] + ld c, a + and b ; remove Sleep status + ld [hl], a + ld a, c + and SLP + jr z, .asm_e063 + ld a, $1 + ld [wWereAnyMonsAsleep], a +.asm_e063 + call LoadScreenTilesFromBuffer2 ; restore saved screen + ld a, [wWereAnyMonsAsleep] + and a ; were any pokemon asleep before playing the flute? + ld hl, PlayedFluteNoEffectText + jp z, PrintText ; if no pokemon were asleep +; if some pokemon were asleep + ld hl, PlayedFluteHadEffectText + call PrintText + ld a, [wLowHealthAlarm] + and $80 + jr nz, .skipMusic + call WaitForSoundToFinish ; wait for sound to end + farcall Music_PokeFluteInBattle ; play in-battle pokeflute music +.musicWaitLoop ; wait for music to finish playing + ld a, [wChannelSoundIDs + Ch7] + and a ; music off? + jr nz, .musicWaitLoop +.skipMusic + ld hl, FluteWokeUpText + jp PrintText + +; wakes up all party pokemon +; INPUT: +; hl must point to status of first pokemon in party (player's or enemy's) +; b must equal ~SLP +; [wWereAnyMonsAsleep] should be initialized to 0 +; OUTPUT: +; [wWereAnyMonsAsleep]: set to 1 if any pokemon were asleep +WakeUpEntireParty: + ld de, 44 + ld c, 6 +.loop + ld a, [hl] + push af + and SLP ; is pokemon asleep? + jr z, .notAsleep + ld a, 1 + ld [wWereAnyMonsAsleep], a ; indicate that a pokemon had to be woken up +.notAsleep + pop af + and b ; remove Sleep status + ld [hl], a + add hl, de + dec c + jr nz, .loop + ret + +Route12SnorlaxFluteCoords: + dbmapcoord 9, 62 ; one space West of Snorlax + dbmapcoord 10, 61 ; one space North of Snorlax + dbmapcoord 10, 63 ; one space South of Snorlax + dbmapcoord 11, 62 ; one space East of Snorlax + db -1 ; end + +Route16SnorlaxFluteCoords: + dbmapcoord 27, 10 ; one space East of Snorlax + dbmapcoord 25, 10 ; one space West of Snorlax + db -1 ; end + +PlayedFluteNoEffectText: + text_far _PlayedFluteNoEffectText + text_end + +FluteWokeUpText: + text_far _FluteWokeUpText + text_end + +PlayedFluteHadEffectText: + text_far _PlayedFluteHadEffectText + text_promptbutton + text_asm + ld a, [wIsInBattle] + and a + jr nz, .done +; play out-of-battle pokeflute music + call StopAllMusic + ld a, SFX_POKEFLUTE + ld c, BANK(SFX_Pokeflute) + call PlayMusic +.musicWaitLoop ; wait for music to finish playing + ld a, [wChannelSoundIDs + Ch3] + cp SFX_POKEFLUTE + jr z, .musicWaitLoop + call PlayDefaultMusic ; start playing normal music again +.done + jp TextScriptEnd ; end text + +ItemUseCoinCase: + ld a, [wIsInBattle] + and a + jp nz, ItemUseNotTime + ld hl, CoinCaseNumCoinsText + jp PrintText + +CoinCaseNumCoinsText: + text_far _CoinCaseNumCoinsText + text_end + +ItemUseOldRod: + call FishingInit + jp c, ItemUseNotTime + lb bc, 5, MAGIKARP + ld a, $1 ; set bite + jr RodResponse + +ItemUseGoodRod: + call FishingInit + jp c, ItemUseNotTime +.RandomLoop + call Random + srl a + jr c, .SetBite + and %11 + cp 2 + jr nc, .RandomLoop + ; choose which monster appears + ld hl, GoodRodMons + add a + ld c, a + ld b, 0 + add hl, bc + ld b, [hl] + inc hl + ld c, [hl] + and a +.SetBite + ld a, 0 + rla + xor 1 + jr RodResponse + +INCLUDE "data/wild/good_rod.asm" + +ItemUseSuperRod: + call FishingInit + jp c, ItemUseNotTime + callfar ReadSuperRodData + ld c, e + ld b, d + ld a, $2 + ld [wRodResponse], a + ld a, c + and a ; are there fish in the map? + jr z, DoNotGenerateFishingEncounter ; if not, do not generate an encounter + ld a, $1 + ld [wRodResponse], a + call Random + and $1 + jr nz, RodResponse + xor a + ld [wRodResponse], a + jr DoNotGenerateFishingEncounter + +RodResponse: + ld [wRodResponse], a + + dec a ; is there a bite? + jr nz, DoNotGenerateFishingEncounter + ; if yes, store level and species data + ld a, 1 + ld [wMoveMissed], a + ld a, b ; level + ld [wCurEnemyLVL], a + ld a, c ; species + ld [wCurOpponent], a + +DoNotGenerateFishingEncounter: + ld hl, wWalkBikeSurfState + ld a, [hl] ; store the value in a + push af + push hl + ld [hl], 0 + farcall FishingAnim + pop hl + pop af + ld [hl], a + ret + +; checks if fishing is possible and if so, runs initialization code common to all rods +; unsets carry if fishing is possible, sets carry if not +FishingInit: + ld a, [wIsInBattle] + and a + jr z, .notInBattle + scf ; can't fish during battle + ret + +.notInBattle + call IsNextTileShoreOrWater + jr nc, .cannotFish + ld a, [wWalkBikeSurfState] + cp 2 ; Surfing? + jr z, .cannotFish + call ItemUseReloadOverworldData + ld hl, ItemUseText00 + call PrintText + ld a, SFX_HEAL_AILMENT + call PlaySound + ld a, $2 + ld [wd49c], a + ld a, $81 + ld [wPikachuMood], a + ld c, 80 + call DelayFrames + and a + ret + +.cannotFish + scf ; can't fish when surfing + ret + +ItemUseOaksParcel: + jp ItemUseNotYoursToUse + +ItemUseItemfinder: + ld a, [wIsInBattle] + and a + jp nz, ItemUseNotTime + call ItemUseReloadOverworldData + farcall HiddenItemNear ; check for hidden items + ld hl, ItemfinderFoundNothingText + jr nc, .printText ; if no hidden items + ld c, 4 +.loop + ld a, SFX_HEALING_MACHINE + call PlaySoundWaitForCurrent + ld a, SFX_PURCHASE + call PlaySoundWaitForCurrent + dec c + jr nz, .loop + ld hl, ItemfinderFoundItemText +.printText + jp PrintText + +ItemfinderFoundItemText: + text_far _ItemfinderFoundItemText + text_end + +ItemfinderFoundNothingText: + text_far _ItemfinderFoundNothingText + text_end + +ItemUsePPUp: + ld a, [wIsInBattle] + and a + jp nz, ItemUseNotTime + +ItemUsePPRestore: + ld a, [wWhichPokemon] + push af + ld a, [wcf91] + ld [wPPRestoreItem], a +.chooseMon + xor a + ld [wUpdateSpritesEnabled], a + ld a, USE_ITEM_PARTY_MENU + ld [wPartyMenuTypeOrMessageID], a + call DisplayPartyMenu + jr nc, .chooseMove + jp .itemNotUsed + +.chooseMove + ld a, [wIsInBattle] + and a + jr z, .usePPItem + ld a, [wWhichPokemon] + ld b, a + ld a, [wPlayerMonNumber] + cp b + jr nz, .usePPItem + ld a, [wPlayerBattleStatus3] + bit TRANSFORMED, a + jr z, .usePPItem + call ItemUseNotTime + jp .itemNotUsed + +.usePPItem + ld a, [wPPRestoreItem] + cp ELIXER + jp nc, .useElixir ; if Elixir or Max Elixir + ld a, $02 + ld [wMoveMenuType], a + ld hl, RaisePPWhichTechniqueText + ld a, [wPPRestoreItem] + cp ETHER ; is it a PP Up? + jr c, .printWhichTechniqueMessage ; if so, print the raise PP message + ld hl, RestorePPWhichTechniqueText ; otherwise, print the restore PP message +.printWhichTechniqueMessage + call PrintText + xor a + ld [wPlayerMoveListIndex], a + callfar MoveSelectionMenu ; move selection menu + ld a, 0 + ld [wPlayerMoveListIndex], a + jr nz, .chooseMon + ld hl, wPartyMon1Moves + ld bc, wPartyMon2 - wPartyMon1 + call GetSelectedMoveOffset + push hl + ld a, [hl] + ld [wd11e], a + call GetMoveName + call CopyStringToCF4B ; copy name to wcf4b + pop hl + ld a, [wPPRestoreItem] + cp ETHER + jr nc, .useEther ; if Ether or Max Ether +.usePPUp + ld bc, wPartyMon1PP - wPartyMon1Moves + add hl, bc + ld a, [hl] ; move PP + cp 3 << 6 ; have 3 PP Ups already been used? + jr c, .PPNotMaxedOut + ld hl, PPMaxedOutText + call PrintText + jr .chooseMove + +.PPNotMaxedOut + ld a, [hl] + add 1 << 6 ; increase PP Up count by 1 + ld [hl], a + ld a, 1 ; 1 PP Up used + ld [wd11e], a + call RestoreBonusPP ; add the bonus PP to current PP + ld a, SFX_HEAL_AILMENT + call PlaySound + ld hl, PPIncreasedText + call PrintText +.done + pop af + ld [wWhichPokemon], a + call GBPalWhiteOut + call RunDefaultPaletteCommand + jp RemoveUsedItem + +.afterRestoringPP ; after using a (Max) Ether/Elixir + ld a, [wWhichPokemon] + ld b, a + ld a, [wPlayerMonNumber] + cp b ; is the pokemon whose PP was restored active in battle? + jr nz, .skipUpdatingInBattleData + ld hl, wPartyMon1PP + ld bc, wPartyMon2 - wPartyMon1 + call AddNTimes + ld de, wBattleMonPP + ld bc, 4 + call CopyData ; copy party data to in-battle data +.skipUpdatingInBattleData + ld a, SFX_HEAL_AILMENT + call PlaySound + ld hl, PPRestoredText + call PrintText + jr .done + +.useEther + call .restorePP + jr nz, .afterRestoringPP + jp .noEffect + +; unsets zero flag if PP was restored, sets zero flag if not +; however, this is bugged for Max Ethers and Max Elixirs (see below) +.restorePP + xor a ; PLAYER_PARTY_DATA + ld [wMonDataLocation], a + call GetMaxPP + ld hl, wPartyMon1Moves + ld bc, wPartyMon2 - wPartyMon1 + call GetSelectedMoveOffset + ld bc, wPartyMon1PP - wPartyMon1Moves + add hl, bc ; hl now points to move's PP + ld a, [wMaxPP] + ld b, a + ld a, [wPPRestoreItem] + cp MAX_ETHER + jr z, .fullyRestorePP + ld a, [hl] ; move PP + and %00111111 ; lower 6 bit bits store current PP + cp b ; does current PP equal max PP? + ret z ; if so, return + add 10 ; increase current PP by 10 +; b holds the max PP amount and b will hold the new PP amount. +; So, if the new amount meets or exceeds the max amount, +; cap the amount to the max amount by leaving b unchanged. +; Otherwise, store the new amount in b. + cp b ; does the new amount meet or exceed the maximum? + jr nc, .storeNewAmount + ld b, a +.storeNewAmount + ld a, [hl] ; move PP + and %11000000 ; PP Up counter bits + add b + ld [hl], a + ret + +.fullyRestorePP + ld a, [hl] ; move PP +; Note that this code has a bug. It doesn't mask out the upper two bits, which +; are used to count how many PP Ups have been used on the move. So, Max Ethers +; and Max Elixirs will not be detected as having no effect on a move with full +; PP if the move has had any PP Ups used on it. + cp b ; does current PP equal max PP? + ret z + jr .storeNewAmount + +.useElixir +; decrement the item ID so that ELIXER becomes ETHER and MAX_ELIXER becomes MAX_ETHER + ld hl, wPPRestoreItem + dec [hl] + dec [hl] + xor a + ld hl, wCurrentMenuItem + ld [hli], a + ld [hl], a ; zero the counter for number of moves that had their PP restored + ld b, 4 +; loop through each move and restore PP +.elixirLoop + push bc + ld hl, wPartyMon1Moves + ld bc, wPartyMon2 - wPartyMon1 + call GetSelectedMoveOffset + ld a, [hl] + and a ; does the current slot have a move? + jr z, .nextMove + call .restorePP + jr z, .nextMove +; if some PP was restored + ld hl, wTileBehindCursor ; counter for number of moves that had their PP restored + inc [hl] +.nextMove + ld hl, wCurrentMenuItem + inc [hl] + pop bc + dec b + jr nz, .elixirLoop + ld a, [wTileBehindCursor] + and a ; did any moves have their PP restored? + jp nz, .afterRestoringPP +.noEffect + call ItemUseNoEffect +.itemNotUsed + call GBPalWhiteOut + call RunDefaultPaletteCommand + pop af + xor a + ld [wActionResultOrTookBattleTurn], a ; item use failed + ret + +RaisePPWhichTechniqueText: + text_far _RaisePPWhichTechniqueText + text_end + +RestorePPWhichTechniqueText: + text_far _RestorePPWhichTechniqueText + text_end + +PPMaxedOutText: + text_far _PPMaxedOutText + text_end + +PPIncreasedText: + text_far _PPIncreasedText + text_end + +PPRestoredText: + text_far _PPRestoredText + text_end + +; for items that can't be used from the Item menu +UnusableItem: + jp ItemUseNotTime + +ItemUseTMHM: + ld a, [wIsInBattle] + and a + jp nz, ItemUseNotTime + ld a, [wcf91] + sub TM01 ; underflows below 0 for HM items (before TM items) + push af + jr nc, .skipAdding + add NUM_TMS + NUM_HMS ; adjust HM IDs to come after TM IDs +.skipAdding + inc a + ld [wd11e], a + predef TMToMove ; get move ID from TM/HM ID + ld a, [wd11e] + ld [wMoveNum], a + call GetMoveName + call CopyStringToCF4B ; copy name to wcf4b + pop af + ld hl, BootedUpTMText + jr nc, .printBootedUpMachineText + ld hl, BootedUpHMText +.printBootedUpMachineText + call PrintText + ld hl, TeachMachineMoveText + call PrintText + hlcoord 14, 7 + lb bc, 8, 15 + ld a, TWO_OPTION_MENU + ld [wTextBoxID], a + call DisplayTextBoxID ; yes/no menu + ld a, [wCurrentMenuItem] + and a + jr z, .useMachine + ld a, 2 + ld [wActionResultOrTookBattleTurn], a ; item not used + ret + +.useMachine + ld a, [wWhichPokemon] + push af + ld a, [wcf91] + push af +.chooseMon + ld hl, wcf4b + ld de, wTempMoveNameBuffer + ld bc, 14 + call CopyData ; save the move name because DisplayPartyMenu will overwrite it + ld a, $ff + ld [wUpdateSpritesEnabled], a + ld a, TMHM_PARTY_MENU + ld [wPartyMenuTypeOrMessageID], a + call DisplayPartyMenu + push af + ld hl, wTempMoveNameBuffer + ld de, wcf4b + ld bc, 14 + call CopyData + pop af + jr nc, .checkIfAbleToLearnMove +; if the player canceled teaching the move + pop af + pop af + call GBPalWhiteOutWithDelay3 + call ClearSprites + call RunDefaultPaletteCommand + jp LoadScreenTilesFromBuffer1 ; restore saved screen +.checkIfAbleToLearnMove + predef CanLearnTM ; check if the pokemon can learn the move + push bc + ld a, [wWhichPokemon] + ld hl, wPartyMonNicks + call GetPartyMonName + pop bc + ld a, c + and a ; can the pokemon learn the move? + jr nz, .checkIfAlreadyLearnedMove +; if the pokemon can't learn the move + ld a, SFX_DENIED + call PlaySoundWaitForCurrent + ld hl, MonCannotLearnMachineMoveText + call PrintText + jr .chooseMon + +.checkIfAlreadyLearnedMove + callfar CheckIfMoveIsKnown ; check if the pokemon already knows the move + jr c, .chooseMon + predef LearnMove ; teach move + ld a, [wWhichPokemon] + ld d, a + pop af + ld [wcf91], a + pop af + ld [wWhichPokemon], a + ld a, b + and a + ret z + + ld a, [wWhichPokemon] + push af + ld a, d + ld [wWhichPokemon], a + callabd_ModifyPikachuHappiness PIKAHAPPY_USEDTMHM + callfar IsThisPartymonStarterPikachu_Party + jr nc, .notTeachingThunderboltOrThunderToPikachu + ld a, [wcf91] + cp TM_THUNDERBOLT ; are we teaching thunderbolt to the player pikachu? + jr z, .teachingThunderboltOrThunderToPlayerPikachu + cp TM_THUNDER ; are we teaching thunder then? + jr nz, .notTeachingThunderboltOrThunderToPikachu +.teachingThunderboltOrThunderToPlayerPikachu + ld a, $5 + ld [wd49c], a + ld a, $85 + ld [wPikachuMood], a +.notTeachingThunderboltOrThunderToPikachu + pop af + ld [wWhichPokemon], a + + ld a, [wcf91] + call IsItemHM + ret c + jp RemoveUsedItem + +BootedUpTMText: + text_far _BootedUpTMText + text_end + +BootedUpHMText: + text_far _BootedUpHMText + text_end + +TeachMachineMoveText: + text_far _TeachMachineMoveText + text_end + +MonCannotLearnMachineMoveText: + text_far _MonCannotLearnMachineMoveText + text_end + +PrintItemUseTextAndRemoveItem: + ld hl, ItemUseText00 + call PrintText + ld a, SFX_HEAL_AILMENT + call PlaySound + call WaitForTextScrollButtonPress ; wait for button press + +RemoveUsedItem: + ld hl, wNumBagItems + ld a, 1 ; one item + ld [wItemQuantity], a + jp RemoveItemFromInventory + +ItemUseNoEffect: + ld hl, ItemUseNoEffectText + jr ItemUseFailed + +ItemUseNotTime: + ld hl, ItemUseNotTimeText + jr ItemUseFailed + +ItemUseNotYoursToUse: + ld hl, ItemUseNotYoursToUseText + jr ItemUseFailed + +Func_e4bf: + ld a, $2 + ld [wActionResultOrTookBattleTurn], a + ld hl, DontHavePokemonText + jp PrintText + +ThrowBallAtTrainerMon: + call RunDefaultPaletteCommand + call LoadScreenTilesFromBuffer1 ; restore saved screen + call Delay3 + ld a, TOSS_ANIM + ld [wAnimationID], a + predef MoveAnimation ; do animation + ld hl, ThrowBallAtTrainerMonText1 + call PrintText + ld hl, ThrowBallAtTrainerMonText2 + call PrintText + jr RemoveUsedItem + +NoCyclingAllowedHere: + ld hl, NoCyclingAllowedHereText + jr ItemUseFailed + +BoxFullCannotThrowBall: + ld hl, BoxFullCannotThrowBallText + jr ItemUseFailed + +SurfingAttemptFailed: + ld hl, NoSurfingHereText + +ItemUseFailed: + xor a + ld [wActionResultOrTookBattleTurn], a ; item use failed + jp PrintText + +ItemUseNotTimeText: + text_far _ItemUseNotTimeText + text_end + +ItemUseNotYoursToUseText: + text_far _ItemUseNotYoursToUseText + text_end + +ItemUseNoEffectText: + text_far _ItemUseNoEffectText + text_end + +ThrowBallAtTrainerMonText1: + text_far _ThrowBallAtTrainerMonText1 + text_end + +ThrowBallAtTrainerMonText2: + text_far _ThrowBallAtTrainerMonText2 + text_end + +NoCyclingAllowedHereText: + text_far _NoCyclingAllowedHereText + text_end + +NoSurfingHereText: + text_far _NoSurfingHereText + text_end + +BoxFullCannotThrowBallText: + text_far _BoxFullCannotThrowBallText + text_end + +DontHavePokemonText: + text_far _DontHavePokemonText + text_end + +ItemUseText00: + text_far _ItemUseText001 + text_low + text_far _ItemUseText002 + text_end + +GotOnBicycleText: + text_far _GotOnBicycleText1 + text_low + text_far _GotOnBicycleText2 + text_end + +GotOffBicycleText: + text_far _GotOffBicycleText1 + text_low + text_far _GotOffBicycleText2 + text_end + +; restores bonus PP (from PP Ups) when healing at a pokemon center +; also, when a PP Up is used, it increases the current PP by one PP Up bonus +; INPUT: +; [wWhichPokemon] = index of pokemon in party +; [wCurrentMenuItem] = index of move (when using a PP Up) +RestoreBonusPP: + ld hl, wPartyMon1Moves + ld bc, wPartyMon2 - wPartyMon1 + ld a, [wWhichPokemon] + call AddNTimes + push hl + ld de, wNormalMaxPPList - 1 + predef LoadMovePPs ; loads the normal max PP of each of the pokemon's moves to wNormalMaxPPList + pop hl + ld c, wPartyMon1PP - wPartyMon1Moves + ld b, 0 + add hl, bc ; hl now points to move 1 PP + ld de, wNormalMaxPPList + ld b, 0 ; initialize move counter to zero +; loop through the pokemon's moves +.loop + inc b + ld a, b + cp 5 ; reached the end of the pokemon's moves? + ret z ; if so, return + ld a, [wUsingPPUp] + dec a ; using a PP Up? + jr nz, .skipMenuItemIDCheck +; if using a PP Up, check if this is the move it's being used on + ld a, [wCurrentMenuItem] + inc a + cp b + jr nz, .nextMove +.skipMenuItemIDCheck + ld a, [hl] + and %11000000 ; have any PP Ups been used? + call nz, AddBonusPP ; if so, add bonus PP +.nextMove + inc hl + inc de + jr .loop + +; adds bonus PP from PP Ups to current PP +; 1/5 of normal max PP (capped at 7) is added for each PP Up +; INPUT: +; [de] = normal max PP +; [hl] = move PP +AddBonusPP: + push bc + ld a, [de] ; normal max PP of move + ldh [hDividend + 3], a + xor a + ldh [hDividend], a + ldh [hDividend + 1], a + ldh [hDividend + 2], a + ld a, 5 + ldh [hDivisor], a + ld b, 4 + call Divide + ld a, [hl] ; move PP + ld b, a + swap a + and %00001111 + srl a + srl a + ld c, a ; c = number of PP Ups used +.loop + ldh a, [hQuotient + 3] + cp 8 ; is the amount greater than or equal to 8? + jr c, .addAmount + ld a, 7 ; cap the amount at 7 +.addAmount + add b + ld b, a + ld a, [wUsingPPUp] + dec a ; is the player using a PP Up right now? + jr z, .done ; if so, only add the bonus once + dec c + jr nz, .loop +.done + ld [hl], b + pop bc + ret + +; gets max PP of a pokemon's move (including PP from PP Ups) +; INPUT: +; [wWhichPokemon] = index of pokemon within party/box +; [wMonDataLocation] = pokemon source +; 00: player's party +; 01: enemy's party +; 02: current box +; 03: daycare +; 04: player's in-battle pokemon +; [wCurrentMenuItem] = move index +; OUTPUT: +; [wMaxPP] = max PP +GetMaxPP: + ld a, [wMonDataLocation] + and a + ld hl, wPartyMon1Moves + ld bc, wPartyMon2 - wPartyMon1 + jr z, .sourceWithMultipleMon + ld hl, wEnemyMon1Moves + dec a + jr z, .sourceWithMultipleMon + ld hl, wBoxMon1Moves + ld bc, wBoxMon2 - wBoxMon1 + dec a + jr z, .sourceWithMultipleMon + ld hl, wDayCareMonMoves + dec a + jr z, .sourceWithOneMon + ld hl, wBattleMonMoves ; player's in-battle pokemon +.sourceWithOneMon + call GetSelectedMoveOffset2 + jr .next + +.sourceWithMultipleMon + call GetSelectedMoveOffset +.next + ld a, [hl] + dec a + push hl + ld hl, Moves + ld bc, MoveEnd - Moves + call AddNTimes + ld de, wcd6d + ld a, BANK(Moves) + call FarCopyData + ld de, wcd6d + 5 ; PP is byte 5 of move data + ld a, [de] + ld b, a ; b = normal max PP + pop hl + push bc + ld bc, wPartyMon1PP - wPartyMon1Moves ; PP offset if not player's in-battle pokemon data + ld a, [wMonDataLocation] + cp 4 ; player's in-battle pokemon? + jr nz, .addPPOffset + ld bc, wBattleMonPP - wBattleMonMoves ; PP offset if player's in-battle pokemon data +.addPPOffset + add hl, bc + ld a, [hl] ; a = current PP + and %11000000 ; get PP Up count + pop bc + or b ; place normal max PP in 6 lower bits of a + ld h, d + ld l, e + inc hl ; hl = wcd73 + ld [hl], a + xor a ; add the bonus for the existing PP Up count + ld [wUsingPPUp], a + call AddBonusPP ; add bonus PP from PP Ups + ld a, [hl] + and %00111111 ; mask out the PP Up count + ld [wMaxPP], a ; store max PP + ret + +GetSelectedMoveOffset: + ld a, [wWhichPokemon] + call AddNTimes + +GetSelectedMoveOffset2: + ld a, [wCurrentMenuItem] + ld c, a + ld b, 0 + add hl, bc + ret + +; confirms the item toss and then tosses the item +; INPUT: +; hl = address of inventory (either wNumBagItems or wNumBoxItems) +; [wcf91] = item ID +; [wWhichPokemon] = index of item within inventory +; [wItemQuantity] = quantity to toss +; OUTPUT: +; clears carry flag if the item is tossed, sets carry flag if not +TossItem_:: + push hl + ld a, [wcf91] + call IsItemHM + pop hl + jr c, .tooImportantToToss + push hl + call IsKeyItem_ + ld a, [wIsKeyItem] + pop hl + and a + jr nz, .tooImportantToToss + push hl + ld a, [wcf91] + ld [wd11e], a + call GetItemName + call CopyStringToCF4B ; copy name to wcf4b + ld hl, IsItOKToTossItemText + call PrintText + hlcoord 14, 7 + lb bc, 8, 15 + ld a, TWO_OPTION_MENU + ld [wTextBoxID], a + call DisplayTextBoxID ; yes/no menu + ld a, [wMenuExitMethod] + cp CHOSE_SECOND_ITEM + pop hl + scf + ret z ; return if the player chose No +; if the player chose Yes + push hl + ld a, [wWhichPokemon] + call RemoveItemFromInventory + ld a, [wcf91] + ld [wd11e], a + call GetItemName + call CopyStringToCF4B ; copy name to wcf4b + ld hl, ThrewAwayItemText + call PrintText + pop hl + and a + ret + +.tooImportantToToss + push hl + ld hl, TooImportantToTossText + call PrintText + pop hl + scf + ret + +ThrewAwayItemText: + text_far _ThrewAwayItemText + text_end + +IsItOKToTossItemText: + text_far _IsItOKToTossItemText + text_end + +TooImportantToTossText: + text_far _TooImportantToTossText + text_end + +; checks if an item is a key item +; INPUT: +; [wcf91] = item ID +; OUTPUT: +; [wIsKeyItem] = result +; 00: item is not key item +; 01: item is key item +IsKeyItem_:: + ld a, $01 + ld [wIsKeyItem], a + ld a, [wcf91] + cp HM01 ; is the item an HM or TM? + jr nc, .checkIfItemIsHM +; if the item is not an HM or TM + push af + ld hl, KeyItemBitfield + ld de, wBuffer + ld bc, 15 ; only 11 bytes are actually used + call CopyData + pop af + dec a + ld c, a + ld hl, wBuffer + ld b, FLAG_TEST + predef FlagActionPredef + ld a, c + and a + ret nz +.checkIfItemIsHM + ld a, [wcf91] + call IsItemHM + ret c + xor a + ld [wIsKeyItem], a + ret + +INCLUDE "data/items/key_items.asm" + +SendNewMonToBox: + ld de, wNumInBox + ld a, [de] + inc a + ld [de], a + ld a, [wcf91] + ld [wd0b5], a + ld c, a +.asm_e6f5 + inc de + ld a, [de] + ld b, a + ld a, c + ld c, b + ld [de], a + cp $ff + jr nz, .asm_e6f5 + call GetMonHeader + ld hl, wBoxMonOT + ld bc, NAME_LENGTH + ld a, [wNumInBox] + dec a + jr z, .asm_e732 + dec a + call AddNTimes + push hl + ld bc, NAME_LENGTH + add hl, bc + ld d, h + ld e, l + pop hl + ld a, [wNumInBox] + dec a + ld b, a +.asm_e71f + push bc + push hl + ld bc, NAME_LENGTH + call CopyData + pop hl + ld d, h + ld e, l + ld bc, -NAME_LENGTH + add hl, bc + pop bc + dec b + jr nz, .asm_e71f +.asm_e732 + ld hl, wPlayerName + ld de, wBoxMonOT + ld bc, NAME_LENGTH + call CopyData + ld a, [wNumInBox] + dec a + jr z, .asm_e76e + ld hl, wBoxMonNicks + ld bc, NAME_LENGTH + dec a + call AddNTimes + push hl + ld bc, NAME_LENGTH + add hl, bc + ld d, h + ld e, l + pop hl + ld a, [wNumInBox] + dec a + ld b, a +.asm_e75b + push bc + push hl + ld bc, NAME_LENGTH + call CopyData + pop hl + ld d, h + ld e, l + ld bc, -NAME_LENGTH + add hl, bc + pop bc + dec b + jr nz, .asm_e75b +.asm_e76e + ld hl, wBoxMonNicks + ld a, NAME_MON_SCREEN + ld [wNamingScreenType], a + predef AskName + ld a, [wNumInBox] + dec a + jr z, .asm_e7ab + ld hl, wBoxMons + ld bc, wBoxMon2 - wBoxMon1 + dec a + call AddNTimes + push hl + ld bc, wBoxMon2 - wBoxMon1 + add hl, bc + ld d, h + ld e, l + pop hl + ld a, [wNumInBox] + dec a + ld b, a +.asm_e798 + push bc + push hl + ld bc, wBoxMon2 - wBoxMon1 + call CopyData + pop hl + ld d, h + ld e, l + ld bc, wBoxMon1 - wBoxMon2 + add hl, bc + pop bc + dec b + jr nz, .asm_e798 +.asm_e7ab + ld a, [wEnemyMonLevel] + ld [wEnemyMonBoxLevel], a + ld hl, wEnemyMon + ld de, wBoxMon1 + ld bc, wEnemyMonDVs - wEnemyMon + call CopyData + ld hl, wPlayerID + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + push de + ld a, [wCurEnemyLVL] + ld d, a + callfar CalcExperience + pop de + ldh a, [hExperience] + ld [de], a + inc de + ldh a, [hExperience + 1] + ld [de], a + inc de + ldh a, [hExperience + 2] + ld [de], a + inc de + xor a + ld b, NUM_STATS * 2 +.asm_e7e3 + ld [de], a + inc de + dec b + jr nz, .asm_e7e3 + ld hl, wEnemyMonDVs + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + ld hl, wEnemyMonPP + ld b, NUM_MOVES +.asm_e7f5 + ld a, [hli] + inc de + ld [de], a + dec b + jr nz, .asm_e7f5 + ld a, [wcf91] + cp KADABRA + jr nz, .notKadabra + ld a, $60 ; twistedspoon in gsc + ld [wBoxMon1CatchRate], a +.notKadabra + ret + +; checks if the tile in front of the player is a shore or water tile +; used for surfing and fishing +; unsets carry if it is, sets carry if not +IsNextTileShoreOrWater:: + ld a, [wCurMapTileset] + ld hl, WaterTilesets + ld de, 1 + call IsInArray ; does the current map allow surfing? + ret nc ; if not, return + ld hl, WaterTile + ld a, [wCurMapTileset] + cp SHIP_PORT ; Vermilion Dock tileset + jr z, .skipShoreTiles ; if it's the Vermilion Dock tileset + cp GYM ; eastern shore tile in Safari Zone + jr z, .skipShoreTiles + cp DOJO ; usual eastern shore tile + jr z, .skipShoreTiles + ld hl, ShoreTiles +.skipShoreTiles + ld a, [wTileInFrontOfPlayer] + ld de, $1 + call IsInArray + ret + +INCLUDE "data/tilesets/water_tilesets.asm" + +; shore tiles +ShoreTiles: + db $48, $32 +WaterTile: + db $14 + db $ff ; terminator + +; reloads map view and processes sprite data +; for items that cause the overworld to be displayed +ItemUseReloadOverworldData: + call LoadCurrentMapView + jp UpdateSprites + +; creates a list at wBuffer of maps where the mon in [wd11e] can be found. +; this is used by the pokedex to display locations the mon can be found on the map. +FindWildLocationsOfMon: + ld hl, WildDataPointers + ld de, wBuffer + ld c, $0 +.loop + inc hl + ld a, [hld] + inc a + jr z, .done + push hl + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hli] + and a + call nz, CheckMapForMon ; land + ld a, [hli] + and a + call nz, CheckMapForMon ; water + pop hl + inc hl + inc hl + inc c + jr .loop +.done + ld a, $ff ; list terminator + ld [de], a + ret + +CheckMapForMon: + inc hl + ld b, $a +.loop + ld a, [wd11e] + cp [hl] + jr nz, .nextEntry + ld a, c + ld [de], a + inc de +.nextEntry + inc hl + inc hl + dec b + jr nz, .loop + dec hl + ret diff --git a/engine/items/items.asm b/engine/items/items.asm deleted file mode 100755 index e935f292a..000000000 --- a/engine/items/items.asm +++ /dev/null @@ -1,3235 +0,0 @@ -UseItem_: - ld a, 1 - ld [wActionResultOrTookBattleTurn], a ; initialise to success value - ld a, [wcf91] ;contains item_ID - cp HM_01 - jp nc, ItemUseTMHM - ld hl, ItemUsePtrTable - dec a - add a - ld c, a - ld b, 0 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - jp hl - -ItemUsePtrTable: - dw ItemUseBall ; MASTER_BALL - dw ItemUseBall ; ULTRA_BALL - dw ItemUseBall ; GREAT_BALL - dw ItemUseBall ; POKE_BALL - dw ItemUseTownMap ; TOWN_MAP - dw ItemUseBicycle ; BICYCLE - dw ItemUseSurfboard ; out-of-battle Surf effect - dw ItemUseBall ; SAFARI_BALL - dw ItemUsePokedex ; POKEDEX - dw ItemUseEvoStone ; MOON_STONE - dw ItemUseMedicine ; ANTIDOTE - dw ItemUseMedicine ; BURN_HEAL - dw ItemUseMedicine ; ICE_HEAL - dw ItemUseMedicine ; AWAKENING - dw ItemUseMedicine ; PARLYZ_HEAL - dw ItemUseMedicine ; FULL_RESTORE - dw ItemUseMedicine ; MAX_POTION - dw ItemUseMedicine ; HYPER_POTION - dw ItemUseMedicine ; SUPER_POTION - dw ItemUseMedicine ; POTION - dw ItemUseBait ; BOULDERBADGE - dw ItemUseRock ; CASCADEBADGE - dw UnusableItem ; THUNDERBADGE - dw UnusableItem ; RAINBOWBADGE - dw UnusableItem ; SOULBADGE - dw UnusableItem ; MARSHBADGE - dw UnusableItem ; VOLCANOBADGE - dw UnusableItem ; EARTHBADGE - dw ItemUseEscapeRope ; ESCAPE_ROPE - dw ItemUseRepel ; REPEL - dw UnusableItem ; OLD_AMBER - dw ItemUseEvoStone ; FIRE_STONE - dw ItemUseEvoStone ; THUNDER_STONE - dw ItemUseEvoStone ; WATER_STONE - dw ItemUseVitamin ; HP_UP - dw ItemUseVitamin ; PROTEIN - dw ItemUseVitamin ; IRON - dw ItemUseVitamin ; CARBOS - dw ItemUseVitamin ; CALCIUM - dw ItemUseVitamin ; RARE_CANDY - dw UnusableItem ; DOME_FOSSIL - dw UnusableItem ; HELIX_FOSSIL - dw UnusableItem ; SECRET_KEY - dw UnusableItem - dw UnusableItem ; BIKE_VOUCHER - dw ItemUseXAccuracy ; X_ACCURACY - dw ItemUseEvoStone ; LEAF_STONE - dw ItemUseCardKey ; CARD_KEY - dw UnusableItem ; NUGGET - dw UnusableItem ; ??? PP_UP - dw ItemUsePokedoll ; POKE_DOLL - dw ItemUseMedicine ; FULL_HEAL - dw ItemUseMedicine ; REVIVE - dw ItemUseMedicine ; MAX_REVIVE - dw ItemUseGuardSpec ; GUARD_SPEC - dw ItemUseSuperRepel ; SUPER_REPL - dw ItemUseMaxRepel ; MAX_REPEL - dw ItemUseDireHit ; DIRE_HIT - dw UnusableItem ; COIN - dw ItemUseMedicine ; FRESH_WATER - dw ItemUseMedicine ; SODA_POP - dw ItemUseMedicine ; LEMONADE - dw UnusableItem ; S_S_TICKET - dw UnusableItem ; GOLD_TEETH - dw ItemUseXStat ; X_ATTACK - dw ItemUseXStat ; X_DEFEND - dw ItemUseXStat ; X_SPEED - dw ItemUseXStat ; X_SPECIAL - dw ItemUseCoinCase ; COIN_CASE - dw ItemUseOaksParcel ; OAKS_PARCEL - dw ItemUseItemfinder ; ITEMFINDER - dw UnusableItem ; SILPH_SCOPE - dw ItemUsePokeflute ; POKE_FLUTE - dw UnusableItem ; LIFT_KEY - dw UnusableItem ; EXP_ALL - dw ItemUseOldRod ; OLD_ROD - dw ItemUseGoodRod ; GOOD_ROD - dw ItemUseSuperRod ; SUPER_ROD - dw ItemUsePPUp ; PP_UP (real one) - dw ItemUsePPRestore ; ETHER - dw ItemUsePPRestore ; MAX_ETHER - dw ItemUsePPRestore ; ELIXER - dw ItemUsePPRestore ; MAX_ELIXER - -ItemUseBall: - -; Balls can't be used out of battle. - ld a, [wIsInBattle] - and a - jp z, ItemUseNotTime - -; Balls can't catch trainers' Pokémon. - dec a - jp nz, ThrowBallAtTrainerMon - -; If this is for the old man battle, skip checking if the party & box are full. - ld a, [wBattleType] - cp BATTLE_TYPE_OLD_MAN - jr z, .canUseBall - cp BATTLE_TYPE_PIKACHU - jr z, .canUseBall - - ld a, [wPartyCount] ; is party full? - cp PARTY_LENGTH - jr nz, .canUseBall - ld a, [wNumInBox] ; is box full? - cp MONS_PER_BOX - jp z, BoxFullCannotThrowBall - -.canUseBall - xor a - ld [wCapturedMonSpecies], a - - ld a, [wBattleType] - cp BATTLE_TYPE_SAFARI - jr nz, .skipSafariZoneCode - -.safariZone - ld hl, wNumSafariBalls - dec [hl] ; remove a Safari Ball - -.skipSafariZoneCode - call RunDefaultPaletteCommand - - ld a, $43 ; successful capture value - ld [wPokeBallAnimData], a - - call LoadScreenTilesFromBuffer1 - ld hl, ItemUseText00 - call PrintText - -; If the player is fighting an unidentified ghost, set the value that indicates -; the Pokémon can't be caught and skip the capture calculations. - callab IsGhostBattle - ld b, $10 ; can't be caught value - jp z, .setAnimData - - ld a, [wBattleType] - cp BATTLE_TYPE_OLD_MAN - jr z, .oldManBattle - cp BATTLE_TYPE_PIKACHU - jr z, .oldManBattle ; pikachu battle technically old man battle - jr .notOldManBattle - -.oldManBattle - ld hl, wGrassRate - ld de, wPlayerName - ld bc, NAME_LENGTH - call CopyData ; save the player's name in the Wild Monster data (part of the Cinnabar Island Missingno. glitch) - ld a, [wBattleType] - cp BATTLE_TYPE_OLD_MAN - jp nz,.captured - ld a,$1 - ld [wCapturedMonSpecies], a - CheckEvent EVENT_02F - ld b, $63 - jp nz,.setAnimData - jp .captured -.notOldManBattle -; If the player is fighting the ghost Marowak, set the value that indicates the -; Pokémon can't be caught and skip the capture calculations. - ld a, [wCurMap] - cp POKEMON_TOWER_6F - jr nz, .loop - ld a, [wEnemyMonSpecies2] - cp RESTLESS_SOUL - ld b, $10 ; can't be caught value - jp z, .setAnimData - -; Get the first random number. Let it be called Rand1. -; Rand1 must be within a certain range according the kind of ball being thrown. -; The ranges are as follows. -; Poké Ball: [0, 255] -; Great Ball: [0, 200] -; Ultra/Safari Ball: [0, 150] -; Loop until an acceptable number is found. - -.loop - call Random - ld b, a - -; Get the item ID. - ld hl, wcf91 - ld a, [hl] - -; The Master Ball always succeeds. - cp MASTER_BALL - jp z, .captured - -; Anything will do for the basic Poké Ball. - cp POKE_BALL - jr z, .checkForAilments - -; If it's a Great/Ultra/Safari Ball and Rand1 is greater than 200, try again. - ld a, 200 - cp b - jr c, .loop - -; Less than or equal to 200 is good enough for a Great Ball. - ld a, [hl] - cp GREAT_BALL - jr z, .checkForAilments - -; If it's an Ultra/Safari Ball and Rand1 is greater than 150, try again. - ld a, 150 - cp b - jr c, .loop - -.checkForAilments -; Pokémon can be caught more easily with a status ailment. -; Depending on the status ailment, a certain value will be subtracted from -; Rand1. Let this value be called Status. -; The larger Status is, the more easily the Pokémon can be caught. -; no status ailment: Status = 0 -; Burn/Paralysis/Poison: Status = 12 -; Freeze/Sleep: Status = 25 -; If Status is greater than Rand1, the Pokémon will be caught for sure. - ld a, [wEnemyMonStatus] - and a - jr z, .skipAilmentValueSubtraction ; no ailments - and 1 << FRZ | SLP - ld c, 12 - jr z, .notFrozenOrAsleep - ld c, 25 -.notFrozenOrAsleep - ld a, b - sub c - jp c, .captured - ld b, a - -.skipAilmentValueSubtraction - push bc ; save (Rand1 - Status) - -; Calculate MaxHP * 255. - xor a - ld [H_MULTIPLICAND], a - ld hl, wEnemyMonMaxHP - ld a, [hli] - ld [H_MULTIPLICAND + 1], a - ld a, [hl] - ld [H_MULTIPLICAND + 2], a - ld a, 255 - ld [H_MULTIPLIER], a - call Multiply - -; Determine BallFactor. It's 8 for Great Balls and 12 for the others. - ld a, [wcf91] - cp GREAT_BALL - ld a, 12 - jr nz, .skip1 - ld a, 8 - -.skip1 -; Note that the results of all division operations are floored. - -; Calculate (MaxHP * 255) / BallFactor. - ld [H_DIVISOR], a - ld b, 4 ; number of bytes in dividend - call Divide - -; Divide the enemy's current HP by 4. HP is not supposed to exceed 999 so -; the result should fit in a. If the division results in a quotient of 0, -; change it to 1. - ld hl, wEnemyMonHP - ld a, [hli] - ld b, a - ld a, [hl] - srl b - rr a - srl b - rr a - and a - jr nz, .skip2 - inc a - -.skip2 - -; Let W = ((MaxHP * 255) / BallFactor) / max(HP / 4, 1). Calculate W. - ld [H_DIVISOR], a - ld b, 4 - call Divide - -; If W > 255, store 255 in [H_QUOTIENT + 3]. -; Let X = min(W, 255) = [H_QUOTIENT + 3]. - ld a, [H_QUOTIENT + 2] - and a - jr z, .skip3 - ld a, 255 - ld [H_QUOTIENT + 3], a - -.skip3 - pop bc ; b = Rand1 - Status - -; If Rand1 - Status > CatchRate, the ball fails to capture the Pokémon. - ld a, [wEnemyMonActualCatchRate] - cp b - jr c, .failedToCapture - -; If W > 255, the ball captures the Pokémon. - ld a, [H_QUOTIENT + 2] - and a - jr nz, .captured - - call Random ; Let this random number be called Rand2. - -; If Rand2 > X, the ball fails to capture the Pokémon. - ld b, a - ld a, [H_QUOTIENT + 3] - cp b - jr c, .failedToCapture - -.captured - jr .skipShakeCalculations - -.failedToCapture - ld a, [H_QUOTIENT + 3] - ld [wPokeBallCaptureCalcTemp], a ; Save X. - -; Calculate CatchRate * 100. - xor a - ld [H_MULTIPLICAND], a - ld [H_MULTIPLICAND + 1], a - ld a, [wEnemyMonActualCatchRate] - ld [H_MULTIPLICAND + 2], a - ld a, 100 - ld [H_MULTIPLIER], a - call Multiply - -; Determine BallFactor2. -; Poké Ball: BallFactor2 = 255 -; Great Ball: BallFactor2 = 200 -; Ultra/Safari Ball: BallFactor2 = 150 - ld a, [wcf91] - ld b, 255 - cp POKE_BALL - jr z, .skip4 - ld b, 200 - cp GREAT_BALL - jr z, .skip4 - ld b, 150 - cp ULTRA_BALL - jr z, .skip4 - -.skip4 - -; Let Y = (CatchRate * 100) / BallFactor2. Calculate Y. - ld a, b - ld [H_DIVISOR], a - ld b, 4 - call Divide - -; If Y > 255, there are 3 shakes. -; Note that this shouldn't be possible. -; The maximum value of Y is (255 * 100) / 150 = 170. - ld a, [H_QUOTIENT + 2] - and a - ld b, $63 ; 3 shakes - jr nz, .setAnimData - -; Calculate X * Y. - ld a, [wPokeBallCaptureCalcTemp] - ld [H_MULTIPLIER], a - call Multiply - -; Calculate (X * Y) / 255. - ld a, 255 - ld [H_DIVISOR], a - ld b, 4 - call Divide - -; Determine Status2. -; no status ailment: Status2 = 0 -; Burn/Paralysis/Poison: Status2 = 5 -; Freeze/Sleep: Status2 = 10 - ld a, [wEnemyMonStatus] - and a - jr z, .skip5 - and 1 << FRZ | SLP - ld b, 5 - jr z, .addAilmentValue - ld b, 10 - -.addAilmentValue -; If the Pokémon has a status ailment, add Status2. - ld a, [H_QUOTIENT + 3] - add b - ld [H_QUOTIENT + 3], a - -.skip5 -; Finally determine the number of shakes. -; Let Z = ((X * Y) / 255) + Status2 = [H_QUOTIENT + 3]. -; The number of shakes depend on the range Z is in. -; 0 ≤ Z < 10: 0 shakes (the ball misses) -; 10 ≤ Z < 30: 1 shake -; 30 ≤ Z < 70: 2 shakes -; 70 ≤ Z: 3 shakes - ld a, [H_QUOTIENT + 3] - cp 10 - ld b, $20 - jr c, .setAnimData - cp 30 - ld b, $61 - jr c, .setAnimData - cp 70 - ld b, $62 - jr c, .setAnimData - ld b, $63 - -.setAnimData - ld a, b - ld [wPokeBallAnimData], a - -.skipShakeCalculations - ld c, 20 - call DelayFrames - -; Do the animation. - ld a, TOSS_ANIM - ld [wAnimationID], a - xor a - ld [H_WHOSETURN], a - ld [wAnimationType], a - ld [wDamageMultipliers], a - ld a, [wWhichPokemon] - push af - ld a, [wcf91] - push af - predef MoveAnimation - pop af - ld [wcf91], a - pop af - ld [wWhichPokemon], a - -; Determine the message to display from the animation. - ld a, [wPokeBallAnimData] - cp $10 - ld hl, ItemUseBallText00 - jp z, .printMessage - cp $20 - ld hl, ItemUseBallText01 - jp z, .printMessage - cp $61 - ld hl, ItemUseBallText02 - jp z, .printMessage - cp $62 - ld hl, ItemUseBallText03 - jp z, .printMessage - cp $63 - ld hl, ItemUseBallText04 - jp z, .printMessage - -; Save current HP. - ld hl, wEnemyMonHP - ld a, [hli] - push af - ld a, [hli] - push af - -; Save status ailment. - inc hl - ld a, [hl] - push af - - push hl - -; If the Pokémon is transformed, the Pokémon is assumed to be a Ditto. -; This is a bug because a wild Pokémon could have used Transform via -; Mirror Move even though the only wild Pokémon that knows Transform is Ditto. - ld hl, wEnemyBattleStatus3 - bit TRANSFORMED, [hl] - jr z, .notTransformed - ld a, DITTO - ld [wEnemyMonSpecies2], a - jr .skip6 - -.notTransformed -; If the Pokémon is not transformed, set the transformed bit and copy the -; DVs to wTransformedEnemyMonOriginalDVs so that LoadEnemyMonData won't generate -; new DVs. - set TRANSFORMED, [hl] - ld hl, wTransformedEnemyMonOriginalDVs - ld a, [wEnemyMonDVs] - ld [hli], a - ld a, [wEnemyMonDVs + 1] - ld [hl], a - -.skip6 - ld a, [wcf91] - push af - ld a, [wEnemyMonSpecies2] - ld [wcf91], a - ld a, [wEnemyMonLevel] - ld [wCurEnemyLVL], a - callab LoadEnemyMonData - pop af - ld [wcf91], a - pop hl - pop af - ld [hld], a - dec hl - pop af - ld [hld], a - pop af - ld [hl], a - ld a, [wEnemyMonSpecies] - ld [wCapturedMonSpecies], a - ld [wcf91], a - ld [wd11e], a - ld a, [wBattleType] - cp BATTLE_TYPE_OLD_MAN ; is this the old man battle? - jp z, .oldManCaughtMon ; if so, don't give the player the caught Pokémon - cp BATTLE_TYPE_PIKACHU - jr z, .oldManCaughtMon ; same with Pikachu battle - ld hl, ItemUseBallText05 - call PrintText - -; Add the caught Pokémon to the Pokédex. - predef IndexToPokedex - ld a, [wd11e] - dec a - ld c, a - ld b, FLAG_TEST - ld hl, wPokedexOwned - predef FlagActionPredef - ld a, c - push af - ld a, [wd11e] - dec a - ld c, a - ld b, FLAG_SET - predef FlagActionPredef - pop af - - and a ; was the Pokémon already in the Pokédex? - jr nz, .skipShowingPokedexData ; if so, don't show the Pokédex data - - ld hl, ItemUseBallText06 - call PrintText - call ClearSprites - ld a, [wEnemyMonSpecies] - ld [wd11e], a - predef ShowPokedexData - -.skipShowingPokedexData - ld a, $1 - ld [wd49c], a - ld a, $85 - ld [wPikachuMood], a - ld a, [wPartyCount] - cp PARTY_LENGTH ; is party full? - jr z, .sendToBox - xor a ; PLAYER_PARTY_DATA - ld [wMonDataLocation], a - call ClearSprites - ld hl, .emptyString - call PrintText - call AddPartyMon - jr .done - -.sendToBox - call ClearSprites - call SendNewMonToBox - ld hl, ItemUseBallText07 - CheckEvent EVENT_MET_BILL - jr nz, .printTransferredToPCText - ld hl, ItemUseBallText08 -.printTransferredToPCText - call PrintText - jr .done - -.oldManCaughtMon - ld hl, ItemUseBallText05 - -.printMessage - call PrintText - call ClearSprites - -.done - ld a, [wBattleType] - and a ; is this the old man battle? - ret nz ; if so, don't remove a ball from the bag - -; Remove a ball from the bag. - ld hl, wNumBagItems - inc a - ld [wItemQuantity], a - jp RemoveItemFromInventory - -.emptyString - db "@" - -ItemUseBallText00: -;"It dodged the thrown ball!" -;"This pokemon can't be caught" - TX_FAR _ItemUseBallText00 - db "@" -ItemUseBallText01: -;"You missed the pokemon!" - TX_FAR _ItemUseBallText01 - db "@" -ItemUseBallText02: -;"Darn! The pokemon broke free!" - TX_FAR _ItemUseBallText02 - db "@" -ItemUseBallText03: -;"Aww! It appeared to be caught!" - TX_FAR _ItemUseBallText03 - db "@" -ItemUseBallText04: -;"Shoot! It was so close too!" - TX_FAR _ItemUseBallText04 - db "@" -ItemUseBallText05: -;"All right! {MonName} was caught!" -;play sound - TX_FAR _ItemUseBallText05 - TX_SFX_CAUGHT_MON - TX_BLINK - db "@" -ItemUseBallText07: -;"X was transferred to Bill's PC" - TX_FAR _ItemUseBallText07 - db "@" -ItemUseBallText08: -;"X was transferred to someone's PC" - TX_FAR _ItemUseBallText08 - db "@" - -ItemUseBallText06: -;"New DEX data will be added..." -;play sound - TX_FAR _ItemUseBallText06 - TX_SFX_DEX_PAGE_ADDED - TX_BLINK - db "@" - -ItemUseTownMap: - ld a, [wIsInBattle] - and a - jp nz, ItemUseNotTime - jpba DisplayTownMap - -ItemUseBicycle: - ld a, [wIsInBattle] - and a - jp nz, ItemUseNotTime - ld a, [wWalkBikeSurfState] - ld [wWalkBikeSurfStateCopy], a - cp 2 ; is the player surfing? - jp z, ItemUseNotTime - dec a ; is player already bicycling? - jr nz, .tryToGetOnBike -.getOffBike - call ItemUseReloadOverworldData - xor a - ld [wWalkBikeSurfState], a ; change player state to walking - ld a, $00 - ld [wPikachuSpawnState], a - call PlayDefaultMusic ; play walking music - ld hl, GotOffBicycleText - jp PrintText - -.tryToGetOnBike - call IsBikeRidingAllowed - jp nc, NoCyclingAllowedHere - call ItemUseReloadOverworldData - xor a ; no keys pressed - ld [hJoyHeld], a ; current joypad state - ld a, $1 - ld [wWalkBikeSurfState], a ; change player state to bicycling - call PlayDefaultMusic ; play bike riding music - xor a - ld [wWalkBikeSurfState], a - ld hl, GotOnBicycleText - call PrintText - ld a, $1 - ld [wWalkBikeSurfState], a - ret - -; used for Surf out-of-battle effect -ItemUseSurfboard: - ld a, [wWalkBikeSurfState] - ld [wWalkBikeSurfStateCopy], a - cp 2 ; is the player already surfing? - jr z, .tryToStopSurfing -.tryToSurf - call IsNextTileShoreOrWater - jp nc, SurfingAttemptFailed - ld hl, TilePairCollisionsWater - call CheckForTilePairCollisions - jp c, SurfingAttemptFailed -.surf - call .makePlayerMoveForward - ld hl, wd730 - set 7, [hl] - ld a, 2 - ld [wWalkBikeSurfState], a ; change player state to surfing - call PlayDefaultMusic ; play surfing music - ld hl, SurfingGotOnText - jp PrintText - -.tryToStopSurfing - xor a - ld [hSpriteIndexOrTextID], a - ld d, 16 ; talking range in pixels (normal range) - call IsSpriteInFrontOfPlayer2 - res 7, [hl] - ld a, [hSpriteIndexOrTextID] - and a ; is there a sprite in the way? - jr nz, .cannotStopSurfing - ld hl, TilePairCollisionsWater - call CheckForTilePairCollisions - jr c, .cannotStopSurfing - ld a, [wTileInFrontOfPlayer] - ld c, a - call IsTilePassable - jr nc, .stopSurfing -.cannotStopSurfing - ld hl, SurfingNoPlaceToGetOffText - jp PrintText - -.stopSurfing - call .makePlayerMoveForward - ld a, $3 - ld [wPikachuSpawnState], a - ld hl, wPikachuOverworldStateFlags - set 5, [hl] - ld hl, wd730 - set 7, [hl] - xor a - ld [wWalkBikeSurfState], a ; change player state to walking - dec a - ld [wJoyIgnore], a - call PlayDefaultMusic ; play walking music - call GBPalWhiteOutWithDelay3 - jp LoadWalkingPlayerSpriteGraphics - -; uses a simulated button press to make the player move forward -.makePlayerMoveForward - ld a, [wPlayerDirection] ; direction the player is going - bit PLAYER_DIR_BIT_UP, a - ld b, D_UP - jr nz, .storeSimulatedButtonPress - bit PLAYER_DIR_BIT_DOWN, a - ld b, D_DOWN - jr nz, .storeSimulatedButtonPress - bit PLAYER_DIR_BIT_LEFT, a - ld b, D_LEFT - jr nz, .storeSimulatedButtonPress - ld b, D_RIGHT -.storeSimulatedButtonPress - ld a, b - ld [wSimulatedJoypadStatesEnd], a - xor a - ld [wWastedByteCD39], a - inc a - ld [wSimulatedJoypadStatesIndex], a - ret - -SurfingGotOnText: - TX_FAR _SurfingGotOnText - db "@" - -SurfingNoPlaceToGetOffText: - TX_FAR _SurfingNoPlaceToGetOffText - db "@" - -ItemUsePokedex: - predef_jump ShowPokedexMenu - -ItemUseEvoStone: - ld a, [wIsInBattle] - and a - jp nz, ItemUseNotTime - ld a, [wWhichPokemon] - push af - ld a, [wcf91] - ld [wEvoStoneItemID], a - push af - ld a, EVO_STONE_PARTY_MENU - ld [wPartyMenuTypeOrMessageID], a - ld a, $ff - ld [wUpdateSpritesEnabled], a - call DisplayPartyMenu - ld a, [wcf91] - ld [wLoadedMon], a - pop bc - jr c, .canceledItemUse - ld a, b - ld [wcf91], a - call Func_d85d - jr nc, .noEffect - callab IsThisPartymonStarterPikachu_Party - jr nc, .notPlayerPikachu - ld e, $1b - callab PlayPikachuSoundClip - ld a, [wWhichPokemon] - ld hl, wPartyMonNicks - call GetPartyMonName - ld hl, RefusingText - call PrintText - ld a, $4 - ld [wd49c], a - ld a, $82 - ld [wPikachuMood], a - jr .canceledItemUse - -.notPlayerPikachu - ld a, SFX_HEAL_AILMENT - call PlaySoundWaitForCurrent - call WaitForSoundToFinish - ld a, $01 - ld [wForceEvolution], a - callab TryEvolvingMon ; try to evolve pokemon - pop af - ld [wWhichPokemon], a - ld hl, wNumBagItems - ld a, 1 ; remove 1 stone - ld [wItemQuantity], a - jp RemoveItemFromInventory - -.noEffect - call ItemUseNoEffect -.canceledItemUse - xor a - ld [wActionResultOrTookBattleTurn], a ; item not used - pop af - ret - -Func_d85d: - ld hl, EvosMovesPointerTable - ld a, [wLoadedMon] - dec a - ld c, a - ld b, $0 - add hl, bc - add hl, bc - ld de, wcd6d - ld a, BANK(TryEvolvingMon) - ld bc, $2 - call FarCopyData - ld hl, wcd6d - ld a, [hli] - ld h, [hl] - ld l, a - ld de, wcd6d - ld a, BANK(TryEvolvingMon) - ld bc, 13 - call FarCopyData - ld hl, wcd6d -.loop - ld a, [hli] - and a - jr z, .cannotEvolveWithUsedStone - inc hl - inc hl - cp EV_ITEM - jr nz, .loop - dec hl - dec hl - ld b, [hl] - ld a, [wcf91] - inc hl - inc hl - inc hl - cp b - jr nz, .loop - scf - ret - -.cannotEvolveWithUsedStone - and a - ret - -RefusingText: - TX_FAR _RefusingText - db "@" - -ItemUseVitamin: - ld a, [wIsInBattle] - and a - jp nz, ItemUseNotTime - -ItemUseMedicine: - ld a, [wPartyCount] - and a - jp z, Func_e4bf - ld a, [wWhichPokemon] - push af - ld a, [wcf91] - push af - ld a, USE_ITEM_PARTY_MENU - ld [wPartyMenuTypeOrMessageID], a - ld a, $ff - ld [wUpdateSpritesEnabled], a - ld a, [wPseudoItemID] - and a ; using Softboiled? - jr z, .notUsingSoftboiled -; if using softboiled - call GoBackToPartyMenu - jr .getPartyMonDataAddress -.notUsingSoftboiled - call DisplayPartyMenu -.getPartyMonDataAddress - jp c, .canceledItemUse - ld hl, wPartyMons - ld bc, wPartyMon2 - wPartyMon1 - ld a, [wWhichPokemon] - call AddNTimes - ld a, [wWhichPokemon] - ld [wUsedItemOnWhichPokemon], a - ld d, a - ld a, [wcf91] - ld e, a - ld [wd0b5], a - pop af - push af - cp $28 - jr nc, .asm_d906 - push hl - push de - callabd_ModifyPikachuHappiness PIKAHAPPY_USEDITEM - pop de - pop hl -.asm_d906 - pop af - ld [wcf91], a - pop af - ld [wWhichPokemon], a - ld a, [wPseudoItemID] - and a ; using Softboiled? - jr z, .checkItemType -; if using softboiled - ld a, [wWhichPokemon] - cp d ; is the pokemon trying to use softboiled on itself? - jr z, ItemUseMedicine ; if so, force another choice -.checkItemType - ld a, [wcf91] - cp REVIVE - jr nc, .healHP ; if it's a Revive or Max Revive - cp FULL_HEAL - jr z, .cureStatusAilment ; if it's a Full Heal - cp HP_UP - jp nc, .useVitamin ; if it's a vitamin or Rare Candy - cp FULL_RESTORE - jr nc, .healHP ; if it's a Full Restore or one of the potions -; fall through if it's one of the status-specific healing items -.cureStatusAilment - ld bc, wPartyMon1Status - wPartyMon1 - add hl, bc ; hl now points to status - ld a, [wcf91] - lb bc, ANTIDOTE_MSG, 1 << PSN - cp ANTIDOTE - jr z, .checkMonStatus - lb bc, BURN_HEAL_MSG, 1 << BRN - cp BURN_HEAL - jr z, .checkMonStatus - lb bc, ICE_HEAL_MSG, 1 << FRZ - cp ICE_HEAL - jr z, .checkMonStatus - lb bc, AWAKENING_MSG, SLP - cp AWAKENING - jr z, .checkMonStatus - lb bc, PARALYZ_HEAL_MSG, 1 << PAR - cp PARLYZ_HEAL - jr z, .checkMonStatus - lb bc, FULL_HEAL_MSG, $ff ; Full Heal -.checkMonStatus - ld a, [hl] ; pokemon's status - and c ; does the pokemon have a status ailment the item can cure? - jp z, .healingItemNoEffect -; if the pokemon has a status the item can heal - xor a - ld [hl], a ; remove the status ailment in the party data - ld a, b - ld [wPartyMenuTypeOrMessageID], a ; the message to display for the item used - ld a, [wPlayerMonNumber] - cp d ; is pokemon the item was used on active in battle? - jp nz, .doneHealing -; if it is active in battle - xor a - ld [wBattleMonStatus], a ; remove the status ailment in the in-battle pokemon data - push hl - ld hl, wPlayerBattleStatus3 - res BADLY_POISONED, [hl] ; heal Toxic status - pop hl - ld bc, wPartyMon1Stats - wPartyMon1Status - add hl, bc ; hl now points to party stats - ld de, wBattleMonStats - ld bc, NUM_STATS * 2 - call CopyData ; copy party stats to in-battle stat data - predef DoubleOrHalveSelectedStats - jp .doneHealing - -.healHP - inc hl ; hl = address of current HP - ld a, [hli] - ld b, a - ld [wHPBarOldHP+1], a - ld a, [hl] - ld c, a - ld [wHPBarOldHP], a ; current HP stored at wHPBarOldHP (2 bytes, big-endian) - or b - jr nz, .notFainted -.fainted - ld a, [wcf91] - cp REVIVE - jr z, .updateInBattleFaintedData - cp MAX_REVIVE - jr z, .updateInBattleFaintedData - jp .healingItemNoEffect - -.updateInBattleFaintedData - ld a, [wWhichPokemon] - push af - ld a, [wUsedItemOnWhichPokemon] - ld [wWhichPokemon], a - push hl - push de - push bc - callab Func_2fd6a - pop bc - pop de - pop hl - pop af - ld [wWhichPokemon], a - - ld a, [wIsInBattle] - and a - jr z, .compareCurrentHPToMaxHP - push hl - push de - push bc - ld a, [wUsedItemOnWhichPokemon] - ld c, a - ld hl, wPartyFoughtCurrentEnemyFlags - ld b, FLAG_TEST - predef FlagActionPredef - ld a, c - and a - jr z, .next - ld a, [wUsedItemOnWhichPokemon] - ld c, a - ld hl, wPartyGainExpFlags - ld b, FLAG_SET - predef FlagActionPredef -.next - pop bc - pop de - pop hl - jr .compareCurrentHPToMaxHP - -.notFainted - ld a, [wcf91] - cp REVIVE - jp z, .healingItemNoEffect - cp MAX_REVIVE - jp z, .healingItemNoEffect -.compareCurrentHPToMaxHP - push hl - push bc - ld bc, wPartyMon1MaxHP - (wPartyMon1HP + 1) - add hl, bc ; hl now points to max HP - pop bc - ld a, [hli] - cp b - jr nz, .skipComparingLSB ; no need to compare the LSB's if the MSB's don't match - ld a, [hl] - cp c -.skipComparingLSB - pop hl - jr nz, .notFullHP -.fullHP ; if the pokemon's current HP equals its max HP - ld a, [wcf91] - cp FULL_RESTORE - jp nz, .healingItemNoEffect - inc hl - inc hl - ld a, [hld] ; status ailment - and a ; does the pokemon have a status ailment? - jp z, .healingItemNoEffect - ld a, FULL_HEAL - ld [wcf91], a - dec hl - dec hl - dec hl - jp .cureStatusAilment - -.notFullHP ; if the pokemon's current HP doesn't equal its max HP - xor a - ld [wLowHealthAlarm], a ;disable low health alarm - ld [wChannelSoundIDs + Ch5], a - push hl - push de - ld bc, wPartyMon1MaxHP - (wPartyMon1HP + 1) - add hl, bc ; hl now points to max HP - ld a, [hli] - ld [wHPBarMaxHP+1], a - ld a, [hl] - ld [wHPBarMaxHP], a ; max HP stored at wHPBarMaxHP (2 bytes, big-endian) - ld a, [wPseudoItemID] - and a ; using Softboiled? - jp z, .notUsingSoftboiled2 -; if using softboiled - ld hl, wHPBarMaxHP - ld a, [hli] - push af - ld a, [hli] - push af - ld a, [hli] - push af - ld a, [hl] - push af - ld hl, wPartyMon1MaxHP - ld a, [wWhichPokemon] - ld bc, wPartyMon2 - wPartyMon1 - call AddNTimes - ld a, [hli] - ld [wHPBarMaxHP + 1], a - ld [H_DIVIDEND], a - ld a, [hl] - ld [wHPBarMaxHP], a - ld [H_DIVIDEND + 1], a - ld a, 5 - ld [H_DIVISOR], a - ld b, 2 ; number of bytes - call Divide ; get 1/5 of max HP of pokemon that used Softboiled - ld bc, (wPartyMon1HP + 1) - (wPartyMon1MaxHP + 1) - add hl, bc ; hl now points to LSB of current HP of pokemon that used Softboiled -; subtract 1/5 of max HP from current HP of pokemon that used Softboiled - ld a, [H_QUOTIENT + 3] - push af - ld b, a - ld a, [hl] - ld [wHPBarOldHP], a - sub b - ld [hld], a - ld [wHPBarNewHP], a - ld a, [H_QUOTIENT + 2] - ld b, a - ld a, [hl] - ld [wHPBarOldHP+1], a - sbc b - ld [hl], a - ld [wHPBarNewHP+1], a - coord hl, 4, 1 - ld a, [wWhichPokemon] - ld bc, 2 * SCREEN_WIDTH - call AddNTimes ; calculate coordinates of HP bar of pokemon that used Softboiled - ld a, SFX_HEAL_HP - call PlaySoundWaitForCurrent - ld a, [hFlags_0xFFFA] - set 0, a - ld [hFlags_0xFFFA], a - ld a, $02 - ld [wHPBarType], a - predef UpdateHPBar2 ; animate HP bar decrease of pokemon that used Softboiled - ld a, [hFlags_0xFFFA] - res 0, a - ld [hFlags_0xFFFA], a - pop af - ld b, a ; store heal amount (1/5 of max HP) - ld hl, wHPBarOldHP + 1 - pop af - ld [hld], a - pop af - ld [hld], a - pop af - ld [hld], a - pop af - ld [hl], a - jr .addHealAmount - -.notUsingSoftboiled2 - ld a, [wcf91] - cp SODA_POP - ld b, 60 ; Soda Pop heal amount - jr z, .addHealAmount - ld b, 80 ; Lemonade heal amount - jr nc, .addHealAmount - cp FRESH_WATER - ld b, 50 ; Fresh Water heal amount - jr z, .addHealAmount - cp SUPER_POTION - ld b, 200 ; Hyper Potion heal amount - jr c, .addHealAmount - ld b, 50 ; Super Potion heal amount - jr z, .addHealAmount - ld b, 20 ; Potion heal amount -.addHealAmount - pop de - pop hl - ld a, [hl] - add b - ld [hld], a - ld [wHPBarNewHP], a - ld a, [hl] - ld [wHPBarNewHP+1], a - jr nc, .noCarry - inc [hl] - ld a, [hl] - ld [wHPBarNewHP + 1], a -.noCarry - push de - inc hl - ld d, h - ld e, l ; de now points to current HP - ld hl, (wPartyMon1MaxHP + 1) - (wPartyMon1HP + 1) - add hl, de ; hl now points to max HP - ld a, [wcf91] - cp REVIVE - jr z, .setCurrentHPToHalfMaxHP - ld a, [hld] - ld b, a - ld a, [de] - sub b - dec de - ld b, [hl] - ld a, [de] - sbc b - jr nc, .setCurrentHPToMaxHp ; if current HP exceeds max HP after healing - ld a, [wcf91] - cp HYPER_POTION - jr c, .setCurrentHPToMaxHp ; if using a Full Restore or Max Potion - cp MAX_REVIVE - jr z, .setCurrentHPToMaxHp ; if using a Max Revive - jr .updateInBattleData - -.setCurrentHPToHalfMaxHP - dec hl - dec de - ld a, [hli] - srl a - ld [de], a - ld [wHPBarNewHP+1], a - ld a, [hl] - rr a - inc de - ld [de], a - ld [wHPBarNewHP], a - dec de - jr .doneHealingPartyHP - -.setCurrentHPToMaxHp - ld a, [hli] - ld [de], a - ld [wHPBarNewHP+1], a - inc de - ld a, [hl] - ld [de], a - ld [wHPBarNewHP], a - dec de -.doneHealingPartyHP ; done updating the pokemon's current HP in the party data structure - ld a, [wcf91] - cp FULL_RESTORE - jr nz, .updateInBattleData - ld bc, wPartyMon1Status - (wPartyMon1MaxHP + 1) - add hl, bc - xor a - ld [hl], a ; remove the status ailment in the party data -.updateInBattleData - ld h, d - ld l, e - pop de - ld a, [wPlayerMonNumber] - cp d ; is pokemon the item was used on active in battle? - jr nz, .calculateHPBarCoords -; copy party HP to in-battle HP - ld a, [hli] - ld [wBattleMonHP], a - ld a, [hld] - ld [wBattleMonHP + 1], a - ld a, [wcf91] - cp FULL_RESTORE - jr nz, .calculateHPBarCoords - xor a - ld [wBattleMonStatus], a ; remove the status ailment in the in-battle pokemon data -.calculateHPBarCoords - ld hl, wOAMBuffer + $90 - ld bc, 2 * SCREEN_WIDTH - inc d -.calculateHPBarCoordsLoop - add hl, bc - dec d - jr nz, .calculateHPBarCoordsLoop - jr .doneHealing - -.healingItemNoEffect - call ItemUseNoEffect - jp .done - -.doneHealing - ld a, [wPseudoItemID] - and a ; using Softboiled? - jr nz, .skipRemovingItem ; no item to remove if using Softboiled - push hl - call RemoveUsedItem - pop hl -.skipRemovingItem - ld a, [wcf91] - cp FULL_RESTORE - jr c, .playStatusAilmentCuringSound - cp FULL_HEAL - jr z, .playStatusAilmentCuringSound - ld a, SFX_HEAL_HP - call PlaySoundWaitForCurrent - ld a, [hFlags_0xFFFA] - set 0, a - ld [hFlags_0xFFFA], a - ld a, $02 - ld [wHPBarType], a - predef UpdateHPBar2 ; animate the HP bar lengthening - ld a, [hFlags_0xFFFA] - res 0, a - ld [hFlags_0xFFFA], a - ld a, REVIVE_MSG - ld [wPartyMenuTypeOrMessageID], a - ld a, [wcf91] - cp REVIVE - jr z, .showHealingItemMessage - cp MAX_REVIVE - jr z, .showHealingItemMessage - ld a, POTION_MSG - ld [wPartyMenuTypeOrMessageID], a - jr .showHealingItemMessage - -.playStatusAilmentCuringSound - ld a, SFX_HEAL_AILMENT - call PlaySoundWaitForCurrent -.showHealingItemMessage - xor a - ld [H_AUTOBGTRANSFERENABLED], a - call ClearScreen - dec a - ld [wUpdateSpritesEnabled], a - call RedrawPartyMenu ; redraws the party menu and displays the message - ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a - ld c, 50 - call DelayFrames - call WaitForTextScrollButtonPress - jr .done - -.canceledItemUse - xor a - ld [wActionResultOrTookBattleTurn], a ; item use failed - pop af - pop af -.done - ld a, [wPseudoItemID] - and a ; using Softboiled? - ret nz ; if so, return - call GBPalWhiteOut - call z, RunDefaultPaletteCommand - ld a, [wIsInBattle] - and a - ret nz - jp ReloadMapData - -.useVitamin - push hl - ld a, [hl] - ld [wd0b5], a - ld [wd11e], a - ld bc, wPartyMon1Level - wPartyMon1 - add hl, bc ; hl now points to level - ld a, [hl] ; a = level - ld [wCurEnemyLVL], a ; store level - call GetMonHeader - push de - ld a, d - ld hl, wPartyMonNicks - call GetPartyMonName - pop de - pop hl - ld a, [wcf91] - cp RARE_CANDY - jp z, .useRareCandy - push hl - sub HP_UP - add a - ld bc, wPartyMon1HPExp - wPartyMon1 - add hl, bc - add l - ld l, a - jr nc, .noCarry2 - inc h -.noCarry2 - ld a, 10 - ld b, a - ld a, [hl] ; a = MSB of stat experience of the appropriate stat - cp 100 ; is there already at least 25600 (256 * 100) stat experience? - jr nc, .vitaminNoEffect ; if so, vitamins can't add any more - add b ; add 2560 (256 * 10) stat experience - jr nc, .noCarry3 ; a carry should be impossible here, so this will always jump - ld a, 255 -.noCarry3 - ld [hl], a - pop hl - call .recalculateStats - ld hl, VitaminText - ld a, [wcf91] - sub HP_UP - 1 - ld c, a -.statNameLoop ; loop to get the address of the name of the stat the vitamin increases - dec c - jr z, .gotStatName -.statNameInnerLoop - ld a, [hli] - ld b, a - ld a, $50 - cp b - jr nz, .statNameInnerLoop - jr .statNameLoop - -.gotStatName - ld de, wcf4b - ld bc, 10 - call CopyData ; copy the stat's name to wcf4b - ld a, SFX_HEAL_AILMENT - call PlaySound - ld hl, VitaminStatRoseText - call PrintText - jp RemoveUsedItem - -.vitaminNoEffect - pop hl - ld hl, VitaminNoEffectText - call PrintText - jp GBPalWhiteOut - -.recalculateStats - ld bc, wPartyMon1Stats - wPartyMon1 - add hl, bc - ld d, h - ld e, l ; de now points to stats - ld bc, (wPartyMon1Exp + 2) - wPartyMon1Stats - add hl, bc ; hl now points to LSB of experience - ld b, 1 - jp CalcStats ; recalculate stats -.useRareCandy - push hl - ld bc, wPartyMon1Level - wPartyMon1 - add hl, bc ; hl now points to level - ld a, [hl] ; a = level - cp MAX_LEVEL - jr z, .vitaminNoEffect ; can't raise level above 100 - inc a - ld [hl], a ; store incremented level - ld [wCurEnemyLVL], a - push hl - push de - ld d, a - callab CalcExperience ; calculate experience for next level and store it at $ff96 - pop de - pop hl - ld bc, wPartyMon1Exp - wPartyMon1Level - add hl, bc ; hl now points to MSB of experience -; update experience to minimum for new level - ld a, [hExperience] - ld [hli], a - ld a, [hExperience + 1] - ld [hli], a - ld a, [hExperience + 2] - ld [hl], a - pop hl - ld a, [wWhichPokemon] - push af - ld a, [wcf91] - push af - push de - push hl - ld bc, wPartyMon1MaxHP - wPartyMon1 - add hl, bc ; hl now points to MSB of max HP - ld a, [hli] - ld b, a - ld c, [hl] - pop hl - push bc - push hl - call .recalculateStats - pop hl - ld bc, (wPartyMon1MaxHP + 1) - wPartyMon1 - add hl, bc ; hl now points to LSB of max HP - pop bc - ld a, [hld] - sub c - ld c, a - ld a, [hl] - sbc b - ld b, a ; bc = the amount of max HP gained from leveling up -; add the amount gained to the current HP - ld de, (wPartyMon1HP + 1) - wPartyMon1MaxHP - add hl, de ; hl now points to LSB of current HP - ld a, [hl] - add c - ld [hld], a - ld a, [hl] - adc b - ld [hl], a - ld a, RARE_CANDY_MSG - ld [wPartyMenuTypeOrMessageID], a - call RedrawPartyMenu - pop de - ld a, d - ld [wWhichPokemon], a - ld a, e - ld [wd11e], a - xor a ; PLAYER_PARTY_DATA - ld [wMonDataLocation], a - call LoadMonData - ld d, $01 - callab PrintStatsBox ; display new stats text box - call WaitForTextScrollButtonPress ; wait for button press - xor a ; PLAYER_PARTY_DATA - ld [wMonDataLocation], a - predef LearnMoveFromLevelUp ; learn level up move, if any - - xor a - ld [wForceEvolution], a - callabd_ModifyPikachuHappiness PIKAHAPPY_LEVELUP - ld a, [wWhichPokemon] - push af - ld a, [wUsedItemOnWhichPokemon] - ld [wWhichPokemon], a - callab Func_2fd6a ; evolve pokemon, if appropriate - pop af - ld [wWhichPokemon], a - - callab TryEvolvingMon - ld a, $01 - ld [wUpdateSpritesEnabled], a - pop af - ld [wcf91], a - pop af - ld [wWhichPokemon], a - jp RemoveUsedItem - -VitaminStatRoseText: - TX_FAR _VitaminStatRoseText - db "@" - -VitaminNoEffectText: - TX_FAR _VitaminNoEffectText - db "@" - -VitaminText: - db "HEALTH@" - db "ATTACK@" - db "DEFENSE@" - db "SPEED@" - db "SPECIAL@" - -ItemUseBait: - ld hl, ThrewBaitText - call PrintText - ld hl, wEnemyMonActualCatchRate ; catch rate - srl [hl] ; halve catch rate - ld a, BAIT_ANIM - ld hl, wSafariBaitFactor ; bait factor - ld de, wSafariEscapeFactor ; escape factor - jr BaitRockCommon - -ItemUseRock: - ld hl, ThrewRockText - call PrintText - ld hl, wEnemyMonActualCatchRate ; catch rate - ld a, [hl] - add a ; double catch rate - jr nc, .noCarry - ld a, $ff -.noCarry - ld [hl], a - ld a, ROCK_ANIM - ld hl, wSafariEscapeFactor ; escape factor - ld de, wSafariBaitFactor ; bait factor - -BaitRockCommon: - ld [wAnimationID], a - xor a - ld [wAnimationType], a - ld [H_WHOSETURN], a - ld [de], a ; zero escape factor (for bait), zero bait factor (for rock) -.randomLoop ; loop until a random number less than 5 is generated - call Random - and 7 - cp 5 - jr nc, .randomLoop - inc a ; increment the random number, giving a range from 1 to 5 inclusive - ld b, a - ld a, [hl] - add b ; increase bait factor (for bait), increase escape factor (for rock) - jr nc, .noCarry - ld a, $ff -.noCarry - ld [hl], a - predef MoveAnimation ; do animation - ld c, 70 - jp DelayFrames - -ThrewBaitText: - TX_FAR _ThrewBaitText - db "@" - -ThrewRockText: - TX_FAR _ThrewRockText - db "@" - -; also used for Dig out-of-battle effect -ItemUseEscapeRope: - ld a, [wIsInBattle] - and a - jr nz, .notUsable - ld a, [wCurMap] - cp AGATHAS_ROOM - jr z, .notUsable - cp BILLS_HOUSE - jr z, .notUsable - cp POKEMON_FAN_CLUB - jr z, .notUsable - ld a, [wCurMapTileset] - ld b, a - ld hl, EscapeRopeTilesets -.loop - ld a, [hli] - cp $ff - jr z, .notUsable - cp b - jr nz, .loop - ld hl, wd732 - set 3, [hl] - set 6, [hl] - call Func_1510 - ld hl, wd72e - res 4, [hl] - ResetEvent EVENT_IN_SAFARI_ZONE - xor a - ld [wNumSafariBalls], a - ld [wSafariZoneGateCurScript], a - inc a - ld [wEscapedFromBattle], a - ld [wActionResultOrTookBattleTurn], a ; item used - ld a, [wPseudoItemID] - and a ; using Dig? - ret nz ; if so, return - call ItemUseReloadOverworldData - ld c, 30 - call DelayFrames - jp RemoveUsedItem - -.notUsable - jp ItemUseNotTime - -EscapeRopeTilesets: - db FOREST, CEMETERY, CAVERN, FACILITY, INTERIOR - db $ff ; terminator - -ItemUseRepel: - ld b, 100 - -ItemUseRepelCommon: - ld a, [wIsInBattle] - and a - jp nz, ItemUseNotTime - ld a, b - ld [wRepelRemainingSteps], a - jp PrintItemUseTextAndRemoveItem - -; handles X Accuracy item -ItemUseXAccuracy: - ld a, [wIsInBattle] - and a - jp z, ItemUseNotTime - ld hl, wPlayerBattleStatus2 - set USING_X_ACCURACY, [hl] ; X Accuracy bit - callabd_ModifyPikachuHappiness PIKAHAPPY_USEDXITEM - jp PrintItemUseTextAndRemoveItem - -; This function is bugged and never works. It always jumps to ItemUseNotTime. -; The Card Key is handled in a different way. -ItemUseCardKey: - xor a - ld [wUnusedD71F], a - call GetTileAndCoordsInFrontOfPlayer - ld a, [GetTileAndCoordsInFrontOfPlayer] - cp $18 - jr nz, .next0 - ld hl, CardKeyTable1 - jr .next1 - -.next0 - cp $24 - jr nz, .next2 - ld hl, CardKeyTable2 - jr .next1 - -.next2 - cp $5e - jp nz, ItemUseNotTime - ld hl, CardKeyTable3 -.next1 - ld a, [wCurMap] - ld b, a -.loop - ld a, [hli] - cp $ff - jp z, ItemUseNotTime - cp b - jr nz, .nextEntry1 - ld a, [hli] - cp d - jr nz, .nextEntry2 - ld a, [hli] - cp e - jr nz, .nextEntry3 - ld a, [hl] - ld [wUnusedD71F], a - jr .done - -.nextEntry1 - inc hl -.nextEntry2 - inc hl -.nextEntry3 - inc hl - jr .loop - -.done - ld hl, ItemUseText00 - call PrintText - ld hl, wd728 - set 7, [hl] - ret - -; These tables are probably supposed to be door locations in Silph Co., -; but they are unused. -; The reason there are 3 tables is unknown. - -; Format: -; 00: Map ID -; 01: Y -; 02: X -; 03: ID? - -CardKeyTable1: - db SILPH_CO_2F, $04, $04, $00 - db SILPH_CO_2F, $04, $05, $01 - db SILPH_CO_4F, $0C, $04, $02 - db SILPH_CO_4F, $0C, $05, $03 - db SILPH_CO_7F, $06, $0A, $04 - db SILPH_CO_7F, $06, $0B, $05 - db SILPH_CO_9F, $04, $12, $06 - db SILPH_CO_9F, $04, $13, $07 - db SILPH_CO_10F, $08, $0A, $08 - db SILPH_CO_10F, $08, $0B, $09 - db $ff - -CardKeyTable2: - db SILPH_CO_3F, $08, $09, $0A - db SILPH_CO_3F, $09, $09, $0B - db SILPH_CO_5F, $04, $07, $0C - db SILPH_CO_5F, $05, $07, $0D - db SILPH_CO_6F, $0C, $05, $0E - db SILPH_CO_6F, $0D, $05, $0F - db SILPH_CO_8F, $08, $07, $10 - db SILPH_CO_8F, $09, $07, $11 - db SILPH_CO_9F, $08, $03, $12 - db SILPH_CO_9F, $09, $03, $13 - db $ff - -CardKeyTable3: - db SILPH_CO_11F, $08, $09, $14 - db SILPH_CO_11F, $09, $09, $15 - db $ff - -ItemUsePokedoll: - ld a, [wIsInBattle] - dec a - jp nz, ItemUseNotTime - ld a, $01 - ld [wEscapedFromBattle], a - jp PrintItemUseTextAndRemoveItem - -ItemUseGuardSpec: - ld a, [wIsInBattle] - and a - jp z, ItemUseNotTime - - ld a, [wWhichPokemon] - push af - ld a, [wPlayerMonNumber] - ld [wWhichPokemon], a - callabd_ModifyPikachuHappiness PIKAHAPPY_USEDXITEM - pop af - ld [wWhichPokemon], a - - ld hl, wPlayerBattleStatus2 - set PROTECTED_BY_MIST, [hl] ; Mist bit - jp PrintItemUseTextAndRemoveItem - -ItemUseSuperRepel: - ld b, 200 - jp ItemUseRepelCommon - -ItemUseMaxRepel: - ld b, 250 - jp ItemUseRepelCommon - -ItemUseDireHit: - ld a, [wIsInBattle] - and a - jp z, ItemUseNotTime - - ld a, [wWhichPokemon] - push af - ld a, [wPlayerMonNumber] - ld [wWhichPokemon], a - callabd_ModifyPikachuHappiness PIKAHAPPY_USEDXITEM - pop af - ld [wWhichPokemon], a - - ld hl, wPlayerBattleStatus2 - set GETTING_PUMPED, [hl] ; Focus Energy bit - jp PrintItemUseTextAndRemoveItem - -ItemUseXStat: - ld a, [wIsInBattle] - and a - jr nz, .inBattle - call ItemUseNotTime - ld a, 2 - ld [wActionResultOrTookBattleTurn], a ; item not used - ret - -.inBattle - ld hl, wPlayerMoveNum - ld a, [hli] - push af ; save [wPlayerMoveNum] - ld a, [hl] - push af ; save [wPlayerMoveEffect] - push hl - ld a, [wcf91] - sub X_ATTACK - ATTACK_UP1_EFFECT - ld [hl], a ; store player move effect - call PrintItemUseTextAndRemoveItem - ld a, XSTATITEM_ANIM ; X stat item animation ID - ld [wPlayerMoveNum], a - call LoadScreenTilesFromBuffer1 ; restore saved screen - call Delay3 - xor a - ld [H_WHOSETURN], a ; set turn to player's turn - callba StatModifierUpEffect ; do stat increase move - - ld a, [wWhichPokemon] - push af - ld a, [wPlayerMonNumber] - ld [wWhichPokemon], a - callabd_ModifyPikachuHappiness PIKAHAPPY_USEDXITEM - pop af - ld [wWhichPokemon], a - - pop hl - pop af - ld [hld], a ; restore [wPlayerMoveEffect] - pop af - ld [hl], a ; restore [wPlayerMoveNum] - ret - -ItemUsePokeflute: - ld a, [wIsInBattle] - and a - jr nz, .inBattle -; if not in battle - call ItemUseReloadOverworldData - ld a, [wCurMap] - cp ROUTE_12 - jr nz, .notRoute12 - CheckEvent EVENT_BEAT_ROUTE12_SNORLAX - jr nz, .noSnorlaxOrPikachuToWakeUp -; if the player hasn't beaten Route 12 Snorlax - ld hl, Route12SnorlaxFluteCoords - call ArePlayerCoordsInArray - jr nc, .noSnorlaxOrPikachuToWakeUp - ld hl, PlayedFluteHadEffectText - call PrintText - SetEvent EVENT_FIGHT_ROUTE12_SNORLAX - ret - -.notRoute12 - cp ROUTE_16 - jr nz, .notRoute16 - CheckEvent EVENT_BEAT_ROUTE16_SNORLAX - jr nz, .noSnorlaxOrPikachuToWakeUp -; if the player hasn't beaten Route 16 Snorlax - ld hl, Route16SnorlaxFluteCoords - call ArePlayerCoordsInArray - jr nc, .noSnorlaxOrPikachuToWakeUp - ld hl, PlayedFluteHadEffectText - call PrintText - SetEvent EVENT_FIGHT_ROUTE16_SNORLAX - ret - -.notRoute16 - cp PEWTER_POKECENTER - jr nz, .noSnorlaxOrPikachuToWakeUp - call CheckPikachuFollowingPlayer - jr z, .noSnorlaxOrPikachuToWakeUp - callab IsPikachuRightNextToPlayer - jr nc, .noSnorlaxOrPikachuToWakeUp - ld hl, PlayedFluteHadEffectText - call PrintText - call ItemUseReloadOverworldData - ldpikaemotion e, PikachuEmotion26 - callab PlaySpecificPikachuEmotion - ret - -.noSnorlaxOrPikachuToWakeUp - ld hl, PlayedFluteNoEffectText - jp PrintText - -.inBattle - xor a - ld [wWereAnyMonsAsleep], a - ld b, ~SLP & $ff - ld hl, wPartyMon1Status - call WakeUpEntireParty - ld a, [wIsInBattle] - dec a ; is it a trainer battle? - jr z, .skipWakingUpEnemyParty -; if it's a trainer battle - ld hl, wEnemyMon1Status - call WakeUpEntireParty -.skipWakingUpEnemyParty - ld hl, wBattleMonStatus - ld a, [hl] - and b ; remove Sleep status - ld [hl], a - ld hl, wEnemyMonStatus - ld a, [hl] - ld c, a - and b ; remove Sleep status - ld [hl], a - ld a, c - and SLP - jr z, .asm_e063 - ld a, $1 - ld [wWereAnyMonsAsleep], a -.asm_e063 - call LoadScreenTilesFromBuffer2 ; restore saved screen - ld a, [wWereAnyMonsAsleep] - and a ; were any pokemon asleep before playing the flute? - ld hl, PlayedFluteNoEffectText - jp z, PrintText ; if no pokemon were asleep -; if some pokemon were asleep - ld hl, PlayedFluteHadEffectText - call PrintText - ld a, [wLowHealthAlarm] - and $80 - jr nz, .skipMusic - call WaitForSoundToFinish ; wait for sound to end - callba Music_PokeFluteInBattle ; play in-battle pokeflute music -.musicWaitLoop ; wait for music to finish playing - ld a, [wChannelSoundIDs + Ch7] - and a ; music off? - jr nz, .musicWaitLoop -.skipMusic - ld hl, FluteWokeUpText - jp PrintText - -; wakes up all party pokemon -; INPUT: -; hl must point to status of first pokemon in party (player's or enemy's) -; b must equal ~SLP -; [wWereAnyMonsAsleep] should be initialized to 0 -; OUTPUT: -; [wWereAnyMonsAsleep]: set to 1 if any pokemon were asleep -WakeUpEntireParty: - ld de, 44 - ld c, 6 -.loop - ld a, [hl] - push af - and SLP ; is pokemon asleep? - jr z, .notAsleep - ld a, 1 - ld [wWereAnyMonsAsleep], a ; indicate that a pokemon had to be woken up -.notAsleep - pop af - and b ; remove Sleep status - ld [hl], a - add hl, de - dec c - jr nz, .loop - ret - -; Format: -; 00: Y -; 01: X -Route12SnorlaxFluteCoords: - db 62, 9 ; one space West of Snorlax - db 61, 10 ; one space North of Snorlax - db 63, 10 ; one space South of Snorlax - db 62, 11 ; one space East of Snorlax - db $ff ; terminator - -; Format: -; 00: Y -; 01: X -Route16SnorlaxFluteCoords: - db 10, 27 ; one space East of Snorlax - db 10, 25 ; one space West of Snorlax - db $ff ; terminator - -PlayedFluteNoEffectText: - TX_FAR _PlayedFluteNoEffectText - db "@" - -FluteWokeUpText: - TX_FAR _FluteWokeUpText - db "@" - -PlayedFluteHadEffectText: - TX_FAR _PlayedFluteHadEffectText - TX_BLINK - TX_ASM - ld a, [wIsInBattle] - and a - jr nz, .done -; play out-of-battle pokeflute music - call StopAllMusic ; turn off music - ld a, SFX_POKEFLUTE - ld c, BANK(SFX_Pokeflute) - call PlayMusic -.musicWaitLoop ; wait for music to finish playing - ld a, [wChannelSoundIDs + Ch3] - cp SFX_POKEFLUTE - jr z, .musicWaitLoop - call PlayDefaultMusic ; start playing normal music again -.done - jp TextScriptEnd ; end text - -ItemUseCoinCase: - ld a, [wIsInBattle] - and a - jp nz, ItemUseNotTime - ld hl, CoinCaseNumCoinsText - jp PrintText - -CoinCaseNumCoinsText: - TX_FAR _CoinCaseNumCoinsText - db "@" - -ItemUseOldRod: - call FishingInit - jp c, ItemUseNotTime - lb bc, 5, MAGIKARP - ld a, $1 ; set bite - jr RodResponse - -ItemUseGoodRod: - call FishingInit - jp c, ItemUseNotTime -.RandomLoop - call Random - srl a - jr c, .SetBite - and %11 - cp 2 - jr nc, .RandomLoop - ; choose which monster appears - ld hl, GoodRodMons - add a - ld c, a - ld b, 0 - add hl, bc - ld b, [hl] - inc hl - ld c, [hl] - and a -.SetBite - ld a, 0 - rla - xor 1 - jr RodResponse - -INCLUDE "data/good_rod.asm" - -ItemUseSuperRod: - call FishingInit - jp c, ItemUseNotTime - callab ReadSuperRodData - ld c, e - ld b, d - ld a, $2 - ld [wRodResponse], a - ld a, c - and a ; are there fish in the map? - jr z, DoNotGenerateFishingEncounter ; if not, do not generate an encounter - ld a, $1 - ld [wRodResponse], a - call Random - and $1 - jr nz, RodResponse - xor a - ld [wRodResponse], a - jr DoNotGenerateFishingEncounter - -RodResponse: - ld [wRodResponse], a - - dec a ; is there a bite? - jr nz, DoNotGenerateFishingEncounter - ; if yes, store level and species data - ld a, 1 - ld [wMoveMissed], a - ld a, b ; level - ld [wCurEnemyLVL], a - ld a, c ; species - ld [wCurOpponent], a - -DoNotGenerateFishingEncounter: - ld hl, wWalkBikeSurfState - ld a, [hl] ; store the value in a - push af - push hl - ld [hl], 0 - callba FishingAnim - pop hl - pop af - ld [hl], a - ret - -; checks if fishing is possible and if so, runs initialization code common to all rods -; unsets carry if fishing is possible, sets carry if not -FishingInit: - ld a, [wIsInBattle] - and a - jr z, .notInBattle - scf ; can't fish during battle - ret - -.notInBattle - call IsNextTileShoreOrWater - jr nc, .cannotFish - ld a, [wWalkBikeSurfState] - cp 2 ; Surfing? - jr z, .cannotFish - call ItemUseReloadOverworldData - ld hl, ItemUseText00 - call PrintText - ld a, SFX_HEAL_AILMENT - call PlaySound - ld a, $2 - ld [wd49c], a - ld a, $81 - ld [wPikachuMood], a - ld c, 80 - call DelayFrames - and a - ret - -.cannotFish - scf ; can't fish when surfing - ret - -ItemUseOaksParcel: - jp ItemUseNotYoursToUse - -ItemUseItemfinder: - ld a, [wIsInBattle] - and a - jp nz, ItemUseNotTime - call ItemUseReloadOverworldData - callba HiddenItemNear ; check for hidden items - ld hl, ItemfinderFoundNothingText - jr nc, .printText ; if no hidden items - ld c, 4 -.loop - ld a, SFX_HEALING_MACHINE - call PlaySoundWaitForCurrent - ld a, SFX_PURCHASE - call PlaySoundWaitForCurrent - dec c - jr nz, .loop - ld hl, ItemfinderFoundItemText -.printText - jp PrintText - -ItemfinderFoundItemText: - TX_FAR _ItemfinderFoundItemText - db "@" - -ItemfinderFoundNothingText: - TX_FAR _ItemfinderFoundNothingText - db "@" - -ItemUsePPUp: - ld a, [wIsInBattle] - and a - jp nz, ItemUseNotTime - -ItemUsePPRestore: - ld a, [wWhichPokemon] - push af - ld a, [wcf91] - ld [wPPRestoreItem], a -.chooseMon - xor a - ld [wUpdateSpritesEnabled], a - ld a, USE_ITEM_PARTY_MENU - ld [wPartyMenuTypeOrMessageID], a - call DisplayPartyMenu - jr nc, .chooseMove - jp .itemNotUsed - -.chooseMove - ld a, [wIsInBattle] - and a - jr z, .usePPItem - ld a, [wWhichPokemon] - ld b, a - ld a, [wPlayerMonNumber] - cp b - jr nz, .usePPItem - ld a, [wPlayerBattleStatus3] - bit TRANSFORMED, a - jr z, .usePPItem - call ItemUseNotTime - jp .itemNotUsed - -.usePPItem - ld a, [wPPRestoreItem] - cp ELIXER - jp nc, .useElixir ; if Elixir or Max Elixir - ld a, $02 - ld [wMoveMenuType], a - ld hl, RaisePPWhichTechniqueText - ld a, [wPPRestoreItem] - cp ETHER ; is it a PP Up? - jr c, .printWhichTechniqueMessage ; if so, print the raise PP message - ld hl, RestorePPWhichTechniqueText ; otherwise, print the restore PP message -.printWhichTechniqueMessage - call PrintText - xor a - ld [wPlayerMoveListIndex], a - callab MoveSelectionMenu ; move selection menu - ld a, 0 - ld [wPlayerMoveListIndex], a - jr nz, .chooseMon - ld hl, wPartyMon1Moves - ld bc, wPartyMon2 - wPartyMon1 - call GetSelectedMoveOffset - push hl - ld a, [hl] - ld [wd11e], a - call GetMoveName - call CopyStringToCF4B ; copy name to wcf4b - pop hl - ld a, [wPPRestoreItem] - cp ETHER - jr nc, .useEther ; if Ether or Max Ether -.usePPUp - ld bc, wPartyMon1PP - wPartyMon1Moves - add hl, bc - ld a, [hl] ; move PP - cp 3 << 6 ; have 3 PP Ups already been used? - jr c, .PPNotMaxedOut - ld hl, PPMaxedOutText - call PrintText - jr .chooseMove - -.PPNotMaxedOut - ld a, [hl] - add 1 << 6 ; increase PP Up count by 1 - ld [hl], a - ld a, 1 ; 1 PP Up used - ld [wd11e], a - call RestoreBonusPP ; add the bonus PP to current PP - ld a, SFX_HEAL_AILMENT - call PlaySound - ld hl, PPIncreasedText - call PrintText -.done - pop af - ld [wWhichPokemon], a - call GBPalWhiteOut - call RunDefaultPaletteCommand - jp RemoveUsedItem - -.afterRestoringPP ; after using a (Max) Ether/Elixir - ld a, [wWhichPokemon] - ld b, a - ld a, [wPlayerMonNumber] - cp b ; is the pokemon whose PP was restored active in battle? - jr nz, .skipUpdatingInBattleData - ld hl, wPartyMon1PP - ld bc, wPartyMon2 - wPartyMon1 - call AddNTimes - ld de, wBattleMonPP - ld bc, 4 - call CopyData ; copy party data to in-battle data -.skipUpdatingInBattleData - ld a, SFX_HEAL_AILMENT - call PlaySound - ld hl, PPRestoredText - call PrintText - jr .done - -.useEther - call .restorePP - jr nz, .afterRestoringPP - jp .noEffect - -; unsets zero flag if PP was restored, sets zero flag if not -; however, this is bugged for Max Ethers and Max Elixirs (see below) -.restorePP - xor a ; PLAYER_PARTY_DATA - ld [wMonDataLocation], a - call GetMaxPP - ld hl, wPartyMon1Moves - ld bc, wPartyMon2 - wPartyMon1 - call GetSelectedMoveOffset - ld bc, wPartyMon1PP - wPartyMon1Moves - add hl, bc ; hl now points to move's PP - ld a, [wMaxPP] - ld b, a - ld a, [wPPRestoreItem] - cp MAX_ETHER - jr z, .fullyRestorePP - ld a, [hl] ; move PP - and %00111111 ; lower 6 bit bits store current PP - cp b ; does current PP equal max PP? - ret z ; if so, return - add 10 ; increase current PP by 10 -; b holds the max PP amount and b will hold the new PP amount. -; So, if the new amount meets or exceeds the max amount, -; cap the amount to the max amount by leaving b unchanged. -; Otherwise, store the new amount in b. - cp b ; does the new amount meet or exceed the maximum? - jr nc, .storeNewAmount - ld b, a -.storeNewAmount - ld a, [hl] ; move PP - and %11000000 ; PP Up counter bits - add b - ld [hl], a - ret - -.fullyRestorePP - ld a, [hl] ; move PP -; Note that this code has a bug. It doesn't mask out the upper two bits, which -; are used to count how many PP Ups have been used on the move. So, Max Ethers -; and Max Elixirs will not be detected as having no effect on a move with full -; PP if the move has had any PP Ups used on it. - cp b ; does current PP equal max PP? - ret z - jr .storeNewAmount - -.useElixir -; decrement the item ID so that ELIXER becomes ETHER and MAX_ELIXER becomes MAX_ETHER - ld hl, wPPRestoreItem - dec [hl] - dec [hl] - xor a - ld hl, wCurrentMenuItem - ld [hli], a - ld [hl], a ; zero the counter for number of moves that had their PP restored - ld b, 4 -; loop through each move and restore PP -.elixirLoop - push bc - ld hl, wPartyMon1Moves - ld bc, wPartyMon2 - wPartyMon1 - call GetSelectedMoveOffset - ld a, [hl] - and a ; does the current slot have a move? - jr z, .nextMove - call .restorePP - jr z, .nextMove -; if some PP was restored - ld hl, wTileBehindCursor ; counter for number of moves that had their PP restored - inc [hl] -.nextMove - ld hl, wCurrentMenuItem - inc [hl] - pop bc - dec b - jr nz, .elixirLoop - ld a, [wTileBehindCursor] - and a ; did any moves have their PP restored? - jp nz, .afterRestoringPP -.noEffect - call ItemUseNoEffect -.itemNotUsed - call GBPalWhiteOut - call RunDefaultPaletteCommand - pop af - xor a - ld [wActionResultOrTookBattleTurn], a ; item use failed - ret - -RaisePPWhichTechniqueText: - TX_FAR _RaisePPWhichTechniqueText - db "@" - -RestorePPWhichTechniqueText: - TX_FAR _RestorePPWhichTechniqueText - db "@" - -PPMaxedOutText: - TX_FAR _PPMaxedOutText - db "@" - -PPIncreasedText: - TX_FAR _PPIncreasedText - db "@" - -PPRestoredText: - TX_FAR _PPRestoredText - db "@" - -; for items that can't be used from the Item menu -UnusableItem: - jp ItemUseNotTime - -ItemUseTMHM: - ld a, [wIsInBattle] - and a - jp nz, ItemUseNotTime - ld a, [wcf91] - sub TM_01 - push af - jr nc, .skipAdding - add 55 ; if item is an HM, add 55 -.skipAdding - inc a - ld [wd11e], a - predef TMToMove ; get move ID from TM/HM ID - ld a, [wd11e] - ld [wMoveNum], a - call GetMoveName - call CopyStringToCF4B ; copy name to wcf4b - pop af - ld hl, BootedUpTMText - jr nc, .printBootedUpMachineText - ld hl, BootedUpHMText -.printBootedUpMachineText - call PrintText - ld hl, TeachMachineMoveText - call PrintText - coord hl, 14, 7 - lb bc, 8, 15 - ld a, TWO_OPTION_MENU - ld [wTextBoxID], a - call DisplayTextBoxID ; yes/no menu - ld a, [wCurrentMenuItem] - and a - jr z, .useMachine - ld a, 2 - ld [wActionResultOrTookBattleTurn], a ; item not used - ret - -.useMachine - ld a, [wWhichPokemon] - push af - ld a, [wcf91] - push af -.chooseMon - ld hl, wcf4b - ld de, wTempMoveNameBuffer - ld bc, 14 - call CopyData ; save the move name because DisplayPartyMenu will overwrite it - ld a, $ff - ld [wUpdateSpritesEnabled], a - ld a, TMHM_PARTY_MENU - ld [wPartyMenuTypeOrMessageID], a - call DisplayPartyMenu - push af - ld hl, wTempMoveNameBuffer - ld de, wcf4b - ld bc, 14 - call CopyData - pop af - jr nc, .checkIfAbleToLearnMove -; if the player canceled teaching the move - pop af - pop af - call GBPalWhiteOutWithDelay3 - call ClearSprites - call RunDefaultPaletteCommand - jp LoadScreenTilesFromBuffer1 ; restore saved screen -.checkIfAbleToLearnMove - predef CanLearnTM ; check if the pokemon can learn the move - push bc - ld a, [wWhichPokemon] - ld hl, wPartyMonNicks - call GetPartyMonName - pop bc - ld a, c - and a ; can the pokemon learn the move? - jr nz, .checkIfAlreadyLearnedMove -; if the pokemon can't learn the move - ld a, SFX_DENIED - call PlaySoundWaitForCurrent - ld hl, MonCannotLearnMachineMoveText - call PrintText - jr .chooseMon - -.checkIfAlreadyLearnedMove - callab CheckIfMoveIsKnown ; check if the pokemon already knows the move - jr c, .chooseMon - predef LearnMove ; teach move - ld a, [wWhichPokemon] - ld d, a - pop af - ld [wcf91], a - pop af - ld [wWhichPokemon], a - ld a, b - and a - ret z - - ld a, [wWhichPokemon] - push af - ld a, d - ld [wWhichPokemon], a - callabd_ModifyPikachuHappiness PIKAHAPPY_USEDTMHM - callab IsThisPartymonStarterPikachu_Party - jr nc, .notTeachingThunderboltOrThunderToPikachu - ld a, [wcf91] - cp TM_24 ; are we teaching thunderbolt to the player pikachu? - jr z, .teachingThunderboltOrThunderToPlayerPikachu - cp TM_25 ; are we teaching thunder then? - jr nz, .notTeachingThunderboltOrThunderToPikachu -.teachingThunderboltOrThunderToPlayerPikachu - ld a, $5 - ld [wd49c], a - ld a, $85 - ld [wPikachuMood], a -.notTeachingThunderboltOrThunderToPikachu - pop af - ld [wWhichPokemon], a - - ld a, [wcf91] - call IsItemHM - ret c - jp RemoveUsedItem - -BootedUpTMText: - TX_FAR _BootedUpTMText - db "@" - -BootedUpHMText: - TX_FAR _BootedUpHMText - db "@" - -TeachMachineMoveText: - TX_FAR _TeachMachineMoveText - db "@" - -MonCannotLearnMachineMoveText: - TX_FAR _MonCannotLearnMachineMoveText - db "@" - -PrintItemUseTextAndRemoveItem: - ld hl, ItemUseText00 - call PrintText - ld a, SFX_HEAL_AILMENT - call PlaySound - call WaitForTextScrollButtonPress ; wait for button press - -RemoveUsedItem: - ld hl, wNumBagItems - ld a, 1 ; one item - ld [wItemQuantity], a - jp RemoveItemFromInventory - -ItemUseNoEffect: - ld hl, ItemUseNoEffectText - jr ItemUseFailed - -ItemUseNotTime: - ld hl, ItemUseNotTimeText - jr ItemUseFailed - -ItemUseNotYoursToUse: - ld hl, ItemUseNotYoursToUseText - jr ItemUseFailed - -Func_e4bf: - ld a, $2 - ld [wActionResultOrTookBattleTurn], a - ld hl, DontHavePokemonText - jp PrintText - -ThrowBallAtTrainerMon: - call RunDefaultPaletteCommand - call LoadScreenTilesFromBuffer1 ; restore saved screen - call Delay3 - ld a, TOSS_ANIM - ld [wAnimationID], a - predef MoveAnimation ; do animation - ld hl, ThrowBallAtTrainerMonText1 - call PrintText - ld hl, ThrowBallAtTrainerMonText2 - call PrintText - jr RemoveUsedItem - -NoCyclingAllowedHere: - ld hl, NoCyclingAllowedHereText - jr ItemUseFailed - -BoxFullCannotThrowBall: - ld hl, BoxFullCannotThrowBallText - jr ItemUseFailed - -SurfingAttemptFailed: - ld hl, NoSurfingHereText - -ItemUseFailed: - xor a - ld [wActionResultOrTookBattleTurn], a ; item use failed - jp PrintText - -ItemUseNotTimeText: - TX_FAR _ItemUseNotTimeText - db "@" - -ItemUseNotYoursToUseText: - TX_FAR _ItemUseNotYoursToUseText - db "@" - -ItemUseNoEffectText: - TX_FAR _ItemUseNoEffectText - db "@" - -ThrowBallAtTrainerMonText1: - TX_FAR _ThrowBallAtTrainerMonText1 - db "@" - -ThrowBallAtTrainerMonText2: - TX_FAR _ThrowBallAtTrainerMonText2 - db "@" - -NoCyclingAllowedHereText: - TX_FAR _NoCyclingAllowedHereText - db "@" - -NoSurfingHereText: - TX_FAR _NoSurfingHereText - db "@" - -BoxFullCannotThrowBallText: - TX_FAR _BoxFullCannotThrowBallText - db "@" - -DontHavePokemonText: - TX_FAR _DontHavePokemonText - db "@" - -ItemUseText00: - TX_FAR _ItemUseText001 - TX_LINE - TX_FAR _ItemUseText002 - db "@" - -GotOnBicycleText: - TX_FAR _GotOnBicycleText1 - TX_LINE - TX_FAR _GotOnBicycleText2 - db "@" - -GotOffBicycleText: - TX_FAR _GotOffBicycleText1 - TX_LINE - TX_FAR _GotOffBicycleText2 - db "@" - -; restores bonus PP (from PP Ups) when healing at a pokemon center -; also, when a PP Up is used, it increases the current PP by one PP Up bonus -; INPUT: -; [wWhichPokemon] = index of pokemon in party -; [wCurrentMenuItem] = index of move (when using a PP Up) -RestoreBonusPP: - ld hl, wPartyMon1Moves - ld bc, wPartyMon2 - wPartyMon1 - ld a, [wWhichPokemon] - call AddNTimes - push hl - ld de, wNormalMaxPPList - 1 - predef LoadMovePPs ; loads the normal max PP of each of the pokemon's moves to wNormalMaxPPList - pop hl - ld c, wPartyMon1PP - wPartyMon1Moves - ld b, 0 - add hl, bc ; hl now points to move 1 PP - ld de, wNormalMaxPPList - ld b, 0 ; initialize move counter to zero -; loop through the pokemon's moves -.loop - inc b - ld a, b - cp 5 ; reached the end of the pokemon's moves? - ret z ; if so, return - ld a, [wUsingPPUp] - dec a ; using a PP Up? - jr nz, .skipMenuItemIDCheck -; if using a PP Up, check if this is the move it's being used on - ld a, [wCurrentMenuItem] - inc a - cp b - jr nz, .nextMove -.skipMenuItemIDCheck - ld a, [hl] - and %11000000 ; have any PP Ups been used? - call nz, AddBonusPP ; if so, add bonus PP -.nextMove - inc hl - inc de - jr .loop - -; adds bonus PP from PP Ups to current PP -; 1/5 of normal max PP (capped at 7) is added for each PP Up -; INPUT: -; [de] = normal max PP -; [hl] = move PP -AddBonusPP: - push bc - ld a, [de] ; normal max PP of move - ld [H_DIVIDEND + 3], a - xor a - ld [H_DIVIDEND], a - ld [H_DIVIDEND + 1], a - ld [H_DIVIDEND + 2], a - ld a, 5 - ld [H_DIVISOR], a - ld b, 4 - call Divide - ld a, [hl] ; move PP - ld b, a - swap a - and %00001111 - srl a - srl a - ld c, a ; c = number of PP Ups used -.loop - ld a, [H_QUOTIENT + 3] - cp 8 ; is the amount greater than or equal to 8? - jr c, .addAmount - ld a, 7 ; cap the amount at 7 -.addAmount - add b - ld b, a - ld a, [wUsingPPUp] - dec a ; is the player using a PP Up right now? - jr z, .done ; if so, only add the bonus once - dec c - jr nz, .loop -.done - ld [hl], b - pop bc - ret - -; gets max PP of a pokemon's move (including PP from PP Ups) -; INPUT: -; [wWhichPokemon] = index of pokemon within party/box -; [wMonDataLocation] = pokemon source -; 00: player's party -; 01: enemy's party -; 02: current box -; 03: daycare -; 04: player's in-battle pokemon -; [wCurrentMenuItem] = move index -; OUTPUT: -; [wMaxPP] = max PP -GetMaxPP: - ld a, [wMonDataLocation] - and a - ld hl, wPartyMon1Moves - ld bc, wPartyMon2 - wPartyMon1 - jr z, .sourceWithMultipleMon - ld hl, wEnemyMon1Moves - dec a - jr z, .sourceWithMultipleMon - ld hl, wBoxMon1Moves - ld bc, wBoxMon2 - wBoxMon1 - dec a - jr z, .sourceWithMultipleMon - ld hl, wDayCareMonMoves - dec a - jr z, .sourceWithOneMon - ld hl, wBattleMonMoves ; player's in-battle pokemon -.sourceWithOneMon - call GetSelectedMoveOffset2 - jr .next - -.sourceWithMultipleMon - call GetSelectedMoveOffset -.next - ld a, [hl] - dec a - push hl - ld hl, Moves - ld bc, MoveEnd - Moves - call AddNTimes - ld de, wcd6d - ld a, BANK(Moves) - call FarCopyData - ld de, wcd6d + 5 ; PP is byte 5 of move data - ld a, [de] - ld b, a ; b = normal max PP - pop hl - push bc - ld bc, wPartyMon1PP - wPartyMon1Moves ; PP offset if not player's in-battle pokemon data - ld a, [wMonDataLocation] - cp 4 ; player's in-battle pokemon? - jr nz, .addPPOffset - ld bc, wBattleMonPP - wBattleMonMoves ; PP offset if player's in-battle pokemon data -.addPPOffset - add hl, bc - ld a, [hl] ; a = current PP - and %11000000 ; get PP Up count - pop bc - or b ; place normal max PP in 6 lower bits of a - ld h, d - ld l, e - inc hl ; hl = wcd73 - ld [hl], a - xor a ; add the bonus for the existing PP Up count - ld [wUsingPPUp], a - call AddBonusPP ; add bonus PP from PP Ups - ld a, [hl] - and %00111111 ; mask out the PP Up count - ld [wMaxPP], a ; store max PP - ret - -GetSelectedMoveOffset: - ld a, [wWhichPokemon] - call AddNTimes - -GetSelectedMoveOffset2: - ld a, [wCurrentMenuItem] - ld c, a - ld b, 0 - add hl, bc - ret - -; confirms the item toss and then tosses the item -; INPUT: -; hl = address of inventory (either wNumBagItems or wNumBoxItems) -; [wcf91] = item ID -; [wWhichPokemon] = index of item within inventory -; [wItemQuantity] = quantity to toss -; OUTPUT: -; clears carry flag if the item is tossed, sets carry flag if not -TossItem_: - push hl - ld a, [wcf91] - call IsItemHM - pop hl - jr c, .tooImportantToToss - push hl - call IsKeyItem_ - ld a, [wIsKeyItem] - pop hl - and a - jr nz, .tooImportantToToss - push hl - ld a, [wcf91] - ld [wd11e], a - call GetItemName - call CopyStringToCF4B ; copy name to wcf4b - ld hl, IsItOKToTossItemText - call PrintText - coord hl, 14, 7 - lb bc, 8, 15 - ld a, TWO_OPTION_MENU - ld [wTextBoxID], a - call DisplayTextBoxID ; yes/no menu - ld a, [wMenuExitMethod] - cp CHOSE_SECOND_ITEM - pop hl - scf - ret z ; return if the player chose No -; if the player chose Yes - push hl - ld a, [wWhichPokemon] - call RemoveItemFromInventory - ld a, [wcf91] - ld [wd11e], a - call GetItemName - call CopyStringToCF4B ; copy name to wcf4b - ld hl, ThrewAwayItemText - call PrintText - pop hl - and a - ret - -.tooImportantToToss - push hl - ld hl, TooImportantToTossText - call PrintText - pop hl - scf - ret - -ThrewAwayItemText: - TX_FAR _ThrewAwayItemText - db "@" - -IsItOKToTossItemText: - TX_FAR _IsItOKToTossItemText - db "@" - -TooImportantToTossText: - TX_FAR _TooImportantToTossText - db "@" - -; checks if an item is a key item -; INPUT: -; [wcf91] = item ID -; OUTPUT: -; [wIsKeyItem] = result -; 00: item is not key item -; 01: item is key item -IsKeyItem_: - ld a, $01 - ld [wIsKeyItem], a - ld a, [wcf91] - cp HM_01 ; is the item an HM or TM? - jr nc, .checkIfItemIsHM -; if the item is not an HM or TM - push af - ld hl, KeyItemBitfield - ld de, wBuffer - ld bc, 15 ; only 11 bytes are actually used - call CopyData - pop af - dec a - ld c, a - ld hl, wBuffer - ld b, FLAG_TEST - predef FlagActionPredef - ld a, c - and a - ret nz -.checkIfItemIsHM - ld a, [wcf91] - call IsItemHM - ret c - xor a - ld [wIsKeyItem], a - ret - -INCLUDE "data/key_items.asm" - -SendNewMonToBox: - ld de, wNumInBox - ld a, [de] - inc a - ld [de], a - ld a, [wcf91] - ld [wd0b5], a - ld c, a -.asm_e6f5 - inc de - ld a, [de] - ld b, a - ld a, c - ld c, b - ld [de], a - cp $ff - jr nz, .asm_e6f5 - call GetMonHeader - ld hl, wBoxMonOT - ld bc, NAME_LENGTH - ld a, [wNumInBox] - dec a - jr z, .asm_e732 - dec a - call AddNTimes - push hl - ld bc, NAME_LENGTH - add hl, bc - ld d, h - ld e, l - pop hl - ld a, [wNumInBox] - dec a - ld b, a -.asm_e71f - push bc - push hl - ld bc, NAME_LENGTH - call CopyData - pop hl - ld d, h - ld e, l - ld bc, -NAME_LENGTH - add hl, bc - pop bc - dec b - jr nz, .asm_e71f -.asm_e732 - ld hl, wPlayerName - ld de, wBoxMonOT - ld bc, NAME_LENGTH - call CopyData - ld a, [wNumInBox] - dec a - jr z, .asm_e76e - ld hl, wBoxMonNicks - ld bc, NAME_LENGTH - dec a - call AddNTimes - push hl - ld bc, NAME_LENGTH - add hl, bc - ld d, h - ld e, l - pop hl - ld a, [wNumInBox] - dec a - ld b, a -.asm_e75b - push bc - push hl - ld bc, NAME_LENGTH - call CopyData - pop hl - ld d, h - ld e, l - ld bc, -NAME_LENGTH - add hl, bc - pop bc - dec b - jr nz, .asm_e75b -.asm_e76e - ld hl, wBoxMonNicks - ld a, NAME_MON_SCREEN - ld [wNamingScreenType], a - predef AskName - ld a, [wNumInBox] - dec a - jr z, .asm_e7ab - ld hl, wBoxMons - ld bc, wBoxMon2 - wBoxMon1 - dec a - call AddNTimes - push hl - ld bc, wBoxMon2 - wBoxMon1 - add hl, bc - ld d, h - ld e, l - pop hl - ld a, [wNumInBox] - dec a - ld b, a -.asm_e798 - push bc - push hl - ld bc, wBoxMon2 - wBoxMon1 - call CopyData - pop hl - ld d, h - ld e, l - ld bc, wBoxMon1 - wBoxMon2 - add hl, bc - pop bc - dec b - jr nz, .asm_e798 -.asm_e7ab - ld a, [wEnemyMonLevel] - ld [wEnemyMonBoxLevel], a - ld hl, wEnemyMon - ld de, wBoxMon1 - ld bc, wEnemyMonDVs - wEnemyMon - call CopyData - ld hl, wPlayerID - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - inc de - push de - ld a, [wCurEnemyLVL] - ld d, a - callab CalcExperience - pop de - ld a, [hExperience] - ld [de], a - inc de - ld a, [hExperience + 1] - ld [de], a - inc de - ld a, [hExperience + 2] - ld [de], a - inc de - xor a - ld b, NUM_STATS * 2 -.asm_e7e3 - ld [de], a - inc de - dec b - jr nz, .asm_e7e3 - ld hl, wEnemyMonDVs - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ld hl, wEnemyMonPP - ld b, NUM_MOVES -.asm_e7f5 - ld a, [hli] - inc de - ld [de], a - dec b - jr nz, .asm_e7f5 - ld a, [wcf91] - cp KADABRA - jr nz, .notKadabra - ld a, $60 ; twistedspoon in gsc - ld [wBoxMon1CatchRate], a -.notKadabra - ret - -; checks if the tile in front of the player is a shore or water tile -; used for surfing and fishing -; unsets carry if it is, sets carry if not -IsNextTileShoreOrWater: - ld a, [wCurMapTileset] - ld hl, WaterTilesets - ld de, 1 - call IsInArray ; does the current map allow surfing? - ret nc ; if not, return - ld hl, WaterTile - ld a, [wCurMapTileset] - cp SHIP_PORT ; Vermilion Dock tileset - jr z, .skipShoreTiles ; if it's the Vermilion Dock tileset - cp GYM ; eastern shore tile in Safari Zone - jr z, .skipShoreTiles - cp DOJO ; usual eastern shore tile - jr z, .skipShoreTiles - ld hl, ShoreTiles -.skipShoreTiles - ld a, [wTileInFrontOfPlayer] - ld de, $1 - call IsInArray - ret - -; tilesets with water -WaterTilesets: - db OVERWORLD, FOREST, DOJO, GYM, SHIP, SHIP_PORT, CAVERN, FACILITY, PLATEAU - db $ff ; terminator - -; shore tiles -ShoreTiles: - db $48, $32 -WaterTile: - db $14 - db $ff ; terminator - -; reloads map view and processes sprite data -; for items that cause the overworld to be displayed -ItemUseReloadOverworldData: - call LoadCurrentMapView - jp UpdateSprites - -; creates a list at wBuffer of maps where the mon in [wd11e] can be found. -; this is used by the pokedex to display locations the mon can be found on the map. -FindWildLocationsOfMon: - ld hl, WildDataPointers - ld de, wBuffer - ld c, $0 -.loop - inc hl - ld a, [hld] - inc a - jr z, .done - push hl - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hli] - and a - call nz, CheckMapForMon ; land - ld a, [hli] - and a - call nz, CheckMapForMon ; water - pop hl - inc hl - inc hl - inc c - jr .loop -.done - ld a, $ff ; list terminator - ld [de], a - ret - -CheckMapForMon: - inc hl - ld b, $a -.loop - ld a, [wd11e] - cp [hl] - jr nz, .nextEntry - ld a, c - ld [de], a - inc de -.nextEntry - inc hl - inc hl - dec b - jr nz, .loop - dec hl - ret diff --git a/engine/subtract_paid_money.asm b/engine/items/subtract_paid_money.asm similarity index 80% rename from engine/subtract_paid_money.asm rename to engine/items/subtract_paid_money.asm index a6a6ec2e2..fdefe3d67 100644 --- a/engine/subtract_paid_money.asm +++ b/engine/items/subtract_paid_money.asm @@ -1,6 +1,6 @@ ; subtracts the amount the player paid from their money -; sets carry flag if there is enough money and unsets carry flag if not -SubtractAmountPaidFromMoney_: +; OUTPUT: carry = 0(success) or 1(fail because there is not enough money) +SubtractAmountPaidFromMoney_:: ld de, wPlayerMoney ld hl, hMoney ; total price of items ld c, 3 ; length of money in bytes diff --git a/engine/items/tm_prices.asm b/engine/items/tm_prices.asm index 80e6bf3cd..df9761bd6 100755 --- a/engine/items/tm_prices.asm +++ b/engine/items/tm_prices.asm @@ -1,9 +1,9 @@ -GetMachinePrice: +GetMachinePrice:: ; Input: [wcf91] = Item Id of a TM ; Output: Stores the TM price at hItemPrice ld a, [wcf91] ; a contains TM item id - sub TM_01 - ret c + sub TM01 ; underflows below 0 for HM items (before TM items) + ret c ; HMs are priceless ld d, a ld hl, TechnicalMachinePrices srl a @@ -16,10 +16,10 @@ GetMachinePrice: swap a .highNybbleIsPrice and $f0 - ld [hItemPrice + 1], a + ldh [hItemPrice + 1], a xor a - ld [hItemPrice], a - ld [hItemPrice + 2], a + ldh [hItemPrice], a + ldh [hItemPrice + 2], a ret -INCLUDE "data/tm_prices.asm" +INCLUDE "data/items/tm_prices.asm" diff --git a/engine/items/tmhm.asm b/engine/items/tmhm.asm index 7ccaa232c..a11cd7361 100755 --- a/engine/items/tmhm.asm +++ b/engine/items/tmhm.asm @@ -22,5 +22,5 @@ CheckIfMoveIsKnown: ret AlreadyKnowsText: - TX_FAR _AlreadyKnowsText - db "@" + text_far _AlreadyKnowsText + text_end diff --git a/engine/items/tms.asm b/engine/items/tms.asm index 847707471..dcf2665dd 100755 --- a/engine/items/tms.asm +++ b/engine/items/tms.asm @@ -39,4 +39,4 @@ TMToMove: ld [wd11e], a ret -INCLUDE "data/tms.asm" +INCLUDE "data/moves/tmhm_moves.asm" diff --git a/engine/items/town_map.asm b/engine/items/town_map.asm new file mode 100755 index 000000000..c401d1c16 --- /dev/null +++ b/engine/items/town_map.asm @@ -0,0 +1,629 @@ +NOT_VISITED EQU $fe + +DisplayTownMap: + call LoadTownMap + ld hl, wUpdateSpritesEnabled + ld a, [hl] + push af + ld [hl], $ff + push hl + ld a, $1 + ldh [hJoy7], a + ld a, [wCurMap] + push af + ld b, $0 + call DrawPlayerOrBirdSprite ; player sprite + hlcoord 1, 0 + ld de, wcd6d + call PlaceString + ld hl, wOAMBuffer + ld de, wTileMapBackup + ld bc, $10 + call CopyData + ld hl, vSprites tile $04 + ld de, TownMapCursor + lb bc, BANK(TownMapCursor), (TownMapCursorEnd - TownMapCursor) / $8 + call CopyVideoDataDouble + xor a + ld [wWhichTownMapLocation], a + pop af + jr .enterLoop + +.townMapLoop + hlcoord 0, 0 + lb bc, 1, 20 + call ClearScreenArea + ld hl, TownMapOrder + ld a, [wWhichTownMapLocation] + ld c, a + ld b, 0 + add hl, bc + ld a, [hl] +.enterLoop + ld de, wTownMapCoords + call LoadTownMapEntry + ld a, [de] + push hl + call TownMapCoordsToOAMCoords + ld a, $4 + ld [wOAMBaseTile], a + ld hl, wOAMBuffer + $10 + call WriteTownMapSpriteOAM ; town map cursor sprite + pop hl + ld de, wcd6d +.copyMapName + ld a, [hli] + ld [de], a + inc de + cp $50 + jr nz, .copyMapName + hlcoord 1, 0 + ld de, wcd6d + call PlaceString + ld hl, wOAMBuffer + $10 + ld de, wTileMapBackup + 16 + ld bc, $10 + call CopyData +.inputLoop + call TownMapSpriteBlinkingAnimation + call JoypadLowSensitivity + ldh a, [hJoy5] + ld b, a + and A_BUTTON | B_BUTTON | D_UP | D_DOWN + jr z, .inputLoop + ld a, SFX_TINK + call PlaySound + bit 6, b + jr nz, .pressedUp + bit 7, b + jr nz, .pressedDown + xor a + ld [wTownMapSpriteBlinkingEnabled], a + ldh [hJoy7], a + ld [wAnimCounter], a + call ExitTownMap + pop hl + pop af + ld [hl], a + ret +.pressedUp + ld a, [wWhichTownMapLocation] + inc a + cp TownMapOrderEnd - TownMapOrder ; number of list items + 1 + jr nz, .noOverflow + xor a +.noOverflow + ld [wWhichTownMapLocation], a + jp .townMapLoop +.pressedDown + ld a, [wWhichTownMapLocation] + dec a + cp -1 + jr nz, .noUnderflow + ld a, TownMapOrderEnd - TownMapOrder - 1 ; number of list items +.noUnderflow + ld [wWhichTownMapLocation], a + jp .townMapLoop + +.asm_70f87 + ldh a, [hJoy5] + and D_DOWN | D_UP + ret z + callfar PlayPikachuSoundClip + ret + +INCLUDE "data/maps/town_map_order.asm" + +TownMapCursor: + INCBIN "gfx/town_map/town_map_cursor.1bpp" +TownMapCursorEnd: + +LoadTownMap_Nest: + call LoadTownMap + ld hl, wUpdateSpritesEnabled + ld a, [hl] + push af + ld [hl], $ff + push hl + call DisplayWildLocations + call GetMonName + hlcoord 1, 0 + call PlaceString + ld h, b + ld l, c + ld de, MonsNestText + call PlaceString + call WaitForTextScrollButtonPress + call ExitTownMap + pop hl + pop af + ld [hl], a + ret + +MonsNestText: + db "'s NEST@" + +LoadTownMap_Fly:: + call ClearSprites + call LoadTownMap + ld a, $1 + ldh [hJoy7], a + call LoadPlayerSpriteGraphics + call LoadFontTilePatterns + ld de, BirdSprite + ld b, BANK(BirdSprite) + ld c, $c + ld hl, vSprites tile $04 + call CopyVideoData + ld de, TownMapUpArrow + ld hl, vChars1 tile $6d + lb bc, BANK(TownMapUpArrow), (TownMapUpArrowEnd - TownMapUpArrow) / $8 + call CopyVideoDataDouble + call BuildFlyLocationsList + ld hl, wUpdateSpritesEnabled + ld a, [hl] + push af + ld [hl], $ff + push hl + hlcoord 0, 0 + ld de, ToText + call PlaceString + ld a, [wCurMap] + ld b, $0 + call DrawPlayerOrBirdSprite + ld hl, wFlyLocationsList + decoord 18, 0 +.townMapFlyLoop + ld a, " " + ld [de], a + push hl + push hl + hlcoord 3, 0 + lb bc, 1, 15 + call ClearScreenArea + pop hl + ld a, [hl] + ld b, $4 + call DrawPlayerOrBirdSprite ; draw bird sprite + hlcoord 3, 0 + ld de, wcd6d + call PlaceString + ld c, 15 + call DelayFrames + hlcoord 18, 0 + ld [hl], "▶" + hlcoord 19, 0 + ld [hl], "▼" + pop hl +.inputLoop + push hl + call DelayFrame + call JoypadLowSensitivity + ldh a, [hJoy5] + ld b, a + pop hl + and A_BUTTON | B_BUTTON | D_UP | D_DOWN + jr z, .inputLoop + bit 0, b + jr nz, .pressedA + ld a, SFX_TINK + call PlaySound + bit 6, b + jr nz, .pressedUp + bit 7, b + jr nz, .pressedDown + jr .pressedB +.pressedA + ld a, SFX_HEAL_AILMENT + call PlaySound + ld a, [hl] + ld [wDestinationMap], a + ld hl, wd732 + set 3, [hl] + inc hl + set 7, [hl] +.pressedB + xor a + ld [wTownMapSpriteBlinkingEnabled], a + ldh [hJoy7], a + call GBPalWhiteOutWithDelay3 + pop hl + pop af + ld [hl], a + ret +.pressedUp + decoord 18, 0 + inc hl + ld a, [hl] + cp $ff + jr z, .wrapToStartOfList + cp NOT_VISITED + jr z, .pressedUp ; skip past unvisited towns + jp .townMapFlyLoop +.wrapToStartOfList + ld hl, wFlyLocationsList + jp .townMapFlyLoop +.pressedDown + decoord 19, 0 + dec hl + ld a, [hl] + cp $ff + jr z, .wrapToEndOfList + cp NOT_VISITED + jr z, .pressedDown ; skip past unvisited towns + jp .townMapFlyLoop +.wrapToEndOfList + ld hl, wFlyLocationsList + NUM_CITY_MAPS + jr .pressedDown + +ToText: + db "To@" + +BuildFlyLocationsList: + ld hl, wFlyLocationsList - 1 + ld [hl], $ff + inc hl + ld a, [wTownVisitedFlag] + ld e, a + ld a, [wTownVisitedFlag + 1] + ld d, a + lb bc, 0, NUM_CITY_MAPS +.loop + srl d + rr e + ld a, NOT_VISITED + jr nc, .notVisited + ld a, b ; store the map number of the town if it has been visited +.notVisited + ld [hl], a + inc hl + inc b + dec c + jr nz, .loop + ld [hl], $ff + ret + +TownMapUpArrow: + INCBIN "gfx/town_map/up_arrow.1bpp" +TownMapUpArrowEnd: + +LoadTownMap: + call GBPalWhiteOutWithDelay3 + call ClearScreen + call UpdateSprites + hlcoord 0, 0 + lb bc, $12, $12 + call TextBoxBorder + call DisableLCD + ld hl, WorldMapTileGraphics + ld de, vChars2 tile $60 + ld bc, WorldMapTileGraphicsEnd - WorldMapTileGraphics + ld a, BANK(WorldMapTileGraphics) + call FarCopyData + ld hl, MonNestIcon + ld de, vSprites tile $04 + ld bc, MonNestIconEnd - MonNestIcon + ld a, BANK(MonNestIcon) + call FarCopyDataDouble + hlcoord 0, 0 + ld de, CompressedMap +.nextTile + ld a, [de] + and a + jr z, .done + ld b, a + and $f + ld c, a + ld a, b + swap a + and $f + add $60 +.writeRunLoop + ld [hli], a + dec c + jr nz, .writeRunLoop + inc de + jr .nextTile +.done + call EnableLCD + ld b, SET_PAL_TOWN_MAP + call RunPaletteCommand + call Delay3 + call GBPalNormal + xor a + ld [wAnimCounter], a + inc a + ld [wTownMapSpriteBlinkingEnabled], a + ret + +CompressedMap: + INCBIN "gfx/town_map/town_map.rle" + +ExitTownMap: +; clear town map graphics data and load usual graphics data + xor a + ld [wTownMapSpriteBlinkingEnabled], a + call GBPalWhiteOut + call ClearScreen + call ClearSprites + call LoadPlayerSpriteGraphics + call LoadFontTilePatterns + call UpdateSprites + jp RunDefaultPaletteCommand + +DrawPlayerOrBirdSprite: +; a = map number +; b = OAM base tile + push af + ld a, b + ld [wOAMBaseTile], a + pop af + ld de, wTownMapCoords + call LoadTownMapEntry + ld a, [de] + push hl + call TownMapCoordsToOAMCoords + call WritePlayerOrBirdSpriteOAM + pop hl + ld de, wcd6d +.loop + ld a, [hli] + ld [de], a + inc de + cp "@" + jr nz, .loop + ld hl, wOAMBuffer + ld de, wTileMapBackup + ld bc, $a0 + jp CopyData + +DisplayWildLocations: + farcall FindWildLocationsOfMon + call ZeroOutDuplicatesInList + ld hl, wOAMBuffer + ld de, wTownMapCoords +.loop + ld a, [de] + cp $ff + jr z, .exitLoop + and a + jr z, .nextEntry + push hl + call LoadTownMapEntry + pop hl + ld a, [de] + cp $19 ; Cerulean Cave's coordinates + jr z, .nextEntry ; skip Cerulean Cave + call TownMapCoordsToOAMCoords + ld a, $4 ; nest icon tile no. + ld [hli], a + xor a + ld [hli], a +.nextEntry + inc de + jr .loop +.exitLoop + ld a, l + and a ; were any OAM entries written? + jr nz, .drawPlayerSprite +; if no OAM entries were written, print area unknown text + hlcoord 1, 7 + lb bc, 2, 15 + call TextBoxBorder + hlcoord 2, 9 + ld de, AreaUnknownText + call PlaceString + jr .done +.drawPlayerSprite + ld a, [wCurMap] + ld b, $0 + call DrawPlayerOrBirdSprite +.done + ld hl, wOAMBuffer + ld de, wTileMapBackup + ld bc, $a0 + jp CopyData + +AreaUnknownText: + db " AREA UNKNOWN@" + +TownMapCoordsToOAMCoords: +; in: lower nybble of a = x, upper nybble of a = y +; out: b and [hl] = (y * 8) + 24, c and [hl+1] = (x * 8) + 24 + push af + and $f0 + srl a + add 24 + ld b, a + ld [hli], a + pop af + and $f + swap a + srl a + add 24 + ld c, a + ld [hli], a + ret + +WritePlayerOrBirdSpriteOAM: + ld a, [wOAMBaseTile] + and a + ld hl, wOAMBuffer + $90 ; for player sprite + jr z, WriteTownMapSpriteOAM + ld hl, wOAMBuffer + $80 ; for bird sprite + +WriteTownMapSpriteOAM: + push hl + +; Subtract 4 from c (X coord) and 4 from b (Y coord). However, the carry from c +; is added to b, so the net result is that only 3 is subtracted from b. + lb hl, -4, -4 + add hl, bc + + ld b, h + ld c, l + pop hl + +WriteAsymmetricMonPartySpriteOAM: +; Writes 4 OAM blocks for a helix mon party sprite, since it does not have +; a vertical line of symmetry. + lb de, 2, 2 +.loop + push de + push bc +.innerLoop + ld a, b + ld [hli], a + ld a, c + ld [hli], a + ld a, [wOAMBaseTile] + ld [hli], a + inc a + ld [wOAMBaseTile], a + xor a + ld [hli], a + inc d + ld a, 8 + add c + ld c, a + dec e + jr nz, .innerLoop + pop bc + pop de + ld a, 8 + add b + ld b, a + dec d + jr nz, .loop + ret + +WriteSymmetricMonPartySpriteOAM: +; Writes 4 OAM blocks for a mon party sprite other than a helix. All the +; sprites other than the helix one have a vertical line of symmetry which allows +; the X-flip OAM bit to be used so that only 2 rather than 4 tile patterns are +; needed. + xor a + ld [wSymmetricSpriteOAMAttributes], a + lb de, 2, 2 +.loop + push de + push bc +.innerLoop + ld a, b + ld [hli], a ; Y + ld a, c + ld [hli], a ; X + ld a, [wOAMBaseTile] + ld [hli], a ; tile + ld a, [wSymmetricSpriteOAMAttributes] + ld [hli], a ; attributes + xor (1 << OAM_X_FLIP) + ld [wSymmetricSpriteOAMAttributes], a + inc d + ld a, 8 + add c + ld c, a + dec e + jr nz, .innerLoop + pop bc + pop de + push hl + ld hl, wOAMBaseTile + inc [hl] + inc [hl] + pop hl + ld a, 8 + add b + ld b, a + dec d + jr nz, .loop + ret + +ZeroOutDuplicatesInList: +; replace duplicate bytes in the list of wild pokemon locations with 0 + ld de, wBuffer +.loop + ld a, [de] + inc de + cp $ff + ret z + ld c, a + ld l, e + ld h, d +.zeroDuplicatesLoop + ld a, [hl] + cp $ff + jr z, .loop + cp c + jr nz, .skipZeroing + xor a + ld [hl], a +.skipZeroing + inc hl + jr .zeroDuplicatesLoop + +LoadTownMapEntry: +; in: a = map number +; out: lower nybble of [de] = x, upper nybble of [de] = y, hl = address of name + cp FIRST_INDOOR_MAP + jr c, .external + ld bc, 4 + ld hl, InternalMapEntries +.loop + cp [hl] + jr c, .foundEntry + add hl, bc + jr .loop +.foundEntry + inc hl + jr .readEntry +.external + ld hl, ExternalMapEntries + ld c, a + ld b, 0 + add hl, bc + add hl, bc + add hl, bc +.readEntry + ld a, [hli] + ld [de], a + ld a, [hli] + ld h, [hl] + ld l, a + ret + +INCLUDE "data/maps/town_map_entries.asm" + +INCLUDE "data/maps/names.asm" + +MonNestIcon: + INCBIN "gfx/town_map/mon_nest_icon.1bpp" +MonNestIconEnd: + +TownMapSpriteBlinkingAnimation:: + ld a, [wAnimCounter] + inc a + cp 25 + jr z, .hideSprites + cp 50 + jr nz, .done +; show sprites when the counter reaches 50 + ld hl, wTileMapBackup + ld de, wOAMBuffer + ld bc, $90 + call CopyData + xor a + jr .done +.hideSprites + ld hl, wOAMBuffer + ld b, $24 + ld de, $4 +.hideSpritesLoop + ld [hl], $a0 + add hl, de + dec b + jr nz, .hideSpritesLoop + ld a, 25 +.done + ld [wAnimCounter], a + jp DelayFrame diff --git a/engine/joypad.asm b/engine/joypad.asm index 4126568c8..06a15e4e9 100644 --- a/engine/joypad.asm +++ b/engine/joypad.asm @@ -2,34 +2,34 @@ ReadJoypad_:: ; Poll joypad input. ; Unlike the hardware register, button ; presses are indicated by a set bit. - ld a, [hDisableJoypadPolling] + ldh a, [hDisableJoypadPolling] and a ret nz ld a, 1 << 5 ; select direction keys ;ld c, 0 - ld [rJOYP], a - ld a, [rJOYP] - ld a, [rJOYP] + ldh [rJOYP], a + ldh a, [rJOYP] + ldh a, [rJOYP] cpl and %1111 swap a ld b, a ld a, 1 << 4 ; select button keys - ld [rJOYP], a - rept 6 - ld a, [rJOYP] - endr + ldh [rJOYP], a + REPT 6 + ldh a, [rJOYP] + ENDR cpl and %1111 or b - ld [hJoyInput], a + ldh [hJoyInput], a ld a, 1 << 4 + 1 << 5 ; deselect keys - ld [rJOYP], a + ldh [rJOYP], a ret @@ -37,30 +37,30 @@ _Joypad:: ; hJoyReleased: (hJoyLast ^ hJoyInput) & hJoyLast ; hJoyPressed: (hJoyLast ^ hJoyInput) & hJoyInput - ld a, [hJoyInput] - ld b,a + ldh a, [hJoyInput] + ld b, a and $4F cp A_BUTTON + B_BUTTON + SELECT + START ; soft reset jp z, TrySoftReset - ld a, [hJoyLast] + ldh a, [hJoyLast] ld e, a xor b ld d, a and e - ld [hJoyReleased], a + ldh [hJoyReleased], a ld a, d and b - ld [hJoyPressed], a + ldh [hJoyPressed], a ld a, b - ld [hJoyLast], a + ldh [hJoyLast], a ld a, [wd730] bit 5, a jr nz, DiscardButtonPresses - ld a, [hJoyLast] - ld [hJoyHeld], a + ldh a, [hJoyLast] + ldh [hJoyHeld], a ld a, [wJoyIgnore] and a @@ -68,19 +68,19 @@ _Joypad:: cpl ld b, a - ld a, [hJoyHeld] + ldh a, [hJoyHeld] and b - ld [hJoyHeld], a - ld a, [hJoyPressed] + ldh [hJoyHeld], a + ldh a, [hJoyPressed] and b - ld [hJoyPressed], a + ldh [hJoyPressed], a ret DiscardButtonPresses: xor a - ld [hJoyHeld], a - ld [hJoyPressed], a - ld [hJoyReleased], a + ldh [hJoyHeld], a + ldh [hJoyPressed], a + ldh [hJoyReleased], a ret TrySoftReset: @@ -88,7 +88,7 @@ TrySoftReset: ; deselect (redundant) ld a, $30 - ld [rJOYP], a + ldh [rJOYP], a ld hl, hSoftReset dec [hl] diff --git a/engine/cable_club.asm b/engine/link/cable_club.asm similarity index 94% rename from engine/cable_club.asm rename to engine/link/cable_club.asm index a8dc5d8d2..c75ab200e 100755 --- a/engine/cable_club.asm +++ b/engine/link/cable_club.asm @@ -9,10 +9,10 @@ CableClub_DoBattleOrTrade: call LoadFontTilePatterns call LoadHpBarAndStatusTilePatterns call LoadTrainerInfoTextBoxTiles - coord hl, 3, 8 + hlcoord 3, 8 lb bc, 2, 12 call CableClub_TextBoxBorder - coord hl, 4, 10 + hlcoord 4, 10 ld de, PleaseWaitString call PlaceString ld hl, wPlayerNumHits @@ -101,26 +101,26 @@ CableClub_DoBattleOrTradeAgain: ld a, SERIAL_PATCH_LIST_PART_TERMINATOR ld [de], a ; end of part 2 call Serial_SyncAndExchangeNybble - ld a, [hSerialConnectionStatus] + ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK jr nz, .skipSendingTwoZeroBytes ; if using internal clock ; send two zero bytes for syncing purposes? call Delay3 xor a - ld [hSerialSendData], a + ldh [hSerialSendData], a ld a, START_TRANSFER_INTERNAL_CLOCK - ld [rSC], a + ldh [rSC], a call DelayFrame xor a - ld [hSerialSendData], a + ldh [hSerialSendData], a ld a, START_TRANSFER_INTERNAL_CLOCK - ld [rSC], a + ldh [rSC], a .skipSendingTwoZeroBytes call Delay3 call StopAllMusic ld a, (1 << SERIAL) - ld [rIE], a + ldh [rIE], a ld hl, wSerialRandomNumberListBlock ld de, wSerialOtherGameboyRandomNumberListBlock ld bc, $11 @@ -138,8 +138,8 @@ CableClub_DoBattleOrTradeAgain: ld bc, $c8 call Serial_ExchangeBytes ld a, (1 << SERIAL) | (1 << TIMER) | (1 << VBLANK) - ld [rIE], a - ld a, [hSerialConnectionStatus] + ldh [rIE], a + ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK jr z, .skipCopyingRandomNumberList ; the list generated by the gameboy clocking the connection is used by both gameboys ld hl, wSerialOtherGameboyRandomNumberListBlock @@ -253,14 +253,14 @@ CableClub_DoBattleOrTradeAgain: ld hl, wEnemyMons + (SERIAL_PREAMBLE_BYTE - 1) dec c jr nz, .unpatchEnemyMonsLoop - ld a, wEnemyMonOT % $100 + ld a, LOW(wEnemyMonOT) ld [wUnusedCF8D], a - ld a, wEnemyMonOT / $100 + ld a, HIGH(wEnemyMonOT) ld [wUnusedCF8D + 1], a xor a ld [wTradeCenterPointerTableIndex], a call StopAllMusic - ld a, [hSerialConnectionStatus] + ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK ld c, 66 call z, DelayFrames ; delay if using internal clock @@ -271,7 +271,7 @@ CableClub_DoBattleOrTradeAgain: jr nz, .trading ld a, LINK_STATE_BATTLING ld [wLinkState], a - ld a, OPP_SONY1 + ld a, OPP_RIVAL1 ld [wCurOpponent], a call ClearScreen call Delay3 @@ -346,10 +346,10 @@ TradeCenter_SelectMon: ld a, 1 ld [wTopMenuItemX], a .enemyMonMenu_HandleInput - ld hl, hFlags_0xFFFA + ld hl, hFlagsFFFA set 1, [hl] call HandleMenuInput - ld hl, hFlags_0xFFFA + ld hl, hFlagsFFFA res 1, [hl] and a jp z, .getNewInput @@ -367,7 +367,7 @@ TradeCenter_SelectMon: .displayEnemyMonStats ld a, INIT_ENEMYOT_LIST ld [wInitListType], a - callab InitList ; the list isn't used + callfar InitList ; the list isn't used ld hl, wEnemyMons call TradeCenter_DisplayStats jp .getNewInput @@ -407,14 +407,14 @@ TradeCenter_SelectMon: ld [wTopMenuItemY], a ld a, 1 ld [wTopMenuItemX], a - coord hl, 1, 1 + hlcoord 1, 1 lb bc, 6, 1 call ClearScreenArea .playerMonMenu_HandleInput - ld hl, hFlags_0xFFFA + ld hl, hFlagsFFFA set 1, [hl] call HandleMenuInput - ld hl, hFlags_0xFFFA + ld hl, hFlagsFFFA res 1, [hl] and a ; was anything pressed? jr nz, .playerMonMenu_SomethingPressed @@ -426,7 +426,7 @@ TradeCenter_SelectMon: ; unreachable code ld a, INIT_PLAYEROT_LIST ld [wInitListType], a - callab InitList ; the list isn't used + callfar InitList ; the list isn't used call TradeCenter_DisplayStats jp .getNewInput .playerMonMenu_ANotPressed @@ -472,10 +472,10 @@ TradeCenter_SelectMon: dec a .displayStatsTradeMenu push af - coord hl, 0, 14 + hlcoord 0, 14 lb bc, 2, 18 call CableClub_TextBoxBorder - coord hl, 2, 16 + hlcoord 2, 16 ld de, .statsTrade call PlaceString xor a @@ -487,7 +487,7 @@ TradeCenter_SelectMon: ld [wTopMenuItemY], a .selectStatsMenuItem ld a, " " - Coorda 11, 16 + ldcoord_a 11, 16 ld a, D_RIGHT | B_BUTTON | A_BUTTON ld [wMenuWatchedKeys], a ld a, 1 @@ -504,7 +504,7 @@ TradeCenter_SelectMon: jp .playerMonMenu .selectTradeMenuItem ld a, " " - Coorda 1, 16 + ldcoord_a 1, 16 ld a, D_LEFT | B_BUTTON | A_BUTTON ld [wMenuWatchedKeys], a ld a, 11 @@ -520,7 +520,7 @@ TradeCenter_SelectMon: ld [wCurrentMenuItem], a ld a, INIT_PLAYEROT_LIST ld [wInitListType], a - callab InitList ; the list isn't used + callfar InitList ; the list isn't used call TradeCenter_DisplayStats call LoadScreenTilesFromBuffer1 jp .playerMonMenu @@ -555,10 +555,10 @@ TradeCenter_SelectMon: ld [hl], a .cancelMenuItem_Loop ld a, "▶" ; filled arrow cursor - Coorda 1, 16 + ldcoord_a 1, 16 .cancelMenuItem_JoypadLoop call JoypadLowSensitivity - ld a, [hJoy5] + ldh a, [hJoy5] and a ; pressed anything? jr z, .cancelMenuItem_JoypadLoop bit 0, a ; A button pressed? @@ -567,14 +567,14 @@ TradeCenter_SelectMon: jr z, .cancelMenuItem_JoypadLoop ; if Up pressed ld a, " " - Coorda 1, 16 + ldcoord_a 1, 16 ld a, [wPartyCount] dec a ld [wCurrentMenuItem], a jp .playerMonMenu .cancelMenuItem_APressed ld a, "▷" ; unfilled arrow cursor - Coorda 1, 16 + ldcoord_a 1, 16 ld a, $f ld [wSerialExchangeNybbleSendData], a call Serial_PrintWaitingTextAndSyncAndExchangeNybble @@ -595,7 +595,7 @@ ReturnToCableClubRoom: dec a ld [wDestinationWarpID], a call LoadMapData - callba ClearVariablesOnEnterMap + farcall ClearVariablesOnEnterMap pop hl pop af ld [hl], a @@ -603,14 +603,14 @@ ReturnToCableClubRoom: ret TradeCenter_DrawCancelBox: - coord hl, 11, 15 + hlcoord 11, 15 ld a, $7e ld bc, 2 * SCREEN_WIDTH + 9 call FillMemory - coord hl, 0, 15 + hlcoord 0, 15 lb bc, 1, 9 call CableClub_TextBoxBorder - coord hl, 2, 16 + hlcoord 2, 16 ld de, CancelTextString jp PlaceString @@ -619,7 +619,7 @@ CancelTextString: TradeCenter_PlaceSelectedEnemyMonMenuCursor: ld a, [wSerialSyncAndExchangeNybbleReceiveData] - coord hl, 1, 9 + hlcoord 1, 9 ld bc, SCREEN_WIDTH call AddNTimes ld [hl], "▷" ; cursor @@ -639,22 +639,22 @@ TradeCenter_DisplayStats: jp TradeCenter_DrawCancelBox TradeCenter_DrawPartyLists: - coord hl, 0, 0 + hlcoord 0, 0 lb bc, 6, 18 call CableClub_TextBoxBorder - coord hl, 0, 8 + hlcoord 0, 8 lb bc, 6, 18 call CableClub_TextBoxBorder - coord hl, 5, 0 + hlcoord 5, 0 ld de, wPlayerName call PlaceString - coord hl, 5, 8 + hlcoord 5, 8 ld de, wLinkEnemyTrainerName call PlaceString - coord hl, 2, 1 + hlcoord 2, 1 ld de, wPartySpecies call TradeCenter_PrintPartyListNames - coord hl, 2, 9 + hlcoord 2, 9 ld de, wEnemyPartyMons ; fall through @@ -670,7 +670,7 @@ TradeCenter_PrintPartyListNames: push de push hl ld a, c - ld [$ff95], a + ldh [hPastLeadingZeros], a call GetMonName pop hl call PlaceString @@ -691,7 +691,7 @@ TradeCenter_Trade: ld [wSerialExchangeNybbleReceiveData], a ld [wMenuWatchMovingOutOfBounds], a ld [wMenuJoypadPollCount], a - coord hl, 0, 12 + hlcoord 0, 12 lb bc, 4, 18 call CableClub_TextBoxBorder ld a, [wTradingWhichPlayerMon] @@ -715,10 +715,10 @@ TradeCenter_Trade: ld [wd11e], a call GetMonName ld hl, WillBeTradedText - coord bc, 1, 14 + bccoord 1, 14 call TextCommandProcessor call SaveScreenTilesToBuffer1 - coord hl, 10, 7 + hlcoord 10, 7 lb bc, 8, 11 ld a, TRADE_CANCEL_MENU ld [wTwoOptionMenuID], a @@ -732,10 +732,10 @@ TradeCenter_Trade: ; if trade cancelled ld a, $1 ld [wSerialExchangeNybbleSendData], a - coord hl, 0, 12 + hlcoord 0, 12 lb bc, 4, 18 call CableClub_TextBoxBorder - coord hl, 1, 14 + hlcoord 1, 14 ld de, TradeCanceled call PlaceString call Serial_PrintWaitingTextAndSyncAndExchangeNybble @@ -748,10 +748,10 @@ TradeCenter_Trade: dec a ; did the other person cancel? jr nz, .doTrade ; if the other person cancelled - coord hl, 0, 12 + hlcoord 0, 12 lb bc, 4, 18 call CableClub_TextBoxBorder - coord hl, 1, 14 + hlcoord 1, 14 ld de, TradeCanceled call PlaceString jp .tradeCancelled @@ -842,7 +842,7 @@ TradeCenter_Trade: call LoadHpBarAndStatusTilePatterns xor a ld [wUnusedCC5B], a - ld a, [hSerialConnectionStatus] + ldh a, [hSerialConnectionStatus] cp USING_EXTERNAL_CLOCK jr z, .usingExternalClock predef InternalClockTradeAnim @@ -850,7 +850,7 @@ TradeCenter_Trade: .usingExternalClock predef ExternalClockTradeAnim .tradeCompleted - callab TryEvolvingMon + callfar TryEvolvingMon call ClearScreen call LoadTrainerInfoTextBoxTiles call Serial_PrintWaitingTextAndSyncAndExchangeNybble @@ -859,10 +859,10 @@ TradeCenter_Trade: call Delay3 ld b, $9 call RunPaletteCommand - coord hl, 0, 12 + hlcoord 0, 12 lb bc, 4, 18 call CableClub_TextBoxBorder - coord hl, 1, 14 + hlcoord 1, 14 ld de, TradeCompleted call PlaceString predef SaveSAVtoSRAM2 @@ -879,8 +879,8 @@ TradeCenter_Trade: jp CallCurrentTradeCenterFunction WillBeTradedText: - TX_FAR _WillBeTradedText - db "@" + text_far _WillBeTradedText + text_end TradeCompleted: db "Trade completed!@" @@ -901,7 +901,7 @@ CableClub_Run: jr z, .doBattleOrTrade cp LINK_STATE_RESET ; this is never used ret nz - predef EmptyFunc3 + predef EmptyFunc jp Init .doBattleOrTrade call CableClub_DoBattleOrTrade @@ -910,7 +910,7 @@ CableClub_Run: ld [wTilesetGfxPtr + 1], a ld a, l ld [wTilesetGfxPtr], a - ld a, Bank(Club_GFX) + ld a, BANK(Club_GFX) ld [wTilesetBank], a ld hl, Club_Coll ld a, h @@ -921,7 +921,7 @@ CableClub_Run: ld [wGrassRate], a inc a ; LINK_STATE_IN_CABLE_CLUB ld [wLinkState], a - ld [hJoy5], a + ldh [hJoy5], a ld a, 10 ld [wAudioFadeOutControl], a ld a, BANK(Music_Celadon) @@ -930,7 +930,7 @@ CableClub_Run: ld [wNewSoundID], a jp PlaySound -EmptyFunc3: +EmptyFunc: ret Diploma_TextBoxBorder: @@ -979,6 +979,6 @@ CableClub_DrawHorizontalLine: LoadTrainerInfoTextBoxTiles: ld de, TrainerInfoTextBoxTileGraphics - ld hl, vChars2 + $760 + ld hl, vChars2 tile $76 lb bc, BANK(TrainerInfoTextBoxTileGraphics), (TrainerInfoTextBoxTileGraphicsEnd - TrainerInfoTextBoxTileGraphics) / $10 jp CopyVideoData diff --git a/engine/overworld/cable_club_npc.asm b/engine/link/cable_club_npc.asm similarity index 83% rename from engine/overworld/cable_club_npc.asm rename to engine/link/cable_club_npc.asm index 12ce64a40..4d0a0a8ab 100755 --- a/engine/overworld/cable_club_npc.asm +++ b/engine/link/cable_club_npc.asm @@ -1,4 +1,4 @@ -CableClubNPC: +CableClubNPC:: ld hl, CableClubNPCWelcomeText call PrintText call CheckPikachuFollowingPlayer @@ -18,27 +18,27 @@ CableClubNPC: ld a, 90 ld [wLinkTimeoutCounter], a .establishConnectionLoop - ld a, [hSerialConnectionStatus] + ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK jr z, .establishedConnection cp USING_EXTERNAL_CLOCK jr z, .establishedConnection ld a, CONNECTION_NOT_ESTABLISHED - ld [hSerialConnectionStatus], a + ldh [hSerialConnectionStatus], a ld a, ESTABLISH_CONNECTION_WITH_EXTERNAL_CLOCK - ld [rSB], a + ldh [rSB], a xor a - ld [hSerialReceiveData], a + ldh [hSerialReceiveData], a ld a, START_TRANSFER_EXTERNAL_CLOCK - ld [rSC], a + ldh [rSC], a ld a, [wLinkTimeoutCounter] dec a ld [wLinkTimeoutCounter], a jr z, .failedToEstablishConnection ld a, ESTABLISH_CONNECTION_WITH_INTERNAL_CLOCK - ld [rSB], a + ldh [rSB], a ld a, START_TRANSFER_INTERNAL_CLOCK - ld [rSC], a + ldh [rSC], a call DelayFrame jr .establishConnectionLoop .establishedConnection @@ -57,7 +57,7 @@ CableClubNPC: ld a, [wCurrentMenuItem] and a jr nz, .choseNo - callab SaveSAVtoSRAM + callfar SaveSAVtoSRAM call WaitForSoundToFinish ld a, SFX_SAVE call PlaySoundWaitForCurrent @@ -68,7 +68,7 @@ CableClubNPC: ld [hli], a xor a ld [hl], a - ld [hSerialReceivedNewData], a + ldh [hSerialReceivedNewData], a ld [wSerialExchangeNybbleSendData], a call Serial_SyncAndExchangeNybble ld hl, wUnknownSerialCounter @@ -112,7 +112,7 @@ CableClubNPC: ld [hl], a ld a, [wLetterPrintingDelayFlags] push af - callab LinkMenu + callfar LinkMenu pop af ld [wLetterPrintingDelayFlags], a ret @@ -167,42 +167,42 @@ Serial_SyncAndExchangeNybbleDouble: ret CableClubNPCAreaReservedFor2FriendsLinkedByCableText: - TX_FAR _CableClubNPCAreaReservedFor2FriendsLinkedByCableText - db "@" + text_far _CableClubNPCAreaReservedFor2FriendsLinkedByCableText + text_end CableClubNPCWelcomeText: - TX_FAR _CableClubNPCWelcomeText - db "@" + text_far _CableClubNPCWelcomeText + text_end CableClubNPCPleaseApplyHereHaveToSaveText: - TX_FAR _CableClubNPCPleaseApplyHereHaveToSaveText - db "@" + text_far _CableClubNPCPleaseApplyHereHaveToSaveText + text_end CableClubNPCPleaseWaitText: - TX_FAR _CableClubNPCPleaseWaitText - TX_DELAY - db "@" + text_far _CableClubNPCPleaseWaitText + text_pause + text_end CableClubNPCLinkClosedBecauseOfInactivityText: - TX_FAR _CableClubNPCLinkClosedBecauseOfInactivityText - db "@" + text_far _CableClubNPCLinkClosedBecauseOfInactivityText + text_end CableClubNPCPleaseComeAgainText: - TX_FAR _CableClubNPCPleaseComeAgainText - db "@" + text_far _CableClubNPCPleaseComeAgainText + text_end CableClubNPCMakingPreparationsText: - TX_FAR _CableClubNPCMakingPreparationsText - db "@" + text_far _CableClubNPCMakingPreparationsText + text_end CloseLinkConnection: call Delay3 ld a, CONNECTION_NOT_ESTABLISHED - ld [hSerialConnectionStatus], a + ldh [hSerialConnectionStatus], a ld a, ESTABLISH_CONNECTION_WITH_EXTERNAL_CLOCK - ld [rSB], a + ldh [rSB], a xor a - ld [hSerialReceiveData], a + ldh [hSerialReceiveData], a ld a, START_TRANSFER_EXTERNAL_CLOCK - ld [rSC], a + ldh [rSC], a ret diff --git a/engine/print_waiting_text.asm b/engine/link/print_waiting_text.asm similarity index 82% rename from engine/print_waiting_text.asm rename to engine/link/print_waiting_text.asm index bd2180a1f..98a449708 100644 --- a/engine/print_waiting_text.asm +++ b/engine/link/print_waiting_text.asm @@ -1,5 +1,5 @@ -PrintWaitingText: - coord hl, 3, 10 +PrintWaitingText:: + hlcoord 3, 10 lb bc, 1, 11 ld a, [wIsInBattle] and a @@ -9,7 +9,7 @@ PrintWaitingText: .asm_4b9a call CableClub_TextBoxBorder .asm_4b9d - coord hl, 4, 11 + hlcoord 4, 11 ld de, WaitingText call PlaceString ld c, 50 diff --git a/engine/math/bcd.asm b/engine/math/bcd.asm new file mode 100644 index 000000000..92bf6f179 --- /dev/null +++ b/engine/math/bcd.asm @@ -0,0 +1,218 @@ +; divide hMoney by hDivideBCDDivisor +; return output in hDivideBCDQuotient (same as hDivideBCDDivisor) +; used only to halve player money upon losing a fight +DivideBCDPredef:: +DivideBCDPredef2:: +DivideBCDPredef3:: ; only used function +DivideBCDPredef4:: + call GetPredefRegisters + +DivideBCD:: + xor a + ldh [hDivideBCDBuffer], a + ldh [hDivideBCDBuffer+1], a + ldh [hDivideBCDBuffer+2], a + ld d, $1 +.mulBy10Loop +; multiply the divisor by 10 until the leading digit is nonzero +; to set up the standard long division algorithm + ldh a, [hDivideBCDDivisor] + and $f0 + jr nz, .next + inc d + ldh a, [hDivideBCDDivisor] + swap a + and $f0 + ld b, a + ldh a, [hDivideBCDDivisor+1] + swap a + ldh [hDivideBCDDivisor+1], a + and $f + or b + ldh [hDivideBCDDivisor], a + ldh a, [hDivideBCDDivisor+1] + and $f0 + ld b, a + ldh a, [hDivideBCDDivisor+2] + swap a + ldh [hDivideBCDDivisor+2], a + and $f + or b + ldh [hDivideBCDDivisor+1], a + ldh a, [hDivideBCDDivisor+2] + and $f0 + ldh [hDivideBCDDivisor+2], a + jr .mulBy10Loop + +.next + push de + push de + call DivideBCD_getNextDigit + pop de + ld a, b + swap a + and $f0 + ldh [hDivideBCDBuffer], a + dec d + jr z, .next2 + push de + call DivideBCD_divDivisorBy10 + call DivideBCD_getNextDigit + pop de + ldh a, [hDivideBCDBuffer] + or b + ldh [hDivideBCDBuffer], a + dec d + jr z, .next2 + push de + call DivideBCD_divDivisorBy10 + call DivideBCD_getNextDigit + pop de + ld a, b + swap a + and $f0 + ldh [hDivideBCDBuffer+1], a + dec d + jr z, .next2 + push de + call DivideBCD_divDivisorBy10 + call DivideBCD_getNextDigit + pop de + ldh a, [hDivideBCDBuffer+1] + or b + ldh [hDivideBCDBuffer+1], a + dec d + jr z, .next2 + push de + call DivideBCD_divDivisorBy10 + call DivideBCD_getNextDigit + pop de + ld a, b + swap a + and $f0 + ldh [hDivideBCDBuffer+2], a + dec d + jr z, .next2 + push de + call DivideBCD_divDivisorBy10 + call DivideBCD_getNextDigit + pop de + ldh a, [hDivideBCDBuffer+2] + or b + ldh [hDivideBCDBuffer+2], a +.next2 + ldh a, [hDivideBCDBuffer] + ldh [hDivideBCDQuotient], a ; the same memory location as hDivideBCDDivisor + ldh a, [hDivideBCDBuffer+1] + ldh [hDivideBCDQuotient+1], a + ldh a, [hDivideBCDBuffer+2] + ldh [hDivideBCDQuotient+2], a + pop de + ld a, $6 + sub d + and a + ret z +.divResultBy10loop + push af + call DivideBCD_divDivisorBy10 + pop af + dec a + jr nz, .divResultBy10loop + ret + +DivideBCD_divDivisorBy10: + ldh a, [hDivideBCDDivisor+2] + swap a + and $f + ld b, a + ldh a, [hDivideBCDDivisor+1] + swap a + ldh [hDivideBCDDivisor+1], a + and $f0 + or b + ldh [hDivideBCDDivisor+2], a + ldh a, [hDivideBCDDivisor+1] + and $f + ld b, a + ldh a, [hDivideBCDDivisor] + swap a + ldh [hDivideBCDDivisor], a + and $f0 + or b + ldh [hDivideBCDDivisor+1], a + ldh a, [hDivideBCDDivisor] + and $f + ldh [hDivideBCDDivisor], a + ret + +DivideBCD_getNextDigit: + ld bc, $3 +.loop + ld de, hMoney ; the dividend + ld hl, hDivideBCDDivisor + push bc + call StringCmp + pop bc + ret c + inc b + ld de, hMoney + 2 ; since SubBCD works starting from the least significant digit + ld hl, hDivideBCDDivisor + 2 + push bc + call SubBCD + pop bc + jr .loop + + +AddBCDPredef:: + call GetPredefRegisters + +AddBCD:: + and a + ld b, c +.add + ld a, [de] + adc [hl] + daa + ld [de], a + dec de + dec hl + dec c + jr nz, .add + jr nc, .done + ld a, $99 + inc de +.fill + ld [de], a + inc de + dec b + jr nz, .fill +.done + ret + + +SubBCDPredef:: + call GetPredefRegisters + +SubBCD:: + and a + ld b, c +.sub + ld a, [de] + sbc [hl] + daa + ld [de], a + dec de + dec hl + dec c + jr nz, .sub + jr nc, .done + ld a, $00 + inc de +.fill + ld [de], a + inc de + dec b + jr nz, .fill + scf +.done + ret diff --git a/engine/math/multiply_divide.asm b/engine/math/multiply_divide.asm new file mode 100755 index 000000000..2fcda1588 --- /dev/null +++ b/engine/math/multiply_divide.asm @@ -0,0 +1,143 @@ +_Multiply:: + ld a, $8 + ld b, a + xor a + ldh [hProduct], a + ldh [hMultiplyBuffer], a + ldh [hMultiplyBuffer+1], a + ldh [hMultiplyBuffer+2], a + ldh [hMultiplyBuffer+3], a +.loop + ldh a, [hMultiplier] + srl a + ldh [hMultiplier], a ; (aliases: hDivisor, hMultiplier, hPowerOf10) + jr nc, .smallMultiplier + ldh a, [hMultiplyBuffer+3] + ld c, a + ldh a, [hMultiplicand+2] + add c + ldh [hMultiplyBuffer+3], a + ldh a, [hMultiplyBuffer+2] + ld c, a + ldh a, [hMultiplicand+1] + adc c + ldh [hMultiplyBuffer+2], a + ldh a, [hMultiplyBuffer+1] + ld c, a + ldh a, [hMultiplicand] ; (aliases: hMultiplicand) + adc c + ldh [hMultiplyBuffer+1], a + ldh a, [hMultiplyBuffer] + ld c, a + ldh a, [hProduct] ; (aliases: hProduct, hPastLeadingZeros, hQuotient) + adc c + ldh [hMultiplyBuffer], a +.smallMultiplier + dec b + jr z, .done + ldh a, [hMultiplicand+2] + sla a + ldh [hMultiplicand+2], a + ldh a, [hMultiplicand+1] + rl a + ldh [hMultiplicand+1], a + ldh a, [hMultiplicand] + rl a + ldh [hMultiplicand], a + ldh a, [hProduct] + rl a + ldh [hProduct], a + jr .loop +.done + ldh a, [hMultiplyBuffer+3] + ldh [hProduct+3], a + ldh a, [hMultiplyBuffer+2] + ldh [hProduct+2], a + ldh a, [hMultiplyBuffer+1] + ldh [hProduct+1], a + ldh a, [hMultiplyBuffer] + ldh [hProduct], a + ret + +_Divide:: + xor a + ldh [hDivideBuffer], a + ldh [hDivideBuffer+1], a + ldh [hDivideBuffer+2], a + ldh [hDivideBuffer+3], a + ldh [hDivideBuffer+4], a + ld a, $9 + ld e, a +.asm_37db3 + ldh a, [hDivideBuffer] + ld c, a + ldh a, [hDividend+1] ; (aliases: hMultiplicand) + sub c + ld d, a + ldh a, [hDivisor] ; (aliases: hDivisor, hMultiplier, hPowerOf10) + ld c, a + ldh a, [hDividend] ; (aliases: hProduct, hPastLeadingZeros, hQuotient) + sbc c + jr c, .asm_37dce + ldh [hDividend], a ; (aliases: hProduct, hPastLeadingZeros, hQuotient) + ld a, d + ldh [hDividend+1], a ; (aliases: hMultiplicand) + ldh a, [hDivideBuffer+4] + inc a + ldh [hDivideBuffer+4], a + jr .asm_37db3 +.asm_37dce + ld a, b + cp $1 + jr z, .asm_37e18 + ldh a, [hDivideBuffer+4] + sla a + ldh [hDivideBuffer+4], a + ldh a, [hDivideBuffer+3] + rl a + ldh [hDivideBuffer+3], a + ldh a, [hDivideBuffer+2] + rl a + ldh [hDivideBuffer+2], a + ldh a, [hDivideBuffer+1] + rl a + ldh [hDivideBuffer+1], a + dec e + jr nz, .asm_37e04 + ld a, $8 + ld e, a + ldh a, [hDivideBuffer] + ldh [hDivisor], a ; (aliases: hDivisor, hMultiplier, hPowerOf10) + xor a + ldh [hDivideBuffer], a + ldh a, [hDividend+1] ; (aliases: hMultiplicand) + ldh [hDividend], a ; (aliases: hProduct, hPastLeadingZeros, hQuotient) + ldh a, [hDividend+2] + ldh [hDividend+1], a ; (aliases: hMultiplicand) + ldh a, [hDividend+3] + ldh [hDividend+2], a +.asm_37e04 + ld a, e + cp $1 + jr nz, .asm_37e0a + dec b +.asm_37e0a + ldh a, [hDivisor] ; (aliases: hDivisor, hMultiplier, hPowerOf10) + srl a + ldh [hDivisor], a ; (aliases: hDivisor, hMultiplier, hPowerOf10) + ldh a, [hDivideBuffer] + rr a + ldh [hDivideBuffer], a + jr .asm_37db3 +.asm_37e18 + ldh a, [hDividend+1] ; (aliases: hMultiplicand) + ldh [hRemainder], a ; (aliases: hDivisor, hMultiplier, hPowerOf10) + ldh a, [hDivideBuffer+4] + ldh [hQuotient+3], a + ldh a, [hDivideBuffer+3] + ldh [hQuotient+2], a + ldh a, [hDivideBuffer+2] + ldh [hQuotient+1], a ; (aliases: hMultiplicand) + ldh a, [hDivideBuffer+1] + ldh [hDividend], a ; (aliases: hProduct, hPastLeadingZeros, hQuotient) + ret diff --git a/engine/math/random.asm b/engine/math/random.asm new file mode 100755 index 000000000..c8760157b --- /dev/null +++ b/engine/math/random.asm @@ -0,0 +1,13 @@ +Random_:: +; Generate a random 16-bit value. + ldh a, [rDIV] + ld b, a + ldh a, [hRandomAdd] + adc b + ldh [hRandomAdd], a + ldh a, [rDIV] + ld b, a + ldh a, [hRandomSub] + sbc b + ldh [hRandomSub], a + ret diff --git a/engine/menu/link_menu.asm b/engine/menu/link_menu.asm deleted file mode 100644 index 9bc28b312..000000000 --- a/engine/menu/link_menu.asm +++ /dev/null @@ -1,910 +0,0 @@ -Func_f531b:: - ld c,$14 - call DelayFrames - ld a,$1 - ld [wBuffer],a - xor a - ld [wUnknownSerialFlag_d499],a - coord hl, 0,0 - lb bc, 4, 5 - call TextBoxBorder - ld de,Text_f5791 - coord hl, 1,2 - call PlaceString - coord hl, 8,0 - lb bc, 8, 10 - call TextBoxBorder - coord hl, 10,2 - ld de,Text_f579c - call PlaceString - coord hl, 0,10 - lb bc, 6, 18 - call TextBoxBorder - call UpdateSprites - xor a - ld [wUnusedCD37],a - ld [wd72d],a - ld [wd11e],a - ld hl,wTopMenuItemY - ld a,$2 - ld [hli],a - ld a,$9 - ld [hli],a - xor a - ld [hli],a - inc hl - ld a,$3 - ld [hli],a - ld a,$3 - ld [hli],a - xor a - ld [hl],a -.asm_f5377 - call Func_f56bd - call HandleMenuInput - and $3 - add a - add a - ld b,a - ld a,[wCurrentMenuItem] - cp $3 - jr nz,.asm_f5390 - bit 2,b - jr z,.asm_f5390 - dec a - ld b,$8 -.asm_f5390 - add b - add $c0 - ld [wLinkMenuSelectionSendBuffer],a - ld [wLinkMenuSelectionSendBuffer+1],a -.asm_f5399 - ld hl,wLinkMenuSelectionSendBuffer - ld a,[hl] - ld [hSerialSendData],a - call Serial_ExchangeByte - push af - ld hl,wLinkMenuSelectionSendBuffer - ld a,[hl] - ld [hSerialSendData],a - call Serial_ExchangeByte - pop bc - cp b - jr nz,.asm_f5399 - and $f0 - cp $c0 - jr nz,.asm_f5399 - ld a,b - and $c - jr nz,.asm_f53c4 - ld a,[wLinkMenuSelectionSendBuffer] - and $c - jr z,.asm_f5377 - jr .asm_f53df -.asm_f53c4 - ld a,[wLinkMenuSelectionSendBuffer] - and $c - jr z,.asm_f53d1 - ld a,[hSerialConnectionStatus] - cp $2 - jr z,.asm_f53df -.asm_f53d1 - ld a,$1 - ld [wd11e],a - ld a,b - ld [wLinkMenuSelectionSendBuffer],a - and $3 - ld [wCurrentMenuItem],a -.asm_f53df - call DelayFrame - call DelayFrame - ld hl,wLinkMenuSelectionSendBuffer - ld a,[hl] - ld [hSerialSendData],a - call Serial_ExchangeByte - call Serial_ExchangeByte - ld b,$14 -.loop - call DelayFrame - call Serial_SendZeroByte - dec b - jr nz,.loop - ld b,$7f - ld c,$7f - ld d,$7f - ld e,$ec - ld a,[wLinkMenuSelectionSendBuffer] - bit 3,a - jr nz,.asm_f541a - ld b,e - ld e,c - ld a,[wCurrentMenuItem] - and a - jr z,.asm_f541a - ld c,b - ld b,d - dec a - jr z,.asm_f541a - ld d,c - ld c,b -.asm_f541a - ld a,b - Coorda 9,2 - ld a,c - Coorda 9,4 - ld a,d - Coorda 9,6 - ld a,e - Coorda 9,8 - ld c,40 - call DelayFrames - ld a,[wLinkMenuSelectionSendBuffer] - bit 3,a - jr nz,asm_f547f - ld a,[wCurrentMenuItem] - cp $3 - jr z,asm_f547f - inc a - ld [wUnknownSerialFlag_d499],a - ld a,[wCurrentMenuItem] - ld hl,PointerTable_f5488 - ld c,a - ld b,$0 - add hl,bc - add hl,bc - ld a,[hli] - ld h,[hl] - ld l,a - ld de,.returnaddress - push de - jp hl -.returnaddress - ld [wLinkMenuSelectionSendBuffer],a - xor a - ld [wUnknownSerialCounter],a - ld [wUnknownSerialCounter+1],a - call Serial_SyncAndExchangeNybble - ld a,[wLinkMenuSelectionSendBuffer] - and a - jr nz,asm_f547c - ld a, [wLinkMenuSelectionReceiveBuffer] - and a - jr nz, Func_f5476 - xor a - ld [wUnknownSerialCounter],a - ld [wUnknownSerialCounter+1],a - and a - ret - -Func_f5476:: - ld hl,ColosseumIneligibleText - call PrintText -asm_f547c:: - jp Func_f531b - -asm_f547f:: - xor a - ld [wUnknownSerialCounter],a - ld [wUnknownSerialCounter+1],a - scf - ret - -PointerTable_f5488:: - dw PokeCup - dw PikaCup - dw PetitCup - -PokeCup:: - ld hl,wPartyCount - ld a,[hli] - cp $3 - jp nz,NotThreeMonsInParty - ld b,$3 -.loop - ld a,[hli] - cp MEW - jp z,MewInParty - dec b - jr nz,.loop - dec hl - dec hl - cp [hl] ; is third mon second mon? - jp z,DuplicateSpecies - dec hl ; wPartySpecies - cp [hl] ; is third mon first mon? - jp z,DuplicateSpecies - ld a,[hli] - cp [hl] ; is first mon second mon? - jp z,DuplicateSpecies - ld a,[wPartyMon1Level] - cp 56 - jp nc,LevelAbove55 - cp 50 - jp c,LevelUnder50 - ld b,a - ld a,[wPartyMon2Level] - cp 56 - jp nc,LevelAbove55 - cp 50 - jp c,LevelUnder50 - ld c,a - ld a,[wPartyMon3Level] - cp 56 - jp nc,LevelAbove55 - cp 50 - jp c,LevelUnder50 - add b - add c - cp 156 - jp nc,CombinedLevelsGreaterThan155 - xor a - ret - -PikaCup:: - ld hl,wPartyCount - ld a,[hli] - cp $3 - jp nz,NotThreeMonsInParty - ld b,$3 -.loop - ld a,[hli] ; wPartySpecies - cp MEW - jp z,MewInParty - dec b - jr nz,.loop - dec hl - dec hl - cp [hl] ; is third mon second mon? - jp z,DuplicateSpecies - dec hl ; wPartySpecies - cp [hl] ; is third mon first mon? - jp z,DuplicateSpecies - ld a,[hli] - cp [hl] ; is first mon second mon? - jp z,DuplicateSpecies - ld a,[wPartyMon1Level] - cp 21 - jp nc,LevelAbove20 - cp 15 - jp c,LevelUnder15 - ld b,a - ld a,[wPartyMon2Level] - cp 21 - jp nc,LevelAbove20 - cp 15 - jp c,LevelUnder15 - ld c,a - ld a,[wPartyMon3Level] - cp 21 - jp nc,LevelAbove20 - cp 15 - jp c,LevelUnder15 - add b - add c - cp 51 - jp nc,CombinedLevelsAbove50 - xor a - ret - -PetitCup:: - ld hl,wPartyCount - ld a,[hli] - cp $3 - jp nz,NotThreeMonsInParty - ld b,$3 -.loop - ld a,[hli] - cp MEW - jp z,MewInParty - dec b - jr nz,.loop - dec hl - dec hl - cp [hl] ; is third mon second mon? - jp z,DuplicateSpecies - dec hl ; wPartySpecies - cp [hl] ; is third mon first mon? - jp z,DuplicateSpecies - ld a,[hli] - cp [hl] ; is first mon second mon? - jp z,DuplicateSpecies - dec hl - ld a,[hl] - ld [wcf91],a - push hl - callab Func_3b10f - pop hl - jp c,asm_f56ad - inc hl - ld a,[hl] - ld [wcf91],a - push hl - callab Func_3b10f - pop hl - jp c,asm_f56ad - inc hl - ld a,[hl] - ld [wcf91],a - push hl - callab Func_3b10f - pop hl - jp c,asm_f56ad - dec hl - dec hl - ld b,$3 -.bigloop - ld a,[hli] - push hl - push bc - push af - dec a - ld c,a - ld b,$0 - ld hl,PokedexEntryPointers - add hl,bc - add hl,bc - ld de,wcd6d - ld bc,$2 - ld a,BANK(PokedexEntryPointers) - call FarCopyData - ld hl,wcd6d - ld a,[hli] - ld h,[hl] - ld l,a - ld de,wcd6d - ld bc,$14 - ld a,BANK(PokedexEntryPointers) - call FarCopyData - ld hl,wcd6d -.loop2 - ld a,[hli] - cp "@" - jr nz,.loop2 - ld a,[hli] - cp $7 - jp nc,asm_f5689 - add a - add a - ld b,a - add a - add b - ld b,a - ld a,[hli] - add b - cp $51 - jp nc,asm_f5689 - ld a,[hli] - sub $b9 - ld a,[hl] - sbc $1 - jp nc,asm_f569b - pop af - pop bc - pop hl - dec b - jr nz,.bigloop - ld a,[wPartyMon1Level] - cp 31 - jp nc,LevelAbove30 - cp 25 - jp c,LevelUnder25 - ld b,a - ld a,[wPartyMon2Level] - cp 31 - jp nc,LevelAbove30 - cp 25 - jp c,LevelUnder25 - ld c,a - ld a,[wPartyMon3Level] - cp 31 - jp nc,LevelAbove30 - cp 25 - jp c,LevelUnder25 - add b - add c - cp 81 - jp nc,CombinedLevelsAbove80 - xor a - ret - -NotThreeMonsInParty:: - ld hl,Colosseum3MonsText - call PrintText - ld a,$1 - ret - -MewInParty:: - ld hl,ColosseumMewText - call PrintText - ld a,$2 - ret - -DuplicateSpecies:: - ld hl,ColosseumDifferentMonsText - call PrintText - ld a,$3 - ret - -LevelAbove55:: - ld hl,ColosseumMaxL55Text - call PrintText - ld a,$4 - ret - -LevelUnder50:: - ld hl,ColosseumMinL50Text - call PrintText - ld a,$5 - ret - -CombinedLevelsGreaterThan155:: - ld hl,ColosseumTotalL155Text - call PrintText - ld a,$6 - ret - -LevelAbove30:: - ld hl,ColosseumMaxL30Text - call PrintText - ld a,$7 - ret - -LevelUnder25:: - ld hl,ColosseumMinL25Text - call PrintText - ld a,$8 - ret - -CombinedLevelsAbove80:: - ld hl,ColosseumTotalL80Text - call PrintText - ld a,$9 - ret - -LevelAbove20:: - ld hl,ColosseumMaxL20Text - call PrintText - ld a,$a - ret - -LevelUnder15:: - ld hl,ColosseumMinL15Text - call PrintText - ld a,$b - ret - -CombinedLevelsAbove50:: - ld hl,ColosseumTotalL50Text - call PrintText - ld a,$c - ret - -asm_f5689:: - pop af - pop bc - pop hl - ld [wd11e],a - call GetMonName - ld hl,ColosseumHeightText - call PrintText - ld a,$d - ret - -asm_f569b:: - pop af - pop bc - pop hl - ld [wd11e],a - call GetMonName - ld hl,ColosseumWeightText - call PrintText - ld a,$e - ret - -asm_f56ad:: - ld a,[hl] - ld [wd11e],a - call GetMonName - ld hl,ColosseumEvolvedText - call PrintText - ld a,$f - ret - -Func_f56bd:: - xor a - ld [H_AUTOBGTRANSFERENABLED],a - coord hl, 1,11 - lb bc, 6, 18 - call ClearScreenArea - ld a,[wCurrentMenuItem] - cp $3 - jr nc,.asm_f56e6 - ld hl,PointerTable_f56ee - ld a,[wCurrentMenuItem] - ld c,a - ld b,$0 - add hl,bc - add hl,bc - ld a,[hli] - ld h,[hl] - ld l,a - ld d,h - ld e,l - coord hl, 1,12 - call PlaceString -.asm_f56e6 - call Delay3 - ld a,$1 - ld [H_AUTOBGTRANSFERENABLED],a - ret - -PointerTable_f56ee:: - dw Text_f56f4 - dw Text_f5728 - dw Text_f575b - -Text_f56f4:: - db "LVs of 3:50-55" - next "Sum of LVs:155 MAX" - next "MEW can't attend.@" - -Text_f5728:: - db "LVs of 3:15-20" - next "Sum of LVs:50 MAX" - next "MEW can't attend.@" - -Text_f575b:: - db "3 Basic .LV25-30" - next "Sum of LVs:80 MAX" - next "6′8″ and 44lb MAX@" - -Text_f5791:: - db "View" - next "Rules@" - -Text_f579c:: - db "# Cup" - next "Pika Cup" - next "Petit Cup" - next "CANCEL@" - -Colosseum3MonsText:: - TX_FAR _Colosseum3MonsText - db "@" - -ColosseumMewText:: - TX_FAR _ColosseumMewText - db "@" - -ColosseumDifferentMonsText:: - TX_FAR _ColosseumDifferentMonsText - db "@" - -ColosseumMaxL55Text:: - TX_FAR _ColosseumMaxL55Text - db "@" - -ColosseumMinL50Text:: - TX_FAR _ColosseumMinL50Text - db "@" - -ColosseumTotalL155Text:: - TX_FAR _ColosseumTotalL155Text - db "@" - -ColosseumMaxL30Text:: - TX_FAR _ColosseumMaxL30Text - db "@" - -ColosseumMinL25Text:: - TX_FAR _ColosseumMinL25Text - db "@" - -ColosseumTotalL80Text:: - TX_FAR _ColosseumTotalL80Text - db "@" - -ColosseumMaxL20Text:: - TX_FAR _ColosseumMaxL20Text - db "@" - -ColosseumMinL15Text:: - TX_FAR _ColosseumMinL15Text - db "@" - -ColosseumTotalL50Text:: - TX_FAR _ColosseumTotalL50Text - db "@" - -ColosseumHeightText:: - TX_FAR _ColosseumHeightText - db "@" - -ColosseumWeightText:: - TX_FAR _ColosseumWeightText - db "@" - -ColosseumEvolvedText:: - TX_FAR _ColosseumEvolvedText - db "@" - -ColosseumIneligibleText:: - TX_FAR _ColosseumIneligibleText - db "@" - -LinkMenu: - xor a - ld [wLetterPrintingDelayFlags], a - ld hl, wd72e - set 6, [hl] - ld hl, TextTerminator_f5a16 - call PrintText - call SaveScreenTilesToBuffer1 - ld hl, ColosseumWhereToText - call PrintText - coord hl, 5, 3 - lb bc, 8, 13 - call TextBoxBorder - call UpdateSprites - coord hl, 7, 5 - ld de, TradeCenterText - call PlaceString - xor a - ld [wUnusedCD37], a - ld [wd72d], a - ld [wd11e], a - ld hl, wTopMenuItemY - ld a, $5 - ld [hli], a - ld a, $6 - ld [hli], a - xor a - ld [hli], a - inc hl - ld a, $3 - ld [hli], a - ld [hli], a - xor a - ld [hl], a -.waitForInputLoop - call HandleMenuInput - and A_BUTTON | B_BUTTON - add a - add a - ld b, a - ld a, [wCurrentMenuItem] - cp $3 - jr nz,.asm_f586b - bit 2,b - jr z,.asm_f586b - dec a - ld b,$8 -.asm_f586b - add b - add $d0 - ld [wLinkMenuSelectionSendBuffer], a - ld [wLinkMenuSelectionSendBuffer + 1], a -.exchangeMenuSelectionLoop - call Serial_ExchangeLinkMenuSelection - ld a, [wLinkMenuSelectionReceiveBuffer] - ld b, a - and $f0 - cp $d0 - jr z, .asm_f5c7d - ld a, [wLinkMenuSelectionReceiveBuffer + 1] - ld b, a - and $f0 - cp $d0 - jr nz, .exchangeMenuSelectionLoop -.asm_f5c7d - ld a, b - and $c ; did the enemy press A or B? - jr nz, .enemyPressedAOrB -; the enemy didn't press A or B - ld a, [wLinkMenuSelectionSendBuffer] - and $c ; did the player press A or B? - jr z, .waitForInputLoop ; if neither the player nor the enemy pressed A or B, try again - jr .doneChoosingMenuSelection ; if the player pressed A or B but the enemy didn't, use the player's selection -.enemyPressedAOrB - ld a, [wLinkMenuSelectionSendBuffer] - and $c ; did the player press A or B? - jr z, .useEnemyMenuSelection ; if the enemy pressed A or B but the player didn't, use the enemy's selection -; the enemy and the player both pressed A or B -; The gameboy that is clocking the connection wins. - ld a, [hSerialConnectionStatus] - cp USING_INTERNAL_CLOCK - jr z, .doneChoosingMenuSelection -.useEnemyMenuSelection - ld a, $1 - ld [wd11e], a - ld a, b - ld [wLinkMenuSelectionSendBuffer], a - and $3 - ld [wCurrentMenuItem], a ; wCurrentMenuItem -.doneChoosingMenuSelection - ld a, [hSerialConnectionStatus] - cp USING_INTERNAL_CLOCK - jr nz, .skipStartingTransfer - call DelayFrame - call DelayFrame - ld a, START_TRANSFER_INTERNAL_CLOCK - ld [rSC], a -.skipStartingTransfer - ld b, " " - ld c, " " - ld d, " " - ld e, "▷" - ld a, [wLinkMenuSelectionSendBuffer] - and (B_BUTTON << 2) ; was B button pressed? - jr nz, .updateCursorPosition -; A button was pressed - ld a, [wCurrentMenuItem] - cp $2 - jp z, .asm_f5963 - ld b, e - ld e, c - ld a, [wCurrentMenuItem] - and a - jr z, .updateCursorPosition - ld c, b - ld b, d - dec a - jr z, .updateCursorPosition - ld d, c - ld c, b -.updateCursorPosition - call Func_f59ec - call LoadScreenTilesFromBuffer1 - ld a, [wLinkMenuSelectionSendBuffer] - and (B_BUTTON << 2) ; was B button pressed? - jr nz, .choseCancel ; cancel if B pressed - ld a, [wCurrentMenuItem] - cp $2 - jr z, .choseCancel - xor a - ld [wWalkBikeSurfState], a ; start walking - ld a, [wCurrentMenuItem] - and a - ld a, COLOSSEUM - jr nz, .next - ld a, TRADE_CENTER -.next - ld [wd72d], a - ld hl, ColosseumPleaseWaitText - call PrintText - ld c, 50 - call DelayFrames - ld hl, wd732 - res 1, [hl] - ld a, [wDefaultMap] - ld [wDestinationMap], a - callab SpecialWarpIn - ld c, 20 - call DelayFrames - xor a - ld [wMenuJoypadPollCount], a - ld [wSerialExchangeNybbleSendData], a - inc a ; LINK_STATE_IN_CABLE_CLUB - ld [wLinkState], a - ld [wEnteringCableClub], a - jpab SpecialEnterMap -.choseCancel - xor a - ld [wMenuJoypadPollCount], a - call Delay3 - callab CloseLinkConnection - ld hl, ColosseumCanceledText - call PrintText - ld hl, wd72e - res 6, [hl] - ret - -.asm_f5963 - ld a,[wd11e] - and a - jr nz,.asm_f5974 - ld b," " - ld c," " - ld d,"▷" - ld e," " - call Func_f59ec -.asm_f5974 - xor a - ld [wBuffer], a - ld a,$ff - ld [wSerialExchangeNybbleReceiveData],a - ld a, $b - ld [wLinkMenuSelectionSendBuffer], a - ld b,$78 -.loop - ld a,[hSerialConnectionStatus] - cp $2 - call z,DelayFrame - dec b - jr z,.asm_f59b2 - call Serial_ExchangeNybble - call DelayFrame - ld a,[wSerialExchangeNybbleReceiveData] - inc a - jr z,.loop - ld b,$f -.loop2 - call DelayFrame - call Serial_ExchangeNybble - dec b - jr nz,.loop2 - ld b,$f -.loop3 - call DelayFrame - call Serial_SendZeroByte - dec b - jr nz,.loop3 - jr .asm_f59d6 - -.asm_f59b2 - xor a - ld [wUnknownSerialCounter],a - ld [wUnknownSerialCounter+1],a - ld a,[wd11e] - and a - jr z,.asm_f59cd - ld b," " - ld c," " - ld d," " - ld e,"▷" - call Func_f59ec - jp .choseCancel - -.asm_f59cd - ld hl,ColosseumVersionText - call PrintText - jp .choseCancel - -.asm_f59d6 - ld b," " - ld c," " - ld d,"▷" - ld e," " - call Func_f59ec - call Func_f531b - jp c,.choseCancel - ld a,$f0 - jp .next - -Func_f59ec:: - ld a, b - Coorda 6, 5 - ld a, c - Coorda 6, 7 - ld a, d - Coorda 6, 9 - ld a, e - Coorda 6, 11 - ld c, 40 - call DelayFrames - ret - -ColosseumWhereToText: - TX_FAR _ColosseumWhereToText - db "@" - -ColosseumPleaseWaitText: - TX_FAR _ColosseumPleaseWaitText - db "@" - -ColosseumCanceledText: - TX_FAR _ColosseumCanceledText - db "@" - -ColosseumVersionText: - TX_FAR _ColosseumVersionText - db "@" - -TextTerminator_f5a16: - db "@" - -TradeCenterText: - db "TRADE CENTER" - next "COLOSSEUM" - next "COLOSSEUM2" - next "CANCEL@" diff --git a/engine/menu/oaks_pc.asm b/engine/menu/oaks_pc.asm deleted file mode 100755 index 03c9b8f13..000000000 --- a/engine/menu/oaks_pc.asm +++ /dev/null @@ -1,28 +0,0 @@ -OpenOaksPC: - call SaveScreenTilesToBuffer2 - ld hl, AccessedOaksPCText - call PrintText - ld hl, GetDexRatedText - call PrintText - call YesNoChoice - ld a, [wCurrentMenuItem] - and a - jr nz, .closePC - predef DisplayDexRating -.closePC - ld hl, ClosedOaksPCText - call PrintText - jp LoadScreenTilesFromBuffer2 - -GetDexRatedText: - TX_FAR _GetDexRatedText - db "@" - -ClosedOaksPCText: - TX_FAR _ClosedOaksPCText - TX_WAIT - db "@" - -AccessedOaksPCText: - TX_FAR _AccessedOaksPCText - db "@" diff --git a/engine/menu/party_menu.asm b/engine/menu/party_menu.asm deleted file mode 100755 index 00c757be3..000000000 --- a/engine/menu/party_menu.asm +++ /dev/null @@ -1,333 +0,0 @@ -; [wPartyMenuTypeOrMessageID] = menu type / message ID -; if less than $F0, it is a menu type -; menu types: -; 00: normal pokemon menu (e.g. Start menu) -; 01: use healing item on pokemon menu -; 02: in-battle switch pokemon menu -; 03: learn TM/HM menu -; 04: swap pokemon positions menu -; 05: use evolution stone on pokemon menu -; otherwise, it is a message ID -; f0: poison healed -; f1: burn healed -; f2: freeze healed -; f3: sleep healed -; f4: paralysis healed -; f5: HP healed -; f6: health returned -; f7: revitalized -; f8: leveled up -DrawPartyMenu_: - xor a - ld [H_AUTOBGTRANSFERENABLED], a - call ClearScreen - call UpdateSprites - callba LoadMonPartySpriteGfxWithLCDDisabled ; load pokemon icon graphics - -RedrawPartyMenu_: - ld a, [wPartyMenuTypeOrMessageID] - cp SWAP_MONS_PARTY_MENU - jp z, .printMessage - call ErasePartyMenuCursors - callba InitPartyMenuBlkPacket - coord hl, 3, 0 - ld de, wPartySpecies - xor a - ld c, a - ld [hPartyMonIndex], a - ld [wWhichPartyMenuHPBar], a -.loop - ld a, [de] - cp $FF ; reached the terminator? - jp z, .afterDrawingMonEntries - push bc - push de - push hl - ld a, c - push hl - ld hl, wPartyMonNicks - call GetPartyMonName - pop hl - call PlaceString ; print the pokemon's name - ld a, [hPartyMonIndex] - ld [wWhichPokemon], a - callab IsThisPartymonStarterPikachu_Party - jr nc, .regularMon - call CheckPikachuFollowingPlayer - jr z, .regularMon - ld a, $ff - ld [hPartyMonIndex], a -.regularMon - callba WriteMonPartySpriteOAMByPartyIndex ; place the appropriate pokemon icon - ld a, [wWhichPokemon] - inc a - ld [hPartyMonIndex], a - call LoadMonData - pop hl - push hl - ld a, [wMenuItemToSwap] - and a ; is the player swapping pokemon positions? - jr z, .skipUnfilledRightArrow -; if the player is swapping pokemon positions - dec a - ld b, a - ld a, [wWhichPokemon] - cp b ; is the player swapping the current pokemon in the list? - jr nz, .skipUnfilledRightArrow -; the player is swapping the current pokemon in the list - dec hl - dec hl - dec hl - ld a, "▷" ; unfilled right arrow menu cursor - ld [hli], a ; place the cursor - inc hl - inc hl -.skipUnfilledRightArrow - ld a, [wPartyMenuTypeOrMessageID] ; menu type - cp TMHM_PARTY_MENU - jr z, .teachMoveMenu - cp EVO_STONE_PARTY_MENU - jr z, .evolutionStoneMenu - push hl - ld bc, 14 ; 14 columns to the right - add hl, bc - ld de, wLoadedMonStatus - call PrintStatusCondition - pop hl - push hl - ld bc, SCREEN_WIDTH + 1 ; down 1 row and right 1 column - ld a, [hFlags_0xFFFA] - set 0, a - ld [hFlags_0xFFFA], a - add hl, bc - predef DrawHP2 ; draw HP bar and prints current / max HP - ld a, [hFlags_0xFFFA] - res 0, a - ld [hFlags_0xFFFA], a - call SetPartyMenuHPBarColor ; color the HP bar (on SGB) - pop hl - jr .printLevel -.teachMoveMenu - push hl - predef CanLearnTM ; check if the pokemon can learn the move - pop hl - ld de, .ableToLearnMoveText - ld a, c - and a - jr nz, .placeMoveLearnabilityString - ld de, .notAbleToLearnMoveText -.placeMoveLearnabilityString - push hl - ld bc, 20 + 9 ; down 1 row and right 9 columns - add hl, bc - call PlaceString - pop hl -.printLevel - ld bc, 10 ; move 10 columns to the right - add hl, bc - call PrintLevel - pop hl - pop de - inc de - ld bc, 2 * 20 - add hl, bc - pop bc - inc c - jp .loop -.ableToLearnMoveText - db "ABLE@" -.notAbleToLearnMoveText - db "NOT ABLE@" -.evolutionStoneMenu - push hl - ld hl, EvosMovesPointerTable - ld b, 0 - ld a, [wLoadedMonSpecies] - dec a - add a - rl b - ld c, a - add hl, bc - ld de, wEvosMoves - ld a, BANK(EvosMovesPointerTable) - ld bc, 2 - call FarCopyData - ld hl, wEvosMoves - ld a, [hli] - ld h, [hl] - ld l, a - ld de, wEvosMoves - ld a, BANK(EvosMovesPointerTable) - ld bc, wEvosMoves.end - wEvosMoves - call FarCopyData - ld hl, wEvosMoves - ld de, .notAbleToEvolveText -; loop through the pokemon's evolution entries -.checkEvolutionsLoop - ld a, [hli] - and a ; reached terminator? - jr z, .placeEvolutionStoneString ; if so, place the "NOT ABLE" string - inc hl - inc hl - cp EV_ITEM - jr nz, .checkEvolutionsLoop -; if it's a stone evolution entry - dec hl - dec hl - ld b, [hl] - ld a, [wEvoStoneItemID] ; the stone the player used - inc hl - inc hl - inc hl - cp b ; does the player's stone match this evolution entry's stone? - jr nz, .checkEvolutionsLoop -; if it does match - ld de, .ableToEvolveText -.placeEvolutionStoneString - pop hl - push hl - ld bc, 20 + 9 ; down 1 row and right 9 columns - add hl, bc - call PlaceString - pop hl - jr .printLevel -.ableToEvolveText - db "ABLE@" -.notAbleToEvolveText - db "NOT ABLE@" -.afterDrawingMonEntries - ld b, SET_PAL_PARTY_MENU - call RunPaletteCommand -.printMessage - ld hl, wd730 - ld a, [hl] - push af - push hl - set 6, [hl] ; turn off letter printing delay - ld a, [wPartyMenuTypeOrMessageID] ; message ID - cp $F0 - jr nc, .printItemUseMessage - add a - ld hl, PartyMenuMessagePointers - ld b, 0 - ld c, a - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - call PrintText -.done - pop hl - pop af - ld [hl], a - ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a - call Delay3 - jp GBPalNormal -.printItemUseMessage - and $0F - ld hl, PartyMenuItemUseMessagePointers - add a - ld c, a - ld b, 0 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - push hl - ld a, [wUsedItemOnWhichPokemon] - ld hl, wPartyMonNicks - call GetPartyMonName - pop hl - call PrintText - jr .done - -PartyMenuItemUseMessagePointers: - dw AntidoteText - dw BurnHealText - dw IceHealText - dw AwakeningText - dw ParlyzHealText - dw PotionText - dw FullHealText - dw ReviveText - dw RareCandyText - -PartyMenuMessagePointers: - dw PartyMenuNormalText - dw PartyMenuItemUseText - dw PartyMenuBattleText - dw PartyMenuUseTMText - dw PartyMenuSwapMonText - dw PartyMenuItemUseText - -PartyMenuNormalText: - TX_FAR _PartyMenuNormalText - db "@" - -PartyMenuItemUseText: - TX_FAR _PartyMenuItemUseText - db "@" - -PartyMenuBattleText: - TX_FAR _PartyMenuBattleText - db "@" - -PartyMenuUseTMText: - TX_FAR _PartyMenuUseTMText - db "@" - -PartyMenuSwapMonText: - TX_FAR _PartyMenuSwapMonText - db "@" - -PotionText: - TX_FAR _PotionText - db "@" - -AntidoteText: - TX_FAR _AntidoteText - db "@" - -ParlyzHealText: - TX_FAR _ParlyzHealText - db "@" - -BurnHealText: - TX_FAR _BurnHealText - db "@" - -IceHealText: - TX_FAR _IceHealText - db "@" - -AwakeningText: - TX_FAR _AwakeningText - db "@" - -FullHealText: - TX_FAR _FullHealText - db "@" - -ReviveText: - TX_FAR _ReviveText - db "@" - -RareCandyText: - TX_FAR _RareCandyText - TX_SFX_ITEM_1 ; probably supposed to play SFX_LEVEL_UP but the wrong music bank is loaded - TX_BLINK - db "@" - -SetPartyMenuHPBarColor: - ld hl, wPartyMenuHPBarColors - ld a, [wWhichPartyMenuHPBar] - ld c, a - ld b, 0 - add hl, bc - call GetHealthBarColor - ld b, UPDATE_PARTY_MENU_BLK_PACKET - call RunPaletteCommand - ld hl, wWhichPartyMenuHPBar - inc [hl] - ret diff --git a/engine/menu/text_box.asm b/engine/menu/text_box.asm deleted file mode 100644 index a109bff22..000000000 --- a/engine/menu/text_box.asm +++ /dev/null @@ -1,739 +0,0 @@ -; function to draw various text boxes -DisplayTextBoxID_: - ld a, [wTextBoxID] - cp TWO_OPTION_MENU - jp z, DisplayTwoOptionMenu - ld c, a - ld hl, TextBoxFunctionTable - ld de, 3 - call SearchTextBoxTable - jr c, .functionTableMatch - ld hl, TextBoxCoordTable - ld de, 5 - call SearchTextBoxTable - jr c, .coordTableMatch - ld hl, TextBoxTextAndCoordTable - ld de, 9 - call SearchTextBoxTable - jr c, .textAndCoordTableMatch -.done - ret -.functionTableMatch - ld a, [hli] - ld h, [hl] - ld l, a ; hl = address of function - ld de, .done - push de - jp hl ; jump to the function -.coordTableMatch - call GetTextBoxIDCoords - call GetAddressOfScreenCoords - call TextBoxBorder - ret -.textAndCoordTableMatch - call GetTextBoxIDCoords - push hl - call GetAddressOfScreenCoords - call TextBoxBorder - pop hl - call GetTextBoxIDText - ld a, [wd730] - push af - ld a, [wd730] - set 6, a ; no pauses between printing each letter - ld [wd730], a - call PlaceString - pop af - ld [wd730], a - call UpdateSprites - ret - -; function to search a table terminated with $ff for a byte matching c in increments of de -; sets carry flag if a match is found and clears carry flag if not -SearchTextBoxTable: - dec de -.loop - ld a, [hli] - cp $ff - jr z, .notFound - cp c - jr z, .found - add hl, de - jr .loop -.found - scf -.notFound - ret - -; function to load coordinates from the TextBoxCoordTable or the TextBoxTextAndCoordTable -; INPUT: -; hl = address of coordinates -; OUTPUT: -; b = height -; c = width -; d = row of upper left corner -; e = column of upper left corner -GetTextBoxIDCoords: - ld a, [hli] ; column of upper left corner - ld e, a - ld a, [hli] ; row of upper left corner - ld d, a - ld a, [hli] ; column of lower right corner - sub e - dec a - ld c, a ; c = width - ld a, [hli] ; row of lower right corner - sub d - dec a - ld b, a ; b = height - ret - -; function to load a text address and text coordinates from the TextBoxTextAndCoordTable -GetTextBoxIDText: - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a ; de = address of text - push de ; save text address - ld a, [hli] - ld e, a ; column of upper left corner of text - ld a, [hl] - ld d, a ; row of upper left corner of text - call GetAddressOfScreenCoords - pop de ; restore text address - ret - -; function to point hl to the screen coordinates -; INPUT: -; d = row -; e = column -; OUTPUT: -; hl = address of upper left corner of text box -GetAddressOfScreenCoords: - push bc - coord hl, 0, 0 - ld bc, 20 -.loop ; loop to add d rows to the base address - ld a, d - and a - jr z, .addedRows - add hl, bc - dec d - jr .loop -.addedRows - pop bc - add hl, de - ret - -; Format: -; 00: text box ID -; 01-02: function address -TextBoxFunctionTable: - dbw MONEY_BOX, DisplayMoneyBox - dbw BUY_SELL_QUIT_MENU, DoBuySellQuitMenu - dbw FIELD_MOVE_MON_MENU, DisplayFieldMoveMonMenu - db $ff ; terminator - -; Format: -; 00: text box ID -; 01: column of upper left corner -; 02: row of upper left corner -; 03: column of lower right corner -; 04: row of lower right corner -TextBoxCoordTable: - db MESSAGE_BOX, 0, 12, 19, 17 - db $03, 0, 0, 19, 14 - db $07, 0, 0, 11, 6 - db LIST_MENU_BOX, 4, 2, 19, 12 - db $10, 7, 0, 19, 17 - db MON_SPRITE_POPUP, 6, 4, 14, 13 - db $ff ; terminator - -; Format: -; 00: text box ID -; 01: column of upper left corner -; 02: row of upper left corner -; 03: column of lower right corner -; 04: row of lower right corner -; 05-06: address of text -; 07: column of beginning of text -; 08: row of beginning of text -; table of window positions and corresponding text [key, start column, start row, end column, end row, text pointer [2 bytes], text column, text row] -TextBoxTextAndCoordTable: - db JP_MOCHIMONO_MENU_TEMPLATE - db 0,0,14,17 ; text box coordinates - dw JapaneseMochimonoText - db 3,0 ; text coordinates - - db USE_TOSS_MENU_TEMPLATE - db 13,10,19,14 ; text box coordinates - dw UseTossText - db 15,11 ; text coordinates - - db JP_SAVE_MESSAGE_MENU_TEMPLATE - db 0,0,7,5 ; text box coordinates - dw JapaneseSaveMessageText - db 2,2 ; text coordinates - - db JP_SPEED_OPTIONS_MENU_TEMPLATE - db 0,6,5,10 ; text box coordinates - dw JapaneseSpeedOptionsText - db 2,7 ; text coordinates - - db BATTLE_MENU_TEMPLATE - db 8,12,19,17 ; text box coordinates - dw BattleMenuText - db 10,14 ; text coordinates - - db SAFARI_BATTLE_MENU_TEMPLATE - db 0,12,19,17 ; text box coordinates - dw SafariZoneBattleMenuText - db 2,14 ; text coordinates - - db SWITCH_STATS_CANCEL_MENU_TEMPLATE - db 11,11,19,17 ; text box coordinates - dw SwitchStatsCancelText - db 13,12 ; text coordinates - - db BUY_SELL_QUIT_MENU_TEMPLATE - db 0,0,10,6 ; text box coordinates - dw BuySellQuitText - db 2,1 ; text coordinates - - db MONEY_BOX_TEMPLATE - db 11,0,19,2 ; text box coordinates - dw MoneyText - db 13,0 ; text coordinates - - db JP_AH_MENU_TEMPLATE - db 7,6,11,10 ; text box coordinates - dw JapaneseAhText - db 8,8 ; text coordinates - - db JP_POKEDEX_MENU_TEMPLATE - db 11,8,19,17 ; text box coordinates - dw JapanesePokedexMenu - db 12,10 ; text coordinates - -; note that there is no terminator - -BuySellQuitText: - db "BUY" - next "SELL" - next "QUIT@@" - -UseTossText: - db "USE" - next "TOSS@" - -JapaneseSaveMessageText: - db "きろく" - next "メッセージ@" - -JapaneseSpeedOptionsText: - db "はやい" - next "おそい@" - -MoneyText: - db "MONEY@" - -JapaneseMochimonoText: - db "もちもの@" - -JapaneseMainMenuText: - db "つづきから" - next "さいしょから@" - -BattleMenuText: - db "FIGHT ",$E1,$E2 - next "ITEM RUN@" - -SafariZoneBattleMenuText: - db "BALL× BAIT" - next "THROW ROCK RUN@" - -SwitchStatsCancelText: - db "SWITCH" - next "STATS" - next "CANCEL@" - -JapaneseAhText: - db "アッ!@" - -JapanesePokedexMenu: - db "データをみる" - next "なきごえ" - next "ぶんぷをみる" - next "キャンセル@" - -DisplayMoneyBox: - ld hl, wd730 - set 6, [hl] - ld a, MONEY_BOX_TEMPLATE - ld [wTextBoxID], a - call DisplayTextBoxID - coord hl, 13, 1 - lb bc, 1, 6 - call ClearScreenArea - coord hl, 12, 1 - ld de, wPlayerMoney - ld c, $a3 - call PrintBCDNumber - ld hl, wd730 - res 6, [hl] - ret - -CurrencyString: - db " ¥@" - -DoBuySellQuitMenu: - ld a, [wd730] - set 6, a ; no printing delay - ld [wd730], a - xor a - ld [wChosenMenuItem], a - ld a, BUY_SELL_QUIT_MENU_TEMPLATE - ld [wTextBoxID], a - call DisplayTextBoxID - ld a, A_BUTTON | B_BUTTON - ld [wMenuWatchedKeys], a - ld a, $2 - ld [wMaxMenuItem], a - ld a, $1 - ld [wTopMenuItemY], a - ld a, $1 - ld [wTopMenuItemX], a - xor a - ld [wCurrentMenuItem], a - ld [wLastMenuItem], a - ld [wMenuWatchMovingOutOfBounds], a - ld a, [wd730] - res 6, a ; turn on the printing delay - ld [wd730], a - call HandleMenuInput - call PlaceUnfilledArrowMenuCursor - bit 0, a ; was A pressed? - jr nz, .pressedA - bit 1, a ; was B pressed? (always true since only A/B are watched) - jr z, .pressedA - ld a, CANCELLED_MENU - ld [wMenuExitMethod], a - jr .quit -.pressedA - ld a, CHOSE_MENU_ITEM - ld [wMenuExitMethod], a - ld a, [wCurrentMenuItem] - ld [wChosenMenuItem], a - ld b, a - ld a, [wMaxMenuItem] - cp b - jr z, .quit - ret -.quit - ld a, CANCELLED_MENU - ld [wMenuExitMethod], a - ld a, [wCurrentMenuItem] - ld [wChosenMenuItem], a - scf - ret - -; displays a menu with two options to choose from -; b = Y of upper left corner of text region -; c = X of upper left corner of text region -; hl = address where the text box border should be drawn -DisplayTwoOptionMenu: - push hl - ld a, [wd730] - set 6, a ; no printing delay - ld [wd730], a - -; pointless because both values are overwritten before they are read - xor a - ld [wChosenMenuItem], a - ld [wMenuExitMethod], a - - ld a, A_BUTTON | B_BUTTON - ld [wMenuWatchedKeys], a - ld a, $1 - ld [wMaxMenuItem], a - ld a, b - ld [wTopMenuItemY], a - ld a, c - ld [wTopMenuItemX], a - xor a - ld [wLastMenuItem], a - ld [wMenuWatchMovingOutOfBounds], a - push hl - ld hl, wTwoOptionMenuID - bit 7, [hl] ; select second menu item by default? - res 7, [hl] - jr z, .storeCurrentMenuItem - inc a -.storeCurrentMenuItem - ld [wCurrentMenuItem], a - pop hl - push hl - push hl - call TwoOptionMenu_SaveScreenTiles - ld a, [wTwoOptionMenuID] - ld hl, TwoOptionMenuStrings - ld e, a - ld d, $0 - ld a, $5 -.menuStringLoop - add hl, de - dec a - jr nz, .menuStringLoop - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld e, l - ld d, h - pop hl - push de - ld a, [wTwoOptionMenuID] - cp TRADE_CANCEL_MENU - jr nz, .notTradeCancelMenu - call CableClub_TextBoxBorder - jr .afterTextBoxBorder -.notTradeCancelMenu - call TextBoxBorder -.afterTextBoxBorder - call UpdateSprites - pop hl - ld a, [hli] - and a ; put blank line before first menu item? - ld bc, 20 + 2 - jr z, .noBlankLine - ld bc, 2 * 20 + 2 -.noBlankLine - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - pop hl - add hl, bc - call PlaceString - xor a - ld [wTwoOptionMenuID], a - ld hl, wd730 - res 6, [hl] ; turn on the printing delay - call HandleMenuInput - pop hl - bit 1, a ; A button pressed? - jr nz, .choseSecondMenuItem ; automatically choose the second option if B is pressed -.pressedAButton - ld a, [wCurrentMenuItem] - ld [wChosenMenuItem], a - and a - jr nz, .choseSecondMenuItem -; chose first menu item - ld a, CHOSE_FIRST_ITEM - ld [wMenuExitMethod], a - ld c, 15 - call DelayFrames - call TwoOptionMenu_RestoreScreenTiles - and a - ret -.choseSecondMenuItem - ld a, 1 - ld [wCurrentMenuItem], a - ld [wChosenMenuItem], a - ld a, CHOSE_SECOND_ITEM - ld [wMenuExitMethod], a - ld c, 15 - call DelayFrames - call TwoOptionMenu_RestoreScreenTiles - scf - ret - -; Some of the wider/taller two option menus will not have the screen areas -; they cover be fully saved/restored by the two functions below. -; The bottom and right edges of the menu may remain after the function returns. - -TwoOptionMenu_SaveScreenTiles: - ld de, wBuffer - lb bc, 5, 6 -.loop - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .loop - push bc - ld bc, SCREEN_WIDTH - 6 - add hl, bc - pop bc - ld c, $6 - dec b - jr nz, .loop - ret - -TwoOptionMenu_RestoreScreenTiles: - ld de, wBuffer - lb bc, 5, 6 -.loop - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .loop - push bc - ld bc, SCREEN_WIDTH - 6 - add hl, bc - pop bc - ld c, 6 - dec b - jr nz, .loop - call UpdateSprites - ret - -; Format: -; 00: byte width -; 01: byte height -; 02: byte put blank line before first menu item -; 03: word text pointer -TwoOptionMenuStrings: - db 4,3,0 - dw .YesNoMenu - db 6,3,0 - dw .NorthWestMenu - db 6,3,0 - dw .SouthEastMenu - db 6,3,0 - dw .YesNoMenu - db 6,3,0 - dw .NorthEastMenu - db 7,3,0 - dw .TradeCancelMenu - db 7,4,1 - dw .HealCancelMenu - db 4,3,0 - dw .NoYesMenu - -.NoYesMenu - db "NO" - next "YES@" -.YesNoMenu - db "YES" - next "NO@" -.NorthWestMenu - db "NORTH" - next "WEST@" -.SouthEastMenu - db "SOUTH" - next "EAST@" -.NorthEastMenu - db "NORTH" - next "EAST@" -.TradeCancelMenu - db "TRADE" - next "CANCEL@" -.HealCancelMenu - db "HEAL" - next "CANCEL@" - -DisplayFieldMoveMonMenu: - xor a - ld hl, wFieldMoves - ld [hli], a ; wFieldMoves - ld [hli], a ; wFieldMoves + 1 - ld [hli], a ; wFieldMoves + 2 - ld [hli], a ; wFieldMoves + 3 - ld [hli], a ; wNumFieldMoves - ld [hl], 12 ; wFieldMovesLeftmostXCoord - call GetMonFieldMoves - ld a, [wNumFieldMoves] - and a - jr nz, .fieldMovesExist - -; no field moves - coord hl, 11, 11 - lb bc, 5, 7 - call TextBoxBorder - call UpdateSprites - ld a, 12 - ld [hFieldMoveMonMenuTopMenuItemX], a - coord hl, 13, 12 - ld de, PokemonMenuEntries - jp PlaceString - -.fieldMovesExist - push af - -; Calculate the text box position and dimensions based on the leftmost X coord -; of the field move names before adjusting for the number of field moves. - coord hl, 0, 11 - ld a, [wFieldMovesLeftmostXCoord] - dec a - ld e, a - ld d, 0 - add hl, de - ld b, 5 - ld a, 18 - sub e - ld c, a - pop af - -; For each field move, move the top of the text box up 2 rows while the leaving -; the bottom of the text box at the bottom of the screen. - ld de, -SCREEN_WIDTH * 2 -.textBoxHeightLoop - add hl, de - inc b - inc b - dec a - jr nz, .textBoxHeightLoop - -; Make space for an extra blank row above the top field move. - ld de, -SCREEN_WIDTH - add hl, de - inc b - - call TextBoxBorder - call UpdateSprites - -; Calculate the position of the first field move name to print. - coord hl, 0, 12 - ld a, [wFieldMovesLeftmostXCoord] - inc a - ld e, a - ld d, 0 - add hl, de - ld de, -SCREEN_WIDTH * 2 - ld a, [wNumFieldMoves] -.calcFirstFieldMoveYLoop - add hl, de - dec a - jr nz, .calcFirstFieldMoveYLoop - - xor a - ld [wNumFieldMoves], a - ld de, wFieldMoves -.printNamesLoop - push hl - ld hl, FieldMoveNames - ld a, [de] - and a - jr z, .donePrintingNames - inc de - ld b, a ; index of name -.skipNamesLoop ; skip past names before the name we want - dec b - jr z, .reachedName -.skipNameLoop ; skip past current name - ld a, [hli] - cp "@" - jr nz, .skipNameLoop - jr .skipNamesLoop -.reachedName - ld b, h - ld c, l - pop hl - push de - ld d, b - ld e, c - call PlaceString - ld bc, SCREEN_WIDTH * 2 - add hl, bc - pop de - jr .printNamesLoop - -.donePrintingNames - pop hl - ld a, [wFieldMovesLeftmostXCoord] - ld [hFieldMoveMonMenuTopMenuItemX], a - coord hl, 0, 12 - ld a, [wFieldMovesLeftmostXCoord] - inc a - ld e, a - ld d, 0 - add hl, de - ld de, PokemonMenuEntries - jp PlaceString - -FieldMoveNames: - db "CUT@" - db "FLY@" - db "@" - db "SURF@" - db "STRENGTH@" - db "FLASH@" - db "DIG@" - db "TELEPORT@" - db "SOFTBOILED@" - -PokemonMenuEntries: - db "STATS" - next "SWITCH" - next "CANCEL@" - -GetMonFieldMoves: - ld a, [wWhichPokemon] - ld hl, wPartyMon1Moves - ld bc, wPartyMon2 - wPartyMon1 - call AddNTimes - ld d, h - ld e, l - ld c, NUM_MOVES + 1 - ld hl, wFieldMoves -.loop - push hl -.nextMove - dec c - jr z, .done - ld a, [de] ; move ID - and a - jr z, .done - ld b, a - inc de - ld hl, FieldMoveDisplayData -.fieldMoveLoop - ld a, [hli] - cp $ff - jr z, .nextMove ; if the move is not a field move - cp b - jr z, .foundFieldMove - inc hl - inc hl - jr .fieldMoveLoop -.foundFieldMove - ld a, b - ld [wLastFieldMoveID], a - ld a, [hli] ; field move name index - ld b, [hl] ; field move leftmost X coordinate - pop hl - ld [hli], a ; store name index in wFieldMoves - ld a, [wNumFieldMoves] - inc a - ld [wNumFieldMoves], a - ld a, [wFieldMovesLeftmostXCoord] - cp b - jr c, .skipUpdatingLeftmostXCoord - ld a, b - ld [wFieldMovesLeftmostXCoord], a -.skipUpdatingLeftmostXCoord - ld a, [wLastFieldMoveID] - ld b, a - jr .loop -.done - pop hl - ret - -; Format: [Move id], [name index], [leftmost tile] -; Move id = id of move -; Name index = index of name in FieldMoveNames -; Leftmost tile = -1 + tile column in which the first letter of the move's name should be displayed -; "SOFTBOILED" is $08 because it has 4 more letters than "SURF", for example, whose value is $0C -FieldMoveDisplayData: - db CUT, $01, $0C - db FLY, $02, $0C - db $B4, $03, $0C ; unused field move - db SURF, $04, $0C - db STRENGTH, $05, $0A - db FLASH, $06, $0C - db DIG, $07, $0C - db TELEPORT, $08, $0A - db SOFTBOILED, $09, $08 - db $ff ; list terminator diff --git a/engine/menus/display_text_id_init.asm b/engine/menus/display_text_id_init.asm new file mode 100644 index 000000000..17f290b4f --- /dev/null +++ b/engine/menus/display_text_id_init.asm @@ -0,0 +1,76 @@ +; function that performs initialization for DisplayTextID +DisplayTextIDInit:: + xor a + ld [wListMenuID], a + ld a, [wAutoTextBoxDrawingControl] + bit 0, a + jr nz, .skipDrawingTextBoxBorder + ldh a, [hSpriteIndexOrTextID] ; text ID (or sprite ID) + and a + jr nz, .notStartMenu +; if text ID is 0 (i.e. the start menu) +; Note that the start menu text border is also drawn in the function directly +; below this, so this seems unnecessary. + CheckEvent EVENT_GOT_POKEDEX +; start menu with pokedex + hlcoord 10, 0 + lb bc, 14, 8 + jr nz, .drawTextBoxBorder +; start menu without pokedex + hlcoord 10, 0 + lb bc, 12, 8 + jr .drawTextBoxBorder +; if text ID is not 0 (i.e. not the start menu) then do a standard dialogue text box +.notStartMenu + hlcoord 0, 12 + lb bc, 4, 18 +.drawTextBoxBorder + call TextBoxBorder +.skipDrawingTextBoxBorder + ld hl, wFontLoaded + set 0, [hl] + ld hl, wFlags_0xcd60 + bit 4, [hl] + res 4, [hl] + jr nz, .skipMovingSprites + call UpdateSprites +.skipMovingSprites +; loop to copy [x#SPRITESTATEDATA1_FACINGDIRECTION] to +; [x#SPRITESTATEDATA2_ORIGFACINGDIRECTION] for each non-player sprite +; this is done because when you talk to an NPC, they turn to look your way +; the original direction they were facing must be restored after the dialogue is over + ld hl, wSprite01StateData1FacingDirection + ld c, $0f + ld de, $10 +.spriteFacingDirectionCopyLoop + ld a, [hl] ; x#SPRITESTATEDATA1_FACINGDIRECTION + inc h + ld [hl], a ; [x#SPRITESTATEDATA2_ORIGFACINGDIRECTION] + dec h + add hl, de + dec c + jr nz, .spriteFacingDirectionCopyLoop +; loop to force all the sprites in the middle of animation to stand still +; (so that they don't like they're frozen mid-step during the dialogue) + ld hl, wSpritePlayerStateData1ImageIndex + ld de, $10 + ld c, e +.spriteStandStillLoop + ld a, [hl] + cp $ff ; is the sprite visible? + jr z, .nextSprite +; if it is visible + and $fc + ld [hl], a +.nextSprite + add hl, de + dec c + jr nz, .spriteStandStillLoop + ld b, $9c ; window background address + call CopyScreenTileBufferToVRAM ; transfer background in WRAM to VRAM + xor a + ldh [hWY], a ; put the window on the screen + call LoadFontTilePatterns + ld a, $01 + ldh [hAutoBGTransferEnabled], a ; enable continuous WRAM to VRAM transfer each V-blank + ret diff --git a/engine/menu/draw_badges.asm b/engine/menus/draw_badges.asm similarity index 92% rename from engine/menu/draw_badges.asm rename to engine/menus/draw_badges.asm index 9e6262a08..0bb433ccb 100644 --- a/engine/menu/draw_badges.asm +++ b/engine/menus/draw_badges.asm @@ -8,12 +8,12 @@ DrawBadges: ; Tile ids for face/badge graphics. ld de, wBadgeOrFaceTiles ld hl, .FaceBadgeTiles - ld bc, 8 + ld bc, NUM_BADGES call CopyData ; Booleans for each badge. ld hl, wTempObtainedBadgesBooleans - ld bc, 8 + ld bc, NUM_BADGES xor a call FillMemory @@ -22,7 +22,7 @@ DrawBadges: ld hl, wBadgeOrFaceTiles ld a, [wObtainedBadges] ld b, a - ld c, 8 + ld c, NUM_BADGES .CheckBadge srl b jr nc, .NextBadge @@ -43,11 +43,11 @@ DrawBadges: ld [hli], a ld [hl], $60 ; First name - coord hl, 2, 11 + hlcoord 2, 11 ld de, wTempObtainedBadgesBooleans call .DrawBadgeRow - coord hl, 2, 14 + hlcoord 2, 14 ld de, wTempObtainedBadgesBooleans + 4 ; call .DrawBadgeRow ; ret @@ -92,7 +92,7 @@ DrawBadges: push bc ld hl, wBadgeOrFaceTiles + 1 ld de, wBadgeOrFaceTiles - ld bc, 8 + ld bc, NUM_BADGES call CopyData pop bc @@ -117,4 +117,4 @@ DrawBadges: db $20, $28, $30, $38, $40, $48, $50, $58 GymLeaderFaceAndBadgeTileGraphics: - INCBIN "gfx/badges.2bpp" + INCBIN "gfx/trainer_card/badges.2bpp" diff --git a/engine/menu/draw_start_menu.asm b/engine/menus/draw_start_menu.asm similarity index 95% rename from engine/menu/draw_start_menu.asm rename to engine/menus/draw_start_menu.asm index 632b8c3a8..7ca75ecb4 100644 --- a/engine/menu/draw_start_menu.asm +++ b/engine/menus/draw_start_menu.asm @@ -1,12 +1,12 @@ ; function that displays the start menu -DrawStartMenu: +DrawStartMenu:: CheckEvent EVENT_GOT_POKEDEX ; menu with pokedex - coord hl, 10, 0 + hlcoord 10, 0 lb bc, 14, 8 - jr nz,.drawTextBoxBorder + jr nz, .drawTextBoxBorder ; shorter menu if the player doesn't have the pokedex - coord hl, 10, 0 + hlcoord 10, 0 lb bc, 12, 8 .drawTextBoxBorder call TextBoxBorder @@ -23,7 +23,7 @@ DrawStartMenu: ld [wMenuWatchMovingOutOfBounds], a ld hl, wd730 set 6, [hl] ; no pauses between printing each letter - coord hl, 12, 2 + hlcoord 12, 2 CheckEvent EVENT_GOT_POKEDEX ; case for not having pokedex ld a, $06 diff --git a/engine/menu/league_pc.asm b/engine/menus/league_pc.asm similarity index 88% rename from engine/menu/league_pc.asm rename to engine/menus/league_pc.asm index 9946b90d0..5551fd0b8 100755 --- a/engine/menu/league_pc.asm +++ b/engine/menus/league_pc.asm @@ -6,10 +6,10 @@ PKMNLeaguePC: push hl ld a, [wUpdateSpritesEnabled] push af - ld a, [hTilesetType] + ldh a, [hTilesetType] push af xor a - ld [hTilesetType], a + ldh [hTilesetType], a ld [wSpriteFlipped], a ld [wUpdateSpritesEnabled], a ld [wHoFTeamIndex2], a @@ -29,7 +29,7 @@ PKMNLeaguePC: push bc ld a, [wHoFTeamIndex2] ld [wHoFTeamIndex], a - callba LoadHallOfFameTeams + farcall LoadHallOfFameTeams call LeaguePCShowTeam pop bc jr c, .doneShowingTeams @@ -40,7 +40,7 @@ PKMNLeaguePC: jr nz, .loop .doneShowingTeams pop af - ld [hTilesetType], a + ldh [hTilesetType], a pop af ld [wUpdateSpritesEnabled], a pop hl @@ -56,7 +56,7 @@ LeaguePCShowTeam: push bc call LeaguePCShowMon call WaitForTextScrollButtonPress - ld a, [hJoyHeld] + ldh a, [hJoyHeld] bit 1, a jr nz, .exit ld hl, wHallOfFame + HOF_MON @@ -95,25 +95,25 @@ LeaguePCShowMon: ld b, SET_PAL_POKEMON_WHOLE_SCREEN ld c, 0 call RunPaletteCommand - coord hl, 12, 5 + hlcoord 12, 5 call GetMonHeader call LoadFrontSpriteByMonIndex call GBPalNormal - coord hl, 0, 13 + hlcoord 0, 13 lb bc, 2, 18 call TextBoxBorder - coord hl, 1, 15 + hlcoord 1, 15 ld de, HallOfFameNoText call PlaceString - coord hl, 16, 15 + hlcoord 16, 15 ld de, wHoFTeamNo lb bc, 1, 3 call PrintNumber - jpba Func_7033f + farjp Func_7033f HallOfFameNoText: db "HALL OF FAME No @" AccessedHoFPCText: - TX_FAR _AccessedHoFPCText - db "@" + text_far _AccessedHoFPCText + text_end diff --git a/engine/menus/link_menu.asm b/engine/menus/link_menu.asm new file mode 100644 index 000000000..2f2db5739 --- /dev/null +++ b/engine/menus/link_menu.asm @@ -0,0 +1,910 @@ +Func_f531b:: + ld c, $14 + call DelayFrames + ld a, $1 + ld [wBuffer], a + xor a + ld [wUnknownSerialFlag_d499], a + coord hl, 0, 0 + lb bc, 4, 5 + call TextBoxBorder + ld de, Text_f5791 + coord hl, 1, 2 + call PlaceString + coord hl, 8, 0 + lb bc, 8, 10 + call TextBoxBorder + coord hl, 10, 2 + ld de, Text_f579c + call PlaceString + coord hl, 0, 10 + lb bc, 6, 18 + call TextBoxBorder + call UpdateSprites + xor a + ld [wUnusedCD37], a + ld [wd72d], a + ld [wd11e], a + ld hl, wTopMenuItemY + ld a, $2 + ld [hli], a + ld a, $9 + ld [hli], a + xor a + ld [hli], a + inc hl + ld a, $3 + ld [hli], a + ld a, $3 + ld [hli], a + xor a + ld [hl], a +.asm_f5377 + call Func_f56bd + call HandleMenuInput + and $3 + add a + add a + ld b, a + ld a, [wCurrentMenuItem] + cp $3 + jr nz, .asm_f5390 + bit 2, b + jr z, .asm_f5390 + dec a + ld b, $8 +.asm_f5390 + add b + add $c0 + ld [wLinkMenuSelectionSendBuffer], a + ld [wLinkMenuSelectionSendBuffer+1], a +.asm_f5399 + ld hl, wLinkMenuSelectionSendBuffer + ld a, [hl] + ldh [hSerialSendData], a + call Serial_ExchangeByte + push af + ld hl, wLinkMenuSelectionSendBuffer + ld a, [hl] + ldh [hSerialSendData], a + call Serial_ExchangeByte + pop bc + cp b + jr nz, .asm_f5399 + and $f0 + cp $c0 + jr nz, .asm_f5399 + ld a, b + and $c + jr nz, .asm_f53c4 + ld a, [wLinkMenuSelectionSendBuffer] + and $c + jr z, .asm_f5377 + jr .asm_f53df +.asm_f53c4 + ld a, [wLinkMenuSelectionSendBuffer] + and $c + jr z, .asm_f53d1 + ldh a, [hSerialConnectionStatus] + cp $2 + jr z, .asm_f53df +.asm_f53d1 + ld a, $1 + ld [wd11e], a + ld a, b + ld [wLinkMenuSelectionSendBuffer], a + and $3 + ld [wCurrentMenuItem], a +.asm_f53df + call DelayFrame + call DelayFrame + ld hl, wLinkMenuSelectionSendBuffer + ld a, [hl] + ldh [hSerialSendData], a + call Serial_ExchangeByte + call Serial_ExchangeByte + ld b, $14 +.loop + call DelayFrame + call Serial_SendZeroByte + dec b + jr nz, .loop + ld b, " " + ld c, " " + ld d, " " + ld e, "▷" + ld a, [wLinkMenuSelectionSendBuffer] + bit 3, a + jr nz, .asm_f541a + ld b, e + ld e, c + ld a, [wCurrentMenuItem] + and a + jr z, .asm_f541a + ld c, b + ld b, d + dec a + jr z, .asm_f541a + ld d, c + ld c, b +.asm_f541a + ld a, b + ldcoord_a 9, 2 + ld a, c + ldcoord_a 9, 4 + ld a, d + ldcoord_a 9, 6 + ld a, e + ldcoord_a 9, 8 + ld c, 40 + call DelayFrames + ld a, [wLinkMenuSelectionSendBuffer] + bit 3, a + jr nz, asm_f547f + ld a, [wCurrentMenuItem] + cp $3 + jr z, asm_f547f + inc a + ld [wUnknownSerialFlag_d499], a + ld a, [wCurrentMenuItem] + ld hl, PointerTable_f5488 + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .returnaddress + push de + jp hl +.returnaddress + ld [wLinkMenuSelectionSendBuffer], a + xor a + ld [wUnknownSerialCounter], a + ld [wUnknownSerialCounter+1], a + call Serial_SyncAndExchangeNybble + ld a, [wLinkMenuSelectionSendBuffer] + and a + jr nz, asm_f547c + ld a, [wLinkMenuSelectionReceiveBuffer] + and a + jr nz, Func_f5476 + xor a + ld [wUnknownSerialCounter], a + ld [wUnknownSerialCounter+1], a + and a + ret + +Func_f5476:: + ld hl, ColosseumIneligibleText + call PrintText +asm_f547c:: + jp Func_f531b + +asm_f547f:: + xor a + ld [wUnknownSerialCounter], a + ld [wUnknownSerialCounter+1], a + scf + ret + +PointerTable_f5488:: + dw PokeCup + dw PikaCup + dw PetitCup + +PokeCup:: + ld hl, wPartyCount + ld a, [hli] + cp $3 + jp nz, NotThreeMonsInParty + ld b, $3 +.loop + ld a, [hli] + cp MEW + jp z, MewInParty + dec b + jr nz, .loop + dec hl + dec hl + cp [hl] ; is third mon second mon? + jp z, DuplicateSpecies + dec hl ; wPartySpecies + cp [hl] ; is third mon first mon? + jp z, DuplicateSpecies + ld a, [hli] + cp [hl] ; is first mon second mon? + jp z, DuplicateSpecies + ld a, [wPartyMon1Level] + cp 56 + jp nc, LevelAbove55 + cp 50 + jp c, LevelUnder50 + ld b, a + ld a, [wPartyMon2Level] + cp 56 + jp nc, LevelAbove55 + cp 50 + jp c, LevelUnder50 + ld c, a + ld a, [wPartyMon3Level] + cp 56 + jp nc, LevelAbove55 + cp 50 + jp c, LevelUnder50 + add b + add c + cp 156 + jp nc, CombinedLevelsGreaterThan155 + xor a + ret + +PikaCup:: + ld hl, wPartyCount + ld a, [hli] + cp $3 + jp nz, NotThreeMonsInParty + ld b, $3 +.loop + ld a, [hli] ; wPartySpecies + cp MEW + jp z, MewInParty + dec b + jr nz, .loop + dec hl + dec hl + cp [hl] ; is third mon second mon? + jp z, DuplicateSpecies + dec hl ; wPartySpecies + cp [hl] ; is third mon first mon? + jp z, DuplicateSpecies + ld a, [hli] + cp [hl] ; is first mon second mon? + jp z, DuplicateSpecies + ld a, [wPartyMon1Level] + cp 21 + jp nc, LevelAbove20 + cp 15 + jp c, LevelUnder15 + ld b, a + ld a, [wPartyMon2Level] + cp 21 + jp nc, LevelAbove20 + cp 15 + jp c, LevelUnder15 + ld c, a + ld a, [wPartyMon3Level] + cp 21 + jp nc, LevelAbove20 + cp 15 + jp c, LevelUnder15 + add b + add c + cp 51 + jp nc, CombinedLevelsAbove50 + xor a + ret + +PetitCup:: + ld hl, wPartyCount + ld a, [hli] + cp $3 + jp nz, NotThreeMonsInParty + ld b, $3 +.loop + ld a, [hli] + cp MEW + jp z, MewInParty + dec b + jr nz, .loop + dec hl + dec hl + cp [hl] ; is third mon second mon? + jp z, DuplicateSpecies + dec hl ; wPartySpecies + cp [hl] ; is third mon first mon? + jp z, DuplicateSpecies + ld a, [hli] + cp [hl] ; is first mon second mon? + jp z, DuplicateSpecies + dec hl + ld a, [hl] + ld [wcf91], a + push hl + callfar Func_3b10f + pop hl + jp c, asm_f56ad + inc hl + ld a, [hl] + ld [wcf91], a + push hl + callfar Func_3b10f + pop hl + jp c, asm_f56ad + inc hl + ld a, [hl] + ld [wcf91], a + push hl + callfar Func_3b10f + pop hl + jp c, asm_f56ad + dec hl + dec hl + ld b, $3 +.bigloop + ld a, [hli] + push hl + push bc + push af + dec a + ld c, a + ld b, $0 + ld hl, PokedexEntryPointers + add hl, bc + add hl, bc + ld de, wcd6d + ld bc, $2 + ld a, BANK(PokedexEntryPointers) + call FarCopyData + ld hl, wcd6d + ld a, [hli] + ld h, [hl] + ld l, a + ld de, wcd6d + ld bc, $14 + ld a, BANK(PokedexEntryPointers) + call FarCopyData + ld hl, wcd6d +.loop2 + ld a, [hli] + cp "@" + jr nz, .loop2 + ld a, [hli] + cp $7 + jp nc, asm_f5689 + add a + add a + ld b, a + add a + add b + ld b, a + ld a, [hli] + add b + cp $51 + jp nc, asm_f5689 + ld a, [hli] + sub $b9 + ld a, [hl] + sbc $1 + jp nc, asm_f569b + pop af + pop bc + pop hl + dec b + jr nz, .bigloop + ld a, [wPartyMon1Level] + cp 31 + jp nc, LevelAbove30 + cp 25 + jp c, LevelUnder25 + ld b, a + ld a, [wPartyMon2Level] + cp 31 + jp nc, LevelAbove30 + cp 25 + jp c, LevelUnder25 + ld c, a + ld a, [wPartyMon3Level] + cp 31 + jp nc, LevelAbove30 + cp 25 + jp c, LevelUnder25 + add b + add c + cp 81 + jp nc, CombinedLevelsAbove80 + xor a + ret + +NotThreeMonsInParty:: + ld hl, Colosseum3MonsText + call PrintText + ld a, $1 + ret + +MewInParty:: + ld hl, ColosseumMewText + call PrintText + ld a, $2 + ret + +DuplicateSpecies:: + ld hl, ColosseumDifferentMonsText + call PrintText + ld a, $3 + ret + +LevelAbove55:: + ld hl, ColosseumMaxL55Text + call PrintText + ld a, $4 + ret + +LevelUnder50:: + ld hl, ColosseumMinL50Text + call PrintText + ld a, $5 + ret + +CombinedLevelsGreaterThan155:: + ld hl, ColosseumTotalL155Text + call PrintText + ld a, $6 + ret + +LevelAbove30:: + ld hl, ColosseumMaxL30Text + call PrintText + ld a, $7 + ret + +LevelUnder25:: + ld hl, ColosseumMinL25Text + call PrintText + ld a, $8 + ret + +CombinedLevelsAbove80:: + ld hl, ColosseumTotalL80Text + call PrintText + ld a, $9 + ret + +LevelAbove20:: + ld hl, ColosseumMaxL20Text + call PrintText + ld a, $a + ret + +LevelUnder15:: + ld hl, ColosseumMinL15Text + call PrintText + ld a, $b + ret + +CombinedLevelsAbove50:: + ld hl, ColosseumTotalL50Text + call PrintText + ld a, $c + ret + +asm_f5689:: + pop af + pop bc + pop hl + ld [wd11e], a + call GetMonName + ld hl, ColosseumHeightText + call PrintText + ld a, $d + ret + +asm_f569b:: + pop af + pop bc + pop hl + ld [wd11e], a + call GetMonName + ld hl, ColosseumWeightText + call PrintText + ld a, $e + ret + +asm_f56ad:: + ld a, [hl] + ld [wd11e], a + call GetMonName + ld hl, ColosseumEvolvedText + call PrintText + ld a, $f + ret + +Func_f56bd:: + xor a + ldh [hAutoBGTransferEnabled], a + coord hl, 1, 11 + lb bc, 6, 18 + call ClearScreenArea + ld a, [wCurrentMenuItem] + cp $3 + jr nc, .asm_f56e6 + ld hl, PointerTable_f56ee + ld a, [wCurrentMenuItem] + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld d, h + ld e, l + coord hl, 1, 12 + call PlaceString +.asm_f56e6 + call Delay3 + ld a, $1 + ldh [hAutoBGTransferEnabled], a + ret + +PointerTable_f56ee:: + dw Text_f56f4 + dw Text_f5728 + dw Text_f575b + +Text_f56f4:: + db "LVs of 3:50-55" + next "Sum of LVs:155 MAX" + next "MEW can't attend.@" + +Text_f5728:: + db "LVs of 3:15-20" + next "Sum of LVs:50 MAX" + next "MEW can't attend.@" + +Text_f575b:: + db "3 Basic .LV25-30" + next "Sum of LVs:80 MAX" + next "6’8” and 44lb MAX@" + +Text_f5791:: + db "View" + next "Rules@" + +Text_f579c:: + db "# Cup" + next "Pika Cup" + next "Petit Cup" + next "CANCEL@" + +Colosseum3MonsText:: + text_far _Colosseum3MonsText + text_end + +ColosseumMewText:: + text_far _ColosseumMewText + text_end + +ColosseumDifferentMonsText:: + text_far _ColosseumDifferentMonsText + text_end + +ColosseumMaxL55Text:: + text_far _ColosseumMaxL55Text + text_end + +ColosseumMinL50Text:: + text_far _ColosseumMinL50Text + text_end + +ColosseumTotalL155Text:: + text_far _ColosseumTotalL155Text + text_end + +ColosseumMaxL30Text:: + text_far _ColosseumMaxL30Text + text_end + +ColosseumMinL25Text:: + text_far _ColosseumMinL25Text + text_end + +ColosseumTotalL80Text:: + text_far _ColosseumTotalL80Text + text_end + +ColosseumMaxL20Text:: + text_far _ColosseumMaxL20Text + text_end + +ColosseumMinL15Text:: + text_far _ColosseumMinL15Text + text_end + +ColosseumTotalL50Text:: + text_far _ColosseumTotalL50Text + text_end + +ColosseumHeightText:: + text_far _ColosseumHeightText + text_end + +ColosseumWeightText:: + text_far _ColosseumWeightText + text_end + +ColosseumEvolvedText:: + text_far _ColosseumEvolvedText + text_end + +ColosseumIneligibleText:: + text_far _ColosseumIneligibleText + text_end + +LinkMenu: + xor a + ld [wLetterPrintingDelayFlags], a + ld hl, wd72e + set 6, [hl] + ld hl, TextTerminator_f5a16 + call PrintText + call SaveScreenTilesToBuffer1 + ld hl, ColosseumWhereToText + call PrintText + hlcoord 5, 3 + lb bc, 8, 13 + call TextBoxBorder + call UpdateSprites + hlcoord 7, 5 + ld de, TradeCenterText + call PlaceString + xor a + ld [wUnusedCD37], a + ld [wd72d], a + ld [wd11e], a + ld hl, wTopMenuItemY + ld a, $5 + ld [hli], a + ld a, $6 + ld [hli], a + xor a + ld [hli], a + inc hl + ld a, $3 + ld [hli], a + ld [hli], a + xor a + ld [hl], a +.waitForInputLoop + call HandleMenuInput + and A_BUTTON | B_BUTTON + add a + add a + ld b, a + ld a, [wCurrentMenuItem] + cp $3 + jr nz, .asm_f586b + bit 2, b + jr z, .asm_f586b + dec a + ld b, $8 +.asm_f586b + add b + add $d0 + ld [wLinkMenuSelectionSendBuffer], a + ld [wLinkMenuSelectionSendBuffer + 1], a +.exchangeMenuSelectionLoop + call Serial_ExchangeLinkMenuSelection + ld a, [wLinkMenuSelectionReceiveBuffer] + ld b, a + and $f0 + cp $d0 + jr z, .asm_f5c7d + ld a, [wLinkMenuSelectionReceiveBuffer + 1] + ld b, a + and $f0 + cp $d0 + jr nz, .exchangeMenuSelectionLoop +.asm_f5c7d + ld a, b + and $c ; did the enemy press A or B? + jr nz, .enemyPressedAOrB +; the enemy didn't press A or B + ld a, [wLinkMenuSelectionSendBuffer] + and $c ; did the player press A or B? + jr z, .waitForInputLoop ; if neither the player nor the enemy pressed A or B, try again + jr .doneChoosingMenuSelection ; if the player pressed A or B but the enemy didn't, use the player's selection +.enemyPressedAOrB + ld a, [wLinkMenuSelectionSendBuffer] + and $c ; did the player press A or B? + jr z, .useEnemyMenuSelection ; if the enemy pressed A or B but the player didn't, use the enemy's selection +; the enemy and the player both pressed A or B +; The gameboy that is clocking the connection wins. + ldh a, [hSerialConnectionStatus] + cp USING_INTERNAL_CLOCK + jr z, .doneChoosingMenuSelection +.useEnemyMenuSelection + ld a, $1 + ld [wd11e], a + ld a, b + ld [wLinkMenuSelectionSendBuffer], a + and $3 + ld [wCurrentMenuItem], a ; wCurrentMenuItem +.doneChoosingMenuSelection + ldh a, [hSerialConnectionStatus] + cp USING_INTERNAL_CLOCK + jr nz, .skipStartingTransfer + call DelayFrame + call DelayFrame + ld a, START_TRANSFER_INTERNAL_CLOCK + ldh [rSC], a +.skipStartingTransfer + ld b, " " + ld c, " " + ld d, " " + ld e, "▷" + ld a, [wLinkMenuSelectionSendBuffer] + and (B_BUTTON << 2) ; was B button pressed? + jr nz, .updateCursorPosition +; A button was pressed + ld a, [wCurrentMenuItem] + cp $2 + jp z, .asm_f5963 + ld b, e + ld e, c + ld a, [wCurrentMenuItem] + and a + jr z, .updateCursorPosition + ld c, b + ld b, d + dec a + jr z, .updateCursorPosition + ld d, c + ld c, b +.updateCursorPosition + call Func_f59ec + call LoadScreenTilesFromBuffer1 + ld a, [wLinkMenuSelectionSendBuffer] + and (B_BUTTON << 2) ; was B button pressed? + jr nz, .choseCancel ; cancel if B pressed + ld a, [wCurrentMenuItem] + cp $2 + jr z, .choseCancel + xor a + ld [wWalkBikeSurfState], a ; start walking + ld a, [wCurrentMenuItem] + and a + ld a, COLOSSEUM + jr nz, .next + ld a, TRADE_CENTER +.next + ld [wd72d], a + ld hl, ColosseumPleaseWaitText + call PrintText + ld c, 50 + call DelayFrames + ld hl, wd732 + res 1, [hl] + ld a, [wDefaultMap] + ld [wDestinationMap], a + callfar SpecialWarpIn + ld c, 20 + call DelayFrames + xor a + ld [wMenuJoypadPollCount], a + ld [wSerialExchangeNybbleSendData], a + inc a ; LINK_STATE_IN_CABLE_CLUB + ld [wLinkState], a + ld [wEnteringCableClub], a + jpfar SpecialEnterMap +.choseCancel + xor a + ld [wMenuJoypadPollCount], a + call Delay3 + callfar CloseLinkConnection + ld hl, ColosseumCanceledText + call PrintText + ld hl, wd72e + res 6, [hl] + ret + +.asm_f5963 + ld a, [wd11e] + and a + jr nz, .asm_f5974 + ld b, " " + ld c, " " + ld d, "▷" + ld e, " " + call Func_f59ec +.asm_f5974 + xor a + ld [wBuffer], a + ld a, $ff + ld [wSerialExchangeNybbleReceiveData], a + ld a, $b + ld [wLinkMenuSelectionSendBuffer], a + ld b, $78 +.loop + ldh a, [hSerialConnectionStatus] + cp $2 + call z, DelayFrame + dec b + jr z, .asm_f59b2 + call Serial_ExchangeNybble + call DelayFrame + ld a, [wSerialExchangeNybbleReceiveData] + inc a + jr z, .loop + ld b, $f +.loop2 + call DelayFrame + call Serial_ExchangeNybble + dec b + jr nz, .loop2 + ld b, $f +.loop3 + call DelayFrame + call Serial_SendZeroByte + dec b + jr nz, .loop3 + jr .asm_f59d6 + +.asm_f59b2 + xor a + ld [wUnknownSerialCounter], a + ld [wUnknownSerialCounter+1], a + ld a, [wd11e] + and a + jr z, .asm_f59cd + ld b, " " + ld c, " " + ld d, " " + ld e, "▷" + call Func_f59ec + jp .choseCancel + +.asm_f59cd + ld hl, ColosseumVersionText + call PrintText + jp .choseCancel + +.asm_f59d6 + ld b, " " + ld c, " " + ld d, "▷" + ld e, " " + call Func_f59ec + call Func_f531b + jp c, .choseCancel + ld a, $f0 + jp .next + +Func_f59ec:: + ld a, b + ldcoord_a 6, 5 + ld a, c + ldcoord_a 6, 7 + ld a, d + ldcoord_a 6, 9 + ld a, e + ldcoord_a 6, 11 + ld c, 40 + call DelayFrames + ret + +ColosseumWhereToText: + text_far _ColosseumWhereToText + text_end + +ColosseumPleaseWaitText: + text_far _ColosseumPleaseWaitText + text_end + +ColosseumCanceledText: + text_far _ColosseumCanceledText + text_end + +ColosseumVersionText: + text_far _ColosseumVersionText + text_end + +TextTerminator_f5a16: + text_end + +TradeCenterText: + db "TRADE CENTER" + next "COLOSSEUM" + next "COLOSSEUM2" + next "CANCEL@" diff --git a/engine/menu/main_menu.asm b/engine/menus/main_menu.asm similarity index 87% rename from engine/menu/main_menu.asm rename to engine/menus/main_menu.asm index ce27ebbaf..7d81d2f6a 100755 --- a/engine/menu/main_menu.asm +++ b/engine/menus/main_menu.asm @@ -33,18 +33,18 @@ MainMenu: cp 1 jr z, .noSaveFile ; there's a save file - coord hl, 0, 0 + hlcoord 0, 0 lb bc, 6, 13 call TextBoxBorder - coord hl, 2, 2 + hlcoord 2, 2 ld de, ContinueText call PlaceString jr .next2 .noSaveFile - coord hl, 0, 0 + hlcoord 0, 0 lb bc, 4, 13 call TextBoxBorder - coord hl, 2, 2 + hlcoord 2, 2 ld de, NewGameText call PlaceString .next2 @@ -92,11 +92,11 @@ MainMenu: set 5, [hl] .inputLoop xor a - ld [hJoyPressed], a - ld [hJoyReleased], a - ld [hJoyHeld], a + ldh [hJoyPressed], a + ldh [hJoyReleased], a + ldh [hJoyHeld], a call Joypad - ld a, [hJoyHeld] + ldh a, [hJoyHeld] bit 0, a jr nz, .pressedA bit 1, a @@ -141,12 +141,13 @@ Func_5cc1: ret NotEnoughMemoryText: - TX_FAR _NotEnoughMemoryText - db "@" + text_far _NotEnoughMemoryText + text_end StartNewGame: ld hl, wd732 res 1, [hl] +StartNewGameDebug: call OakSpeech ld a, $8 ld [wPlayerMovingDirection], a @@ -154,11 +155,11 @@ StartNewGame: call DelayFrames ; enter map after using a special warp or loading the game from the main menu -SpecialEnterMap: +SpecialEnterMap:: xor a - ld [hJoyPressed], a - ld [hJoyHeld], a - ld [hJoy5], a + ldh [hJoyPressed], a + ldh [hJoyHeld], a + ldh [hJoy5], a ld [wd72d], a ld hl, wd732 set 0, [hl] ; count play time @@ -172,7 +173,9 @@ SpecialEnterMap: jp EnterMap ContinueText: - db "CONTINUE", $4e + db "CONTINUE" + next "" + ; fallthrough NewGameText: db "NEW GAME" @@ -180,49 +183,49 @@ NewGameText: DisplayContinueGameInfo: xor a - ld [H_AUTOBGTRANSFERENABLED], a - coord hl, 4, 7 + ldh [hAutoBGTransferEnabled], a + hlcoord 4, 7 lb bc, 8, 14 call TextBoxBorder - coord hl, 5, 9 + hlcoord 5, 9 ld de, SaveScreenInfoText call PlaceString - coord hl, 12, 9 + hlcoord 12, 9 ld de, wPlayerName call PlaceString - coord hl, 17, 11 + hlcoord 17, 11 call PrintNumBadges - coord hl, 16, 13 + hlcoord 16, 13 call PrintNumOwnedMons - coord hl, 13, 15 + hlcoord 13, 15 call PrintPlayTime ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld c, 30 jp DelayFrames PrintSaveScreenText: xor a - ld [H_AUTOBGTRANSFERENABLED], a - coord hl, 4, 0 + ldh [hAutoBGTransferEnabled], a + hlcoord 4, 0 lb bc, 8, 14 call TextBoxBorder call LoadTextBoxTilePatterns call UpdateSprites - coord hl, 5, 2 + hlcoord 5, 2 ld de, SaveScreenInfoText call PlaceString - coord hl, 12, 2 + hlcoord 12, 2 ld de, wPlayerName call PlaceString - coord hl, 17, 4 + hlcoord 17, 4 call PrintNumBadges - coord hl, 16, 6 + hlcoord 16, 6 call PrintNumOwnedMons - coord hl, 13, 8 + hlcoord 13, 8 call PrintPlayTime ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld c, 30 jp DelayFrames @@ -263,7 +266,7 @@ SaveScreenInfoText: next "TIME@" DisplayOptionMenu: - callab DisplayOptionMenu_ + callfar DisplayOptionMenu_ ret CheckForPlayerNameInSRAM: diff --git a/engine/menu/naming_screen.asm b/engine/menus/naming_screen.asm similarity index 86% rename from engine/menu/naming_screen.asm rename to engine/menus/naming_screen.asm index 2560677a8..553c47d0b 100755 --- a/engine/menu/naming_screen.asm +++ b/engine/menus/naming_screen.asm @@ -4,7 +4,7 @@ AskName: push hl ld a, [wIsInBattle] dec a - coord hl, 0, 0 + hlcoord 0, 0 lb bc, 4, 11 call z, ClearScreenArea ; only if in wild battle ld a, [wcf91] @@ -12,7 +12,7 @@ AskName: call GetMonName ld hl, DoYouWantToNicknameText call PrintText - coord hl, 14, 7 + hlcoord 14, 7 lb bc, 8, 15 ld a, TWO_OPTION_MENU ld [wTextBoxID], a @@ -49,10 +49,10 @@ AskName: jp CopyData DoYouWantToNicknameText: - TX_FAR _DoYouWantToNicknameText - db "@" + text_far _DoYouWantToNicknameText + text_end -DisplayNameRaterScreen: +DisplayNameRaterScreen:: ld hl, wBuffer xor a ld [wUpdateSpritesEnabled], a @@ -91,8 +91,8 @@ DisplayNamingScreen: call RunPaletteCommand call LoadHpBarAndStatusTilePatterns call LoadEDTile - callba LoadMonPartySpriteGfx - coord hl, 0, 4 + farcall LoadMonPartySpriteGfx + hlcoord 0, 4 lb bc, 9, 18 call TextBoxBorder call PrintNamingText @@ -126,11 +126,11 @@ DisplayNamingScreen: .inputLoop ld a, [wCurrentMenuItem] push af - callba AnimatePartyMon_ForceSpeed1 + farcall AnimatePartyMon_ForceSpeed1 pop af ld [wCurrentMenuItem], a call JoypadLowSensitivity - ld a, [hJoyPressed] + ldh a, [hJoyPressed] and a jr z, .inputLoop ld hl, .namingScreenButtonFunctions @@ -170,7 +170,7 @@ DisplayNamingScreen: ld a, [wIsInBattle] and a jp z, LoadTextBoxTilePatterns - jpab LoadHudTilePatterns + jpfar LoadHudTilePatterns .namingScreenButtonFunctions dw .dPadReturnPoint @@ -229,10 +229,10 @@ DisplayNamingScreen: ld [wNamingScreenLetter], a call CalcStringLength ld a, [wNamingScreenLetter] - cp $e5 + cp "゙" ld de, Dakutens jr z, .dakutensAndHandakutens - cp $e4 + cp "゚" ld de, Handakutens jr z, .dakutensAndHandakutens ld a, [wNamingScreenType] @@ -327,10 +327,10 @@ LoadEDTile: ; Because Yellow uses the MBC5, loading $0 into $2000 - $2fff range will load bank0 instead of bank1 and thus incorrectly load the tile ; Instead of defining the correct bank, GameFreak decided to simply copy the ED_Tile in the function during HBlank ld de, ED_Tile - ld hl, vFont + $700 + ld hl, vFont tile $70 ld c, $4 ; number of copies needed .waitForHBlankLoop - ld a, [rSTAT] + ldh a, [rSTAT] and %10 ; in HBlank? jr nz, .waitForHBlankLoop ld a, [de] @@ -346,19 +346,19 @@ LoadEDTile: ret ED_Tile: - INCBIN "gfx/ED_tile.1bpp" + INCBIN "gfx/font/ED.1bpp" ED_TileEnd: PrintAlphabet: xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld a, [wAlphabetCase] and a ld de, LowerCaseAlphabet jr nz, .lowercase ld de, UpperCaseAlphabet .lowercase - coord hl, 2, 5 + hlcoord 2, 5 lb bc, 5, 9 ; 5 rows, 9 columns .outerLoop push bc @@ -376,26 +376,22 @@ PrintAlphabet: jr nz, .outerLoop call PlaceString ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a jp Delay3 -LowerCaseAlphabet: - db "abcdefghijklmnopqrstuvwxyz ×():;[]",$e1,$e2,"-?!♂♀/⠄,¥UPPER CASE@" - -UpperCaseAlphabet: - db "ABCDEFGHIJKLMNOPQRSTUVWXYZ ×():;[]",$e1,$e2,"-?!♂♀/⠄,¥lower case@" +INCLUDE "data/text/alphabets.asm" PrintNicknameAndUnderscores: call CalcStringLength ld a, c ld [wNamingScreenNameLength], a - coord hl, 10, 2 + hlcoord 10, 2 lb bc, 1, 10 call ClearScreenArea - coord hl, 10, 2 + hlcoord 10, 2 ld de, wcf4b call PlaceString - coord hl, 10, 3 + hlcoord 10, 3 ld a, [wNamingScreenType] cp NAME_MON_SCREEN jr nc, .pokemon1 @@ -434,7 +430,7 @@ PrintNicknameAndUnderscores: .emptySpacesRemaining ld c, a ld b, $0 - coord hl, 10, 3 + hlcoord 10, 3 add hl, bc ld [hl], $77 ; raised underscore tile id ret @@ -453,21 +449,7 @@ DakutensAndHandakutens: ld [wNamingScreenLetter], a ret -Dakutens: - db "かが", "きぎ", "くぐ", "けげ", "こご" - db "さざ", "しじ", "すず", "せぜ", "そぞ" - db "ただ", "ちぢ", "つづ", "てで", "とど" - db "はば", "ひび", "ふぶ", "へべ", "ほぼ" - db "カガ", "キギ", "クグ", "ケゲ", "コゴ" - db "サザ", "シジ", "スズ", "セゼ", "ソゾ" - db "タダ", "チヂ", "ツヅ", "テデ", "トド" - db "ハバ", "ヒビ", "フブ", "へべ", "ホボ" - db $ff - -Handakutens: - db "はぱ", "ひぴ", "ふぷ", "へぺ", "ほぽ" - db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ" - db $ff +INCLUDE "data/text/dakutens.asm" ; calculates the length of the string at wcf4b and stores it in c CalcStringLength: @@ -482,7 +464,7 @@ CalcStringLength: jr .loop PrintNamingText: - coord hl, 0, 1 + hlcoord 0, 1 ld a, [wNamingScreenType] ld de, YourTextString and a @@ -493,16 +475,16 @@ PrintNamingText: ld a, [wcf91] ld [wMonPartySpriteSpecies], a push af - callba WriteMonPartySpriteOAMBySpecies + farcall WriteMonPartySpriteOAMBySpecies pop af ld [wd11e], a call GetMonName - coord hl, 4, 1 + hlcoord 4, 1 call PlaceString ld hl, $1 add hl, bc - ld [hl], $c9 - coord hl, 1, 3 + ld [hl], "の" ; leftover from Japanese version; blank tile $c9 in English + hlcoord 1, 3 ld de, NicknameTextString jr .placeString .notNickname diff --git a/engine/menus/oaks_pc.asm b/engine/menus/oaks_pc.asm new file mode 100755 index 000000000..7743e5dfc --- /dev/null +++ b/engine/menus/oaks_pc.asm @@ -0,0 +1,28 @@ +OpenOaksPC: + call SaveScreenTilesToBuffer2 + ld hl, AccessedOaksPCText + call PrintText + ld hl, GetDexRatedText + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .closePC + predef DisplayDexRating +.closePC + ld hl, ClosedOaksPCText + call PrintText + jp LoadScreenTilesFromBuffer2 + +GetDexRatedText: + text_far _GetDexRatedText + text_end + +ClosedOaksPCText: + text_far _ClosedOaksPCText + text_waitbutton + text_end + +AccessedOaksPCText: + text_far _AccessedOaksPCText + text_end diff --git a/engine/menu/options.asm b/engine/menus/options.asm similarity index 94% rename from engine/menu/options.asm rename to engine/menus/options.asm index da89ad820..110bef2a8 100644 --- a/engine/menu/options.asm +++ b/engine/menus/options.asm @@ -2,7 +2,7 @@ DisplayOptionMenu_: call InitOptionsMenu .optionMenuLoop call JoypadLowSensitivity - ld a, [hJoy5] + ldh a, [hJoy5] and START | B_BUTTON jr nz, .exitOptionMenu call OptionsControl @@ -42,7 +42,7 @@ OptionMenuJumpTable: OptionsMenu_TextSpeed: call GetTextSpeed - ld a, [hJoy5] + ldh a, [hJoy5] bit 4, a ; right jr nz, .pressedRight bit 5, a @@ -79,7 +79,7 @@ OptionsMenu_TextSpeed: ld e, [hl] inc hl ld d, [hl] - coord hl, 14, 2 + hlcoord 14, 2 call PlaceString and a ret @@ -117,7 +117,7 @@ GetTextSpeed: ret OptionsMenu_BattleAnimations: - ld a, [hJoy5] + ldh a, [hJoy5] and D_RIGHT | D_LEFT jr nz, .asm_41d33 ld a, [wOptions] @@ -137,7 +137,7 @@ OptionsMenu_BattleAnimations: ld e, [hl] inc hl ld d, [hl] - coord hl, 14, 4 + hlcoord 14, 4 call PlaceString and a ret @@ -152,7 +152,7 @@ AnimationOffText: db "OFF@" OptionsMenu_BattleStyle: - ld a, [hJoy5] + ldh a, [hJoy5] and D_LEFT | D_RIGHT jr nz, .asm_41d6b ld a, [wOptions] @@ -173,7 +173,7 @@ OptionsMenu_BattleStyle: ld e, [hl] inc hl ld d, [hl] - coord hl, 14, 6 + hlcoord 14, 6 call PlaceString and a ret @@ -192,7 +192,7 @@ OptionsMenu_SpeakerSettings: and $30 swap a ld c, a - ld a, [hJoy5] + ldh a, [hJoy5] bit 4, a jr nz, .pressedRight bit 5, a @@ -212,7 +212,7 @@ OptionsMenu_SpeakerSettings: swap a ld b, a xor a - ld [rNR51], a + ldh [rNR51], a ld a, [wOptions] and $cf or b @@ -225,7 +225,7 @@ OptionsMenu_SpeakerSettings: ld e, [hl] inc hl ld d, [hl] - coord hl, 8, 8 + hlcoord 8, 8 call PlaceString and a ret @@ -247,7 +247,7 @@ Earphone3SoundText: OptionsMenu_GBPrinterBrightness: call Func_41e7b - ld a, [hJoy5] + ldh a, [hJoy5] bit 4, a jr nz, .pressedRight bit 5, a @@ -281,7 +281,7 @@ OptionsMenu_GBPrinterBrightness: ld e, [hl] inc hl ld d, [hl] - coord hl, 8, 10 + hlcoord 8, 10 call PlaceString and a ret @@ -339,7 +339,7 @@ OptionsMenu_Dummy: ret OptionsMenu_Cancel: - ld a, [hJoy5] + ldh a, [hJoy5] and A_BUTTON jr nz, .pressedCancel and a @@ -350,7 +350,7 @@ OptionsMenu_Cancel: OptionsControl: ld hl, wOptionsCursorLocation - ld a, [hJoy5] + ldh a, [hJoy5] cp D_DOWN jr z, .pressedDown cp D_UP @@ -389,7 +389,7 @@ OptionsControl: ret OptionsMenu_UpdateCursorPosition: - coord hl, 1, 1 + hlcoord 1, 1 ld de, SCREEN_WIDTH ld c, 16 .loop @@ -397,7 +397,7 @@ OptionsMenu_UpdateCursorPosition: add hl, de dec c jr nz, .loop - coord hl, 1, 2 + hlcoord 1, 2 ld bc, SCREEN_WIDTH * 2 ld a, [wOptionsCursorLocation] call AddNTimes @@ -405,13 +405,13 @@ OptionsMenu_UpdateCursorPosition: ret InitOptionsMenu: - coord hl, 0, 0 + hlcoord 0, 0 lb bc, SCREEN_HEIGHT - 2, SCREEN_WIDTH - 2 call TextBoxBorder - coord hl, 2, 2 + hlcoord 2, 2 ld de, AllOptionsText call PlaceString - coord hl, 2, 16 + hlcoord 2, 16 ld de, OptionMenuCancelText call PlaceString xor a @@ -428,7 +428,7 @@ InitOptionsMenu: xor a ld [wOptionsCursorLocation], a inc a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Delay3 ret diff --git a/engine/menus/party_menu.asm b/engine/menus/party_menu.asm new file mode 100755 index 000000000..32f47f6a6 --- /dev/null +++ b/engine/menus/party_menu.asm @@ -0,0 +1,314 @@ +DrawPartyMenu_:: + xor a + ldh [hAutoBGTransferEnabled], a + call ClearScreen + call UpdateSprites + farcall LoadMonPartySpriteGfxWithLCDDisabled ; load pokemon icon graphics + +RedrawPartyMenu_:: + ld a, [wPartyMenuTypeOrMessageID] + cp SWAP_MONS_PARTY_MENU + jp z, .printMessage + call ErasePartyMenuCursors + farcall InitPartyMenuBlkPacket + hlcoord 3, 0 + ld de, wPartySpecies + xor a + ld c, a + ldh [hPartyMonIndex], a + ld [wWhichPartyMenuHPBar], a +.loop + ld a, [de] + cp $FF ; reached the terminator? + jp z, .afterDrawingMonEntries + push bc + push de + push hl + ld a, c + push hl + ld hl, wPartyMonNicks + call GetPartyMonName + pop hl + call PlaceString ; print the pokemon's name + ldh a, [hPartyMonIndex] + ld [wWhichPokemon], a + callfar IsThisPartymonStarterPikachu_Party + jr nc, .regularMon + call CheckPikachuFollowingPlayer + jr z, .regularMon + ld a, $ff + ldh [hPartyMonIndex], a +.regularMon + farcall WriteMonPartySpriteOAMByPartyIndex ; place the appropriate pokemon icon + ld a, [wWhichPokemon] + inc a + ldh [hPartyMonIndex], a + call LoadMonData + pop hl + push hl + ld a, [wMenuItemToSwap] + and a ; is the player swapping pokemon positions? + jr z, .skipUnfilledRightArrow +; if the player is swapping pokemon positions + dec a + ld b, a + ld a, [wWhichPokemon] + cp b ; is the player swapping the current pokemon in the list? + jr nz, .skipUnfilledRightArrow +; the player is swapping the current pokemon in the list + dec hl + dec hl + dec hl + ld a, "▷" ; unfilled right arrow menu cursor + ld [hli], a ; place the cursor + inc hl + inc hl +.skipUnfilledRightArrow + ld a, [wPartyMenuTypeOrMessageID] ; menu type + cp TMHM_PARTY_MENU + jr z, .teachMoveMenu + cp EVO_STONE_PARTY_MENU + jr z, .evolutionStoneMenu + push hl + ld bc, 14 ; 14 columns to the right + add hl, bc + ld de, wLoadedMonStatus + call PrintStatusCondition + pop hl + push hl + ld bc, SCREEN_WIDTH + 1 ; down 1 row and right 1 column + ldh a, [hFlagsFFFA] + set 0, a + ldh [hFlagsFFFA], a + add hl, bc + predef DrawHP2 ; draw HP bar and prints current / max HP + ldh a, [hFlagsFFFA] + res 0, a + ldh [hFlagsFFFA], a + call SetPartyMenuHPBarColor ; color the HP bar (on SGB) + pop hl + jr .printLevel +.teachMoveMenu + push hl + predef CanLearnTM ; check if the pokemon can learn the move + pop hl + ld de, .ableToLearnMoveText + ld a, c + and a + jr nz, .placeMoveLearnabilityString + ld de, .notAbleToLearnMoveText +.placeMoveLearnabilityString + push hl + ld bc, 20 + 9 ; down 1 row and right 9 columns + add hl, bc + call PlaceString + pop hl +.printLevel + ld bc, 10 ; move 10 columns to the right + add hl, bc + call PrintLevel + pop hl + pop de + inc de + ld bc, 2 * 20 + add hl, bc + pop bc + inc c + jp .loop +.ableToLearnMoveText + db "ABLE@" +.notAbleToLearnMoveText + db "NOT ABLE@" +.evolutionStoneMenu + push hl + ld hl, EvosMovesPointerTable + ld b, 0 + ld a, [wLoadedMonSpecies] + dec a + add a + rl b + ld c, a + add hl, bc + ld de, wEvosMoves + ld a, BANK(EvosMovesPointerTable) + ld bc, 2 + call FarCopyData + ld hl, wEvosMoves + ld a, [hli] + ld h, [hl] + ld l, a + ld de, wEvosMoves + ld a, BANK(EvosMovesPointerTable) + ld bc, wEvosMoves.end - wEvosMoves + call FarCopyData + ld hl, wEvosMoves + ld de, .notAbleToEvolveText +; loop through the pokemon's evolution entries +.checkEvolutionsLoop + ld a, [hli] + and a ; reached terminator? + jr z, .placeEvolutionStoneString ; if so, place the "NOT ABLE" string + inc hl + inc hl + cp EV_ITEM + jr nz, .checkEvolutionsLoop +; if it's a stone evolution entry + dec hl + dec hl + ld b, [hl] + ld a, [wEvoStoneItemID] ; the stone the player used + inc hl + inc hl + inc hl + cp b ; does the player's stone match this evolution entry's stone? + jr nz, .checkEvolutionsLoop +; if it does match + ld de, .ableToEvolveText +.placeEvolutionStoneString + pop hl + push hl + ld bc, 20 + 9 ; down 1 row and right 9 columns + add hl, bc + call PlaceString + pop hl + jr .printLevel +.ableToEvolveText + db "ABLE@" +.notAbleToEvolveText + db "NOT ABLE@" +.afterDrawingMonEntries + ld b, SET_PAL_PARTY_MENU + call RunPaletteCommand +.printMessage + ld hl, wd730 + ld a, [hl] + push af + push hl + set 6, [hl] ; turn off letter printing delay + ld a, [wPartyMenuTypeOrMessageID] ; message ID + cp FIRST_PARTY_MENU_TEXT_ID + jr nc, .printItemUseMessage + add a + ld hl, PartyMenuMessagePointers + ld b, 0 + ld c, a + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText +.done + pop hl + pop af + ld [hl], a + ld a, 1 + ldh [hAutoBGTransferEnabled], a + call Delay3 + jp GBPalNormal +.printItemUseMessage + and $0F + ld hl, PartyMenuItemUseMessagePointers + add a + ld c, a + ld b, 0 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push hl + ld a, [wUsedItemOnWhichPokemon] + ld hl, wPartyMonNicks + call GetPartyMonName + pop hl + call PrintText + jr .done + +PartyMenuItemUseMessagePointers: + dw AntidoteText + dw BurnHealText + dw IceHealText + dw AwakeningText + dw ParlyzHealText + dw PotionText + dw FullHealText + dw ReviveText + dw RareCandyText + +PartyMenuMessagePointers: + dw PartyMenuNormalText + dw PartyMenuItemUseText + dw PartyMenuBattleText + dw PartyMenuUseTMText + dw PartyMenuSwapMonText + dw PartyMenuItemUseText + +PartyMenuNormalText: + text_far _PartyMenuNormalText + text_end + +PartyMenuItemUseText: + text_far _PartyMenuItemUseText + text_end + +PartyMenuBattleText: + text_far _PartyMenuBattleText + text_end + +PartyMenuUseTMText: + text_far _PartyMenuUseTMText + text_end + +PartyMenuSwapMonText: + text_far _PartyMenuSwapMonText + text_end + +PotionText: + text_far _PotionText + text_end + +AntidoteText: + text_far _AntidoteText + text_end + +ParlyzHealText: + text_far _ParlyzHealText + text_end + +BurnHealText: + text_far _BurnHealText + text_end + +IceHealText: + text_far _IceHealText + text_end + +AwakeningText: + text_far _AwakeningText + text_end + +FullHealText: + text_far _FullHealText + text_end + +ReviveText: + text_far _ReviveText + text_end + +RareCandyText: + text_far _RareCandyText + sound_get_item_1 ; probably supposed to play SFX_LEVEL_UP but the wrong music bank is loaded + text_promptbutton + text_end + +SetPartyMenuHPBarColor: + ld hl, wPartyMenuHPBarColors + ld a, [wWhichPartyMenuHPBar] + ld c, a + ld b, 0 + add hl, bc + call GetHealthBarColor + ld b, SET_PAL_PARTY_MENU_HP_BARS + call RunPaletteCommand + ld hl, wWhichPartyMenuHPBar + inc [hl] + ret diff --git a/engine/menu/pc.asm b/engine/menus/pc.asm similarity index 86% rename from engine/menu/pc.asm rename to engine/menus/pc.asm index 5639bd999..4c340e7bf 100755 --- a/engine/menu/pc.asm +++ b/engine/menus/pc.asm @@ -1,4 +1,4 @@ -ActivatePC: +ActivatePC:: call SaveScreenTilesToBuffer2 ld a, SFX_TURN_ON_PC call PlaySound @@ -10,7 +10,7 @@ ActivatePC: call LoadScreenTilesFromBuffer2 call Delay3 PCMainMenu: - callba DisplayPCMainMenu + farcall DisplayPCMainMenu ld hl, wFlags_0xcd60 set 5, [hl] call HandleMenuInput @@ -56,19 +56,19 @@ PCMainMenu: call WaitForSoundToFinish ld hl, AccessedMyPCText call PrintText - callba PlayerPC + farcall PlayerPC jr ReloadMainMenu OaksPC: ld a, SFX_ENTER_PC call PlaySound call WaitForSoundToFinish - callba OpenOaksPC + farcall OpenOaksPC jr ReloadMainMenu PKMNLeague: ld a, SFX_ENTER_PC call PlaySound call WaitForSoundToFinish - callba PKMNLeaguePC + farcall PKMNLeaguePC jr ReloadMainMenu BillsPC: ld a, SFX_ENTER_PC @@ -82,7 +82,7 @@ BillsPC: ld hl, AccessedBillsPCText .printText call PrintText - callba BillsPC_ + farcall BillsPC_ ReloadMainMenu: xor a ld [wDoNotWaitForButtonPressAfterDisplayingText], a @@ -99,28 +99,28 @@ LogOff: ret TurnedOnPC1Text: - TX_FAR _TurnedOnPC1Text - db "@" + text_far _TurnedOnPC1Text + text_end AccessedBillsPCText: - TX_FAR _AccessedBillsPCText - db "@" + text_far _AccessedBillsPCText + text_end AccessedSomeonesPCText: - TX_FAR _AccessedSomeonesPCText - db "@" + text_far _AccessedSomeonesPCText + text_end AccessedMyPCText: - TX_FAR _AccessedMyPCText - db "@" + text_far _AccessedMyPCText + text_end ; removes one of the specified item ID [hItemToRemoveID] from bag (if existent) -RemoveItemByID: +RemoveItemByID:: ld hl, wBagItems - ld a, [hItemToRemoveID] + ldh a, [hItemToRemoveID] ld b, a xor a - ld [hItemToRemoveIndex], a + ldh [hItemToRemoveIndex], a .loop ld a, [hli] cp -1 ; reached terminator? @@ -128,14 +128,14 @@ RemoveItemByID: cp b jr z, .foundItem inc hl - ld a, [hItemToRemoveIndex] + ldh a, [hItemToRemoveIndex] inc a - ld [hItemToRemoveIndex], a + ldh [hItemToRemoveIndex], a jr .loop .foundItem ld a, $1 ld [wItemQuantity], a - ld a, [hItemToRemoveIndex] + ldh a, [hItemToRemoveIndex] ld [wWhichPokemon], a ld hl, wNumBagItems jp RemoveItemFromInventory diff --git a/engine/menu/players_pc.asm b/engine/menus/players_pc.asm similarity index 89% rename from engine/menu/players_pc.asm rename to engine/menus/players_pc.asm index 1cc02cbf5..1fac030b2 100755 --- a/engine/menu/players_pc.asm +++ b/engine/menus/players_pc.asm @@ -1,4 +1,4 @@ -PlayerPC: +PlayerPC:: ld a, ITEM_NAME ld [wNameListType], a call SaveScreenTilesToBuffer1 @@ -22,11 +22,11 @@ PlayerPCMenu: ld hl, wFlags_0xcd60 set 5, [hl] call LoadScreenTilesFromBuffer2 - coord hl, 0, 0 + hlcoord 0, 0 lb bc, 8, 14 call TextBoxBorder call UpdateSprites - coord hl, 2, 2 + hlcoord 2, 2 ld de, PlayersPCMenuEntries call PlaceString ld hl, wTopMenuItemY @@ -246,57 +246,57 @@ PlayersPCMenuEntries: next "LOG OFF@" TurnedOnPC2Text: - TX_FAR _TurnedOnPC2Text - db "@" + text_far _TurnedOnPC2Text + text_end WhatDoYouWantText: - TX_FAR _WhatDoYouWantText - db "@" + text_far _WhatDoYouWantText + text_end WhatToDepositText: - TX_FAR _WhatToDepositText - db "@" + text_far _WhatToDepositText + text_end DepositHowManyText: - TX_FAR _DepositHowManyText - db "@" + text_far _DepositHowManyText + text_end ItemWasStoredText: - TX_FAR _ItemWasStoredText - db "@" + text_far _ItemWasStoredText + text_end NothingToDepositText: - TX_FAR _NothingToDepositText - db "@" + text_far _NothingToDepositText + text_end NoRoomToStoreText: - TX_FAR _NoRoomToStoreText - db "@" + text_far _NoRoomToStoreText + text_end WhatToWithdrawText: - TX_FAR _WhatToWithdrawText - db "@" + text_far _WhatToWithdrawText + text_end WithdrawHowManyText: - TX_FAR _WithdrawHowManyText - db "@" + text_far _WithdrawHowManyText + text_end WithdrewItemText: - TX_FAR _WithdrewItemText - db "@" + text_far _WithdrewItemText + text_end NothingStoredText: - TX_FAR _NothingStoredText - db "@" + text_far _NothingStoredText + text_end CantCarryMoreText: - TX_FAR _CantCarryMoreText - db "@" + text_far _CantCarryMoreText + text_end WhatToTossText: - TX_FAR _WhatToTossText - db "@" + text_far _WhatToTossText + text_end TossHowManyText: - TX_FAR _TossHowManyText - db "@" + text_far _TossHowManyText + text_end diff --git a/engine/menu/pokedex.asm b/engine/menus/pokedex.asm similarity index 88% rename from engine/menu/pokedex.asm rename to engine/menus/pokedex.asm index bc2a7e9b4..874fe50f8 100755 --- a/engine/menu/pokedex.asm +++ b/engine/menus/pokedex.asm @@ -10,9 +10,9 @@ ShowPokedexMenu: ld [wLastMenuItem], a inc a ld [wd11e], a - ld [hJoy7], a + ldh [hJoy7], a .setUpGraphics - callab LoadPokedexTilePatterns + callfar LoadPokedexTilePatterns .loop ld b, SET_PAL_GENERIC call RunPaletteCommand @@ -36,7 +36,7 @@ ShowPokedexMenu: ld [wMenuWatchMovingOutOfBounds], a ld [wCurrentMenuItem], a ld [wLastMenuItem], a - ld [hJoy7], a + ldh [hJoy7], a ld [wWastedByteCD3A], a ld [wOverrideSimulatedJoypadStatesMask], a pop af @@ -97,7 +97,7 @@ HandlePokedexSideMenu: xor a ld [hli], a ; old menu item ID ld [wMenuWatchMovingOutOfBounds], a - ld [hJoy7], a + ldh [hJoy7], a .handleMenuInput call HandleMenuInput bit 1, a ; was the B button pressed? @@ -126,9 +126,9 @@ HandlePokedexSideMenu: pop af ld [wCurrentMenuItem], a ld a, $1 - ld [hJoy7], a + ldh [hJoy7], a push bc - coord hl, 0, 3 + hlcoord 0, 3 ld de, 20 lb bc, " ", 13 call DrawTileLine ; cover up the menu cursor in the pokemon list @@ -137,7 +137,7 @@ HandlePokedexSideMenu: .buttonBPressed push bc - coord hl, 15, 8 + hlcoord 15, 8 ld de, 20 lb bc, " ", 9 call DrawTileLine ; cover up the menu cursor in the side menu @@ -162,18 +162,18 @@ HandlePokedexSideMenu: jr .exitSideMenu .chosePrint - ld a, [hTilesetType] + ldh a, [hTilesetType] push af xor a - ld [hTilesetType], a + ldh [hTilesetType], a ld a, [wd11e] ld [wcf91], a - callab PrintPokedexEntry + callfar PrintPokedexEntry xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call ClearScreen pop af - ld [hTilesetType], a + ldh [hTilesetType], a ld b, $3 jr .exitSideMenu @@ -257,45 +257,45 @@ HandlePokedexListMenu: Pokedex_DrawInterface: xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ; draw the horizontal line separating the seen and owned amounts from the menu - coord hl, 15, 6 + hlcoord 15, 6 ld a, "─" ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [hli], a - coord hl, 14, 0 + hlcoord 14, 0 ld [hl], $71 ; vertical line tile - coord hl, 14, 1 + hlcoord 14, 1 call DrawPokedexVerticalLine - coord hl, 14, 9 + hlcoord 14, 9 call DrawPokedexVerticalLine ld hl, wPokedexSeen ld b, wPokedexSeenEnd - wPokedexSeen call CountSetBits ld de, wNumSetBits - coord hl, 16, 2 + hlcoord 16, 2 lb bc, 1, 3 call PrintNumber ; print number of seen pokemon ld hl, wPokedexOwned ld b, wPokedexOwnedEnd - wPokedexOwned call CountSetBits ld de, wNumSetBits - coord hl, 16, 5 + hlcoord 16, 5 lb bc, 1, 3 call PrintNumber ; print number of owned pokemon - coord hl, 16, 1 + hlcoord 16, 1 ld de, PokedexSeenText call PlaceString - coord hl, 16, 4 + hlcoord 16, 4 ld de, PokedexOwnText call PlaceString - coord hl, 1, 1 + hlcoord 1, 1 ld de, PokedexContentsText call PlaceString - coord hl, 16, 8 + hlcoord 16, 8 ld de, PokedexMenuItemsText call PlaceString ; find the highest pokedex number among the pokemon the player has seen @@ -347,11 +347,11 @@ PokedexMenuItemsText: Pokedex_PlacePokemonList: xor a - ld [H_AUTOBGTRANSFERENABLED], a - coord hl, 4, 2 + ldh [hAutoBGTransferEnabled], a + hlcoord 4, 2 lb bc, 14, 10 call ClearScreenArea - coord hl, 1, 3 + hlcoord 1, 3 ld a, [wListScrollOffset] ld [wd11e], a ld d, 7 @@ -411,7 +411,7 @@ Pokedex_PlacePokemonList: dec d jr nz, .printPokemonLoop ld a, 01 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Delay3 ret @@ -434,18 +434,18 @@ ShowPokedexData: call GBPalWhiteOutWithDelay3 call ClearScreen call UpdateSprites - callab LoadPokedexTilePatterns ; load pokedex tiles + callfar LoadPokedexTilePatterns ; load pokedex tiles ; function to display pokedex data from inside the pokedex ShowPokedexDataInternal: ld hl, wd72c set 1, [hl] ld a, $33 ; 3/7 volume - ld [rNR50], a - ld a, [hTilesetType] + ldh [rNR50], a + ldh a, [hTilesetType] push af xor a - ld [hTilesetType], a + ldh [hTilesetType], a call GBPalWhiteOut ; zero all palettes ld a, [wd11e] ; pokemon ID ld [wcf91], a @@ -458,11 +458,11 @@ ShowPokedexDataInternal: call c, Pokedex_PrintFlavorTextAtRow11 .waitForButtonPress call JoypadLowSensitivity - ld a, [hJoy5] + ldh a, [hJoy5] and a, A_BUTTON | B_BUTTON jr z, .waitForButtonPress pop af - ld [hTilesetType], a + ldh [hTilesetType], a call GBPalWhiteOut call ClearScreen call RunDefaultPaletteCommand @@ -471,11 +471,11 @@ ShowPokedexDataInternal: ld hl, wd72c res 1, [hl] ld a, $77 ; max volume - ld [rNR50], a + ldh [rNR50], a ret HeightWeightText: - db "HT ?", $60, "??", $61 + db "HT ?′??″" next "WT ???lb@" ; XXX does anything point to this? @@ -484,52 +484,50 @@ PokeText: ; horizontal line that divides the pokedex text description from the rest of the data PokedexDataDividerLine: - db $68, $69, $6B, $69, $6B - db $69, $6B, $69, $6B, $6B - db $6B, $6B, $69, $6B, $69 - db $6B, $69, $6B, $69, $6A + db $68, $69, $6B, $69, $6B, $69, $6B, $69, $6B, $6B + db $6B, $6B, $69, $6B, $69, $6B, $69, $6B, $69, $6A db "@" DrawDexEntryOnScreen: call ClearScreen - coord hl, 0, 0 + hlcoord 0, 0 ld de, 1 lb bc, $64, SCREEN_WIDTH call DrawTileLine ; draw top border - coord hl, 0, 17 + hlcoord 0, 17 ld b, $6f call DrawTileLine ; draw bottom border - coord hl, 0, 1 + hlcoord 0, 1 ld de, 20 lb bc, $66, $10 call DrawTileLine ; draw left border - coord hl, 19, 1 + hlcoord 19, 1 ld b, $67 call DrawTileLine ; draw right border ld a, $63 ; upper left corner tile - Coorda 0, 0 + ldcoord_a 0, 0 ld a, $65 ; upper right corner tile - Coorda 19, 0 + ldcoord_a 19, 0 ld a, $6c ; lower left corner tile - Coorda 0, 17 + ldcoord_a 0, 17 ld a, $6e ; lower right corner tile - Coorda 19, 17 + ldcoord_a 19, 17 - coord hl, 0, 9 + hlcoord 0, 9 ld de, PokedexDataDividerLine call PlaceString ; draw horizontal divider line - coord hl, 9, 6 + hlcoord 9, 6 ld de, HeightWeightText call PlaceString call GetMonName - coord hl, 9, 2 + hlcoord 9, 2 call PlaceString ld hl, PokedexEntryPointers @@ -543,7 +541,7 @@ DrawDexEntryOnScreen: ld e, a ld d, [hl] ; de = address of pokedex entry - coord hl, 9, 4 + hlcoord 9, 4 call PlaceString ; print species name ld h, b @@ -553,10 +551,10 @@ DrawDexEntryOnScreen: push af call IndexToPokedex - coord hl, 2, 8 + hlcoord 2, 8 ld a, "№" ld [hli], a - ld a, "⠄" + ld a, "" ld [hli], a ld de, wd11e lb bc, LEADING_ZEROES | 1, 3 @@ -578,7 +576,7 @@ DrawDexEntryOnScreen: call Delay3 call GBPalNormal call GetMonHeader ; load pokemon picture location - coord hl, 1, 1 + hlcoord 1, 1 call LoadFlippedFrontSpriteByMonIndex ; draw pokemon picture ld a, [wcf91] call PlayCry ; play pokemon cry @@ -594,17 +592,17 @@ DrawDexEntryOnScreen: inc de ; de = address of feet (height) ld a, [de] ; reads feet, but a is overwritten without being used - coord hl, 12, 6 + hlcoord 12, 6 lb bc, 1, 2 call PrintNumber ; print feet (height) - ld a, $60 ; feet symbol tile (one tick) + ld a, "′" ld [hl], a inc de inc de ; de = address of inches (height) - coord hl, 15, 6 + hlcoord 15, 6 lb bc, LEADING_ZEROES | 1, 2 call PrintNumber ; print inches (height) - ld a, $61 ; inches symbol tile (two ticks) + ld a, "″" ld [hl], a ; now print the weight (note that weight is stored in tenths of pounds internally) inc de @@ -623,13 +621,13 @@ DrawDexEntryOnScreen: ld a, [de] ; a = lower byte of weight ld [hl], a ; store lower byte of weight in [hDexWeight + 1] ld de, hDexWeight - coord hl, 11, 8 + hlcoord 11, 8 lb bc, 2, 5 ; 2 bytes, 5 digits call PrintNumber ; print weight - coord hl, 14, 8 - ld a, [hDexWeight + 1] + hlcoord 14, 8 + ldh a, [hDexWeight + 1] sub 10 - ld a, [hDexWeight] + ldh a, [hDexWeight] sbc 0 jr nc, .next ld [hl], "0" ; if the weight is less than 10, put a 0 before the decimal point @@ -637,54 +635,54 @@ DrawDexEntryOnScreen: inc hl ld a, [hli] ld [hld], a ; make space for the decimal point by moving the last digit forward one tile - ld [hl], "⠄" ; decimal point tile + ld [hl], "" ; decimal point tile pop af - ld [hDexWeight + 1], a ; restore original value of [hDexWeight + 1] + ldh [hDexWeight + 1], a ; restore original value of [hDexWeight + 1] pop af - ld [hDexWeight], a ; restore original value of [hDexWeight] + ldh [hDexWeight], a ; restore original value of [hDexWeight] pop hl inc hl ; hl = address of pokedex description text scf ret Pokedex_PrintFlavorTextAtRow11: - coord bc, 1, 11 + bccoord 1, 11 Pokedex_PrintFlavorTextAtBC: - ld a, 2 - ld [$fff9], a + ld a, %10 + ldh [hClearLetterPrintingDelayFlags], a call TextCommandProcessor ; print pokedex description text xor a - ld [$fff9], a + ldh [hClearLetterPrintingDelayFlags], a ret Pokedex_PrepareDexEntryForPrinting: - coord hl, 0, 0 + hlcoord 0, 0 ld de, SCREEN_WIDTH lb bc, $66, $d call DrawTileLine - coord hl, 19, 0 + hlcoord 19, 0 ld b, $67 call DrawTileLine - coord hl, 0, 13 + hlcoord 0, 13 ld de, $1 lb bc, $6f, SCREEN_WIDTH call DrawTileLine ld a, $6c - Coorda 0, 13 + ldcoord_a 0, 13 ld a, $6e - Coorda 19, 13 + ldcoord_a 19, 13 ld a, [wPrinterPokedexEntryTextPointer] ld l, a ld a, [wPrinterPokedexEntryTextPointer + 1] ld h, a - coord bc, 1, 1 - ld a, [hFlags_0xFFFA] + bccoord 1, 1 + ldh a, [hFlagsFFFA] set 3, a - ld [hFlags_0xFFFA], a + ldh [hFlagsFFFA], a call Pokedex_PrintFlavorTextAtBC - ld a, [hFlags_0xFFFA] + ldh a, [hFlagsFFFA] res 3, a - ld [hFlags_0xFFFA], a + ldh [hFlagsFFFA], a ret ; draws a line of tiles @@ -705,7 +703,7 @@ DrawTileLine: pop bc ret -INCLUDE "data/pokedex_entries.asm" +INCLUDE "data/pokemon/dex_entries.asm" PokedexToIndex: ; converts the Pokédex number at wd11e to an index @@ -744,4 +742,4 @@ IndexToPokedex: pop bc ret -INCLUDE "data/pokedex_order.asm" +INCLUDE "data/pokemon/dex_order.asm" diff --git a/engine/save.asm b/engine/menus/save.asm similarity index 93% rename from engine/save.asm rename to engine/menus/save.asm index 7f453bf03..bcb27ddf7 100755 --- a/engine/save.asm +++ b/engine/menus/save.asm @@ -28,8 +28,8 @@ LoadSAV: ret FileDataDestroyedText: - TX_FAR _FileDataDestroyedText - db "@" + text_far _FileDataDestroyedText + text_end LoadSAV0: call EnableSRAMAndLatchClockData @@ -68,7 +68,7 @@ LoadSAV0: ld bc, wSpriteDataEnd - wSpriteDataStart call CopyData ld a, [sTilesetType] - ld [hTilesetType], a + ldh [hTilesetType], a ld hl, sCurBoxData ld de, wBoxDataStart ld bc, wBoxDataEnd - wBoxDataStart @@ -130,7 +130,7 @@ LoadSAVIgnoreBadCheckSum: jp LoadSAV2 SaveSAV: - callba PrintSaveScreenText + farcall PrintSaveScreenText ld c, 10 call DelayFrames ld hl, WouldYouLikeToSaveText @@ -156,7 +156,7 @@ SaveSAV: call DelayFrames ld hl, GameSavedText call PrintText - ld c,10 + ld c, 10 call DelayFrames ld a, SFX_SAVE call PlaySoundWaitForCurrent @@ -167,7 +167,7 @@ SaveSAV: SaveSAVConfirm: call PrintText - coord hl, 0, 7 + hlcoord 0, 7 lb bc, 8, 1 ld a, TWO_OPTION_MENU ld [wTextBoxID], a @@ -176,20 +176,20 @@ SaveSAVConfirm: ret WouldYouLikeToSaveText: - TX_FAR _WouldYouLikeToSaveText - db "@" + text_far _WouldYouLikeToSaveText + text_end SavingText: - TX_FAR _SavingText - db "@" + text_far _SavingText + text_end GameSavedText: - TX_FAR _GameSavedText - db "@" + text_far _GameSavedText + text_end OlderFileWillBeErasedText: - TX_FAR _OlderFileWillBeErasedText - db "@" + text_far _OlderFileWillBeErasedText + text_end SaveSAVtoSRAM0: call EnableSRAMAndLatchClockData @@ -211,7 +211,7 @@ SaveSAVtoSRAM0: ld de, sCurBoxData ld bc, wBoxDataEnd - wBoxDataStart call CopyData - ld a, [hTilesetType] + ldh a, [hTilesetType] ld [sTilesetType], a ld hl, sPlayerName ld bc, sMainDataCheckSum - sPlayerName @@ -262,7 +262,7 @@ SaveSAVtoSRAM2: call DisableSRAMAndPrepareClockData ret -SaveSAVtoSRAM: +SaveSAVtoSRAM:: ld a, $2 ld [wSaveFileStatus], a call SaveSAVtoSRAM0 @@ -342,10 +342,10 @@ ChangeBox:: call z, EmptyAllSRAMBoxes ; if so, empty all boxes in SRAM call DisplayChangeBoxMenu call UpdateSprites - ld hl, hFlags_0xFFFA + ld hl, hFlagsFFFA set 1, [hl] call HandleMenuInput - ld hl, hFlags_0xFFFA + ld hl, hFlagsFFFA res 1, [hl] bit 1, a ; pressed b ret nz @@ -377,8 +377,8 @@ ChangeBox:: ret WhenYouChangeBoxText: - TX_FAR _WhenYouChangeBoxText - db "@" + text_far _WhenYouChangeBoxText + text_end CopyBoxToOrFromSRAM: ; copy an entire box from hl to de with b as the SRAM bank @@ -406,7 +406,7 @@ CopyBoxToOrFromSRAM: DisplayChangeBoxMenu: xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld a, A_BUTTON | B_BUTTON ld [wMenuWatchedKeys], a ld a, 11 @@ -421,39 +421,39 @@ DisplayChangeBoxMenu: and $7f ld [wCurrentMenuItem], a ld [wLastMenuItem], a - coord hl, 0, 0 + hlcoord 0, 0 lb bc, 2, 9 call TextBoxBorder ld hl, ChooseABoxText call PrintText - coord hl, 11, 0 + hlcoord 11, 0 lb bc, 12, 7 call TextBoxBorder - ld hl, hFlags_0xFFFA + ld hl, hFlagsFFFA set 2, [hl] ld de, BoxNames - coord hl, 13, 1 + hlcoord 13, 1 call PlaceString - ld hl, hFlags_0xFFFA + ld hl, hFlagsFFFA res 2, [hl] ld a, [wCurrentBoxNum] and $7f cp 9 jr c, .singleDigitBoxNum sub 9 - coord hl, 8, 2 + hlcoord 8, 2 ld [hl], "1" add "0" jr .next .singleDigitBoxNum add "1" .next - Coorda 9, 2 - coord hl, 1, 2 + ldcoord_a 9, 2 + hlcoord 1, 2 ld de, BoxNoText call PlaceString call GetMonCountsForAllBoxes - coord hl, 18, 1 + hlcoord 18, 1 ld de, wBoxMonCounts ld bc, SCREEN_WIDTH ld a, $c @@ -470,12 +470,12 @@ DisplayChangeBoxMenu: dec a jr nz, .loop ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ret ChooseABoxText: - TX_FAR _ChooseABoxText - db "@" + text_far _ChooseABoxText + text_end BoxNames: db "BOX 1" @@ -575,11 +575,11 @@ GetMonCountsForBoxesInBank: ret SAVCheckRandomID: -;checks if Sav file is the same by checking player's name 1st letter ($a598) +; checks if Sav file is the same by checking player's name 1st letter ; and the two random numbers generated at game beginning -;(which are stored at wPlayerID)s +; (which are stored at wPlayerID)s call EnableSRAMAndLatchClockData - ld a, $1 + ld a, $01 ld [MBC1SRamBank], a ld a, [sPlayerName] and a @@ -663,8 +663,8 @@ ClearSAV: PadSRAM_FF: ld [MBC1SRamBank], a - ld hl, $a000 - ld bc, $2000 + ld hl, SRAM_Begin + ld bc, SRAM_End - SRAM_Begin ld a, $ff jp FillMemory diff --git a/engine/menu/start_sub_menus.asm b/engine/menus/start_sub_menus.asm similarity index 86% rename from engine/menu/start_sub_menus.asm rename to engine/menus/start_sub_menus.asm index abc8f0008..84583a690 100755 --- a/engine/menu/start_sub_menus.asm +++ b/engine/menus/start_sub_menus.asm @@ -1,4 +1,4 @@ -StartMenu_Pokedex: +StartMenu_Pokedex:: predef ShowPokedexMenu call LoadScreenTilesFromBuffer2 ; restore saved screen call Delay3 @@ -6,7 +6,7 @@ StartMenu_Pokedex: call UpdateSprites jp RedisplayStartMenu -StartMenu_Pokemon: +StartMenu_Pokemon:: ld a, [wPartyCount] and a jp z, RedisplayStartMenu @@ -50,7 +50,7 @@ StartMenu_Pokemon: ld hl, wTopMenuItemY ld a, c ld [hli], a ; top menu item Y - ld a, [hFieldMoveMonMenuTopMenuItemX] + ldh a, [hFieldMoveMonMenuTopMenuItemX] ld [hli], a ; top menu item X xor a ld [hli], a ; current menu item ID @@ -130,7 +130,7 @@ StartMenu_Pokemon: dw .teleport dw .softboiled .fly - bit 2, a ; does the player have the Thunder Badge? + bit BIT_THUNDERBADGE, a jp z, .newBadgeRequired call CheckIfInOutsideMap jr z, .canFly @@ -153,7 +153,7 @@ StartMenu_Pokemon: call Func_1510 jp .goBackToMap .cut - bit 1, a ; does the player have the Cascade Badge? + bit BIT_CASCADEBADGE, a jp z, .newBadgeRequired predef UsedCut ld a, [wActionResultOrTookBattleTurn] @@ -161,9 +161,9 @@ StartMenu_Pokemon: jp z, .loop jp CloseTextDisplay .surf - bit 4, a ; does the player have the Soul Badge? + bit BIT_SOULBADGE, a jp z, .newBadgeRequired - callba IsSurfingAllowed + farcall IsSurfingAllowed ld hl, wd728 bit 1, [hl] res 1, [hl] @@ -177,7 +177,7 @@ StartMenu_Pokemon: ld a, $2 .continue ld [wd473], a - ld a,SURFBOARD + ld a, SURFBOARD ld [wcf91], a ld [wPseudoItemID], a call UseItem @@ -191,13 +191,13 @@ StartMenu_Pokemon: ld [wd473], a jp .loop .strength - bit 3, a ; does the player have the Rainbow Badge? + bit BIT_RAINBOWBADGE, a jp z, .newBadgeRequired predef PrintStrengthTxt call GBPalWhiteOutWithDelay3 jp .goBackToMap .flash - bit 0, a ; does the player have the Boulder Badge? + bit BIT_BOULDERBADGE, a jp z, .newBadgeRequired xor a ld [wMapPalOffset], a @@ -206,8 +206,8 @@ StartMenu_Pokemon: call GBPalWhiteOutWithDelay3 jp .goBackToMap .flashLightsAreaText - TX_FAR _FlashLightsAreaText - db "@" + text_far _FlashLightsAreaText + text_end .dig ld a, ESCAPE_ROPE ld [wcf91], a @@ -242,35 +242,35 @@ StartMenu_Pokemon: call GBPalWhiteOutWithDelay3 jp .goBackToMap .warpToLastPokemonCenterText - TX_FAR _WarpToLastPokemonCenterText - db "@" + text_far _WarpToLastPokemonCenterText + text_end .cannotUseTeleportNowText - TX_FAR _CannotUseTeleportNowText - db "@" + text_far _CannotUseTeleportNowText + text_end .cannotFlyHereText - TX_FAR _CannotFlyHereText - db "@" + text_far _CannotFlyHereText + text_end .softboiled ld hl, wPartyMon1MaxHP ld a, [wWhichPokemon] ld bc, wPartyMon2 - wPartyMon1 call AddNTimes ld a, [hli] - ld [H_DIVIDEND], a + ldh [hDividend], a ld a, [hl] - ld [H_DIVIDEND + 1], a + ldh [hDividend + 1], a ld a, 5 - ld [H_DIVISOR], a + ldh [hDivisor], a ld b, 2 ; number of bytes call Divide ld bc, wPartyMon1HP - wPartyMon1MaxHP add hl, bc ld a, [hld] ld b, a - ld a, [H_QUOTIENT + 3] + ldh a, [hQuotient + 3] sub b ld b, [hl] - ld a, [H_QUOTIENT + 2] + ldh a, [hQuotient + 2] sbc b jp nc, .notHealthyEnough ld a, [wPartyAndBillsPCSavedMenuItem] @@ -287,8 +287,8 @@ StartMenu_Pokemon: call PrintText jp .loop .notHealthyEnoughText - TX_FAR _NotHealthyEnoughText - db "@" + text_far _NotHealthyEnoughText + text_end .goBackToMap call RestoreScreenTilesAndReloadTilePatterns jp CloseTextDisplay @@ -297,12 +297,12 @@ StartMenu_Pokemon: call PrintText jp .loop .newBadgeRequiredText - TX_FAR _NewBadgeRequiredText - db "@" + text_far _NewBadgeRequiredText + text_end ; writes a blank tile to all possible menu cursor positions on the party menu -ErasePartyMenuCursors: - coord hl, 0, 1 +ErasePartyMenuCursors:: + hlcoord 0, 1 ld bc, 2 * 20 ; menu cursor positions are 2 rows apart ld a, 6 ; 6 menu cursor positions .loop @@ -316,7 +316,7 @@ ItemMenuLoop: call LoadScreenTilesFromBuffer2DisableBGTransfer ; restore saved screen call RunDefaultPaletteCommand -StartMenu_Item: +StartMenu_Item:: ld a, [wLinkState] dec a ; is the player in the Colosseum or Trade Centre? jr nz, .notInCableClubRoom @@ -346,10 +346,10 @@ StartMenu_Item: .choseItem ; erase menu cursor (blank each tile in front of an item name) ld a, " " - Coorda 5, 4 - Coorda 5, 6 - Coorda 5, 8 - Coorda 5, 10 + ldcoord_a 5, 4 + ldcoord_a 5, 6 + ldcoord_a 5, 8 + ldcoord_a 5, 10 call PlaceUnfilledArrowMenuCursor xor a ld [wMenuItemToSwap], a @@ -400,7 +400,7 @@ StartMenu_Item: ; use item ld [wPseudoItemID], a ; a must be 0 due to above conditional jump ld a, [wcf91] - cp HM_01 + cp HM01 jr nc, .useItem_partyMenu ld hl, UsableItems_CloseMenu ld de, 1 @@ -455,71 +455,25 @@ StartMenu_Item: jp ItemMenuLoop CannotUseItemsHereText: - TX_FAR _CannotUseItemsHereText - db "@" + text_far _CannotUseItemsHereText + text_end CannotGetOffHereText: - TX_FAR _CannotGetOffHereText - db "@" + text_far _CannotGetOffHereText + text_end -; items which bring up the party menu when used -UsableItems_PartyMenu: - db MOON_STONE - db ANTIDOTE - db BURN_HEAL - db ICE_HEAL - db AWAKENING - db PARLYZ_HEAL - db FULL_RESTORE - db MAX_POTION - db HYPER_POTION - db SUPER_POTION - db POTION - db FIRE_STONE - db THUNDER_STONE - db WATER_STONE - db HP_UP - db PROTEIN - db IRON - db CARBOS - db CALCIUM - db RARE_CANDY - db LEAF_STONE - db FULL_HEAL - db REVIVE - db MAX_REVIVE - db FRESH_WATER - db SODA_POP - db LEMONADE - db X_ATTACK - db X_DEFEND - db X_SPEED - db X_SPECIAL - db PP_UP - db ETHER - db MAX_ETHER - db ELIXER - db MAX_ELIXER - db $ff +INCLUDE "data/items/use_party.asm" -; items which close the item menu when used -UsableItems_CloseMenu: - db ESCAPE_ROPE - db ITEMFINDER - db POKE_FLUTE - db OLD_ROD - db GOOD_ROD - db SUPER_ROD - db $ff +INCLUDE "data/items/use_overworld.asm" -StartMenu_TrainerInfo: +StartMenu_TrainerInfo:: call GBPalWhiteOut call ClearScreen call UpdateSprites - ld a, [hTilesetType] + ldh a, [hTilesetType] push af xor a - ld [hTilesetType], a + ldh [hTilesetType], a call DrawTrainerInfo predef DrawBadges ; draw badges ld b, SET_PAL_TRAINER_CARD @@ -531,10 +485,10 @@ StartMenu_TrainerInfo: call LoadScreenTilesFromBuffer2 ; restore saved screen call RunDefaultPaletteCommand call ReloadMapData - callba DrawStartMenu ; XXX what difference does this make? + farcall DrawStartMenu ; XXX what difference does this make? call LoadGBPal pop af - ld [hTilesetType], a + ldh [hTilesetType], a jp RedisplayStartMenu_DoNotDrawStartMenu ; loads tile patterns and draws everything except for gym leader faces / badges @@ -543,44 +497,44 @@ DrawTrainerInfo: lb bc, BANK(RedPicFront), $01 predef DisplayPicCenteredOrUpperRight call DisableLCD - coord hl, 0, 2 + hlcoord 0, 2 ld a, " " call TrainerInfo_DrawVerticalLine - coord hl, 1, 2 + hlcoord 1, 2 call TrainerInfo_DrawVerticalLine - ld hl, vChars2 + $70 - ld de, vChars2 - ld bc, $70 * 4 + ld hl, vChars2 tile $07 + ld de, vChars2 tile $00 + ld bc, $1c tiles call CopyData ld hl, TrainerInfoTextBoxTileGraphics ; trainer info text box tile patterns - ld de, vChars2 + $770 - ld bc, $0080 + ld de, vChars2 tile $77 + ld bc, 8 tiles push bc call TrainerInfo_FarCopyData ld hl, BlankLeaderNames - ld de, vChars2 + $600 - ld bc, $0170 + ld de, vChars2 tile $60 + ld bc, $17 tiles call TrainerInfo_FarCopyData pop bc ld hl, BadgeNumbersTileGraphics ; badge number tile patterns - ld de, vChars1 + $580 + ld de, vChars1 tile $58 call TrainerInfo_FarCopyData ld hl, GymLeaderFaceAndBadgeTileGraphics ; gym leader face and badge tile patterns - ld de, vChars2 + $200 - ld bc, $0400 - ld a, $03 + ld de, vChars2 tile $20 + ld bc, 8 * 8 tiles + ld a, BANK(GymLeaderFaceAndBadgeTileGraphics) call FarCopyData ld hl, TextBoxGraphics - ld de, $00d0 + ld de, 13 tiles add hl, de ; hl = colon tile pattern - ld de, vChars1 + $560 - ld bc, $0010 - ld a, $04 + ld de, vChars1 tile $56 + ld bc, 1 tiles + ld a, BANK(TextBoxGraphics) push bc call FarCopyData pop bc - ld hl, TrainerInfoTextBoxTileGraphics + $80 ; background tile pattern - ld de, vChars1 + $570 + ld hl, TrainerInfoTextBoxTileGraphics tile 8 ; background tile pattern + ld de, vChars1 tile $57 call TrainerInfo_FarCopyData call EnableLCD ld hl, wTrainerInfoTextBoxWidthPlus1 @@ -589,7 +543,7 @@ DrawTrainerInfo: dec a ld [hli], a ld [hl], 1 - coord hl, 0, 0 + hlcoord 0, 0 call TrainerInfo_DrawTextBox ld hl, wTrainerInfoTextBoxWidthPlus1 ld a, 16 + 1 @@ -597,27 +551,27 @@ DrawTrainerInfo: dec a ld [hli], a ld [hl], 3 - coord hl, 1, 10 + hlcoord 1, 10 call TrainerInfo_DrawTextBox - coord hl, 0, 10 + hlcoord 0, 10 ld a, $d7 call TrainerInfo_DrawVerticalLine - coord hl, 19, 10 + hlcoord 19, 10 call TrainerInfo_DrawVerticalLine - coord hl, 6, 9 + hlcoord 6, 9 ld de, TrainerInfo_BadgesText call PlaceString - coord hl, 2, 2 + hlcoord 2, 2 ld de, TrainerInfo_NameMoneyTimeText call PlaceString - coord hl, 7, 2 + hlcoord 7, 2 ld de, wPlayerName call PlaceString - coord hl, 8, 4 + hlcoord 8, 4 ld de, wPlayerMoney ld c, $e3 call PrintBCDNumber - coord hl, 9, 6 + hlcoord 9, 6 ld de, wPlayTimeHours ; hours lb bc, LEFT_ALIGN | 1, 3 call PrintNumber @@ -701,7 +655,7 @@ TrainerInfo_DrawVerticalLine: jr nz, .loop ret -StartMenu_SaveReset: +StartMenu_SaveReset:: ld a, [wd72e] bit 6, a ; is the player using the link feature? jp nz, Init @@ -709,18 +663,18 @@ StartMenu_SaveReset: call LoadScreenTilesFromBuffer2 ; restore saved screen jp HoldTextDisplayOpen -StartMenu_Option: +StartMenu_Option:: xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call ClearScreen call UpdateSprites - callab DisplayOptionMenu + callfar DisplayOptionMenu call LoadScreenTilesFromBuffer2 ; restore saved screen call LoadTextBoxTilePatterns call UpdateSprites jp RedisplayStartMenu -SwitchPartyMon: +SwitchPartyMon:: call SwitchPartyMon_InitVarOrSwapData ; swap data ld a, [wSwappedMenuItem] call SwitchPartyMon_ClearGfx @@ -730,7 +684,7 @@ SwitchPartyMon: SwitchPartyMon_ClearGfx: push af - coord hl, 0, 0 + hlcoord 0, 0 ld bc, SCREEN_WIDTH * 2 call AddNTimes ld c, SCREEN_WIDTH * 2 @@ -800,10 +754,10 @@ SwitchPartyMon_InitVarOrSwapData: inc d .noCarry2 ld a, [hl] - ld [hSwapTemp], a + ldh [hSwapTemp], a ld a, [de] ld [hl], a - ld a, [hSwapTemp] + ldh a, [hSwapTemp] ld [de], a ld hl, wPartyMons ld bc, wPartyMon2 - wPartyMon1 diff --git a/engine/menu/swap_items.asm b/engine/menus/swap_items.asm similarity index 95% rename from engine/menu/swap_items.asm rename to engine/menus/swap_items.asm index 563fc7d56..2d506ce28 100644 --- a/engine/menu/swap_items.asm +++ b/engine/menus/swap_items.asm @@ -1,4 +1,4 @@ -HandleItemListSwapping: +HandleItemListSwapping:: ld a, [wListMenuID] cp ITEMLISTMENU jp nz, DisplayListMenuIDLoop ; only rearrange item list menus @@ -77,18 +77,18 @@ HandleItemListSwapping: cp b jr z, .swapSameItemType .swapDifferentItems - ld [$ff95], a ; [$ff95] = second item ID + ldh [hSwapItemID], a ; save second item ID ld a, [hld] - ld [$ff96], a ; [$ff96] = second item quantity + ldh [hSwapItemQuantity], a ; save second item quantity ld a, [de] ld [hli], a ; put first item ID in second item slot inc de ld a, [de] ld [hl], a ; put first item quantity in second item slot - ld a, [$ff96] + ldh a, [hSwapItemQuantity] ld [de], a ; put second item quantity in first item slot dec de - ld a, [$ff95] + ldh a, [hSwapItemID] ld [de], a ; put second item ID in first item slot xor a ld [wMenuItemToSwap], a ; 0 means no item is currently being swapped diff --git a/engine/menus/text_box.asm b/engine/menus/text_box.asm new file mode 100644 index 000000000..7a315af2e --- /dev/null +++ b/engine/menus/text_box.asm @@ -0,0 +1,533 @@ +; function to draw various text boxes +DisplayTextBoxID_:: + ld a, [wTextBoxID] + cp TWO_OPTION_MENU + jp z, DisplayTwoOptionMenu + ld c, a + ld hl, TextBoxFunctionTable + ld de, 3 + call SearchTextBoxTable + jr c, .functionTableMatch + ld hl, TextBoxCoordTable + ld de, 5 + call SearchTextBoxTable + jr c, .coordTableMatch + ld hl, TextBoxTextAndCoordTable + ld de, 9 + call SearchTextBoxTable + jr c, .textAndCoordTableMatch +.done + ret +.functionTableMatch + ld a, [hli] + ld h, [hl] + ld l, a ; hl = address of function + ld de, .done + push de + jp hl ; jump to the function +.coordTableMatch + call GetTextBoxIDCoords + call GetAddressOfScreenCoords + call TextBoxBorder + ret +.textAndCoordTableMatch + call GetTextBoxIDCoords + push hl + call GetAddressOfScreenCoords + call TextBoxBorder + pop hl + call GetTextBoxIDText + ld a, [wd730] + push af + ld a, [wd730] + set 6, a ; no pauses between printing each letter + ld [wd730], a + call PlaceString + pop af + ld [wd730], a + call UpdateSprites + ret + +; function to search a table terminated with $ff for a byte matching c in increments of de +; sets carry flag if a match is found and clears carry flag if not +SearchTextBoxTable: + dec de +.loop + ld a, [hli] + cp $ff + jr z, .notFound + cp c + jr z, .found + add hl, de + jr .loop +.found + scf +.notFound + ret + +; function to load coordinates from the TextBoxCoordTable or the TextBoxTextAndCoordTable +; INPUT: +; hl = address of coordinates +; OUTPUT: +; b = height +; c = width +; d = row of upper left corner +; e = column of upper left corner +GetTextBoxIDCoords: + ld a, [hli] ; column of upper left corner + ld e, a + ld a, [hli] ; row of upper left corner + ld d, a + ld a, [hli] ; column of lower right corner + sub e + dec a + ld c, a ; c = width + ld a, [hli] ; row of lower right corner + sub d + dec a + ld b, a ; b = height + ret + +; function to load a text address and text coordinates from the TextBoxTextAndCoordTable +GetTextBoxIDText: + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a ; de = address of text + push de ; save text address + ld a, [hli] + ld e, a ; column of upper left corner of text + ld a, [hl] + ld d, a ; row of upper left corner of text + call GetAddressOfScreenCoords + pop de ; restore text address + ret + +; function to point hl to the screen coordinates +; INPUT: +; d = row +; e = column +; OUTPUT: +; hl = address of upper left corner of text box +GetAddressOfScreenCoords: + push bc + hlcoord 0, 0 + ld bc, 20 +.loop ; loop to add d rows to the base address + ld a, d + and a + jr z, .addedRows + add hl, bc + dec d + jr .loop +.addedRows + pop bc + add hl, de + ret + +INCLUDE "data/text_boxes.asm" + +DisplayMoneyBox: + ld hl, wd730 + set 6, [hl] + ld a, MONEY_BOX_TEMPLATE + ld [wTextBoxID], a + call DisplayTextBoxID + hlcoord 13, 1 + lb bc, 1, 6 + call ClearScreenArea + hlcoord 12, 1 + ld de, wPlayerMoney + ld c, $a3 + call PrintBCDNumber + ld hl, wd730 + res 6, [hl] + ret + +CurrencyString: + db " ¥@" + +DoBuySellQuitMenu: + ld a, [wd730] + set 6, a ; no printing delay + ld [wd730], a + xor a + ld [wChosenMenuItem], a + ld a, BUY_SELL_QUIT_MENU_TEMPLATE + ld [wTextBoxID], a + call DisplayTextBoxID + ld a, A_BUTTON | B_BUTTON + ld [wMenuWatchedKeys], a + ld a, $2 + ld [wMaxMenuItem], a + ld a, $1 + ld [wTopMenuItemY], a + ld a, $1 + ld [wTopMenuItemX], a + xor a + ld [wCurrentMenuItem], a + ld [wLastMenuItem], a + ld [wMenuWatchMovingOutOfBounds], a + ld a, [wd730] + res 6, a ; turn on the printing delay + ld [wd730], a + call HandleMenuInput + call PlaceUnfilledArrowMenuCursor + bit 0, a ; was A pressed? + jr nz, .pressedA + bit 1, a ; was B pressed? (always true since only A/B are watched) + jr z, .pressedA + ld a, CANCELLED_MENU + ld [wMenuExitMethod], a + jr .quit +.pressedA + ld a, CHOSE_MENU_ITEM + ld [wMenuExitMethod], a + ld a, [wCurrentMenuItem] + ld [wChosenMenuItem], a + ld b, a + ld a, [wMaxMenuItem] + cp b + jr z, .quit + ret +.quit + ld a, CANCELLED_MENU + ld [wMenuExitMethod], a + ld a, [wCurrentMenuItem] + ld [wChosenMenuItem], a + scf + ret + +; displays a menu with two options to choose from +; b = Y of upper left corner of text region +; c = X of upper left corner of text region +; hl = address where the text box border should be drawn +DisplayTwoOptionMenu: + push hl + ld a, [wd730] + set 6, a ; no printing delay + ld [wd730], a + +; pointless because both values are overwritten before they are read + xor a + ld [wChosenMenuItem], a + ld [wMenuExitMethod], a + + ld a, A_BUTTON | B_BUTTON + ld [wMenuWatchedKeys], a + ld a, $1 + ld [wMaxMenuItem], a + ld a, b + ld [wTopMenuItemY], a + ld a, c + ld [wTopMenuItemX], a + xor a + ld [wLastMenuItem], a + ld [wMenuWatchMovingOutOfBounds], a + push hl + ld hl, wTwoOptionMenuID + bit 7, [hl] ; select second menu item by default? + res 7, [hl] + jr z, .storeCurrentMenuItem + inc a +.storeCurrentMenuItem + ld [wCurrentMenuItem], a + pop hl + push hl + push hl + call TwoOptionMenu_SaveScreenTiles + ld a, [wTwoOptionMenuID] + ld hl, TwoOptionMenuStrings + ld e, a + ld d, $0 + ld a, $5 +.menuStringLoop + add hl, de + dec a + jr nz, .menuStringLoop + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld e, l + ld d, h + pop hl + push de + ld a, [wTwoOptionMenuID] + cp TRADE_CANCEL_MENU + jr nz, .notTradeCancelMenu + call CableClub_TextBoxBorder + jr .afterTextBoxBorder +.notTradeCancelMenu + call TextBoxBorder +.afterTextBoxBorder + call UpdateSprites + pop hl + ld a, [hli] + and a ; put blank line before first menu item? + ld bc, 20 + 2 + jr z, .noBlankLine + ld bc, 2 * 20 + 2 +.noBlankLine + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + pop hl + add hl, bc + call PlaceString + xor a + ld [wTwoOptionMenuID], a + ld hl, wd730 + res 6, [hl] ; turn on the printing delay + call HandleMenuInput + pop hl + bit 1, a ; A button pressed? + jr nz, .choseSecondMenuItem ; automatically choose the second option if B is pressed +.pressedAButton + ld a, [wCurrentMenuItem] + ld [wChosenMenuItem], a + and a + jr nz, .choseSecondMenuItem +; chose first menu item + ld a, CHOSE_FIRST_ITEM + ld [wMenuExitMethod], a + ld c, 15 + call DelayFrames + call TwoOptionMenu_RestoreScreenTiles + and a + ret +.choseSecondMenuItem + ld a, 1 + ld [wCurrentMenuItem], a + ld [wChosenMenuItem], a + ld a, CHOSE_SECOND_ITEM + ld [wMenuExitMethod], a + ld c, 15 + call DelayFrames + call TwoOptionMenu_RestoreScreenTiles + scf + ret + +; Some of the wider/taller two option menus will not have the screen areas +; they cover be fully saved/restored by the two functions below. +; The bottom and right edges of the menu may remain after the function returns. + +TwoOptionMenu_SaveScreenTiles: + ld de, wBuffer + lb bc, 5, 6 +.loop + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .loop + push bc + ld bc, SCREEN_WIDTH - 6 + add hl, bc + pop bc + ld c, $6 + dec b + jr nz, .loop + ret + +TwoOptionMenu_RestoreScreenTiles: + ld de, wBuffer + lb bc, 5, 6 +.loop + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .loop + push bc + ld bc, SCREEN_WIDTH - 6 + add hl, bc + pop bc + ld c, 6 + dec b + jr nz, .loop + call UpdateSprites + ret + +INCLUDE "data/yes_no_menu_strings.asm" + +DisplayFieldMoveMonMenu: + xor a + ld hl, wFieldMoves + ld [hli], a ; wFieldMoves + ld [hli], a ; wFieldMoves + 1 + ld [hli], a ; wFieldMoves + 2 + ld [hli], a ; wFieldMoves + 3 + ld [hli], a ; wNumFieldMoves + ld [hl], 12 ; wFieldMovesLeftmostXCoord + call GetMonFieldMoves + ld a, [wNumFieldMoves] + and a + jr nz, .fieldMovesExist + +; no field moves + hlcoord 11, 11 + lb bc, 5, 7 + call TextBoxBorder + call UpdateSprites + ld a, 12 + ldh [hFieldMoveMonMenuTopMenuItemX], a + hlcoord 13, 12 + ld de, PokemonMenuEntries + jp PlaceString + +.fieldMovesExist + push af + +; Calculate the text box position and dimensions based on the leftmost X coord +; of the field move names before adjusting for the number of field moves. + hlcoord 0, 11 + ld a, [wFieldMovesLeftmostXCoord] + dec a + ld e, a + ld d, 0 + add hl, de + ld b, 5 + ld a, 18 + sub e + ld c, a + pop af + +; For each field move, move the top of the text box up 2 rows while the leaving +; the bottom of the text box at the bottom of the screen. + ld de, -SCREEN_WIDTH * 2 +.textBoxHeightLoop + add hl, de + inc b + inc b + dec a + jr nz, .textBoxHeightLoop + +; Make space for an extra blank row above the top field move. + ld de, -SCREEN_WIDTH + add hl, de + inc b + + call TextBoxBorder + call UpdateSprites + +; Calculate the position of the first field move name to print. + hlcoord 0, 12 + ld a, [wFieldMovesLeftmostXCoord] + inc a + ld e, a + ld d, 0 + add hl, de + ld de, -SCREEN_WIDTH * 2 + ld a, [wNumFieldMoves] +.calcFirstFieldMoveYLoop + add hl, de + dec a + jr nz, .calcFirstFieldMoveYLoop + + xor a + ld [wNumFieldMoves], a + ld de, wFieldMoves +.printNamesLoop + push hl + ld hl, FieldMoveNames + ld a, [de] + and a + jr z, .donePrintingNames + inc de + ld b, a ; index of name +.skipNamesLoop ; skip past names before the name we want + dec b + jr z, .reachedName +.skipNameLoop ; skip past current name + ld a, [hli] + cp "@" + jr nz, .skipNameLoop + jr .skipNamesLoop +.reachedName + ld b, h + ld c, l + pop hl + push de + ld d, b + ld e, c + call PlaceString + ld bc, SCREEN_WIDTH * 2 + add hl, bc + pop de + jr .printNamesLoop + +.donePrintingNames + pop hl + ld a, [wFieldMovesLeftmostXCoord] + ldh [hFieldMoveMonMenuTopMenuItemX], a + hlcoord 0, 12 + ld a, [wFieldMovesLeftmostXCoord] + inc a + ld e, a + ld d, 0 + add hl, de + ld de, PokemonMenuEntries + jp PlaceString + +INCLUDE "data/moves/field_move_names.asm" + +PokemonMenuEntries: + db "STATS" + next "SWITCH" + next "CANCEL@" + +GetMonFieldMoves: + ld a, [wWhichPokemon] + ld hl, wPartyMon1Moves + ld bc, wPartyMon2 - wPartyMon1 + call AddNTimes + ld d, h + ld e, l + ld c, NUM_MOVES + 1 + ld hl, wFieldMoves +.loop + push hl +.nextMove + dec c + jr z, .done + ld a, [de] ; move ID + and a + jr z, .done + ld b, a + inc de + ld hl, FieldMoveDisplayData +.fieldMoveLoop + ld a, [hli] + cp $ff + jr z, .nextMove ; if the move is not a field move + cp b + jr z, .foundFieldMove + inc hl + inc hl + jr .fieldMoveLoop +.foundFieldMove + ld a, b + ld [wLastFieldMoveID], a + ld a, [hli] ; field move name index + ld b, [hl] ; field move leftmost X coordinate + pop hl + ld [hli], a ; store name index in wFieldMoves + ld a, [wNumFieldMoves] + inc a + ld [wNumFieldMoves], a + ld a, [wFieldMovesLeftmostXCoord] + cp b + jr c, .skipUpdatingLeftmostXCoord + ld a, b + ld [wFieldMovesLeftmostXCoord], a +.skipUpdatingLeftmostXCoord + ld a, [wLastFieldMoveID] + ld b, a + jr .loop +.done + pop hl + ret + +INCLUDE "data/moves/field_moves.asm" diff --git a/engine/mon_party_sprites.asm b/engine/mon_party_sprites.asm deleted file mode 100755 index 6f17f876d..000000000 --- a/engine/mon_party_sprites.asm +++ /dev/null @@ -1,445 +0,0 @@ -AnimatePartyMon_ForceSpeed1: - xor a - ld [wCurrentMenuItem], a - ld b, a - inc a - jr GetAnimationSpeed - -; wPartyMenuHPBarColors contains the party mon's health bar colors -; 0: green -; 1: yellow -; 2: red -AnimatePartyMon: - ld hl, wPartyMenuHPBarColors - ld a, [wCurrentMenuItem] - ld c, a - ld b, 0 - add hl, bc - ld a, [hl] - -GetAnimationSpeed: - ld c, a - ld hl, PartyMonSpeeds - add hl, bc - ld a, [wOnSGB] - xor $1 - add [hl] - ld c, a - add a - ld b, a - ld a, [wAnimCounter] - and a - jr z, .resetSprites - cp c - jr z, .animateSprite -.incTimer - inc a - cp b - jr nz, .skipResetTimer - xor a ; reset timer -.skipResetTimer - ld [wAnimCounter], a - jp DelayFrame -.resetSprites - push bc - ld hl, wMonPartySpritesSavedOAM - ld de, wOAMBuffer - ld bc, $60 - call CopyData - pop bc - xor a - jr .incTimer -.animateSprite - push bc - ld hl, wOAMBuffer + $02 ; OAM tile id - ld bc, $10 - ld a, [wCurrentMenuItem] - call AddNTimes - ld c, $40 ; amount to increase the tile id by - ld a, [hl] - cp $4 ; tile ID for SPRITE_BALL_M - jr z, .editCoords - cp $8 ; tile ID for SPRITE_HELIX - jr nz, .editTileIDS -; SPRITE_BALL_M and SPRITE_HELIX only shake up and down -.editCoords - dec hl - dec hl ; dec hl to the OAM y coord - ld c, $1 ; amount to increase the y coord by -; otherwise, load a second sprite frame -.editTileIDS - ld b, $4 - ld de, $4 -.loop - ld a, [hl] - add c - ld [hl], a - add hl, de - dec b - jr nz, .loop - pop bc - ld a, c - jr .incTimer - -; Party mon animations cycle between 2 frames. -; The members of the PartyMonSpeeds array specify the number of V-blanks -; that each frame lasts for green HP, yellow HP, and red HP in order. -; On the naming screen, the yellow HP speed is always used. -PartyMonSpeeds: - db 5, 16, 32 - -LoadMonPartySpriteGfx: -; Load mon party sprite tile patterns into VRAM during V-blank. - ld hl, MonPartySpritePointers - ld a, $1e - -LoadAnimSpriteGfx: -; Load animated sprite tile patterns into VRAM during V-blank. hl is the address -; of an array of structures that contain arguments for CopyVideoData and a is -; the number of structures in the array. - ld bc, $0 -.loop - push af - push bc - push hl - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld h, [hl] - ld l, a - call CopyVideoData - pop hl - pop bc - ld a, $6 - add c - ld c, a - pop af - dec a - jr nz, .loop - ret - -LoadMonPartySpriteGfxWithLCDDisabled: -; Load mon party sprite tile patterns into VRAM immediately by disabling the -; LCD. - call DisableLCD - ld hl, MonPartySpritePointers - ld a, $1e - ld bc, $0 -.loop - push af - push bc - push hl - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push de - ld a, [hli] - ld c, a - swap c - ld b, $0 - ld a, [hli] - ld e, [hl] - inc hl - ld d, [hl] - pop hl - call FarCopyData - pop hl - pop bc - ld a, $6 - add c - ld c, a - pop af - dec a - jr nz, .loop - jp EnableLCD - -MonPartySpritePointers: - dw SlowbroSprite + $c0 - db $40 / $10 ; 40 bytes - db BANK(SlowbroSprite) - dw vSprites - - dw BallSprite - db $80 / $10 ; $80 bytes - db BANK(BallSprite) - dw vSprites + $40 - - dw ClefairySprite + $c0 - db $40 / $10 ; $40 bytes - db BANK(ClefairySprite) - dw vSprites + $c0 - - dw BirdSprite + $c0 - db $40 / $10 ; $40 bytes - db BANK(BirdSprite) - dw vSprites + $100 - - dw SeelSprite - db $40 / $10 ; $40 bytes - db BANK(SeelSprite) - dw vSprites + $140 - - dw MonPartySprites + $40 - db $10 / $10 ; $10 bytes - db BANK(MonPartySprites) - dw vSprites + $180 - - dw MonPartySprites + $50 - db $10 / $10 ; $10 bytes - db BANK(MonPartySprites) - dw vSprites + $1a0 - - dw MonPartySprites + $60 - db $10 / $10 ; $10 bytes - db BANK(MonPartySprites) - dw vSprites + $1c0 - - dw MonPartySprites + $70 - db $10 / $10 ; $10 bytes - db BANK(MonPartySprites) - dw vSprites + $1e0 - - dw MonPartySprites + $80 - db $10 / $10 ; $10 bytes - db BANK(MonPartySprites) - dw vSprites + $200 - - dw MonPartySprites + $90 - db $10 / $10 ; $10 bytes - db BANK(MonPartySprites) - dw vSprites + $220 - - dw MonPartySprites + $A0 - db $10 / $10 ; $10 bytes - db BANK(MonPartySprites) - dw vSprites + $240 - - dw MonPartySprites + $B0 - db $10 / $10 ; $10 bytes - db BANK(MonPartySprites) - dw vSprites + $260 - - dw PikachuSprite - db $40 / $10 ; $40 bytes - db BANK(PikachuSprite) - dw vSprites + $280 - - dw MonPartySprites + $100 - db $40 / $10 ; $40 bytes - db BANK(MonPartySprites) - dw vSprites + $380 - - dw SlowbroSprite - db $40 / $10 ; $40 bytes - db BANK(SlowbroSprite) - dw vSprites + $400 - - dw BallSprite - db $80 / $10 ; $80 bytes - db BANK(BallSprite) - dw vSprites + $440 - - dw ClefairySprite - db $40 / $10 ; $40 bytes - db BANK(ClefairySprite) - dw vSprites + $4c0 - - dw BirdSprite - db $40 / $10 ; $40 bytes - db BANK(BirdSprite) - dw vSprites + $500 - - dw SeelSprite + $C0 - db $40 / $10 ; $40 bytes - db BANK(SeelSprite) - dw vSprites + $540 - - dw MonPartySprites - db $10 / $10 ; $10 bytes - db BANK(MonPartySprites) - dw vSprites + $580 - - dw MonPartySprites + $10 - db $10 / $10 ; $10 bytes - db BANK(MonPartySprites) - dw vSprites + $5a0 - - dw MonPartySprites + $20 - db $10 / $10 ; $10 bytes - db BANK(MonPartySprites) - dw vSprites + $5c0 - - dw MonPartySprites + $30 - db $10 / $10 ; $10 bytes - db BANK(MonPartySprites) - dw vSprites + $5E0 - - dw MonPartySprites + $C0 - db $10 / $10 ; $10 bytes - db BANK(MonPartySprites) - dw vSprites + $600 - - dw MonPartySprites + $D0 - db $10 / $10 ; $10 bytes - db BANK(MonPartySprites) - dw vSprites + $620 - - dw MonPartySprites + $E0 - db $10 / $10 ; $10 bytes - db BANK(MonPartySprites) - dw vSprites + $640 - - dw MonPartySprites + $F0 - db $10 / $10 ; $10 bytes - db BANK(MonPartySprites) - dw vSprites + $660 - - dw PikachuSprite + $C0 - db $40 / $10 ; $40 bytes - db BANK(PikachuSprite) - dw vSprites + $680 - - dw MonPartySprites + $140 - db $40 / $10 ; $40 bytes - db BANK(MonPartySprites) - dw vSprites + $780 - -WriteMonPartySpriteOAMByPartyIndex: -; Write OAM blocks for the party mon in [hPartyMonIndex]. - push hl - push de - push bc - ld a, [hPartyMonIndex] - cp $ff - jr z, .asm_7191f - ld hl, wPartySpecies - ld e, a - ld d, 0 - add hl, de - ld a, [hl] - call GetPartyMonSpriteID - ld [wOAMBaseTile], a - call WriteMonPartySpriteOAM - pop bc - pop de - pop hl - ret - -.asm_7191f - ld hl, wOAMBuffer - ld de, wMonPartySpritesSavedOAM - ld bc, $60 - call CopyData - pop bc - pop de - pop hl - ret - -WriteMonPartySpriteOAMBySpecies: -; Write OAM blocks for the party sprite of the species in -; [wMonPartySpriteSpecies]. - xor a - ld [hPartyMonIndex], a - ld a, [wMonPartySpriteSpecies] - call GetPartyMonSpriteID - ld [wOAMBaseTile], a - jr WriteMonPartySpriteOAM - -UnusedPartyMonSpriteFunction: -; This function is unused and doesn't appear to do anything useful. It looks -; like it may have been intended to load the tile patterns and OAM data for -; the mon party sprite associated with the species in [wcf91]. -; However, its calculations are off and it loads garbage data. - ld a, [wcf91] - call GetPartyMonSpriteID - push af - ld hl, vSprites - call .LoadTilePatterns - pop af - add $5A - ld hl, vSprites + $40 - call .LoadTilePatterns - xor a - ld [wMonPartySpriteSpecies], a - jr WriteMonPartySpriteOAMBySpecies - -.LoadTilePatterns - push hl - add a - ld c, a - ld b, 0 - ld hl, MonPartySpritePointers - add hl, bc - add hl, bc - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - pop hl - jp CopyVideoData - -WriteMonPartySpriteOAM: -; Write the OAM blocks for the first animation frame into the OAM buffer and -; make a copy at wMonPartySpritesSavedOAM. - push af - ld c, $10 - ld h, wOAMBuffer / $100 - ld a, [hPartyMonIndex] - swap a - ld l, a - add $10 - ld b, a - pop af - cp SPRITE_HELIX << 2 - jr z, .helix - call WriteSymmetricMonPartySpriteOAM - jr .makeCopy -.helix - call WriteAsymmetricMonPartySpriteOAM -; Make a copy of the OAM buffer with the first animation frame written so that -; we can flip back to it from the second frame by copying it back. -.makeCopy - ld hl, wOAMBuffer - ld de, wMonPartySpritesSavedOAM - ld bc, $60 - jp CopyData - -GetPartyMonSpriteID: - ld [wd11e], a - predef IndexToPokedex - ld a, [wd11e] - ld c, a - dec a - srl a - ld hl, MonPartyData - ld e, a - ld d, 0 - add hl, de - ld a, [hl] - bit 0, c - jr nz, .skipSwap - swap a ; use lower nybble if pokedex num is even -.skipSwap - and $f0 - srl a - srl a - ret - -INCLUDE "data/mon_party_sprites.asm" - -MonPartySprites: - INCBIN "gfx/mon_ow_sprites.2bpp" diff --git a/engine/movie/credits.asm b/engine/movie/credits.asm new file mode 100755 index 000000000..938579f37 --- /dev/null +++ b/engine/movie/credits.asm @@ -0,0 +1,322 @@ +HallOfFamePC: + callfar AnimateHallOfFame + call ClearScreen + ld c, 100 + call DelayFrames + + call DisableLCD + ld a, $a7 + ldh [rWX], a + xor a + ldh [rSCX], a + ldh [rSCY], a + ldh [hSCX], a + ldh [hSCY], a + ldh [hWY], a + ldh [rWY], a + call CreditsLoadFont + hlcoord 0, 0 + call FillFourRowsWithBlack + hlcoord 0, 14 + call FillFourRowsWithBlack + ld a, %11000000 + ldh [rBGP], a + call UpdateGBCPal_BGP + call EnableLCD + call StopAllMusic + ld hl, vBGMap1 + call CreditsCopyTileMapToVRAM + ld hl, vBGMap0 + call CreditsCopyTileMapToVRAM + ld c, BANK(Music_Credits) + ld a, MUSIC_CREDITS + call PlayMusic + ld c, 128 + call DelayFrames + xor a + ld [wHoFMonSpecies], a + ld [wNumCreditsMonsDisplayed], a + jp Credits + +FadeInCreditsText: + ld a, 1 + ldh [hAutoBGTransferEnabled], a + ld hl, HoFGBPalettes + ld b, 4 +.loop + ld a, [hli] + ldh [rBGP], a + call UpdateGBCPal_BGP + ld c, 5 + call DelayFrames + dec b + jr nz, .loop + ret + +HoFGBPalettes: + db %11000000 + db %11010000 + db %11100000 + db %11110000 + +DisplayCreditsMon: + ld hl, vBGMap1 + call CreditsCopyTileMapToVRAM + xor a + ldh [hAutoBGTransferEnabled], a + ld hl, rLCDC + set 3, [hl] + call SaveScreenTilesToBuffer2 + call FillMiddleOfScreenWithWhite + call GetNextCreditsMon + ld hl, vBGMap0 + 12 + call CreditsCopyTileMapToVRAM + xor a + ldh [hAutoBGTransferEnabled], a + call LoadScreenTilesFromBuffer2DisableBGTransfer + ld hl, vBGMap0 + call CreditsCopyTileMapToVRAM + ld a, %11111100 ; make the mon a black silhouette + ldh [rBGP], a + call UpdateGBCPal_BGP + ld hl, rLCDC + res 3, [hl] + ld a, 1 + ldh [hAutoBGTransferEnabled], a + ld b, 0 + ld c, 10 + call ScrollCreditsMonLeft + call FillLeftHalfOfScreenWithWhite + ld c, 10 + call ScrollCreditsMonLeft + call FillRightHalfOfScreenWithWhite + ld c, 8 + call ScrollCreditsMonLeft + ld a, %11000000 + ldh [rBGP], a + call UpdateGBCPal_BGP + xor a + ldh [hSCX], a + ret + +ScrollCreditsMonLeft: + ld a, b + ldh [hSCX], a + add 8 + ld b, a + call DelayFrame + dec c + jr nz, ScrollCreditsMonLeft + ret + +GetNextCreditsMon: + ld hl, wNumCreditsMonsDisplayed + ld c, [hl] + inc [hl] + ld b, 0 + ld hl, CreditsMons + add hl, bc + ld a, [hl] + ld [wcf91], a + ld [wd0b5], a + hlcoord 8, 6 + call GetMonHeader + call LoadFrontSpriteByMonIndex + ret + +INCLUDE "data/credits/credits_mons.asm" + +CreditsCopyTileMapToVRAM: + ld a, l + ldh [hAutoBGTransferDest], a + ld a, h + ldh [hAutoBGTransferDest + 1], a + ld a, 1 + ldh [hAutoBGTransferEnabled], a + jp Delay3 + +CreditsLoadFont: + call LoadFontTilePatterns + ld hl, vChars1 + ld bc, ($80 tiles) / 2 + call ZeroMemory + + call LoadTextBoxTilePatterns + ld hl, vChars2 tile $60 + ld bc, ($20 tiles) / 2 + call ZeroMemory + + ld hl, vChars2 tile $7e + ld bc, 1 tiles + ld a, $ff ; solid black + call FillMemory + ret + +ZeroMemory: +; zero bc bytes at hl + ld [hl], 0 + inc hl + inc hl + dec bc + ld a, b + or c + jr nz, ZeroMemory + ret + +FillFourRowsWithBlack: + ld bc, SCREEN_WIDTH * 4 + ld a, $7e + jp FillMemory + +FillMiddleOfScreenWithWhite: + hlcoord 0, 4 + ld bc, SCREEN_WIDTH * 10 + ld a, " " + jp FillMemory + +FillLeftHalfOfScreenWithWhite: + hlcoord 0, 4 + push bc + call FillHalfOfScreenWithWhite + pop bc + ret + +FillRightHalfOfScreenWithWhite: + hlcoord 10, 4 + push bc + call FillHalfOfScreenWithWhite + pop bc + ret + +FillHalfOfScreenWithWhite: + ld b, 10 + ld c, 10 + ld a, " " +.loop + push bc + push hl +.innerLoop + ld [hli], a + dec c + jr nz, .innerLoop + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, .loop + ret + +Credits: ; Roll credits + ld de, CreditsOrder + push de +.nextCreditsScreen + pop de + hlcoord 9, 6 + push hl + call FillMiddleOfScreenWithWhite + pop hl +.nextCreditsCommand + ld a, [de] + inc de + push de + cp CRED_TEXT_FADE_MON + jr z, .fadeInTextAndShowMon + cp CRED_TEXT_MON + jr z, .showTextAndShowMon + cp CRED_TEXT_FADE + jr z, .fadeInText + cp CRED_TEXT + jr z, .showText + cp CRED_COPYRIGHT + jr z, .showCopyrightText + cp CRED_THE_END + jr z, .showTheEnd + call PlaceCreditsText + pop de + jr .nextCreditsCommand + +.showCopyrightText + farcall LoadCopyrightTiles + pop de + jr .nextCreditsCommand + + +.fadeInTextAndShowMon + call FadeInCreditsText + ld c, 102 + jr .next1 + +.showTextAndShowMon + ld c, 122 +.next1 + call DelayFrames + call DisplayCreditsMon + jr .nextCreditsScreen + +.fadeInText + call FadeInCreditsText + ld c, 132 + jr .next2 + +.showText + ld c, 152 +.next2 + call DelayFrames + jr .nextCreditsScreen +.showTheEnd + call ShowTheEndGFX + pop de + ret + +ShowTheEndGFX: + ld c, 24 + call DelayFrames + call FillMiddleOfScreenWithWhite + ld de, TheEndGfx + ld hl, vChars2 tile $60 + lb bc, BANK(TheEndGfx), (TheEndGfxEnd - TheEndGfx) / $10 + call CopyVideoData + hlcoord 4, 8 + ld de, TheEndTextString + call PlaceString + hlcoord 4, 9 + inc de + call PlaceString + jp FadeInCreditsText + +TheEndTextString: +; "T H E E N D" + db $60, " ", $62, " ", $64, " ", $64, " ", $66, " ", $68, "@" + db $61, " ", $63, " ", $65, " ", $65, " ", $67, " ", $69, "@" + +PlaceCreditsText: + push hl + push hl + ld hl, CreditsTextPointers + ld c, a + ld b, 0 + add hl, bc + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + pop hl + ld a, [de] + inc de + ld c, a + ld b, -1 + add hl, bc + call PlaceString + pop hl + ld bc, SCREEN_WIDTH * 2 + add hl, bc + ret + +INCLUDE "data/credits/credits_order.asm" + +INCLUDE "data/credits/credits_text.asm" + +TheEndGfx: + INCBIN "gfx/credits/the_end.2bpp" +TheEndGfxEnd: diff --git a/engine/evolution.asm b/engine/movie/evolution.asm similarity index 91% rename from engine/evolution.asm rename to engine/movie/evolution.asm index 7277e9912..624a7f5fe 100755 --- a/engine/evolution.asm +++ b/engine/movie/evolution.asm @@ -11,13 +11,13 @@ EvolveMon: ld [wChannelSoundIDs + Ch5], a call StopAllMusic ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld a, SFX_TINK call PlaySound call Delay3 xor a - ld [H_AUTOBGTRANSFERENABLED], a - ld [hTilesetType], a + ldh [hAutoBGTransferEnabled], a + ldh [hTilesetType], a ld a, [wEvoOldSpecies] ld [wWholeScreenPaletteMonSpecies], a ld c, 0 @@ -35,7 +35,7 @@ EvolveMon: ld [wd0b5], a call Evolution_LoadPic ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld a, [wEvoOldSpecies] call PlayCry call WaitForSoundToFinish @@ -95,7 +95,7 @@ EvolutionSetWholeScreenPalette: Evolution_LoadPic: call GetMonHeader - coord hl, 7, 2 + hlcoord 7, 2 jp LoadFlippedFrontSpriteByMonIndex Evolution_BackAndForthAnim: @@ -113,8 +113,8 @@ Evolution_BackAndForthAnim: Evolution_ChangeMonPic: push bc xor a - ld [H_AUTOBGTRANSFERENABLED], a - coord hl, 7, 2 + ldh [hAutoBGTransferEnabled], a + hlcoord 7, 2 lb bc, 7, 7 ld de, SCREEN_WIDTH - 7 .loop @@ -130,7 +130,7 @@ Evolution_ChangeMonPic: dec b jr nz, .loop ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Delay3 pop bc ret @@ -139,7 +139,7 @@ Evolution_CheckForCancel: call DelayFrame push bc call JoypadLowSensitivity - ld a, [hJoy5] + ldh a, [hJoy5] pop bc and B_BUTTON jr nz, .pressedB diff --git a/engine/hall_of_fame.asm b/engine/movie/hall_of_fame.asm similarity index 87% rename from engine/hall_of_fame.asm rename to engine/movie/hall_of_fame.asm index 39a7a2e36..616a72e35 100755 --- a/engine/hall_of_fame.asm +++ b/engine/movie/hall_of_fame.asm @@ -19,12 +19,12 @@ AnimateHallOfFame: call FillMemory xor a ld [wUpdateSpritesEnabled], a - ld [hTilesetType], a + ldh [hTilesetType], a ld [wSpriteFlipped], a ld [wLetterPrintingDelayFlags], a ; no delay ld [wHoFMonOrPlayer], a ; mon inc a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld hl, wNumHoFTeams ld a, [hl] inc a @@ -32,7 +32,7 @@ AnimateHallOfFame: inc [hl] .skipInc ld a, $90 - ld [hWY], a + ldh [hWY], a ld c, BANK(Music_HallOfFame) ld a, MUSIC_HALL_OF_FAME call PlayMusic @@ -57,10 +57,10 @@ AnimateHallOfFame: call HoFDisplayAndRecordMonInfo ld c, 80 call DelayFrames - coord hl, 2, 13 + hlcoord 2, 13 lb bc, 3, 14 call TextBoxBorder - coord hl, 4, 15 + hlcoord 4, 15 ld de, HallOfFameText call PlaceString ld c, 180 @@ -76,7 +76,7 @@ AnimateHallOfFame: ld bc, HOF_MON call AddNTimes ld [hl], $ff - callab SaveHallOfFameTeams ; useless since in same bank + callfar SaveHallOfFameTeams ; useless since in same bank xor a ld [wHoFMonSpecies], a inc a @@ -85,7 +85,7 @@ AnimateHallOfFame: call HoFDisplayPlayerStats call HoFFadeOutScreenAndMusic xor a - ld [hWY], a + ldh [hWY], a ld hl, rLCDC res 3, [hl] ret @@ -96,9 +96,9 @@ HallOfFameText: HoFShowMonOrPlayer: call ClearScreen ld a, $d0 - ld [hSCY], a + ldh [hSCY], a ld a, $c0 - ld [hSCX], a + ldh [hSCX], a ld a, [wHoFMonSpecies] ld [wcf91], a ld [wd0b5], a @@ -111,7 +111,7 @@ HoFShowMonOrPlayer: call HoFLoadPlayerPics jr .next1 .showMon - coord hl, 12, 5 + hlcoord 12, 5 call GetMonHeader call LoadFrontSpriteByMonIndex predef LoadMonBackPic @@ -120,7 +120,7 @@ HoFShowMonOrPlayer: ld c, 0 call RunPaletteCommand ld a, %11100100 - ld [rBGP], a + ldh [rBGP], a call UpdateGBCPal_BGP ld c, $31 ; back pic call HoFLoadMonPlayerPicTileIDs @@ -133,7 +133,7 @@ HoFShowMonOrPlayer: .next2 call .ScrollPic ; scroll back pic left xor a - ld [hSCY], a + ldh [hSCY], a ld c, a ; front pic call HoFLoadMonPlayerPicTileIDs ld d, 0 @@ -142,9 +142,9 @@ HoFShowMonOrPlayer: .ScrollPic call DelayFrame - ld a, [hSCX] + ldh a, [hSCX] add e - ld [hSCX], a + ldh [hSCX], a cp d jr nz, .ScrollPic ret @@ -156,38 +156,38 @@ HoFDisplayAndRecordMonInfo: call HoFDisplayMonInfo ld a, [wHoFPartyMonIndex] ld [wWhichPokemon], a - callab IsThisPartymonStarterPikachu_Party + callfar IsThisPartymonStarterPikachu_Party jr nc, .asm_70336 ld e, $22 - callab PlayPikachuSoundClip + callfar PlayPikachuSoundClip jr .asm_7033c .asm_70336 - ld a,[wHoFMonSpecies] + ld a, [wHoFMonSpecies] call PlayCry .asm_7033c jp HoFRecordMonInfo Func_7033f: call HoFDisplayMonInfo - ld a,[wHoFMonSpecies] + ld a, [wHoFMonSpecies] jp PlayCry HoFDisplayMonInfo: - coord hl, 0, 2 + hlcoord 0, 2 lb bc, 9, 10 call TextBoxBorder - coord hl, 2, 6 + hlcoord 2, 6 ld de, HoFMonInfoText call PlaceString - coord hl, 1, 4 + hlcoord 1, 4 ld de, wcd6d call PlaceString ld a, [wHoFMonLevel] - coord hl, 8, 7 + hlcoord 8, 7 call PrintLevelCommon ld a, [wHoFMonSpecies] ld [wd0b5], a - coord hl, 3, 9 + hlcoord 3, 9 predef PrintMonType ret @@ -200,7 +200,7 @@ HoFLoadPlayerPics: ld de, RedPicFront ld a, BANK(RedPicFront) call UncompressSpriteFromDE - ld a,$0 + ld a, $0 call SwitchSRAMBankAndLatchClockData ld hl, sSpriteBuffer1 ld de, sSpriteBuffer0 @@ -219,26 +219,26 @@ HoFLoadPlayerPics: HoFLoadMonPlayerPicTileIDs: ; c = base tile ID - ld b, 0 - coord hl, 12, 5 + ld b, TILEMAP_MON_PIC + hlcoord 12, 5 predef_jump CopyTileIDsFromList HoFDisplayPlayerStats: SetEvent EVENT_HALL_OF_FAME_DEX_RATING predef DisplayDexRating - coord hl, 0, 4 + hlcoord 0, 4 lb bc, 6, 10 call TextBoxBorder - coord hl, 5, 0 + hlcoord 5, 0 lb bc, 2, 9 call TextBoxBorder - coord hl, 7, 2 + hlcoord 7, 2 ld de, wPlayerName call PlaceString - coord hl, 1, 6 + hlcoord 1, 6 ld de, HoFPlayTimeText call PlaceString - coord hl, 5, 7 + hlcoord 5, 7 ld de, wPlayTimeHours lb bc, 1, 3 call PrintNumber @@ -247,10 +247,10 @@ HoFDisplayPlayerStats: ld de, wPlayTimeMinutes lb bc, LEADING_ZEROES | 1, 2 call PrintNumber - coord hl, 1, 9 + hlcoord 1, 9 ld de, HoFMoneyText call PlaceString - coord hl, 4, 10 + hlcoord 4, 10 ld de, wPlayerMoney ld c, $a3 call PrintBCDNumber @@ -272,12 +272,12 @@ HoFMoneyText: db "MONEY@" DexSeenOwnedText: - TX_FAR _DexSeenOwnedText - db "@" + text_far _DexSeenOwnedText + text_end DexRatingText: - TX_FAR _DexRatingText - db "@" + text_far _DexRatingText + text_end HoFRecordMonInfo: ld hl, wHallOfFame diff --git a/engine/intro.asm b/engine/movie/intro.asm similarity index 82% rename from engine/intro.asm rename to engine/movie/intro.asm index 00e892da7..9165113f2 100755 --- a/engine/intro.asm +++ b/engine/movie/intro.asm @@ -1,25 +1,20 @@ -const_value = -1 + const_def -1 const MOVE_NIDORINO_RIGHT const MOVE_GENGAR_RIGHT const MOVE_GENGAR_LEFT ANIMATION_END EQU 80 -const_value = 3 - const GENGAR_INTRO_TILES1 - const GENGAR_INTRO_TILES2 - const GENGAR_INTRO_TILES3 - PlayIntro: xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a inc a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call PlayShootingStar - callab PlayIntroScene + callfar PlayIntroScene xor a - ld [hSCX], a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hSCX], a + ldh [hAutoBGTransferEnabled], a call ClearSprites call DelayFrame ret @@ -60,7 +55,7 @@ IntroClearScreen: IntroClearMiddleOfScreen: ; clear the area of the tile map between the black bars on the top and bottom - coord hl, 0, 4 + hlcoord 0, 4 ld bc, SCREEN_WIDTH * 10 IntroClearCommon: @@ -87,9 +82,9 @@ CopyTileIDsFromList_ZeroBaseTileID: PlayShootingStar: ld b, SET_PAL_GAME_FREAK_INTRO call RunPaletteCommand - callba LoadCopyrightAndTextBoxTiles + farcall LoadCopyrightAndTextBoxTiles ldPal a, BLACK, DARK_GRAY, LIGHT_GRAY, WHITE - ld [rBGP], a + ldh [rBGP], a call UpdateGBCPal_BGP ld c, 180 call DelayFrames @@ -125,7 +120,7 @@ PlayShootingStar: set 3, [hl] ld c, 64 call DelayFrames - callba AnimateShootingStar + farcall AnimateShootingStar push af pop af jr c, .next ; skip the delay if the user interrupted the animation @@ -139,26 +134,24 @@ PlayShootingStar: IntroDrawBlackBars: ; clear the screen and draw black bars on the top and bottom call IntroClearScreen - coord hl, 0, 0 + hlcoord 0, 0 ld c, SCREEN_WIDTH * 4 call IntroPlaceBlackTiles - coord hl, 0, 14 + hlcoord 0, 14 ld c, SCREEN_WIDTH * 4 call IntroPlaceBlackTiles ld hl, vBGMap1 ld c, BG_MAP_WIDTH * 4 call IntroPlaceBlackTiles - ld hl, vBGMap1 + BG_MAP_WIDTH * 14 + hlbgcoord 0, 14, vBGMap1 ld c, BG_MAP_WIDTH * 4 jp IntroPlaceBlackTiles -EmptyFunc4: +EmptyFunc2: ret GameFreakIntro: - INCBIN "gfx/gamefreak_intro.2bpp" - INCBIN "gfx/gamefreak_logo.2bpp" - rept 16 - db $00 ; blank tile - endr + INCBIN "gfx/splash/gamefreak_presents.2bpp" + INCBIN "gfx/splash/gamefreak_logo.2bpp" + ds 16, $00 ; blank tile GameFreakIntroEnd: diff --git a/engine/clear_save.asm b/engine/movie/oak_speech/clear_save.asm similarity index 85% rename from engine/clear_save.asm rename to engine/movie/oak_speech/clear_save.asm index f2acbf325..2dd5f4a79 100755 --- a/engine/clear_save.asm +++ b/engine/movie/oak_speech/clear_save.asm @@ -7,7 +7,7 @@ DoClearSaveDialogue: call PrintText ld a, B_BUTTON ld [wJoyIgnore], a - coord hl, 14, 7 + hlcoord 14, 7 lb bc, 8, 15 ld a, NO_YES_MENU ld [wTwoOptionMenuID], a @@ -19,9 +19,9 @@ DoClearSaveDialogue: ld a, [wCurrentMenuItem] and a jp z, Init - callba ClearSAV + farcall ClearSAV jp Init ClearSaveDataText: - TX_FAR _ClearSaveDataText - db "@" + text_far _ClearSaveDataText + text_end diff --git a/engine/init_player_data.asm b/engine/movie/oak_speech/init_player_data.asm similarity index 90% rename from engine/init_player_data.asm rename to engine/movie/oak_speech/init_player_data.asm index 5883547cf..d6745daf9 100644 --- a/engine/init_player_data.asm +++ b/engine/movie/oak_speech/init_player_data.asm @@ -2,11 +2,11 @@ InitPlayerData: InitPlayerData2: call Random - ld a, [hRandomSub] + ldh a, [hRandomSub] ld [wPlayerID], a call Random - ld a, [hRandomAdd] + ldh a, [hRandomAdd] ld [wPlayerID + 1], a ld a, $ff @@ -28,9 +28,9 @@ InitPlayerData2: START_MONEY EQU $3000 ld hl, wPlayerMoney + 1 - ld a, START_MONEY / $100 + ld a, HIGH(START_MONEY) ld [hld], a - xor a + xor a ; LOW(START_MONEY) ld [hli], a inc hl ld [hl], a diff --git a/engine/oak_speech.asm b/engine/movie/oak_speech/oak_speech.asm similarity index 85% rename from engine/oak_speech.asm rename to engine/movie/oak_speech/oak_speech.asm index 8a5375796..1a327def5 100755 --- a/engine/oak_speech.asm +++ b/engine/movie/oak_speech/oak_speech.asm @@ -11,8 +11,8 @@ SetDefaultNames: ld bc, wBoxDataEnd - wPlayerName xor a call FillMemory - ld hl, wSpriteStateData1 - ld bc, $200 + ld hl, wSpriteDataStart + ld bc, wSpriteDataEnd - wSpriteDataStart xor a call FillMemory xor a @@ -60,12 +60,12 @@ OakSpeech: ld [wDestinationMap], a call SpecialWarpIn xor a - ld [hTilesetType], a + ldh [hTilesetType], a ld a, [wd732] bit 1, a ; possibly a debug mode bit jp nz, .skipChoosingNames ld de, ProfOakPic - lb bc, Bank(ProfOakPic), $00 + lb bc, BANK(ProfOakPic), $00 call IntroDisplayPicCenteredOrUpperRight call FadeInIntroPic ld hl, OakSpeechText1 @@ -76,7 +76,7 @@ OakSpeech: ld [wd0b5], a ld [wcf91], a call GetMonHeader - coord hl, 6, 4 + hlcoord 6, 4 call LoadFlippedFrontSpriteByMonIndex call MovePicLeft ld hl, OakSpeechText2 @@ -84,7 +84,7 @@ OakSpeech: call GBFadeOutToWhite call ClearScreen ld de, RedPicFront - lb bc, Bank(RedPicFront), $00 + lb bc, BANK(RedPicFront), $00 call IntroDisplayPicCenteredOrUpperRight call MovePicLeft ld hl, IntroducePlayerText @@ -93,7 +93,7 @@ OakSpeech: call GBFadeOutToWhite call ClearScreen ld de, Rival1Pic - lb bc, Bank(Rival1Pic), $00 + lb bc, BANK(Rival1Pic), $00 call IntroDisplayPicCenteredOrUpperRight call FadeInIntroPic ld hl, IntroduceRivalText @@ -103,7 +103,7 @@ OakSpeech: call GBFadeOutToWhite call ClearScreen ld de, RedPicFront - lb bc, Bank(RedPicFront), $00 + lb bc, BANK(RedPicFront), $00 call IntroDisplayPicCenteredOrUpperRight call GBFadeInFromWhite ld a, [wd72d] @@ -112,7 +112,7 @@ OakSpeech: ld hl, OakSpeechText3 call PrintText .next - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af ld a, SFX_SHRINK call PlaySound @@ -134,19 +134,19 @@ OakSpeech: lb bc, BANK(ShrinkPic2), $00 call IntroDisplayPicCenteredOrUpperRight call ResetPlayerSpriteData - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af ld a, BANK(Music_PalletTown) ld [wAudioROMBank], a ld [wAudioSavedROMBank], a ld a, 10 ld [wAudioFadeOutControl], a - call StopAllMusic ; stop music + call StopAllMusic pop af call BankswitchCommon ld c, 20 call DelayFrames - coord hl, 6, 5 + hlcoord 6, 5 lb bc, 7, 7 call ClearScreenArea call LoadTextBoxTilePatterns @@ -159,29 +159,29 @@ OakSpeech: ret OakSpeechText1: - TX_FAR _OakSpeechText1 - db "@" + text_far _OakSpeechText1 + text_end OakSpeechText2: - TX_FAR _OakSpeechText2A - TX_CRY_NIDORINA - TX_FAR _OakSpeechText2B - db "@" + text_far _OakSpeechText2A + sound_cry_pikachu + text_far _OakSpeechText2B + text_end IntroducePlayerText: - TX_FAR _IntroducePlayerText - db "@" + text_far _IntroducePlayerText + text_end IntroduceRivalText: - TX_FAR _IntroduceRivalText - db "@" + text_far _IntroduceRivalText + text_end OakSpeechText3: - TX_FAR _OakSpeechText3 - db "@" + text_far _OakSpeechText3 + text_end FadeInIntroPic: ld hl, IntroFadePalettes ld b, 6 .next ld a, [hli] - ld [rBGP], a + ldh [rBGP], a call UpdateGBCPal_BGP ld c, 10 call DelayFrames @@ -199,19 +199,19 @@ IntroFadePalettes: MovePicLeft: ld a, 119 - ld [rWX], a + ldh [rWX], a call DelayFrame ld a, %11100100 - ld [rBGP], a + ldh [rBGP], a call UpdateGBCPal_BGP .next call DelayFrame - ld a, [rWX] + ldh a, [rWX] sub 8 cp $FF ret z - ld [rWX], a + ldh [rWX], a jr .next DisplayPicCenteredOrUpperRight: @@ -235,10 +235,10 @@ IntroDisplayPicCenteredOrUpperRight: pop bc ld a, c and a - coord hl, 15, 1 + hlcoord 15, 1 jr nz, .next - coord hl, 6, 4 + hlcoord 6, 4 .next xor a - ld [hStartTileID], a + ldh [hStartTileID], a predef_jump CopyUncompressedPicToTilemap diff --git a/engine/oak_speech2.asm b/engine/movie/oak_speech/oak_speech2.asm similarity index 77% rename from engine/oak_speech2.asm rename to engine/movie/oak_speech/oak_speech2.asm index 80f1bafcd..af31665bb 100755 --- a/engine/oak_speech2.asm +++ b/engine/movie/oak_speech/oak_speech2.asm @@ -28,8 +28,8 @@ ChoosePlayerName: jp PrintText YourNameIsText: - TX_FAR _YourNameIsText - db "@" + text_far _YourNameIsText + text_end ChooseRivalName: call OakSpeechSlidePicRight @@ -61,12 +61,12 @@ ChooseRivalName: jp PrintText HisNameIsText: - TX_FAR _HisNameIsText - db "@" + text_far _HisNameIsText + text_end OakSpeechSlidePicLeft: push de - coord hl, 0, 0 + hlcoord 0, 0 lb bc, 12, 11 call ClearScreenArea ; clear the name list text box ld c, 10 @@ -76,13 +76,13 @@ OakSpeechSlidePicLeft: ld bc, NAME_LENGTH call CopyData call Delay3 - coord hl, 12, 4 + hlcoord 12, 4 lb de, 6, 6 * SCREEN_WIDTH + 5 ld a, $ff jr OakSpeechSlidePicCommon OakSpeechSlidePicRight: - coord hl, 5, 4 + hlcoord 5, 4 lb de, 6, 6 * SCREEN_WIDTH + 5 xor a @@ -90,13 +90,13 @@ OakSpeechSlidePicCommon: push hl push de push bc - ld [hSlideDirection], a + ldh [hSlideDirection], a ld a, d - ld [hSlideAmount], a + ldh [hSlideAmount], a ld a, e - ld [hSlidingRegionSize], a + ldh [hSlidingRegionSize], a ld c, a - ld a, [hSlideDirection] + ldh a, [hSlideDirection] and a jr nz, .next ; If sliding right, point hl to the end of the pic's tiles. @@ -107,9 +107,9 @@ OakSpeechSlidePicCommon: ld e, l .loop xor a - ld [H_AUTOBGTRANSFERENABLED], a - ld [H_AUTOBGTRANSFERPORTION], a - ld a, [hSlideDirection] + ldh [hAutoBGTransferEnabled], a + ldh [hAutoBGTransferPortion], a + ldh a, [hSlideDirection] and a jr nz, .slideLeft ; sliding right @@ -124,7 +124,7 @@ OakSpeechSlidePicCommon: .next2 dec c jr nz, .loop - ld a, [hSlideDirection] + ldh a, [hSlideDirection] and a jr z, .next3 ; If sliding left, we need to zero the last tile in the pic (there is no need @@ -135,13 +135,13 @@ OakSpeechSlidePicCommon: ld [hl], a .next3 ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Delay3 - ld a, [hSlidingRegionSize] + ldh a, [hSlidingRegionSize] ld c, a ld h, d ld l, e - ld a, [hSlideDirection] + ldh a, [hSlideDirection] and a jr nz, .slideLeft2 inc hl @@ -151,9 +151,9 @@ OakSpeechSlidePicCommon: .next4 ld d, h ld e, l - ld a, [hSlideAmount] + ldh a, [hSlideAmount] dec a - ld [hSlideAmount], a + ldh [hSlideAmount], a jr nz, .loop pop bc pop de @@ -162,14 +162,14 @@ OakSpeechSlidePicCommon: DisplayIntroNameTextBox: push de - coord hl, 0, 0 + hlcoord 0, 0 lb bc, 10, 9 call TextBoxBorder - coord hl, 3, 0 + hlcoord 3, 0 ld de, .namestring call PlaceString pop de - coord hl, 2, 2 + hlcoord 2, 2 call PlaceString call UpdateSprites xor a @@ -187,19 +187,7 @@ DisplayIntroNameTextBox: .namestring db "NAME@" -DefaultNamesPlayer: - db "NEW NAME" - next "YELLOW" - next "ASH" - next "JACK" - db "@" - -DefaultNamesRival: - db "NEW NAME" - next "BLUE" - next "GARY" - next "JOHN" - db "@" +INCLUDE "data/player_names.asm" GetDefaultName: ; a = name index @@ -225,17 +213,7 @@ GetDefaultName: ld bc, $14 jp CopyData -DefaultNamesPlayerList: - db "NEW NAME@" - db "YELLOW@" - db "ASH@" - db "JACK@" - -DefaultNamesRivalList: - db "NEW NAME@" - db "BLUE@" - db "GARY@" - db "JOHN@" +INCLUDE "data/player_names_list.asm" -TextTerminator_6b20: - db "@" +LinkMenuEmptyText: + text_end diff --git a/engine/movie/splash.asm b/engine/movie/splash.asm new file mode 100755 index 000000000..4cb0a59ad --- /dev/null +++ b/engine/movie/splash.asm @@ -0,0 +1,259 @@ +LoadShootingStarGraphics: + ld a, $f9 + ldh [rOBP0], a + ld a, $a4 + ldh [rOBP1], a + call UpdateGBCPal_OBP0 + call UpdateGBCPal_OBP1 + ld de, AnimationTileset2 tile 3 ; star tile (top left quadrant) + ld hl, vChars1 tile $20 + lb bc, BANK(AnimationTileset2), $01 + call CopyVideoData + ld de, AnimationTileset2 tile 19 ; star tile (bottom left quadrant) + ld hl, vChars1 tile $21 + lb bc, BANK(AnimationTileset2), 1 + call CopyVideoData + ld de, FallingStar + ld hl, vChars1 tile $22 + lb bc, BANK(FallingStar), (FallingStarEnd - FallingStar) / $10 + call CopyVideoData + ld hl, GameFreakLogoOAMData + ld de, wOAMBuffer + $60 + ld bc, GameFreakLogoOAMDataEnd - GameFreakLogoOAMData + call CopyData + ld hl, GameFreakShootingStarOAMData + ld de, wOAMBuffer + ld bc, GameFreakShootingStarOAMDataEnd - GameFreakShootingStarOAMData + jp CopyData + +AnimateShootingStar: + call LoadShootingStarGraphics + ld a, SFX_SHOOTING_STAR + call PlaySound + +; Move the big star down and left across the screen. + ld hl, wOAMBuffer + lb bc, $a0, $4 +.bigStarLoop + push hl + push bc +.bigStarInnerLoop + ld a, [hl] ; Y + add 4 + ld [hli], a + ld a, [hl] ; X + add -4 + ld [hli], a + inc hl + inc hl + dec c + jr nz, .bigStarInnerLoop + ld c, 1 + call CheckForUserInterruption + pop bc + pop hl + ret c + ld a, [hl] + cp 80 + jr nz, .next + jr .bigStarLoop +.next + cp b + jr nz, .bigStarLoop + +; Clear big star OAM. + ld hl, wOAMBuffer + ld c, 4 + ld de, 4 +.clearOAMLoop + ld [hl], 160 + add hl, de + dec c + jr nz, .clearOAMLoop + +; Make Gamefreak logo flash. + ld b, 3 +.flashLogoLoop + ld hl, rOBP0 + rrc [hl] + rrc [hl] + call UpdateGBCPal_OBP0 + ld c, 10 + call CheckForUserInterruption + ret c + dec b + jr nz, .flashLogoLoop + +; Copy 24 instances of the small stars OAM data. +; Note that their coordinates put them off-screen. + ld de, wOAMBuffer + ld a, 24 +.initSmallStarsOAMLoop + push af + ld hl, SmallStarsOAM + ld bc, SmallStarsOAMEnd - SmallStarsOAM + call CopyData + pop af + dec a + jr nz, .initSmallStarsOAMLoop + +; Animate the small stars falling from the Gamefreak logo. + xor a + ld [wMoveDownSmallStarsOAMCount], a + ld hl, SmallStarsWaveCoordsPointerTable + ld c, 6 +.smallStarsLoop + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push bc + push hl + ld hl, wOAMBuffer + $50 + ld c, 4 +.smallStarsInnerLoop ; introduce new wave of 4 small stars OAM entries + ld a, [de] + cp -1 + jr z, .next2 + ld [hli], a ; Y + inc de + ld a, [de] + ld [hli], a ; X + inc de + inc hl + push bc + ld a, [de] + ld b, a + ld a, [hl] + and $f0 + or b + ld [hl], a + inc de + pop bc + inc hl + dec c + jr nz, .smallStarsInnerLoop + ld a, [wMoveDownSmallStarsOAMCount] + cp 24 + jr z, .next2 + add 6 ; should be 4, but the extra 2 aren't visible on screen + ld [wMoveDownSmallStarsOAMCount], a +.next2 + call MoveDownSmallStars + push af + +; shift the existing OAM entries down to make room for the next wave + ld hl, wOAMBuffer + $10 + ld de, wOAMBuffer + ld bc, $50 + call CopyData + + pop af + pop hl + pop bc + ret c + dec c + jr nz, .smallStarsLoop + and a + ret + +SmallStarsOAM: + dbsprite 0, 0, 0, 0, $A2, OAM_BEHIND_BG | OAM_OBP1 +SmallStarsOAMEnd: + +SmallStarsWaveCoordsPointerTable: + dw SmallStarsWave1Coords + dw SmallStarsWave2Coords + dw SmallStarsWave3Coords + dw SmallStarsWave4Coords + dw SmallStarsEmptyWave + dw SmallStarsEmptyWave + +; The stars that fall from the Gamefreak logo come in 4 waves of 4 OAM entries. +; These arrays contain the Y and X coordinates of each OAM entry. + +SmallStarsWave1Coords: + db $68, $30 + db $05, $68 + db $40, $05 + db $68, $58 + db $04, $68 + db $78, $07 +SmallStarsWave2Coords: + db $68, $38 + db $05, $68 + db $48, $06 + db $68, $60 + db $04, $68 + db $70, $07 +SmallStarsWave3Coords: + db $68, $34 + db $05, $68 + db $4c, $06 + db $68, $54 + db $06, $68 + db $64, $07 +SmallStarsWave4Coords: + db $68, $3c + db $05, $68 + db $5c, $04 + db $68, $6c + db $07, $68 + db $74, $07 +SmallStarsEmptyWave: + db -1 ; end + +MoveDownSmallStars: + ld b, 8 +.loop + ld hl, wOAMBuffer + $5c + ld a, [wMoveDownSmallStarsOAMCount] + ld de, -4 + ld c, a +.innerLoop + inc [hl] ; Y + add hl, de + dec c + jr nz, .innerLoop +; Toggle the palette so that the lower star in the small stars tile blinks in +; and out. + ldh a, [rOBP1] + xor %10100000 + ldh [rOBP1], a + call UpdateGBCPal_OBP1 + ld c, 3 + call CheckForUserInterruption + ret c + dec b + jr nz, .loop + ret + +GameFreakLogoOAMData: + dbsprite 10, 9, 0, 0, $8d, 0 + dbsprite 11, 9, 0, 0, $8e, 0 + dbsprite 10, 10, 0, 0, $8f, 0 + dbsprite 11, 10, 0, 0, $90, 0 + dbsprite 10, 11, 0, 0, $91, 0 + dbsprite 11, 11, 0, 0, $92, 0 + dbsprite 6, 12, 0, 0, $80, 0 + dbsprite 7, 12, 0, 0, $81, 0 + dbsprite 8, 12, 0, 0, $82, 0 + dbsprite 9, 12, 0, 0, $83, 0 + dbsprite 10, 12, 0, 0, $93, 0 + dbsprite 11, 12, 0, 0, $84, 0 + dbsprite 12, 12, 0, 0, $85, 0 + dbsprite 13, 12, 0, 0, $83, 0 + dbsprite 14, 12, 0, 0, $81, 0 + dbsprite 15, 12, 0, 0, $86, 0 +GameFreakLogoOAMDataEnd: + +GameFreakShootingStarOAMData: + dbsprite 20, 0, 0, 0, $a0, OAM_OBP1 | %100 + dbsprite 21, 0, 0, 0, $a0, OAM_OBP1 | OAM_HFLIP | %100 + dbsprite 20, 1, 0, 0, $a1, OAM_OBP1 | %100 + dbsprite 21, 1, 0, 0, $a1, OAM_OBP1 | OAM_HFLIP | %100 +GameFreakShootingStarOAMDataEnd: + +FallingStar: + INCBIN "gfx/splash/falling_star.2bpp" +FallingStarEnd: diff --git a/engine/movie/title.asm b/engine/movie/title.asm new file mode 100755 index 000000000..1f2723a34 --- /dev/null +++ b/engine/movie/title.asm @@ -0,0 +1,370 @@ +SetDefaultNamesBeforeTitlescreen:: + ld hl, NintenText + ld de, wPlayerName + call CopyFixedLengthText + ld hl, SonyText + ld de, wRivalName + call CopyFixedLengthText + xor a + ldh [hWY], a + ld [wLetterPrintingDelayFlags], a + ld hl, wd732 + ld [hli], a + ld [hli], a + ld [hl], a + ld a, BANK(Music_TitleScreen) + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a + +DisplayTitleScreen: + call GBPalWhiteOut + ld a, $1 + ldh [hAutoBGTransferEnabled], a + xor a + ldh [hTilesetType], a + ldh [hSCX], a + ld a, $40 + ldh [hSCY], a + ld a, $90 + ldh [hWY], a + call ClearScreen + call DisableLCD + call LoadFontTilePatterns +; todo: fix hl pointers + ld hl, NintendoCopyrightLogoGraphics + ld de, vTitleLogo tile $60 + ld bc, 5 tiles + ld a, BANK(NintendoCopyrightLogoGraphics) + call FarCopyData + ld hl, NineTile + ld de, vTitleLogo tile $6e + ld bc, $10 + ld a, BANK(NineTile) + call FarCopyData + ld hl, GamefreakLogoGraphics + ld de, vTitleLogo tile $65 + ld bc, 9 tiles + ld a, BANK(GamefreakLogoGraphics) + call FarCopyData + callfar LoadYellowTitleScreenGFX + ld hl, vBGMap0 + ld bc, (vBGMap1 tile $40) - vBGMap0 + ld a, " " + call FillMemory + callfar TitleScreen_PlacePokemonLogo + call FillSpriteBuffer0WithAA + call .WriteCopyrightTiles + call SaveScreenTilesToBuffer2 + call LoadScreenTilesFromBuffer2 + call EnableLCD + callfar TitleScreen_PlacePikachu + ld a, HIGH(vBGMap0 + $300) + call TitleScreenCopyTileMapToVRAM + call SaveScreenTilesToBuffer1 + ld a, $40 + ldh [hWY], a + call LoadScreenTilesFromBuffer2 + ld a, HIGH(vBGMap0) + call TitleScreenCopyTileMapToVRAM + ld b, SET_PAL_TITLE_SCREEN + call RunPaletteCommand + call GBPalNormal + ld a, %11100000 + ldh [rOBP0], a + call UpdateGBCPal_OBP0 + +; make pokemon logo bounce up and down + ld bc, hSCY ; background scroll Y + ld hl, .TitleScreenPokemonLogoYScrolls +.bouncePokemonLogoLoop + ld a, [hli] + and a + jr z, .finishedBouncingPokemonLogo + ld d, a + cp -3 + jr nz, .skipPlayingSound + ld a, SFX_INTRO_CRASH + call PlaySound +.skipPlayingSound + ld a, [hli] + ld e, a + call .ScrollTitleScreenPokemonLogo + jr .bouncePokemonLogoLoop + +.TitleScreenPokemonLogoYScrolls: +; Controls the bouncing effect of the Pokemon logo on the title screen + db -4,16 ; y scroll amount, number of times to scroll + db 3,4 + db -3,4 + db 2,2 + db -2,2 + db 1,2 + db -1,2 + db 0 ; terminate list with 0 + +.ScrollTitleScreenPokemonLogo: +; Scrolls the Pokemon logo on the title screen to create the bouncing effect +; Scrolls d pixels e times + call DelayFrame + ld a, [bc] ; background scroll Y + add d + ld [bc], a + dec e + jr nz, .ScrollTitleScreenPokemonLogo + ret + +; place tiles for title screen copyright +.WriteCopyrightTiles + hlcoord 2, 17 + ld de, .tileScreenCopyrightTiles +.titleScreenCopyrightTilesLoop + ld a, [de] + inc de + cp $ff + ret z + ld [hli], a + jr .titleScreenCopyrightTilesLoop + +.tileScreenCopyrightTiles + db $e0,$e1,$e2,$e3,$e1,$e2,$ee,$e5,$e6,$e7,$e8,$e9,$ea,$eb,$ec,$ed,$ff ; ©1995-1999 GAME FREAK inc. + +.finishedBouncingPokemonLogo + call LoadScreenTilesFromBuffer1 + ld c, 36 + call DelayFrames + ld a, SFX_INTRO_WHOOSH + call PlaySound + +; scroll game version in from the right + callfar TitleScreen_PlacePikaSpeechBubble + ld a, SCREEN_HEIGHT_PX + ldh [hWY], a + call Delay3 + ld e, 0 + call TitleScreen_PlayPikachuPCM + call WaitForSoundToFinish + call StopAllMusic + ld a, MUSIC_TITLE_SCREEN + ld [wNewSoundID], a + call PlaySound +.loop + xor a + ld [wUnusedCC5B], a + ld [wTitleScreenScene], a + ld [wTitleScreenScene + 1], a + ld [wTitleScreenScene + 2], a + ld [wTitleScreenScene + 3], a + ld a, $f + ld [wTitleScreenScene + 4], a +.titleScreenLoop + call IncrementResetCounter + jp c, .doTitlescreenReset + call DelayFrame + call JoypadLowSensitivity + ldh a, [hJoyHeld] + cp D_UP | SELECT | B_BUTTON + jr z, .go_to_main_menu + and A_BUTTON | START + jr nz, .go_to_main_menu + call DoTitleScreenFunction + jr .titleScreenLoop + +.go_to_main_menu + ld e, $a + call TitleScreen_PlayPikachuPCM + call GBPalWhiteOutWithDelay3 + call ClearSprites + xor a + ldh [hWY], a + inc a + ldh [hAutoBGTransferEnabled], a + call ClearScreen + ld a, HIGH(vBGMap0) + call TitleScreenCopyTileMapToVRAM + ld a, HIGH(vBGMap1) + call TitleScreenCopyTileMapToVRAM + call Delay3 + call LoadGBPal + ldh a, [hJoyHeld] + ld b, a + and D_UP | SELECT | B_BUTTON + cp D_UP | SELECT | B_BUTTON + jp z, .doClearSaveDialogue + jp MainMenu + +.asm_42f0 +; unreferenced + callfar PrinterDebug + jp .loop + +.asm_42fb +; unreferenced + ld a, [wTitleScreenScene + 4] + inc a + cp $2a + jr c, .asm_4305 + ld a, $f +.asm_4305 + ld [wTitleScreenScene + 4], a + ld e, a + callfar PlayPikachuSoundClip + xor a + ld [wTitleScreenScene + 2], a + ld [wTitleScreenScene + 3], a + jp .titleScreenLoop + +.doTitlescreenReset + ld [wAudioFadeOutControl], a + call StopAllMusic +.audioFadeLoop + ld a, [wAudioFadeOutControl] + and a + jr nz, .audioFadeLoop + jp Init + +.doClearSaveDialogue + farjp DoClearSaveDialogue + + +TitleScreenCopyTileMapToVRAM: + ldh [hAutoBGTransferDest + 1], a + jp Delay3 + +LoadCopyrightAndTextBoxTiles: + xor a + ldh [hWY], a + call ClearScreen + call LoadTextBoxTilePatterns + +LoadCopyrightTiles: + ld de, NintendoCopyrightLogoGraphics + ld hl, vChars2 tile $60 + lb bc, BANK(NintendoCopyrightLogoGraphics), (TextBoxGraphics + $10 - NintendoCopyrightLogoGraphics) / $10 ; bug: overflows into text box graphics and copies the "A" tile + call CopyVideoData + hlcoord 2, 7 + ld de, CopyrightTextString + jp PlaceString + +CopyrightTextString: + db $60,$61,$62,$63,$61,$62,$7c,$7f,$65,$66,$67,$68,$69,$6a ; ©1995-1999 Nintendo + next $60,$61,$62,$63,$61,$62,$7c,$7f,$6b,$6c,$6d,$6e,$6f,$70,$71,$72 ; ©1995-1999 Creatures inc. + next $60,$61,$62,$63,$61,$62,$7c,$7f,$73,$74,$75,$76,$77,$78,$79,$7a,$7b ; ©1995-1999 GAME FREAK inc. + db "@" + +TitleScreen_PlayPikachuPCM: + callfar PlayPikachuSoundClip + ret + +DoTitleScreenFunction: + call .CheckTimer + ld a, [wTitleScreenScene] + ld e, a + ld d, 0 + ld hl, .Jumptable + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + + +.Jumptable: + dw .Nop + dw .BlinkHalf + dw .BlinkWait + dw .BlinkWait + dw .BlinkClosed + dw .BlinkWait + dw .BlinkWait + dw .BlinkHalf + dw .BlinkWait + dw .BlinkWait + dw .BlinkOpen + dw .GoBackToStart + +.GoBackToStart: + xor a + ld [wTitleScreenScene], a +.Nop + ret + +.BlinkOpen: + ld e, 0 + jr .LoadBlinkFrame + +.BlinkHalf: + ld e, 4 + jr .LoadBlinkFrame + +.BlinkClosed: + ld e, 8 +.LoadBlinkFrame: + ld hl, wOAMBuffer + 2 + ld c, 8 +.loop + ld a, [hl] + and $f3 + or e + ld [hli], a + inc hl + inc hl + inc hl + dec c + jr nz, .loop +.BlinkWait: + ld hl, wTitleScreenScene + inc [hl] + ret + +.CheckTimer: + ld hl, wTitleScreenTimer + ld a, [hl] + inc [hl] + and a + jr z, .restart + cp $80 + jr z, .restart + cp $90 + ret nz +.restart + ld a, $1 + ld [wTitleScreenScene], a + ret + +; copy text of fixed length NAME_LENGTH (like player name, rival name, mon names, ...) +CopyFixedLengthText: + ld bc, NAME_LENGTH + jp CopyData + +NintenText: db "NINTEN@" +SonyText: db "SONY@" + +IncrementResetCounter: + ld hl, wTitleScreenScene + 2 + ld e, [hl] + inc hl + ld d, [hl] + inc de + ld a, d + cp $c + jr z, .doReset + ld [hl], d + dec hl + ld [hl], e + and a + ret + +.doReset + scf + ret + +FillSpriteBuffer0WithAA: + xor a + call SwitchSRAMBankAndLatchClockData + ld hl, sSpriteBuffer0 + ld bc, $20 + ld a, $aa + call FillMemory + call PrepareRTCDataAndDisableSRAM + ret diff --git a/engine/movie/title2.asm b/engine/movie/title2.asm new file mode 100755 index 000000000..df630b53b --- /dev/null +++ b/engine/movie/title2.asm @@ -0,0 +1,122 @@ +; Leftover of Red/Blue. Seemingly unused + +TitleScroll_WaitBall: +; Wait around for the TitleBall animation to play out. +; hi: speed +; lo: duration + db $05, $05, 0 + +TitleScroll_In: +; Scroll a TitleMon in from the right. +; hi: speed +; lo: duration + db $a2, $94, $84, $63, $52, $31, $11, 0 + +TitleScroll_Out: +; Scroll a TitleMon out to the left. +; hi: speed +; lo: duration + db $12, $22, $32, $42, $52, $62, $83, $93, 0 + +TitleScroll: + ld a, d + + ld bc, TitleScroll_In + ld d, $88 + ld e, 0 ; don't animate titleball + + and a + jr nz, .ok + + ld bc, TitleScroll_Out + ld d, $00 + ld e, 0 ; don't animate titleball +.ok + +_TitleScroll: + ld a, [bc] + and a + ret z + + inc bc + push bc + + ld b, a + and $f + ld c, a + ld a, b + and $f0 + swap a + ld b, a + +.loop + ld h, d + ld l, $48 + call .ScrollBetween + + ld h, $00 + ld l, $88 + call .ScrollBetween + + ld a, d + add b + ld d, a + + call GetTitleBallY + dec c + jr nz, .loop + + pop bc + jr _TitleScroll + +.ScrollBetween: +.wait + ldh a, [rLY] ; rLY + cp l + jr nz, .wait + + ld a, h + ldh [rSCX], a + +.wait2 + ldh a, [rLY] ; rLY + cp h + jr z, .wait2 + ret + +TitleBallYTable: +; OBJ y-positions for the Poke Ball held by Red in the title screen. +; This is really two 0-terminated lists. Initiated with an index of 1. + db 0, $71, $6f, $6e, $6d, $6c, $6d, $6e, $6f, $71, $74, 0 + +TitleScreenAnimateBallIfStarterOut: +; Animate the TitleBall if a starter just got scrolled out. + ld a, [wTitleScreenScene] + cp STARTER1 + jr z, .ok + cp STARTER2 + jr z, .ok + cp STARTER3 + ret nz +.ok + ld e, 1 ; animate titleball + ld bc, TitleScroll_WaitBall + ld d, 0 + jp _TitleScroll + +GetTitleBallY: +; Get position e from TitleBallYTable + push de + push hl + xor a + ld d, a + ld hl, TitleBallYTable + add hl, de + ld a, [hl] + pop hl + pop de + and a + ret z + ld [wOAMBuffer + $28], a + inc e + ret diff --git a/engine/movie/trade.asm b/engine/movie/trade.asm new file mode 100755 index 000000000..7be100e05 --- /dev/null +++ b/engine/movie/trade.asm @@ -0,0 +1,859 @@ +InternalClockTradeAnim: +; Do the trading animation with the player's gameboy on the left. +; In-game trades and internally clocked link cable trades use this. + ld a, [wTradedPlayerMonSpecies] + ld [wLeftGBMonSpecies], a + ld a, [wTradedEnemyMonSpecies] + ld [wRightGBMonSpecies], a + ld de, InternalClockTradeFuncSequence + jr TradeAnimCommon + +ExternalClockTradeAnim: +; Do the trading animation with the player's gameboy on the right. +; Externally clocked link cable trades use this. + ld a, [wTradedEnemyMonSpecies] + ld [wLeftGBMonSpecies], a + ld a, [wTradedPlayerMonSpecies] + ld [wRightGBMonSpecies], a + ld de, ExternalClockTradeFuncSequence + +TradeAnimCommon: + ld a, [wOptions] + push af + and %110000 ; preserve speaker options + ld [wOptions], a + ldh a, [hSCY] + push af + ldh a, [hSCX] + push af + xor a + ldh [hSCY], a + ldh [hSCX], a + push de +.loop + pop de + ld a, [de] + cp $ff + jr z, .done + inc de + push de + ld hl, TradeFuncPointerTable + add a + ld c, a + ld b, $0 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .loop + push de + jp hl ; call trade func, which will return to the top of the loop +.done + pop af + ldh [hSCX], a + pop af + ldh [hSCY], a + pop af + ld [wOptions], a + ret + +addtradefunc: MACRO +\1TradeFunc:: + dw \1 +ENDM + +tradefunc: MACRO + db (\1TradeFunc - TradeFuncPointerTable) / 2 +ENDM + +; The functions in the sequences below are executed in order by TradeFuncCommon. +; They are from opposite perspectives. The external clock one makes use of +; Trade_SwapNames to swap the player and enemy names for some functions. + +InternalClockTradeFuncSequence: + tradefunc LoadTradingGFXAndMonNames + tradefunc Trade_ShowPlayerMon + tradefunc Trade_DrawOpenEndOfLinkCable + tradefunc Trade_AnimateBallEnteringLinkCable + tradefunc Trade_AnimLeftToRight + tradefunc Trade_Delay100 + tradefunc Trade_ShowClearedWindow + tradefunc PrintTradeWentToText + tradefunc PrintTradeForSendsText + tradefunc PrintTradeFarewellText + tradefunc Trade_AnimRightToLeft + tradefunc Trade_ShowClearedWindow + tradefunc Trade_DrawOpenEndOfLinkCable + tradefunc Trade_ShowEnemyMon + tradefunc Trade_Delay100 + tradefunc Trade_Cleanup + db -1 ; end + +ExternalClockTradeFuncSequence: + tradefunc LoadTradingGFXAndMonNames + tradefunc Trade_ShowClearedWindow + tradefunc PrintTradeWillTradeText + tradefunc PrintTradeFarewellText + tradefunc Trade_SwapNames + tradefunc Trade_AnimLeftToRight + tradefunc Trade_SwapNames + tradefunc Trade_ShowClearedWindow + tradefunc Trade_DrawOpenEndOfLinkCable + tradefunc Trade_ShowEnemyMon + tradefunc Trade_SlideTextBoxOffScreen + tradefunc Trade_ShowPlayerMon + tradefunc Trade_DrawOpenEndOfLinkCable + tradefunc Trade_AnimateBallEnteringLinkCable + tradefunc Trade_SwapNames + tradefunc Trade_AnimRightToLeft + tradefunc Trade_SwapNames + tradefunc Trade_Delay100 + tradefunc Trade_ShowClearedWindow + tradefunc PrintTradeWentToText + tradefunc Trade_Cleanup + db -1 ; end + +TradeFuncPointerTable: + addtradefunc LoadTradingGFXAndMonNames + addtradefunc Trade_ShowPlayerMon + addtradefunc Trade_DrawOpenEndOfLinkCable + addtradefunc Trade_AnimateBallEnteringLinkCable + addtradefunc Trade_ShowEnemyMon + addtradefunc Trade_AnimLeftToRight + addtradefunc Trade_AnimRightToLeft + addtradefunc Trade_Delay100 + addtradefunc Trade_ShowClearedWindow + addtradefunc PrintTradeWentToText + addtradefunc PrintTradeForSendsText + addtradefunc PrintTradeFarewellText + addtradefunc PrintTradeTakeCareText + addtradefunc PrintTradeWillTradeText + addtradefunc Trade_Cleanup + addtradefunc Trade_SlideTextBoxOffScreen + addtradefunc Trade_SwapNames + +Trade_Delay100: + ld c, 100 + jp DelayFrames + +Trade_CopyTileMapToVRAM: + ld a, $1 + ldh [hAutoBGTransferEnabled], a + call Delay3 + xor a + ldh [hAutoBGTransferEnabled], a + ret + +Trade_Delay80: + ld c, 80 + jp DelayFrames + +Trade_ClearTileMap: + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, " " + jp FillMemory + +LoadTradingGFXAndMonNames: + call Trade_ClearTileMap + call DisableLCD + ld hl, TradingAnimationGraphics + ld de, vChars2 tile $31 + ld bc, TradingAnimationGraphicsEnd - TradingAnimationGraphics + ld a, BANK(TradingAnimationGraphics) + call FarCopyData + ld hl, TradingAnimationGraphics2 + ld de, vSprites tile $7c + ld bc, TradingAnimationGraphics2End - TradingAnimationGraphics2 + ld a, BANK(TradingAnimationGraphics2) + call FarCopyData + ld hl, vBGMap0 + ld bc, $800 + ld a, " " + call FillMemory + call ClearSprites + ld a, $ff + ld [wUpdateSpritesEnabled], a + ld hl, wd730 + set 6, [hl] ; turn on instant text printing + ld a, [wOnSGB] + and a + ld a, $e4 ; non-SGB OBP0 + jr z, .next + ld a, $f0 ; SGB OBP0 +.next + ldh [rOBP0], a + call UpdateGBCPal_OBP0 + call EnableLCD + xor a + ldh [hAutoBGTransferEnabled], a + ld a, [wTradedPlayerMonSpecies] + ld [wd11e], a + call GetMonName + ld hl, wcd6d + ld de, wcf4b + ld bc, NAME_LENGTH + call CopyData + ld a, [wTradedEnemyMonSpecies] + ld [wd11e], a + jp GetMonName + +Trade_LoadMonPartySpriteGfx: + ld a, %11010000 + ldh [rOBP1], a + call UpdateGBCPal_OBP1 + farjp LoadMonPartySpriteGfx + +Trade_SwapNames: + ld hl, wPlayerName + ld de, wBuffer + ld bc, NAME_LENGTH + call CopyData + ld hl, wLinkEnemyTrainerName + ld de, wPlayerName + ld bc, NAME_LENGTH + call CopyData + ld hl, wBuffer + ld de, wLinkEnemyTrainerName + ld bc, NAME_LENGTH + jp CopyData + +Trade_Cleanup: + xor a + call LoadGBPal + ld hl, wd730 + res 6, [hl] ; turn off instant text printing + ret + +Trade_ShowPlayerMon: + ld a, %10101011 + ldh [rLCDC], a + ld a, $50 + ldh [hWY], a + ld a, $86 + ldh [rWX], a + ldh [hSCX], a + xor a + ldh [hAutoBGTransferEnabled], a + hlcoord 4, 0 + lb bc, 6, 10 + call TextBoxBorder + call Trade_PrintPlayerMonInfoText + ld b, HIGH(vBGMap0) + call CopyScreenTileBufferToVRAM + call ClearScreen + ld a, [wTradedPlayerMonSpecies] + call Trade_LoadMonSprite + ld a, $7e +.slideScreenLoop + push af + call DelayFrame + pop af + ldh [rWX], a + ldh [hSCX], a + dec a + dec a + and a + jr nz, .slideScreenLoop + call Trade_Delay80 + ld a, TRADE_BALL_POOF_ANIM + call Trade_ShowAnimation + ld a, TRADE_BALL_DROP_ANIM + call Trade_ShowAnimation ; clears mon pic + ld a, [wTradedPlayerMonSpecies] + call PlayCry + xor a + ldh [hAutoBGTransferEnabled], a + ret + +Trade_DrawOpenEndOfLinkCable: + call Trade_ClearTileMap + ld b, HIGH(vBGMap0) + call CopyScreenTileBufferToVRAM + ld b, SET_PAL_GENERIC + call RunPaletteCommand + +; This function call is pointless. It just copies blank tiles to VRAM that was +; already filled with blank tiles. + ld hl, vBGMap1 + $8c + call Trade_CopyCableTilesOffScreen + + ld a, $a0 + ldh [hSCX], a + call DelayFrame + ld a, %10001011 + ldh [rLCDC], a + hlcoord 6, 2 + ld b, TILEMAP_LINK_CABLE + call CopyTileIDsFromList_ZeroBaseTileID + call Trade_CopyTileMapToVRAM + ld a, SFX_HEAL_HP + call PlaySound + ld c, 20 +.loop + ldh a, [hSCX] + add 4 + ldh [hSCX], a + dec c + jr nz, .loop + ret + +Trade_AnimateBallEnteringLinkCable: + ld a, TRADE_BALL_SHAKE_ANIM + call Trade_ShowAnimation + ld c, 10 + call DelayFrames + ld a, %11100100 + ldh [rOBP0], a + call UpdateGBCPal_OBP0 + xor a + ld [wLinkCableAnimBulgeToggle], a + lb bc, $20, $60 +.moveBallInsideLinkCableLoop + push bc + xor a + ld de, Trade_BallInsideLinkCableOAM + call WriteOAMBlock + ld a, [wLinkCableAnimBulgeToggle] + xor $1 + ld [wLinkCableAnimBulgeToggle], a + add $7e + ld hl, wOAMBuffer + $02 + ld de, 4 + ld c, e +.cycleLinkCableBulgeTile + ld [hl], a + add hl, de + dec c + jr nz, .cycleLinkCableBulgeTile + call Delay3 + pop bc + ld a, c + add $4 + ld c, a + cp $a0 + jr nc, .ballSpriteReachedEdgeOfScreen + ld a, SFX_TINK + call PlaySound + jr .moveBallInsideLinkCableLoop +.ballSpriteReachedEdgeOfScreen + call ClearSprites + ld a, $1 + ldh [hAutoBGTransferEnabled], a + call ClearScreen + ld b, $98 + call CopyScreenTileBufferToVRAM + call Delay3 + xor a + ldh [hAutoBGTransferEnabled], a + ret + +Trade_BallInsideLinkCableOAM: + dbsprite 0, 15, 0, 6, $7e, OAM_HFLIP + dbsprite 8, 15, 0, 6, $7e, OAM_HFLIP | OAM_VFLIP + +Trade_ShowEnemyMon: + ld a, TRADE_BALL_TILT_ANIM + call Trade_ShowAnimation + call Trade_ShowClearedWindow + hlcoord 4, 10 + lb bc, 6, 10 + call TextBoxBorder + call Trade_PrintEnemyMonInfoText + call Trade_CopyTileMapToVRAM + ld a, $1 + ldh [hAutoBGTransferEnabled], a + ld a, [wTradedEnemyMonSpecies] + call Trade_LoadMonSprite + ld a, TRADE_BALL_POOF_ANIM + call Trade_ShowAnimation + ld a, $1 + ldh [hAutoBGTransferEnabled], a + ld a, [wTradedEnemyMonSpecies] + call PlayCry + call Trade_Delay100 + hlcoord 4, 10 + lb bc, 8, 12 + call ClearScreenArea + jp PrintTradeTakeCareText + +Trade_AnimLeftToRight: +; Animates the mon moving from the left GB to the right one. + call Trade_InitGameboyTransferGfx + ld a, $1 + ld [wTradedMonMovingRight], a + ld a, %11100100 + ldh [rOBP0], a + call UpdateGBCPal_OBP0 + ld a, $54 + ld [wBaseCoordX], a + ld a, $1c + ld [wBaseCoordY], a + ld a, [wLeftGBMonSpecies] + ld [wMonPartySpriteSpecies], a + call Trade_WriteCircledMonOAM + call Trade_DrawLeftGameboy + call Trade_CopyTileMapToVRAM + call Trade_DrawCableAcrossScreen + ld hl, vBGMap1 + $8c + call Trade_CopyCableTilesOffScreen + ld b, $6 + call Trade_AnimMonMoveHorizontal + ld a, $1 + ldh [hAutoBGTransferEnabled], a + call Trade_DrawCableAcrossScreen + ld b, $4 + call Trade_AnimMonMoveHorizontal + call Trade_DrawRightGameboy + ld b, $6 + call Trade_AnimMonMoveHorizontal + xor a + ldh [hAutoBGTransferEnabled], a + call Trade_AnimMonMoveVertical + jp ClearSprites + +Trade_AnimRightToLeft: +; Animates the mon moving from the right GB to the left one. + call Trade_InitGameboyTransferGfx + xor a + ld [wTradedMonMovingRight], a + ld a, $64 + ld [wBaseCoordX], a + ld a, $44 + ld [wBaseCoordY], a + ld a, [wRightGBMonSpecies] + ld [wMonPartySpriteSpecies], a + call Trade_WriteCircledMonOAM + call Trade_DrawRightGameboy + call Trade_CopyTileMapToVRAM + call Trade_DrawCableAcrossScreen + ld hl, vBGMap1 + $94 + call Trade_CopyCableTilesOffScreen + call Trade_AnimMonMoveVertical + ld b, $6 + call Trade_AnimMonMoveHorizontal + ld a, $1 + ldh [hAutoBGTransferEnabled], a + call Trade_DrawCableAcrossScreen + ld b, $4 + call Trade_AnimMonMoveHorizontal + call Trade_DrawLeftGameboy + ld b, $6 + call Trade_AnimMonMoveHorizontal + xor a + ldh [hAutoBGTransferEnabled], a + jp ClearSprites + +Trade_InitGameboyTransferGfx: +; Initialises the graphics for showing a mon moving between gameboys. + ld a, $1 + ldh [hAutoBGTransferEnabled], a + call ClearScreen + ld b, SET_PAL_GENERIC + call RunPaletteCommand + xor a + ldh [hAutoBGTransferEnabled], a + call Trade_LoadMonPartySpriteGfx + call DelayFrame + ld a, %10101011 + ldh [rLCDC], a + xor a + ldh [hSCX], a + ld a, $90 + ldh [hWY], a + ret + +Trade_DrawLeftGameboy: + call Trade_ClearTileMap + +; draw link cable + hlcoord 11, 4 + ld a, $5d + ld [hli], a + ld a, $5e + ld c, 8 +.loop + ld [hli], a + dec c + jr nz, .loop + +; draw gameboy pic + hlcoord 5, 3 + ld b, TILEMAP_GAME_BOY + call CopyTileIDsFromList_ZeroBaseTileID + +; draw text box with player name below gameboy pic + hlcoord 4, 12 + lb bc, 2, 7 + call TextBoxBorder + hlcoord 5, 14 + ld de, wPlayerName + call PlaceString + + jp DelayFrame + +Trade_DrawRightGameboy: + call Trade_ClearTileMap + +; draw horizontal segment of link cable + hlcoord 0, 4 + ld a, $5e + ld c, $e +.loop + ld [hli], a + dec c + jr nz, .loop + +; draw vertical segment of link cable + ld a, $5f + ld [hl], a + ld de, SCREEN_WIDTH + add hl, de + ld a, $61 + ld [hl], a + add hl, de + ld [hl], a + add hl, de + ld [hl], a + add hl, de + ld [hl], a + add hl, de + ld a, $60 + ld [hld], a + ld a, $5d + ld [hl], a + +; draw gameboy pic + hlcoord 7, 8 + ld b, TILEMAP_GAME_BOY + call CopyTileIDsFromList_ZeroBaseTileID + +; draw text box with enemy name above link cable + hlcoord 6, 0 + lb bc, 2, 7 + call TextBoxBorder + hlcoord 7, 2 + ld de, wLinkEnemyTrainerName + call PlaceString + + jp DelayFrame + +Trade_DrawCableAcrossScreen: +; Draws the link cable across the screen. + call Trade_ClearTileMap + hlcoord 0, 4 + ld a, $5e + ld c, SCREEN_WIDTH +.loop + ld [hli], a + dec c + jr nz, .loop + ret + +Trade_CopyCableTilesOffScreen: +; This is used to copy the link cable tiles off screen so that the cable +; continues when the screen is scrolled. + push hl + hlcoord 0, 4 + call CopyToRedrawRowOrColumnSrcTiles + pop hl + ld a, h + ldh [hRedrawRowOrColumnDest + 1], a + ld a, l + ldh [hRedrawRowOrColumnDest], a + ld a, REDRAW_ROW + ldh [hRedrawRowOrColumnMode], a + ld c, 10 + jp DelayFrames + +Trade_AnimMonMoveHorizontal: +; Animates the mon going through the link cable horizontally over a distance of +; b 16-pixel units. + ld a, [wTradedMonMovingRight] + ld e, a + ld d, $8 +.scrollLoop + ld a, e + dec a + jr z, .movingRight +; moving left + ldh a, [hSCX] + sub $2 + jr .next +.movingRight + ldh a, [hSCX] + add $2 +.next + ldh [hSCX], a + call DelayFrame + dec d + jr nz, .scrollLoop + call Trade_AnimCircledMon + dec b + jr nz, Trade_AnimMonMoveHorizontal + ret + +Trade_AnimCircledMon: +; Cycles between the two animation frames of the mon party sprite, cycles +; between a circle and an oval around the mon sprite, and makes the cable flash. + push de + push bc + push hl + ldh a, [rBGP] + xor $3c ; make link cable flash + ldh [rBGP], a + call UpdateGBCPal_BGP + ld hl, wOAMBuffer + $02 + ld de, $4 + ld c, $14 +.loop + ld a, [hl] + xor ICONOFFSET + ld [hl], a + add hl, de + dec c + jr nz, .loop + pop hl + pop bc + pop de + ret + +Trade_WriteCircledMonOAM: + farcall WriteMonPartySpriteOAMBySpecies + call Trade_WriteCircleOAM + +Trade_AddOffsetsToOAMCoords: + ld hl, wOAMBuffer + ld c, $14 ; SCREEN_WIDTH? +.loop + ld a, [wBaseCoordY] + add [hl] + ld [hli], a + ld a, [wBaseCoordX] + add [hl] + ld [hli], a + inc hl + inc hl + dec c + jr nz, .loop + ret + +Trade_AnimMonMoveVertical: +; Animates the mon going through the link cable vertically as well as +; horizontally for a bit. The last bit of horizontal movement (when moving +; right) or the first bit of horizontal movement (when moving left) are done +; here instead of Trade_AnimMonMoveHorizontal because this function moves the +; sprite itself rather than scrolling the screen around the sprite. Moving the +; sprite itself is necessary because the vertical segment of the link cable is +; to the right of the screen position that the mon sprite has when +; Trade_AnimMonMoveHorizontal is executing. + ld a, [wTradedMonMovingRight] + and a + jr z, .movingLeft +; moving right + lb bc, 4, 0 ; move right + call .doAnim + lb bc, 0, 10 ; move down + jr .doAnim +.movingLeft + lb bc, 0, -10 ; move up + call .doAnim + lb bc, -4, 0 ; move left +.doAnim + ld a, b + ld [wBaseCoordX], a + ld a, c + ld [wBaseCoordY], a + ld d, $4 +.loop + call Trade_AddOffsetsToOAMCoords + call Trade_AnimCircledMon + ld c, 8 + call DelayFrames + dec d + jr nz, .loop + ret + +Trade_WriteCircleOAM: +; Writes the OAM blocks for the circle around the traded mon as it passes +; the link cable. + ld hl, Trade_CircleOAMPointers + ld c, $4 + xor a +.loop + push bc + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld c, [hl] + inc hl + ld b, [hl] + inc hl + push hl + inc a + push af + call WriteOAMBlock + pop af + pop hl + pop bc + dec c + jr nz, .loop + ret + +trade_circle_oam: MACRO + dw \1 + db \2, \3 +ENDM + +Trade_CircleOAMPointers: + ; oam pointer, upper-left x coord, upper-left y coord + trade_circle_oam Trade_CircleOAM0, $08, $08 + trade_circle_oam Trade_CircleOAM1, $18, $08 + trade_circle_oam Trade_CircleOAM2, $08, $18 + trade_circle_oam Trade_CircleOAM3, $18, $18 + +Trade_CircleOAM0: + dbsprite 2, 7, 0, 0, ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1 + dbsprite 2, 7, 0, 2, ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1 + +Trade_CircleOAM1: + dbsprite 6, 7, 0, 1, ICON_TRADEBUBBLE << 2 + 0, OAM_OBP1 | OAM_HFLIP + dbsprite 6, 7, 0, 3, ICON_TRADEBUBBLE << 2 + 2, OAM_OBP1 | OAM_HFLIP + +Trade_CircleOAM2: + dbsprite 10, 7, 0, 2, ICON_TRADEBUBBLE << 2 + 3, OAM_OBP1 | OAM_VFLIP + dbsprite 10, 7, 0, 0, ICON_TRADEBUBBLE << 2 + 1, OAM_OBP1 | OAM_VFLIP + +Trade_CircleOAM3: + dbsprite 14, 7, 0, 3, ICON_TRADEBUBBLE << 2 + 2, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP + dbsprite 14, 7, 0, 1, ICON_TRADEBUBBLE << 2 + 0, OAM_OBP1 | OAM_HFLIP | OAM_VFLIP + +; a = species +Trade_LoadMonSprite: + ld [wcf91], a + ld [wd0b5], a + ld [wWholeScreenPaletteMonSpecies], a + ld b, SET_PAL_POKEMON_WHOLE_SCREEN + ld c, 0 + call RunPaletteCommand + ldh a, [hAutoBGTransferEnabled] + xor $1 + ldh [hAutoBGTransferEnabled], a + call GetMonHeader + hlcoord 7, 2 + call LoadFlippedFrontSpriteByMonIndex + ld c, 10 + jp DelayFrames + +Trade_ShowClearedWindow: +; clears the window and covers the BG entirely with the window + ld a, $1 + ldh [hAutoBGTransferEnabled], a + call ClearScreen + ld a, %11100011 + ldh [rLCDC], a + ld a, $7 + ldh [rWX], a + xor a + ldh [hWY], a + ld a, $90 + ldh [hSCX], a + ret + +Trade_SlideTextBoxOffScreen: +; Slides the window right until it's off screen. The window usually just has +; a text box at the bottom when this is called. However, when this is called +; after Trade_ShowEnemyMon in the external clock sequence, there is a mon pic +; above the text box and it is also scrolled off the screen. + ld c, 50 + call DelayFrames +.loop + call DelayFrame + ldh a, [rWX] + inc a + inc a + ldh [rWX], a + cp $a1 + jr nz, .loop + call Trade_ClearTileMap + ld c, 10 + call DelayFrames + ld a, $7 + ldh [rWX], a + ret + +PrintTradeWentToText: + ld hl, TradeWentToText + call PrintText + ld c, 200 + call DelayFrames + jp Trade_SlideTextBoxOffScreen + +TradeWentToText: + text_far _TradeWentToText + text_end + +PrintTradeForSendsText: + ld hl, TradeForText + call PrintText + call Trade_Delay80 + ld hl, TradeSendsText + call PrintText + jp Trade_Delay80 + +TradeForText: + text_far _TradeForText + text_end + +TradeSendsText: + text_far _TradeSendsText + text_end + +PrintTradeFarewellText: + ld hl, TradeWavesFarewellText + call PrintText + call Trade_Delay80 + ld hl, TradeTransferredText + call PrintText + call Trade_Delay80 + jp Trade_SlideTextBoxOffScreen + +TradeWavesFarewellText: + text_far _TradeWavesFarewellText + text_end + +TradeTransferredText: + text_far _TradeTransferredText + text_end + +PrintTradeTakeCareText: + ld hl, TradeTakeCareText + call PrintText + jp Trade_Delay80 + +TradeTakeCareText: + text_far _TradeTakeCareText + text_end + +PrintTradeWillTradeText: + ld hl, TradeWillTradeText + call PrintText + call Trade_Delay80 + ld hl, TradeforText + call PrintText + jp Trade_Delay80 + +TradeWillTradeText: + text_far _TradeWillTradeText + text_end + +TradeforText: + text_far _TradeforText + text_end + +Trade_ShowAnimation: + ld [wAnimationID], a + xor a + ld [wAnimationType], a + predef_jump MoveAnimation diff --git a/engine/trade2.asm b/engine/movie/trade2.asm similarity index 77% rename from engine/trade2.asm rename to engine/movie/trade2.asm index 2c79e077d..f0d91846e 100755 --- a/engine/trade2.asm +++ b/engine/movie/trade2.asm @@ -1,48 +1,49 @@ Trade_PrintPlayerMonInfoText: - coord hl, 5, 0 + hlcoord 5, 0 ld de, Trade_MonInfoText call PlaceString ld a, [wTradedPlayerMonSpecies] ld [wd11e], a predef IndexToPokedex - coord hl, 9, 0 + hlcoord 9, 0 ld de, wd11e lb bc, LEADING_ZEROES | 1, 3 call PrintNumber - coord hl, 5, 2 + hlcoord 5, 2 ld de, wcf4b call PlaceString - coord hl, 8, 4 + hlcoord 8, 4 ld de, wTradedPlayerMonOT call PlaceString - coord hl, 8, 6 + hlcoord 8, 6 ld de, wTradedPlayerMonOTID lb bc, LEADING_ZEROES | 2, 5 jp PrintNumber Trade_PrintEnemyMonInfoText: - coord hl, 5, 10 + hlcoord 5, 10 ld de, Trade_MonInfoText call PlaceString ld a, [wTradedEnemyMonSpecies] ld [wd11e], a predef IndexToPokedex - coord hl, 9, 10 + hlcoord 9, 10 ld de, wd11e lb bc, LEADING_ZEROES | 1, 3 call PrintNumber - coord hl, 5, 12 + hlcoord 5, 12 ld de, wcd6d call PlaceString - coord hl, 8, 14 + hlcoord 8, 14 ld de, wTradedEnemyMonOT call PlaceString - coord hl, 8, 16 + hlcoord 8, 16 ld de, wTradedEnemyMonOTID lb bc, LEADING_ZEROES | 2, 5 jp PrintNumber Trade_MonInfoText: - db "──№⠄",$4E + db "──№" + next "" next "OT/" - next $73,"№⠄","@" + next "@" diff --git a/engine/multiply_divide.asm b/engine/multiply_divide.asm deleted file mode 100755 index d664c9d4b..000000000 --- a/engine/multiply_divide.asm +++ /dev/null @@ -1,144 +0,0 @@ -_Multiply: - ld a, $8 - ld b, a - xor a - ld [H_PRODUCT], a - ld [H_MULTIPLYBUFFER], a - ld [H_MULTIPLYBUFFER+1], a - ld [H_MULTIPLYBUFFER+2], a - ld [H_MULTIPLYBUFFER+3], a -.multiplyLoop - ld a, [H_MULTIPLIER] - srl a - ld [H_MULTIPLIER], a - jr nc, .smallMultiplier ; less than $80 -; code to possibly multiply the multiplicand by 2 and divide the multiplier by 2? - ld a, [H_MULTIPLYBUFFER+3] - ld c, a - ld a, [H_MULTIPLICAND+2] - add c - ld [H_MULTIPLYBUFFER+3], a - ld a, [H_MULTIPLYBUFFER+2] - ld c, a - ld a, [H_MULTIPLICAND+1] - adc c - ld [H_MULTIPLYBUFFER+2], a - ld a, [H_MULTIPLYBUFFER+1] - ld c, a - ld a, [H_MULTIPLICAND] - adc c - ld [H_MULTIPLYBUFFER+1], a - ld a, [H_MULTIPLYBUFFER] - ld c, a - ld a, [H_PRODUCT] - adc c - ld [H_MULTIPLYBUFFER], a -.smallMultiplier - dec b - jr z, .done - ld a, [H_MULTIPLICAND+2] - sla a - ld [H_MULTIPLICAND+2], a - ld a, [H_MULTIPLICAND+1] - rl a - ld [H_MULTIPLICAND+1], a - ld a, [H_MULTIPLICAND] - rl a - ld [H_MULTIPLICAND], a - ld a, [H_PRODUCT] - rl a - ld [H_PRODUCT], a - jr .multiplyLoop -.done - ld a, [H_MULTIPLYBUFFER+3] - ld [H_PRODUCT+3], a - ld a, [H_MULTIPLYBUFFER+2] - ld [H_PRODUCT+2], a - ld a, [H_MULTIPLYBUFFER+1] - ld [H_PRODUCT+1], a - ld a, [H_MULTIPLYBUFFER] - ld [H_PRODUCT], a - ret - -_Divide: - xor a - ld [H_DIVIDEBUFFER], a - ld [H_DIVIDEBUFFER+1], a - ld [H_DIVIDEBUFFER+2], a - ld [H_DIVIDEBUFFER+3], a - ld [H_DIVIDEBUFFER+4], a - ld a, $9 - ld e, a -.asm_f6680 - ld a, [H_DIVIDEBUFFER] - ld c, a - ld a, [H_DIVIDEND+1] - sub c - ld d, a - ld a, [H_DIVISOR] - ld c, a - ld a, [H_DIVIDEND] - sbc c - jr c, .asm_f669b - ld [H_DIVIDEND], a - ld a, d - ld [H_DIVIDEND+1], a - ld a, [H_DIVIDEBUFFER+4] - inc a - ld [H_DIVIDEBUFFER+4], a - jr .asm_f6680 -.asm_f669b - ld a, b - cp $1 - jr z, .done - ld a, [H_DIVIDEBUFFER+4] - sla a - ld [H_DIVIDEBUFFER+4], a - ld a, [H_DIVIDEBUFFER+3] - rl a - ld [H_DIVIDEBUFFER+3], a - ld a, [H_DIVIDEBUFFER+2] - rl a - ld [H_DIVIDEBUFFER+2], a - ld a, [H_DIVIDEBUFFER+1] - rl a - ld [H_DIVIDEBUFFER+1], a - dec e - jr nz, .asm_f66d1 - ld a, $8 - ld e, a - ld a, [H_DIVIDEBUFFER] - ld [H_DIVISOR], a - xor a - ld [H_DIVIDEBUFFER], a - ld a, [H_DIVIDEND+1] - ld [H_DIVIDEND], a - ld a, [H_DIVIDEND+2] - ld [H_DIVIDEND+1], a - ld a, [H_DIVIDEND+3] - ld [H_DIVIDEND+2], a -.asm_f66d1 - ld a, e - cp $1 - jr nz, .asm_f66d7 - dec b -.asm_f66d7 - ld a, [H_DIVISOR] - srl a - ld [H_DIVISOR], a - ld a, [H_DIVIDEBUFFER] - rr a - ld [H_DIVIDEBUFFER], a - jr .asm_f6680 -.done - ld a, [H_DIVIDEND+1] - ld [H_REMAINDER], a - ld a, [H_DIVIDEBUFFER+4] - ld [H_QUOTIENT+3], a - ld a, [H_DIVIDEBUFFER+3] - ld [H_QUOTIENT+2], a - ld a, [H_DIVIDEBUFFER+2] - ld [H_QUOTIENT+1], a - ld a, [H_DIVIDEBUFFER+1] - ld [H_QUOTIENT], a - ret diff --git a/engine/oam_dma.asm b/engine/oam_dma.asm deleted file mode 100644 index 7326445ef..000000000 --- a/engine/oam_dma.asm +++ /dev/null @@ -1,26 +0,0 @@ -WriteDMACodeToHRAM: -; Since no other memory is available during OAM DMA, -; DMARoutine is copied to HRAM and executed there. - ld c, $ff80 % $100 - ld b, DMARoutineEnd - DMARoutine - ld hl, DMARoutine -.copy - ld a, [hli] - ld [$ff00+c], a - inc c - dec b - jr nz, .copy - ret - -DMARoutine: - ; initiate DMA - ld a, wOAMBuffer / $100 - ld [rDMA], a - - ; wait for DMA to finish - ld a, $28 -.wait - dec a - jr nz, .wait - ret -DMARoutineEnd: diff --git a/engine/overworld/advance_player_sprite.asm b/engine/overworld/advance_player_sprite.asm index 6b4a0cbb1..4ebdac84d 100644 --- a/engine/overworld/advance_player_sprite.asm +++ b/engine/overworld/advance_player_sprite.asm @@ -1,241 +1,244 @@ _AdvancePlayerSprite:: - ld a,[wSpriteStateData1 + 3] ; delta Y - ld b,a - ld a,[wSpriteStateData1 + 5] ; delta X - ld c,a - ld hl,wWalkCounter ; walking animation counter + ld a, [wSpritePlayerStateData1YStepVector] + ld b, a + ld a, [wSpritePlayerStateData1XStepVector] + ld c, a + ld hl, wWalkCounter ; walking animation counter dec [hl] - jr nz,.afterUpdateMapCoords + jr nz, .afterUpdateMapCoords ; if it's the end of the animation, update the player's map coordinates ld hl, wPikachuOverworldStateFlags res 5, [hl] - ld a,[wYCoord] + ld a, [wYCoord] add b - ld [wYCoord],a - ld a,[wXCoord] + ld [wYCoord], a + ld a, [wXCoord] add c - ld [wXCoord],a + ld [wXCoord], a .afterUpdateMapCoords - ld a,[wWalkCounter] ; walking animation counter - cp a,$07 - jp nz,.scrollBackgroundAndSprites + ld a, [wWalkCounter] ; walking animation counter + cp $07 + jp nz, .scrollBackgroundAndSprites ; if this is the first iteration of the animation - ld a,c - cp a,$01 - jr nz,.checkIfMovingWest + ld a, c + cp $01 + jr nz, .checkIfMovingWest ; moving east - ld a,[wMapViewVRAMPointer] - ld e,a + ld a, [wMapViewVRAMPointer] + ld e, a and $e0 - ld d,a - ld a,e + ld d, a + ld a, e add $02 and $1f or d - ld [wMapViewVRAMPointer],a + ld [wMapViewVRAMPointer], a jr .adjustXCoordWithinBlock .checkIfMovingWest - cp a,$ff - jr nz,.checkIfMovingSouth + cp $ff + jr nz, .checkIfMovingSouth ; moving west - ld a,[wMapViewVRAMPointer] - ld e,a - and a,$e0 - ld d,a - ld a,e + ld a, [wMapViewVRAMPointer] + ld e, a + and $e0 + ld d, a + ld a, e sub $02 and $1f or d - ld [wMapViewVRAMPointer],a + ld [wMapViewVRAMPointer], a jr .adjustXCoordWithinBlock .checkIfMovingSouth - ld a,b - cp a,$01 - jr nz,.checkIfMovingNorth + ld a, b + cp $01 + jr nz, .checkIfMovingNorth ; moving south - ld a,[wMapViewVRAMPointer] + ld a, [wMapViewVRAMPointer] add $40 - ld [wMapViewVRAMPointer],a - jr nc,.adjustXCoordWithinBlock - ld a,[wMapViewVRAMPointer + 1] + ld [wMapViewVRAMPointer], a + jr nc, .adjustXCoordWithinBlock + ld a, [wMapViewVRAMPointer + 1] inc a and $03 or $98 - ld [wMapViewVRAMPointer + 1],a + ld [wMapViewVRAMPointer + 1], a jr .adjustXCoordWithinBlock .checkIfMovingNorth - cp a,$ff - jr nz,.adjustXCoordWithinBlock + cp $ff + jr nz, .adjustXCoordWithinBlock ; moving north - ld a,[wMapViewVRAMPointer] + ld a, [wMapViewVRAMPointer] sub $40 - ld [wMapViewVRAMPointer],a - jr nc,.adjustXCoordWithinBlock - ld a,[wMapViewVRAMPointer + 1] + ld [wMapViewVRAMPointer], a + jr nc, .adjustXCoordWithinBlock + ld a, [wMapViewVRAMPointer + 1] dec a and $03 or $98 - ld [wMapViewVRAMPointer + 1],a + ld [wMapViewVRAMPointer + 1], a .adjustXCoordWithinBlock - ld a,c + ld a, c and a - jr z,.pointlessJump ; mistake? + jr z, .pointlessJump ; mistake? .pointlessJump - ld hl,wXBlockCoord - ld a,[hl] + ld hl, wXBlockCoord + ld a, [hl] add c - ld [hl],a + ld [hl], a cp $02 - jr nz,.checkForMoveToWestBlock + jr nz, .checkForMoveToWestBlock ; moved into the tile block to the east xor a - ld [hl],a - ld hl,wXOffsetSinceLastSpecialWarp + ld [hl], a + ld hl, wXOffsetSinceLastSpecialWarp inc [hl] - ld de,wCurrentTileBlockMapViewPointer + ld de, wCurrentTileBlockMapViewPointer call MoveTileBlockMapPointerEast jr .updateMapView .checkForMoveToWestBlock - cp a,$ff - jr nz,.adjustYCoordWithinBlock + cp $ff + jr nz, .adjustYCoordWithinBlock ; moved into the tile block to the west - ld a,$1 - ld [hl],a - ld hl,wXOffsetSinceLastSpecialWarp + ld a, $01 + ld [hl], a + ld hl, wXOffsetSinceLastSpecialWarp dec [hl] - ld de,wCurrentTileBlockMapViewPointer + ld de, wCurrentTileBlockMapViewPointer call MoveTileBlockMapPointerWest jr .updateMapView .adjustYCoordWithinBlock - ld hl,wYBlockCoord - ld a,[hl] + ld hl, wYBlockCoord + ld a, [hl] add b - ld [hl],a - cp $2 - jr nz,.checkForMoveToNorthBlock + ld [hl], a + cp $02 + jr nz, .checkForMoveToNorthBlock ; moved into the tile block to the south xor a - ld [hl],a - ld hl,wYOffsetSinceLastSpecialWarp + ld [hl], a + ld hl, wYOffsetSinceLastSpecialWarp inc [hl] - ld de,wCurrentTileBlockMapViewPointer - ld a,[wCurMapWidth] + ld de, wCurrentTileBlockMapViewPointer + ld a, [wCurMapWidth] call MoveTileBlockMapPointerSouth jr .updateMapView .checkForMoveToNorthBlock - cp a,$ff - jr nz,.updateMapView + cp $ff + jr nz, .updateMapView ; moved into the tile block to the north - ld a,$1 - ld [hl],a - ld hl,wYOffsetSinceLastSpecialWarp + ld a, $01 + ld [hl], a + ld hl, wYOffsetSinceLastSpecialWarp dec [hl] - ld de,wCurrentTileBlockMapViewPointer - ld a,[wCurMapWidth] + ld de, wCurrentTileBlockMapViewPointer + ld a, [wCurMapWidth] call MoveTileBlockMapPointerNorth .updateMapView call LoadCurrentMapView - ld a,[wSpriteStateData1 + 3] ; delta Y - cp $1 - jr nz,.checkIfMovingNorth2 + ld a, [wSpritePlayerStateData1YStepVector] + cp $01 + jr nz, .checkIfMovingNorth2 ; if moving south call ScheduleSouthRowRedraw jr .scrollBackgroundAndSprites .checkIfMovingNorth2 cp $ff - jr nz,.checkIfMovingEast2 + jr nz, .checkIfMovingEast2 ; if moving north call ScheduleNorthRowRedraw jr .scrollBackgroundAndSprites .checkIfMovingEast2 - ld a,[wSpriteStateData1 + 5] ; delta X - cp $1 - jr nz,.checkIfMovingWest2 + ld a, [wSpritePlayerStateData1XStepVector] + cp $01 + jr nz, .checkIfMovingWest2 ; if moving east call ScheduleEastColumnRedraw jr .scrollBackgroundAndSprites .checkIfMovingWest2 cp $ff - jr nz,.scrollBackgroundAndSprites + jr nz, .scrollBackgroundAndSprites ; if moving west call ScheduleWestColumnRedraw .scrollBackgroundAndSprites - ld a,[wSpriteStateData1 + 3] ; delta Y + ld a, [wSpritePlayerStateData1YStepVector] add a - ld b,a - ld a,[wSpriteStateData1 + 5] ; delta X + ld b, a + ld a, [wSpritePlayerStateData1XStepVector] add a - ld c,a + ld c, a ; shift all the sprites in the direction opposite of the player's motion ; so that the player appears to move relative to them - ld hl,wSpriteStateData1 + $14 - ld e,15 + ld hl, wSprite01StateData1YPixels + ld e, 15 .spriteShiftLoop - ld a,[hl] + ld a, [hl] sub b - ld [hli],a + ld [hli], a inc l - ld a,[hl] + ld a, [hl] sub c - ld [hl],a - ld a,$0e + ld [hl], a + ld a, $0e add l - ld l,a + ld l, a dec e - jr nz,.spriteShiftLoop + jr nz, .spriteShiftLoop .done - ld a,[hSCY] + ldh a, [hSCY] add b - ld [hSCY],a ; update background scroll Y - ld a,[hSCX] + ldh [hSCY], a ; update background scroll Y + ldh a, [hSCX] add c - ld [hSCX],a ; update background scroll X + ldh [hSCX], a ; update background scroll X ret +; the following four functions are used to move the pointer to the upper left +; corner of the tile block map in the direction of motion + MoveTileBlockMapPointerEast:: - ld a,[de] - add $1 - ld [de],a + ld a, [de] + add $01 + ld [de], a ret nc inc de - ld a,[de] + ld a, [de] inc a - ld [de],a + ld [de], a ret MoveTileBlockMapPointerWest:: - ld a,[de] - sub $1 - ld [de],a + ld a, [de] + sub $01 + ld [de], a ret nc inc de - ld a,[de] + ld a, [de] dec a - ld [de],a + ld [de], a ret MoveTileBlockMapPointerSouth:: - add $6 - ld b,a - ld a,[de] + add MAP_BORDER * 2 + ld b, a + ld a, [de] add b - ld [de],a + ld [de], a ret nc inc de - ld a,[de] + ld a, [de] inc a - ld [de],a + ld [de], a ret MoveTileBlockMapPointerNorth:: - add $6 - ld b,a - ld a,[de] + add MAP_BORDER * 2 + ld b, a + ld a, [de] sub b - ld [de],a + ld [de], a ret nc inc de - ld a,[de] + ld a, [de] dec a - ld [de],a + ld [de], a ret diff --git a/engine/overworld/auto_movement.asm b/engine/overworld/auto_movement.asm new file mode 100755 index 000000000..a68da55fa --- /dev/null +++ b/engine/overworld/auto_movement.asm @@ -0,0 +1,270 @@ +PlayerStepOutFromDoor:: + ld hl, wd730 + res 1, [hl] + call IsPlayerStandingOnDoorTile + jr nc, .notStandingOnDoor + ld a, $fc + ld [wJoyIgnore], a + ld hl, wd736 + set 1, [hl] + ld a, $1 + ld [wSimulatedJoypadStatesIndex], a + ld a, D_DOWN + ld [wSimulatedJoypadStatesEnd], a + xor a + ld [wSpritePlayerStateData1ImageIndex], a + call StartSimulatingJoypadStates + ret +.notStandingOnDoor + xor a + ld [wWastedByteCD3A], a + ld [wSimulatedJoypadStatesIndex], a + ld [wSimulatedJoypadStatesEnd], a + ld hl, wd736 + res 0, [hl] + res 1, [hl] + ld hl, wd730 + res 7, [hl] + ret + +_EndNPCMovementScript:: + ld hl, wd730 + res 7, [hl] + ld hl, wd72e + res 7, [hl] + ld hl, wd736 + res 0, [hl] + res 1, [hl] + xor a + ld [wNPCMovementScriptSpriteOffset], a + ld [wNPCMovementScriptFunctionNum], a + ld [wNPCMovementScriptPointerTableNum], a + ld [wWastedByteCD3A], a + ld [wSimulatedJoypadStatesIndex], a + ld [wSimulatedJoypadStatesEnd], a + ret + +PalletMovementScriptPointerTable:: + dw PalletMovementScript_OakMoveLeft + dw PalletMovementScript_PlayerMoveLeft + dw PalletMovementScript_WaitAndWalkToLab + dw PalletMovementScript_WalkToLab + dw PalletMovementScript_Done + +PalletMovementScript_OakMoveLeft: + ld a, [wXCoord] + sub $a + ld [wNumStepsToTake], a + jr z, .playerOnLeftTile +; The player is on the right tile of the northern path out of Pallet Town and +; Prof. Oak is below. +; Make Prof. Oak step to the left. + ld b, 0 + ld c, a + ld hl, wNPCMovementDirections2 + ld a, NPC_MOVEMENT_LEFT + call FillMemory + ld [hl], $ff + ld a, [wSpriteIndex] + ldh [hSpriteIndex], a + ld de, wNPCMovementDirections2 + call MoveSprite + ld a, $1 + ld [wNPCMovementScriptFunctionNum], a + jr .done +; The player is on the left tile of the northern path out of Pallet Town and +; Prof. Oak is below. +; Prof. Oak is already where he needs to be. +.playerOnLeftTile + ld a, $3 + ld [wNPCMovementScriptFunctionNum], a +.done + ld a, BANK(Music_MuseumGuy) + ld c, a + ld a, MUSIC_MUSEUM_GUY + call PlayMusic + ld hl, wFlags_D733 + set 1, [hl] + ld a, $fc + ld [wJoyIgnore], a + ret + +PalletMovementScript_PlayerMoveLeft: + ld a, [wd730] + bit 0, a ; is an NPC being moved by a script? + ret nz ; return if Oak is still moving + ld a, [wNumStepsToTake] + ld [wSimulatedJoypadStatesIndex], a + ldh [hNPCMovementDirections2Index], a + predef ConvertNPCMovementDirectionsToJoypadMasks + call StartSimulatingJoypadStates + ld a, $2 + ld [wNPCMovementScriptFunctionNum], a + ret + +PalletMovementScript_WaitAndWalkToLab: + ld a, [wSimulatedJoypadStatesIndex] + and a ; is the player done moving left yet? + ret nz + +PalletMovementScript_WalkToLab: + xor a + ld [wOverrideSimulatedJoypadStatesMask], a + ld a, [wSpriteIndex] + swap a + ld [wNPCMovementScriptSpriteOffset], a + xor a + ld [wSpritePlayerStateData2MovementByte1], a + ld hl, wSimulatedJoypadStatesEnd + ld de, RLEList_PlayerWalkToLab + call DecodeRLEList + dec a + ld [wSimulatedJoypadStatesIndex], a + ld hl, wNPCMovementDirections2 + ld de, RLEList_ProfOakWalkToLab + call DecodeRLEList + ld hl, wd72e + res 7, [hl] + ld hl, wd730 + set 7, [hl] + ld a, $4 + ld [wNPCMovementScriptFunctionNum], a + ret + + +RLEList_ProfOakWalkToLab: + db NPC_MOVEMENT_DOWN, 6 ; differs from red + db NPC_MOVEMENT_LEFT, 1 + db NPC_MOVEMENT_DOWN, 5 + db NPC_MOVEMENT_RIGHT, 3 + db NPC_MOVEMENT_UP, 1 + db NPC_CHANGE_FACING, 1 + db -1 ; end + +RLEList_PlayerWalkToLab: + db D_UP, 2 + db D_RIGHT, 3 + db D_DOWN, 5 + db D_LEFT, 1 + db D_DOWN, 7 ; differs from red + db -1 ; end + +PalletMovementScript_Done: + ld a, [wSimulatedJoypadStatesIndex] + and a + ret nz + ld a, HS_PALLET_TOWN_OAK + ld [wMissableObjectIndex], a + predef HideObject + ld hl, wd730 + res 7, [hl] + ld hl, wd72e + res 7, [hl] + jp EndNPCMovementScript + +PewterMuseumGuyMovementScriptPointerTable:: + dw PewterMovementScript_WalkToMuseum + dw PewterMovementScript_Done + +PewterMovementScript_WalkToMuseum: + ld a, BANK(Music_MuseumGuy) + ld c, a + ld a, MUSIC_MUSEUM_GUY + call PlayMusic + ld a, [wSpriteIndex] + swap a + ld [wNPCMovementScriptSpriteOffset], a + call StartSimulatingJoypadStates + ld hl, wSimulatedJoypadStatesEnd + ld de, RLEList_PewterMuseumPlayer + call DecodeRLEList + dec a + ld [wSimulatedJoypadStatesIndex], a + xor a + ld [wWhichPewterGuy], a + call PewterGuys + ld hl, wNPCMovementDirections2 + ld de, RLEList_PewterMuseumGuy + call DecodeRLEList + ld hl, wd72e + res 7, [hl] + ld a, $1 + ld [wNPCMovementScriptFunctionNum], a + ret + +RLEList_PewterMuseumPlayer: + db NO_INPUT, 1 + db D_UP, 3 + db D_LEFT, 13 + db D_UP, 6 + db -1 ; end + +RLEList_PewterMuseumGuy: + db NPC_MOVEMENT_UP, 6 + db NPC_MOVEMENT_LEFT, 13 + db NPC_MOVEMENT_UP, 3 + db NPC_MOVEMENT_LEFT, 1 + db -1 ; end + +PewterMovementScript_Done: + ld a, [wSimulatedJoypadStatesIndex] + and a + ret nz + ld hl, wd730 + res 7, [hl] + ld hl, wd72e + res 7, [hl] + jp EndNPCMovementScript + +PewterGymGuyMovementScriptPointerTable:: + dw PewterMovementScript_WalkToGym + dw PewterMovementScript_Done + +PewterMovementScript_WalkToGym: + ld a, BANK(Music_MuseumGuy) + ld c, a + ld a, MUSIC_MUSEUM_GUY + call PlayMusic + ld a, [wSpriteIndex] + swap a + ld [wNPCMovementScriptSpriteOffset], a + xor a + ld [wSpritePlayerStateData2MovementByte1], a + ld hl, wSimulatedJoypadStatesEnd + ld de, RLEList_PewterGymPlayer + call DecodeRLEList + dec a + ld [wSimulatedJoypadStatesIndex], a + ld a, 1 + ld [wWhichPewterGuy], a + call PewterGuys + ld hl, wNPCMovementDirections2 + ld de, RLEList_PewterGymGuy + call DecodeRLEList + ld hl, wd72e + res 7, [hl] + ld hl, wd730 + set 7, [hl] + ld a, $1 + ld [wNPCMovementScriptFunctionNum], a + ret + +RLEList_PewterGymPlayer: + db NO_INPUT, 1 + db D_RIGHT, 2 + db D_DOWN, 5 + db D_LEFT, 11 + db D_UP, 5 + db D_LEFT, 15 + db -1 ; end + +RLEList_PewterGymGuy: + db NPC_MOVEMENT_DOWN, 2 + db NPC_MOVEMENT_LEFT, 15 + db NPC_MOVEMENT_UP, 5 + db NPC_MOVEMENT_LEFT, 11 + db NPC_MOVEMENT_DOWN, 5 + db NPC_MOVEMENT_RIGHT, 3 + db -1 ; end + +INCLUDE "engine/events/pewter_guys.asm" diff --git a/engine/overworld/card_key.asm b/engine/overworld/card_key.asm deleted file mode 100755 index a4452b4ae..000000000 --- a/engine/overworld/card_key.asm +++ /dev/null @@ -1,113 +0,0 @@ -PrintCardKeyText: - ld hl, SilphCoMapList - ld a, [wCurMap] - ld b, a -.silphCoMapListLoop - ld a, [hli] - cp $ff - ret z - cp b - jr nz, .silphCoMapListLoop -; does not check for tile in front of player. This might be buggy - ;predef GetTileAndCoordsInFrontOfPlayer - ld a, [wTileInFrontOfPlayer] - cp $18 - jr z, .cardKeyDoorInFrontOfPlayer - cp $24 - jr z, .cardKeyDoorInFrontOfPlayer - ld b, a - ld a, [wCurMap] - cp SILPH_CO_11F - ret nz - ld a, b - cp $5e - ret nz -.cardKeyDoorInFrontOfPlayer - ld b, CARD_KEY - call IsItemInBag - jr z, .noCardKey - xor a - ld [wPlayerMovingDirection], a - tx_pre_id CardKeySuccessText - ld [hSpriteIndexOrTextID], a - call PrintPredefTextID - call GetCoordsInFrontOfPlayer - srl d - ld a, d - ld b, a - ld [wCardKeyDoorY], a - srl e - ld a, e - ld c, a - ld [wCardKeyDoorX], a - ld a, [wCurMap] - cp SILPH_CO_11F - jr nz, .notSilphCo11F - ld a, $3 - jr .replaceCardKeyDoorTileBlock -.notSilphCo11F - ld a, $e -.replaceCardKeyDoorTileBlock - ld [wNewTileBlockID], a - predef ReplaceTileBlock - ld hl, wCurrentMapScriptFlags - set 5, [hl] - ld a, SFX_GO_INSIDE - jp PlaySound -.noCardKey - tx_pre_id CardKeyFailText - ld [hSpriteIndexOrTextID], a - jp PrintPredefTextID - -SilphCoMapList: - db SILPH_CO_2F - db SILPH_CO_3F - db SILPH_CO_4F - db SILPH_CO_5F - db SILPH_CO_6F - db SILPH_CO_7F - db SILPH_CO_8F - db SILPH_CO_9F - db SILPH_CO_10F - db SILPH_CO_11F - db $FF - -CardKeySuccessText: - TX_FAR _CardKeySuccessText1 - TX_SFX_ITEM_1 - TX_FAR _CardKeySuccessText2 - db "@" - -CardKeyFailText: - TX_FAR _CardKeyFailText - db "@" - -; d = Y -; e = X -GetCoordsInFrontOfPlayer: - ld a, [wYCoord] - ld d, a - ld a, [wXCoord] - ld e, a - ld a, [wSpritePlayerStateData1FacingDirection] ; player's sprite facing direction - and a - jr nz, .notFacingDown -; facing down - inc d - ret -.notFacingDown - cp SPRITE_FACING_UP - jr nz, .notFacingUp -; facing up - dec d - ret -.notFacingUp - cp SPRITE_FACING_LEFT - jr nz, .notFacingLeft -; facing left - dec e - ret -.notFacingLeft -; facing right - inc e - ret diff --git a/engine/overworld/clear_variables.asm b/engine/overworld/clear_variables.asm index 9a59cc7c3..bbb7c986b 100644 --- a/engine/overworld/clear_variables.asm +++ b/engine/overworld/clear_variables.asm @@ -1,14 +1,14 @@ -ClearVariablesOnEnterMap: - ld a, SCREEN_HEIGHT_PIXELS - ld [hWY], a - ld [rWY], a +ClearVariablesOnEnterMap:: + ld a, SCREEN_HEIGHT_PX + ldh [hWY], a + ldh [rWY], a xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld [wStepCounter], a ld [wLoneAttackNo], a - ld [hJoyPressed], a - ld [hJoyReleased], a - ld [hJoyHeld], a + ldh [hJoyPressed], a + ldh [hJoyReleased], a + ldh [hJoyHeld], a ld [wActionResultOrTookBattleTurn], a ld [wUnusedD5A3], a ld hl, wCardKeyDoorY diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm index bc7d092d4..e36b8d889 100755 --- a/engine/overworld/cut.asm +++ b/engine/overworld/cut.asm @@ -22,8 +22,8 @@ UsedCut: jp PrintText .NothingToCutText - TX_FAR _NothingToCutText - db "@" + text_far _NothingToCutText + text_end .canCut ld [wCutTile], a @@ -37,15 +37,15 @@ UsedCut: call GBPalWhiteOutWithDelay3 call ClearSprites call RestoreScreenTilesAndReloadTilePatterns - ld a, SCREEN_HEIGHT_PIXELS - ld [hWY], a + ld a, SCREEN_HEIGHT_PX + ldh [hWY], a call Delay3 call LoadGBPal call LoadCurrentMapView call SaveScreenTilesToBuffer2 call Delay3 xor a - ld [hWY], a + ldh [hWY], a ld hl, UsedCutText call PrintText call LoadScreenTilesFromBuffer2 @@ -57,47 +57,47 @@ UsedCut: ld de, CutTreeBlockSwaps call ReplaceTreeTileBlock call RedrawMapView - callba AnimCut + farcall AnimCut ld a, $1 ld [wUpdateSpritesEnabled], a ld a, SFX_CUT call PlaySound ld a, $90 - ld [hWY], a + ldh [hWY], a call UpdateSprites jp RedrawMapView UsedCutText: - TX_FAR _UsedCutText - db "@" + text_far _UsedCutText + text_end InitCutAnimOAM: xor a ld [wWhichAnimationOffsets], a ld a, %11100100 - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_OBP1 ld a, [wCutTile] cp $52 jr z, .grass ; tree - ld de, Overworld_GFX + $2d0 ; cuttable tree sprite top row - ld hl, vChars1 + $7c0 - lb bc, BANK(Overworld_GFX), $02 + ld de, Overworld_GFX tile $2d ; cuttable tree sprite top row + ld hl, vChars1 tile $7c + lb bc, BANK(Overworld_GFX), 2 call CopyVideoData - ld de, Overworld_GFX + $3d0 ; cuttable tree sprite bottom row - ld hl, vChars1 + $7e0 - lb bc, BANK(Overworld_GFX), $02 + ld de, Overworld_GFX tile $3d ; cuttable tree sprite bottom row + ld hl, vChars1 tile $7e + lb bc, BANK(Overworld_GFX), 2 call CopyVideoData jr WriteCutOrBoulderDustAnimationOAMBlock .grass - ld hl, vChars1 + $7c0 + ld hl, vChars1 tile $7c call LoadCutGrassAnimationTilePattern - ld hl, vChars1 + $7d0 + ld hl, vChars1 tile $7d call LoadCutGrassAnimationTilePattern - ld hl, vChars1 + $7e0 + ld hl, vChars1 tile $7e call LoadCutGrassAnimationTilePattern - ld hl, vChars1 + $7f0 + ld hl, vChars1 tile $7f call LoadCutGrassAnimationTilePattern call WriteCutOrBoulderDustAnimationOAMBlock ld hl, wOAMBuffer + $93 @@ -113,8 +113,8 @@ InitCutAnimOAM: ret LoadCutGrassAnimationTilePattern: - ld de, AnimationTileset2 + $60 ; tile depicting a leaf - lb bc, BANK(AnimationTileset2), $01 + ld de, AnimationTileset2 tile 6 ; tile depicting a leaf + lb bc, BANK(AnimationTileset2), 1 jp CopyVideoData WriteCutOrBoulderDustAnimationOAMBlock: @@ -124,11 +124,11 @@ WriteCutOrBoulderDustAnimationOAMBlock: jp WriteOAMBlock CutOrBoulderDustAnimationTilesAndAttributes: - db $FC,$14,$FD,$14 - db $FE,$14,$FF,$14 + dbsprite 2, -1, 4, 4, $fd, OAM_OBP1 | %100 + dbsprite 2, -1, 4, 6, $ff, OAM_OBP1 | %100 GetCutOrBoulderDustAnimationOffsets: - ld hl, wSpriteStateData1 + 4 + ld hl, wSpritePlayerStateData1YPixels ld a, [hli] ; player's sprite screen Y position ld b, a inc hl @@ -188,7 +188,7 @@ ReplaceTreeTileBlock: ld h, [hl] ld l, a add hl, bc - ld a, [wSpritePlayerStateData1FacingDirection] ; player sprite's facing direction + ld a, [wSpritePlayerStateData1FacingDirection] and a jr z, .down cp SPRITE_FACING_UP @@ -249,16 +249,4 @@ ReplaceTreeTileBlock: ld [hl], a ret -CutTreeBlockSwaps: -; first byte = tileset block containing the cut tree -; second byte = corresponding tileset block after the cut animation happens - db $32, $6D - db $33, $6C - db $34, $6F - db $35, $4C - db $60, $6E - db $0B, $0A - db $3C, $35 - db $3F, $35 - db $3D, $36 - db $FF ; list terminator +INCLUDE "data/tilesets/cut_tree_blocks.asm" diff --git a/engine/overworld/cut2.asm b/engine/overworld/cut2.asm index 37490f950..1f691eefc 100755 --- a/engine/overworld/cut2.asm +++ b/engine/overworld/cut2.asm @@ -15,9 +15,9 @@ AnimCut: ld [wCoordAdjustmentAmount], a ld c, 2 call AdjustOAMBlockXPos2 - ld a, [rOBP1] + ldh a, [rOBP1] xor $64 - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_OBP1 call DelayFrame pop bc @@ -66,9 +66,9 @@ AnimCutGrass_UpdateOAMEntries: ld [wCoordAdjustmentAmount], a ld c, 1 call AdjustOAMBlockXPos2 - ld a, [rOBP1] + ldh a, [rOBP1] xor $64 - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_OBP1 call DelayFrame pop bc diff --git a/engine/overworld/doors.asm b/engine/overworld/doors.asm index 8bde8600c..d38818fa8 100755 --- a/engine/overworld/doors.asm +++ b/engine/overworld/doors.asm @@ -11,7 +11,7 @@ IsPlayerStandingOnDoorTile: ld a, [hli] ld h, [hl] ld l, a - aCoord 8, 9 ; a = lower left background tile under player's sprite + lda_coord 8, 9 ; a = lower left background tile under player's sprite ld b, a .loop ld a, [hli] @@ -25,55 +25,4 @@ IsPlayerStandingOnDoorTile: and a ret -DoorTileIDPointers: - dbw OVERWORLD, OverworldDoorTileIDs - dbw FOREST, ForestDoorTileIDs - dbw MART, MartDoorTileIDs - dbw HOUSE, HouseDoorTileIDs - dbw FOREST_GATE, TilesetMuseumDoorTileIDs - dbw MUSEUM, TilesetMuseumDoorTileIDs - dbw GATE, TilesetMuseumDoorTileIDs - dbw SHIP, ShipDoorTileIDs - dbw LOBBY, LobbyDoorTileIDs - dbw MANSION, MansionDoorTileIDs - dbw LAB, LabDoorTileIDs - dbw FACILITY, FacilityDoorTileIDs - dbw PLATEAU, PlateauDoorTileIDs - dbw INTERIOR, InteriorDoorTileIDs - db $ff - -OverworldDoorTileIDs: - db $1B,$58,$00 - -ForestDoorTileIDs: - db $3a,$00 - -MartDoorTileIDs: - db $5e,$00 - -HouseDoorTileIDs: - db $54,$00 - -TilesetMuseumDoorTileIDs: - db $3b,$00 - -ShipDoorTileIDs: - db $1e,$00 - -LobbyDoorTileIDs: - db $1c,$38,$1a,$00 - -MansionDoorTileIDs: - db $1a,$1c,$53,$00 - -LabDoorTileIDs: - db $34,$00 - -FacilityDoorTileIDs: - db $43,$58,$1b,$00 - -PlateauDoorTileIDs: - db $3b,$1b,$00 - -InteriorDoorTileIDs: - db $04,$15,$00 +INCLUDE "data/tilesets/door_tile_ids.asm" diff --git a/engine/overworld/dungeon_warps.asm b/engine/overworld/dungeon_warps.asm index f47dfb017..7641c688c 100644 --- a/engine/overworld/dungeon_warps.asm +++ b/engine/overworld/dungeon_warps.asm @@ -1,4 +1,4 @@ -IsPlayerOnDungeonWarp: +IsPlayerOnDungeonWarp:: xor a ld [wWhichDungeonWarp], a ld a, [wd72d] diff --git a/engine/overworld/dust_smoke.asm b/engine/overworld/dust_smoke.asm new file mode 100755 index 000000000..773def96d --- /dev/null +++ b/engine/overworld/dust_smoke.asm @@ -0,0 +1,95 @@ +AnimateBoulderDust: + ld a, $1 + ld [wWhichAnimationOffsets], a ; select the boulder dust offsets + ld a, [wUpdateSpritesEnabled] + push af + ld a, $ff + ld [wUpdateSpritesEnabled], a + ld a, %11100100 + ldh [rOBP1], a + call UpdateGBCPal_OBP1 + call LoadSmokeTileFourTimes + farcall WriteCutOrBoulderDustAnimationOAMBlock + ld c, 8 ; number of steps in animation +.loop + push bc + call GetMoveBoulderDustFunctionPointer + ld bc, .returnAddress + push bc + ld c, 4 + jp hl +.returnAddress + ldh a, [rOBP1] + xor %01100100 + ldh [rOBP1], a + call UpdateGBCPal_OBP1 + call Delay3 + pop bc + dec c + jr nz, .loop + pop af + ld [wUpdateSpritesEnabled], a + jp LoadPlayerSpriteGraphics + +GetMoveBoulderDustFunctionPointer: + ld a, [wSpritePlayerStateData1FacingDirection] + ld hl, MoveBoulderDustFunctionPointerTable + ld c, a + ld b, $0 + add hl, bc + ld a, [hli] + ld [wCoordAdjustmentAmount], a + ld a, [hli] + ld e, a + ld a, [hli] + ld h, [hl] + ld l, a + push hl + ld hl, wOAMBuffer + $90 + ld d, $0 + add hl, de + ld e, l + ld d, h + pop hl + ret + +MoveBoulderDustFunctionPointerTable: +; facing down + db $FF,$00 + dw AdjustOAMBlockYPos + +; facing up + db $01,$00 + dw AdjustOAMBlockYPos + +; facing left + db $01,$01 + dw AdjustOAMBlockXPos + +; facing right + db $FF,$01 + dw AdjustOAMBlockXPos + +LoadSmokeTileFourTimes:: + ld hl, vChars1 tile $7c + ld c, 4 +.loop + push bc + push hl + call LoadSmokeTile + pop hl + ld bc, 1 tiles + add hl, bc + pop bc + dec c + jr nz, .loop + ret + +LoadSmokeTile: + ld de, SSAnneSmokePuffTile + lb bc, BANK(SSAnneSmokePuffTile), (SSAnneSmokePuffTileEnd - SSAnneSmokePuffTile) / $10 + jp CopyVideoData + +SSAnneSmokePuffTile: + INCBIN "gfx/overworld/smoke.2bpp" +SSAnneSmokePuffTileEnd: diff --git a/engine/overworld/elevator.asm b/engine/overworld/elevator.asm index 47ec78f90..b873ffad5 100755 --- a/engine/overworld/elevator.asm +++ b/engine/overworld/elevator.asm @@ -1,11 +1,11 @@ -ShakeElevator: +ShakeElevator:: ld de, -$20 call ShakeElevatorRedrawRow ld de, SCREEN_HEIGHT * $20 call ShakeElevatorRedrawRow call Delay3 call StopAllMusic - ld a, [hSCY] + ldh a, [hSCY] ld d, a ld e, $1 ld b, 100 @@ -14,7 +14,7 @@ ShakeElevator: xor $fe ld e, a add d - ld [hSCY], a + ldh [hSCY], a push bc ld c, BANK(SFX_Collision_1) ld a, SFX_COLLISION @@ -25,7 +25,7 @@ ShakeElevator: dec b jr nz, .shakeLoop ld a, d - ld [hSCY], a + ldh [hSCY], a call StopAllMusic ld c, BANK(SFX_Safari_Zone_PA) ld a, SFX_SAFARI_ZONE_PA @@ -54,7 +54,7 @@ ShakeElevatorRedrawRow: add hl, de ld a, h and $3 - or vBGMap0 / $100 + or HIGH(vBGMap0) ld d, a ld a, l pop hl diff --git a/engine/overworld/emotion_bubbles.asm b/engine/overworld/emotion_bubbles.asm index 3b02fd556..3ad714e9c 100755 --- a/engine/overworld/emotion_bubbles.asm +++ b/engine/overworld/emotion_bubbles.asm @@ -11,8 +11,8 @@ EmotionBubble: add hl, bc ld e, l ld d, h - ld hl, vChars1 + $780 - lb bc, BANK(EmotionBubbles), $04 + ld hl, vChars1 tile $78 + lb bc, BANK(EmotionBubbles), 4 call CopyVideoData ld a, [wUpdateSpritesEnabled] push af @@ -41,7 +41,7 @@ EmotionBubble: jr nz, .loop ; get the screen coordinates of the sprite the bubble is to be displayed above - ld hl, wSpriteStateData1 + 4 + ld hl, wSpritePlayerStateData1YPixels ld a, [wEmotionBubbleSpriteIndex] swap a ld c, a @@ -67,8 +67,15 @@ EmotionBubble: EmotionBubblesOAM: - db $F8,$00,$F9,$00 - db $FA,$00,$FB,$00 + dbsprite 0, -1, 0, 0, $f9, 0 + dbsprite 0, -1, 0, 2, $fb, 0 EmotionBubbles: - INCBIN "gfx/emotion_bubbles.2bpp" +ShockEmote: INCBIN "gfx/emotes/shock.2bpp" +QuestionEmote: INCBIN "gfx/emotes/question.2bpp" +HappyEmote: INCBIN "gfx/emotes/happy.2bpp" +SkullEmote: INCBIN "gfx/emotes/skull.2bpp" +HeartEmote: INCBIN "gfx/emotes/heart.2bpp" +BoltEmote: INCBIN "gfx/emotes/bolt.2bpp" +ZzzEmote: INCBIN "gfx/emotes/zzz.2bpp" +FishEmote: INCBIN "gfx/emotes/fish.2bpp" diff --git a/engine/overworld/field_move_messages.asm b/engine/overworld/field_move_messages.asm index 1d1119179..520ef8add 100644 --- a/engine/overworld/field_move_messages.asm +++ b/engine/overworld/field_move_messages.asm @@ -7,16 +7,16 @@ PrintStrengthTxt: jp PrintText UsedStrengthText: - TX_FAR _UsedStrengthText - TX_ASM + text_far _UsedStrengthText + text_asm ld a, [wcf91] call PlayCry call Delay3 jp TextScriptEnd CanMoveBouldersText: - TX_FAR _CanMoveBouldersText - db "@" + text_far _CanMoveBouldersText + text_end IsSurfingAllowed: ; Returns whether surfing is allowed in bit 1 of wd728. @@ -32,7 +32,7 @@ IsSurfingAllowed: ret nz CheckBothEventsSet EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE, EVENT_SEAFOAM4_BOULDER2_DOWN_HOLE ret z - ld hl, CoordsData_f5b64 + ld hl, CoordsData_cdf7 call ArePlayerCoordsInArray ret nc ld hl, wd728 @@ -45,13 +45,14 @@ IsSurfingAllowed: ld hl, CyclingIsFunText jp PrintText -CoordsData_f5b64: - db $0B,$07,$FF +CoordsData_cdf7: + dbmapcoord 7, 11 + db -1 ; end CurrentTooFastText: - TX_FAR _CurrentTooFastText - db "@" + text_far _CurrentTooFastText + text_end CyclingIsFunText: - TX_FAR _CyclingIsFunText - db "@" + text_far _CyclingIsFunText + text_end diff --git a/engine/overworld/healing_machine.asm b/engine/overworld/healing_machine.asm index e5ba004e1..e5fba7e1c 100755 --- a/engine/overworld/healing_machine.asm +++ b/engine/overworld/healing_machine.asm @@ -1,17 +1,17 @@ AnimateHealingMachine: ld de, PokeCenterFlashingMonitorAndHealBall - ld hl, vChars0 + $7c0 - lb bc, BANK(PokeCenterFlashingMonitorAndHealBall), $03 ; loads one too many tiles + ld hl, vChars0 tile $7c + lb bc, BANK(PokeCenterFlashingMonitorAndHealBall), 3 ; should be 2 call CopyVideoData ld hl, wUpdateSpritesEnabled ld a, [hl] push af ld [hl], $ff push hl - ld a, [rOBP1] + ldh a, [rOBP1] push af ld a, $e0 - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_OBP1 ld hl, wOAMBuffer + $84 ld de, PokeCenterOAMData @@ -53,7 +53,7 @@ AnimateHealingMachine: ld c, 32 call DelayFrames pop af - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_OBP1 pop hl pop af @@ -61,24 +61,26 @@ AnimateHealingMachine: jp UpdateSprites PokeCenterFlashingMonitorAndHealBall: - INCBIN "gfx/pokecenter_ball.2bpp" + INCBIN "gfx/overworld/heal_machine.2bpp" PokeCenterOAMData: - db $24,$34,$7C,$14 ; heal machine monitor - db $2B,$30,$7D,$14 ; pokeballs 1-6 - db $2B,$38,$7D,$34 - db $30,$30,$7D,$14 - db $30,$38,$7D,$34 - db $35,$30,$7D,$14 - db $35,$38,$7D,$34 + ; heal machine monitor + dbsprite 6, 4, 4, 4, $7c, OAM_OBP1 | %100 + ; poke balls 1-6 + dbsprite 6, 5, 0, 3, $7d, OAM_OBP1 | %100 + dbsprite 7, 5, 0, 3, $7d, OAM_OBP1 | OAM_HFLIP | %100 + dbsprite 6, 6, 0, 0, $7d, OAM_OBP1 | %100 + dbsprite 7, 6, 0, 0, $7d, OAM_OBP1 | OAM_HFLIP | %100 + dbsprite 6, 6, 0, 5, $7d, OAM_OBP1 | %100 + dbsprite 7, 6, 0, 5, $7d, OAM_OBP1 | OAM_HFLIP | %100 ; d = value to xor with palette FlashSprite8Times: ld b, 8 .loop - ld a, [rOBP1] + ldh a, [rOBP1] xor d - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_OBP1 ld c, 10 call DelayFrames @@ -88,16 +90,9 @@ FlashSprite8Times: CopyHealingMachineOAM: ; copy one OAM entry and advance the pointers + REPT 4 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 [hli], a + ENDR ret diff --git a/engine/overworld/hidden_objects.asm b/engine/overworld/hidden_objects.asm index 66815b600..841089862 100755 --- a/engine/overworld/hidden_objects.asm +++ b/engine/overworld/hidden_objects.asm @@ -1,11 +1,11 @@ ; if a hidden object was found, stores $00 in [hDidntFindAnyHiddenObject], else stores $ff -CheckForHiddenObject: +CheckForHiddenObject:: ld hl, hItemAlreadyFound xor a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], a + ld [hli], a ; [hItemAlreadyFound] + ld [hli], a ; [hSavedMapTextPtr] + ld [hli], a ; [hSavedMapTextPtr + 1] + ld [hl], a ; [hDidntFindAnyHiddenObject] ld hl, HiddenObjectMaps ld de, 3 ld a, [wCurMap] @@ -32,7 +32,7 @@ CheckForHiddenObject: ld [wHiddenObjectX], a ld c, a call CheckIfCoordsInFrontOfPlayerMatch - ld a, [hCoordsInFrontOfPlayerMatch] + ldh a, [hCoordsInFrontOfPlayerMatch] and a jr z, .foundMatchingObject inc hl @@ -55,13 +55,13 @@ CheckForHiddenObject: ret .noMatch ld a, $ff - ld [hDidntFindAnyHiddenObject], a + ldh [hDidntFindAnyHiddenObject], a ret ; checks if the coordinates in front of the player's sprite match Y in b and X in c ; [hCoordsInFrontOfPlayerMatch] = $00 if they match, $ff if they don't match CheckIfCoordsInFrontOfPlayerMatch: - ld a, [wSpritePlayerStateData1FacingDirection] ; player's sprite facing direction + ld a, [wSpritePlayerStateData1FacingDirection] cp SPRITE_FACING_UP jr z, .facingUp cp SPRITE_FACING_LEFT @@ -101,7 +101,7 @@ CheckIfCoordsInFrontOfPlayerMatch: .didNotMatch ld a, $ff .done - ld [hCoordsInFrontOfPlayerMatch], a + ldh [hCoordsInFrontOfPlayerMatch], a ret -INCLUDE "data/hidden_objects.asm" +INCLUDE "data/events/hidden_objects.asm" diff --git a/engine/overworld/item.asm b/engine/overworld/item.asm deleted file mode 100644 index 9f19100ab..000000000 --- a/engine/overworld/item.asm +++ /dev/null @@ -1,54 +0,0 @@ -PickUpItem: - call EnableAutoTextBoxDrawing - - ld a, [hSpriteIndexOrTextID] - ld b, a - ld hl, wMissableObjectList -.missableObjectsListLoop - ld a, [hli] - cp $ff - ret z - cp b - jr z, .isMissable - inc hl - jr .missableObjectsListLoop - -.isMissable - ld a, [hl] - ld [$ffdb], a - - ld hl, wMapSpriteExtraData - ld a, [hSpriteIndexOrTextID] - dec a - add a - ld d, 0 - ld e, a - add hl, de - ld a, [hl] - ld b, a ; item - ld c, 1 ; quantity - call GiveItem - jr nc, .BagFull - - ld a, [$ffdb] - ld [wMissableObjectIndex], a - predef HideObject - ld a, 1 - ld [wDoNotWaitForButtonPressAfterDisplayingText], a - ld hl, FoundItemText - jr .print - -.BagFull - ld hl, NoMoreRoomForItemText -.print - call PrintText - ret - -FoundItemText: - TX_FAR _FoundItemText - TX_SFX_ITEM_1 - db "@" - -NoMoreRoomForItemText: - TX_FAR _NoMoreRoomForItemText - db "@" diff --git a/engine/overworld/ledges.asm b/engine/overworld/ledges.asm index a44ddf8b5..9925c5289 100755 --- a/engine/overworld/ledges.asm +++ b/engine/overworld/ledges.asm @@ -1,4 +1,4 @@ -HandleLedges: +HandleLedges:: ld a, [wd736] bit 6, a ; already jumping down ledge ret nz @@ -8,7 +8,7 @@ HandleLedges: predef GetTileAndCoordsInFrontOfPlayer ld a, [wSpritePlayerStateData1FacingDirection] ld b, a - aCoord 8, 9 + lda_coord 8, 9 ld c, a ld a, [wTileInFrontOfPlayer] ld d, a @@ -36,7 +36,7 @@ HandleLedges: inc hl jr .loop .foundMatch - ld a, [hJoyHeld] + ldh a, [hJoyHeld] and e ret z ld a, $ff @@ -54,20 +54,10 @@ HandleLedges: call PlaySound ret - ; (player direction) (tile player standing on) (ledge tile) (input required) -LedgeTiles: - db SPRITE_FACING_DOWN, $2C,$37,D_DOWN - db SPRITE_FACING_DOWN, $39,$36,D_DOWN - db SPRITE_FACING_DOWN, $39,$37,D_DOWN - db SPRITE_FACING_LEFT, $2C,$27,D_LEFT - db SPRITE_FACING_LEFT, $39,$27,D_LEFT - db SPRITE_FACING_RIGHT,$2C,$0D,D_RIGHT - db SPRITE_FACING_RIGHT,$2C,$1D,D_RIGHT - db SPRITE_FACING_RIGHT,$39,$0D,D_RIGHT - db $FF +INCLUDE "data/tilesets/ledge_tiles.asm" LoadHoppingShadowOAM: - ld hl, vChars1 + $7f0 + ld hl, vChars1 tile $7f ld de, LedgeHoppingShadow lb bc, BANK(LedgeHoppingShadow), (LedgeHoppingShadowEnd - LedgeHoppingShadow) / $8 call CopyVideoDataDouble @@ -81,10 +71,10 @@ LoadHoppingShadowOAM: ret LedgeHoppingShadow: - INCBIN "gfx/ledge_hopping_shadow.1bpp" + INCBIN "gfx/overworld/shadow.1bpp" LedgeHoppingShadowEnd: LedgeHoppingShadowOAM: - db $58,$48,$FF,$00 - db $58,$50,$FF,$20 + dbsprite 9, 11, 0, 0, $ff, 0 + dbsprite 10, 11, 0, 0, $ff, OAM_HFLIP LedgeHoppingShadowOAMEnd: diff --git a/engine/overworld/map_sprite_functions1.asm b/engine/overworld/map_sprite_functions1.asm deleted file mode 100644 index 2ad923fb2..000000000 --- a/engine/overworld/map_sprite_functions1.asm +++ /dev/null @@ -1,390 +0,0 @@ -_UpdateSprites: - ld h, wSpriteStateData1 / $100 - inc h - ld a, $e ; (wSpriteStateData2 + $0e) & $ff -.spriteLoop - ld l, a - sub $e - ld c, a - ld [H_CURRENTSPRITEOFFSET], a - ld a, [hl] - and a - jr z, .skipSprite ; tests $c2Xe - push hl - push de - push bc - call .updateCurrentSprite - pop bc - pop de - pop hl -.skipSprite - ld a, l - add $10 ; move to next sprite - cp $e ; test for overflow (back at $0e) - jr nz, .spriteLoop - ret -.updateCurrentSprite - ld a, [H_CURRENTSPRITEOFFSET] - and a - jp z, UpdatePlayerSprite - cp $f0 ; pikachu - jp z, SpawnPikachu - ld a, [hl] - -UpdateNonPlayerSprite: - dec a - swap a - ld [$ff93], a ; $10 * sprite# - ld a, [wNPCMovementScriptSpriteOffset] ; some sprite offset? - ld b, a - ld a, [H_CURRENTSPRITEOFFSET] - cp b - jr nz, .unequal - jp DoScriptedNPCMovement -.unequal - jp UpdateNPCSprite - -; This detects if the current sprite (whose offset is at H_CURRENTSPRITEOFFSET) -; is going to collide with another sprite by looping over the other sprites. -; The current sprite's offset will be labelled with i (e.g. $c1i0). -; The loop sprite's offset will labelled with j (e.g. $c1j0). -; -; Note that the Y coordinate of the sprite (in [$c1k4]) is one of the following -; 9 values when the sprite is aligned with the grid: $fc, $0c, $1c, $2c, ..., $7c. -; The reason that 4 is added below to the coordinate is to make it align with a -; multiple of $10 to make comparisons easier. -DetectCollisionBetweenSprites: - ; nop - - ld h, wSpriteStateData1 / $100 - ld a, [H_CURRENTSPRITEOFFSET] - ld l, a - - ld a, [hl] ; a = [$c1i0] (picture) (0 if slot is unused) - and a ; is this sprite slot slot used? - ret z ; return if not used - - ld a, l - add 3 - ld l, a - - ld a, [hli] ; a = [$c1i3] (delta Y) (-1, 0, or 1) - call SetSpriteCollisionValues - - ld a, [hli] ; a = [$C1i4] (Y screen coordinate) - add 4 ; align with multiple of $10 - -; The effect of the following 3 lines is to -; add 7 to a if moving south or -; subtract 7 from a if moving north. - add b - and $f0 - or c - - ld [$ff90], a ; store Y coordinate adjusted for direction of movement - - ld a, [hli] ; a = [$c1i5] (delta X) (-1, 0, or 1) - call SetSpriteCollisionValues - ld a, [hl] ; a = [$C1i6] (X screen coordinate) - -; The effect of the following 3 lines is to -; add 7 to a if moving east or -; subtract 7 from a if moving west. - add b - and $f0 - or c - - ld [$ff91], a ; store X coordinate adjusted for direction of movement - - ld a, l - add 7 - ld l, a - - xor a - ld [hld], a ; zero [$c1id] XXX what's [$c1id] for? - ld [hld], a ; zero [$c1ic] (directions in which collisions occurred) - - ld a, [$ff91] - ld [hld], a ; [$c1ib] = adjusted X coordinate - ld a, [$ff90] - ld [hl], a ; [$c1ia] = adjusted Y coordinate - - xor a ; zero the loop counter - -.loop - ld [$ff8f], a ; store loop counter - swap a - ld e, a - ld a, [H_CURRENTSPRITEOFFSET] - cp e ; does the loop sprite match the current sprite? - jp z, .next ; go to the next sprite if they match - - ld d, h - ld a, [de] ; a = [$c1j0] (picture) (0 if slot is unused) - and a ; is this sprite slot slot used? - jp z, .next ; go the next sprite if not used - - inc e - inc e - ld a, [de] ; a = [$c1j2] ($ff means the sprite is offscreen) - inc a - jp z, .next ; go the next sprite if offscreen - - ld a, [H_CURRENTSPRITEOFFSET] - add 10 - ld l, a - - inc e - ld a, [de] ; a = [$c1j3] (delta Y) - call SetSpriteCollisionValues - - inc e - ld a, [de] ; a = [$C1j4] (Y screen coordinate) - add 4 ; align with multiple of $10 - -; The effect of the following 3 lines is to -; add 7 to a if moving south or -; subtract 7 from a if moving north. - add b - and $f0 - or c - - sub [hl] ; subtract the adjusted Y coordinate of sprite i ([$c1ia]) from that of sprite j - -; calculate the absolute value of the difference to get the distance - jr nc, .noCarry1 - cpl - inc a -.noCarry1 - ld [$ff90], a ; store the distance between the two sprites' adjusted Y values - -; Use the carry flag set by the above subtraction to determine which sprite's -; Y coordinate is larger. This information is used later to set [$c1ic], -; which stores which direction the collision occurred in. -; The following 5 lines set the lowest 2 bits of c, which are later shifted left by 2. -; If sprite i's Y is larger, set lowest 2 bits of c to 10. -; If sprite j's Y is larger or both are equal, set lowest 2 bits of c to 01. - push af - rl c - pop af - ccf - rl c - -; If sprite i's delta Y is 0, then b = 7, else b = 9. - ld b, 7 - ld a, [hl] ; a = [$c1ia] (adjusted Y coordinate) - and $f - jr z, .next1 - ld b, 9 - -.next1 - ld a, [$ff90] ; a = distance between adjusted Y coordinates - sub b - ld [$ff92], a ; store distance adjusted using sprite i's direction - ld a, b - ld [$ff90], a ; store 7 or 9 depending on sprite i's delta Y - jr c, .checkXDistance - -; If sprite j's delta Y is 0, then b = 7, else b = 9. - ld b, 7 - dec e - ld a, [de] ; a = [$c1j3] (delta Y) - inc e - and a - jr z, .next2 - ld b, 9 - -.next2 - ld a, [$ff92] ; a = distance adjusted using sprite i's direction - sub b ; adjust distance using sprite j's direction - jr z, .checkXDistance - jr nc, .next ; go to next sprite if distance is still positive after both adjustments - -.checkXDistance - inc e - inc l - ld a, [de] ; a = [$c1j5] (delta X) - - push bc - - call SetSpriteCollisionValues - inc e - ld a, [de] ; a = [$c1j6] (X screen coordinate) - -; The effect of the following 3 lines is to -; add 7 to a if moving east or -; subtract 7 from a if moving west. - add b - and $f0 - or c - - pop bc - - sub [hl] ; subtract the adjusted X coordinate of sprite i ([$c1ib]) from that of sprite j - -; calculate the absolute value of the difference to get the distance - jr nc, .noCarry2 - cpl - inc a -.noCarry2 - ld [$ff91], a ; store the distance between the two sprites' adjusted X values - -; Use the carry flag set by the above subtraction to determine which sprite's -; X coordinate is larger. This information is used later to set [$c1ic], -; which stores which direction the collision occurred in. -; The following 5 lines set the lowest 2 bits of c. -; If sprite i's X is larger, set lowest 2 bits of c to 10. -; If sprite j's X is larger or both are equal, set lowest 2 bits of c to 01. - push af - rl c - pop af - ccf - rl c - -; If sprite i's delta X is 0, then b = 7, else b = 9. - ld b, 7 - ld a, [hl] ; a = [$c1ib] (adjusted X coordinate) - and $f - jr z, .next3 - ld b, 9 - -.next3 - ld a, [$ff91] ; a = distance between adjusted X coordinates - sub b - ld [$ff92], a ; store distance adjusted using sprite i's direction - ld a, b - ld [$ff91], a ; store 7 or 9 depending on sprite i's delta X - jr c, .collision - -; If sprite j's delta X is 0, then b = 7, else b = 9. - ld b, 7 - dec e - ld a, [de] ; a = [$c1j5] (delta X) - inc e - and a - jr z, .next4 - ld b, 9 - -.next4 - ld a, [$ff92] ; a = distance adjusted using sprite i's direction - sub b ; adjust distance using sprite j's direction - jr z, .collision - jr nc, .next ; go to next sprite if distance is still positive after both adjustments - -.collision - ld a, l - and $f0 ; collision with pikachu? - jr nz, .asm_4cd9 - xor a - ld [wd434], a - ld a, [$ff8f] - cp $f - jr nz, .asm_4cd9 - call Func_4d0a - jr .asm_4cef -.asm_4cd9 - ld a, [$ff91] ; a = 7 or 9 depending on sprite i's delta X - ld b, a - ld a, [$ff90] ; a = 7 or 9 depending on sprite i's delta Y - inc l - -; If delta X isn't 0 and delta Y is 0, then b = %0011, else b = %1100. -; (note that normally if delta X isn't 0, then delta Y must be 0 and vice versa) - cp b - jr c, .next5 - ld b, %1100 - jr .next6 -.next5 - ld b, %0011 - -.next6 - ld a, c ; c has 2 bits set (one of bits 0-1 is set for the X axis and one of bits 2-3 for the Y axis) - and b ; we select either the bit in bits 0-1 or bits 2-3 based on the calculation immediately above - or [hl] ; or with existing collision direction bits in [$c1ic] - ld [hl], a ; store new value - ld a, c ; useless code because a is overwritten before being used again - -; set bit in [$c1ie] or [$c1if] to indicate which sprite the collision occurred with - inc l - inc l -.asm_4cef - ld a, [$ff8f] ; a = loop counter - ld de, SpriteCollisionBitTable - add a - add e - ld e, a - jr nc, .noCarry3 - inc d -.noCarry3 - ld a, [de] - or [hl] - ld [hli], a - inc de - ld a, [de] - or [hl] - ld [hl], a - -.next - ld a, [$ff8f] ; a = loop counter - inc a - cp $10 - jp nz, .loop - ret - -; takes delta X or delta Y in a -; b = delta X/Y -; c = 0 if delta X/Y is 0 -; c = 7 if delta X/Y is 1 -; c = 9 if delta X/Y is -1 -Func_4d0a: - ld a, [$ff91] - ld b, a - ld a, [$ff90] - inc l - cp b - jr c, .asm_4d17 - ld b, %1100 - jr .asm_4d19 -.asm_4d17 - ld b, %11 -.asm_4d19 - ld a, c - and b - ld [wd434], a - ld a, c - inc l - inc l - ret - -SetSpriteCollisionValues: - and a - ld b, 0 - ld c, 0 - jr z, .done - ld c, 9 - cp -1 - jr z, .ok - ld c, 7 - ld a, 0 -.ok - ld b, a -.done - ret - -SpriteCollisionBitTable: - db %00000000,%00000001 - db %00000000,%00000010 - db %00000000,%00000100 - db %00000000,%00001000 - db %00000000,%00010000 - db %00000000,%00100000 - db %00000000,%01000000 - db %00000000,%10000000 - db %00000001,%00000000 - db %00000010,%00000000 - db %00000100,%00000000 - db %00001000,%00000000 - db %00010000,%00000000 - db %00100000,%00000000 - db %01000000,%00000000 - db %10000000,%00000000 diff --git a/engine/overworld/map_sprites.asm b/engine/overworld/map_sprites.asm index 3e2c39124..e31c0bd22 100755 --- a/engine/overworld/map_sprites.asm +++ b/engine/overworld/map_sprites.asm @@ -8,7 +8,7 @@ ; fields, respectively, within loops. The X is the loop index. ; If there is an inner loop, Y is the inner loop index, i.e. $C1Y* and $C2Y* ; denote fields of the sprite slots iterated over in the inner loop. -_InitMapSprites: +_InitMapSprites:: call InitOutsideMapSprites ret c ; return if the map is an outside map (already handled by above call) ; if the map is an inside map (i.e. mapID >= $25) @@ -21,7 +21,7 @@ _InitMapSprites: ; sets carry if the map is a city or route, unsets carry if not InitOutsideMapSprites: ld a, [wCurMap] - cp a, REDS_HOUSE_1F ; is the map a city or a route (map ID less than $25)? + cp FIRST_INDOOR_MAP ; is the map a city or a route? ret nc ; if not, return call GetSplitMapSpriteSetID ; if so, choose the appropriate one @@ -68,7 +68,7 @@ LoadSpriteSetFromMapHeader: ld a, 14 .storeVRAMSlotsLoop push af - ld a, [hl] ; $C1X0 (picture ID) (zero if sprite slot is not used) + ld a, [hl] ; [x#SPRITESTATEDATA1_PICTUREID] (zero if sprite slot is not used) and a ; is the sprite slot used? jr z, .continue ; if the sprite slot is not used ld c, a @@ -125,7 +125,7 @@ CheckForFourTileSprite: cp SPRITE_PIKACHU ; is this the Pikachu Sprite? ret z ; return if yes - cp SPRITE_BALL ; is this a four tile sprite? + cp FIRST_STILL_SPRITE ; is this a four tile sprite? jr nc, .notYellowSprite ; set carry if yes ; regular sprite and a @@ -138,7 +138,7 @@ CheckForFourTileSprite: LoadMapSpriteTilePatterns: ld a, 0 .loop - ld [hVRAMSlot], a + ldh [hVRAMSlot], a cp 9 jr nc, .fourTileSprite call LoadStillTilePattern @@ -148,7 +148,7 @@ LoadMapSpriteTilePatterns: .fourTileSprite call LoadStillTilePattern .continue - ld a, [hVRAMSlot] + ldh a, [hVRAMSlot] inc a cp 11 jr nz, .loop @@ -157,12 +157,12 @@ LoadMapSpriteTilePatterns: ReloadWalkingTilePatterns: xor a .loop - ld [hVRAMSlot], a + ldh [hVRAMSlot], a cp 9 jr nc, .fourTileSprite call LoadWalkingTilePattern .fourTileSprite - ld a, [hVRAMSlot] + ldh a, [hVRAMSlot] inc a cp 11 jr nz, .loop @@ -192,7 +192,7 @@ LoadWalkingTilePattern: GetSpriteVRAMAddress: push bc - ld a, [hVRAMSlot] + ldh a, [hVRAMSlot] ld c, a ld b, 0 ld hl, SpriteVRAMAddresses @@ -220,7 +220,7 @@ SpriteVRAMAddresses: dw vChars0 + $7c0 ; 4-tile sprites ReadSpriteSheetData: - ld a, [hVRAMSlot] + ldh a, [hVRAMSlot] ld e, a ld d, 0 ld hl, wSpriteSet @@ -257,20 +257,20 @@ Func_14150: ld a, $e ld hl, wSprite01StateData1 .loop - ld [hVRAMSlot], a ; store current sprite set slot as a counter - ld a, [hl] ; $c1x0 (picture ID) + ldh [hVRAMSlot], a ; store current sprite set slot as a counter + ld a, [hl] ; [x#SPRITESTATEDATA1_PICTUREID] and a ; is the sprite unused? jr z, .spriteUnused call Func_14179 push hl ld de, (wSpritePlayerStateData2ImageBaseOffset) - (wSpriteStateData1) ; $10e - add hl, de ; get $c2xe (sprite image base offset) + add hl, de ; [x#SPRITESTATEDATA2_IMAGEBASEOFFSET] ld [hl], a ; write offset pop hl .spriteUnused ld de, wSprite02StateData1 - wSprite01StateData1 add hl, de - ld a, [hVRAMSlot] + ldh a, [hVRAMSlot] dec a jr nz, .loop ret @@ -364,4 +364,6 @@ GetSplitMapSpriteSetID: ld a, $01 ret -INCLUDE "data/sprite_sets.asm" +INCLUDE "data/maps/sprite_sets.asm" + +INCLUDE "data/sprites/sprites.asm" diff --git a/engine/overworld/missable_objects.asm b/engine/overworld/missable_objects.asm index dd601451a..358a9b9fa 100644 --- a/engine/overworld/missable_objects.asm +++ b/engine/overworld/missable_objects.asm @@ -1,6 +1,6 @@ -MarkTownVisitedAndLoadMissableObjects: +MarkTownVisitedAndLoadMissableObjects:: ld a, [wCurMap] - cp ROUTE_1 + cp FIRST_ROUTE_MAP jr nc, .notInTown ld c, a ld b, FLAG_SET @@ -22,31 +22,31 @@ MarkTownVisitedAndLoadMissableObjects: ld l, a push hl ld a, l - sub MapHS00 & $ff ; calculate difference between out pointer and the base pointer + sub MissableObjects & $ff ; calculate difference between out pointer and the base pointer ld l, a ld a, h - sbc MapHS00 / $100 + sbc MissableObjects / $100 ld h, a ld a, h - ld [H_DIVIDEND], a + ldh [hDividend], a ld a, l - ld [H_DIVIDEND + 1], a + ldh [hDividend+1], a xor a - ld [H_DIVIDEND + 2], a - ld [H_DIVIDEND + 3], a + ldh [hDividend+2], a + ldh [hDividend+3], a ld a, $3 - ld [H_DIVISOR], a + ldh [hDivisor], a ld b, $2 call Divide ; divide difference by 3, resulting in the global offset (number of missable items before ours) ld a, [wCurMap] ld b, a - ld a, [H_DIVIDEND + 3] + ldh a, [hDividend+3] ld c, a ; store global offset in c ld de, wMissableObjectList pop hl .writeMissableObjectsListLoop ld a, [hli] - cp $ff + cp -1 jr z, .done ; end of list cp b jr nz, .done ; not for current map anymore @@ -60,7 +60,7 @@ MarkTownVisitedAndLoadMissableObjects: inc de jr .writeMissableObjectsListLoop .done - ld a, $ff + ld a, -1 ld [de], a ; write sentinel ret @@ -69,17 +69,17 @@ InitializeMissableObjectsFlags: ld bc, wMissableObjectFlagsEnd - wMissableObjectFlags xor a call FillMemory ; clear missable objects flags - ld hl, MapHS00 + ld hl, MissableObjects xor a ld [wMissableObjectCounter], a .missableObjectsLoop ld a, [hli] - cp $ff ; end of list + cp -1 ; end of list ret z push hl inc hl ld a, [hl] - cp Hide + cp HIDE jr nz, .skip ld hl, wMissableObjectFlags ld a, [wMissableObjectCounter] @@ -96,13 +96,13 @@ InitializeMissableObjectsFlags: ; tests if current sprite is a missable object that is hidden/has been removed IsObjectHidden: - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] swap a ld b, a ld hl, wMissableObjectList .loop ld a, [hli] - cp $ff + cp -1 jr z, .notHidden ; not missable -> not hidden cp b ld a, [hli] @@ -117,7 +117,7 @@ IsObjectHidden: .notHidden xor a .hidden - ld [$ffe5], a + ldh [hIsHiddenMissableObject], a ret ; adds missable object (items, leg. pokemon, etc.) to the map diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm index f23344798..dadf21945 100644 --- a/engine/overworld/movement.asm +++ b/engine/overworld/movement.asm @@ -1,25 +1,25 @@ MAP_TILESET_SIZE EQU $60 UpdatePlayerSprite: - ld a, [wSpriteStateData2] + ld a, [wSpritePlayerStateData2WalkAnimationCounter] and a jr z, .checkIfTextBoxInFrontOfSprite cp $ff jr z, .disableSprite dec a - ld [wSpriteStateData2], a + ld [wSpritePlayerStateData2WalkAnimationCounter], a jr .disableSprite ; check if a text box is in front of the sprite by checking if the lower left ; background tile the sprite is standing on is greater than $5F, which is ; the maximum number for map tiles .checkIfTextBoxInFrontOfSprite - aCoord 8, 9 - ld [hTilePlayerStandingOn], a + lda_coord 8, 9 + ldh [hTilePlayerStandingOn], a cp MAP_TILESET_SIZE jr c, .lowerLeftTileIsMapTile .disableSprite ld a, $ff - ld [wSpriteStateData1 + 2], a + ld [wSpritePlayerStateData1ImageIndex], a ret .lowerLeftTileIsMapTile ld a, [wUpdateSpritesEnabled] @@ -29,7 +29,7 @@ UpdatePlayerSprite: call DetectCollisionBetweenSprites pop af ld [wUpdateSpritesEnabled], a - ld h, wSpriteStateData1 / $100 + ld h, HIGH(wSpriteStateData1) ld a, [wWalkCounter] and a jr nz, .moving @@ -62,8 +62,8 @@ UpdatePlayerSprite: .notMoving ; zero the animation counters xor a - ld [wSpriteStateData1 + 7], a - ld [wSpriteStateData1 + 8], a + ld [wSpritePlayerStateData1IntraAnimFrameCounter], a + ld [wSpritePlayerStateData1AnimFrameCounter], a call Func_4e32 jr .skipSpriteAnim .moving @@ -77,27 +77,27 @@ UpdatePlayerSprite: ; lower priority than the background so that it's partially obscured by the ; grass. Only the lower half of the sprite is permitted to have the priority ; bit set by later logic. - ld a, [hTilePlayerStandingOn] + ldh a, [hTilePlayerStandingOn] ld c, a ld a, [wGrassTile] cp c - ld a, $0 + ld a, 0 jr nz, .next2 - ld a, $80 + ld a, OAM_BEHIND_BG .next2 - ld [wSpriteStateData2 + $07], a + ld [wSpritePlayerStateData2GrassPriority], a ret Func_4e32: - ld a, [wSpriteStateData1 + 8] + ld a, [wSpritePlayerStateData1AnimFrameCounter] ld b, a ld a, [wSpritePlayerStateData1FacingDirection] add b - ld [wSpriteStateData1 + 2], a + ld [wSpritePlayerStateData1ImageIndex], a ret UpdateNPCSprite: - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] swap a dec a add a @@ -106,20 +106,20 @@ UpdateNPCSprite: ld l, a ld a, [hl] ; read movement byte 2 ld [wCurSpriteMovement2], a - ld h, wSpriteStateData1 / $100 - ld a, [H_CURRENTSPRITEOFFSET] + ld h, HIGH(wSpriteStateData1) + ldh a, [hCurrentSpriteOffset] ld l, a inc l - ld a, [hl] ; c1x1 + ld a, [hl] ; x#SPRITESTATEDATA1_MOVEMENTSTATUS and a jp z, InitializeSpriteStatus call CheckSpriteAvailability ret c ; if sprite is invisible, on tile >=MAP_TILESET_SIZE, in grass or player is currently walking - ld h, wSpriteStateData1 / $100 - ld a, [H_CURRENTSPRITEOFFSET] + ld h, HIGH(wSpriteStateData1) + ldh a, [hCurrentSpriteOffset] ld l, a inc l - ld a, [hl] ; c1x1 + ld a, [hl] ; x#SPRITESTATEDATA1_MOVEMENTSTATUS bit 7, a ; is the face player flag set? jp nz, MakeNPCFacePlayer ld b, a @@ -128,24 +128,24 @@ UpdateNPCSprite: jp nz, notYetMoving ld a, b cp $2 - jp z, UpdateSpriteMovementDelay ; c1x1 == 2 + jp z, UpdateSpriteMovementDelay ; [x#SPRITESTATEDATA1_MOVEMENTSTATUS] == 2 cp $3 - jp z, UpdateSpriteInWalkingAnimation ; c1x1 == 3 + jp z, UpdateSpriteInWalkingAnimation ; [x#SPRITESTATEDATA1_MOVEMENTSTATUS] == 3 cp $4 jp z, Func_5357 ld a, [wWalkCounter] and a ret nz ; don't do anything yet if player is currently moving (redundant, already tested in CheckSpriteAvailability) call InitializeSpriteScreenPosition - ld h, wSpriteStateData2 / $100 - ld a, [H_CURRENTSPRITEOFFSET] + ld h, HIGH(wSpriteStateData2) + ldh a, [hCurrentSpriteOffset] add $6 ld l, a - ld a, [hl] ; c2x6: movement byte 1 + ld a, [hl] ; x#SPRITESTATEDATA2_MOVEMENTBYTE1 inc a - jp z, .randomMovement ; value $FF + jp z, .randomMovement ; value STAY inc a - jp z, .randomMovement ; value $FE + jp z, .randomMovement ; value WALK ; scripted movement dec a ld [hl], a ; increment movement byte 1 (movement data index) @@ -156,7 +156,7 @@ UpdateNPCSprite: pop hl ld de, wNPCMovementDirections call LoadDEPlusA ; a = [wNPCMovementDirections + movement byte 1] - cp $e0 + cp NPC_CHANGE_FACING jp z, ChangeFacingDirection cp STAY jr nz, .next @@ -171,7 +171,7 @@ UpdateNPCSprite: .next cp WALK jr nz, .asm_4ecb -; current NPC movement data is $fe. this seems buggy +; current NPC movement data is WALK ($fe). this seems buggy ld [hl], $1 ; set movement byte 1 to $1 ld de, wNPCMovementDirections call LoadDEPlusA ; a = [wNPCMovementDirections + $fe] (?) @@ -188,20 +188,20 @@ UpdateNPCSprite: .determineDirection ld b, a ld a, [wCurSpriteMovement2] - cp $d0 - jr z, .moveDown ; movement byte 2 = $d0 forces down - cp $d1 - jr z, .moveUp ; movement byte 2 = $d1 forces up - cp $d2 - jr z, .moveLeft ; movement byte 2 = $d2 forces left - cp $d3 - jr z, .moveRight ; movement byte 2 = $d3 forces right + cp DOWN + jr z, .moveDown + cp UP + jr z, .moveUp + cp LEFT + jr z, .moveLeft + cp RIGHT + jr z, .moveRight ld a, b - cp $40 ; a < $40: down (or left) + cp NPC_MOVEMENT_UP ; NPC_MOVEMENT_DOWN <= a < NPC_MOVEMENT_UP: down (or left) jr nc, .notDown ld a, [wCurSpriteMovement2] - cp $2 - jr z, .moveLeft ; movement byte 2 = $2 only allows left or right + cp LEFT_RIGHT + jr z, .moveLeft .moveDown ld de, 2*SCREEN_WIDTH add hl, de ; move tile pointer two rows down @@ -209,11 +209,11 @@ UpdateNPCSprite: lb bc, 4, SPRITE_FACING_DOWN jr TryWalking .notDown - cp $80 ; $40 <= a < $80: up (or right) + cp NPC_MOVEMENT_LEFT ; NPC_MOVEMENT_UP <= a < NPC_MOVEMENT_LEFT: up (or right) jr nc, .notUp ld a, [wCurSpriteMovement2] - cp $2 - jr z, .moveRight ; movement byte 2 = $2 only allows left or right + cp LEFT_RIGHT + jr z, .moveRight .moveUp ld de, -2*SCREEN_WIDTH add hl, de ; move tile pointer two rows up @@ -221,21 +221,21 @@ UpdateNPCSprite: lb bc, 8, SPRITE_FACING_UP jr TryWalking .notUp - cp $c0 ; $80 <= a < $c0: left (or up) + cp NPC_MOVEMENT_RIGHT ; NPC_MOVEMENT_LEFT <= a < NPC_MOVEMENT_RIGHT: left (or up) jr nc, .notLeft ld a, [wCurSpriteMovement2] - cp $1 - jr z, .moveUp ; movement byte 2 = $1 only allows up or down + cp UP_DOWN + jr z, .moveUp .moveLeft dec hl dec hl ; move tile pointer two columns left lb de, 0, -1 lb bc, 2, SPRITE_FACING_LEFT jr TryWalking -.notLeft ; $c0 <= a: right (or down) +.notLeft ; NPC_MOVEMENT_RIGHT <= a: right (or down) ld a, [wCurSpriteMovement2] - cp $1 - jr z, .moveDown ; movement byte 2 = $1 only allows up or down + cp UP_DOWN + jr z, .moveDown .moveRight inc hl inc hl ; move tile pointer two columns right @@ -262,103 +262,104 @@ TryWalking: ld c, [hl] call CanWalkOntoTile pop de - ret c + ret c ; cannot walk there (reinitialization of delay values already done) call Func_5349 - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] ld l, a - ld [hl], $10 ; c1x9 (update facing direction) + ld [hl], $10 ; [x#SPRITESTATEDATA2_WALKANIMATIONCOUNTER] = 16 dec h inc l - ld [hl], $3 + ld [hl], $3 ; x#SPRITESTATEDATA1_MOVEMENTSTATUS jp UpdateSpriteImage ; update the walking animation parameters for a sprite that is currently walking UpdateSpriteInWalkingAnimation: call Func_5274 -.noNextAnimationFrame - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] add $3 ld l, a - ld a, [hli] ; c1x3 (movement Y delta) + ld a, [hli] ; x#SPRITESTATEDATA1_YSTEPVECTOR ld b, a - ld a, [hl] ; c1x4 (screen Y position) + ld a, [hl] ; x#SPRITESTATEDATA1_YPIXELS add b - ld [hli], a ; update screen Y position - ld a, [hli] ; c1x5 (movement X delta) + ld [hli], a ; update [x#SPRITESTATEDATA1_YPIXELS] + ld a, [hli] ; x#SPRITESTATEDATA1_XSTEPVECTOR ld b, a - ld a, [hl] ; c1x6 (screen X position) + ld a, [hl] ; x#SPRITESTATEDATA1_XPIXELS add b - ld [hl], a ; update screen X position - ld a, [H_CURRENTSPRITEOFFSET] + ld [hl], a ; update [x#SPRITESTATEDATA1_XPIXELS] + ldh a, [hCurrentSpriteOffset] ld l, a inc h - ld a, [hl] ; c2x0 (walk animation counter) + ld a, [hl] ; x#SPRITESTATEDATA2_WALKANIMATIONCOUNTER dec a ld [hl], a ; update walk animation counter ret nz ld a, $6 ; walking finished, update state add l ld l, a - ld a, [hl] ; c2x6 (movement byte 1) - cp $fe - jr nc, .initNextMovementCounter ; values $fe and $ff - ld a, [H_CURRENTSPRITEOFFSET] + ld a, [hl] ; x#SPRITESTATEDATA2_MOVEMENTBYTE1 + cp WALK + jr nc, .initNextMovementCounter ; values WALK or STAY + ldh a, [hCurrentSpriteOffset] inc a ld l, a dec h - ld [hl], $1 ; c1x1 = 1 (movement status ready) + ld [hl], $1 ; [x#SPRITESTATEDATA1_MOVEMENTSTATUS] = 1 (movement status ready) ret .initNextMovementCounter call Random - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] add $8 ld l, a - ld a, [hRandomAdd] + ldh a, [hRandomAdd] and $7f - ld [hl], a ; c2x8: set next movement delay to a random value in [0,$7f] - dec h ; note that value 0 actually makes the delay $100 (bug?) - ld a, [H_CURRENTSPRITEOFFSET] + ld [hl], a ; x#SPRITESTATEDATA2_MOVEMENTDELAY: + ; set next movement delay to a random value in [0,$7f] + ; note that value 0 actually makes the delay $100 (bug?) + dec h ; HIGH(wSpriteStateData1) + ldh a, [hCurrentSpriteOffset] inc a ld l, a - ld [hl], $2 ; c1x1 = 2 (movement status) + ld [hl], $2 ; [x#SPRITESTATEDATA1_MOVEMENTSTATUS] = 2 (movement status) inc l inc l xor a - ld b, [hl] ; c1x3 (movement Y delta) - ld [hli], a ; reset movement Y delta + ld b, [hl] ; x#SPRITESTATEDATA1_YSTEPVECTOR + ld [hli], a ; [x#SPRITESTATEDATA1_YSTEPVECTOR] = 0 inc l - ld c, [hl] ; c1x5 (movement X delta) - ld [hl], a ; reset movement X delta + ld c, [hl] ; x#SPRITESTATEDATA1_XSTEPVECTOR + ld [hl], a ; [x#SPRITESTATEDATA1_XSTEPVECTOR] = 0 ret -; update delay value (c2x8) for sprites in the delayed state (c1x1) +; update [x#SPRITESTATEDATA2_MOVEMENTDELAY] for sprites in the delayed state (x#SPRITESTATEDATA1_MOVEMENTSTATUS) UpdateSpriteMovementDelay: - ld h, $c2 - ld a, [H_CURRENTSPRITEOFFSET] + ld h, HIGH(wSpriteStateData2) + ldh a, [hCurrentSpriteOffset] add $6 ld l, a - ld a, [hl] ; c2x6: movement byte 1 + ld a, [hl] ; x#SPRITESTATEDATA2_MOVEMENTBYTE1 inc l inc l - cp $fe - jr nc, .tickMoveCounter ; values $fe or $ff + cp WALK + jr nc, .tickMoveCounter ; values WALK or STAY ld [hl], $0 jr .moving .tickMoveCounter - dec [hl] ; c2x8: frame counter until next movement + dec [hl] ; x#SPRITESTATEDATA2_MOVEMENTDELAY jr nz, notYetMoving .moving dec h - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] inc a ld l, a - ld [hl], $1 ; c1x1 = 1 (mark as ready to move) + ld [hl], $1 ; [x#SPRITESTATEDATA1_MOVEMENTSTATUS] = 1 (mark as ready to move) notYetMoving: - ld h, wSpriteStateData1 / $100 - ld a, [H_CURRENTSPRITEOFFSET] - add $8 + ld h, HIGH(wSpriteStateData1) + ldh a, [hCurrentSpriteOffset] + add SPRITESTATEDATA1_ANIMFRAMECOUNTER ld l, a - ld [hl], $0 ; c1x8 = 0 (walk animation frame) + ld [hl], $0 ; [x#SPRITESTATEDATA1_ANIMFRAMECOUNTER] = 0 (walk animation frame) jp UpdateSpriteImage MakeNPCFacePlayer: @@ -388,48 +389,48 @@ MakeNPCFacePlayer: .notFacingRight ld c, SPRITE_FACING_LEFT .facingDirectionDetermined - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] add $9 ld l, a - ld [hl], c ; c1x9: set facing direction + ld [hl], c ; [x#SPRITESTATEDATA1_FACINGDIRECTION]: set facing direction jr notYetMoving InitializeSpriteStatus: - ld [hl], $1 ; $c1x1: set movement status to ready + ld [hl], $1 ; [x#SPRITESTATEDATA1_MOVEMENTSTATUS] = ready inc l - ld [hl], $ff ; $c1x2: set sprite image to $ff (invisible/off screen) - inc h - ld a, [H_CURRENTSPRITEOFFSET] + ld [hl], $ff ; [x#SPRITESTATEDATA1_IMAGEINDEX] = invisible/off screen + inc h ; HIGH(wSpriteStateData2) + ldh a, [hCurrentSpriteOffset] add $2 ld l, a ld a, $8 - ld [hli], a ; $c2x2: set Y displacement to 8 - ld [hl], a ; $c2x3: set X displacement to 8 + ld [hli], a ; [x#SPRITESTATEDATA2_YDISPLACEMENT] = 8 + ld [hl], a ; [x#SPRITESTATEDATA2_XDISPLACEMENT] = 8 call InitializeSpriteScreenPosition ; could have done fallthrough here ret -; calculates the sprite's screen position form its map position and the player position +; calculates the sprite's screen position from its map position and the player position InitializeSpriteScreenPosition: - ld h, wSpriteStateData2 / $100 - ld a, [H_CURRENTSPRITEOFFSET] - add $4 + ld h, HIGH(wSpriteStateData2) + ldh a, [hCurrentSpriteOffset] + add SPRITESTATEDATA2_MAPY ld l, a ld a, [wYCoord] ld b, a - ld a, [hl] ; c2x4 (Y position + 4) + ld a, [hl] ; x#SPRITESTATEDATA2_MAPY sub b ; relative to player position call Func_5033 sub $4 ; - 4 dec h - ld [hli], a ; c1x4 (screen Y position) + ld [hli], a ; [x#SPRITESTATEDATA1_YPIXELS] inc h ld a, [wXCoord] ld b, a - ld a, [hli] ; c2x6 (X position + 4) + ld a, [hli] ; x#SPRITESTATEDATA2_MAPX sub b ; relative to player position call Func_5033 dec h - ld [hl], a ; c1x6 (screen X position) + ld [hl], a ; [x#SPRITESTATEDATA1_XPIXELS] ret Func_5033: @@ -447,35 +448,35 @@ Func_5033: ; tests if sprite is off screen or otherwise unable to do anything CheckSpriteAvailability: predef IsObjectHidden - ld a, [$ffe5] + ldh a, [hIsHiddenMissableObject] and a jp nz, .spriteInvisible - ld h, wSpriteStateData2 / $100 - ld a, [H_CURRENTSPRITEOFFSET] - add $6 + ld h, HIGH(wSpriteStateData2) + ldh a, [hCurrentSpriteOffset] + add SPRITESTATEDATA2_MOVEMENTBYTE1 ld l, a - ld a, [hl] ; c2x6: movement byte 1 - cp $fe - jr c, .skipXVisibilityTest ; movement byte 1 < $fe (i.e. the sprite's movement is scripted) - ld a, [H_CURRENTSPRITEOFFSET] - add $4 + ld a, [hl] ; x#SPRITESTATEDATA2_MOVEMENTBYTE1 + cp WALK + jr c, .skipXVisibilityTest ; movement byte 1 < WALK (i.e. the sprite's movement is scripted) + ldh a, [hCurrentSpriteOffset] + add SPRITESTATEDATA2_MAPY ld l, a - ld b, [hl] ; c2x4: Y pos (+4) + ld b, [hl] ; x#SPRITESTATEDATA2_MAPY ld a, [wYCoord] cp b jr z, .skipYVisibilityTest jr nc, .spriteInvisible ; above screen region - add $8 ; screen is 9 tiles high + add SCREEN_HEIGHT / 2 - 1 cp b jr c, .spriteInvisible ; below screen region .skipYVisibilityTest inc l - ld b, [hl] ; c2x5: X pos (+4) + ld b, [hl] ; x#SPRITESTATEDATA2_MAPX ld a, [wXCoord] cp b jr z, .skipXVisibilityTest jr nc, .spriteInvisible ; left of screen region - add $9 ; screen is 10 tiles wide + add SCREEN_WIDTH / 2 - 1 cp b jr c, .spriteInvisible ; right of screen region .skipXVisibilityTest @@ -489,7 +490,7 @@ CheckSpriteAvailability: ld a, [hld] cp d jr nc, .spriteInvisible ; standing on tile with ID >=MAP_TILESET_SIZE (bottom right tile) - ld bc, -20 + ld bc, -SCREEN_WIDTH add hl, bc ; go back one row of tiles ld a, [hli] cp d @@ -498,11 +499,11 @@ CheckSpriteAvailability: cp d jr c, .spriteVisible ; standing on tile with ID >=MAP_TILESET_SIZE (top right tile) .spriteInvisible - ld h, wSpriteStateData1 / $100 - ld a, [H_CURRENTSPRITEOFFSET] - add $2 + ld h, HIGH(wSpriteStateData1) + ldh a, [hCurrentSpriteOffset] + add SPRITESTATEDATA1_IMAGEINDEX ld l, a - ld [hl], $ff ; c1x2 + ld [hl], $ff ; x#SPRITESTATEDATA1_IMAGEINDEX scf jr .done .spriteVisible @@ -512,37 +513,37 @@ CheckSpriteAvailability: jr nz, .done ; if player is currently walking, we're done call UpdateSpriteImage inc h - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] add $7 ld l, a ld a, [wGrassTile] cp c - ld a, $0 + ld a, 0 jr nz, .notInGrass - ld a, $80 + ld a, OAM_BEHIND_BG .notInGrass - ld [hl], a ; c2x7 + ld [hl], a ; x#SPRITESTATEDATA2_GRASSPRIORITY and a .done ret UpdateSpriteImage: - ld h, $c1 - ld a, [H_CURRENTSPRITEOFFSET] + ld h, HIGH(wSpriteStateData1) + ldh a, [hCurrentSpriteOffset] add $8 ld l, a - ld a, [hli] ; c1x8: walk animation frame + ld a, [hli] ; x#SPRITESTATEDATA1_ANIMFRAMECOUNTER ld b, a - ld a, [hl] ; c1x9: facing direction + ld a, [hl] ; x#SPRITESTATEDATA1_FACINGDIRECTION add b ld b, a - ld a, [$ff93] ; current sprite offset + ldh a, [hTilePlayerStandingOn] add b ld b, a - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] add $2 ld l, a - ld [hl], b ; c1x2: sprite to display + ld [hl], b ; x#SPRITESTATEDATA1_IMAGEINDEX ret ; tests if sprite can walk the specified direction @@ -552,37 +553,37 @@ UpdateSpriteImage: ; e: X movement delta (-1, 0 or 1) ; set carry on failure, clears carry on success CanWalkOntoTile: - ld h, wSpriteStateData2 / $100 - ld a, [H_CURRENTSPRITEOFFSET] - add $6 + ld h, HIGH(wSpriteStateData2) + ldh a, [hCurrentSpriteOffset] + add SPRITESTATEDATA2_MOVEMENTBYTE1 ld l, a - ld a, [hl] ; c2x6 (movement byte 1) - cp $fe - jr nc, .notScripted ; values $fe and $ff + ld a, [hl] ; x#SPRITESTATEDATA2_MOVEMENTBYTE1 + cp WALK + jr nc, .notScripted ; values WALK or STAY ; always allow walking if the movement is scripted and a ret .notScripted call _IsTilePassable jr c, .impassable - ld h, wSpriteStateData2 / $100 - ld a, [H_CURRENTSPRITEOFFSET] + ld h, HIGH(wSpriteStateData2) + ldh a, [hCurrentSpriteOffset] add $6 ld l, a - ld a, [hl] ; $c2x6 (movement byte 1) + ld a, [hl] ; x#SPRITESTATEDATA2_MOVEMENTBYTE1 inc a jr z, .impassable ; if $ff, no movement allowed (however, changing direction is) - ld h, wSpriteStateData1 / $100 - ld a, [H_CURRENTSPRITEOFFSET] - add $4 + ld h, HIGH(wSpriteStateData1) + ldh a, [hCurrentSpriteOffset] + add SPRITESTATEDATA1_YPIXELS ld l, a - ld a, [hli] ; c1x4 (screen Y pos) + ld a, [hli] ; x#SPRITESTATEDATA1_YPIXELS add $4 ; align to blocks (Y pos is always 4 pixels off) add d ; add Y delta cp $80 ; if value is >$80, the destination is off screen (either $81 or $FF underflow) jr nc, .impassable ; don't walk off screen inc l - ld a, [hl] ; c1x6 (screen X pos) + ld a, [hl] ; x#SPRITESTATEDATA1_XPIXELS add e ; add X delta cp $90 ; if value is >$90, the destination is off screen (either $91 or $FF underflow) jr nc, .impassable ; don't walk off screen @@ -597,30 +598,36 @@ CanWalkOntoTile: ld [wUpdateSpritesEnabled], a pop bc pop de - ld h, wSpriteStateData1 / $100 - ld a, [H_CURRENTSPRITEOFFSET] + ld h, HIGH(wSpriteStateData1) + ldh a, [hCurrentSpriteOffset] add $c ld l, a - ld a, [hl] ; c1xc (directions in which sprite collision would occur) + ld a, [hl] ; x#SPRITESTATEDATA1_COLLISIONDATA (directions in which sprite collision would occur) and b ; check against chosen direction (1,2,4 or 8) jr nz, .impassable ; collision between sprites, don't go there - ld h, wSpriteStateData2 / $100 - ld a, [H_CURRENTSPRITEOFFSET] - add $2 + ld h, HIGH(wSpriteStateData2) + ldh a, [hCurrentSpriteOffset] + add SPRITESTATEDATA2_YDISPLACEMENT ld l, a - ld a, [hli] ; c2x2 (sprite Y displacement, initialized at $8, keep track of where a sprite did go) + ld a, [hli] ; x#SPRITESTATEDATA2_YDISPLACEMENT (initialized at $8, keep track of where a sprite did go) bit 7, d ; check if going upwards (d=$ff) jr nz, .upwards add d + ; bug: these tests against $5 probably were supposed to prevent + ; sprites from walking out too far, but this line makes sprites get + ; stuck whenever they walked upwards 5 steps + ; on the other hand, the amount a sprite can walk out to the + ; right of bottom is not limited (until the counter overflows) + ; this was fixed in Yellow cp $5 - ;jr c, .impassable (bugfix) ; if c2x2+d < 5, don't go ;bug: this tests probably were supposed to prevent sprites - jr .checkHorizontal ; from walking out too far, but this line makes sprites get stuck -.upwards ; whenever they walked upwards 5 steps - sub $1 ; on the other hand, the amount a sprite can walk out to the - jr c, .impassable ; if d2x2 == 0, don't go ; right of bottom is not limited (until the counter overflows) + ;jr c, .impassable ; if [x#SPRITESTATEDATA2_YDISPLACEMENT]+d < 5, don't go + jr .checkHorizontal +.upwards + sub $1 + jr c, .impassable ; if [x#SPRITESTATEDATA2_YDISPLACEMENT] == 0, don't go .checkHorizontal ld d, a - ld a, [hl] ; c2x3 (sprite X displacement, initialized at $8, keep track of where a sprite did go) + ld a, [hl] ; x#SPRITESTATEDATA2_XDISPLACEMENT (initialized at $8, keep track of where a sprite did go) bit 7, e ; check if going left (e=$ff) jr nz, .left add e @@ -628,32 +635,32 @@ CanWalkOntoTile: jr .passable .left sub $1 - jr c, .impassable ; if d2x3 == 0, don't go + jr c, .impassable ; if [x#SPRITESTATEDATA2_XDISPLACEMENT] == 0, don't go .passable - ld [hld], a ; update c2x3 - ld [hl], d ; update c2x2 + ld [hld], a ; update x#SPRITESTATEDATA2_XDISPLACEMENT + ld [hl], d ; update x#SPRITESTATEDATA2_YDISPLACEMENT and a ; clear carry (marking success) ret .impassable - ld h, wSpriteStateData1 / $100 - ld a, [H_CURRENTSPRITEOFFSET] + ld h, HIGH(wSpriteStateData1) + ldh a, [hCurrentSpriteOffset] inc a ld l, a - ld [hl], $2 ; c1x1 = 2 (set movement status to delayed) + ld [hl], $2 ; [x#SPRITESTATEDATA1_MOVEMENTSTATUS] = 2 (delayed) inc l inc l xor a - ld [hli], a ; c1x3 = 0 (clear Y movement delta) + ld [hli], a ; [x#SPRITESTATEDATA1_YSTEPVECTOR] = 0 inc l - ld [hl], a ; c1x5 = 0 (clear X movement delta) + ld [hl], a ; [x#SPRITESTATEDATA1_XSTEPVECTOR] = 0 inc h - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] add $8 ld l, a call Random - ld a, [hRandomAdd] + ldh a, [hRandomAdd] and $7f - ld [hl], a ; c2x8: set next movement delay to a random value in [0,$7f] (again with delay $100 if value is 0) + ld [hl], a ; x#SPRITESTATEDATA2_MOVEMENTDELAY: set to a random value in [0,$7f] (again with delay $100 if value is 0) scf ; set carry (marking failure to walk) ret @@ -661,25 +668,25 @@ CanWalkOntoTile: ; this is always the lower left tile of the 2x2 tile blocks all sprites are snapped to ; hl: output pointer GetTileSpriteStandsOn: - ld h, wSpriteStateData1 / $100 - ld a, [H_CURRENTSPRITEOFFSET] - add $4 + ld h, HIGH(wSpriteStateData1) + ldh a, [hCurrentSpriteOffset] + add SPRITESTATEDATA1_YPIXELS ld l, a - ld a, [hli] ; c1x4: screen Y position + ld a, [hli] ; x#SPRITESTATEDATA1_YPIXELS add $4 ; align to 2*2 tile blocks (Y position is always off 4 pixels to the top) and $f8 ; in case object is currently moving (XXX why changed to $f8?) srl a ; screen Y tile * 4 ld c, a ld b, $0 inc l - ld a, [hl] ; c1x6: screen X position + ld a, [hl] ; x#SPRITESTATEDATA1_XPIXELS srl a srl a srl a ; screen X tile add SCREEN_WIDTH ; screen X tile + 20 ld d, $0 ld e, a - coord hl, 0, 0 + hlcoord 0, 0 add hl, bc add hl, bc add hl, bc @@ -754,7 +761,7 @@ DoScriptedNPCMovement: ld a, [hl] add b ld [hl], a - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] add $9 ld l, a ld a, c @@ -777,17 +784,17 @@ InitScriptedNPCMovement: jp AnimScriptedNPCMovement GetSpriteScreenYPointer: - ld a, $4 + ld a, SPRITESTATEDATA1_YPIXELS ld b, a jr GetSpriteScreenXYPointerCommon GetSpriteScreenXPointer: - ld a, $6 + ld a, SPRITESTATEDATA1_XPIXELS ld b, a GetSpriteScreenXYPointerCommon: ld hl, wSpriteStateData1 - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] add l add b ld l, a @@ -795,16 +802,16 @@ GetSpriteScreenXYPointerCommon: AnimScriptedNPCMovement: ld hl, wSpriteStateData2 - ld a, [H_CURRENTSPRITEOFFSET] - add $e + ldh a, [hCurrentSpriteOffset] + add SPRITESTATEDATA2_IMAGEBASEOFFSET ld l, a ld a, [hl] ; VRAM slot dec a swap a ld b, a ld hl, wSpriteStateData1 - ld a, [H_CURRENTSPRITEOFFSET] - add $9 + ldh a, [hCurrentSpriteOffset] + add SPRITESTATEDATA1_FACINGDIRECTION ld l, a ld a, [hl] ; facing direction cp SPRITE_FACING_DOWN @@ -819,42 +826,42 @@ AnimScriptedNPCMovement: .anim add b ld b, a - ld [hSpriteVRAMSlotAndFacing], a + ldh [hSpriteVRAMSlotAndFacing], a call AdvanceScriptedNPCAnimFrameCounter ld hl, wSpriteStateData1 - ld a, [H_CURRENTSPRITEOFFSET] - add $2 + ldh a, [hCurrentSpriteOffset] + add SPRITESTATEDATA1_IMAGEINDEX ld l, a - ld a, [hSpriteVRAMSlotAndFacing] + ldh a, [hSpriteVRAMSlotAndFacing] ld b, a - ld a, [hSpriteAnimFrameCounter] + ldh a, [hSpriteAnimFrameCounter] add b ld [hl], a ret AdvanceScriptedNPCAnimFrameCounter: call Func_5274 - ld h, wSpriteStateData1 / $100 - ld a, [H_CURRENTSPRITEOFFSET] + ld h, HIGH(wSpriteStateData1) + ldh a, [hCurrentSpriteOffset] add $8 ld l, a ld a, [hl] ; intra-animation frame counter and $3 - ld [hSpriteAnimFrameCounter], a + ldh [hSpriteAnimFrameCounter], a ret Func_5274: - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] add $7 ld l, a - ld h, wSpriteStateData1 / $100 - ld a, [hl] ; c1x7 (counter until next walk animation frame) + ld h, HIGH(wSpriteStateData1) + ld a, [hl] ; x#SPRITESTATEDATA1_INTRAANIMFRAMECOUNTER inc a and $3 - ld [hl], a ; c1x7 += 1 - ret nz ; c1x7 = 0 + ld [hl], a ; [x#SPRITESTATEDATA1_INTRAANIMFRAMECOUNTER]++ + ret nz inc l - ld a, [hl] ; c1x8 (walk animation frame) + ld a, [hl] ; x#SPRITESTATEDATA1_ANIMFRAMECOUNTER inc a and $3 ld [hl], a ; advance to next animation frame every 4 ticks (16 ticks total for one step) @@ -924,7 +931,7 @@ Func_5288: .asm_52e6 call Func_5337 call Func_5349 - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] ld l, a ld [hl], $8 dec h @@ -936,7 +943,7 @@ Func_5288: .asm_52fa call Func_5337 - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] ld l, a ld [hl], $8 dec h @@ -949,7 +956,7 @@ Func_5288: .asm_530b call Func_5337 call Func_5349 - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] ld l, a ld [hl], $8 dec h @@ -980,39 +987,39 @@ Func_5331: ret Func_5337: - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] add $9 ld l, a - ld h, wSpriteStateData1 / $100 - ld [hl], c ; c1x9 (update facing direction) - ld a, [H_CURRENTSPRITEOFFSET] + ld h, HIGH(wSpriteStateData1) + ld [hl], c ; x#SPRITESTATEDATA1_FACINGDIRECTION + ldh a, [hCurrentSpriteOffset] add $3 ld l, a - ld [hl], d ; c1x3 (update Y movement delta) + ld [hl], d ; x#SPRITESTATEDATA1_YSTEPVECTOR inc l inc l - ld [hl], e ; c1x5 (update X movement delta) + ld [hl], e ; x#SPRITESTATEDATA1_XSTEPVECTOR ret Func_5349: - ld h, wSpriteStateData2 / $100 - ld a, [H_CURRENTSPRITEOFFSET] + ld h, HIGH(wSpriteStateData2) + ldh a, [hCurrentSpriteOffset] add $4 ld l, a - ld a, [hl] ; c2x4: Y position + ld a, [hl] ; x#SPRITESTATEDATA2_MAPY add d ld [hli], a ; update Y position - ld a, [hl] ; c2x5: X position + ld a, [hl] ; x#SPRITESTATEDATA2_MAPX add e ld [hl], a ; update X position ret Func_5357: call Func_5274 - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] add $3 ld l, a - ld h, wSpriteStateData1 / $100 + ld h, HIGH(wSpriteStateData1) ld a, [hli] add a ld b, a @@ -1025,9 +1032,9 @@ Func_5357: ld a, [hl] add b ld [hl], a - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] ld l, a - ld h, wSpriteStateData2 / $100 + ld h, HIGH(wSpriteStateData2) dec [hl] ret nz ld a, $6 @@ -1036,23 +1043,23 @@ Func_5357: ld a, [hl] cp $fe jr nc, .asm_5386 - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] inc a ld l, a - ld h, wSpriteStateData1 / $100 + ld h, HIGH(wSpriteStateData1) ld [hl], $1 ret .asm_5386 call Random - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] add $8 ld l, a - ld h, wSpriteStateData2 / $100 - ld a, [hRandomAdd] + ld h, HIGH(wSpriteStateData2) + ldh a, [hRandomAdd] and $7f ld [hl], a dec h - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] inc a ld l, a ld [hl], $2 diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm deleted file mode 100755 index 670cb1219..000000000 --- a/engine/overworld/npc_movement.asm +++ /dev/null @@ -1,270 +0,0 @@ -PlayerStepOutFromDoor: - ld hl, wd730 - res 1, [hl] - call IsPlayerStandingOnDoorTile - jr nc, .notStandingOnDoor - ld a, $fc - ld [wJoyIgnore], a - ld hl, wd736 - set 1, [hl] - ld a, $1 - ld [wSimulatedJoypadStatesIndex], a - ld a, D_DOWN - ld [wSimulatedJoypadStatesEnd], a - xor a - ld [wSpriteStateData1 + 2], a - call StartSimulatingJoypadStates - ret -.notStandingOnDoor - xor a - ld [wWastedByteCD3A], a - ld [wSimulatedJoypadStatesIndex], a - ld [wSimulatedJoypadStatesEnd], a - ld hl, wd736 - res 0, [hl] - res 1, [hl] - ld hl, wd730 - res 7, [hl] - ret - -_EndNPCMovementScript: - ld hl, wd730 - res 7, [hl] - ld hl, wd72e - res 7, [hl] - ld hl, wd736 - res 0, [hl] - res 1, [hl] - xor a - ld [wNPCMovementScriptSpriteOffset], a - ld [wNPCMovementScriptFunctionNum], a - ld [wNPCMovementScriptPointerTableNum], a - ld [wWastedByteCD3A], a - ld [wSimulatedJoypadStatesIndex], a - ld [wSimulatedJoypadStatesEnd], a - ret - -PalletMovementScriptPointerTable: - dw PalletMovementScript_OakMoveLeft - dw PalletMovementScript_PlayerMoveLeft - dw PalletMovementScript_WaitAndWalkToLab - dw PalletMovementScript_WalkToLab - dw PalletMovementScript_Done - -PalletMovementScript_OakMoveLeft: - ld a, [wXCoord] - sub $a - ld [wNumStepsToTake], a - jr z, .playerOnLeftTile -; The player is on the right tile of the northern path out of Pallet Town and -; Prof. Oak is below. -; Make Prof. Oak step to the left. - ld b, 0 - ld c, a - ld hl, wNPCMovementDirections2 - ld a, NPC_MOVEMENT_LEFT - call FillMemory - ld [hl], $ff - ld a, [wSpriteIndex] - ld [H_SPRITEINDEX], a - ld de, wNPCMovementDirections2 - call MoveSprite - ld a, $1 - ld [wNPCMovementScriptFunctionNum], a - jr .done -; The player is on the left tile of the northern path out of Pallet Town and -; Prof. Oak is below. -; Prof. Oak is already where he needs to be. -.playerOnLeftTile - ld a, $3 - ld [wNPCMovementScriptFunctionNum], a -.done - ld a, BANK(Music_MuseumGuy) - ld c, a - ld a, MUSIC_MUSEUM_GUY - call PlayMusic - ld hl, wFlags_D733 - set 1, [hl] - ld a, $fc - ld [wJoyIgnore], a - ret - -PalletMovementScript_PlayerMoveLeft: - ld a, [wd730] - bit 0, a ; is an NPC being moved by a script? - ret nz ; return if Oak is still moving - ld a, [wNumStepsToTake] - ld [wSimulatedJoypadStatesIndex], a - ld [hNPCMovementDirections2Index], a - predef ConvertNPCMovementDirectionsToJoypadMasks - call StartSimulatingJoypadStates - ld a, $2 - ld [wNPCMovementScriptFunctionNum], a - ret - -PalletMovementScript_WaitAndWalkToLab: - ld a, [wSimulatedJoypadStatesIndex] - and a ; is the player done moving left yet? - ret nz - -PalletMovementScript_WalkToLab: - xor a - ld [wOverrideSimulatedJoypadStatesMask], a - ld a, [wSpriteIndex] - swap a - ld [wNPCMovementScriptSpriteOffset], a - xor a - ld [wSpriteStateData2 + $06], a - ld hl, wSimulatedJoypadStatesEnd - ld de, RLEList_PlayerWalkToLab - call DecodeRLEList - dec a - ld [wSimulatedJoypadStatesIndex], a - ld hl, wNPCMovementDirections2 - ld de, RLEList_ProfOakWalkToLab - call DecodeRLEList - ld hl, wd72e - res 7, [hl] - ld hl, wd730 - set 7, [hl] - ld a, $4 - ld [wNPCMovementScriptFunctionNum], a - ret - - -RLEList_ProfOakWalkToLab: - db NPC_MOVEMENT_DOWN, $06 ; differs from red - db NPC_MOVEMENT_LEFT, $01 - db NPC_MOVEMENT_DOWN, $05 - db NPC_MOVEMENT_RIGHT, $03 - db NPC_MOVEMENT_UP, $01 - db $E0, $01 ; stand still - db $FF - -RLEList_PlayerWalkToLab: - db D_UP, $02 - db D_RIGHT, $03 - db D_DOWN, $05 - db D_LEFT, $01 - db D_DOWN, $07 ; differs from red - db $FF - -PalletMovementScript_Done: - ld a, [wSimulatedJoypadStatesIndex] - and a - ret nz - ld a, HS_PALLET_TOWN_OAK - ld [wMissableObjectIndex], a - predef HideObject - ld hl, wd730 - res 7, [hl] - ld hl, wd72e - res 7, [hl] - jp EndNPCMovementScript - -PewterMuseumGuyMovementScriptPointerTable: - dw PewterMovementScript_WalkToMuseum - dw PewterMovementScript_Done - -PewterMovementScript_WalkToMuseum: - ld a, BANK(Music_MuseumGuy) - ld c, a - ld a, MUSIC_MUSEUM_GUY - call PlayMusic - ld a, [wSpriteIndex] - swap a - ld [wNPCMovementScriptSpriteOffset], a - call StartSimulatingJoypadStates - ld hl, wSimulatedJoypadStatesEnd - ld de, RLEList_PewterMuseumPlayer - call DecodeRLEList - dec a - ld [wSimulatedJoypadStatesIndex], a - xor a - ld [wWhichPewterGuy], a - call PewterGuys - ld hl, wNPCMovementDirections2 - ld de, RLEList_PewterMuseumGuy - call DecodeRLEList - ld hl, wd72e - res 7, [hl] - ld a, $1 - ld [wNPCMovementScriptFunctionNum], a - ret - -RLEList_PewterMuseumPlayer: - db 0, $01 - db D_UP, $03 - db D_LEFT, $0D - db D_UP, $06 - db $FF - -RLEList_PewterMuseumGuy: - db NPC_MOVEMENT_UP, $06 - db NPC_MOVEMENT_LEFT, $0D - db NPC_MOVEMENT_UP, $03 - db NPC_MOVEMENT_LEFT, $01 - db $FF - -PewterMovementScript_Done: - ld a, [wSimulatedJoypadStatesIndex] - and a - ret nz - ld hl, wd730 - res 7, [hl] - ld hl, wd72e - res 7, [hl] - jp EndNPCMovementScript - -PewterGymGuyMovementScriptPointerTable: - dw PewterMovementScript_WalkToGym - dw PewterMovementScript_Done - -PewterMovementScript_WalkToGym: - ld a, BANK(Music_MuseumGuy) - ld c, a - ld a, MUSIC_MUSEUM_GUY - call PlayMusic - ld a, [wSpriteIndex] - swap a - ld [wNPCMovementScriptSpriteOffset], a - xor a - ld [wSpriteStateData2 + $06], a - ld hl, wSimulatedJoypadStatesEnd - ld de, RLEList_PewterGymPlayer - call DecodeRLEList - dec a - ld [wSimulatedJoypadStatesIndex], a - ld a, 1 - ld [wWhichPewterGuy], a - call PewterGuys - ld hl, wNPCMovementDirections2 - ld de, RLEList_PewterGymGuy - call DecodeRLEList - ld hl, wd72e - res 7, [hl] - ld hl, wd730 - set 7, [hl] - ld a, $1 - ld [wNPCMovementScriptFunctionNum], a - ret - -RLEList_PewterGymPlayer: - db 0, $01 - db D_RIGHT, $02 - db D_DOWN, $05 - db D_LEFT, $0B - db D_UP, $05 - db D_LEFT, $0F - db $FF - -RLEList_PewterGymGuy: - db NPC_MOVEMENT_DOWN, $02 - db NPC_MOVEMENT_LEFT, $0F - db NPC_MOVEMENT_UP, $05 - db NPC_MOVEMENT_LEFT, $0B - db NPC_MOVEMENT_DOWN, $05 - db NPC_MOVEMENT_RIGHT, $03 - db $FF - -INCLUDE "engine/overworld/pewter_guys.asm" diff --git a/engine/overworld/npc_movement_2.asm b/engine/overworld/npc_movement_2.asm index 93d1afcec..2ced9da67 100755 --- a/engine/overworld/npc_movement_2.asm +++ b/engine/overworld/npc_movement_2.asm @@ -1,4 +1,4 @@ -FreezeEnemyTrainerSprite: +FreezeEnemyTrainerSprite:: ld a, [wCurMap] cp POKEMON_TOWER_7F ret z ; the Rockets on Pokemon Tower 7F leave after battling, so don't freeze them @@ -7,18 +7,18 @@ FreezeEnemyTrainerSprite: ld b, a .loop ld a, [hli] - cp $ff + cp -1 jr z, .notRival cp b ret z ; the rival leaves after battling, so don't freeze him jr .loop .notRival ld a, [wSpriteIndex] - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a jp SetSpriteMovementBytesToFF RivalIDs: - db OPP_SONY1 - db OPP_SONY2 - db OPP_SONY3 - db $ff + db OPP_RIVAL1 + db OPP_RIVAL2 + db OPP_RIVAL3 + db -1 ; end diff --git a/engine/overworld/oaks_aide.asm b/engine/overworld/oaks_aide.asm deleted file mode 100755 index f5068fda2..000000000 --- a/engine/overworld/oaks_aide.asm +++ /dev/null @@ -1,71 +0,0 @@ -OaksAideScript: - ld hl, OaksAideHiText - call PrintText - call YesNoChoice - ld a, [wCurrentMenuItem] - and a - jr nz, .choseNo - ld hl, wPokedexOwned - ld b, wPokedexOwnedEnd - wPokedexOwned - call CountSetBits - ld a, [wNumSetBits] - ld [hOaksAideNumMonsOwned], a - ld b, a - ld a, [hOaksAideRequirement] - cp b - jr z, .giveItem - jr nc, .notEnoughOwnedMons -.giveItem - ld hl, OaksAideHereYouGoText - call PrintText - ld a, [hOaksAideRewardItem] - ld b, a - ld c, 1 - call GiveItem - jr nc, .bagFull - ld hl, OaksAideGotItemText - call PrintText - ld a, $1 - jr .done -.bagFull - ld hl, OaksAideNoRoomText - call PrintText - xor a - jr .done -.notEnoughOwnedMons - ld hl, OaksAideUhOhText - call PrintText - ld a, $80 - jr .done -.choseNo - ld hl, OaksAideComeBackText - call PrintText - ld a, $ff -.done - ld [hOaksAideResult], a - ret - -OaksAideHiText: - TX_FAR _OaksAideHiText - db "@" - -OaksAideUhOhText: - TX_FAR _OaksAideUhOhText - db "@" - -OaksAideComeBackText: - TX_FAR _OaksAideComeBackText - db "@" - -OaksAideHereYouGoText: - TX_FAR _OaksAideHereYouGoText - db "@" - -OaksAideGotItemText: - TX_FAR _OaksAideGotItemText - TX_SFX_ITEM_1 - db "@" - -OaksAideNoRoomText: - TX_FAR _OaksAideNoRoomText - db "@" diff --git a/engine/overworld/oam.asm b/engine/overworld/oam.asm deleted file mode 100644 index 5a831327b..000000000 --- a/engine/overworld/oam.asm +++ /dev/null @@ -1,232 +0,0 @@ -PrepareOAMData: -; Determine OAM data for currently visible -; sprites and write it to wOAMBuffer. -; Yellow code has been changed to use registers more efficiently -; as well as tweaking the code to show gbc palettes - - ld a, [wUpdateSpritesEnabled] - dec a - jr z, .updateEnabled - - cp -1 - ret nz - ld [wUpdateSpritesEnabled], a - jp HideSprites - -.updateEnabled - xor a - ld [hOAMBufferOffset], a - -.spriteLoop - ld [hSpriteOffset2], a - - ld e, a - ld d, wSpriteStateData1 / $100 - - ld a, [de] ; c1x0 - and a - jp z, .nextSprite - - inc e - inc e - ld a, [de] ; c1x2 (facing/anim) - ld [wd5cd], a - cp $ff ; off-screen (don't draw) - jr nz, .visible - - call GetSpriteScreenXY - jr .nextSprite - -.visible - cp $a0 ; is the sprite unchanging like an item ball or boulder? - jr c, .usefacing - -; unchanging - ld a, $0 - jr .next - -.usefacing - and $f - -.next -; read the entry from the table - ld c, a - ld b, 0 - ld hl, SpriteFacingAndAnimationTable - add hl, bc - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a -; get sprite priority - push de - inc d - ld a, e - add $5 - ld e, a - ld a, [de] ; c2x7 - and $80 - ld [hSpritePriority], a ; temp store sprite priority - pop de - - - call GetSpriteScreenXY - - ld a, [hOAMBufferOffset] - add [hl] - cp $a0 - jr z, .hidden - jr nc, .asm_4a41 -.hidden - call Func_4a7b - ld [wd5cd], a - ld a, [hOAMBufferOffset] - - ld e, a - ld d, wOAMBuffer / $100 - -.tileLoop - ld a, [hli] - ld c, a -.loop - ld a, [hSpriteScreenY] ; temp for sprite Y position - add $10 ; Y=16 is top of screen (Y=0 is invisible) - add [hl] ; add Y offset from table - ld [de], a ; write new sprite OAM Y position - inc hl - inc e - ld a, [hSpriteScreenX] ; temp for sprite X position - add $8 ; X=8 is left of screen (X=0 is invisible) - add [hl] ; add X offset from table - ld [de], a - inc hl - inc e - ld a, [wd5cd] - add [hl] - cp $80 - jr c, .asm_4a1c - ld b, a - ld a, [$fffc] - add b -.asm_4a1c - ld [de], a ; tile id - inc hl - inc e - ld a, [hl] - bit 1, a ; is the tile allowed to set the sprite priority bit? - jr z, .skipPriority - ld a, [hSpritePriority] - or [hl] -.skipPriority - and $f0 - bit 4, a ; OBP0 or OBP1 - jr z, .spriteusesOBP0 - or %100 ; palettes 4-7 are OBP1 -.spriteusesOBP0 - ld [de], a - inc hl - inc e - dec c - jr nz, .loop - - ld a, e - ld [hOAMBufferOffset], a -.nextSprite - ld a, [hSpriteOffset2] - add $10 - cp $100 % $100 - jp nz, .spriteLoop - - ; Clear unused OAM. -.asm_4a41 - ld a, [wd736] - bit 6, a ; jumping down ledge or fishing animation? - ld c, $a0 - jr z, .clear - -; Don't clear the last 4 entries because they are used for the shadow in the -; jumping down ledge animation and the rod in the fishing animation. - ld c, $90 - -.clear - ld a, [hOAMBufferOffset] - cp c - ret nc - ld l, a - ld h, wOAMBuffer / $100 - ld a, c - ld de, $4 ; entry size - ld b, $a0 -.clearLoop - ld [hl], b - add hl, de - cp l - jr nz, .clearLoop - ret - -GetSpriteScreenXY: - inc e - inc e - ld a, [de] ; c1x4 - ld [hSpriteScreenY], a - inc e - inc e - ld a, [de] ; c1x6 - ld [hSpriteScreenX], a - ld a, 4 - add e - ld e, a - ld a, [hSpriteScreenY] - add 4 - and $f0 - ld [de], a ; c1xa (y) - inc e - ld a, [hSpriteScreenX] - and $f0 - ld [de], a ; c1xb (x) - ret - -Func_4a7b: - push bc - ld a, [wd5cd] ; temp copy of c1x2 - swap a ; high nybble determines sprite used (0 is always player sprite, next are some npcs) - and $f - - ; Sprites $a and $b have one face (and therefore 4 tiles instead of 12). - ; As a result, sprite $b's tile offset is less than normal. - cp $b - jr nz, .notFourTileSprite - ld a, $a * 12 + 4 ; $7c - jr .done - -.notFourTileSprite - ; a *= 12 - add a - add a - ld c, a - add a - add c -.done - pop bc - ret - -INCLUDE "engine/oam_dma.asm" - -_IsTilePassable:: - ld hl,wTilesetCollisionPtr ; pointer to list of passable tiles - ld a,[hli] - ld h,[hl] - ld l,a ; hl now points to passable tiles -.loop - ld a,[hli] - cp a,$ff - jr z,.tileNotPassable - cp c - jr nz,.loop - xor a - ret -.tileNotPassable - scf - ret - -INCLUDE "data/collision.asm" ; probably diff --git a/engine/overworld/pathfinding.asm b/engine/overworld/pathfinding.asm new file mode 100644 index 000000000..a824d3375 --- /dev/null +++ b/engine/overworld/pathfinding.asm @@ -0,0 +1,201 @@ +FindPathToPlayer: + xor a + ld hl, hFindPathNumSteps + ld [hli], a ; hFindPathNumSteps + ld [hli], a ; hFindPathFlags + ld [hli], a ; hFindPathYProgress + ld [hl], a ; hFindPathXProgress + ld hl, wNPCMovementDirections2 + ld de, $0 +.loop + ldh a, [hFindPathYProgress] + ld b, a + ldh a, [hNPCPlayerYDistance] ; Y distance in steps + call CalcDifference + ld d, a + and a + jr nz, .asm_f76a + ldh a, [hFindPathFlags] + set 0, a ; current end of path matches the player's Y coordinate + ldh [hFindPathFlags], a +.asm_f76a + ldh a, [hFindPathXProgress] + ld b, a + ldh a, [hNPCPlayerXDistance] ; X distance in steps + call CalcDifference + ld e, a + and a + jr nz, .asm_f77c + ldh a, [hFindPathFlags] + set 1, a ; current end of path matches the player's X coordinate + ldh [hFindPathFlags], a +.asm_f77c + ldh a, [hFindPathFlags] + cp $3 ; has the end of the path reached the player's position? + jr z, .done +; Compare whether the X distance between the player and the current of the path +; is greater or if the Y distance is. Then, try to reduce whichever is greater. + ld a, e + cp d + jr c, .yDistanceGreater +; x distance is greater + ldh a, [hNPCPlayerRelativePosFlags] + bit 1, a + jr nz, .playerIsLeftOfNPC + ld d, NPC_MOVEMENT_RIGHT + jr .next1 +.playerIsLeftOfNPC + ld d, NPC_MOVEMENT_LEFT +.next1 + ldh a, [hFindPathXProgress] + add 1 + ldh [hFindPathXProgress], a + jr .storeDirection +.yDistanceGreater + ldh a, [hNPCPlayerRelativePosFlags] + bit 0, a + jr nz, .playerIsAboveNPC + ld d, NPC_MOVEMENT_DOWN + jr .next2 +.playerIsAboveNPC + ld d, NPC_MOVEMENT_UP +.next2 + ldh a, [hFindPathYProgress] + add 1 + ldh [hFindPathYProgress], a +.storeDirection + ld a, d + ld [hli], a + ldh a, [hFindPathNumSteps] + inc a + ldh [hFindPathNumSteps], a + jp .loop +.done + ld [hl], $ff + ret + +CalcPositionOfPlayerRelativeToNPC: + xor a + ldh [hNPCPlayerRelativePosFlags], a + ld a, [wSpritePlayerStateData1YPixels] + ld d, a + ld a, [wSpritePlayerStateData1XPixels] + ld e, a + ld hl, wSpriteStateData1 + ldh a, [hNPCSpriteOffset] + add l + add SPRITESTATEDATA1_YPIXELS + ld l, a + jr nc, .noCarry + inc h +.noCarry + ld a, d + ld b, a + ld a, [hli] ; NPC sprite screen Y position in pixels + call CalcDifference + jr nc, .NPCSouthOfOrAlignedWithPlayer +.NPCNorthOfPlayer + push hl + ld hl, hNPCPlayerRelativePosFlags + bit 0, [hl] + set 0, [hl] + pop hl + jr .divideYDistance +.NPCSouthOfOrAlignedWithPlayer + push hl + ld hl, hNPCPlayerRelativePosFlags + bit 0, [hl] + res 0, [hl] + pop hl +.divideYDistance + push hl + ld hl, hDividend2 + ld [hli], a + ld a, 16 + ld [hli], a + call DivideBytes ; divide Y absolute distance by 16 + ld a, [hl] ; quotient + ldh [hNPCPlayerYDistance], a + pop hl + inc hl + ld b, e + ld a, [hl] ; NPC sprite screen X position in pixels + call CalcDifference + jr nc, .NPCEastOfOrAlignedWithPlayer +.NPCWestOfPlayer + push hl + ld hl, hNPCPlayerRelativePosFlags + bit 1, [hl] + set 1, [hl] + pop hl + jr .divideXDistance +.NPCEastOfOrAlignedWithPlayer + push hl + ld hl, hNPCPlayerRelativePosFlags + bit 1, [hl] + res 1, [hl] + pop hl +.divideXDistance + ldh [hDividend2], a + ld a, 16 + ldh [hDivisor2], a + call DivideBytes ; divide X absolute distance by 16 + ldh a, [hQuotient2] + ldh [hNPCPlayerXDistance], a + ldh a, [hNPCPlayerRelativePosPerspective] + and a + ret z + ldh a, [hNPCPlayerRelativePosFlags] + cpl + and $3 + ldh [hNPCPlayerRelativePosFlags], a + ret + +ConvertNPCMovementDirectionsToJoypadMasks: + ldh a, [hNPCMovementDirections2Index] + ld [wNPCMovementDirections2Index], a + dec a + ld de, wSimulatedJoypadStatesEnd + ld hl, wNPCMovementDirections2 + add l + ld l, a + jr nc, .loop + inc h +.loop + ld a, [hld] + call ConvertNPCMovementDirectionToJoypadMask + ld [de], a + inc de + ldh a, [hNPCMovementDirections2Index] + dec a + ldh [hNPCMovementDirections2Index], a + jr nz, .loop + ret + +ConvertNPCMovementDirectionToJoypadMask: + push hl + ld b, a + ld hl, NPCMovementDirectionsToJoypadMasksTable +.loop + ld a, [hli] + cp $ff + jr z, .done + cp b + jr z, .loadJoypadMask + inc hl + jr .loop +.loadJoypadMask + ld a, [hl] +.done + pop hl + ret + +NPCMovementDirectionsToJoypadMasksTable: + db NPC_MOVEMENT_UP, D_UP + db NPC_MOVEMENT_DOWN, D_DOWN + db NPC_MOVEMENT_LEFT, D_LEFT + db NPC_MOVEMENT_RIGHT, D_RIGHT + db $ff + +; unreferenced + ret diff --git a/engine/overworld/player_animations.asm b/engine/overworld/player_animations.asm index d4ecec53e..5056c0b2a 100755 --- a/engine/overworld/player_animations.asm +++ b/engine/overworld/player_animations.asm @@ -1,7 +1,7 @@ -EnterMapAnim: +EnterMapAnim:: call InitFacingDirectionList ld a, $ec - ld [wSpriteStateData1 + 4], a ; player's sprite Y screen position + ld [wSpritePlayerStateData1YPixels], a call Delay3 push hl call GBFadeInFromWhite @@ -94,7 +94,7 @@ PlayerSpinWhileMovingDown: jp PlayerSpinWhileMovingUpOrDown -_LeaveMapAnim: +_LeaveMapAnim:: call Func_1510 call InitFacingDirectionList call IsPlayerStandingOnWarpPadOrHole @@ -232,19 +232,19 @@ DoFlyAnimation: ld a, [wFlyAnimBirdSpriteImageIndex] xor $1 ; make the bird flap its wings ld [wFlyAnimBirdSpriteImageIndex], a - ld [wSpriteStateData1 + 2], a + ld [wSpritePlayerStateData1ImageIndex], a call Delay3 ld a, [wFlyAnimUsingCoordList] cp $ff jr z, .skipCopyingCoords ; if the bird is flapping its wings in place - ld hl, wSpriteStateData1 + 4 + ld hl, wSpritePlayerStateData1YPixels ld a, [de] inc de - ld [hli], a + ld [hli], a ; y inc hl ld a, [de] inc de - ld [hl], a + ld [hl], a ; x .skipCopyingCoords ld a, [wFlyAnimCounter] dec a @@ -258,22 +258,22 @@ LoadBirdSpriteGraphics: ld c, $c ld hl, vNPCSprites call CopyVideoData - ld de, BirdSprite + $c0 ; moving animation sprite + ld de, BirdSprite tile 12 ; moving animation sprite ld b, BANK(BirdSprite) - ld c, $0c + ld c, 12 ld hl, vNPCSprites2 jp CopyVideoData InitFacingDirectionList: - ld a, [wSpriteStateData1 + 2] ; player's sprite facing direction (image index is locked to standing images) + ld a, [wSpritePlayerStateData1ImageIndex] ; (image index is locked to standing images) ld [wSavedPlayerFacingDirection], a - ld a, [wSpriteStateData1 + 4] ; player's sprite Y screen position + ld a, [wSpritePlayerStateData1YPixels] ld [wSavedPlayerScreenY], a ld hl, PlayerSpinningFacingOrder ld de, wFacingDirectionList ld bc, 4 call CopyData - ld a, [wSpriteStateData1 + 2] ; player's sprite facing direction (image index is locked to standing images) + ld a, [wSpritePlayerStateData1ImageIndex] ; (image index is locked to standing images) ld hl, wFacingDirectionList ; find the place in the list that matches the current facing direction .loop @@ -291,7 +291,7 @@ PlayerSpinningFacingOrder: SpinPlayerSprite: ; copy the current value from the list into the sprite data and rotate the list ld a, [hl] - ld [wSpriteStateData1 + 2], a ; player's sprite facing direction (image index is locked to standing images) + ld [wSpritePlayerStateData1ImageIndex], a ; (image index is locked to standing images) push hl ld hl, wFacingDirectionList ld de, wFacingDirectionList - 1 @@ -327,9 +327,9 @@ PlayerSpinWhileMovingUpOrDown: call SpinPlayerSprite ld a, [wPlayerSpinWhileMovingUpOrDownAnimDeltaY] ld c, a - ld a, [wSpriteStateData1 + 4] ; player's sprite Y screen position + ld a, [wSpritePlayerStateData1YPixels] add c - ld [wSpriteStateData1 + 4], a + ld [wSpritePlayerStateData1YPixels], a ld c, a ld a, [wPlayerSpinWhileMovingUpOrDownAnimMaxY] cp c @@ -341,9 +341,9 @@ PlayerSpinWhileMovingUpOrDown: RestoreFacingDirectionAndYScreenPos: ld a, [wSavedPlayerScreenY] - ld [wSpriteStateData1 + 4], a + ld [wSpritePlayerStateData1YPixels], a ld a, [wSavedPlayerFacingDirection] - ld [wSpriteStateData1 + 2], a + ld [wSpritePlayerStateData1ImageIndex], a ; (image index is locked to standing images) ret ; if SGB, 2 frames, else 3 frames @@ -354,9 +354,9 @@ GetPlayerTeleportAnimFrameDelay: inc a ret -IsPlayerStandingOnWarpPadOrHole: +IsPlayerStandingOnWarpPadOrHole:: ld b, 0 - ld hl, .warpPadAndHoleData + ld hl, WarpPadAndHoleData ld a, [wCurMapTileset] ld c, a .loop @@ -365,7 +365,7 @@ IsPlayerStandingOnWarpPadOrHole: jr z, .done cp c jr nz, .nextEntry - aCoord 8, 9 + lda_coord 8, 9 cp [hl] jr z, .foundMatch .nextEntry @@ -380,13 +380,7 @@ IsPlayerStandingOnWarpPadOrHole: ld [wStandingOnWarpPadOrHole], a ret -; format: db tileset id, tile id, value to be put in [wStandingOnWarpPadOrHole] -.warpPadAndHoleData: - db FACILITY, $20, 1 ; warp pad - db FACILITY, $11, 2 ; hole - db CAVERN, $22, 2 ; hole - db INTERIOR, $55, 1 ; warp pad - db $FF +INCLUDE "data/tilesets/warp_pad_hole_tile_ids.asm" FishingAnim: ld c, 10 @@ -396,12 +390,12 @@ FishingAnim: ld hl, vNPCSprites ld de, RedSprite ld b, BANK(RedSprite) - ld c, $c + ld c, 12 call CopyVideoData ld a, $4 ld hl, RedFishingTiles call LoadAnimSpriteGfx - ld a, [wSpriteStateData1 + 2] + ld a, [wSpritePlayerStateData1ImageIndex] ld c, a ld b, $0 ld hl, FishingRodOAM @@ -424,7 +418,7 @@ FishingAnim: ; shake the player's sprite vertically ld b, 10 .loop - ld hl, wSpriteStateData1 + 4 ; player's sprite Y screen position + ld hl, wSpritePlayerStateData1YPixels call .ShakePlayerSprite ld hl, wOAMBuffer + $9c call .ShakePlayerSprite @@ -434,7 +428,7 @@ FishingAnim: ; If the player is facing up, hide the fishing rod so it doesn't overlap with ; the exclamation bubble that will be shown next. - ld a, [wSpriteStateData1 + 2] ; player's sprite facing direction + ld a, [wSpritePlayerStateData1ImageIndex] ; (image index is locked to standing images) cp SPRITE_FACING_UP jr nz, .skipHidingFishingRod ld a, $a0 @@ -448,7 +442,7 @@ FishingAnim: predef EmotionBubble ; If the player is facing up, unhide the fishing rod. - ld a, [wSpriteStateData1 + 2] ; player's sprite facing direction + ld a, [wSpritePlayerStateData1ImageIndex] ; (image index is locked to standing images) cp SPRITE_FACING_UP jr nz, .skipUnhidingFishingRod ld a, $44 @@ -471,46 +465,38 @@ FishingAnim: ret NoNibbleText: - TX_FAR _NoNibbleText - db "@" + text_far _NoNibbleText + text_end NothingHereText: - TX_FAR _NothingHereText - db "@" + text_far _NothingHereText + text_end ItsABiteText: - TX_FAR _ItsABiteText - db "@" + text_far _ItsABiteText + text_end FishingRodOAM: ; specifies how the fishing rod should be drawn on the screen -; first byte = screen y coordinate -; second byte = screen x coordinate -; third byte = tile number -; fourth byte = sprite properties - db $5B, $4C, $FD, $00 ; player facing down - db $44, $4C, $FD, $00 ; player facing up - db $50, $40, $FE, $00 ; player facing left - db $50, $58, $FE, $20 ; player facing right ($20 means "horizontally flip the tile") + dbsprite 9, 11, 4, 3, $fd, 0 ; down + dbsprite 9, 8, 4, 4, $fd, 0 ; up + dbsprite 8, 10, 0, 0, $fe, 0 ; left + dbsprite 11, 10, 0, 0, $fe, OAM_HFLIP ; right + +fishing_gfx: MACRO + dw \1 + db \2 + db BANK(\1) + dw vNPCSprites tile \3 +ENDM RedFishingTiles: - dw RedFishingTilesFront - db 2, BANK(RedFishingTilesFront) - dw vNPCSprites + $20 - - dw RedFishingTilesBack - db 2, BANK(RedFishingTilesBack) - dw vNPCSprites + $60 - - dw RedFishingTilesSide - db 2, BANK(RedFishingTilesSide) - dw vNPCSprites + $a0 - - dw RedFishingRodTiles - db 3, BANK(RedFishingRodTiles) - dw vNPCSprites2 + $7d0 + fishing_gfx RedFishingTilesFront, 2, $02 + fishing_gfx RedFishingTilesBack, 2, $06 + fishing_gfx RedFishingTilesSide, 2, $0a + fishing_gfx RedFishingRodTiles, 3, $fd -_HandleMidJump: +_HandleMidJump:: ld a, [wPlayerJumpingYScreenCoordsIndex] ld c, a inc a @@ -521,7 +507,7 @@ _HandleMidJump: ld hl, PlayerJumpingYScreenCoords add hl, bc ld a, [hl] - ld [wSpriteStateData1 + 4], a ; player's sprite y coordinate + ld [wSpritePlayerStateData1YPixels], a ret .finishedJump ld a, [wWalkCounter] @@ -530,9 +516,9 @@ _HandleMidJump: call UpdateSprites call Delay3 xor a - ld [hJoyHeld], a - ld [hJoyPressed], a - ld [hJoyReleased], a + ldh [hJoyHeld], a + ldh [hJoyPressed], a + ldh [hJoyReleased], a ld [wPlayerJumpingYScreenCoordsIndex], a ld hl, wd736 res 6, [hl] ; not jumping down a ledge any more diff --git a/engine/overworld/player_state.asm b/engine/overworld/player_state.asm index 8cbacc61c..c966c1284 100644 --- a/engine/overworld/player_state.asm +++ b/engine/overworld/player_state.asm @@ -1,5 +1,5 @@ ; only used for setting bit 2 of wd736 upon entering a new map -IsPlayerStandingOnWarp: +IsPlayerStandingOnWarp:: ld a, [wNumberOfWarps] and a ret z @@ -17,7 +17,7 @@ IsPlayerStandingOnWarp: ld a, [hli] ; target warp ld [wDestinationWarpID], a ld a, [hl] ; target map - ld [hWarpDestinationMap], a + ldh [hWarpDestinationMap], a ld hl, wd736 set 2, [hl] ; standing on warp flag ret @@ -31,7 +31,7 @@ IsPlayerStandingOnWarp: jr nz, .loop ret -CheckForceBikeOrSurf: +CheckForceBikeOrSurf:: ld hl, wd732 bit 5, [hl] ret nz @@ -84,13 +84,13 @@ CheckForceBikeOrSurf: call ForceBikeOrSurf ret -INCLUDE "data/force_bike_surf.asm" +INCLUDE "data/maps/force_bike_surf.asm" -IsPlayerFacingEdgeOfMap: +IsPlayerFacingEdgeOfMap:: push hl push de push bc - ld a, [wSpriteStateData1 + 9] ; player sprite's facing direction + ld a, [wSpritePlayerStateData1FacingDirection] srl a ld c, a ld b, $0 @@ -152,19 +152,19 @@ IsPlayerFacingEdgeOfMap: scf ret -IsWarpTileInFrontOfPlayer: +IsWarpTileInFrontOfPlayer:: push hl push de push bc call _GetTileAndCoordsInFrontOfPlayer ld a, [wCurMap] cp SS_ANNE_BOW - jr z, .ssAnne5 - ld a, [wSpriteStateData1 + 9] ; player sprite's facing direction + jr z, IsSSAnneBowWarpTileInFrontOfPlayer + ld a, [wSpritePlayerStateData1FacingDirection] srl a ld c, a ld b, 0 - ld hl, .warpTileListPointers + ld hl, WarpTileListPointers add hl, bc ld a, [hli] ld h, [hl] @@ -178,39 +178,23 @@ IsWarpTileInFrontOfPlayer: pop hl ret -.warpTileListPointers: - dw .facingDownWarpTiles - dw .facingUpWarpTiles - dw .facingLeftWarpTiles - dw .facingRightWarpTiles +INCLUDE "data/tilesets/warp_carpet_tile_ids.asm" -.facingDownWarpTiles - db $01,$12,$17,$3D,$04,$18,$33,$FF - -.facingUpWarpTiles - db $01,$5C,$FF - -.facingLeftWarpTiles - db $1A,$4B,$FF - -.facingRightWarpTiles - db $0F,$4E,$FF - -.ssAnne5 +IsSSAnneBowWarpTileInFrontOfPlayer: ld a, [wTileInFrontOfPlayer] cp $15 jr nz, .notSSAnne5Warp scf - jr .done + jr IsWarpTileInFrontOfPlayer.done .notSSAnne5Warp and a - jr .done + jr IsWarpTileInFrontOfPlayer.done -IsPlayerStandingOnDoorTileOrWarpTile: +IsPlayerStandingOnDoorTileOrWarpTile:: push hl push de push bc - callba IsPlayerStandingOnDoorTile + farcall IsPlayerStandingOnDoorTile jr c, .done ld a, [wCurMapTileset] add a @@ -222,7 +206,7 @@ IsPlayerStandingOnDoorTileOrWarpTile: ld h, [hl] ld l, a ld de, $1 - aCoord 8, 9 + lda_coord 8, 9 call IsInArray jr nc, .done ld hl, wd736 @@ -233,35 +217,35 @@ IsPlayerStandingOnDoorTileOrWarpTile: pop hl ret -INCLUDE "data/warp_tile_ids.asm" +INCLUDE "data/tilesets/warp_tile_ids.asm" -PrintSafariZoneSteps: +PrintSafariZoneSteps:: ld a, [wCurMap] cp SAFARI_ZONE_EAST ret c cp CERULEAN_CAVE_2F ret nc - coord hl, 0, 0 + hlcoord 0, 0 lb bc, 3, 7 call TextBoxBorder - coord hl, 1, 1 + hlcoord 1, 1 ld de, wSafariSteps lb bc, 2, 3 call PrintNumber - coord hl, 4, 1 + hlcoord 4, 1 ld de, SafariSteps call PlaceString - coord hl, 1, 3 + hlcoord 1, 3 ld de, SafariBallText call PlaceString ld a, [wNumSafariBalls] cp 10 jr nc, .numSafariBallsTwoDigits - coord hl, 5, 3 + hlcoord 5, 3 ld a, " " ld [hl], a .numSafariBallsTwoDigits - coord hl, 6, 3 + hlcoord 6, 3 ld de, wNumSafariBalls lb bc, 1, 2 jp PrintNumber @@ -280,32 +264,32 @@ _GetTileAndCoordsInFrontOfPlayer: ld d, a ld a, [wXCoord] ld e, a - ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction + ld a, [wSpritePlayerStateData1FacingDirection] and a ; cp SPRITE_FACING_DOWN jr nz, .notFacingDown ; facing down - aCoord 8, 11 + lda_coord 8, 11 inc d jr .storeTile .notFacingDown cp SPRITE_FACING_UP jr nz, .notFacingUp ; facing up - aCoord 8, 7 + lda_coord 8, 7 dec d jr .storeTile .notFacingUp cp SPRITE_FACING_LEFT jr nz, .notFacingLeft ; facing left - aCoord 6, 9 + lda_coord 6, 9 dec e jr .storeTile .notFacingLeft cp SPRITE_FACING_RIGHT jr nz, .storeTile ; facing right - aCoord 10, 9 + lda_coord 10, 9 inc e .storeTile ld c, a @@ -314,45 +298,45 @@ _GetTileAndCoordsInFrontOfPlayer: GetTileTwoStepsInFrontOfPlayer: xor a - ld [$ffdb], a + ldh [hPlayerFacing], a ld hl, wYCoord ld a, [hli] ld d, a ld e, [hl] - ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction + ld a, [wSpritePlayerStateData1FacingDirection] and a ; cp SPRITE_FACING_DOWN jr nz, .notFacingDown ; facing down - ld hl, $ffdb + ld hl, hPlayerFacing set 0, [hl] - aCoord 8, 13 + lda_coord 8, 13 inc d jr .storeTile .notFacingDown cp SPRITE_FACING_UP jr nz, .notFacingUp ; facing up - ld hl, $ffdb + ld hl, hPlayerFacing set 1, [hl] - aCoord 8, 5 + lda_coord 8, 5 dec d jr .storeTile .notFacingUp cp SPRITE_FACING_LEFT jr nz, .notFacingLeft ; facing left - ld hl, $ffdb + ld hl, hPlayerFacing set 2, [hl] - aCoord 4, 9 + lda_coord 4, 9 dec e jr .storeTile .notFacingLeft cp SPRITE_FACING_RIGHT jr nz, .storeTile ; facing right - ld hl, $ffdb + ld hl, hPlayerFacing set 3, [hl] - aCoord 12, 9 + lda_coord 12, 9 inc e .storeTile ld c, a @@ -384,36 +368,36 @@ CheckForBoulderCollisionWithSprites: swap a ld d, 0 ld e, a - ld hl, wSpriteStateData2 + $14 + ld hl, wSprite01StateData2MapY add hl, de ld a, [hli] ; map Y position - ld [$ffdc], a + ldh [hPlayerYCoord], a ld a, [hl] ; map X position - ld [$ffdd], a + ldh [hPlayerXCoord], a ld a, [wNumSprites] ld c, a ld de, $f - ld hl, wSpriteStateData2 + $14 - ld a, [$ffdb] + ld hl, wSprite01StateData2MapY + ldh a, [hPlayerFacing] and $3 ; facing up or down? jr z, .pushingHorizontallyLoop .pushingVerticallyLoop inc hl - ld a, [$ffdd] + ldh a, [hPlayerXCoord] cp [hl] jr nz, .nextSprite1 ; if X coordinates don't match dec hl ld a, [hli] ld b, a - ld a, [$ffdb] + ldh a, [hPlayerFacing] rrca jr c, .pushingDown ; pushing up - ld a, [$ffdc] + ldh a, [hPlayerYCoord] dec a jr .compareYCoords .pushingDown - ld a, [$ffdc] + ldh a, [hPlayerYCoord] inc a .compareYCoords cp b @@ -426,19 +410,19 @@ CheckForBoulderCollisionWithSprites: .pushingHorizontallyLoop ld a, [hli] ld b, a - ld a, [$ffdc] + ldh a, [hPlayerYCoord] cp b jr nz, .nextSprite2 ld b, [hl] - ld a, [$ffdb] + ldh a, [hPlayerFacing] bit 2, a jr nz, .pushingLeft ; pushing right - ld a, [$ffdd] + ldh a, [hPlayerXCoord] inc a jr .compareXCoords .pushingLeft - ld a, [$ffdd] + ldh a, [hPlayerXCoord] dec a .compareXCoords cp b diff --git a/engine/overworld/pokecenter.asm b/engine/overworld/pokecenter.asm deleted file mode 100755 index cf0159f96..000000000 --- a/engine/overworld/pokecenter.asm +++ /dev/null @@ -1,149 +0,0 @@ -DisplayPokemonCenterDialogue_: - ld a, [wCurMap] - cp PEWTER_POKECENTER - jr nz, .regularCenter - call CheckPikachuFollowingPlayer - jr z, .regularCenter - ld hl, LooksContentText ; if pikachu is sleeping, don't heal - call PrintText - ret -.regularCenter - call SaveScreenTilesToBuffer1 ; save screen - ld hl, PokemonCenterWelcomeText - call PrintText - ld hl, wd72e - bit 2, [hl] - set 1, [hl] - set 2, [hl] - jr nz, .skipShallWeHealYourPokemon - ld hl, ShallWeHealYourPokemonText - call PrintText -.skipShallWeHealYourPokemon - call YesNoChoicePokeCenter ; yes/no menu - call UpdateSprites - ld a, [wCurrentMenuItem] - and a - jp nz, .declinedHealing ; if the player chose No - call SetLastBlackoutMap - callab IsStarterPikachuInOurParty - jr nc, .notHealingPlayerPikachu - call CheckPikachuFollowingPlayer - jr nz, .notHealingPlayerPikachu - call LoadCurrentMapView - call Delay3 - call UpdateSprites - callab PikachuWalksToNurseJoy ; todo -.notHealingPlayerPikachu - ld hl, NeedYourPokemonText - call PrintText - ld c, 64 - call DelayFrames - call CheckPikachuFollowingPlayer - jr nz, .playerPikachuNotOnScreen - call DisablePikachuOverworldSpriteDrawing - callab IsStarterPikachuInOurParty - call c, Func_6eaa -.playerPikachuNotOnScreen - lb bc, 1, 8 - call Func_6ebb - ld c, 30 - call DelayFrames - callba AnimateHealingMachine ; do the healing machine animation - predef HealParty - xor a - ld [wAudioFadeOutControl], a - ld a, [wAudioSavedROMBank] - ld [wAudioROMBank], a - ld a, [wMapMusicSoundID] - ld [wLastMusicSoundID], a - ld [wNewSoundID], a - call PlaySound - call CheckPikachuFollowingPlayer - jr nz, .doNotReturnPikachu - callab IsStarterPikachuInOurParty - call c, Func_6eaa - ld a, $5 - ld [wPikachuSpawnState], a - call EnablePikachuOverworldSpriteDrawing -.doNotReturnPikachu - lb bc, 1, 0 - call Func_6ebb - ld hl, PokemonFightingFitText - call PrintText - callab IsStarterPikachuInOurParty - jr nc, .notInParty - lb bc, 15, 0 - call Func_6ebb -.notInParty - call LoadCurrentMapView - call Delay3 - call UpdateSprites - callab ReloadWalkingTilePatterns - ld a, $1 - ld [H_SPRITEINDEX], a - ld a, $1 - ld [hSpriteImageIndex], a - call SpriteFunc_34a1 - ld c, 40 - call DelayFrames - call UpdateSprites - call LoadFontTilePatterns - jr .done -.declinedHealing - call LoadScreenTilesFromBuffer1 ; restore screen -.done - ld hl, PokemonCenterFarewellText - call PrintText - call UpdateSprites - ret - -Func_6eaa: - ld a, $1 - ld [H_SPRITEINDEX], a - ld a, $4 - ld [hSpriteImageIndex], a - call SpriteFunc_34a1 - ld c, 64 - call DelayFrames - ret - -Func_6ebb: - ld a, b - ld [H_SPRITEINDEX], a - ld a, c - ld [hSpriteImageIndex], a - push bc - call SetSpriteFacingDirectionAndDelay - pop bc - ld a, b - ld [H_SPRITEINDEX], a - ld a, c - ld [hSpriteImageIndex], a - call SpriteFunc_34a1 - ret - -PokemonCenterWelcomeText: - TX_FAR _PokemonCenterWelcomeText - db "@" - -ShallWeHealYourPokemonText: - TX_DELAY - TX_FAR _ShallWeHealYourPokemonText - db "@" - -NeedYourPokemonText: - TX_FAR _NeedYourPokemonText - db "@" - -PokemonFightingFitText: - TX_FAR _PokemonFightingFitText - db "@" - -PokemonCenterFarewellText: - TX_DELAY - TX_FAR _PokemonCenterFarewellText - db "@" - -LooksContentText: - TX_FAR _LooksContentText - db "@" diff --git a/engine/overworld/push_boulder.asm b/engine/overworld/push_boulder.asm index 8a3853458..09911ca3d 100644 --- a/engine/overworld/push_boulder.asm +++ b/engine/overworld/push_boulder.asm @@ -1,4 +1,4 @@ -TryPushingBoulder: +TryPushingBoulder:: ld a, [wd728] bit 0, a ; using Strength? ret z @@ -8,15 +8,15 @@ Func_f0a7: bit 1, a ; has boulder dust animation from previous push played yet? ret nz xor a - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call IsSpriteInFrontOfPlayer - ld a, [hSpriteIndexOrTextID] + ldh a, [hSpriteIndexOrTextID] ld [wBoulderSpriteIndex], a and a jp z, ResetBoulderPushFlags - ld hl, wSpriteStateData1 + 1 + ld hl, wSpritePlayerStateData1MovementStatus ld d, $0 - ld a, [hSpriteIndexOrTextID] + ldh a, [hSpriteIndexOrTextID] swap a ld e, a add hl, de @@ -29,16 +29,16 @@ Func_f0a7: bit 6, [hl] set 6, [hl] ; indicate that the player has tried pushing ret z ; the player must try pushing twice before the boulder will move - ld a, [hJoyHeld] + ldh a, [hJoyHeld] and D_RIGHT | D_LEFT | D_UP | D_DOWN ret z predef CheckForCollisionWhenPushingBoulder ld a, [wTileInFrontOfBoulderAndBoulderCollisionResult] and a ; was there a collision? jp nz, ResetBoulderPushFlags - ld a, [hJoyHeld] + ldh a, [hJoyHeld] ld b, a - ld a, [wSpritePlayerStateData1FacingDirection] ; player's sprite facing direction + ld a, [wSpritePlayerStateData1FacingDirection] cp SPRITE_FACING_UP jr z, .pushBoulderUp cp SPRITE_FACING_LEFT @@ -73,28 +73,32 @@ Func_f0a7: ret PushBoulderUpMovementData: - db NPC_MOVEMENT_UP,$FF + db NPC_MOVEMENT_UP + db -1 ; end PushBoulderDownMovementData: - db NPC_MOVEMENT_DOWN,$FF + db NPC_MOVEMENT_DOWN + db -1 ; end PushBoulderLeftMovementData: - db NPC_MOVEMENT_LEFT,$FF + db NPC_MOVEMENT_LEFT + db -1 ; end PushBoulderRightMovementData: - db NPC_MOVEMENT_RIGHT,$FF + db NPC_MOVEMENT_RIGHT + db -1 ; end -DoBoulderDustAnimation: +DoBoulderDustAnimation:: ld a, [wd730] bit 0, a ret nz - callab AnimateBoulderDust + callfar AnimateBoulderDust call DiscardButtonPresses ld [wJoyIgnore], a call ResetBoulderPushFlags set 7, [hl] ld a, [wBoulderSpriteIndex] - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call GetSpriteMovementByte2Pointer ld [hl], $10 ld a, SFX_CUT diff --git a/engine/overworld/saffron_guards.asm b/engine/overworld/saffron_guards.asm deleted file mode 100755 index 3b26b6f84..000000000 --- a/engine/overworld/saffron_guards.asm +++ /dev/null @@ -1,16 +0,0 @@ -RemoveGuardDrink: - ld hl, GuardDrinksList -.drinkLoop - ld a, [hli] - ld [$ffdb], a - and a - ret z - push hl - ld b, a - call IsItemInBag - pop hl - jr z, .drinkLoop - jpba RemoveItemByID - -GuardDrinksList: - db FRESH_WATER, SODA_POP, LEMONADE, $00 diff --git a/engine/overworld/set_blackout_map.asm b/engine/overworld/set_blackout_map.asm deleted file mode 100644 index bac2f0caf..000000000 --- a/engine/overworld/set_blackout_map.asm +++ /dev/null @@ -1,29 +0,0 @@ -SetLastBlackoutMap: -; Set the map to return to when -; blacking out or using Teleport or Dig. -; Safari rest houses don't count. - - push hl - ld hl, SafariZoneRestHouses - ld a, [wCurMap] - ld b, a -.loop - ld a, [hli] - cp -1 - jr z, .notresthouse - cp b - jr nz, .loop - jr .done - -.notresthouse - ld a, [wLastMap] - ld [wLastBlackoutMap], a -.done - pop hl - ret - -SafariZoneRestHouses: - db SAFARI_ZONE_WEST_REST_HOUSE - db SAFARI_ZONE_EAST_REST_HOUSE - db SAFARI_ZONE_NORTH_REST_HOUSE - db -1 diff --git a/engine/overworld/special_warps.asm b/engine/overworld/special_warps.asm new file mode 100644 index 000000000..61356a033 --- /dev/null +++ b/engine/overworld/special_warps.asm @@ -0,0 +1,149 @@ +SpecialWarpIn:: + call LoadSpecialWarpData + predef LoadTilesetHeader + ld hl, wd732 + bit 2, [hl] ; dungeon warp or fly warp? + res 2, [hl] + jr z, .next +; if dungeon warp or fly warp + ld a, [wDestinationMap] + jr .next2 +.next + bit 1, [hl] + jr z, .next3 + call DebugStart +.next3 + ld a, 0 +.next2 + ld b, a + ld a, [wd72d] + and a + jr nz, .next4 + ld a, b +.next4 + ld hl, wd732 + bit 4, [hl] ; dungeon warp? + ret nz +; if not dungeon warp + ld [wLastMap], a + ret + +; gets the map ID, tile block map view pointer, tileset, and coordinates +LoadSpecialWarpData: + ld a, [wd72d] + cp TRADE_CENTER + jr nz, .notTradeCenter + ld hl, TradeCenterSpec1 + ldh a, [hSerialConnectionStatus] + cp USING_INTERNAL_CLOCK ; which gameboy is clocking determines who is on the left and who is on the right + jr z, .copyWarpData + ld hl, TradeCenterSpec2 + jr .copyWarpData +.notTradeCenter + cp COLOSSEUM + jr nz, .notColosseum + ld hl, ColosseumSpec1 + ldh a, [hSerialConnectionStatus] + cp USING_INTERNAL_CLOCK + jr z, .copyWarpData + ld hl, ColosseumSpec2 + jr .copyWarpData +.notColosseum + ld a, [wd732] + bit 1, a + jr nz, .notFirstMap + bit 2, a + jr nz, .notFirstMap + ld hl, FirstMapSpec +.copyWarpData + ld de, wCurMap + ld c, $7 +.copyWarpDataLoop + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .copyWarpDataLoop + ld a, [hli] + ld [wCurMapTileset], a + xor a + jr .done +.notFirstMap + ld a, [wLastMap] ; this value is overwritten before it's ever read + ld hl, wd732 + bit 4, [hl] ; used dungeon warp (jumped down hole/waterfall)? + jr nz, .usedDunegonWarp + bit 6, [hl] ; return to last pokemon center (or player's house)? + res 6, [hl] + jr z, .otherDestination +; return to last pokemon center or player's house + ld a, [wLastBlackoutMap] + jr .usedFlyWarp +.usedDunegonWarp + ld hl, wd72d + res 4, [hl] + ld a, [wDungeonWarpDestinationMap] + ld b, a + ld [wCurMap], a + ld a, [wWhichDungeonWarp] + ld c, a + ld hl, DungeonWarpList + ld de, 0 + ld a, 6 + ld [wDungeonWarpDataEntrySize], a +.dungeonWarpListLoop + ld a, [hli] + cp b + jr z, .matchedDungeonWarpDestinationMap + inc hl + jr .nextDungeonWarp +.matchedDungeonWarpDestinationMap + ld a, [hli] + cp c + jr z, .matchedDungeonWarpID +.nextDungeonWarp + ld a, [wDungeonWarpDataEntrySize] + add e + ld e, a + jr .dungeonWarpListLoop +.matchedDungeonWarpID + ld hl, DungeonWarpData + add hl, de + jr .copyWarpData2 +.otherDestination + ld a, [wDestinationMap] +.usedFlyWarp + ld b, a + ld [wCurMap], a + ld hl, FlyWarpDataPtr +.flyWarpDataPtrLoop + ld a, [hli] + inc hl + cp b + jr z, .foundFlyWarpMatch + inc hl + inc hl + jr .flyWarpDataPtrLoop +.foundFlyWarpMatch + ld a, [hli] + ld h, [hl] + ld l, a +.copyWarpData2 + ld de, wCurrentTileBlockMapViewPointer + ld c, $6 +.copyWarpDataLoop2 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .copyWarpDataLoop2 + xor a ; OVERWORLD + ld [wCurMapTileset], a +.done + ld [wYOffsetSinceLastSpecialWarp], a + ld [wXOffsetSinceLastSpecialWarp], a + ld a, $ff ; the player's coordinates have already been updated using a special warp, so don't use any of the normal warps + ld [wDestinationWarpID], a + ret + +INCLUDE "data/maps/special_warps.asm" diff --git a/engine/overworld/spinners.asm b/engine/overworld/spinners.asm new file mode 100644 index 000000000..0ac6380d8 --- /dev/null +++ b/engine/overworld/spinners.asm @@ -0,0 +1,65 @@ +LoadSpinnerArrowTiles:: + ld a, [wSpritePlayerStateData1ImageIndex] + srl a + srl a + ld hl, SpinnerPlayerFacingDirections + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [wSpritePlayerStateData1ImageIndex], a + ld a, [wCurMapTileset] + cp FACILITY + ld hl, FacilitySpinnerArrows + jr z, .asm_44ff6 + ld hl, GymSpinnerArrows +.asm_44ff6 + ld a, [wSimulatedJoypadStatesIndex] + bit 0, a + jr nz, .asm_45001 + ld de, $18 + add hl, de +.asm_45001 + ld a, $4 + ld bc, $0 +.asm_45006 + push af + push hl + push bc + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld h, [hl] + ld l, a + call CopyVideoData + pop bc + ld a, $6 + add c + ld c, a + pop hl + pop af + dec a + jr nz, .asm_45006 + ret + +INCLUDE "data/tilesets/spinner_tiles.asm" + +SpinnerPlayerFacingDirections: +; This isn't the order of the facing directions. Rather, it's a list of +; the facing directions that come next. For example, when the player is +; facing down (00), the next facing direction is left (08). + db $08 ; down -> left + db $0C ; up -> right + db $04 ; left -> up + db $00 ; right -> down + +; these tiles are the animation for the tiles that push the player in dungeons like Rocket HQ +SpinnerArrowAnimTiles: + INCBIN "gfx/overworld/spinners.2bpp" diff --git a/engine/overworld/sprite_collisions.asm b/engine/overworld/sprite_collisions.asm new file mode 100644 index 000000000..db81977bf --- /dev/null +++ b/engine/overworld/sprite_collisions.asm @@ -0,0 +1,392 @@ +_UpdateSprites:: + ld h, wSpriteStateData1 / $100 + inc h + ld a, SPRITESTATEDATA2_IMAGEBASEOFFSET +.spriteLoop + ld l, a + sub SPRITESTATEDATA2_IMAGEBASEOFFSET + ld c, a + ldh [hCurrentSpriteOffset], a + ld a, [hl] + and a + jr z, .skipSprite ; tests SPRITESTATEDATA2_IMAGEBASEOFFSET + push hl + push de + push bc + call .updateCurrentSprite + pop bc + pop de + pop hl +.skipSprite + ld a, l + add $10 ; move to next sprite + cp SPRITESTATEDATA2_IMAGEBASEOFFSET ; test for overflow (back at beginning) + jr nz, .spriteLoop + ret +.updateCurrentSprite + ldh a, [hCurrentSpriteOffset] + and a + jp z, UpdatePlayerSprite + cp $f0 ; pikachu + jp z, SpawnPikachu + ld a, [hl] + +UpdateNonPlayerSprite: + dec a + swap a + ldh [hTilePlayerStandingOn], a ; $10 * sprite# + ld a, [wNPCMovementScriptSpriteOffset] ; some sprite offset? + ld b, a + ldh a, [hCurrentSpriteOffset] + cp b + jr nz, .unequal + jp DoScriptedNPCMovement +.unequal + jp UpdateNPCSprite + +; This detects if the current sprite (whose offset is at hCurrentSpriteOffset) +; is going to collide with another sprite by looping over the other sprites. +; The current sprite's offset will be labelled with i (e.g. i#SPRITESTATEDATA1_PICTUREID). +; The loop sprite's offset will labelled with j (e.g. j#SPRITESTATEDATA1_PICTUREID). +; +; Note that the Y coordinate of the sprite (in [k#SPRITESTATEDATA1_YPIXELS]) +; is one of the following 9 values when the sprite is aligned with the grid: +; $fc, $0c, $1c, $2c, ..., $7c. +; The reason that 4 is added below to the coordinate is to make it align with a +; multiple of $10 to make comparisons easier. +DetectCollisionBetweenSprites: + ; nop + + ld h, HIGH(wSpriteStateData1) + ldh a, [hCurrentSpriteOffset] + ld l, a + + ld a, [hl] ; a = [i#SPRITESTATEDATA1_PICTUREID] (0 if slot is unused) + and a ; is this sprite slot slot used? + ret z ; return if not used + + ld a, l + add 3 + ld l, a + + ld a, [hli] ; a = [i#SPRITESTATEDATA1_YSTEPVECTOR] (-1, 0, or 1) + call SetSpriteCollisionValues + + ld a, [hli] ; a = [i#SPRITESTATEDATA1_YPIXELS] + add 4 ; align with multiple of $10 + +; The effect of the following 3 lines is to +; add 7 to a if moving south or +; subtract 7 from a if moving north. + add b + and $f0 + or c + + ldh [hFF90], a ; store Y coordinate adjusted for direction of movement + + ld a, [hli] ; a = [i#SPRITESTATEDATA1_XSTEPVECTOR] (-1, 0, or 1) + call SetSpriteCollisionValues + ld a, [hl] ; a = [i#SPRITESTATEDATA1_XPIXELS] + +; The effect of the following 3 lines is to +; add 7 to a if moving east or +; subtract 7 from a if moving west. + add b + and $f0 + or c + + ldh [hFF91], a ; store X coordinate adjusted for direction of movement + + ld a, l + add 7 + ld l, a + + xor a + ld [hld], a ; zero [i#SPRITESTATEDATA1_0D] XXX what's this for? + ld [hld], a ; zero [i#SPRITESTATEDATA1_COLLISIONDATA] + + ldh a, [hFF91] + ld [hld], a ; [i#SPRITESTATEDATA1_XADJUSTED] + ldh a, [hFF90] + ld [hl], a ; [i#SPRITESTATEDATA1_YADJUSTED] + + xor a ; zero the loop counter + +.loop + ldh [hFF8F], a ; store loop counter + swap a + ld e, a + ldh a, [hCurrentSpriteOffset] + cp e ; does the loop sprite match the current sprite? + jp z, .next ; go to the next sprite if they match + + ld d, h + ld a, [de] ; a = [j#SPRITESTATEDATA1_PICTUREID] (0 if slot is unused) + and a ; is this sprite slot slot used? + jp z, .next ; go the next sprite if not used + + inc e + inc e + ld a, [de] ; a = [j#SPRITESTATEDATA1_IMAGEINDEX] ($ff means the sprite is offscreen) + inc a + jp z, .next ; go the next sprite if offscreen + + ldh a, [hCurrentSpriteOffset] + add 10 + ld l, a + + inc e + ld a, [de] ; a = [j#SPRITESTATEDATA1_YSTEPVECTOR] + call SetSpriteCollisionValues + + inc e + ld a, [de] ; a = [j#SPRITESTATEDATA1_YPIXELS] + add 4 ; align with multiple of $10 + +; The effect of the following 3 lines is to +; add 7 to a if moving south or +; subtract 7 from a if moving north. + add b + and $f0 + or c + + sub [hl] ; subtract [i#SPRITESTATEDATA1_YADJUSTED] from [j#SPRITESTATEDATA1_YADJUSTED] + +; calculate the absolute value of the difference to get the distance + jr nc, .noCarry1 + cpl + inc a +.noCarry1 + ldh [hFF90], a ; store the distance between the two sprites' adjusted Y values + +; Use the carry flag set by the above subtraction to determine which sprite's +; Y coordinate is larger. This information is used later to set +; [i#SPRITESTATEDATA1_COLLISIONDATA]. +; The following 5 lines set the lowest 2 bits of c, which are later shifted left by 2. +; If sprite i's Y is larger, set lowest 2 bits of c to 10. +; If sprite j's Y is larger or both are equal, set lowest 2 bits of c to 01. + push af + rl c + pop af + ccf + rl c + +; If sprite i's delta Y is 0, then b = 7, else b = 9. + ld b, 7 + ld a, [hl] ; a = [i#SPRITESTATEDATA1_YADJUSTED] + and $f + jr z, .next1 + ld b, 9 + +.next1 + ldh a, [hFF90] ; a = distance between adjusted Y coordinates + sub b + ldh [hFF92], a ; store distance adjusted using sprite i's direction + ld a, b + ldh [hFF90], a ; store 7 or 9 depending on sprite i's delta Y + jr c, .checkXDistance + +; If sprite j's delta Y is 0, then b = 7, else b = 9. + ld b, 7 + dec e + ld a, [de] ; a = [j#SPRITESTATEDATA1_YSTEPVECTOR] + inc e + and a + jr z, .next2 + ld b, 9 + +.next2 + ldh a, [hFF92] ; a = distance adjusted using sprite i's direction + sub b ; adjust distance using sprite j's direction + jr z, .checkXDistance + jr nc, .next ; go to next sprite if distance is still positive after both adjustments + +.checkXDistance + inc e + inc l + ld a, [de] ; a = [j#SPRITESTATEDATA1_XSTEPVECTOR] + + push bc + + call SetSpriteCollisionValues + inc e + ld a, [de] ; a = [j#SPRITESTATEDATA1_XPIXELS] + +; The effect of the following 3 lines is to +; add 7 to a if moving east or +; subtract 7 from a if moving west. + add b + and $f0 + or c + + pop bc + + sub [hl] ; subtract [i#SPRITESTATEDATA1_XADJUSTED] from [j#SPRITESTATEDATA1_XADJUSTED] + +; calculate the absolute value of the difference to get the distance + jr nc, .noCarry2 + cpl + inc a +.noCarry2 + ldh [hFF91], a ; store the distance between the two sprites' adjusted X values + +; Use the carry flag set by the above subtraction to determine which sprite's +; X coordinate is larger. This information is used later to set +; [i#SPRITESTATEDATA1_COLLISIONDATA]. +; The following 5 lines set the lowest 2 bits of c. +; If sprite i's X is larger, set lowest 2 bits of c to 10. +; If sprite j's X is larger or both are equal, set lowest 2 bits of c to 01. + push af + rl c + pop af + ccf + rl c + +; If sprite i's delta X is 0, then b = 7, else b = 9. + ld b, 7 + ld a, [hl] ; a = [i#SPRITESTATEDATA1_XADJUSTED] + and $f + jr z, .next3 + ld b, 9 + +.next3 + ldh a, [hFF91] ; a = distance between adjusted X coordinates + sub b + ldh [hFF92], a ; store distance adjusted using sprite i's direction + ld a, b + ldh [hFF91], a ; store 7 or 9 depending on sprite i's delta X + jr c, .collision + +; If sprite j's delta X is 0, then b = 7, else b = 9. + ld b, 7 + dec e + ld a, [de] ; a = [j#SPRITESTATEDATA1_XSTEPVECTOR] + inc e + and a + jr z, .next4 + ld b, 9 + +.next4 + ldh a, [hFF92] ; a = distance adjusted using sprite i's direction + sub b ; adjust distance using sprite j's direction + jr z, .collision + jr nc, .next ; go to next sprite if distance is still positive after both adjustments + +.collision + ld a, l + and $f0 ; collision with pikachu? + jr nz, .asm_4cd9 + xor a + ld [wd434], a + ldh a, [hFF8F] + cp $f + jr nz, .asm_4cd9 + call Func_4d0a + jr .asm_4cef +.asm_4cd9 + ldh a, [hFF91] ; a = 7 or 9 depending on sprite i's delta X + ld b, a + ldh a, [hFF90] ; a = 7 or 9 depending on sprite i's delta Y + inc l + +; If delta X isn't 0 and delta Y is 0, then b = %0011, else b = %1100. +; (note that normally if delta X isn't 0, then delta Y must be 0 and vice versa) + cp b + jr c, .next5 + ld b, %1100 + jr .next6 +.next5 + ld b, %0011 + +.next6 + ld a, c ; c has 2 bits set (one of bits 0-1 is set for the X axis and one of bits 2-3 for the Y axis) + and b ; we select either the bit in bits 0-1 or bits 2-3 based on the calculation immediately above + or [hl] ; or with existing collision direction bits in [i#SPRITESTATEDATA1_COLLISIONDATA] + ld [hl], a ; store new value + ld a, c ; useless code because a is overwritten before being used again + +; set bit in [i#SPRITESTATEDATA1_0E] or [i#SPRITESTATEDATA1_0F] +; to indicate which sprite the collision occurred with + inc l + inc l +.asm_4cef + ldh a, [hFF8F] ; a = loop counter + ld de, SpriteCollisionBitTable + add a + add e + ld e, a + jr nc, .noCarry3 + inc d +.noCarry3 + ld a, [de] + or [hl] + ld [hli], a + inc de + ld a, [de] + or [hl] + ld [hl], a + +.next + ldh a, [hFF8F] ; a = loop counter + inc a + cp $10 + jp nz, .loop + ret + +; takes delta X or delta Y in a +; b = delta X/Y +; c = 0 if delta X/Y is 0 +; c = 7 if delta X/Y is 1 +; c = 9 if delta X/Y is -1 +Func_4d0a: + ldh a, [hFF91] + ld b, a + ldh a, [hFF90] + inc l + cp b + jr c, .asm_4d17 + ld b, %1100 + jr .asm_4d19 +.asm_4d17 + ld b, %11 +.asm_4d19 + ld a, c + and b + ld [wd434], a + ld a, c + inc l + inc l + ret + +SetSpriteCollisionValues: + and a + ld b, 0 + ld c, 0 + jr z, .done + ld c, 9 + cp -1 + jr z, .ok + ld c, 7 + ld a, 0 +.ok + ld b, a +.done + ret + +SpriteCollisionBitTable: + db %00000000,%00000001 + db %00000000,%00000010 + db %00000000,%00000100 + db %00000000,%00001000 + db %00000000,%00010000 + db %00000000,%00100000 + db %00000000,%01000000 + db %00000000,%10000000 + db %00000001,%00000000 + db %00000010,%00000000 + db %00000100,%00000000 + db %00001000,%00000000 + db %00010000,%00000000 + db %00100000,%00000000 + db %01000000,%00000000 + db %10000000,%00000000 diff --git a/engine/overworld/ssanne.asm b/engine/overworld/ssanne.asm deleted file mode 100755 index cf3b12842..000000000 --- a/engine/overworld/ssanne.asm +++ /dev/null @@ -1,95 +0,0 @@ -AnimateBoulderDust: - ld a, $1 - ld [wWhichAnimationOffsets], a ; select the boulder dust offsets - ld a, [wUpdateSpritesEnabled] - push af - ld a, $ff - ld [wUpdateSpritesEnabled], a - ld a, %11100100 - ld [rOBP1], a - call UpdateGBCPal_OBP1 - call LoadSmokeTileFourTimes - callba WriteCutOrBoulderDustAnimationOAMBlock - ld c, 8 ; number of steps in animation -.loop - push bc - call GetMoveBoulderDustFunctionPointer - ld bc, .returnAddress - push bc - ld c, 4 - jp hl -.returnAddress - ld a, [rOBP1] - xor %01100100 - ld [rOBP1], a - call UpdateGBCPal_OBP1 - call Delay3 - pop bc - dec c - jr nz, .loop - pop af - ld [wUpdateSpritesEnabled], a - jp LoadPlayerSpriteGraphics - -GetMoveBoulderDustFunctionPointer: - ld a, [wSpritePlayerStateData1FacingDirection] ; player's sprite facing direction - ld hl, MoveBoulderDustFunctionPointerTable - ld c, a - ld b, $0 - add hl, bc - ld a, [hli] - ld [wCoordAdjustmentAmount], a - ld a, [hli] - ld e, a - ld a, [hli] - ld h, [hl] - ld l, a - push hl - ld hl, wOAMBuffer + $90 - ld d, $0 - add hl, de - ld e, l - ld d, h - pop hl - ret - -MoveBoulderDustFunctionPointerTable: -; facing down - db $FF,$00 - dw AdjustOAMBlockYPos - -; facing up - db $01,$00 - dw AdjustOAMBlockYPos - -; facing left - db $01,$01 - dw AdjustOAMBlockXPos - -; facing right - db $FF,$01 - dw AdjustOAMBlockXPos - -LoadSmokeTileFourTimes: - ld hl, vChars1 + $7c0 - ld c, $4 -.loop - push bc - push hl - call LoadSmokeTile - pop hl - ld bc, $10 - add hl, bc - pop bc - dec c - jr nz, .loop - ret - -LoadSmokeTile: - ld de, SSAnneSmokePuffTile - lb bc, BANK(SSAnneSmokePuffTile), (SSAnneSmokePuffTileEnd - SSAnneSmokePuffTile) / $10 - jp CopyVideoData - -SSAnneSmokePuffTile: - INCBIN "gfx/ss_anne_smoke_puff.2bpp" -SSAnneSmokePuffTileEnd: diff --git a/engine/overworld/tileset_header.asm b/engine/overworld/tileset_header.asm deleted file mode 100644 index 05061651f..000000000 --- a/engine/overworld/tileset_header.asm +++ /dev/null @@ -1,51 +0,0 @@ -LoadTilesetHeader: - call GetPredefRegisters - push hl - ld d, 0 - ld a, [wCurMapTileset] - add a - add a - ld e, a - ld hl, Tilesets - add hl, de - add hl, de - add hl, de - ld de, wTilesetBank - ld bc, $b - call CopyData - ld a, [hl] - ld [hTilesetType], a - xor a - ld [$ffd8], a - pop hl - ld a, [wCurMapTileset] - push hl - push de - ld hl, DungeonTilesets - ld de, $1 - call IsInArray - pop de - pop hl - jr c, .notDungeonTileset - ld a, [wCurMapTileset] - ld b, a - ld a, [hPreviousTileset] - cp b - jr z, .done -.notDungeonTileset - ld a, [wDestinationWarpID] - cp $ff - jr z, .done - call LoadDestinationWarpPosition - ld a, [wYCoord] - and $1 - ld [wYBlockCoord], a - ld a, [wXCoord] - and $1 - ld [wXBlockCoord], a -.done - ret - -INCLUDE "data/dungeon_tilesets.asm" - -INCLUDE "data/tileset_headers.asm" diff --git a/engine/overworld/tilesets.asm b/engine/overworld/tilesets.asm new file mode 100644 index 000000000..686fa50c4 --- /dev/null +++ b/engine/overworld/tilesets.asm @@ -0,0 +1,51 @@ +LoadTilesetHeader: + call GetPredefRegisters + push hl + ld d, 0 + ld a, [wCurMapTileset] + add a + add a + ld e, a + ld hl, Tilesets + add hl, de + add hl, de + add hl, de + ld de, wTilesetBank + ld bc, $b + call CopyData + ld a, [hl] + ldh [hTilesetType], a + xor a + ldh [hMovingBGTilesCounter1], a + pop hl + ld a, [wCurMapTileset] + push hl + push de + ld hl, DungeonTilesets + ld de, $1 + call IsInArray + pop de + pop hl + jr c, .notDungeonTileset + ld a, [wCurMapTileset] + ld b, a + ldh a, [hPreviousTileset] + cp b + jr z, .done +.notDungeonTileset + ld a, [wDestinationWarpID] + cp $ff + jr z, .done + call LoadDestinationWarpPosition + ld a, [wYCoord] + and $1 + ld [wYBlockCoord], a + ld a, [wXCoord] + and $1 + ld [wXBlockCoord], a +.done + ret + +INCLUDE "data/tilesets/dungeon_tilesets.asm" + +INCLUDE "data/tilesets/tileset_headers.asm" diff --git a/engine/overworld/trainer_sight.asm b/engine/overworld/trainer_sight.asm new file mode 100755 index 000000000..816dea7f6 --- /dev/null +++ b/engine/overworld/trainer_sight.asm @@ -0,0 +1,349 @@ +_GetSpritePosition1:: + ld hl, wSpriteStateData1 + ld de, SPRITESTATEDATA1_YPIXELS + ld a, [wSpriteIndex] + ldh [hSpriteIndex], a + call GetSpriteDataPointer + ld a, [hli] ; x#SPRITESTATEDATA1_YPIXELS + ldh [hSpriteScreenYCoord], a + inc hl + ld a, [hl] ; x#SPRITESTATEDATA1_XPIXELS + ldh [hSpriteScreenXCoord], a + ld de, wSpritePlayerStateData2MapY - wSpritePlayerStateData1XPixels + add hl, de + ld a, [hli] ; x#SPRITESTATEDATA2_MAPY + ldh [hSpriteMapYCoord], a + ld a, [hl] ; x#SPRITESTATEDATA2_MAPX + ldh [hSpriteMapXCoord], a + ret + +_GetSpritePosition2:: + ld hl, wSpriteStateData1 + ld de, SPRITESTATEDATA1_YPIXELS + ld a, [wSpriteIndex] + ldh [hSpriteIndex], a + call GetSpriteDataPointer + ld a, [hli] ; x#SPRITESTATEDATA1_YPIXELS + ld [wSavedSpriteScreenY], a + inc hl + ld a, [hl] ; x#SPRITESTATEDATA1_XPIXELS + ld [wSavedSpriteScreenX], a + ld de, wSpritePlayerStateData2MapY - wSpritePlayerStateData1XPixels + add hl, de + ld a, [hli] ; x#SPRITESTATEDATA2_MAPY + ld [wSavedSpriteMapY], a + ld a, [hl] ; x#SPRITESTATEDATA2_MAPX + ld [wSavedSpriteMapX], a + ret + +_SetSpritePosition1:: + ld hl, wSpriteStateData1 + ld de, SPRITESTATEDATA1_YPIXELS + ld a, [wSpriteIndex] + ldh [hSpriteIndex], a + call GetSpriteDataPointer + ldh a, [hSpriteScreenYCoord] ; x#SPRITESTATEDATA1_YPIXELS + ld [hli], a + inc hl + ldh a, [hSpriteScreenXCoord] ; x#SPRITESTATEDATA1_XPIXELS + ld [hl], a + ld de, wSpritePlayerStateData2MapY - wSpritePlayerStateData1XPixels + add hl, de + ldh a, [hSpriteMapYCoord] ; x#SPRITESTATEDATA2_MAPY + ld [hli], a + ldh a, [hSpriteMapXCoord] ; x#SPRITESTATEDATA2_MAPX + ld [hl], a + ret + +_SetSpritePosition2:: + ld hl, wSpriteStateData1 + ld de, SPRITESTATEDATA1_YPIXELS + ld a, [wSpriteIndex] + ldh [hSpriteIndex], a + call GetSpriteDataPointer + ld a, [wSavedSpriteScreenY] + ld [hli], a ; x#SPRITESTATEDATA1_YPIXELS + inc hl + ld a, [wSavedSpriteScreenX] + ld [hl], a ; x#SPRITESTATEDATA1_XPIXELS + ld de, wSpritePlayerStateData2MapY - wSpritePlayerStateData1XPixels + add hl, de + ld a, [wSavedSpriteMapY] + ld [hli], a ; x#SPRITESTATEDATA2_MAPY + ld a, [wSavedSpriteMapX] + ld [hl], a ; x#SPRITESTATEDATA2_MAPX + ret + +TrainerWalkUpToPlayer:: + ld a, [wSpriteIndex] + swap a + ld [wTrainerSpriteOffset], a + call ReadTrainerScreenPosition + ld a, [wTrainerFacingDirection] + and a ; SPRITE_FACING_DOWN + jr z, .facingDown + cp SPRITE_FACING_UP + jr z, .facingUp + cp SPRITE_FACING_LEFT + jr z, .facingLeft + jr .facingRight +.facingDown + ld a, [wTrainerScreenY] + ld b, a + ld a, $3c ; (fixed) player screen Y pos + call CalcDifference + cp $10 ; trainer is right above player + ret z + swap a + dec a + ld c, a ; bc = steps yet to go to reach player + xor a + ld b, a ; a = direction to go to + jr .writeWalkScript +.facingUp + ld a, [wTrainerScreenY] + ld b, a + ld a, $3c ; (fixed) player screen Y pos + call CalcDifference + cp $10 ; trainer is right below player + ret z + swap a + dec a + ld c, a ; bc = steps yet to go to reach player + ld b, $0 + ld a, $40 ; a = direction to go to + jr .writeWalkScript +.facingRight + ld a, [wTrainerScreenX] + ld b, a + ld a, $40 ; (fixed) player screen X pos + call CalcDifference + cp $10 ; trainer is directly left of player + ret z + swap a + dec a + ld c, a ; bc = steps yet to go to reach player + ld b, $0 + ld a, $c0 ; a = direction to go to + jr .writeWalkScript +.facingLeft + ld a, [wTrainerScreenX] + ld b, a + ld a, $40 ; (fixed) player screen X pos + call CalcDifference + cp $10 ; trainer is directly right of player + ret z + swap a + dec a + ld c, a ; bc = steps yet to go to reach player + ld b, $0 + ld a, $80 ; a = direction to go to +.writeWalkScript + ld hl, wNPCMovementDirections2 + ld de, wNPCMovementDirections2 + call FillMemory ; write the necessary steps to reach player + ld [hl], $ff ; write end of list sentinel + ld a, [wSpriteIndex] + ldh [hSpriteIndex], a + jp MoveSprite_ + +; input: de = offset within sprite entry +; output: hl = pointer to sprite data +GetSpriteDataPointer: + push de + add hl, de + ldh a, [hSpriteIndex] + swap a + ld d, $0 + ld e, a + add hl, de + pop de + ret + +; tests if this trainer is in the right position to engage the player and do so if she is. +TrainerEngage: + push hl + push de + ld a, [wTrainerSpriteOffset] + add SPRITESTATEDATA1_IMAGEINDEX + ld d, $0 + ld e, a + ld hl, wSpriteStateData1 + add hl, de + ld a, [hl] ; x#SPRITESTATEDATA1_IMAGEINDEX + sub $ff + jr nz, .spriteOnScreen ; test if sprite is on screen + jp .noEngage +.spriteOnScreen + ld a, [wTrainerSpriteOffset] + add SPRITESTATEDATA1_FACINGDIRECTION + ld d, $0 + ld e, a + ld hl, wSpriteStateData1 + add hl, de + ld a, [hl] ; x#SPRITESTATEDATA1_FACINGDIRECTION + ld [wTrainerFacingDirection], a + call ReadTrainerScreenPosition + ld a, [wTrainerScreenY] ; sprite screen Y pos + ld b, a + ld a, $3c + cp b + jr z, .linedUpY + ld a, [wTrainerScreenX] ; sprite screen X pos + ld b, a + ld a, $40 + cp b + jr z, .linedUpX + xor a + jp .noEngage +.linedUpY + ld a, [wTrainerScreenX] ; sprite screen X pos + ld b, a + ld a, $40 ; (fixed) player X position + call CalcDifference ; calc distance + jr z, .noEngage ; exact same position as player + call CheckSpriteCanSeePlayer + jr c, .engage + xor a + jr .noEngage +.linedUpX + ld a, [wTrainerScreenY] ; sprite screen Y pos + ld b, a + ld a, $3c ; (fixed) player Y position + call CalcDifference ; calc distance + jr z, .noEngage ; exact same position as player + call CheckSpriteCanSeePlayer + jr c, .engage + xor a + jp .noEngage +.engage + call CheckPlayerIsInFrontOfSprite + ld a, [wTrainerSpriteOffset] + and a + jr z, .noEngage + ld hl, wFlags_0xcd60 + set 0, [hl] + call EngageMapTrainer + ld a, $ff +.noEngage + ld [wTrainerSpriteOffset], a + pop de + pop hl + ret + +; reads trainer's Y position to wTrainerScreenY and X position to wTrainerScreenX +ReadTrainerScreenPosition: + ld a, [wTrainerSpriteOffset] + add SPRITESTATEDATA1_YPIXELS + ld d, $0 + ld e, a + ld hl, wSpriteStateData1 + add hl, de + ld a, [hl] ; x#SPRITESTATEDATA1_YPIXELS + ld [wTrainerScreenY], a + ld a, [wTrainerSpriteOffset] + add SPRITESTATEDATA1_XPIXELS + ld d, $0 + ld e, a + ld hl, wSpriteStateData1 + add hl, de + ld a, [hl] ; x#SPRITESTATEDATA1_XPIXELS + ld [wTrainerScreenX], a + ret + +; checks if the sprite is properly lined up with the player with respect to the direction it's looking. Also checks the distance between player and sprite +; note that this does not necessarily mean the sprite is seeing the player, he could be behind it's back +; a: distance player to sprite +CheckSpriteCanSeePlayer: + ld b, a + ld a, [wTrainerEngageDistance] ; how far the trainer can see + cp b + jr nc, .checkIfLinedUp + jr .notInLine ; player too far away +.checkIfLinedUp + ld a, [wTrainerFacingDirection] ; sprite facing direction + cp SPRITE_FACING_DOWN + jr z, .checkXCoord + cp SPRITE_FACING_UP + jr z, .checkXCoord + cp SPRITE_FACING_LEFT + jr z, .checkYCoord + cp SPRITE_FACING_RIGHT + jr z, .checkYCoord + jr .notInLine +.checkXCoord + ld a, [wTrainerScreenX] ; sprite screen X position + ld b, a + cp $40 + jr z, .inLine + jr .notInLine +.checkYCoord + ld a, [wTrainerScreenY] ; sprite screen Y position + ld b, a + cp $3c + jr nz, .notInLine +.inLine + scf + ret +.notInLine + and a + ret + +; tests if the player is in front of the sprite (rather than behind it) +CheckPlayerIsInFrontOfSprite: + ld a, [wCurMap] + cp POWER_PLANT + jp z, .engage ; bypass this for power plant to get voltorb fake items to work + ld a, [wTrainerSpriteOffset] + add SPRITESTATEDATA1_YPIXELS + ld d, $0 + ld e, a + ld hl, wSpriteStateData1 + add hl, de + ld a, [hl] ; x#SPRITESTATEDATA1_YPIXELS + cp $fc + jr nz, .notOnTopmostTile ; special case if sprite is on topmost tile (Y = $fc (-4)), make it come down a block + ld a, $c +.notOnTopmostTile + ld [wTrainerScreenY], a + ld a, [wTrainerSpriteOffset] + add SPRITESTATEDATA1_XPIXELS + ld d, $0 + ld e, a + ld hl, wSpriteStateData1 + add hl, de + ld a, [hl] ; x#SPRITESTATEDATA1_XPIXELS + ld [wTrainerScreenX], a + ld a, [wTrainerFacingDirection] ; facing direction + cp SPRITE_FACING_DOWN + jr nz, .notFacingDown + ld a, [wTrainerScreenY] ; sprite screen Y pos + cp $3c + jr c, .engage ; sprite above player + jr .noEngage ; sprite below player +.notFacingDown + cp SPRITE_FACING_UP + jr nz, .notFacingUp + ld a, [wTrainerScreenY] ; sprite screen Y pos + cp $3c + jr nc, .engage ; sprite below player + jr .noEngage ; sprite above player +.notFacingUp + cp SPRITE_FACING_LEFT + jr nz, .notFacingLeft + ld a, [wTrainerScreenX] ; sprite screen X pos + cp $40 + jr nc, .engage ; sprite right of player + jr .noEngage ; sprite left of player +.notFacingLeft + ld a, [wTrainerScreenX] ; sprite screen X pos + cp $40 + jr nc, .noEngage ; sprite right of player +.engage + ld a, $ff + jr .done +.noEngage + xor a +.done + ld [wTrainerSpriteOffset], a + ret diff --git a/engine/overworld/trainers.asm b/engine/overworld/trainers.asm deleted file mode 100755 index 655c6b2a5..000000000 --- a/engine/overworld/trainers.asm +++ /dev/null @@ -1,349 +0,0 @@ -_GetSpritePosition1: - ld hl, wSpriteStateData1 - ld de, $4 - ld a, [wSpriteIndex] - ld [H_SPRITEINDEX], a - call GetSpriteDataPointer - ld a, [hli] ; c1x4 (screen Y pos) - ld [$ffeb], a - inc hl - ld a, [hl] ; c1x6 (screen X pos) - ld [$ffec], a - ld de, (wSpriteStateData2 + $4) - (wSpriteStateData1 + $6) - add hl, de - ld a, [hli] ; c2x4 (map Y pos) - ld [$ffed], a - ld a, [hl] ; c2x5 (map X pos) - ld [$ffee], a - ret - -_GetSpritePosition2: - ld hl, wSpriteStateData1 - ld de, $4 - ld a, [wSpriteIndex] - ld [H_SPRITEINDEX], a - call GetSpriteDataPointer - ld a, [hli] ; c1x4 (screen Y pos) - ld [wSavedSpriteScreenY], a - inc hl - ld a, [hl] ; c1x6 (screen X pos) - ld [wSavedSpriteScreenX], a - ld de, (wSpriteStateData2 + $4) - (wSpriteStateData1 + $6) - add hl, de - ld a, [hli] ; c2x4 (map Y pos) - ld [wSavedSpriteMapY], a - ld a, [hl] ; c2x5 (map X pos) - ld [wSavedSpriteMapX], a - ret - -_SetSpritePosition1: - ld hl, wSpriteStateData1 - ld de, $4 - ld a, [wSpriteIndex] - ld [H_SPRITEINDEX], a - call GetSpriteDataPointer - ld a, [$ffeb] ; c1x4 (screen Y pos) - ld [hli], a - inc hl - ld a, [$ffec] ; c1x6 (screen X pos) - ld [hl], a - ld de, (wSpriteStateData2 + $4) - (wSpriteStateData1 + $6) - add hl, de - ld a, [$ffed] ; c2x4 (map Y pos) - ld [hli], a - ld a, [$ffee] ; c2x5 (map X pos) - ld [hl], a - ret - -_SetSpritePosition2: - ld hl, wSpriteStateData1 - ld de, 4 - ld a, [wSpriteIndex] - ld [H_SPRITEINDEX], a - call GetSpriteDataPointer - ld a, [wSavedSpriteScreenY] - ld [hli], a ; c1x4 (screen Y pos) - inc hl - ld a, [wSavedSpriteScreenX] - ld [hl], a ; c1x6 (screen X pos) - ld de, (wSpriteStateData2 + $4) - (wSpriteStateData1 + $6) - add hl, de - ld a, [wSavedSpriteMapY] - ld [hli], a ; c2x4 (map Y pos) - ld a, [wSavedSpriteMapX] - ld [hl], a ; c2x5 (map X pos) - ret - -TrainerWalkUpToPlayer: - ld a, [wSpriteIndex] - swap a - ld [wTrainerSpriteOffset], a - call ReadTrainerScreenPosition - ld a, [wTrainerFacingDirection] - and a ; SPRITE_FACING_DOWN - jr z, .facingDown - cp SPRITE_FACING_UP - jr z, .facingUp - cp SPRITE_FACING_LEFT - jr z, .facingLeft - jr .facingRight -.facingDown - ld a, [wTrainerScreenY] - ld b, a - ld a, $3c ; (fixed) player screen Y pos - call CalcDifference - cp $10 ; trainer is right above player - ret z - swap a - dec a - ld c, a ; bc = steps yet to go to reach player - xor a - ld b, a ; a = direction to go to - jr .writeWalkScript -.facingUp - ld a, [wTrainerScreenY] - ld b, a - ld a, $3c ; (fixed) player screen Y pos - call CalcDifference - cp $10 ; trainer is right below player - ret z - swap a - dec a - ld c, a ; bc = steps yet to go to reach player - ld b, $0 - ld a, $40 ; a = direction to go to - jr .writeWalkScript -.facingRight - ld a, [wTrainerScreenX] - ld b, a - ld a, $40 ; (fixed) player screen X pos - call CalcDifference - cp $10 ; trainer is directly left of player - ret z - swap a - dec a - ld c, a ; bc = steps yet to go to reach player - ld b, $0 - ld a, $c0 ; a = direction to go to - jr .writeWalkScript -.facingLeft - ld a, [wTrainerScreenX] - ld b, a - ld a, $40 ; (fixed) player screen X pos - call CalcDifference - cp $10 ; trainer is directly right of player - ret z - swap a - dec a - ld c, a ; bc = steps yet to go to reach player - ld b, $0 - ld a, $80 ; a = direction to go to -.writeWalkScript - ld hl, wNPCMovementDirections2 - ld de, wNPCMovementDirections2 - call FillMemory ; write the necessary steps to reach player - ld [hl], $ff ; write end of list sentinel - ld a, [wSpriteIndex] - ld [H_SPRITEINDEX], a - jp MoveSprite_ - -; input: de = offset within sprite entry -; output: hl = pointer to sprite data -GetSpriteDataPointer: - push de - add hl, de - ld a, [H_SPRITEINDEX] - swap a - ld d, $0 - ld e, a - add hl, de - pop de - ret - -; tests if this trainer is in the right position to engage the player and do so if she is. -TrainerEngage: - push hl - push de - ld a, [wTrainerSpriteOffset] - add $2 - ld d, $0 - ld e, a - ld hl, wSpriteStateData1 - add hl, de - ld a, [hl] ; c1x2: sprite image index - sub $ff - jr nz, .spriteOnScreen ; test if sprite is on screen - jp .noEngage -.spriteOnScreen - ld a, [wTrainerSpriteOffset] - add $9 - ld d, $0 - ld e, a - ld hl, wSpriteStateData1 - add hl, de - ld a, [hl] ; c1x9: facing direction - ld [wTrainerFacingDirection], a - call ReadTrainerScreenPosition - ld a, [wTrainerScreenY] ; sprite screen Y pos - ld b, a - ld a, $3c - cp b - jr z, .linedUpY - ld a, [wTrainerScreenX] ; sprite screen X pos - ld b, a - ld a, $40 - cp b - jr z, .linedUpX - xor a - jp .noEngage -.linedUpY - ld a, [wTrainerScreenX] ; sprite screen X pos - ld b, a - ld a, $40 ; (fixed) player X position - call CalcDifference ; calc distance - jr z, .noEngage ; exact same position as player - call CheckSpriteCanSeePlayer - jr c, .engage - xor a - jr .noEngage -.linedUpX - ld a, [wTrainerScreenY] ; sprite screen Y pos - ld b, a - ld a, $3c ; (fixed) player Y position - call CalcDifference ; calc distance - jr z, .noEngage ; exact same position as player - call CheckSpriteCanSeePlayer - jr c, .engage - xor a - jp .noEngage -.engage - call CheckPlayerIsInFrontOfSprite - ld a, [wTrainerSpriteOffset] - and a - jr z, .noEngage - ld hl, wFlags_0xcd60 - set 0, [hl] - call EngageMapTrainer - ld a, $ff -.noEngage - ld [wTrainerSpriteOffset], a - pop de - pop hl - ret - -; reads trainer's Y position to wTrainerScreenY and X position to wTrainerScreenX -ReadTrainerScreenPosition: - ld a, [wTrainerSpriteOffset] - add $4 - ld d, $0 - ld e, a - ld hl, wSpriteStateData1 - add hl, de - ld a, [hl] ; c1x4 (sprite Y pos) - ld [wTrainerScreenY], a - ld a, [wTrainerSpriteOffset] - add $6 - ld d, $0 - ld e, a - ld hl, wSpriteStateData1 - add hl, de - ld a, [hl] ; c1x6 (sprite X pos) - ld [wTrainerScreenX], a - ret - -; checks if the sprite is properly lined up with the player with respect to the direction it's looking. Also checks the distance between player and sprite -; note that this does not necessarily mean the sprite is seeing the player, he could be behind it's back -; a: distance player to sprite -CheckSpriteCanSeePlayer: - ld b, a - ld a, [wTrainerEngageDistance] ; how far the trainer can see - cp b - jr nc, .checkIfLinedUp - jr .notInLine ; player too far away -.checkIfLinedUp - ld a, [wTrainerFacingDirection] ; sprite facing direction - cp SPRITE_FACING_DOWN - jr z, .checkXCoord - cp SPRITE_FACING_UP - jr z, .checkXCoord - cp SPRITE_FACING_LEFT - jr z, .checkYCoord - cp SPRITE_FACING_RIGHT - jr z, .checkYCoord - jr .notInLine -.checkXCoord - ld a, [wTrainerScreenX] ; sprite screen X position - ld b, a - cp $40 - jr z, .inLine - jr .notInLine -.checkYCoord - ld a, [wTrainerScreenY] ; sprite screen Y position - ld b, a - cp $3c - jr nz, .notInLine -.inLine - scf - ret -.notInLine - and a - ret - -; tests if the player is in front of the sprite (rather than behind it) -CheckPlayerIsInFrontOfSprite: - ld a, [wCurMap] - cp POWER_PLANT - jp z, .engage ; bypass this for power plant to get voltorb fake items to work - ld a, [wTrainerSpriteOffset] - add $4 - ld d, $0 - ld e, a - ld hl, wSpriteStateData1 - add hl, de - ld a, [hl] ; c1x4 (sprite screen Y pos) - cp $fc - jr nz, .notOnTopmostTile ; special case if sprite is on topmost tile (Y = $fc (-4)), make it come down a block - ld a, $c -.notOnTopmostTile - ld [wTrainerScreenY], a - ld a, [wTrainerSpriteOffset] - add $6 - ld d, $0 - ld e, a - ld hl, wSpriteStateData1 - add hl, de - ld a, [hl] ; c1x6 (sprite screen X pos) - ld [wTrainerScreenX], a - ld a, [wTrainerFacingDirection] ; facing direction - cp SPRITE_FACING_DOWN - jr nz, .notFacingDown - ld a, [wTrainerScreenY] ; sprite screen Y pos - cp $3c - jr c, .engage ; sprite above player - jr .noEngage ; sprite below player -.notFacingDown - cp SPRITE_FACING_UP - jr nz, .notFacingUp - ld a, [wTrainerScreenY] ; sprite screen Y pos - cp $3c - jr nc, .engage ; sprite below player - jr .noEngage ; sprite above player -.notFacingUp - cp SPRITE_FACING_LEFT - jr nz, .notFacingLeft - ld a, [wTrainerScreenX] ; sprite screen X pos - cp $40 - jr nc, .engage ; sprite right of player - jr .noEngage ; sprite left of player -.notFacingLeft - ld a, [wTrainerScreenX] ; sprite screen X pos - cp $40 - jr nc, .noEngage ; sprite right of player -.engage - ld a, $ff - jr .done -.noEngage - xor a -.done - ld [wTrainerSpriteOffset], a - ret diff --git a/engine/overworld/update_map.asm b/engine/overworld/update_map.asm index 8577b9e70..53a5592df 100644 --- a/engine/overworld/update_map.asm +++ b/engine/overworld/update_map.asm @@ -50,20 +50,20 @@ RedrawMapView: ld a, [wIsInBattle] inc a ret z - ld a, [H_AUTOBGTRANSFERENABLED] + ldh a, [hAutoBGTransferEnabled] push af - ld a, [hTilesetType] + ldh a, [hTilesetType] push af xor a - ld [H_AUTOBGTRANSFERENABLED], a - ld [hTilesetType], a ; no flower/water BG tile animations + ldh [hAutoBGTransferEnabled], a + ldh [hTilesetType], a ; no flower/water BG tile animations call LoadCurrentMapView call RunDefaultPaletteCommand ld hl, wMapViewVRAMPointer ld a, [hli] ld h, [hl] ld l, a - ld de, -2 * 32 + ld de, -2 * BG_MAP_WIDTH add hl, de ld a, h and $3 @@ -73,23 +73,23 @@ RedrawMapView: ld a, h ld [wBuffer + 1], a ; this copy of the address is not used ld a, 2 - ld [$ffbe], a - ld c, 9 ; number of rows of 2x2 tiles (this covers the whole screen) + ldh [hRedrawMapViewRowOffset], a + ld c, SCREEN_HEIGHT / 2 ; number of rows of 2x2 tiles (this covers the whole screen) .redrawRowLoop push bc push hl push hl ld hl, wTileMap - 2 * SCREEN_WIDTH ld de, SCREEN_WIDTH - ld a, [$ffbe] + ldh a, [hRedrawMapViewRowOffset] .calcWRAMAddrLoop add hl, de dec a jr nz, .calcWRAMAddrLoop call CopyToRedrawRowOrColumnSrcTiles pop hl - ld de, $20 - ld a, [$ffbe] + ld de, BG_MAP_WIDTH + ldh a, [hRedrawMapViewRowOffset] ld c, a .calcVRAMAddrLoop add hl, de @@ -98,13 +98,13 @@ RedrawMapView: or $98 dec c jr nz, .calcVRAMAddrLoop - ld [hRedrawRowOrColumnDest + 1], a + ldh [hRedrawRowOrColumnDest + 1], a ld a, l - ld [hRedrawRowOrColumnDest], a + ldh [hRedrawRowOrColumnDest], a ld a, REDRAW_ROW - ld [hRedrawRowOrColumnMode], a + ldh [hRedrawRowOrColumnMode], a call DelayFrame - ld hl, $ffbe + ld hl, hRedrawMapViewRowOffset inc [hl] inc [hl] pop hl @@ -112,9 +112,9 @@ RedrawMapView: dec c jr nz, .redrawRowLoop pop af - ld [hTilesetType], a + ldh [hTilesetType], a pop af - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ret CompareHLWithBC: diff --git a/engine/overworld/wild_mons.asm b/engine/overworld/wild_mons.asm index dae57f232..2593e0ec7 100644 --- a/engine/overworld/wild_mons.asm +++ b/engine/overworld/wild_mons.asm @@ -1,4 +1,4 @@ -LoadWildData: +LoadWildData:: ld hl, WildDataPointers ld a, [wCurMap] @@ -16,10 +16,10 @@ LoadWildData: jr z, .NoGrassData ; if no grass data, skip to surfing data push hl ld de, wGrassMons ; otherwise, load grass data - ld bc, $0014 + ld bc, $14 call CopyData pop hl - ld bc, $0014 + ld bc, $14 add hl, bc .NoGrassData ld a, [hli] @@ -27,7 +27,7 @@ LoadWildData: and a ret z ; if no water data, we're done ld de, wWaterMons ; otherwise, load surfing data - ld bc, $0014 + ld bc, $14 jp CopyData -INCLUDE "data/wild_mons.asm" +INCLUDE "data/wild/grass_water.asm" diff --git a/engine/palettes.asm b/engine/palettes.asm deleted file mode 100755 index ec9816abf..000000000 --- a/engine/palettes.asm +++ /dev/null @@ -1,1116 +0,0 @@ -_RunPaletteCommand: - call GetPredefRegisters - ld a, b - cp $ff - jr nz, .next - ld a, [wDefaultPaletteCommand] ; use default command if command ID is $ff -.next - cp UPDATE_PARTY_MENU_BLK_PACKET - jp z, UpdatePartyMenuBlkPacket - ld l, a - ld h, 0 - add hl, hl - ld de, SetPalFunctions - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld de, SendSGBPackets - push de - jp hl - -SetPal_Black: - ld hl, PalPacket_Black - ld de, BlkPacket_Battle - ret - -; uses PalPacket_Empty to build a packet based on mon IDs and health color -SetPal_Battle: - ld hl, PalPacket_Empty - ld de, wPalPacket - ld bc, $10 - call CopyData - ;ld a, [wPlayerBattleStatus3] - ld hl, wBattleMonSpecies - ld a, [hl] - and a - jr z, .asm_71ef9 - ld hl, wPartyMon1 - ld a, [wPlayerMonNumber] - ld bc, wPartyMon2 - wPartyMon1 - call AddNTimes -.asm_71ef9 - call DeterminePaletteID - ld b, a - ;ld a, [wEnemyBattleStatus3] - ld hl, wEnemyMonSpecies2 - call DeterminePaletteID - ld c, a - ld hl, wPalPacket + 1 - ld a, [wPlayerHPBarColor] - add PAL_GREENBAR - ld [hli], a - inc hl - ld a, [wEnemyHPBarColor] - add PAL_GREENBAR - ld [hli], a - inc hl - ld a, b - ld [hli], a - inc hl - ld a, c - ld [hl], a - ld hl, wPalPacket - ld de, BlkPacket_Battle - ld a, SET_PAL_BATTLE - ld [wDefaultPaletteCommand], a - ret - -SetPal_TownMap: - ld hl, PalPacket_TownMap - ld de, BlkPacket_WholeScreen - ret - -; uses PalPacket_Empty to build a packet based the mon ID -SetPal_StatusScreen: - ld hl, PalPacket_Empty - ld de, wPalPacket - ld bc, $10 - call CopyData - ld a, [wcf91] - cp NUM_POKEMON_INDEXES + 1 - jr c, .pokemon - ld a, $1 ; not pokemon -.pokemon - call DeterminePaletteIDOutOfBattle - push af - ld hl, wPalPacket + 1 - ld a, [wStatusScreenHPBarColor] - add PAL_GREENBAR - ld [hli], a - inc hl - pop af - ld [hl], a - ld hl, wPalPacket - ld de, BlkPacket_StatusScreen - ret - -SetPal_PartyMenu: - ld hl, PalPacket_PartyMenu - ld de, wPartyMenuBlkPacket - ret - -SetPal_Pokedex: - ld hl, PalPacket_Pokedex - ld de, wPalPacket - ld bc, $10 - call CopyData - ld a, [wcf91] - call DeterminePaletteIDOutOfBattle - ld hl, wPalPacket + 3 - ld [hl], a - ld hl, wPalPacket - ld de, BlkPacket_Pokedex - ret - -SetPal_Slots: - ld hl, PalPacket_Slots - ld de, BlkPacket_Slots - ret - -SetPal_Titlescreen: - ld hl, PalPacket_Titlescreen - ld de, BlkPacket_Titlescreen - ret - -; used mostly for menus and the Oak intro -SetPal_Generic: - ld hl, PalPacket_Generic - ld de, BlkPacket_WholeScreen - ret - -SetPal_NidorinoIntro: - ld hl, PalPacket_NidorinoIntro - ld de, BlkPacket_NidorinoIntro - ret - -SetPal_GameFreakIntro: - ld hl, PalPacket_GameFreakIntro - ld de, BlkPacket_GameFreakIntro - ld a, SET_PAL_GENERIC - ld [wDefaultPaletteCommand], a - ret - -; uses PalPacket_Empty to build a packet based on the current map -SetPal_Overworld: - ld hl, PalPacket_Empty - ld de, wPalPacket - ld bc, $10 - call CopyData - ld a, [wCurMapTileset] - cp CEMETERY - jr z, .PokemonTowerOrAgatha - cp CAVERN - jr z, .caveOrBruno - ld a, [wCurMap] - cp REDS_HOUSE_1F - jr c, .townOrRoute - cp CERULEAN_CAVE_2F - jr c, .normalDungeonOrBuilding - cp NAME_RATERS_HOUSE - jr c, .caveOrBruno - cp LORELEIS_ROOM - jr z, .Lorelei - cp BRUNOS_ROOM - jr z, .caveOrBruno - cp TRADE_CENTER - jr z, .trade_center_colosseum - cp COLOSSEUM - jr z, .trade_center_colosseum -.normalDungeonOrBuilding - ld a, [wLastMap] ; town or route that current dungeon or building is located -.townOrRoute - cp SAFFRON_CITY + 1 - jr c, .town - ld a, PAL_ROUTE - 1 -.town - inc a ; a town's palette ID is its map ID + 1 - ld hl, wPalPacket + 1 - ld [hld], a - ld de, BlkPacket_WholeScreen - ld a, SET_PAL_OVERWORLD - ld [wDefaultPaletteCommand], a - ret -.PokemonTowerOrAgatha - ld a, PAL_GREYMON - 1 - jr .town -.caveOrBruno - ld a, PAL_CAVE - 1 - jr .town -.Lorelei - xor a - jr .town -.trade_center_colosseum - ld a, PAL_GREYMON - 1 - jr .town - -; used when a Pokemon is the only thing on the screen -; such as evolution, trading and the Hall of Fame -SetPal_PokemonWholeScreen: - push bc - ld hl, PalPacket_Empty - ld de, wPalPacket - ld bc, $10 - call CopyData - pop bc - ld a, c - and a - ld a, PAL_BLACK - jr nz, .next - ld a, [wWholeScreenPaletteMonSpecies] - call DeterminePaletteIDOutOfBattle -.next - ld [wPalPacket + 1], a - ld hl, wPalPacket - ld de, BlkPacket_WholeScreen - ret - -SetPal_TrainerCard: - ld hl, BlkPacket_TrainerCard - ld de, wTrainerCardBlkPacket - ld bc, $40 - call CopyData - ld de, BadgeBlkDataLengths - ld hl, wTrainerCardBlkPacket + 2 - ld a, [wObtainedBadges] - ld c, 8 -.badgeLoop - srl a - push af - jr c, .haveBadge -; The player doens't have the badge, so zero the badge's blk data. - push bc - ld a, [de] - ld c, a - xor a -.zeroBadgeDataLoop - ld [hli], a - dec c - jr nz, .zeroBadgeDataLoop - pop bc - jr .nextBadge -.haveBadge -; The player does have the badge, so skip past the badge's blk data. - ld a, [de] -.skipBadgeDataLoop - inc hl - dec a - jr nz, .skipBadgeDataLoop -.nextBadge - pop af - inc de - dec c - jr nz, .badgeLoop - ld hl, PalPacket_TrainerCard - ld de, wTrainerCardBlkPacket - ret - -SendUnknownPalPacket_7205d:: - ld hl, UnknownPalPacket_72811 - ld de, BlkPacket_WholeScreen - ret - -SendUnknownPalPacket_72064:: - ld hl, UnknownPalPacket_72821 - ld de, UnknownPacket_72751 - ret - -SetPalFunctions: - dw SetPal_Black - dw SetPal_Battle - dw SetPal_TownMap - dw SetPal_StatusScreen - dw SetPal_Pokedex - dw SetPal_Slots - dw SetPal_Titlescreen - dw SetPal_NidorinoIntro - dw SetPal_Generic - dw SetPal_Overworld - dw SetPal_PartyMenu - dw SetPal_PokemonWholeScreen - dw SetPal_GameFreakIntro - dw SetPal_TrainerCard - dw SendUnknownPalPacket_7205d - dw SendUnknownPalPacket_72064 - -; The length of the blk data of each badge on the Trainer Card. -; The Rainbow Badge has 3 entries because of its many colors. -BadgeBlkDataLengths: - db 6 ; Boulder Badge - db 6 ; Cascade Badge - db 6 ; Thunder Badge - db 6 * 3 ; Rainbow Badge - db 6 ; Soul Badge - db 6 ; Marsh Badge - db 6 ; Volcano Badge - db 6 ; Earth Badge - -DeterminePaletteID: - ld a, [hl] -DeterminePaletteIDOutOfBattle: - ld [wd11e], a - and a ; is the mon index 0? - jr z, .skipDexNumConversion - push bc - predef IndexToPokedex - pop bc - ld a, [wd11e] -.skipDexNumConversion - ld e, a - ld d, 0 - ld hl, MonsterPalettes ; not just for Pokemon, Trainers use it too - add hl, de - ld a, [hl] - ret - -YellowIntroPaletteAction:: - ld a, e - and a - jr nz, .asm_720bd - ld hl, PalPacket_Generic - ld a, [hGBC] - and a - jp z, SendSGBPacket - jp InitGBCPalettes - -.asm_720bd - ld hl, UnknownPalPacket_72811 - ld a, [hGBC] - and a - jp z, SendSGBPacket - call InitGBCPalettes - ld hl, PalPacket_Generic - inc hl - ld a, [hli] - call GetGBCBasePalAddress - ld a, e - ld [wGBCBasePalPointers + 2], a - ld a, d - ld [wGBCBasePalPointers + 2 + 1], a - xor a ; CONVERT_BGP - call DMGPalToGBCPal - ld a, 1 - call TransferCurBGPData - ret - -LoadOverworldPikachuFrontpicPalettes:: - ld hl, PalPacket_Empty - ld de, wPalPacket - ld bc, $10 - call CopyData - call GetPal_Pikachu - ld hl, wPartyMenuBlkPacket - ld [hl], a - ld hl, wPartyMenuBlkPacket + 2 - ld a, $26 - ld [hl], a - ld hl, wPalPacket - ld a, [hGBC] - and a - jr nz, .cgb_1 - call SendSGBPacket - jr .okay_1 - -.cgb_1 - call InitGBCPalettes -.okay_1 - ld hl, BlkPacket_WholeScreen - ld de, wPalPacket - ld bc, $10 - call CopyData - ld hl, wPartyMenuBlkPacket + 2 - ld a, $5 - ld [hli], a - ld a, $7 - ld [hli], a - ld a, $6 - ld [hli], a - ld a, $b - ld [hli], a - ld a, $a - ld [hl], a - ld hl, wPalPacket - ld a, [hGBC] - and a - jr nz, .cgb_2 - call SendSGBPacket - jr .okay_2 - -.cgb_2 - call InitGBCPalettes -.okay_2 - ret - -GetPal_Pikachu:: -; similar to SetPal_Overworld - ld a, [wCurMapTileset] - cp CEMETERY - jr z, .PokemonTowerOrAgatha - cp CAVERN - jr z, .caveOrBruno - ld a, [wCurMap] - cp REDS_HOUSE_1F - jr c, .townOrRoute - cp CERULEAN_CAVE_2F - jr c, .normalDungeonOrBuilding - cp NAME_RATERS_HOUSE - jr c, .caveOrBruno - cp LORELEIS_ROOM - jr z, .Lorelei - cp BRUNOS_ROOM - jr z, .caveOrBruno - cp TRADE_CENTER - jr z, .battleOrTradeCenter - cp COLOSSEUM - jr z, .battleOrTradeCenter -.normalDungeonOrBuilding - ld a, [wLastMap] ; town or route that current dungeon or building is located -.townOrRoute - cp SAFFRON_CITY + 1 - jr c, .town - ld a, PAL_ROUTE - 1 -.town - inc a ; a town's pallete ID is its map ID + 1 - ret - -.PokemonTowerOrAgatha - ld a, PAL_GREYMON - 1 - jr .town - -.caveOrBruno - ld a, PAL_CAVE - 1 - jr .town - -.Lorelei - xor a ; PAL_PALLET - 1 - jr .town - -.battleOrTradeCenter - ld a, PAL_GREYMON - 1 - jr .town - -InitPartyMenuBlkPacket: - ld hl, BlkPacket_PartyMenu - ld de, wPartyMenuBlkPacket - ld bc, $30 - jp CopyData - -UpdatePartyMenuBlkPacket: -; Update the blk packet with the palette of the HP bar that is -; specified in [wWhichPartyMenuHPBar]. - ld hl, wPartyMenuHPBarColors - ld a, [wWhichPartyMenuHPBar] - ld e, a - ld d, 0 - add hl, de - ld e, l - ld d, h - ld a, [de] - and a - ld e, (1 << 2) | 1 ; green - jr z, .next - dec a - ld e, (2 << 2) | 2 ; yellow - jr z, .next - ld e, (3 << 2) | 3 ; red -.next - push de - ld hl, wPartyMenuBlkPacket + 8 + 1 - ld bc, 6 - ld a, [wWhichPartyMenuHPBar] - call AddNTimes - pop de - ld [hl], e - ret - -SendSGBPacket: - ld a, 1 - ld [hDisableJoypadPolling], a ; don't poll joypad while sending packet - call _SendSGBPacket - xor a - ld [hDisableJoypadPolling], a - ret - -_SendSGBPacket: -;check number of packets - ld a, [hl] - and $07 - ret z -; store number of packets in B - ld b, a -.loop2 -; save B for later use - push bc -; send RESET signal (P14=LOW, P15=LOW) - xor a - ld [rJOYP], a -; set P14=HIGH, P15=HIGH - ld a, $30 - ld [rJOYP], a -;load length of packets (16 bytes) - ld b, $10 -.nextByte -;set bit counter (8 bits per byte) - ld e, $08 -; get next byte in the packet - ld a, [hli] - ld d, a -.nextBit0 - bit 0, d -; if 0th bit is not zero set P14=HIGH, P15=LOW (send bit 1) - ld a, $10 - jr nz, .next0 -; else (if 0th bit is zero) set P14=LOW, P15=HIGH (send bit 0) - ld a, $20 -.next0 - ld [rJOYP], a -; must set P14=HIGH, P15=HIGH between each "pulse" - ld a, $30 - ld [rJOYP], a -; rotation will put next bit in 0th position (so we can always use command -; "bit 0, d" to fetch the bit that has to be sent) - rr d -; decrease bit counter so we know when we have sent all 8 bits of current byte - dec e - jr nz, .nextBit0 - dec b - jr nz, .nextByte -; send bit 1 as a "stop bit" (end of parameter data) - ld a, $20 - ld [rJOYP], a -; set P14=HIGH, P15=HIGH - ld a, $30 - ld [rJOYP], a -; wait for about 70000 cycles - call Wait7000 -; restore (previously pushed) number of packets - pop bc - dec b -; return if there are no more packets - ret z -; else send 16 more bytes - jr .loop2 - -LoadSGB: - xor a - ld [wOnSGB], a - call CheckSGB - jr c, .onSGB - ld a, [hGBC] - and a - jr z, .onDMG - ld a, $1 - ld [wOnSGB], a -.onDMG - ret -.onSGB - ld a, $1 - ld [wOnSGB], a - di - call PrepareSuperNintendoVRAMTransfer - ei - ld a, 1 - ld [wCopyingSGBTileData], a - ld de, ChrTrnPacket - ld hl, SGBBorderGraphics - call CopyGfxToSuperNintendoVRAM - xor a - ld [wCopyingSGBTileData], a - ld de, PctTrnPacket - ld hl, BorderPalettes - call CopyGfxToSuperNintendoVRAM - xor a - ld [wCopyingSGBTileData], a - ld de, PalTrnPacket - ld hl, SuperPalettes - call CopyGfxToSuperNintendoVRAM - call ClearVram - ld hl, MaskEnCancelPacket - jp SendSGBPacket - -PrepareSuperNintendoVRAMTransfer: - ld hl, .packetPointers - ld c, 9 -.loop - push bc - ld a, [hli] - push hl - ld h, [hl] - ld l, a - call SendSGBPacket - pop hl - inc hl - pop bc - dec c - jr nz, .loop - ret - -.packetPointers -; Only the first packet is needed. - dw MaskEnFreezePacket - dw DataSnd_728a1 - dw DataSnd_728b1 - dw DataSnd_728c1 - dw DataSnd_728d1 - dw DataSnd_728e1 - dw DataSnd_728f1 - dw DataSnd_72901 - dw DataSnd_72911 - -CheckSGB: -; Returns whether the game is running on an SGB in carry. - ld hl, MltReq2Packet - call SendSGBPacket - call Wait7000 - ld a, [rJOYP] - and $3 - cp $3 - jr nz, .isSGB - ld a, $20 - ld [rJOYP], a - ld a, [rJOYP] - ld a, [rJOYP] - call Wait7000 - call Wait7000 - ld a, $30 - ld [rJOYP], a - call Wait7000 - call Wait7000 - ld a, $10 - ld [rJOYP], a - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - call Wait7000 - call Wait7000 - ld a, $30 - ld [rJOYP], a - ld a, [rJOYP] - ld a, [rJOYP] - ld a, [rJOYP] - call Wait7000 - call Wait7000 - ld a, [rJOYP] - and $3 - cp $3 - jr nz, .isSGB - call SendMltReq1Packet - and a - ret -.isSGB - call SendMltReq1Packet - scf - ret - -SendMltReq1Packet: - ld hl, MltReq1Packet - call SendSGBPacket - jp Wait7000 - -CopyGfxToSuperNintendoVRAM: - di - push de - call DisableLCD - ld a, $e4 - ld [rBGP], a - call _UpdateGBCPal_BGP_CheckDMG - ld de, vChars1 - ld a, [wCopyingSGBTileData] - and a - jr z, .notCopyingTileData - call CopySGBBorderTiles - jr .next -.notCopyingTileData - ld bc, $1000 - call CopyData -.next - ld hl, vBGMap0 - ld de, $c - ld a, $80 - ld c, $d -.loop - ld b, $14 -.innerLoop - ld [hli], a - inc a - dec b - jr nz, .innerLoop - add hl, de - dec c - jr nz, .loop - ld a, $e3 - ld [rLCDC], a - pop hl - call SendSGBPacket - xor a - ld [rBGP], a - call _UpdateGBCPal_BGP_CheckDMG - ei - ret - -Wait7000: -; Each loop takes 9 cycles so this routine actually waits 63000 cycles. - ld de, 7000 -.loop - nop - nop - nop - dec de - ld a, d - or e - jr nz, .loop - ret - -SendSGBPackets: - ld a, [hGBC] - and a - jr z, .notGBC - push de - call InitGBCPalettes - pop hl - call InitGBCPalettes - ld a, [rLCDC] - and rLCDC_ENABLE_MASK - ret z - call Delay3 - ret -.notGBC - push de - call SendSGBPacket - pop hl - jp SendSGBPacket - -InitGBCPalettes: - ld a, [hl] - and $f8 - cp $20 - jp z, TranslatePalPacketToBGMapAttributes - - inc hl - -index = 0 - - REPT NUM_ACTIVE_PALS - IF index > 0 - pop hl - ENDC - - ld a, [hli] - inc hl - - IF index < (NUM_ACTIVE_PALS + -1) - push hl - ENDC - - call GetGBCBasePalAddress - ld a, e - ld [wGBCBasePalPointers + index * 2], a - ld a, d - ld [wGBCBasePalPointers + index * 2 + 1], a - - xor a ; CONVERT_BGP - call DMGPalToGBCPal - ld a, index - call TransferCurBGPData - - ld a, CONVERT_OBP0 - call DMGPalToGBCPal - ld a, index - call TransferCurOBPData - - ld a, CONVERT_OBP1 - call DMGPalToGBCPal - ld a, index + 4 - call TransferCurOBPData - -index = index + 1 - ENDR - - ret - -GetGBCBasePalAddress:: -; Input: a = palette ID -; Output: de = palette address - push hl - ld l, a - xor a - ld h, a - add hl, hl - add hl, hl - add hl, hl - ld de, GBCBasePalettes - add hl, de - ld a, l - ld e, a - ld a, h - ld d, a - pop hl - ret - -DMGPalToGBCPal:: -; Populate wGBCPal with colors from a base palette, selected using one of the -; DMG palette registers. -; Input: -; a = which DMG palette register -; de = address of GBC base palette - and a - jr nz, .notBGP - ld a, [rBGP] - ld [wLastBGP], a - jr .convert -.notBGP - dec a - jr nz, .notOBP0 - ld a, [rOBP0] - ld [wLastOBP0], a - jr .convert -.notOBP0 - ld a, [rOBP1] - ld [wLastOBP1], a -.convert -color_index = 0 - REPT NUM_COLORS - ld b, a - and %11 - call .GetColorAddress - ld a, [hli] - ld [wGBCPal + color_index * 2], a - ld a, [hl] - ld [wGBCPal + color_index * 2 + 1], a - - IF color_index < (NUM_COLORS + -1) - ld a, b - rrca - rrca - ENDC - -color_index = color_index + 1 - ENDR - ret - -.GetColorAddress: - add a - ld l, a - xor a - ld h, a - add hl, de - ret - -TransferCurBGPData:: - push de - add a - add a - add a - or $80 ; auto-increment - ld [rBGPI], a - ld de, rBGPD - ld hl, wGBCPal - ld b, %10 ; mask for non-V-blank/non-H-blank STAT mode - ld a, [rLCDC] - and rLCDC_ENABLE_MASK - jr nz, .lcdEnabled - rept NUM_COLORS - call TransferPalColorLCDDisabled - endr - jr .done -.lcdEnabled - rept NUM_COLORS - call TransferPalColorLCDEnabled - endr -.done - pop de - ret - -BufferBGPPal:: -; Copy wGBCPal to palette a in wBGPPalsBuffer. - push de - add a - add a - add a - ld l, a - xor a - ld h, a - ld de, wBGPPalsBuffer - add hl, de - ld de, wGBCPal - ld c, PAL_SIZE -.loop - ld a, [de] - ld [hli], a - inc de - dec c - jr nz, .loop - pop de - ret - -TransferBGPPals:: -; Transfer the buffered BG palettes. - ld a, [rLCDC] - and rLCDC_ENABLE_MASK - jr z, .lcdDisabled - di -.waitLoop - ld a, [rLY] - cp 144 - jr c, .waitLoop -.lcdDisabled - call .DoTransfer - ei - ret - -.DoTransfer: - xor a - or $80 ; auto-increment - ld [rBGPI], a - ld de, rBGPD - ld hl, wBGPPalsBuffer - ld c, 4 * PAL_SIZE -.loop - ld a, [hli] - ld [de], a - dec c - jr nz, .loop - ret - -TransferCurOBPData: - push de - add a - add a - add a - or $80 ; auto-increment - ld [rOBPI], a - ld de, rOBPD - ld hl, wGBCPal - ld b, %10 ; mask for non-V-blank/non-H-blank STAT mode - ld a, [rLCDC] - and rLCDC_ENABLE_MASK - jr nz, .lcdEnabled - rept NUM_COLORS - call TransferPalColorLCDDisabled - endr - jr .done -.lcdEnabled - rept NUM_COLORS - call TransferPalColorLCDEnabled - endr -.done - pop de - ret - -TransferPalColorLCDEnabled: -; Transfer a palette color while the LCD is enabled. - -; In case we're already in H-blank or V-blank, wait for it to end. This is a -; precaution so that the transfer doesn't extend past the blanking period. - ld a, [rSTAT] - and b - jr z, TransferPalColorLCDEnabled - -; Wait for H-blank or V-blank to begin. -.notInBlankingPeriod - ld a, [rSTAT] - and b - jr nz, .notInBlankingPeriod -; fall through - -TransferPalColorLCDDisabled: -; Transfer a palette color while the LCD is disabled. - ld a, [hli] - ld [de], a - ld a, [hli] - ld [de], a - ret - -_UpdateGBCPal_BGP_CheckDMG:: - ld a, [hGBC] - and a - ret z -; fall through - -_UpdateGBCPal_BGP:: -index = 0 - - REPT NUM_ACTIVE_PALS - ld a, [wGBCBasePalPointers + index * 2] - ld e, a - ld a, [wGBCBasePalPointers + index * 2 + 1] - ld d, a - xor a ; CONVERT_BGP - call DMGPalToGBCPal - ld a, index - call BufferBGPPal - -index = index + 1 - ENDR - - call TransferBGPPals - ret - -_UpdateGBCPal_OBP:: -index = 0 - - REPT NUM_ACTIVE_PALS - ld a, [wGBCBasePalPointers + index * 2] - ld e, a - ld a, [wGBCBasePalPointers + index * 2 + 1] - ld d, a - ld a, c - call DMGPalToGBCPal - ld a, c - dec a - rlca - rlca - - IF index > 0 - IF index == 1 - inc a - ELSE - add index - ENDC - ENDC - - call TransferCurOBPData - -index = index + 1 - ENDR - - ret - -TranslatePalPacketToBGMapAttributes:: -; translate the SGB pal packets into something usable for the GBC - push hl - pop de - ld hl, PalPacketPointers - ld a, [hli] - ld c, a -.loop - ld a, e -.innerLoop - cp [hl] - jr z, .checkHighByte - inc hl - inc hl - dec c - jr nz, .innerLoop - ret -.checkHighByte -; the low byte of pointer matched, so check the high byte - inc hl - ld a, d - cp [hl] - jr z, .foundMatchingPointer - inc hl - dec c - jr nz, .loop - ret -.foundMatchingPointer - callba LoadBGMapAttributes - ret - -PalPacketPointers:: - db (palPacketPointersEnd - palPacketPointers) / 2 -palPacketPointers - dw BlkPacket_WholeScreen - dw BlkPacket_Battle - dw BlkPacket_StatusScreen - dw BlkPacket_Pokedex - dw BlkPacket_Slots - dw BlkPacket_Titlescreen - dw BlkPacket_NidorinoIntro - dw wPartyMenuBlkPacket - dw wTrainerCardBlkPacket - dw BlkPacket_GameFreakIntro - dw wPalPacket - dw UnknownPacket_72751 -palPacketPointersEnd - -CopySGBBorderTiles: -; SGB tile data is stored in a 4BPP planar format. -; Each tile is 32 bytes. The first 16 bytes contain bit planes 1 and 2, while -; the second 16 bytes contain bit planes 3 and 4. -; This function converts 2BPP planar data into this format by mapping -; 2BPP colors 0-3 to 4BPP colors 0-3. 4BPP colors 4-15 are not used. - ld b, 128 -.tileLoop -; Copy bit planes 1 and 2 of the tile data. - ld c, 16 -.copyLoop - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .copyLoop - -; Zero bit planes 3 and 4. - ld c, 16 - xor a -.zeroLoop - ld [de], a - inc de - dec c - jr nz, .zeroLoop - - dec b - jr nz, .tileLoop - ret - -INCLUDE "data/sgb_packets.asm" - -INCLUDE "data/mon_palettes.asm" - -INCLUDE "data/super_palettes.asm" - -INCLUDE "data/sgb_border.asm" diff --git a/engine/pathfinding.asm b/engine/pathfinding.asm deleted file mode 100644 index f3d23b7cd..000000000 --- a/engine/pathfinding.asm +++ /dev/null @@ -1,201 +0,0 @@ -FindPathToPlayer: - xor a - ld hl, hFindPathNumSteps - ld [hli], a ; hFindPathNumSteps - ld [hli], a ; hFindPathFlags - ld [hli], a ; hFindPathYProgress - ld [hl], a ; hFindPathXProgress - ld hl, wNPCMovementDirections2 - ld de, $0 -.loop - ld a, [hFindPathYProgress] - ld b, a - ld a, [hNPCPlayerYDistance] ; Y distance in steps - call CalcDifference - ld d, a - and a - jr nz, .asm_f76a - ld a, [hFindPathFlags] - set 0, a ; current end of path matches the player's Y coordinate - ld [hFindPathFlags], a -.asm_f76a - ld a, [hFindPathXProgress] - ld b, a - ld a, [hNPCPlayerXDistance] ; X distance in steps - call CalcDifference - ld e, a - and a - jr nz, .asm_f77c - ld a, [hFindPathFlags] - set 1, a ; current end of path matches the player's X coordinate - ld [hFindPathFlags], a -.asm_f77c - ld a, [hFindPathFlags] - cp $3 ; has the end of the path reached the player's position? - jr z, .done -; Compare whether the X distance between the player and the current of the path -; is greater or if the Y distance is. Then, try to reduce whichever is greater. - ld a, e - cp d - jr c, .yDistanceGreater -; x distance is greater - ld a, [hNPCPlayerRelativePosFlags] - bit 1, a - jr nz, .playerIsLeftOfNPC - ld d, NPC_MOVEMENT_RIGHT - jr .next1 -.playerIsLeftOfNPC - ld d, NPC_MOVEMENT_LEFT -.next1 - ld a, [hFindPathXProgress] - add 1 - ld [hFindPathXProgress], a - jr .storeDirection -.yDistanceGreater - ld a, [hNPCPlayerRelativePosFlags] - bit 0, a - jr nz, .playerIsAboveNPC - ld d, NPC_MOVEMENT_DOWN - jr .next2 -.playerIsAboveNPC - ld d, NPC_MOVEMENT_UP -.next2 - ld a, [hFindPathYProgress] - add 1 - ld [hFindPathYProgress], a -.storeDirection - ld a, d - ld [hli], a - ld a, [hFindPathNumSteps] - inc a - ld [hFindPathNumSteps], a - jp .loop -.done - ld [hl], $ff - ret - -CalcPositionOfPlayerRelativeToNPC: - xor a - ld [hNPCPlayerRelativePosFlags], a - ld a, [wSpriteStateData1 + 4] ; player's sprite screen Y position in pixels - ld d, a - ld a, [wSpriteStateData1 + 6] ; player's sprite screen X position in pixels - ld e, a - ld hl, wSpriteStateData1 - ld a, [hNPCSpriteOffset] - add l - add $4 - ld l, a - jr nc, .noCarry - inc h -.noCarry - ld a, d - ld b, a - ld a, [hli] ; NPC sprite screen Y position in pixels - call CalcDifference - jr nc, .NPCSouthOfOrAlignedWithPlayer -.NPCNorthOfPlayer - push hl - ld hl, hNPCPlayerRelativePosFlags - bit 0, [hl] - set 0, [hl] - pop hl - jr .divideYDistance -.NPCSouthOfOrAlignedWithPlayer - push hl - ld hl, hNPCPlayerRelativePosFlags - bit 0, [hl] - res 0, [hl] - pop hl -.divideYDistance - push hl - ld hl, hDividend2 - ld [hli], a - ld a, 16 - ld [hli], a - call DivideBytes ; divide Y absolute distance by 16 - ld a, [hl] ; quotient - ld [hNPCPlayerYDistance], a - pop hl - inc hl - ld b, e - ld a, [hl] ; NPC sprite screen X position in pixels - call CalcDifference - jr nc, .NPCEastOfOrAlignedWithPlayer -.NPCWestOfPlayer - push hl - ld hl, hNPCPlayerRelativePosFlags - bit 1, [hl] - set 1, [hl] - pop hl - jr .divideXDistance -.NPCEastOfOrAlignedWithPlayer - push hl - ld hl, hNPCPlayerRelativePosFlags - bit 1, [hl] - res 1, [hl] - pop hl -.divideXDistance - ld [hDividend2], a - ld a, 16 - ld [hDivisor2], a - call DivideBytes ; divide X absolute distance by 16 - ld a, [hQuotient2] - ld [hNPCPlayerXDistance], a - ld a, [hNPCPlayerRelativePosPerspective] - and a - ret z - ld a, [hNPCPlayerRelativePosFlags] - cpl - and $3 - ld [hNPCPlayerRelativePosFlags], a - ret - -ConvertNPCMovementDirectionsToJoypadMasks: - ld a, [hNPCMovementDirections2Index] - ld [wNPCMovementDirections2Index], a - dec a - ld de, wSimulatedJoypadStatesEnd - ld hl, wNPCMovementDirections2 - add l - ld l, a - jr nc, .loop - inc h -.loop - ld a, [hld] - call ConvertNPCMovementDirectionToJoypadMask - ld [de], a - inc de - ld a, [hNPCMovementDirections2Index] - dec a - ld [hNPCMovementDirections2Index], a - jr nz, .loop - ret - -ConvertNPCMovementDirectionToJoypadMask: - push hl - ld b, a - ld hl, NPCMovementDirectionsToJoypadMasksTable -.loop - ld a, [hli] - cp $ff - jr z, .done - cp b - jr z, .loadJoypadMask - inc hl - jr .loop -.loadJoypadMask - ld a, [hl] -.done - pop hl - ret - -NPCMovementDirectionsToJoypadMasksTable: - db NPC_MOVEMENT_UP, D_UP - db NPC_MOVEMENT_DOWN, D_DOWN - db NPC_MOVEMENT_LEFT, D_LEFT - db NPC_MOVEMENT_RIGHT, D_RIGHT - db $ff - -; unreferenced - ret diff --git a/engine/pikachu_emotions.asm b/engine/pikachu_emotions.asm index 1518b28e6..552624930 100755 --- a/engine/pikachu_emotions.asm +++ b/engine/pikachu_emotions.asm @@ -1,19 +1,19 @@ -IsPlayerTalkingToPikachu: +IsPlayerTalkingToPikachu:: ld a, [wd436] and a ret z - ld a, [hSpriteIndexOrTextID] + ldh a, [hSpriteIndexOrTextID] cp $f ret nz call InitializePikachuTextID xor a - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a ld [wd436], a ret -InitializePikachuTextID: - ld a, $d4 ; display - ld [hSpriteIndexOrTextID], a +InitializePikachuTextID:: + ld a, TEXT_PIKACHU_ANIM ; display + ldh [hSpriteIndexOrTextID], a xor a ld [wPlayerMovingDirection], a ld a, $1 @@ -92,7 +92,7 @@ StarterPikachuEmotionCommand_pcm: PlayPikachuSoundClip_: cp $ff ret z - callab PlayPikachuSoundClip + callfar PlayPikachuSoundClip ret StarterPikachuEmotionCommand_emote: @@ -190,7 +190,7 @@ PlaySpecificPikachuEmotion: ld a, e jr load_expression -TalkToPikachu: +TalkToPikachu:: call MapSpecificPikachuExpression jr c, load_expression call GetPikaPicAnimationScriptIndex @@ -267,7 +267,7 @@ MapSpecificPikachuExpression: jr .check_pikachu_status .notPewterPokecenter - callab Func_f24ae + callfar Func_f24ae ld a, e cp $ff jr nz, .play_emotion @@ -277,7 +277,7 @@ MapSpecificPikachuExpression: call IsPlayerPikachuAsleepInParty ldpikaemotion a, PikachuEmotion11 jr c, .play_emotion - callab CheckPikachuFaintedOrStatused ; same bank + callfar CheckPikachuFaintedOrStatused ; same bank ldpikaemotion a, PikachuEmotion28 jr c, .play_emotion ld a, [wCurMap] @@ -327,7 +327,7 @@ IsPlayerPikachuAsleepInParty: jr z, .done cp PIKACHU jr nz, .curMonNotStarterPikachu - callab IsThisPartymonStarterPikachu + callfar IsThisPartymonStarterPikachu jr nc, .curMonNotStarterPikachu ld a, [wWhichPokemon] ld hl, wPartyMon1Status @@ -358,7 +358,7 @@ INCLUDE "data/pikachu_emotions.asm" PikachuWalksToNurseJoy: ld a, $40 - ld [h_0xFFFC], a + ldh [hFFFC], a call LoadPikachuSpriteIntoVRAM call .GetMovementData and a @@ -366,7 +366,7 @@ PikachuWalksToNurseJoy: call ApplyPikachuMovementData .skip xor a - ld [h_0xFFFC], a + ldh [hFFFC], a ret .GetMovementData: diff --git a/engine/pikachu_follow.asm b/engine/pikachu_follow.asm index d9dc91df0..fd2fbc47a 100755 --- a/engine/pikachu_follow.asm +++ b/engine/pikachu_follow.asm @@ -457,7 +457,7 @@ Func_fc76a: call Func_fc82e jr c, .skip push bc - callab InitializeSpriteScreenPosition + callfar InitializeSpriteScreenPosition pop bc .skip ld hl, wSpritePikachuStateData1MovementStatus - wSpritePikachuStateData1 @@ -472,7 +472,7 @@ Func_fc76a: Func_fc793: call RefreshPikachuFollow push bc - callab InitializeSpriteScreenPosition + callfar InitializeSpriteScreenPosition pop bc ld hl, wSpritePikachuStateData1ImageIndex - wSpritePikachuStateData1 add hl, bc @@ -583,7 +583,7 @@ Func_fc842: ld hl, $0 push af call Random - ld a, [hRandomAdd] + ldh a, [hRandomAdd] and %11 ld e, a ld d, $0 @@ -1107,7 +1107,7 @@ IsPikachuRightNextToPlayer: xor a ret -GetPikachuFacingDirectionAndReturnToE: +GetPikachuFacingDirectionAndReturnToE:: call GetPikachuFacingDirection ld e, a ret @@ -1475,7 +1475,7 @@ AreThereAtLeastTwoStepsInPikachuFollowCommandBuffer: WillPikachuSpawnOnTheScreen: ld h, wSpriteStateData2 / $100 - ld a, [H_CURRENTSPRITEOFFSET] ; If we're here, this can only be $f0 + ldh a, [hCurrentSpriteOffset] ; If we're here, this can only be $f0 add wSpritePikachuStateData2MapY - wSpritePikachuStateData2 ld l, a ld b, [hl] @@ -1516,7 +1516,7 @@ WillPikachuSpawnOnTheScreen: jr c, .on_screen .not_on_screen ld h, wSpriteStateData1 / $100 - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] add wSpritePikachuStateData1ImageIndex - wSpritePikachuStateData1 ld l, a ld [hl], $ff @@ -1525,7 +1525,7 @@ WillPikachuSpawnOnTheScreen: .on_screen ld h, wSpriteStateData2 / $100 - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] add wSpritePikachuStateData2GrassPriority - wSpritePikachuStateData2 ld l, a ld a, [wGrassTile] @@ -1541,7 +1541,7 @@ WillPikachuSpawnOnTheScreen: .GetNPCCurrentTile: ld h, wSpriteStateData1 / $100 - ld a, [H_CURRENTSPRITEOFFSET] + ldh a, [hCurrentSpriteOffset] add wSpritePikachuStateData1YPixels - wSpritePikachuStateData1 ld l, a ld a, [hli] diff --git a/engine/pikachu_movement.asm b/engine/pikachu_movement.asm index 938715a46..2d87e9470 100755 --- a/engine/pikachu_movement.asm +++ b/engine/pikachu_movement.asm @@ -914,14 +914,14 @@ LoadPikachuShadowOAMData: jr nz, .loop ret -LoadPikachuShadowIntoVRAM: +LoadPikachuShadowIntoVRAM:: ld hl, vNPCSprites2 + $7f * $10 ld de, LedgeHoppingShadowGFX_3F lb bc, BANK(LedgeHoppingShadowGFX_3F), (LedgeHoppingShadowGFX_3FEnd - LedgeHoppingShadowGFX_3F) / 8 jp CopyVideoDataDoubleAlternate LedgeHoppingShadowGFX_3F: -INCBIN "gfx/ledge_hopping_shadow.1bpp" +INCBIN "gfx/overworld/shadow.1bpp" LedgeHoppingShadowGFX_3FEnd: LoadPikachuBallIconIntoVRAM: @@ -958,7 +958,7 @@ LoadPikachuSpriteIntoVRAM: call CopyVideoDataAlternate ld de, PikachuSprite + $c * $10 ld hl, vNPCSprites2 + $c * $10 - ld a, [h_0xFFFC] + ldh a, [hFFFC] and a jr z, .load ld de, PikachuSprite + $c * $10 @@ -1006,7 +1006,7 @@ Cosine_e: ; cosine? Sine_e: ; sine? ld a, e -asm_fd908 +asm_fd908: and $3f cp $20 jr nc, .asm_fd913 diff --git a/engine/pikachu_pcm.asm b/engine/pikachu_pcm.asm index 1e6f8dc2c..bf1aa57f2 100755 --- a/engine/pikachu_pcm.asm +++ b/engine/pikachu_pcm.asm @@ -23,12 +23,12 @@ PlayPikachuSoundClip:: push bc push hl ld a, $80 - ld [rNR52], a + ldh [rNR52], a ld a, $77 - ld [rNR50], a + ldh [rNR50], a xor a - ld [rNR30], a - ld hl, $ff30 ; wave data + ldh [rNR30], a + ld hl, rWave_0 ; wave data ld de, wRedrawRowOrColumnSrcTiles .saveWaveDataLoop ld a, [hl] @@ -40,18 +40,18 @@ PlayPikachuSoundClip:: cp $40 ; end of wave data jr nz, .saveWaveDataLoop ld a, $80 - ld [rNR30], a - ld a, [rNR51] + ldh [rNR30], a + ldh a, [rNR51] or $44 - ld [rNR51], a + ldh [rNR51], a ld a, $ff - ld [rNR31], a + ldh [rNR31], a ld a, $20 - ld [rNR32], a + ldh [rNR32], a ld a, $ff - ld [rNR33], a + ldh [rNR33], a ld a, $87 - ld [rNR34], a + ldh [rNR34], a pop hl pop bc call PlayPikachuPCM @@ -59,10 +59,10 @@ PlayPikachuSoundClip:: ld [wc0f3], a ld [wc0f4], a ld a, $80 - ld [rNR52], a + ldh [rNR52], a xor a - ld [rNR30], a - ld hl, $ff30 + ldh [rNR30], a + ld hl, rWave_0 ld de, wRedrawRowOrColumnSrcTiles .reloadWaveDataLoop ld a, [de] @@ -72,20 +72,20 @@ PlayPikachuSoundClip:: cp $40 ; end of wave data jr nz, .reloadWaveDataLoop ld a, $80 - ld [rNR30], a - ld a, [rNR51] + ldh [rNR30], a + ldh a, [rNR51] and $bb - ld [rNR51], a + ldh [rNR51], a xor a ld [wChannelSoundIDs + Ch5], a ld [wChannelSoundIDs + Ch6], a ld [wChannelSoundIDs + Ch7], a ld [wChannelSoundIDs + Ch8], a - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] ei ret -PikachuCriesPointerTable: +PikachuCriesPointerTable:: ; format: ; db bank ; dw pointer to cry diff --git a/engine/pikachu_pic_animation.asm b/engine/pikachu_pic_animation.asm index c79d9add7..7829c0482 100755 --- a/engine/pikachu_pic_animation.asm +++ b/engine/pikachu_pic_animation.asm @@ -88,10 +88,10 @@ PikaPicAnimationScriptPointerLookupTable: dpikapic PikaPicAnimScript20 StarterPikachuEmotionCommand_pikapic: - ld a, [H_AUTOBGTRANSFERENABLED] + ldh a, [hAutoBGTransferEnabled] push af xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld a, [de] ld [wPikaPicAnimNumber], a inc de @@ -99,12 +99,12 @@ StarterPikachuEmotionCommand_pikapic: call .RunPikapic pop de pop af - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ret .RunPikapic: call PlacePikapicTextBoxBorder - callab LoadOverworldPikachuFrontpicPalettes + callfar LoadOverworldPikachuFrontpicPalettes call ResetPikaPicAnimBuffer call LoadCurrentPikaPicAnimScriptPointer call ExecutePikaPicAnimScript @@ -135,14 +135,14 @@ ResetPikaPicAnimBuffer: PlacePikapicTextBoxBorder: xor a - ld [H_AUTOBGTRANSFERENABLED], a - coord hl, 6, 5 + ldh [hAutoBGTransferEnabled], a + hlcoord 6, 5 lb bc, 5, 5 call TextBoxBorder call Delay3 call UpdateSprites ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Delay3 ret @@ -202,13 +202,13 @@ endm ExecutePikaPicAnimScript: .loop xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call RunPikaPicAnimSetupScript call DummyFunction_fdad5 call AnimateCurrentPikaPicAnimFrame call DummyFunction_fdad5 ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call PikaPicAnimTimerAndJoypad and a jr z, .loop @@ -220,7 +220,7 @@ PikaPicAnimTimerAndJoypad: and a ret nz call JoypadLowSensitivity - ld a, [hJoyPressed] + ldh a, [hJoyPressed] and A_BUTTON | B_BUTTON ret @@ -460,7 +460,7 @@ LoadCurPikaPicObjectTilemap: ld b, a ld a, [wPikaPicPikaDrawStartY] add b - coord hl, 0, 0 + hlcoord 0, 0 ld bc, SCREEN_WIDTH call AddNTimes ld a, [wCurPikaPicAnimObjectXOffset] ; X offset @@ -611,14 +611,14 @@ PikaPicAnimCommand_loadgfx: push af ld a, $ff ld [wUpdateSpritesEnabled], a - ld a, [H_AUTOBGTRANSFERENABLED] + ldh a, [hAutoBGTransferEnabled] push af xor a - ld [H_AUTOBGTRANSFERENABLED], a - ld a, [hTilesetType] + ldh [hAutoBGTransferEnabled], a + ldh a, [hTilesetType] push af xor a - ld [hTilesetType], a + ldh [hTilesetType], a call GetPikaPicAnimByte ld [wPikaPicAnimCurGraphicID], a ld a, [wPikaPicAnimCurGraphicID] @@ -633,9 +633,9 @@ PikaPicAnimCommand_loadgfx: call DecompressRequestPikaPicAnimGFX .done pop af - ld [hTilesetType], a + ldh [hTilesetType], a pop af - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a pop af ld [wUpdateSpritesEnabled], a ret @@ -783,7 +783,7 @@ PikaPicAnimCommand_cry: cp $ff ret z ld e, a - callab PlayPikachuSoundClip + callfar PlayPikachuSoundClip ret PikaPicAnimCommand_thunderbolt: @@ -843,7 +843,7 @@ PikaPicAnimCommand_thunderbolt: .UpdatePal: ld a, b - ld [rBGP], a + ldh [rBGP], a call UpdateGBCPal_BGP call DelayFrames ret diff --git a/engine/pokedex_rating.asm b/engine/pokedex_rating.asm deleted file mode 100755 index 4dfb6b391..000000000 --- a/engine/pokedex_rating.asm +++ /dev/null @@ -1,154 +0,0 @@ -DisplayDexRating: - ld hl, wPokedexSeen - ld b, wPokedexSeenEnd - wPokedexSeen - call CountSetBits - ld a, [wNumSetBits] - ld [hDexRatingNumMonsSeen], a - ld hl, wPokedexOwned - ld b, wPokedexOwnedEnd - wPokedexOwned - call CountSetBits - ld a, [wNumSetBits] - ld [hDexRatingNumMonsOwned], a - ld hl, DexRatingsTable -.findRating - ld a, [hli] - ld b, a - ld a, [hDexRatingNumMonsOwned] - cp b - jr c, .foundRating - inc hl - inc hl - jr .findRating -.foundRating - ld a, [hli] - ld h, [hl] - ld l, a ; load text pointer into hl - CheckAndResetEventA EVENT_HALL_OF_FAME_DEX_RATING - jr nz, .hallOfFame - push hl - ld hl, DexCompletionText - call PrintText - pop hl - call PrintText - callba PlayPokedexRatingSfx - jp WaitForTextScrollButtonPress -.hallOfFame - ld de, wDexRatingNumMonsSeen - ld a, [hDexRatingNumMonsSeen] - ld [de], a - inc de - ld a, [hDexRatingNumMonsOwned] - ld [de], a - inc de -.copyRatingTextLoop - ld a, [hli] - cp "@" - jr z, .doneCopying - ld [de], a - inc de - jr .copyRatingTextLoop -.doneCopying - ld [de], a - ret - -DexCompletionText: - TX_FAR _DexCompletionText - db "@" - -DexRatingsTable: - db 10 - dw DexRatingText_Own0To9 - db 20 - dw DexRatingText_Own10To19 - db 30 - dw DexRatingText_Own20To29 - db 40 - dw DexRatingText_Own30To39 - db 50 - dw DexRatingText_Own40To49 - db 60 - dw DexRatingText_Own50To59 - db 70 - dw DexRatingText_Own60To69 - db 80 - dw DexRatingText_Own70To79 - db 90 - dw DexRatingText_Own80To89 - db 100 - dw DexRatingText_Own90To99 - db 110 - dw DexRatingText_Own100To109 - db 120 - dw DexRatingText_Own110To119 - db 130 - dw DexRatingText_Own120To129 - db 140 - dw DexRatingText_Own130To139 - db 150 - dw DexRatingText_Own140To149 - db NUM_POKEMON + 1 - dw DexRatingText_Own150To151 - -DexRatingText_Own0To9: - TX_FAR _DexRatingText_Own0To9 - db "@" - -DexRatingText_Own10To19: - TX_FAR _DexRatingText_Own10To19 - db "@" - -DexRatingText_Own20To29: - TX_FAR _DexRatingText_Own20To29 - db "@" - -DexRatingText_Own30To39: - TX_FAR _DexRatingText_Own30To39 - db "@" - -DexRatingText_Own40To49: - TX_FAR _DexRatingText_Own40To49 - db "@" - -DexRatingText_Own50To59: - TX_FAR _DexRatingText_Own50To59 - db "@" - -DexRatingText_Own60To69: - TX_FAR _DexRatingText_Own60To69 - db "@" - -DexRatingText_Own70To79: - TX_FAR _DexRatingText_Own70To79 - db "@" - -DexRatingText_Own80To89: - TX_FAR _DexRatingText_Own80To89 - db "@" - -DexRatingText_Own90To99: - TX_FAR _DexRatingText_Own90To99 - db "@" - -DexRatingText_Own100To109: - TX_FAR _DexRatingText_Own100To109 - db "@" - -DexRatingText_Own110To119: - TX_FAR _DexRatingText_Own110To119 - db "@" - -DexRatingText_Own120To129: - TX_FAR _DexRatingText_Own120To129 - db "@" - -DexRatingText_Own130To139: - TX_FAR _DexRatingText_Own130To139 - db "@" - -DexRatingText_Own140To149: - TX_FAR _DexRatingText_Own140To149 - db "@" - -DexRatingText_Own150To151: - TX_FAR _DexRatingText_Own150To151 - db "@" diff --git a/engine/add_mon.asm b/engine/pokemon/add_mon.asm similarity index 95% rename from engine/add_mon.asm rename to engine/pokemon/add_mon.asm index 40b776d42..d3d08e997 100644 --- a/engine/add_mon.asm +++ b/engine/pokemon/add_mon.asm @@ -1,4 +1,4 @@ -_AddPartyMon: +_AddPartyMon:: ; Adds a new mon to the player's or enemy's party. ; [wMonDataLocation] is used in an unusual way in this function. ; If the lower nybble is 0, the mon is added to the player's party, else the enemy's. @@ -15,7 +15,7 @@ _AddPartyMon: ret nc ; return if the party is already full ld [de], a ld a, [de] - ld [hNewPartyLength], a + ldh [hNewPartyLength], a add e ld e, a jr nc, .noCarry @@ -32,7 +32,7 @@ _AddPartyMon: jr z, .next2 ld hl, wEnemyMonOT .next2 - ld a, [hNewPartyLength] + ldh a, [hNewPartyLength] dec a call SkipFixedLengthTextEntries ld d, h @@ -44,7 +44,7 @@ _AddPartyMon: and a jr nz, .skipNaming ld hl, wPartyMonNicks - ld a, [hNewPartyLength] + ldh a, [hNewPartyLength] dec a call SkipFixedLengthTextEntries ld a, NAME_MON_SCREEN @@ -57,7 +57,7 @@ _AddPartyMon: jr z, .next3 ld hl, wEnemyMons .next3 - ld a, [hNewPartyLength] + ldh a, [hNewPartyLength] dec a ld bc, wPartyMon2 - wPartyMon1 call AddNTimes @@ -75,8 +75,8 @@ _AddPartyMon: push hl ld a, [wMonDataLocation] and $f - ld a, $98 ; set enemy trainer mon IVs to fixed average values - ld b, $88 + ld a, ATKDEFDV_TRAINER ; set enemy trainer mon IVs to fixed average values + ld b, SPDSPCDV_TRAINER jr nz, .next4 ; If the mon is being added to the player's party, update the pokedex. @@ -129,10 +129,10 @@ _AddPartyMon: xor a ld b, a call CalcStat ; calc HP stat (set cur Hp to max HP) - ld a, [H_MULTIPLICAND+1] + ldh a, [hMultiplicand+1] ld [de], a inc de - ld a, [H_MULTIPLICAND+2] + ldh a, [hMultiplicand+2] ld [de], a inc de xor a @@ -207,16 +207,16 @@ _AddPartyMon: push de ld a, [wCurEnemyLVL] ld d, a - callab CalcExperience + callfar CalcExperience pop de inc de - ld a, [hExperience] ; write experience + ldh a, [hExperience] ; write experience ld [de], a inc de - ld a, [hExperience + 1] + ldh a, [hExperience + 1] ld [de], a inc de - ld a, [hExperience + 2] + ldh a, [hExperience + 2] ld [de], a xor a ld b, NUM_STATS * 2 @@ -283,7 +283,7 @@ AddPartyMon_WriteMovePP: ; adds enemy mon [wcf91] (at position [wWhichPokemon] in enemy list) to own party ; used in the cable club trade center -_AddEnemyMonToPlayerParty: +_AddEnemyMonToPlayerParty:: ld hl, wPartyCount ld a, [hl] cp PARTY_LENGTH @@ -344,7 +344,7 @@ _AddEnemyMonToPlayerParty: and a ret ; return success -_MoveMon: +_MoveMon:: ld a, [wMoveMonType] and a ; BOX_TO_PARTY jr z, .checkPartyMonSlots @@ -504,7 +504,7 @@ _MoveMon: add $2 ld [wMonDataLocation], a call LoadMonData - callba CalcLevelFromExperience + farcall CalcLevelFromExperience ld a, d ld [wCurEnemyLVL], a pop hl diff --git a/engine/menu/bills_pc.asm b/engine/pokemon/bills_pc.asm similarity index 83% rename from engine/menu/bills_pc.asm rename to engine/pokemon/bills_pc.asm index 416263103..cc7864f20 100644 --- a/engine/menu/bills_pc.asm +++ b/engine/pokemon/bills_pc.asm @@ -1,6 +1,6 @@ DisplayPCMainMenu:: xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call SaveScreenTilesToBuffer2 ld a, [wNumHoFTeams] and a @@ -10,15 +10,15 @@ DisplayPCMainMenu:: ld a, [wNumHoFTeams] and a jr nz, .leaguePCAvailable - coord hl, 0, 0 + hlcoord 0, 0 lb bc, 8, 14 jr .next .noOaksPC - coord hl, 0, 0 + hlcoord 0, 0 lb bc, 6, 14 jr .next .leaguePCAvailable - coord hl, 0, 0 + hlcoord 0, 0 lb bc, 10, 14 .next call TextBoxBorder @@ -27,15 +27,15 @@ DisplayPCMainMenu:: ld [wMaxMenuItem], a CheckEvent EVENT_MET_BILL jr nz, .metBill - coord hl, 2, 2 + hlcoord 2, 2 ld de, SomeonesPCText jr .next2 .metBill - coord hl, 2, 2 + hlcoord 2, 2 ld de, BillsPCText .next2 call PlaceString - coord hl, 2, 4 + hlcoord 2, 4 ld de, wPlayerName call PlaceString ld l, c @@ -44,7 +44,7 @@ DisplayPCMainMenu:: call PlaceString CheckEvent EVENT_GOT_POKEDEX jr z, .noOaksPC2 - coord hl, 2, 6 + hlcoord 2, 6 ld de, OaksPCText call PlaceString ld a, [wNumHoFTeams] @@ -52,20 +52,20 @@ DisplayPCMainMenu:: jr z, .noLeaguePC ld a, 4 ld [wMaxMenuItem], a - coord hl, 2, 8 + hlcoord 2, 8 ld de, PKMNLeaguePCText call PlaceString - coord hl, 2, 10 + hlcoord 2, 10 ld de, LogOffPCText jr .next3 .noLeaguePC - coord hl, 2, 8 + hlcoord 2, 8 ld de, LogOffPCText jr .next3 .noOaksPC2 ld a, $2 ld [wMaxMenuItem], a - coord hl, 2, 6 + hlcoord 2, 6 ld de, LogOffPCText .next3 call PlaceString @@ -79,14 +79,14 @@ DisplayPCMainMenu:: ld [wCurrentMenuItem], a ld [wLastMenuItem], a ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ret SomeonesPCText: db "SOMEONE's PC@" BillsPCText: db "BILL's PC@" PlayersPCText: db "'s PC@" OaksPCText: db "PROF.OAK's PC@" -PKMNLeaguePCText: db $4a, "LEAGUE@" +PKMNLeaguePCText: db "LEAGUE@" LogOffPCText: db "LOG OFF@" BillsPC_:: @@ -111,19 +111,19 @@ BillsPC_:: BillsPCMenu: ld a, [wParentMenuItem] ld [wCurrentMenuItem], a - ld hl, vChars2 + $780 + ld hl, vChars2 tile $78 ld de, PokeballTileGraphics - lb bc, BANK(PokeballTileGraphics), $01 + lb bc, BANK(PokeballTileGraphics), 1 call CopyVideoData call LoadScreenTilesFromBuffer2DisableBGTransfer - coord hl, 0, 12 + hlcoord 0, 12 lb bc, 4, 18 call TextBoxBorder - coord hl, 0, 0 + hlcoord 0, 0 lb bc, 12, 12 call TextBoxBorder call UpdateSprites - coord hl, 2, 2 + hlcoord 2, 2 ld de, BillsPCMenuText call PlaceString ld hl, wTopMenuItemY @@ -144,7 +144,7 @@ BillsPCMenu: ld [hli], a ; wListScrollOffset ld [hl], a ; wMenuWatchMovingOutOfBounds ld [wPlayerMonNumber], a - coord hl, 9, 14 + hlcoord 9, 14 lb bc, 2, 9 call TextBoxBorder ld a, [wCurrentBoxNum] @@ -153,19 +153,19 @@ BillsPCMenu: jr c, .singleDigitBoxNum ; two digit box num sub 9 - coord hl, 17, 16 + hlcoord 17, 16 ld [hl], "1" add "0" jr .next .singleDigitBoxNum add "1" .next - Coorda 18, 16 - coord hl, 10, 16 + ldcoord_a 18, 16 + hlcoord 10, 16 ld de, BoxNoPCText call PlaceString ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Delay3 call HandleMenuInput bit 1, a @@ -204,7 +204,7 @@ ExitBillsPC: ret BillsPCPrintBox: - callab PrintPCBox + callfar PrintPCBox jp BillsPCMenu BillsPCDeposit: @@ -225,7 +225,7 @@ BillsPCDeposit: ld hl, wPartyCount call DisplayMonListMenu jp c, BillsPCMenu - callab IsThisPartymonStarterPikachu_Party + callfar IsThisPartymonStarterPikachu_Party jr nc, .asm_215ad call CheckPikachuFollowingPlayer jr z, .asm_215ad @@ -235,10 +235,10 @@ BillsPCDeposit: .asm_215ad call DisplayDepositWithdrawMenu jp nc, BillsPCMenu - callab IsThisPartymonStarterPikachu_Party + callfar IsThisPartymonStarterPikachu_Party jr nc, .asm_215c9 ld e, $1b - callab PlayPikachuSoundClip + callfar PlayPikachuSoundClip jr .asm_215cf .asm_215c9 ld a, [wcf91] @@ -272,8 +272,8 @@ BillsPCDeposit: jp BillsPCMenu SleepingPikachuText2: - TX_FAR _SleepingPikachuText2 - db "@" + text_far _SleepingPikachuText2 + text_end BillsPCWithdraw: ld a, [wNumInBox] @@ -298,10 +298,10 @@ BillsPCWithdraw: ld a, [wWhichPokemon] ld hl, wBoxMonNicks call GetPartyMonName - callab IsThisPartymonStarterPikachu_Box + callfar IsThisPartymonStarterPikachu_Box jr nc, .asm_21660 ld e, $22 - callab PlayPikachuSoundClip + callfar PlayPikachuSoundClip jr .asm_21666 .asm_21660 ld a, [wcf91] @@ -329,7 +329,7 @@ BillsPCRelease: ld hl, wNumInBox call DisplayMonListMenu jp c, BillsPCMenu - callab IsThisPartymonStarterPikachu_Box + callfar IsThisPartymonStarterPikachu_Box jr c, .asm_216cb ld hl, OnceReleasedText call PrintText @@ -352,13 +352,13 @@ BillsPCRelease: ld hl, wBoxMonNicks call GetPartyMonName ld e, $27 - callab PlayPikachuSoundClip + callfar PlayPikachuSoundClip ld hl, PikachuUnhappyText call PrintText jp BillsPCMenu BillsPCChangeBox: - callba ChangeBox + farcall ChangeBox jp BillsPCMenu DisplayMonListMenu: @@ -379,9 +379,9 @@ DisplayMonListMenu: ret BillsPCMenuText: - db "WITHDRAW ", $4a - next "DEPOSIT ", $4a - next "RELEASE ", $4a + db "WITHDRAW " + next "DEPOSIT " + next "RELEASE " next "CHANGE BOX" next "PRINT BOX" next "SEE YA!" @@ -418,15 +418,10 @@ KnowsHMMove:: ret HMMoveArray: - db CUT - db FLY - db SURF - db STRENGTH - db FLASH - db -1 +INCLUDE "data/moves/hm_moves.asm" DisplayDepositWithdrawMenu: - coord hl, 9, 10 + hlcoord 9, 10 lb bc, 6, 9 call TextBoxBorder ld a, [wParentMenuItem] @@ -435,9 +430,9 @@ DisplayDepositWithdrawMenu: jr nz, .next ld de, WithdrawPCText .next - coord hl, 11, 12 + hlcoord 11, 12 call PlaceString - coord hl, 11, 14 + hlcoord 11, 14 ld de, StatsCancelPCText call PlaceString ld hl, wTopMenuItemY @@ -498,62 +493,62 @@ StatsCancelPCText: next "CANCEL@" SwitchOnText: - TX_FAR _SwitchOnText - db "@" + text_far _SwitchOnText + text_end WhatText: - TX_FAR _WhatText - db "@" + text_far _WhatText + text_end DepositWhichMonText: - TX_FAR _DepositWhichMonText - db "@" + text_far _DepositWhichMonText + text_end MonWasStoredText: - TX_FAR _MonWasStoredText - db "@" + text_far _MonWasStoredText + text_end CantDepositLastMonText: - TX_FAR _CantDepositLastMonText - db "@" + text_far _CantDepositLastMonText + text_end BoxFullText: - TX_FAR _BoxFullText - db "@" + text_far _BoxFullText + text_end MonIsTakenOutText: - TX_FAR _MonIsTakenOutText - db "@" + text_far _MonIsTakenOutText + text_end NoMonText: - TX_FAR _NoMonText - db "@" + text_far _NoMonText + text_end CantTakeMonText: - TX_FAR _CantTakeMonText - db "@" + text_far _CantTakeMonText + text_end PikachuUnhappyText: - TX_FAR _PikachuUnhappyText - db "@" + text_far _PikachuUnhappyText + text_end ReleaseWhichMonText: - TX_FAR _ReleaseWhichMonText - db "@" + text_far _ReleaseWhichMonText + text_end OnceReleasedText: - TX_FAR _OnceReleasedText - db "@" + text_far _OnceReleasedText + text_end MonWasReleasedText: - TX_FAR _MonWasReleasedText - db "@" + text_far _MonWasReleasedText + text_end CableClubLeftGameboy:: - ld a, [hSerialConnectionStatus] + ldh a, [hSerialConnectionStatus] cp USING_EXTERNAL_CLOCK ret z - ld a, [wSpritePlayerStateData1FacingDirection] ; player's sprite facing direction + ld a, [wSpritePlayerStateData1FacingDirection] cp SPRITE_FACING_RIGHT ret nz ld a, [wCurMap] @@ -567,10 +562,10 @@ CableClubLeftGameboy:: tx_pre_jump JustAMomentText CableClubRightGameboy:: - ld a, [hSerialConnectionStatus] + ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK ret z - ld a, [wSpritePlayerStateData1FacingDirection] ; player's sprite facing direction + ld a, [wSpritePlayerStateData1FacingDirection] cp SPRITE_FACING_LEFT ret nz ld a, [wCurMap] @@ -584,15 +579,15 @@ CableClubRightGameboy:: tx_pre_jump JustAMomentText JustAMomentText:: - TX_FAR _JustAMomentText - db "@" + text_far _JustAMomentText + text_end - ld a, [wSpritePlayerStateData1FacingDirection] ; player's sprite facing direction + ld a, [wSpritePlayerStateData1FacingDirection] cp SPRITE_FACING_UP ret nz call EnableAutoTextBoxDrawing tx_pre_jump OpenBillsPCText OpenBillsPCText:: - TX_BILLS_PC + script_bills_pc diff --git a/engine/pokemon/evos_moves.asm b/engine/pokemon/evos_moves.asm new file mode 100755 index 000000000..4e48fe307 --- /dev/null +++ b/engine/pokemon/evos_moves.asm @@ -0,0 +1,668 @@ +; try to evolve the mon in [wWhichPokemon] +TryEvolvingMon: +EvolveTradeMon: + ld hl, wCanEvolveFlags + xor a + ld [hl], a + ld a, [wWhichPokemon] + ld c, a + ld b, FLAG_SET + call Evolution_FlagAction + +; this is only called after battle +; it is supposed to do level up evolutions, though there is a bug that allows item evolutions to occur +EvolutionAfterBattle: + ldh a, [hTilesetType] + push af + xor a + ld [wEvolutionOccurred], a + dec a + ld [wWhichPokemon], a + push hl + push bc + push de + ld hl, wPartyCount + push hl + +Evolution_PartyMonLoop: ; loop over party mons + ld hl, wWhichPokemon + inc [hl] + pop hl + inc hl + ld a, [hl] + cp $ff ; have we reached the end of the party? + jp z, .done + ld [wEvoOldSpecies], a + push hl + ld a, [wWhichPokemon] + ld c, a + ld hl, wCanEvolveFlags + ld b, FLAG_TEST + call Evolution_FlagAction + ld a, c + and a ; is the mon's bit set? + jp z, Evolution_PartyMonLoop ; if not, go to the next mon + ld a, [wEvoOldSpecies] + dec a + ld b, 0 + ld hl, EvosMovesPointerTable + add a + rl b + ld c, a + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push hl + ld a, [wcf91] + push af + xor a ; PLAYER_PARTY_DATA + ld [wMonDataLocation], a + call LoadMonData + pop af + ld [wcf91], a + pop hl + +.evoEntryLoop ; loop over evolution entries + ld a, [hli] + and a ; have we reached the end of the evolution data? + jr z, Evolution_PartyMonLoop + ld b, a ; evolution type + cp EV_TRADE + jr z, .checkTradeEvo +; not trade evolution + ld a, [wLinkState] + cp LINK_STATE_TRADING + jr z, Evolution_PartyMonLoop ; if trading, go the next mon + ld a, b + cp EV_ITEM + jr z, .checkItemEvo + ld a, [wForceEvolution] + and a + jr nz, Evolution_PartyMonLoop + ld a, b + cp EV_LEVEL + jr z, .checkLevel +.checkTradeEvo + ld a, [wLinkState] + cp LINK_STATE_TRADING + jp nz, .nextEvoEntry1 ; if not trading, go to the next evolution entry + ld a, [hli] ; level requirement + ld b, a + ld a, [wLoadedMonLevel] + cp b ; is the mon's level greater than the evolution requirement? + jp c, Evolution_PartyMonLoop ; if so, go the next mon + jr .doEvolution +.checkItemEvo + ld a, [wIsInBattle] ; are we in battle? + and a + ld a, [hli] + jp nz, .nextEvoEntry1 ; don't evolve if we're in a battle as wcf91 could be holding the last mon sent out + + ld b, a ; evolution item + ld a, [wcf91] ; last item used + cp b ; was the evolution item in this entry used? + jp nz, .nextEvoEntry1 ; if not, go to the next evolution entry +.checkLevel + ld a, [hli] ; level requirement + ld b, a + ld a, [wLoadedMonLevel] + cp b ; is the mon's level greater than the evolution requirement? + jp c, .nextEvoEntry2 ; if so, go the next evolution entry +.doEvolution + ld [wCurEnemyLVL], a + ld a, 1 + ld [wEvolutionOccurred], a + push hl + ld a, [hl] + ld [wEvoNewSpecies], a + ld a, [wWhichPokemon] + ld hl, wPartyMonNicks + call GetPartyMonName + call CopyStringToCF4B + ld hl, IsEvolvingText + call PrintText + ld c, 50 + call DelayFrames + xor a + ldh [hAutoBGTransferEnabled], a + hlcoord 0, 0 + lb bc, 12, 20 + call ClearScreenArea + ld a, $1 + ldh [hAutoBGTransferEnabled], a + ld a, $ff + ld [wUpdateSpritesEnabled], a + call ClearSprites + callfar EvolveMon + jp c, CancelledEvolution + ld hl, EvolvedText + call PrintText + pop hl + ld a, [hl] + ld [wd0b5], a + ld [wLoadedMonSpecies], a + ld [wEvoNewSpecies], a + ld a, MONSTER_NAME + ld [wNameListType], a + ld a, BANK(MonsterNames) ; bank is not used for monster names + ld [wPredefBank], a + call GetName + push hl + ld hl, IntoText + call PrintText_NoCreatingTextBox + ld a, SFX_GET_ITEM_2 + call PlaySoundWaitForCurrent + call WaitForSoundToFinish + ld c, 40 + call DelayFrames + call ClearScreen + call RenameEvolvedMon + ld a, [wd11e] + push af + ld a, [wd0b5] + ld [wd11e], a + predef IndexToPokedex + ld a, [wd11e] + dec a + ld hl, BaseStats + ld bc, MonBaseStatsEnd - MonBaseStats + call AddNTimes + ld de, wMonHeader + call CopyData + ld a, [wd0b5] + ld [wMonHIndex], a + pop af + ld [wd11e], a + ld hl, wLoadedMonHPExp - 1 + ld de, wLoadedMonStats + ld b, $1 + call CalcStats + ld a, [wWhichPokemon] + ld hl, wPartyMon1 + ld bc, wPartyMon2 - wPartyMon1 + call AddNTimes + ld e, l + ld d, h + push hl + push bc + ld bc, wPartyMon1MaxHP - wPartyMon1 + add hl, bc + ld a, [hli] + ld b, a + ld c, [hl] + ld hl, wLoadedMonMaxHP + 1 + ld a, [hld] + sub c + ld c, a + ld a, [hl] + sbc b + ld b, a + ld hl, wLoadedMonHP + 1 + ld a, [hl] + add c + ld [hld], a + ld a, [hl] + adc b + ld [hl], a + dec hl + pop bc + call CopyData + ld a, [wd0b5] + ld [wd11e], a + xor a + ld [wMonDataLocation], a + call LearnMoveFromLevelUp + pop hl + predef SetPartyMonTypes + ld a, [wIsInBattle] + and a + call z, Evolution_ReloadTilesetTilePatterns + predef IndexToPokedex + ld a, [wd11e] + dec a + ld c, a + ld b, FLAG_SET + ld hl, wPokedexOwned + push bc + call Evolution_FlagAction + pop bc + ld hl, wPokedexSeen + call Evolution_FlagAction + pop de + pop hl + ld a, [wLoadedMonSpecies] + ld [hl], a + push hl + ld l, e + ld h, d + jr .nextEvoEntry2 + +.nextEvoEntry1 + inc hl + +.nextEvoEntry2 + inc hl + jp .evoEntryLoop + +.done + pop de + pop bc + pop hl + pop af + ldh [hTilesetType], a + ld a, [wLinkState] + cp LINK_STATE_TRADING + ret z + ld a, [wIsInBattle] + and a + ret nz + ld a, [wEvolutionOccurred] + and a + call nz, PlayDefaultMusic + ret + +RenameEvolvedMon: +; Renames the mon to its new, evolved form's standard name unless it had a +; nickname, in which case the nickname is kept. + ld a, [wd0b5] + push af + ld a, [wMonHIndex] + ld [wd0b5], a + call GetName + pop af + ld [wd0b5], a + ld hl, wcd6d + ld de, wcf4b +.compareNamesLoop + ld a, [de] + inc de + cp [hl] + inc hl + ret nz + cp "@" + jr nz, .compareNamesLoop + ld a, [wWhichPokemon] + ld bc, NAME_LENGTH + ld hl, wPartyMonNicks + call AddNTimes + push hl + call GetName + ld hl, wcd6d + pop de + jp CopyData + +CancelledEvolution: + ld hl, StoppedEvolvingText + call PrintText + call ClearScreen + pop hl + call Evolution_ReloadTilesetTilePatterns + jp Evolution_PartyMonLoop + +EvolvedText: + text_far _EvolvedText + text_end + +IntoText: + text_far _IntoText + text_end + +StoppedEvolvingText: + text_far _StoppedEvolvingText + text_end + +IsEvolvingText: + text_far _IsEvolvingText + text_end + +Evolution_ReloadTilesetTilePatterns: + ld a, [wLinkState] + cp LINK_STATE_TRADING + ret z + jp ReloadTilesetTilePatterns + +LearnMoveFromLevelUp: + ld a, [wd11e] ; species + ld [wcf91], a + call GetMonLearnset +.learnSetLoop ; loop over the learn set until we reach a move that is learnt at the current level or the end of the list + ld a, [hli] + and a ; have we reached the end of the learn set? + jr z, .done ; if we've reached the end of the learn set, jump + ld b, a ; level the move is learnt at + ld a, [wCurEnemyLVL] + cp b ; is the move learnt at the mon's current level? + ld a, [hli] ; move ID + jr nz, .learnSetLoop + ld d, a ; ID of move to learn + ld a, [wMonDataLocation] + and a + jr nz, .next +; If [wMonDataLocation] is 0 (PLAYER_PARTY_DATA), get the address of the mon's +; current moves in party data. Every call to this function sets +; [wMonDataLocation] to 0 because other data locations are not supported. +; If it is not 0, this function will not work properly. + ld hl, wPartyMon1Moves + ld a, [wWhichPokemon] + ld bc, wPartyMon2 - wPartyMon1 + call AddNTimes +.next + ld b, NUM_MOVES +.checkCurrentMovesLoop ; check if the move to learn is already known + ld a, [hli] + cp d + jr z, .done ; if already known, jump + dec b + jr nz, .checkCurrentMovesLoop + ld a, d + ld [wMoveNum], a + ld [wd11e], a + call GetMoveName + call CopyStringToCF4B + predef LearnMove + ld a, b + and a + jr z, .done + callfar IsThisPartymonStarterPikachu_Party + jr nc, .done + ld a, [wMoveNum] + cp THUNDERBOLT + jr z, .foundThunderOrThunderbolt + cp THUNDER + jr nz, .done +.foundThunderOrThunderbolt + ld a, $5 + ld [wd49c], a + ld a, $85 + ld [wPikachuMood], a +.done + ld a, [wcf91] + ld [wd11e], a + ret + +Func_3b079: + ld a, [wcf91] + push af + call Func_3b0a2 + jr c, .asm_3b09c + + call Func_3b10f + jr nc, .asm_3b096 + + call Func_3b0a2 + jr c, .asm_3b09c + + call Func_3b10f + jr nc, .asm_3b096 + + call Func_3b0a2 + jr c, .asm_3b09c +.asm_3b096 + pop af + ld [wcf91], a + and a + ret +.asm_3b09c + pop af + ld [wcf91], a + scf + ret + +Func_3b0a2: +; XXX what is wcf91 entering this function? + ld a, [wd11e] + ld [wMoveNum], a + predef CanLearnTM + ld a, c + and a + jr nz, .asm_3b0ec + ld hl, Pointer_3b0ee + ld a, [wcf91] + ld de, $1 + call IsInArray + jr c, .asm_3b0d2 + ld a, $ff + ld [wMonHGrowthRate], a + ld a, [wd11e] + ld hl, wMonHMoves + ld de, $1 + call IsInArray + jr c, .asm_3b0ec +.asm_3b0d2 + ld a, [wd11e] + ld d, a + call GetMonLearnset +.loop + ld a, [hli] + and a + jr z, .asm_3b0ea + ld b, a + ld a, [wCurEnemyLVL] + cp b + jr c, .asm_3b0ea + ld a, [hli] + cp d + jr z, .asm_3b0ec + jr .loop +.asm_3b0ea + and a + ret +.asm_3b0ec + scf + ret + +Pointer_3b0ee: + db NIDOKING + db IVYSAUR + db EXEGGUTOR + db GENGAR + db NIDOQUEEN + db ARCANINE + db GYARADOS + db BLASTOISE + db GOLEM + db DRAGONITE + db NINETALES + db DRAGONAIR + db KABUTOPS + db OMASTAR + db JIGGLYPUFF + db FLAREON + db JOLTEON + db VAPOREON + db BEEDRILL + db BUTTERFREE + db MACHAMP + db CLOYSTER + db CLEFABLE + db ALAKAZAM + db STARMIE + db VENUSAUR + db TENTACRUEL + db CHARMELEON + db WARTORTLE + db CHARIZARD + db VILEPLUME + db VICTREEBEL + db $ff + +Func_3b10f: + ld c, $0 +.asm_3b111 + ld hl, EvosMovesPointerTable + ld b, $0 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a +.asm_3b11b + ld a, [hli] + and a + jr z, .asm_3b130 + cp $2 + jr nz, .asm_3b124 + inc hl +.asm_3b124 + inc hl + ld a, [wcf91] + cp [hl] + jr z, .asm_3b138 + inc hl + ld a, [hl] + and a + jr nz, .asm_3b11b +.asm_3b130 + inc c + ld a, c + cp VICTREEBEL + jr c, .asm_3b111 + and a + ret +.asm_3b138 + inc c + ld a, c + ld [wcf91], a + scf + ret + +; writes the moves a mon has at level [wCurEnemyLVL] to [de] +; move slots are being filled up sequentially and shifted if all slots are full +WriteMonMoves: + call GetPredefRegisters + push hl + push de + push bc + call GetMonLearnset + jr .firstMove +.nextMove + pop de +.nextMove2 + inc hl +.firstMove + ld a, [hli] ; read level of next move in learnset + and a + jp z, .done ; end of list + ld b, a + ld a, [wCurEnemyLVL] + cp b + jp c, .done ; mon level < move level (assumption: learnset is sorted by level) + ld a, [wLearningMovesFromDayCare] + and a + jr z, .skipMinLevelCheck + ld a, [wDayCareStartLevel] + cp b + jr nc, .nextMove2 ; min level >= move level + +.skipMinLevelCheck + +; check if the move is already known + push de + ld c, NUM_MOVES +.alreadyKnowsCheckLoop + ld a, [de] + inc de + cp [hl] + jr z, .nextMove + dec c + jr nz, .alreadyKnowsCheckLoop + +; try to find an empty move slot + pop de + push de + ld c, NUM_MOVES +.findEmptySlotLoop + ld a, [de] + and a + jr z, .writeMoveToSlot2 + inc de + dec c + jr nz, .findEmptySlotLoop + +; no empty move slots found + pop de + push de + push hl + ld h, d + ld l, e + call WriteMonMoves_ShiftMoveData ; shift all moves one up (deleting move 1) + ld a, [wLearningMovesFromDayCare] + and a + jr z, .writeMoveToSlot + +; shift PP as well if learning moves from day care + push de + ld bc, wPartyMon1PP - (wPartyMon1Moves + 3) + add hl, bc + ld d, h + ld e, l + call WriteMonMoves_ShiftMoveData ; shift all move PP data one up + pop de + +.writeMoveToSlot + pop hl +.writeMoveToSlot2 + ld a, [hl] + ld [de], a + ld a, [wLearningMovesFromDayCare] + and a + jr z, .nextMove + +; write move PP value if learning moves from day care + push hl + ld a, [hl] + ld hl, wPartyMon1PP - wPartyMon1Moves + add hl, de + push hl + dec a + ld hl, Moves + ld bc, MoveEnd - Moves + call AddNTimes + ld de, wBuffer + ld a, BANK(Moves) + call FarCopyData + ld a, [wBuffer + 5] + pop hl + ld [hl], a + pop hl + jr .nextMove + +.done + pop bc + pop de + pop hl + ret + +; shifts all move data one up (freeing 4th move slot) +WriteMonMoves_ShiftMoveData: + ld c, NUM_MOVES - 1 +.loop + inc de + ld a, [de] + ld [hli], a + dec c + jr nz, .loop + ret + +Evolution_FlagAction: + predef_jump FlagActionPredef + +GetMonLearnset: + ld hl, EvosMovesPointerTable + ld b, 0 + ld a, [wcf91] + dec a + ld c, a + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a +.skipEvolutionDataLoop ; loop to skip past the evolution data, which comes before the move data + ld a, [hli] + and a ; have we reached the end of the evolution data? + jr nz, .skipEvolutionDataLoop ; if not, jump back up + ret + +INCLUDE "data/pokemon/evos_moves.asm" diff --git a/engine/pokemon/experience.asm b/engine/pokemon/experience.asm new file mode 100755 index 000000000..427d2a7f3 --- /dev/null +++ b/engine/pokemon/experience.asm @@ -0,0 +1,149 @@ +; calculates the level a mon should be based on its current exp +CalcLevelFromExperience:: + ld a, [wLoadedMonSpecies] + ld [wd0b5], a + call GetMonHeader + ld d, $1 ; init level to 1 +.loop + inc d ; increment level + call CalcExperience + push hl + ld hl, wLoadedMonExp + 2 ; current exp +; compare exp needed for level d with current exp + ldh a, [hExperience + 2] + ld c, a + ld a, [hld] + sub c + ldh a, [hExperience + 1] + ld c, a + ld a, [hld] + sbc c + ldh a, [hExperience] + ld c, a + ld a, [hl] + sbc c + pop hl + jr nc, .loop ; if exp needed for level d is not greater than exp, try the next level + dec d ; since the exp was too high on the last loop iteration, go back to the previous value and return + ret + +; calculates the amount of experience needed for level d +CalcExperience:: + ld a, [wMonHGrowthRate] + add a + add a + ld c, a + ld b, 0 + ld hl, GrowthRateTable + add hl, bc + call CalcDSquared + ld a, d + ldh [hMultiplier], a + call Multiply + ld a, [hl] + and $f0 + swap a + ldh [hMultiplier], a + call Multiply + ld a, [hli] + and $f + ldh [hDivisor], a + ld b, $4 + call Divide + ldh a, [hQuotient + 1] + push af + ldh a, [hQuotient + 2] + push af + ldh a, [hQuotient + 3] + push af + call CalcDSquared + ld a, [hl] + and $7f + ldh [hMultiplier], a + call Multiply + ldh a, [hProduct + 1] + push af + ldh a, [hProduct + 2] + push af + ldh a, [hProduct + 3] + push af + ld a, [hli] + push af + xor a + ldh [hMultiplicand], a + ldh [hMultiplicand + 1], a + ld a, d + ldh [hMultiplicand + 2], a + ld a, [hli] + ldh [hMultiplier], a + call Multiply + ld b, [hl] + ldh a, [hProduct + 3] + sub b + ldh [hProduct + 3], a + ld b, $0 + ldh a, [hProduct + 2] + sbc b + ldh [hProduct + 2], a + ldh a, [hProduct + 1] + sbc b + ldh [hProduct + 1], a +; The difference of the linear term and the constant term consists of 3 bytes +; starting at hProduct + 1. Below, hExperience (an alias of that address) will +; be used instead for the further work of adding or subtracting the squared +; term and adding the cubed term. + pop af + and $80 + jr nz, .subtractSquaredTerm ; check sign + pop bc + ldh a, [hExperience + 2] + add b + ldh [hExperience + 2], a + pop bc + ldh a, [hExperience + 1] + adc b + ldh [hExperience + 1], a + pop bc + ldh a, [hExperience] + adc b + ldh [hExperience], a + jr .addCubedTerm +.subtractSquaredTerm + pop bc + ldh a, [hExperience + 2] + sub b + ldh [hExperience + 2], a + pop bc + ldh a, [hExperience + 1] + sbc b + ldh [hExperience + 1], a + pop bc + ldh a, [hExperience] + sbc b + ldh [hExperience], a +.addCubedTerm + pop bc + ldh a, [hExperience + 2] + add b + ldh [hExperience + 2], a + pop bc + ldh a, [hExperience + 1] + adc b + ldh [hExperience + 1], a + pop bc + ldh a, [hExperience] + adc b + ldh [hExperience], a + ret + +; calculates d*d +CalcDSquared: + xor a + ldh [hMultiplicand], a + ldh [hMultiplicand + 1], a + ld a, d + ldh [hMultiplicand + 2], a + ldh [hMultiplier], a + jp Multiply + +INCLUDE "data/growth_rates.asm" diff --git a/engine/learn_move.asm b/engine/pokemon/learn_move.asm similarity index 83% rename from engine/learn_move.asm rename to engine/pokemon/learn_move.asm index 021d0eeb3..d365acd45 100755 --- a/engine/learn_move.asm +++ b/engine/pokemon/learn_move.asm @@ -76,7 +76,7 @@ DontAbandonLearning: AbandonLearning: ld hl, AbandonLearningText call PrintText - coord hl, 14, 7 + hlcoord 14, 7 lb bc, 8, 15 ld a, TWO_OPTION_MENU ld [wTextBoxID], a @@ -99,7 +99,7 @@ TryingToLearn: push hl ld hl, TryingToLearnText call PrintText - coord hl, 14, 7 + hlcoord 14, 7 lb bc, 8, 15 ld a, TWO_OPTION_MENU ld [wTextBoxID], a @@ -114,24 +114,24 @@ TryingToLearn: ld de, wMoves ld bc, NUM_MOVES call CopyData - callab FormatMovesString + callfar FormatMovesString pop hl .loop push hl ld hl, WhichMoveToForgetText call PrintText - coord hl, 4, 7 + hlcoord 4, 7 lb bc, 4, 14 call TextBoxBorder - coord hl, 6, 8 + hlcoord 6, 8 ld de, wMovesString - ld a, [hFlags_0xFFFA] + ldh a, [hFlagsFFFA] set 2, a - ld [hFlags_0xFFFA], a + ldh [hFlagsFFFA], a call PlaceString - ld a, [hFlags_0xFFFA] + ldh a, [hFlagsFFFA] res 2, a - ld [hFlags_0xFFFA], a + ldh [hFlagsFFFA], a ld hl, wTopMenuItemY ld a, 8 ld [hli], a ; wTopMenuItemY @@ -145,10 +145,10 @@ TryingToLearn: ld a, A_BUTTON | B_BUTTON ld [hli], a ; wMenuWatchedKeys ld [hl], 0 ; wLastMenuItem - ld hl, hFlags_0xFFFA + ld hl, hFlagsFFFA set 1, [hl] call HandleMenuInput - ld hl, hFlags_0xFFFA + ld hl, hFlagsFFFA res 1, [hl] push af call LoadScreenTilesFromBuffer1 @@ -183,33 +183,33 @@ TryingToLearn: ret LearnedMove1Text: - TX_FAR _LearnedMove1Text - TX_SFX_ITEM_1 ; plays SFX_GET_ITEM_1 in the party menu (rare candy) and plays SFX_LEVEL_UP in battle - TX_BLINK - db "@" + text_far _LearnedMove1Text + sound_get_item_1 ; plays SFX_GET_ITEM_1 in the party menu (rare candy) and plays SFX_LEVEL_UP in battle + text_promptbutton + text_end WhichMoveToForgetText: - TX_FAR _WhichMoveToForgetText - db "@" + text_far _WhichMoveToForgetText + text_end AbandonLearningText: - TX_FAR _AbandonLearningText - db "@" + text_far _AbandonLearningText + text_end DidNotLearnText: - TX_FAR _DidNotLearnText - db "@" + text_far _DidNotLearnText + text_end TryingToLearnText: - TX_FAR _TryingToLearnText - db "@" + text_far _TryingToLearnText + text_end OneTwoAndText: ; bugfix: In Red/Blue, the SFX_SWAP sound was played in the wrong bank, which played an incorrect sound ; Yellow has fixed this by swapping to the correct bank - TX_FAR _OneTwoAndText - TX_DELAY - TX_ASM + text_far _OneTwoAndText + text_pause + text_asm push af push bc push de @@ -239,12 +239,12 @@ OneTwoAndText: ret PoofText: - TX_FAR _PoofText - TX_DELAY + text_far _PoofText + text_pause ForgotAndText: - TX_FAR _ForgotAndText - db "@" + text_far _ForgotAndText + text_end HMCantDeleteText: - TX_FAR _HMCantDeleteText - db "@" + text_far _HMCantDeleteText + text_end diff --git a/engine/load_mon_data.asm b/engine/pokemon/load_mon_data.asm similarity index 98% rename from engine/load_mon_data.asm rename to engine/pokemon/load_mon_data.asm index e708113fd..538407284 100644 --- a/engine/load_mon_data.asm +++ b/engine/pokemon/load_mon_data.asm @@ -1,4 +1,4 @@ -LoadMonData_: +LoadMonData_:: ; Load monster [wWhichPokemon] from list [wMonDataLocation]: ; 0: partymon ; 1: enemymon diff --git a/engine/pokemon/remove_mon.asm b/engine/pokemon/remove_mon.asm new file mode 100644 index 000000000..c85b96bf1 --- /dev/null +++ b/engine/pokemon/remove_mon.asm @@ -0,0 +1,95 @@ +_RemovePokemon:: + ld hl, wPartyCount + ld a, [wRemoveMonFromBox] + and a + jr z, .usePartyCount + ld hl, wNumInBox +.usePartyCount + ld a, [hl] + dec a + ld [hli], a + ld a, [wWhichPokemon] + ld c, a + ld b, $0 + add hl, bc + ld e, l + ld d, h + inc de +.shiftMonSpeciesLoop + ld a, [de] + inc de + ld [hli], a + inc a ; reached terminator? + jr nz, .shiftMonSpeciesLoop ; if not, continue shifting species + ld hl, wPartyMonOT + ld d, PARTY_LENGTH - 1 ; max number of pokemon to shift + ld a, [wRemoveMonFromBox] + and a + jr z, .usePartyMonOTs + ld hl, wBoxMonOT + ld d, MONS_PER_BOX - 1 +.usePartyMonOTs + ld a, [wWhichPokemon] + call SkipFixedLengthTextEntries + ld a, [wWhichPokemon] + cp d ; are we removing the last pokemon? + jr nz, .notRemovingLastMon ; if not, shift the pokemon below + ld [hl], $ff ; else, write the terminator and return + ret +.notRemovingLastMon + ld d, h + ld e, l + ld bc, NAME_LENGTH + add hl, bc + ld bc, wPartyMonNicks + ld a, [wRemoveMonFromBox] + and a + jr z, .usePartyMonNicks + ld bc, wBoxMonNicks +.usePartyMonNicks + call CopyDataUntil + ld hl, wPartyMons + ld bc, wPartyMon2 - wPartyMon1 + ld a, [wRemoveMonFromBox] + and a + jr z, .usePartyMonStructs + ld hl, wBoxMons + ld bc, wBoxMon2 - wBoxMon1 +.usePartyMonStructs + ld a, [wWhichPokemon] + call AddNTimes ; get address of the pokemon removed + ld d, h ; store in de for CopyDataUntil + ld e, l + ld a, [wRemoveMonFromBox] + and a + jr z, .copyUntilPartyMonOTs + ld bc, wBoxMon2 - wBoxMon1 + add hl, bc ; get address of pokemon after the pokemon removed + ld bc, wBoxMonOT ; address of when to stop copying + jr .continue +.copyUntilPartyMonOTs + ld bc, wPartyMon2 - wPartyMon1 + add hl, bc ; get address of pokemon after the pokemon removed + ld bc, wPartyMonOT ; address of when to stop copying +.continue + call CopyDataUntil ; shift all pokemon data after the removed mon to the removed mon's location + ld hl, wPartyMonNicks + ld a, [wRemoveMonFromBox] + and a + jr z, .usePartyMonNicks2 + ld hl, wBoxMonNicks +.usePartyMonNicks2 + ld bc, NAME_LENGTH + ld a, [wWhichPokemon] + call AddNTimes + ld d, h + ld e, l + ld bc, NAME_LENGTH + add hl, bc + ld bc, wPartyMonNicksEnd + ld a, [wRemoveMonFromBox] + and a + jr z, .copyUntilPartyMonNicksEnd + ld bc, wBoxMonNicksEnd +.copyUntilPartyMonNicksEnd + jp CopyDataUntil diff --git a/engine/predefs17_2.asm b/engine/pokemon/set_types.asm similarity index 100% rename from engine/predefs17_2.asm rename to engine/pokemon/set_types.asm diff --git a/engine/status_ailments.asm b/engine/pokemon/status_ailments.asm similarity index 95% rename from engine/status_ailments.asm rename to engine/pokemon/status_ailments.asm index 787533c4f..3da1fc433 100755 --- a/engine/status_ailments.asm +++ b/engine/pokemon/status_ailments.asm @@ -1,4 +1,4 @@ -PrintStatusAilment: +PrintStatusAilment:: ld a, [de] bit PSN, a jr nz, .psn diff --git a/engine/menu/status_screen.asm b/engine/pokemon/status_screen.asm similarity index 80% rename from engine/menu/status_screen.asm rename to engine/pokemon/status_screen.asm index 1e2ba889d..a2cfb5953 100755 --- a/engine/menu/status_screen.asm +++ b/engine/pokemon/status_screen.asm @@ -40,7 +40,7 @@ DrawHP_: push hl call DrawHPBar pop hl - ld a, [hFlags_0xFFFA] + ldh a, [hFlagsFFFA] bit 0, a jr z, .printFractionBelowBar ld bc, $9 ; right of bar @@ -80,87 +80,87 @@ StatusScreen: ld hl, wd72c set 1, [hl] ld a, $33 - ld [rNR50], a ; Reduce the volume + ldh [rNR50], a ; Reduce the volume call GBPalWhiteOutWithDelay3 call ClearScreen call UpdateSprites call LoadHpBarAndStatusTilePatterns ld de, BattleHudTiles1 ; source - ld hl, vChars2 + $6d0 ; dest - lb bc, BANK(BattleHudTiles1), $03 + ld hl, vChars2 tile $6d ; dest + lb bc, BANK(BattleHudTiles1), 3 call CopyVideoDataDouble ; ·│ :L and halfarrow line end ld de, BattleHudTiles2 - ld hl, vChars2 + $780 - lb bc, BANK(BattleHudTiles2), $01 + ld hl, vChars2 tile $78 + lb bc, BANK(BattleHudTiles2), 1 call CopyVideoDataDouble ; │ ld de, BattleHudTiles3 - ld hl, vChars2 + $760 - lb bc, BANK(BattleHudTiles3), $02 - call CopyVideoDataDouble ; ─┘ + ld hl, vChars2 tile $76 + lb bc, BANK(BattleHudTiles3), 2 + call CopyVideoDataDouble ; ─ ┘ ld de, PTile - ld hl, vChars2 + $720 - lb bc, BANK(PTile), (PTileEnd - PTile) / $8 - call CopyVideoDataDouble ; P (for PP), inline - ld a, [hTilesetType] + ld hl, vChars2 tile $72 + lb bc, BANK(PTile), 1 + call CopyVideoDataDouble ; bold P (for PP) + ldh a, [hTilesetType] push af xor a - ld [hTilesetType], a - coord hl, 19, 1 + ldh [hTilesetType], a + hlcoord 19, 1 lb bc, 6, 10 call DrawLineBox ; Draws the box around name, HP and status ld de, -6 add hl, de - ld [hl], "⠄" ; . after No ("." is a different one) + ld [hl], "" dec hl ld [hl], "№" - coord hl, 19, 9 + hlcoord 19, 9 lb bc, 8, 6 call DrawLineBox ; Draws the box around types, ID No. and OT - coord hl, 10, 9 + hlcoord 10, 9 ld de, Type1Text call PlaceString ; "TYPE1/" - coord hl, 11, 3 + hlcoord 11, 3 predef DrawHP ld hl, wStatusScreenHPBarColor call GetHealthBarColor ld b, SET_PAL_STATUS_SCREEN call RunPaletteCommand - coord hl, 16, 6 + hlcoord 16, 6 ld de, wLoadedMonStatus call PrintStatusCondition jr nz, .StatusWritten - coord hl, 16, 6 + hlcoord 16, 6 ld de, OKText call PlaceString ; "OK" .StatusWritten - coord hl, 9, 6 + hlcoord 9, 6 ld de, StatusText call PlaceString ; "STATUS/" - coord hl, 14, 2 + hlcoord 14, 2 call PrintLevel ; Pokémon level ld a, [wMonHIndex] ld [wd11e], a ld [wd0b5], a predef IndexToPokedex - coord hl, 3, 7 + hlcoord 3, 7 ld de, wd11e lb bc, LEADING_ZEROES | 1, 3 call PrintNumber ; Pokémon no. - coord hl, 11, 10 + hlcoord 11, 10 predef PrintMonType ld hl, NamePointers2 call .GetStringPointer ld d, h ld e, l - coord hl, 9, 1 + hlcoord 9, 1 call PlaceString ; Pokémon name ld hl, OTPointers call .GetStringPointer ld d, h ld e, l - coord hl, 12, 16 + hlcoord 12, 16 call PlaceString ; OT - coord hl, 12, 14 + hlcoord 12, 14 ld de, wLoadedMonOTID lb bc, LEADING_ZEROES | 2, 5 call PrintNumber ; ID Number @@ -168,22 +168,22 @@ StatusScreen: call PrintStatsBox call Delay3 call GBPalNormal - coord hl, 1, 0 + hlcoord 1, 0 call LoadFlippedFrontSpriteByMonIndex ; draw Pokémon picture ld a, [wMonDataLocation] cp ENEMY_PARTY_DATA jr z, .playRegularCry cp BOX_DATA jr z, .checkBoxData - callab IsThisPartymonStarterPikachu_Party + callfar IsThisPartymonStarterPikachu_Party jr nc, .playRegularCry jr .playPikachuSoundClip .checkBoxData - callab IsThisPartymonStarterPikachu_Box + callfar IsThisPartymonStarterPikachu_Box jr nc, .playRegularCry .playPikachuSoundClip ld e, 16 - callab PlayPikachuSoundClip + callfar PlayPikachuSoundClip jr .continue .playRegularCry ld a, [wcf91] @@ -191,7 +191,7 @@ StatusScreen: .continue call WaitForTextScrollButtonPress ; wait for button pop af - ld [hTilesetType], a + ldh [hTilesetType], a ret .GetStringPointer @@ -222,14 +222,17 @@ NamePointers2: dw wDayCareMonName Type1Text: - db "TYPE1/", $4e - + db "TYPE1/" + next "" + ; fallthrough Type2Text: - db "TYPE2/", $4e - + db "TYPE2/" + next "" + ; fallthrough IDNoText: - db $73, "№/", $4e - + db "№/" + next "" + ; fallthrough OTText: db "OT/" next "@" @@ -258,26 +261,24 @@ DrawLineBox: ld [hl], $6f ; ← (halfarrow ending) ret -PTile: ; This is a single 1bpp "P" tile - INCBIN "gfx/p_tile.1bpp" -PTileEnd: +PTile: INCBIN "gfx/font/P.1bpp" PrintStatsBox: ld a, d and a ; a is 0 from the status screen jr nz, .DifferentBox - coord hl, 0, 8 + hlcoord 0, 8 lb bc, 8, 8 call TextBoxBorder ; Draws the box - coord hl, 1, 9 ; Start printing stats from here - ld bc, $0019 ; Number offset + hlcoord 1, 9 ; Start printing stats from here + ld bc, $19 ; Number offset jr .PrintStats .DifferentBox - coord hl, 9, 2 + hlcoord 9, 2 lb bc, 8, 9 call TextBoxBorder - coord hl, 11, 3 - ld bc, $0018 + hlcoord 11, 3 + ld bc, $18 .PrintStats push bc push hl @@ -310,11 +311,11 @@ StatsText: next "SPECIAL@" StatusScreen2: - ld a, [hTilesetType] + ldh a, [hTilesetType] push af xor a - ld [hTilesetType], a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hTilesetType], a + ldh [hAutoBGTransferEnabled], a ld bc, NUM_MOVES + 1 ld hl, wMoves call FillMemory @@ -322,16 +323,16 @@ StatusScreen2: ld de, wMoves ld bc, NUM_MOVES call CopyData - callab FormatMovesString - coord hl, 9, 2 + callfar FormatMovesString + hlcoord 9, 2 lb bc, 5, 10 call ClearScreenArea ; Clear under name - coord hl, 19, 3 + hlcoord 19, 3 ld [hl], $78 - coord hl, 0, 8 + hlcoord 0, 8 lb bc, 8, 18 call TextBoxBorder ; Draw move container - coord hl, 2, 9 + hlcoord 2, 9 ld de, wMovesString call PlaceString ; Print moves ld a, [wNumMovesMinusOne] @@ -340,9 +341,9 @@ StatusScreen2: ld a, $4 sub c ld b, a ; Number of moves ? - coord hl, 11, 10 + hlcoord 11, 10 ld de, SCREEN_WIDTH * 2 - ld a, $72 ; special P tile id + ld a, "" call StatusScreen_PrintPP ; Print "PP" ld a, b and a @@ -352,7 +353,7 @@ StatusScreen2: call StatusScreen_PrintPP ; Fill the rest with -- .InitPP ld hl, wLoadedMonMoves - coord de, 14, 10 + decoord 14, 10 ld b, 0 .PrintPP ld a, [hli] @@ -367,7 +368,7 @@ StatusScreen2: ld a, b ld [hl], a push hl - callab GetMaxPP + callfar GetMaxPP pop hl pop af ld [hl], a @@ -402,7 +403,7 @@ StatusScreen2: cp $4 jr nz, .PrintPP .PPDone - coord hl, 9, 3 + hlcoord 9, 3 ld de, StatusScreenExpText call PlaceString ld a, [wLoadedMonLevel] @@ -412,41 +413,41 @@ StatusScreen2: inc a ld [wLoadedMonLevel], a ; Increase temporarily if not 100 .Level100 - coord hl, 14, 6 - ld [hl], $70 ; 1-tile "to" + hlcoord 14, 6 + ld [hl], "" inc hl inc hl call PrintLevel pop af ld [wLoadedMonLevel], a ld de, wLoadedMonExp - coord hl, 12, 4 + hlcoord 12, 4 lb bc, 3, 7 call PrintNumber ; exp call CalcExpToLevelUp ld de, wLoadedMonExp - coord hl, 7, 6 + hlcoord 7, 6 lb bc, 3, 7 call PrintNumber ; exp needed to level up - coord hl, 9, 0 + hlcoord 9, 0 call StatusScreen_ClearName - coord hl, 9, 1 + hlcoord 9, 1 call StatusScreen_ClearName ld a, [wMonHIndex] ld [wd11e], a call GetMonName - coord hl, 9, 1 + hlcoord 9, 1 call PlaceString ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Delay3 call WaitForTextScrollButtonPress ; wait for button pop af - ld [hTilesetType], a + ldh [hTilesetType], a ld hl, wd72c res 1, [hl] ld a, $77 - ld [rNR50], a + ldh [rNR50], a call GBPalWhiteOut jp ClearScreen @@ -456,15 +457,15 @@ CalcExpToLevelUp: jr z, .atMaxLevel inc a ld d, a - callab CalcExperience + callfar CalcExperience ld hl, wLoadedMonExp + 2 - ld a, [hExperience + 2] + ldh a, [hExperience + 2] sub [hl] ld [hld], a - ld a, [hExperience + 1] + ldh a, [hExperience + 1] sbc [hl] ld [hld], a - ld a, [hExperience] + ldh a, [hExperience] sbc [hl] ld [hld], a ret diff --git a/engine/predefs.asm b/engine/predefs.asm index cc6af5ace..73f69d033 100755 --- a/engine/predefs.asm +++ b/engine/predefs.asm @@ -1,4 +1,4 @@ -GetPredefPointer: +GetPredefPointer:: ; Store the contents of the register ; pairs (hl, de, bc) at wPredefRegisters. ; Then put the bank and address of predef @@ -49,113 +49,4 @@ GetPredefPointer: ret -PredefPointers:: - ; these are pointers to ASM routines. - ; they appear to be used in overworld map scripts. - const_def - add_predef DrawPlayerHUDAndHPBar - add_predef CopyUncompressedPicToTilemap - add_predef AnimateSendingOutMon - add_predef ScaleSpriteByTwo - add_predef LoadMonBackPic - add_predef CopyDownscaledMonTiles - add_predef Func_f0a7 - add_predef HealParty - add_predef MoveAnimation - add_predef DivideBCDPredef - add_predef DivideBCDPredef2 - add_predef AddBCDPredef - add_predef SubBCDPredef - add_predef DivideBCDPredef3 - add_predef DivideBCDPredef4 - add_predef InitPlayerData - add_predef FlagActionPredef - add_predef HideObject - add_predef IsObjectHidden - add_predef ApplyOutOfBattlePoisonDamage - add_predef AnyPartyAlive - add_predef ShowObject - add_predef ShowObject2 - add_predef ReplaceTileBlock - add_predef InitPlayerData2 - add_predef LoadTilesetHeader - add_predef LearnMoveFromLevelUp - add_predef LearnMove - add_predef GetQuantityOfItemInBag - - predef_const CheckForHiddenObjectOrBookshelfOrCardKeyDoor - predef_const GiveItem - dbw $03, CheckForHiddenObjectOrBookshelfOrCardKeyDoor ; home bank - dbw $03, GiveItem ; home bank - - add_predef ChangeBGPalColor0_4Frames - add_predef FindPathToPlayer - add_predef PredefShakeScreenVertically - add_predef CalcPositionOfPlayerRelativeToNPC - add_predef ConvertNPCMovementDirectionsToJoypadMasks - add_predef PredefShakeScreenHorizontally - add_predef UpdateHPBar - add_predef HPBarLength - add_predef Diploma_TextBoxBorder - add_predef DoubleOrHalveSelectedStats - add_predef ShowPokedexMenu - add_predef EvolutionAfterBattle - add_predef SaveSAVtoSRAM0 - add_predef InitOpponent - add_predef CableClub_Run - add_predef DrawBadges - add_predef ExternalClockTradeAnim - add_predef BattleTransition - add_predef CopyTileIDsFromList - add_predef PlayIntro - add_predef GetMoveSoundB - add_predef FlashScreen - add_predef GetTileAndCoordsInFrontOfPlayer - add_predef StatusScreen - add_predef StatusScreen2 - add_predef InternalClockTradeAnim - add_predef TrainerEngage - add_predef IndexToPokedex - add_predef DisplayPicCenteredOrUpperRight - add_predef UsedCut - add_predef ShowPokedexData - add_predef WriteMonMoves - add_predef SaveSAV - add_predef LoadSGB - add_predef MarkTownVisitedAndLoadMissableObjects - add_predef SetPartyMonTypes - add_predef CanLearnTM - add_predef TMToMove - add_predef _RunPaletteCommand - add_predef StarterDex - add_predef _AddPartyMon - add_predef UpdateHPBar2 - add_predef DrawEnemyHUDAndHPBar - add_predef LoadTownMap_Nest - add_predef PrintMonType - add_predef EmotionBubble - add_predef EmptyFunc3 ; return immediately - add_predef AskName - add_predef PewterGuys - add_predef SaveSAVtoSRAM2 - add_predef LoadSAV2 - add_predef LoadSAV - add_predef SaveSAVtoSRAM1 - add_predef DoInGameTradeDialogue - add_predef HallOfFamePC - add_predef DisplayDexRating - - predef_const _LeaveMapAnim - predef_const EnterMapAnim - dbw $1E, _LeaveMapAnim ; wrong bank - dbw $1E, EnterMapAnim ; wrong bank - add_predef GetTileTwoStepsInFrontOfPlayer - add_predef CheckForCollisionWhenPushingBoulder - add_predef PrintStrengthTxt - add_predef PickUpItem - add_predef PrintMoveType - add_predef LoadMovePPs - add_predef DrawHP - add_predef DrawHP2 - add_predef DisplayElevatorFloorMenu - add_predef OaksAideScript +INCLUDE "data/predef_pointers.asm" diff --git a/engine/predefs17.asm b/engine/predefs17.asm deleted file mode 100755 index 21289c6a0..000000000 --- a/engine/predefs17.asm +++ /dev/null @@ -1,9 +0,0 @@ -; this function temporarily makes the starters (and Ivysaur) seen -; so that the full Pokedex information gets displayed in Oak's lab -StarterDex: - ld a, %01001011 ; set starter flags - ld [wPokedexOwned], a - predef ShowPokedexData - xor a ; unset starter flags - ld [wPokedexOwned], a - ret diff --git a/engine/predefs7.asm b/engine/predefs7.asm deleted file mode 100755 index bfa0ab57e..000000000 --- a/engine/predefs7.asm +++ /dev/null @@ -1,54 +0,0 @@ -DisplayElevatorFloorMenu: - ld hl, wd730 - ld a, [hl] - push af - set 6, [hl] - ld hl, WhichFloorText - call PrintText - pop af - ld [wd730], a - ld hl, wItemList - ld a, l - ld [wListPointer], a - ld a, h - ld [wListPointer + 1], a - ld a, [wListScrollOffset] - push af - xor a - ld [wCurrentMenuItem], a - ld [wListScrollOffset], a - ld [wPrintItemPrices], a - ld a, SPECIALLISTMENU - ld [wListMenuID], a - call DisplayListMenuID - pop bc - ld a, b - ld [wListScrollOffset], a - ret c - ld hl, wCurrentMapScriptFlags - set 7, [hl] - ld hl, wElevatorWarpMaps - ld a, [wWhichPokemon] - add a - ld d, 0 - ld e, a - add hl, de - ld a, [hli] - ld b, a - ld a, [hl] - ld c, a - ld hl, wWarpEntries - call .UpdateWarp - -.UpdateWarp - inc hl - inc hl - ld a, b - ld [hli], a ; destination warp ID - ld a, c - ld [hli], a ; destination map ID - ret - -WhichFloorText: - TX_FAR _WhichFloorText - db "@" diff --git a/engine/predefsA.asm b/engine/predefsA.asm deleted file mode 100644 index e25735c58..000000000 --- a/engine/predefsA.asm +++ /dev/null @@ -1,73 +0,0 @@ -; inverts the BGP for 4 (6 on CGB due to lag) frames -ChangeBGPalColor0_4Frames: - call GetPredefRegisters ; leftover of red/blue, has no use here - ld a, [rBGP] - xor $ff - ld [rBGP], a - call UpdateGBCPal_BGP - ld c, 4 - call DelayFrames - ld a, [rBGP] - xor $ff - ld [rBGP], a - call UpdateGBCPal_BGP - ret - -PredefShakeScreenVertically: -; Moves the window down and then back in a sequence of progressively smaller -; numbers of pixels, starting at b. - call GetPredefRegisters - ld a, 1 - ld [wDisableVBlankWYUpdate], a - xor a -.loop - ld [$ff96], a - call .MutateWY - call .MutateWY - dec b - ld a, b - jr nz, .loop - xor a - ld [wDisableVBlankWYUpdate], a - ret - -.MutateWY - ld a, [$ff96] - xor b - ld [$ff96], a - ld [rWY], a - ld c, 3 - jp DelayFrames - -PredefShakeScreenHorizontally: -; Moves the window right and then back in a sequence of progressively smaller -; numbers of pixels, starting at b. - call GetPredefRegisters - xor a -.loop - ld [$ff97], a - call .MutateWX - ld c, 1 - call DelayFrames - call .MutateWX - dec b - ld a, b - jr nz, .loop - -; restore normal WX - ld a, 7 - ld [rWX], a - ret - -.MutateWX - ld a, [$ff97] - xor b - ld [$ff97], a - bit 7, a - jr z, .skipZeroing - xor a ; zero a if it's negative -.skipZeroing - add 7 - ld [rWX], a - ld c, 4 - jp DelayFrames diff --git a/engine/printer.asm b/engine/printer.asm index 5be5286ca..f0b681aff 100644 --- a/engine/printer.asm +++ b/engine/printer.asm @@ -16,16 +16,16 @@ PrintPokedexEntry: push af xor a ld [wUpdateSpritesEnabled], a - ld [hCanceledPrinting], a + ldh [hCanceledPrinting], a call Printer_PlayPrinterMusic - ld a, [rIE] + ldh a, [rIE] push af xor a - ld [rIF], a + ldh [rIF], a ld a, $9 - ld [rIE], a + ldh [rIE], a xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Printer_GetDexEntryRegisters call Printer_StartTransmission ld a, [wPrinterPokedexMonIsOwned] @@ -40,10 +40,10 @@ PrintPokedexEntry: ld [wcae2], a call Printer_CopyTileMapToPrinterTileBuffer call ClearScreen - callab Pokedex_DrawInterface - callab Pokedex_PlacePokemonList + callfar Pokedex_DrawInterface + callfar Pokedex_PlacePokemonList ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call .TryPrintPage jr c, .finish_printing ld a, [wPrinterPokedexMonIsOwned] @@ -56,7 +56,7 @@ PrintPokedexEntry: call DelayFrames call SaveScreenTilesToBuffer1 xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Printer_PrepareDexEntryForPrinting ld a, $7 call Printer_StartTransmission @@ -65,16 +65,16 @@ PrintPokedexEntry: call Printer_CopyTileMapToPrinterTileBuffer call LoadScreenTilesFromBuffer1 ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call .TryPrintPage .finish_printing xor a ld [wPrinterConnectionOpen], a ld [wPrinterOpcode], a xor a - ld [rIF], a + ldh [rIF], a pop af - ld [rIE], a + ldh [rIE], a call ReloadMapAfterPrinter call Printer_PlayMapMusic pop af @@ -105,7 +105,7 @@ PrintPokedexEntry: ret Printer_GetDexEntryRegisters: - callab DrawDexEntryOnScreen + callfar DrawDexEntryOnScreen ld a, l ld [wPrinterPokedexEntryTextPointer], a ld a, h @@ -125,20 +125,20 @@ Printer_GetDexEntryRegisters: Printer_PrepareDexEntryForPrinting: call ClearScreen - callab Pokedex_PrepareDexEntryForPrinting + callfar Pokedex_PrepareDexEntryForPrinting ret PrintSurfingMinigameHighScore: xor a - ld [hCanceledPrinting], a + ldh [hCanceledPrinting], a call Printer_PlayPrinterMusic call Printer_PrepareSurfingMinigameHighScoreTileMap - ld a, [rIE] + ldh a, [rIE] push af xor a - ld [rIF], a + ldh [rIF], a ld a, $9 - ld [rIE], a + ldh [rIE], a call StartTransmission_Send9Rows ld a, $13 ld [wcae2], a @@ -163,24 +163,24 @@ PrintSurfingMinigameHighScore: ld [wPrinterOpcode], a call Printer_CopyTileMapFromPrinterTileBuffer xor a - ld [rIF], a + ldh [rIF], a pop af - ld [rIE], a + ldh [rIE], a call ReloadMapAfterPrinter call Printer_PlayMapMusic ret -PrintDiploma: +PrintDiploma:: xor a - ld [hCanceledPrinting], a + ldh [hCanceledPrinting], a call Printer_PlayPrinterMusic call _DisplayDiploma - ld a, [rIE] + ldh a, [rIE] push af xor a - ld [rIF], a + ldh [rIF], a ld a, $9 - ld [rIE], a + ldh [rIE], a call StartTransmission_Send9Rows ld a, $10 ld [wcae2], a @@ -194,7 +194,7 @@ PrintDiploma: call DelayFrames call SaveScreenTilesToBuffer1 xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Func_e9ad3 call StartTransmission_Send9Rows ld a, $3 @@ -208,9 +208,9 @@ PrintDiploma: ld [wPrinterOpcode], a call Printer_CopyTileMapFromPrinterTileBuffer xor a - ld [rIF], a + ldh [rIF], a pop af - ld [rIE], a + ldh [rIE], a call ReloadMapAfterPrinter call Printer_PlayMapMusic ret @@ -246,17 +246,17 @@ PrintPCBox:: push af xor a ld [wUpdateSpritesEnabled], a - ld [hCanceledPrinting], a + ldh [hCanceledPrinting], a call Printer_PlayPrinterMusic - ld a, [rIE] + ldh a, [rIE] push af xor a - ld [rIF], a + ldh [rIF], a ld a, $9 - ld [rIE], a + ldh [rIE], a call SaveScreenTilesToBuffer1 xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call PrintPCBox_DrawPage1 call StartTransmission_Send9Rows ld a, $10 @@ -271,7 +271,7 @@ PrintPCBox:: ld c, 12 call DelayFrames xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call PrintPCBox_DrawPage2 call StartTransmission_Send9Rows ld a, $0 @@ -286,7 +286,7 @@ PrintPCBox:: ld c, 12 call DelayFrames xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call PrintPCBox_DrawPage3 call StartTransmission_Send9Rows ld a, $0 @@ -301,7 +301,7 @@ PrintPCBox:: ld c, 12 call DelayFrames xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call PrintPCBox_DrawPage4 call StartTransmission_Send9Rows ld a, $3 @@ -314,9 +314,9 @@ PrintPCBox:: ld [wPrinterConnectionOpen], a ld [wPrinterOpcode], a xor a - ld [rIF], a + ldh [rIF], a pop af - ld [rIE], a + ldh [rIE], a call ReloadMapAfterPrinter call Printer_PlayMapMusic pop af @@ -352,20 +352,20 @@ Func_e8dfb: ret String_e8e1f: - TX_FAR _NoPokemonText - db "@" + text_far _NoPokemonText + text_end -PrintFanClubPortrait: +PrintFanClubPortrait:: xor a - ld [hCanceledPrinting], a + ldh [hCanceledPrinting], a call Printer_PlayPrinterMusic call Printer_GetMonStats - ld a, [rIE] + ldh a, [rIE] push af xor a - ld [rIF], a + ldh [rIF], a ld a, $9 - ld [rIE], a + ldh [rIE], a call StartTransmission_Send9Rows ld a, $13 ld [wcae2], a @@ -390,9 +390,9 @@ PrintFanClubPortrait: ld [wPrinterOpcode], a call Printer_CopyTileMapFromPrinterTileBuffer xor a - ld [rIF], a + ldh [rIF], a pop af - ld [rIE], a + ldh [rIE], a call ReloadMapAfterPrinter call Printer_PlayMapMusic ret @@ -403,17 +403,17 @@ PrinterDebug: push de push hl call StopAllMusic - ld a, [rIE] + ldh a, [rIE] push af xor a - ld [rIF], a + ldh [rIF], a ld a, $9 - ld [rIE], a + ldh [rIE], a call StartTransmission_Send9Rows ld a, $13 ld [wcae2], a ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Printer_CopyTileMapToPrinterTileBuffer call PrinterDebug_LoadGFX .loop @@ -434,9 +434,9 @@ PrinterDebug: xor a call FillMemory xor a - ld [rIF], a + ldh [rIF], a pop af - ld [rIE], a + ldh [rIE], a pop hl pop de pop bc @@ -444,7 +444,7 @@ PrinterDebug: ret Printer_CheckPressingB: - ld a, [hJoyHeld] + ldh a, [hJoyHeld] and B_BUTTON jr nz, .quit and a @@ -461,43 +461,43 @@ Printer_CheckPressingB: ld a, $16 ld [wPrinterOpcode], a ld a, $88 - ld [rSB], a + ldh [rSB], a ld a, $1 - ld [rSC], a + ldh [rSC], a ld a, $81 - ld [rSC], a + ldh [rSC], a .wait_send_cancel ld a, [wPrinterOpcode] and a jr nz, .wait_send_cancel .already_done ld a, $1 - ld [hCanceledPrinting], a + ldh [hCanceledPrinting], a scf ret Printer_CopyTileMapToPrinterTileBuffer: - coord hl, 0, 0 - coord de, 0, 0, wPrinterTileBuffer + hlcoord 0, 0 + decoord 0, 0, wPrinterTileBuffer ld bc, SCREEN_HEIGHT * SCREEN_WIDTH call CopyData ret Printer_CopyTileMapFromPrinterTileBuffer: - coord hl, 0, 0, wPrinterTileBuffer - coord de, 0, 0 + hlcoord 0, 0, wPrinterTileBuffer + decoord 0, 0 ld bc, SCREEN_HEIGHT * SCREEN_WIDTH call CopyData ret Printer_ResetJoypadHRAM: xor a - ld [hJoyLast], a - ld [hJoyReleased], a - ld [hJoyPressed], a - ld [hJoyHeld], a - ld [hJoy5], a - ld [hJoy6], a + ldh [hJoyLast], a + ldh [hJoyReleased], a + ldh [hJoyPressed], a + ldh [hJoyHeld], a + ldh [hJoy5], a + ldh [hJoy6], a ret Printer_PlayPrinterMusic: @@ -568,8 +568,8 @@ GBPrinter_UpdateStatusMessage: ret z push af xor a - ld [H_AUTOBGTRANSFERENABLED], a - coord hl, 0, 5 + ldh [hAutoBGTransferEnabled], a + hlcoord 0, 5 lb bc, 10, 18 call TextBoxBorder pop af @@ -581,13 +581,13 @@ GBPrinter_UpdateStatusMessage: ld e, [hl] inc hl ld d, [hl] - coord hl, 1, 7 + hlcoord 1, 7 call PlaceString - coord hl, 2, 15 + hlcoord 2, 15 ld de, .PressBToCancel call PlaceString ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a xor a ld [wPrinterStatusIndicator], a ret @@ -648,39 +648,39 @@ Printer_PrepareSurfingMinigameHighScoreTileMap: ld hl, vChars2 lb bc, BANK(SurfingPikachu2Graphics), (SurfingPikachu2GraphicsEnd - SurfingPikachu2Graphics) / $10 call CopyVideoData - coord hl, 0, 0 + hlcoord 0, 0 call .PlaceRowAlternatingTiles - coord hl, 0, 17 + hlcoord 0, 17 call .PlaceRowAlternatingTiles - coord hl, 0, 0 + hlcoord 0, 0 call .PlaceColumnAlternatingTiles - coord hl, 19, 0 + hlcoord 19, 0 call .PlaceColumnAlternatingTiles ld a, $4 - coord hl, 0, 0 + hlcoord 0, 0 ld [hl], a - coord hl, 0, 17 + hlcoord 0, 17 ld [hl], a - coord hl, 19, 0 + hlcoord 19, 0 ld [hl], a - coord hl, 19, 17 + hlcoord 19, 17 ld [hl], a ld de, .Tilemap1 - coord hl, 10, 8 + hlcoord 10, 8 lb bc, 3, 8 call Diploma_Surfing_CopyBox ld de, .Tilemap2 - coord hl, 2, 11 + hlcoord 2, 11 lb bc, 6, 16 call Diploma_Surfing_CopyBox ld de, .PikachusBeachString - coord hl, 3, 2 + hlcoord 3, 2 call PlaceString ld de, .HiScoreString - coord hl, 9, 4 + hlcoord 9, 4 call PlaceString ld de, .PointsString - coord hl, 12, 6 + hlcoord 12, 6 call PlaceString ld de, wPlayerName ld hl, wPlayerName @@ -696,14 +696,14 @@ Printer_PrepareSurfingMinigameHighScoreTileMap: xor a .got_name_length ld c, a - coord hl, 2, 4 + hlcoord 2, 4 add hl, bc call PlaceString call CopySurfingMinigameScore ld b, 8 call RunPaletteCommand ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Delay3 call GBPalNormal ret @@ -771,7 +771,7 @@ Diploma_Surfing_CopyBox: CopySurfingMinigameScore: ld de, wSurfingMinigameHiScore + 1 - coord hl, 7, 6 + hlcoord 7, 6 ld a, [de] call .BCDConvertScore ld a, [de] @@ -796,19 +796,19 @@ PrintPCBox_DrawPage1: ld [wBoxNumString], a call ClearScreen call PrintPCBox_PlaceHorizontalLines - coord hl, 0, 0 + hlcoord 0, 0 ld bc, 11 * SCREEN_WIDTH ld a, " " call FillMemory call PrintPCBox_DrawLeftAndRightBorders call PrintPCBox_DrawTopBorder - coord hl, 4, 4 + hlcoord 4, 4 ld de, .PokemonListString call PlaceString - coord hl, 7, 6 + hlcoord 7, 6 ld de, .BoxString call PlaceString - coord hl, 11, 6 + hlcoord 11, 6 ld a, [wCurrentBoxNum] and $7f cp 9 @@ -823,7 +823,7 @@ PrintPCBox_DrawPage1: add "1" .placed_box_number ld [hl], a - coord hl, 4, 9 + hlcoord 4, 9 ld de, wBoxSpecies ld c, $3 call PrintPCBox_PlaceBoxMonInfo @@ -839,7 +839,7 @@ PrintPCBox_DrawPage2: ld a, [wBoxDataStart] cp 4 ret c - coord hl, 4, 0 + hlcoord 4, 0 ld de, wBoxSpecies + 3 ld c, 6 call PrintPCBox_PlaceBoxMonInfo @@ -852,7 +852,7 @@ PrintPCBox_DrawPage3: ld a, [wBoxDataStart] cp 10 ret c - coord hl, 4, 0 + hlcoord 4, 0 ld de, wBoxSpecies + 9 ld c, 6 call PrintPCBox_PlaceBoxMonInfo @@ -862,16 +862,16 @@ PrintPCBox_DrawPage4: call ClearScreen call PrintPCBox_PlaceHorizontalLines call PrintPCBox_DrawLeftAndRightBorders - coord hl, 0, 15 + hlcoord 0, 15 call PrintPCBox_DrawBottomBorderAtHL - coord hl, 0, 16 + hlcoord 0, 16 ld bc, 2 * SCREEN_WIDTH ld a, " " call FillMemory ld a, [wBoxDataStart] cp 16 ret c - coord hl, 4, 0 + hlcoord 4, 0 ld de, wBoxSpecies + 15 ld c, 5 call PrintPCBox_PlaceBoxMonInfo @@ -933,7 +933,7 @@ PrintPCBox_PlaceBoxMonInfo: ret PrintPCBox_DrawTopBorder: - coord hl, 0, 0 + hlcoord 0, 0 ld a, $79 ld [hli], a ld a, $7a @@ -947,7 +947,7 @@ PrintPCBox_DrawTopBorder: ret PrintPCBox_DrawLeftAndRightBorders: - coord hl, 0, 0 + hlcoord 0, 0 ld de, SCREEN_WIDTH - 1 ld c, SCREEN_HEIGHT .loop @@ -961,7 +961,7 @@ PrintPCBox_DrawLeftAndRightBorders: ret PrintPCBox_DrawBottomBorder: - coord hl, 0, 17 + hlcoord 0, 17 PrintPCBox_DrawBottomBorderAtHL: ld a, $7d ld [hli], a @@ -976,10 +976,10 @@ PrintPCBox_DrawBottomBorderAtHL: ret PrintPCBox_PlaceHorizontalLines: - coord hl, 4, 0 + hlcoord 4, 0 ld c, 6 call .PlaceHorizontalLine - coord hl, 6, 1 + hlcoord 6, 1 ld c, 6 .PlaceHorizontalLine: .loop diff --git a/engine/printer/serial.asm b/engine/printer/serial.asm index fa83eb9dd..97f655bbb 100755 --- a/engine/printer/serial.asm +++ b/engine/printer/serial.asm @@ -7,8 +7,8 @@ Printer_StartTransmission: xor a call Printer_FillMemory xor a - ld [rSB], a - ld [rSC], a + ldh [rSB], a + ldh [rSC], a ld [wPrinterOpcode], a ld hl, wPrinterConnectionOpen set 0, [hl] @@ -269,11 +269,11 @@ Printer_PrepareToSend: ld a, $1 ld [wPrinterOpcode], a ld a, $88 - ld [rSB], a + ldh [rSB], a ld a, $1 - ld [rSC], a + ldh [rSC], a ld a, $81 - ld [rSC], a + ldh [rSC], a ret CopyPrinterDataHeader: @@ -438,7 +438,7 @@ PrinterDataPacket6: ; unused db 15, 0, $00, 0 dw 15 -PrinterSerial_: +PrinterSerial_:: ld a, [wPrinterOpcode] ld e, a ld d, 0 @@ -573,7 +573,7 @@ PrinterSerial_: ret .Receive1: - ld a, [rSB] + ldh a, [rSB] ld [wPrinterHandshake], a ld a, $0 call .SendByte @@ -581,7 +581,7 @@ PrinterSerial_: ret .Receive2: - ld a, [rSB] + ldh a, [rSB] ld [wPrinterStatusFlags], a xor a ld [wPrinterOpcode], a @@ -606,15 +606,15 @@ PrinterSerial_: ret .SendByte: - ld [rSB], a + ldh [rSB], a ld a, $1 - ld [rSC], a + ldh [rSC], a ld a, $81 - ld [rSC], a + ldh [rSC], a ret .Receive2_: - ld a, [rSB] + ldh a, [rSB] ld [wPrinterStatusFlags], a xor a ld [wPrinterOpcode], a diff --git a/engine/random.asm b/engine/random.asm deleted file mode 100755 index 2fc83f6f0..000000000 --- a/engine/random.asm +++ /dev/null @@ -1,13 +0,0 @@ -Random_:: -; Generate a random 16-bit value. - ld a, [rDIV] - ld b, a - ld a, [hRandomAdd] - adc b - ld [hRandomAdd], a - ld a, [rDIV] - ld b, a - ld a, [hRandomSub] - sbc b - ld [hRandomSub], a - ret diff --git a/engine/remove_pokemon.asm b/engine/remove_pokemon.asm deleted file mode 100644 index f29a428d8..000000000 --- a/engine/remove_pokemon.asm +++ /dev/null @@ -1,95 +0,0 @@ -_RemovePokemon: - ld hl, wPartyCount - ld a, [wRemoveMonFromBox] - and a - jr z, .usePartyCount - ld hl, wNumInBox -.usePartyCount - ld a, [hl] - dec a - ld [hli], a - ld a, [wWhichPokemon] - ld c, a - ld b, $0 - add hl, bc - ld e, l - ld d, h - inc de -.shiftMonSpeciesLoop - ld a, [de] - inc de - ld [hli], a - inc a ; reached terminator? - jr nz, .shiftMonSpeciesLoop ; if not, continue shifting species - ld hl, wPartyMonOT - ld d, PARTY_LENGTH - 1 ; max number of pokemon to shift - ld a, [wRemoveMonFromBox] - and a - jr z, .usePartyMonOTs - ld hl, wBoxMonOT - ld d, MONS_PER_BOX - 1 -.usePartyMonOTs - ld a, [wWhichPokemon] - call SkipFixedLengthTextEntries - ld a, [wWhichPokemon] - cp d ; are we removing the last pokemon? - jr nz, .notRemovingLastMon ; if not, shift the pokemon below - ld [hl], $ff ; else, write the terminator and return - ret -.notRemovingLastMon - ld d, h - ld e, l - ld bc, NAME_LENGTH - add hl, bc - ld bc, wPartyMonNicks - ld a, [wRemoveMonFromBox] - and a - jr z, .usePartyMonNicks - ld bc, wBoxMonNicks -.usePartyMonNicks - call CopyDataUntil - ld hl, wPartyMons - ld bc, wPartyMon2 - wPartyMon1 - ld a, [wRemoveMonFromBox] - and a - jr z, .usePartyMonStructs - ld hl, wBoxMons - ld bc, wBoxMon2 - wBoxMon1 -.usePartyMonStructs - ld a, [wWhichPokemon] - call AddNTimes ; get address of the pokemon removed - ld d, h ; store in de for CopyDataUntil - ld e, l - ld a, [wRemoveMonFromBox] - and a - jr z, .copyUntilPartyMonOTs - ld bc, wBoxMon2 - wBoxMon1 - add hl, bc ; get address of pokemon after the pokemon removed - ld bc, wBoxMonOT ; address of when to stop copying - jr .continue -.copyUntilPartyMonOTs - ld bc, wPartyMon2 - wPartyMon1 - add hl, bc ; get address of pokemon after the pokemon removed - ld bc, wPartyMonOT ; address of when to stop copying -.continue - call CopyDataUntil ; shift all pokemon data after the removed mon to the removed mon's location - ld hl, wPartyMonNicks - ld a, [wRemoveMonFromBox] - and a - jr z, .usePartyMonNicks2 - ld hl, wBoxMonNicks -.usePartyMonNicks2 - ld bc, NAME_LENGTH - ld a, [wWhichPokemon] - call AddNTimes - ld d, h - ld e, l - ld bc, NAME_LENGTH - add hl, bc - ld bc, wPartyMonNicksEnd - ld a, [wRemoveMonFromBox] - and a - jr z, .copyUntilPartyMonNicksEnd - ld bc, wBoxMonNicksEnd -.copyUntilPartyMonNicksEnd - jp CopyDataUntil diff --git a/engine/slots/game_corner_slots.asm b/engine/slots/game_corner_slots.asm new file mode 100755 index 000000000..483219743 --- /dev/null +++ b/engine/slots/game_corner_slots.asm @@ -0,0 +1,54 @@ +StartSlotMachine: + ld a, [wHiddenObjectFunctionArgument] + cp SLOTS_OUTOFORDER + jr z, .printOutOfOrder + cp SLOTS_OUTTOLUNCH + jr z, .printOutToLunch + cp SLOTS_SOMEONESKEYS + jr z, .printSomeonesKeys + farcall AbleToPlaySlotsCheck + ld a, [wCanPlaySlots] + and a + ret z + ld a, [wLuckySlotHiddenObjectIndex] + ld b, a + ld a, [wHiddenObjectIndex] + inc a + cp b + jr z, .match + ld a, 253 + jr .next +.match + ld a, 250 +.next + ld [wSlotMachineSevenAndBarModeChance], a + ldh a, [hLoadedROMBank] + ld [wSlotMachineSavedROMBank], a + call PromptUserToPlaySlots + ret +.printOutOfOrder + tx_pre_id GameCornerOutOfOrderText + jr .printText +.printOutToLunch + tx_pre_id GameCornerOutToLunchText + jr .printText +.printSomeonesKeys + tx_pre_id GameCornerSomeonesKeysText +.printText + push af + call EnableAutoTextBoxDrawing + pop af + call PrintPredefTextID + ret + +GameCornerOutOfOrderText:: + text_far _GameCornerOutOfOrderText + text_end + +GameCornerOutToLunchText:: + text_far _GameCornerOutToLunchText + text_end + +GameCornerSomeonesKeysText:: + text_far _GameCornerSomeonesKeysText + text_end diff --git a/engine/slots/game_corner_slots2.asm b/engine/slots/game_corner_slots2.asm new file mode 100755 index 000000000..a4ba4ec1a --- /dev/null +++ b/engine/slots/game_corner_slots2.asm @@ -0,0 +1,31 @@ +AbleToPlaySlotsCheck: + ld a, [wSpritePlayerStateData1ImageIndex] + and $8 + jr z, .done ; not able + ld b, COIN_CASE + predef GetQuantityOfItemInBag + ld a, b + and a + ld b, (GameCornerCoinCaseText_id - TextPredefs) / 2 + 1 + jr z, .printCoinCaseRequired + ld hl, wPlayerCoins + ld a, [hli] + or [hl] + jr nz, .done ; able to play + ld b, (GameCornerNoCoinsText_id - TextPredefs) / 2 + 1 +.printCoinCaseRequired + call EnableAutoTextBoxDrawing + ld a, b + call PrintPredefTextID + xor a +.done + ld [wCanPlaySlots], a + ret + +GameCornerCoinCaseText:: + text_far _GameCornerCoinCaseText + text_end + +GameCornerNoCoinsText:: + text_far _GameCornerNoCoinsText + text_end diff --git a/engine/slot_machine.asm b/engine/slots/slot_machine.asm similarity index 92% rename from engine/slot_machine.asm rename to engine/slots/slot_machine.asm index b4514618f..ba007d9d5 100755 --- a/engine/slot_machine.asm +++ b/engine/slots/slot_machine.asm @@ -1,6 +1,6 @@ PromptUserToPlaySlots: call SaveScreenTilesToBuffer2 - ld a, BANK(DisplayTextIDInit) + ld a, BANK(DisplayTextIDInit) ; TRUE ld [wAutoTextBoxDrawingControl], a ld b, a ld hl, DisplayTextIDInit @@ -26,14 +26,14 @@ PromptUserToPlaySlots: call Delay3 call GBPalNormal ld a, $e4 - ld [rOBP0], a + ldh [rOBP0], a call UpdateGBCPal_OBP0 ld hl, wd730 set 6, [hl] xor a ld [wSlotMachineAllowMatchesCounter], a ld hl, wStoppingWhichSlotMachineWheel - ld bc, $0014 + ld bc, $14 call FillMemory call MainSlotMachineLoop ld hl, wd730 @@ -55,8 +55,8 @@ PromptUserToPlaySlots: jp CloseTextDisplay PlaySlotMachineText: - TX_FAR _PlaySlotMachineText - db "@" + text_far _PlaySlotMachineText + text_end MainSlotMachineLoop: call SlotMachine_PrintCreditCoins @@ -81,10 +81,10 @@ MainSlotMachineLoop: ld [wCurrentMenuItem], a ld [wLastMenuItem], a ld [wMenuWatchMovingOutOfBounds], a - coord hl, 14, 11 + hlcoord 14, 11 lb bc, 5, 4 call TextBoxBorder - coord hl, 16, 12 + hlcoord 16, 12 ld de, CoinMultiplierSlotMachineText call PlaceString call HandleMenuInput @@ -134,7 +134,7 @@ MainSlotMachineLoop: .skip2 ld hl, OneMoreGoSlotMachineText call PrintText - coord hl, 14, 12 + hlcoord 14, 12 lb bc, 13, 15 xor a ; YES_NO_MENU ld [wTwoOptionMenuID], a @@ -153,24 +153,24 @@ CoinMultiplierSlotMachineText: next "×1@" OutOfCoinsSlotMachineText: - TX_FAR _OutOfCoinsSlotMachineText - db "@" + text_far _OutOfCoinsSlotMachineText + text_end BetHowManySlotMachineText: - TX_FAR _BetHowManySlotMachineText - db "@" + text_far _BetHowManySlotMachineText + text_end StartSlotMachineText: - TX_FAR _StartSlotMachineText - db "@" + text_far _StartSlotMachineText + text_end NotEnoughCoinsSlotMachineText: - TX_FAR _NotEnoughCoinsSlotMachineText - db "@" + text_far _NotEnoughCoinsSlotMachineText + text_end OneMoreGoSlotMachineText: - TX_FAR _OneMoreGoSlotMachineText - db "@" + text_far _OneMoreGoSlotMachineText + text_end SlotMachine_SetFlags: ld hl, wSlotMachineFlags @@ -295,7 +295,7 @@ SlotMachine_StopWheel1Early: ; Stop early if the middle symbol is not a cherry. inc hl ld a, [hl] - cp SLOTSCHERRY >> 8 + cp HIGH(SLOTSCHERRY) jr nz, .stopWheel ret ; It looks like this was intended to make the wheel stop when a 7 symbol was @@ -304,7 +304,7 @@ SlotMachine_StopWheel1Early: ld c, $3 .loop ld a, [hli] - cp SLOTS7 >> 8 + cp HIGH(SLOTS7) jr c, .stopWheel ; condition never true dec c jr nz, .loop @@ -331,7 +331,7 @@ SlotMachine_StopWheel2Early: .sevenAndBarMode call SlotMachine_FindWheel1Wheel2Matches ld a, [de] - cp (SLOTSBAR >> 8) + 1 + cp HIGH(SLOTSBAR) + 1 ret nc .stopWheel xor a @@ -428,7 +428,7 @@ SlotMachine_CheckForMatches: jr nz, .acceptMatch ; if 7/bar matches aren't enabled and the match was a 7/bar symbol, roll wheel ld a, [hl] - cp (SLOTSBAR >> 8) + 1 + cp HIGH(SLOTSBAR) + 1 jr c, .rollWheel3DownByOneSymbol .acceptMatch ld a, [hl] @@ -455,9 +455,9 @@ SlotMachine_CheckForMatches: jp hl .flashScreenLoop - ld a, [rBGP] + ldh a, [rBGP] xor $40 - ld [rBGP], a + ldh [rBGP], a call UpdateGBCPal_BGP ld c, 5 call DelayFrames @@ -474,12 +474,12 @@ SlotMachine_CheckForMatches: call SlotMachine_PayCoinsToPlayer call SlotMachine_PrintPayoutCoins ld a, $e4 - ld [rOBP0], a + ldh [rOBP0], a call UpdateGBCPal_OBP0 jp .done SymbolLinedUpSlotMachineText: - TX_ASM + text_asm push bc call SlotMachine_PrintWinningSymbol ld hl, LinedUpText @@ -491,8 +491,8 @@ SymbolLinedUpSlotMachineText: ret LinedUpText: - TX_FAR _LinedUpText - db "@" + text_far _LinedUpText + text_end SlotRewardPointers: dw SlotReward300Func @@ -521,8 +521,8 @@ SlotReward15Text: db "15@" NotThisTimeText: - TX_FAR _NotThisTimeText - db "@" + text_far _NotThisTimeText + text_end ; compares the slot machine tiles at bc, de, and hl SlotMachine_CheckForMatch: @@ -612,13 +612,13 @@ SlotReward300Func: ret YeahText: - TX_FAR _YeahText - TX_DELAY - db "@" + text_far _YeahText + text_pause + text_end SlotMachine_PrintWinningSymbol: ; prints winning symbol and down arrow in text box - coord hl, 2, 14 + hlcoord 2, 14 ld a, [wSlotMachineWinningSymbol] add $25 ld [hli], a @@ -630,7 +630,7 @@ SlotMachine_PrintWinningSymbol: ld [hli], a inc a ld [hl], a - coord hl, 18, 16 + hlcoord 18, 16 ld [hl], "▼" ret @@ -645,13 +645,13 @@ SlotMachine_SubtractBetFromPlayerCoins: predef SubBCDPredef SlotMachine_PrintCreditCoins: - coord hl, 5, 1 + hlcoord 5, 1 ld de, wPlayerCoins ld c, $2 jp PrintBCDNumber SlotMachine_PrintPayoutCoins: - coord hl, 11, 1 + hlcoord 11, 1 ld de, wPayoutCoins lb bc, LEADING_ZEROES | 2, 4 ; 2 bytes, 4 digits jp PrintNumber @@ -698,15 +698,15 @@ SlotMachine_PayCoinsToPlayer: ld a, [wAnimCounter] dec a jr nz, .skip1 - ld a, [rOBP0] + ldh a, [rOBP0] xor $40 ; make the slot wheel symbols flash - ld [rOBP0], a + ldh [rOBP0], a call UpdateGBCPal_OBP0 ld a, 5 .skip1 ld [wAnimCounter], a ld a, [wSlotMachineWinningSymbol] - cp (SLOTSBAR >> 8) + 1 + cp HIGH(SLOTSBAR) + 1 ld c, 8 jr nc, .skip2 srl c ; c = 4 (make the the coins transfer faster if the symbol was 7 or bar) @@ -729,19 +729,19 @@ SlotMachine_LightBalls: jr z, SlotMachine_UpdateTwoCoinBallTiles SlotMachine_UpdateThreeCoinBallTiles: - coord hl, 3, 2 + hlcoord 3, 2 call SlotMachine_UpdateBallTiles - coord hl, 3, 10 + hlcoord 3, 10 call SlotMachine_UpdateBallTiles SlotMachine_UpdateTwoCoinBallTiles: - coord hl, 3, 4 + hlcoord 3, 4 call SlotMachine_UpdateBallTiles - coord hl, 3, 8 + hlcoord 3, 8 call SlotMachine_UpdateBallTiles SlotMachine_UpdateOneCoinBallTiles: - coord hl, 3, 6 + hlcoord 3, 6 SlotMachine_UpdateBallTiles: ld a, [wNewSlotMachineBallTile] @@ -829,7 +829,7 @@ SlotMachine_AnimWheel: SlotMachine_HandleInputWhileWheelsSpin: call DelayFrame call JoypadLowSensitivity - ld a, [hJoy5] + ldh a, [hJoy5] and A_BUTTON ret z ld hl, wStoppingWhichSlotMachineWheel @@ -854,21 +854,21 @@ LoadSlotMachineTiles: call DisableLCD ld hl, SlotMachineTiles2 ld de, vChars0 - ld bc, $1c0 + ld bc, $1c tiles ; should be SlotMachineTiles2End - SlotMachineTiles2, or $18 tiles ld a, BANK(SlotMachineTiles2) call FarCopyData ld hl, SlotMachineTiles1 ld de, vChars2 - ld bc, $250 + ld bc, SlotMachineTiles1End - SlotMachineTiles1 ld a, BANK(SlotMachineTiles1) call FarCopyData ld hl, SlotMachineTiles2 - ld de, vChars2 + $250 - ld bc, $1c0 + ld de, vChars2 tile $25 + ld bc, $1c tiles ; should be SlotMachineTiles2End - SlotMachineTiles2, or $18 tiles ld a, BANK(SlotMachineTiles2) call FarCopyData ld hl, SlotMachineMap - coord de, 0, 0 + decoord 0, 0 ld bc, SlotMachineMapEnd - SlotMachineMap call CopyData call EnableLCD @@ -882,10 +882,11 @@ LoadSlotMachineTiles: jp SlotMachine_AnimWheel3 SlotMachineMap: - INCBIN "gfx/tilemaps/slotmachine.map" + INCBIN "gfx/slots/slots.tilemap" SlotMachineMapEnd: -INCLUDE "data/slot_machine_wheels.asm" +INCLUDE "data/events/slot_machine_wheels.asm" SlotMachineTiles1: - INCBIN "gfx/slotmachine1.2bpp" + INCBIN "gfx/slots/slots_1.2bpp" +SlotMachineTiles1End: diff --git a/engine/special_warps.asm b/engine/special_warps.asm deleted file mode 100644 index 3a8b8b866..000000000 --- a/engine/special_warps.asm +++ /dev/null @@ -1,149 +0,0 @@ -SpecialWarpIn: - call LoadSpecialWarpData - predef LoadTilesetHeader - ld hl, wd732 - bit 2, [hl] ; dungeon warp or fly warp? - res 2, [hl] - jr z, .next -; if dungeon warp or fly warp - ld a, [wDestinationMap] - jr .next2 -.next - bit 1, [hl] - jr z, .next3 - call EmptyFunc -.next3 - ld a, 0 -.next2 - ld b, a - ld a, [wd72d] - and a - jr nz, .next4 - ld a, b -.next4 - ld hl, wd732 - bit 4, [hl] ; dungeon warp? - ret nz -; if not dungeon warp - ld [wLastMap], a - ret - -; gets the map ID, tile block map view pointer, tileset, and coordinates -LoadSpecialWarpData: - ld a, [wd72d] - cp TRADE_CENTER - jr nz, .notTradeCenter - ld hl, TradeCenterSpec1 - ld a, [hSerialConnectionStatus] - cp USING_INTERNAL_CLOCK ; which gameboy is clocking determines who is on the left and who is on the right - jr z, .copyWarpData - ld hl, TradeCenterSpec2 - jr .copyWarpData -.notTradeCenter - cp COLOSSEUM - jr nz, .notColosseum - ld hl, ColosseumSpec1 - ld a, [hSerialConnectionStatus] - cp USING_INTERNAL_CLOCK - jr z, .copyWarpData - ld hl, ColosseumSpec2 - jr .copyWarpData -.notColosseum - ld a, [wd732] - bit 1, a - jr nz, .notFirstMap - bit 2, a - jr nz, .notFirstMap - ld hl, FirstMapSpec -.copyWarpData - ld de, wCurMap - ld c, $7 -.copyWarpDataLoop - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .copyWarpDataLoop - ld a, [hli] - ld [wCurMapTileset], a - xor a - jr .done -.notFirstMap - ld a, [wLastMap] ; this value is overwritten before it's ever read - ld hl, wd732 - bit 4, [hl] ; used dungeon warp (jumped down hole/waterfall)? - jr nz, .usedDunegonWarp - bit 6, [hl] ; return to last pokemon center (or player's house)? - res 6, [hl] - jr z, .otherDestination -; return to last pokemon center or player's house - ld a, [wLastBlackoutMap] - jr .usedFlyWarp -.usedDunegonWarp - ld hl, wd72d - res 4, [hl] - ld a, [wDungeonWarpDestinationMap] - ld b, a - ld [wCurMap], a - ld a, [wWhichDungeonWarp] - ld c, a - ld hl, DungeonWarpList - ld de, 0 - ld a, 6 - ld [wDungeonWarpDataEntrySize], a -.dungeonWarpListLoop - ld a, [hli] - cp b - jr z, .matchedDungeonWarpDestinationMap - inc hl - jr .nextDungeonWarp -.matchedDungeonWarpDestinationMap - ld a, [hli] - cp c - jr z, .matchedDungeonWarpID -.nextDungeonWarp - ld a, [wDungeonWarpDataEntrySize] - add e - ld e, a - jr .dungeonWarpListLoop -.matchedDungeonWarpID - ld hl, DungeonWarpData - add hl, de - jr .copyWarpData2 -.otherDestination - ld a, [wDestinationMap] -.usedFlyWarp - ld b, a - ld [wCurMap], a - ld hl, FlyWarpDataPtr -.flyWarpDataPtrLoop - ld a, [hli] - inc hl - cp b - jr z, .foundFlyWarpMatch - inc hl - inc hl - jr .flyWarpDataPtrLoop -.foundFlyWarpMatch - ld a, [hli] - ld h, [hl] - ld l, a -.copyWarpData2 - ld de, wCurrentTileBlockMapViewPointer - ld c, $6 -.copyWarpDataLoop2 - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .copyWarpDataLoop2 - xor a ; OVERWORLD - ld [wCurMapTileset], a -.done - ld [wYOffsetSinceLastSpecialWarp], a - ld [wXOffsetSinceLastSpecialWarp], a - ld a, $ff ; the player's coordinates have already been updated using a special warp, so don't use any of the normal warps - ld [wDestinationWarpID], a - ret - -INCLUDE "data/special_warps.asm" diff --git a/engine/surfing_minigame.asm b/engine/surfing_minigame.asm index b89d22dcc..578e6b1ed 100755 --- a/engine/surfing_minigame.asm +++ b/engine/surfing_minigame.asm @@ -3,52 +3,52 @@ SurfingPikachuMinigame: call DelayFrame call DelayFrame call DelayFrame - ld a, [hTilesetType] + ldh a, [hTilesetType] push af xor a - ld [hTilesetType], a + ldh [hTilesetType], a ld a, [wUpdateSpritesEnabled] push af ld a, $ff ld [wUpdateSpritesEnabled], a - ld a, [rIE] + ldh a, [rIE] push af xor a - ld [rIF], a + ldh [rIF], a ld a, $f - ld [rIE], a + ldh [rIE], a ld a, $8 - ld [rSTAT], a - ld a, [H_AUTOBGTRANSFERDEST + 1] + ldh [rSTAT], a + ldh a, [hAutoBGTransferDest + 1] push af ld a, $98 - ld [H_AUTOBGTRANSFERDEST + 1], a + ldh [hAutoBGTransferDest + 1], a call SurfingPikachuMinigameIntro call SurfingPikachuLoop xor a - ld [rBGP], a - ld [rOBP0], a - ld [rOBP1], a + ldh [rBGP], a + ldh [rOBP0], a + ldh [rOBP1], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 call ClearObjectAnimationBuffers call ClearSprites xor a - ld [hLCDCPointer], a - ld [hSCX], a - ld [hSCY], a + ldh [hLCDCPointer], a + ldh [hSCX], a + ldh [hSCY], a ld a, $90 - ld [hWY], a + ldh [hWY], a call DelayFrame pop af - ld [H_AUTOBGTRANSFERDEST + 1], a + ldh [hAutoBGTransferDest + 1], a xor a - ld [rIF], a + ldh [rIF], a pop af - ld [rIE], a + ldh [rIE], a xor a - ld [rSTAT], a + ldh [rSTAT], a call RunDefaultPaletteCommand call ReloadMapAfterSurfingMinigame call PlayDefaultMusic @@ -56,7 +56,7 @@ SurfingPikachuMinigame: pop af ld [wUpdateSpritesEnabled], a pop af - ld [hTilesetType], a + ldh [hTilesetType], a ret SurfingPikachuLoop: @@ -88,12 +88,12 @@ SurfingPikachu_CheckPressedSelect: ld hl, wd492 bit 1, [hl] ret z - ld a, [hJoyPressed] + ldh a, [hJoyPressed] and SELECT ret Func_f80b7: - ld a, [hJoyPressed] + ldh a, [hJoyPressed] and START ret z ld hl, wc5e2 @@ -175,7 +175,7 @@ SurfingPikachuMinigame_LoadGFXAndLayout: xor a call FillMemory xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call ClearObjectAnimationBuffers ld hl, SurfingPikachu1Graphics1 @@ -230,12 +230,12 @@ SurfingPikachuMinigame_LoadGFXAndLayout: call SurfingMinigame_InitScanlineOverrides xor a - ld [hSCX], a - ld [hSCY], a + ldh [hSCX], a + ldh [hSCY], a ld a, $7e - ld [hWY], a + ldh [hWY], a ld a, rSCY - $ff00 - ld [hLCDCPointer], a + ldh [hLCDCPointer], a ld a, $40 ld [wSurfingMinigamePikachuSpeed], a xor a @@ -251,12 +251,12 @@ SurfingPikachuMinigame_LoadGFXAndLayout: call Func_f81ff call Func_f8256 ld a, $e3 - ld [rLCDC], a + ldh [rLCDC], a call SurfingPikachuMinigame_SetBGPals ld a, $e4 - ld [rOBP0], a + ldh [rOBP0], a ld a, $e0 - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 ret @@ -266,13 +266,13 @@ SurfingPikachuMinigame_SetBGPals: and a jr nz, .sgb ld a, $d0 - ld [rBGP], a + ldh [rBGP], a call UpdateGBCPal_BGP ret .sgb ld a, $e4 - ld [rBGP], a + ldh [rBGP], a call UpdateGBCPal_BGP ret @@ -479,31 +479,31 @@ Func_f8324: ld hl, wSurfingMinigameRoutineNumber inc [hl] ld a, $90 - ld [hSCX], a + ldh [hSCX], a ld a, $72 ld [wSurfingMinigameWaveFunctionNumber], a ld a, $4 ld [wc5d2], a xor a - ld [hLCDCPointer], a + ldh [hLCDCPointer], a ld [wSurfingMinigameSCX], a ld [wSurfingMinigameSCX + 1], a ld [wSurfingMinigameSCX + 2], a ret Func_f835c: - ld a, [hSCX] + ldh a, [hSCX] and a jr z, .asm_f837b call SurfingMinigame_UpdateLYOverrides call SurfingMinigame_SetPikachuHeight call SurfingMinigame_ReadBGMapBuffer - ld a, [hSCX] + ldh a, [hSCX] dec a dec a dec a dec a - ld [hSCX], a + ldh [hSCX], a ld a, $e0 ld [wSurfingMinigameXOffset], a call SurfingMinigame_GenerateBGMap @@ -599,7 +599,7 @@ SurfingMinigame_WaitLast: SurfingMinigame_ExitOnPressA: call SurfingMinigame_UpdateLYOverrides - ld a, [hJoyPressed] + ldh a, [hJoyPressed] and A_BUTTON ret z ld hl, wSurfingMinigameRoutineNumber @@ -620,7 +620,7 @@ SurfingMinigame_GameOver: ret .wait_press_a - ld a, [hJoyPressed] + ldh a, [hJoyPressed] and A_BUTTON ret z ld hl, wSurfingMinigameRoutineNumber @@ -662,7 +662,7 @@ SurfingMinigame_UpdatePikachuDistance: dec [hl] ret -SurfingMinigameAnimatedObjectFn_Pikachu +SurfingMinigameAnimatedObjectFn_Pikachu: ld a, [wc5d2] ld e, a ld d, $0 @@ -1088,7 +1088,7 @@ SufingMinigame_ReduceSpeedBy128: ret Func_f871e: - ld a, [hSCX] + ldh a, [hSCX] and $7 cp $3 jr c, .asm_f8740 @@ -1110,7 +1110,7 @@ Func_f871e: ret Func_f8742: - ld a, [hSCX] + ldh a, [hSCX] and $7 cp $3 ret c @@ -1209,7 +1209,7 @@ Func_f87b5: ret .GetYCoord: - ld a, [hSCX] + ldh a, [hSCX] and $8 jr nz, .get_height_plus_9 ld hl, wSurfingMinigameWaveHeight + 8 @@ -1229,7 +1229,7 @@ Func_f87b5: ret .six_or_twenty - ld a, [hSCX] + ldh a, [hSCX] and $7 ld e, a ld a, [hl] @@ -1237,7 +1237,7 @@ Func_f87b5: ret .seven - ld a, [hSCX] + ldh a, [hSCX] and $7 add [hl] ret @@ -1328,7 +1328,7 @@ SurfingMinigame_MoveClouds: SurfingMinigame_ReadBGMapBuffer: ld a, [wSurfingMinigameBGMapReadBuffer] ; ??? - ld a, [hSCX] + ldh a, [hSCX] add $48 ld e, a srl e @@ -1358,19 +1358,19 @@ SurfingMinigame_ReadBGMapBuffer: .copy ld de, wSurfingMinigameBGMapReadBuffer ld a, e - ld [H_VBCOPYDEST], a + ldh [hVBlankCopyDest], a ld a, d - ld [H_VBCOPYDEST + 1], a + ldh [hVBlankCopyDest + 1], a ld a, l - ld [H_VBCOPYSRC], a + ldh [hVBlankCopySource], a ld a, h - ld [H_VBCOPYSRC + 1], a + ldh [hVBlankCopySource + 1], a ld a, 16 / $10 - ld [H_VBCOPYSIZE], a + ldh [hVBlankCopySize], a ret SurfingMinigame_SetPikachuHeight: - ld a, [hSCX] + ldh a, [hSCX] and $8 jr nz, .asm_f88b9 ld hl, wSurfingMinigameWaveHeight + 7 @@ -1391,7 +1391,7 @@ SurfingMinigame_SetPikachuHeight: ret .asm_f88d0 - ld a, [hSCX] + ldh a, [hSCX] and $7 ld e, a ld a, [hl] @@ -1400,7 +1400,7 @@ SurfingMinigame_SetPikachuHeight: ret .asm_f88db - ld a, [hSCX] + ldh a, [hSCX] and $7 add [hl] ld [wSurfingMinigamePikachuObjectHeight], a @@ -1457,7 +1457,7 @@ SurfingMinigame_DrawResultsScreen: xor a call FillMemory ld hl, .BeachTilemap - coord de, 0, 6 + decoord 0, 6 ld bc, .BeachTilemapEnd - .BeachTilemap call CopyData call .PlaceTextbox @@ -1466,7 +1466,7 @@ SurfingMinigame_DrawResultsScreen: xor a call FillMemory ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ret .BeachTilemap: @@ -1474,39 +1474,39 @@ INCBIN "gfx/unknown_f8946.map" .BeachTilemapEnd: .PlaceTextbox: - coord hl, 1, 1 + hlcoord 1, 1 lb de, $3b, $3c ld a, $40 call .place_row - coord hl, 1, 2 + hlcoord 1, 2 lb de, $3f, $3f ld a, $ff call .place_row - coord hl, 1, 3 + hlcoord 1, 3 lb de, $3f, $3f ld a, $ff call .place_row - coord hl, 1, 4 + hlcoord 1, 4 lb de, $3f, $3f ld a, $ff call .place_row - coord hl, 1, 5 + hlcoord 1, 5 lb de, $3f, $3f ld a, $ff call .place_row - coord hl, 1, 6 + hlcoord 1, 6 lb de, $3f, $3f ld a, $ff call .place_row - coord hl, 1, 7 + hlcoord 1, 7 lb de, $3f, $3f ld a, $ff call .place_row - coord hl, 1, 8 + hlcoord 1, 8 lb de, $3f, $3f ld a, $ff call .place_row - coord hl, 1, 9 + hlcoord 1, 9 lb de, $3d, $3e ld a, $40 call .place_row @@ -1525,7 +1525,7 @@ INCBIN "gfx/unknown_f8946.map" SurfingMinigame_PrintTextHiScore: ld hl, .Hi_Score - coord de, 6, 8 + decoord 6, 8 ld bc, $9 call CopyData ret @@ -1535,7 +1535,7 @@ SurfingMinigame_PrintTextHiScore: SurfingMinigame_WriteHPLeft: ld hl, .HP_Left - coord de, 2, 2 + decoord 2, 2 ld bc, $7 call CopyData call SurfingMinigame_BCDPrintHPLeft @@ -1570,7 +1570,7 @@ SurfingMinigame_AddRemainingHPToTotal: ret SurfingMinigame_BCDPrintHPLeft: - coord hl, 10, 2 + hlcoord 10, 2 ld de, wSurfingMinigamePikachuHP + 1 ld a, [de] call SurfingPikachu_PlaceBCDNumber @@ -1588,7 +1588,7 @@ SurfingMinigame_BCDPrintHPLeft: SurfingMinigame_WriteRadness: ld hl, .Radness - coord de, 2, 4 + decoord 2, 4 ld bc, $7 call CopyData call SurfingMinigame_BCDPrintRadness @@ -1633,10 +1633,10 @@ SurfingMinigame_AddRadnessToTotal: SurfingMinigame_BCDPrintRadness: ld a, [wSurfingMinigameRadnessScore + 1] - coord hl, 10, 4 + hlcoord 10, 4 call SurfingPikachu_PlaceBCDNumber ld a, [wSurfingMinigameRadnessScore] - coord hl, 12, 4 + hlcoord 12, 4 call SurfingPikachu_PlaceBCDNumber inc hl inc hl @@ -1664,10 +1664,10 @@ SurfingMinigame_AddPointsToTotal: SurfingMinigame_BCDPrintTotalScore: ld a, [wSurfingMinigameTotalScore + 1] - coord hl, 10, 6 + hlcoord 10, 6 call SurfingPikachu_PlaceBCDNumber ld a, [wSurfingMinigameTotalScore] - coord hl, 12, 6 + hlcoord 12, 6 call SurfingPikachu_PlaceBCDNumber inc hl inc hl @@ -1680,7 +1680,7 @@ SurfingMinigame_BCDPrintTotalScore: SurfingMinigame_WriteTotal: ld hl, .Total - coord de, 2, 6 + decoord 2, 6 ld bc, $5 call CopyData call SurfingMinigame_BCDPrintRadness @@ -1723,10 +1723,10 @@ DidPlayerGetAHighScore: SurfingMinigame_PlayPikaCryIfSurfingPikaInParty: push de - callab IsSurfingPikachuInThePlayersParty + callfar IsSurfingPikachuInThePlayersParty pop de ret nc - callab PlayPikachuSoundClip + callfar PlayPikachuSoundClip ret SurfingMinigame_IncreaseRadnessMeter: @@ -1853,7 +1853,7 @@ SurfingMinigame_AddRadness: Func_f8c97: ld a, $a0 ld [wSurfingMinigameXOffset], a - ld a, [hSCX] + ldh a, [hSCX] ld h, a ld a, [wSurfingMinigameSCX] ld l, a @@ -1862,13 +1862,13 @@ Func_f8c97: ld a, l ld [wSurfingMinigameSCX], a ld a, h - ld [hSCX], a + ldh [hSCX], a jr SurfingMinigame_GenerateBGMap SurfingMinigame_ScrollAndGenerateBGMap: ld a, $a0 ld [wSurfingMinigameXOffset], a - ld a, [hSCX] + ldh a, [hSCX] ld h, a ld a, [wSurfingMinigameSCX] ld l, a @@ -1877,10 +1877,10 @@ SurfingMinigame_ScrollAndGenerateBGMap: ld a, l ld [wSurfingMinigameSCX], a ld a, h - ld [hSCX], a + ldh [hSCX], a SurfingMinigame_GenerateBGMap: ld hl, wSurfingMinigameSCX + 1 - ld a, [hSCX] + ldh a, [hSCX] cp [hl] ret z ld [hl], a @@ -1921,7 +1921,7 @@ SurfingMinigame_GenerateBGMap: jr nz, .loop ld a, [wSurfingMinigameXOffset] ld e, a - ld a, [hSCX] + ldh a, [hSCX] add e and $f0 srl a @@ -1932,11 +1932,11 @@ SurfingMinigame_GenerateBGMap: ld hl, vBGMap0 add hl, de ld a, l - ld [hRedrawRowOrColumnDest], a + ldh [hRedrawRowOrColumnDest], a ld a, h - ld [hRedrawRowOrColumnDest + 1], a + ldh [hRedrawRowOrColumnDest + 1], a ld a, $1 - ld [hRedrawRowOrColumnMode], a + ldh [hRedrawRowOrColumnMode], a ret .CopyRedrawSrcTiles: @@ -2330,7 +2330,7 @@ SurfingPikachuMinigameIntro: call ClearSprites call DisableLCD xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call ClearObjectAnimationBuffers ld hl, SurfingPikachu1Graphics3 ld de, $8800 @@ -2358,24 +2358,24 @@ SurfingPikachuMinigameIntro: call SpawnAnimatedObject call DrawSurfingPikachuMinigameIntroBackground xor a - ld [hSCX], a - ld [hSCY], a + ldh [hSCX], a + ldh [hSCY], a ld a, $90 - ld [hWY], a + ldh [hWY], a ld b, $f call RunPaletteCommand ld a, $e3 - ld [rLCDC], a + ldh [rLCDC], a ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call DelayFrame call DelayFrame call DelayFrame call SurfingPikachuMinigame_SetBGPals ld a, $e4 - ld [rOBP0], a + ldh [rOBP0], a ld a, $e0 - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 call DelayFrame @@ -2400,22 +2400,22 @@ DrawSurfingPikachuMinigameIntroBackground: ld a, $ff call FillMemory ld hl, Tilemap_f90bc - coord de, 0, 6 + decoord 0, 6 ld bc, 12 * SCREEN_WIDTH call CopyData ld de, Tilemap_f91c8 - coord hl, 4, 0 + hlcoord 4, 0 lb bc, 6, 12 call .CopyBox - coord hl, 3, 7 + hlcoord 3, 7 lb bc, 3, 15 call .FillBoxWithFF ld hl, Tilemap_f91ac - coord de, 3, 7 + decoord 3, 7 ld bc, 15 call CopyData ld hl, Tilemap_f91bb - coord de, 4, 9 + decoord 4, 9 ld bc, 13 call CopyData ret @@ -2499,25 +2499,25 @@ SurfingMinigame_InitScanlineOverrides: SurfingPikachu_GetJoypad_3FrameBuffer: call Joypad - ld a, [H_FRAMECOUNTER] + ldh a, [hFrameCounter] and a jr nz, .delayed - ld a, [hJoyHeld] - ld [hJoy5], a + ldh a, [hJoyHeld] + ldh [hJoy5], a ld a, $2 - ld [H_FRAMECOUNTER], a + ldh [hFrameCounter], a ret .delayed xor a - ld [hJoy5], a + ldh [hJoy5], a ret SurfingPikachuMinigame_BlankPals: xor a - ld [rBGP], a - ld [rOBP0], a - ld [rOBP1], a + ldh [rBGP], a + ldh [rOBP0], a + ldh [rOBP1], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 @@ -2525,10 +2525,10 @@ SurfingPikachuMinigame_BlankPals: SurfingPikachuMinigame_NormalPals: ld a, $e4 - ld [rBGP], a - ld [rOBP0], a + ldh [rBGP], a + ldh [rOBP0], a ld a, $e0 - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 diff --git a/engine/test_battle.asm b/engine/test_battle.asm deleted file mode 100644 index d9dcf1fab..000000000 --- a/engine/test_battle.asm +++ /dev/null @@ -1,45 +0,0 @@ -TestBattle: - ret - -.loop - call GBPalNormal - - ; Don't mess around - ; with obedience. - ld a, %10000000 ; EARTHBADGE - ld [wObtainedBadges], a - - ld hl, wFlags_D733 - set BIT_TEST_BATTLE, [hl] - - ; Reset the party. - ld hl, wPartyCount - xor a - ld [hli], a - dec a - ld [hl], a - - ; Give the player a - ; level 20 Rhydon. - ld a, RHYDON - ld [wcf91], a - ld a, 20 - ld [wCurEnemyLVL], a - xor a - ld [wMonDataLocation], a - ld [wCurMap], a - call AddPartyMon - - ; Fight against a - ; level 20 Rhydon. - ld a, RHYDON - ld [wCurOpponent], a - - predef InitOpponent - - ; When the battle ends, - ; do it all again. - ld a, 1 - ld [wUpdateSpritesEnabled], a - ld [H_AUTOBGTRANSFERENABLED], a - jr .loop diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm deleted file mode 100755 index d4dd0fd36..000000000 --- a/engine/titlescreen.asm +++ /dev/null @@ -1,370 +0,0 @@ -SetDefaultNamesBeforeTitlescreen: - ld hl, NintenText - ld de, wPlayerName - call CopyFixedLengthText - ld hl, SonyText - ld de, wRivalName - call CopyFixedLengthText - xor a - ld [hWY], a - ld [wLetterPrintingDelayFlags], a - ld hl, wd732 - ld [hli], a - ld [hli], a - ld [hl], a - ld a, BANK(Music_TitleScreen) - ld [wAudioROMBank], a - ld [wAudioSavedROMBank], a - -DisplayTitleScreen: - call GBPalWhiteOut - ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a - xor a - ld [hTilesetType], a - ld [hSCX], a - ld a, $40 - ld [hSCY], a - ld a, $90 - ld [hWY], a - call ClearScreen - call DisableLCD - call LoadFontTilePatterns -; todo: fix hl pointers - ld hl, NintendoCopyrightLogoGraphics - ld de, vTitleLogo + $600 - ld bc, $50 - ld a, BANK(NintendoCopyrightLogoGraphics) - call FarCopyData - ld hl, NineTile - ld de, vTitleLogo + $6e0 - ld bc, $10 - ld a, BANK(NineTile) - call FarCopyData - ld hl, GamefreakLogoGraphics - ld de, vTitleLogo + 101 * $10 - ld bc, 9 * $10 - ld a, BANK(GamefreakLogoGraphics) - call FarCopyData - callab LoadYellowTitleScreenGFX - ld hl, vBGMap0 - ld bc, (vBGMap1 + $400) - vBGMap0 - ld a, " " - call FillMemory - callab TitleScreen_PlacePokemonLogo - call FillSpriteBuffer0WithAA - call .WriteCopyrightTiles - call SaveScreenTilesToBuffer2 - call LoadScreenTilesFromBuffer2 - call EnableLCD - callab TitleScreen_PlacePikachu - ld a, $9b - call TitleScreenCopyTileMapToVRAM - call SaveScreenTilesToBuffer1 - ld a, $40 - ld [hWY], a - call LoadScreenTilesFromBuffer2 - ld a, vBGMap0 / $100 - call TitleScreenCopyTileMapToVRAM - ld b, SET_PAL_TITLE_SCREEN - call RunPaletteCommand - call GBPalNormal - ld a, %11100000 - ld [rOBP0], a - call UpdateGBCPal_OBP0 - -; make pokemon logo bounce up and down - ld bc, hSCY ; background scroll Y - ld hl, .TitleScreenPokemonLogoYScrolls -.bouncePokemonLogoLoop - ld a, [hli] - and a - jr z, .finishedBouncingPokemonLogo - ld d, a - cp -3 - jr nz, .skipPlayingSound - ld a, SFX_INTRO_CRASH - call PlaySound -.skipPlayingSound - ld a, [hli] - ld e, a - call .ScrollTitleScreenPokemonLogo - jr .bouncePokemonLogoLoop - -.TitleScreenPokemonLogoYScrolls: -; Controls the bouncing effect of the Pokemon logo on the title screen - db -4,16 ; y scroll amount, number of times to scroll - db 3,4 - db -3,4 - db 2,2 - db -2,2 - db 1,2 - db -1,2 - db 0 ; terminate list with 0 - -.ScrollTitleScreenPokemonLogo: -; Scrolls the Pokemon logo on the title screen to create the bouncing effect -; Scrolls d pixels e times - call DelayFrame - ld a, [bc] ; background scroll Y - add d - ld [bc], a - dec e - jr nz, .ScrollTitleScreenPokemonLogo - ret - -; place tiles for title screen copyright -.WriteCopyrightTiles - coord hl, 2, 17 - ld de, .tileScreenCopyrightTiles -.titleScreenCopyrightTilesLoop - ld a, [de] - inc de - cp $ff - ret z - ld [hli], a - jr .titleScreenCopyrightTilesLoop - -.tileScreenCopyrightTiles - db $e0,$e1,$e2,$e3,$e1,$e2,$ee,$e5,$e6,$e7,$e8,$e9,$ea,$eb,$ec,$ed,$ff ; ©1995-1999 GAME FREAK inc. - -.finishedBouncingPokemonLogo - call LoadScreenTilesFromBuffer1 - ld c, 36 - call DelayFrames - ld a, SFX_INTRO_WHOOSH - call PlaySound - -; scroll game version in from the right - callab TitleScreen_PlacePikaSpeechBubble - ld a, SCREEN_HEIGHT_PIXELS - ld [hWY], a - call Delay3 - ld e, 0 - call TitleScreen_PlayPikachuPCM - call WaitForSoundToFinish - call StopAllMusic - ld a, MUSIC_TITLE_SCREEN - ld [wNewSoundID], a - call PlaySound -.loop - xor a - ld [wUnusedCC5B], a - ld [wTitleScreenScene], a - ld [wTitleScreenScene + 1], a - ld [wTitleScreenScene + 2], a - ld [wTitleScreenScene + 3], a - ld a, $f - ld [wTitleScreenScene + 4], a -.titleScreenLoop - call IncrementResetCounter - jp c, .doTitlescreenReset - call DelayFrame - call JoypadLowSensitivity - ld a, [hJoyHeld] - cp D_UP | SELECT | B_BUTTON - jr z, .go_to_main_menu - and A_BUTTON | START - jr nz, .go_to_main_menu - call DoTitleScreenFunction - jr .titleScreenLoop - -.go_to_main_menu - ld e, $a - call TitleScreen_PlayPikachuPCM - call GBPalWhiteOutWithDelay3 - call ClearSprites - xor a - ld [hWY], a - inc a - ld [H_AUTOBGTRANSFERENABLED], a - call ClearScreen - ld a, vBGMap0 / $100 - call TitleScreenCopyTileMapToVRAM - ld a, vBGMap1 / $100 - call TitleScreenCopyTileMapToVRAM - call Delay3 - call LoadGBPal - ld a, [hJoyHeld] - ld b, a - and D_UP | SELECT | B_BUTTON - cp D_UP | SELECT | B_BUTTON - jp z, .doClearSaveDialogue - jp MainMenu - -.asm_42f0 -; unreferenced - callab PrinterDebug - jp .loop - -.asm_42fb -; unreferenced - ld a, [wTitleScreenScene + 4] - inc a - cp $2a - jr c, .asm_4305 - ld a, $f -.asm_4305 - ld [wTitleScreenScene + 4], a - ld e, a - callab PlayPikachuSoundClip - xor a - ld [wTitleScreenScene + 2], a - ld [wTitleScreenScene + 3], a - jp .titleScreenLoop - -.doTitlescreenReset - ld [wAudioFadeOutControl], a - call StopAllMusic -.audioFadeLoop - ld a, [wAudioFadeOutControl] - and a - jr nz, .audioFadeLoop - jp Init - -.doClearSaveDialogue - jpba DoClearSaveDialogue - - -TitleScreenCopyTileMapToVRAM: - ld [H_AUTOBGTRANSFERDEST + 1], a - jp Delay3 - -LoadCopyrightAndTextBoxTiles: - xor a - ld [hWY], a - call ClearScreen - call LoadTextBoxTilePatterns - -LoadCopyrightTiles: - ld de, NintendoCopyrightLogoGraphics - ld hl, vChars2 + $600 - lb bc, BANK(NintendoCopyrightLogoGraphics), (TextBoxGraphics + $10 - NintendoCopyrightLogoGraphics) / $10 ; bug: overflows into text box graphics and copies the "A" tile - call CopyVideoData - coord hl, 2, 7 - ld de, CopyrightTextString - jp PlaceString - -CopyrightTextString: - db $60,$61,$62,$63,$61,$62,$7c,$7f,$65,$66,$67,$68,$69,$6a ; ©1995-1999 Nintendo - next $60,$61,$62,$63,$61,$62,$7c,$7f,$6b,$6c,$6d,$6e,$6f,$70,$71,$72 ; ©1995-1999 Creatures inc. - next $60,$61,$62,$63,$61,$62,$7c,$7f,$73,$74,$75,$76,$77,$78,$79,$7a,$7b ; ©1995-1999 GAME FREAK inc. - db "@" - -TitleScreen_PlayPikachuPCM: - callab PlayPikachuSoundClip - ret - -DoTitleScreenFunction: - call .CheckTimer - ld a, [wTitleScreenScene] - ld e, a - ld d, 0 - ld hl, .Jumptable - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl - - -.Jumptable: - dw .Nop - dw .BlinkHalf - dw .BlinkWait - dw .BlinkWait - dw .BlinkClosed - dw .BlinkWait - dw .BlinkWait - dw .BlinkHalf - dw .BlinkWait - dw .BlinkWait - dw .BlinkOpen - dw .GoBackToStart - -.GoBackToStart: - xor a - ld [wTitleScreenScene], a -.Nop - ret - -.BlinkOpen: - ld e, 0 - jr .LoadBlinkFrame - -.BlinkHalf: - ld e, 4 - jr .LoadBlinkFrame - -.BlinkClosed: - ld e, 8 -.LoadBlinkFrame: - ld hl, wOAMBuffer + 2 - ld c, 8 -.loop - ld a, [hl] - and $f3 - or e - ld [hli], a - inc hl - inc hl - inc hl - dec c - jr nz, .loop -.BlinkWait: - ld hl, wTitleScreenScene - inc [hl] - ret - -.CheckTimer: - ld hl, wTitleScreenTimer - ld a, [hl] - inc [hl] - and a - jr z, .restart - cp $80 - jr z, .restart - cp $90 - ret nz -.restart - ld a, $1 - ld [wTitleScreenScene], a - ret - -; copy text of fixed length NAME_LENGTH (like player name, rival name, mon names, ...) -CopyFixedLengthText: - ld bc, NAME_LENGTH - jp CopyData - -NintenText: db "NINTEN@" -SonyText: db "SONY@" - -IncrementResetCounter: - ld hl, wTitleScreenScene + 2 - ld e, [hl] - inc hl - ld d, [hl] - inc de - ld a, d - cp $c - jr z, .doReset - ld [hl], d - dec hl - ld [hl], e - and a - ret - -.doReset - scf - ret - -FillSpriteBuffer0WithAA: - xor a - call SwitchSRAMBankAndLatchClockData - ld hl, sSpriteBuffer0 - ld bc, $20 - ld a, $aa - call FillMemory - call PrepareRTCDataAndDisableSRAM - ret diff --git a/engine/titlescreen2.asm b/engine/titlescreen2.asm deleted file mode 100755 index 8b4bc4de2..000000000 --- a/engine/titlescreen2.asm +++ /dev/null @@ -1,122 +0,0 @@ -; Leftover of Red/Blue. Seemingly unused - -TitleScroll_WaitBall: -; Wait around for the TitleBall animation to play out. -; hi: speed -; lo: duration - db $05, $05, 0 - -TitleScroll_In: -; Scroll a TitleMon in from the right. -; hi: speed -; lo: duration - db $a2, $94, $84, $63, $52, $31, $11, 0 - -TitleScroll_Out: -; Scroll a TitleMon out to the left. -; hi: speed -; lo: duration - db $12, $22, $32, $42, $52, $62, $83, $93, 0 - -TitleScroll: - ld a, d - - ld bc, TitleScroll_In - ld d, $88 - ld e, 0 ; don't animate titleball - - and a - jr nz, .ok - - ld bc, TitleScroll_Out - ld d, $00 - ld e, 0 ; don't animate titleball -.ok - -_TitleScroll: - ld a, [bc] - and a - ret z - - inc bc - push bc - - ld b, a - and $f - ld c, a - ld a, b - and $f0 - swap a - ld b, a - -.loop - ld h, d - ld l, $48 - call .ScrollBetween - - ld h, $00 - ld l, $88 - call .ScrollBetween - - ld a, d - add b - ld d, a - - call GetTitleBallY - dec c - jr nz, .loop - - pop bc - jr _TitleScroll - -.ScrollBetween: -.wait - ld a, [rLY] ; rLY - cp l - jr nz, .wait - - ld a, h - ld [rSCX], a - -.wait2 - ld a, [rLY] ; rLY - cp h - jr z, .wait2 - ret - -TitleBallYTable: -; OBJ y-positions for the Poke Ball held by Red in the title screen. -; This is really two 0-terminated lists. Initiated with an index of 1. - db 0, $71, $6f, $6e, $6d, $6c, $6d, $6e, $6f, $71, $74, 0 - -TitleScreenAnimateBallIfStarterOut: -; Animate the TitleBall if a starter just got scrolled out. - ld a, [wTitleScreenScene] - cp STARTER1 - jr z, .ok - cp STARTER2 - jr z, .ok - cp STARTER3 - ret nz -.ok - ld e, 1 ; animate titleball - ld bc, TitleScroll_WaitBall - ld d, 0 - jp _TitleScroll - -GetTitleBallY: -; Get position e from TitleBallYTable - push de - push hl - xor a - ld d, a - ld hl, TitleBallYTable - add hl, de - ld a, [hl] - pop hl - pop de - and a - ret z - ld [wOAMBuffer + $28], a - inc e - ret diff --git a/engine/town_map.asm b/engine/town_map.asm deleted file mode 100755 index 7d32b5fef..000000000 --- a/engine/town_map.asm +++ /dev/null @@ -1,628 +0,0 @@ -DisplayTownMap: - call LoadTownMap - ld hl, wUpdateSpritesEnabled - ld a, [hl] - push af - ld [hl], $ff - push hl - ld a, $1 - ld [hJoy7], a - ld a, [wCurMap] - push af - ld b, $0 - call DrawPlayerOrBirdSprite ; player sprite - coord hl, 1, 0 - ld de, wcd6d - call PlaceString - ld hl, wOAMBuffer - ld de, wTileMapBackup - ld bc, $10 - call CopyData - ld hl, vSprites + $40 - ld de, TownMapCursor - lb bc, BANK(TownMapCursor), (TownMapCursorEnd - TownMapCursor) / $8 - call CopyVideoDataDouble - xor a - ld [wWhichTownMapLocation], a - pop af - jr .enterLoop - -.townMapLoop - coord hl, 0, 0 - lb bc, 1, 20 - call ClearScreenArea - ld hl, TownMapOrder - ld a, [wWhichTownMapLocation] - ld c, a - ld b, 0 - add hl, bc - ld a, [hl] -.enterLoop - ld de, wTownMapCoords - call LoadTownMapEntry - ld a, [de] - push hl - call TownMapCoordsToOAMCoords - ld a, $4 - ld [wOAMBaseTile], a - ld hl, wOAMBuffer + $10 - call WriteTownMapSpriteOAM ; town map cursor sprite - pop hl - ld de, wcd6d -.copyMapName - ld a, [hli] - ld [de], a - inc de - cp $50 - jr nz, .copyMapName - coord hl, 1, 0 - ld de, wcd6d - call PlaceString - ld hl, wOAMBuffer + $10 - ld de, wTileMapBackup + 16 - ld bc, $10 - call CopyData -.inputLoop - call TownMapSpriteBlinkingAnimation - call JoypadLowSensitivity - ld a, [hJoy5] - ld b, a - and A_BUTTON | B_BUTTON | D_UP | D_DOWN - jr z, .inputLoop - ld a, SFX_TINK - call PlaySound - bit 6, b - jr nz, .pressedUp - bit 7, b - jr nz, .pressedDown - xor a - ld [wTownMapSpriteBlinkingEnabled], a - ld [hJoy7], a - ld [wAnimCounter], a - call ExitTownMap - pop hl - pop af - ld [hl], a - ret -.pressedUp - ld a, [wWhichTownMapLocation] - inc a - cp TownMapOrderEnd - TownMapOrder ; number of list items + 1 - jr nz, .noOverflow - xor a -.noOverflow - ld [wWhichTownMapLocation], a - jp .townMapLoop -.pressedDown - ld a, [wWhichTownMapLocation] - dec a - cp -1 - jr nz, .noUnderflow - ld a, TownMapOrderEnd - TownMapOrder - 1 ; number of list items -.noUnderflow - ld [wWhichTownMapLocation], a - jp .townMapLoop - -.asm_70f87 - ld a,[hJoy5] - and D_DOWN | D_UP - ret z - callab PlayPikachuSoundClip - ret - -INCLUDE "data/town_map_order.asm" - -TownMapCursor: - INCBIN "gfx/town_map_cursor.1bpp" -TownMapCursorEnd: - -LoadTownMap_Nest: - call LoadTownMap - ld hl, wUpdateSpritesEnabled - ld a, [hl] - push af - ld [hl], $ff - push hl - call DisplayWildLocations - call GetMonName - coord hl, 1, 0 - call PlaceString - ld h, b - ld l, c - ld de, MonsNestText - call PlaceString - call WaitForTextScrollButtonPress - call ExitTownMap - pop hl - pop af - ld [hl], a - ret - -MonsNestText: - db "'s NEST@" - -LoadTownMap_Fly: - call ClearSprites - call LoadTownMap - ld a, $1 - ld [hJoy7], a - call LoadPlayerSpriteGraphics - call LoadFontTilePatterns - ld de, BirdSprite - ld b, BANK(BirdSprite) - ld c, $c - ld hl, vSprites + $40 - call CopyVideoData - ld de, TownMapUpArrow - ld hl, vChars1 + $6d0 - lb bc, BANK(TownMapUpArrow), (TownMapUpArrowEnd - TownMapUpArrow) / $8 - call CopyVideoDataDouble - call BuildFlyLocationsList - ld hl, wUpdateSpritesEnabled - ld a, [hl] - push af - ld [hl], $ff - push hl - coord hl, 0, 0 - ld de, ToText - call PlaceString - ld a, [wCurMap] - ld b, $0 - call DrawPlayerOrBirdSprite - ld hl, wFlyLocationsList - coord de, 18, 0 -.townMapFlyLoop - ld a, " " - ld [de], a - push hl - push hl - coord hl, 3, 0 - lb bc, 1, 15 - call ClearScreenArea - pop hl - ld a, [hl] - ld b, $4 - call DrawPlayerOrBirdSprite ; draw bird sprite - coord hl, 3, 0 - ld de, wcd6d - call PlaceString - ld c, 15 - call DelayFrames - coord hl, 18, 0 - ld [hl], "▶" - coord hl, 19, 0 - ld [hl], "▼" - pop hl -.inputLoop - push hl - call DelayFrame - call JoypadLowSensitivity - ld a, [hJoy5] - ld b, a - pop hl - and A_BUTTON | B_BUTTON | D_UP | D_DOWN - jr z, .inputLoop - bit 0, b - jr nz, .pressedA - ld a, SFX_TINK - call PlaySound - bit 6, b - jr nz, .pressedUp - bit 7, b - jr nz, .pressedDown - jr .pressedB -.pressedA - ld a, SFX_HEAL_AILMENT - call PlaySound - ld a, [hl] - ld [wDestinationMap], a - ld hl, wd732 - set 3, [hl] - inc hl - set 7, [hl] -.pressedB - xor a - ld [wTownMapSpriteBlinkingEnabled], a - ld [hJoy7], a - call GBPalWhiteOutWithDelay3 - pop hl - pop af - ld [hl], a - ret -.pressedUp - coord de, 18, 0 - inc hl - ld a, [hl] - cp $ff - jr z, .wrapToStartOfList - cp $fe - jr z, .pressedUp ; skip past unvisited towns - jp .townMapFlyLoop -.wrapToStartOfList - ld hl, wFlyLocationsList - jp .townMapFlyLoop -.pressedDown - coord de, 19, 0 - dec hl - ld a, [hl] - cp $ff - jr z, .wrapToEndOfList - cp $fe - jr z, .pressedDown ; skip past unvisited towns - jp .townMapFlyLoop -.wrapToEndOfList - ld hl, wFlyLocationsList + 11 - jr .pressedDown - -ToText: - db "To@" - -BuildFlyLocationsList: - ld hl, wFlyLocationsList - 1 - ld [hl], $ff - inc hl - ld a, [wTownVisitedFlag] - ld e, a - ld a, [wTownVisitedFlag + 1] - ld d, a - ld bc, SAFFRON_CITY + 1 -.loop - srl d - rr e - ld a, $fe ; store $fe if the town hasn't been visited - jr nc, .notVisited - ld a, b ; store the map number of the town if it has been visited -.notVisited - ld [hl], a - inc hl - inc b - dec c - jr nz, .loop - ld [hl], $ff - ret - -TownMapUpArrow: - INCBIN "gfx/up_arrow.1bpp" -TownMapUpArrowEnd: - -LoadTownMap: - call GBPalWhiteOutWithDelay3 - call ClearScreen - call UpdateSprites - coord hl, 0, 0 - lb bc, $12, $12 - call TextBoxBorder - call DisableLCD - ld hl, WorldMapTileGraphics - ld de, vChars2 + $600 - ld bc, WorldMapTileGraphicsEnd - WorldMapTileGraphics - ld a, BANK(WorldMapTileGraphics) - call FarCopyData - ld hl, MonNestIcon - ld de, vSprites + $40 - ld bc, MonNestIconEnd - MonNestIcon - ld a, BANK(MonNestIcon) - call FarCopyDataDouble - coord hl, 0, 0 - ld de, CompressedMap -.nextTile - ld a, [de] - and a - jr z, .done - ld b, a - and $f - ld c, a - ld a, b - swap a - and $f - add $60 -.writeRunLoop - ld [hli], a - dec c - jr nz, .writeRunLoop - inc de - jr .nextTile -.done - call EnableLCD - ld b, SET_PAL_TOWN_MAP - call RunPaletteCommand - call Delay3 - call GBPalNormal - xor a - ld [wAnimCounter], a - inc a - ld [wTownMapSpriteBlinkingEnabled], a - ret - -CompressedMap: -; you can decompress this file with the redrle program in the extras/ dir - INCBIN "gfx/town_map.rle" - -ExitTownMap: -; clear town map graphics data and load usual graphics data - xor a - ld [wTownMapSpriteBlinkingEnabled], a - call GBPalWhiteOut - call ClearScreen - call ClearSprites - call LoadPlayerSpriteGraphics - call LoadFontTilePatterns - call UpdateSprites - jp RunDefaultPaletteCommand - -DrawPlayerOrBirdSprite: -; a = map number -; b = OAM base tile - push af - ld a, b - ld [wOAMBaseTile], a - pop af - ld de, wTownMapCoords - call LoadTownMapEntry - ld a, [de] - push hl - call TownMapCoordsToOAMCoords - call WritePlayerOrBirdSpriteOAM - pop hl - ld de, wcd6d -.loop - ld a, [hli] - ld [de], a - inc de - cp "@" - jr nz, .loop - ld hl, wOAMBuffer - ld de, wTileMapBackup - ld bc, $a0 - jp CopyData - -DisplayWildLocations: - callba FindWildLocationsOfMon - call ZeroOutDuplicatesInList - ld hl, wOAMBuffer - ld de, wTownMapCoords -.loop - ld a, [de] - cp $ff - jr z, .exitLoop - and a - jr z, .nextEntry - push hl - call LoadTownMapEntry - pop hl - ld a, [de] - cp $19 ; Cerulean Cave's coordinates - jr z, .nextEntry ; skip Cerulean Cave - call TownMapCoordsToOAMCoords - ld a, $4 ; nest icon tile no. - ld [hli], a - xor a - ld [hli], a -.nextEntry - inc de - jr .loop -.exitLoop - ld a, l - and a ; were any OAM entries written? - jr nz, .drawPlayerSprite -; if no OAM entries were written, print area unknown text - coord hl, 1, 7 - lb bc, 2, 15 - call TextBoxBorder - coord hl, 2, 9 - ld de, AreaUnknownText - call PlaceString - jr .done -.drawPlayerSprite - ld a, [wCurMap] - ld b, $0 - call DrawPlayerOrBirdSprite -.done - ld hl, wOAMBuffer - ld de, wTileMapBackup - ld bc, $a0 - jp CopyData - -AreaUnknownText: - db " AREA UNKNOWN@" - -TownMapCoordsToOAMCoords: -; in: lower nybble of a = x, upper nybble of a = y -; out: b and [hl] = (y * 8) + 24, c and [hl+1] = (x * 8) + 24 - push af - and $f0 - srl a - add 24 - ld b, a - ld [hli], a - pop af - and $f - swap a - srl a - add 24 - ld c, a - ld [hli], a - ret - -WritePlayerOrBirdSpriteOAM: - ld a, [wOAMBaseTile] - and a - ld hl, wOAMBuffer + $90 ; for player sprite - jr z, WriteTownMapSpriteOAM - ld hl, wOAMBuffer + $80 ; for bird sprite - -WriteTownMapSpriteOAM: - push hl - -; Subtract 4 from c (X coord) and 4 from b (Y coord). However, the carry from c -; is added to b, so the net result is that only 3 is subtracted from b. - lb hl, -4, -4 - add hl, bc - - ld b, h - ld c, l - pop hl - -WriteAsymmetricMonPartySpriteOAM: -; Writes 4 OAM blocks for a helix mon party sprite, since it does not have -; a vertical line of symmetry. - lb de, 2, 2 -.loop - push de - push bc -.innerLoop - ld a, b - ld [hli], a - ld a, c - ld [hli], a - ld a, [wOAMBaseTile] - ld [hli], a - inc a - ld [wOAMBaseTile], a - xor a - ld [hli], a - inc d - ld a, 8 - add c - ld c, a - dec e - jr nz, .innerLoop - pop bc - pop de - ld a, 8 - add b - ld b, a - dec d - jr nz, .loop - ret - -WriteSymmetricMonPartySpriteOAM: -; Writes 4 OAM blocks for a mon party sprite other than a helix. All the -; sprites other than the helix one have a vertical line of symmetry which allows -; the X-flip OAM bit to be used so that only 2 rather than 4 tile patterns are -; needed. - xor a - ld [wSymmetricSpriteOAMAttributes], a - lb de, 2, 2 -.loop - push de - push bc -.innerLoop - ld a, b - ld [hli], a ; Y - ld a, c - ld [hli], a ; X - ld a, [wOAMBaseTile] - ld [hli], a ; tile - ld a, [wSymmetricSpriteOAMAttributes] - ld [hli], a ; attributes - xor (1 << OAM_X_FLIP) - ld [wSymmetricSpriteOAMAttributes], a - inc d - ld a, 8 - add c - ld c, a - dec e - jr nz, .innerLoop - pop bc - pop de - push hl - ld hl, wOAMBaseTile - inc [hl] - inc [hl] - pop hl - ld a, 8 - add b - ld b, a - dec d - jr nz, .loop - ret - -ZeroOutDuplicatesInList: -; replace duplicate bytes in the list of wild pokemon locations with 0 - ld de, wBuffer -.loop - ld a, [de] - inc de - cp $ff - ret z - ld c, a - ld l, e - ld h, d -.zeroDuplicatesLoop - ld a, [hl] - cp $ff - jr z, .loop - cp c - jr nz, .skipZeroing - xor a - ld [hl], a -.skipZeroing - inc hl - jr .zeroDuplicatesLoop - -LoadTownMapEntry: -; in: a = map number -; out: lower nybble of [de] = x, upper nybble of [de] = y, hl = address of name - cp REDS_HOUSE_1F - jr c, .external - ld bc, 4 - ld hl, InternalMapEntries -.loop - cp [hl] - jr c, .foundEntry - add hl, bc - jr .loop -.foundEntry - inc hl - jr .readEntry -.external - ld hl, ExternalMapEntries - ld c, a - ld b, 0 - add hl, bc - add hl, bc - add hl, bc -.readEntry - ld a, [hli] - ld [de], a - ld a, [hli] - ld h, [hl] - ld l, a - ret - -INCLUDE "data/town_map_entries.asm" - -INCLUDE "text/map_names.asm" - -MonNestIcon: - INCBIN "gfx/mon_nest_icon.1bpp" -MonNestIconEnd: - -TownMapSpriteBlinkingAnimation: - ld a, [wAnimCounter] - inc a - cp 25 - jr z, .hideSprites - cp 50 - jr nz, .done -; show sprites when the counter reaches 50 - ld hl, wTileMapBackup - ld de, wOAMBuffer - ld bc, $90 - call CopyData - xor a - jr .done -.hideSprites - ld hl, wOAMBuffer - ld b, $24 - ld de, $4 -.hideSpritesLoop - ld [hl], $a0 - add hl, de - dec b - jr nz, .hideSpritesLoop - ld a, 25 -.done - ld [wAnimCounter], a - jp DelayFrame diff --git a/engine/trade.asm b/engine/trade.asm deleted file mode 100755 index e4bc0768e..000000000 --- a/engine/trade.asm +++ /dev/null @@ -1,857 +0,0 @@ -InternalClockTradeAnim: -; Do the trading animation with the player's gameboy on the left. -; In-game trades and internally clocked link cable trades use this. - ld a, [wTradedPlayerMonSpecies] - ld [wLeftGBMonSpecies], a - ld a, [wTradedEnemyMonSpecies] - ld [wRightGBMonSpecies], a - ld de, InternalClockTradeFuncSequence - jr TradeAnimCommon - -ExternalClockTradeAnim: -; Do the trading animation with the player's gameboy on the right. -; Externally clocked link cable trades use this. - ld a, [wTradedEnemyMonSpecies] - ld [wLeftGBMonSpecies], a - ld a, [wTradedPlayerMonSpecies] - ld [wRightGBMonSpecies], a - ld de, ExternalClockTradeFuncSequence - -TradeAnimCommon: - ld a, [wOptions] - push af - and %110000 ; preserve speaker options - ld [wOptions], a - ld a, [hSCY] - push af - ld a, [hSCX] - push af - xor a - ld [hSCY], a - ld [hSCX], a - push de -.loop - pop de - ld a, [de] - cp $ff - jr z, .done - inc de - push de - ld hl, TradeFuncPointerTable - add a - ld c, a - ld b, $0 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .loop - push de - jp hl ; call trade func, which will return to the top of the loop -.done - pop af - ld [hSCX], a - pop af - ld [hSCY], a - pop af - ld [wOptions], a - ret - -addtradefunc: MACRO -\1TradeFunc:: - dw \1 - ENDM - -tradefunc: MACRO - db (\1TradeFunc - TradeFuncPointerTable) / 2 - ENDM - -; The functions in the sequences below are executed in order by TradeFuncCommon. -; They are from opposite perspectives. The external clock one makes use of -; Trade_SwapNames to swap the player and enemy names for some functions. - -InternalClockTradeFuncSequence: - tradefunc LoadTradingGFXAndMonNames - tradefunc Trade_ShowPlayerMon - tradefunc Trade_DrawOpenEndOfLinkCable - tradefunc Trade_AnimateBallEnteringLinkCable - tradefunc Trade_AnimLeftToRight - tradefunc Trade_Delay100 - tradefunc Trade_ShowClearedWindow - tradefunc PrintTradeWentToText - tradefunc PrintTradeForSendsText - tradefunc PrintTradeFarewellText - tradefunc Trade_AnimRightToLeft - tradefunc Trade_ShowClearedWindow - tradefunc Trade_DrawOpenEndOfLinkCable - tradefunc Trade_ShowEnemyMon - tradefunc Trade_Delay100 - tradefunc Trade_Cleanup - db $FF - -ExternalClockTradeFuncSequence: - tradefunc LoadTradingGFXAndMonNames - tradefunc Trade_ShowClearedWindow - tradefunc PrintTradeWillTradeText - tradefunc PrintTradeFarewellText - tradefunc Trade_SwapNames - tradefunc Trade_AnimLeftToRight - tradefunc Trade_SwapNames - tradefunc Trade_ShowClearedWindow - tradefunc Trade_DrawOpenEndOfLinkCable - tradefunc Trade_ShowEnemyMon - tradefunc Trade_SlideTextBoxOffScreen - tradefunc Trade_ShowPlayerMon - tradefunc Trade_DrawOpenEndOfLinkCable - tradefunc Trade_AnimateBallEnteringLinkCable - tradefunc Trade_SwapNames - tradefunc Trade_AnimRightToLeft - tradefunc Trade_SwapNames - tradefunc Trade_Delay100 - tradefunc Trade_ShowClearedWindow - tradefunc PrintTradeWentToText - tradefunc Trade_Cleanup - db $FF - -TradeFuncPointerTable: - addtradefunc LoadTradingGFXAndMonNames - addtradefunc Trade_ShowPlayerMon - addtradefunc Trade_DrawOpenEndOfLinkCable - addtradefunc Trade_AnimateBallEnteringLinkCable - addtradefunc Trade_ShowEnemyMon - addtradefunc Trade_AnimLeftToRight - addtradefunc Trade_AnimRightToLeft - addtradefunc Trade_Delay100 - addtradefunc Trade_ShowClearedWindow - addtradefunc PrintTradeWentToText - addtradefunc PrintTradeForSendsText - addtradefunc PrintTradeFarewellText - addtradefunc PrintTradeTakeCareText - addtradefunc PrintTradeWillTradeText - addtradefunc Trade_Cleanup - addtradefunc Trade_SlideTextBoxOffScreen - addtradefunc Trade_SwapNames - -Trade_Delay100: - ld c, 100 - jp DelayFrames - -Trade_CopyTileMapToVRAM: - ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a - call Delay3 - xor a - ld [H_AUTOBGTRANSFERENABLED], a - ret - -Trade_Delay80: - ld c, 80 - jp DelayFrames - -Trade_ClearTileMap: - coord hl, 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - jp FillMemory - -LoadTradingGFXAndMonNames: - call Trade_ClearTileMap - call DisableLCD - ld hl, TradingAnimationGraphics - ld de, vChars2 + $310 - ld bc, TradingAnimationGraphicsEnd - TradingAnimationGraphics - ld a, BANK(TradingAnimationGraphics) - call FarCopyData - ld hl, TradingAnimationGraphics2 - ld de, vSprites + $7c0 - ld bc, TradingAnimationGraphics2End - TradingAnimationGraphics2 - ld a, BANK(TradingAnimationGraphics2) - call FarCopyData - ld hl, vBGMap0 - ld bc, $800 - ld a, " " - call FillMemory - call ClearSprites - ld a, $ff - ld [wUpdateSpritesEnabled], a - ld hl, wd730 - set 6, [hl] ; turn on instant text printing - ld a, [wOnSGB] - and a - ld a, $e4 ; non-SGB OBP0 - jr z, .next - ld a, $f0 ; SGB OBP0 -.next - ld [rOBP0], a - call UpdateGBCPal_OBP0 - call EnableLCD - xor a - ld [H_AUTOBGTRANSFERENABLED], a - ld a, [wTradedPlayerMonSpecies] - ld [wd11e], a - call GetMonName - ld hl, wcd6d - ld de, wcf4b - ld bc, NAME_LENGTH - call CopyData - ld a, [wTradedEnemyMonSpecies] - ld [wd11e], a - jp GetMonName - -Trade_LoadMonPartySpriteGfx: - ld a, %11010000 - ld [rOBP1], a - call UpdateGBCPal_OBP1 - jpba LoadMonPartySpriteGfx - -Trade_SwapNames: - ld hl, wPlayerName - ld de, wBuffer - ld bc, NAME_LENGTH - call CopyData - ld hl, wLinkEnemyTrainerName - ld de, wPlayerName - ld bc, NAME_LENGTH - call CopyData - ld hl, wBuffer - ld de, wLinkEnemyTrainerName - ld bc, NAME_LENGTH - jp CopyData - -Trade_Cleanup: - xor a - call LoadGBPal - ld hl, wd730 - res 6, [hl] ; turn off instant text printing - ret - -Trade_ShowPlayerMon: - ld a, %10101011 - ld [rLCDC], a - ld a, $50 - ld [hWY], a - ld a, $86 - ld [rWX], a - ld [hSCX], a - xor a - ld [H_AUTOBGTRANSFERENABLED], a - coord hl, 4, 0 - lb bc, 6, 10 - call TextBoxBorder - call Trade_PrintPlayerMonInfoText - ld b, vBGMap0 / $100 - call CopyScreenTileBufferToVRAM - call ClearScreen - ld a, [wTradedPlayerMonSpecies] - call Trade_LoadMonSprite - ld a, $7e -.slideScreenLoop - push af - call DelayFrame - pop af - ld [rWX], a - ld [hSCX], a - dec a - dec a - and a - jr nz, .slideScreenLoop - call Trade_Delay80 - ld a, TRADE_BALL_POOF_ANIM - call Trade_ShowAnimation - ld a, TRADE_BALL_DROP_ANIM - call Trade_ShowAnimation ; clears mon pic - ld a, [wTradedPlayerMonSpecies] - call PlayCry - xor a - ld [H_AUTOBGTRANSFERENABLED], a - ret - -Trade_DrawOpenEndOfLinkCable: - call Trade_ClearTileMap - ld b, vBGMap0 / $100 - call CopyScreenTileBufferToVRAM - ld b, SET_PAL_GENERIC - call RunPaletteCommand - -; This function call is pointless. It just copies blank tiles to VRAM that was -; already filled with blank tiles. - ld hl, vBGMap1 + $8c - call Trade_CopyCableTilesOffScreen - - ld a, $a0 - ld [hSCX], a - call DelayFrame - ld a, %10001011 - ld [rLCDC], a - coord hl, 6, 2 - ld b, $7 ; open end of link cable tile ID list index - call CopyTileIDsFromList_ZeroBaseTileID - call Trade_CopyTileMapToVRAM - ld a, SFX_HEAL_HP - call PlaySound - ld c, 20 -.loop - ld a, [hSCX] - add 4 - ld [hSCX], a - dec c - jr nz, .loop - ret - -Trade_AnimateBallEnteringLinkCable: - ld a, TRADE_BALL_SHAKE_ANIM - call Trade_ShowAnimation - ld c, 10 - call DelayFrames - ld a, %11100100 - ld [rOBP0], a - call UpdateGBCPal_OBP0 - xor a - ld [wLinkCableAnimBulgeToggle], a - lb bc, $20, $60 -.moveBallInsideLinkCableLoop - push bc - xor a - ld de, Trade_BallInsideLinkCableOAM - call WriteOAMBlock - ld a, [wLinkCableAnimBulgeToggle] - xor $1 - ld [wLinkCableAnimBulgeToggle], a - add $7e - ld hl, wOAMBuffer + $02 - ld de, 4 - ld c, e -.cycleLinkCableBulgeTile - ld [hl], a - add hl, de - dec c - jr nz, .cycleLinkCableBulgeTile - call Delay3 - pop bc - ld a, c - add $4 - ld c, a - cp $a0 - jr nc, .ballSpriteReachedEdgeOfScreen - ld a, SFX_TINK - call PlaySound - jr .moveBallInsideLinkCableLoop -.ballSpriteReachedEdgeOfScreen - call ClearSprites - ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a - call ClearScreen - ld b, $98 - call CopyScreenTileBufferToVRAM - call Delay3 - xor a - ld [H_AUTOBGTRANSFERENABLED], a - ret - -Trade_BallInsideLinkCableOAM: - db $7E,$00,$7E,$20 - db $7E,$40,$7E,$60 - -Trade_ShowEnemyMon: - ld a, TRADE_BALL_TILT_ANIM - call Trade_ShowAnimation - call Trade_ShowClearedWindow - coord hl, 4, 10 - lb bc, 6, 10 - call TextBoxBorder - call Trade_PrintEnemyMonInfoText - call Trade_CopyTileMapToVRAM - ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a - ld a, [wTradedEnemyMonSpecies] - call Trade_LoadMonSprite - ld a, TRADE_BALL_POOF_ANIM - call Trade_ShowAnimation - ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a - ld a, [wTradedEnemyMonSpecies] - call PlayCry - call Trade_Delay100 - coord hl, 4, 10 - lb bc, 8, 12 - call ClearScreenArea - jp PrintTradeTakeCareText - -Trade_AnimLeftToRight: -; Animates the mon moving from the left GB to the right one. - call Trade_InitGameboyTransferGfx - ld a, $1 - ld [wTradedMonMovingRight], a - ld a, %11100100 - ld [rOBP0], a - call UpdateGBCPal_OBP0 - ld a, $54 - ld [wBaseCoordX], a - ld a, $1c - ld [wBaseCoordY], a - ld a, [wLeftGBMonSpecies] - ld [wMonPartySpriteSpecies], a - call Trade_WriteCircledMonOAM - call Trade_DrawLeftGameboy - call Trade_CopyTileMapToVRAM - call Trade_DrawCableAcrossScreen - ld hl, vBGMap1 + $8c - call Trade_CopyCableTilesOffScreen - ld b, $6 - call Trade_AnimMonMoveHorizontal - ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a - call Trade_DrawCableAcrossScreen - ld b, $4 - call Trade_AnimMonMoveHorizontal - call Trade_DrawRightGameboy - ld b, $6 - call Trade_AnimMonMoveHorizontal - xor a - ld [H_AUTOBGTRANSFERENABLED], a - call Trade_AnimMonMoveVertical - jp ClearSprites - -Trade_AnimRightToLeft: -; Animates the mon moving from the right GB to the left one. - call Trade_InitGameboyTransferGfx - xor a - ld [wTradedMonMovingRight], a - ld a, $64 - ld [wBaseCoordX], a - ld a, $44 - ld [wBaseCoordY], a - ld a, [wRightGBMonSpecies] - ld [wMonPartySpriteSpecies], a - call Trade_WriteCircledMonOAM - call Trade_DrawRightGameboy - call Trade_CopyTileMapToVRAM - call Trade_DrawCableAcrossScreen - ld hl, vBGMap1 + $94 - call Trade_CopyCableTilesOffScreen - call Trade_AnimMonMoveVertical - ld b, $6 - call Trade_AnimMonMoveHorizontal - ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a - call Trade_DrawCableAcrossScreen - ld b, $4 - call Trade_AnimMonMoveHorizontal - call Trade_DrawLeftGameboy - ld b, $6 - call Trade_AnimMonMoveHorizontal - xor a - ld [H_AUTOBGTRANSFERENABLED], a - jp ClearSprites - -Trade_InitGameboyTransferGfx: -; Initialises the graphics for showing a mon moving between gameboys. - ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a - call ClearScreen - ld b, SET_PAL_GENERIC - call RunPaletteCommand - xor a - ld [H_AUTOBGTRANSFERENABLED], a - call Trade_LoadMonPartySpriteGfx - call DelayFrame - ld a, %10101011 - ld [rLCDC], a - xor a - ld [hSCX], a - ld a, $90 - ld [hWY], a - ret - -Trade_DrawLeftGameboy: - call Trade_ClearTileMap - -; draw link cable - coord hl, 11, 4 - ld a, $5d - ld [hli], a - ld a, $5e - ld c, 8 -.loop - ld [hli], a - dec c - jr nz, .loop - -; draw gameboy pic - coord hl, 5, 3 - ld b, $6 - call CopyTileIDsFromList_ZeroBaseTileID - -; draw text box with player name below gameboy pic - coord hl, 4, 12 - lb bc, 2, 7 - call TextBoxBorder - coord hl, 5, 14 - ld de, wPlayerName - call PlaceString - - jp DelayFrame - -Trade_DrawRightGameboy: - call Trade_ClearTileMap - -; draw horizontal segment of link cable - coord hl, 0, 4 - ld a, $5e - ld c, $e -.loop - ld [hli], a - dec c - jr nz, .loop - -; draw vertical segment of link cable - ld a, $5f - ld [hl], a - ld de, SCREEN_WIDTH - add hl, de - ld a, $61 - ld [hl], a - add hl, de - ld [hl], a - add hl, de - ld [hl], a - add hl, de - ld [hl], a - add hl, de - ld a, $60 - ld [hld], a - ld a, $5d - ld [hl], a - -; draw gameboy pic - coord hl, 7, 8 - ld b, $6 - call CopyTileIDsFromList_ZeroBaseTileID - -; draw text box with enemy name above link cable - coord hl, 6, 0 - lb bc, 2, 7 - call TextBoxBorder - coord hl, 7, 2 - ld de, wLinkEnemyTrainerName - call PlaceString - - jp DelayFrame - -Trade_DrawCableAcrossScreen: -; Draws the link cable across the screen. - call Trade_ClearTileMap - coord hl, 0, 4 - ld a, $5e - ld c, SCREEN_WIDTH -.loop - ld [hli], a - dec c - jr nz, .loop - ret - -Trade_CopyCableTilesOffScreen: -; This is used to copy the link cable tiles off screen so that the cable -; continues when the screen is scrolled. - push hl - coord hl, 0, 4 - call CopyToRedrawRowOrColumnSrcTiles - pop hl - ld a, h - ld [hRedrawRowOrColumnDest + 1], a - ld a, l - ld [hRedrawRowOrColumnDest], a - ld a, REDRAW_ROW - ld [hRedrawRowOrColumnMode], a - ld c, 10 - jp DelayFrames - -Trade_AnimMonMoveHorizontal: -; Animates the mon going through the link cable horizontally over a distance of -; b 16-pixel units. - ld a, [wTradedMonMovingRight] - ld e, a - ld d, $8 -.scrollLoop - ld a, e - dec a - jr z, .movingRight -; moving left - ld a, [hSCX] - sub $2 - jr .next -.movingRight - ld a, [hSCX] - add $2 -.next - ld [hSCX], a - call DelayFrame - dec d - jr nz, .scrollLoop - call Trade_AnimCircledMon - dec b - jr nz, Trade_AnimMonMoveHorizontal - ret - -Trade_AnimCircledMon: -; Cycles between the two animation frames of the mon party sprite, cycles -; between a circle and an oval around the mon sprite, and makes the cable flash. - push de - push bc - push hl - ld a, [rBGP] - xor $3c ; make link cable flash - ld [rBGP], a - call UpdateGBCPal_BGP - ld hl, wOAMBuffer + $02 - ld de, $4 - ld c, $14 -.loop - ld a, [hl] - xor $40 - ld [hl], a - add hl, de - dec c - jr nz, .loop - pop hl - pop bc - pop de - ret - -Trade_WriteCircledMonOAM: - callba WriteMonPartySpriteOAMBySpecies - call Trade_WriteCircleOAM - -Trade_AddOffsetsToOAMCoords: - ld hl, wOAMBuffer - ld c, $14 ; SCREEN_WIDTH? -.loop - ld a, [wBaseCoordY] - add [hl] - ld [hli], a - ld a, [wBaseCoordX] - add [hl] - ld [hli], a - inc hl - inc hl - dec c - jr nz, .loop - ret - -Trade_AnimMonMoveVertical: -; Animates the mon going through the link cable vertically as well as -; horizontally for a bit. The last bit of horizontal movement (when moving -; right) or the first bit of horizontal movement (when moving left) are done -; here instead of Trade_AnimMonMoveHorizontal because this function moves the -; sprite itself rather than scrolling the screen around the sprite. Moving the -; sprite itself is necessary because the vertical segment of the link cable is -; to the right of the screen position that the mon sprite has when -; Trade_AnimMonMoveHorizontal is executing. - ld a, [wTradedMonMovingRight] - and a - jr z, .movingLeft -; moving right - lb bc, 4, 0 ; move right - call .doAnim - lb bc, 0, 10 ; move down - jr .doAnim -.movingLeft - lb bc, 0, -10 ; move up - call .doAnim - lb bc, -4, 0 ; move left -.doAnim - ld a, b - ld [wBaseCoordX], a - ld a, c - ld [wBaseCoordY], a - ld d, $4 -.loop - call Trade_AddOffsetsToOAMCoords - call Trade_AnimCircledMon - ld c, 8 - call DelayFrames - dec d - jr nz, .loop - ret - -Trade_WriteCircleOAM: -; Writes the OAM blocks for the circle around the traded mon as it passes -; the link cable. - ld hl, Trade_CircleOAMPointers - ld c, $4 - xor a -.loop - push bc - ld e, [hl] - inc hl - ld d, [hl] - inc hl - ld c, [hl] - inc hl - ld b, [hl] - inc hl - push hl - inc a - push af - call WriteOAMBlock - pop af - pop hl - pop bc - dec c - jr nz, .loop - ret - -Trade_CircleOAMPointers: - dw Trade_CircleOAM0 - db $08,$08 - dw Trade_CircleOAM1 - db $18,$08 - dw Trade_CircleOAM2 - db $08,$18 - dw Trade_CircleOAM3 - db $18,$18 - -Trade_CircleOAM0: - db $38,$10,$39,$10 - db $3A,$10,$3B,$10 - -Trade_CircleOAM1: - db $39,$30,$38,$30 - db $3B,$30,$3A,$30 - -Trade_CircleOAM2: - db $3A,$50,$3B,$50 - db $38,$50,$39,$50 - -Trade_CircleOAM3: - db $3B,$70,$3A,$70 - db $39,$70,$38,$70 - -; a = species -Trade_LoadMonSprite: - ld [wcf91], a - ld [wd0b5], a - ld [wWholeScreenPaletteMonSpecies], a - ld b, SET_PAL_POKEMON_WHOLE_SCREEN - ld c, 0 - call RunPaletteCommand - ld a, [H_AUTOBGTRANSFERENABLED] - xor $1 - ld [H_AUTOBGTRANSFERENABLED], a - call GetMonHeader - coord hl, 7, 2 - call LoadFlippedFrontSpriteByMonIndex - ld c, 10 - jp DelayFrames - -Trade_ShowClearedWindow: -; clears the window and covers the BG entirely with the window - ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a - call ClearScreen - ld a, %11100011 - ld [rLCDC], a - ld a, $7 - ld [rWX], a - xor a - ld [hWY], a - ld a, $90 - ld [hSCX], a - ret - -Trade_SlideTextBoxOffScreen: -; Slides the window right until it's off screen. The window usually just has -; a text box at the bottom when this is called. However, when this is called -; after Trade_ShowEnemyMon in the external clock sequence, there is a mon pic -; above the text box and it is also scrolled off the screen. - ld c, 50 - call DelayFrames -.loop - call DelayFrame - ld a, [rWX] - inc a - inc a - ld [rWX], a - cp $a1 - jr nz, .loop - call Trade_ClearTileMap - ld c, 10 - call DelayFrames - ld a, $7 - ld [rWX], a - ret - -PrintTradeWentToText: - ld hl, TradeWentToText - call PrintText - ld c, 200 - call DelayFrames - jp Trade_SlideTextBoxOffScreen - -TradeWentToText: - TX_FAR _TradeWentToText - db "@" - -PrintTradeForSendsText: - ld hl, TradeForText - call PrintText - call Trade_Delay80 - ld hl, TradeSendsText - call PrintText - jp Trade_Delay80 - -TradeForText: - TX_FAR _TradeForText - db "@" - -TradeSendsText: - TX_FAR _TradeSendsText - db "@" - -PrintTradeFarewellText: - ld hl, TradeWavesFarewellText - call PrintText - call Trade_Delay80 - ld hl, TradeTransferredText - call PrintText - call Trade_Delay80 - jp Trade_SlideTextBoxOffScreen - -TradeWavesFarewellText: - TX_FAR _TradeWavesFarewellText - db "@" - -TradeTransferredText: - TX_FAR _TradeTransferredText - db "@" - -PrintTradeTakeCareText: - ld hl, TradeTakeCareText - call PrintText - jp Trade_Delay80 - -TradeTakeCareText: - TX_FAR _TradeTakeCareText - db "@" - -PrintTradeWillTradeText: - ld hl, TradeWillTradeText - call PrintText - call Trade_Delay80 - ld hl, TradeforText - call PrintText - jp Trade_Delay80 - -TradeWillTradeText: - TX_FAR _TradeWillTradeText - db "@" - -TradeforText: - TX_FAR _TradeforText - db "@" - -Trade_ShowAnimation: - ld [wAnimationID], a - xor a - ld [wAnimationType], a - predef_jump MoveAnimation diff --git a/engine/unknown_ea3ea.asm b/engine/unknown_ea3ea.asm index 1908809bd..c10f15554 100755 --- a/engine/unknown_ea3ea.asm +++ b/engine/unknown_ea3ea.asm @@ -13,7 +13,7 @@ Printer_GetMonStats: call CopyVideoDataDouble xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a xor a ld [wWhichTradeMonSelectionMenu], a call LoadMonData @@ -22,22 +22,22 @@ Printer_GetMonStats: lb bc, 16, 18 call TextBoxBorder - coord hl, 0, 12 + hlcoord 0, 12 lb bc, 4, 18 call TextBoxBorder - coord hl, 3, 10 + hlcoord 3, 10 call PrintLevelFull - coord hl, 2, 10 + hlcoord 2, 10 ld a, $6e ld [hli], a ld [hl], " " - coord hl, 2, 11 - ld [hl], "′" + hlcoord 2, 11 + ld [hl], "’" - coord hl, 4, 11 + hlcoord 4, 11 ld de, wLoadedMonMaxHP lb bc, 2, 3 call PrintNumber @@ -47,15 +47,15 @@ Printer_GetMonStats: ld [wd0b5], a ld hl, wPartyMonNicks call .GetNamePointer - coord hl, 8, 2 + hlcoord 8, 2 call PlaceString call GetMonName - coord hl, 9, 3 + hlcoord 9, 3 call PlaceString predef IndexToPokedex - coord hl, 2, 8 + hlcoord 2, 8 ld [hl], "№" inc hl ld [hl], $f2 @@ -64,35 +64,35 @@ Printer_GetMonStats: lb bc, $80 | 1, 3 call PrintNumber - coord hl, 8, 4 + hlcoord 8, 4 ld de, .OT call PlaceString ld hl, wPartyMonOT call .GetNamePointer - coord hl, 9, 5 + hlcoord 9, 5 call PlaceString - coord hl, 9, 6 + hlcoord 9, 6 ld de, .IDNo call PlaceString - coord hl, 13, 6 + hlcoord 13, 6 ld de, wLoadedMonOTID lb bc, $80 | 2, 5 call PrintNumber - coord hl, 9, 8 + hlcoord 9, 8 ld de, .Stats - ld a, [hFlags_0xFFFA] + ldh a, [hFlagsFFFA] set 2, a - ld [hFlags_0xFFFA], a + ldh [hFlagsFFFA], a call PlaceString - ld a, [hFlags_0xFFFA] + ldh a, [hFlagsFFFA] res 2, a - ld [hFlags_0xFFFA], a + ldh [hFlagsFFFA], a - coord hl, 16, 8 + hlcoord 16, 8 ld de, wLoadedMonAttack ld a, 4 .loop @@ -113,19 +113,19 @@ Printer_GetMonStats: dec a jr nz, .loop - coord hl, 1, 13 + hlcoord 1, 13 ld a, [wLoadedMonMoves] call .PlaceMoveName - coord hl, 1, 14 + hlcoord 1, 14 ld a, [wLoadedMonMoves + 1] call .PlaceMoveName - coord hl, 1, 15 + hlcoord 1, 15 ld a, [wLoadedMonMoves + 2] call .PlaceMoveName - coord hl, 1, 16 + hlcoord 1, 16 ld a, [wLoadedMonMoves + 3] call .PlaceMoveName @@ -133,10 +133,10 @@ Printer_GetMonStats: call RunPaletteCommand ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Delay3 call GBPalNormal - coord hl, 1, 1 + hlcoord 1, 1 call LoadFlippedFrontSpriteByMonIndex ret @@ -468,11 +468,11 @@ Func_ea74c: ld [wPrinterSendByteOffset], a ld [wPrinterSendByteOffset + 1], a ld a, $88 - ld [rSB], a + ldh [rSB], a ld a, $1 - ld [rSC], a + ldh [rSC], a ld a, $81 - ld [rSC], a + ldh [rSC], a ret Func_ea76b: @@ -832,25 +832,25 @@ PrinterDebug_PrepOAMForPrinting: dw .Pal3 .Pal0: - ld a, [rOBP0] + ldh a, [rOBP0] and $3 ret .Pal2: - ld a, [rOBP0] + ldh a, [rOBP0] and $c srl a srl a ret .Pal1: - ld a, [rOBP0] + ldh a, [rOBP0] and $30 swap a ret .Pal3: - ld a, [rOBP0] + ldh a, [rOBP0] and $c0 rlca rlca diff --git a/engine/vermilion_gym_trash_cans.asm b/engine/vermilion_gym_trash_cans.asm index 49dee50c1..1bc0590b1 100755 --- a/engine/vermilion_gym_trash_cans.asm +++ b/engine/vermilion_gym_trash_cans.asm @@ -54,7 +54,7 @@ Yellow_SampleSecondTrashCan: call AddNTimes call AddNTimes ; ???? ld a, [hli] - ld [hGymTrashCanRandNumMask], a + ldh [hGymTrashCanRandNumMask], a ld e, a push hl call TrashCanRandom diff --git a/engine/yellow_intro.asm b/engine/yellow_intro.asm index 9c9e26b32..324ba86db 100755 --- a/engine/yellow_intro.asm +++ b/engine/yellow_intro.asm @@ -1,12 +1,12 @@ PlayIntroScene: - ld a, [rIE] + ldh a, [rIE] push af xor a - ld [rIF], a + ldh [rIF], a ld a, $f - ld [rIE], a + ldh [rIE], a ld a, $8 - ld [rSTAT], a + ldh [rSTAT], a call InitYellowIntroGFXAndMusic call DelayFrame .loop @@ -14,7 +14,7 @@ PlayIntroScene: bit 7, a jr nz, .go_to_title_screen call JoypadLowSensitivity - ld a, [hJoyPressed] + ldh a, [hJoyPressed] and A_BUTTON | B_BUTTON | START jr nz, .go_to_title_screen call Func_f98fc @@ -32,14 +32,14 @@ PlayIntroScene: .go_to_title_screen call YellowIntro_BlankPalettes xor a - ld [hLCDCPointer], a + ldh [hLCDCPointer], a call DelayFrame xor a - ld [rIF], a + ldh [rIF], a pop af - ld [rIE], a + ldh [rIE], a ld a, $90 - ld [hWY], a + ldh [hWY], a call ClearObjectAnimationBuffers ld hl, wTileMap ld bc, SCREEN_WIDTH * SCREEN_HEIGHT @@ -47,12 +47,12 @@ PlayIntroScene: call Bank3E_FillMemory call YellowIntro_BlankOAMBuffer ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call DelayFrame call DelayFrame call DelayFrame xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ret Func_f98a2: @@ -127,20 +127,20 @@ YellowIntro_NextScene: YellowIntroScene0: xor a - ld [hLCDCPointer], a + ldh [hLCDCPointer], a lb de, $58, $58 ld a, $1 call YellowIntro_SpawnAnimatedObjectAndSavePointer xor a - ld [hSCX], a - ld [hSCY], a + ldh [hSCX], a + ldh [hSCY], a ld a, $90 - ld [hWY], a + ldh [hWY], a ld a, $e4 - ld [rBGP], a - ld [rOBP0], a + ldh [rBGP], a + ldh [rOBP0], a ld a, $c4 - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 @@ -161,7 +161,7 @@ YellowIntroScene2: ld c, $8 call UpdateMusicCTimes xor a - ld [hLCDCPointer], a + ldh [hLCDCPointer], a ld hl, vBGMap0 ld bc, $400 xor a @@ -196,7 +196,7 @@ YellowIntroScene2_PlaceGraphic: add $10 dec b jr nz, .row - ld a, [hGBC] + ldh a, [hGBC] and a jr z, .dmg_sgb ; We can actually set palettes! @@ -204,7 +204,7 @@ YellowIntroScene2_PlaceGraphic: ld de, $20 ld b, $6 ld a, $1 - ld [rVBK], a + ldh [rVBK], a .attr_row ld c, $6 push hl @@ -217,7 +217,7 @@ YellowIntroScene2_PlaceGraphic: dec b jr nz, .attr_row xor a - ld [rVBK], a + ldh [rVBK], a .dmg_sgb ret @@ -260,11 +260,11 @@ YellowIntroFlyingSpeedBarData: YellowIntroScene3: call YellowIntro_CheckFrameTimerDecrement jr c, .expired - ld a, [hSCX] + ldh a, [hSCX] cp $68 ret z add $4 - ld [hSCX], a + ldh [hSCX], a ret .expired @@ -276,7 +276,7 @@ YellowIntroScene4: call YellowIntro_BlankPalsDelay2AndDisableLCD ld c, $5 call UpdateMusicCTimes - ld a, [hGBC] + ldh a, [hGBC] and a jr z, .dmg_sgb ; We can actually set palettes! @@ -284,7 +284,7 @@ YellowIntroScene4: ld de, $20 ld b, $6 ld a, $1 - ld [rVBK], a + ldh [rVBK], a xor a .attr_row ld c, $6 @@ -298,10 +298,10 @@ YellowIntroScene4: dec b jr nz, .attr_row xor a - ld [rVBK], a + ldh [rVBK], a .dmg_sgb xor a - ld [hLCDCPointer], a + ldh [hLCDCPointer], a call Func_f9e5f lb de, $58, $58 ld a, $2 @@ -324,7 +324,7 @@ YellowIntroScene6: ld c, $5 call UpdateMusicCTimes ld a, rSCY - $ff00 - ld [hLCDCPointer], a + ldh [hLCDCPointer], a call YellowIntro_Copy8BitSineWave ld hl, vBGMap0 ld bc, $60 @@ -385,7 +385,7 @@ YellowIntroScene8: ld c, $5 call UpdateMusicCTimes xor a - ld [hLCDCPointer], a + ldh [hLCDCPointer], a call Func_f9e5f lb de, $58, $58 ld a, $3 @@ -408,7 +408,7 @@ YellowIntroScene10: ld c, $5 call UpdateMusicCTimes xor a - ld [hLCDCPointer], a + ldh [hLCDCPointer], a ld hl, vBGMap0 ld bc, $400 xor a @@ -476,15 +476,15 @@ YellowIntroScene11: ld hl, YellowIntroCloudGFX1 add hl, de ld a, l - ld [H_VBCOPYSRC], a + ldh [hVBlankCopySource], a ld a, h - ld [H_VBCOPYSRC + 1], a + ldh [hVBlankCopySource + 1], a xor a - ld [H_VBCOPYDEST], a + ldh [hVBlankCopyDest], a ld a, $96 - ld [H_VBCOPYDEST + 1], a + ldh [hVBlankCopyDest + 1], a ld a, $4 - ld [H_VBCOPYSIZE], a + ldh [hVBlankCopySize], a ret .expired @@ -500,7 +500,7 @@ YellowIntroScene12: ld c, $5 call UpdateMusicCTimes xor a - ld [hLCDCPointer], a + ldh [hLCDCPointer], a ld hl, vBGMap0 ld bc, $80 ld a, $1 @@ -561,10 +561,10 @@ YellowIntroScene14: ld de, YellowIntroPalSequence_f9dd6 call YellowIntro_LoadDMGPalAndIncrementCounter jr c, .expired - ld [rBGP], a - ld [rOBP0], a + ldh [rBGP], a + ldh [rOBP0], a and $f0 - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 @@ -577,24 +577,24 @@ YellowIntroScene14: ld bc, $50 ld a, $1 call Bank3E_FillMemory - coord hl, 0, 4 + hlcoord 0, 4 ld bc, CopyVideoDataAlternate xor a call Bank3E_FillMemory - coord hl, 0, 14 + hlcoord 0, 14 ld bc, $50 ld a, $1 call Bank3E_FillMemory ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call DelayFrame call DelayFrame call DelayFrame xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld a, $e4 - ld [rOBP0], a - ld [rBGP], a + ldh [rOBP0], a + ldh [rBGP], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 lb de, $58, $58 @@ -611,22 +611,22 @@ YellowIntroScene15: ld a, [wYellowIntroSceneTimer] and $3 ret nz - ld a, [rOBP0] + ldh a, [rOBP0] xor $ff - ld [rOBP0], a - ld a, [rBGP] + ldh [rOBP0], a + ldh a, [rBGP] xor $3 - ld [rBGP], a + ldh [rBGP], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 ret .expired xor a - ld [hLCDCPointer], a + ldh [hLCDCPointer], a ld a, $e4 - ld [rBGP], a - ld [rOBP0], a + ldh [rBGP], a + ldh [rOBP0], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 call YellowIntro_NextScene @@ -634,8 +634,8 @@ YellowIntroScene16: ld de, YellowIntroPalSequence_f9e0a call YellowIntro_LoadDMGPalAndIncrementCounter jr c, .expired - ld [rOBP0], a - ld [rBGP], a + ldh [rOBP0], a + ldh [rBGP], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 ret @@ -743,9 +743,9 @@ Func_f9e5f: YellowIntro_BlankPalsDelay2AndDisableLCD: xor a - ld [rBGP], a - ld [rOBP0], a - ld [rOBP1], a + ldh [rBGP], a + ldh [rOBP0], a + ldh [rOBP1], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 @@ -756,19 +756,19 @@ YellowIntro_BlankPalsDelay2AndDisableLCD: Func_f9e9a: ld e, a - callab YellowIntroPaletteAction + callfar YellowIntroPaletteAction xor a - ld [hSCX], a - ld [hSCY], a + ldh [hSCX], a + ldh [hSCY], a ld a, $90 - ld [hWY], a + ldh [hWY], a ld a, $e3 - ld [rLCDC], a + ldh [rLCDC], a ld a, $e4 - ld [rBGP], a - ld [rOBP0], a + ldh [rBGP], a + ldh [rOBP0], a ld a, $e0 - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 @@ -798,41 +798,41 @@ YellowIntro_Copy8BitSineWave: Request7TileTransferFromC810ToC710: ld a, $10 - ld [H_VBCOPYSRC], a + ldh [hVBlankCopySource], a ld a, wLYOverridesBuffer / $100 - ld [H_VBCOPYSRC + 1], a + ldh [hVBlankCopySource + 1], a ld a, $10 - ld [H_VBCOPYDEST], a + ldh [hVBlankCopyDest], a ld a, wLYOverrides / $100 - ld [H_VBCOPYDEST + 1], a + ldh [hVBlankCopyDest + 1], a ld a, $7 - ld [H_VBCOPYSIZE], a + ldh [hVBlankCopySize], a ret InitYellowIntroGFXAndMusic: xor a - ld [H_AUTOBGTRANSFERENABLED], a - ld [hSCX], a - ld [hSCY], a - ld [H_AUTOBGTRANSFERDEST], a + ldh [hAutoBGTransferEnabled], a + ldh [hSCX], a + ldh [hSCY], a + ldh [hAutoBGTransferDest], a ld a, $98 - ld [H_AUTOBGTRANSFERDEST + 1], a + ldh [hAutoBGTransferDest + 1], a call YellowIntro_BlankTileMap ld hl, wTileMap ld bc, SCREEN_WIDTH * SCREEN_HEIGHT ld a, $1 call Bank3E_FillMemory - coord hl, 0, 4 + hlcoord 0, 4 ld bc, CopyVideoDataAlternate xor a call Bank3E_FillMemory ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call DelayFrame call DelayFrame call DelayFrame xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld de, $6b5a ld hl, $8000 ld bc, $3eff @@ -915,9 +915,9 @@ YellowIntro_BlankOAMBuffer: YellowIntro_BlankPalettes: xor a - ld [rBGP], a - ld [rOBP0], a - ld [rOBP1], a + ldh [rBGP], a + ldh [rOBP0], a + ldh [rOBP1], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 diff --git a/gfx/attack_anim_1.png b/gfx/attack_anim_1.png deleted file mode 100644 index 12bd7aa2104bb2e53c03817302d62fd906c4db74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1042 zcmV+t1nv8YP)ZOfL&x9eorF>9Fbuy%qj_8M`{;c?OCx2N2W`5<=dBX0jQKK#6* zYb8(Q^QS)@M-YF5Q#0*s5@+ZYlu5tjHg8#Syl^H(qC96E&U`u(@uLczB7S~|=KL6Y zi|z(TD?Hxd)(Wq0=*g7jbIT8w6_1T|RzAaD8^w7>@*(yvCm-|dM2Rhbc)GoFqTIbR zM018NG`k$ex;ABdUHyl@)AX<@mqSYJL(8#IE*x=Ij}89O%)vHBWcS#zT=(c&J>T<{ zi>f>Cuy1Ig1M&Cy_h>ihvz3D-EA04DtK*r!N z(^@4nPuGJKjhJAbRd1O2_^AZjSCRt#9r}i_p?*o*R4`S{4#uaEr&Q!q%a@jY_u!L# zY5|KG(# zo+u>wn*NXDqQp3}lpSK&!Eg#`oxtwkK^a;3A+0LOud$<>QqTDPs*rq-Eo&h*)NOxL z33rvCficQ34H<(1NttL@&zwpXMRHX=P%BW3#$iS3)0$3EXEa4haXdWv(ePaDml8Vq zI@_kNRm)jvHN%e1?TQiJ&qHK1IK zfkTX*(|@4$RlkO)q>wvdWkcJ#T$-}4 zdIt9Jt`0cb=g9K*2x-=NLe!@(^I#N_NUoj29_Erg!(|P#NG;8xt9R0#>P0wugGB#L zf(i}G?&O!Kh0PHAirkRW*7i2uU&?zwk-bmrp6m7KkvK(fNly;0yD9%Fy%Mb*S`S|S z?yR{F#3xomNx*AMytByM0>^K0JgZL8HvWcR>eTP)RV-i9gDvs@53b>L3^2#k(*OVf M07*qoM6N<$f;AEa>i_@% diff --git a/gfx/attack_anim_2.png b/gfx/attack_anim_2.png deleted file mode 100644 index 57abbfdeb1e591dd6910318f789ea1899896c644..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 999 zcmV=0o znB)e`!hJJVL+vaaH0W$K&Y^gfUG+=JoYZ5<19Q${ud5HCHB~y9$B-Fu|{coYHQTy zx#-R=ge6azh9_~9NJ~De2C1vXL^h+76Uc$*SI<+PZQZ{hDpBtg&NE}exR*;audCp( z7ugZ_!UDzSwVDnaWNRO4{;Xkpoo#;*w^L8^FBkY~jQ0z?=aYBwO(&+&B##v$l2c0H zP{C)9*!97w?&DrfyWJwn6~12O+B(r3a<6Z{)EU*;Y0ej`=~t!wqDN&G4aN+bzp9yA zvMM+Sp8WOW?ITNubl~EvE+WTJNY2&BP}=BkZbxV@ayR0o2G4o_RGm5J39lf36MjH> znHw*&my-O9JcGT4b;o%E`4qWLu0S+K<36TJ%*Z7~(FvZdpE&o;yU zvh-||*ZWeJzJGFW@%$edZhV-s+hDgyX@=rWekf-;Xww^}y-aO^+8B2Wdi6vGG=G$2 zN^vGXrR#>;vXV&}lk82BPU-w%#Nk!$`N@ezZMKf)s<(k-Pj_>#TnBb^DxCG}dCb0& z70w=2$NK*4sO8zttMMG}?_UL_JC^b9jf|5s|IeBE7`hvnP4;{mOGT837a{T2^4kxf<1eaLnUjYX0rl3D#ONYS^@9p7D(qaLC<{|5o% VKtl9pJyHMw002ovPDHLkV1g4Y<}&~Q diff --git a/gfx/battle/attack_anim_1.png b/gfx/battle/attack_anim_1.png new file mode 100644 index 0000000000000000000000000000000000000000..f37287378322376abc67a9bb5fac66d91007d23f GIT binary patch literal 977 zcmV;?11|iDP)tUs!rOYtMX#`5pAlo6gGBjwerGezL7VV(JW>aa0owlpSeA&&HrmG7h z0oSqhF1{9eh!#(QdK)Y-<(Dn*2H!5rw(Q}RdqMAu&@*NwAHfk_U3e~FcT+WcJRuE3T(7h{T9v> zX+Q0DJJUP2H!Fq35ZbD7^Kl`IFn4xwE~R~=)%yD7lmO0QGK8O1W8>ey$&{oar!W6#!^}gTyM&C%IM-VA!-DOUM|g{4E;td8&)Bu`{6sgLp;V& z5r&FQe*1N;kPcAU_{aXxJ3owVC*SH@yz|v9%D=Q!L-i$_Ahr5JmD<7m>zz|VN{C#U{?FG=!y*3Jru2~A=bLU~RSpkWS`O1p%W`r2uwFuzWUCqxD znL5gBBNi^I_rAc_PY}sB2FAoFtDuXmMomqL45TVBvnl}btEv$RF9r7t1s^k6xB|7r z@2WQXF0Ie#TV_I#M0tR^u`jTM;Fy6K*tBxf%ZMDTfCPYn{VIaL@1p*`(u#~s=pY@S z(|3e+;OGTO=#V1JDT1C;u1e@%(t-BeLX<}!`##RgFt`lhQQ=CU=ZD3Bswg3}x9f#h z4lYah!Q-*6p$|Y=ph&}}YeXre6oJbqf1T6BQxz$|ET{lU=RN_|ANd0Uc7L=S$$q?r%d@81FS(-P7aJVF7AcY&};sMFaEk_Hc)1a*cC1 zCAUcc(*vx3`Y7McY2eqlOjb}m&S8}R5zs=m1wYz+7eq0r$V;GU@0)%87*hH|3tB00000NkvXXu0mjfO+3pf literal 0 HcmV?d00001 diff --git a/gfx/battle/attack_anim_2.png b/gfx/battle/attack_anim_2.png new file mode 100644 index 0000000000000000000000000000000000000000..6867d650fc11970a378cf0bbb245cddc48b73257 GIT binary patch literal 936 zcmV;Z16TZsP)ZUOe$aw-Z$;)ux=mBTsp%v$ehhwYO;0@_E!0PuR0mEL+I+Ruj{>fRmEJemxh3D zfw51D17uy>WG@zAW_z?BFnO2M|$t+0v0kBsJ5D5e?eY}?_ zR^q?zOHQC!TLV_+6q8*cQ2x5z){OJAlv@PEw_RY@wh%aF8B>VeMpN^UKo1g3vWeig zp5|Ia1dQ7Ec7gFR0n^55#R$gxvx*ionKmE=Ht7I|afBe-!;yVV^3nA5%9+qoco4%` z1;7QHLn4AAgw8+b{{qZ-Y(X!Pm_w@x4BYRy!VtnY0)D|^xpvF)_I6q$kOU0W7Z${R zS|gyia-Wx9R&A+Ueiuvj#CzI__7QmSj0+)xgZ>8<3y#0qW1v@7HH$V=-yofueCOj8E!ZwcZP1loBG7}(B2sCqaS=`VY z5<@U7>3XX{BbW{(_%VLHBxXDCr#{kefX1ZHWw&9IYX?3?U=TXq!$5opPrdsij>xly zY!$%Yk(vM#^5xj?!Dlvvo2@TKNTdaN$s4@j-+2}8uW}0E-R%b#04EhH#~>MYLduWY8MnE&=4B+ae&I7nM;80TRIM$^L5HiKWXNU0iK)(sMR&dD~J8sN+ z4P1;lz+Y_y56tB)z2b~Q=3MvIqwR|v7y)kte_fV0VPlPJwtU#Q8&&7iB!HKP+wq1r zda^qLclq#p|6#>~R2E>#2RJiN8n}u%!15sm<`#Gh@CiP>gC|?LxUrqpj-oeufEUwpf;yQtY3y_a~xHrwy4sAwuQulTz9Sp%j zm%1$&%HioWZCPN}3K0GeOb3sLraeCa$zIl_N+`Ynl6r==4Db(9(oizOfs*3@0000< KMNUMnLSTY260QLN literal 0 HcmV?d00001 diff --git a/gfx/battle/balls.png b/gfx/battle/balls.png new file mode 100644 index 0000000000000000000000000000000000000000..21bb5e37250827a941a0ac2a3d2b6e26fab0cab1 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^3P8-k1SA-~$L+cVq^vw$978H@CI8@O<*EPi|HJ&= zpWEj>O#ZWq($H OO!IX0b6Mw<&;$Tsiz;*g literal 0 HcmV?d00001 diff --git a/gfx/battle/battle_hud_1.png b/gfx/battle/battle_hud_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ed9d4a56002c4e60ce9a4aab165741300789c524 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^5FVdQ&MBb@0Ab@G A)Bpeg literal 0 HcmV?d00001 diff --git a/gfx/battle/battle_hud_2.png b/gfx/battle/battle_hud_2.png new file mode 100644 index 0000000000000000000000000000000000000000..0f6954b58c4f345540e2b5055ef60c113adfd066 GIT binary patch literal 88 zcmeAS@N?(olHy`uVBq!ia0vp^5Irf%Q~loCIHj_8t?!B literal 0 HcmV?d00001 diff --git a/gfx/battle/battle_hud_3.png b/gfx/battle/battle_hud_3.png new file mode 100644 index 0000000000000000000000000000000000000000..fd1c57f723439c2ca9076fab0eaeed67d3240226 GIT binary patch literal 93 zcmeAS@N?(olHy`uVBq!ia0vp^5pGTof q-pTM!Is;QRTb%%F(tmd55H5y@9SWb8`1-qn^m)4axvX1I`7k3Jo562;hU=cfw@)VR`wPFVdQ&MBb@0GUr7DF6Tf diff --git a/gfx/battle_hud2.png b/gfx/battle_hud2.png deleted file mode 100644 index a5df75c8c3ded4a496ee5437de93be46e4bac78c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79 zcmeAS@N?(olHy`uVBq!ia0vp^96&6=2qYNZFKXNiq{KX3978y+Cs&+n;I&Kmao~eI c>ocbe2L28)MbXu-VnHfBUHx3vIVCg!0J<0y+yDRo diff --git a/gfx/battle_hud3.png b/gfx/battle_hud3.png deleted file mode 100644 index 00643de7b57dae50c0e1d053f1a620410654449d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88 zcmeAS@N?(olHy`uVBq!ia0vp^96&6=2qYNZFKXNiq~twa978y+C;vFl(4@eSXv^+g l##X2C-@e&)!dafl>Y+KZ^8TRRqJH;PTjh+tKbkZ3rfrKYfvN$(=d6b5a!?BCnFvh5H5umAPG@yNgb Y4EDatQzxu@)Cw}#)78&qol`;+02(kX00000 literal 0 HcmV?d00001 diff --git a/gfx/emotes/fish.png b/gfx/emotes/fish.png new file mode 100644 index 0000000000000000000000000000000000000000..216c9c43a19954ce8361136dce4fb43528f29b6b GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx;Bp3=bcE|uJCr=m0kcwN$KelIGt!tC#;rYeW zAGY>Y+KZ^IS%OnCB9o5NR literal 0 HcmV?d00001 diff --git a/gfx/emotes/happy.png b/gfx/emotes/happy.png new file mode 100644 index 0000000000000000000000000000000000000000..dd65f4d1a1bf0538e37c4a035755d1659ae7fa79 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx;Bp3=bcE|uJ7f%<*kcwNXrws)U81Og;o^1C*gVw~tmv9Fw~reTr%7V!lA> XY1dUVtwKFwLFRh8`njxgN@xNAS79hN literal 0 HcmV?d00001 diff --git a/gfx/emotes/heart.png b/gfx/emotes/heart.png new file mode 100644 index 0000000000000000000000000000000000000000..166fff51555960739e02a4916788d6c9ecec82a6 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx;Bp3=bcE|uJA5Ry@kcwNXr#JF881OJ0oUZ-E zFz8as(J2!nnU*@mDeX?-(rRZo8~VSc`gz-#0(%49UajawO8P21Qei2DuO8jHEngqK fqb%*o&KI8Y+KZ%wh$9ycZgt>vDp{Kl#iFvM;mE2`ha^VvDGb_d*}u1UW!oSAU;pcWY+KZ@#TRE&ZW{Db!uaQ{u_P*A-zdZl{zx>ZG^!qf?Jh?g1I(>FVdQ I&MBb@0K=pvO#lD@ literal 0 HcmV?d00001 diff --git a/gfx/emotes/skull.png b/gfx/emotes/skull.png new file mode 100644 index 0000000000000000000000000000000000000000..e241a5b1b02f2372c89738d6c81f57f13d173fc9 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx;Bp3=bcE|uJH%}MGkcwN$KelIGt!tC#;rYeW zAGY>Y+KZ%wh$9ykE?mf>Dq=B3At`os7-J`&s=~zsTR0X;ta*E1Yu#U-|Nme9XBYbY apP3=!gM9QJy(^PJCVRU2xvXY+KYs!tsM(jbGu|{YC7&*E#YuPNnzm?)~8LP&0GIQAKg0t;eY$T{~eP4*E1L> VD_d?2%Hsx^>gnp|vd$@?2>{W2D#!o; literal 0 HcmV?d00001 diff --git a/gfx/emotion_bubbles.png b/gfx/emotion_bubbles.png deleted file mode 100644 index 652c56b14f3123b2eeae60c417beeb8e7a19bdcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269 zcmV+o0rLKdP)20{X06COJvUUCfee@ zW_mF{HONC=G{|oa2iu~d9$Q5ymCjDGa3n;c?gX2hIuhWRzfR1v(?0h;HuXLs$L>hz zPCIkq1P8~PxzGKMJ}q?Tw!mp;evaHa&!zjZ9*$Yykby&VNW6z$k zXT7d-nR%`Z$3-|yxz!l^X$QKqI`lC-oT*Qs#dXKCgTwQlnZJF;T-cA-0ZaV=Ivo;Z TMh>cD00000NkvXXu0mjfE7o;$ diff --git a/gfx/fishing.asm b/gfx/fishing.asm new file mode 100644 index 000000000..0a040262b --- /dev/null +++ b/gfx/fishing.asm @@ -0,0 +1,4 @@ +RedFishingTilesFront: INCBIN "gfx/overworld/red_fish_front.2bpp" +RedFishingTilesBack: INCBIN "gfx/overworld/red_fish_back.2bpp" +RedFishingTilesSide: INCBIN "gfx/overworld/red_fish_side.2bpp" +RedFishingRodTiles: INCBIN "gfx/overworld/fishing_rod.2bpp" diff --git a/gfx/font.asm b/gfx/font.asm new file mode 100644 index 000000000..51d61de43 --- /dev/null +++ b/gfx/font.asm @@ -0,0 +1,33 @@ +PokemonLogoJapanGraphics: INCBIN "gfx/title/pokemon_logo_japan.2bpp" +FontGraphics:: INCBIN "gfx/font/font.1bpp" +FontGraphicsEnd:: + +ABTiles: INCBIN "gfx/font/AB.2bpp" + +HpBarAndStatusGraphics:: INCBIN "gfx/font/font_battle_extra.2bpp" +HpBarAndStatusGraphicsEnd:: + +BattleHudTiles1: INCBIN "gfx/battle/battle_hud_1.1bpp" +BattleHudTiles1End: +BattleHudTiles2: INCBIN "gfx/battle/battle_hud_2.1bpp" +BattleHudTiles3: INCBIN "gfx/battle/battle_hud_3.1bpp" +BattleHudTiles3End: + +NintendoCopyrightLogoGraphics: INCBIN "gfx/splash/copyright.2bpp" + +GamefreakLogoGraphics: INCBIN "gfx/title/gamefreak_inc.2bpp" +GamefreakLogoGraphicsEnd: + +NineTile: INCBIN "gfx/9_tile.2bpp" + +TextBoxGraphics:: INCBIN "gfx/font/font_extra.2bpp" +TextBoxGraphicsEnd:: + +PokedexTileGraphics: INCBIN "gfx/pokedex/pokedex.2bpp" +PokedexTileGraphicsEnd: + +WorldMapTileGraphics: INCBIN "gfx/town_map/town_map.2bpp" +WorldMapTileGraphicsEnd: + +PlayerCharacterTitleGraphics: INCBIN "gfx/title/player.2bpp" +PlayerCharacterTitleGraphicsEnd: diff --git a/gfx/AB.png b/gfx/font/AB.png similarity index 100% rename from gfx/AB.png rename to gfx/font/AB.png diff --git a/gfx/ED_tile.png b/gfx/font/ED.png similarity index 100% rename from gfx/ED_tile.png rename to gfx/font/ED.png diff --git a/gfx/p_tile.png b/gfx/font/P.png similarity index 100% rename from gfx/p_tile.png rename to gfx/font/P.png diff --git a/gfx/font.png b/gfx/font/font.png similarity index 100% rename from gfx/font.png rename to gfx/font/font.png diff --git a/gfx/font/font_battle_extra.png b/gfx/font/font_battle_extra.png new file mode 100644 index 0000000000000000000000000000000000000000..d00ae7bc377b0672d9823306409e579f09952093 GIT binary patch literal 252 zcmVh8{7$w`%Q4R?1t}3>p`_|_}f?u=Oe<0cXbob zBX1nl8ZtGUJUg~g0>|kzP#J&}g=9$az{E0?BQ#>MwFIFO{DiV&@FY7%6<47uRd(-Y zc;r`6Y{9K8;Z&a^vE1dvJ=xt$^IyMCtXFUA?E3***-_FN0ivS-0000$7Dmv9-w*?)) zK$wNrVKgc&me)U{Z}l7$3+c!EES2S|t)NPJD_GRW?n0s!W=Yj#11S{Ihs6diw*ro` z@T6~xJEZXrxj3zFyn(+~3{DCWT&M_N1z(9uDa;`92`uj}V4NEW@CxLfDoGHB$S^pL zVH?N-(tA$2bJl`W;Zyr2Z{Zh^;>d(Z0-i`bfUfDQP0q5YfH+5f0mC9kg(J@ndE0&{ hnVjVIE>U%!uq5x?nc?jHubu z9(MQbiFyitJN(AWRIAVWsP|g0c$xpqz~8vzjmk!CBeufAJ7FEDOo1T~S5MSrrrWpK zo=#s(+-^vc*NH4xnqwPCvck8!<4tBr*S5cTDP1s|$9xOOutd)k_iphHq>iIJOV diff --git a/gfx/icons/bug.png b/gfx/icons/bug.png new file mode 100644 index 0000000000000000000000000000000000000000..40611eb6020924b1366e576a424276ed16deeb8b GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^96+qV1SA+7wCmOaDKAeK$B>F!vE3Va8w_|3*raoM z|4)3=QB)|v{$;91tTHQ?^dxqEv(PC)lexS+4)fM7dCY$E#N3+_>dKKHkMGVX;7ok& ebF!$v^(jXKb-E_+x+S zgX5Hk5!%f+nAkS*v0Yrs!|o#auiHq*;?#oF0|l$vA0B3E`+r8GtACe~%mdKI;Vst031*=Jpcdz literal 0 HcmV?d00001 diff --git a/gfx/icons/quadruped.png b/gfx/icons/quadruped.png new file mode 100644 index 0000000000000000000000000000000000000000..c9307b10f843b491c0475a2b3771f6dd1f832562 GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^96+qV1SA+7wCmOaDGyH<$B>F!$v^(jfB2uh&3+Bf zd?|^4I;lT2PJIZR{BW_-jEAQ_Tx@=rtZ;a~K%4zRo_aCkKhM(}R{TGI>Vvz;lBdjO dy7f#CUNLItYw5rEr=t!s+tbz0Wt~$(69CecFyH_H literal 0 HcmV?d00001 diff --git a/gfx/icons/snake.png b/gfx/icons/snake.png new file mode 100644 index 0000000000000000000000000000000000000000..a6076700c6f2ab26c6d811947d6cf61626c4afda GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^96+qV1SA+7wCmOaDJM@C$B>F!wWk;IHW)Ct9^CHa zDjcSv{LnL^)$zt+w!OXPth1RzxeK^=RRVL+lo4VMX6HZ}sJ|3EVp5J?0{7e1L W2E*KS7j+mxrh2;ixvX{%pFny_2s*olkYVI{o0FBKzp*hCx^06@6F>18*=3 zh0x*o`!zfW4K}FpB&cbF!K2`v$BFVdQ&MBb@0OtEHV*mgE literal 0 HcmV?d00001 diff --git a/gfx/pics.asm b/gfx/pics.asm new file mode 100644 index 000000000..4019fe368 --- /dev/null +++ b/gfx/pics.asm @@ -0,0 +1,376 @@ +SECTION "Pics 1", ROMX + +RhydonPicFront:: INCBIN "gfx/pokemon/front_yellow/rhydon.pic" +RhydonPicBack:: INCBIN "gfx/pokemon/back/rhydonb.pic" +KangaskhanPicFront:: INCBIN "gfx/pokemon/front_yellow/kangaskhan.pic" +KangaskhanPicBack:: INCBIN "gfx/pokemon/back/kangaskhanb.pic" +NidoranMPicFront:: INCBIN "gfx/pokemon/front_yellow/nidoranm.pic" +NidoranMPicBack:: INCBIN "gfx/pokemon/back/nidoranmb.pic" +ClefairyPicFront:: INCBIN "gfx/pokemon/front_yellow/clefairy.pic" +ClefairyPicBack:: INCBIN "gfx/pokemon/back/clefairyb.pic" +SpearowPicFront:: INCBIN "gfx/pokemon/front_yellow/spearow.pic" +SpearowPicBack:: INCBIN "gfx/pokemon/back/spearowb.pic" +VoltorbPicFront:: INCBIN "gfx/pokemon/front_yellow/voltorb.pic" +VoltorbPicBack:: INCBIN "gfx/pokemon/back/voltorbb.pic" +NidokingPicFront:: INCBIN "gfx/pokemon/front_yellow/nidoking.pic" +NidokingPicBack:: INCBIN "gfx/pokemon/back/nidokingb.pic" +SlowbroPicFront:: INCBIN "gfx/pokemon/front_yellow/slowbro.pic" +SlowbroPicBack:: INCBIN "gfx/pokemon/back/slowbrob.pic" +IvysaurPicFront:: INCBIN "gfx/pokemon/front_yellow/ivysaur.pic" +IvysaurPicBack:: INCBIN "gfx/pokemon/back/ivysaurb.pic" +ExeggutorPicFront:: INCBIN "gfx/pokemon/front_yellow/exeggutor.pic" +ExeggutorPicBack:: INCBIN "gfx/pokemon/back/exeggutorb.pic" +LickitungPicFront:: INCBIN "gfx/pokemon/front_yellow/lickitung.pic" +LickitungPicBack:: INCBIN "gfx/pokemon/back/lickitungb.pic" +ExeggcutePicFront:: INCBIN "gfx/pokemon/front_yellow/exeggcute.pic" +ExeggcutePicBack:: INCBIN "gfx/pokemon/back/exeggcuteb.pic" +GrimerPicFront:: INCBIN "gfx/pokemon/front_yellow/grimer.pic" +GrimerPicBack:: INCBIN "gfx/pokemon/back/grimerb.pic" +GengarPicFront:: INCBIN "gfx/pokemon/front_yellow/gengar.pic" +GengarPicBack:: INCBIN "gfx/pokemon/back/gengarb.pic" +NidoranFPicFront:: INCBIN "gfx/pokemon/front_yellow/nidoranf.pic" +NidoranFPicBack:: INCBIN "gfx/pokemon/back/nidoranfb.pic" +NidoqueenPicFront:: INCBIN "gfx/pokemon/front_yellow/nidoqueen.pic" +NidoqueenPicBack:: INCBIN "gfx/pokemon/back/nidoqueenb.pic" +CubonePicFront:: INCBIN "gfx/pokemon/front_yellow/cubone.pic" +CubonePicBack:: INCBIN "gfx/pokemon/back/cuboneb.pic" +RhyhornPicFront:: INCBIN "gfx/pokemon/front_yellow/rhyhorn.pic" +RhyhornPicBack:: INCBIN "gfx/pokemon/back/rhyhornb.pic" +LaprasPicFront:: INCBIN "gfx/pokemon/front_yellow/lapras.pic" +LaprasPicBack:: INCBIN "gfx/pokemon/back/laprasb.pic" +ArcaninePicFront:: INCBIN "gfx/pokemon/front_yellow/arcanine.pic" +ArcaninePicBack:: INCBIN "gfx/pokemon/back/arcanineb.pic" +MewPicFront:: INCBIN "gfx/pokemon/front_yellow/mew.pic" +MewPicBack:: INCBIN "gfx/pokemon/back/mewb.pic" +GyaradosPicFront:: INCBIN "gfx/pokemon/front_yellow/gyarados.pic" +GyaradosPicBack:: INCBIN "gfx/pokemon/back/gyaradosb.pic" +ShellderPicFront:: INCBIN "gfx/pokemon/front_yellow/shellder.pic" +ShellderPicBack:: INCBIN "gfx/pokemon/back/shellderb.pic" +TentacoolPicFront:: INCBIN "gfx/pokemon/front_yellow/tentacool.pic" +TentacoolPicBack:: INCBIN "gfx/pokemon/back/tentacoolb.pic" +GastlyPicFront:: INCBIN "gfx/pokemon/front_yellow/gastly.pic" +GastlyPicBack:: INCBIN "gfx/pokemon/back/gastlyb.pic" +ScytherPicFront:: INCBIN "gfx/pokemon/front_yellow/scyther.pic" +ScytherPicBack:: INCBIN "gfx/pokemon/back/scytherb.pic" +StaryuPicFront:: INCBIN "gfx/pokemon/front_yellow/staryu.pic" +StaryuPicBack:: INCBIN "gfx/pokemon/back/staryub.pic" +BlastoisePicFront:: INCBIN "gfx/pokemon/front_yellow/blastoise.pic" +BlastoisePicBack:: INCBIN "gfx/pokemon/back/blastoiseb.pic" +PinsirPicFront:: INCBIN "gfx/pokemon/front_yellow/pinsir.pic" +PinsirPicBack:: INCBIN "gfx/pokemon/back/pinsirb.pic" +TangelaPicFront:: INCBIN "gfx/pokemon/front_yellow/tangela.pic" +TangelaPicBack:: INCBIN "gfx/pokemon/back/tangelab.pic" + + +SECTION "Pics 2", ROMX + +GrowlithePicFront:: INCBIN "gfx/pokemon/front_yellow/growlithe.pic" +GrowlithePicBack:: INCBIN "gfx/pokemon/back/growlitheb.pic" +OnixPicFront:: INCBIN "gfx/pokemon/front_yellow/onix.pic" +OnixPicBack:: INCBIN "gfx/pokemon/back/onixb.pic" +FearowPicFront:: INCBIN "gfx/pokemon/front_yellow/fearow.pic" +FearowPicBack:: INCBIN "gfx/pokemon/back/fearowb.pic" +PidgeyPicFront:: INCBIN "gfx/pokemon/front_yellow/pidgey.pic" +PidgeyPicBack:: INCBIN "gfx/pokemon/back/pidgeyb.pic" +SlowpokePicFront:: INCBIN "gfx/pokemon/front_yellow/slowpoke.pic" +SlowpokePicBack:: INCBIN "gfx/pokemon/back/slowpokeb.pic" +KadabraPicFront:: INCBIN "gfx/pokemon/front_yellow/kadabra.pic" +KadabraPicBack:: INCBIN "gfx/pokemon/back/kadabrab.pic" +GravelerPicFront:: INCBIN "gfx/pokemon/front_yellow/graveler.pic" +GravelerPicBack:: INCBIN "gfx/pokemon/back/gravelerb.pic" +ChanseyPicFront:: INCBIN "gfx/pokemon/front_yellow/chansey.pic" +ChanseyPicBack:: INCBIN "gfx/pokemon/back/chanseyb.pic" +MachokePicFront:: INCBIN "gfx/pokemon/front_yellow/machoke.pic" +MachokePicBack:: INCBIN "gfx/pokemon/back/machokeb.pic" +MrMimePicFront:: INCBIN "gfx/pokemon/front_yellow/mr.mime.pic" +MrMimePicBack:: INCBIN "gfx/pokemon/back/mr.mimeb.pic" +HitmonleePicFront:: INCBIN "gfx/pokemon/front_yellow/hitmonlee.pic" +HitmonleePicBack:: INCBIN "gfx/pokemon/back/hitmonleeb.pic" +HitmonchanPicFront:: INCBIN "gfx/pokemon/front_yellow/hitmonchan.pic" +HitmonchanPicBack:: INCBIN "gfx/pokemon/back/hitmonchanb.pic" +ArbokPicFront:: INCBIN "gfx/pokemon/front_yellow/arbok.pic" +ArbokPicBack:: INCBIN "gfx/pokemon/back/arbokb.pic" +ParasectPicFront:: INCBIN "gfx/pokemon/front_yellow/parasect.pic" +ParasectPicBack:: INCBIN "gfx/pokemon/back/parasectb.pic" +PsyduckPicFront:: INCBIN "gfx/pokemon/front_yellow/psyduck.pic" +PsyduckPicBack:: INCBIN "gfx/pokemon/back/psyduckb.pic" +DrowzeePicFront:: INCBIN "gfx/pokemon/front_yellow/drowzee.pic" +DrowzeePicBack:: INCBIN "gfx/pokemon/back/drowzeeb.pic" +GolemPicFront:: INCBIN "gfx/pokemon/front_yellow/golem.pic" +GolemPicBack:: INCBIN "gfx/pokemon/back/golemb.pic" +MagmarPicFront:: INCBIN "gfx/pokemon/front_yellow/magmar.pic" +MagmarPicBack:: INCBIN "gfx/pokemon/back/magmarb.pic" +ElectabuzzPicFront:: INCBIN "gfx/pokemon/front_yellow/electabuzz.pic" +ElectabuzzPicBack:: INCBIN "gfx/pokemon/back/electabuzzb.pic" +MagnetonPicFront:: INCBIN "gfx/pokemon/front_yellow/magneton.pic" +MagnetonPicBack:: INCBIN "gfx/pokemon/back/magnetonb.pic" +KoffingPicFront:: INCBIN "gfx/pokemon/front_yellow/koffing.pic" +KoffingPicBack:: INCBIN "gfx/pokemon/back/koffingb.pic" +MankeyPicFront:: INCBIN "gfx/pokemon/front_yellow/mankey.pic" +MankeyPicBack:: INCBIN "gfx/pokemon/back/mankeyb.pic" +SeelPicFront:: INCBIN "gfx/pokemon/front_yellow/seel.pic" +SeelPicBack:: INCBIN "gfx/pokemon/back/seelb.pic" +DiglettPicFront:: INCBIN "gfx/pokemon/front_yellow/diglett.pic" +DiglettPicBack:: INCBIN "gfx/pokemon/back/diglettb.pic" +TaurosPicFront:: INCBIN "gfx/pokemon/front_yellow/tauros.pic" +TaurosPicBack:: INCBIN "gfx/pokemon/back/taurosb.pic" +FarfetchdPicFront:: INCBIN "gfx/pokemon/front_yellow/farfetchd.pic" +FarfetchdPicBack:: INCBIN "gfx/pokemon/back/farfetchdb.pic" +VenonatPicFront:: INCBIN "gfx/pokemon/front_yellow/venonat.pic" +VenonatPicBack:: INCBIN "gfx/pokemon/back/venonatb.pic" +DragonitePicFront:: INCBIN "gfx/pokemon/front_yellow/dragonite.pic" +DragonitePicBack:: INCBIN "gfx/pokemon/back/dragoniteb.pic" +DoduoPicFront:: INCBIN "gfx/pokemon/front_yellow/doduo.pic" +DoduoPicBack:: INCBIN "gfx/pokemon/back/doduob.pic" +PoliwagPicFront:: INCBIN "gfx/pokemon/front_yellow/poliwag.pic" +PoliwagPicBack:: INCBIN "gfx/pokemon/back/poliwagb.pic" +JynxPicFront:: INCBIN "gfx/pokemon/front_yellow/jynx.pic" +JynxPicBack:: INCBIN "gfx/pokemon/back/jynxb.pic" +MoltresPicFront:: INCBIN "gfx/pokemon/front_yellow/moltres.pic" +MoltresPicBack:: INCBIN "gfx/pokemon/back/moltresb.pic" + + +SECTION "Pics 3", ROMX + +ArticunoPicFront:: INCBIN "gfx/pokemon/front_yellow/articuno.pic" +ArticunoPicBack:: INCBIN "gfx/pokemon/back/articunob.pic" +ZapdosPicFront:: INCBIN "gfx/pokemon/front_yellow/zapdos.pic" +ZapdosPicBack:: INCBIN "gfx/pokemon/back/zapdosb.pic" +DittoPicFront:: INCBIN "gfx/pokemon/front_yellow/ditto.pic" +DittoPicBack:: INCBIN "gfx/pokemon/back/dittob.pic" +MeowthPicFront:: INCBIN "gfx/pokemon/front_yellow/meowth.pic" +MeowthPicBack:: INCBIN "gfx/pokemon/back/meowthb.pic" +KrabbyPicFront:: INCBIN "gfx/pokemon/front_yellow/krabby.pic" +KrabbyPicBack:: INCBIN "gfx/pokemon/back/krabbyb.pic" +VulpixPicFront:: INCBIN "gfx/pokemon/front_yellow/vulpix.pic" +VulpixPicBack:: INCBIN "gfx/pokemon/back/vulpixb.pic" +NinetalesPicFront:: INCBIN "gfx/pokemon/front_yellow/ninetales.pic" +NinetalesPicBack:: INCBIN "gfx/pokemon/back/ninetalesb.pic" +PikachuPicFront:: INCBIN "gfx/pokemon/front_yellow/pikachu.pic" +PikachuPicBack:: INCBIN "gfx/pokemon/back/pikachub.pic" +RaichuPicFront:: INCBIN "gfx/pokemon/front_yellow/raichu.pic" +RaichuPicBack:: INCBIN "gfx/pokemon/back/raichub.pic" +DratiniPicFront:: INCBIN "gfx/pokemon/front_yellow/dratini.pic" +DratiniPicBack:: INCBIN "gfx/pokemon/back/dratinib.pic" +DragonairPicFront:: INCBIN "gfx/pokemon/front_yellow/dragonair.pic" +DragonairPicBack:: INCBIN "gfx/pokemon/back/dragonairb.pic" +KabutoPicFront:: INCBIN "gfx/pokemon/front_yellow/kabuto.pic" +KabutoPicBack:: INCBIN "gfx/pokemon/back/kabutob.pic" +KabutopsPicFront:: INCBIN "gfx/pokemon/front_yellow/kabutops.pic" +KabutopsPicBack:: INCBIN "gfx/pokemon/back/kabutopsb.pic" +HorseaPicFront:: INCBIN "gfx/pokemon/front_yellow/horsea.pic" +HorseaPicBack:: INCBIN "gfx/pokemon/back/horseab.pic" +SeadraPicFront:: INCBIN "gfx/pokemon/front_yellow/seadra.pic" +SeadraPicBack:: INCBIN "gfx/pokemon/back/seadrab.pic" +SandshrewPicFront:: INCBIN "gfx/pokemon/front_yellow/sandshrew.pic" +SandshrewPicBack:: INCBIN "gfx/pokemon/back/sandshrewb.pic" +SandslashPicFront:: INCBIN "gfx/pokemon/front_yellow/sandslash.pic" +SandslashPicBack:: INCBIN "gfx/pokemon/back/sandslashb.pic" +OmanytePicFront:: INCBIN "gfx/pokemon/front_yellow/omanyte.pic" +OmanytePicBack:: INCBIN "gfx/pokemon/back/omanyteb.pic" +OmastarPicFront:: INCBIN "gfx/pokemon/front_yellow/omastar.pic" +OmastarPicBack:: INCBIN "gfx/pokemon/back/omastarb.pic" +JigglypuffPicFront:: INCBIN "gfx/pokemon/front_yellow/jigglypuff.pic" +JigglypuffPicBack:: INCBIN "gfx/pokemon/back/jigglypuffb.pic" +WigglytuffPicFront:: INCBIN "gfx/pokemon/front_yellow/wigglytuff.pic" +WigglytuffPicBack:: INCBIN "gfx/pokemon/back/wigglytuffb.pic" +EeveePicFront:: INCBIN "gfx/pokemon/front_yellow/eevee.pic" +EeveePicBack:: INCBIN "gfx/pokemon/back/eeveeb.pic" +FlareonPicFront:: INCBIN "gfx/pokemon/front_yellow/flareon.pic" +FlareonPicBack:: INCBIN "gfx/pokemon/back/flareonb.pic" +JolteonPicFront:: INCBIN "gfx/pokemon/front_yellow/jolteon.pic" +JolteonPicBack:: INCBIN "gfx/pokemon/back/jolteonb.pic" +VaporeonPicFront:: INCBIN "gfx/pokemon/front_yellow/vaporeon.pic" +VaporeonPicBack:: INCBIN "gfx/pokemon/back/vaporeonb.pic" +MachopPicFront:: INCBIN "gfx/pokemon/front_yellow/machop.pic" +MachopPicBack:: INCBIN "gfx/pokemon/back/machopb.pic" +ZubatPicFront:: INCBIN "gfx/pokemon/front_yellow/zubat.pic" +ZubatPicBack:: INCBIN "gfx/pokemon/back/zubatb.pic" +EkansPicFront:: INCBIN "gfx/pokemon/front_yellow/ekans.pic" +EkansPicBack:: INCBIN "gfx/pokemon/back/ekansb.pic" +ParasPicFront:: INCBIN "gfx/pokemon/front_yellow/paras.pic" +ParasPicBack:: INCBIN "gfx/pokemon/back/parasb.pic" +PoliwhirlPicFront:: INCBIN "gfx/pokemon/front_yellow/poliwhirl.pic" +PoliwhirlPicBack:: INCBIN "gfx/pokemon/back/poliwhirlb.pic" +PoliwrathPicFront:: INCBIN "gfx/pokemon/front_yellow/poliwrath.pic" +PoliwrathPicBack:: INCBIN "gfx/pokemon/back/poliwrathb.pic" +WeedlePicFront:: INCBIN "gfx/pokemon/front_yellow/weedle.pic" +WeedlePicBack:: INCBIN "gfx/pokemon/back/weedleb.pic" +KakunaPicFront:: INCBIN "gfx/pokemon/front_yellow/kakuna.pic" +KakunaPicBack:: INCBIN "gfx/pokemon/back/kakunab.pic" +BeedrillPicFront:: INCBIN "gfx/pokemon/front_yellow/beedrill.pic" +BeedrillPicBack:: INCBIN "gfx/pokemon/back/beedrillb.pic" + +FossilKabutopsPic:: INCBIN "gfx/pokemon/front_yellow/fossilkabutops.pic" + + +SECTION "Pics 4", ROMX + +DodrioPicFront:: INCBIN "gfx/pokemon/front_yellow/dodrio.pic" +DodrioPicBack:: INCBIN "gfx/pokemon/back/dodriob.pic" +PrimeapePicFront:: INCBIN "gfx/pokemon/front_yellow/primeape.pic" +PrimeapePicBack:: INCBIN "gfx/pokemon/back/primeapeb.pic" +DugtrioPicFront:: INCBIN "gfx/pokemon/front_yellow/dugtrio.pic" +DugtrioPicBack:: INCBIN "gfx/pokemon/back/dugtriob.pic" +VenomothPicFront:: INCBIN "gfx/pokemon/front_yellow/venomoth.pic" +VenomothPicBack:: INCBIN "gfx/pokemon/back/venomothb.pic" +DewgongPicFront:: INCBIN "gfx/pokemon/front_yellow/dewgong.pic" +DewgongPicBack:: INCBIN "gfx/pokemon/back/dewgongb.pic" +CaterpiePicFront:: INCBIN "gfx/pokemon/front_yellow/caterpie.pic" +CaterpiePicBack:: INCBIN "gfx/pokemon/back/caterpieb.pic" +MetapodPicFront:: INCBIN "gfx/pokemon/front_yellow/metapod.pic" +MetapodPicBack:: INCBIN "gfx/pokemon/back/metapodb.pic" +ButterfreePicFront:: INCBIN "gfx/pokemon/front_yellow/butterfree.pic" +ButterfreePicBack:: INCBIN "gfx/pokemon/back/butterfreeb.pic" +MachampPicFront:: INCBIN "gfx/pokemon/front_yellow/machamp.pic" +MachampPicBack:: INCBIN "gfx/pokemon/back/machampb.pic" +GolduckPicFront:: INCBIN "gfx/pokemon/front_yellow/golduck.pic" +GolduckPicBack:: INCBIN "gfx/pokemon/back/golduckb.pic" +HypnoPicFront:: INCBIN "gfx/pokemon/front_yellow/hypno.pic" +HypnoPicBack:: INCBIN "gfx/pokemon/back/hypnob.pic" +GolbatPicFront:: INCBIN "gfx/pokemon/front_yellow/golbat.pic" +GolbatPicBack:: INCBIN "gfx/pokemon/back/golbatb.pic" +MewtwoPicFront:: INCBIN "gfx/pokemon/front_yellow/mewtwo.pic" +MewtwoPicBack:: INCBIN "gfx/pokemon/back/mewtwob.pic" +SnorlaxPicFront:: INCBIN "gfx/pokemon/front_yellow/snorlax.pic" +SnorlaxPicBack:: INCBIN "gfx/pokemon/back/snorlaxb.pic" +MagikarpPicFront:: INCBIN "gfx/pokemon/front_yellow/magikarp.pic" +MagikarpPicBack:: INCBIN "gfx/pokemon/back/magikarpb.pic" +MukPicFront:: INCBIN "gfx/pokemon/front_yellow/muk.pic" +MukPicBack:: INCBIN "gfx/pokemon/back/mukb.pic" +KinglerPicFront:: INCBIN "gfx/pokemon/front_yellow/kingler.pic" +KinglerPicBack:: INCBIN "gfx/pokemon/back/kinglerb.pic" +CloysterPicFront:: INCBIN "gfx/pokemon/front_yellow/cloyster.pic" +CloysterPicBack:: INCBIN "gfx/pokemon/back/cloysterb.pic" +ElectrodePicFront:: INCBIN "gfx/pokemon/front_yellow/electrode.pic" +ElectrodePicBack:: INCBIN "gfx/pokemon/back/electrodeb.pic" +ClefablePicFront:: INCBIN "gfx/pokemon/front_yellow/clefable.pic" +ClefablePicBack:: INCBIN "gfx/pokemon/back/clefableb.pic" +WeezingPicFront:: INCBIN "gfx/pokemon/front_yellow/weezing.pic" +WeezingPicBack:: INCBIN "gfx/pokemon/back/weezingb.pic" +PersianPicFront:: INCBIN "gfx/pokemon/front_yellow/persian.pic" +PersianPicBack:: INCBIN "gfx/pokemon/back/persianb.pic" +MarowakPicFront:: INCBIN "gfx/pokemon/front_yellow/marowak.pic" +MarowakPicBack:: INCBIN "gfx/pokemon/back/marowakb.pic" +HaunterPicFront:: INCBIN "gfx/pokemon/front_yellow/haunter.pic" +HaunterPicBack:: INCBIN "gfx/pokemon/back/haunterb.pic" +AbraPicFront:: INCBIN "gfx/pokemon/front_yellow/abra.pic" +AbraPicBack:: INCBIN "gfx/pokemon/back/abrab.pic" +AlakazamPicFront:: INCBIN "gfx/pokemon/front_yellow/alakazam.pic" +AlakazamPicBack:: INCBIN "gfx/pokemon/back/alakazamb.pic" +PidgeottoPicFront:: INCBIN "gfx/pokemon/front_yellow/pidgeotto.pic" +PidgeottoPicBack:: INCBIN "gfx/pokemon/back/pidgeottob.pic" +PidgeotPicFront:: INCBIN "gfx/pokemon/front_yellow/pidgeot.pic" +PidgeotPicBack:: INCBIN "gfx/pokemon/back/pidgeotb.pic" +StarmiePicFront:: INCBIN "gfx/pokemon/front_yellow/starmie.pic" +StarmiePicBack:: INCBIN "gfx/pokemon/back/starmieb.pic" + + +SECTION "Pics 5", ROMX + +BulbasaurPicFront:: INCBIN "gfx/pokemon/front_yellow/bulbasaur.pic" +BulbasaurPicBack:: INCBIN "gfx/pokemon/back/bulbasaurb.pic" +VenusaurPicFront:: INCBIN "gfx/pokemon/front_yellow/venusaur.pic" +VenusaurPicBack:: INCBIN "gfx/pokemon/back/venusaurb.pic" +TentacruelPicFront:: INCBIN "gfx/pokemon/front_yellow/tentacruel.pic" +TentacruelPicBack:: INCBIN "gfx/pokemon/back/tentacruelb.pic" +GoldeenPicFront:: INCBIN "gfx/pokemon/front_yellow/goldeen.pic" +GoldeenPicBack:: INCBIN "gfx/pokemon/back/goldeenb.pic" +SeakingPicFront:: INCBIN "gfx/pokemon/front_yellow/seaking.pic" +SeakingPicBack:: INCBIN "gfx/pokemon/back/seakingb.pic" +PonytaPicFront:: INCBIN "gfx/pokemon/front_yellow/ponyta.pic" +RapidashPicFront:: INCBIN "gfx/pokemon/front_yellow/rapidash.pic" +PonytaPicBack:: INCBIN "gfx/pokemon/back/ponytab.pic" +RapidashPicBack:: INCBIN "gfx/pokemon/back/rapidashb.pic" +RattataPicFront:: INCBIN "gfx/pokemon/front_yellow/rattata.pic" +RattataPicBack:: INCBIN "gfx/pokemon/back/rattatab.pic" +RaticatePicFront:: INCBIN "gfx/pokemon/front_yellow/raticate.pic" +RaticatePicBack:: INCBIN "gfx/pokemon/back/raticateb.pic" +NidorinoPicFront:: INCBIN "gfx/pokemon/front_yellow/nidorino.pic" +NidorinoPicBack:: INCBIN "gfx/pokemon/back/nidorinob.pic" +NidorinaPicFront:: INCBIN "gfx/pokemon/front_yellow/nidorina.pic" +NidorinaPicBack:: INCBIN "gfx/pokemon/back/nidorinab.pic" +GeodudePicFront:: INCBIN "gfx/pokemon/front_yellow/geodude.pic" +GeodudePicBack:: INCBIN "gfx/pokemon/back/geodudeb.pic" +PorygonPicFront:: INCBIN "gfx/pokemon/front_yellow/porygon.pic" +PorygonPicBack:: INCBIN "gfx/pokemon/back/porygonb.pic" +AerodactylPicFront:: INCBIN "gfx/pokemon/front_yellow/aerodactyl.pic" +AerodactylPicBack:: INCBIN "gfx/pokemon/back/aerodactylb.pic" +MagnemitePicFront:: INCBIN "gfx/pokemon/front_yellow/magnemite.pic" +MagnemitePicBack:: INCBIN "gfx/pokemon/back/magnemiteb.pic" +CharmanderPicFront:: INCBIN "gfx/pokemon/front_yellow/charmander.pic" +CharmanderPicBack:: INCBIN "gfx/pokemon/back/charmanderb.pic" +SquirtlePicFront:: INCBIN "gfx/pokemon/front_yellow/squirtle.pic" +SquirtlePicBack:: INCBIN "gfx/pokemon/back/squirtleb.pic" +CharmeleonPicFront:: INCBIN "gfx/pokemon/front_yellow/charmeleon.pic" +CharmeleonPicBack:: INCBIN "gfx/pokemon/back/charmeleonb.pic" +WartortlePicFront:: INCBIN "gfx/pokemon/front_yellow/wartortle.pic" +WartortlePicBack:: INCBIN "gfx/pokemon/back/wartortleb.pic" +CharizardPicFront:: INCBIN "gfx/pokemon/front_yellow/charizard.pic" +CharizardPicBack:: INCBIN "gfx/pokemon/back/charizardb.pic" +FossilAerodactylPic:: INCBIN "gfx/pokemon/front_yellow/fossilaerodactyl.pic" +GhostPic:: INCBIN "gfx/battle/ghost.pic" +OddishPicFront:: INCBIN "gfx/pokemon/front_yellow/oddish.pic" +OddishPicBack:: INCBIN "gfx/pokemon/back/oddishb.pic" +GloomPicFront:: INCBIN "gfx/pokemon/front_yellow/gloom.pic" +GloomPicBack:: INCBIN "gfx/pokemon/back/gloomb.pic" +VileplumePicFront:: INCBIN "gfx/pokemon/front_yellow/vileplume.pic" +VileplumePicBack:: INCBIN "gfx/pokemon/back/vileplumeb.pic" +BellsproutPicFront:: INCBIN "gfx/pokemon/front_yellow/bellsprout.pic" +BellsproutPicBack:: INCBIN "gfx/pokemon/back/bellsproutb.pic" +WeepinbellPicFront:: INCBIN "gfx/pokemon/front_yellow/weepinbell.pic" +WeepinbellPicBack:: INCBIN "gfx/pokemon/back/weepinbellb.pic" +VictreebelPicFront:: INCBIN "gfx/pokemon/front_yellow/victreebel.pic" +VictreebelPicBack:: INCBIN "gfx/pokemon/back/victreebelb.pic" + + +SECTION "Pics 6", ROMX + +TrainerPics:: +YoungsterPic:: INCBIN "gfx/trainers/youngster.pic" +BugCatcherPic:: INCBIN "gfx/trainers/bugcatcher.pic" +LassPic:: INCBIN "gfx/trainers/lass.pic" +SailorPic:: INCBIN "gfx/trainers/sailor.pic" +JrTrainerMPic:: INCBIN "gfx/trainers/jr.trainerm.pic" +JrTrainerFPic:: INCBIN "gfx/trainers/jr.trainerf.pic" +PokemaniacPic:: INCBIN "gfx/trainers/pokemaniac.pic" +SuperNerdPic:: INCBIN "gfx/trainers/supernerd.pic" +HikerPic:: INCBIN "gfx/trainers/hiker.pic" +BikerPic:: INCBIN "gfx/trainers/biker.pic" +BurglarPic:: INCBIN "gfx/trainers/burglar.pic" +EngineerPic:: INCBIN "gfx/trainers/engineer.pic" +FisherPic:: INCBIN "gfx/trainers/fisher.pic" +SwimmerPic:: INCBIN "gfx/trainers/swimmer.pic" +CueBallPic:: INCBIN "gfx/trainers/cueball.pic" +GamblerPic:: INCBIN "gfx/trainers/gambler.pic" +BeautyPic:: INCBIN "gfx/trainers/beauty.pic" +PsychicPic:: INCBIN "gfx/trainers/psychic.pic" +RockerPic:: INCBIN "gfx/trainers/rocker.pic" +JugglerPic:: INCBIN "gfx/trainers/juggler.pic" +TamerPic:: INCBIN "gfx/trainers/tamer.pic" +BirdKeeperPic:: INCBIN "gfx/trainers/birdkeeper.pic" +BlackbeltPic:: INCBIN "gfx/trainers/blackbelt.pic" +Rival1Pic:: INCBIN "gfx/trainers/yellow/rival1.pic" +ProfOakPic:: INCBIN "gfx/trainers/prof.oak.pic" +ChiefPic:: +ScientistPic:: INCBIN "gfx/trainers/scientist.pic" +GiovanniPic:: INCBIN "gfx/trainers/giovanni.pic" +RocketPic:: INCBIN "gfx/trainers/rocket.pic" +CooltrainerMPic:: INCBIN "gfx/trainers/cooltrainerm.pic" +CooltrainerFPic:: INCBIN "gfx/trainers/cooltrainerf.pic" +BrunoPic:: INCBIN "gfx/trainers/bruno.pic" +BrockPic:: INCBIN "gfx/trainers/yellow/brock.pic" +MistyPic:: INCBIN "gfx/trainers/yellow/misty.pic" +LtSurgePic:: INCBIN "gfx/trainers/lt.surge.pic" +ErikaPic:: INCBIN "gfx/trainers/yellow/erika.pic" +KogaPic:: INCBIN "gfx/trainers/koga.pic" +BlainePic:: INCBIN "gfx/trainers/blaine.pic" +SabrinaPic:: INCBIN "gfx/trainers/sabrina.pic" +GentlemanPic:: INCBIN "gfx/trainers/gentleman.pic" +Rival2Pic:: INCBIN "gfx/trainers/yellow/rival2.pic" +Rival3Pic:: INCBIN "gfx/trainers/yellow/rival3.pic" +LoreleiPic:: INCBIN "gfx/trainers/lorelei.pic" +ChannelerPic:: INCBIN "gfx/trainers/channeler.pic" +AgathaPic:: INCBIN "gfx/trainers/agatha.pic" +LancePic:: INCBIN "gfx/trainers/lance.pic" +JessieJamesPic:: INCBIN "gfx/trainers/yellow/jessiejames.pic" diff --git a/gfx/player.asm b/gfx/player.asm new file mode 100644 index 000000000..20eb48b40 --- /dev/null +++ b/gfx/player.asm @@ -0,0 +1,3 @@ +RedPicFront:: INCBIN "gfx/player/yellow/red.pic" +ShrinkPic1:: INCBIN "gfx/player/shrink1.pic" +ShrinkPic2:: INCBIN "gfx/player/shrink2.pic" diff --git a/pic/trainer/red.png b/gfx/player/red.png similarity index 100% rename from pic/trainer/red.png rename to gfx/player/red.png diff --git a/pic/trainer/redb.png b/gfx/player/redb.png similarity index 100% rename from pic/trainer/redb.png rename to gfx/player/redb.png diff --git a/pic/trainer/shrink1.png b/gfx/player/shrink1.png similarity index 100% rename from pic/trainer/shrink1.png rename to gfx/player/shrink1.png diff --git a/pic/trainer/shrink2.png b/gfx/player/shrink2.png similarity index 100% rename from pic/trainer/shrink2.png rename to gfx/player/shrink2.png diff --git a/pic/ytrainer/red.png b/gfx/player/yellow/red.png similarity index 100% rename from pic/ytrainer/red.png rename to gfx/player/yellow/red.png diff --git a/gfx/pokeball.png b/gfx/pokeball.png deleted file mode 100644 index 830f72b2a1b13432cd43ccdd7ce39d03c9248a39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx;Bp3=bcE|uJXHOT$kcwN$KloXA>VN$IU|hrV z@4%S?ohJ;;hXVx)vsfqm*dn39HjQ<)we;tF+kiLU^V_87zW;A{=Msxhf>;EP3OB=2 WQC;!H2Tj+3jP-Q&b6Mw<&;$T^>nD!@ diff --git a/gfx/pokedex.png b/gfx/pokedex/pokedex.png similarity index 100% rename from gfx/pokedex.png rename to gfx/pokedex/pokedex.png diff --git a/pic/monback/abrab.png b/gfx/pokemon/back/abrab.png similarity index 100% rename from pic/monback/abrab.png rename to gfx/pokemon/back/abrab.png diff --git a/pic/monback/aerodactylb.png b/gfx/pokemon/back/aerodactylb.png similarity index 100% rename from pic/monback/aerodactylb.png rename to gfx/pokemon/back/aerodactylb.png diff --git a/pic/monback/alakazamb.png b/gfx/pokemon/back/alakazamb.png similarity index 100% rename from pic/monback/alakazamb.png rename to gfx/pokemon/back/alakazamb.png diff --git a/pic/monback/arbokb.png b/gfx/pokemon/back/arbokb.png similarity index 100% rename from pic/monback/arbokb.png rename to gfx/pokemon/back/arbokb.png diff --git a/pic/monback/arcanineb.png b/gfx/pokemon/back/arcanineb.png similarity index 100% rename from pic/monback/arcanineb.png rename to gfx/pokemon/back/arcanineb.png diff --git a/pic/monback/articunob.png b/gfx/pokemon/back/articunob.png similarity index 100% rename from pic/monback/articunob.png rename to gfx/pokemon/back/articunob.png diff --git a/pic/monback/beedrillb.png b/gfx/pokemon/back/beedrillb.png similarity index 100% rename from pic/monback/beedrillb.png rename to gfx/pokemon/back/beedrillb.png diff --git a/pic/monback/bellsproutb.png b/gfx/pokemon/back/bellsproutb.png similarity index 100% rename from pic/monback/bellsproutb.png rename to gfx/pokemon/back/bellsproutb.png diff --git a/pic/monback/blastoiseb.png b/gfx/pokemon/back/blastoiseb.png similarity index 100% rename from pic/monback/blastoiseb.png rename to gfx/pokemon/back/blastoiseb.png diff --git a/pic/monback/bulbasaurb.png b/gfx/pokemon/back/bulbasaurb.png similarity index 100% rename from pic/monback/bulbasaurb.png rename to gfx/pokemon/back/bulbasaurb.png diff --git a/pic/monback/butterfreeb.png b/gfx/pokemon/back/butterfreeb.png similarity index 100% rename from pic/monback/butterfreeb.png rename to gfx/pokemon/back/butterfreeb.png diff --git a/pic/monback/caterpieb.png b/gfx/pokemon/back/caterpieb.png similarity index 100% rename from pic/monback/caterpieb.png rename to gfx/pokemon/back/caterpieb.png diff --git a/pic/monback/chanseyb.png b/gfx/pokemon/back/chanseyb.png similarity index 100% rename from pic/monback/chanseyb.png rename to gfx/pokemon/back/chanseyb.png diff --git a/pic/monback/charizardb.png b/gfx/pokemon/back/charizardb.png similarity index 100% rename from pic/monback/charizardb.png rename to gfx/pokemon/back/charizardb.png diff --git a/pic/monback/charmanderb.png b/gfx/pokemon/back/charmanderb.png similarity index 100% rename from pic/monback/charmanderb.png rename to gfx/pokemon/back/charmanderb.png diff --git a/pic/monback/charmeleonb.png b/gfx/pokemon/back/charmeleonb.png similarity index 100% rename from pic/monback/charmeleonb.png rename to gfx/pokemon/back/charmeleonb.png diff --git a/pic/monback/clefableb.png b/gfx/pokemon/back/clefableb.png similarity index 100% rename from pic/monback/clefableb.png rename to gfx/pokemon/back/clefableb.png diff --git a/pic/monback/clefairyb.png b/gfx/pokemon/back/clefairyb.png similarity index 100% rename from pic/monback/clefairyb.png rename to gfx/pokemon/back/clefairyb.png diff --git a/pic/monback/cloysterb.png b/gfx/pokemon/back/cloysterb.png similarity index 100% rename from pic/monback/cloysterb.png rename to gfx/pokemon/back/cloysterb.png diff --git a/pic/monback/cuboneb.png b/gfx/pokemon/back/cuboneb.png similarity index 100% rename from pic/monback/cuboneb.png rename to gfx/pokemon/back/cuboneb.png diff --git a/pic/monback/dewgongb.png b/gfx/pokemon/back/dewgongb.png similarity index 100% rename from pic/monback/dewgongb.png rename to gfx/pokemon/back/dewgongb.png diff --git a/pic/monback/diglettb.png b/gfx/pokemon/back/diglettb.png similarity index 100% rename from pic/monback/diglettb.png rename to gfx/pokemon/back/diglettb.png diff --git a/pic/monback/dittob.png b/gfx/pokemon/back/dittob.png similarity index 100% rename from pic/monback/dittob.png rename to gfx/pokemon/back/dittob.png diff --git a/pic/monback/dodriob.png b/gfx/pokemon/back/dodriob.png similarity index 100% rename from pic/monback/dodriob.png rename to gfx/pokemon/back/dodriob.png diff --git a/pic/monback/doduob.png b/gfx/pokemon/back/doduob.png similarity index 100% rename from pic/monback/doduob.png rename to gfx/pokemon/back/doduob.png diff --git a/pic/monback/dragonairb.png b/gfx/pokemon/back/dragonairb.png similarity index 100% rename from pic/monback/dragonairb.png rename to gfx/pokemon/back/dragonairb.png diff --git a/pic/monback/dragoniteb.png b/gfx/pokemon/back/dragoniteb.png similarity index 100% rename from pic/monback/dragoniteb.png rename to gfx/pokemon/back/dragoniteb.png diff --git a/pic/monback/dratinib.png b/gfx/pokemon/back/dratinib.png similarity index 100% rename from pic/monback/dratinib.png rename to gfx/pokemon/back/dratinib.png diff --git a/pic/monback/drowzeeb.png b/gfx/pokemon/back/drowzeeb.png similarity index 100% rename from pic/monback/drowzeeb.png rename to gfx/pokemon/back/drowzeeb.png diff --git a/pic/monback/dugtriob.png b/gfx/pokemon/back/dugtriob.png similarity index 100% rename from pic/monback/dugtriob.png rename to gfx/pokemon/back/dugtriob.png diff --git a/pic/monback/eeveeb.png b/gfx/pokemon/back/eeveeb.png similarity index 100% rename from pic/monback/eeveeb.png rename to gfx/pokemon/back/eeveeb.png diff --git a/pic/monback/ekansb.png b/gfx/pokemon/back/ekansb.png similarity index 100% rename from pic/monback/ekansb.png rename to gfx/pokemon/back/ekansb.png diff --git a/pic/monback/electabuzzb.png b/gfx/pokemon/back/electabuzzb.png similarity index 100% rename from pic/monback/electabuzzb.png rename to gfx/pokemon/back/electabuzzb.png diff --git a/pic/monback/electrodeb.png b/gfx/pokemon/back/electrodeb.png similarity index 100% rename from pic/monback/electrodeb.png rename to gfx/pokemon/back/electrodeb.png diff --git a/pic/monback/exeggcuteb.png b/gfx/pokemon/back/exeggcuteb.png similarity index 100% rename from pic/monback/exeggcuteb.png rename to gfx/pokemon/back/exeggcuteb.png diff --git a/pic/monback/exeggutorb.png b/gfx/pokemon/back/exeggutorb.png similarity index 100% rename from pic/monback/exeggutorb.png rename to gfx/pokemon/back/exeggutorb.png diff --git a/pic/monback/farfetchdb.png b/gfx/pokemon/back/farfetchdb.png similarity index 100% rename from pic/monback/farfetchdb.png rename to gfx/pokemon/back/farfetchdb.png diff --git a/pic/monback/fearowb.png b/gfx/pokemon/back/fearowb.png similarity index 100% rename from pic/monback/fearowb.png rename to gfx/pokemon/back/fearowb.png diff --git a/pic/monback/flareonb.png b/gfx/pokemon/back/flareonb.png similarity index 100% rename from pic/monback/flareonb.png rename to gfx/pokemon/back/flareonb.png diff --git a/pic/monback/gastlyb.png b/gfx/pokemon/back/gastlyb.png similarity index 100% rename from pic/monback/gastlyb.png rename to gfx/pokemon/back/gastlyb.png diff --git a/pic/monback/gengarb.png b/gfx/pokemon/back/gengarb.png similarity index 100% rename from pic/monback/gengarb.png rename to gfx/pokemon/back/gengarb.png diff --git a/pic/monback/geodudeb.png b/gfx/pokemon/back/geodudeb.png similarity index 100% rename from pic/monback/geodudeb.png rename to gfx/pokemon/back/geodudeb.png diff --git a/pic/monback/gloomb.png b/gfx/pokemon/back/gloomb.png similarity index 100% rename from pic/monback/gloomb.png rename to gfx/pokemon/back/gloomb.png diff --git a/pic/monback/golbatb.png b/gfx/pokemon/back/golbatb.png similarity index 100% rename from pic/monback/golbatb.png rename to gfx/pokemon/back/golbatb.png diff --git a/pic/monback/goldeenb.png b/gfx/pokemon/back/goldeenb.png similarity index 100% rename from pic/monback/goldeenb.png rename to gfx/pokemon/back/goldeenb.png diff --git a/pic/monback/golduckb.png b/gfx/pokemon/back/golduckb.png similarity index 100% rename from pic/monback/golduckb.png rename to gfx/pokemon/back/golduckb.png diff --git a/pic/monback/golemb.png b/gfx/pokemon/back/golemb.png similarity index 100% rename from pic/monback/golemb.png rename to gfx/pokemon/back/golemb.png diff --git a/pic/monback/gravelerb.png b/gfx/pokemon/back/gravelerb.png similarity index 100% rename from pic/monback/gravelerb.png rename to gfx/pokemon/back/gravelerb.png diff --git a/pic/monback/grimerb.png b/gfx/pokemon/back/grimerb.png similarity index 100% rename from pic/monback/grimerb.png rename to gfx/pokemon/back/grimerb.png diff --git a/pic/monback/growlitheb.png b/gfx/pokemon/back/growlitheb.png similarity index 100% rename from pic/monback/growlitheb.png rename to gfx/pokemon/back/growlitheb.png diff --git a/pic/monback/gyaradosb.png b/gfx/pokemon/back/gyaradosb.png similarity index 100% rename from pic/monback/gyaradosb.png rename to gfx/pokemon/back/gyaradosb.png diff --git a/pic/monback/haunterb.png b/gfx/pokemon/back/haunterb.png similarity index 100% rename from pic/monback/haunterb.png rename to gfx/pokemon/back/haunterb.png diff --git a/pic/monback/hitmonchanb.png b/gfx/pokemon/back/hitmonchanb.png similarity index 100% rename from pic/monback/hitmonchanb.png rename to gfx/pokemon/back/hitmonchanb.png diff --git a/pic/monback/hitmonleeb.png b/gfx/pokemon/back/hitmonleeb.png similarity index 100% rename from pic/monback/hitmonleeb.png rename to gfx/pokemon/back/hitmonleeb.png diff --git a/pic/monback/horseab.png b/gfx/pokemon/back/horseab.png similarity index 100% rename from pic/monback/horseab.png rename to gfx/pokemon/back/horseab.png diff --git a/pic/monback/hypnob.png b/gfx/pokemon/back/hypnob.png similarity index 100% rename from pic/monback/hypnob.png rename to gfx/pokemon/back/hypnob.png diff --git a/pic/monback/ivysaurb.png b/gfx/pokemon/back/ivysaurb.png similarity index 100% rename from pic/monback/ivysaurb.png rename to gfx/pokemon/back/ivysaurb.png diff --git a/pic/monback/jigglypuffb.png b/gfx/pokemon/back/jigglypuffb.png similarity index 100% rename from pic/monback/jigglypuffb.png rename to gfx/pokemon/back/jigglypuffb.png diff --git a/pic/monback/jolteonb.png b/gfx/pokemon/back/jolteonb.png similarity index 100% rename from pic/monback/jolteonb.png rename to gfx/pokemon/back/jolteonb.png diff --git a/pic/monback/jynxb.png b/gfx/pokemon/back/jynxb.png similarity index 100% rename from pic/monback/jynxb.png rename to gfx/pokemon/back/jynxb.png diff --git a/pic/monback/kabutob.png b/gfx/pokemon/back/kabutob.png similarity index 100% rename from pic/monback/kabutob.png rename to gfx/pokemon/back/kabutob.png diff --git a/pic/monback/kabutopsb.png b/gfx/pokemon/back/kabutopsb.png similarity index 100% rename from pic/monback/kabutopsb.png rename to gfx/pokemon/back/kabutopsb.png diff --git a/pic/monback/kadabrab.png b/gfx/pokemon/back/kadabrab.png similarity index 100% rename from pic/monback/kadabrab.png rename to gfx/pokemon/back/kadabrab.png diff --git a/pic/monback/kakunab.png b/gfx/pokemon/back/kakunab.png similarity index 100% rename from pic/monback/kakunab.png rename to gfx/pokemon/back/kakunab.png diff --git a/pic/monback/kangaskhanb.png b/gfx/pokemon/back/kangaskhanb.png similarity index 100% rename from pic/monback/kangaskhanb.png rename to gfx/pokemon/back/kangaskhanb.png diff --git a/pic/monback/kinglerb.png b/gfx/pokemon/back/kinglerb.png similarity index 100% rename from pic/monback/kinglerb.png rename to gfx/pokemon/back/kinglerb.png diff --git a/pic/monback/koffingb.png b/gfx/pokemon/back/koffingb.png similarity index 100% rename from pic/monback/koffingb.png rename to gfx/pokemon/back/koffingb.png diff --git a/pic/monback/krabbyb.png b/gfx/pokemon/back/krabbyb.png similarity index 100% rename from pic/monback/krabbyb.png rename to gfx/pokemon/back/krabbyb.png diff --git a/pic/monback/laprasb.png b/gfx/pokemon/back/laprasb.png similarity index 100% rename from pic/monback/laprasb.png rename to gfx/pokemon/back/laprasb.png diff --git a/pic/monback/lickitungb.png b/gfx/pokemon/back/lickitungb.png similarity index 100% rename from pic/monback/lickitungb.png rename to gfx/pokemon/back/lickitungb.png diff --git a/pic/monback/machampb.png b/gfx/pokemon/back/machampb.png similarity index 100% rename from pic/monback/machampb.png rename to gfx/pokemon/back/machampb.png diff --git a/pic/monback/machokeb.png b/gfx/pokemon/back/machokeb.png similarity index 100% rename from pic/monback/machokeb.png rename to gfx/pokemon/back/machokeb.png diff --git a/pic/monback/machopb.png b/gfx/pokemon/back/machopb.png similarity index 100% rename from pic/monback/machopb.png rename to gfx/pokemon/back/machopb.png diff --git a/pic/monback/magikarpb.png b/gfx/pokemon/back/magikarpb.png similarity index 100% rename from pic/monback/magikarpb.png rename to gfx/pokemon/back/magikarpb.png diff --git a/pic/monback/magmarb.png b/gfx/pokemon/back/magmarb.png similarity index 100% rename from pic/monback/magmarb.png rename to gfx/pokemon/back/magmarb.png diff --git a/pic/monback/magnemiteb.png b/gfx/pokemon/back/magnemiteb.png similarity index 100% rename from pic/monback/magnemiteb.png rename to gfx/pokemon/back/magnemiteb.png diff --git a/pic/monback/magnetonb.png b/gfx/pokemon/back/magnetonb.png similarity index 100% rename from pic/monback/magnetonb.png rename to gfx/pokemon/back/magnetonb.png diff --git a/pic/monback/mankeyb.png b/gfx/pokemon/back/mankeyb.png similarity index 100% rename from pic/monback/mankeyb.png rename to gfx/pokemon/back/mankeyb.png diff --git a/pic/monback/marowakb.png b/gfx/pokemon/back/marowakb.png similarity index 100% rename from pic/monback/marowakb.png rename to gfx/pokemon/back/marowakb.png diff --git a/pic/monback/meowthb.png b/gfx/pokemon/back/meowthb.png similarity index 100% rename from pic/monback/meowthb.png rename to gfx/pokemon/back/meowthb.png diff --git a/pic/monback/metapodb.png b/gfx/pokemon/back/metapodb.png similarity index 100% rename from pic/monback/metapodb.png rename to gfx/pokemon/back/metapodb.png diff --git a/pic/monback/mewb.png b/gfx/pokemon/back/mewb.png similarity index 100% rename from pic/monback/mewb.png rename to gfx/pokemon/back/mewb.png diff --git a/pic/monback/mewtwob.png b/gfx/pokemon/back/mewtwob.png similarity index 100% rename from pic/monback/mewtwob.png rename to gfx/pokemon/back/mewtwob.png diff --git a/pic/monback/moltresb.png b/gfx/pokemon/back/moltresb.png similarity index 100% rename from pic/monback/moltresb.png rename to gfx/pokemon/back/moltresb.png diff --git a/pic/monback/mr.mimeb.png b/gfx/pokemon/back/mr.mimeb.png similarity index 100% rename from pic/monback/mr.mimeb.png rename to gfx/pokemon/back/mr.mimeb.png diff --git a/pic/monback/mukb.png b/gfx/pokemon/back/mukb.png similarity index 100% rename from pic/monback/mukb.png rename to gfx/pokemon/back/mukb.png diff --git a/pic/monback/nidokingb.png b/gfx/pokemon/back/nidokingb.png similarity index 100% rename from pic/monback/nidokingb.png rename to gfx/pokemon/back/nidokingb.png diff --git a/pic/monback/nidoqueenb.png b/gfx/pokemon/back/nidoqueenb.png similarity index 100% rename from pic/monback/nidoqueenb.png rename to gfx/pokemon/back/nidoqueenb.png diff --git a/pic/monback/nidoranfb.png b/gfx/pokemon/back/nidoranfb.png similarity index 100% rename from pic/monback/nidoranfb.png rename to gfx/pokemon/back/nidoranfb.png diff --git a/pic/monback/nidoranmb.png b/gfx/pokemon/back/nidoranmb.png similarity index 100% rename from pic/monback/nidoranmb.png rename to gfx/pokemon/back/nidoranmb.png diff --git a/pic/monback/nidorinab.png b/gfx/pokemon/back/nidorinab.png similarity index 100% rename from pic/monback/nidorinab.png rename to gfx/pokemon/back/nidorinab.png diff --git a/pic/monback/nidorinob.png b/gfx/pokemon/back/nidorinob.png similarity index 100% rename from pic/monback/nidorinob.png rename to gfx/pokemon/back/nidorinob.png diff --git a/pic/monback/ninetalesb.png b/gfx/pokemon/back/ninetalesb.png similarity index 100% rename from pic/monback/ninetalesb.png rename to gfx/pokemon/back/ninetalesb.png diff --git a/pic/monback/oddishb.png b/gfx/pokemon/back/oddishb.png similarity index 100% rename from pic/monback/oddishb.png rename to gfx/pokemon/back/oddishb.png diff --git a/pic/monback/omanyteb.png b/gfx/pokemon/back/omanyteb.png similarity index 100% rename from pic/monback/omanyteb.png rename to gfx/pokemon/back/omanyteb.png diff --git a/pic/monback/omastarb.png b/gfx/pokemon/back/omastarb.png similarity index 100% rename from pic/monback/omastarb.png rename to gfx/pokemon/back/omastarb.png diff --git a/pic/monback/onixb.png b/gfx/pokemon/back/onixb.png similarity index 100% rename from pic/monback/onixb.png rename to gfx/pokemon/back/onixb.png diff --git a/pic/monback/parasb.png b/gfx/pokemon/back/parasb.png similarity index 100% rename from pic/monback/parasb.png rename to gfx/pokemon/back/parasb.png diff --git a/pic/monback/parasectb.png b/gfx/pokemon/back/parasectb.png similarity index 100% rename from pic/monback/parasectb.png rename to gfx/pokemon/back/parasectb.png diff --git a/pic/monback/persianb.png b/gfx/pokemon/back/persianb.png similarity index 100% rename from pic/monback/persianb.png rename to gfx/pokemon/back/persianb.png diff --git a/pic/monback/pidgeotb.png b/gfx/pokemon/back/pidgeotb.png similarity index 100% rename from pic/monback/pidgeotb.png rename to gfx/pokemon/back/pidgeotb.png diff --git a/pic/monback/pidgeottob.png b/gfx/pokemon/back/pidgeottob.png similarity index 100% rename from pic/monback/pidgeottob.png rename to gfx/pokemon/back/pidgeottob.png diff --git a/pic/monback/pidgeyb.png b/gfx/pokemon/back/pidgeyb.png similarity index 100% rename from pic/monback/pidgeyb.png rename to gfx/pokemon/back/pidgeyb.png diff --git a/pic/monback/pikachub.png b/gfx/pokemon/back/pikachub.png similarity index 100% rename from pic/monback/pikachub.png rename to gfx/pokemon/back/pikachub.png diff --git a/pic/monback/pinsirb.png b/gfx/pokemon/back/pinsirb.png similarity index 100% rename from pic/monback/pinsirb.png rename to gfx/pokemon/back/pinsirb.png diff --git a/pic/monback/poliwagb.png b/gfx/pokemon/back/poliwagb.png similarity index 100% rename from pic/monback/poliwagb.png rename to gfx/pokemon/back/poliwagb.png diff --git a/pic/monback/poliwhirlb.png b/gfx/pokemon/back/poliwhirlb.png similarity index 100% rename from pic/monback/poliwhirlb.png rename to gfx/pokemon/back/poliwhirlb.png diff --git a/pic/monback/poliwrathb.png b/gfx/pokemon/back/poliwrathb.png similarity index 100% rename from pic/monback/poliwrathb.png rename to gfx/pokemon/back/poliwrathb.png diff --git a/pic/monback/ponytab.png b/gfx/pokemon/back/ponytab.png similarity index 100% rename from pic/monback/ponytab.png rename to gfx/pokemon/back/ponytab.png diff --git a/pic/monback/porygonb.png b/gfx/pokemon/back/porygonb.png similarity index 100% rename from pic/monback/porygonb.png rename to gfx/pokemon/back/porygonb.png diff --git a/pic/monback/primeapeb.png b/gfx/pokemon/back/primeapeb.png similarity index 100% rename from pic/monback/primeapeb.png rename to gfx/pokemon/back/primeapeb.png diff --git a/pic/monback/psyduckb.png b/gfx/pokemon/back/psyduckb.png similarity index 100% rename from pic/monback/psyduckb.png rename to gfx/pokemon/back/psyduckb.png diff --git a/pic/monback/raichub.png b/gfx/pokemon/back/raichub.png similarity index 100% rename from pic/monback/raichub.png rename to gfx/pokemon/back/raichub.png diff --git a/pic/monback/rapidashb.png b/gfx/pokemon/back/rapidashb.png similarity index 100% rename from pic/monback/rapidashb.png rename to gfx/pokemon/back/rapidashb.png diff --git a/pic/monback/raticateb.png b/gfx/pokemon/back/raticateb.png similarity index 100% rename from pic/monback/raticateb.png rename to gfx/pokemon/back/raticateb.png diff --git a/pic/monback/rattatab.png b/gfx/pokemon/back/rattatab.png similarity index 100% rename from pic/monback/rattatab.png rename to gfx/pokemon/back/rattatab.png diff --git a/pic/monback/rhydonb.png b/gfx/pokemon/back/rhydonb.png similarity index 100% rename from pic/monback/rhydonb.png rename to gfx/pokemon/back/rhydonb.png diff --git a/pic/monback/rhyhornb.png b/gfx/pokemon/back/rhyhornb.png similarity index 100% rename from pic/monback/rhyhornb.png rename to gfx/pokemon/back/rhyhornb.png diff --git a/pic/monback/sandshrewb.png b/gfx/pokemon/back/sandshrewb.png similarity index 100% rename from pic/monback/sandshrewb.png rename to gfx/pokemon/back/sandshrewb.png diff --git a/pic/monback/sandslashb.png b/gfx/pokemon/back/sandslashb.png similarity index 100% rename from pic/monback/sandslashb.png rename to gfx/pokemon/back/sandslashb.png diff --git a/pic/monback/scytherb.png b/gfx/pokemon/back/scytherb.png similarity index 100% rename from pic/monback/scytherb.png rename to gfx/pokemon/back/scytherb.png diff --git a/pic/monback/seadrab.png b/gfx/pokemon/back/seadrab.png similarity index 100% rename from pic/monback/seadrab.png rename to gfx/pokemon/back/seadrab.png diff --git a/pic/monback/seakingb.png b/gfx/pokemon/back/seakingb.png similarity index 100% rename from pic/monback/seakingb.png rename to gfx/pokemon/back/seakingb.png diff --git a/pic/monback/seelb.png b/gfx/pokemon/back/seelb.png similarity index 100% rename from pic/monback/seelb.png rename to gfx/pokemon/back/seelb.png diff --git a/pic/monback/shellderb.png b/gfx/pokemon/back/shellderb.png similarity index 100% rename from pic/monback/shellderb.png rename to gfx/pokemon/back/shellderb.png diff --git a/pic/monback/slowbrob.png b/gfx/pokemon/back/slowbrob.png similarity index 100% rename from pic/monback/slowbrob.png rename to gfx/pokemon/back/slowbrob.png diff --git a/pic/monback/slowpokeb.png b/gfx/pokemon/back/slowpokeb.png similarity index 100% rename from pic/monback/slowpokeb.png rename to gfx/pokemon/back/slowpokeb.png diff --git a/pic/monback/snorlaxb.png b/gfx/pokemon/back/snorlaxb.png similarity index 100% rename from pic/monback/snorlaxb.png rename to gfx/pokemon/back/snorlaxb.png diff --git a/pic/monback/spearowb.png b/gfx/pokemon/back/spearowb.png similarity index 100% rename from pic/monback/spearowb.png rename to gfx/pokemon/back/spearowb.png diff --git a/pic/monback/squirtleb.png b/gfx/pokemon/back/squirtleb.png similarity index 100% rename from pic/monback/squirtleb.png rename to gfx/pokemon/back/squirtleb.png diff --git a/pic/monback/starmieb.png b/gfx/pokemon/back/starmieb.png similarity index 100% rename from pic/monback/starmieb.png rename to gfx/pokemon/back/starmieb.png diff --git a/pic/monback/staryub.png b/gfx/pokemon/back/staryub.png similarity index 100% rename from pic/monback/staryub.png rename to gfx/pokemon/back/staryub.png diff --git a/pic/monback/tangelab.png b/gfx/pokemon/back/tangelab.png similarity index 100% rename from pic/monback/tangelab.png rename to gfx/pokemon/back/tangelab.png diff --git a/pic/monback/taurosb.png b/gfx/pokemon/back/taurosb.png similarity index 100% rename from pic/monback/taurosb.png rename to gfx/pokemon/back/taurosb.png diff --git a/pic/monback/tentacoolb.png b/gfx/pokemon/back/tentacoolb.png similarity index 100% rename from pic/monback/tentacoolb.png rename to gfx/pokemon/back/tentacoolb.png diff --git a/pic/monback/tentacruelb.png b/gfx/pokemon/back/tentacruelb.png similarity index 100% rename from pic/monback/tentacruelb.png rename to gfx/pokemon/back/tentacruelb.png diff --git a/pic/monback/vaporeonb.png b/gfx/pokemon/back/vaporeonb.png similarity index 100% rename from pic/monback/vaporeonb.png rename to gfx/pokemon/back/vaporeonb.png diff --git a/pic/monback/venomothb.png b/gfx/pokemon/back/venomothb.png similarity index 100% rename from pic/monback/venomothb.png rename to gfx/pokemon/back/venomothb.png diff --git a/pic/monback/venonatb.png b/gfx/pokemon/back/venonatb.png similarity index 100% rename from pic/monback/venonatb.png rename to gfx/pokemon/back/venonatb.png diff --git a/pic/monback/venusaurb.png b/gfx/pokemon/back/venusaurb.png similarity index 100% rename from pic/monback/venusaurb.png rename to gfx/pokemon/back/venusaurb.png diff --git a/pic/monback/victreebelb.png b/gfx/pokemon/back/victreebelb.png similarity index 100% rename from pic/monback/victreebelb.png rename to gfx/pokemon/back/victreebelb.png diff --git a/pic/monback/vileplumeb.png b/gfx/pokemon/back/vileplumeb.png similarity index 100% rename from pic/monback/vileplumeb.png rename to gfx/pokemon/back/vileplumeb.png diff --git a/pic/monback/voltorbb.png b/gfx/pokemon/back/voltorbb.png similarity index 100% rename from pic/monback/voltorbb.png rename to gfx/pokemon/back/voltorbb.png diff --git a/pic/monback/vulpixb.png b/gfx/pokemon/back/vulpixb.png similarity index 100% rename from pic/monback/vulpixb.png rename to gfx/pokemon/back/vulpixb.png diff --git a/pic/monback/wartortleb.png b/gfx/pokemon/back/wartortleb.png similarity index 100% rename from pic/monback/wartortleb.png rename to gfx/pokemon/back/wartortleb.png diff --git a/pic/monback/weedleb.png b/gfx/pokemon/back/weedleb.png similarity index 100% rename from pic/monback/weedleb.png rename to gfx/pokemon/back/weedleb.png diff --git a/pic/monback/weepinbellb.png b/gfx/pokemon/back/weepinbellb.png similarity index 100% rename from pic/monback/weepinbellb.png rename to gfx/pokemon/back/weepinbellb.png diff --git a/pic/monback/weezingb.png b/gfx/pokemon/back/weezingb.png similarity index 100% rename from pic/monback/weezingb.png rename to gfx/pokemon/back/weezingb.png diff --git a/pic/monback/wigglytuffb.png b/gfx/pokemon/back/wigglytuffb.png similarity index 100% rename from pic/monback/wigglytuffb.png rename to gfx/pokemon/back/wigglytuffb.png diff --git a/pic/monback/zapdosb.png b/gfx/pokemon/back/zapdosb.png similarity index 100% rename from pic/monback/zapdosb.png rename to gfx/pokemon/back/zapdosb.png diff --git a/pic/monback/zubatb.png b/gfx/pokemon/back/zubatb.png similarity index 100% rename from pic/monback/zubatb.png rename to gfx/pokemon/back/zubatb.png diff --git a/gfx/pokemon/downscaled_3x3.tilemap b/gfx/pokemon/downscaled_3x3.tilemap new file mode 100644 index 000000000..885f4a555 --- /dev/null +++ b/gfx/pokemon/downscaled_3x3.tilemap @@ -0,0 +1 @@ +1F[4I^7La \ No newline at end of file diff --git a/gfx/pokemon/downscaled_5x5.tilemap b/gfx/pokemon/downscaled_5x5.tilemap new file mode 100644 index 000000000..bc99ac239 --- /dev/null +++ b/gfx/pokemon/downscaled_5x5.tilemap @@ -0,0 +1 @@ +18FT[29GU\4;IW^6=KY`7>LZa \ No newline at end of file diff --git a/gfx/pokemon/front.tilemap b/gfx/pokemon/front.tilemap new file mode 100644 index 0000000000000000000000000000000000000000..2f3cb316f15c473927a9648dcb18196ec399243f GIT binary patch literal 49 zcmZQz=M$At)?(z~7n4=dX5thOms8bY<`R^USJP$T7Lrs@*JI@omQvKvXX6!-R?;*8 E0BBJJnE(I) literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/abra.png b/gfx/pokemon/front/abra.png new file mode 100644 index 0000000000000000000000000000000000000000..12045ee37c24c56a7d36defaf83f0902878a9f62 GIT binary patch literal 390 zcmV;10eSw3P)XP_%Kbs^d<$^PxJ7$icHZf_T+ zdh3$jLKg8z@h)+RSXEp~IB$q5chPfR5er2Bu}KNokZecsn_gMVqNQ2H-exq9CA8G- zeGS*p)QM)$Mh!CsdY0?#pmsj`Osrc}B0b$D){GIfV9%s(VIIU}fUgkeATR^WpbFyV z0}KF=?01s@on@jMkBz-Ub+$z<4)a$|(YCLN^|F}vZMz{`l+GSra@Mw@UpFIsi^wx4 z3?e*6#UkmAgK@^gil7-k#EUfJ6Ot*#RYk3mWPFmyQjEhe3sJGBIQ?s=xKBLQg%81^ koS9n3*L+p@`ri$G0tFZOJg|=>jsO4v07*qoM6N<$f~xMRn*aa+ literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/aerodactyl.png b/gfx/pokemon/front/aerodactyl.png new file mode 100644 index 0000000000000000000000000000000000000000..4cbfdeeb71e48680c379f1e3cbb9614581964979 GIT binary patch literal 583 zcmV-N0=WH&P)Vbw}Kzk0EggVq)q&g{~ztDCpq?r3<$l`u~gHW+%acN7M#idPiSMQ!w zHwQrp21BbBlh&l9Qjy7bTISNEvyq;NM9$-u@lqrZImeVPR<(Q50EMPnR_>PDfw^qkf z9@E;7dqo}GqRtAx2Mvz*5m6p%NN5O-Z(Xu`$t&9hA^t#p|a^>DRVN8hMSGnF1cDb^j_De>3v zds0}NuhWJyOU#jSf@+I8Z z-s>9Gzcb4yJ~%W9ie_m>-?}Q_e&s;m$XtGO{tE~? VEOfbZC20Tv002ovPDHLkV1ia88jk<~ literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/alakazam.png b/gfx/pokemon/front/alakazam.png new file mode 100644 index 0000000000000000000000000000000000000000..9c379b6aa053a1609a83773c240fba594a42f802 GIT binary patch literal 688 zcmV;h0#E&kP)T72sgQtr(UL69 zj$l5*E~Q1Sl?2+Ouq{<+)5|8?+8Q=_eP=gzF1x>ZhxgC(%n*oI>qbcNL&X0k?bH3U zW{e@7Dg`}79b)dMbKsr(rPr#!ez@)&d_Q!RakX1buUz{` zf%N@4!6T|`&AurC3H@3sfjPtEoQBce+PJxm7`WqDg)B@+8HyzeZ6aaRB^kxphZfim zWJGYubi>LN2bNMPAbypm`Fm)z%a<%2ae>Y7r*O>mu5Do5o-i=%UXHF`zbc2VUz4C%fkS%%ttXZ`NeKQ&z2t=d|Aw^jNf#) zoqC~(5di$>w>htwtC|`sIZ`)y*<3Y-!Uk*C?MG%UF~sKDdTnODtPasT{!zXASo`n7 z$=}85sX;DGxwPW5>_rsZw;dxX5)Um)ooZtj*pgGWCMSm2r+bQ>F~g$3KI}m6rJd(a z6HvMkiUQ|9!5KUQ@`qB`8+kQ$8EwAF&f&@Ds9q7epC0YU?JW1T%)2S~sc?h0&jT}<9QiZRW# z2-|veV<$~ri0JVM&vxELQPYah^EQPYFv*?>+*TuT;fqU!zkwgWm7uvxW7(q>J)D1% WfePM|7QEd60000BZC~9aM0lI7$%a)yvwkfv`)GwA5Dlr2C#TO=3NfB!)!KsrFJH%cTZvc6y~gNoPNLaX zIFu=t2l6&ov6@J#@gg}gQ2R+hUcd8}ydqHQiixHrs^_ZY9RNvD>5Wm+6+TCY2hdBv z+FD|ohh{GChrzE;j-eHcg`KSIZ^L0-<^U8`aIzErd+1uSs|+`lo;xz?=fE{@5fA)O z%^fNF8hGZ^VpEAFGOk$k0ld1LaaFZ4=P+(F3YF*j?MDwCy?AJWXA57yiJ|;FREi!W zhJSU%(90JbBP)f4-Uku(Ayg~604|z>Dk=bx1)<$#i?ji1j29MUi7_FulQ4m^wr*mH zZ7^g-Hf<$d*tij$1&V@%N*rx&!!yqVwF(gnIHMGL{JkLnxdrGa^0eK!&klC%glAR^ zn~_cKM-rq;z*ecxx;)Oy!IjzlsU|sQK#+pr>*C=R2>8J0|+ z@iq8HV>OD1icGH2XA%(2vv0X|=8R+P`{@)*8vz9 zpQ!exX2Fe{w5);_GptKX7Br1xnSVC;C1%(lmEj{Er+9mQFP*iPQUNV9jg3+|Q{Gum zGnRMC22S((1FW(i;rfmptXl#R`W?)4l`pxSq z>&d2;L4B6>^0Gb?w5TZRy1@7YgrI>PUJIT89Z&D}-vY2gfAa^BT$P_$$QalF0000< KMNUMnLSTaD(^94Y literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/arcanine.png b/gfx/pokemon/front/arcanine.png new file mode 100644 index 0000000000000000000000000000000000000000..5d25961d9dedb30f5c5311cd37a03b8e86f8ddd9 GIT binary patch literal 722 zcmV;@0xkWCP)cjVVp5JrN7jWML|1&G@V}E`h zJ3jFLaHSwd-s0pQ?;xtRXSm^Aibz%I-Pmqg()5b3U1{6nV8~rr+ZMwu!=mAJACmer zHY^k@W;t&HY*-BDJ4D8{I>MiHU=9<3b`kJu@O_W0;TqOsAOLKiZ?auOg)LNKAKx4@ z&xeOGyk)Wx0G%uD%=)TK;qT z)g#7|Xu!f3s@$d2O3}kcH>uc4=lU28K8B`A6@f;F*ix&jRMU%eUZCm%+ej=Nol_%1 zg+S+GK``)lRE;`9+%lb6L@41VrMzaNHzDqJcRcG;*mhxZt zL*&*ri|qrV>N~tnB#-+EBMf+EJC~mmSXzB(rPWWP!2tKGw9;M>P<;d5;$P_ zNVZ!;6FK>jYy~N%78c?KFDfBKh_i!tZ+!=t=D{m{gi9rwVL?Z|fq*pjyuG9Ly14c`L}MkTsl^6CK5QojX90ZnH3A zg?G}EdLIL^uZx9q-i;1l@&E=X)Qt3BxZ7p=a)1e1T1fe7^wd0^2RMiapCo?T$~V8# zikhXDwx`L;F&vN=^x2*xe+K1v4pD$=3%3V-QH%`fVy?*bz8Fs?&@(J*AqciRc8^(& zq#oijirwor>Z!LL*r3SY(jGF+5`O;3+hE(k*uWc{GR;| z8O<%p)AsaX6Z>lNR6z2qJ^dXhsT8{*Iou2YzhA3xjZ3Bk?HN@?ZC)WOlG;;nq^ctD zhLLH6GQg20Z^8Kl8K(a+kWI?2C!=KW&NTMtuS%{@kOCTe=7`;tja#23h7}5G{ZYxa z9SURfvJUQTaaXV&6kpXAwE{iiCY^6?9rk3;q1T}agZgsr0vRm z80?M;rhrkW{v)1sW)gx74aQG^lA4c^Y}AgppjzdmV^G!#w%mVbeqXyHc!-Alm({6_ ninGIPxR0NS9|)2{x+&e*1Z*aoea`IGb`A?a-puSb?>)l#>c;^B#zGnq83Mg$YJg3J zy%u=FbD>yZHGw^pf|D`JstRnNEO$2xmdy>qFMLc0T(r3DtAuIJR>aW>cWB`)Va{^a zy69)z4o8D9i(|8{c5T=8zZ66Kt~TvsfCcJRQ&qpA1Gob3eV#G1SixS1nGZ+i15Ep$ zfIV@u`qG^oLx%g{L-F6nmK%GMwK~4-%BdQiqvf54mW6%$RL(s7%~)yQ_V*CHi0?2~ zE`V|VUZVd>sM8$2Rg`YD8SXI19_Hw4M&E`*9b}{38~tFt5eBqje$VJS#z7I_WkJf9v3O7 zwVd@helQi=$Zm=h)Jk@KQqjjR@%&E__oj(D-Aa;zVy{Re;Ypv2IwdIK70Daq(N)B= zWSdgt9jIugMC-1IhJr?AX_o9{S{C?37*?kjLXPAl3bXqp1Zd(0`Xl-|N-MInvff?U z-bKxjathQ7%1pAu{Y2noD2UbjkEqL!caCT4A0`wasO7TMga7~l07*qoM6N<$f|IpA Aq5uE@ literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/bellsprout.png b/gfx/pokemon/front/bellsprout.png new file mode 100644 index 0000000000000000000000000000000000000000..e4fc5e18b386eb0b75a0f318b8e905e92d00dc3c GIT binary patch literal 313 zcmV-90mlA`P)As=6bJAeD*Xb@;*w4L0Iub?pWMKS379LMd)tM2v{}5-J9Dk)#MNrMMQI zG=e20dB(hV@eRk1yAj++)Rxt z1bIsPeBpAQ>V+Kg2r9l1oU1pRJOo)2;)M>InI=c1rHD6$Sj8Sj9{&mryVWbiLK~1l zbwIeLkxcle`UEFRXEtj#o$RSHogmw-itqB#zAAlmAK6)62wmPv6lH4_|22Pfhc0Vt zw_>%INDhkUK=*ChR(*{u=@bAA3$8iqxQtgWM|x$r(d4Rca~_ip?ROp^iNpliQwoo5 zWL;teJ9}_z$&0v0q%RyJleRpb2iY-^*QGcX;`2t&BIYHboh)r6&fZedH5E`k%T+-!Lvcl!>5sGUYBlQjOikLAJ_2p z8uWU$kt#xCf=Pcvr(;`OGjdSBYeQn01Di9~-sYgOf(ODGo7QRLJ%QsM%r{>!XATAu zWeLF|<`afFdpb1FaND;f4kb#nGQ(RUV!#c*G$WT;9=WH<+Ir|*50@a~pG-v*Lq``( zi4L@3rrdn!+?iu)REEG&c-(g;IZH-W2~JFadE3<4aKytj?s|$dm6C{Go`EKJIE8q# zb;Nq7$pBP##*d{FB7>ha2~7qtDCJ>!kUHe7le<`22rZXfx*B8^F5i^xsNM1}G`Y&_ TvPflo00000NkvXXu0mjf?Yc8P literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/bulbasaur.png b/gfx/pokemon/front/bulbasaur.png new file mode 100644 index 0000000000000000000000000000000000000000..a2a924c74bfc67d541fd4aae8902f593d5652dca GIT binary patch literal 362 zcmV-w0hRuVP)>VkLx2TqgeeGBdQmTY^Pi&gI9a*)>tiKa)pGdp2u z&{4{-sERr%W#pU|y@b$Yn>cBvzL#syjg;_dOPW1ZTCf7}1L&C<6bIk@XHm1A-RI0EwGq09Wq<63V8F1)iKhF(7I=Wj zT!?6?xmzgFhO(k#u}ip!QeFWD9_j3Nm!*Y5gq(rHR`)k+2P&+I6%%Z<4|i&t=ztM& z13K8dTCZi1c*Y0}wbWKOf2JhM5+GvNqfinknG^B*>lkEip;rnZr6_K|TAbl_XmP4I zoFiXj7IHSQHKjw>R@$D~2`idjfxLjX^iZC|OcAVK$9>VWTbV%c+;<$KvScA7fvtPhJX=TH0iCn`$M16GGsY>%Rn ziIE~X&-@=zL8Z@GJ(mTGmn}VVO;%T;nb@Om5}QW(dR8Bi}UMjmyG+$ zC8T(#YK)8tlj%aE`f!7eDQ7CssIJ4~33E?wzWMg6Iw78Wn!Ep7H1ZP~&)9+xJM@T4 zY(@k}D`RH~KLye|;ztMV2hw2^x*XjF$^UgbRk53N`Yx!XPSb{yZpvS_Z~;qc{eO@E O0000}1|KMlmY3~2ocu?-x zlc=jash|ENM=_>K{r@>3l|NA`_nZAw{=|7NR~j@M&FtmjnXBm2XJ#?Eb>)8z?v_eJ z6~_>kLpFPZOjKC1m=>>2H)#23dBjosN55^yPs0|+)&GCj2z=(>%rX7%^STYE`7(@t zIM1}Impe2=s$T4u^Ob-0KhB3rBpv#1zfkF*yy6-DdWq(Kry0+CcE>C@6YLbbiYef{ r{Dw$D9^Og%XXejJT==<_{Y5GR%YK)4I#XWH0{O<%)z4*}Q$iB}S$$&L literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/chansey.png b/gfx/pokemon/front/chansey.png new file mode 100644 index 0000000000000000000000000000000000000000..832ba27c1575e80c15b6ab6d3ff9ac74bc8a9cd3 GIT binary patch literal 496 zcmVBjE6bJAZLMSZ+rO?(Nt0H8;UVa9jd`k#J%r>oTbdnOr$l8d3 zgOsDiczJ{$K)(-i#vk6n84O-1lF#MF^?E2v!u$guB-^o1^g;;V{~R)= zA84?R;sE=UAuIHtiK2~5KEfO|hDD}zuZb&zl#e~t`uzrP+;ggGR_iE48wDqE=yWey z^$J&zj4nkj!}C+dq;?uL&^`20tfkkEOwrl-!)2W4tu>&x^|r&+9u^&1>k&mw#>mrh mowm=O2aID1%75vY6Z8+zhP*$8iRMWF0000F|90%}MvIqvdvh5raN`jK`vRIdr+8NUgQgCLRc@o|_=DAB9T8;KnfuOt5LCDNm zoVU>4I&^4M3Tgt^qeQq_Sv_Q%V+>7Od(Q*DRg}M5*ME@4dcjl_s)v*^-YSdG2wpN-u&zr`x4VX@gp)w#rf#VK{pW@aCEx@6Dy-aL zrqY0{cAV`7*j})h9^<#)5y7`m11HA`=bJezNRhL8hL1@ZTq9upbnbsb410xV;2*GT z$l$*K-watX2Y?v>;a0Ha=#1rBZ6&1VR{B`I@iqCB<9rv)uQ%)9_y!aGAkxM1ctcaK&*zdf)|$El#(n0Rs&m z^k{&9nuZPfd>{Cp;sLeW1E1h&*rWL37bj1S?NB_yd9f6$kxCT;Vv19;@`(7| zr-IIz48!x-PhJQ`arEOaKMeQPZM|;as=O$6d(D#Nvb1Eg(%G#$%#iGyP1b#f>5`LE z2;VWoM+tzOL`dj}mF6S1(71~}i4n@zGm2QwoN;Jw+IqxBLbyg07Rw8Y!bT*S5805b oRtst|-pbopy9zncvUrmH4|0hth3&r(;{X5v07*qoM6N<$f}>}+O#lD@ literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/charmeleon.png b/gfx/pokemon/front/charmeleon.png new file mode 100644 index 0000000000000000000000000000000000000000..a5cff72f4138660208e7f30869608f40c09d9c5c GIT binary patch literal 461 zcmV;;0W$uHP)1 zKT9J)6aet2VJ%K@ueey4GFWJ%WvZJE0o$x(Mlc^CP3|KEM6mLdW3RYQ$U^o7+`>+g zjfC7u4zBPksNltBlUNPQK4&I5Hr-7%Kjty>{tVE9-8YS}j9gRx>cn z!jcr*8Dxeik+*p^LmEx-Z7_$7Vtn|AQ8W%($8%sbLHIO7is3KxIp}LaV#v^UEs;|g zVfYy@98u>?;YW7^&n?jiDhAt)vw~N@ZZp8|-C^J~pVmXasu6Q5nhY9#4)CB$upF)S zHh9Zm$?epNgUSh@=#nLt_*Gmyf{_Tx3Iy*{>8rs2(JRqC19`~k?uObiO;w^>Rf?Nw z8<;L(%cb#(bcC((N7z5Vz^15Z{Px^JNWQ3POrLr4HT95dO#X6J_?~VZP!jA%9Z`@z z(@oqiU;5UL3=D>4^k63qY>hEAgtJP%L89P(NWGkyLN70zWmK=4kysp({2X+rHa)>- zuoU7vXC|!m(N?F90okXFN>G}G#k-7pFOLf!DQD9=B6pPt7+(Z300000NkvXXu0mjf D_sh<6 literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/clefable.png b/gfx/pokemon/front/clefable.png new file mode 100644 index 0000000000000000000000000000000000000000..2fcfac0a42ebdc5d65d1cdbf17120153bc72bf34 GIT binary patch literal 425 zcmV;a0apHrP)D*Fu6Lcij$= z78pPtlYr(jn-Cn$aTZU$s6{EXLm2y_QnZk(B+GsgjIYrpXyCg~hH)QeL48lipbgV~ zuYw+K1v0=-nQM`!afd!kQJ_b8jYGU(;tRP>kCO-*dSdCLjbv0Yees-Gdu;)89|kK?}W3L)nv<3{3Yubl(xmd TD7w7yA_JW4sExH8ZBJ@CSmq6$X6ovDX zoP&mjY|?sR-R||@xgtSZXZmpt{4eKR!f(-k7{w8hH)l!L6K7RR1Kg|qq~(+cvt7$^ ziupxp=1SY-@Io#~AB1ROU=vI#gpa|J%`FXQKAOvx#mCDWnn}xnSLoq6eb0@Zn-4K0V^OwiL`8yH`iV+62e) zRmcY6j@ywVWS7I3;e%)eWbDq>bI}QCs@H*yLvg|E4uKd(jPHWSX1$Moh4{!bUK%IGpJ?CAr=*U}1Zj zJBFhP`j*+|V4CB#RFHGqJZ3RFg4VQTtrh1G9SiZIWMwkTEN31WUeX0WVCs|D%Ko%4 zEVzlObdGSQVl4~`CUEk}lIrC@TPV)0MQ{OkAd(Zo<^%~bw_zSeY{OZC3VE16ZK}hF zIBUZ;QR#(a!Y|BuTwI@i{MpXLA(5jR4@0?b(5noYC&^deC1HEZf!2Kg&ea+~x8VIb zqqWj<=mzXlG*PQ24q@Z=pp_3PhREtAcgLYc@t*GXNfzqbI`xOIuV`;gxeE&TZrNqV z8Cfglh78@M0y6`4cXH!Ep%+5ta#XOZnVSG`BxEeh>yK+9V>r0RHB}bpy;_e$Q?-w~ z&9Zc>pgvTVd=`VVlI00lHutab%TSc`x0KEhFn*^gAl+r>80Wm8h6DD79z5oJG%f;5 zCWf;SHo7yW?d?V|bD`vqJg-Ls+Bx38~ELBXnxlCFVKJS YFFx<|ejMx8umAu607*qoM6N<$f(Nfl>i_@% literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/cubone.png b/gfx/pokemon/front/cubone.png new file mode 100644 index 0000000000000000000000000000000000000000..23e3a23a5fc7e9be273790d6b7888c7a2d9bf060 GIT binary patch literal 360 zcmV-u0hj)XP)g2zF^42AK(SelOd-B_-@UXAtb#ty*LQ^I`MZZl$;u8)Wc*!x9ZEByD(SFGUFU^ z9&VOdn^S{nMit`oKCGRnazkvwSDvb;oR2N|My-0u88#5JtBgpH3QHZE81W(dYqm6- zjMLO|dL2v40w3_YIo}3H-94Rd7ro%s(XV#Yr(ASotGY6R;50000#al1c7HgNFXrphj8FS|IvBg$vj5;hFLACBKPLPr($fx)@>J=0Uz9TJZ z@SGyeI7I-Lf(7a@UZJmDigsO((ZasorqNCuLRCxS84jrHWFxK0iVL|4+sGn@RQRh6 zMn_c>)F^sDOdW+4+yH&S8-*_mL*U-wvlz2rnNz`x$W!<_lzZJiGsxs7D14WE#zat$ zwhj384v1b;C{=R;AcGT0Xru$dg(Nh7`!(Z*UZTM#O`LWU zi$vzro?B=$U}zh$IBzzCiu+UQ2AD77CH?{Pmh2DmQO$+gqU9O@0000&e$`Sa^R(8cB?#uqdILZ=>5qxN^x@ck$3?T4Qj8UQYb`@wX?TQ zqqNm8n{Q?^Ln3_igJwv7`{Dknxfhw78!$tg>{=5T1~k)vqv&_xV!2T40Ip_pj>&AS zvI)3pOf)0FG~fV0NwFw}vf@$7tAupQx(u*OU)Gq<3$x0+F`YWo;$9B*NZgamKIKWA zAIx1eMdHL!tbECXq}|4*A_EP0O`v6wxDqwwe@yaKpm^IR!&J*(^KwusIMj&9_<7WS Z@C{xgH~X1nJ>UQU002ovPDHLkV1gTbd9MHf literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/dodrio.png b/gfx/pokemon/front/dodrio.png new file mode 100644 index 0000000000000000000000000000000000000000..92e6839d4f7d4b0cf6d745dd6ab2fce5d2ee999d GIT binary patch literal 592 zcmV-W0$Tt3s8?R8_e&Q9z229BOA^Vk!gTFJPfk1w)q_6(Myi zC_(L6P<}12*p(YpQfMOeAIOM06esQg?S;d4XII9Z*^EEc8)= zC2GWdnm+PwDSpHPUAE!8^9u7HnvVMZadLYeOxPGr-~!a-kDdid$SSUt6rSHVNX|#h~;f_aYL%; z5xuU7akGLVcD?Mik@|St(J{2jebb1!ElK6xoF20;WqMQPpRq!z59(KJ28{d2os|Ijb(1iDM_0iNy92Pp zLU+k;3s`debSLB_`A||h<&Pm1vQ*L;$?d6-Dou}}7Nfq0fFk-Wg?8AGGXum@x9d_t zvcec%pXa2ih$x+8WrubI$*N!!V4wdmUy#7L4BsOdG@oY@;cu79`2^iD^dlMmJRRIi e(4!*jl>P&fEGv4n@7kvT0000W@8~dH67#slNio{1dgx9?JZ9Y^gtp`N97GN47a&Cja68pQ0v!m>>Q>vH!FR ztl-rCRsMgPR)Ux(SFP&dw@C$=pq@2#;si?(khv;Z1wknfm?2Dupvetj=cul72=rqH zGqqMt4YYtTPiUKY1m@8?sYtf3I*`Bn$f&`^I6^BjXz=uC*H#eeB% zX%MFI|I~`&K#wea`^If25Y!Uj(}M6Ho(-gS=zFe})f0 zRR>HM7+USYo_GB3V9?|bW-|Z(a-ydn%KU%gJU>*y|4-0>IsgncXz*RAhX*w<)L={o uW*GBBiwKN)PWhlcO!WL87!%C+{~rJiqb78r{BpMd0000p` literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/dragonair.png b/gfx/pokemon/front/dragonair.png new file mode 100644 index 0000000000000000000000000000000000000000..55d1ef5b5e4f6c302d9eb131afff8c133a3d9bde GIT binary patch literal 459 zcmV;+0W|)JP)Omqp?tla@l9$pWs>@ zmqV7IorR5!sgkT1UB>lFA{Ato)f_%0z_11RQEIUlB?7!jN;Q&XexvxMH6p%txaJnil7!P>;wk& zV{yB(cJ%67Yzu#U{4hp%EdKhdslc`q{t>mNzAH=A8D;T|pfq?D(xpKITa#l%ZU#|V zw4ze~DADGNK|5L>8YNe@3?6VYSE7B`jE^vPs%CK?<4ycX7x3Sl6W~$hHVSw!9cb)2 zGnFJy&b=YK?4@X@$)o1^5(6&fko0nyR-al#K7=*65frBaqT)7 z>F+=ftHFhAcPYHIGm-z?5Kr`g+mJo*zAaKud;nBw!0ZGU$d&*A002ovPDHLkV1g48 B(vbiF literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/dragonite.png b/gfx/pokemon/front/dragonite.png new file mode 100644 index 0000000000000000000000000000000000000000..4c387c3eb1eae1030a26286628a5825aace31fcc GIT binary patch literal 638 zcmV-^0)hRBP)jz{Oe)=&_y>A`9r(d z-+eV2#`=7xO1-Yfht$&4a0ceI%*&24*)6>g93 zby71M{+_)bXZe=s+_?L=>(lwZ#N$L!JqY+|>5Q6%X%_Z-V@~BMi)KXxcdR1An^y9q z9?d3^$QiPH=5j{OQmT(WTb49HNmDxRv!}`XAVS2VPuG%h$k#$`7v+E@Sg=-a{R)VQ zo;nJwq{-fV)P9qql#-sQ@IY7l>c>3tmm7$ZRXB zbFbMccqU^+dy#7|@nO@GI`e-DM~+|3LsCx7%o$BbX4v2isPppP5uTEUS+Ha#6wp;5 zXI!z&Ok}`wQa(>fL+}Atq?wt<^;s%@*DhPJm z9P&M|sIJ%!3^v&ljIr2=ND86b5JO_mXI?KKo^~Q0OGJ*cT|OL)tuSq8dUQ2G-%_W%F@ literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/dratini.png b/gfx/pokemon/front/dratini.png new file mode 100644 index 0000000000000000000000000000000000000000..9df332e42978c5956bd38ab4ff20d542c1919ec7 GIT binary patch literal 357 zcmV-r0h<1aP)4)$lQVU%Y%{>K|?%DhT28Vov4!Ve7kp#rup+TewSt9rW zI=Dq>FbN1T$@A{TT7{WAv>E0wss0QON5 zdk0{!tRVo$6;T7@B#0z)fSrl&NJcZhc{E{?&YUa9_qUS!9;oJdUvlUH9BPK7?ZL=c z5{?yNcToKGL*1+YeV2Z`;)P)Us>ie$k^0B;&weMd;UnXF^E^Iy(tnfEk z3~v~{_LMwsd&Cfv&-AV-iNUHGG}SMuIsN+kfCl;l)$b&9y}zdf00000NkvXXu0mjf D5oDc8 literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/drowzee.png b/gfx/pokemon/front/drowzee.png new file mode 100644 index 0000000000000000000000000000000000000000..cc85510bc588967b9c233976d56ad1c68bcd3d85 GIT binary patch literal 499 zcmVUOZko{uIeQnJ__PS{rB@B6R%PuUuptiAmErQ291wuRfw zyF){ZY>GB;%DiQ2Z&KfnI+&SeBWnjlR_`wOcjn?2(P7`}fM2jK^93TN&}QORmM{mr z)JSf4avsyQGDgEX)TA(D1TGY~Yq+pb0o79QRM;4X@_VlqOB=X_i7MAFT(kPJ8!U3wKt0t8c4t}hqH_ZC02^&wTrdejWl;)_)<&tI<<_sGf z2}Iq8n0v_aNyb#RCxy8u999W^*&ZFAX*Og%5p^2!qZUv*qZIebk8PZCs2bHGGR|;# z<9eE!nLQ5O#zhZLttX3Fj;$=f)8}3BIEUl}lbZRqpbclVjYq|R6jh+%WwB{0;UEil z!KRbN?jTy%Sab}&23bf)!8ox2UKluAUUTpx7%O)i8;-g~)dJ;7@u~e1U4n zeGHy2h%OaVs0!^TpgG#vF^;MHXkUj3Zx4Y7aq7MbJ3c}Ku6PUwV#Waqd|y5-Ygrki zH)bDzDTb$VY-lFt6`HWtC-xiC(7h3%a~P_Z&WELd6!-4@nTAGpzw0n#Bbnoi3e;b^ zdqu{Ch<|?tX#U;e_?yXX-Ma?}*5@n9gMRnTP<>zp=$m%odd9Wuv$bS5R~tLmzHsY( zf!A1}wJ)^q2>l+Wx?TO|>|A;I?B74QOzSK3nlFC<%Xn_sSUqUt00000NkvXXu0mjf Domm5p literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/eevee.png b/gfx/pokemon/front/eevee.png new file mode 100644 index 0000000000000000000000000000000000000000..956f8ce06392adce67efa020cc0d00312f22f04b GIT binary patch literal 374 zcmV-+0g3*JP)w??gNsWvT_yy_>C^kZXD&U{hllU*@O**h1OM3;^p_Ra1V>j=eogX@3F^m!U$@(0 ziRmx~W4i_*IXz&;<8s87dRLt!2w5fAR+mKXJ~3!$qrxl;u*zW1#6aO zO0qH7R@N*^5`ETZe4s!uFSvC?ty9Bfg3m;a6RSju)5c0fpMu@Ep-9Y47xai7%P4la zVjryhsHymUUZ1n;vKc43$6g}Rph>+MH?QgGKrsw1Nj_X=gX&)w;X9kxl8Ku61*!!U UnyAoK^8f$<07*qoM6N<$f`!YbdjJ3c literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/ekans.png b/gfx/pokemon/front/ekans.png new file mode 100644 index 0000000000000000000000000000000000000000..6dffaf840ae737703872eb168fc12816e1516b32 GIT binary patch literal 376 zcmV-;0f+vHP)h>w+29?h~#z`nx14vX%1W|CW zifMQ{kO`+c16K$B$M&SKwlv)ma9kO3;xjF77rL~NOlqFr68&Zl>UtwV>WaV6ffBLzUzh&r|$erAt>z5 zu^&K2YlCPZ1wVn}DW^?(5M*SWH_5@1bNkJ{_vXEw0rSs-{~^bXU=IIbpmk>kZQ6Gy z58^q#4)zfNBHuXNnih?|M0{va^6{2YzYxFyR$i>HEnDc8sBOq>^BWe(v+Y_<4%&5u zs?ySm+F0O0Q)ni~e}eft8v& z_eSHM9Rtovyey@VBGv>xE%5~@<*~!*c>|JzUdT+&U^D{Q%{CP=lV^5p1q!Y!h#m66 z(mUD;gGpjBkrYZG*nPw>0{|wPv|{n)EkHrsl&eLHau+- z2ZgA3Er5mJ%7mx^+jAE@?b+l4BM9XmnG5hZLPyg6zYDL~ zw>g)7#tqIcI|j}@VFQdV_wAv%o;@EGoZ8;V{1xTv@n4xDNi^u*;oJZK002ovPDHLk FV1jHi?hXI| literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/electrode.png b/gfx/pokemon/front/electrode.png new file mode 100644 index 0000000000000000000000000000000000000000..8df79e6aa0314d7f021f03ac424cf58c20ff7467 GIT binary patch literal 323 zcmV-J0lfZ+P)q!&%&x@peN;*VP382%xFyxKr0V##_?q6H@x??8!ecAMju0R!m5%) z%E#3uXK|&6FhA#53sN3XEFG0R_XG0r4`@$gnn(|n;_j#IYEd`1caa?{Luz}rX_BrHH`@ik#y`9G%Wp1t VG#ANcxat4^002ovPDHLkV1fpUf!hE8 literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/exeggcute.png b/gfx/pokemon/front/exeggcute.png new file mode 100644 index 0000000000000000000000000000000000000000..0ddf8e32f883e81de8889822e96fe970e14dd34a GIT binary patch literal 664 zcmV;J0%!e+P)V3PQhCTIVx!0wdLklN2tl^D5Rn55l{9KHH=0h)R5obB&HY;~E>MHGHJt!l65@EMp@LVuq* z*!Ly%P+bHpC01_Vp=aC17Fw@oq65ANGZ7uSTYm& zSjn~x2AoLUXJ(*@21hvSc%JLbRg*-N;x)d3&_K0^s9fg?EI`!Jqymu_0?i!|A>t}? zfEjnFB)259o;Il~lGTJ({F4cRS=UB||OqJc$mtB1y~M yS!N%lMu^m(-TpqH{FcqH?~=9kEL6n5N8=YDT1OR7j|k=f00003zo`*PM~64?9iK4voK-DoG0QX>9~JFhh}vt!pf{%2)eB7 zO1sZMkAdV2h!xIZmyQx8u|e#?AL~@I%Ut4mry9&FXR z=uZqBUtSMaH3+CO55(ZNBJ}GP<#*Mk=op|Po}HDsN`Y)x0#}IV=Y-Jt;81YT1vfrD zJ0wKDZ}fC}k-?$DZng;_V)LW97LS)k;wF|~lomv9jA)FQUu&54m&D^3IPvM3>f9Sq z(k_ck2)4z_r}UK-cpFcQCqu9$Ogprd!=RFDP8Q&xjP@RJUCC6E2yO)J&)fOJJtfoo zlGx7dpLYdE_WGA#fTx&^Ura>yV>nN=&~^;mLsk_<1F(Yj;d1p=oz>r|R2-MtZd<;& z&M;|thq6(rrF~D13`~PZ*M~h#5n{>TII;=?up`9sLW7Q}g0W*@HPc|xEDPL;{G-a~ zmIz?|smB^zM69>M?P|oM13nXT6Ci8MV-Yk(NK?N1!wtTl_ZlG`TvZym;f`R6PbOlU z-34#Wygy8J4y&>jB05}uKnFA>$CqNn1J2LW+w^!s@tR>X&j*OB6UvOYX7HtMTovNr zj>u)Hbewl;7P```5FNyp$y=1uRC%R2AX16K|+M8?-0lkO_+X~WyA4w#+ zcuL}?WT%B3ycRZClSqZ89~V6-ZG<+b%_c%Bn|;o<7YAmTAH&Rh{0H#A0d#ttP3r&_ ze-66}8V6{_zws7VYaX8LRQPsy#k|TncLvQ`Gy26G6&zGX;~SB$=DT?W1DoonviQRs zyM|EnSdR;g_~ep4h_JGIOqM6^U4B|T&x6Hgh^!5b$CnyBpdl}490xc?MlOzH1=JGtnVrJaVs$^|x3uu}8(Oxx2;vaVa&G@r3R{aCSu(O4FB zqAqgq8CkvSn#4v{sXYEtO9I}8Yc7~-A;m~!Gp zKjLrEgSJjldWo10^&ft)l8Nn$@JMlBfR{}HL*^(f+S@Pia4sDbXyG15e7I`${;WdV zo50-}G>gp~&3e7(`J9f{h1s5dr%s8ZONhSq4_rxP_@LVZ1^@s607*qoM6N<$g8yY2 A)Bpeg literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/fearow.png b/gfx/pokemon/front/fearow.png new file mode 100644 index 0000000000000000000000000000000000000000..c2c65257f4536bed58b394d46b2facae2949a1e7 GIT binary patch literal 564 zcmV-40?Yl0P)_29imk z6nD~)Xc8%PkQb|cy~X}{WzTa2l{Kle-gm_gRM$l;)Iy0 z703{p?n%WKvZvV_IXT0hF#X}3iQ=2)T`vdG?crqecL3q~=9r=g0AVT`0nrDwhV!Tl z-VmnX& zv6*AGOqn}z_$plJ3N^`SY*Z5@>EW58EQg&JVVA7udzi_cWoVTn` zXN%|TIOPW$R%a)3P8mrSVzJKdsu>V%`|+DtcX9nfz<%A-@_08%=jDy^>|q$&%LUj9SHueem5o2UwNAxEXl>yUx9 zY66H1Q6wYv7gS<^n~sDr5+FD=ZjOIMEr=NrM4Oz2Yb z3KlhE_GB~dyadr=!Lku_;s6S{B`^S+ogv8)>xqUh(`-yFC+;g27aky$KnP> z{2upfc*NLSO~hd+<}eMJH@6(b*aom51A`o6eqMij-W&YPI4_X47&l7=wizaw<9^i! zAl>7p(d~*2P2TnVQXpnF52d@j0ei^rmIlu#fB+K$MR^1u!X1nWCUghBgPl6sO3(E0 z5&cLzA8dCa0~=Z8-PYglLTc8P50KP+_()XM@*jr9@*BYkgRet2ic0_h002ovPDHLk FV1hciwbzw*tNnAPNJR+@2%T}f6tg+#k$7c4tp*%ktj zXz#dw*(|@0DF=oi5t{|uv?n}~D6*ijMNG@NRSE?MB%|2Fu4xT~)j35Ll`Y3B_{QR7 ziKrXRoaf zmh}Ldo?VS7f}c5a7+-@8r&0@)_VdUKXPCj}8$Z@v{hG&DE&{lDJ5qIFsWEVW2qeDi zt}=B63%;Ur>nC`WBr3D;K+dD}AI7CHRAlbY!DV!HaNP7G$`OQ9a2<`|F;XltJ&liW zaA(9gB$*lqf_j0iUBF`}WfG|6h)9*q!Z?rQmVUifANc&#}APkV@zoNoGJ( zNO~sZT9)(;oNWWGp4wYf6HV!xUrKrAE&TUVdgm{;OIg-!mF*S)00007VC_=_W4 zbnzF*C=$Ti@|8zmn&LPucONm@r=yxfLwoA-y9me{l>8KpNI<$wnADWu z7(|wPPwj67O-t{fwtGl53ACkWU-rXoN?T==Pm-ibT}$XrdDiLID<8Iu^uWi~ajHlT zesUjZ>q%HxqO%QU#>;FsJuGGxB|v#u`1Wz(1JO+_L_$} z^*A-=URb0;s>y~eiZw<%mHzuV@wtlZ!IH_ pwKafAJ=GZ?3x;6gU7%^%Uu8f literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/geodude.png b/gfx/pokemon/front/geodude.png new file mode 100644 index 0000000000000000000000000000000000000000..4202192a8f1d32e3a75f3045e62043c54f35b8cc GIT binary patch literal 321 zcmV-H0lxl;P)~2Wh^c(K}r?XkTEcPdJa9r~e%XcB8hMMEHZ748o*|FmCz_(PBt_xE~ zt@?}7+2_XT4GM#OpXQ zR4A|;WQIk5Rj%v_Lyeev=^0(+$$cf;#GHZR!o8&GWsb#_zvNBis2Q;T{DrMwo=Y)} TFCGC300000NkvXXu0mjfR1J@6 literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/gloom.png b/gfx/pokemon/front/gloom.png new file mode 100644 index 0000000000000000000000000000000000000000..c2ea9ba43e703c6035581e7570af08b2ff876838 GIT binary patch literal 429 zcmV;e0aE^nP)YU6bA4w4KX6cTd+l_LVN?=9nucEwuN4`lT#fk2=0ZrxGS{of(|W+FCeB4br7L> zgAOiIkTf(7R($yM$l9n{zMc1oUg+4@~jsM2WFrn=y_s^2rmgGU{~O3ug{_ z0(OV`>3aUn%m#_x#c89qbSG*Gct;5ou5)Gp_Eb^wA_%LkITc{_UNyX2g&n4bZ>=UdK;>BpW< z7}7>9#ifI6Gq{1cGk`p$j|Hk#Y%N2xot%KHSvzqs@&fc(t0l{-WiU~|Rdav`Fij*r zCTlaSmcjP7zhX=#eqH6#D6btYJ XFEW*a14Qq)00000NkvXXu0mjfY_7g3 literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/golbat.png b/gfx/pokemon/front/golbat.png new file mode 100644 index 0000000000000000000000000000000000000000..6abc6f0a8d74c8b9ae060cc30f567853e444937b GIT binary patch literal 691 zcmV;k0!;mhP)CQ5*e98dgVYJl%x&*u*%BuUD$uaK#ekf_$yumk=}Q(^ z1r^KbyI54#uJZ~Jv<(&&h0)cpMGYJFp+M|@2G9Z0#j-s_&URkPm!OKMQ%!#J_AVh7 z^D0#j?op?@iJsFG-X-41@rN@33R|_9Yw)}E)_}vB8FRLdE-`2KE9SbGYpjckAKVj8 zixIDDSb9HjrYC1?awl@YX_LBNNGXXQ0S}V()pYUfbnmZ|pv|ICsI4M@VLDOn<{SIj}#_FT9>ixBibh*m9Ndw;ive_=@9V4rMl>K2A4UjI`Qom z@3Yo|#yFAf9uBg!NW7aS6EiX!;4Hy&h)><`Woct{Q>8;;BcFuTT2DQqV+cwgX5iRP^>l>)^d{fRM+A!bm4Zid4CO<E{3d002ovPDHLkV1gk9OlSZA literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/goldeen.png b/gfx/pokemon/front/goldeen.png new file mode 100644 index 0000000000000000000000000000000000000000..e8cbfddcf20a5092c8505b3d1f43330d72bcad51 GIT binary patch literal 415 zcmV;Q0bu@#P)8-hMIb03D2fJfhelb`_#BXV>&dhf-Ws5er8km1V~li@h@=k~A6hCa)9oiv0hGE1 z=(&Bs;N@Z%c0E}Ke@=q9-%!$d*<#W?URALui7E&T0k6QH{vXXF)tDweHN5};002ov JPDHLkV1n3Vv>N~b literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/golduck.png b/gfx/pokemon/front/golduck.png new file mode 100644 index 0000000000000000000000000000000000000000..5448f7c8302fb68d8463ba4befdd2ac17a4c7af3 GIT binary patch literal 596 zcmV-a0;~OrP)h>OrRfl)^b*7rT#_L#!>ulIOIDF!;#5$uDX|VNCgg(m z{zbv9C?QHKlt_>|Djhmh4up$`B&o0W`|jRL`w#E#61^LIel)mX z!aw}JrZ`4S5AU0+HOUcTW}#!P7?Qq$>90;dKjTeI4Tx5r@dy{%RG)EtjH^VaW=e6w zS8PJ9Ey<~S=_xeG@|zi70oc`KTk#a2&WxlJlGn}x2J_6=2Qd~o`@)0HgY}R`n4GEZ z+MT#vy9=*FKCS~erk%Y8TOo%);s6c3EqUaw9pqWgWHQ-5eP?k!XMq)!;=3;yZfh1e z|DrK&KnESc?l|H%*yJB{fTkp0dcOWq6yNwQH`!lCR|81>l$>0}AP2DdL+$w)22U(# z4irxi8y2)@JVtDpV6Q3q7&J_99$qkK0?YIyr#KZ;vD-DtAoZ&Z085JKZCir(6#pi~ zP=bbJ0r!MhUXllmJ(1ihO8TD?q7SgFq*wJ~f>ulYJJPbEQH2#GH-b8~SkG&1As_anIcH`syGt940!{R z3={-|!@!P2g`fkfVx!Q=@t<=_C01_xN#FhN)7^poS@;i3pP+S)rCn8(b9`DHWIg^D z+ediX-#tV6&{Wkf&T#T#um~ zGGH1!kA*H^NYBWTE`+TiHY1IBCZwzJAl8^=T^mfYy?GvM>lc7v!#p;=XXy#p=;&?< z|9v?D!&U2N0TI6*kn2$V?%Hh}-Y9wbhnUsv5~gmA}M{P)9X93~dV#+azdNnto3!P8yGnSl4ZH$U^||M|fG$4AbAhjfZN5|h#tOQ8)P zW(b4xBUl|y5$w)?h1JLm)zTWIHfA`QA&~N9wJ0CfoHC@)5XZq_r)GITP^Y{TDDe$} zcLK_pU#0Ehx(h?!cs*L|zi1MO3fSSd)|V3%;wdnWDU${(rI)YxE__z$$gf<=V&dr& z_@vRHfB4*G&)B>QV^rRHHC#fq9)$^>(w$xSt(vDr>0*=Ef3|*DDiOGKHlh6OH!S0V z3t>x3Kj&K&%UQ4?sN>0pKl_E4Vax+3m}$OZ<(Joz3h)8un~W9ec{l=`AL=s3eD8)4 z6^M2#Oh+-N#2nl7+nCK&CAL|$+%Cs*j>MkM7H-~epeixY+YeHU`)EpZ{vA#6PT0EcqYPDa5RzOWF98DM+Xv|IZs`DGV)_rD5H~nilPMhl0000pdcZ7>LW8f;6!46*dw#h~G{AgV3nO z5UYizitwPFBG!v<3kX|N}It|HO z2rK_=_vb9-1l4R#NAjsB<|bY`W4oE&zFARomgk?W9ve{~EG?>$X`2`Du0K4NT)SN* zUU#u&9>}v6$Nf@}cLUm27a7QV!YA48hNm@hjCh#jgy jlFdM0;H?2%M!NAIK4k2Vv<@qz00000NkvXXu0mjfE?mS! literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/growlithe.png b/gfx/pokemon/front/growlithe.png new file mode 100644 index 0000000000000000000000000000000000000000..b753bce74c4f680e8ce0763347db2d1a989b67d9 GIT binary patch literal 388 zcmV-~0ek+5P)05`Tss83$Il7_gv4hg2=JVowY)!KjZ?oZpCmdL5&G!g?rZm4nQU!NmA0j1^ zmwe%84;e=0B=e$TC2PjCWL(r?`8MdHnVBg z4u)@q7!5-(MGF{(2}ALbSTuArrufPj-CP}4^s*#sIJV+1Un&Tvqw4l|8YjFU;z2v* iVmWrJhy(!kGiL literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/gyarados.png b/gfx/pokemon/front/gyarados.png new file mode 100644 index 0000000000000000000000000000000000000000..a7ed0c1789a0c3f301eef64e65a8200b089305f8 GIT binary patch literal 759 zcmVYez9v;Df)>3KQl1K-0rKhEy}7Keh!>k}C3 z4#aNcv_0lEWZJY5*d^02ulDYceJ-K)8>6_#%_S!M%Y+5Y8C={P(H5s@Rzrp8?ABhS z&#jnaAtXiin|n-G|B@Ut!VT%5I_;0XM$bx-Av951+E5rl5YTbVgTs{C+&en0_+9ku zMCo{+mxd8i!mNW(Do*~CX)FnA-kDBOXM9VhSq7Rsvn>Vy;sskxOar!2x()j6MQS_s zM*x;LZI9=DKxt)7kU)OIx$Tp|9FhF3P6AqnUzMTjiEQc&YC5<0Uz|!)V54p%z|`RY zS({8i`*WvJg5{=I_a)9*+i&br`0y~mg-e@#1B$^b%-mNN(2Y5gYs^&H*m3@*Zxd7G1<7d86;0wOKpawYCC^-EC z*(|CRMCVMRs?8rc8^Z*zZ$x|J%hoQqjW{hK(^*1?PSCfACLf`Y50=p(%S5IFO}9h| zSihML)gGF91ugLl31Fck^wFF3?5Yh&V-8rdQml5eSh&g7CRKnsV@uhcESr+sFSW>! z;!^KNoSWpae0i|N3)kyaHDuR_L%K8X@PggxDhb&ab$aG!-B71|T_M*L^G0)wv>*>mbY4-kyAss*s6Tx%fVj6vnLe@0Rx2TNrbz4}R=Z*@*~v p+HTonjt2DO?Vt9DlJOH1?LYHc->fn3`G5cb002ovPDHLkV1hH9Z0i63 literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/haunter.png b/gfx/pokemon/front/haunter.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6c758da8fa1ced855887dae9590dd364916505 GIT binary patch literal 555 zcmV+`0@VG9P)6d@au3q z4j1hqqcydKL)8}Ly$w2lhy9weA!AUUhClKT_9a2 z0M6u?F@!E6f-$!Ql9&QF)&=r2XcTk!NvSEQA}R>UV78PMp#Pwy(5;z?-~{-v9l`Z8 zg3H*N{$kI%s4z}u_LDBY1T#qRx2}?K7qKpoCIz!-{m#!7=L%*}wT~5dgv8T8tcYIV=pkhb3>IRbMh6vtQn9EVs^M!)< zsR~L;p1qjooj)K=c^AV~{5kLEppkOqfsK2I$1%iFbYL)d>6NGOQBwpOH>*glCE>!{ zZbTvSsSMUp+i|2Lnl?)DC7jacGNh}|Y8j28s%NUmt9?__@Eudygwf51CV`%_XkHlO z&=bm{m(kSuW#ULmIKLEE_Qy_kMQ1IBW=`>Vu-2gcK-!UV0z2Bfv)ke+Fo)zmw*rHb t%VX7p%oH)Z2Tj<^=h-V7f)kNVEGE> zAYKGh1tU@r*rg?rzI?dtb{dkY>``-5+2>M1s%6OhHnw$;ZL3kHq#HidOL&*<%u_isXP|_g8(>sGyrm3t zY3KY5t5FXC6z7$-YPlArdL!$P8f@Oj8CsD!pS^56Kzj$ozKxt2au=_-AgElAtya5u zZX1Mx=v&v7E-#xfsrL~r6E4A74H8=rsO=FIn%F5FjXF5U5hB(Ihf)R#aEtKMFW_Ay zOl*~+O+oweJl^dLM^tqcv14Y42$Aja`xzR91I~GN)k3~WSHd~VAB(Qi;a0dR#Od3a cl%{j>7nE#qPjD+W-~a#s07*qoM6N<$f`)?hp#T5? literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/hitmonlee.png b/gfx/pokemon/front/hitmonlee.png new file mode 100644 index 0000000000000000000000000000000000000000..36042c68a37d8719c70a1f04e8a1e179def776b1 GIT binary patch literal 587 zcmV-R0<`^!P)DB@S&+#B*}h!6DqBu>l*Bm-~J1uBM3x$K!kN@!tRb{|B0WdFmT5)r6DppOBM! zaWKR1%`8breP(kfjkq->cbcsk9v~{$Yg1+sbLAbFp6luNPB<7fm$-f5AN_G{X;|uk z2vqXhFT)v{g6fy5N@ToR)rV>iCIL5ofRXk3csJ1m%DyEUZ-2+r=s*hS;5mgq0}vrT zTRR8Dw`h#m{3w1_5*HaXLiEIHOHl>aeQc#NbDKSUa&=O(^w*z_Wok0BnPZfTm>Z= z)%!_I?ykvF==qov@BEIee=_D_yDYg6$8>E`Ci<`*x7nW;x8%^z#QeM|_tI}GAJI=o zW+P&MFp64W;aVIO&qlm?=eSim(Ik2^E&4yj8|GH`SLf)@k<{cIKhYcq Z^cRBwF}2sIq^BNO>)FZBPR^23;a8R}7k8UP;OH9Tby#i0NI002ovPDHLkV1ir{dddI* literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/hypno.png b/gfx/pokemon/front/hypno.png new file mode 100644 index 0000000000000000000000000000000000000000..e7434ea48c45df38665c0db6b764a3937ef080d6 GIT binary patch literal 638 zcmV-^0)hRBP)zm4E*?P=u0OyoIa_^~m132wKMTu+Ui7@%N~W zW*G|X5Z<;PTvQwVQxh?YIv~1{=3m78!x)vKeGk^;f#pxf5?M)S26u72Ec6qyEAjZ* zS^=|FK20at1EGceGkwEmS$VLk&{|7#m5_(KQ&8b{SERh21w3Ya4)|3*;?uiO=l@w0 z0Gua>w1}m2PF@JsQ$<(~0bWf@IuJ@^B+D;c)9)_(0rZF zkB|inYYY}*SAmAc@h)OF8G|#9Ck?HYh!JyfP9gkR|HWl)<&e%92gHQB&9NS=sD9 z+7C4~lpAKKSwf30t2?hO6DXkVGcPi6))S8+O^8MsLqoj1h*-o?d= Z;ulf9uf5kDFGm0X002ovPDHLkV1mSUvvdFe literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/jigglypuff.png b/gfx/pokemon/front/jigglypuff.png new file mode 100644 index 0000000000000000000000000000000000000000..a547577734a949c84ff2aec1c8fd8167d460ce9d GIT binary patch literal 348 zcmV-i0i*tjP)GD#i<^Uk4wX|xA}T~_C;x`4aD(8|K|wM*1>1ATPv{WnP=t1n zI+YCKkWOtA(Hxh&-d)6B;7!l)-pBX7guh4s#?W$VShwu&5nUJD@>Yn45i{JZKt3Nl z8g8%-V!AV|qK&NNPT>J%;7T?e*l#L{&lD!EW*)}d4wEMPRgcHZku=$9xcfqb;z={9 zhT}?9+;hSk4HAc?oYC+&WJ)3W2Jx02?Evqfqn6%Qc5wqrPlMqKkge(oC-`uI*M?>v z*%lBRj-WWuaWv;$bEa?B`3$rQf88u8G$)=tb1i@rP1{3H2;m=E&Mt-5WMyaPHCp(s uZ*jkNQ8LfmUcfC?o2R18=1aN}9ryv>^*)sEhKvdT0000B^}%0;Ad z<>hDL2LFI0ARUg<)6rR%-jsM5N_lrbe|PPW!J%*ZeRz-WPvb6Xu!9cSNc&|Kvl)*)EZLv{mRmW-t8tgxhP&nr zAFI+Fw_UgedAP$EGu|8*1c;)Qd{!vOMFGu)6#nl~Ednx9i0*Ms0X6Ido3>Y-Xi=Qv zNAq!Yl2!CM{p~2`s|Y^+Td~?63_;uoDm4eQ76dP)HBb;0nPgY8nB9HO?xu5?nIC`Vy%`ulHYh0)cLjF} z-w%&(f;zbcYZK+H^bAQ8Nhga7Wgm9qr!wED`>^mqHt6U+>dvu_Q>yJlcj8B$s+Ny6 z8!mu~qKC2#oeac-XvSbx#Sb2c`Idiw8H=I^L+AT?P-C#i(C7o|!`O`!ED*522_8YP zxiyBC^OO%k#DFdA41{W2D?~H^k%6mahLcko6a_GVqn(gp$u$AA4z7A4u>GV4dqgN+ z;q*ss8^mY}A*6uQr9MQcfej2UGylj)d?&Fs0l(zyVdE?>r`sw_Dk?=8EdHDPIdSc8^R_5{(TJKdC zwceGSJaLO5!jPy)O3&f?OFG4n{3a>g+ZuP<8R!9qt{s0q{v&{;$sdw(@XYGoSp?c$ z%Ex76XmwWvA*@swz7IV=TXvI0rEBI(?#9Rx>r*n7{lmAVcLkY2{}takbM#(xUSZYr zNhx?Scypvs7zg}(DA)SrPE^SR<^W?5+cy|hUJ#21w*;gC;-vYJ2=8zH18iYt@3qk) QssI2007*qoM6N<$g34D0S^xk5 literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/kabuto.png b/gfx/pokemon/front/kabuto.png new file mode 100644 index 0000000000000000000000000000000000000000..e8e44e15ebba784c60dc8ee5ebca584dc8502587 GIT binary patch literal 326 zcmV-M0lEH(P)?SlSw2Fc zoPKPWIIf_*pHOzCTtIh6AJfUyanegDHPG$5YG$C_zb4Y&XMy?Ad-cLfpfHE_lj*C# za=g$EnjTp4w+``>KzS#@I+fiojbuyMNZxsKndJc4*ymfUjc4b^N6jyRXTkLXg1>9| Y0h)Ie?wAHTBLDyZ07*qoM6N<$g2xGrDF6Tf literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/kabutops.png b/gfx/pokemon/front/kabutops.png new file mode 100644 index 0000000000000000000000000000000000000000..39fcb9001cd18a9bddbbeb058b05db6e898ce516 GIT binary patch literal 560 zcmV-00?+-4P)Nf#>iGwBYpW=TppET` z`CjW%2cb)d4G3Lsh*X1x2nkBMG|fTthwtw7`x?prUiJ9MG-TD7~TUeAU>JKsDRf8_OaRr8`XjQxWpsO4?93K zhOZINVcx6>-2DqjVg`R9UPL?H6_{lLr!c2i1RS=DEQUGjyTA|j8QEdXxe~R;9`2U~ z!n<3yFu#IH0ng>Duh8B=b+`g;m&R%I37ZetsS3cDUw%@hRLf{@)?r#G31J}PEdp2@#R=n3;CNB|uF=KQr zg7z|%8-dKx)I-q^XI^|Vc~t{Lz2! zsXJh5=Os2AjXH-oSQ0xQBckb@%R>@gEJ9wit|eqyv{oYjv_EdFNbs0R7S%&Rfv%FO yQi1%mF5s3Us$593AW+xA{5K>@nEzL`FMj}2cYPYkQ@r2+0000SzELRr@nSNg)pc2CC@zbW-^3PJX$0Qjv=$r=2j~`X{l^y(;RwG*vhbl!C-*KSv zd0bskv7Z6o6GCJv*8~`Veie)i9k#eQEBhjbc&R+Pwt@m|><)OtIpV4WjYJpNF6nmt z3(ySL=Pql8rVn!@yOW-OszL(}=5D)IIj@dSl*$7QPqc;J58XaO9Zo~FB4Vrt3M`$; z$2r%s?klz!6d$!rQt|~DG>x|WOvE~?9%WKlw2j|2DfaWJ2iy5S`w!-+hm*w5b2|V4 N002ovPDHLkV1g6z>jwY; literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/kakuna.png b/gfx/pokemon/front/kakuna.png new file mode 100644 index 0000000000000000000000000000000000000000..ee350ffd059ef62746d720d24c91a11f2e1e5738 GIT binary patch literal 316 zcmV-C0mJ@@P)I^V|AYQ|%$lkE>ROLYYUhCW!h&m?yLx5KIP` zf=^nE0ZP}|=KntqlOIinIOh+8^9pCEBRP~-GDDdfJC?wLMCAtyj46CDz#hsxtQi6m zJ+UhQ#{Brt!5$ubA~4ZE886}C%ks+~#{94g&it>3U>>lCGynfbWdZ;bXet5_{Qr?(ux8v8BF?^V$|Yhi9;-E3AyKUW zj#!Y4Y8cH82Uyv%nS9=e7pi0O8K-PI<{o2rI_s4}d@A^uq8B^sE)2%>wy&HbLoUt5 zQ+YL}w`&DD5wkwmT(>~2Dma0+g}xwZ(RJ}>-t{?xTU!syr6RI@XEIwt z22XDje_QA0At zBNgvCWU~f<`er0_T9Gxjs^jbCB*3?Y-N%TU2at$NYo3 literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/kingler.png b/gfx/pokemon/front/kingler.png new file mode 100644 index 0000000000000000000000000000000000000000..b2bd7418abe6731607683533c8eb8255532be81a GIT binary patch literal 616 zcmV-u0+;=XP)){gUbBgMM|Z{Wv!JcgM8q^Qc|lL_cJd5sd& z27HN2h@JBEfakD@*sz&LM{Im2mbm7!E5tX%WQk{7HiTGrX}V0>dD|uP$Zy!1ljk0t za`vbs^V45MI~}kPqlV$KTN+iC5d-=VeND7bnVk%Z2^XOOyR5g%Q=;?{W zh9c{bRE*H^nN(4iY^*?FB{X|IbtOw>Nk%QsRDPC8Cg-4FWpfYw7da>ll1b$`*N)wG zo^kyygLwIJk83s4+2ckj0*S5h9?#Uw?jC2{f>T>(w)wSAW^&tQaXnw=S38;3Hs@*% zidNp{>eHJ{xO{C0BK4e@&Vt_%C9e9j1D+?c`C2ZVB+kHuAvoKunF}7{MwuJ^>U5vx zosL0;XyV7ya{TEaHAnE_0%Gr$&D~y!QDAH1`)rV#Eur`}ji$t#@f5j?kX^`nVtfu$;&|3PQuTs0P*xd(mZUa&8UU zt4oy+3Zj0<*BznT5xKZ-IIC+=X&*4?1No zPiPZS5XL8H5Q-3k#($R{dQmSucoDI#kmR7C$h2<| zP@{Pf_S{2QOAUyKHiyv0B3?9yE!g(33ypa@z7+-M@ZdM!yqS6L19IqZcm!ePA2Juh z>5$PN0@DF%3hfICxiSm1!%gyuH>qa>u|N|wK{Y7r5VBR9_7dD;hUiwGQ|VKhrkO)P zQ!SltO;S+T1@v{I%V`P?TR@Fy<4*p_UVUsALW_neJPa4kEm{z28y!SBS-K%<@YA{; zFVOc)HuvfqFz5Uk)n84@6Agm8eyMa17qZG+iNLTw))r=3sPGknpxCM1cYh#Cj|q5n zA64q2k|Qy6w}XYR%UwA^E)1M^1;3~IN^anQ*K8L#R=e`40}EKQUD#aqF_R87m~yg+ zZVi*ixeeuK53$(a7K-S$b@Ks+sCScx1o&4n_%d6>j1tWm%K2FGT1+071Po&7VK%X! zDN5o;y%*}|)I~0*BIvJ7QcB_o(H+mg3Dnn=(FpptQ;2!xgcL!~UWy@(9Mg9M`14Ef z_UP-F!w3e=p*-^8&GVDY)WH)8C7zF8tq4mPqxCh+7bc9J3#=img2ZVm2Lug6z*%WM z@)i1;x=n47sJH|N=94lB@3|Q{=Z%R%&kif&0=6D)iW-eST@+jUqr_XLMR%ho5d8|> lnOS-tE&3+{H#&j-i{EU4coIbFrl|k`002ovPDHLkV1i053iAK} literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/krabby.png b/gfx/pokemon/front/krabby.png new file mode 100644 index 0000000000000000000000000000000000000000..b280e8db0d1fa250bec7b618cf21acc33ffa092b GIT binary patch literal 436 zcmV;l0ZaagP)|vo-Toj#A^f@0eowA?QQP+JWkvl zQdU>&o_ZLb_E@Y{}KH0M@N^GJfQa0TlS;&F64!&yYZEHO$(L$HOY9 zeR{>I|N3iFZSpK4S-bRMVHH+%k29f5W eY_s^G|M&$?gy%UX2V;)_0000@Z5 literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/lapras.png b/gfx/pokemon/front/lapras.png new file mode 100644 index 0000000000000000000000000000000000000000..822c00e9e961df3479562b97e090303b89900030 GIT binary patch literal 574 zcmV-E0>S->P)4wDFQ@b=|GV9A;A(Mbs!$1LJ9%L_LqxmpX==-`|jQO-7)%2pGiK9dNX%3enzsp z;x;}WN)8W{d;AHP?3eK3qNL{*(b&&PE^Xt%H%VUsDz@ZEaMh4wdu^bqNtOpM?Pfvd z^0uGG<(OXJe0YlWn8R^y5$Vga$eLCSU*eSnB3vtldX?kOM z!+04TIxN}=eU>gYejdamnnh#yDPb8K3$=vYS=%p2`s6IX(|JsfoXT#rMZqCC_o4ed z;)tATsrBkDKW3NkP{ZJRF6L%4eWUd(*9loB!(v6d!p4-}TH;x&=(5ttu*!i#{K~vw=E}6NoZb2K?HP?tJrh;|zpO!ztqNzq>2~F79 z!nsToH7`%_-ncNn}INb8%tM?eHbQN@_dLKPOz=I-GlL%l0}ApJ+Uj2Wyld*qu!t?8mN|tLntTn;6r@Cn zH7+K*gLS4%S|W8yyk2!1>~(Z1rp4c$eazxJ;!RPe(_zV_QR#^P2e*M(Z0lijpa1{> M07*qoM6N<$f~)Wg@Bjb+ literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/lickitung.png b/gfx/pokemon/front/lickitung.png new file mode 100644 index 0000000000000000000000000000000000000000..050f7d23ca3a47205b485b4b61049e567fc920c4 GIT binary patch literal 514 zcmV+d0{#7oP)ljA6bJAZMM0tx3P@N&8Bw#C1sEAHEp>)0j-7h}rE7x}k9-0cm`xHJsT-k5W&giH zmj)p*6oyRfhyjUACQMjX&7B>$@C|swNxvJO-uvHC_D|7&Ork8lWDL}o)spos;B6dk z_&!bmz7Hd3s^3l!@h-faYwQBYr%uVJ4dBBRM>#)5?Vyjl2PNkZxCgqRpWzK&&PtAd z4_)Ar;jM<^r06_`sxe+yb50}KO417r$)B?Ws`Mo-IfxuGx=vI>3vJm<(tSikZY$DP zq1vbsNa{S-k@F*)imU^MWXyYlh8N6g+oIwRSr6Tu@wVvgxZFm=Q%px9tRcu5lOi2s z?mTOGv<&L&FP%FH=JsK0BH8_HI*ad!#K4@8J`iVS_dJkfdqT|<(bTLTJ(;a$cd0qx zrq&Mjzg7w|-(-^)UaFZTwf&Wmyiz=4-eG;=zn~kYZP8j%WQhPqwrNosur1_BGE2qm zDhr$Wc}}@e9Pl-MvJSUq_C2*Ak$mWHN6vZ}%g2>Sa^7WYN{0Tv|;oG;&HOaK4?07*qoM6N<$ Ef*5w>`2YX_ literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/machamp.png b/gfx/pokemon/front/machamp.png new file mode 100644 index 0000000000000000000000000000000000000000..c854a2cf813c7093c9fa5c1e66201527cd068c84 GIT binary patch literal 653 zcmV;80&@L{P)Y#&^vSum5LK7}x1S^&k8DQ3#=^^;@vr#4zg#e&a7ViqXHD{;B%W;zV@sD1ydt zn9`oVC(7uxg?x=-IsA7TUJ6mGw8G zU_}gvnmN3&TX$k#6{7=qkA(#Fw?6RPKY{u4sU#RuKAb^hZ@S+PG2g(T!dDO6O@B+` zY#`ye2Rm7m$6+3y$1Z~r?yzW#p^h8lzyP*bW{eM4=fwnDqD$oc?E79VCLnlj;|)^S-*6hn}801yjmY^y0vPuZz6~sd{##p2zeZIS#Hl4lgbG#q#_xpVxup=M*HyeFN z*#F7i!}iYG13Jj1l_Y(`7@>?-cxzMAl&QBIbPs|JCe*&bDoS>#KX-KQptTvl`fB z&o!&RR{N-PEKp|OloLX&_Jy;JSIQcIOV~@?<80zP0K}A#Se;D*t82Sf#1&DPTAlR( zd!yAvN+rP?-NU9wSoIpQg7MLSbUnEq#p^&>61a`WTS)9YkeB3gnah@tw@-n6$ z$>3Ib?Qp!LM6l#WpQdoKb?{R$_9TI!Gsg;-TS<2XzH-a7d!ii5N47P}z#@%r&db*qRQa;cYPM9gQ2n`LP z3dt@z7J95G7u|L<6cNS`NC?+V66-VrD=H?>NWbU literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/machop.png b/gfx/pokemon/front/machop.png new file mode 100644 index 0000000000000000000000000000000000000000..63909c11f692bb44c15611038cf6230eb33e8547 GIT binary patch literal 381 zcmV-@0fPRCP)D>E#XSn=0a4zQ$LyF-$r0=uh6X~V+c zwr~=}9G-8bfD@I^_b$GdT(djZBIc(3cxc5eU;V7RO-&DQ0d~{;02BpHmVXA28(oG| z4DX&;Z9@EtUN0?S*~DWAgexn4i(v^MBN{m{eCROCg(_2#JOd$osoBnh6wu>r4z(Tp z8%!F=K4rEjymrMwR=U9hjQU}g*utXldu3|i!%=;NmpO5oRXqXH(Zj2BL_KzOHq}iS z`uA_dKxcDxs9BySj_R_~$OG49mMo`3Lz>vZnb$Ns%Q&dqj^T`Up8MqqM`mZJ=st?Y bXNlt<_2>j$-NFPW00000NkvXXu0mjfPiCpM literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/magikarp.png b/gfx/pokemon/front/magikarp.png new file mode 100644 index 0000000000000000000000000000000000000000..e71402f858d2d372583c2e1d2163f5609a50b8a5 GIT binary patch literal 533 zcmV+w0_y#VP)hFVCP&8Nf8bfB?P=C=Z;+F zUZHDiQA#ax$kSe(?go=OxlzS0V0~w`IQ#M2Szk>*pQh)uZ=@ z4#%`YwtktTs!+Vn1)Y~2OfkqI%8y&n0)GPEzez1J4beRnSxm9NAfnIQfXO+Z0UbZo zP{{J_0)oy<3ks2fjkrTK4&Oi|!&cm5NDl6#v`K$+xXMf)7;r7~Mp&vFD=@&C;{l*p8Y8(v??S3xAaQpGWsvE?#Gm@$-#dl%Kou` X7%!L{10B-600000NkvXXu0mjf9ZvH) literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/magmar.png b/gfx/pokemon/front/magmar.png new file mode 100644 index 0000000000000000000000000000000000000000..9bc1d9296a9f668a8cb56e690b83d56fca810543 GIT binary patch literal 496 zcmV1 zF>4e-6ae72*|UiuD|pw~k)MEzU^0J%9FZ-ds zNPKxV+$8h#Y8l>j7~}jP!D)pYRvIzlqsW1pSM?m?(;2=uyD*2{+6?RChXD9wT?xpZ zUV=J$K`5~HL~A`?TWBeV&l}Pkv?GC`pPO2zLBo|9`Zc_lW;9%LV1>BdgJCQv*h~?7 zaNXT?@vh5qKJ2&LJeV#`vbvuy2o5jA`F$@AI2Sb60v>6vdf;G1GHi5api@Z&R1ZvU m&#J17T%y0<<)6RvfBXg=*pT4Z5{!`m0000}1|KMlm2}zW5Ge~`K z#{MWr+Hq#H8BEI8czz!ics74Wt(}y>v*V$^XNBKrp4lI^R%rhf{xrGhS*nLv6X(sU z_r5Yu{?MBL*Q6LOmaY16o28Cp^4fpV9=0=nDrWp!E0AU|`TwI!XBJo|EZgUNE#$d~ zLGa-zrY=lMRWJCNAJ=u<@;~eLI`Q4s#Fpw8=VdKEuje}S**Ap8E@>u%&%0RO1F1Ie PK`!=m^>bP0l+XkKiN08u literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/magneton.png b/gfx/pokemon/front/magneton.png new file mode 100644 index 0000000000000000000000000000000000000000..4d0f2cc7b092f1b94bc3fff040e1ef0a5fc2daff GIT binary patch literal 552 zcmV+@0@wYCP)p z!D|yi6vp3LLu4r(!7MIT2nd2r5B&$KqYZ+B(Aw@&D1tTKdhzISFXBnqtH)v@w&O{2 zEH=h9R-&*fc<~@g3PmVkk_}SrY(HlQkLn4;3ZcuZ_e#4OW8YJa6#4>NHexq9qBsc=N5QKt6&rFwu_ zPM9de^1Tz#T1Yilbq@al@PSb(*MXdO!@{|Q)b0h2!EyJHcIyO3gSvdT`!ivLRxOX- zm2m6Tyiq#&hkw3wstePOY9N$y>9Ap@(+4^!V@ELX8`#sAL2*yRH{g9VjX251+d#!F z9R+FC!1KTNznAnFG7y^;cSUgZ%)Al5u0?O{AT|DcvBff?mtkgB&l6Sj@6^tWX=wSS z5XpCS7%C>u|WAq~K5x;l$dxi&K~SADoku(xI&m9TeJ%M$o|@Lzfnd zit*&CZZ3}E4fVXkiY4`H(u$iQ@IGXC@9_=6-y#1p)UWb3g$2(YRitp>baIly(_i3t zWy!#~&4E6KB{}5@=vht`FEz|l#V|Zmtf9~Mtgrp@YHV0TR5C(2W2GK%%xPd>tf*!S zr|3=?Y6M?;vfAhC1xbIK(}$BiwS!-@X+2<)o+#Ru9k_82$2k5PI7_)E2z|~7L&vKH zGUMohk;MT8S#>g>oj&cmqb^B(S0ufS!y3?16r1b~s1_7=(lxZ)yv#wAq6}5GtRk7@ zX~rrE#c+FzvE-a0A1uTO>%Dr56%8Z#UVKAk6MnhJ`&|kVk$urj=VZPYG07+tuRr1h pluSv^jwcD~Xh=5v{NJ~9LqF_GA?Rr#v(*3q002ovPDHLkV1k&7vSa`N literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/marowak.png b/gfx/pokemon/front/marowak.png new file mode 100644 index 0000000000000000000000000000000000000000..b2d18437f7297cd738af9edbed87dcaba5a0c3ed GIT binary patch literal 501 zcmV0gd*&vg13aGxd+_9?i?(5 zE^ef>XfIpPv*3@5Ic>8!=(5?bGds~aeBtvLhI#XbP%WcMsxrO#9|qM!jR`A)ke1un zgbpI!T>`UygPMh@(2l>?#kf-+qzv>Cqg4@k?LjgD9hZB%LUePNm5j3KJxs;U^eM_7 zW#MP!Q5mfRZ>R_pltO60a1{doRw)6d(03a`V!;3*_T2jlg)i~k+gi7K5gQ2@M0|QaP9Dw z0_*_z?Y(VQPh}qf-}r3HFw<4+^UeOpLZO3?xpR z6u9EO%N0_~gcEs3QCFg%c?~1)h`VYe7qZs|zhhO%9^-=;+7?qtUXmYLHdT{LW9gX6u r`V;3GSggpH>jQw6s_3Jai~D~8sfvFTqYwJ%00000NkvXXu0mjfV(aLD literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/meowth.png b/gfx/pokemon/front/meowth.png new file mode 100644 index 0000000000000000000000000000000000000000..0e706c35c8c023d41dbc9f15cb249928cb94b639 GIT binary patch literal 383 zcmV-_0f7FAP)IJ0Bd>nBH5!?x=*4p1Ah9U!{~Hcjz;B6j0vj8fm#$AEn5Qhi-u$i&jBv z7@Z_cjCH#aw~GEI4BDJMu>$&O5GdHxTp>v!aY64EJu6a-xJ3^tmypIy!q}1|KMlmaWVY)@QgjT zz?slL9M6(0if>6(N*J5GFr4yJ@rpb1F_EW&E82}>o9yM=jhLO6d~?{kv*mx3F8{_E zpAXA)BRJy-v#=`g37xmXgi_JA*62@{B;gaJ=>U;Zu>N0P>xutDnm{ Hr-UW|r$uj? literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/mew.png b/gfx/pokemon/front/mew.png new file mode 100644 index 0000000000000000000000000000000000000000..7e25a96d10e03930ca21a12b17e1f7aad9994df4 GIT binary patch literal 365 zcmV-z0h0cSP)P4lad@_5-Mci;IGjaVY4lQ4tCvWYEbaLxu(&9Go?^Lj@HQ zbhCqlplf3ajpZ(X?_CmaIDWkMxcBakAzyM1tl(SxPaC|T0NjESaLR&O)+{M2UP(w| zWV3N$U`z4&AsE&|%qwgP8Pq3m3Mgu+B3MML9OSx=ulS_3OwUH4hG_A-QJNjuFwsOeSg@ z)lqQ^F=aJ$^bY1);OoPxGF^w|5cfrTgG-P2#Fv0$9esD&$j)@_&uRsOrfwl87lZIq z6D_k|Qmo9lUQSG~-IJWAdNRu(_D4)Ec6xN7h^dTm@08!tXEy!-Qw=>k{KMC500000 LNkvXXu0mjfdZnG- literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/mewtwo.png b/gfx/pokemon/front/mewtwo.png new file mode 100644 index 0000000000000000000000000000000000000000..b7a31296c8e3299d7e17fb237fa1505ce6ecab0b GIT binary patch literal 652 zcmV;70(1R|P)F|90%~B#f=KFs_5_`UBKr~|l;gJYmd z;ENU+gOH>}cRkJjV~#|)*WX^gX$cP@-=S-^|_*} znN+v`AO?eJ&RalLt#6pv3s?qBaAFXYewFB}I(&$@We|y*luif;xE0HY`Qihm(=a_$ z8+l{M+mfr45aNP~yzzDasg#uTTOq&68y=^Ls8t0+(r|fimfPc*7=w#0#q)4%y0XpS z1(cAPRI2oep{eLWJnD(sCDyB!PO2Ael)s!^Dv~s6i8lsLCN8A=eium@{E1?{9qFrB zQLH^w1iWohbRkVikprcs-k4Y)aRu8{2A+FuR1M#_9VvQ=~DhXYpBYiOo% zoaQu>YCUK9@*-Uz0Z*&c_Gi>8^y_ zL7y`^maTr*beq1bNLXX`fDQXj%C!FRgm1riDXpI&-MUzQFek0WQ9a7tCTHgE%T#Vy zui@s&Fz?TNfofdRfLIpWMz^0@o mj@UZiOd;$Qk)YN|1b+dn1X8Aq9Oa?_00001E$ypdRA|@(9frlWH|7?mEVH?{M(;!MbxDGpb>(HZ1fe>4?33)NM z_ty5e8gvOf>=|x(DPJO8^e`x-d>(SX@yy_^y3MZ(M*B*#L$d6reNzdD3ZchN}zw@t=ynjjOI zzUKI|3IiZ$4@L{Vk0`2`wH*i_W=K@?qR)VPegb!(m>XZ#4T4b6r$Sw&BndUpZc z{LpNUc;Hi(M1aZssaHZfE!3dDu5nvv_tpWzC$ z3O*g-K_=lQI>FG=%sHyMLWQ!0w)j2aGsi4juWa0rqI5C&rlFx8%X5yi-tS4gc1U;{4?`R`U_+41^f&QB+G<#ZG z@GF+n2j-DRm!$KCVnL!ULpx;+81F6V&}6U*#k-3a@iOEu zNSnlvAq3>5bncoCc|-{a=ho!;H|PK3FO{sWx&I3al$91&?e1Xv;; z5*0+}m+1e1&%n2qo%D#83ReG_{qRvRXgK}-{<=~t=#|$mR8`bEu+obwP)+bR`-v1) z(TLNdZvw7}M*ZCVe4n&I#ddos>C8j7)_)f>I0TQ99dti$NN=t literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/muk.png b/gfx/pokemon/front/muk.png new file mode 100644 index 0000000000000000000000000000000000000000..f69b83b7065974d57d6a1ad7c26bd4fa5c3af3f2 GIT binary patch literal 685 zcmV;e0#f~nP)pyDJGkz#Ob4ruS?r`uFC6k(gJEB&%_av+8&%uf=S+@}|J?Sro+>2U=K8^+i3HlL zvN;P!(xHF+WD$mxS6j>-Z&0G=vwXqlYUS4%1@-3(-iBZ^PKbk2sV$6j;M1Lw8a3o)2l{Cw& z+`>o#n&!lhi+sY#u4t&K;4+Wi;d&+e1rb%)-`+$VMV4!zBDljX)R}4ErLjm%g~kCh z$8Af;hXGAep>8vJ+tCThKE|UeG+6=3Z-ONEgen(O z!}4Sx?l_dS=!W~J&LYC45cw$N!b}AHGj7mmP>9(1LDDGT;B}8 z0@kcyZoetXF&V8w4&I`6RvaPHRY+0;R|YW?0+28ayao{R0Y_YDf5K&eZh!m(f8ffh TR0HW+00000NkvXXu0mjfM!P{9 literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/nidoking.png b/gfx/pokemon/front/nidoking.png new file mode 100644 index 0000000000000000000000000000000000000000..243305382a109d71f120da76361c8f6383f5d5fd GIT binary patch literal 752 zcmV!B_pn57_lTHQh%X6Nh8q7S|YKfcG~@xDJG;v-&I4K@VCT5aYO zaSP6gT4@)tSR?0L`?QN5N!7bq#Ax3ZRu3X|PIHbnlg-z(et1vA9%F<=Bgu5Y)4!f$ z3=QO!Xq~m%v<j3Y=X5Hy7<8BPUQ}F&pqCf2)|t05v{n0X;Ta zOr}6F=IX>~ZiumrWV|B*Yhi0@nK_ctO;85h4$-G&#$u{PDrvw5fj&EkvP{Utq6Xd> z(AD`JX7`xh9Rk(zz4qlRoG~gM68Or-hCa(XEEj1B=MjdPc9#48xREN7p5t_6S8rTs zr7ERuoO-A0OlgW4wx}w?pw{oQocLDnKUB2?Sbx~N?Wmz{z5gK6oP{q&bX*snJNoLp zb6JBeHJk@&!ckW=79&s;E5ZPswAGcXs!E`Ocp}gZ8=i>nFbSq`EWEs#fl#2Gn$DBF8C9$$Z0o2-&7&@?7D5A|pv!~gK~s?P ie*omDK81_5CgOk2Pp9qbNY;S>0000pY9C{J6_K4x7TfXNV`QoG zngOC(*gaxBYvH6xKPLNn!)yHPm8nb#o<{}nKTkk;)XvL!D9?Iwx!p!@Xd9$eEjN>{ z02JNws`|HNnx3IKj^@Lx;2{~Oxp2mmCIr7)suP@MGD=ynKO{cC#R`%xm<=tTZ!*Ks z)A2ESTb9c=WrOCH<2L@HHNb7>%J|)w|MqdChVkvZhb3IN%6nl83+SZ1dI_sGoWhoK8*v0{B{ZCsQ`ng8SL>rl@1rrTzJn&Y zsnIf{3M*8uFGhL40L?3TN()poBa#JB@|P7eL$z|u#fw-Qv?Vj)c5Mi2#H&ZtBd#xk zO7$fuQjJ7iWhFX9A6%+Sv@h=YX^on)(PBlKj^9<|kU}%{nO(@o~ayd57$ezU8HEq3%i3Nj(>zRAUL>xTptt$yat2c|0^rvv03r?y?AFJJI~}7s!jA Lu6{1-oD!MIz&QR2)B5c9wLT~TG5RU7PqqW>#GdVc)cf1ct02Pu;zyVb9{fTHKS3};lWZ(0CU z`!ULkBa6Rj6;SjJmxH7R|Ei{bhW}?crL;gyV<1zdUQ3Jp)k+}q{F8rLS}UZM@B^8P zZC0#W>cIRT#59_;YN|cRk@puwajgmg`|b0qC8w4;gP9*0jJ2lNgPBJH__cx|VRq#6 zpOyX)CL{kJR(mk>&x`+`A3y_@`Trkg;^G1T0(dEza?iPi00000NkvXXu0mjfmyM&D literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/nidorina.png b/gfx/pokemon/front/nidorina.png new file mode 100644 index 0000000000000000000000000000000000000000..68aca7c48fe21b378483411e4445690950c1a21a GIT binary patch literal 438 zcmV;n0ZIOeP)Y5C-5ut)j4AYa>_&AwmipaY52q_<`3c)>_%w2q*XhVq+h?6mlXd6l~N4LQu}Y z7IqPdUxmcN(=#TVcX^$?DEbTBW_fsbhGB>B=g|KmivFOrz7`|IIpB}aNR8IS1W;E} zY52W9qkipc)KTV3x}k>RDqoaqCybEa$|}O3AVI#+J6tj6RkX;h#hKt_+QK{N3XckR3!{iOK&#juu$~fIXfA=0#qAz6_9U9i7A1K$ z1O>Dri!t2&tPdbgO5afAo|31(A}TUGqH(m5iViGAAQE`MWn)Fd<#smS_J)upcnQa` zac{pl40z;Zu`5DHFkVfr+T@Npad)KbWPuT-kq;3t(vo4=J{(?ERj)BEZfd!o1rOkG gO#E)U)Z3l>3tvXcDBkHEv;Y7A07*qoM6N<$f*o(d*#H0l literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/nidorino.png b/gfx/pokemon/front/nidorino.png new file mode 100644 index 0000000000000000000000000000000000000000..795bf0c57e1305d0bc3e01469a35ccdaf401971c GIT binary patch literal 517 zcmV+g0{Z=lP)MxuY-`h~JKffdHr`)8stY5CJk()_S_45O|yKp_h<}0gZ@|_A} zzW`~FA4uRpnqp4UXr&L}%6#Y{Wf?AtorES1ILy(xI^m?xpyg(?RWv!D=Jr15)NP@Y z`rtF{;Z;7re-S{Um8;`CSdiQ<2+l^m!MKJ$;rT;yc;5M*$qZ5B6rF{@=hu zkMT@T?*Ppo4@{UhvP;{m0?{hxXreP;zM{OuZ~cvE*b8rzCJh=y=}Tyic|8Uj*HZbL z!NDzr2EA@3{b;^pA;H!1#;M`-_#8&~oR{zOFQyJl7&Xwv@F@jqf+1tk^>b95Tns)F zJ`Ul^gtZ;?u1JEgRs0zH=Z458R4kB%#>~CN@b7m~G)UqPXri5HE^_RY00000NkvXX Hu0mjfGzjyC literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/ninetales.png b/gfx/pokemon/front/ninetales.png new file mode 100644 index 0000000000000000000000000000000000000000..ed6bb39870f5c86240175076717ddbd686aa297e GIT binary patch literal 658 zcmV;D0&V??P)q z!D|yi6vp3zwFgguM6e!$*IfJuwA&s^MTD?8lS8h0&|Jie$4m>YVlU~Tis+%HN!#q? zu>U}1TSYvGZafLSlp;#ChibMoP1xPfH=CArScd(v@9j6=%r^v}qi{M1I8?!T4Djy^ zBiJy{Dc;0hwRVPglKOaq-=Ei9wUIL&LNZZe7nx=Xrcswqr- zM6g6<#baga0X}ZjMdh}~%Cv(c;C)@lu{L5*kZc3pCZpyi`tbep0iq=#O4^5_&3jk5 zJu8IN{A0VJGAz-_M2UxX)*R_U#+#+FkGU`UP$|P z{Q=(ia7X0C^^gw6-)6C(;961^L&B3{2hX|qf|PfE5WcamIV7%?llRy8eA)F3lBP8! zb>1M<90rSyQ_{5*?K!wPATyuRI-X@aZ2uHe@2*ZE!Y s7o$U?F+IZM@GeZG7o}sJT#fVNKVg?R$gwVJ1ONa407*qoM6N<$g2F62j{pDw literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/oddish.png b/gfx/pokemon/front/oddish.png new file mode 100644 index 0000000000000000000000000000000000000000..e47dabe1e389080afb5939043162038b9704b890 GIT binary patch literal 267 zcmV+m0rdWfP)}f>O#MO34_3j;7QbW$F+ZOIGFN;CtNr9R zYtdw|wm*zsvswfA!3v%LnSQ|_=J}^wvs$e}Kum*7uURcGo$W!|#Jpy?JOx|v|7g%s z=P3}2KLjmxa)vrbAe7M_$~?fpP!DC^VK^WUWjZi0utS*)Sq#iDW(J(;AOL4xK&bt~ zzyLGhFT&ja7Xn}k{(tzw2p6qkfH56x8Q|LNVaz`a^^P!6#{bu0YTeO89RM%{I@#QJ Ru<-x@002ovPDHLkV1i;@Y+e8W literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/omanyte.png b/gfx/pokemon/front/omanyte.png new file mode 100644 index 0000000000000000000000000000000000000000..bdfa544010d9c37cef1726c0af9afb16e53fb725 GIT binary patch literal 331 zcmV-R0kr;!P)M8s_oJa5cBl^ z|I553zJQn~L&IO{dPG1J{LR!^vlOD>-xQsTn<30sD|Oj|A!@@``7U1$Vt!#@T;-4p zcEbk-2BE+(up>V;FtvmPfSrE2fcHTtKZyB<-_Yk11K69NKbOrt{U6Lc|3UhR*8cNg zrq%jiE3`j@n5X;y|9{o|7{vSpWd71$3^u{y$B#!^{b1(fW=HqL2#+j>k>hd z_O9f9a8N5&5Hd&$CapIX>JZR~=ybV;Hp0c%AnUi!SiYQ89#!i3bj5UOGuoh$kgKRx^vH!7~ zVL4D1U05CG-HK{(n~3mFry(9~EIoOSFyHoE&6>hpP-f4^BMb(6nomwcn)71?mc4$JXhKOQh<#gqDb(NB&br9ks>y4|7U8gk z$%m@xj~#c(3^q40sb2)&ja?E)2#<^@LS#-+aR!2>5CASkHJna!U6`u|Y6>+l%_72l zU+fHFjtRH>(vN#v6d{fC(|t+f%QT2jj|XI!kX@J{lmZbMI6m?r7=orAc+nGeYVWw%8ma3 XY1LS}u$f7m00000NkvXXu0mjf8j%BB literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/onix.png b/gfx/pokemon/front/onix.png new file mode 100644 index 0000000000000000000000000000000000000000..44a21a6179a7086028e9915237a6ae71d80748ff GIT binary patch literal 558 zcmV+}0@3}6P)$TToFOG=k&<1a_n7p_gpe8R=2bK*?tiS|xh$vK2k`q%@Ue zK7@_XEfkD+_SA}p;%P&Jlx6EUv$N?E4=yaTKW2Gv=Di0o^+3MCH21Cl@#{ZqPVv~A zW(RAck@Cfd#u!)9-J{k87!!W!@I@Q264np-wu8Kv@YxUEd5Y?m=4n`ImwKqKXh!{6 zUhIQ#OS5%p<9;7}LdG7vVUp)H7s-5%VkeZTROH#>dEqbvEIVlx;U%wA@wbR`GYa7g7UFsDu!3W_;% zc-U%KzC-SwNW%QSx1AFKm>d6W{pRm-LX4RERv;qYh&vZ0DV4{F9(kvb$CEd4vI0Tb z6W=bYIuYBHoROb#k#`|?BP1P)peT%_Ln8{PL=QE0X&Wk0Pm@rwE?JHex;yf|QU2$I zpJLwAEV|rNiI9YHd#aMUbs{j_byep8rlL>Ps+f%mrK`J-(nl}=$!rL6D+A1_dTH8)Uog++%10r5 wZ>GbKOt_j-UaHTnGm1e_Sxx6zEm^((1?6}Mj9W)rq03=ET3I@12nSSKHTaKwf-r5E z|EoZlAMFqSXZ~0Z_S^pt|M@@KLzsX5*ndET&Sz?bF8~K*ExbV|w3Gk<002ovPDHLk FV1mBQkWc^s literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/parasect.png b/gfx/pokemon/front/parasect.png new file mode 100644 index 0000000000000000000000000000000000000000..938bf53be0d2b8af9cff95fd808da669b28eed41 GIT binary patch literal 598 zcmV-c0;&CpP)iKM*8d3S}=FEQ?o7vygp7 z_MqOB#A+hsB#pUvQ}CV?dI__AzL_+Mb9wu*%$s@h9*|iYz($&dZt6*9NxdRfW6ANh zbR)6gMI_H}N(-hDW2(%l^M<22$DU(YzvacYWd4nBc{h;wn(%B!{V*%BKE?Kolam7{ zN)&p+a;;fZk#w->8;+H?USl>-T81gN?d?Reywk)Cfw@DwiL#u};~Ro2L~I&*p+W%z zPew6=G<49x zD)ToQ+JtTBJ^RCSm%PM~Kbg^Urh7V#6gJFpzs{Ji;wfS}r7%{^*yDGrV$sD!`OH1! zYVk34MoKUX`B3h~r*soMCBtqgw>raXH`pcU$M*;z-x-cnOE5pf3o&*(!$7^{r|W-$ z%?CfQb14fM%Q2)181DnDT2e~AMcjv#L*Co_z=Kj|N^pEj(rcI$W$6wOOx|c*Ow7aFC;H4JpS-eRu1^lAuA>nkq+S*oU<=XNTMo4cOmumNTh5W5S1ZhMHr{WDBuyjflyb*AjLywqp-{y zU7klUwai=@Z!kH4XV1grTNbk=b$Dg)QZYM@I^fM@W42)ne112x&k2zCXGs^>&QA)N z<^_ffW^?s zJbV>Vp@qYMx9-L5)_uq|Zn7WK>_Dyp{e*3Kf{sL=o7PX}`hj_LiRr{VILiHE{!A!o zoR~kVF%^~QB2d?pYo?W`$TSCh%?yfzOIWB=(WWN@?$oGAbo(zYdR1s-BPt<=Evk*L zm=Qf%7`C+3`O3M7pGYg!six6##4W2(FOj9uQpD8U7(Jz>g}Kr2ucW-UHDug1$|IX$ z39^~q?962Ic$<002ovPDHLk FV1nP&FgO4J literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/pidgeot.png b/gfx/pokemon/front/pidgeot.png new file mode 100644 index 0000000000000000000000000000000000000000..7daf609f7be5f952306325831d90105cbfba7f1c GIT binary patch literal 581 zcmV-L0=oT)P)z|xy<|y^Jd=6pP(EHA{8?U=u+%Q$Q;~@ z5O1OzWfHw)ga-8}{l`VhoYUN^_D?Dw3MM1;cGiz*NUw{|$MUZezC=3he9nd(yl~kp zov(&mEU2Re)(gqnDcoKC-3&Q0se8WqV?tYD=Wf$VrzOcKD#Ht7y%JDC;-|}gu`cPN z?QdM9`<5;_=o%aG1~xi)cB&wq$hzUX4M)hm>BCyz~VidjMLd@`}F|TYmyTf0~f5 zZwo$(0T}Ijkk{V|KGeXpY5-=yyAxVf&e79c%(MU?XE~flmosU}6`cxRQCvywj`%W{ z?7W%bG@&5q*n|i|K-!q@2F!A@@$(PIn$8b`1gCefgeYmYI9)P@_%+i8$Zw0ij3@3- zzQ?yR$yM58}p>NR*QYjb zNRr1f^u9M9EC;EJxpTac_+}WwIeQHqyuLh1?24$jODFs$g4T-0o0mVuVEo6wH;o%K TV=+yR00000NkvXXu0mjfID-(= literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/pidgeotto.png b/gfx/pokemon/front/pidgeotto.png new file mode 100644 index 0000000000000000000000000000000000000000..c86b86f1162ed6028843ccc07f21330f1efbabbd GIT binary patch literal 487 zcmV1 zF>4e-6bJCPZr0)mOblKMdqJlXu8|*B)=x%t9 zvkG-8fMQk*ZlRh6PX@-_$OTCZexYc2+|g@y zCD2FH@+;LAiZw-5+`@)#}vO79FFFg?!~G^b@8fd0apZWg{-H3;3;`KGCPIO#|8squlw dFT{*n{}(6faFVtj|4aY?002ovPDHLkV1l6V+A075 literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/pidgey.png b/gfx/pokemon/front/pidgey.png new file mode 100644 index 0000000000000000000000000000000000000000..70d9dd4a4ea240f925210d3f47d7389ac5c2370f GIT binary patch literal 303 zcmV+~0nq-5P)q z7#aX!S~(mH4P{^kYx6%kHB@VYJ&<|EUMw_(fvX?LJpcbvXwa&q$zbNE(7;s_gn`V{ z|Nl${D(C<*KLeS8t5ynwng2z-Ryp_snV;VMKj`Yf05a@PpZyO8QLq(%`ucydhB|}& zCcI#kXsAD!d4h|f73ek)^V9!T3q$O|Y9;pnU%>!&B-1MPe+$6OKOZCm7?@Uq6#QZQ zz<-Eq;(3sQ&;0*wzSM(F`0)SF;q$PN{9{rNBmo04FII@PU$y`M002ovPDHLkV1n(E Bgl+%; literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/pikachu.png b/gfx/pokemon/front/pikachu.png new file mode 100644 index 0000000000000000000000000000000000000000..159e47e9f0d264d7512a4efe20af5d81737a5ae9 GIT binary patch literal 396 zcmV;70dxL|P);l39gq$R#bVD100>Y4R zYJBXMVH5{0gk6DR(t<=LQL~YBC^JL|Lmq4-SI7%gRr?UnEzmqMcuX*EgYX{W;0MSV z!ixnG$em4SZ0000hX zbBoft^DW?IR-!yy`s`I0hZ`)7jo5*=%lPE*h;lswy$sE2=yh4nw-w)eK!Yz`M)E~I z;_tgRaVY!cEOfz=KVQK%Wm*CDBS`L&r=715keN!Xs_LCw?ssG#I2VvitLg;D_Rl0r zdiU1a9>$r{DJ_ou-S=TTiOo!@OG#)U&Rgs8M*fAvO7{?o(}tP)nD6vC6|*N`{3?IO zqvv}rNMVfh?rFeT4r73HA~H^IwsP3)C3J^(!A`$dQ_ZHKOPr32)WI<@G}dGKz+VWS z+^88vaR}M-VbA7|Aqi;}CrCHdkY1u-F6W=u0y>_dMGD5VE4tdwTu;P9+B02hYoHWf)i29&9YnXq zfazMr7JDF>WMSISG@UU54hA(IWvSAV00960g{$=sfUYG8*n~(Y00000NkvXXu0mjf DfrB0i literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/poliwag.png b/gfx/pokemon/front/poliwag.png new file mode 100644 index 0000000000000000000000000000000000000000..397d2e6623dad5a33290bddb0be82114950d2607 GIT binary patch literal 318 zcmV-E0m1%>P)V8zPW zVVq>Q+lrA!dbYks|9{YW@E3=-anNKaE(gr8D|$55d__$rmRd4&w~&q|NUUqT}` zw>l?(z}UtMo%o zv5ONy6vn^F9y>82drbE1_18)Mjl;{t-QK?mx ztT-HMRYbo|#Jcbx6Wd#qD4;>EeGlU7p)?mSK+WD0VGr*p zeftU|9N zro}#2Q{x5R-rt39+T5MFv^?4k*r$Cp-zS(?xDW+j+LbEP2{`Gzk-2AJlqK7>8^Vd{$UwMI{mMdfpwmapX3@U=< zhcploMjv2U6&_p%e6sbr35Pj4-fP$PJuJj$e<$~qY9JVI#m`V*hBbz;aXOV07*qoM6N<$g4|@*MF0Q* literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/poliwrath.png b/gfx/pokemon/front/poliwrath.png new file mode 100644 index 0000000000000000000000000000000000000000..f31d0680e918f19142b090d5fedc4c771253cd4d GIT binary patch literal 513 zcmV+c0{;DpP)()oz&nfue>Z`nf&k}&w9I?~sN$U8 z-DH|8n8!KMtuvqht@$>CQ~6yI)8wOPlZAHOF#jiCcOD_^Y@46Nem_432nXBdh?oV$ z4@uoIuH>pTJJ*yi7epo6fWwo+6CxC2W4H%g6oAmD(EI%vX^0j3|jH(cD3E_TYL9!Qs2 zaOTv=;@n;2YHEaaRZT1ZlSv1%TGV`Ybk~2*WD}VnzqIV1?nCXcxZrXG!F~L9896}C z>PuS-e|3t-nOWD@xzfZTvh+hYd!QqJSgav}N*mT&#E@^Nk73UJ3djT8h!04lI+kz| zTr(u2D^9R#i`W@!aWh|#ZaB}iy1r7}NCt%KIy!+?eJ0i{IHb(PAfM@0G4VIf?_w42 zr5MVLA0<2LTcA*nnepb>Wg2z6D`K3%7~`?U$$!c#QMR=S<`U$Y00000NkvXXu0mjf DDWC7v literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/ponyta.png b/gfx/pokemon/front/ponyta.png new file mode 100644 index 0000000000000000000000000000000000000000..4d8c1bee07dbb6e7f44b14bd91933c8705b28334 GIT binary patch literal 503 zcmV&PF7UdSNkcqel$9-#7`N-czpY7u{#*5DsRK-rCy?m zV*K2EPM+i&T`$HYDeBJ;%chgh(wAG^v=S~Sh*1j0(wY3=HPx} z)X}nIAE`)CB`8>Ql@#gj-gJg%X6*G0sl)jGVkV0!3(+Liz6VA4jSwS?FCl82){Vt% zs9&pXB!S5~nb#Y_l_odPu1sX7#G0& literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/porygon.png b/gfx/pokemon/front/porygon.png new file mode 100644 index 0000000000000000000000000000000000000000..ba3500c6e37f4b906c3cb1aa15f9fa5dbe58ccba GIT binary patch literal 496 zcmVJ!3QmgQmaHyviDDNAX>CQ9(nwD3 zUMN{~zExU5OK}i{ID~?k+NLq)xcmNo_kB_-^liW8z5jzh;ndKXI6RFX|4<#N0G|zp zHorJQ-{w`|vB7udwE#B^-ZQ_=;kv;ipqr16HR5$(_Elssbf)9zU38$)M|*%PgP$6Q z2kqX(h29AU6Xo7ljU&g2Bd@)yaa@C(^}ZPVX(5!2mo<&3g|4iR8N|(y!j^^5QVy+*+u>Y-fkKft_)dbo{RH>< zS%ObT2rYMkX(S+QU&GK6i(Z*B1iOY`X;CWMo1+T#Ai*1MrYL4F=m=42aC4qyma_$g zl?1rt6Q#vsk^Q@bWmkxs;^91R-6j-Eu4o9cnm|6Vnf+S}3VDkCEVEn4Eb~@|hHSA~ zT(Q`_OuxA<*ewQg{4q!SOtugf=J-Q}c4yQTkwKLv1NtVYN>o9I&LyxyW>o-6f%;-e mH$={is!zFP`qFLw->Sboi=ICOVP6pd0000H!zCTgY8y@$$_wM(8@ArNh01fKt67kxmA;rpd z!5WP#UP%iQIxFS*HqpTR5!nY@=N#BEQ_>JbWI-c}mSFwyf~0rbB4SVWQ7%R>AX8wc z_}~IjnFfwTTg;GsI%{%Pv2EtN5mIPA6|)zLopbc&eGJ}+ ztk`R(cZt4y2wxYWx>NAZ1hQcuBO_Nuw6i#9{+3zsFJIkt6kn9Y5f1qUes?oIeiqg^ z%QORburx&fZi2Hy^YApYg=Wm)Y|xy#-jdv?L8&;y&}pthE~dOT=(kEMBSsv+e^fv1 zaCRuQIGZaev=pB?K1!Q+WKS`JK5z942lkw5u_^k>vELVVgNmPN_TujJ4VyTUjOI?J zD>GJT)Q^#DCw_Q!QVT1VQ*7SDM&OoWI|Orx_7lVW*StJRH)xRmz09v=(pVcKzR;y{ tZqoH}c6gP>=sCy8@axztYU4!I#9tk7Y}W?@Br5;_002ovPDHLkV1m$*6rlhB literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/psyduck.png b/gfx/pokemon/front/psyduck.png new file mode 100644 index 0000000000000000000000000000000000000000..86772256988474a02e4a4deab8055892e33e779d GIT binary patch literal 423 zcmV;Y0a*TtP)RF^c(xjAhP{_yO`3vM(Tq6iuBycg`mNrA<`CU;%n@A5v zg|rxLw$#w{G?Xuk^5}Ixz3Ic3JGeWb?TkgUg5J}KBR!|Rx2uNcq!mvsk(slF`3jgb zzM%j4z+p-%g1T#EmmF&tolOPf%;{J(g@VFIFt9LGj3CBlG*WTID8WZvKNAiQmIz++ z7ds8ZfkmdjJ$=Aa&m}>dx}=~HteMd6tP@RfRrsLWEDeaP3VNX*%>5FLvlxR%%<(GI zx*mfzRwb)?6h0M0E?d>YFbEp*go0LretAQtS>{j#{M@_Gv@z>rx^5ru{oFSCcTR3Fop5($$z z)R^The&1xl$>Bnu`9^<95jeIpK+8W?0Nl5C9k7pX>Mr_9rS5?MAWb8H#eWaP1L-tU R$U6W4002ovPDHLkV1g${yF>s0 literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/raichu.png b/gfx/pokemon/front/raichu.png new file mode 100644 index 0000000000000000000000000000000000000000..a29731e5dec259d1bc17e770466e0ed231f0d8f4 GIT binary patch literal 595 zcmV-Z0<8UsP)~(;SRNOYt9@h z2lT~*R>2{_0eJv!!7}2q2Uf3Ys1Y#$XukPmIAJ1Kk)0Zjc@VwIp}sUcb#ToIDlw_z za0fjnv|>txI^fA0I~Odj?94Big{7RIEZNeAztN_l3(2SN+CxRT4e3ZN#nWED6Y?5EX!fIfdyftE)E`v(-KT9e=lYmmFsMnzFlTMP zZ3r@`g&qBhb0eewxKvd4K}Q41PT4JH^n9cy&9;;m*Oj_BoccQc%=z><&&fqR+a}df zbR{*JT+ysUCvBC>^(n~|MT)BuBsr9RAJE7jv$&F&TVzjz5_8i$iXy$VYniZw5*>io hTKpPxbmOPY+kYvN{pZcNac=+s002ovPDHLkV1i~96vY4l literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/rapidash.png b/gfx/pokemon/front/rapidash.png new file mode 100644 index 0000000000000000000000000000000000000000..62d47506ef04870814d4b3969b5e584cdb254633 GIT binary patch literal 710 zcmV;%0y+JOP)P{27c2GkFLZ3f3q=C{^U^s8>tUx3rR^5I#exRe=t2;;sHf;P|L~; zzQ-#EE+um8{UUl%?REtxn$BhcXRtT>a3uoPHv4;v@*4IshC`9tGE>TL&A}=dD|(ar z*2`>2;Az6}-rX##`8lY0t6Mnq@OijV0e9HCTeiXKz}_et+x~JU*#NU~SRCVD!+x=w zd=BPdJRPg}YJQ=5UVxd+xDf+_BT#W+GM<|x%AX^^J;9loOBiFQSBXz(^;`OeVep3A z1#An4eI!QV)W(3_vQ0FM2<)B(pgE{lCyh?#v+}=)re2Ls1FF*`JVB5MM0sp8E7y8tFH zq-cAkBcVD^S)4&ephn|Gp#rb0C2Eabx9Djp7{m`hAE#`@G{Uq_zWZL7s#4DT@H zk7hNkurYxKZU^Ie2F|M|bv>}Oo{SL9r`Aw79cX> s+KGRppQ57KX8PeUr91HHwuDXm0ZYglXT`Gc?fJG`fsJI6&+rB{0vItege_#+i=*>ccxfL-#!KGRh(CZ2IVX;q$ z(eY#8gh6wV$H;VH>~Z-i_fteYfNuOMW}e8_g)i{L$7j-^pFL~@pez&xlUrDSDbcca zRyVMzr2>b6K?hRm_Yr>*gben_?d|P!;nEZbt5=WAl~9f`9PgbkvS~kmgAIny?V92= z@4s*`5Bz|+R9nt)+4tmc?FeOZc0Q4`b_(jaw4@FrH(+^xO=^?K(*e&iqjWn%x+?wH zoX?Qv@02UinR^a&7F$6KcTu?jUvX12Uv#yxUAn&_AC}%b(DlB%EGO?AxR5v`a|>B$ d?Q-cv@n4^PkN(`4k7fV>002ovPDHLkV1n@z`y&7V literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/rattata.png b/gfx/pokemon/front/rattata.png new file mode 100644 index 0000000000000000000000000000000000000000..9b391cca1c302cf7af45f64bb55cecc08952c872 GIT binary patch literal 325 zcmV-L0lNN)P)*U=uvy#Bu*!kqlS{@-FS^WTp@|5vR5GykqCULply{#n`BwP;m6n7QPiR?#YZ z5c9nAtCgD|Ok=H;E5EJk2QlxgTAX%k)qD{1)2e>;Q>PY#m}g!YYib=^0b<_&fAs~o zU?$j+{QuoQ%S6=!nV&!W|HD%+1!CU)Veh!+|NZ$OZ5REYE&PA}K9Ko=G5Fcy|GFUN z|G?l`EB`ChgPjvBw&Fk3kvxl_%ug$tKd#shVSfAn=M}`qColj1Qx0K1;D-hQ_6Ps~ Xql-#e$-GtL00000NkvXXu0mjf#Iv6B literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/rhydon.png b/gfx/pokemon/front/rhydon.png new file mode 100644 index 0000000000000000000000000000000000000000..924064764e7085cd1ce061202e190cfb6f25c8b9 GIT binary patch literal 657 zcmV;C0&e|@P)2 zzfTik7zgmDv}Itq!Cr#LAd`u=nD__qf>j4dyeqwzDl=6)2X_;#iD?v}Ma8~L>XA2_v8L1IOh$Zr`Q2tiS@dtWi&w@kI%yB@S9>GA z-S}#c^~YnWJo>x#ks#b<2>k3fy4c9PxzJGYBB( zvkXJ_LmfH4WSvz|r<0$RRLZ!J*SoDShR;H}_lzb#6%ECtM%{U1UG9yBg3}_Xavooe zx2cK1O)BLZ5K(2~x1HU0Qb}qgzPll{z$?ljUvCpFwvThNMqJwfS|V6CXyzaa8`OAq zX}_E>5=3Sn7v3oD%rr8bfl#f!keGP{IW6Rfa7WQLuyCye!sKVr%}iSf^J*na6XZHT zY@pCo)Ji!dSJ7w*Cxv&2P0oif_cN#^?4wldbE=N72Nv+dL?Ino(RTroQcR{sf|a%< rpK>xED25ndRUycK|JY@aI#1&d<8JY@L!!R000000NkvXXu0mjfY%eYq literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/rhyhorn.png b/gfx/pokemon/front/rhyhorn.png new file mode 100644 index 0000000000000000000000000000000000000000..9452b701ae13894e7d7b821c44613d0c9d0bc36f GIT binary patch literal 661 zcmV;G0&4wiHRJ83ljHFTr6>CD$5L@{nJ%1D%-J0wije%9P0eb$?AljWE@Ej=jSKP|Dc z7Soq69G;nJpqEhFCc$JL(J9wBgQ#`)FvaPWH#mDCn;%#PXX!!A0nyNUXd^40<7~F{ z2$@?!ltAKiA;j0!31p9>Ch#MVwNbndGj$a|LX;~?$f&Ig`l_SBCsmhlji3%!&r%7V zdLSW`nNdMP3ZU(R#x5-~#bTvpA6^zS;1nGH{&s>=fU{KMBA8-^cj_8Kc1lxyLkz00000NkvXXu0mjfL>DXh literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/sandshrew.png b/gfx/pokemon/front/sandshrew.png new file mode 100644 index 0000000000000000000000000000000000000000..bcf522151da2a91965b83aa6d065ca1eac52a31f GIT binary patch literal 407 zcmV;I0cie-P)pW#pb{|Eb4`u}+hWM=>W z|7+Fczf1o!{1aRM|JAI^|06(#MXg#D_T;~9J;VP$qFGDb*Vb#QS}M=*agT?`gZp`Y)+vmw_KOE&#L^6V?t#cBKFS002ovPDHLkV1hf8 B$J_t_ literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/sandslash.png b/gfx/pokemon/front/sandslash.png new file mode 100644 index 0000000000000000000000000000000000000000..3b212a6014d1ccde61f000f72a75c1ddd0e388a7 GIT binary patch literal 556 zcmV+{0@MA8P)w6OBcxX`8G@i4TyC^v$Yp2{3wjB;Uxqjo!6}0o+*~dND-Mz?)(l;Y zdMRFh9a?ZzPw*dTYUtKQ6HVmwJAK=2Lu5^FU>5Se{O5p)&^K*+T9bn?xRgweaE4VBDuQ!Jqf^G(3homPTn~EUv?LCm$!=PK+4sBM49EZGTKIm__bXj8OHw4yU~ zBaVbPP9N3#pM^8lp^v7@eRR*oxxK2Y^-<0d8BhF@Jp6SRR1G^j(;hYeMi4(%6~O-~ uRQy9+=U)sV>#ZSfUp9tVxAh@9DE|W?D0M{Ev$FR90000^-K22)RRNhi(FIq9B6)fof`5H^u43>lPNw zOEr!)t9?JCWrj^N?e$S0)Fq`T`UeyWTWDO$=Gmx_TkTfUm-z86R(XZ z?Oez=b2B)n0#co%eRqYB#K(*(FW|ceslJ3HIEKs~MRO(gRSqOa4Z@Pu8XIyD{O?^I?ak7z()rK}{#XP1;evs(Tjk~!JsnD}*P zDjw5aVnEgvi81a{Bf2D!*dYOLCN(L6vEnILxPI&{phqp1BDAtmV==BGtu%S0oJf%F ziyn)L6hyigcS)OBDw-dOOOq2=*ZhPY$45X#W8I?`?Wy~Nt8uIab<;d<{9 literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/seadra.png b/gfx/pokemon/front/seadra.png new file mode 100644 index 0000000000000000000000000000000000000000..e8af292f87412e43142a22d01ba293d6c36ed2bc GIT binary patch literal 482 zcmV<80UiE{P)a;@w=(iw+ddNow($N1K3HfZ`I3K$C z@Mh0$fv~CV{eJx}n;8KDPOHP)ncT|W6_KR!RtLFPCvurLB(%3FIX*Yi`m>Q_-ApSv zGtIEBG89e|!-3-b&sqz=!Et<0XISOHuETHRX}NPfO$#BjR$DK|fr5hYm%;es7~rYQ#iq=R2?r6@gmRSY8Jv2g{A2RCCFnO}|!R zXcxz}c_ip{Gkk_6{PjT&w@AU{D0vnI@&>Rjqsu6UI@m0H)UfhH5PoA-q+WtmP{Jbr Y1MBFN6Z73m+5i9m07*qoM6N<$f?K)Y_y7O^ literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/seaking.png b/gfx/pokemon/front/seaking.png new file mode 100644 index 0000000000000000000000000000000000000000..ebe70c7ee38da615c62fc2eb14dbbdee174921a4 GIT binary patch literal 627 zcmV-(0*w8MP)WCU{xXd@Rr1&~OT^eDZI1(@yDA|=XNvRtq4riK4ePV5 zGHx-tH~xyG$vM(YV?;i@AeP4sW4E6r>JP?mZl+-v8JkEuj9K>{>^_dZK2$ly`)g1^ z0`8JI&b!YOafCwnRgUxN@4P^LyZ(<+so{7;UPMBv%zuPswD1!l6kg>;7Se(kr`gdI z<33HiSVR$YoN^o4G7?S{f{Q2^BmFaoTy0%mx>-O-m~z5pI@tHq=@NYdp}=yJQMoS4 z5o$%1D6i(6WY1p0;Jtjcc>hF$u{CaLr zqdbc4uMf0`^;S$#8ROA6JuQ#>Ibg%-L-l2Ez8aN!n2!!J?apb)XK~30m_L-a=xXbY`m=fFvjVL^Vl+c$#-K7?MKr0HC^(;wwtr2TLw(gRcs4 z$ianc<{r!s$NQY>l1sNpJYbF4r~B3tV9ks2WB-v-KJrEJadVR6^B-?kCNzQl=PdvL N002ovPDHLkV1h|?D186` literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/seel.png b/gfx/pokemon/front/seel.png new file mode 100644 index 0000000000000000000000000000000000000000..c4b2315af81298490214e34ad4e89a7746d59f65 GIT binary patch literal 490 zcmVy`|Ut}qWk;H^tcLGX23(Z}ov^O}bOU*I>7-NDnoV7h3nyBzZy z9fPpF2=>?Qa|)Tk$`2*M@`5y|lMT)hE^-A?<{~w*qj=%u3=7*AG%0ouv=D@bkmDn) z>|oA(7N&93pw3}@m4%I1Na&s*5VE@Phy_el(Yn zxGU79R{AZ!hKdq2fn53Jqe0>I#mcnNKghCEsRxxnZ-b?5{Lnu%n8;>=6Dfs;T`m+m zJ;CQTryJcloSYKx4z(#lJm|9JeT`v!-T%%x4^q4M=g-3CJAO@R+T#rCn{W3LQul-h gPyTlmjyH7t3xKr0<&d#5#{d8T07*qoM6N<$f;9K;g#Z8m literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/shellder.png b/gfx/pokemon/front/shellder.png new file mode 100644 index 0000000000000000000000000000000000000000..cf44a7fe4f8ff8cacb3bbaac6d620e62a6b438cb GIT binary patch literal 396 zcmV;70dxL|P){4Fv1ddh{Tnd>D%2X7L{2QLjE1z(X>&CNV`SXR(hFc<}nN61`cGX}Iw5jt2d zg`inP<6IJW|TCggscJ4!PR8~9lstWv& zj*&dp5iBf37_}`<(9}V&Znq`Jf{b$Zw_s9zz>Y#SK`r*Ua+acf!FVVRF#R=2!1n+G zFEFqrZkq!LEsp37$uI=&ea`9{KzJ=9*f5iSd_FJ0u)Z-adGZOGzT4%_kG_f(Nyl>a qZBQ#Rwd zO-vI(6ae7YN~?hb(bxu;1O8l^@Ej5deN2Gs|S)wl*W`p3&O#Z zU|Z zHvd>_$6icxvrC5J(So(V17?cUq&$ch3;F8}!WAy6Qz2LuDt1`y0P&l*?CZaO;L7nWk4N={Z8k+z`jyoU)zfR!7tsV8 zHu|=@{F2%Qg{U$EjRzhl0WT^_lmt_?9aG+jCkkUkB6+5`YA4BGx$uC}?%mH`WPaeo zeFG_fyJ|heV3Id6OdSR9M zH~?@DxN*7#)=hL`>afkcvd0Wr_5sH5*pV<7YI00000NkvXXu0mjf-EnMB literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/slowpoke.png b/gfx/pokemon/front/slowpoke.png new file mode 100644 index 0000000000000000000000000000000000000000..fdf701d71963e309f83d242848b3b4df1e5768c1 GIT binary patch literal 428 zcmV;d0aN~oP)rPpPdpJU)EkeZTL0AJAXGKYTSZI1T2AvVNR5xTEHI#FWbD z%ugcXrJHg4`|3na$4?m_=o3uxhL5p{`_!F?FB|s?Dv@hl&<9WSz#_qrb4p4WGRq+z z3|L*0QA?RvS&t7Ys8?Rj!(`{EQ%2>)_hL#sSqd--{WaEkRCV;wGSfK*vtFY6lzCZPZoLGjNKvfd0MFEbXlXikh4ljA6bJCX8|p|DDMD=+lEDj8I%LSw0f<>ZLP$kwogp1yVQ3lh1t^ZF#DG8q@d1je zNKKs~3oCJ1=wPH&svD_yGps5GZIGpB(3G@8w z`7!-tIWCWR*3!sVR>pKbwWzPGj+xzRQE%4BhV%=GmU9SP33){Am%05^6{Ub#60sAN zs2rCZ*+koib-&aD&*1a7ll?Ru^ufXKTNG$mo*~~wnt3!ZY|>%U5|pBigHEwD0uqj! z1Y&U7#rrN#a({%5d8Q$`v_h>OZo}yqCHEdKx%OFKS%!0N*l#c3Tl4C5cUHqkui#Zu zk8{Uc*W6?t-!023XI{J#r{?B@iC;`TweyqS(~SjAa>J@Z?Gk;VCzp8(>K-ujSC&@H z6I>lk-p7c%IHAA5j7i$(2|`a<4N2yYERz=@3qjdh>3`m-Y7yropY6n__+}U}E&2Lx zBI07eIc8sSL$dO;#aXemkUFpWGKmaVT$B;=p~y6tIy6aDY|3^qImr=EKc_jg2d+KD zEuuj)Wm6ZbY-o}H^DoxLo+3L)kHi|iQ!J}y2JK!P81w+DRk4G1H#+Nf88B`JXTxu_ z*UfD|tXDw8-2EDr0Diq=GN>$k1zOQ4V1ZrMgB5`d2V9VE`JE~v)!sy z_WwVCm>)73R@(o+0~QrnwBk>FEr{vM#I)q|nV&%B-)oDF0+{bU1~R{At>9o_|I}d5 z@c-+oB}*9?KXUam{QtOW%0dSQfh-Vn0@Dfx=BAZE1%K?dmNGE2O#wS{)lvsGsQ`O0 zbEbn#rmH`gIVqrSsVa#1Kg(s}uL)B@3jS+(3cvCS0DJSOob#)doM6$9`b%C-Sqf(U zsb8>aRR~zYM=nRH1P)wt5(%Rm?vH>US$tuYAsj_ zWu6pGnP!hrD-Sh+HEhLasJX3Ci~d4wTbkAO2kHg~hOmVY=9gB{KzDmE(^FJ*isgI| z^Y6=j`b%v5LCim2J|2G%YyL+bsK8OKmeup~x5XgC{@K6ue0=%`km>NN{-x()T{(M( zzdr;oWO|wxf39cv^NYW}(c{ehJ^c)SUisNA37pq&JD=gdrdQPj3HIm5>>2(ab<1)M zlv)`9a)W_mW?=qCc5s;eSrw3V9vXaA!TR-3rrqo#ut2rzhllTldbFSh0NR2&i>Up4 QwEzGB07*qoM6N<$g1G&XdjJ3c literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/starmie.png b/gfx/pokemon/front/starmie.png new file mode 100644 index 0000000000000000000000000000000000000000..24025ddfc83df3d3557d804e89fea61bd65dc422 GIT binary patch literal 537 zcmV+!0_OdRP)M?$RkU7qZQh{Nt9u5#EwNDXL9Qj&?swUS*7~yA1?EdU2;Sj#< zcpvoZkNKy@P`4p8pC1WNY@xnR0iITAd?mY9iKB7IR=f5`Mul& zShy>jTo+lKmpKsm%^O)8;Y7d1_q6=u>Jm|b>dRL_R6Z6h(gc($2in5V-<#G(7jS^f zTIN+?So%X2hXyW@snM1MKzi!dInpmpM3#U~TZGt`M@OY7=+w-FX8ubM!;|ab;@a~d zO6|M7J7IC_Oaij4DLlD96BwohKmnP|qI)P?rD;6bRgrf5zxH6x=YJt0 zZ2yYaod8fqCh!RV(cTT|h?j ze_s0kTBe38i1X+F-`f{VR|W_QgE;&DzINbUVaEdE{MTA#@6Vk7RKOp^IT~uq$DBXK z1dfaIOZ} vL!to0nd*Ru?ax51aL%6q4SyFmZayw#ZZ(o-gf$g8I9Cc<_Bc`2K**4EzO4Cht!W?R?uw8&jmN z`!rnG=O;M+`Af0GzCm&nyZt=@Y%?qjDL!@AZ4KrIdWO}dPTtfUtJbBcD_SdPZC%~s z38X&+(ePJrsdt^g_{-Ni8;kdCb%|nkFR>1^=j_?r89E~z8_O}y(%i+-g%=pD3gs+% zaU|Wvxb#qvX>@tBdXaV1U@e2Rsf&K;!AgdC=~iBKyh6E6KYeozGd)gI#B((I^#%Yk z3aBX&IDVHv-00g#6JyaHq%S-^U7M%T`KA{)_*bS* z*BKk@9>AP8#Rl>Lih-8l@Nw@BU~`Cybe+S?pScj0N^EJ-00vXbqX98%J zd|>wpBs*){;Tkb&tS6=SpAkRbu6vKXn-Bic_2 zz;s{25Kd)f8350S%7han!13f`GJQ#v3avAO%B1ZN?hGcQfcqarXy$glFaPt9{>*PR WvOV5=TxCZ90000>$DWz=CU`-DjuU?=k|k{Vdi-sK(tkyFF>>mL;=2kjAu<> zN1Ix5W8ogXOZ_xB_ud13vRsCix!H>Xjx5q(ZML=1xuI$hRuFaFI`dEET<7{ zcsPEn=YKI}CFL?bq1(AOOR?LMeON-}4r?+EbV*Yt>W@@PGOL38uNm}VM>)zfma912 zCupWJImS4ZS$!0Mon(epN>v#&Shl1l$upahBNMQzh1u(?gwF{!;c!9OsVCei0N~)s zmaCGw4B;`gM&?89-5G{z8(X%P5L>da|Ho(LJl8Xq;pybBPY~ z_n(uz;W8n6lY18TbJb->lBGqYF>TIQSv1MgjN>VJZPu#;v=vpfj2RKfaPa#?opVBP zc#Lz(_3eX)mm?3YA0F-+9>&!FIl1YffNP9;Hj|*|s>GCk0Z;q&rEHG)V*mgE07*qo IM6N<$f%u3F_9;tyh~sI6KxArQ>0 znze7$3RW=lY}SEUt3tudTdNJ!W`)}G1DPLJGpa3HYV#P#{IrTyYt@oZlR=`Z8nS@Q zeufYBAG21iS~Ug8JlDezwPaOj0OMqaql=%ghKdGwzgW!hA^8_W)dWWEC5svUE3LAU z^4q920mxL)vTxP@sO11OOoG+7)%<9uQ$NH16AV19#ta-x{tW+*F)mPO$m9sLXZZhV zLS{hdQVvld^N%RQ<0T@FB4BUY8#^EVa{wHC{}1rP0u>6V$^-x?(huA$X3By90000< KMNUMnLSTY=;ho_C literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/tentacruel.png b/gfx/pokemon/front/tentacruel.png new file mode 100644 index 0000000000000000000000000000000000000000..7a26a3057ff2bd653f388feb439d324b7cc18571 GIT binary patch literal 483 zcmV<90UZ8`P)%Ar>KR4^)Ywek06_&r$wR=dV7$dz zAGTX!Vm|fOBXl(Gtj9h*L(3|V{yZRqKKAiRklg;UORwo5Ha|2mmkW}a9PS>5L4n^R zzAIPzPxb?($27`Bh^PREWPXu<{SJjaNXJK978-`zki;`~Hr^FU{W2+%UEqG&AgYc9xh2FM&=4N9<_wE#1Aa>4wMwQBY3d*A}Iy(C&u=l36F1+o_>{i!;4 zUX@^n+EX=kK0nCyMBir`N4n~lB?g0`hSE@01y)R1m`1+9Q Z_z%&PeT)kg>zM!m002ovPDHLkV1mqN-6Q}2 literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/vaporeon.png b/gfx/pokemon/front/vaporeon.png new file mode 100644 index 0000000000000000000000000000000000000000..48dafce60abde913ffd399d585b7ed08051df565 GIT binary patch literal 492 zcmVz`9$Xgb7fZYvw7u{7-xsBd^ zL0cyZ56I*;kJ_M!O7F;MixFK5>69W|w&i4L`yQ=X3|!Kquf)l8K=`~5!1#}9*G;BzAlxq%>-`M5y4UYkDXT_byX?8e2X=cS< zK3R!I}b(J|PqU0000IqP)#h8>WD47R+g<`~Fb4-utexC1hSNZydMh+AZ${xV!c943FxL6UQ$rlAEH z&W)P7@(IiKm_bALOQGKLZ`+WLXnsd32;^mFs9HhX}{IRx*E*DF;?XEq}WvQttt@%~n z6FCoJh94mRmkUSrf?^g<|4%bP^CL_jy2R%UWyKM=I5kNCeAaQP(cIKi3(5ni#!Pi4 zvW-bj=8GW_`t9tjSa2gpk;boxRD1am0x0@RLfksbl}d^vD!I8cAVvy`Vsv{+92dAQ zRjFuW`%Q3oft-UVz7?+@6PmSt1@b2s33Ve1E&IYm1##U(tx{*6FSoAt93IIPt+^rl z{un?^M@LgV0D*xa*Mj0vKD!1P3L(?2;DEi`w*2Z2`K3~qf3^bCm(Jn4LWoVXNxDJb zYdnV!P34>Pvqrv1zSKPLmg8^j@9FFA;TW%UBZO<7lzM1o?k4o&Z-am00000NkvXXu0mjfWTzF7 literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/venonat.png b/gfx/pokemon/front/venonat.png new file mode 100644 index 0000000000000000000000000000000000000000..edf15889eb75ddbe6cd18cd07162591175279acf GIT binary patch literal 390 zcmV;10eSw3P)IqszD>VtFce-HP9s6@X7ntJwvqj|aW$I0bYy-&ls8n82Vd8ofJ zXVh7|X)R8eol3Mfp{p<%9h{wiK!v^Mx@n__By)V1 zU&-a=9&_;eg59ok>Y)C13YoOI8UZ~v8(3~S1`iZdCPFDQ!bGF!%Z3z+mf^b=LVO#r zUabKdVJy52;Q`#P#f}W&GFzAnKh%@V9bV@INC4p^=wb}*0f?$FK=);^S=>ZCE0JRs z9K`xESiNu!amZQB>@`#=K34*&f$yqPLLHk1JXT?31^pYv_6*t*eJK*TmJ>WR*XXvg k;Pi8ULE0+)v#mbq2UF3|ua6AYp;u&lg3nplBFrM`_c5^ z@>j{=CYGeufJDJAE=~ovxP&xS33vB=@2myE&9^*0-ur+4|9=nIUkm=5dWsFDa}Jw* zRv5+qu2(j|VS^{_v^|UNA^dLtol;ezQ#NQJJpwLn>dF}pbalIC zMj9{{#!kX6p-GsFxFWM>_Q52%b^?@YPH_K0QJ%KtJNBhH4On!#uit-@CJSiO0HJ` zd^CYC;+AC4qLjZ3-j5X4=W)%Pp?c;Mc)|V-^0if5De;>9K!Bo2tu4{QjT$V=lo}MH zf`Y&t2vd{?m-EQ@E#~nka#c<9JfHdV4fre!;X=WZ&sskj#C(CBDuVk7# s=@de?$5Px#07*qoM6N<$f7av)1#w6~Ytkf2bC>7$y}P8;8}9gUci&&{3sPS_Nb4u4+rHeB-^1jX zvzFQZ+f2j^MQJ2fVaz^e+uLGoI%b{210fQNF%5vs`(Vj2HN#{G8Q;6-*qVV^$IP)O zoMp}5l4a-GLZGF&8!R2nm4%CUHKzlrlaztOzkb_qdKMY%N2F=EL#Ep+FK+H3?toY4;+)5yFWGb)x;}2U#0=a><;!${b4Ya84MeJ1dx;uxEzI zQxi6A$qFZLYqTCZY{Z<}B{`v5KG{sh40RNYV$)!WA)FVRQB^^bL`z9auKxwvG$;7LhYr(WY@74%wT^|w^cIJsAUp4CEw&P z_3rz2LD@q!->1!-S(kcodpwEq+(=B<=eI+CiOrlkdHlxZq3PI)py33%*CsksvCzCb zKsV#)TxHfBopJu)#nDwUQD>W>;qd|40zW3jwHq8ZCy`=C?(pPUJT{+vvIJ71F&l|+ zFOJBN6LrZC0o3GL6=iIj^NBvVzEXp=Pcp|mKA}$p0^ito$R7?mfZPOrn92IRIC5mT zTE-VZ5?5)5XUGhnRayQQ^zWq96=+esJo)gkf$waO_8T9V~y+x zSRPqcPaBv93(mC!xL6*UU~;{vFPUO%s|?P+uNzYw*elAx$HrfjnE`9bR54gx6$Y(( zkzP}y%9c2-Fs+OC3YjHlE6!!sWVMA0P#1@K5HmECK{SxT9>f%N+W&wB!W3Bl|K9=#6X<|ns~W&e{r~@0 zty%(R+W-HzYSl_GvmPkFY8BY9`yl2@uodV3zk)HpgP4oK%+Da^a)^8Xe+^sJ5AlWl vt(B`FzW9In{>lX~ADf2r!^44r>fs9jSX5HtpJ4zx00000NkvXXu0mjfNU3eA literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/vulpix.png b/gfx/pokemon/front/vulpix.png new file mode 100644 index 0000000000000000000000000000000000000000..f4780ef25a63d67b34fd7f3cbb6d8d02b65f6049 GIT binary patch literal 501 zcmVOFXq|#F>@X z_>wxmYD^UVtWY*b_`O2$?bWfY5qQw3Aw3ZoRgdJpaZ;tV%zNSE3T?kVd{jYj*gwRw zvBd2jj9#SYdhZNx0l*-3N=u`!=3nv2_3OwULHpqIHg6y?TydHNI{en=72Yg zKnZD3+2knoi=fZjiURESX76s_^8p-&(~lgU`<@3dWw;Okhb?bY9L02R9{|+a4YLX+0)qp3_H|g5#EXe0GHp7C_0n&>p8sS zT&ESj*!vBVyE_zsE%5#b$?RtupJ4ZaP^NfCWtfF`S{jN1a26&^s55awd&7xLn61*@ zn2vzWy=0}S3U{Dq8e10zy_gZ}o{n?6o+*r{8W&DyJ(F}(x(rL^q>_Gv4!{L-5*PCn r{{a&^v9-jH6v?5L=Xr zc4#+o6jW%P+61J8voXm94T85EKi>U&?;h}C1N_AZ#?XsnF+dvSn(X!Um+W3G`#Bt{Gek1(~XehN=eu&%m)Q_@ zgQHaW_?@7(4LE68VZ*dl2>_uf&x8e`WrgwTn+hovrBXKrt&*R!YmzE)7D3mN0c0Zd tkpF8VKxz$<{@Vu`6l;n$__vXM#y7{{oD%!Ug?Rt~002ovPDHLkV1m>Y#a;ja literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/weedle.png b/gfx/pokemon/front/weedle.png new file mode 100644 index 0000000000000000000000000000000000000000..445fe8f31445015d71053289a87c8221ad29d492 GIT binary patch literal 286 zcmV+(0pb3MP)-mnVFp-^8Ls+#fKsM<8fvfXNHF1Vd`k^&fSG3NPmrt1-)CKC;|{^su%@SSRKVs z?)%I^#-*yO89geR5x~LjB|aYeIsgCw07*qoM6N<$f>Tj;9RL6T literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/weepinbell.png b/gfx/pokemon/front/weepinbell.png new file mode 100644 index 0000000000000000000000000000000000000000..6ee573340f9ddaa36ea5dd09d5f01a76f09ca8ee GIT binary patch literal 436 zcmV;l0ZaagP)1 zze@s9902eyfmV}H9f1d}q4|Ww3;Y-ECSl1|;S3P{jHM__)4_zIP8bh}16q;2`Swogs z;`N4Q1qu$72zqs<5@$*WPYGrZhPt?8N}Oo~lYuE;;Ag>m;gGj@AD_V z#W^bgO$M91UhWDgVuZsDehW=ng5LK`6<#opIRR&cx#th+qbguasF6&I6BknmVd{*` zjEfl60N1RPCSW%foG0O)(gI^LP_KbZqg|lcFbQG9O%ws@)}UCqN{ZQJpk^gZed&Uz zCmL;D%QO#VLcqeV#dUbHK&%_SdWHv#56*rH+x6@NbmC?esbBhH!C<{UAC{JqmQ etpE94{>2wJ7o_=4eeZ?<0000<@5}od8#oHQk=ySJcQm_1BlYzSr-41P=xI@43#{Uj9eN zMB+KCe_1Xvmj6&bS-ZbVyqt-x4n)6cxTOiwOe5|uA?~@p1qy`-NBrESZI23&&vxd`O4G%j;Kri7}Hwv68M z5-Zi2c?bZhEDSr}7(dc*7I@_IPZ@Vo-F*R5&ostOShPS4UT|&!wOB0{l$W|nRRJQL zao*(FxcHhXoIRXZdf=`QQ6UF9=f*A3Jf(EreS)-0lQ2R8MYq`rmOl$HwZ;d^?3-+_)1y%};ERP!hLoP8X|1 r)QN_*v4gAOvMt$?uvt8GQ&{{4JE_TE$T3r=00000NkvXXu0mjfdv-(k literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/wigglytuff.png b/gfx/pokemon/front/wigglytuff.png new file mode 100644 index 0000000000000000000000000000000000000000..c7cd495b244557df41ea41ca4d8c5477e9bee198 GIT binary patch literal 513 zcmV+c0{;DpP)KR76b9hu1{aAASpbQmDiRYthE$nBHXvFQ1}x!YfCWS+cdM$dDGLLt6cj*WLQvb0 z?`6ouY(!KBcOVLzCssP8PSqj02xIETQO@;2ftIz<4NF}Rvzq70NC zVk?LCx%X}k!yG3cS5vHNFUXPYE+x^I^J&0o!@*W%yWL+(RD&SBuwvGHyRxZnl_9CG z0K=@QYd&KOwtX9F>a`DPeHW5F8#dec7E-~{?Y@y9HX#$ANhpp+e8}MA;8V>9vLNFs zqF@eDS#W}gwlU@!5opBD{$n~s3<|`*7HE2g;?@!O2qvOa;4sJZFIxOPqFZ46AH)Tw z_=r*e7s(82jq&{q4;X_P!V2SPmiFFa9B-V$ZRB@7U*NahWelBSU3h7MVaj^G%8_mr zhEh5=hyqi}yRa{%>i`({cxE`oKXq&}hEOijNJHrlo}7Mhc*xv)00000NkvXXu0mjf DRb=LE literal 0 HcmV?d00001 diff --git a/gfx/pokemon/front/zapdos.png b/gfx/pokemon/front/zapdos.png new file mode 100644 index 0000000000000000000000000000000000000000..0bd71f4e44b736cfee6e5f4d076381d0b8994724 GIT binary patch literal 621 zcmV-z0+RiSP)SA6be? zI$%&|fI*)kPaU9?|Aa2Mve0B@)T5MjDGVe%!eb>rhlQ9VA$ev^%|ZlIk!kY4>cM`x z;+}?(ZJSuV-_ZlJPm)My_)_yX-nO6+QYV5pOSQy->0?l~L4R%RM~mQwf&=m?sazJ& zCnTbpoL&mALlSJeW+J;HU#LB*}mP0$7%(bikOiW>AYyHB(FiGNe( zHj86QVwr(>LN}3~mNlyJ?ITDqHI2g;#lp@ugHHiPjnTtb3{C>V);qXmg+V+FI4+8| zwFIydQ0zKitSE(MK+odWSe(Q8zekudv{IGN-(+UAW~@1L>WxPqZs;?5ou`fRa%V=- zJZ_LHb3*Jqo6>bUf8NecN;ekloIQTNC90aA9F2dV76d^;YSu8FVF{{)`i2eoDigZxulA7j~;vjTV z3Jwlp$RI@;kWQj>QXf#T4RYbXzh|hQ&-w zXGC|>8Yx9m9&urU^ZoJ0revJ+y^m}fK{OJaTMyZl9*<=&`2sIV_ z2O6A%Q3j`wAE2}c1utVJh?QBNGm}lSdvIZ4Kj!Uw^X3hL+=I+3a?~_OnGa@p`st@| z)NxAbIGScs)RIsCvtbAZvpmGopHUg=#*70?l3P_Gx5|!ZG&N8y0G$c;4ymH^;Mm%gcj%yL@NDUhidlKPcb7R<^11 z3EI2c4ZPKr0-YSrl~?2uUR_!I;_99)V0DO&g63o!JQDKB7VjK9bi{J)ytEN?(7qdr zP&ZpoxB9x!qlS{|%ZiF2WIw1I3jV5*0Olu#3PWA!rm5*aFystA(~%d0Zax=)#DXls z`!I%4s}-AIqSk?%A&XGd0ZAe+fSJilEf}C*kNG!%kM`tk3%Xs8Q@XpcU3%e8JmvT# z0$rTnD{O9>r1L8ZP&tn?)a+S1!=#9=<4iEG%GcNqc*4Hv@;8w*$;G)>Ll*8`| zXbT*HOIwj~7Y2v(xkWd=#fR8FxA(*Ay$pvZ&fC!Z9vuwfCJ|goPBvr)Z(9XEM$X=F z_-l3y*d&Q`pZ^o+K=1WcNdPubk!w;Yu%Dt_tfp<9)po0(qr9)0UZV^Op)g5h@g_%` zjE5$9{$!UDUv4s#qEG7#p5s^tdurlghGE0;UFnsYJ?0H4dGA9Wjptgk&L@zD;ycx- zo-1J%$nkMX6!7mmHhhNJ^=S3xJ%n~fe`1zGTAJBd&lJ(J(3A0Lp;ra8$@)-g z$jNs(i$NJmzd%EqrUaHC$YJRR*jwo#INe=XvP!0JWXBGr?Fb_=`svNnyeETF_@4vx z_&;DOr8JQLep{kD0d3hGhIDi~VcJdUq|ZYQxL!u75ITBbXV}4ZFHO4*y6zyBjDLV` zuRCn_b{m~EOgo)#-hE>RjP7tAfdE~0dtZJR&OrySa%lIo)ej&}0f4;r7EhFNWKGKH zTqGqxS*CN)P_Hftq|>=brT|r$%zkG}7t=X(ZAp;2WLXlV$C1OQ6iJ>lZmprU$_wK-3Wi0q7ZC%x?x`S^jZ>@mq5HiTz=AQ|0Rm z*$nu&*?OHEf4`mawFD03R==)6Z3=|N2%PR5@2ZRouq%J|*&{a>!BvFTqi6WQeC^ul zPmJTo$<7~J*&Pq+HwaMXTvU@7zdbmu$>fyr0IJLBZa*%|?QsS{sXgH92U}GuI$5E* z*o<#fE@3xeRI#MYKtMR+;_^M&+hh&7B@@O!e_ydT%bBjJ+y@WrJ&skIK+{gE@)O3z zA(bNSPk|l|T{&_xQS6C_k&~8XQVk8zy?+IgDgjD5SRx=7!2FAVI|noo?{g2a+0$VA z!VSWAX5pEg1@bzG+1FpG8Ufc-7GuuNizSMHbMWvUiri(qZ=OZ~{Pnz?IT15QmBzQQ8$Io9CPJvXSD zmU)DA4PX-Cp>=D_Y-+iW&OdlXZZMDEgCE#{+y|kb;%aJGSZFDD;{*3z&ZYTd-?oV?an`6g;wApWcrA$3*=^ z4eWU;P$PRIZo}rugAZSMDx&W-OanAX&^7eqNmOGBy7w#`I4Y}}DOYFpk;gv!u@@)) z>Uoix>fDNyWrv+O8yo)`uk!|PvV`B_ZQkKsHvVHi;Zr^n@#lQOmwd&>ulSxH_))~i z{KU`vlK2B&)fL2&^}BJz5xa>$W!saeyHC{!^I7 z3}!|AHEwW=I~e~Q=COc95&w!eyyF9=e^-rwF)HE%EMXZdiQmq`VV!@k937EmjNi^e zM7_FNsFm8Noify+|C*ips*Aeyd4_uQaV&W!sxe>lpJqCpiNEiq^Ow$)>m0004CHid%KPB0`LU)U`|B(8cAg z&W^&9!dr!U&TVXhZTN9}@}2LyIk}{Cnj}fiK|<$>!+mD+LhK!zcnnpu<@ent*rgo z{xYG*_8<1TiWGAD!?5x?8`*Fs6nj*UAhRJ-z zwz+Ub8SzL-DlX{0a2>wQ$XA9gIMI7O{cB9G)91Xk#mNB(j5Kt)5Wk9N2aQb3wZ&X3b=z(f_ z8w_Fqz93O8(aq@>S8pf4S!+QK>jGHS(HUayexd_s4fLhVXfEKtxy#NiqOpHh<>!EC zA0W|nfjc1L!E3Xa>Nn~DYP^6G@;5mA+%2S@Ds{*b^?3GVSgtL|e%v@99`^wJC=4>1 z7w80Z_j)`4hGzIbP#56df(PKokuo0l1YA-k!(QME38%khj3iqk00000NkvXXu0mjf Dr0&aY literal 0 HcmV?d00001 diff --git a/gfx/slots/green_slots_2.png b/gfx/slots/green_slots_2.png new file mode 100644 index 0000000000000000000000000000000000000000..5072b55600cf61631d7045e6cd3914c9d100d3e4 GIT binary patch literal 308 zcmV-40n7f0P)n z&q~BF5Qj%X@e-JeeUFtzycBZKqtHS-?1T6KzFH+)_EL!#Z$8A7Tt~+IS*!yCUnco} zBmrH>X)4h64<_}1281R((=ZlTh!Ozkxt&JH2ha0OU%)f+0*o1_RskU0?JIJ&ZeuMOdgE*>iwxYWwI+05P)@)??9AVg)()BW(9CH7CA5 zg#x1Ll<^A9kY0+ca{6+R#}!g-%~0Q!BOt0)J$7BlLeXVt90;3`NNLgz0~f4EY;`iy*kAo09cPD5&Q^Nmeb+ z;KfVU%pDC8hOB|hd#5RB)ejzrbie!F`|c=Ds>-|*Sf7l!1?Z4~tMV@(_AxPLMRX{@ z=~JQ7p<_p^uo=;v$nHk;4;xgU(I^j%z797S#Pc;56`PfaI@Mh(iWWo zzZjr5z`@N*ptQAFP<{#MLOF+2%Q{zLFKs$oYw7$HD0cch13T!s(nX+TKpB)rBr30f z_bKX#9CFJAd|3k5YfgT<_sEv4KY8*Uh<`YUsIyDdX6Wc%0CBj>ldtgN450_IcJv|z z{t^HmKOh`Tc{}orcJ9*-x1|(~HZ7sKR zfF4Yhv>CEzq;w|FL8CR%(R~d>d6J1+Q2hKH?SIRNc)Yd?SpzPC#2XH#4v37&$`Uy4 z+JA~-YyGMM#^e70;t+Zb06JTU1JDF;K5=LUSXCvr&;ZEel;wEb2#BicxZ4E00z*2t UB>`8DYybcN07*qoM6N<$f`ZoCPyhe` literal 0 HcmV?d00001 diff --git a/gfx/slotmachine2.png b/gfx/slots/slots_2.png similarity index 100% rename from gfx/slotmachine2.png rename to gfx/slots/slots_2.png diff --git a/gfx/spinner_arrow.png b/gfx/spinner_arrow.png deleted file mode 100644 index aea0672b55347a304dadf013fb0f8257357d6b88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx;Bp3=bcE|uJFHaZ8kcwNpr#1>QC~~kISRG{a z(q;7q&LZdMs}_hjJ*akkIWSGv>ZY%%cwneOT8=d#Wzp$PyFKrd+k diff --git a/gfx/copyright.png b/gfx/splash/copyright.png similarity index 100% rename from gfx/copyright.png rename to gfx/splash/copyright.png diff --git a/gfx/falling_star.png b/gfx/splash/falling_star.png similarity index 100% rename from gfx/falling_star.png rename to gfx/splash/falling_star.png diff --git a/gfx/gamefreak_logo.png b/gfx/splash/gamefreak_logo.png similarity index 100% rename from gfx/gamefreak_logo.png rename to gfx/splash/gamefreak_logo.png diff --git a/gfx/gamefreak_intro.png b/gfx/splash/gamefreak_presents.png similarity index 100% rename from gfx/gamefreak_intro.png rename to gfx/splash/gamefreak_presents.png diff --git a/gfx/sprites.asm b/gfx/sprites.asm new file mode 100644 index 000000000..ebafac206 --- /dev/null +++ b/gfx/sprites.asm @@ -0,0 +1,74 @@ +SECTION "NPC Sprites 1", ROMX + +ScientistSprite:: INCBIN "gfx/sprites/scientist.2bpp" +RockerSprite:: INCBIN "gfx/sprites/rocker.2bpp" +SwimmerSprite:: INCBIN "gfx/sprites/swimmer.2bpp" +SafariZoneWorkerSprite:: INCBIN "gfx/sprites/safari_zone_worker.2bpp" +GymGuideSprite:: INCBIN "gfx/sprites/gym_guide.2bpp" +GrampsSprite:: INCBIN "gfx/sprites/gramps.2bpp" +ClerkSprite:: INCBIN "gfx/sprites/clerk.2bpp" +FishingGuruSprite:: INCBIN "gfx/sprites/fishing_guru.2bpp" +GrannySprite:: INCBIN "gfx/sprites/granny.2bpp" +NurseSprite:: INCBIN "gfx/sprites/nurse.2bpp" +LinkReceptionistSprite:: INCBIN "gfx/sprites/link_receptionist.2bpp" +SilphPresidentSprite:: INCBIN "gfx/sprites/silph_president.2bpp" +SilphWorkerSprite:: INCBIN "gfx/sprites/silph_worker.2bpp" +WardenSprite:: INCBIN "gfx/sprites/warden.2bpp" +CaptainSprite:: INCBIN "gfx/sprites/captain.2bpp" +FisherSprite:: INCBIN "gfx/sprites/fisher.2bpp" +KogaSprite:: INCBIN "gfx/sprites/koga.2bpp" +GuardSprite:: INCBIN "gfx/sprites/guard.2bpp" +PokeBallSprite:: INCBIN "gfx/sprites/poke_ball.2bpp" +FossilSprite:: INCBIN "gfx/sprites/fossil.2bpp" +BoulderSprite:: INCBIN "gfx/sprites/boulder.2bpp" +PaperSprite:: INCBIN "gfx/sprites/paper.2bpp" +PokedexSprite:: INCBIN "gfx/sprites/pokedex.2bpp" +ClipboardSprite:: INCBIN "gfx/sprites/clipboard.2bpp" +SnorlaxSprite:: INCBIN "gfx/sprites/snorlax.2bpp" +OldAmberSprite:: INCBIN "gfx/sprites/old_amber.2bpp" +GamblerAsleepSprite:: INCBIN "gfx/sprites/gambler_asleep.2bpp" +QuestionMarkSprite:: INCBIN "gfx/sprites/question_mark.2bpp" + + +SECTION "NPC Sprites 2", ROMX + +RedBikeSprite:: INCBIN "gfx/sprites/red_bike.2bpp" +RedSprite:: INCBIN "gfx/sprites/red.2bpp" +BlueSprite:: INCBIN "gfx/sprites/blue.2bpp" +OakSprite:: INCBIN "gfx/sprites/oak.2bpp" +YoungsterSprite:: INCBIN "gfx/sprites/youngster.2bpp" +MonsterSprite:: INCBIN "gfx/sprites/monster.2bpp" +CooltrainerFSprite:: INCBIN "gfx/sprites/cooltrainer_f.2bpp" +CooltrainerMSprite:: INCBIN "gfx/sprites/cooltrainer_m.2bpp" +LittleGirlSprite:: INCBIN "gfx/sprites/little_girl.2bpp" +BirdSprite:: INCBIN "gfx/sprites/bird.2bpp" +MiddleAgedManSprite:: INCBIN "gfx/sprites/middle_aged_man.2bpp" +GamblerSprite:: INCBIN "gfx/sprites/gambler.2bpp" +SuperNerdSprite:: INCBIN "gfx/sprites/super_nerd.2bpp" +GirlSprite:: INCBIN "gfx/sprites/girl.2bpp" +HikerSprite:: INCBIN "gfx/sprites/hiker.2bpp" +BeautySprite:: INCBIN "gfx/sprites/beauty.2bpp" +GentlemanSprite:: INCBIN "gfx/sprites/gentleman.2bpp" +DaisySprite:: INCBIN "gfx/sprites/daisy.2bpp" +BikerSprite:: INCBIN "gfx/sprites/biker.2bpp" +SailorSprite:: INCBIN "gfx/sprites/sailor.2bpp" +CookSprite:: INCBIN "gfx/sprites/cook.2bpp" +BikeShopClerkSprite:: INCBIN "gfx/sprites/bike_shop_clerk.2bpp" +MrFujiSprite:: INCBIN "gfx/sprites/mr_fuji.2bpp" +GiovanniSprite:: INCBIN "gfx/sprites/giovanni.2bpp" +RocketSprite:: INCBIN "gfx/sprites/rocket.2bpp" +ChannelerSprite:: INCBIN "gfx/sprites/channeler.2bpp" +WaiterSprite:: INCBIN "gfx/sprites/waiter.2bpp" +ErikaSprite:: INCBIN "gfx/sprites/erika.2bpp" +MiddleAgedWomanSprite:: INCBIN "gfx/sprites/middle_aged_woman.2bpp" +BrunetteGirlSprite:: INCBIN "gfx/sprites/brunette_girl.2bpp" +LanceSprite:: INCBIN "gfx/sprites/lance.2bpp" +MomSprite:: INCBIN "gfx/sprites/mom.2bpp" +BaldingGuySprite:: INCBIN "gfx/sprites/balding_guy.2bpp" +LittleBoySprite:: INCBIN "gfx/sprites/little_boy.2bpp" +GameboyKidSprite:: INCBIN "gfx/sprites/gameboy_kid.2bpp" +FairySprite:: INCBIN "gfx/sprites/fairy.2bpp" +AgathaSprite:: INCBIN "gfx/sprites/agatha.2bpp" +BrunoSprite:: INCBIN "gfx/sprites/bruno.2bpp" +LoreleiSprite:: INCBIN "gfx/sprites/lorelei.2bpp" +SeelSprite:: INCBIN "gfx/sprites/seel.2bpp" diff --git a/gfx/sprites/foulard_woman.png b/gfx/sprites/beauty.png similarity index 100% rename from gfx/sprites/foulard_woman.png rename to gfx/sprites/beauty.png diff --git a/gfx/sprites/bike_shop_guy.png b/gfx/sprites/bike_shop_clerk.png similarity index 100% rename from gfx/sprites/bike_shop_guy.png rename to gfx/sprites/bike_shop_clerk.png diff --git a/gfx/sprites/ss_captain.png b/gfx/sprites/captain.png similarity index 100% rename from gfx/sprites/ss_captain.png rename to gfx/sprites/captain.png diff --git a/gfx/sprites/medium.png b/gfx/sprites/channeler.png similarity index 100% rename from gfx/sprites/medium.png rename to gfx/sprites/channeler.png diff --git a/gfx/sprites/clefairy.png b/gfx/sprites/clefairy.png index 06fe00768a46b2f1c9cccfcb75c10a6a5bd50ef4..e8502ddd52042d9c0bc757b2c96943ee2b48c51a 100644 GIT binary patch delta 542 zcmV+(0^$9=0;&X%7k@Aa1^@s67+?BV00001b5ch_0Itp)=>Px#1ZP1_K>z@;j|==^ z1poj532;bRa{vGi!~g&e!~vBn4jTXf0l!H^K~zXf-Ii-|!Y~X5Lx(HEA>okJ>t>BC zbh zPC8`AEIdju3k`5wjbV4&j{Ud6gIEd<8t14w!zcmg9EExHEC%|U*BGN;uh;E#I`wfb zA+Pna+xUh-TzrPMh)nyyNY5}cGUz>E04P608-2>xxGDu_E}dZrKokL^DVUw1JWPtX zl;@FB;1&MC_kVyNr2EyJrhB}qH5etBMUI?_yAVbbeee^a?UX@`?ydtiQrw-MM3{D> zV1QV5s>&O0!9}9RtqXDP*epJD);QiV=Bn24!S{%YZ$R~DAi&l8Knc*E-5LdvEM&f_JM01Gs% zb-drRamDBXk?l5PKq#L9*KFMoFuL1x1p+$5^gYnoC>i%fWa@z>tgt_26N#$8cO{4- zLxA*R>Uo~aGLxx<7}<1J{g6qZLXlN}CV{HUfQSOxcz^5v0qfkmPy3lp<4VMcqTBK~ g$9E02*%!8b0=V(?vl}=1aR2}S07*qoM6N<$g6Av#&Hw-a delta 303 zcmV+~0nq-c1ib=~7k^*^00000dkVGP00035Nklp-P>P(!c0pxn`O7L2px`a0+c*CYEFb)+ zl*MxN+(&uv5TklIS7_hD2u+%2Xhbq>ZjWD~MGQ)j7`4a++JD)51UnuRSgp3yAFns3 zR|ND#=oLZc(am&9PaAsL(7T_|yBYrD^_K(+C^U;up$E|Bf=ewQwbfL@v#UwW+#J#Fai zO`hoON4vd_(kQVjooq{w+>kqb%;XgH;F{k6`vr@L@bcL`@2mg-002ovPDHLkV1gyq Bje7t9 diff --git a/gfx/sprites/clefairy2.png b/gfx/sprites/clefairy2.png deleted file mode 100644 index e8502ddd52042d9c0bc757b2c96943ee2b48c51a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmV+_0@eMAP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0l!H^K~zXf-Ii-| z!Y~X5Lx(HEA>okJ>t>BCHpCul2Iq_=Z7Te1^7&O#8q{&oDDG=sjQnC_h6ReahFkDg|dQ zonZ(-6ak|tn4O_KOp3Ua=aEw275>5ZfFGp$)tsh#ys9-AC74ByoQb;-MiYJT6Qb>u zL5%LM12$6Jot{LPcA{W_Sazz)8*jlyqQCAO^=BZ! z)%!pR(4OC#!1TVESI-#BebmSz@v5BR;Ve*2Gwfq)j`L(*A0~U^Ql3XjfmitT_uxT* z4MNJM4bI~wlK=}etaZHKvvI}f0g>%CV?ZdM0oQEZ5HPyibOi!B!}LAS*(e$JMP%xM zC9JSNWfO_2z;`8xB13@mV(NLG%QBOxgc#X$SN)JlphA&VePUA|%h@#u_ILCJlwb{0P0=V(?vl}=1aR2}S07*qoM6N<$g58V#lmGw# diff --git a/gfx/sprites/mart_guy.png b/gfx/sprites/clerk.png similarity index 100% rename from gfx/sprites/mart_guy.png rename to gfx/sprites/clerk.png diff --git a/gfx/sprites/lass.png b/gfx/sprites/cooltrainer_f.png similarity index 100% rename from gfx/sprites/lass.png rename to gfx/sprites/cooltrainer_f.png diff --git a/gfx/sprites/black_hair_boy_1.png b/gfx/sprites/cooltrainer_m.png similarity index 100% rename from gfx/sprites/black_hair_boy_1.png rename to gfx/sprites/cooltrainer_m.png diff --git a/gfx/sprites/fairy.png b/gfx/sprites/fairy.png new file mode 100644 index 0000000000000000000000000000000000000000..06fe00768a46b2f1c9cccfcb75c10a6a5bd50ef4 GIT binary patch literal 317 zcmV-D0mA-?P)p-P>P(!c0pxn z`O7L2px`a0+c*CYEFb)+l*MxN+(&uv5TklIS7_hD2u+%2Xhbq>ZjWD~MGQ)j7`4a+ z+Sz*qJ025Qt+v!3uQ#Vx1oTAc6+!0F&2&mn8+zK%yPwdz8UEw-mjntZG>cH74oS7b ze4rm*XX!G{V_)^V^jhT6-=OZfy;mnLknQq* zmoAHdUYZ+UdaVsTZRqVyp6KmIyS@**)*9 P00000NkvXXu0mjfrk#y0 literal 0 HcmV?d00001 diff --git a/gfx/sprites/fisher.png b/gfx/sprites/fisher.png index ef3f864b8814757a8e4f09c414c570c24f0bef5d..a84a2e3716887c48f7590239d27bb933af8fa8d3 100644 GIT binary patch delta 294 zcmV+>0onf50ki^;7k^*^00000dkVGP0002{Nkl1pw7)GBFS-NOxmQHcA z7+=DME+I=hSRJ}{DLF;R1)9Zsz$vIYg|nqTjl3JwUk)iL?a&JG@q^H(_eAhI5Rg42 z`-0)d6?o?~?PjC+aPFDzebvxAch51mbFwnYNbAQ12V?H=(|=0iK{Kef;Gz$TQ;erA zD2_0vg9g95(x<-kVX`27dph?S^Sw{1LRZR^uQg$|Rt#<{v9fVGN65EwqmEn1$bf;=QB{BVrb>NFqrTn~)<3CgvEE-T*xFxTtQEcg z`aW+YYu%o7Pcc7fZ{<9di=!eH@KQ#nK(R!UH_NhU5W-8p-~a#s07*qoM6N<$f-GoL Apa1{> diff --git a/gfx/sprites/fisher2.png b/gfx/sprites/fisher2.png deleted file mode 100644 index a84a2e3716887c48f7590239d27bb933af8fa8d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 308 zcmV-40n7f0P)1pw7)GBFS-NOxmQHcA7+=DME+I=hSRJ}{DLF;R1)9Zsz$vIYg|nqTjl3JwUk)iL z?a&JG@q^H(_eAhI5Rg42`-0)d6?o?~?PjC+aPFDzebvxAch51mbFwnYNbAQ12V?H= z(@Nt(GpM%Uq7RBwjHfLqjxeW#2EV(~r@r)IvLJnXI`R%0-=z;xI*X9AD4o=m#ZM}sM@7Ey zv+qyR4QY98xvgJplven}jMu*U{x7{Oz${;3D$$M@@_(NNnzenU1)#{{ZA( MPgg&ebxsLQ05v*OoB#j- literal 0 HcmV?d00001 diff --git a/gfx/sprites/omanyte.png b/gfx/sprites/fossil.png similarity index 100% rename from gfx/sprites/omanyte.png rename to gfx/sprites/fossil.png diff --git a/gfx/sprites/lying_old_man.png b/gfx/sprites/gambler_asleep.png similarity index 100% rename from gfx/sprites/lying_old_man.png rename to gfx/sprites/gambler_asleep.png diff --git a/gfx/sprites/old_person.png b/gfx/sprites/gramps.png similarity index 100% rename from gfx/sprites/old_person.png rename to gfx/sprites/gramps.png diff --git a/gfx/sprites/old_medium_woman.png b/gfx/sprites/granny.png similarity index 100% rename from gfx/sprites/old_medium_woman.png rename to gfx/sprites/granny.png diff --git a/gfx/sprites/gym_helper.png b/gfx/sprites/gym_guide.png similarity index 100% rename from gfx/sprites/gym_helper.png rename to gfx/sprites/gym_guide.png diff --git a/gfx/sprites/blackbelt.png b/gfx/sprites/koga.png similarity index 100% rename from gfx/sprites/blackbelt.png rename to gfx/sprites/koga.png diff --git a/gfx/sprites/cable_club_woman.png b/gfx/sprites/link_receptionist.png similarity index 100% rename from gfx/sprites/cable_club_woman.png rename to gfx/sprites/link_receptionist.png diff --git a/gfx/sprites/young_boy.png b/gfx/sprites/little_boy.png similarity index 100% rename from gfx/sprites/young_boy.png rename to gfx/sprites/little_boy.png diff --git a/gfx/sprites/fat_bald_guy.png b/gfx/sprites/middle_aged_man.png similarity index 100% rename from gfx/sprites/fat_bald_guy.png rename to gfx/sprites/middle_aged_man.png diff --git a/gfx/sprites/mom_geisha.png b/gfx/sprites/middle_aged_woman.png similarity index 100% rename from gfx/sprites/mom_geisha.png rename to gfx/sprites/middle_aged_woman.png diff --git a/gfx/sprites/slowbro.png b/gfx/sprites/monster.png similarity index 100% rename from gfx/sprites/slowbro.png rename to gfx/sprites/monster.png diff --git a/gfx/sprites/paper_sheet.png b/gfx/sprites/paper.png similarity index 100% rename from gfx/sprites/paper_sheet.png rename to gfx/sprites/paper.png diff --git a/gfx/sprites/ball.png b/gfx/sprites/poke_ball.png similarity index 100% rename from gfx/sprites/ball.png rename to gfx/sprites/poke_ball.png diff --git a/gfx/sprites/book_map_dex.png b/gfx/sprites/pokedex.png similarity index 100% rename from gfx/sprites/book_map_dex.png rename to gfx/sprites/pokedex.png diff --git a/gfx/sprites/cycling.png b/gfx/sprites/red_bike.png similarity index 100% rename from gfx/sprites/cycling.png rename to gfx/sprites/red_bike.png diff --git a/gfx/sprites/white_player.png b/gfx/sprites/safari_zone_worker.png similarity index 100% rename from gfx/sprites/white_player.png rename to gfx/sprites/safari_zone_worker.png diff --git a/gfx/sprites/oak_aide.png b/gfx/sprites/scientist.png similarity index 100% rename from gfx/sprites/oak_aide.png rename to gfx/sprites/scientist.png diff --git a/gfx/sprites/mr_masterball.png b/gfx/sprites/silph_president.png similarity index 100% rename from gfx/sprites/mr_masterball.png rename to gfx/sprites/silph_president.png diff --git a/gfx/sprites/lapras_giver.png b/gfx/sprites/silph_worker.png similarity index 100% rename from gfx/sprites/lapras_giver.png rename to gfx/sprites/silph_worker.png diff --git a/gfx/sprites/black_hair_boy_2.png b/gfx/sprites/super_nerd.png similarity index 100% rename from gfx/sprites/black_hair_boy_2.png rename to gfx/sprites/super_nerd.png diff --git a/gfx/sprites/bug_catcher.png b/gfx/sprites/youngster.png similarity index 100% rename from gfx/sprites/bug_catcher.png rename to gfx/sprites/youngster.png diff --git a/gfx/surfing_pikachu_1.png b/gfx/surfing_pikachu_1.png deleted file mode 100644 index abaf4ba4160cb86ae4cabffed1fde3e4358b8cd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3766 zcmV;n4oUHeP)7&;8*yMpEz%xMQ$!j~8% zq%n{PgYf1bczf^POZdn+!Gbj(M-O(Gs-Mdm&6kd%W_-(QmK6v=PCqLs+H~G=xqThl{!#?ihTg)q-WT1Lj@YlbLcUB5egx~VKr##_bzoZ;DM~LhDue75E_KjEdy}I z8gg=Ah6WvI(i;u|f}W>-&l_owgKqUjb%3i$k_<3YFA?^I7t%M6f6}#&Pqapl0Q}*L z?o&b7w*YC-QIvj*W%6`g*9KI~8xoz&?=Tcj^X%{NYOX<4-FU_LL&P^gArWXe142 zDgh*92vtyl9j^SiG63qi8ma;|u#pL_Xi}#|0F+xpvwk4p|LE%J(0G0G3NZEZ&UMsz z5e7d@P5EockDHLzM5OEF8wnL)Xm~~_HF6g#>ecn0F?oYW&4kBE3vW^ zns(UpY!$kx#Yogsa6GMc8>q)=*R7EdH8PQDqYv>_(bqT#EiffAhjdLD2+-FA=x|D8 z<{KzY;-KysSH;{9ryElu9W<0f%0FvrcQ;NLC>=tS8W#1Il**gqK<&n`6h=@L5s8j2 zv8Z?b`p0?gzQ48K)Vr7m>kKp?I{J`Arnmp-C(HUkZMk**tA}czG#H;mrxA(J17r{E zKL~rl!#K~)^aF@aWk4bVn$+UB-rHAdnSrC*G{EF-66q}!djyCk0ZU_`Y5Wf%N^X9x z9ytW8c^WFY73TCq^~f_v5k%Kk1NHD7*zo8_T-%bzK%^QQ=2W^5-#L=20jj{gdko}C z1n5XT@Qn70v6mvm#9`tJw+5h*mllvgjZBH+(B!0a%(bE{`i>5AYY|sr{5%cERNlfR zCnJ+kXp0`N%E+;g`^XO6T#2w;#IvW2uF0a4jq22nYU^65!$U|o3D1dte*&3&O<#4N z)(p@NM};FFF_{ha)>gZ2W6s1!bkigRB;+N=39Pm$AJHORqQbm}m+0nFjqjcEk#CjT zAVADFh<5kR`^Z;#Bmjm=HA2v;7QV(u1SwLxb)s_{=X~USjCQI|sb4gy$lrL?M+kTt z2hac-8fJXtTQ~v*H@Fdgq3A*Q8Xp009NdpTHA`xXfpb1WKzsjwW5EQ$)~B!W5o#vv zk4x0Bw_fKXq#+>St6jDCIv?RG)PoI}ItHeFgqqp=xyoV2ieqoqN3N5PkcKq)s0eHq zYG!=o8u`cuX;3s;d!%N@M;^0}(EN~>9$h0d>m!TqFoVK0K*z{%U5yW&H9K-gMxjNqr=A(9cFx_ry6?XF(>{V>8vF+VLqrGMP0^t_?IY$7AI&qs(IMvO zP@nb@^M{|@wl+|7*!vdIAqZ!DNYfXv{ z`B@(s0~8%R^0T}LJrf@}%&JJn(P6HX291f2a0CZ%-KA$^qr;4k^n_p_L3CK~Y;>6M z5hUeyL{Xw#ve9AMN3`5}DA`CtOV>F%O#8?bfEn4d(P73%D9L{9uunvoPWwgbB%w$> z*BlnW8gHLT#^0#nhS$qzc~Vq==rC7HR|OU2u1)zWNnUtZ@&Aj1@hUbCXrtf zo_2j|+!y9I$^ys1t_4_>H0BinFTZ%HI0=Q3B4+QlBDif#z;_eCjStv)Gf|)}67cmG zCIc`^-8geS5-llI^wOv);9g(>5=9!(%#XhNjryG#SMlIB+h9dn9Xte})Ndz7W^i>~gICF-?+OQJ*S z4FbMU<0>-0Xa@mA7(T$L{A&wjYj2^EyY4Ih9n6Kej)64HkAdTZeYJ246B4fGsz7(Ec0HeW zjOStfjd&G^7^5*C=8rbWdd-te}?5XRSH1Iyu_w;B;q(Zs^HE#+;i)fJlCUK9J6a0vxa|H_Yn^P zC@+XrgiB>CBjUa9`RGtCt1aaGS>*Hqb(3aDDZ61RVRkXwT zW6&c)`uO8^^*&R12DI{)gJ%1Hfae1p$}%;RHXYFA{4|B>V7Q1C3MduxPp-56 z7J$@rG=`E);AA7r0z1$cWfsaXwQ(UKyj$-5TzAowHVDJQj{*oI?@urLlO=N^HG z9}M0`a@3<8IsmbUTdq<%8idG7RqYVt6VJ!_z2G}kynGxE38*g_jaj?4z}cy)y(M6r zdmlN}Wlptfja%jnz&x_z9&X%qNW)bCjd!qe+fuu=4GQ|og>8QXFz*PvG*mUX;Qkg$ zLX$rFSj87ZE_N@H^J2L0D5dPr#h|$k06F&IL)hk$2FetvBk2}eB=Q#SvNfDF-uvlXc`Qh^&%1&mjJx$PJKg&X=S;Ymfre`AfrgDP*j<+<{|{j6J7 z_tfVT0qx@BvLRYV%13ibZOd3@5qFRQWn9+Lid;p->T_ASCl4~9%s`gC#wye!x7SBP?5e-;>QB8C(UG|29v^f$}hcL89+eK7(G0M_vx zKo#Bc0syswZe*bAGtgb!r04ESSs~z-gfUT9?mRQUrxpNsmrNi)5|HD~DLR)Jd_vEU zfE@ZH+6F^_&kcf_sIrZfJOSUk@}~v4P?b^P-OaA36e8NlKf7R(%RA|gSgj^=|9v@^ z&Q)c>{}+D|03UFm4+fjnVYOSS4&-pVJe20?75@iF)c};UUL4L2yunUkuIPx$x{O{K zltVj>Vxe(Si9N~TGab|EbR5y?(~g^knLg1^vG9I(&8m4Guy%TSX@u|7dz(k7Ouuvi+dLHvqbC z`(e^~yg4vFvk{|ym;okdHcBD=<$jm}CTBKSco=)4HDklnnGIFJCt5SDm>kL2heiD` gt6>T_mp$Y4S7}!WJ^%m!07*qoM6N<$g7#4Ok^lez diff --git a/gfx/text_box.png b/gfx/text_box.png deleted file mode 100644 index 3673e74cd8931342355bd12934b8239be9a05c58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmV+?0oeYDP)sBXx`4M+Hf}*l@mW-QvGK9X9czt!P>|Fh3FN`i4uT!FZR6 z@dqEx2gElnh?%Q&Mg;^F9Y|>uHsCc-x76U1UOQc=!YiY}vo256c>vEw=WU z)$mIAj-lxu%@U7^#OqhDuG>mkc@Qlj3d0X!2^o?2O0vomsi38MRh>$qJJ1$Yfb6D# tbq?gQRd5m-6Nhcz5qF(U?=53c6a~)002ovPDHLkV1hE(e69ch diff --git a/gfx/tilesets.asm b/gfx/tilesets.asm new file mode 100644 index 000000000..e6db3c217 --- /dev/null +++ b/gfx/tilesets.asm @@ -0,0 +1,64 @@ +SECTION "Tilesets 1", ROMX + +Overworld_GFX:: INCBIN "gfx/tilesets/overworld.2bpp" + ds 32 +Overworld_Block:: INCBIN "gfx/blocksets/overworld.bst" + +RedsHouse1_GFX:: +RedsHouse2_GFX:: INCBIN "gfx/tilesets/reds_house.2bpp" +RedsHouse1_Block:: +RedsHouse2_Block:: INCBIN "gfx/blocksets/reds_house.bst" + +House_GFX:: INCBIN "gfx/tilesets/house.2bpp" +House_Block:: INCBIN "gfx/blocksets/house.bst" +Mansion_GFX:: INCBIN "gfx/tilesets/mansion.2bpp" +Mansion_Block:: INCBIN "gfx/blocksets/mansion.bst" +ShipPort_GFX:: INCBIN "gfx/tilesets/ship_port.2bpp" +ShipPort_Block:: INCBIN "gfx/blocksets/ship_port.bst" +Interior_GFX:: INCBIN "gfx/tilesets/interior.2bpp" +Interior_Block:: INCBIN "gfx/blocksets/interior.bst" +Plateau_GFX:: INCBIN "gfx/tilesets/plateau.2bpp" +Plateau_Block:: INCBIN "gfx/blocksets/plateau.bst" + + +SECTION "Tilesets 2", ROMX + +Dojo_GFX:: +Gym_GFX:: INCBIN "gfx/tilesets/gym.2bpp" +Dojo_Block:: +Gym_Block:: INCBIN "gfx/blocksets/gym.bst" + +Mart_GFX:: +Pokecenter_GFX:: INCBIN "gfx/tilesets/pokecenter.2bpp" +Mart_Block:: +Pokecenter_Block:: INCBIN "gfx/blocksets/pokecenter.bst" + +ForestGate_GFX:: +Museum_GFX:: +Gate_GFX:: INCBIN "gfx/tilesets/gate.2bpp" +ForestGate_Block:: +Museum_Block:: +Gate_Block:: INCBIN "gfx/blocksets/gate.bst" + +Forest_GFX:: INCBIN "gfx/tilesets/forest.2bpp" +Forest_Block:: INCBIN "gfx/blocksets/forest.bst" +Facility_GFX:: INCBIN "gfx/tilesets/facility.2bpp" +Facility_Block:: INCBIN "gfx/blocksets/facility.bst" + + +SECTION "Tilesets 3", ROMX + +Cemetery_GFX:: INCBIN "gfx/tilesets/cemetery.2bpp" +Cemetery_Block:: INCBIN "gfx/blocksets/cemetery.bst" +Cavern_GFX:: INCBIN "gfx/tilesets/cavern.2bpp" +Cavern_Block:: INCBIN "gfx/blocksets/cavern.bst" +Lobby_GFX:: INCBIN "gfx/tilesets/lobby.2bpp" +Lobby_Block:: INCBIN "gfx/blocksets/lobby.bst" +Ship_GFX:: INCBIN "gfx/tilesets/ship.2bpp" +Ship_Block:: INCBIN "gfx/blocksets/ship.bst" +Lab_GFX:: INCBIN "gfx/tilesets/lab.2bpp" +Lab_Block:: INCBIN "gfx/blocksets/lab.bst" +Club_GFX:: INCBIN "gfx/tilesets/club.2bpp" +Club_Block:: INCBIN "gfx/blocksets/club.bst" +Underground_GFX:: INCBIN "gfx/tilesets/underground.2bpp" +Underground_Block:: INCBIN "gfx/blocksets/underground.bst" diff --git a/gfx/tilesets/beachhouse.tilecoll b/gfx/tilesets/beachhouse.tilecoll deleted file mode 100644 index 54ddac194..000000000 --- a/gfx/tilesets/beachhouse.tilecoll +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/gfx/tilesets/cavern.tilecoll b/gfx/tilesets/cavern.tilecoll deleted file mode 100644 index dab3e10f8..000000000 --- a/gfx/tilesets/cavern.tilecoll +++ /dev/null @@ -1 +0,0 @@ - !"*-0 \ No newline at end of file diff --git a/gfx/tilesets/cemetery.tilecoll b/gfx/tilesets/cemetery.tilecoll deleted file mode 100644 index f4bee2ee8..000000000 --- a/gfx/tilesets/cemetery.tilecoll +++ /dev/null @@ -1 +0,0 @@ -"BR \ No newline at end of file diff --git a/gfx/tilesets/club.tilecoll b/gfx/tilesets/club.tilecoll deleted file mode 100644 index 9bd5f3bab..000000000 --- a/gfx/tilesets/club.tilecoll +++ /dev/null @@ -1 +0,0 @@ -&(),-./A \ No newline at end of file diff --git a/gfx/tilesets/facility.tilecoll b/gfx/tilesets/facility.tilecoll deleted file mode 100644 index d55b119bc..000000000 --- a/gfx/tilesets/facility.tilecoll +++ /dev/null @@ -1 +0,0 @@ - !"012BCHRUX^ \ No newline at end of file diff --git a/gfx/tilesets/forest.tilecoll b/gfx/tilesets/forest.tilecoll deleted file mode 100644 index 45bf737eb..000000000 --- a/gfx/tilesets/forest.tilecoll +++ /dev/null @@ -1 +0,0 @@ - .0479:@QRZ\^_ \ No newline at end of file diff --git a/gfx/tilesets/gate.tilecoll b/gfx/tilesets/gate.tilecoll deleted file mode 100644 index dd06b0448..000000000 --- a/gfx/tilesets/gate.tilecoll +++ /dev/null @@ -1 +0,0 @@ -78;<^ \ No newline at end of file diff --git a/gfx/tilesets/gym.tilecoll b/gfx/tilesets/gym.tilecoll deleted file mode 100644 index 916e25795..000000000 --- a/gfx/tilesets/gym.tilecoll +++ /dev/null @@ -1 +0,0 @@ -+<=?JLM \ No newline at end of file diff --git a/gfx/tilesets/house.tilecoll b/gfx/tilesets/house.tilecoll deleted file mode 100644 index 95497e702..000000000 --- a/gfx/tilesets/house.tilecoll +++ /dev/null @@ -1 +0,0 @@ -(27DT\ \ No newline at end of file diff --git a/gfx/tilesets/interior.tilecoll b/gfx/tilesets/interior.tilecoll deleted file mode 100644 index b5d32687d..000000000 --- a/gfx/tilesets/interior.tilecoll +++ /dev/null @@ -1 +0,0 @@ -;EGUV \ No newline at end of file diff --git a/gfx/tilesets/lab.tilecoll b/gfx/tilesets/lab.tilecoll deleted file mode 100644 index c171ba990..000000000 --- a/gfx/tilesets/lab.tilecoll +++ /dev/null @@ -1 +0,0 @@ - &47 \ No newline at end of file diff --git a/gfx/tilesets/lobby.tilecoll b/gfx/tilesets/lobby.tilecoll deleted file mode 100644 index 6388083c3..000000000 --- a/gfx/tilesets/lobby.tilecoll +++ /dev/null @@ -1 +0,0 @@ - 8E \ No newline at end of file diff --git a/gfx/tilesets/mansion.tilecoll b/gfx/tilesets/mansion.tilecoll deleted file mode 100644 index e07ea10ab..000000000 --- a/gfx/tilesets/mansion.tilecoll +++ /dev/null @@ -1 +0,0 @@ -,S \ No newline at end of file diff --git a/gfx/tilesets/overworld.tilecoll b/gfx/tilesets/overworld.tilecoll deleted file mode 100644 index dae824f1f08875e62a184cfcf67372225f5acf2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20 bcmZP&kXBGs*3s27Ff_Kbu?q@`i2e@%AdCdI diff --git a/gfx/tilesets/plateau.tilecoll b/gfx/tilesets/plateau.tilecoll deleted file mode 100644 index 5958688e8..000000000 --- a/gfx/tilesets/plateau.tilecoll +++ /dev/null @@ -1 +0,0 @@ -#,-;E \ No newline at end of file diff --git a/gfx/tilesets/pokecenter.tilecoll b/gfx/tilesets/pokecenter.tilecoll deleted file mode 100644 index 928af693f..000000000 --- a/gfx/tilesets/pokecenter.tilecoll +++ /dev/null @@ -1 +0,0 @@ -<^ \ No newline at end of file diff --git a/gfx/tilesets/reds_house.tilecoll b/gfx/tilesets/reds_house.tilecoll deleted file mode 100644 index b19db3000..000000000 --- a/gfx/tilesets/reds_house.tilecoll +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/gfx/tilesets/ship.tilecoll b/gfx/tilesets/ship.tilecoll deleted file mode 100644 index d78bcc45e..000000000 --- a/gfx/tilesets/ship.tilecoll +++ /dev/null @@ -1 +0,0 @@ - #479J \ No newline at end of file diff --git a/gfx/tilesets/ship_port.tilecoll b/gfx/tilesets/ship_port.tilecoll deleted file mode 100644 index 2dc99b5ca..000000000 --- a/gfx/tilesets/ship_port.tilecoll +++ /dev/null @@ -1,2 +0,0 @@ - -2; \ No newline at end of file diff --git a/gfx/tilesets/tilesets_rg/flower.png b/gfx/tilesets/tilesets_rg/flower.png new file mode 100644 index 0000000000000000000000000000000000000000..bb54085a179383b5435247e2922f015a13ce4ec9 GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~c1SA;dueEpuq>MdX978H@F={Ye|Ie_)dN()2 z;d2i@G1zVHU&COx>HHdo=F literal 0 HcmV?d00001 diff --git a/gfx/tilesets/tilesets_rg/forest.png b/gfx/tilesets/tilesets_rg/forest.png new file mode 100644 index 0000000000000000000000000000000000000000..bd01b7cf908f0e2d5928b4aa6a74bd3fd96acb59 GIT binary patch literal 1416 zcmV;31$X+1P)m6P}wvFU<}m=T-7P&yi=(O4qJwrr6B z3bV2rMrzC$9pymGAi(t{Bk!XzJ<|KBO9BY3Je|7zoQXyYX51Wy(zwK9nGFG2kCf#* z4}viE5MF;qMHLhH6rd*%LS6Lo&^;9Ez9E$XWb*n{YVH&CV;equ5h*dOeb(1%x7Ea>PBo1o9}IrfGyd;9#2W zKR=E};KUtvQ8p-#6$gbVRdpf|jdIbEru!V!D%;vx<$6+LBw#GTCiDB_0uMNj<2#!k z)%rB-L4yq;nkRxyPT;IV?!d!nSh z6;41X)R3r4_AL4d(6zmvC*go_!)A(L)^^`;RsxyNM&H99nA?=^}$7Sb(7rQP{DmfhY{k=YT@lWl;C$Wm5wNEZ^U(9To6i@L7dJ+HFBw z@H7^8OinZhy%@-wyihn`!zCgBSOD19E(DCq%&E9z_U#st0IQenEZf4H!SzFu-m+$e;%%EentHa0uuyoW!P0?f9Daa06@k`4HAdB8*v-5ygl!Eno73+JUmytSMT{Txp38}O8DmCvx z3Q9q@8Cl!jnk&{Zc^kW$-%ym^I!0)I=0OU|tlJzL+wPbBr9!ctIZEcbRA7$c5(YB- zc%cI+o;Iz_p&YX9kq!%mKR~>y1`x;u48MVpKQWpfvk5{?V)1X)7_cNFRQ1&4#W|q) z4SxpteA9O|u9IO3$dl=9-_Uw&mOpYa6$a3Ukf!?wYm z8ibn9cXKj)a*r)%!TH!MJ%m3_7p$HlRsG;N_K@*u8uGt*>B_@#rx-{_sKqEknHdP* zO(qYevL-XQi@Sc)Gdu2!kq$^F2tuT)`@MxJ Weg1H~cD&sH0000j?5Dy}oz(+~@s1 z@4fF!00`mX++Iln0G;&#D3vKyumhzo0&w+Z8;p;uD&AiJSOe^pRzl`Mc@|Jr9~?N} zUqV4Gr4dx{`c_G5oXqLG0rXRmKX6{nqClba-3|jFq!D1cXaG?qXd55L3_7<%l4Mly zdK<4d0TibVfXZUmu3ecd3YbCZcnthpC{zGNc%{3WmUK?uf%#G4NmmTNE;N7?wIn7E zWU?qQ3`z$fZJu<~Bn*WRII%X9jrN(3|GR~gWtIUIl(rGlgoW!<83ew(o9cD#Y2WXD zY)AsMQQCAaOi$2c$p%OFP(=zfP8Oa{)hQg@|prm>i4DA094Sq=y&_KusggmFJ zR|X6qMWcOnCpT|#D@i9IPB+V7rL;%W>P{knJ-h>W!_LWm!Fn$)U=?{Aeq&WVvyxH- zKDy49#(JMS>GW8$X{S4>dwO8v*2Jyq09zYm$pZ!mRh(a-zucj5Au^SF#2-8N`J0YV z-izO&0{9Lsa(bxOO4H6o!vI~Hb}=A|wrL_suiju8g3IOzG zj4~NuNdPX_x}R|A!fb}>WIa}~HzrB7c2{^=&7PL}dt5}80WRepHA~VNb4bN`DBlEV z6gq<=VpF*4>}Z3cOqK_u-!!Z0#I=Bi2FMW-v}|o0unR%Utsh=OLvCF@R+_xjEoowA&RYn!^4 zNRk@(Q=L!9%;fgV!MKo+tHsV5Wt$ldRTWM^+x)nqKCAnFCCs)wA*LS>RvpLv`ULo^ z|DXCo!CRR2778v&3ge39&<+N`hB&k?xz6kL@*`eyzz1;d*1vqSV)GlYwX0&nx0ie4Mf z8wVk=^jJ%kkd$VK`EAESR&@3IL!s5Nhx=- zs%xt2Dwg?FhQH_dcBk-!Saa!mLufEG*y?Z~0Oi?p9mu)0M`OL4QoV_`2TQ`Puxq0z ywi*DX6+mk-Yj@v^_BpEuJEy4 z)I)|R;m3dXmhOlD-Is^*{O`|T?V`qPq!J`ve5{*fx7$;~hQV5o5Xz38U ppfN#H-f@{sB&#V`qTH;7KnwbJ#XZ$^aXbsM$>?@ABCCDEFGCHIJACKLMNOPPPQR \ No newline at end of file diff --git a/gfx/link_cable.png b/gfx/trade/link_cable.png similarity index 100% rename from gfx/link_cable.png rename to gfx/trade/link_cable.png diff --git a/gfx/trade/link_cable.tilemap b/gfx/trade/link_cable.tilemap new file mode 100644 index 000000000..3f7e248a6 --- /dev/null +++ b/gfx/trade/link_cable.tilemap @@ -0,0 +1 @@ +CUVSSSSSSSSSCWXTTTTTTTTTCYZCCCCCCCCC \ No newline at end of file diff --git a/gfx/trainer_card.asm b/gfx/trainer_card.asm new file mode 100644 index 000000000..7484e4ee9 --- /dev/null +++ b/gfx/trainer_card.asm @@ -0,0 +1,8 @@ +TrainerInfoTextBoxTileGraphics: INCBIN "gfx/trainer_card/trainer_info.2bpp" +TrainerInfoTextBoxTileGraphicsEnd: + +BlankLeaderNames: INCBIN "gfx/trainer_card/blank_leader_names.2bpp" + +CircleTile: INCBIN "gfx/trainer_card/circle_tile.2bpp" + +BadgeNumbersTileGraphics: INCBIN "gfx/trainer_card/badge_numbers.2bpp" diff --git a/gfx/badge_numbers.png b/gfx/trainer_card/badge_numbers.png similarity index 100% rename from gfx/badge_numbers.png rename to gfx/trainer_card/badge_numbers.png diff --git a/gfx/badges.png b/gfx/trainer_card/badges.png similarity index 100% rename from gfx/badges.png rename to gfx/trainer_card/badges.png diff --git a/gfx/blank_leader_names.png b/gfx/trainer_card/blank_leader_names.png similarity index 100% rename from gfx/blank_leader_names.png rename to gfx/trainer_card/blank_leader_names.png diff --git a/gfx/circle_tile.png b/gfx/trainer_card/circle_tile.png similarity index 100% rename from gfx/circle_tile.png rename to gfx/trainer_card/circle_tile.png diff --git a/gfx/trainer_info.png b/gfx/trainer_card/trainer_info.png similarity index 100% rename from gfx/trainer_info.png rename to gfx/trainer_card/trainer_info.png diff --git a/pic/trainer/agatha.png b/gfx/trainers/agatha.png similarity index 100% rename from pic/trainer/agatha.png rename to gfx/trainers/agatha.png diff --git a/pic/trainer/beauty.png b/gfx/trainers/beauty.png similarity index 100% rename from pic/trainer/beauty.png rename to gfx/trainers/beauty.png diff --git a/pic/trainer/biker.png b/gfx/trainers/biker.png similarity index 100% rename from pic/trainer/biker.png rename to gfx/trainers/biker.png diff --git a/pic/trainer/birdkeeper.png b/gfx/trainers/birdkeeper.png similarity index 100% rename from pic/trainer/birdkeeper.png rename to gfx/trainers/birdkeeper.png diff --git a/pic/trainer/blackbelt.png b/gfx/trainers/blackbelt.png similarity index 100% rename from pic/trainer/blackbelt.png rename to gfx/trainers/blackbelt.png diff --git a/pic/trainer/blaine.png b/gfx/trainers/blaine.png similarity index 100% rename from pic/trainer/blaine.png rename to gfx/trainers/blaine.png diff --git a/pic/trainer/brock.png b/gfx/trainers/brock.png similarity index 100% rename from pic/trainer/brock.png rename to gfx/trainers/brock.png diff --git a/pic/trainer/bruno.png b/gfx/trainers/bruno.png similarity index 100% rename from pic/trainer/bruno.png rename to gfx/trainers/bruno.png diff --git a/pic/trainer/bugcatcher.png b/gfx/trainers/bugcatcher.png similarity index 100% rename from pic/trainer/bugcatcher.png rename to gfx/trainers/bugcatcher.png diff --git a/pic/trainer/burglar.png b/gfx/trainers/burglar.png similarity index 100% rename from pic/trainer/burglar.png rename to gfx/trainers/burglar.png diff --git a/pic/trainer/channeler.png b/gfx/trainers/channeler.png similarity index 100% rename from pic/trainer/channeler.png rename to gfx/trainers/channeler.png diff --git a/pic/trainer/cooltrainerf.png b/gfx/trainers/cooltrainerf.png similarity index 100% rename from pic/trainer/cooltrainerf.png rename to gfx/trainers/cooltrainerf.png diff --git a/pic/trainer/cooltrainerm.png b/gfx/trainers/cooltrainerm.png similarity index 100% rename from pic/trainer/cooltrainerm.png rename to gfx/trainers/cooltrainerm.png diff --git a/pic/trainer/cueball.png b/gfx/trainers/cueball.png similarity index 100% rename from pic/trainer/cueball.png rename to gfx/trainers/cueball.png diff --git a/pic/trainer/engineer.png b/gfx/trainers/engineer.png similarity index 100% rename from pic/trainer/engineer.png rename to gfx/trainers/engineer.png diff --git a/pic/trainer/erika.png b/gfx/trainers/erika.png similarity index 100% rename from pic/trainer/erika.png rename to gfx/trainers/erika.png diff --git a/pic/trainer/fisher.png b/gfx/trainers/fisher.png similarity index 100% rename from pic/trainer/fisher.png rename to gfx/trainers/fisher.png diff --git a/pic/trainer/gambler.png b/gfx/trainers/gambler.png similarity index 100% rename from pic/trainer/gambler.png rename to gfx/trainers/gambler.png diff --git a/pic/trainer/gentleman.png b/gfx/trainers/gentleman.png similarity index 100% rename from pic/trainer/gentleman.png rename to gfx/trainers/gentleman.png diff --git a/pic/trainer/giovanni.png b/gfx/trainers/giovanni.png similarity index 100% rename from pic/trainer/giovanni.png rename to gfx/trainers/giovanni.png diff --git a/pic/trainer/hiker.png b/gfx/trainers/hiker.png similarity index 100% rename from pic/trainer/hiker.png rename to gfx/trainers/hiker.png diff --git a/pic/trainer/jr.trainerf.png b/gfx/trainers/jr.trainerf.png similarity index 100% rename from pic/trainer/jr.trainerf.png rename to gfx/trainers/jr.trainerf.png diff --git a/pic/trainer/jr.trainerm.png b/gfx/trainers/jr.trainerm.png similarity index 100% rename from pic/trainer/jr.trainerm.png rename to gfx/trainers/jr.trainerm.png diff --git a/pic/trainer/juggler.png b/gfx/trainers/juggler.png similarity index 100% rename from pic/trainer/juggler.png rename to gfx/trainers/juggler.png diff --git a/pic/trainer/koga.png b/gfx/trainers/koga.png similarity index 100% rename from pic/trainer/koga.png rename to gfx/trainers/koga.png diff --git a/pic/trainer/lance.png b/gfx/trainers/lance.png similarity index 100% rename from pic/trainer/lance.png rename to gfx/trainers/lance.png diff --git a/pic/trainer/lass.png b/gfx/trainers/lass.png similarity index 100% rename from pic/trainer/lass.png rename to gfx/trainers/lass.png diff --git a/pic/trainer/lorelei.png b/gfx/trainers/lorelei.png similarity index 100% rename from pic/trainer/lorelei.png rename to gfx/trainers/lorelei.png diff --git a/pic/trainer/lt.surge.png b/gfx/trainers/lt.surge.png similarity index 100% rename from pic/trainer/lt.surge.png rename to gfx/trainers/lt.surge.png diff --git a/pic/trainer/misty.png b/gfx/trainers/misty.png similarity index 100% rename from pic/trainer/misty.png rename to gfx/trainers/misty.png diff --git a/pic/trainer/pokemaniac.png b/gfx/trainers/pokemaniac.png similarity index 100% rename from pic/trainer/pokemaniac.png rename to gfx/trainers/pokemaniac.png diff --git a/pic/trainer/prof.oak.png b/gfx/trainers/prof.oak.png similarity index 100% rename from pic/trainer/prof.oak.png rename to gfx/trainers/prof.oak.png diff --git a/pic/trainer/psychic.png b/gfx/trainers/psychic.png similarity index 100% rename from pic/trainer/psychic.png rename to gfx/trainers/psychic.png diff --git a/pic/trainer/rival1.png b/gfx/trainers/rival1.png similarity index 100% rename from pic/trainer/rival1.png rename to gfx/trainers/rival1.png diff --git a/pic/trainer/rival2.png b/gfx/trainers/rival2.png similarity index 100% rename from pic/trainer/rival2.png rename to gfx/trainers/rival2.png diff --git a/pic/trainer/rival3.png b/gfx/trainers/rival3.png similarity index 100% rename from pic/trainer/rival3.png rename to gfx/trainers/rival3.png diff --git a/pic/trainer/rocker.png b/gfx/trainers/rocker.png similarity index 100% rename from pic/trainer/rocker.png rename to gfx/trainers/rocker.png diff --git a/pic/trainer/rocket.png b/gfx/trainers/rocket.png similarity index 100% rename from pic/trainer/rocket.png rename to gfx/trainers/rocket.png diff --git a/pic/trainer/sabrina.png b/gfx/trainers/sabrina.png similarity index 100% rename from pic/trainer/sabrina.png rename to gfx/trainers/sabrina.png diff --git a/pic/trainer/sailor.png b/gfx/trainers/sailor.png similarity index 100% rename from pic/trainer/sailor.png rename to gfx/trainers/sailor.png diff --git a/pic/trainer/scientist.png b/gfx/trainers/scientist.png similarity index 100% rename from pic/trainer/scientist.png rename to gfx/trainers/scientist.png diff --git a/pic/trainer/supernerd.png b/gfx/trainers/supernerd.png similarity index 100% rename from pic/trainer/supernerd.png rename to gfx/trainers/supernerd.png diff --git a/pic/trainer/swimmer.png b/gfx/trainers/swimmer.png similarity index 100% rename from pic/trainer/swimmer.png rename to gfx/trainers/swimmer.png diff --git a/pic/trainer/tamer.png b/gfx/trainers/tamer.png similarity index 100% rename from pic/trainer/tamer.png rename to gfx/trainers/tamer.png diff --git a/pic/ytrainer/brock.png b/gfx/trainers/yellow/brock.png similarity index 100% rename from pic/ytrainer/brock.png rename to gfx/trainers/yellow/brock.png diff --git a/pic/ytrainer/erika.png b/gfx/trainers/yellow/erika.png similarity index 100% rename from pic/ytrainer/erika.png rename to gfx/trainers/yellow/erika.png diff --git a/pic/ytrainer/jessiejames.png b/gfx/trainers/yellow/jessiejames.png similarity index 100% rename from pic/ytrainer/jessiejames.png rename to gfx/trainers/yellow/jessiejames.png diff --git a/pic/ytrainer/misty.png b/gfx/trainers/yellow/misty.png similarity index 100% rename from pic/ytrainer/misty.png rename to gfx/trainers/yellow/misty.png diff --git a/pic/ytrainer/rival1.png b/gfx/trainers/yellow/rival1.png similarity index 100% rename from pic/ytrainer/rival1.png rename to gfx/trainers/yellow/rival1.png diff --git a/pic/ytrainer/rival2.png b/gfx/trainers/yellow/rival2.png similarity index 100% rename from pic/ytrainer/rival2.png rename to gfx/trainers/yellow/rival2.png diff --git a/pic/ytrainer/rival3.png b/gfx/trainers/yellow/rival3.png similarity index 100% rename from pic/ytrainer/rival3.png rename to gfx/trainers/yellow/rival3.png diff --git a/pic/trainer/youngster.png b/gfx/trainers/youngster.png similarity index 100% rename from pic/trainer/youngster.png rename to gfx/trainers/youngster.png diff --git a/gfx/version.asm b/gfx/version.asm new file mode 100644 index 000000000..450100290 --- /dev/null +++ b/gfx/version.asm @@ -0,0 +1,3 @@ +Version_GFX: +INCBIN "gfx/title/blue_version.1bpp" ; unused +Version_GFXEnd: diff --git a/home.asm b/home.asm index 9d9b5dd48..17701681c 100644 --- a/home.asm +++ b/home.asm @@ -1,105 +1,23 @@ -; The rst vectors are unused. -SECTION "rst 00", ROM0 - rst $38 -SECTION "rst 08", ROM0 - rst $38 -SECTION "rst 10", ROM0 - rst $38 -SECTION "rst 18", ROM0 - rst $38 -SECTION "rst 20", ROM0 - rst $38 -SECTION "rst 28", ROM0 - rst $38 -SECTION "rst 30", ROM0 - rst $38 -SECTION "rst 38", ROM0 - rst $38 +INCLUDE "constants.asm" -; Hardware interrupts -SECTION "vblank", ROM0 - jp VBlank -SECTION "hblank", ROM0 - jp LCDC -SECTION "timer", ROM0 - jp Timer -SECTION "serial", ROM0 - jp Serial -SECTION "joypad", ROM0 - reti +SECTION "NULL", ROM0 +NULL:: -SECTION "Home", ROM0 - -DisableLCD:: - xor a - ld [rIF], a - ld a, [rIE] - ld b, a - res 0, a - ld [rIE], a - -.wait - ld a, [rLY] - cp LY_VBLANK - jr nz, .wait - - ld a, [rLCDC] - and $ff ^ rLCDC_ENABLE_MASK - ld [rLCDC], a - ld a, b - ld [rIE], a - ret - -EnableLCD:: - ld a, [rLCDC] - set rLCDC_ENABLE, a - ld [rLCDC], a - ret +INCLUDE "home/header.asm" -ClearSprites:: - xor a - ld hl, wOAMBuffer - ld b, 40 * 4 -.loop - ld [hli], a - dec b - jr nz, .loop - ret -HideSprites:: - ld a, 160 - ld hl, wOAMBuffer - ld de, 4 - ld b, 40 -.loop - ld [hl], a - add hl, de - dec b - jr nz, .loop - ret +SECTION "High Home", ROM0 +INCLUDE "home/lcd.asm" +INCLUDE "home/clear_sprites.asm" INCLUDE "home/copy.asm" -SECTION "Entry", ROM0 - - nop - jp Start - - -SECTION "Header", ROM0 - - ; The header is generated by rgbfix. - ; The space here is allocated to prevent code from being overwritten. - - ds $150 - $104 - - -SECTION "Main", ROM0 +SECTION "Home", ROM0 PlayPikachuPCM:: - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af ld a, b call BankswitchCommon @@ -134,7 +52,7 @@ LoadNextSoundClipSample:: and $80 srl a srl a - ld [rNR32], a + ldh [rNR32], a sla d ret @@ -145,4644 +63,213 @@ PlaySoundClipSample:: jr nz, .loop ret -Start:: - cp GBC - jr z, .gbc - xor a - jr .ok -.gbc - ld a, 1 -.ok - ld [hGBC], a - jp Init - -Joypad:: - homecall_jump _Joypad - -ReadJoypad:: - homecall_jump ReadJoypad_ +INCLUDE "home/start.asm" +INCLUDE "home/joypad.asm" INCLUDE "home/overworld.asm" +INCLUDE "home/pokemon.asm" +INCLUDE "home/print_bcd.asm" +INCLUDE "home/pics.asm" -CheckForUserInterruption:: -; Return carry if Up + Select + B, Start or A are pressed in c frames. -; Used only in the intro and title screen. - call DelayFrame - - push bc - call JoypadLowSensitivity - pop bc - - ld a, [hJoyHeld] - cp D_UP + SELECT + B_BUTTON - jr z, .input - - ld a, [hJoy5] - and START | A_BUTTON - jr nz, .input +INCLUDE "home/pikachu.asm" - dec c - jr nz, CheckForUserInterruption +INCLUDE "home/lcdc.asm" - and a +IsTilePassable:: +; sets carry if tile is passable, resets carry otherwise + homecall_sf _IsTilePassable ret -.input - scf - ret +INCLUDE "home/copy2.asm" +INCLUDE "home/text.asm" +INCLUDE "home/vcopy.asm" +INCLUDE "home/init.asm" +INCLUDE "home/vblank.asm" +INCLUDE "home/fade.asm" +INCLUDE "home/play_time.asm" +INCLUDE "home/serial.asm" +INCLUDE "home/timer.asm" +INCLUDE "home/audio.asm" +INCLUDE "home/update_sprites.asm" -; function to load position data for destination warp when switching maps -; INPUT: -; a = ID of destination warp within destination map -LoadDestinationWarpPosition:: - ld b, a - ld a, [H_LOADEDROMBANK] - push af - ld a, [wPredefParentBank] - ld [H_LOADEDROMBANK], a - ld [MBC1RomBank], a - ld a, b - add a - add a - ld c, a - ld b, 0 - add hl, bc - ld bc, 4 - ld de, wCurrentTileBlockMapViewPointer - call CopyData - pop af - ld [H_LOADEDROMBANK], a - ld [MBC1RomBank], a - ret +INCLUDE "data/items/marts.asm" +INCLUDE "home/overworld_text.asm" +INCLUDE "home/uncompress.asm" +INCLUDE "home/reset_player_sprite.asm" +INCLUDE "home/fade_audio.asm" -DrawHPBar:: -; Draw an HP bar d tiles long, and fill it to e pixels. -; If c is nonzero, show at least a sliver regardless. -; The right end of the bar changes with [wHPBarType]. +UnknownText_2812:: + text_far _PokemonText + text_end + +INCLUDE "home/text_script.asm" +INCLUDE "home/start_menu.asm" +INCLUDE "home/count_set_bits.asm" +INCLUDE "home/inventory.asm" +INCLUDE "home/list_menu.asm" +INCLUDE "home/names.asm" +INCLUDE "home/reload_tiles.asm" +INCLUDE "home/item.asm" +INCLUDE "home/textbox.asm" - push hl +UpdateGBCPal_BGP:: + push af + ldh a, [hGBC] + and a + jr z, .notGBC + push bc push de - ;push bc - - ; Left - ld a, $71 ; "HP:" - ld [hli], a - ld a, $62 - ld [hli], a - push hl - - ; Middle - ld a, $63 ; empty -.draw - ld [hli], a - dec d - jr nz, .draw - - ; Right - ld a, [wHPBarType] - dec a - ld a, $6d ; status screen and battle - jr z, .ok - dec a ; pokemon menu -.ok - ld [hl], a - + ldh a, [rBGP] + ld b, a + ld a, [wLastBGP] + cp b + jr z, .noChangeInBGP + farcall _UpdateGBCPal_BGP +.noChangeInBGP pop hl - - ld a, e - and a - jr nz, .fill - - ; If c is nonzero, draw a pixel anyway. - ld a, c - and a - jr z, .done - ld e, 1 - -.fill - ld a, e - sub 8 - jr c, .partial - ld e, a - ld a, $6b ; full - ld [hli], a - ld a, e - and a - jr z, .done - jr .fill - -.partial - ; Fill remaining pixels at the end if necessary. - ld a, $63 ; empty - add e - ld [hl], a -.done - ;pop bc pop de - pop hl - ret - - -; loads pokemon data from one of multiple sources to wLoadedMon -; loads base stats to wMonHeader -; INPUT: -; [wWhichPokemon] = index of pokemon within party/box -; [wMonDataLocation] = source -; 00: player's party -; 01: enemy's party -; 02: current box -; 03: daycare -; OUTPUT: -; [wcf91] = pokemon ID -; wLoadedMon = base address of pokemon data -; wMonHeader = base address of base stats -LoadMonData:: - jpab LoadMonData_ - -OverwritewMoves:: -; Write c to [wMoves + b]. Unused. - ld hl, wMoves - ld e, b - ld d, 0 - add hl, de - ld a, c - ld [hl], a - ret - -LoadFlippedFrontSpriteByMonIndex:: - ld a, 1 - ld [wSpriteFlipped], a - -LoadFrontSpriteByMonIndex:: - push hl - ld a, [wd11e] - push af - ld a, [wcf91] - ld [wd11e], a - predef IndexToPokedex - ld hl, wd11e - ld a, [hl] pop bc - ld [hl], b - and a - pop hl - jr z, .invalidDexNumber ; dex #0 invalid - cp NUM_POKEMON + 1 - jr c, .validDexNumber ; dex >#151 invalid -.invalidDexNumber - ld a, RHYDON ; $1 - ld [wcf91], a - ret -.validDexNumber - push hl - ld de, vFrontPic - call LoadMonFrontSprite - pop hl - ld a, [H_LOADEDROMBANK] - push af - switchbank CopyUncompressedPicToHL - xor a - ld [hStartTileID], a - call CopyUncompressedPicToHL - xor a - ld [wSpriteFlipped], a - pop af - jp BankswitchCommon - -PlayCry:: -; Play monster a's cry. - push bc - ld b, a - ld a, [wLowHealthAlarm] - push af - xor a - ld [wLowHealthAlarm], a - ld a, b - call GetCryData - call PlaySound - call WaitForSoundToFinish +.notGBC pop af - ld [wLowHealthAlarm], a - pop bc - ret - -GetCryData:: -; Load cry data for monster a. - dec a - ld c, a - ld b, 0 - ld hl, CryData - add hl, bc - add hl, bc - add hl, bc - - ld a, BANK(CryData) - call BankswitchHome - ld a, [hli] - ld b, a ; cry id - ld a, [hli] - ld [wFrequencyModifier], a - ld a, [hl] - ld [wTempoModifier], a - call BankswitchBack - - ; Cry headers have 3 channels, - ; and start from index $14, - ; so add 3 times the cry id. - ld a, b - ld c, $14 - rlca ; * 2 - add b - add c ret -DisplayPartyMenu:: - ld a, [hTilesetType] - push af - xor a - ld [hTilesetType], a - call GBPalWhiteOutWithDelay3 - call ClearSprites - call PartyMenuInit - call DrawPartyMenu - jp HandlePartyMenuInput - -GoBackToPartyMenu:: - ld a, [hTilesetType] - push af - xor a - ld [hTilesetType], a - call PartyMenuInit - call RedrawPartyMenu - jp HandlePartyMenuInput - -PartyMenuInit:: - ld a, 1 ; hardcoded bank - call BankswitchHome - call LoadHpBarAndStatusTilePatterns - ld hl, wd730 - set 6, [hl] ; turn off letter printing delay - xor a ; PLAYER_PARTY_DATA - ld [wMonDataLocation], a - ld [wMenuWatchMovingOutOfBounds], a - ld hl, wTopMenuItemY - inc a - ld [hli], a ; top menu item Y - xor a - ld [hli], a ; top menu item X - ld a, [wPartyAndBillsPCSavedMenuItem] +UpdateGBCPal_OBP0:: push af - ld [hli], a ; current menu item ID - inc hl - ld a, [wPartyCount] - and a ; are there more than 0 pokemon in the party? - jr z, .storeMaxMenuItemID - dec a -; if party is not empty, the max menu item ID is ([wPartyCount] - 1) -; otherwise, it is 0 -.storeMaxMenuItemID - ld [hli], a ; max menu item ID - ld a, [wForcePlayerToChooseMon] - and a - ld a, A_BUTTON | B_BUTTON - jr z, .next - xor a - ld [wForcePlayerToChooseMon], a - inc a ; a = A_BUTTON -.next - ld [hli], a ; menu watched keys - pop af - ld [hl], a ; old menu item ID - ret - -HandlePartyMenuInput:: - ld a, 1 - ld [wMenuWrappingEnabled], a - ld a, $40 - ld [wPartyMenuAnimMonEnabled], a - call HandleMenuInputPokemonSelection - push af ; save hJoy5 OR wMenuWrapping enabled, if no inputs were selected within a certain period of time - bit 1, a ; was B button pressed? - ld a, $0 - ld [wPartyMenuAnimMonEnabled], a - ld a, [wCurrentMenuItem] - ld [wPartyAndBillsPCSavedMenuItem], a - jr nz, .asm_1258 - ld a, [wCurrentMenuItem] - ld [wWhichPokemon], a - callab IsThisPartymonStarterPikachu_Party - jr nc, .asm_1258 - call CheckPikachuFollowingPlayer - jr nz, .asm_128f -.asm_1258 - pop af - call PlaceUnfilledArrowMenuCursor - ld b, a - ld hl, wd730 - res 6, [hl] ; turn on letter printing delay - ld a, [wMenuItemToSwap] + ldh a, [hGBC] and a - jp nz, .swappingPokemon - pop af - ld [hTilesetType], a - bit 1, b - jr nz, .noPokemonChosen - ld a, [wPartyCount] - and a - jr z, .noPokemonChosen - ld a, [wCurrentMenuItem] - ld [wWhichPokemon], a - ld hl, wPartySpecies - ld b, 0 - ld c, a - add hl, bc - ld a, [hl] - ld [wcf91], a - ld [wBattleMonSpecies2], a - call BankswitchBack - and a - ret -.asm_128f - pop af - ld hl, PartyMenuText_12cc - call PrintText - xor a - ld [wMenuItemToSwap], a - pop af - ld [hTilesetType], a -.noPokemonChosen - call BankswitchBack - scf - ret -.swappingPokemon - bit 1, b ; was the B button pressed? - jr z, .handleSwap ; if not, handle swapping the pokemon -.cancelSwap ; if the B button was pressed - callba ErasePartyMenuCursors - xor a - ld [wMenuItemToSwap], a - ld [wPartyMenuTypeOrMessageID], a - call RedrawPartyMenu - jp HandlePartyMenuInput -.handleSwap - ld a, [wCurrentMenuItem] - ld [wWhichPokemon], a - callba SwitchPartyMon - jp HandlePartyMenuInput - -PartyMenuText_12cc:: - TX_FAR _SleepingPikachuText1 - db "@" - -DrawPartyMenu:: - ld hl, DrawPartyMenu_ - jr DrawPartyMenuCommon - -RedrawPartyMenu:: - ld hl, RedrawPartyMenu_ - -DrawPartyMenuCommon:: - ld b, BANK(RedrawPartyMenu_) - jp Bankswitch - -; prints a pokemon's status condition -; INPUT: -; de = address of status condition -; hl = destination address -PrintStatusCondition:: + jr z, .notGBC + push bc push de - dec de - dec de ; de = address of current HP - ld a, [de] + push hl + ldh a, [rOBP0] ld b, a - dec de - ld a, [de] - or b ; is the pokemon's HP zero? + ld a, [wLastOBP0] + cp b + jr z, .noChangeInOBP0 + ld b, BANK(_UpdateGBCPal_OBP) + ld hl, _UpdateGBCPal_OBP + ld c, CONVERT_OBP0 + call Bankswitch +.noChangeInOBP0 + pop hl pop de - jr nz, PrintStatusConditionNotFainted -; if the pokemon's HP is 0, print "FNT" - ld a, "F" - ld [hli], a - ld a, "N" - ld [hli], a - ld [hl], "T" - and a - ret - -PrintStatusConditionNotFainted: - homecall_jump_sf PrintStatusAilment - -; function to print pokemon level, leaving off the ":L" if the level is at least 100 -; INPUT: -; hl = destination address -; [wLoadedMonLevel] = level -PrintLevel:: - ld a, $6e ; ":L" tile ID - ld [hli], a - ld c, 2 ; number of digits - ld a, [wLoadedMonLevel] ; level - cp 100 - jr c, PrintLevelCommon -; if level at least 100, write over the ":L" tile - dec hl - inc c ; increment number of digits to 3 - jr PrintLevelCommon - -; prints the level without leaving off ":L" regardless of level -; INPUT: -; hl = destination address -; [wLoadedMonLevel] = level -PrintLevelFull:: - ld a, $6e ; ":L" tile ID - ld [hli], a - ld c, 3 ; number of digits - ld a, [wLoadedMonLevel] ; level - -PrintLevelCommon:: - ld [wd11e], a - ld de, wd11e - ld b, LEFT_ALIGN | 1 ; 1 byte - jp PrintNumber - -GetwMoves:: -; Unused. Returns the move at index a from wMoves in a - ld hl, wMoves - ld c, a - ld b, 0 - add hl, bc - ld a, [hl] + pop bc +.notGBC + pop af ret -; copies the base stat data of a pokemon to wMonHeader -; INPUT: -; [wd0b5] = pokemon ID -GetMonHeader:: - ld a, [H_LOADEDROMBANK] +UpdateGBCPal_OBP1:: push af - switchbank BaseStats + ldh a, [hGBC] + and a + jr z, .notGBC push bc push de push hl - ld a, [wd11e] - push af - ld a, [wd0b5] - ld [wd11e], a - ld de, FossilKabutopsPic - ld b, $66 ; size of Kabutops fossil and Ghost sprites - cp FOSSIL_KABUTOPS ; Kabutops fossil - jr z, .specialID - ld de, GhostPic - cp MON_GHOST ; Ghost - jr z, .specialID - ld de, FossilAerodactylPic - ld b, $77 ; size of Aerodactyl fossil sprite - cp FOSSIL_AERODACTYL ; Aerodactyl fossil - jr z, .specialID - ;cp MEW - ;jr z, .mew - predef IndexToPokedex ; convert pokemon ID in [wd11e] to pokedex number - ld a, [wd11e] - dec a - ld bc, MonBaseStatsEnd - MonBaseStats - ld hl, BaseStats - call AddNTimes - ld de, wMonHeader - ld bc, MonBaseStatsEnd - MonBaseStats - call CopyData - jr .done -.specialID - ld hl, wMonHSpriteDim - ld [hl], b ; write sprite dimensions - inc hl - ld [hl], e ; write front sprite pointer - inc hl - ld [hl], d -.done - ld a, [wd0b5] - ld [wMonHIndex], a - pop af - ld [wd11e], a + ldh a, [rOBP1] + ld b, a + ld a, [wLastOBP1] + cp b + jr z, .noChangeInOBP1 + ld b, BANK(_UpdateGBCPal_OBP) + ld hl, _UpdateGBCPal_OBP + ld c, CONVERT_OBP1 + call Bankswitch +.noChangeInOBP1 pop hl pop de pop bc +.notGBC + pop af + ret + +Func_3082:: + ldh a, [hLoadedROMBank] + push af + call FadeOutAudio + callbs Music_DoLowHealthAlarm + callbs Audio1_UpdateMusic pop af call BankswitchCommon ret -; copy party pokemon's name to wcd6d -GetPartyMonName2:: - ld a, [wWhichPokemon] ; index within party - ld hl, wPartyMonNicks +INCLUDE "home/npc_movement.asm" +INCLUDE "home/trainers.asm" +INCLUDE "home/map_objects.asm" +INCLUDE "home/trainers2.asm" +INCLUDE "home/money.asm" +INCLUDE "home/bankswitch.asm" +INCLUDE "home/yes_no.asm" +INCLUDE "home/pathfinding.asm" +INCLUDE "home/load_font.asm" +INCLUDE "home/tilemap.asm" +INCLUDE "home/delay.asm" +INCLUDE "home/names2.asm" +INCLUDE "home/item_price.asm" +INCLUDE "home/copy_string.asm" +INCLUDE "home/joypad2.asm" +INCLUDE "home/math.asm" +INCLUDE "home/print_text.asm" +INCLUDE "home/move_mon.asm" +INCLUDE "home/array.asm" +INCLUDE "home/compare.asm" +INCLUDE "home/oam.asm" +INCLUDE "home/window.asm" -; this is called more often -GetPartyMonName:: - push hl - push bc - call SkipFixedLengthTextEntries ; add NAME_LENGTH to hl, a times - ld de, wcd6d - push de - ld bc, NAME_LENGTH - call CopyData - pop de - pop bc - pop hl +FarPrintText:: +; print text b:hl at (1, 14) + ldh a, [hLoadedROMBank] + push af + ld a, b + call BankswitchCommon + call PrintText + pop af + call BankswitchCommon ret -; function to print a BCD (Binary-coded decimal) number -; de = address of BCD number -; hl = destination address -; c = flags and length -; bit 7: if set, do not print leading zeroes -; if unset, print leading zeroes -; bit 6: if set, left-align the string (do not pad empty digits with spaces) -; if unset, right-align the string -; bit 5: if set, print currency symbol at the beginning of the string -; if unset, do not print the currency symbol -; bits 0-4: length of BCD number in bytes -; Note that bits 5 and 7 are modified during execution. The above reflects -; their meaning at the beginning of the functions's execution. -PrintBCDNumber:: - ld b, c ; save flags in b - res 7, c - res 6, c - res 5, c ; c now holds the length - bit 5, b - jr z, .loop - bit 7, b - jr nz, .loop - ld [hl], "¥" - inc hl -.loop - ld a, [de] - swap a - call PrintBCDDigit ; print upper digit - ld a, [de] - call PrintBCDDigit ; print lower digit - inc de - dec c - jr nz, .loop - bit 7, b ; were any non-zero digits printed? - jr z, .done ; if so, we are done -.numberEqualsZero ; if every digit of the BCD number is zero - bit 6, b ; left or right alignment? - jr nz, .skipRightAlignmentAdjustment - dec hl ; if the string is right-aligned, it needs to be moved back one space -.skipRightAlignmentAdjustment - bit 5, b - jr z, .skipCurrencySymbol - ld [hl], "¥" - inc hl -.skipCurrencySymbol - ld [hl], "0" - call PrintLetterDelay - inc hl -.done - ret +INCLUDE "home/print_num.asm" +INCLUDE "home/array2.asm" -PrintBCDDigit:: - and $f - and a - jr z, .zeroDigit -.nonzeroDigit - bit 7, b ; have any non-space characters been printed? - jr z, .outputDigit -; if bit 7 is set, then no numbers have been printed yet - bit 5, b ; print the currency symbol? - jr z, .skipCurrencySymbol - ld [hl], "¥" - inc hl - res 5, b -.skipCurrencySymbol - res 7, b ; unset 7 to indicate that a nonzero digit has been reached -.outputDigit - add "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 - bit 6, b ; left or right alignment? - ret nz - inc hl ; if right-aligned, "print" a space by advancing the pointer +InitMapSprites:: + jpfar _InitMapSprites + +INCLUDE "home/palettes.asm" +INCLUDE "home/reload_sprites.asm" +INCLUDE "home/give.asm" +INCLUDE "home/random.asm" + +BankswitchCommon:: + ldh [hLoadedROMBank], a + ld [MBC1RomBank], a ret -; uncompresses the front or back sprite of the specified mon -; assumes the corresponding mon header is already loaded -; hl contains offset to sprite pointer ($b for front or $d for back) -UncompressMonSprite:: - ld bc, wMonHeader - add hl, bc - ld a, [hli] - ld [wSpriteInputPtr], a ; fetch sprite input pointer - ld a, [hl] - ld [wSpriteInputPtr + 1], a -; define (by index number) the bank that a pokemon's image is in -; index = Mew, bank 1 -; index = Kabutops fossil, bank $B -; index < $1F, bank 9 -; $1F ≤ index < $4A, bank $A -; $4A ≤ index < $74, bank $B -; $74 ≤ index < $99, bank $C -; $99 ≤ index, bank $D - ld a, [wcf91] ; XXX name for this ram location - ld b, a - ;cp MEW - ;ld a, BANK(MewPicFront) - ;jr z, .GotBank - ;ld a, b - cp FOSSIL_KABUTOPS - ld a, BANK(FossilKabutopsPic) - jr z, .GotBank - ld a, b - cp TANGELA + 1 - ld a, BANK(TangelaPicFront) - jr c, .GotBank - ld a, b - cp MOLTRES + 1 - ld a, BANK(MoltresPicFront) - jr c, .GotBank +Bankswitch:: +; self-contained bankswitch, use this when not in the home bank +; switches to the bank in b + ldh a, [hLoadedROMBank] + push af ld a, b - cp BEEDRILL + 2 - ld a, BANK(BeedrillPicFront) - jr c, .GotBank + ldh [hLoadedROMBank], a + ld [MBC1RomBank], a + call JumpToAddress + pop bc ld a, b - cp STARMIE + 1 - ld a, BANK(StarmiePicFront) - jr c, .GotBank - ld a, BANK(VictreebelPicFront) -.GotBank - jp UncompressSpriteData - -; de: destination location -LoadMonFrontSprite:: - push de - ld hl, wMonHFrontSprite - wMonHeader - call UncompressMonSprite - ld hl, wMonHSpriteDim - ld a, [hli] - ld c, a - pop de - ; fall through - -; postprocesses uncompressed sprite chunks to a 2bpp sprite and loads it into video ram -; calculates alignment parameters to place both sprite chunks in the center of the 7*7 tile sprite buffers -; de: destination location -; a, c: sprite dimensions (in tiles of 8x8 each) -LoadUncompressedSpriteData:: - push de - and $f - ld [H_SPRITEWIDTH], a ; each byte contains 8 pixels (in 1bpp), so tiles=bytes for width - ld b, a - ld a, $7 - sub b ; 7-w - inc a ; 8-w - srl a ; (8-w)/2 ; horizontal center (in tiles, rounded up) - ld b, a - add a - add a - add a - sub b ; 7*((8-w)/2) ; skip for horizontal center (in tiles) - ld [H_SPRITEOFFSET], a - ld a, c - swap a - and $f - ld b, a - add a - add a - add a ; 8*tiles is height in bytes - ld [H_SPRITEHEIGHT], a - ld a, $7 - sub b ; 7-h ; skip for vertical center (in tiles, relative to current column) - ld b, a - ld a, [H_SPRITEOFFSET] - add b ; 7*((8-w)/2) + 7-h ; combined overall offset (in tiles) - add a - add a - add a ; 8*(7*((8-w)/2) + 7-h) ; combined overall offset (in bytes) - ld [H_SPRITEOFFSET], a - ld a, $0 - call SwitchSRAMBankAndLatchClockData - ld hl, sSpriteBuffer0 - call ZeroSpriteBuffer ; zero buffer 0 - ld de, sSpriteBuffer1 - ld hl, sSpriteBuffer0 - call AlignSpriteDataCentered ; copy and align buffer 1 to 0 (containing the MSB of the 2bpp sprite) - ld hl, sSpriteBuffer1 - call ZeroSpriteBuffer ; zero buffer 1 - ld de, sSpriteBuffer2 - ld hl, sSpriteBuffer1 - call AlignSpriteDataCentered ; copy and align buffer 2 to 1 (containing the LSB of the 2bpp sprite) - call PrepareRTCDataAndDisableSRAM - pop de - jp InterlaceMergeSpriteBuffers + ldh [hLoadedROMBank], a + ld [MBC1RomBank], a + ret +JumpToAddress:: + jp hl -; copies and aligns the sprite data properly inside the sprite buffer -; sprite buffers are 7*7 tiles in size, the loaded sprite is centered within this area -AlignSpriteDataCentered:: - ld a, [H_SPRITEOFFSET] - ld b, $0 - ld c, a - add hl, bc - ld a, [H_SPRITEWIDTH] -.columnLoop +SwitchSRAMBankAndLatchClockData:: push af - push hl - ld a, [H_SPRITEHEIGHT] - ld c, a -.columnInnerLoop - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .columnInnerLoop - pop hl - ld bc, 7*8 ; 7 tiles - add hl, bc ; advance one full column + ld a, $1 + ld [MBC1SRamBankingMode], a + ld a, SRAM_ENABLE + ld [MBC1SRamEnable], a pop af - dec a - jr nz, .columnLoop - ret - -; fills the sprite buffer (pointed to in hl) with zeros -ZeroSpriteBuffer:: - ld bc, SPRITEBUFFERSIZE -.nextByteLoop - xor a - ld [hli], a - dec bc - ld a, b - or c - jr nz, .nextByteLoop - ret - -; combines the (7*7 tiles, 1bpp) sprite chunks in buffer 0 and 1 into a 2bpp sprite located in buffer 1 through 2 -; in the resulting sprite, the rows of the two source sprites are interlaced -; de: output address -InterlaceMergeSpriteBuffers:: - ld a, $0 - call SwitchSRAMBankAndLatchClockData - push de - ld hl, sSpriteBuffer2 + (SPRITEBUFFERSIZE - 1) ; destination: end of buffer 2 - ld de, sSpriteBuffer1 + (SPRITEBUFFERSIZE - 1) ; source 2: end of buffer 1 - ld bc, sSpriteBuffer0 + (SPRITEBUFFERSIZE - 1) ; source 1: end of buffer 0 - ld a, SPRITEBUFFERSIZE/2 ; $c4 - ld [H_SPRITEINTERLACECOUNTER], a -.interlaceLoop - ld a, [de] - dec de - ld [hld], a ; write byte of source 2 - ld a, [bc] - dec bc - ld [hld], a ; write byte of source 1 - ld a, [de] - dec de - ld [hld], a ; write byte of source 2 - ld a, [bc] - dec bc - ld [hld], a ; write byte of source 1 - ld a, [H_SPRITEINTERLACECOUNTER] - dec a - ld [H_SPRITEINTERLACECOUNTER], a - jr nz, .interlaceLoop - ld a, [wSpriteFlipped] - and a - jr z, .notFlipped - ld bc, 2*SPRITEBUFFERSIZE - ld hl, sSpriteBuffer1 -.swapLoop - swap [hl] ; if flipped swap nybbles in all bytes - inc hl - dec bc - ld a, b - or c - jr nz, .swapLoop -.notFlipped - pop hl - ld de, sSpriteBuffer1 - ld c, (2*SPRITEBUFFERSIZE)/16 ; $31, number of 16 byte chunks to be copied - ld a, [H_LOADEDROMBANK] - ld b, a - call CopyVideoData - jp PrepareRTCDataAndDisableSRAM - -INCLUDE "home/pikachu.asm" -;INCLUDE "data/collision.asm" - -INCLUDE "home/lcdc.asm" - -IsTilePassable:: -; sets carry if tile is passable, resets carry otherwise - homecall_sf _IsTilePassable - ret - -INCLUDE "home/copy2.asm" -INCLUDE "home/text.asm" -INCLUDE "home/vcopy.asm" -INCLUDE "home/init.asm" -INCLUDE "home/vblank.asm" -INCLUDE "home/fade.asm" -INCLUDE "home/play_time.asm" -INCLUDE "home/serial.asm" -INCLUDE "home/timer.asm" -INCLUDE "home/audio.asm" - - -UpdateSprites:: - ld a, [wUpdateSpritesEnabled] - dec a - ret nz - ld a, [H_LOADEDROMBANK] - push af - switchbank _UpdateSprites - ld a, $ff - ld [wUpdateSpritesEnabled], a - call _UpdateSprites - ld a, $1 - ld [wUpdateSpritesEnabled], a - pop af - call BankswitchCommon - ret - -INCLUDE "data/mart_inventories.asm" - -TextScriptEndingChar:: - db "@" -TextScriptEnd:: - ld hl, TextScriptEndingChar - ret - -ExclamationText:: - TX_FAR _ExclamationText - db "@" - -GroundRoseText:: - TX_FAR _GroundRoseText - db "@" - -BoulderText:: - TX_FAR _BoulderText - db "@" - -MartSignText:: - TX_FAR _MartSignText - db "@" - -PokeCenterSignText:: - TX_FAR _PokeCenterSignText - db "@" - -PickUpItemText:: - TX_ASM - predef PickUpItem - jp TextScriptEnd - - -INCLUDE "home/pic.asm" - - -ResetPlayerSpriteData:: - ld hl, wSpriteStateData1 - call ResetPlayerSpriteData_ClearSpriteData - ld hl, wSpriteStateData2 - call ResetPlayerSpriteData_ClearSpriteData - ld a, $1 - ld [wSpriteStateData1], a - ld [wSpriteStateData2 + $0e], a - ld hl, wSpriteStateData1 + 4 - ld [hl], $3c ; set Y screen pos - inc hl - inc hl - ld [hl], $40 ; set X screen pos - ret - -; overwrites sprite data with zeroes -ResetPlayerSpriteData_ClearSpriteData:: - ld bc, $10 - xor a - call FillMemory - ret - -FadeOutAudio:: - ld a, [wAudioFadeOutControl] - and a ; currently fading out audio? - jr nz, .fadingOut - ld a, [wd72c] - bit 1, a - ret nz - ld a, $77 - ld [rNR50], a - ret -.fadingOut - ld a, [wAudioFadeOutCounter] - and a - jr z, .counterReachedZero - dec a - ld [wAudioFadeOutCounter], a - ret -.counterReachedZero - ld a, [wAudioFadeOutCounterReloadValue] - ld [wAudioFadeOutCounter], a - ld a, [rNR50] - and a ; has the volume reached 0? - jr z, .fadeOutComplete - ld b, a - and $f - dec a - ld c, a - ld a, b - and $f0 - swap a - dec a - swap a - or c - ld [rNR50], a - ret -.fadeOutComplete - ld a, [wAudioFadeOutControl] - ld b, a - xor a - ld [wAudioFadeOutControl], a - call StopAllMusic - ld a, [wAudioSavedROMBank] - ld [wAudioROMBank], a - ld a, b - ld [wNewSoundID], a - jp PlaySound - -UnknownText_2812:: - TX_FAR _PokemonText - db "@" - -; this function is used to display sign messages, sprite dialog, etc. -; INPUT: [hSpriteIndexOrTextID] = sprite ID or text ID -DisplayTextID:: - ld a, [H_LOADEDROMBANK] - push af - callba DisplayTextIDInit ; initialization - ld hl, wTextPredefFlag - bit 0, [hl] - res 0, [hl] - jr nz, .skipSwitchToMapBank - ld a, [wCurMap] - call SwitchToMapRomBank -.skipSwitchToMapBank - ld a, 30 ; half a second - ld [H_FRAMECOUNTER], a ; used as joypad poll timer - ld hl, wMapTextPtr - ld a, [hli] - ld h, [hl] - ld l, a ; hl = map text pointer - ld d, $00 - ld a, [hSpriteIndexOrTextID] ; text ID - ld [wSpriteIndex], a - and a - jp z, DisplayStartMenu - cp TEXT_PIKACHU_ANIM - jp z, DisplayPikachuEmotion - cp TEXT_SAFARI_GAME_OVER - jp z, DisplaySafariGameOverText - cp TEXT_MON_FAINTED - jp z, DisplayPokemonFaintedText - cp TEXT_BLACKED_OUT - jp z, DisplayPlayerBlackedOutText - cp TEXT_REPEL_WORE_OFF - jp z, DisplayRepelWoreOffText - ld a, [wNumSprites] - ld e, a - ld a, [hSpriteIndexOrTextID] ; sprite ID - cp e - jr z, .spriteHandling - jr nc, .skipSpriteHandling -.spriteHandling -; get the text ID of the sprite - push hl - ;push de - ;push bc - ;callba UpdateSpriteFacingOffsetAndDelayMovement ; update the graphics of the sprite the player is talking to (to face the right direction) - ;pop bc - ;pop de - ld hl, wMapSpriteData ; NPC text entries - ld a, [hSpriteIndexOrTextID] - dec a - add a - ld e, a - ld d, $0 - add hl, de - inc hl - ld a, [hl] ; a = text ID of the sprite - pop hl -.skipSpriteHandling -; look up the address of the text in the map's text entries - dec a - ld e, a - ld d, $0 - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a ; hl = address of the text - ld a, [hl] ; a = first byte of text -; check first byte of text for special cases - cp $fe ; Pokemart NPC - jp z, DisplayPokemartDialogue - cp $ff ; Pokemon Center NPC - jp z, DisplayPokemonCenterDialogue - cp $fc ; Item Storage PC - jp z, FuncTX_ItemStoragePC - cp $fd ; Bill's PC - jp z, FuncTX_BillsPC - cp $f9 ; Pokemon Center PC - jp z, FuncTX_PokemonCenterPC - cp $f5 ; Vending Machine - jr nz, .notVendingMachine - callba VendingMachineMenu ; jump banks to vending machine routine - jr AfterDisplayingTextID -.notVendingMachine - cp $f7 ; prize menu - jp z, FuncTX_GameCornerPrizeMenu - cp $f6 ; cable connection NPC in Pokemon Center - jr nz, .notSpecialCase - callab CableClubNPC - jr AfterDisplayingTextID -.notSpecialCase - call PrintText_NoCreatingTextBox ; display the text - ld a, [wDoNotWaitForButtonPressAfterDisplayingText] - and a - jr nz, HoldTextDisplayOpen - -AfterDisplayingTextID:: - ld a, [wEnteringCableClub] - and a - jr nz, HoldTextDisplayOpen - call WaitForTextScrollButtonPress ; wait for a button press after displaying all the text - -; loop to hold the dialogue box open as long as the player keeps holding down the A button -HoldTextDisplayOpen:: - call Joypad - ld a, [hJoyHeld] - bit 0, a ; is the A button being pressed? - jr nz, HoldTextDisplayOpen - -CloseTextDisplay:: - ld a, [wCurMap] - call SwitchToMapRomBank - ld a, $90 - ld [hWY], a ; move the window off the screen - call DelayFrame - call LoadGBPal - xor a - ld [H_AUTOBGTRANSFERENABLED], a ; disable continuous WRAM to VRAM transfer each V-blank -; loop to make sprites face the directions they originally faced before the dialogue - ld hl, wSpriteStateData2 + $19 - ld c, $0f - ld de, $0010 -.restoreSpriteFacingDirectionLoop - ld a, [hl] - dec h - ld [hl], a - inc h - add hl, de - dec c - jr nz, .restoreSpriteFacingDirectionLoop - call InitMapSprites ; reload sprite tile pattern data (since it was partially overwritten by text tile patterns) - ld hl, wFontLoaded - res 0, [hl] - ld a, [wd732] - bit 3, a ; used fly warp - call z, LoadPlayerSpriteGraphics - call LoadCurrentMapView - pop af - call BankswitchCommon - jp UpdateSprites - -DisplayPokemartDialogue:: - push hl - ld hl, PokemartGreetingText - call PrintText - pop hl - inc hl - call LoadItemList - ld a, PRICEDITEMLISTMENU - ld [wListMenuID], a - homecall DisplayPokemartDialogue_ - jp AfterDisplayingTextID - -PokemartGreetingText:: - TX_FAR _PokemartGreetingText - db "@" - -LoadItemList:: - ld a, 1 - ld [wUpdateSpritesEnabled], a - ld a, h - ld [wItemListPointer], a - ld a, l - ld [wItemListPointer + 1], a - ld de, wItemList -.loop - ld a, [hli] - ld [de], a - inc de - cp $ff - jr nz, .loop - ret - -DisplayPokemonCenterDialogue:: -; zeroing these doesn't appear to serve any purpose - xor a - ld [$ff8b], a - ld [$ff8c], a - ld [$ff8d], a - - inc hl - homecall DisplayPokemonCenterDialogue_ - jp AfterDisplayingTextID - -DisplaySafariGameOverText:: - callab PrintSafariGameOverText - jp AfterDisplayingTextID - -DisplayPokemonFaintedText:: - ld hl, PokemonFaintedText - call PrintText - jp AfterDisplayingTextID - -PokemonFaintedText:: - TX_FAR _PokemonFaintedText - db "@" - -DisplayPlayerBlackedOutText:: - ld hl, PlayerBlackedOutText - call PrintText - ld a, [wd732] - res 5, a ; reset forced to use bike bit - ld [wd732], a - CheckEvent EVENT_IN_SAFARI_ZONE - jr z, .didnotblackoutinsafari - xor a - ld [wNumSafariBalls], a - ld [wSafariSteps], a - ld [wSafariSteps + 1], a - EventFlagAddressa EVENT_IN_SAFARI_ZONE - ld [wcf0d], a - ld [wSafariZoneGateCurScript], a -.didnotblackoutinsafari - jp HoldTextDisplayOpen - -PlayerBlackedOutText:: - TX_FAR _PlayerBlackedOutText - db "@" - -DisplayRepelWoreOffText:: - ld hl, RepelWoreOffText - call PrintText - jp AfterDisplayingTextID - -RepelWoreOffText:: - TX_FAR _RepelWoreOffText - db "@" - -DisplayPikachuEmotion:: - callab TalkToPikachu - jp CloseTextDisplay - -INCLUDE "engine/menu/start_menu.asm" - -; function to count how many bits are set in a string of bytes -; INPUT: -; hl = address of string of bytes -; b = length of string of bytes -; OUTPUT: -; [wNumSetBits] = number of set bits -CountSetBits:: - ld c, 0 -.loop - ld a, [hli] - ld e, a - ld d, 8 -.innerLoop ; count how many bits are set in the current byte - srl e - ld a, 0 - adc c - ld c, a - dec d - jr nz, .innerLoop - dec b - jr nz, .loop - ld a, c - ld [wNumSetBits], a - ret - -; subtracts the amount the player paid from their money -; sets carry flag if there is enough money and unsets carry flag if not -SubtractAmountPaidFromMoney:: - jpba SubtractAmountPaidFromMoney_ - -; adds the amount the player sold to their money -AddAmountSoldToMoney:: - ld de, wPlayerMoney + 2 - ld hl, hMoney + 2 ; total price of items - ld c, 3 ; length of money in bytes - predef AddBCDPredef ; add total price to money - ld a, MONEY_BOX - ld [wTextBoxID], a - call DisplayTextBoxID ; redraw money text box - ld a, SFX_PURCHASE - call PlaySoundWaitForCurrent - jp WaitForSoundToFinish - -; function to remove an item (in varying quantities) from the player's bag or PC box -; INPUT: -; HL = address of inventory (either wNumBagItems or wNumBoxItems) -; [wWhichPokemon] = index (within the inventory) of the item to remove -; [wItemQuantity] = quantity to remove -RemoveItemFromInventory:: - homecall RemoveItemFromInventory_ - ret - -; function to add an item (in varying quantities) to the player's bag or PC box -; INPUT: -; HL = address of inventory (either wNumBagItems or wNumBoxItems) -; [wcf91] = item ID -; [wItemQuantity] = item quantity -; sets carry flag if successful, unsets carry flag if unsuccessful -AddItemToInventory:: - push bc - homecall_sf AddItemToInventory_ - pop bc - ret - -; INPUT: -; [wListMenuID] = list menu ID -; [wListPointer] = address of the list (2 bytes) -DisplayListMenuID:: - xor a - ld [H_AUTOBGTRANSFERENABLED], a ; disable auto-transfer - ld a, 1 - ld [hJoy7], a ; joypad state update flag - ld a, [wBattleType] - and a ; is it the Old Man battle? - jr nz, .specialBattleType - ld a, $01 ; hardcoded bank - jr .bankswitch -.specialBattleType ; Old Man battle - ld a, BANK(DisplayBattleMenu) -.bankswitch - call BankswitchHome - ld hl, wd730 - set 6, [hl] ; turn off letter printing delay - xor a - ld [wMenuItemToSwap], a ; 0 means no item is currently being swapped - ld [wListCount], a - ld a, [wListPointer] - ld l, a - ld a, [wListPointer + 1] - ld h, a ; hl = address of the list - ld a, [hl] ; the first byte is the number of entries in the list - ld [wListCount], a - ld a, LIST_MENU_BOX - ld [wTextBoxID], a - call DisplayTextBoxID ; draw the menu text box - call UpdateSprites ; disable sprites behind the text box -; the code up to .skipMovingSprites appears to be useless - coord hl, 4, 2 ; coordinates of upper left corner of menu text box - lb de, 9, 14 ; height and width of menu text box - ld a, [wListMenuID] - and a ; is it a PC pokemon list? - jr nz, .skipMovingSprites - call UpdateSprites -.skipMovingSprites - ld a, 1 ; max menu item ID is 1 if the list has less than 2 entries - ld [wMenuWatchMovingOutOfBounds], a - ld a, [wListCount] - cp 2 ; does the list have less than 2 entries? - jr c, .setMenuVariables - ld a, 2 ; max menu item ID is 2 if the list has at least 2 entries -.setMenuVariables - ld [wMaxMenuItem], a - ld a, 4 - ld [wTopMenuItemY], a - ld a, 5 - ld [wTopMenuItemX], a - ld a, A_BUTTON | B_BUTTON | SELECT - ld [wMenuWatchedKeys], a - ld c, 10 - call DelayFrames - -DisplayListMenuIDLoop:: - xor a - ld [H_AUTOBGTRANSFERENABLED], a ; disable transfer - call PrintListMenuEntries - ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a ; enable transfer - call Delay3 - ld a, [wBattleType] - and a ; is it the Old Man battle? - jr z, .notOldManBattle -.oldManBattle - ld a, "▶" - Coorda 5, 4 ; place menu cursor in front of first menu entry - ld c, 20 - call DelayFrames - xor a - ld [wCurrentMenuItem], a - coord hl, 5, 4 - ld a, l - ld [wMenuCursorLocation], a - ld a, h - ld [wMenuCursorLocation + 1], a - jr .buttonAPressed -.notOldManBattle - call LoadGBPal - call HandleMenuInput - push af - call PlaceMenuCursor - pop af - bit 0, a ; was the A button pressed? - jp z, .checkOtherKeys -.buttonAPressed - ld a, [wCurrentMenuItem] - call PlaceUnfilledArrowMenuCursor - -; pointless because both values are overwritten before they are read - ld a, $01 - ld [wMenuExitMethod], a - ld [wChosenMenuItem], a - - xor a - ld [wMenuWatchMovingOutOfBounds], a - ld a, [wCurrentMenuItem] - ld c, a - ld a, [wListScrollOffset] - add c - ld c, a - ld a, [wListCount] - and a ; is the list empty? - jp z, ExitListMenu ; if so, exit the menu - dec a - cp c ; did the player select Cancel? - jp c, ExitListMenu ; if so, exit the menu - ld a, c - ld [wWhichPokemon], a - ld a, [wListMenuID] - cp ITEMLISTMENU - jr nz, .skipMultiplying -; if it's an item menu - sla c ; item entries are 2 bytes long, so multiply by 2 -.skipMultiplying - ld a, [wListPointer] - ld l, a - ld a, [wListPointer + 1] - ld h, a - inc hl ; hl = beginning of list entries - ld b, 0 - add hl, bc - ld a, [hl] - ld [wcf91], a - ld a, [wListMenuID] - and a ; is it a PC pokemon list? - jr z, .pokemonList - push hl - call GetItemPrice - pop hl - ld a, [wListMenuID] - cp ITEMLISTMENU - jr nz, .skipGettingQuantity -; if it's an item menu - inc hl - ld a, [hl] ; a = item quantity - ld [wMaxItemQuantity], a -.skipGettingQuantity - ld a, [wcf91] - ld [wd0b5], a - ld a, BANK(ItemNames) - ld [wPredefBank], a - call GetName - jr .storeChosenEntry -.pokemonList - ld hl, wPartyCount - ld a, [wListPointer] - cp l ; is it a list of party pokemon or box pokemon? - ld hl, wPartyMonNicks - jr z, .getPokemonName - ld hl, wBoxMonNicks ; box pokemon names -.getPokemonName - ld a, [wWhichPokemon] - call GetPartyMonName -.storeChosenEntry ; store the menu entry that the player chose and return - ld de, wcd6d - call CopyStringToCF4B ; copy name to wcf4b - ld a, CHOSE_MENU_ITEM - ld [wMenuExitMethod], a - ld a, [wCurrentMenuItem] - ld [wChosenMenuItem], a - xor a - ld [hJoy7], a ; joypad state update flag - ld hl, wd730 - res 6, [hl] ; turn on letter printing delay - jp BankswitchBack -.checkOtherKeys ; check B, SELECT, Up, and Down keys - bit 1, a ; was the B button pressed? - jp nz, ExitListMenu ; if so, exit the menu - bit 2, a ; was the select button pressed? - jp nz, HandleItemListSwapping ; if so, allow the player to swap menu entries - ld b, a - bit 7, b ; was Down pressed? - ld hl, wListScrollOffset - jr z, .upPressed -.downPressed - ld a, [hl] - add 3 - ld b, a - ld a, [wListCount] - cp b ; will going down scroll past the Cancel button? - jp c, DisplayListMenuIDLoop - inc [hl] ; if not, go down - jp DisplayListMenuIDLoop -.upPressed - ld a, [hl] - and a - jp z, DisplayListMenuIDLoop - dec [hl] - jp DisplayListMenuIDLoop - -DisplayChooseQuantityMenu:: -; text box dimensions/coordinates for just quantity - coord hl, 15, 9 - lb bc, 1, 3 ; height and width - ld a, [wListMenuID] - cp PRICEDITEMLISTMENU - jr nz, .drawTextBox -; text box dimensions/coordinates for quantity and price - coord hl, 7, 9 - lb bc, 1, 11 ; height and width -.drawTextBox - call TextBoxBorder - coord hl, 16, 10 - ld a, [wListMenuID] - cp PRICEDITEMLISTMENU - jr nz, .printInitialQuantity - coord hl, 8, 10 -.printInitialQuantity - ld de, InitialQuantityText - call PlaceString - xor a - ld [wItemQuantity], a ; initialize current quantity to 0 - jp .incrementQuantity -.waitForKeyPressLoop - call JoypadLowSensitivity - ld a, [hJoyPressed] ; newly pressed buttons - bit 0, a ; was the A button pressed? - jp nz, .buttonAPressed - bit 1, a ; was the B button pressed? - jp nz, .buttonBPressed - bit 6, a ; was Up pressed? - jr nz, .incrementQuantity - bit 7, a ; was Down pressed? - jr nz, .decrementQuantity - jr .waitForKeyPressLoop -.incrementQuantity - ld a, [wMaxItemQuantity] - inc a - ld b, a - ld hl, wItemQuantity ; current quantity - inc [hl] - ld a, [hl] - cp b - jr nz, .handleNewQuantity -; wrap to 1 if the player goes above the max quantity - ld a, 1 - ld [hl], a - jr .handleNewQuantity -.decrementQuantity - ld hl, wItemQuantity ; current quantity - dec [hl] - jr nz, .handleNewQuantity -; wrap to the max quantity if the player goes below 1 - ld a, [wMaxItemQuantity] - ld [hl], a -.handleNewQuantity - coord hl, 17, 10 - ld a, [wListMenuID] - cp PRICEDITEMLISTMENU - jr nz, .printQuantity -.printPrice - ld c, $03 - ld a, [wItemQuantity] - ld b, a - ld hl, hMoney ; total price -; initialize total price to 0 - xor a - ld [hli], a - ld [hli], a - ld [hl], a -.addLoop ; loop to multiply the individual price by the quantity to get the total price - ld de, hMoney + 2 - ld hl, hItemPrice + 2 - push bc - predef AddBCDPredef ; add the individual price to the current sum - pop bc - dec b - jr nz, .addLoop - ld a, [hHalveItemPrices] - and a ; should the price be halved (for selling items)? - jr z, .skipHalvingPrice - xor a - ld [hDivideBCDDivisor], a - ld [hDivideBCDDivisor + 1], a - ld a, $02 - ld [hDivideBCDDivisor + 2], a - predef DivideBCDPredef3 ; halves the price -; store the halved price - ld a, [hDivideBCDQuotient] - ld [hMoney], a - ld a, [hDivideBCDQuotient + 1] - ld [hMoney + 1], a - ld a, [hDivideBCDQuotient + 2] - ld [hMoney + 2], a -.skipHalvingPrice - coord hl, 12, 10 - ld de, SpacesBetweenQuantityAndPriceText - call PlaceString - ld de, hMoney ; total price - ld c, $a3 - call PrintBCDNumber - coord hl, 9, 10 -.printQuantity - ld de, wItemQuantity ; current quantity - lb bc, LEADING_ZEROES | 1, 2 ; 1 byte, 2 digits - call PrintNumber - jp .waitForKeyPressLoop -.buttonAPressed ; the player chose to make the transaction - xor a - ld [wMenuItemToSwap], a ; 0 means no item is currently being swapped - ret -.buttonBPressed ; the player chose to cancel the transaction - xor a - ld [wMenuItemToSwap], a ; 0 means no item is currently being swapped - ld a, $ff - ret - -InitialQuantityText:: - db "×01@" - -SpacesBetweenQuantityAndPriceText:: - db " @" - -ExitListMenu:: - ld a, [wCurrentMenuItem] - ld [wChosenMenuItem], a - ld a, CANCELLED_MENU - ld [wMenuExitMethod], a - ld [wMenuWatchMovingOutOfBounds], a - xor a - ld [hJoy7], a - ld hl, wd730 - res 6, [hl] - call BankswitchBack - xor a - ld [wMenuItemToSwap], a ; 0 means no item is currently being swapped - scf - ret - -PrintListMenuEntries:: - coord hl, 5, 3 - lb bc, 9, 14 - call ClearScreenArea - ld a, [wListPointer] - ld e, a - ld a, [wListPointer + 1] - ld d, a - inc de ; de = beginning of list entries - ld a, [wListScrollOffset] - ld c, a - ld a, [wListMenuID] - cp ITEMLISTMENU - ld a, c - jr nz, .skipMultiplying -; if it's an item menu -; item entries are 2 bytes long, so multiply by 2 - add a - sla c -.skipMultiplying - add e - ld e, a - jr nc, .noCarry - inc d -.noCarry - coord hl, 6, 4 ; coordinates of first list entry name - ld b, 4 ; print 4 names -.loop - ld a, b - ld [wWhichPokemon], a - ld a, [de] - ld [wd11e], a - cp $ff - jp z, .printCancelMenuItem - push bc - push de - push hl - push hl - push de - ld a, [wListMenuID] - and a - jr z, .pokemonPCMenu - cp MOVESLISTMENU - jr z, .movesMenu -.itemMenu - call GetItemName - jr .placeNameString -.pokemonPCMenu - push hl - ld hl, wPartyCount - ld a, [wListPointer] - cp l ; is it a list of party pokemon or box pokemon? - ld hl, wPartyMonNicks - jr z, .getPokemonName - ld hl, wBoxMonNicks ; box pokemon names -.getPokemonName - ld a, [wWhichPokemon] - ld b, a - ld a, 4 - sub b - ld b, a - ld a, [wListScrollOffset] - add b - call GetPartyMonName - pop hl - jr .placeNameString -.movesMenu - call GetMoveName -.placeNameString - call PlaceString - pop de - pop hl - ld a, [wPrintItemPrices] - and a ; should prices be printed? - jr z, .skipPrintingItemPrice -.printItemPrice - push hl - ld a, [de] - ld de, ItemPrices - ld [wcf91], a - call GetItemPrice ; get price - pop hl - ld bc, SCREEN_WIDTH + 5 ; 1 row down and 5 columns right - add hl, bc - ld c, $a3 ; no leading zeroes, right-aligned, print currency symbol, 3 bytes - call PrintBCDNumber -.skipPrintingItemPrice - ld a, [wListMenuID] - and a - jr nz, .skipPrintingPokemonLevel -.printPokemonLevel - ld a, [wd11e] - push af - push hl - ld hl, wPartyCount - ld a, [wListPointer] - cp l ; is it a list of party pokemon or box pokemon? - ld a, PLAYER_PARTY_DATA - jr z, .next - ld a, BOX_DATA -.next - ld [wMonDataLocation], a - ld hl, wWhichPokemon - ld a, [hl] - ld b, a - ld a, $04 - sub b - ld b, a - ld a, [wListScrollOffset] - add b - ld [hl], a - call LoadMonData - ld a, [wMonDataLocation] - and a ; is it a list of party pokemon or box pokemon? - jr z, .skipCopyingLevel -.copyLevel - ld a, [wLoadedMonBoxLevel] - ld [wLoadedMonLevel], a -.skipCopyingLevel - pop hl - ld bc, $001c - add hl, bc - call PrintLevel - pop af - ld [wd11e], a -.skipPrintingPokemonLevel - pop hl - pop de - inc de - ld a, [wListMenuID] - cp ITEMLISTMENU - jr nz, .nextListEntry -.printItemQuantity - ld a, [wd11e] - ld [wcf91], a - call IsKeyItem ; check if item is unsellable - ld a, [wIsKeyItem] - and a ; is the item unsellable? - jr nz, .skipPrintingItemQuantity ; if so, don't print the quantity - push hl - ld bc, SCREEN_WIDTH + 8 ; 1 row down and 8 columns right - add hl, bc - ld a, "×" - ld [hli], a - ld a, [wd11e] - push af - ld a, [de] - ld [wMaxItemQuantity], a - push de - ld de, wd11e - ld [de], a - lb bc, 1, 2 - call PrintNumber - pop de - pop af - ld [wd11e], a - pop hl -.skipPrintingItemQuantity - inc de - pop bc - inc c - push bc - inc c - ld a, [wMenuItemToSwap] ; ID of item chosen for swapping (counts from 1) - and a ; is an item being swapped? - jr z, .nextListEntry - add a - cp c ; is it this item? - jr nz, .nextListEntry - dec hl - ld a, $ec ; unfilled right arrow menu cursor to indicate an item being swapped - ld [hli], a -.nextListEntry - ld bc, 2 * SCREEN_WIDTH ; 2 rows - add hl, bc - pop bc - inc c - dec b - jp nz, .loop - ld bc, -8 - add hl, bc - ld a, "▼" - ld [hl], a - ret -.printCancelMenuItem - ld de, ListMenuCancelText - jp PlaceString - -ListMenuCancelText:: - db "CANCEL@" - -GetMonName:: - push hl - ld a, [H_LOADEDROMBANK] - push af - ld a, BANK(MonsterNames) - ld [H_LOADEDROMBANK], a - ld [MBC1RomBank], a - ld a, [wd11e] - dec a - ld hl, MonsterNames - ld c, 10 - ld b, 0 - call AddNTimes - ld de, wcd6d - push de - ld bc, 10 - call CopyData - ld hl, wcd6d + 10 - ld [hl], "@" - pop de - pop af - ld [H_LOADEDROMBANK], a - ld [MBC1RomBank], a - pop hl - ret - -GetItemName:: -; given an item ID at [wd11e], store the name of the item into a string -; starting at wcd6d - push hl - push bc - ld a, [wd11e] - cp HM_01 ; is this a TM/HM? - jr nc, .Machine - - ld [wd0b5], a - ld a, ITEM_NAME - ld [wNameListType], a - ld a, BANK(ItemNames) - ld [wPredefBank], a - call GetName - jr .Finish - -.Machine - call GetMachineName -.Finish - ld de, wcd6d ; pointer to where item name is stored in RAM - pop bc - pop hl - ret - -GetMachineName:: -; copies the name of the TM/HM in [wd11e] to wcd6d - push hl - push de - push bc - ld a, [wd11e] - push af - cp TM_01 ; is this a TM? [not HM] - jr nc, .WriteTM -; if HM, then write "HM" and add 5 to the item ID, so we can reuse the -; TM printing code - add 5 - ld [wd11e], a - ld hl, HiddenPrefix ; points to "HM" - ld bc, 2 - jr .WriteMachinePrefix -.WriteTM - ld hl, TechnicalPrefix ; points to "TM" - ld bc, 2 -.WriteMachinePrefix - ld de, wcd6d - call CopyData - -; now get the machine number and convert it to text - ld a, [wd11e] - sub TM_01 - 1 - ld b, "0" -.FirstDigit - sub 10 - jr c, .SecondDigit - inc b - jr .FirstDigit -.SecondDigit - add 10 - push af - ld a, b - ld [de], a - inc de - pop af - ld b, "0" - add b - ld [de], a - inc de - ld a, "@" - ld [de], a - pop af - ld [wd11e], a - pop bc - pop de - pop hl - ret - -TechnicalPrefix:: - db "TM" -HiddenPrefix:: - db "HM" - -; sets carry if item is HM, clears carry if item is not HM -; Input: a = item ID -IsItemHM:: - cp HM_01 - jr c, .notHM - cp TM_01 - ret -.notHM - and a - ret - -; sets carry if move is an HM, clears carry if move is not an HM -; Input: a = move ID -IsMoveHM:: - ld hl, HMMoves - ld de, 1 - jp IsInArray - -HMMoves:: - db CUT, FLY, SURF, STRENGTH, FLASH - db $ff ; terminator - -GetMoveName:: - push hl - ld a, MOVE_NAME - ld [wNameListType], a - ld a, [wd11e] - ld [wd0b5], a - ld a, BANK(MoveNames) - ld [wPredefBank], a - call GetName - ld de, wcd6d ; pointer to where move name is stored in RAM - pop hl - ret - -; reloads text box tile patterns, current map view, and tileset tile patterns -ReloadMapData:: - ld a, [H_LOADEDROMBANK] - push af - ld a, [wCurMap] - call SwitchToMapRomBank - call DisableLCD - call LoadTextBoxTilePatterns - call LoadCurrentMapView - call LoadTilesetTilePatternData - call EnableLCD - pop af - call BankswitchCommon - ret - -; reloads tileset tile patterns -ReloadTilesetTilePatterns:: - ld a, [H_LOADEDROMBANK] - push af - ld a, [wCurMap] - call SwitchToMapRomBank - call DisableLCD - call LoadTilesetTilePatternData - call EnableLCD - pop af - call BankswitchCommon - ret - -; shows the town map and lets the player choose a destination to fly to -ChooseFlyDestination:: - ld hl, wd72e - res 4, [hl] - jpba LoadTownMap_Fly - -PrinterSerial:: - homecall PrinterSerial_ - ret - -SerialFunction:: - ld a, [wPrinterConnectionOpen] - bit 0, a - ret z - ld a, [wPrinterOpcode] - and a - ret nz - ld hl, wOverworldMap + 650 - inc [hl] - ld a, [hl] - cp $6 - ret c - xor a - ld [hl], a - ld a, $0c - ld [wPrinterOpcode], a - ld a, $88 - ld [rSB], a - ld a, $1 - ld [rSC], a - ld a, START_TRANSFER_INTERNAL_CLOCK - ld [rSC], a - ret - -; causes the text box to close without waiting for a button press after displaying text -DisableWaitingAfterTextDisplay:: - ld a, $01 - ld [wDoNotWaitForButtonPressAfterDisplayingText], a - ret - -; uses an item -; UseItem is used with dummy items to perform certain other functions as well -; INPUT: -; [wcf91] = item ID -; OUTPUT: -; [wActionResultOrTookBattleTurn] = success -; 00: unsuccessful -; 01: successful -; 02: not able to be used right now, no extra menu displayed (only certain items use this) -UseItem:: - jpba UseItem_ - -; confirms the item toss and then tosses the item -; INPUT: -; hl = address of inventory (either wNumBagItems or wNumBoxItems) -; [wcf91] = item ID -; [wWhichPokemon] = index of item within inventory -; [wItemQuantity] = quantity to toss -; OUTPUT: -; clears carry flag if the item is tossed, sets carry flag if not -TossItem:: - ld a, [H_LOADEDROMBANK] - push af - ld a, BANK(TossItem_) - ld [H_LOADEDROMBANK], a - ld [MBC1RomBank], a - call TossItem_ - pop de - ld a, d - ld [H_LOADEDROMBANK], a - ld [MBC1RomBank], a - ret - -; checks if an item is a key item -; INPUT: -; [wcf91] = item ID -; OUTPUT: -; [wIsKeyItem] = result -; 00: item is not key item -; 01: item is key item -IsKeyItem:: - push hl - push de - push bc - callba IsKeyItem_ - pop bc - pop de - pop hl - ret - -; function to draw various text boxes -; INPUT: -; [wTextBoxID] = text box ID -; b, c = y, x cursor position (TWO_OPTION_MENU only) -DisplayTextBoxID:: - homecall_sf DisplayTextBoxID_ - ret - -UpdateGBCPal_BGP:: - push af - ld a, [hGBC] - and a - jr z, .notGBC - push bc - push de - push hl - ld a, [rBGP] - ld b, a - ld a, [wLastBGP] - cp b - jr z, .noChangeInBGP - callba _UpdateGBCPal_BGP -.noChangeInBGP - pop hl - pop de - pop bc -.notGBC - pop af - ret - -UpdateGBCPal_OBP0:: - push af - ld a, [hGBC] - and a - jr z, .notGBC - push bc - push de - push hl - ld a, [rOBP0] - ld b, a - ld a, [wLastOBP0] - cp b - jr z, .noChangeInOBP0 - ld b, BANK(_UpdateGBCPal_OBP) - ld hl, _UpdateGBCPal_OBP - ld c, CONVERT_OBP0 - call Bankswitch -.noChangeInOBP0 - pop hl - pop de - pop bc -.notGBC - pop af - ret - -UpdateGBCPal_OBP1:: - push af - ld a, [hGBC] - and a - jr z, .notGBC - push bc - push de - push hl - ld a, [rOBP1] - ld b, a - ld a, [wLastOBP1] - cp b - jr z, .noChangeInOBP1 - ld b, BANK(_UpdateGBCPal_OBP) - ld hl, _UpdateGBCPal_OBP - ld c, CONVERT_OBP1 - call Bankswitch -.noChangeInOBP1 - pop hl - pop de - pop bc -.notGBC - pop af - ret - -Func_3082:: - ld a, [H_LOADEDROMBANK] - push af - call FadeOutAudio - callbs Music_DoLowHealthAlarm - callbs Audio1_UpdateMusic - pop af - call BankswitchCommon - ret - -; not zero if an NPC movement script is running, the player character is -; automatically stepping down from a door, or joypad states are being simulated -IsPlayerCharacterBeingControlledByGame:: - ld a, [wNPCMovementScriptPointerTableNum] - and a - ret nz - ld a, [wd736] - bit 1, a ; currently stepping down from door bit - ret nz - ld a, [wd730] - and $80 - ret - -RunNPCMovementScript:: - ld hl, wd736 - bit 0, [hl] - res 0, [hl] - jr nz, .playerStepOutFromDoor - ld a, [wNPCMovementScriptPointerTableNum] - and a - ret z - dec a - add a - ld d, 0 - ld e, a - ld hl, .NPCMovementScriptPointerTables - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [H_LOADEDROMBANK] - push af - ld a, [wNPCMovementScriptBank] - call BankswitchCommon - ld a, [wNPCMovementScriptFunctionNum] - call CallFunctionInTable - pop af - call BankswitchCommon - ret - -.NPCMovementScriptPointerTables - dw PalletMovementScriptPointerTable - dw PewterMuseumGuyMovementScriptPointerTable - dw PewterGymGuyMovementScriptPointerTable -.playerStepOutFromDoor - jpba PlayerStepOutFromDoor - -EndNPCMovementScript:: - jpba _EndNPCMovementScript - -EmptyFunc2:: - ret - -; stores hl in [wTrainerHeaderPtr] -StoreTrainerHeaderPointer:: - ld a, h - ld [wTrainerHeaderPtr], a - ld a, l - ld [wTrainerHeaderPtr + 1], a - ret - -; executes the current map script from the function pointer array provided in hl. -; a: map script index to execute (unless overridden by [wd733] bit 4) -ExecuteCurMapScriptInTable:: - push af - push de - call StoreTrainerHeaderPointer - pop hl - pop af - push hl - ld hl, wFlags_D733 - bit 4, [hl] - res 4, [hl] - jr z, .useProvidedIndex ; test if map script index was overridden manually - ld a, [wCurMapScript] -.useProvidedIndex - pop hl - ld [wCurMapScript], a - call CallFunctionInTable - ld a, [wCurMapScript] - ret - -LoadGymLeaderAndCityName:: - push de - ld de, wGymCityName - ld bc, $11 - call CopyData ; load city name - pop hl - ld de, wGymLeaderName - ld bc, NAME_LENGTH - jp CopyData ; load gym leader name - -; reads specific information from trainer header (pointed to at wTrainerHeaderPtr) -; a: offset in header data -; 0 -> flag's bit (into wTrainerHeaderFlagBit) -; 2 -> flag's byte ptr (into hl) -; 4 -> before battle text (into hl) -; 6 -> after battle text (into hl) -; 8 -> end battle text (into hl) -ReadTrainerHeaderInfo:: - push de - push af - ld d, $0 - ld e, a - ld hl, wTrainerHeaderPtr - ld a, [hli] - ld l, [hl] - ld h, a - add hl, de - pop af - and a - jr nz, .nonZeroOffset - ld a, [hl] - ld [wTrainerHeaderFlagBit], a ; store flag's bit - jr .done -.nonZeroOffset - cp $2 - jr z, .readPointer ; read flag's byte ptr - cp $4 - jr z, .readPointer ; read before battle text - cp $6 - jr z, .readPointer ; read after battle text - cp $8 - jr z, .readPointer ; read end battle text - cp $a - jr nz, .done - ld a, [hli] ; read end battle text (2) but override the result afterwards (XXX why, bug?) - ld d, [hl] - ld e, a - jr .done -.readPointer - ld a, [hli] - ld h, [hl] - ld l, a -.done - pop de - ret - -TrainerFlagAction:: - predef_jump FlagActionPredef - -TalkToTrainer:: - call StoreTrainerHeaderPointer - xor a - call ReadTrainerHeaderInfo ; read flag's bit - ld a, $2 - call ReadTrainerHeaderInfo ; read flag's byte ptr - ld a, [wTrainerHeaderFlagBit] - ld c, a - ld b, FLAG_TEST - call TrainerFlagAction ; read trainer's flag - ld a, c - and a - jr z, .trainerNotYetFought ; test trainer's flag - ld a, $6 - call ReadTrainerHeaderInfo ; print after battle text - jp PrintText -.trainerNotYetFought - ld a, $4 - call ReadTrainerHeaderInfo ; print before battle text - call PrintText - ld a, $a - call ReadTrainerHeaderInfo ; (?) does nothing apparently (maybe bug in ReadTrainerHeaderInfo) - push de - ld a, $8 - call ReadTrainerHeaderInfo ; read end battle text - pop de - call SaveEndBattleTextPointers - ld hl, wFlags_D733 - set 4, [hl] ; activate map script index override (index is set below) - ld hl, wFlags_0xcd60 - bit 0, [hl] ; test if player is already engaging the trainer (because the trainer saw the player) - ret nz -; if the player talked to the trainer of his own volition - call EngageMapTrainer - ld hl, wCurMapScript - inc [hl] ; increment map script index before StartTrainerBattle increments it again (next script function is usually EndTrainerBattle) - jp StartTrainerBattle - -; checks if any trainers are seeing the player and wanting to fight -CheckFightingMapTrainers:: - call CheckForEngagingTrainers - ld a, [wSpriteIndex] - cp $ff - jr nz, .trainerEngaging - xor a - ld [wSpriteIndex], a - ld [wTrainerHeaderFlagBit], a - ret -.trainerEngaging - ld hl, wFlags_D733 - set 3, [hl] - ld [wEmotionBubbleSpriteIndex], a - xor a ; EXCLAMATION_BUBBLE - ld [wWhichEmotionBubble], a - predef EmotionBubble - ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN - ld [wJoyIgnore], a - xor a - ld [hJoyHeld], a - call TrainerWalkUpToPlayer_Bank0 - ld hl, wCurMapScript - inc [hl] ; increment map script index (next script function is usually DisplayEnemyTrainerTextAndStartBattle) - ret - -; display the before battle text after the enemy trainer has walked up to the player's sprite -DisplayEnemyTrainerTextAndStartBattle:: - ld a, [wd730] - and $1 - ret nz ; return if the enemy trainer hasn't finished walking to the player's sprite - ld [wJoyIgnore], a - ld a, [wSpriteIndex] - ld [hSpriteIndexOrTextID], a - call DisplayTextID - ; fall through - -StartTrainerBattle:: - xor a - ld [wJoyIgnore], a - call InitBattleEnemyParameters - ld hl, wd72d - set 6, [hl] - set 7, [hl] - ld hl, wd72e - set 1, [hl] - ld hl, wCurMapScript - inc [hl] ; increment map script index (next script function is usually EndTrainerBattle) - ret - -EndTrainerBattle:: - ld hl, wCurrentMapScriptFlags - set 5, [hl] - set 6, [hl] - ld hl, wd72d - res 7, [hl] - ld hl, wFlags_0xcd60 - res 0, [hl] ; player is no longer engaged by any trainer - ld a, [wIsInBattle] - cp $ff - jp z, ResetButtonPressedAndMapScript - ld a, $2 - call ReadTrainerHeaderInfo - ld a, [wTrainerHeaderFlagBit] - ld c, a - ld b, FLAG_SET - call TrainerFlagAction ; flag trainer as fought - ld a, [wEnemyMonOrTrainerClass] - cp OPP_ID_OFFSET - jr nc, .skipRemoveSprite ; test if trainer was fought (in that case skip removing the corresponding sprite) - ld hl, wMissableObjectList - ld de, $2 - ld a, [wSpriteIndex] - call IsInArray ; search for sprite ID - inc hl - ld a, [hl] - ld [wMissableObjectIndex], a ; load corresponding missable object index and remove it - predef HideObject -.skipRemoveSprite - ld hl, wd730 - bit 4, [hl] - res 4, [hl] - ret nz - -ResetButtonPressedAndMapScript:: - xor a - ld [wJoyIgnore], a - ld [hJoyHeld], a - ld [hJoyPressed], a - ld [hJoyReleased], a - ld [wCurMapScript], a ; reset battle status - ret - -; calls TrainerWalkUpToPlayer -TrainerWalkUpToPlayer_Bank0:: - jpba TrainerWalkUpToPlayer - -; sets opponent type and mon set/lvl based on the engaging trainer data -InitBattleEnemyParameters:: - ld a, [wEngagedTrainerClass] - ld [wCurOpponent], a - ld [wEnemyMonOrTrainerClass], a - cp OPP_ID_OFFSET - ld a, [wEngagedTrainerSet] - jr c, .noTrainer - ld [wTrainerNo], a - ret -.noTrainer - ld [wCurEnemyLVL], a - ret - -GetSpritePosition1:: - ld hl, _GetSpritePosition1 - jr SpritePositionBankswitch - -GetSpritePosition2:: - ld hl, _GetSpritePosition2 - jr SpritePositionBankswitch - -SetSpritePosition1:: - ld hl, _SetSpritePosition1 - jr SpritePositionBankswitch - -SetSpritePosition2:: - ld hl, _SetSpritePosition2 -SpritePositionBankswitch:: - ld b, BANK(_GetSpritePosition1) ; BANK(_GetSpritePosition2), BANK(_SetSpritePosition1), BANK(_SetSpritePosition2) - jp Bankswitch ; indirect jump to one of the four functions - -CheckForEngagingTrainers:: - xor a - call ReadTrainerHeaderInfo ; read trainer flag's bit (unused) - ld d, h ; store trainer header address in de - ld e, l -.trainerLoop - call StoreTrainerHeaderPointer ; set trainer header pointer to current trainer - ld a, [de] - ld [wSpriteIndex], a ; store trainer flag's bit - ld [wTrainerHeaderFlagBit], a - cp $ff - ret z - ld a, $2 - call ReadTrainerHeaderInfo ; read trainer flag's byte ptr - ld b, FLAG_TEST - ld a, [wTrainerHeaderFlagBit] - ld c, a - call TrainerFlagAction ; read trainer flag - ld a, c - and a ; has the trainer already been defeated? - jr nz, .continue - push hl - push de - push hl - xor a - call ReadTrainerHeaderInfo ; get trainer header pointer - inc hl - ld a, [hl] ; read trainer engage distance - pop hl - ld [wTrainerEngageDistance], a - ld a, [wSpriteIndex] - swap a - ld [wTrainerSpriteOffset], a - predef TrainerEngage - pop de - pop hl - ld a, [wTrainerSpriteOffset] - and a - ret nz ; break if the trainer is engaging -.continue - ld hl, $c - add hl, de - ld d, h - ld e, l - jr .trainerLoop - -; hl = text if the player wins -; de = text if the player loses -SaveEndBattleTextPointers:: - ld a, [H_LOADEDROMBANK] - ld [wEndBattleTextRomBank], a - ld a, h - ld [wEndBattleWinTextPointer], a - ld a, l - ld [wEndBattleWinTextPointer + 1], a - ld a, d - ld [wEndBattleLoseTextPointer], a - ld a, e - ld [wEndBattleLoseTextPointer + 1], a - ret - -; loads data of some trainer on the current map and plays pre-battle music -; [wSpriteIndex]: sprite ID of trainer who is engaged -EngageMapTrainer:: - ld hl, wMapSpriteExtraData - ld d, $0 - ld a, [wSpriteIndex] - dec a - add a - ld e, a - add hl, de ; seek to engaged trainer data - ld a, [hli] ; load trainer class - ld [wEngagedTrainerClass], a - ld a, [hl] ; load trainer mon set - ld [wEngagedTrainerSet], a - jp PlayTrainerMusic - -PrintEndBattleText:: - push hl - ld hl, wd72d - bit 7, [hl] - res 7, [hl] - pop hl - ret z - ld a, [H_LOADEDROMBANK] - push af - ld a, [wEndBattleTextRomBank] - ld [H_LOADEDROMBANK], a - ld [MBC1RomBank], a - push hl - callba SaveTrainerName - ld hl, TrainerEndBattleText - call PrintText - pop hl - pop af - ld [H_LOADEDROMBANK], a - ld [MBC1RomBank], a - callba FreezeEnemyTrainerSprite - jp WaitForSoundToFinish - -GetSavedEndBattleTextPointer:: - ld a, [wBattleResult] - and a -; won battle - jr nz, .lostBattle - ld a, [wEndBattleWinTextPointer] - ld h, a - ld a, [wEndBattleWinTextPointer + 1] - ld l, a - ret -.lostBattle - ld a, [wEndBattleLoseTextPointer] - ld h, a - ld a, [wEndBattleLoseTextPointer + 1] - ld l, a - ret - -TrainerEndBattleText:: - TX_FAR _TrainerNameText - TX_ASM - call GetSavedEndBattleTextPointer - call TextCommandProcessor - jp TextScriptEnd - -PlayTrainerMusic:: - ld a, [wEngagedTrainerClass] - cp OPP_SONY1 - ret z - cp OPP_SONY2 - ret z - cp OPP_SONY3 - ret z - ld a, [wGymLeaderNo] - and a - ret nz - xor a - ld [wAudioFadeOutControl], a - call StopAllMusic ; stop music - ld a, BANK(Music_MeetEvilTrainer) - ld [wAudioROMBank], a - ld [wAudioSavedROMBank], a - ld a, [wEngagedTrainerClass] - ld b, a - ld hl, EvilTrainerList -.evilTrainerListLoop - ld a, [hli] - cp $ff - jr z, .noEvilTrainer - cp b - jr nz, .evilTrainerListLoop - ld a, MUSIC_MEET_EVIL_TRAINER - jr .PlaySound -.noEvilTrainer - ld hl, FemaleTrainerList -.femaleTrainerListLoop - ld a, [hli] - cp $ff - jr z, .maleTrainer - cp b - jr nz, .femaleTrainerListLoop - ld a, MUSIC_MEET_FEMALE_TRAINER - jr .PlaySound -.maleTrainer - ld a, MUSIC_MEET_MALE_TRAINER -.PlaySound - ld [wNewSoundID], a - jp PlaySound - -INCLUDE "data/trainer_types.asm" - -; checks if the player's coordinates match an arrow movement tile's coordinates -; and if so, decodes the RLE movement data -; b = player Y -; c = player X -DecodeArrowMovementRLE:: - ld a, [hli] - cp $ff - ret z ; no match in the list - cp b - jr nz, .nextArrowMovementTileEntry1 - ld a, [hli] - cp c - jr nz, .nextArrowMovementTileEntry2 - ld a, [hli] - ld d, [hl] - ld e, a - ld hl, wSimulatedJoypadStatesEnd - call DecodeRLEList - dec a - ld [wSimulatedJoypadStatesIndex], a - ret -.nextArrowMovementTileEntry1 - inc hl -.nextArrowMovementTileEntry2 - inc hl - inc hl - jr DecodeArrowMovementRLE - -FuncTX_ItemStoragePC:: - call SaveScreenTilesToBuffer2 - ld b, BANK(PlayerPC) - ld hl, PlayerPC - jr bankswitchAndContinue - -FuncTX_BillsPC:: - call SaveScreenTilesToBuffer2 - ld b, BANK(BillsPC_) - ld hl, BillsPC_ - jr bankswitchAndContinue - -FuncTX_GameCornerPrizeMenu:: -; XXX find a better name for this function -; special_F7 - ld b, BANK(CeladonPrizeMenu) - ld hl, CeladonPrizeMenu -bankswitchAndContinue:: - call Bankswitch - jp HoldTextDisplayOpen ; continue to main text-engine function - -FuncTX_PokemonCenterPC:: - ld b, BANK(ActivatePC) - ld hl, ActivatePC - jr bankswitchAndContinue - -StartSimulatingJoypadStates:: - xor a - ld [wOverrideSimulatedJoypadStatesMask], a - ld [wSpriteStateData2 + $06], a ; player's sprite movement byte 1 - ld hl, wd730 - set 7, [hl] - ret - -IsItemInBag:: -; given an item_id in b -; set zero flag if item isn't in player's bag -; else reset zero flag -; related to Pokémon Tower and ghosts - predef GetQuantityOfItemInBag - ld a, b - and a - ret - -IsSurfingPikachuInParty:: -; set bit 6 of wd472 if true -; also calls Func_3467, which is a bankswitch to IsStarterPikachuInOurParty - ld a, [wd472] - and $3f - ld [wd472], a - ld hl, wPartyMon1 - ld c, PARTY_LENGTH - ld b, SURF -.loop - ld a, [hl] - cp PIKACHU - jr nz, .notPikachu - push hl - ld de, $8 - add hl, de - ld a, [hli] - cp b ; does pikachu have surf as one of its moves - jr z, .hasSurf - ld a, [hli] - cp b - jr z, .hasSurf - ld a, [hli] - cp b - jr z, .hasSurf - ld a, [hli] - cp b - jr nz, .noSurf -.hasSurf - ld a, [wd472] - set 6, a - ld [wd472], a -.noSurf - pop hl -.notPikachu - ld de, wPartyMon2 - wPartyMon1 - add hl, de - dec c - jr nz, .loop - call Func_3467 - ret - -Func_3467:: - push hl - push bc - callab IsStarterPikachuInOurParty - pop bc - pop hl - ret nc - ld a, [wd472] - set 7, a - ld [wd472], a - ret - -DisplayPokedex:: - ld [wd11e], a - jpba _DisplayPokedex - -SetSpriteFacingDirectionAndDelay:: - call SetSpriteFacingDirection - ld c, 6 - jp DelayFrames - -SetSpriteFacingDirection:: - ld a, $9 - ld [H_SPRITEDATAOFFSET], a - call GetPointerWithinSpriteStateData1 - ld a, [hSpriteFacingDirection] - ld [hl], a - ret - -SetSpriteImageIndexAfterSettingFacingDirection:: - ld de, -7 - add hl, de - ld [hl], a - ret - -SpriteFunc_34a1:: - ld a, [H_SPRITEINDEX] - swap a - add $e - ld l, a - ld h, $c2 - ld c, [hl] - dec c - swap c - ld a, [$ff8d] - add c - ld c, a - ld a, [$ff8c] - swap a - add $2 - ld l, a - dec h - ld [hl], c - ret - -; tests if the player's coordinates are in a specified array -; INPUT: -; hl = address of array -; OUTPUT: -; [wCoordIndex] = if there is match, the matching array index -; sets carry if the coordinates are in the array, clears carry if not -ArePlayerCoordsInArray:: - ld a, [wYCoord] - ld b, a - ld a, [wXCoord] - ld c, a - ; fallthrough - -CheckCoords:: - xor a - ld [wCoordIndex], a -.loop - ld a, [hli] - cp $ff ; reached terminator? - jr z, .notInArray - push hl - ld hl, wCoordIndex - inc [hl] - pop hl -.compareYCoord - cp b - jr z, .compareXCoord - inc hl - jr .loop -.compareXCoord - ld a, [hli] - cp c - jr nz, .loop -.inArray - scf - ret -.notInArray - and a - ret - -; tests if a boulder's coordinates are in a specified array -; INPUT: -; hl = address of array -; [H_SPRITEINDEX] = index of boulder sprite -; OUTPUT: -; [wCoordIndex] = if there is match, the matching array index -; sets carry if the coordinates are in the array, clears carry if not -CheckBoulderCoords:: - push hl - ld hl, wSpriteStateData2 + $04 - ld a, [H_SPRITEINDEX] - swap a - ld d, $0 - ld e, a - add hl, de - ld a, [hli] - sub $4 ; because sprite coordinates are offset by 4 - ld b, a - ld a, [hl] - sub $4 ; because sprite coordinates are offset by 4 - ld c, a - pop hl - jp CheckCoords - -GetPointerWithinSpriteStateData1:: - ld h, $c1 - jr _GetPointerWithinSpriteStateData - -GetPointerWithinSpriteStateData2:: - ld h, $c2 - -_GetPointerWithinSpriteStateData: - ld a, [H_SPRITEDATAOFFSET] - ld b, a - ld a, [H_SPRITEINDEX] - swap a - add b - ld l, a - ret - -; decodes a $ff-terminated RLEncoded list -; each entry is a pair of bytes -; the final $ff will be replicated in the output list and a contains the number of bytes written -; de: input list -; hl: output list -DecodeRLEList:: - xor a - ld [wRLEByteCount], a ; count written bytes here -.listLoop - ld a, [de] - cp $ff - jr z, .endOfList - ld [hRLEByteValue], a ; store byte value to be written - inc de - ld a, [de] - ld b, $0 - ld c, a ; number of bytes to be written - ld a, [wRLEByteCount] - add c - ld [wRLEByteCount], a ; update total number of written bytes - ld a, [hRLEByteValue] - call FillMemory ; write a c-times to output - inc de - jr .listLoop -.endOfList - ld a, $ff - ld [hl], a ; write final $ff - ld a, [wRLEByteCount] - inc a ; include sentinel in counting - ret - -; sets movement byte 1 for sprite [H_SPRITEINDEX] to $FE and byte 2 to [hSpriteMovementByte2] -SetSpriteMovementBytesToFE:: - push hl - call GetSpriteMovementByte1Pointer - ld [hl], $fe - call GetSpriteMovementByte2Pointer - ld a, [hSpriteMovementByte2] - ld [hl], a - pop hl - ret - -; sets both movement bytes for sprite [H_SPRITEINDEX] to $FF -SetSpriteMovementBytesToFF:: - push hl - call GetSpriteMovementByte1Pointer - ld [hl], $FF - call GetSpriteMovementByte2Pointer - ld [hl], $FF ; prevent person from walking? - pop hl - ret - -; returns the sprite movement byte 1 pointer for sprite [H_SPRITEINDEX] in hl -GetSpriteMovementByte1Pointer:: - ld h, $C2 - ld a, [H_SPRITEINDEX] - swap a - add 6 - ld l, a - ret - -; returns the sprite movement byte 2 pointer for sprite [H_SPRITEINDEX] in hl -GetSpriteMovementByte2Pointer:: - push de - ld hl, wMapSpriteData - ld a, [H_SPRITEINDEX] - dec a - add a - ld e, a - ld d, 0 - add hl, de - pop de - ret - -GetTrainerInformation:: - call GetTrainerName - ld a, [wLinkState] - and a - jr nz, .linkBattle - ld a, BANK(TrainerPicAndMoneyPointers) - call BankswitchHome - ld a, [wTrainerClass] - dec a - ld hl, TrainerPicAndMoneyPointers - ld bc, $5 - call AddNTimes - ld de, wTrainerPicPointer - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ld de, wTrainerBaseMoney - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - call IsFightingJessieJames - jp BankswitchBack -.linkBattle - ld hl, wTrainerPicPointer - ld de, RedPicFront - ld [hl], e - inc hl - ld [hl], d - ret - -IsFightingJessieJames:: - ld a, [wTrainerClass] - cp ROCKET - ret nz - ld a, [wTrainerNo] - cp $2a - ret c - ld de, JessieJamesPic - cp $2e - jr c, .dummy - ld de, JessieJamesPic ; possibly meant to add another pic -.dummy - ld hl, wTrainerPicPointer - ld a, e - ld [hli], a - ld [hl], d - ret - -GetTrainerName:: - jpba GetTrainerName_ - -HasEnoughMoney:: -; Check if the player has at least as much -; money as the 3-byte BCD value at hMoney. - ld de, wPlayerMoney - ld hl, hMoney - ld c, 3 - jp StringCmp - -HasEnoughCoins:: -; Check if the player has at least as many -; coins as the 2-byte BCD value at hCoins. - ld de, wPlayerCoins - ld hl, hCoins - ld c, 2 - jp StringCmp - - -BankswitchHome:: -; switches to bank # in a -; Only use this when in the home bank! - ld [wBankswitchHomeTemp], a - ld a, [H_LOADEDROMBANK] - ld [wBankswitchHomeSavedROMBank], a - ld a, [wBankswitchHomeTemp] - call BankswitchCommon - ret - -BankswitchBack:: -; returns from BankswitchHome - ld a, [wBankswitchHomeSavedROMBank] - call BankswitchCommon - ret - -; displays yes/no choice -; yes -> set carry -YesNoChoice:: - call SaveScreenTilesToBuffer1 - call InitYesNoTextBoxParameters - jr DisplayYesNoChoice - -Func_35f7:: - ld a, TWO_OPTION_MENU - ld [wTextBoxID], a - call InitYesNoTextBoxParameters - jp DisplayTextBoxID - -InitYesNoTextBoxParameters:: - xor a ; YES_NO_MENU - ld [wTwoOptionMenuID], a - coord hl, 14, 7 - ld bc, $80f - ret - -YesNoChoicePokeCenter:: - call SaveScreenTilesToBuffer1 - ld a, HEAL_CANCEL_MENU - ld [wTwoOptionMenuID], a - coord hl, 11, 6 - lb bc, 8, 12 - jr DisplayYesNoChoice - -WideYesNoChoice:: ; unused - call SaveScreenTilesToBuffer1 - ld a, WIDE_YES_NO_MENU - ld [wTwoOptionMenuID], a - coord hl, 12, 7 - lb bc, 8, 13 - -DisplayYesNoChoice:: - ld a, TWO_OPTION_MENU - ld [wTextBoxID], a - call DisplayTextBoxID - jp LoadScreenTilesFromBuffer1 - -; calculates the difference |a-b|, setting carry flag if a999) - cp 999 / $100 + 1 - jr nc, .overflow - cp 999 / $100 - jr c, .noOverflow - ld a, [H_MULTIPLICAND + 2] - cp 999 % $100 + 1 - jr c, .noOverflow -.overflow - ld a, 999 / $100 ; overflow: cap at 999 - ld [H_MULTIPLICAND + 1], a - ld a, 999 % $100 - ld [H_MULTIPLICAND + 2], a -.noOverflow - pop bc - pop de - pop hl - ret - -AddEnemyMonToPlayerParty:: - homecall_sf _AddEnemyMonToPlayerParty - ret - -MoveMon:: - homecall_sf _MoveMon - ret - -; skips a text entries, each of size NAME_LENGTH (like trainer name, OT name, rival name, ...) -; hl: base pointer, will be incremented by NAME_LENGTH * a -SkipFixedLengthTextEntries:: - and a - ret z - ld bc, NAME_LENGTH -.skipLoop - add hl, bc - dec a - jr nz, .skipLoop - ret - -AddNTimes:: -; add bc to hl a times - and a - ret z -.loop - add hl, bc - dec a - jr nz, .loop - ret - -; Compare strings, c bytes in length, at de and hl. -; Often used to compare big endian numbers in battle calculations. -StringCmp:: - ld a, [de] - cp [hl] - ret nz - inc de - inc hl - dec c - jr nz, StringCmp - ret - -; INPUT: -; a = oam block index (each block is 4 oam entries) -; b = Y coordinate of upper left corner of sprite -; c = X coordinate of upper left corner of sprite -; de = base address of 4 tile number and attribute pairs -WriteOAMBlock:: - ld h, wOAMBuffer / $100 - swap a ; multiply by 16 - ld l, a - call .writeOneEntry ; upper left - push bc - ld a, 8 - add c - ld c, a - call .writeOneEntry ; upper right - pop bc - ld a, 8 - add b - ld b, a - call .writeOneEntry ; lower left - ld a, 8 - add c - ld c, a - ; lower right -.writeOneEntry - ld [hl], b ; Y coordinate - inc hl - ld [hl], c ; X coordinate - inc hl - ld a, [de] ; tile number - inc de - ld [hli], a - ld a, [de] ; attribute - inc de - ld [hli], a - ret - -HandleMenuInput:: - xor a - ld [wPartyMenuAnimMonEnabled], a - -HandleMenuInputPokemonSelection:: - ld a, [H_DOWNARROWBLINKCNT1] - push af - ld a, [H_DOWNARROWBLINKCNT2] - push af ; save existing values on stack - xor a - ld [H_DOWNARROWBLINKCNT1], a ; blinking down arrow timing value 1 - ld a, 6 - ld [H_DOWNARROWBLINKCNT2], a ; blinking down arrow timing value 2 -.loop1 - xor a - ld [wAnimCounter], a ; counter for pokemon shaking animation - call PlaceMenuCursor - call Delay3 -.loop2 - push hl - ld a, [wPartyMenuAnimMonEnabled] - and a ; is it a pokemon selection menu? - jr z, .getJoypadState - callba AnimatePartyMon ; shake mini sprite of selected pokemon -.getJoypadState - pop hl - call JoypadLowSensitivity - ld a, [hJoy5] - and a ; was a key pressed? - jr nz, .keyPressed - push hl - coord hl, 18, 11 ; coordinates of blinking down arrow in some menus - call HandleDownArrowBlinkTiming ; blink down arrow (if any) - pop hl - ld a, [wMenuJoypadPollCount] - dec a - jr z, .giveUpWaiting - jr .loop2 -.giveUpWaiting -; if a key wasn't pressed within the specified number of checks - pop af - ld [H_DOWNARROWBLINKCNT2], a - pop af - ld [H_DOWNARROWBLINKCNT1], a ; restore previous values - xor a - ld [wMenuWrappingEnabled], a ; disable menu wrapping - ret -.keyPressed - xor a - ld [wCheckFor180DegreeTurn], a - ld a, [hJoy5] - ld b, a - bit 0, a ; pressed A key? - jr nz, .checkOtherKeys - bit 6, a ; pressed Up key? - jr z, .checkIfDownPressed -.upPressed - ld a, [wCurrentMenuItem] ; selected menu item - and a ; already at the top of the menu? - jr z, .alreadyAtTop -.notAtTop - dec a - ld [wCurrentMenuItem], a ; move selected menu item up one space - jr .checkOtherKeys -.alreadyAtTop - ld a, [wMenuWrappingEnabled] - and a ; is wrapping around enabled? - jr z, .noWrappingAround - ld a, [wMaxMenuItem] - ld [wCurrentMenuItem], a ; wrap to the bottom of the menu - jr .checkOtherKeys -.checkIfDownPressed - bit 7, a - jr z, .checkOtherKeys -.downPressed - ld a, [wCurrentMenuItem] - inc a - ld c, a - ld a, [wMaxMenuItem] - cp c - jr nc, .notAtBottom -.alreadyAtBottom - ld a, [wMenuWrappingEnabled] - and a ; is wrapping around enabled? - jr z, .noWrappingAround - ld c, $00 ; wrap from bottom to top -.notAtBottom - ld a, c - ld [wCurrentMenuItem], a -.checkOtherKeys - ld a, [wMenuWatchedKeys] - and b ; does the menu care about any of the pressed keys? - jp z, .loop1 -.checkIfAButtonOrBButtonPressed - ld a, [hJoy5] - and A_BUTTON | B_BUTTON - jr z, .skipPlayingSound -.AButtonOrBButtonPressed - push hl - ld hl, wFlags_0xcd60 - bit 5, [hl] - pop hl - jr nz, .skipPlayingSound - ld a, SFX_PRESS_AB - call PlaySound -.skipPlayingSound - pop af - ld [H_DOWNARROWBLINKCNT2], a - pop af - ld [H_DOWNARROWBLINKCNT1], a ; restore previous values - xor a - ld [wMenuWrappingEnabled], a ; disable menu wrapping - ld a, [hJoy5] - ret -.noWrappingAround - ld a, [wMenuWatchMovingOutOfBounds] - and a ; should we return if the user tried to go past the top or bottom? - jr z, .checkOtherKeys - jr .checkIfAButtonOrBButtonPressed - -PlaceMenuCursor:: - ld a, [wTopMenuItemY] - and a ; is the y coordinate 0? - jr z, .adjustForXCoord - coord hl, 0, 0 - ld bc, SCREEN_WIDTH -.topMenuItemLoop - add hl, bc - dec a - jr nz, .topMenuItemLoop -.adjustForXCoord - ld a, [wTopMenuItemX] - ld b, 0 - ld c, a - add hl, bc - push hl - ld a, [wLastMenuItem] - and a ; was the previous menu id 0? - jr z, .checkForArrow1 - ld bc, 40 - push af - ld a, [hFlags_0xFFFA] - bit 1, a ; is the menu double spaced? - jr z, .doubleSpaced1 - ld bc, 20 -.doubleSpaced1 - pop af -.oldMenuItemLoop - add hl, bc - dec a - jr nz, .oldMenuItemLoop -.checkForArrow1 - ld a, [hl] - cp "▶" ; was an arrow next to the previously selected menu item? - jr nz, .skipClearingArrow -.clearArrow - ld a, [wTileBehindCursor] - ld [hl], a -.skipClearingArrow - pop hl - ld a, [wCurrentMenuItem] - and a - jr z, .checkForArrow2 - ld bc, 40 - push af - ld a, [hFlags_0xFFFA] - bit 1, a ; is the menu double spaced? - jr z, .doubleSpaced2 - ld bc, 20 -.doubleSpaced2 - pop af -.currentMenuItemLoop - add hl, bc - dec a - jr nz, .currentMenuItemLoop -.checkForArrow2 - ld a, [hl] - cp "▶" ; has the right arrow already been placed? - jr z, .skipSavingTile ; if so, don't lose the saved tile - ld [wTileBehindCursor], a ; save tile before overwriting with right arrow -.skipSavingTile - ld a, "▶" ; place right arrow - ld [hl], a - ld a, l - ld [wMenuCursorLocation], a - ld a, h - ld [wMenuCursorLocation + 1], a - ld a, [wCurrentMenuItem] - ld [wLastMenuItem], a - ret - -; This is used to mark a menu cursor other than the one currently being -; manipulated. In the case of submenus, this is used to show the location of -; the menu cursor in the parent menu. In the case of swapping items in list, -; this is used to mark the item that was first chosen to be swapped. -PlaceUnfilledArrowMenuCursor:: - ld b, a - ld a, [wMenuCursorLocation] - ld l, a - ld a, [wMenuCursorLocation + 1] - ld h, a - ld [hl], $ec ; outline of right arrow - ld a, b - ret - -; Replaces the menu cursor with a blank space. -EraseMenuCursor:: - ld a, [wMenuCursorLocation] - ld l, a - ld a, [wMenuCursorLocation + 1] - ld h, a - ld [hl], " " - ret - -; This toggles a blinking down arrow at hl on and off after a delay has passed. -; This is often called even when no blinking is occurring. -; The reason is that most functions that call this initialize H_DOWNARROWBLINKCNT1 to 0. -; The effect is that if the tile at hl is initialized with a down arrow, -; this function will toggle that down arrow on and off, but if the tile isn't -; initialized with a down arrow, this function does nothing. -; That allows this to be called without worrying about if a down arrow should -; be blinking. -HandleDownArrowBlinkTiming:: - ld a, [hl] - ld b, a - ld a, "▼" - cp b - jr nz, .downArrowOff -.downArrowOn - ld a, [H_DOWNARROWBLINKCNT1] - dec a - ld [H_DOWNARROWBLINKCNT1], a - ret nz - ld a, [H_DOWNARROWBLINKCNT2] - dec a - ld [H_DOWNARROWBLINKCNT2], a - ret nz - ld a, " " - ld [hl], a - ld a, $ff - ld [H_DOWNARROWBLINKCNT1], a - ld a, $06 - ld [H_DOWNARROWBLINKCNT2], a - ret -.downArrowOff - ld a, [H_DOWNARROWBLINKCNT1] - and a - ret z - dec a - ld [H_DOWNARROWBLINKCNT1], a - ret nz - dec a - ld [H_DOWNARROWBLINKCNT1], a - ld a, [H_DOWNARROWBLINKCNT2] - dec a - ld [H_DOWNARROWBLINKCNT2], a - ret nz - ld a, $06 - ld [H_DOWNARROWBLINKCNT2], a - ld a, "▼" - ld [hl], a - ret - -; The following code either enables or disables the automatic drawing of -; text boxes by DisplayTextID. Both functions cause DisplayTextID to wait -; for a button press after displaying text (unless [wEnteringCableClub] is set). - -EnableAutoTextBoxDrawing:: - xor a - jr AutoTextBoxDrawingCommon - -DisableAutoTextBoxDrawing:: - ld a, $01 - -AutoTextBoxDrawingCommon:: - ld [wAutoTextBoxDrawingControl], a - xor a - ld [wDoNotWaitForButtonPressAfterDisplayingText], a ; make DisplayTextID wait for button press - ret - -PrintText:: -; Print text hl at (1, 14). - push hl - ld a, MESSAGE_BOX - ld [wTextBoxID], a - call DisplayTextBoxID - call UpdateSprites - call Delay3 - pop hl -PrintText_NoCreatingTextBox:: - coord bc, 1, 14 - jp TextCommandProcessor - -FarPrintText:: -; print text b:hl at (1, 14) - ld a, [H_LOADEDROMBANK] - push af - ld a, b - call BankswitchCommon - call PrintText - pop af - call BankswitchCommon - ret - -PrintNumber:: -; Print the c-digit, b-byte value at de. -; Allows 2 to 7 digits. For 1-digit numbers, add -; the value to char "0" instead of calling PrintNumber. -; Flags LEADING_ZEROES and LEFT_ALIGN can be given -; in bits 7 and 6 of b respectively. - push bc - xor a - ld [H_PASTLEADINGZEROES], a - ld [H_NUMTOPRINT], a - ld [H_NUMTOPRINT + 1], a - ld a, b - and $f - cp 1 - jr z, .byte - cp 2 - jr z, .word -.long - ld a, [de] - ld [H_NUMTOPRINT], a - inc de - ld a, [de] - ld [H_NUMTOPRINT + 1], a - inc de - ld a, [de] - ld [H_NUMTOPRINT + 2], a - jr .start - -.word - ld a, [de] - ld [H_NUMTOPRINT + 1], a - inc de - ld a, [de] - ld [H_NUMTOPRINT + 2], a - jr .start - -.byte - ld a, [de] - ld [H_NUMTOPRINT + 2], a - -.start - push de - - ld d, b - ld a, c - ld b, a - xor a - ld c, a - ld a, b - - cp 2 - jr z, .tens - cp 3 - jr z, .hundreds - cp 4 - jr z, .thousands - cp 5 - jr z, .ten_thousands - cp 6 - jr z, .hundred_thousands - -print_digit: macro - -if (\1) / $10000 - ld a, \1 / $10000 % $100 -else xor a -endc - ld [H_POWEROFTEN + 0], a - -if (\1) / $100 - ld a, \1 / $100 % $100 -else xor a -endc - ld [H_POWEROFTEN + 1], a - - ld a, \1 / $1 % $100 - ld [H_POWEROFTEN + 2], a - - call .PrintDigit - call .NextDigit -endm - -.millions print_digit 1000000 -.hundred_thousands print_digit 100000 -.ten_thousands print_digit 10000 -.thousands print_digit 1000 -.hundreds print_digit 100 - -.tens - ld c, 0 - ld a, [H_NUMTOPRINT + 2] -.mod - cp 10 - jr c, .ok - sub 10 - inc c - jr .mod -.ok - - ld b, a - ld a, [H_PASTLEADINGZEROES] - or c - ld [H_PASTLEADINGZEROES], a - jr nz, .past - call .PrintLeadingZero - jr .next -.past - ld a, "0" - add c - ld [hl], a -.next - - call .NextDigit -.ones - ld a, "0" - add b - ld [hli], a - pop de - dec de - pop bc - ret - -.PrintDigit: -; Divide by the current decimal place. -; Print the quotient, and keep the modulus. - ld c, 0 -.loop - ld a, [H_POWEROFTEN] - ld b, a - ld a, [H_NUMTOPRINT] - ld [H_SAVEDNUMTOPRINT], a - cp b - jr c, .underflow0 - sub b - ld [H_NUMTOPRINT], a - ld a, [H_POWEROFTEN + 1] - ld b, a - ld a, [H_NUMTOPRINT + 1] - ld [H_SAVEDNUMTOPRINT + 1], a - cp b - jr nc, .noborrow1 - - ld a, [H_NUMTOPRINT] - or 0 - jr z, .underflow1 - dec a - ld [H_NUMTOPRINT], a - ld a, [H_NUMTOPRINT + 1] -.noborrow1 - - sub b - ld [H_NUMTOPRINT + 1], a - ld a, [H_POWEROFTEN + 2] - ld b, a - ld a, [H_NUMTOPRINT + 2] - ld [H_SAVEDNUMTOPRINT + 2], a - cp b - jr nc, .noborrow2 - - ld a, [H_NUMTOPRINT + 1] - and a - jr nz, .borrowed - - ld a, [H_NUMTOPRINT] - and a - jr z, .underflow2 - dec a - ld [H_NUMTOPRINT], a - xor a -.borrowed - - dec a - ld [H_NUMTOPRINT + 1], a - ld a, [H_NUMTOPRINT + 2] -.noborrow2 - sub b - ld [H_NUMTOPRINT + 2], a - inc c - jr .loop - -.underflow2 - ld a, [H_SAVEDNUMTOPRINT + 1] - ld [H_NUMTOPRINT + 1], a -.underflow1 - ld a, [H_SAVEDNUMTOPRINT] - ld [H_NUMTOPRINT], a -.underflow0 - ld a, [H_PASTLEADINGZEROES] - or c - jr z, .PrintLeadingZero - - ld a, "0" - add c - ld [hl], a - ld [H_PASTLEADINGZEROES], a - ret - -.PrintLeadingZero: - bit BIT_LEADING_ZEROES, d - ret z - ld [hl], "0" - ret - -.NextDigit: -; Increment unless the number is left-aligned, -; leading zeroes are not printed, and no digits -; have been printed yet. - bit BIT_LEADING_ZEROES, d - jr nz, .inc - bit BIT_LEFT_ALIGN, d - jr z, .inc - ld a, [H_PASTLEADINGZEROES] - and a - ret z -.inc - inc hl - ret - - -CallFunctionInTable:: -; Call function a in jumptable hl. -; de is not preserved. - push hl - push de - push bc - add a - ld d, 0 - ld e, a - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .returnAddress - push de - jp hl -.returnAddress - pop bc - pop de - pop hl - ret - - -IsInArray:: -; Search an array at hl for the value in a. -; Entry size is de bytes. -; Return count b and carry if found. - ld b, 0 - -IsInRestOfArray:: - ld c, a -.loop - ld a, [hl] - cp -1 - jr z, .notfound - cp c - jr z, .found - inc b - add hl, de - jr .loop - -.notfound - and a - ret - -.found - scf - ret - -InitMapSprites:: - jpab _InitMapSprites - -RestoreScreenTilesAndReloadTilePatterns:: - call ClearSprites - ld a, $1 - ld [wUpdateSpritesEnabled], a - call ReloadMapSpriteTilePatterns - call LoadScreenTilesFromBuffer2 - call LoadTextBoxTilePatterns - call RunDefaultPaletteCommand - jr Delay3 - - -GBPalWhiteOutWithDelay3:: - call GBPalWhiteOut - -Delay3:: -; The bg map is updated each frame in thirds. -; Wait three frames to let the bg map fully update. - ld c, 3 - jp DelayFrames - -GBPalNormal:: -; Reset BGP and OBP0. - ld a, %11100100 ; 3210 - ld [rBGP], a - ld a, %11010000 ; 3100 - ld [rOBP0], a - call UpdateGBCPal_BGP - call UpdateGBCPal_OBP0 - call UpdateGBCPal_OBP1 - ret - -GBPalWhiteOut:: -; White out all palettes. - xor a - ld [rBGP], a - ld [rOBP0], a - ld [rOBP1], a - call UpdateGBCPal_BGP - call UpdateGBCPal_OBP0 - call UpdateGBCPal_OBP1 - ret - - -RunDefaultPaletteCommand:: - ld b, $ff -RunPaletteCommand:: - ld a, [wOnSGB] - and a - ret z - predef_jump _RunPaletteCommand - -GetHealthBarColor:: -; Return at hl the palette of -; an HP bar e pixels long. - ld a, e - cp 27 - ld d, 0 ; green - jr nc, .gotColor - cp 10 - inc d ; yellow - jr nc, .gotColor - inc d ; red -.gotColor - ld [hl], d - ret - -; Copy the current map's sprites' tile patterns to VRAM again after they have -; been overwritten by other tile patterns. -ReloadMapSpriteTilePatterns:: - ld hl, wFontLoaded - ld a, [hl] - push af - res 0, [hl] - push hl - xor a - ld [wSpriteSetID], a - call DisableLCD - call InitMapSprites - call EnableLCD - pop hl - pop af - ld [hl], a - call LoadPlayerSpriteGraphics - call LoadFontTilePatterns - jp UpdateSprites - - -GiveItem:: -; Give player quantity c of item b, -; and copy the item's name to wcf4b. -; Return carry on success. - ld a, b - ld [wd11e], a - ld [wcf91], a - ld a, c - ld [wItemQuantity], a - ld hl, wNumBagItems - call AddItemToInventory - ret nc - call GetItemName - call CopyStringToCF4B - scf - ret - -GivePokemon:: -; Give the player monster b at level c. - ld a, b - ld [wcf91], a - ld a, c - ld [wCurEnemyLVL], a - xor a ; PLAYER_PARTY_DATA - ld [wMonDataLocation], a - jpba _GivePokemon - -Random:: -; Return a random number in a. -; For battles, use BattleRandom. - push hl - push de - push bc - callba Random_ - ld a, [hRandomAdd] - pop bc - pop de - pop hl - ret - -BankswitchCommon:: - ld [H_LOADEDROMBANK], a - ld [MBC1RomBank], a - ret - -Bankswitch:: -; self-contained bankswitch, use this when not in the home bank -; switches to the bank in b - ld a, [H_LOADEDROMBANK] - push af - ld a, b - ld [H_LOADEDROMBANK], a - ld [MBC1RomBank], a - call JumpToAddress - pop bc - ld a, b - ld [H_LOADEDROMBANK], a - ld [MBC1RomBank], a - ret -JumpToAddress:: - jp hl - -SwitchSRAMBankAndLatchClockData:: - push af - ld a, $1 - ld [MBC1SRamBankingMode], a - ld a, SRAM_ENABLE - ld [MBC1SRamEnable], a - pop af - ld [MBC1SRamBank], a + ld [MBC1SRamBank], a ret PrepareRTCDataAndDisableSRAM:: @@ -4794,139 +281,5 @@ PrepareRTCDataAndDisableSRAM:: ret INCLUDE "home/predef.asm" - -UpdateCinnabarGymGateTileBlocks:: - callba UpdateCinnabarGymGateTileBlocks_ - ret ; again? - ;jp Bankswitch - -CheckForHiddenObjectOrBookshelfOrCardKeyDoor:: - ld a, [H_LOADEDROMBANK] - push af - ld a, [hJoyHeld] - bit 0, a ; A button - jr z, .nothingFound -; A button is pressed - callbs CheckForHiddenObject - ld a, [$ffee] - and a - jr nz, .hiddenObjectNotFound - xor a - ld [$ffeb], a - ld a, [wHiddenObjectFunctionRomBank] - call BankswitchCommon - call JumpToAddress - ld a, [$ffeb] - jr .done -.hiddenObjectNotFound - predef GetTileAndCoordsInFrontOfPlayer - callba PrintBookshelfText - ld a, [$ffdb] - and a - jr z, .done -.nothingFound - ld a, $ff -.done - ld [$ffeb], a - pop af - call BankswitchCommon - ret - -PrintPredefTextID:: - ld [hSpriteIndexOrTextID], a - ld hl, TextPredefs - call SetMapTextPointer - ld hl, wTextPredefFlag - set 0, [hl] - call DisplayTextID - -RestoreMapTextPointer:: - ld hl, wMapTextPtr - ld a, [$ffec] - ld [hli], a - ld a, [$ffec + 1] - ld [hl], a - ret - -SetMapTextPointer:: - ld a, [wMapTextPtr] - ld [$ffec], a - ld a, [wMapTextPtr + 1] - ld [$ffec + 1], a - ld a, l - ld [wMapTextPtr], a - ld a, h - ld [wMapTextPtr + 1], a - ret - -TextPredefs:: -const_value = 1 - - add_tx_pre CardKeySuccessText ; 01 - add_tx_pre CardKeyFailText ; 02 - add_tx_pre RedBedroomPCText ; 03 - add_tx_pre RedBedroomSNESText ; 04 - add_tx_pre PushStartText ; 05 - add_tx_pre SaveOptionText ; 06 - add_tx_pre StrengthsAndWeaknessesText ; 07 - add_tx_pre OakLabEmailText ; 08 - add_tx_pre AerodactylFossilText ; 09 - add_tx_pre Route15UpstairsBinocularsText ; 0A - add_tx_pre KabutopsFossilText ; 0B - add_tx_pre FanClubPicture1Text ; 0C - add_tx_pre FanClubPicture2Text ; 0D - add_tx_pre GymStatueText1 ; 0E - add_tx_pre GymStatueText2 ; 0F - add_tx_pre BookcaseText ; 10 - add_tx_pre ViridianCityPokecenterBenchGuyText ; 11 - add_tx_pre PewterCityPokecenterBenchGuyText ; 12 - add_tx_pre CeruleanCityPokecenterBenchGuyText ; 13 - add_tx_pre LavenderCityPokecenterBenchGuyText ; 14 - add_tx_pre VermilionCityPokecenterBenchGuyText ; 15 - add_tx_pre CeladonCityPokecenterBenchGuyText ; 16 - add_tx_pre CeladonCityHotelText ; 17 - add_tx_pre FuchsiaCityPokecenterBenchGuyText ; 18 - add_tx_pre CinnabarIslandPokecenterBenchGuyText ; 19 - add_tx_pre SaffronCityPokecenterBenchGuyText ; 1A - add_tx_pre MtMoonPokecenterBenchGuyText ; 1B - add_tx_pre RockTunnelPokecenterBenchGuyText ; 1C - add_tx_pre UnusedBenchGuyText1 ; 1D - add_tx_pre UnusedBenchGuyText2 ; 1E - add_tx_pre UnusedBenchGuyText3 ; 1F - add_tx_pre UnusedPredefText ; 20 - add_tx_pre PokemonCenterPCText ; 21 - add_tx_pre ViridianSchoolNotebook ; 22 - add_tx_pre ViridianSchoolBlackboard ; 23 - add_tx_pre JustAMomentText ; 24 - add_tx_pre OpenBillsPCText ; 25 - add_tx_pre FoundHiddenItemText ; 26 - add_tx_pre HiddenItemBagFullText ; 27 - add_tx_pre VermilionGymTrashText ; 28 - add_tx_pre IndigoPlateauHQText ; 29 - add_tx_pre GameCornerOutOfOrderText ; 2A - add_tx_pre GameCornerOutToLunchText ; 2B - add_tx_pre GameCornerSomeonesKeysText ; 2C - add_tx_pre FoundHiddenCoinsText ; 2D - add_tx_pre DroppedHiddenCoinsText ; 2E - add_tx_pre BillsHouseMonitorText ; 2F - add_tx_pre BillsHouseInitiatedText ; 30 - add_tx_pre BillsHousePokemonList ; 31 - add_tx_pre MagazinesText ; 32 - add_tx_pre CinnabarGymQuiz ; 33 - add_tx_pre GameCornerNoCoinsText ; 34 - add_tx_pre GameCornerCoinCaseText ; 35 - add_tx_pre LinkCableHelp ; 36 - add_tx_pre TMNotebook ; 37 - add_tx_pre FightingDojoText ; 38 - add_tx_pre EnemiesOnEverySideText ; 39 - add_tx_pre WhatGoesAroundComesAroundText ; 3A - add_tx_pre NewBicycleText ; 3B - add_tx_pre IndigoPlateauStatues ; 3C XXX unused - add_tx_pre VermilionGymTrashSuccessText1 ; 3D - add_tx_pre VermilionGymTrashSuccessText2 ; 3E - add_tx_pre VermilionGymTrashSuccessText3 ; 3F - add_tx_pre VermilionGymTrashFailText ; 40 - add_tx_pre TownMapText ; 41 - add_tx_pre BookOrSculptureText ; 42 - add_tx_pre ElevatorText ; 43 - add_tx_pre PokemonStuffText ; 44 +INCLUDE "home/hidden_objects.asm" +INCLUDE "home/predef_text.asm" diff --git a/home/array.asm b/home/array.asm new file mode 100644 index 000000000..256c58e1a --- /dev/null +++ b/home/array.asm @@ -0,0 +1,21 @@ +; skips a text entries, each of size NAME_LENGTH (like trainer name, OT name, rival name, ...) +; hl: base pointer, will be incremented by NAME_LENGTH * a +SkipFixedLengthTextEntries:: + and a + ret z + ld bc, NAME_LENGTH +.skipLoop + add hl, bc + dec a + jr nz, .skipLoop + ret + +AddNTimes:: +; add bc to hl a times + and a + ret z +.loop + add hl, bc + dec a + jr nz, .loop + ret diff --git a/home/array2.asm b/home/array2.asm new file mode 100644 index 000000000..f4ed8389e --- /dev/null +++ b/home/array2.asm @@ -0,0 +1,47 @@ +CallFunctionInTable:: +; Call function a in jumptable hl. +; de is not preserved. + push hl + push de + push bc + add a + ld d, 0 + ld e, a + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .returnAddress + push de + jp hl +.returnAddress + pop bc + pop de + pop hl + ret + +IsInArray:: +; Search an array at hl for the value in a. +; Entry size is de bytes. +; Return count b and carry if found. + ld b, 0 + +IsInRestOfArray:: + ld c, a +.loop + ld a, [hl] + cp -1 + jr z, .notfound + cp c + jr z, .found + inc b + add hl, de + jr .loop + +.notfound + and a + ret + +.found + scf + ret diff --git a/home/audio.asm b/home/audio.asm index fa7020eef..bf2537a75 100644 --- a/home/audio.asm +++ b/home/audio.asm @@ -93,7 +93,7 @@ UpdateMusicCTimes:: .loop push bc push hl - callba Audio1_UpdateMusic + farcall Audio1_UpdateMusic pop hl pop bc dec c @@ -144,11 +144,11 @@ Func_2223:: ld [wChannelSoundIDs + Ch6], a ld [wChannelSoundIDs + Ch7], a ld [wChannelSoundIDs + Ch8], a - ld [rNR10], a + ldh [rNR10], a ret StopAllMusic:: - ld a, $FF + ld a, SFX_STOP_ALL_MUSIC ld [wNewSoundID], a ; plays music specified by a. If value is $ff, music is stopped PlaySound:: @@ -200,7 +200,7 @@ PlaySound:: ret GetNextMusicByte:: - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af ld a, [wAudioROMBank] call BankswitchCommon @@ -256,7 +256,7 @@ StopAllAudio:: ret DetermineAudioFunction:: - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af ld a, [wAudioROMBank] call BankswitchCommon diff --git a/home/bankswitch.asm b/home/bankswitch.asm new file mode 100644 index 000000000..3e85e9559 --- /dev/null +++ b/home/bankswitch.asm @@ -0,0 +1,15 @@ +BankswitchHome:: +; switches to bank # in a +; Only use this when in the home bank! + ld [wBankswitchHomeTemp], a + ldh a, [hLoadedROMBank] + ld [wBankswitchHomeSavedROMBank], a + ld a, [wBankswitchHomeTemp] + call BankswitchCommon + ret + +BankswitchBack:: +; returns from BankswitchHome + ld a, [wBankswitchHomeSavedROMBank] + call BankswitchCommon + ret diff --git a/home/clear_sprites.asm b/home/clear_sprites.asm new file mode 100644 index 000000000..34f4b4ecf --- /dev/null +++ b/home/clear_sprites.asm @@ -0,0 +1,21 @@ +ClearSprites:: + xor a + ld hl, wOAMBuffer + ld b, 40 * 4 +.loop + ld [hli], a + dec b + jr nz, .loop + ret + +HideSprites:: + ld a, 160 + ld hl, wOAMBuffer + ld de, 4 + ld b, 40 +.loop + ld [hl], a + add hl, de + dec b + jr nz, .loop + ret diff --git a/home/compare.asm b/home/compare.asm new file mode 100644 index 000000000..e2da78577 --- /dev/null +++ b/home/compare.asm @@ -0,0 +1,11 @@ +; Compare strings, c bytes in length, at de and hl. +; Often used to compare big endian numbers in battle calculations. +StringCmp:: + ld a, [de] + cp [hl] + ret nz + inc de + inc hl + dec c + jr nz, StringCmp + ret diff --git a/home/copy.asm b/home/copy.asm index d22284051..b239d951a 100644 --- a/home/copy.asm +++ b/home/copy.asm @@ -1,7 +1,7 @@ FarCopyData:: ; Copy bc bytes from a:hl to de. ld [wFarCopyDataSavedROMBank], a - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af ld a, [wFarCopyDataSavedROMBank] call BankswitchCommon @@ -12,17 +12,17 @@ FarCopyData:: CopyData:: ; Copy bc bytes from hl to de. - ld a,b + ld a, b and a jr z, .copybytes - ld a,c + ld a, c and a ; is lower byte 0 jr z, .loop inc b ; if not, increment b as there are <$100 bytes to copy .loop call .copybytes dec b - jr nz,.loop + jr nz, .loop ret .copybytes @@ -34,41 +34,41 @@ CopyData:: ret CopyVideoDataAlternate:: - ld a, [rLCDC] - bit 7,a ; LCD enabled? + ldh a, [rLCDC] + bit 7, a ; LCD enabled? jp nz, CopyVideoData ; if yes, then copy video data push hl - ld h,d - ld l,e + ld h, d + ld l, e pop de - ld a,b ; save bank + ld a, b ; save bank push af swap c - ld a,$f + ld a, $f and c - ld b,a - ld a,$f0 + ld b, a + ld a, $f0 and c - ld c,a + ld c, a pop af jp FarCopyData CopyVideoDataDoubleAlternate:: - ld a, [rLCDC] - bit 7,a ; LCD enabled? + ldh a, [rLCDC] + bit 7, a ; LCD enabled? jp nz, CopyVideoDataDouble ; if yes, then copy video data push de - ld d,h - ld e,l - ld a,b + ld d, h + ld e, l + ld a, b push af ; save bank to switch to - ld h,$0 - ld l,c - add hl,hl ; get raw length of bytes to copy - add hl,hl - add hl,hl - ld b,h - ld c,l + ld h, $0 + ld l, c + add hl, hl ; get raw length of bytes to copy + add hl, hl + add hl, hl + ld b, h + ld c, l pop af pop hl jp FarCopyDataDouble diff --git a/home/copy2.asm b/home/copy2.asm index c14112bb3..bff265706 100644 --- a/home/copy2.asm +++ b/home/copy2.asm @@ -2,7 +2,7 @@ FarCopyDataDouble:: ; Expand bc bytes of 1bpp image data ; from a:de to 2bpp data at hl. ld [wFarCopyDataSavedROMBank], a - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af ld a, [wFarCopyDataSavedROMBank] call BankswitchCommon @@ -38,26 +38,26 @@ CopyVideoData:: ; tiles from b:de to hl, 8 tiles at a time. ; This takes c/8 frames. - ld a, [H_AUTOBGTRANSFERENABLED] + ldh a, [hAutoBGTransferEnabled] push af xor a ; disable auto-transfer while copying - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af ld a, b call BankswitchCommon ld a, e - ld [H_VBCOPYSRC], a + ldh [hVBlankCopySource], a ld a, d - ld [H_VBCOPYSRC + 1], a + ldh [hVBlankCopySource + 1], a ld a, l - ld [H_VBCOPYDEST], a + ldh [hVBlankCopyDest], a ld a, h - ld [H_VBCOPYDEST + 1], a + ldh [hVBlankCopyDest + 1], a .loop ld a, c @@ -65,17 +65,17 @@ CopyVideoData:: jr nc, .keepgoing .done - ld [H_VBCOPYSIZE], a + ldh [hVBlankCopySize], a call DelayFrame pop af call BankswitchCommon pop af - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ret .keepgoing ld a, 8 - ld [H_VBCOPYSIZE], a + ldh [hVBlankCopySize], a call DelayFrame ld a, c sub 8 @@ -86,25 +86,25 @@ CopyVideoDataDouble:: ; Wait for the next VBlank, then copy c 1bpp ; tiles from b:de to hl, 8 tiles at a time. ; This takes c/8 frames. - ld a, [H_AUTOBGTRANSFERENABLED] + ldh a, [hAutoBGTransferEnabled] push af xor a ; disable auto-transfer while copying - ld [H_AUTOBGTRANSFERENABLED], a - ld a, [H_LOADEDROMBANK] + ldh [hAutoBGTransferEnabled], a + ldh a, [hLoadedROMBank] push af ld a, b call BankswitchCommon ld a, e - ld [H_VBCOPYDOUBLESRC], a + ldh [hVBlankCopyDoubleSource], a ld a, d - ld [H_VBCOPYDOUBLESRC + 1], a + ldh [hVBlankCopyDoubleSource + 1], a ld a, l - ld [H_VBCOPYDOUBLEDEST], a + ldh [hVBlankCopyDoubleDest], a ld a, h - ld [H_VBCOPYDOUBLEDEST + 1], a + ldh [hVBlankCopyDoubleDest + 1], a .loop ld a, c @@ -112,17 +112,17 @@ CopyVideoDataDouble:: jr nc, .keepgoing .done - ld [H_VBCOPYDOUBLESIZE], a + ldh [hVBlankCopyDoubleSize], a call DelayFrame pop af call BankswitchCommon pop af - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ret .keepgoing ld a, 8 - ld [H_VBCOPYDOUBLESIZE], a + ldh [hVBlankCopyDoubleSize], a call DelayFrame ld a, c sub 8 @@ -131,10 +131,10 @@ CopyVideoDataDouble:: FillMemory:: push af - ld a,b + ld a, b and a jr z, .eightbitcopyamount - ld a,c + ld a, c and a jr z, .mulitpleof0x100 .eightbitcopyamount @@ -142,7 +142,7 @@ FillMemory:: .mulitpleof0x100 pop af .loop - ld [hli],a + ld [hli], a dec c jr nz, .loop dec b @@ -154,7 +154,7 @@ GetFarByte:: ; and return it in a push bc ld b, a - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af ld a, b call BankswitchCommon @@ -190,32 +190,32 @@ CopyScreenTileBufferToVRAM:: ld c, 6 ld hl, $600 * 0 - coord de, 0, 6 * 0 + decoord 0, 6 * 0 call .setup call DelayFrame ld hl, $600 * 1 - coord de, 0, 6 * 1 + decoord 0, 6 * 1 call .setup call DelayFrame ld hl, $600 * 2 - coord de, 0, 6 * 2 + decoord 0, 6 * 2 call .setup jp DelayFrame .setup ld a, d - ld [H_VBCOPYBGSRC+1], a + ldh [hVBlankCopyBGSource+1], a call GetRowColAddressBgMap ld a, l - ld [H_VBCOPYBGDEST], a + ldh [hVBlankCopyBGDest], a ld a, h - ld [H_VBCOPYBGDEST+1], a + ldh [hVBlankCopyBGDest+1], a ld a, c - ld [H_VBCOPYBGNUMROWS], a + ldh [hVBlankCopyBGNumRows], a ld a, e - ld [H_VBCOPYBGSRC], a + ldh [hVBlankCopyBGSource], a ret ClearScreen:: @@ -223,7 +223,7 @@ ClearScreen:: ; for the bg map to update. ld bc, 20 * 18 inc b - coord hl, 0, 0 + hlcoord 0, 0 ld a, " " .loop ld [hli], a diff --git a/home/copy_string.asm b/home/copy_string.asm new file mode 100644 index 000000000..7f86e501b --- /dev/null +++ b/home/copy_string.asm @@ -0,0 +1,13 @@ +; copies a string from [de] to [wcf4b] +CopyStringToCF4B:: + ld hl, wcf4b + ; fall through + +; copies a string from [de] to [hl] +CopyString:: + ld a, [de] + inc de + ld [hli], a + cp "@" + jr nz, CopyString + ret diff --git a/home/count_set_bits.asm b/home/count_set_bits.asm new file mode 100644 index 000000000..73f7fa9c1 --- /dev/null +++ b/home/count_set_bits.asm @@ -0,0 +1,24 @@ +; function to count how many bits are set in a string of bytes +; INPUT: +; hl = address of string of bytes +; b = length of string of bytes +; OUTPUT: +; [wNumSetBits] = number of set bits +CountSetBits:: + ld c, 0 +.loop + ld a, [hli] + ld e, a + ld d, 8 +.innerLoop ; count how many bits are set in the current byte + srl e + ld a, 0 + adc c + ld c, a + dec d + jr nz, .innerLoop + dec b + jr nz, .loop + ld a, c + ld [wNumSetBits], a + ret diff --git a/home/delay.asm b/home/delay.asm new file mode 100644 index 000000000..eba865c27 --- /dev/null +++ b/home/delay.asm @@ -0,0 +1,32 @@ +DelayFrames:: +; wait c frames + call DelayFrame + dec c + jr nz, DelayFrames + ret + +PlaySoundWaitForCurrent:: + push af + call WaitForSoundToFinish + pop af + jp PlaySound + +; Wait for sound to finish playing +WaitForSoundToFinish:: + ld a, [wLowHealthAlarm] + and $80 + ret nz + push hl +.waitLoop + ld hl, wChannelSoundIDs + Ch5 + xor a + or [hl] + inc hl + or [hl] + inc hl + inc hl + or [hl] + and a + jr nz, .waitLoop + pop hl + ret diff --git a/home/fade.asm b/home/fade.asm index 1259f92b9..f38878b1b 100644 --- a/home/fade.asm +++ b/home/fade.asm @@ -11,11 +11,11 @@ LoadGBPal:: dec h .ok ld a, [hli] - ld [rBGP], a + ldh [rBGP], a ld a, [hli] - ld [rOBP0], a + ldh [rOBP0], a ld a, [hli] - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 @@ -32,11 +32,11 @@ GBFadeOutToWhite:: GBFadeIncCommon: ld a, [hli] - ld [rBGP], a + ldh [rBGP], a ld a, [hli] - ld [rOBP0], a + ldh [rOBP0], a ld a, [hli] - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 @@ -57,11 +57,11 @@ GBFadeInFromWhite:: GBFadeDecCommon: ld a, [hld] - ld [rOBP1], a + ldh [rOBP1], a ld a, [hld] - ld [rOBP0], a + ldh [rOBP0], a ld a, [hld] - ld [rBGP], a + ldh [rBGP], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 diff --git a/home/fade_audio.asm b/home/fade_audio.asm new file mode 100644 index 000000000..f4e77c3f3 --- /dev/null +++ b/home/fade_audio.asm @@ -0,0 +1,46 @@ +FadeOutAudio:: + ld a, [wAudioFadeOutControl] + and a ; currently fading out audio? + jr nz, .fadingOut + ld a, [wd72c] + bit 1, a + ret nz + ld a, $77 + ldh [rNR50], a + ret +.fadingOut + ld a, [wAudioFadeOutCounter] + and a + jr z, .counterReachedZero + dec a + ld [wAudioFadeOutCounter], a + ret +.counterReachedZero + ld a, [wAudioFadeOutCounterReloadValue] + ld [wAudioFadeOutCounter], a + ldh a, [rNR50] + and a ; has the volume reached 0? + jr z, .fadeOutComplete + ld b, a + and $f + dec a + ld c, a + ld a, b + and $f0 + swap a + dec a + swap a + or c + ldh [rNR50], a + ret +.fadeOutComplete + ld a, [wAudioFadeOutControl] + ld b, a + xor a + ld [wAudioFadeOutControl], a + call StopAllMusic + ld a, [wAudioSavedROMBank] + ld [wAudioROMBank], a + ld a, b + ld [wNewSoundID], a + jp PlaySound diff --git a/home/give.asm b/home/give.asm new file mode 100644 index 000000000..cbfd03107 --- /dev/null +++ b/home/give.asm @@ -0,0 +1,26 @@ +GiveItem:: +; Give player quantity c of item b, +; and copy the item's name to wcf4b. +; Return carry on success. + ld a, b + ld [wd11e], a + ld [wcf91], a + ld a, c + ld [wItemQuantity], a + ld hl, wNumBagItems + call AddItemToInventory + ret nc + call GetItemName + call CopyStringToCF4B + scf + ret + +GivePokemon:: +; Give the player monster b at level c. + ld a, b + ld [wcf91], a + ld a, c + ld [wCurEnemyLVL], a + xor a ; PLAYER_PARTY_DATA + ld [wMonDataLocation], a + farjp _GivePokemon diff --git a/home/header.asm b/home/header.asm new file mode 100644 index 000000000..671f29b1f --- /dev/null +++ b/home/header.asm @@ -0,0 +1,81 @@ +; rst vectors (unused) + +SECTION "rst0", ROM0[$0000] + rst $38 + + ds $08 - @, 0 ; unused + +SECTION "rst8", ROM0[$0008] + rst $38 + + ds $10 - @, 0 ; unused + +SECTION "rst10", ROM0[$0010] + rst $38 + + ds $18 - @, 0 ; unused + +SECTION "rst18", ROM0[$0018] + rst $38 + + ds $20 - @, 0 ; unused + +SECTION "rst20", ROM0[$0020] + rst $38 + + ds $28 - @, 0 ; unused + +SECTION "rst28", ROM0[$0028] + rst $38 + + ds $30 - @, 0 ; unused + +SECTION "rst30", ROM0[$0030] + rst $38 + + ds $38 - @, 0 ; unused + +SECTION "rst38", ROM0[$0038] + rst $38 + + ds $40 - @, 0 ; unused + + +; Game Boy hardware interrupts + +SECTION "vblank", ROM0[$0040] + jp VBlank + + ds $48 - @, 0 ; unused + +SECTION "lcd", ROM0[$0048] + jp LCDC + + ds $50 - @, 0 ; unused + +SECTION "timer", ROM0[$0050] + jp Timer + + ds $58 - @, 0 ; unused + +SECTION "serial", ROM0[$0058] + jp Serial + + ds $60 - @, 0 ; unused + +SECTION "joypad", ROM0[$0060] + reti + + +SECTION "Header", ROM0[$0100] + +Start:: +; Nintendo requires all Game Boy ROMs to begin with a nop ($00) and a jp ($C3) +; to the starting address. + nop + jp _Start + +; The Game Boy cartridge header data is patched over by rgbfix. +; This makes sure it doesn't get used for anything else. + + ds $0150 - @ diff --git a/home/hidden_objects.asm b/home/hidden_objects.asm new file mode 100644 index 000000000..40c49c3e0 --- /dev/null +++ b/home/hidden_objects.asm @@ -0,0 +1,35 @@ +UpdateCinnabarGymGateTileBlocks:: + farcall UpdateCinnabarGymGateTileBlocks_ + ret + +CheckForHiddenObjectOrBookshelfOrCardKeyDoor:: + ldh a, [hLoadedROMBank] + push af + ldh a, [hJoyHeld] + bit 0, a ; A button + jr z, .nothingFound +; A button is pressed + callbs CheckForHiddenObject + ldh a, [hDidntFindAnyHiddenObject] + and a + jr nz, .hiddenObjectNotFound + xor a + ldh [hItemAlreadyFound], a + ld a, [wHiddenObjectFunctionRomBank] + call BankswitchCommon + call JumpToAddress + ldh a, [hItemAlreadyFound] + jr .done +.hiddenObjectNotFound + predef GetTileAndCoordsInFrontOfPlayer + farcall PrintBookshelfText + ldh a, [hFFDB] + and a + jr z, .done +.nothingFound + ld a, $ff +.done + ldh [hItemAlreadyFound], a + pop af + call BankswitchCommon + ret diff --git a/home/init.asm b/home/init.asm index a2f7f7862..878f329a0 100644 --- a/home/init.asm +++ b/home/init.asm @@ -21,28 +21,28 @@ rLCDC_DEFAULT EQU %11100011 di xor a - ld [rIF], a - ld [rIE], a - ld [rSCX], a - ld [rSCY], a - ld [rSB], a - ld [rSC], a - ld [rWX], a - ld [rWY], a - ld [rTMA], a - ld [rTAC], a - ld [rBGP], a - ld [rOBP0], a - ld [rOBP1], a + ldh [rIF], a + ldh [rIE], a + ldh [rSCX], a + ldh [rSCY], a + ldh [rSB], a + ldh [rSC], a + ldh [rWX], a + ldh [rWY], a + ldh [rTMA], a + ldh [rTAC], a + ldh [rBGP], a + ldh [rOBP0], a + ldh [rOBP1], a ld a, rLCDC_ENABLE_MASK - ld [rLCDC], a + ldh [rLCDC], a call DisableLCD ld sp, wStack - ld hl, $c000 ; start of WRAM - ld bc, $2000 ; size of WRAM + ld hl, WRAM0_Begin + ld bc, WRAM1_End - WRAM0_Begin .loop ld [hl], 0 inc hl @@ -53,46 +53,46 @@ rLCDC_DEFAULT EQU %11100011 call ClearVram - ld hl, $ff80 - ld bc, $fffe - $ff80 + ld hl, HRAM_Begin + ld bc, HRAM_End - HRAM_Begin - 1 call FillMemory call ClearSprites - ld a, Bank(WriteDMACodeToHRAM) - ld [H_LOADEDROMBANK], a + ld a, BANK(WriteDMACodeToHRAM) + ldh [hLoadedROMBank], a ld [MBC1RomBank], a call WriteDMACodeToHRAM xor a - ld [hTilesetType], a - ld [rSTAT], a - ld [hSCX], a - ld [hSCY], a - ld [rIF], a + ldh [hTilesetType], a + ldh [rSTAT], a + ldh [hSCX], a + ldh [hSCY], a + ldh [rIF], a ld [wc0f3], a ld [wc0f4], a ld a, 1 << VBLANK + 1 << TIMER + 1 << SERIAL - ld [rIE], a + ldh [rIE], a ld a, 144 ; move the window off-screen - ld [hWY], a - ld [rWY], a + ldh [hWY], a + ldh [rWY], a ld a, 7 - ld [rWX], a + ldh [rWX], a ld a, CONNECTION_NOT_ESTABLISHED - ld [hSerialConnectionStatus], a + ldh [hSerialConnectionStatus], a - ld h, vBGMap0 / $100 + ld h, HIGH(vBGMap0) call ClearBgMap - ld h, vBGMap1 / $100 + ld h, HIGH(vBGMap1) call ClearBgMap ld a, rLCDC_DEFAULT - ld [rLCDC], a + ldh [rLCDC], a ld a, 16 - ld [hSoftReset], a + ldh [hSoftReset], a call StopAllSounds ei @@ -103,9 +103,9 @@ rLCDC_DEFAULT EQU %11100011 ld [wAudioROMBank], a ld [wAudioSavedROMBank], a ld a, $9c - ld [H_AUTOBGTRANSFERDEST + 1], a + ldh [hAutoBGTransferDest + 1], a xor a - ld [H_AUTOBGTRANSFERDEST], a + ldh [hAutoBGTransferDest], a dec a ld [wUpdateSpritesEnabled], a @@ -116,13 +116,13 @@ rLCDC_DEFAULT EQU %11100011 call GBPalNormal call ClearSprites ld a, rLCDC_DEFAULT - ld [rLCDC], a + ldh [rLCDC], a jp SetDefaultNamesBeforeTitlescreen -ClearVram: - ld hl, $8000 - ld bc, $2000 +ClearVram:: + ld hl, VRAM_Begin + ld bc, VRAM_End - VRAM_Begin xor a jp FillMemory diff --git a/home/inventory.asm b/home/inventory.asm new file mode 100644 index 000000000..1100666f4 --- /dev/null +++ b/home/inventory.asm @@ -0,0 +1,38 @@ +; subtracts the amount the player paid from their money +; OUTPUT: carry = 0(success) or 1(fail because there is not enough money) +SubtractAmountPaidFromMoney:: + farjp SubtractAmountPaidFromMoney_ + +; adds the amount the player sold to their money +AddAmountSoldToMoney:: + ld de, wPlayerMoney + 2 + ld hl, hMoney + 2 ; total price of items + ld c, 3 ; length of money in bytes + predef AddBCDPredef ; add total price to money + ld a, MONEY_BOX + ld [wTextBoxID], a + call DisplayTextBoxID ; redraw money text box + ld a, SFX_PURCHASE + call PlaySoundWaitForCurrent + jp WaitForSoundToFinish + +; function to remove an item (in varying quantities) from the player's bag or PC box +; INPUT: +; HL = address of inventory (either wNumBagItems or wNumBoxItems) +; [wWhichPokemon] = index (within the inventory) of the item to remove +; [wItemQuantity] = quantity to remove +RemoveItemFromInventory:: + homecall RemoveItemFromInventory_ + ret + +; function to add an item (in varying quantities) to the player's bag or PC box +; INPUT: +; HL = address of inventory (either wNumBagItems or wNumBoxItems) +; [wcf91] = item ID +; [wItemQuantity] = item quantity +; sets carry flag if successful, unsets carry flag if unsuccessful +AddItemToInventory:: + push bc + homecall_sf AddItemToInventory_ + pop bc + ret diff --git a/home/item.asm b/home/item.asm new file mode 100644 index 000000000..f27d46f4d --- /dev/null +++ b/home/item.asm @@ -0,0 +1,49 @@ +; uses an item +; UseItem is used with dummy items to perform certain other functions as well +; INPUT: +; [wcf91] = item ID +; OUTPUT: +; [wActionResultOrTookBattleTurn] = success +; 00: unsuccessful +; 01: successful +; 02: not able to be used right now, no extra menu displayed (only certain items use this) +UseItem:: + farjp UseItem_ + +; confirms the item toss and then tosses the item +; INPUT: +; hl = address of inventory (either wNumBagItems or wNumBoxItems) +; [wcf91] = item ID +; [wWhichPokemon] = index of item within inventory +; [wItemQuantity] = quantity to toss +; OUTPUT: +; clears carry flag if the item is tossed, sets carry flag if not +TossItem:: + ldh a, [hLoadedROMBank] + push af + ld a, BANK(TossItem_) + ldh [hLoadedROMBank], a + ld [MBC1RomBank], a + call TossItem_ + pop de + ld a, d + ldh [hLoadedROMBank], a + ld [MBC1RomBank], a + ret + +; checks if an item is a key item +; INPUT: +; [wcf91] = item ID +; OUTPUT: +; [wIsKeyItem] = result +; 00: item is not key item +; 01: item is key item +IsKeyItem:: + push hl + push de + push bc + farcall IsKeyItem_ + pop bc + pop de + pop hl + ret diff --git a/home/item_price.asm b/home/item_price.asm new file mode 100644 index 000000000..d8c2068e1 --- /dev/null +++ b/home/item_price.asm @@ -0,0 +1,39 @@ +GetItemPrice:: +; Stores item's price as BCD at hItemPrice (3 bytes) +; Input: [wcf91] = item id + ldh a, [hLoadedROMBank] + push af + ld a, [wListMenuID] + cp MOVESLISTMENU + ld a, BANK(ItemPrices) + jr nz, .ok + ld a, $f ; hardcoded Bank +.ok + call BankswitchCommon + ld hl, wItemPrices + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wcf91] ; a contains item id + cp HM01 + jr nc, .getTMPrice + ld bc, $3 +.loop + add hl, bc + dec a + jr nz, .loop + dec hl + ld a, [hld] + ldh [hItemPrice + 2], a + ld a, [hld] + ldh [hItemPrice + 1], a + ld a, [hl] + ldh [hItemPrice], a + jr .done +.getTMPrice + callbs GetMachinePrice +.done + ld de, hItemPrice + pop af + call BankswitchCommon + ret diff --git a/home/joypad.asm b/home/joypad.asm new file mode 100644 index 000000000..15f10fe26 --- /dev/null +++ b/home/joypad.asm @@ -0,0 +1,5 @@ +Joypad:: + homecall_jump _Joypad + +ReadJoypad:: + homecall_jump ReadJoypad_ diff --git a/home/joypad2.asm b/home/joypad2.asm new file mode 100644 index 000000000..30f9f7880 --- /dev/null +++ b/home/joypad2.asm @@ -0,0 +1,100 @@ +; this function is used when lower button sensitivity is wanted (e.g. menus) +; OUTPUT: [hJoy5] = pressed buttons in usual format +; there are two flags that control its functionality, [hJoy6] and [hJoy7] +; there are essentially three modes of operation +; 1. Get newly pressed buttons only +; ([hJoy7] == 0, [hJoy6] == any) +; Just copies [hJoyPressed] to [hJoy5]. +; 2. Get currently pressed buttons at low sample rate with delay +; ([hJoy7] == 1, [hJoy6] != 0) +; If the user holds down buttons for more than half a second, +; report buttons as being pressed up to 12 times per second thereafter. +; If the user holds down buttons for less than half a second, +; report only one button press. +; 3. Same as 2, but report no buttons as pressed if A or B is held down. +; ([hJoy7] == 1, [hJoy6] == 0) +JoypadLowSensitivity:: + call Joypad + ldh a, [hJoy7] ; flag + and a ; get all currently pressed buttons or only newly pressed buttons? + ldh a, [hJoyPressed] ; newly pressed buttons + jr z, .storeButtonState + ldh a, [hJoyHeld] ; all currently pressed buttons +.storeButtonState + ldh [hJoy5], a + ldh a, [hJoyPressed] ; newly pressed buttons + and a ; have any buttons been newly pressed since last check? + jr z, .noNewlyPressedButtons +.newlyPressedButtons + ld a, 30 ; half a second delay + ldh [hFrameCounter], a + ret +.noNewlyPressedButtons + ldh a, [hFrameCounter] + and a ; is the delay over? + jr z, .delayOver +.delayNotOver + xor a + ldh [hJoy5], a ; report no buttons as pressed + ret +.delayOver +; if [hJoy6] = 0 and A or B is pressed, report no buttons as pressed + ldh a, [hJoyHeld] + and A_BUTTON | B_BUTTON + jr z, .setShortDelay + ldh a, [hJoy6] ; flag + and a + jr nz, .setShortDelay + xor a + ldh [hJoy5], a +.setShortDelay + ld a, 5 ; 1/12 of a second delay + ldh [hFrameCounter], a + ret + +WaitForTextScrollButtonPress:: + ldh a, [hDownArrowBlinkCount1] + push af + ldh a, [hDownArrowBlinkCount2] + push af + xor a + ldh [hDownArrowBlinkCount1], a + ld a, $6 + ldh [hDownArrowBlinkCount2], a +.loop + push hl + ld a, [wTownMapSpriteBlinkingEnabled] + and a + jr z, .skipAnimation + push de + push bc + callfar TownMapSpriteBlinkingAnimation + pop bc + pop de +.skipAnimation + hlcoord 18, 16 + call HandleDownArrowBlinkTiming + pop hl + call JoypadLowSensitivity + predef CableClub_Run + ldh a, [hJoy5] + and A_BUTTON | B_BUTTON + jr z, .loop + pop af + ldh [hDownArrowBlinkCount2], a + pop af + ldh [hDownArrowBlinkCount1], a + ret + +; (unless in link battle) waits for A or B being pressed and outputs the scrolling sound effect +ManualTextScroll:: + ld a, [wLinkState] + cp LINK_STATE_BATTLING + jr z, .inLinkBattle + call WaitForTextScrollButtonPress + call WaitForSoundToFinish + ld a, SFX_PRESS_AB + jp PlaySound +.inLinkBattle + ld c, 65 + jp DelayFrames diff --git a/home/lcd.asm b/home/lcd.asm new file mode 100644 index 000000000..72fc70ed0 --- /dev/null +++ b/home/lcd.asm @@ -0,0 +1,25 @@ +DisableLCD:: + xor a + ldh [rIF], a + ldh a, [rIE] + ld b, a + res 0, a + ldh [rIE], a + +.wait + ldh a, [rLY] + cp LY_VBLANK + jr nz, .wait + + ldh a, [rLCDC] + and $ff ^ rLCDC_ENABLE_MASK + ldh [rLCDC], a + ld a, b + ldh [rIE], a + ret + +EnableLCD:: + ldh a, [rLCDC] + set rLCDC_ENABLE, a + ldh [rLCDC], a + ret diff --git a/home/lcdc.asm b/home/lcdc.asm index 6172dd0d2..dd3fb2fb1 100644 --- a/home/lcdc.asm +++ b/home/lcdc.asm @@ -1,15 +1,15 @@ LCDC:: push af - ld a, [hLCDCPointer] ; doubles as enabling byte + ldh a, [hLCDCPointer] ; doubles as enabling byte and a jr z, .noLCDCInterrupt push hl ; [C700 + [rLY]] --> [FF00 + [hLCDCPointer]] - ld a, [rLY] + ldh a, [rLY] ld l, a ld h, wLYOverrides / $100 ld h, [hl] ; h != not part of pointer - ld a, [hLCDCPointer] + ldh a, [hLCDCPointer] ld l, a ld a, h ld h, $ff diff --git a/home/list_menu.asm b/home/list_menu.asm new file mode 100644 index 000000000..f04804601 --- /dev/null +++ b/home/list_menu.asm @@ -0,0 +1,523 @@ +; INPUT: +; [wListMenuID] = list menu ID +; [wListPointer] = address of the list (2 bytes) +DisplayListMenuID:: + xor a + ldh [hAutoBGTransferEnabled], a ; disable auto-transfer + ld a, 1 + ldh [hJoy7], a ; joypad state update flag + ld a, [wBattleType] + and a ; is it the Old Man battle? + jr nz, .specialBattleType + ld a, $01 ; hardcoded bank + jr .bankswitch +.specialBattleType ; Old Man battle + ld a, BANK(DisplayBattleMenu) +.bankswitch + call BankswitchHome + ld hl, wd730 + set 6, [hl] ; turn off letter printing delay + xor a + ld [wMenuItemToSwap], a ; 0 means no item is currently being swapped + ld [wListCount], a + ld a, [wListPointer] + ld l, a + ld a, [wListPointer + 1] + ld h, a ; hl = address of the list + ld a, [hl] ; the first byte is the number of entries in the list + ld [wListCount], a + ld a, LIST_MENU_BOX + ld [wTextBoxID], a + call DisplayTextBoxID ; draw the menu text box + call UpdateSprites ; disable sprites behind the text box +; the code up to .skipMovingSprites appears to be useless + hlcoord 4, 2 ; coordinates of upper left corner of menu text box + lb de, 9, 14 ; height and width of menu text box + ld a, [wListMenuID] + and a ; PCPOKEMONLISTMENU? + jr nz, .skipMovingSprites + call UpdateSprites +.skipMovingSprites + ld a, 1 ; max menu item ID is 1 if the list has less than 2 entries + ld [wMenuWatchMovingOutOfBounds], a + ld a, [wListCount] + cp 2 ; does the list have less than 2 entries? + jr c, .setMenuVariables + ld a, 2 ; max menu item ID is 2 if the list has at least 2 entries +.setMenuVariables + ld [wMaxMenuItem], a + ld a, 4 + ld [wTopMenuItemY], a + ld a, 5 + ld [wTopMenuItemX], a + ld a, A_BUTTON | B_BUTTON | SELECT + ld [wMenuWatchedKeys], a + ld c, 10 + call DelayFrames + +DisplayListMenuIDLoop:: + xor a + ldh [hAutoBGTransferEnabled], a ; disable transfer + call PrintListMenuEntries + ld a, 1 + ldh [hAutoBGTransferEnabled], a ; enable transfer + call Delay3 + ld a, [wBattleType] + and a ; is it the Old Man battle? + jr z, .notOldManBattle +.oldManBattle + ld a, "▶" + ldcoord_a 5, 4 ; place menu cursor in front of first menu entry + ld c, 20 + call DelayFrames + xor a + ld [wCurrentMenuItem], a + hlcoord 5, 4 + ld a, l + ld [wMenuCursorLocation], a + ld a, h + ld [wMenuCursorLocation + 1], a + jr .buttonAPressed +.notOldManBattle + call LoadGBPal + call HandleMenuInput + push af + call PlaceMenuCursor + pop af + bit 0, a ; was the A button pressed? + jp z, .checkOtherKeys +.buttonAPressed + ld a, [wCurrentMenuItem] + call PlaceUnfilledArrowMenuCursor + +; pointless because both values are overwritten before they are read + ld a, $01 + ld [wMenuExitMethod], a + ld [wChosenMenuItem], a + + xor a + ld [wMenuWatchMovingOutOfBounds], a + ld a, [wCurrentMenuItem] + ld c, a + ld a, [wListScrollOffset] + add c + ld c, a + ld a, [wListCount] + and a ; is the list empty? + jp z, ExitListMenu ; if so, exit the menu + dec a + cp c ; did the player select Cancel? + jp c, ExitListMenu ; if so, exit the menu + ld a, c + ld [wWhichPokemon], a + ld a, [wListMenuID] + cp ITEMLISTMENU + jr nz, .skipMultiplying +; if it's an item menu + sla c ; item entries are 2 bytes long, so multiply by 2 +.skipMultiplying + ld a, [wListPointer] + ld l, a + ld a, [wListPointer + 1] + ld h, a + inc hl ; hl = beginning of list entries + ld b, 0 + add hl, bc + ld a, [hl] + ld [wcf91], a + ld a, [wListMenuID] + and a ; PCPOKEMONLISTMENU? + jr z, .pokemonList + push hl + call GetItemPrice + pop hl + ld a, [wListMenuID] + cp ITEMLISTMENU + jr nz, .skipGettingQuantity +; if it's an item menu + inc hl + ld a, [hl] ; a = item quantity + ld [wMaxItemQuantity], a +.skipGettingQuantity + ld a, [wcf91] + ld [wd0b5], a + ld a, BANK(ItemNames) + ld [wPredefBank], a + call GetName + jr .storeChosenEntry +.pokemonList + ld hl, wPartyCount + ld a, [wListPointer] + cp l ; is it a list of party pokemon or box pokemon? + ld hl, wPartyMonNicks + jr z, .getPokemonName + ld hl, wBoxMonNicks ; box pokemon names +.getPokemonName + ld a, [wWhichPokemon] + call GetPartyMonName +.storeChosenEntry ; store the menu entry that the player chose and return + ld de, wcd6d + call CopyStringToCF4B ; copy name to wcf4b + ld a, CHOSE_MENU_ITEM + ld [wMenuExitMethod], a + ld a, [wCurrentMenuItem] + ld [wChosenMenuItem], a + xor a + ldh [hJoy7], a ; joypad state update flag + ld hl, wd730 + res 6, [hl] ; turn on letter printing delay + jp BankswitchBack +.checkOtherKeys ; check B, SELECT, Up, and Down keys + bit 1, a ; was the B button pressed? + jp nz, ExitListMenu ; if so, exit the menu + bit 2, a ; was the select button pressed? + jp nz, HandleItemListSwapping ; if so, allow the player to swap menu entries + ld b, a + bit 7, b ; was Down pressed? + ld hl, wListScrollOffset + jr z, .upPressed +.downPressed + ld a, [hl] + add 3 + ld b, a + ld a, [wListCount] + cp b ; will going down scroll past the Cancel button? + jp c, DisplayListMenuIDLoop + inc [hl] ; if not, go down + jp DisplayListMenuIDLoop +.upPressed + ld a, [hl] + and a + jp z, DisplayListMenuIDLoop + dec [hl] + jp DisplayListMenuIDLoop + +DisplayChooseQuantityMenu:: +; text box dimensions/coordinates for just quantity + hlcoord 15, 9 + lb bc, 1, 3 ; height and width + ld a, [wListMenuID] + cp PRICEDITEMLISTMENU + jr nz, .drawTextBox +; text box dimensions/coordinates for quantity and price + hlcoord 7, 9 + lb bc, 1, 11 ; height and width +.drawTextBox + call TextBoxBorder + hlcoord 16, 10 + ld a, [wListMenuID] + cp PRICEDITEMLISTMENU + jr nz, .printInitialQuantity + hlcoord 8, 10 +.printInitialQuantity + ld de, InitialQuantityText + call PlaceString + xor a + ld [wItemQuantity], a ; initialize current quantity to 0 + jp .incrementQuantity +.waitForKeyPressLoop + call JoypadLowSensitivity + ldh a, [hJoyPressed] ; newly pressed buttons + bit 0, a ; was the A button pressed? + jp nz, .buttonAPressed + bit 1, a ; was the B button pressed? + jp nz, .buttonBPressed + bit 6, a ; was Up pressed? + jr nz, .incrementQuantity + bit 7, a ; was Down pressed? + jr nz, .decrementQuantity + jr .waitForKeyPressLoop +.incrementQuantity + ld a, [wMaxItemQuantity] + inc a + ld b, a + ld hl, wItemQuantity ; current quantity + inc [hl] + ld a, [hl] + cp b + jr nz, .handleNewQuantity +; wrap to 1 if the player goes above the max quantity + ld a, 1 + ld [hl], a + jr .handleNewQuantity +.decrementQuantity + ld hl, wItemQuantity ; current quantity + dec [hl] + jr nz, .handleNewQuantity +; wrap to the max quantity if the player goes below 1 + ld a, [wMaxItemQuantity] + ld [hl], a +.handleNewQuantity + hlcoord 17, 10 + ld a, [wListMenuID] + cp PRICEDITEMLISTMENU + jr nz, .printQuantity +.printPrice + ld c, $03 + ld a, [wItemQuantity] + ld b, a + ld hl, hMoney ; total price +; initialize total price to 0 + xor a + ld [hli], a + ld [hli], a + ld [hl], a +.addLoop ; loop to multiply the individual price by the quantity to get the total price + ld de, hMoney + 2 + ld hl, hItemPrice + 2 + push bc + predef AddBCDPredef ; add the individual price to the current sum + pop bc + dec b + jr nz, .addLoop + ldh a, [hHalveItemPrices] + and a ; should the price be halved (for selling items)? + jr z, .skipHalvingPrice + xor a + ldh [hDivideBCDDivisor], a + ldh [hDivideBCDDivisor + 1], a + ld a, $02 + ldh [hDivideBCDDivisor + 2], a + predef DivideBCDPredef3 ; halves the price +; store the halved price + ldh a, [hDivideBCDQuotient] + ldh [hMoney], a + ldh a, [hDivideBCDQuotient + 1] + ldh [hMoney + 1], a + ldh a, [hDivideBCDQuotient + 2] + ldh [hMoney + 2], a +.skipHalvingPrice + hlcoord 12, 10 + ld de, SpacesBetweenQuantityAndPriceText + call PlaceString + ld de, hMoney ; total price + ld c, $a3 + call PrintBCDNumber + hlcoord 9, 10 +.printQuantity + ld de, wItemQuantity ; current quantity + lb bc, LEADING_ZEROES | 1, 2 ; 1 byte, 2 digits + call PrintNumber + jp .waitForKeyPressLoop +.buttonAPressed ; the player chose to make the transaction + xor a + ld [wMenuItemToSwap], a ; 0 means no item is currently being swapped + ret +.buttonBPressed ; the player chose to cancel the transaction + xor a + ld [wMenuItemToSwap], a ; 0 means no item is currently being swapped + ld a, $ff + ret + +InitialQuantityText:: + db "×01@" + +SpacesBetweenQuantityAndPriceText:: + db " @" + +ExitListMenu:: + ld a, [wCurrentMenuItem] + ld [wChosenMenuItem], a + ld a, CANCELLED_MENU + ld [wMenuExitMethod], a + ld [wMenuWatchMovingOutOfBounds], a + xor a + ldh [hJoy7], a + ld hl, wd730 + res 6, [hl] + call BankswitchBack + xor a + ld [wMenuItemToSwap], a ; 0 means no item is currently being swapped + scf + ret + +PrintListMenuEntries:: + hlcoord 5, 3 + lb bc, 9, 14 + call ClearScreenArea + ld a, [wListPointer] + ld e, a + ld a, [wListPointer + 1] + ld d, a + inc de ; de = beginning of list entries + ld a, [wListScrollOffset] + ld c, a + ld a, [wListMenuID] + cp ITEMLISTMENU + ld a, c + jr nz, .skipMultiplying +; if it's an item menu +; item entries are 2 bytes long, so multiply by 2 + add a + sla c +.skipMultiplying + add e + ld e, a + jr nc, .noCarry + inc d +.noCarry + hlcoord 6, 4 ; coordinates of first list entry name + ld b, 4 ; print 4 names +.loop + ld a, b + ld [wWhichPokemon], a + ld a, [de] + ld [wd11e], a + cp $ff + jp z, .printCancelMenuItem + push bc + push de + push hl + push hl + push de + ld a, [wListMenuID] + and a ; PCPOKEMONLISTMENU? + jr z, .pokemonPCMenu + cp MOVESLISTMENU + jr z, .movesMenu +.itemMenu + call GetItemName + jr .placeNameString +.pokemonPCMenu + push hl + ld hl, wPartyCount + ld a, [wListPointer] + cp l ; is it a list of party pokemon or box pokemon? + ld hl, wPartyMonNicks + jr z, .getPokemonName + ld hl, wBoxMonNicks ; box pokemon names +.getPokemonName + ld a, [wWhichPokemon] + ld b, a + ld a, 4 + sub b + ld b, a + ld a, [wListScrollOffset] + add b + call GetPartyMonName + pop hl + jr .placeNameString +.movesMenu + call GetMoveName +.placeNameString + call PlaceString + pop de + pop hl + ld a, [wPrintItemPrices] + and a ; should prices be printed? + jr z, .skipPrintingItemPrice +.printItemPrice + push hl + ld a, [de] + ld de, ItemPrices + ld [wcf91], a + call GetItemPrice ; get price + pop hl + ld bc, SCREEN_WIDTH + 5 ; 1 row down and 5 columns right + add hl, bc + ld c, $a3 ; no leading zeroes, right-aligned, print currency symbol, 3 bytes + call PrintBCDNumber +.skipPrintingItemPrice + ld a, [wListMenuID] + and a ; PCPOKEMONLISTMENU? + jr nz, .skipPrintingPokemonLevel +.printPokemonLevel + ld a, [wd11e] + push af + push hl + ld hl, wPartyCount + ld a, [wListPointer] + cp l ; is it a list of party pokemon or box pokemon? + ld a, PLAYER_PARTY_DATA + jr z, .next + ld a, BOX_DATA +.next + ld [wMonDataLocation], a + ld hl, wWhichPokemon + ld a, [hl] + ld b, a + ld a, $04 + sub b + ld b, a + ld a, [wListScrollOffset] + add b + ld [hl], a + call LoadMonData + ld a, [wMonDataLocation] + and a ; is it a list of party pokemon or box pokemon? + jr z, .skipCopyingLevel +.copyLevel + ld a, [wLoadedMonBoxLevel] + ld [wLoadedMonLevel], a +.skipCopyingLevel + pop hl + ld bc, $1c + add hl, bc + call PrintLevel + pop af + ld [wd11e], a +.skipPrintingPokemonLevel + pop hl + pop de + inc de + ld a, [wListMenuID] + cp ITEMLISTMENU + jr nz, .nextListEntry +.printItemQuantity + ld a, [wd11e] + ld [wcf91], a + call IsKeyItem ; check if item is unsellable + ld a, [wIsKeyItem] + and a ; is the item unsellable? + jr nz, .skipPrintingItemQuantity ; if so, don't print the quantity + push hl + ld bc, SCREEN_WIDTH + 8 ; 1 row down and 8 columns right + add hl, bc + ld a, "×" + ld [hli], a + ld a, [wd11e] + push af + ld a, [de] + ld [wMaxItemQuantity], a + push de + ld de, wd11e + ld [de], a + lb bc, 1, 2 + call PrintNumber + pop de + pop af + ld [wd11e], a + pop hl +.skipPrintingItemQuantity + inc de + pop bc + inc c + push bc + inc c + ld a, [wMenuItemToSwap] ; ID of item chosen for swapping (counts from 1) + and a ; is an item being swapped? + jr z, .nextListEntry + add a + cp c ; is it this item? + jr nz, .nextListEntry + dec hl + ld a, "▷" + ld [hli], a +.nextListEntry + ld bc, 2 * SCREEN_WIDTH ; 2 rows + add hl, bc + pop bc + inc c + dec b + jp nz, .loop + ld bc, -8 + add hl, bc + ld a, "▼" + ld [hl], a + ret +.printCancelMenuItem + ld de, ListMenuCancelText + jp PlaceString + +ListMenuCancelText:: + db "CANCEL@" diff --git a/home/load_font.asm b/home/load_font.asm new file mode 100644 index 000000000..8ed0f0a70 --- /dev/null +++ b/home/load_font.asm @@ -0,0 +1,47 @@ +LoadFontTilePatterns:: + ldh a, [rLCDC] + bit 7, a ; is the LCD enabled? + jr nz, .on +.off + ld hl, FontGraphics + ld de, vFont + ld bc, FontGraphicsEnd - FontGraphics + ld a, BANK(FontGraphics) + jp FarCopyDataDouble ; if LCD is off, transfer all at once +.on + ld de, FontGraphics + ld hl, vFont + lb bc, BANK(FontGraphics), (FontGraphicsEnd - FontGraphics) / $8 + jp CopyVideoDataDouble ; if LCD is on, transfer during V-blank + +LoadTextBoxTilePatterns:: + ldh a, [rLCDC] + bit 7, a ; is the LCD enabled? + jr nz, .on +.off + ld hl, TextBoxGraphics + ld de, vChars2 tile $60 + ld bc, TextBoxGraphicsEnd - TextBoxGraphics + ld a, BANK(TextBoxGraphics) + jp FarCopyData ; if LCD is off, transfer all at once +.on + ld de, TextBoxGraphics + ld hl, vChars2 tile $60 + lb bc, BANK(TextBoxGraphics), (TextBoxGraphicsEnd - TextBoxGraphics) / $10 + jp CopyVideoData ; if LCD is on, transfer during V-blank + +LoadHpBarAndStatusTilePatterns:: + ldh a, [rLCDC] + bit 7, a ; is the LCD enabled? + jr nz, .on +.off + ld hl, HpBarAndStatusGraphics + ld de, vChars2 tile $62 + ld bc, HpBarAndStatusGraphicsEnd - HpBarAndStatusGraphics + ld a, BANK(HpBarAndStatusGraphics) + jp FarCopyData ; if LCD is off, transfer all at once +.on + ld de, HpBarAndStatusGraphics + ld hl, vChars2 tile $62 + lb bc, BANK(HpBarAndStatusGraphics), (HpBarAndStatusGraphicsEnd - HpBarAndStatusGraphics) / $10 + jp CopyVideoData ; if LCD is on, transfer during V-blank diff --git a/home/map_objects.asm b/home/map_objects.asm new file mode 100644 index 000000000..51206cc5d --- /dev/null +++ b/home/map_objects.asm @@ -0,0 +1,322 @@ +; checks if the player's coordinates match an arrow movement tile's coordinates +; and if so, decodes the RLE movement data +; b = player Y +; c = player X +DecodeArrowMovementRLE:: + ld a, [hli] + cp $ff + ret z ; no match in the list + cp b + jr nz, .nextArrowMovementTileEntry1 + ld a, [hli] + cp c + jr nz, .nextArrowMovementTileEntry2 + ld a, [hli] + ld d, [hl] + ld e, a + ld hl, wSimulatedJoypadStatesEnd + call DecodeRLEList + dec a + ld [wSimulatedJoypadStatesIndex], a + ret +.nextArrowMovementTileEntry1 + inc hl +.nextArrowMovementTileEntry2 + inc hl + inc hl + jr DecodeArrowMovementRLE + +TextScript_ItemStoragePC:: + call SaveScreenTilesToBuffer2 + ld b, BANK(PlayerPC) + ld hl, PlayerPC + jr bankswitchAndContinue + +TextScript_BillsPC:: + call SaveScreenTilesToBuffer2 + ld b, BANK(BillsPC_) + ld hl, BillsPC_ + jr bankswitchAndContinue + +TextScript_GameCornerPrizeMenu:: +; XXX find a better name for this function +; special_F7 + ld b, BANK(CeladonPrizeMenu) + ld hl, CeladonPrizeMenu +bankswitchAndContinue:: + call Bankswitch + jp HoldTextDisplayOpen ; continue to main text-engine function + +TextScript_PokemonCenterPC:: + ld b, BANK(ActivatePC) + ld hl, ActivatePC + jr bankswitchAndContinue + +StartSimulatingJoypadStates:: + xor a + ld [wOverrideSimulatedJoypadStatesMask], a + ld [wSpritePlayerStateData2MovementByte1], a + ld hl, wd730 + set 7, [hl] + ret + +IsItemInBag:: +; given an item_id in b +; set zero flag if item isn't in player's bag +; else reset zero flag +; related to Pokémon Tower and ghosts + predef GetQuantityOfItemInBag + ld a, b + and a + ret + +IsSurfingPikachuInParty:: +; set bit 6 of wd472 if true +; also calls Func_3467, which is a bankswitch to IsStarterPikachuInOurParty + ld a, [wd472] + and $3f + ld [wd472], a + ld hl, wPartyMon1 + ld c, PARTY_LENGTH + ld b, SURF +.loop + ld a, [hl] + cp PIKACHU + jr nz, .notPikachu + push hl + ld de, $8 + add hl, de + ld a, [hli] + cp b ; does pikachu have surf as one of its moves + jr z, .hasSurf + ld a, [hli] + cp b + jr z, .hasSurf + ld a, [hli] + cp b + jr z, .hasSurf + ld a, [hli] + cp b + jr nz, .noSurf +.hasSurf + ld a, [wd472] + set 6, a + ld [wd472], a +.noSurf + pop hl +.notPikachu + ld de, wPartyMon2 - wPartyMon1 + add hl, de + dec c + jr nz, .loop + call Func_3467 + ret + +Func_3467:: + push hl + push bc + callfar IsStarterPikachuInOurParty + pop bc + pop hl + ret nc + ld a, [wd472] + set 7, a + ld [wd472], a + ret + +DisplayPokedex:: + ld [wd11e], a + farjp _DisplayPokedex + +SetSpriteFacingDirectionAndDelay:: + call SetSpriteFacingDirection + ld c, 6 + jp DelayFrames + +SetSpriteFacingDirection:: + ld a, SPRITESTATEDATA1_FACINGDIRECTION + ldh [hSpriteDataOffset], a + call GetPointerWithinSpriteStateData1 + ldh a, [hSpriteFacingDirection] + ld [hl], a + ret + +SetSpriteImageIndexAfterSettingFacingDirection:: + ld de, SPRITESTATEDATA1_IMAGEINDEX - SPRITESTATEDATA1_FACINGDIRECTION + add hl, de + ld [hl], a + ret + +SpriteFunc_34a1:: + ldh a, [hSpriteIndex] + swap a + add $e + ld l, a + ld h, $c2 + ld c, [hl] + dec c + swap c + ldh a, [hSpriteOffset] + add c + ld c, a + ldh a, [hSpriteHeight] + swap a + add $2 + ld l, a + dec h + ld [hl], c + ret + +; tests if the player's coordinates are in a specified array +; INPUT: +; hl = address of array +; OUTPUT: +; [wCoordIndex] = if there is match, the matching array index +; sets carry if the coordinates are in the array, clears carry if not +ArePlayerCoordsInArray:: + ld a, [wYCoord] + ld b, a + ld a, [wXCoord] + ld c, a + ; fallthrough + +CheckCoords:: + xor a + ld [wCoordIndex], a +.loop + ld a, [hli] + cp $ff ; reached terminator? + jr z, .notInArray + push hl + ld hl, wCoordIndex + inc [hl] + pop hl +.compareYCoord + cp b + jr z, .compareXCoord + inc hl + jr .loop +.compareXCoord + ld a, [hli] + cp c + jr nz, .loop +.inArray + scf + ret +.notInArray + and a + ret + +; tests if a boulder's coordinates are in a specified array +; INPUT: +; hl = address of array +; [hSpriteIndex] = index of boulder sprite +; OUTPUT: +; [wCoordIndex] = if there is match, the matching array index +; sets carry if the coordinates are in the array, clears carry if not +CheckBoulderCoords:: + push hl + ld hl, wSpritePlayerStateData2MapY + ldh a, [hSpriteIndex] + swap a + ld d, $0 + ld e, a + add hl, de + ld a, [hli] + sub $4 ; because sprite coordinates are offset by 4 + ld b, a + ld a, [hl] + sub $4 ; because sprite coordinates are offset by 4 + ld c, a + pop hl + jp CheckCoords + +GetPointerWithinSpriteStateData1:: + ld h, HIGH(wSpriteStateData1) + jr _GetPointerWithinSpriteStateData + +GetPointerWithinSpriteStateData2:: + ld h, HIGH(wSpriteStateData2) + +_GetPointerWithinSpriteStateData: + ldh a, [hSpriteDataOffset] + ld b, a + ldh a, [hSpriteIndex] + swap a + add b + ld l, a + ret + +; decodes a $ff-terminated RLEncoded list +; each entry is a pair of bytes +; the final $ff will be replicated in the output list and a contains the number of bytes written +; de: input list +; hl: output list +DecodeRLEList:: + xor a + ld [wRLEByteCount], a ; count written bytes here +.listLoop + ld a, [de] + cp $ff + jr z, .endOfList + ldh [hRLEByteValue], a ; store byte value to be written + inc de + ld a, [de] + ld b, $0 + ld c, a ; number of bytes to be written + ld a, [wRLEByteCount] + add c + ld [wRLEByteCount], a ; update total number of written bytes + ldh a, [hRLEByteValue] + call FillMemory ; write a c-times to output + inc de + jr .listLoop +.endOfList + ld a, $ff + ld [hl], a ; write final $ff + ld a, [wRLEByteCount] + inc a ; include sentinel in counting + ret + +; sets movement byte 1 for sprite [hSpriteIndex] to $FE and byte 2 to [hSpriteMovementByte2] +SetSpriteMovementBytesToFE:: + push hl + call GetSpriteMovementByte1Pointer + ld [hl], $fe + call GetSpriteMovementByte2Pointer + ldh a, [hSpriteMovementByte2] + ld [hl], a + pop hl + ret + +; sets both movement bytes for sprite [hSpriteIndex] to $FF +SetSpriteMovementBytesToFF:: + push hl + call GetSpriteMovementByte1Pointer + ld [hl], $FF + call GetSpriteMovementByte2Pointer + ld [hl], $FF ; prevent person from walking? + pop hl + ret + +; returns the sprite movement byte 1 pointer for sprite [hSpriteIndex] in hl +GetSpriteMovementByte1Pointer:: + ld h, $C2 + ldh a, [hSpriteIndex] + swap a + add 6 + ld l, a + ret + +; returns the sprite movement byte 2 pointer for sprite [hSpriteIndex] in hl +GetSpriteMovementByte2Pointer:: + push de + ld hl, wMapSpriteData + ldh a, [hSpriteIndex] + dec a + add a + ld e, a + ld d, 0 + add hl, de + pop de + ret diff --git a/home/math.asm b/home/math.asm new file mode 100644 index 000000000..59eda6069 --- /dev/null +++ b/home/math.asm @@ -0,0 +1,33 @@ +; function to do multiplication +; all values are big endian +; INPUT +; FF96-FF98 = multiplicand +; FF99 = multiplier +; OUTPUT +; FF95-FF98 = product +Multiply:: + push hl + push bc + callfar _Multiply + pop bc + pop hl + ret + +; function to do division +; all values are big endian +; INPUT +; FF95-FF98 = dividend +; FF99 = divisor +; b = number of bytes in the dividend (starting from FF95) +; OUTPUT +; FF95-FF98 = quotient +; FF99 = remainder +Divide:: + push hl + push de + push bc + homecall _Divide + pop bc + pop de + pop hl + ret diff --git a/home/money.asm b/home/money.asm new file mode 100644 index 000000000..a62835eaf --- /dev/null +++ b/home/money.asm @@ -0,0 +1,15 @@ +HasEnoughMoney:: +; Check if the player has at least as much +; money as the 3-byte BCD value at hMoney. + ld de, wPlayerMoney + ld hl, hMoney + ld c, 3 + jp StringCmp + +HasEnoughCoins:: +; Check if the player has at least as many +; coins as the 2-byte BCD value at hCoins. + ld de, wPlayerCoins + ld hl, hCoins + ld c, 2 + jp StringCmp diff --git a/home/move_mon.asm b/home/move_mon.asm new file mode 100644 index 000000000..c766fbd58 --- /dev/null +++ b/home/move_mon.asm @@ -0,0 +1,239 @@ +; Copies [hl, bc) to [de, de + bc - hl). +; In other words, the source data is from hl up to but not including bc, +; and the destination is de. +CopyDataUntil:: + ld a, [hli] + ld [de], a + inc de + ld a, h + cp b + jr nz, CopyDataUntil + ld a, l + cp c + jr nz, CopyDataUntil + ret + +; Function to remove a pokemon from the party or the current box. +; wWhichPokemon determines the pokemon. +; [wRemoveMonFromBox] == 0 specifies the party. +; [wRemoveMonFromBox] != 0 specifies the current box. +RemovePokemon:: + jpfar _RemovePokemon + +AddPartyMon:: + push hl + push de + push bc + farcall _AddPartyMon + pop bc + pop de + pop hl + ret + +; calculates all 5 stats of current mon and writes them to [de] +CalcStats:: + ld c, $0 +.statsLoop + inc c + call CalcStat + ldh a, [hMultiplicand+1] + ld [de], a + inc de + ldh a, [hMultiplicand+2] + ld [de], a + inc de + ld a, c + cp NUM_STATS + jr nz, .statsLoop + ret + +; calculates stat c of current mon +; c: stat to calc (HP=1,Atk=2,Def=3,Spd=4,Spc=5) +; b: consider stat exp? +; hl: base ptr to stat exp values ([hl + 2*c - 1] and [hl + 2*c]) +CalcStat:: + push hl + push de + push bc + ld a, b + ld d, a + push hl + ld hl, wMonHeader + ld b, $0 + add hl, bc + ld a, [hl] ; read base value of stat + ld e, a + pop hl + push hl + sla c + ld a, d + and a + jr z, .statExpDone ; consider stat exp? + add hl, bc ; skip to corresponding stat exp value +.statExpLoop ; calculates ceil(Sqrt(stat exp)) in b + xor a + ldh [hMultiplicand], a + ldh [hMultiplicand+1], a + inc b ; increment current stat exp bonus + ld a, b + cp $ff + jr z, .statExpDone + ldh [hMultiplicand+2], a + ldh [hMultiplier], a + call Multiply + ld a, [hld] + ld d, a + ldh a, [hProduct + 3] + sub d + ld a, [hli] + ld d, a + ldh a, [hProduct + 2] + sbc d ; test if (current stat exp bonus)^2 < stat exp + jr c, .statExpLoop +.statExpDone + srl c + pop hl + push bc + ld bc, wPartyMon1DVs - (wPartyMon1HPExp - 1) ; also wEnemyMonDVs - wEnemyMonHP + add hl, bc + pop bc + ld a, c + cp $2 + jr z, .getAttackIV + cp $3 + jr z, .getDefenseIV + cp $4 + jr z, .getSpeedIV + cp $5 + jr z, .getSpecialIV +.getHpIV + push bc + ld a, [hl] ; Atk IV + swap a + and $1 + sla a + sla a + sla a + ld b, a + ld a, [hli] ; Def IV + and $1 + sla a + sla a + add b + ld b, a + ld a, [hl] ; Spd IV + swap a + and $1 + sla a + add b + ld b, a + ld a, [hl] ; Spc IV + and $1 + add b ; HP IV: LSB of the other 4 IVs + pop bc + jr .calcStatFromIV +.getAttackIV + ld a, [hl] + swap a + and $f + jr .calcStatFromIV +.getDefenseIV + ld a, [hl] + and $f + jr .calcStatFromIV +.getSpeedIV + inc hl + ld a, [hl] + swap a + and $f + jr .calcStatFromIV +.getSpecialIV + inc hl + ld a, [hl] + and $f +.calcStatFromIV + ld d, $0 + add e + ld e, a + jr nc, .noCarry + inc d ; de = Base + IV +.noCarry + sla e + rl d ; de = (Base + IV) * 2 + srl b + srl b ; b = ceil(Sqrt(stat exp)) / 4 + ld a, b + add e + jr nc, .noCarry2 + inc d ; de = (Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4 +.noCarry2 + ldh [hMultiplicand+2], a + ld a, d + ldh [hMultiplicand+1], a + xor a + ldh [hMultiplicand], a + ld a, [wCurEnemyLVL] + ldh [hMultiplier], a + call Multiply ; ((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level + ldh a, [hMultiplicand] + ldh [hDividend], a + ldh a, [hMultiplicand+1] + ldh [hDividend+1], a + ldh a, [hMultiplicand+2] + ldh [hDividend+2], a + ld a, $64 + ldh [hDivisor], a + ld a, $3 + ld b, a + call Divide ; (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + ld a, c + cp $1 + ld a, 5 ; + 5 for non-HP stat + jr nz, .notHPStat + ld a, [wCurEnemyLVL] + ld b, a + ldh a, [hMultiplicand+2] + add b + ldh [hMultiplicand+2], a + jr nc, .noCarry3 + ldh a, [hMultiplicand+1] + inc a + ldh [hMultiplicand+1], a ; HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + Level +.noCarry3 + ld a, 10 ; +10 for HP stat +.notHPStat + ld b, a + ldh a, [hMultiplicand+2] + add b + ldh [hMultiplicand+2], a + jr nc, .noCarry4 + ldh a, [hMultiplicand+1] + inc a ; non-HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + 5 + ldh [hMultiplicand+1], a ; HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + Level + 10 +.noCarry4 + ldh a, [hMultiplicand+1] ; check for overflow (>999) + cp HIGH(MAX_STAT_VALUE) + 1 + jr nc, .overflow + cp HIGH(MAX_STAT_VALUE) + jr c, .noOverflow + ldh a, [hMultiplicand+2] + cp LOW(MAX_STAT_VALUE) + 1 + jr c, .noOverflow +.overflow + ld a, HIGH(MAX_STAT_VALUE) ; overflow: cap at 999 + ldh [hMultiplicand+1], a + ld a, LOW(MAX_STAT_VALUE) + ldh [hMultiplicand+2], a +.noOverflow + pop bc + pop de + pop hl + ret + +AddEnemyMonToPlayerParty:: + homecall_sf _AddEnemyMonToPlayerParty + ret + +MoveMon:: + homecall_sf _MoveMon + ret diff --git a/home/names.asm b/home/names.asm new file mode 100644 index 000000000..f7751fa03 --- /dev/null +++ b/home/names.asm @@ -0,0 +1,141 @@ +GetMonName:: + push hl + ldh a, [hLoadedROMBank] + push af + ld a, BANK(MonsterNames) + ldh [hLoadedROMBank], a + ld [MBC1RomBank], a + ld a, [wd11e] + dec a + ld hl, MonsterNames + ld c, 10 + ld b, 0 + call AddNTimes + ld de, wcd6d + push de + ld bc, 10 + call CopyData + ld hl, wcd6d + 10 + ld [hl], "@" + pop de + pop af + ldh [hLoadedROMBank], a + ld [MBC1RomBank], a + pop hl + ret + +GetItemName:: +; given an item ID at [wd11e], store the name of the item into a string +; starting at wcd6d + push hl + push bc + ld a, [wd11e] + cp HM01 ; is this a TM/HM? + jr nc, .Machine + + ld [wd0b5], a + ld a, ITEM_NAME + ld [wNameListType], a + ld a, BANK(ItemNames) + ld [wPredefBank], a + call GetName + jr .Finish + +.Machine + call GetMachineName +.Finish + ld de, wcd6d ; pointer to where item name is stored in RAM + pop bc + pop hl + ret + +GetMachineName:: +; copies the name of the TM/HM in [wd11e] to wcd6d + push hl + push de + push bc + ld a, [wd11e] + push af + cp TM01 ; is this a TM? [not HM] + jr nc, .WriteTM +; if HM, then write "HM" and add NUM_HMS to the item ID, so we can reuse the +; TM printing code + add NUM_HMS + ld [wd11e], a + ld hl, HiddenPrefix ; points to "HM" + ld bc, 2 + jr .WriteMachinePrefix +.WriteTM + ld hl, TechnicalPrefix ; points to "TM" + ld bc, 2 +.WriteMachinePrefix + ld de, wcd6d + call CopyData + +; now get the machine number and convert it to text + ld a, [wd11e] + sub TM01 - 1 + ld b, "0" +.FirstDigit + sub 10 + jr c, .SecondDigit + inc b + jr .FirstDigit +.SecondDigit + add 10 + push af + ld a, b + ld [de], a + inc de + pop af + ld b, "0" + add b + ld [de], a + inc de + ld a, "@" + ld [de], a + pop af + ld [wd11e], a + pop bc + pop de + pop hl + ret + +TechnicalPrefix:: + db "TM" +HiddenPrefix:: + db "HM" + +; sets carry if item is HM, clears carry if item is not HM +; Input: a = item ID +IsItemHM:: + cp HM01 + jr c, .notHM + cp TM01 + ret +.notHM + and a + ret + +; sets carry if move is an HM, clears carry if move is not an HM +; Input: a = move ID +IsMoveHM:: + ld hl, HMMoves + ld de, 1 + jp IsInArray + +HMMoves:: +INCLUDE "data/moves/hm_moves.asm" + +GetMoveName:: + push hl + ld a, MOVE_NAME + ld [wNameListType], a + ld a, [wd11e] + ld [wd0b5], a + ld a, BANK(MoveNames) + ld [wPredefBank], a + call GetName + ld de, wcd6d ; pointer to where move name is stored in RAM + pop hl + ret diff --git a/home/names2.asm b/home/names2.asm new file mode 100644 index 000000000..9c8ca00ca --- /dev/null +++ b/home/names2.asm @@ -0,0 +1,92 @@ +NamePointers:: +; entries correspond to *_NAME constants + dw MonsterNames + dw MoveNames + dw UnusedBadgeNames + dw ItemNames + dw wPartyMonOT ; player's OT names list + dw wEnemyMonOT ; enemy's OT names list + dw TrainerNames + +GetName:: +; arguments: +; [wd0b5] = which name +; [wNameListType] = which list +; [wPredefBank] = bank of list +; +; returns pointer to name in de + ld a, [wd0b5] + ld [wd11e], a + + ; TM names are separate from item names. + ; BUG: This applies to all names instead of just items. + cp HM01 + jp nc, GetMachineName + + ldh a, [hLoadedROMBank] + push af + push hl + push bc + push de + ld a, [wNameListType] ;List3759_entrySelector + dec a + jr nz, .otherEntries + ;1 = MON_NAMES + call GetMonName + ld hl, NAME_LENGTH + add hl, de + ld e, l + ld d, h + jr .gotPtr +.otherEntries + ;2-7 = OTHER ENTRIES + ld a, [wPredefBank] + call BankswitchCommon + ld a, [wNameListType] ;VariousNames' entryID + dec a + add a + ld d, 0 + ld e, a + jr nc, .skip + inc d +.skip + ld hl, NamePointers + add hl, de + ld a, [hli] + ldh [hSwapTemp + 1], a + ld a, [hl] + ldh [hSwapTemp], a + ldh a, [hSwapTemp] + ld h, a + ldh a, [hSwapTemp + 1] + ld l, a + ld a, [wd0b5] + ld b, a + ld c, 0 +.nextName + ld d, h + ld e, l +.nextChar + ld a, [hli] + cp "@" + jr nz, .nextChar + inc c ;entry counter + ld a, b ;wanted entry + cp c + jr nz, .nextName + ld h, d + ld l, e + ld de, wcd6d + ld bc, $14 + call CopyData +.gotPtr + ld a, e + ld [wUnusedCF8D], a + ld a, d + ld [wUnusedCF8D + 1], a + pop de + pop bc + pop hl + pop af + call BankswitchCommon + ret diff --git a/home/npc_movement.asm b/home/npc_movement.asm new file mode 100644 index 000000000..200d39836 --- /dev/null +++ b/home/npc_movement.asm @@ -0,0 +1,52 @@ +; not zero if an NPC movement script is running, the player character is +; automatically stepping down from a door, or joypad states are being simulated +IsPlayerCharacterBeingControlledByGame:: + ld a, [wNPCMovementScriptPointerTableNum] + and a + ret nz + ld a, [wd736] + bit 1, a ; currently stepping down from door bit + ret nz + ld a, [wd730] + and $80 + ret + +RunNPCMovementScript:: + ld hl, wd736 + bit 0, [hl] + res 0, [hl] + jr nz, .playerStepOutFromDoor + ld a, [wNPCMovementScriptPointerTableNum] + and a + ret z + dec a + add a + ld d, 0 + ld e, a + ld hl, .NPCMovementScriptPointerTables + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ldh a, [hLoadedROMBank] + push af + ld a, [wNPCMovementScriptBank] + call BankswitchCommon + ld a, [wNPCMovementScriptFunctionNum] + call CallFunctionInTable + pop af + call BankswitchCommon + ret + +.NPCMovementScriptPointerTables + dw PalletMovementScriptPointerTable + dw PewterMuseumGuyMovementScriptPointerTable + dw PewterGymGuyMovementScriptPointerTable +.playerStepOutFromDoor + farjp PlayerStepOutFromDoor + +EndNPCMovementScript:: + farjp _EndNPCMovementScript + +DebugPressedOrHeldB:: + ret diff --git a/home/oam.asm b/home/oam.asm new file mode 100644 index 000000000..8a940d975 --- /dev/null +++ b/home/oam.asm @@ -0,0 +1,36 @@ +; INPUT: +; a = oam block index (each block is 4 oam entries) +; b = Y coordinate of upper left corner of sprite +; c = X coordinate of upper left corner of sprite +; de = base address of 4 tile number and attribute pairs +WriteOAMBlock:: + ld h, HIGH(wOAMBuffer) + swap a ; multiply by 16 + ld l, a + call .writeOneEntry ; upper left + push bc + ld a, 8 + add c + ld c, a + call .writeOneEntry ; upper right + pop bc + ld a, 8 + add b + ld b, a + call .writeOneEntry ; lower left + ld a, 8 + add c + ld c, a + ; lower right +.writeOneEntry + ld [hl], b ; Y coordinate + inc hl + ld [hl], c ; X coordinate + inc hl + ld a, [de] ; tile number + inc de + ld [hli], a + ld a, [de] ; attribute + inc de + ld [hli], a + ret diff --git a/home/overworld.asm b/home/overworld.asm index 8608cbfef..0cd63cf7d 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -3,7 +3,7 @@ EnterMap:: ld a, $ff ld [wJoyIgnore], a call LoadMapData - callba ClearVariablesOnEnterMap + farcall ClearVariablesOnEnterMap ld hl, wd72c bit 0, [hl] ; has the player already made 3 steps since the last battle? jr z, .skipGivingThreeStepsOfNoRandomBattles @@ -19,7 +19,7 @@ EnterMap:: ld a, [hl] and 1 << 4 | 1 << 3 ; fly warp or dungeon warp jr z, .didNotEnterUsingFlyWarpOrDungeonWarp - callba EnterMapAnim + farcall EnterMapAnim call UpdateSprites ld hl, wd732 res 3, [hl] @@ -27,7 +27,7 @@ EnterMap:: res 4, [hl] .didNotEnterUsingFlyWarpOrDungeonWarp call IsSurfingPikachuInParty - callba CheckForceBikeOrSurf ; handle currents in SF islands and forced bike riding in cycling road + farcall CheckForceBikeOrSurf ; handle currents in SF islands and forced bike riding in cycling road ld hl, wd732 bit 4, [hl] res 4, [hl] @@ -51,7 +51,7 @@ OverworldLoopLessDelay:: and a jp nz, .moveAhead ; if the player sprite has not yet completed the walking animation call JoypadOverworld ; get joypad state (which is possibly simulated) - callba SafariZoneCheck + farcall SafariZoneCheck ld a, [wSafariZoneGameOver] and a jp nz, WarpFound2 @@ -68,16 +68,16 @@ OverworldLoopLessDelay:: ld a, [wd730] bit 7, a ; are we simulating button presses? jr z, .notSimulating - ld a, [hJoyHeld] + ldh a, [hJoyHeld] jr .checkIfStartIsPressed .notSimulating - ld a, [hJoyPressed] + ldh a, [hJoyPressed] .checkIfStartIsPressed bit 3, a ; start button jr z, .startButtonNotPressed ; if START is pressed - xor a - ld [hSpriteIndexOrTextID], a ; start menu text ID + xor a ; TEXT_START_MENU + ldh [hSpriteIndexOrTextID], a jp .displayDialogue .startButtonNotPressed bit 0, a ; A button @@ -89,14 +89,14 @@ OverworldLoopLessDelay:: call IsPlayerCharacterBeingControlledByGame jr nz, .checkForOpponent call CheckForHiddenObjectOrBookshelfOrCardKeyDoor - ld a, [$ffeb] + ldh a, [hItemAlreadyFound] and a jp z, OverworldLoop ; jump if a hidden object or bookshelf was found, but not if a card key door was found xor a ld [wd436], a ; new yellow address call IsSpriteOrSignInFrontOfPlayer call Func_0ffe - ld a, [hSpriteIndexOrTextID] + ldh a, [hSpriteIndexOrTextID] and a jp z, OverworldLoop .displayDialogue @@ -107,7 +107,7 @@ OverworldLoopLessDelay:: jr nz, .checkForOpponent bit 0, a jr nz, .checkForOpponent - aCoord 8, 9 + lda_coord 8, 9 ld [wTilePlayerStandingOn], a ; unused? call DisplayTextID ; display either the start menu or the NPC/sign text ld a, [wEnteringCableClub] @@ -141,11 +141,11 @@ OverworldLoopLessDelay:: jp OverworldLoop .checkIfDownButtonIsPressed - ld a, [hJoyHeld] ; current joypad state + ldh a, [hJoyHeld] ; current joypad state bit 7, a ; down button jr z, .checkIfUpButtonIsPressed ld a, 1 - ld [wSpriteStateData1 + 3], a ; delta Y + ld [wSpritePlayerStateData1YStepVector], a ld a, PLAYER_DIR_DOWN jr .handleDirectionButtonPress @@ -153,7 +153,7 @@ OverworldLoopLessDelay:: bit 6, a ; up button jr z, .checkIfLeftButtonIsPressed ld a, -1 - ld [wSpriteStateData1 + 3], a ; delta Y + ld [wSpritePlayerStateData1YStepVector], a ld a, PLAYER_DIR_UP jr .handleDirectionButtonPress @@ -161,7 +161,7 @@ OverworldLoopLessDelay:: bit 5, a ; left button jr z, .checkIfRightButtonIsPressed ld a, -1 - ld [wSpriteStateData1 + 5], a ; delta X + ld [wSpritePlayerStateData1XStepVector], a ld a, PLAYER_DIR_LEFT jr .handleDirectionButtonPress @@ -169,7 +169,7 @@ OverworldLoopLessDelay:: bit 4, a ; right button jr z, .noDirectionButtonsPressed ld a, 1 - ld [wSpriteStateData1 + 5], a ; delta X + ld [wSpritePlayerStateData1XStepVector], a ld a, 1 .handleDirectionButtonPress @@ -228,7 +228,7 @@ OverworldLoopLessDelay:: .noCollision ld a, $08 ld [wWalkCounter], a - callab Func_fcc08 + callfar Func_fcc08 jr .moveAhead2 .moveAhead @@ -249,7 +249,7 @@ OverworldLoopLessDelay:: call StepCountCheck CheckEvent EVENT_IN_SAFARI_ZONE ; in the safari zone? jr z, .notSafariZone - callba SafariZoneCheckSteps + farcall SafariZoneCheckSteps ld a, [wSafariZoneGameOver] and a jp nz, WarpFound2 @@ -275,7 +275,7 @@ OverworldLoopLessDelay:: set 5, [hl] set 6, [hl] xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, [wCurMap] cp CINNABAR_GYM jr nz, .notCinnabarGym @@ -286,7 +286,7 @@ OverworldLoopLessDelay:: ld a, [wCurMap] cp OAKS_LAB jp z, .noFaintCheck ; no blacking out if the player lost to the rival in Oak's lab - callab AnyPartyAlive + callfar AnyPartyAlive ld a, d and a jr z, AllPokemonFainted @@ -330,7 +330,7 @@ NewBattle:: ld a, [wd72e] bit 4, a jr nz, .noBattle - jpba InitBattle + farjp InitBattle .noBattle and a ret @@ -349,7 +349,7 @@ DoBikeSpeedup:: ld a, [wCurMap] cp ROUTE_17 ; Cycling Road jr nz, .goFaster - ld a, [hJoyHeld] + ldh a, [hJoyHeld] and D_UP | D_LEFT | D_RIGHT ret nz .goFaster @@ -381,7 +381,7 @@ CheckWarpsNoCollisionLoop:: push bc ld hl, wd736 set 2, [hl] ; standing on warp flag - callba IsPlayerStandingOnDoorTileOrWarpTile + farcall IsPlayerStandingOnDoorTileOrWarpTile pop bc pop hl jr c, WarpFound1 ; jump if standing on door or warp @@ -400,7 +400,7 @@ CheckWarpsNoCollisionLoop:: call Joypad pop bc pop de - ld a, [hJoyHeld] + ldh a, [hJoyHeld] and D_DOWN | D_UP | D_LEFT | D_RIGHT jr z, CheckWarpsNoCollisionRetry2 ; if directional buttons aren't being pressed, do not pass through the warp jr WarpFound1 @@ -435,7 +435,7 @@ CheckWarpsCollision:: ld a, [hli] ld [wDestinationWarpID], a ld a, [hl] - ld [hWarpDestinationMap], a + ldh [hWarpDestinationMap], a jr WarpFound2 .retry1 inc hl @@ -450,7 +450,7 @@ WarpFound1:: ld a, [hli] ld [wDestinationWarpID], a ld a, [hli] - ld [hWarpDestinationMap], a + ldh [hWarpDestinationMap], a WarpFound2:: ld a, [wNumberOfWarps] @@ -465,7 +465,7 @@ WarpFound2:: ld [wLastMap], a ld a, [wCurMapWidth] ld [wUnusedD366], a ; not read - ld a, [hWarpDestinationMap] + ldh a, [hWarpDestinationMap] ld [wCurMap], a cp ROCK_TUNNEL_1F jr nz, .notRockTunnel @@ -473,19 +473,19 @@ WarpFound2:: ld [wMapPalOffset], a call GBFadeOutToBlack .notRockTunnel - callab SetPikachuSpawnOutside + callfar SetPikachuSpawnOutside call PlayMapChangeSound jr .done ; for maps that can have the 0xFF destination map, which means to return to the outside map ; not all these maps are necessarily indoors, though .indoorMaps - ld a, [hWarpDestinationMap] ; destination map - cp $ff + ldh a, [hWarpDestinationMap] ; destination map + cp LAST_MAP jr z, .goBackOutside ; if not going back to the previous map ld [wCurMap], a - callba IsPlayerStandingOnWarpPadOrHole + farcall IsPlayerStandingOnWarpPadOrHole ld a, [wStandingOnWarpPadOrHole] dec a ; is the player on a warp pad? jr nz, .notWarpPad @@ -500,11 +500,11 @@ WarpFound2:: ld hl, wd736 res 0, [hl] res 1, [hl] - callab SetPikachuSpawnWarpPad + callfar SetPikachuSpawnWarpPad jr .done .goBackOutside - callab SetPikachuSpawnBackOutside + callfar SetPikachuSpawnBackOutside ld a, [wLastMap] ld [wCurMap], a call PlayMapChangeSound @@ -654,7 +654,7 @@ CheckMapConnections:: ld b, SET_PAL_OVERWORLD call RunPaletteCommand ; Since the sprite set shouldn't change, this will just update VRAM slots at -; $C2XE without loading any tile patterns. +; x#SPRITESTATEDATA2_IMAGEBASEOFFSET without loading any tile patterns. call InitMapSprites call LoadTileBlockMap jp OverworldLoopLessDelay @@ -669,7 +669,7 @@ PlayMapChangeSound:: jr z, .didNotGoThroughDoor cp CEMETERY jr z, .didNotGoThroughDoor - aCoord 8, 8 ; upper left tile of the 4x4 square the player's sprite is standing on + lda_coord 8, 8 ; upper left tile of the 4x4 square the player's sprite is standing on cp $0b ; door tile in tileset 0 jr nz, .didNotGoThroughDoor ld a, SFX_GO_INSIDE @@ -728,7 +728,7 @@ ExtraWarpCheck:: jp Bankswitch MapEntryAfterBattle:: - callba IsPlayerStandingOnWarp ; for enabling warp testing after collisions + farcall IsPlayerStandingOnWarp ; for enabling warp testing after collisions ld a, [wMapPalOffset] and a jp z, GBFadeInFromWhite @@ -744,7 +744,7 @@ HandleBlackOut:: ld hl, wd72e res 5, [hl] switchbank SpecialWarpIn ; also Bank(SpecialEnterMap) - callab ResetStatusAndHalveMoneyOnBlackout + callfar ResetStatusAndHalveMoneyOnBlackout call SpecialWarpIn call PlayDefaultMusicFadeOutCurrent jp SpecialEnterMap @@ -774,7 +774,7 @@ HandleFlyWarpOrDungeonWarp:: jp SpecialEnterMap LeaveMapAnim:: - jpba _LeaveMapAnim + farjp _LeaveMapAnim Func_07c4:: ld a, [wWalkBikeSurfState] @@ -799,7 +799,7 @@ LoadPlayerSpriteGraphics:: dec a jr z, .ridingBike - ld a, [hTilesetType] + ldh a, [hTilesetType] and a jr nz, .determineGraphics jr .startWalking @@ -853,7 +853,7 @@ IsBikeRidingAllowed:: scf ret -INCLUDE "data/bike_riding_tilesets.asm" +INCLUDE "data/tilesets/bike_riding_tilesets.asm" ; load the tile pattern data of the current tileset into VRAM LoadTilesetTilePatternData:: @@ -878,9 +878,9 @@ LoadTileBlockMap:: ; a 3-byte border at the edges of the map is kept so that there is space for map connections ld hl, wOverworldMap ld a, [wCurMapWidth] - ld [hMapWidth], a + ldh [hMapWidth], a add MAP_BORDER * 2 ; east and west - ld [hMapStride], a ; map width + border + ldh [hMapStride], a ; map width + border ld b, 0 ld c, a ; make space for north border (next 3 lines) @@ -897,7 +897,7 @@ LoadTileBlockMap:: ld b, a .rowLoop ; copy one row each iteration push hl - ld a, [hMapWidth] ; map width (without border) + ldh a, [hMapWidth] ; map width (without border) ld c, a .rowInnerLoop ld a, [de] @@ -907,7 +907,7 @@ LoadTileBlockMap:: jr nz, .rowInnerLoop ; add the map width plus the border to the base address of the current row to get the next row's address pop hl - ld a, [hMapStride] ; map width + border + ldh a, [hMapStride] ; map width + border add l ld l, a jr nc, .noCarry @@ -929,9 +929,9 @@ LoadTileBlockMap:: ld a, [wNorthConnectionStripDest + 1] ld d, a ld a, [wNorthConnectionStripWidth] - ld [hNorthSouthConnectionStripWidth], a + ldh [hNorthSouthConnectionStripWidth], a ld a, [wNorthConnectedMapWidth] - ld [hNorthSouthConnectedMapWidth], a + ldh [hNorthSouthConnectedMapWidth], a call LoadNorthSouthConnectionsTileMap .southConnection ld a, [wMapConn2Ptr] @@ -947,9 +947,9 @@ LoadTileBlockMap:: ld a, [wSouthConnectionStripDest + 1] ld d, a ld a, [wSouthConnectionStripWidth] - ld [hNorthSouthConnectionStripWidth], a + ldh [hNorthSouthConnectionStripWidth], a ld a, [wSouthConnectedMapWidth] - ld [hNorthSouthConnectedMapWidth], a + ldh [hNorthSouthConnectedMapWidth], a call LoadNorthSouthConnectionsTileMap .westConnection ld a, [wMapConn3Ptr] @@ -967,7 +967,7 @@ LoadTileBlockMap:: ld a, [wWestConnectionStripHeight] ld b, a ld a, [wWestConnectedMapWidth] - ld [hEastWestConnectedMapWidth], a + ldh [hEastWestConnectedMapWidth], a call LoadEastWestConnectionsTileMap .eastConnection ld a, [wMapConn4Ptr] @@ -985,7 +985,7 @@ LoadTileBlockMap:: ld a, [wEastConnectionStripHeight] ld b, a ld a, [wEastConnectedMapWidth] - ld [hEastWestConnectedMapWidth], a + ldh [hEastWestConnectedMapWidth], a call LoadEastWestConnectionsTileMap .done ret @@ -995,7 +995,7 @@ LoadNorthSouthConnectionsTileMap:: .loop push de push hl - ld a, [hNorthSouthConnectionStripWidth] + ldh a, [hNorthSouthConnectionStripWidth] ld b, a .innerLoop ld a, [hli] @@ -1005,7 +1005,7 @@ LoadNorthSouthConnectionsTileMap:: jr nz, .innerLoop pop hl pop de - ld a, [hNorthSouthConnectedMapWidth] + ldh a, [hNorthSouthConnectedMapWidth] add l ld l, a jr nc, .noCarry1 @@ -1034,7 +1034,7 @@ LoadEastWestConnectionsTileMap:: jr nz, .innerLoop pop de pop hl - ld a, [hEastWestConnectedMapWidth] + ldh a, [hEastWestConnectedMapWidth] add l ld l, a jr nc, .noCarry1 @@ -1055,7 +1055,7 @@ LoadEastWestConnectionsTileMap:: ; if so, carry is set. otherwise, carry is cleared IsSpriteOrSignInFrontOfPlayer:: xor a - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a ld a, [wNumSigns] and a jr z, .extendRangeOverCounter @@ -1081,7 +1081,7 @@ IsSpriteInFrontOfPlayer:: ld d, $10 ; talking range in pixels (normal range) IsSpriteInFrontOfPlayer2:: lb bc, $3c, $40 ; Y and X position of player sprite - ld a, [wSpritePlayerStateData1FacingDirection] ; direction the player is facing + ld a, [wSpritePlayerStateData1FacingDirection] .checkIfPlayerFacingUp cp SPRITE_FACING_UP jr nz, .checkIfPlayerFacingDown @@ -1120,7 +1120,7 @@ IsSpriteInFrontOfPlayer2:: ld a, PLAYER_DIR_LEFT .doneCheckingDirection ld [wPlayerDirection], a - ld hl, wSpriteStateData1 + $10 + ld hl, wSprite01StateData1 ; yellow does not have the "if sprites are existant" check ld e, $01 ld d, $f @@ -1157,11 +1157,11 @@ IsSpriteInFrontOfPlayer2:: ld a, l and $f0 inc a - ld l, a ; hl = $c1x1 + ld l, a ; hl = x#SPRITESTATEDATA1_MOVEMENTSTATUS set 7, [hl] ; set flag to make the sprite face the player ld a, e - ld [hSpriteIndexOrTextID], a - ld a, [hSpriteIndexOrTextID] ; possible useless read because a already has the value of the read address + ldh [hSpriteIndexOrTextID], a + ldh a, [hSpriteIndexOrTextID] ; possible useless read because a already has the value of the read address cp $f jr nz, .dontwritetowd436 ld a, $FF @@ -1197,7 +1197,7 @@ SignLoop:: dec c add hl, bc ld a, [hl] - ld [hSpriteIndexOrTextID], a ; store sign text ID + ldh [hSpriteIndexOrTextID], a ; store sign text ID pop bc pop hl scf @@ -1221,16 +1221,16 @@ CollisionCheckOnLand:: jr nz, .noCollision ; no collisions when the player's movements are being controlled by the game ld a, [wPlayerDirection] ; the direction that the player is trying to go in ld d, a - ld a, [wSpriteStateData1 + 12] ; the player sprite's collision data (bit field) (set in the sprite movement code) + ld a, [wSpritePlayerStateData1CollisionData] and d ; check if a sprite is in the direction the player is trying to go nop ; ??? why is this in the code jr nz, .collision xor a - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call IsSpriteInFrontOfPlayer ; check for sprite collisions again? when does the above check fail to detect a sprite collision? jr nc, .asm_0a5c res 7, [hl] - ld a, [hSpriteIndexOrTextID] + ldh a, [hSpriteIndexOrTextID] and a ; was there a sprite collision? jr z, .asm_0a5c ; if no sprite collision @@ -1238,7 +1238,7 @@ CollisionCheckOnLand:: jr nz, .collision call CheckPikachuFollowingPlayer jr nz, .collision - ld a, [hJoyHeld] + ldh a, [hJoyHeld] and $2 jr nz, .asm_0a5c ld hl, wd435 @@ -1284,7 +1284,7 @@ CheckForJumpingAndTilePairCollisions:: predef GetTileAndCoordsInFrontOfPlayer ; get the tile in front of the player push de push bc - callba HandleLedges ; check if the player is trying to jump a ledge + farcall HandleLedges ; check if the player is trying to jump a ledge pop bc pop de pop hl @@ -1295,7 +1295,7 @@ CheckForJumpingAndTilePairCollisions:: ; if not jumping CheckForTilePairCollisions2:: - aCoord 8, 9 ; tile the player is on + lda_coord 8, 9 ; tile the player is on ld [wTilePlayerStandingOn], a CheckForTilePairCollisions:: @@ -1343,34 +1343,11 @@ CheckForTilePairCollisions:: and a ret -; FORMAT: tileset number, tile 1, tile 2 -; terminated by 0xFF -; these entries indicate that the player may not cross between tile 1 and tile 2 -; it's mainly used to simulate differences in elevation - -TilePairCollisionsLand:: - db CAVERN, $20, $05 - db CAVERN, $41, $05 - db FOREST, $30, $2E - db CAVERN, $2A, $05 - db CAVERN, $05, $21 - db FOREST, $52, $2E - db FOREST, $55, $2E - db FOREST, $56, $2E - db FOREST, $20, $2E - db FOREST, $5E, $2E - db FOREST, $5F, $2E - db $FF - -TilePairCollisionsWater:: - db FOREST, $14, $2E - db FOREST, $48, $2E - db CAVERN, $14, $05 - db $FF +INCLUDE "data/tilesets/pair_collision_tile_ids.asm" ; this builds a tile map from the tile block map based on the current X/Y coordinates of the player's character LoadCurrentMapView:: - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af ld a, [wTilesetBank] ; tile data ROM bank call BankswitchCommon ; switch to ROM bank that contains tile data @@ -1421,21 +1398,21 @@ LoadCurrentMapView:: dec b jr nz, .rowLoop ld hl, wTileMapBackup - ld bc, $0000 + ld bc, $0 .adjustForYCoordWithinTileBlock ld a, [wYBlockCoord] and a jr z, .adjustForXCoordWithinTileBlock - ld bc, $0030 + ld bc, $30 add hl, bc .adjustForXCoordWithinTileBlock ld a, [wXBlockCoord] and a jr z, .copyToVisibleAreaBuffer - ld bc, $0002 + ld bc, $2 add hl, bc .copyToVisibleAreaBuffer - coord de, 0, 0 ; base address for the tiles that are directly transferred to VRAM during V-blank + decoord 0, 0 ; base address for the tiles that are directly transferred to VRAM during V-blank ld b, SCREEN_HEIGHT .rowLoop2 ld c, SCREEN_WIDTH @@ -1473,14 +1450,14 @@ AdvancePlayerSprite:: ; the portion of the map that was newly exposed due to the player's movement ScheduleNorthRowRedraw:: - coord hl, 0, 0 + hlcoord 0, 0 call CopyToRedrawRowOrColumnSrcTiles ld a, [wMapViewVRAMPointer] - ld [hRedrawRowOrColumnDest], a + ldh [hRedrawRowOrColumnDest], a ld a, [wMapViewVRAMPointer + 1] - ld [hRedrawRowOrColumnDest + 1], a + ldh [hRedrawRowOrColumnDest + 1], a ld a, REDRAW_ROW - ld [hRedrawRowOrColumnMode], a + ldh [hRedrawRowOrColumnMode], a ret CopyToRedrawRowOrColumnSrcTiles:: @@ -1495,26 +1472,26 @@ CopyToRedrawRowOrColumnSrcTiles:: ret ScheduleSouthRowRedraw:: - coord hl, 0, 16 + hlcoord 0, 16 call CopyToRedrawRowOrColumnSrcTiles ld a, [wMapViewVRAMPointer] ld l, a ld a, [wMapViewVRAMPointer + 1] ld h, a - ld bc, $0200 + ld bc, $200 add hl, bc ld a, h and $03 or $98 - ld [hRedrawRowOrColumnDest + 1], a + ldh [hRedrawRowOrColumnDest + 1], a ld a, l - ld [hRedrawRowOrColumnDest], a + ldh [hRedrawRowOrColumnDest], a ld a, REDRAW_ROW - ld [hRedrawRowOrColumnMode], a + ldh [hRedrawRowOrColumnMode], a ret ScheduleEastColumnRedraw:: - coord hl, 18, 0 + hlcoord 18, 0 call ScheduleColumnRedrawHelper ld a, [wMapViewVRAMPointer] ld c, a @@ -1524,11 +1501,11 @@ ScheduleEastColumnRedraw:: add 18 and $1f or b - ld [hRedrawRowOrColumnDest], a + ldh [hRedrawRowOrColumnDest], a ld a, [wMapViewVRAMPointer + 1] - ld [hRedrawRowOrColumnDest + 1], a + ldh [hRedrawRowOrColumnDest + 1], a ld a, REDRAW_COL - ld [hRedrawRowOrColumnMode], a + ldh [hRedrawRowOrColumnMode], a ret ScheduleColumnRedrawHelper:: @@ -1552,14 +1529,14 @@ ScheduleColumnRedrawHelper:: ret ScheduleWestColumnRedraw:: - coord hl, 0, 0 + hlcoord 0, 0 call ScheduleColumnRedrawHelper ld a, [wMapViewVRAMPointer] - ld [hRedrawRowOrColumnDest], a + ldh [hRedrawRowOrColumnDest], a ld a, [wMapViewVRAMPointer + 1] - ld [hRedrawRowOrColumnDest + 1], a + ldh [hRedrawRowOrColumnDest + 1], a ld a, REDRAW_COL - ld [hRedrawRowOrColumnMode], a + ldh [hRedrawRowOrColumnMode], a ret ; function to write the tiles that make up a tile block to memory @@ -1597,7 +1574,7 @@ DrawTileBlock:: ld a, [de] ld [hl], a inc de - ld bc, $0015 + ld bc, $15 add hl, bc pop bc dec c @@ -1607,8 +1584,8 @@ DrawTileBlock:: ; function to update joypad state and simulate button presses JoypadOverworld:: xor a - ld [wSpriteStateData1 + 3], a - ld [wSpriteStateData1 + 5], a + ld [wSpritePlayerStateData1YStepVector], a + ld [wSpritePlayerStateData1XStepVector], a call RunMapScript call Joypad call ForceBikeDown @@ -1622,11 +1599,11 @@ ForceBikeDown:: ld a, [wCurMap] cp ROUTE_17 ; Cycling Road ret nz - ld a, [hJoyHeld] + ldh a, [hJoyHeld] and D_DOWN | D_UP | D_LEFT | D_RIGHT | B_BUTTON | A_BUTTON ret nz ld a, D_DOWN - ld [hJoyHeld], a ; on the cycling road, if there isn't a trainer and the player isn't pressing buttons, simulate a down press + ldh [hJoyHeld], a ; on the cycling road, if there isn't a trainer and the player isn't pressing buttons, simulate a down press ret AreInputsSimulated:: @@ -1634,18 +1611,18 @@ AreInputsSimulated:: bit 7, a ret z ; if simulating button presses - ld a, [hJoyHeld] + ldh a, [hJoyHeld] ld b, a ld a, [wOverrideSimulatedJoypadStatesMask] ; bit mask for button presses that override simulated ones and b ret nz ; return if the simulated button presses are overridden call GetSimulatedInput jr nc, .doneSimulating - ld [hJoyHeld], a ; store simulated button press in joypad state + ldh [hJoyHeld], a ; store simulated button press in joypad state and a ret nz - ld [hJoyPressed], a - ld [hJoyReleased], a + ldh [hJoyPressed], a + ldh [hJoyReleased], a ret ; if done simulating button presses @@ -1655,7 +1632,7 @@ AreInputsSimulated:: ld [wSimulatedJoypadStatesIndex], a ld [wSimulatedJoypadStatesEnd], a ld [wJoyIgnore], a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld hl, wd736 ld a, [hl] and $f8 @@ -1694,14 +1671,14 @@ CollisionCheckOnWater:: jp nz, .noCollision ; return and clear carry if button presses are being simulated ld a, [wPlayerDirection] ; the direction that the player is trying to go in ld d, a - ld a, [wSpriteStateData1 + 12] ; the player sprite's collision data (bit field) (set in the sprite movement code) + ld a, [wSpritePlayerStateData1CollisionData] and d ; check if a sprite is in the direction the player is trying to go jr nz, .collision ld hl, TilePairCollisionsWater call CheckForJumpingAndTilePairCollisions jr c, .collision predef GetTileAndCoordsInFrontOfPlayer ; get tile in front of player (puts it in c and [wTileInFrontOfPlayer]) - callab IsNextTileShoreOrWater + callfar IsNextTileShoreOrWater jr c, .noCollision ld a, [wTileInFrontOfPlayer] ; tile in front of player ld c, a @@ -1742,11 +1719,11 @@ RunMapScript:: push hl push de push bc - callba TryPushingBoulder + farcall TryPushingBoulder ld a, [wFlags_0xcd60] bit 1, a ; play boulder dust animation jr z, .afterBoulderEffect - callba DoBoulderDustAnimation + farcall DoBoulderDustAnimation .afterBoulderEffect pop bc pop de @@ -1795,8 +1772,9 @@ LoadSurfingPlayerSpriteGraphics:: jr LoadPlayerSpriteGraphicsCommon LoadBikePlayerSpriteGraphics:: - ld b, BANK(RedCyclingSprite) - ld de, RedCyclingSprite + ld b, BANK(RedBikeSprite) + ld de, RedBikeSprite + LoadPlayerSpriteGraphicsCommon:: ld hl, vNPCSprites push de @@ -1819,12 +1797,12 @@ LoadPlayerSpriteGraphicsCommon:: ; function to load data from the map header LoadMapHeader:: - callba MarkTownVisitedAndLoadMissableObjects + farcall MarkTownVisitedAndLoadMissableObjects jr asm_0dbd Func_0db5:: ; XXX - callba LoadUnusedBluesHouseMissableObjectData -asm_0dbd + farcall LoadUnusedBluesHouseMissableObjectData +asm_0dbd: ld a, [wCurMapTileset] ld [wUnusedD119], a ld a, [wCurMap] @@ -1833,7 +1811,7 @@ asm_0dbd ld b, a res 7, a ld [wCurMapTileset], a - ld [hPreviousTileset], a + ldh [hPreviousTileset], a bit 7, b ret nz call GetMapHeaderPointer @@ -1921,9 +1899,9 @@ asm_0dbd ld a, [wd72e] bit 5, a ; did a battle happen immediately before this? jr nz, .skip_pika_spawn - callab SchedulePikachuSpawnForAfterText + callfar SchedulePikachuSpawnForAfterText .skip_pika_spawn - callab LoadWildData + callfar LoadWildData pop hl ; restore hl from before going to the warp/sign/sprite data (this value was saved for seemingly no purpose) ld a, [wCurMapHeight] ; map height in 4x4 tile blocks add a ; double it @@ -1934,7 +1912,7 @@ asm_0dbd ld a, [wCurMap] ld c, a ld b, $00 - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af switchbank MapSongBanks ld hl, MapSongBanks @@ -1982,7 +1960,7 @@ CopySignData:: ; function to load map data LoadMapData:: - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af call DisableLCD call ResetMapVariables @@ -2017,7 +1995,7 @@ LoadScreenRelatedData:: ret ReloadMapAfterSurfingMinigame:: - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af call DisableLCD call ResetMapVariables @@ -2034,7 +2012,7 @@ ReloadMapAfterSurfingMinigame:: jr asm_0f4d ReloadMapAfterPrinter:: - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af ld a, [wCurMap] call SwitchToMapRomBank @@ -2042,7 +2020,7 @@ ReloadMapAfterPrinter:: pop af call BankswitchCommon asm_0f4d: - jpab SetMapSpecificScriptFlagsOnMapReload + jpfar SetMapSpecificScriptFlagsOnMapReload ret ; useless? ResetMapVariables:: @@ -2050,8 +2028,8 @@ ResetMapVariables:: ld [wMapViewVRAMPointer + 1], a xor a ld [wMapViewVRAMPointer], a - ld [hSCY], a - ld [hSCX], a + ldh [hSCY], a + ldh [hSCX], a ld [wWalkCounter], a ld [wUnusedD119], a ld [wSpriteSetID], a @@ -2094,16 +2072,16 @@ SwitchToMapRomBank:: ld hl, MapHeaderBanks add hl, bc ld a, [hl] - ld [$ffe8], a ; save map ROM bank + ldh [hMapROMBank], a ; save map ROM bank call BankswitchBack - ld a, [$ffe8] + ldh a, [hMapROMBank] call BankswitchCommon pop bc pop hl ret GetMapHeaderPointer:: - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af switchbank MapHeaderPointers push de @@ -2146,17 +2124,17 @@ HandleMidJump:: ld a, [wd736] bit 6, a ; jumping down a ledge? ret z - callba _HandleMidJump + farcall _HandleMidJump ret IsSpinning:: ld a, [wd736] bit 7, a ret z ; no spinning - jpba LoadSpinnerArrowTiles ; spin while moving + farjp LoadSpinnerArrowTiles ; spin while moving Func_0ffe:: - jpab IsPlayerTalkingToPikachu + jpfar IsPlayerTalkingToPikachu InitSprites:: ld a, [hli] @@ -2178,27 +2156,27 @@ InitSprites:: ret z ; don't copy sprite data if not ld b, a ld c, $0 - ld de, wSpriteStateData1 + $10 + ld de, wSprite01StateData1 ; copy sprite stuff? .loadSpriteLoop ld a, [hli] - ld [de], a ; store picture ID at C1X0 + ld [de], a ; x#SPRITESTATEDATA1_PICTUREID inc d ld a, e add $4 ld e, a ld a, [hli] - ld [de], a ; store Y position at C2X4 + ld [de], a ; x#SPRITESTATEDATA2_MAPY inc e ld a, [hli] - ld [de], a ; store X position at C2X5 + ld [de], a ; x#SPRITESTATEDATA2_MAPX inc e ld a, [hli] - ld [de], a ; store movement byte 1 at C2X6 + ld [de], a ; x#SPRITESTATEDATA2_MOVEMENTBYTE1 ld a, [hli] - ld [$ff8d], a ; save movement byte 2 + ldh [hLoadSpriteTemp1], a ; save movement byte 2 ld a, [hli] - ld [$ff8e], a ; save text ID and flags byte + ldh [hLoadSpriteTemp2], a ; save text ID and flags byte push bc call LoadSprite pop bc @@ -2213,10 +2191,10 @@ InitSprites:: ret ZeroSpriteStateData:: -; zero C110-C1EF and C210-C2EF -; C1F0-C1FF and C2F0-C2FF is used for Pikachu - ld hl, wSpriteStateData1 + $10 - ld de, wSpriteStateData2 + $10 +; zero out sprite state data for sprites 01-14 +; sprite 15 is used for Pikachu + ld hl, wSprite01StateData1 + ld de, wSprite01StateData2 xor a ld b, 14 * $10 .loop @@ -2228,8 +2206,8 @@ ZeroSpriteStateData:: ret DisableRegularSprites:: -; initialize all C100-C1FF sprite entries to disabled (other than player's and pikachu) - ld hl, wSpriteStateData1 + 1 * $10 + 2 +; disable SPRITESTATEDATA1_IMAGEINDEX (set to $ff) for sprites 01-14 + ld hl, wSprite01StateData1ImageIndex ld de, $10 ld c, $e .loop @@ -2244,16 +2222,16 @@ LoadSprite:: ld b, $0 ld hl, wMapSpriteData add hl, bc - ld a, [$ff8d] + ldh a, [hLoadSpriteTemp1] ld [hli], a ; store movement byte 2 in byte 0 of sprite entry - ld a, [$ff8e] + ldh a, [hLoadSpriteTemp2] ld [hl], a ; this appears pointless, since the value is overwritten immediately after - ld a, [$ff8e] - ld [$ff8d], a + ldh a, [hLoadSpriteTemp2] + ldh [hLoadSpriteTemp1], a and $3f ld [hl], a ; store text ID in byte 1 of sprite entry pop hl - ld a, [$ff8d] + ldh a, [hLoadSpriteTemp1] bit 6, a jr nz, .trainerSprite bit 7, a @@ -2271,28 +2249,79 @@ LoadSprite:: .trainerSprite ld a, [hli] - ld [$ff8d], a ; save trainer class + ldh [hLoadSpriteTemp1], a ; save trainer class ld a, [hli] - ld [$ff8e], a ; save trainer number (within class) + ldh [hLoadSpriteTemp2], a ; save trainer number (within class) push hl ld hl, wMapSpriteExtraData add hl, bc - ld a, [$ff8d] + ldh a, [hLoadSpriteTemp1] ld [hli], a ; store trainer class in byte 0 of the entry - ld a, [$ff8e] + ldh a, [hLoadSpriteTemp2] ld [hl], a ; store trainer number in byte 1 of the entry pop hl ret .itemBallSprite ld a, [hli] - ld [$ff8d], a ; save item number + ldh [hLoadSpriteTemp1], a ; save item number push hl ld hl, wMapSpriteExtraData add hl, bc - ld a, [$ff8d] + ldh a, [hLoadSpriteTemp1] ld [hli], a ; store item number in byte 0 of the entry xor a ld [hl], a ; zero byte 1, since it is not used pop hl ret + +CheckForUserInterruption:: +; Return carry if Up+Select+B, Start or A are pressed in c frames. +; Used only in the intro and title screen. + call DelayFrame + + push bc + call JoypadLowSensitivity + pop bc + + ldh a, [hJoyHeld] + cp D_UP + SELECT + B_BUTTON + jr z, .input + + ldh a, [hJoy5] + and START | A_BUTTON + jr nz, .input + + dec c + jr nz, CheckForUserInterruption + + and a + ret + +.input + scf + ret + +; function to load position data for destination warp when switching maps +; INPUT: +; a = ID of destination warp within destination map +LoadDestinationWarpPosition:: + ld b, a + ldh a, [hLoadedROMBank] + push af + ld a, [wPredefParentBank] + ldh [hLoadedROMBank], a + ld [MBC1RomBank], a + ld a, b + add a + add a + ld c, a + ld b, 0 + add hl, bc + ld bc, 4 + ld de, wCurrentTileBlockMapViewPointer + call CopyData + pop af + ldh [hLoadedROMBank], a + ld [MBC1RomBank], a + ret diff --git a/home/overworld_text.asm b/home/overworld_text.asm new file mode 100644 index 000000000..7ea23fe43 --- /dev/null +++ b/home/overworld_text.asm @@ -0,0 +1,31 @@ +TextScriptEndingText:: + text_end + +TextScriptEnd:: + ld hl, TextScriptEndingText + ret + +ExclamationText:: + text_far _ExclamationText + text_end + +GroundRoseText:: + text_far _GroundRoseText + text_end + +BoulderText:: + text_far _BoulderText + text_end + +MartSignText:: + text_far _MartSignText + text_end + +PokeCenterSignText:: + text_far _PokeCenterSignText + text_end + +PickUpItemText:: + text_asm + predef PickUpItem + jp TextScriptEnd diff --git a/home/palettes.asm b/home/palettes.asm new file mode 100644 index 000000000..3b944a03a --- /dev/null +++ b/home/palettes.asm @@ -0,0 +1,63 @@ +RestoreScreenTilesAndReloadTilePatterns:: + call ClearSprites + ld a, $1 + ld [wUpdateSpritesEnabled], a + call ReloadMapSpriteTilePatterns + call LoadScreenTilesFromBuffer2 + call LoadTextBoxTilePatterns + call RunDefaultPaletteCommand + jr Delay3 + +GBPalWhiteOutWithDelay3:: + call GBPalWhiteOut + +Delay3:: +; The bg map is updated each frame in thirds. +; Wait three frames to let the bg map fully update. + ld c, 3 + jp DelayFrames + +GBPalNormal:: +; Reset BGP and OBP0. + ld a, %11100100 ; 3210 + ldh [rBGP], a + ld a, %11010000 ; 3100 + ldh [rOBP0], a + call UpdateGBCPal_BGP + call UpdateGBCPal_OBP0 + call UpdateGBCPal_OBP1 + ret + +GBPalWhiteOut:: +; White out all palettes. + xor a + ldh [rBGP], a + ldh [rOBP0], a + ldh [rOBP1], a + call UpdateGBCPal_BGP + call UpdateGBCPal_OBP0 + call UpdateGBCPal_OBP1 + ret + +RunDefaultPaletteCommand:: + ld b, SET_PAL_DEFAULT +RunPaletteCommand:: + ld a, [wOnSGB] + and a + ret z + predef_jump _RunPaletteCommand + +GetHealthBarColor:: +; Return at hl the palette of +; an HP bar e pixels long. + ld a, e + cp 27 + ld d, 0 ; green + jr nc, .gotColor + cp 10 + inc d ; yellow + jr nc, .gotColor + inc d ; red +.gotColor + ld [hl], d + ret diff --git a/home/pathfinding.asm b/home/pathfinding.asm new file mode 100644 index 000000000..53f988479 --- /dev/null +++ b/home/pathfinding.asm @@ -0,0 +1,65 @@ +; calculates the difference |a-b|, setting carry flag if a mode 0 - call ReadNextInputBit ; 1 0 -> mode 1 - inc a ; 1 1 -> mode 2 -.unpackingMode0 - ld [wSpriteUnpackMode], a -.startDecompression - call ReadNextInputBit - and a - jr z, .readRLEncodedZeros ; if first bit is 0, the input starts with zeroes, otherwise with (non-zero) input -.readNextInput - call ReadNextInputBit - ld c, a - call ReadNextInputBit - sla c - or c ; read next two bits into c - and a - jr z, .readRLEncodedZeros ; 00 -> RLEncoded zeroes following - call WriteSpriteBitsToBuffer ; otherwise write input to output and repeat - call MoveToNextBufferPosition - jr .readNextInput -.readRLEncodedZeros - ld c, $0 ; number of zeroes it length encoded, the number -.countConsecutiveOnesLoop ; of consecutive ones determines the number of bits the number has - call ReadNextInputBit - and a - jr z, .countConsecutiveOnesFinished - inc c - jr .countConsecutiveOnesLoop -.countConsecutiveOnesFinished - ld a, c - add a - ld hl, LengthEncodingOffsetList - add l - ld l, a - jr nc, .noCarry - inc h -.noCarry - ld a, [hli] ; read offset that is added to the number later on - ld e, a ; adding an offset of 2^length - 1 makes every integer uniquely - ld d, [hl] ; representable in the length encoding and saves bits - push de - inc c - ld e, $0 - ld d, e -.readNumberOfZerosLoop ; reads the next c+1 bits of input - call ReadNextInputBit - or e - ld e, a - dec c - jr z, .readNumberOfZerosDone - sla e - rl d - jr .readNumberOfZerosLoop -.readNumberOfZerosDone - pop hl ; add the offset - add hl, de - ld e, l - ld d, h -.writeZerosLoop - ld b, e - xor a ; write 00 to buffer - call WriteSpriteBitsToBuffer - ld e, b - call MoveToNextBufferPosition - dec de - ld a, d - and a - jr nz, .continueLoop - ld a, e - and a -.continueLoop - jr nz, .writeZerosLoop - jr .readNextInput - -; moves output pointer to next position -; also cancels the calling function if the all output is done (by removing the return pointer from stack) -; and calls postprocessing functions according to the unpack mode -MoveToNextBufferPosition:: - ld a, [wSpriteHeight] - ld b, a - ld a, [wSpriteCurPosY] - inc a - cp b - jr z, .curColumnDone - ld [wSpriteCurPosY], a - ld a, [wSpriteOutputPtr] - inc a - ld [wSpriteOutputPtr], a - ret nz - ld a, [wSpriteOutputPtr+1] - inc a - ld [wSpriteOutputPtr+1], a - ret -.curColumnDone - xor a - ld [wSpriteCurPosY], a - ld a, [wSpriteOutputBitOffset] - and a - jr z, .bitOffsetsDone - dec a - ld [wSpriteOutputBitOffset], a - ld hl, wSpriteOutputPtrCached - ld a, [hli] - ld [wSpriteOutputPtr], a - ld a, [hl] - ld [wSpriteOutputPtr+1], a - ret -.bitOffsetsDone - ld a, $3 - ld [wSpriteOutputBitOffset], a - ld a, [wSpriteCurPosX] - add $8 - ld [wSpriteCurPosX], a - ld b, a - ld a, [wSpriteWidth] - cp b - jr z, .allColumnsDone - ld a, [wSpriteOutputPtr] - ld l, a - ld a, [wSpriteOutputPtr+1] - ld h, a - inc hl - jp StoreSpriteOutputPointer -.allColumnsDone - pop hl - xor a - ld [wSpriteCurPosX], a - ld a, [wSpriteLoadFlags] - bit 1, a - jr nz, .done ; test if there is one more sprite to go - xor $1 - set 1, a - ld [wSpriteLoadFlags], a - jp UncompressSpriteDataLoop -.done - jp UnpackSprite - -; writes 2 bits (from a) to the output buffer (pointed to from wSpriteOutputPtr) -WriteSpriteBitsToBuffer:: - ld e, a - ld a, [wSpriteOutputBitOffset] - and a - jr z, .offset0 - cp $2 - jr c, .offset1 - jr z, .offset2 - rrc e ; offset 3 - rrc e - jr .offset0 -.offset1 - sla e - sla e - jr .offset0 -.offset2 - swap e -.offset0 - ld a, [wSpriteOutputPtr] - ld l, a - ld a, [wSpriteOutputPtr+1] - ld h, a - ld a, [hl] - or e - ld [hl], a - ret - -; reads next bit from input stream and returns it in a -ReadNextInputBit:: - ld a, [wSpriteInputBitCounter] - dec a - jr nz, .curByteHasMoreBitsToRead - call ReadNextInputByte - ld [wSpriteInputCurByte], a - ld a, $8 -.curByteHasMoreBitsToRead - ld [wSpriteInputBitCounter], a - ld a, [wSpriteInputCurByte] - rlca - ld [wSpriteInputCurByte], a - and $1 - ret - -; reads next byte from input stream and returns it in a -ReadNextInputByte:: - ld a, [wSpriteInputPtr] - ld l, a - ld a, [wSpriteInputPtr+1] - ld h, a - ld a, [hli] - ld b, a - ld a, l - ld [wSpriteInputPtr], a - ld a, h - ld [wSpriteInputPtr+1], a - ld a, b - ret - -; the nth item is 2^n - 1 -LengthEncodingOffsetList:: - dw %0000000000000001 - dw %0000000000000011 - dw %0000000000000111 - dw %0000000000001111 - dw %0000000000011111 - dw %0000000000111111 - dw %0000000001111111 - dw %0000000011111111 - dw %0000000111111111 - dw %0000001111111111 - dw %0000011111111111 - dw %0000111111111111 - dw %0001111111111111 - dw %0011111111111111 - dw %0111111111111111 - dw %1111111111111111 - -; unpacks the sprite data depending on the unpack mode -UnpackSprite:: - ld a, [wSpriteUnpackMode] - cp $2 - jp z, UnpackSpriteMode2 - and a - jp nz, XorSpriteChunks - ld hl, sSpriteBuffer1 - call SpriteDifferentialDecode - ld hl, sSpriteBuffer2 - ; fall through - -; decodes differential encoded sprite data -; input bit value 0 preserves the current bit value and input bit value 1 toggles it (starting from initial value 0). -SpriteDifferentialDecode:: - xor a - ld [wSpriteCurPosX], a - ld [wSpriteCurPosY], a - call StoreSpriteOutputPointer - ld a, [wSpriteFlipped] - and a - jr z, .notFlipped - ld hl, DecodeNybble0TableFlipped - ld de, DecodeNybble1TableFlipped - jr .storeDecodeTablesPointers -.notFlipped - ld hl, DecodeNybble0Table - ld de, DecodeNybble1Table -.storeDecodeTablesPointers - ld a, l - ld [wSpriteDecodeTable0Ptr], a - ld a, h - ld [wSpriteDecodeTable0Ptr+1], a - ld a, e - ld [wSpriteDecodeTable1Ptr], a - ld a, d - ld [wSpriteDecodeTable1Ptr+1], a - ld e, $0 ; last decoded nybble, initialized to 0 -.decodeNextByteLoop - ld a, [wSpriteOutputPtr] - ld l, a - ld a, [wSpriteOutputPtr+1] - ld h, a - ld a, [hl] - ld b, a - swap a - and $f - call DifferentialDecodeNybble ; decode high nybble - swap a - ld d, a - ld a, b - and $f - call DifferentialDecodeNybble ; decode low nybble - or d - ld b, a - ld a, [wSpriteOutputPtr] - ld l, a - ld a, [wSpriteOutputPtr+1] - ld h, a - ld a, b - ld [hl], a ; write back decoded data - ld a, [wSpriteHeight] - add l ; move on to next column - jr nc, .noCarry - inc h -.noCarry - ld [wSpriteOutputPtr], a - ld a, h - ld [wSpriteOutputPtr+1], a - ld a, [wSpriteCurPosX] - add $8 - ld [wSpriteCurPosX], a - ld b, a - ld a, [wSpriteWidth] - cp b - jr nz, .decodeNextByteLoop ; test if current row is done - xor a - ld e, a - ld [wSpriteCurPosX], a - ld a, [wSpriteCurPosY] ; move on to next row - inc a - ld [wSpriteCurPosY], a - ld b, a - ld a, [wSpriteHeight] - cp b - jr z, .done ; test if all rows finished - ld a, [wSpriteOutputPtrCached] - ld l, a - ld a, [wSpriteOutputPtrCached+1] - ld h, a - inc hl - call StoreSpriteOutputPointer - jr .decodeNextByteLoop -.done - xor a - ld [wSpriteCurPosY], a - ret - -; decodes the nybble stored in a. Last decoded data is assumed to be in e (needed to determine if initial value is 0 or 1) -DifferentialDecodeNybble:: - srl a ; c=a%2, a/=2 - ld c, $0 - jr nc, .evenNumber - ld c, $1 -.evenNumber - ld l, a - ld a, [wSpriteFlipped] - and a - jr z, .notFlipped ; determine if initial value is 0 or one - bit 3, e ; if flipped, consider MSB of last data - jr .selectLookupTable -.notFlipped - bit 0, e ; else consider LSB -.selectLookupTable - ld e, l - jr nz, .initialValue1 ; load the appropriate table - ld a, [wSpriteDecodeTable0Ptr] - ld l, a - ld a, [wSpriteDecodeTable0Ptr+1] - jr .tableLookup -.initialValue1 - ld a, [wSpriteDecodeTable1Ptr] - ld l, a - ld a, [wSpriteDecodeTable1Ptr+1] -.tableLookup - ld h, a - ld a, e - add l - ld l, a - jr nc, .noCarry - inc h -.noCarry - ld a, [hl] - bit 0, c - jr nz, .selectLowNybble - swap a ; select high nybble -.selectLowNybble - and $f - ld e, a ; update last decoded data - ret - -DecodeNybble0Table:: - dn $0, $1 - dn $3, $2 - dn $7, $6 - dn $4, $5 - dn $f, $e - dn $c, $d - dn $8, $9 - dn $b, $a -DecodeNybble1Table:: - dn $f, $e - dn $c, $d - dn $8, $9 - dn $b, $a - dn $0, $1 - dn $3, $2 - dn $7, $6 - dn $4, $5 -DecodeNybble0TableFlipped:: - dn $0, $8 - dn $c, $4 - dn $e, $6 - dn $2, $a - dn $f, $7 - dn $3, $b - dn $1, $9 - dn $d, $5 -DecodeNybble1TableFlipped:: - dn $f, $7 - dn $3, $b - dn $1, $9 - dn $d, $5 - dn $0, $8 - dn $c, $4 - dn $e, $6 - dn $2, $a - -; combines the two loaded chunks with xor (the chunk loaded second is the destination). The source chunk is differeintial decoded beforehand. -XorSpriteChunks:: - xor a - ld [wSpriteCurPosX], a - ld [wSpriteCurPosY], a - call ResetSpriteBufferPointers - ld a, [wSpriteOutputPtr] ; points to buffer 1 or 2, depending on flags - ld l, a - ld a, [wSpriteOutputPtr+1] - ld h, a - call SpriteDifferentialDecode ; decode buffer 1 or 2, depending on flags - call ResetSpriteBufferPointers - ld a, [wSpriteOutputPtr] ; source buffer, points to buffer 1 or 2, depending on flags - ld l, a - ld a, [wSpriteOutputPtr+1] - ld h, a - ld a, [wSpriteOutputPtrCached] ; destination buffer, points to buffer 2 or 1, depending on flags - ld e, a - ld a, [wSpriteOutputPtrCached+1] - ld d, a -.xorChunksLoop - ld a, [wSpriteFlipped] - and a - jr z, .notFlipped - push de - ld a, [de] - ld b, a - swap a - and $f - call ReverseNybble ; if flipped reverse the nybbles in the destination buffer - swap a - ld c, a - ld a, b - and $f - call ReverseNybble - or c - pop de - ld [de], a -.notFlipped - ld a, [hli] - ld b, a - ld a, [de] - xor b - ld [de], a - inc de - ld a, [wSpriteCurPosY] - inc a - ld [wSpriteCurPosY], a ; go to next row - ld b, a - ld a, [wSpriteHeight] - cp b - jr nz, .xorChunksLoop ; test if column finished - xor a - ld [wSpriteCurPosY], a - ld a, [wSpriteCurPosX] - add $8 - ld [wSpriteCurPosX], a ; go to next column - ld b, a - ld a, [wSpriteWidth] - cp b - jr nz, .xorChunksLoop ; test if all columns finished - xor a - ld [wSpriteCurPosX], a - ret - -; reverses the bits in the nybble given in register a -ReverseNybble:: - ld de, NybbleReverseTable - add e - ld e, a - jr nc, .noCarry - inc d -.noCarry - ld a, [de] - ret - -; resets sprite buffer pointers to buffer 1 and 2, depending on wSpriteLoadFlags -ResetSpriteBufferPointers:: - ld a, [wSpriteLoadFlags] - bit 0, a - jr nz, .buffer2Selected - ld de, sSpriteBuffer1 - ld hl, sSpriteBuffer2 - jr .storeBufferPointers -.buffer2Selected - ld de, sSpriteBuffer2 - ld hl, sSpriteBuffer1 -.storeBufferPointers - ld a, l - ld [wSpriteOutputPtr], a - ld a, h - ld [wSpriteOutputPtr+1], a - ld a, e - ld [wSpriteOutputPtrCached], a - ld a, d - ld [wSpriteOutputPtrCached+1], a - ret - -; maps each nybble to its reverse -NybbleReverseTable:: - db $0, $8, $4, $c, $2, $a, $6 ,$e, $1, $9, $5, $d, $3, $b, $7 ,$f - -; combines the two loaded chunks with xor (the chunk loaded second is the destination). Both chunks are differeintial decoded beforehand. -UnpackSpriteMode2:: - call ResetSpriteBufferPointers - ld a, [wSpriteFlipped] - push af - xor a - ld [wSpriteFlipped], a ; temporarily clear flipped flag for decoding the destination chunk - ld a, [wSpriteOutputPtrCached] - ld l, a - ld a, [wSpriteOutputPtrCached+1] - ld h, a - call SpriteDifferentialDecode - call ResetSpriteBufferPointers - pop af - ld [wSpriteFlipped], a - jp XorSpriteChunks - -; stores hl into the output pointers -StoreSpriteOutputPointer:: - ld a, l - ld [wSpriteOutputPtr], a - ld [wSpriteOutputPtrCached], a - ld a, h - ld [wSpriteOutputPtr+1], a - ld [wSpriteOutputPtrCached+1], a - ret diff --git a/home/pics.asm b/home/pics.asm new file mode 100644 index 000000000..f3b3f1b5b --- /dev/null +++ b/home/pics.asm @@ -0,0 +1,198 @@ +; uncompresses the front or back sprite of the specified mon +; assumes the corresponding mon header is already loaded +; hl contains offset to sprite pointer ($b for front or $d for back) +UncompressMonSprite:: + ld bc, wMonHeader + add hl, bc + ld a, [hli] + ld [wSpriteInputPtr], a ; fetch sprite input pointer + ld a, [hl] + ld [wSpriteInputPtr+1], a +; define (by index number) the bank that a pokemon's image is in +; index = Mew, bank 1 +; index = Kabutops fossil, bank $B +; index < $1F, bank 9 +; $1F ≤ index < $4A, bank $A +; $4A ≤ index < $74, bank $B +; $74 ≤ index < $99, bank $C +; $99 ≤ index, bank $D + ld a, [wcf91] ; XXX name for this ram location + ld b, a + ;cp MEW + ;ld a, BANK(MewPicFront) + ;jr z, .GotBank + ;ld a, b + cp FOSSIL_KABUTOPS + ld a, BANK(FossilKabutopsPic) + jr z, .GotBank + ld a, b + cp TANGELA + 1 + ld a, BANK(TangelaPicFront) + jr c, .GotBank + ld a, b + cp MOLTRES + 1 + ld a, BANK(MoltresPicFront) + jr c, .GotBank + ld a, b + cp BEEDRILL + 2 + ld a, BANK(BeedrillPicFront) + jr c, .GotBank + ld a, b + cp STARMIE + 1 + ld a, BANK(StarmiePicFront) + jr c, .GotBank + ld a, BANK(VictreebelPicFront) +.GotBank + jp UncompressSpriteData + +; de: destination location +LoadMonFrontSprite:: + push de + ld hl, wMonHFrontSprite - wMonHeader + call UncompressMonSprite + ld hl, wMonHSpriteDim + ld a, [hli] + ld c, a + pop de + ; fall through + +; postprocesses uncompressed sprite chunks to a 2bpp sprite and loads it into video ram +; calculates alignment parameters to place both sprite chunks in the center of the 7*7 tile sprite buffers +; de: destination location +; a,c: sprite dimensions (in tiles of 8x8 each) +LoadUncompressedSpriteData:: + push de + and $f + ldh [hSpriteWidth], a ; each byte contains 8 pixels (in 1bpp), so tiles=bytes for width + ld b, a + ld a, $7 + sub b ; 7-w + inc a ; 8-w + srl a ; (8-w)/2 ; horizontal center (in tiles, rounded up) + ld b, a + add a + add a + add a + sub b ; 7*((8-w)/2) ; skip for horizontal center (in tiles) + ldh [hSpriteOffset], a + ld a, c + swap a + and $f + ld b, a + add a + add a + add a ; 8*tiles is height in bytes + ldh [hSpriteHeight], a + ld a, $7 + sub b ; 7-h ; skip for vertical center (in tiles, relative to current column) + ld b, a + ldh a, [hSpriteOffset] + add b ; 7*((8-w)/2) + 7-h ; combined overall offset (in tiles) + add a + add a + add a ; 8*(7*((8-w)/2) + 7-h) ; combined overall offset (in bytes) + ldh [hSpriteOffset], a + ld a, $0 + call SwitchSRAMBankAndLatchClockData + ld hl, sSpriteBuffer0 + call ZeroSpriteBuffer ; zero buffer 0 + ld de, sSpriteBuffer1 + ld hl, sSpriteBuffer0 + call AlignSpriteDataCentered ; copy and align buffer 1 to 0 (containing the MSB of the 2bpp sprite) + ld hl, sSpriteBuffer1 + call ZeroSpriteBuffer ; zero buffer 1 + ld de, sSpriteBuffer2 + ld hl, sSpriteBuffer1 + call AlignSpriteDataCentered ; copy and align buffer 2 to 1 (containing the LSB of the 2bpp sprite) + call PrepareRTCDataAndDisableSRAM + pop de + jp InterlaceMergeSpriteBuffers + +; copies and aligns the sprite data properly inside the sprite buffer +; sprite buffers are 7*7 tiles in size, the loaded sprite is centered within this area +AlignSpriteDataCentered:: + ldh a, [hSpriteOffset] + ld b, $0 + ld c, a + add hl, bc + ldh a, [hSpriteWidth] +.columnLoop + push af + push hl + ldh a, [hSpriteHeight] + ld c, a +.columnInnerLoop + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .columnInnerLoop + pop hl + ld bc, 7*8 ; 7 tiles + add hl, bc ; advance one full column + pop af + dec a + jr nz, .columnLoop + ret + +; fills the sprite buffer (pointed to in hl) with zeros +ZeroSpriteBuffer:: + ld bc, SPRITEBUFFERSIZE +.nextByteLoop + xor a + ld [hli], a + dec bc + ld a, b + or c + jr nz, .nextByteLoop + ret + +; combines the (7*7 tiles, 1bpp) sprite chunks in buffer 0 and 1 into a 2bpp sprite located in buffer 1 through 2 +; in the resulting sprite, the rows of the two source sprites are interlaced +; de: output address +InterlaceMergeSpriteBuffers:: + ld a, $0 + call SwitchSRAMBankAndLatchClockData + push de + ld hl, sSpriteBuffer2 + (SPRITEBUFFERSIZE - 1) ; destination: end of buffer 2 + ld de, sSpriteBuffer1 + (SPRITEBUFFERSIZE - 1) ; source 2: end of buffer 1 + ld bc, sSpriteBuffer0 + (SPRITEBUFFERSIZE - 1) ; source 1: end of buffer 0 + ld a, SPRITEBUFFERSIZE/2 ; $c4 + ldh [hSpriteInterlaceCounter], a +.interlaceLoop + ld a, [de] + dec de + ld [hld], a ; write byte of source 2 + ld a, [bc] + dec bc + ld [hld], a ; write byte of source 1 + ld a, [de] + dec de + ld [hld], a ; write byte of source 2 + ld a, [bc] + dec bc + ld [hld], a ; write byte of source 1 + ldh a, [hSpriteInterlaceCounter] + dec a + ldh [hSpriteInterlaceCounter], a + jr nz, .interlaceLoop + ld a, [wSpriteFlipped] + and a + jr z, .notFlipped + ld bc, 2*SPRITEBUFFERSIZE + ld hl, sSpriteBuffer1 +.swapLoop + swap [hl] ; if flipped swap nybbles in all bytes + inc hl + dec bc + ld a, b + or c + jr nz, .swapLoop +.notFlipped + pop hl + ld de, sSpriteBuffer1 + ld c, (2*SPRITEBUFFERSIZE)/16 ; $31, number of 16 byte chunks to be copied + ldh a, [hLoadedROMBank] + ld b, a + call CopyVideoData + jp PrepareRTCDataAndDisableSRAM diff --git a/home/pikachu.asm b/home/pikachu.asm index 336c80b33..c276b3d4b 100755 --- a/home/pikachu.asm +++ b/home/pikachu.asm @@ -55,7 +55,7 @@ SpawnPikachu:: ld a, [hl] dec a swap a - ld [hTilePlayerStandingOn], a + ldh [hTilePlayerStandingOn], a homecall SpawnPikachu_ ; 3f:46d5 ret @@ -83,7 +83,7 @@ Pikachu_IsInArray:: GetPikachuMovementScriptByte:: push hl push bc - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af ld a, [wPikachuMovementScriptBank] call BankswitchCommon @@ -105,7 +105,7 @@ GetPikachuMovementScriptByte:: ret ApplyPikachuMovementData:: - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] ld b, a push af callbs ApplyPikachuMovementData_ diff --git a/home/play_time.asm b/home/play_time.asm index 47b2a6909..d6c95fbd8 100644 --- a/home/play_time.asm +++ b/home/play_time.asm @@ -1,10 +1,10 @@ -TrackPlayTime: +TrackPlayTime:: call CountDownIgnoreInputBitReset ld hl, wd47a bit 0, [hl] jr nz, .maxIGT - ld a,[wd732] - bit 0,a + ld a, [wd732] + bit 0, a ret z ld a, [wPlayTimeMaxed] and a @@ -66,6 +66,6 @@ CountDownIgnoreInputBitReset: ld [wd730], a ret z xor a - ld [hJoyPressed], a - ld [hJoyHeld], a + ldh [hJoyPressed], a + ldh [hJoyHeld], a ret diff --git a/home/pokemon.asm b/home/pokemon.asm new file mode 100644 index 000000000..3e08906fd --- /dev/null +++ b/home/pokemon.asm @@ -0,0 +1,474 @@ +DrawHPBar:: +; Draw an HP bar d tiles long, and fill it to e pixels. +; If c is nonzero, show at least a sliver regardless. +; The right end of the bar changes with [wHPBarType]. + + push hl + push de + ;push bc + + ; Left + ld a, $71 ; "HP:" + ld [hli], a + ld a, $62 + ld [hli], a + + push hl + + ; Middle + ld a, $63 ; empty +.draw + ld [hli], a + dec d + jr nz, .draw + + ; Right + ld a, [wHPBarType] + dec a + ld a, $6d ; status screen and battle + jr z, .ok + dec a ; pokemon menu +.ok + ld [hl], a + + pop hl + + ld a, e + and a + jr nz, .fill + + ; If c is nonzero, draw a pixel anyway. + ld a, c + and a + jr z, .done + ld e, 1 + +.fill + ld a, e + sub 8 + jr c, .partial + ld e, a + ld a, $6b ; full + ld [hli], a + ld a, e + and a + jr z, .done + jr .fill + +.partial + ; Fill remaining pixels at the end if necessary. + ld a, $63 ; empty + add e + ld [hl], a +.done + ;pop bc + pop de + pop hl + ret + + +; loads pokemon data from one of multiple sources to wLoadedMon +; loads base stats to wMonHeader +; INPUT: +; [wWhichPokemon] = index of pokemon within party/box +; [wMonDataLocation] = source +; 00: player's party +; 01: enemy's party +; 02: current box +; 03: daycare +; OUTPUT: +; [wcf91] = pokemon ID +; wLoadedMon = base address of pokemon data +; wMonHeader = base address of base stats +LoadMonData:: + jpfar LoadMonData_ + +OverwritewMoves:: +; Write c to [wMoves + b]. Unused. + ld hl, wMoves + ld e, b + ld d, 0 + add hl, de + ld a, c + ld [hl], a + ret + +LoadFlippedFrontSpriteByMonIndex:: + ld a, 1 + ld [wSpriteFlipped], a + +LoadFrontSpriteByMonIndex:: + push hl + ld a, [wd11e] + push af + ld a, [wcf91] + ld [wd11e], a + predef IndexToPokedex + ld hl, wd11e + ld a, [hl] + pop bc + ld [hl], b + and a + pop hl + jr z, .invalidDexNumber ; dex #0 invalid + cp NUM_POKEMON + 1 + jr c, .validDexNumber ; dex >#151 invalid +.invalidDexNumber + ld a, RHYDON ; $1 + ld [wcf91], a + ret +.validDexNumber + push hl + ld de, vFrontPic + call LoadMonFrontSprite + pop hl + ldh a, [hLoadedROMBank] + push af + switchbank CopyUncompressedPicToHL + xor a + ldh [hStartTileID], a + call CopyUncompressedPicToHL + xor a + ld [wSpriteFlipped], a + pop af + jp BankswitchCommon + + +PlayCry:: +; Play monster a's cry. + push bc + ld b, a + ld a, [wLowHealthAlarm] + push af + xor a + ld [wLowHealthAlarm], a + ld a, b + call GetCryData + call PlaySound + call WaitForSoundToFinish + pop af + ld [wLowHealthAlarm], a + pop bc + ret + +GetCryData:: +; Load cry data for monster a. + dec a + ld c, a + ld b, 0 + ld hl, CryData + add hl, bc + add hl, bc + add hl, bc + + ld a, BANK(CryData) + call BankswitchHome + ld a, [hli] + ld b, a ; cry id + ld a, [hli] + ld [wFrequencyModifier], a + ld a, [hl] + ld [wTempoModifier], a + call BankswitchBack + + ; Cry headers have 3 channels, + ; and start from index CRY_SFX_START, + ; so add 3 times the cry id. + ld a, b + ld c, CRY_SFX_START + rlca ; * 2 + add b + add c + ret + +DisplayPartyMenu:: + ldh a, [hTilesetType] + push af + xor a + ldh [hTilesetType], a + call GBPalWhiteOutWithDelay3 + call ClearSprites + call PartyMenuInit + call DrawPartyMenu + jp HandlePartyMenuInput + +GoBackToPartyMenu:: + ldh a, [hTilesetType] + push af + xor a + ldh [hTilesetType], a + call PartyMenuInit + call RedrawPartyMenu + jp HandlePartyMenuInput + +PartyMenuInit:: + ld a, 1 ; hardcoded bank + call BankswitchHome + call LoadHpBarAndStatusTilePatterns + ld hl, wd730 + set 6, [hl] ; turn off letter printing delay + xor a ; PLAYER_PARTY_DATA + ld [wMonDataLocation], a + ld [wMenuWatchMovingOutOfBounds], a + ld hl, wTopMenuItemY + inc a + ld [hli], a ; top menu item Y + xor a + ld [hli], a ; top menu item X + ld a, [wPartyAndBillsPCSavedMenuItem] + push af + ld [hli], a ; current menu item ID + inc hl + ld a, [wPartyCount] + and a ; are there more than 0 pokemon in the party? + jr z, .storeMaxMenuItemID + dec a +; if party is not empty, the max menu item ID is ([wPartyCount] - 1) +; otherwise, it is 0 +.storeMaxMenuItemID + ld [hli], a ; max menu item ID + ld a, [wForcePlayerToChooseMon] + and a + ld a, A_BUTTON | B_BUTTON + jr z, .next + xor a + ld [wForcePlayerToChooseMon], a + inc a ; a = A_BUTTON +.next + ld [hli], a ; menu watched keys + pop af + ld [hl], a ; old menu item ID + ret + +HandlePartyMenuInput:: + ld a, 1 + ld [wMenuWrappingEnabled], a + ld a, $40 + ld [wPartyMenuAnimMonEnabled], a + call HandleMenuInput_ + push af ; save hJoy5 OR wMenuWrapping enabled, if no inputs were selected within a certain period of time + bit 1, a ; was B button pressed? + ld a, $0 + ld [wPartyMenuAnimMonEnabled], a + ld a, [wCurrentMenuItem] + ld [wPartyAndBillsPCSavedMenuItem], a + jr nz, .asm_1258 + ld a, [wCurrentMenuItem] + ld [wWhichPokemon], a + callfar IsThisPartymonStarterPikachu_Party + jr nc, .asm_1258 + call CheckPikachuFollowingPlayer + jr nz, .asm_128f +.asm_1258 + pop af + call PlaceUnfilledArrowMenuCursor + ld b, a + ld hl, wd730 + res 6, [hl] ; turn on letter printing delay + ld a, [wMenuItemToSwap] + and a + jp nz, .swappingPokemon + pop af + ldh [hTilesetType], a + bit 1, b + jr nz, .noPokemonChosen + ld a, [wPartyCount] + and a + jr z, .noPokemonChosen + ld a, [wCurrentMenuItem] + ld [wWhichPokemon], a + ld hl, wPartySpecies + ld b, 0 + ld c, a + add hl, bc + ld a, [hl] + ld [wcf91], a + ld [wBattleMonSpecies2], a + call BankswitchBack + and a + ret +.asm_128f + pop af + ld hl, PartyMenuText_12cc + call PrintText + xor a + ld [wMenuItemToSwap], a + pop af + ldh [hTilesetType], a +.noPokemonChosen + call BankswitchBack + scf + ret +.swappingPokemon + bit 1, b ; was the B button pressed? + jr z, .handleSwap ; if not, handle swapping the pokemon +.cancelSwap ; if the B button was pressed + farcall ErasePartyMenuCursors + xor a + ld [wMenuItemToSwap], a + ld [wPartyMenuTypeOrMessageID], a + call RedrawPartyMenu + jp HandlePartyMenuInput +.handleSwap + ld a, [wCurrentMenuItem] + ld [wWhichPokemon], a + farcall SwitchPartyMon + jp HandlePartyMenuInput + +PartyMenuText_12cc:: + text_far _SleepingPikachuText1 + text_end + +DrawPartyMenu:: + ld hl, DrawPartyMenu_ + jr DrawPartyMenuCommon + +RedrawPartyMenu:: + ld hl, RedrawPartyMenu_ + +DrawPartyMenuCommon:: + ld b, BANK(RedrawPartyMenu_) + jp Bankswitch + +; prints a pokemon's status condition +; INPUT: +; de = address of status condition +; hl = destination address +PrintStatusCondition:: + push de + dec de + dec de ; de = address of current HP + ld a, [de] + ld b, a + dec de + ld a, [de] + or b ; is the pokemon's HP zero? + pop de + jr nz, PrintStatusConditionNotFainted +; if the pokemon's HP is 0, print "FNT" + ld a, "F" + ld [hli], a + ld a, "N" + ld [hli], a + ld [hl], "T" + and a + ret + +PrintStatusConditionNotFainted:: + homecall_jump_sf PrintStatusAilment + +; function to print pokemon level, leaving off the ":L" if the level is at least 100 +; INPUT: +; hl = destination address +; [wLoadedMonLevel] = level +PrintLevel:: + ld a, "" ; ":L" tile ID + ld [hli], a + ld c, 2 ; number of digits + ld a, [wLoadedMonLevel] ; level + cp 100 + jr c, PrintLevelCommon +; if level at least 100, write over the ":L" tile + dec hl + inc c ; increment number of digits to 3 + jr PrintLevelCommon + +; prints the level without leaving off ":L" regardless of level +; INPUT: +; hl = destination address +; [wLoadedMonLevel] = level +PrintLevelFull:: + ld a, "" ; ":L" tile ID + ld [hli], a + ld c, 3 ; number of digits + ld a, [wLoadedMonLevel] ; level + +PrintLevelCommon:: + ld [wd11e], a + ld de, wd11e + ld b, LEFT_ALIGN | 1 ; 1 byte + jp PrintNumber + +GetwMoves:: +; Unused. Returns the move at index a from wMoves in a + ld hl, wMoves + ld c, a + ld b, 0 + add hl, bc + ld a, [hl] + ret + +; copies the base stat data of a pokemon to wMonHeader +; INPUT: +; [wd0b5] = pokemon ID +GetMonHeader:: + ldh a, [hLoadedROMBank] + push af + switchbank BaseStats + push bc + push de + push hl + ld a, [wd11e] + push af + ld a, [wd0b5] + ld [wd11e], a + ld de, FossilKabutopsPic + ld b, $66 ; size of Kabutops fossil and Ghost sprites + cp FOSSIL_KABUTOPS ; Kabutops fossil + jr z, .specialID + ld de, GhostPic + cp MON_GHOST ; Ghost + jr z, .specialID + ld de, FossilAerodactylPic + ld b, $77 ; size of Aerodactyl fossil sprite + cp FOSSIL_AERODACTYL ; Aerodactyl fossil + jr z, .specialID + ;cp MEW + ;jr z, .mew + predef IndexToPokedex ; convert pokemon ID in [wd11e] to pokedex number + ld a, [wd11e] + dec a + ld bc, MonBaseStatsEnd - MonBaseStats + ld hl, BaseStats + call AddNTimes + ld de, wMonHeader + ld bc, MonBaseStatsEnd - MonBaseStats + call CopyData + jr .done +.specialID + ld hl, wMonHSpriteDim + ld [hl], b ; write sprite dimensions + inc hl + ld [hl], e ; write front sprite pointer + inc hl + ld [hl], d +.done + ld a, [wd0b5] + ld [wMonHIndex], a + pop af + ld [wd11e], a + pop hl + pop de + pop bc + pop af + call BankswitchCommon + ret + +; copy party pokemon's name to wcd6d +GetPartyMonName2:: + ld a, [wWhichPokemon] ; index within party + ld hl, wPartyMonNicks + +; this is called more often +GetPartyMonName:: + push hl + push bc + call SkipFixedLengthTextEntries ; add NAME_LENGTH to hl, a times + ld de, wcd6d + push de + ld bc, NAME_LENGTH + call CopyData + pop de + pop bc + pop hl + ret diff --git a/home/predef.asm b/home/predef.asm index dfa10772c..a0889e0ea 100644 --- a/home/predef.asm +++ b/home/predef.asm @@ -8,12 +8,12 @@ Predef:: ; A hack for LoadDestinationWarpPosition. ; See LoadTilesetHeader (predef $19). - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] ld [wPredefParentBank], a push af ld a, BANK(GetPredefPointer) - ld [H_LOADEDROMBANK], a + ldh [hLoadedROMBank], a ld [MBC1RomBank], a call GetPredefPointer diff --git a/home/predef_text.asm b/home/predef_text.asm new file mode 100644 index 000000000..b494a2c87 --- /dev/null +++ b/home/predef_text.asm @@ -0,0 +1,28 @@ +PrintPredefTextID:: + ldh [hSpriteIndexOrTextID], a + ld hl, TextPredefs + call SetMapTextPointer + ld hl, wTextPredefFlag + set 0, [hl] + call DisplayTextID + +RestoreMapTextPointer:: + ld hl, wMapTextPtr + ldh a, [hSavedMapTextPtr] + ld [hli], a + ldh a, [hSavedMapTextPtr + 1] + ld [hl], a + ret + +SetMapTextPointer:: + ld a, [wMapTextPtr] + ldh [hSavedMapTextPtr], a + ld a, [wMapTextPtr + 1] + ldh [hSavedMapTextPtr + 1], a + ld a, l + ld [wMapTextPtr], a + ld a, h + ld [wMapTextPtr + 1], a + ret + +INCLUDE "data/text_predef_pointers.asm" diff --git a/home/print_bcd.asm b/home/print_bcd.asm new file mode 100644 index 000000000..38aedd3c8 --- /dev/null +++ b/home/print_bcd.asm @@ -0,0 +1,77 @@ +; function to print a BCD (Binary-coded decimal) number +; de = address of BCD number +; hl = destination address +; c = flags and length +; bit 7: if set, do not print leading zeroes +; if unset, print leading zeroes +; bit 6: if set, left-align the string (do not pad empty digits with spaces) +; if unset, right-align the string +; bit 5: if set, print currency symbol at the beginning of the string +; if unset, do not print the currency symbol +; bits 0-4: length of BCD number in bytes +; Note that bits 5 and 7 are modified during execution. The above reflects +; their meaning at the beginning of the functions's execution. +PrintBCDNumber:: + ld b, c ; save flags in b + res 7, c + res 6, c + res 5, c ; c now holds the length + bit 5, b + jr z, .loop + bit 7, b + jr nz, .loop + ld [hl], "¥" + inc hl +.loop + ld a, [de] + swap a + call PrintBCDDigit ; print upper digit + ld a, [de] + call PrintBCDDigit ; print lower digit + inc de + dec c + jr nz, .loop + bit 7, b ; were any non-zero digits printed? + jr z, .done ; if so, we are done +.numberEqualsZero ; if every digit of the BCD number is zero + bit 6, b ; left or right alignment? + jr nz, .skipRightAlignmentAdjustment + dec hl ; if the string is right-aligned, it needs to be moved back one space +.skipRightAlignmentAdjustment + bit 5, b + jr z, .skipCurrencySymbol + ld [hl], "¥" + inc hl +.skipCurrencySymbol + ld [hl], "0" + call PrintLetterDelay + inc hl +.done + ret + +PrintBCDDigit:: + and $f + and a + jr z, .zeroDigit +.nonzeroDigit + bit 7, b ; have any non-space characters been printed? + jr z, .outputDigit +; if bit 7 is set, then no numbers have been printed yet + bit 5, b ; print the currency symbol? + jr z, .skipCurrencySymbol + ld [hl], "¥" + inc hl + res 5, b +.skipCurrencySymbol + res 7, b ; unset 7 to indicate that a nonzero digit has been reached +.outputDigit + add "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 + bit 6, b ; left or right alignment? + ret nz + inc hl ; if right-aligned, "print" a space by advancing the pointer + ret diff --git a/home/print_num.asm b/home/print_num.asm new file mode 100644 index 000000000..e2628b1f4 --- /dev/null +++ b/home/print_num.asm @@ -0,0 +1,219 @@ +PrintNumber:: +; Print the c-digit, b-byte value at de. +; Allows 2 to 7 digits. For 1-digit numbers, add +; the value to char "0" instead of calling PrintNumber. +; Flags LEADING_ZEROES and LEFT_ALIGN can be given +; in bits 7 and 6 of b respectively. + push bc + xor a + ldh [hPastLeadingZeros], a + ldh [hNumToPrint], a + ldh [hNumToPrint + 1], a + ld a, b + and $f + cp 1 + jr z, .byte + cp 2 + jr z, .word +.long + ld a, [de] + ldh [hNumToPrint], a + inc de + ld a, [de] + ldh [hNumToPrint + 1], a + inc de + ld a, [de] + ldh [hNumToPrint + 2], a + jr .start + +.word + ld a, [de] + ldh [hNumToPrint + 1], a + inc de + ld a, [de] + ldh [hNumToPrint + 2], a + jr .start + +.byte + ld a, [de] + ldh [hNumToPrint + 2], a + +.start + push de + + ld d, b + ld a, c + ld b, a + xor a + ld c, a + ld a, b + + cp 2 + jr z, .tens + cp 3 + jr z, .hundreds + cp 4 + jr z, .thousands + cp 5 + jr z, .ten_thousands + cp 6 + jr z, .hundred_thousands + +print_digit: MACRO + +IF (\1) / $10000 + ld a, \1 / $10000 % $100 +ELSE + xor a +ENDC + ldh [hPowerOf10 + 0], a + +IF (\1) / $100 + ld a, \1 / $100 % $100 +ELSE + xor a +ENDC + ldh [hPowerOf10 + 1], a + + ld a, \1 / $1 % $100 + ldh [hPowerOf10 + 2], a + + call .PrintDigit + call .NextDigit +ENDM + +.millions print_digit 1000000 +.hundred_thousands print_digit 100000 +.ten_thousands print_digit 10000 +.thousands print_digit 1000 +.hundreds print_digit 100 + +.tens + ld c, 0 + ldh a, [hNumToPrint + 2] +.mod + cp 10 + jr c, .ok + sub 10 + inc c + jr .mod +.ok + + ld b, a + ldh a, [hPastLeadingZeros] + or c + ldh [hPastLeadingZeros], a + jr nz, .past + call .PrintLeadingZero + jr .next +.past + ld a, "0" + add c + ld [hl], a +.next + + call .NextDigit +.ones + ld a, "0" + add b + ld [hli], a + pop de + dec de + pop bc + ret + +.PrintDigit: +; Divide by the current decimal place. +; Print the quotient, and keep the modulus. + ld c, 0 +.loop + ldh a, [hPowerOf10] + ld b, a + ldh a, [hNumToPrint] + ldh [hSavedNumToPrint], a + cp b + jr c, .underflow0 + sub b + ldh [hNumToPrint], a + ldh a, [hPowerOf10 + 1] + ld b, a + ldh a, [hNumToPrint + 1] + ldh [hSavedNumToPrint + 1], a + cp b + jr nc, .noborrow1 + + ldh a, [hNumToPrint] + or 0 + jr z, .underflow1 + dec a + ldh [hNumToPrint], a + ldh a, [hNumToPrint + 1] +.noborrow1 + + sub b + ldh [hNumToPrint + 1], a + ldh a, [hPowerOf10 + 2] + ld b, a + ldh a, [hNumToPrint + 2] + ldh [hSavedNumToPrint + 2], a + cp b + jr nc, .noborrow2 + + ldh a, [hNumToPrint + 1] + and a + jr nz, .borrowed + + ldh a, [hNumToPrint] + and a + jr z, .underflow2 + dec a + ldh [hNumToPrint], a + xor a +.borrowed + + dec a + ldh [hNumToPrint + 1], a + ldh a, [hNumToPrint + 2] +.noborrow2 + sub b + ldh [hNumToPrint + 2], a + inc c + jr .loop + +.underflow2 + ldh a, [hSavedNumToPrint + 1] + ldh [hNumToPrint + 1], a +.underflow1 + ldh a, [hSavedNumToPrint] + ldh [hNumToPrint], a +.underflow0 + ldh a, [hPastLeadingZeros] + or c + jr z, .PrintLeadingZero + + ld a, "0" + add c + ld [hl], a + ldh [hPastLeadingZeros], a + ret + +.PrintLeadingZero: + bit BIT_LEADING_ZEROES, d + ret z + ld [hl], "0" + ret + +.NextDigit: +; Increment unless the number is left-aligned, +; leading zeroes are not printed, and no digits +; have been printed yet. + bit BIT_LEADING_ZEROES, d + jr nz, .inc + bit BIT_LEFT_ALIGN, d + jr z, .inc + ldh a, [hPastLeadingZeros] + and a + ret z +.inc + inc hl + ret diff --git a/home/print_text.asm b/home/print_text.asm new file mode 100644 index 000000000..049ddfb46 --- /dev/null +++ b/home/print_text.asm @@ -0,0 +1,45 @@ +; This function is used to wait a short period after printing a letter to the +; screen unless the player presses the A/B button or the delay is turned off +; through the [wd730] or [wLetterPrintingDelayFlags] flags. +PrintLetterDelay:: + ld a, [wd730] + bit 6, a + ret nz + ld a, [wLetterPrintingDelayFlags] + bit 1, a + ret z + push hl + push de + push bc + ld a, [wLetterPrintingDelayFlags] + bit 0, a + jr z, .waitOneFrame + ld a, [wOptions] + and $f + ldh [hFrameCounter], a + jr .checkButtons +.waitOneFrame + ld a, 1 + ldh [hFrameCounter], a +.checkButtons + call Joypad + ldh a, [hJoyHeld] +.checkAButton + bit 0, a ; is the A button pressed? + jr z, .checkBButton + jr .endWait +.checkBButton + bit 1, a ; is the B button pressed? + jr z, .buttonsNotPressed +.endWait + call DelayFrame + jr .done +.buttonsNotPressed ; if neither A nor B is pressed + ldh a, [hFrameCounter] + and a + jr nz, .checkButtons +.done + pop bc + pop de + pop hl + ret diff --git a/home/random.asm b/home/random.asm new file mode 100644 index 000000000..33a244254 --- /dev/null +++ b/home/random.asm @@ -0,0 +1,12 @@ +Random:: +; Return a random number in a. +; For battles, use BattleRandom. + push hl + push de + push bc + farcall Random_ + ldh a, [hRandomAdd] + pop bc + pop de + pop hl + ret diff --git a/home/reload_sprites.asm b/home/reload_sprites.asm new file mode 100644 index 000000000..63a71d26c --- /dev/null +++ b/home/reload_sprites.asm @@ -0,0 +1,19 @@ +; Copy the current map's sprites' tile patterns to VRAM again after they have +; been overwritten by other tile patterns. +ReloadMapSpriteTilePatterns:: + ld hl, wFontLoaded + ld a, [hl] + push af + res 0, [hl] + push hl + xor a + ld [wSpriteSetID], a + call DisableLCD + call InitMapSprites + call EnableLCD + pop hl + pop af + ld [hl], a + call LoadPlayerSpriteGraphics + call LoadFontTilePatterns + jp UpdateSprites diff --git a/home/reload_tiles.asm b/home/reload_tiles.asm new file mode 100644 index 000000000..ae9f6544b --- /dev/null +++ b/home/reload_tiles.asm @@ -0,0 +1,67 @@ +; reloads text box tile patterns, current map view, and tileset tile patterns +ReloadMapData:: + ldh a, [hLoadedROMBank] + push af + ld a, [wCurMap] + call SwitchToMapRomBank + call DisableLCD + call LoadTextBoxTilePatterns + call LoadCurrentMapView + call LoadTilesetTilePatternData + call EnableLCD + pop af + call BankswitchCommon + ret + +; reloads tileset tile patterns +ReloadTilesetTilePatterns:: + ldh a, [hLoadedROMBank] + push af + ld a, [wCurMap] + call SwitchToMapRomBank + call DisableLCD + call LoadTilesetTilePatternData + call EnableLCD + pop af + call BankswitchCommon + ret + +; shows the town map and lets the player choose a destination to fly to +ChooseFlyDestination:: + ld hl, wd72e + res 4, [hl] + farjp LoadTownMap_Fly + +PrinterSerial:: + homecall PrinterSerial_ + ret + +SerialFunction:: + ld a, [wPrinterConnectionOpen] + bit 0, a + ret z + ld a, [wPrinterOpcode] + and a + ret nz + ld hl, wOverworldMap + 650 + inc [hl] + ld a, [hl] + cp $6 + ret c + xor a + ld [hl], a + ld a, $0c + ld [wPrinterOpcode], a + ld a, $88 + ldh [rSB], a + ld a, $1 + ldh [rSC], a + ld a, START_TRANSFER_INTERNAL_CLOCK + ldh [rSC], a + ret + +; causes the text box to close without waiting for a button press after displaying text +DisableWaitingAfterTextDisplay:: + ld a, $01 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ret diff --git a/home/reset_player_sprite.asm b/home/reset_player_sprite.asm new file mode 100644 index 000000000..2765d6132 --- /dev/null +++ b/home/reset_player_sprite.asm @@ -0,0 +1,21 @@ +ResetPlayerSpriteData:: + ld hl, wSpriteStateData1 + call ResetPlayerSpriteData_ClearSpriteData + ld hl, wSpriteStateData2 + call ResetPlayerSpriteData_ClearSpriteData + ld a, $1 + ld [wSpritePlayerStateData1PictureID], a + ld [wSpritePlayerStateData2ImageBaseOffset], a + ld hl, wSpritePlayerStateData1YPixels + ld [hl], $3c ; set Y screen pos + inc hl + inc hl + ld [hl], $40 ; set X screen pos + ret + +; overwrites sprite data with zeroes +ResetPlayerSpriteData_ClearSpriteData:: + ld bc, $10 + xor a + call FillMemory + ret diff --git a/home/serial.asm b/home/serial.asm index 5fe7fb814..ef9149337 100644 --- a/home/serial.asm +++ b/home/serial.asm @@ -6,46 +6,46 @@ Serial:: ld a, [wPrinterConnectionOpen] bit 0, a jp nz, PrinterSerial__ - ld a, [hSerialConnectionStatus] + ldh a, [hSerialConnectionStatus] inc a jr z, .connectionNotYetEstablished - ld a, [rSB] - ld [hSerialReceiveData], a - ld a, [hSerialSendData] - ld [rSB], a - ld a, [hSerialConnectionStatus] + ldh a, [rSB] + ldh [hSerialReceiveData], a + ldh a, [hSerialSendData] + ldh [rSB], a + ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK jr z, .done ; using external clock ld a, START_TRANSFER_EXTERNAL_CLOCK - ld [rSC], a + ldh [rSC], a jr .done .connectionNotYetEstablished - ld a, [rSB] - ld [hSerialReceiveData], a - ld [hSerialConnectionStatus], a + ldh a, [rSB] + ldh [hSerialReceiveData], a + ldh [hSerialConnectionStatus], a cp USING_INTERNAL_CLOCK jr z, .usingInternalClock ; using external clock xor a - ld [rSB], a + ldh [rSB], a ld a, $3 - ld [rDIV], a + ldh [rDIV], a .waitLoop - ld a, [rDIV] + ldh a, [rDIV] bit 7, a jr nz, .waitLoop ld a, START_TRANSFER_EXTERNAL_CLOCK - ld [rSC], a + ldh [rSC], a jr .done .usingInternalClock xor a - ld [rSB], a + ldh [rSB], a .done ld a, $1 - ld [hSerialReceivedNewData], a + ldh [hSerialReceivedNewData], a ld a, SERIAL_NO_DATA_BYTE - ld [hSerialSendData], a + ldh [hSerialSendData], a pop hl pop de pop bc @@ -57,10 +57,10 @@ Serial:: ; bc = length of data Serial_ExchangeBytes:: ld a, 1 - ld [hSerialIgnoringInitialData], a + ldh [hSerialIgnoringInitialData], a .loop ld a, [hl] - ld [hSerialSendData], a + ldh [hSerialSendData], a call Serial_ExchangeByte push bc ld b, a @@ -69,7 +69,7 @@ Serial_ExchangeBytes:: .waitLoop dec a jr nz, .waitLoop - ld a, [hSerialIgnoringInitialData] + ldh a, [hSerialIgnoringInitialData] and a ld a, b pop bc @@ -78,7 +78,7 @@ Serial_ExchangeBytes:: cp SERIAL_PREAMBLE_BYTE jr nz, .loop xor a - ld [hSerialIgnoringInitialData], a + ldh [hSerialIgnoringInitialData], a jr .loop .storeReceivedByte ld [de], a @@ -91,17 +91,17 @@ Serial_ExchangeBytes:: Serial_ExchangeByte:: xor a - ld [hSerialReceivedNewData], a - ld a, [hSerialConnectionStatus] + ldh [hSerialReceivedNewData], a + ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK jr nz, .loop ld a, START_TRANSFER_INTERNAL_CLOCK - ld [rSC], a + ldh [rSC], a .loop - ld a, [hSerialReceivedNewData] + ldh a, [hSerialReceivedNewData] and a jr nz, .ok - ld a, [hSerialConnectionStatus] + ldh a, [hSerialConnectionStatus] cp USING_EXTERNAL_CLOCK jr nz, .doNotIncrementUnknownCounter call IsUnknownCounterZero @@ -119,7 +119,7 @@ Serial_ExchangeByte:: jr nz, .loop jp SetUnknownCounterToFFFF .doNotIncrementUnknownCounter - ld a, [rIE] + ldh a, [rIE] and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK) cp (1 << SERIAL) jr nz, .loop @@ -131,7 +131,7 @@ Serial_ExchangeByte:: dec a ld [wUnknownSerialCounter2 + 1], a jr nz, .loop - ld a, [hSerialConnectionStatus] + ldh a, [hSerialConnectionStatus] cp USING_EXTERNAL_CLOCK jr z, .ok ld a, 255 @@ -140,8 +140,8 @@ Serial_ExchangeByte:: jr nz, .waitLoop .ok xor a - ld [hSerialReceivedNewData], a - ld a, [rIE] + ldh [hSerialReceivedNewData], a + ldh a, [rIE] and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK) sub (1 << SERIAL) jr nz, .skipReloadingUnknownCounter2 @@ -149,7 +149,7 @@ Serial_ExchangeByte:: ld a, $50 ld [wUnknownSerialCounter2 + 1], a .skipReloadingUnknownCounter2 - ld a, [hSerialReceiveData] + ldh a, [hSerialReceiveData] cp SERIAL_NO_DATA_BYTE ret nz call IsUnknownCounterZero @@ -167,13 +167,13 @@ Serial_ExchangeByte:: call IsUnknownCounterZero jr z, SetUnknownCounterToFFFF .done - ld a, [rIE] + ldh a, [rIE] and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK) cp (1 << SERIAL) ld a, SERIAL_NO_DATA_BYTE ret z ld a, [hl] - ld [hSerialSendData], a + ldh [hSerialSendData], a call DelayFrame jp Serial_ExchangeByte @@ -206,18 +206,18 @@ Serial_ExchangeLinkMenuSelection:: ld de, wLinkMenuSelectionReceiveBuffer ld c, 2 ; number of bytes to save ld a, 1 - ld [hSerialIgnoringInitialData], a + ldh [hSerialIgnoringInitialData], a .loop call DelayFrame ld a, [hl] - ld [hSerialSendData], a + ldh [hSerialSendData], a call Serial_ExchangeByte ld b, a inc hl - ld a, [hSerialIgnoringInitialData] + ldh a, [hSerialIgnoringInitialData] and a ld a, 0 - ld [hSerialIgnoringInitialData], a + ldh [hSerialIgnoringInitialData], a jr nz, .loop ld a, b ld [de], a @@ -228,7 +228,7 @@ Serial_ExchangeLinkMenuSelection:: Serial_PrintWaitingTextAndSyncAndExchangeNybble:: call SaveScreenTilesToBuffer1 - callab PrintWaitingText + callfar PrintWaitingText call Serial_SyncAndExchangeNybble jp LoadScreenTilesFromBuffer1 @@ -276,20 +276,20 @@ Serial_ExchangeNybble:: call .doExchange ld a, [wSerialExchangeNybbleSendData] add $60 - ld [hSerialSendData], a - ld a, [hSerialConnectionStatus] + ldh [hSerialSendData], a + ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK jr nz, .doExchange ld a, START_TRANSFER_INTERNAL_CLOCK - ld [rSC], a + ldh [rSC], a .doExchange - ld a, [hSerialReceiveData] + ldh a, [hSerialReceiveData] ld [wSerialExchangeNybbleTempReceiveData], a and $f0 cp $60 ret nz xor a - ld [hSerialReceiveData], a + ldh [hSerialReceiveData], a ld a, [wSerialExchangeNybbleTempReceiveData] and $f ld [wSerialExchangeNybbleReceiveData], a @@ -297,21 +297,21 @@ Serial_ExchangeNybble:: Serial_SendZeroByte:: xor a - ld [hSerialSendData], a - ld a, [hSerialConnectionStatus] + ldh [hSerialSendData], a + ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK ret nz ld a, START_TRANSFER_INTERNAL_CLOCK - ld [rSC], a + ldh [rSC], a ret Serial_TryEstablishingExternallyClockedConnection:: ld a, ESTABLISH_CONNECTION_WITH_EXTERNAL_CLOCK - ld [rSB], a + ldh [rSB], a xor a - ld [hSerialReceiveData], a + ldh [hSerialReceiveData], a ld a, START_TRANSFER_EXTERNAL_CLOCK - ld [rSC], a + ldh [rSC], a ret PrinterSerial__:: diff --git a/home/start.asm b/home/start.asm new file mode 100644 index 000000000..379436ae5 --- /dev/null +++ b/home/start.asm @@ -0,0 +1,10 @@ +_Start:: + cp GBC + jr z, .gbc + xor a + jr .ok +.gbc + ld a, 1 +.ok + ldh [hGBC], a + jp Init diff --git a/engine/menu/start_menu.asm b/home/start_menu.asm similarity index 93% rename from engine/menu/start_menu.asm rename to home/start_menu.asm index 498d1467c..bd1b24bff 100755 --- a/engine/menu/start_menu.asm +++ b/home/start_menu.asm @@ -6,9 +6,9 @@ DisplayStartMenu:: call PlaySound RedisplayStartMenu:: - callba DrawStartMenu -RedisplayStartMenu_DoNotDrawStartMenu: - callba PrintSafariZoneSteps ; print Safari Zone info, if in Safari Zone + farcall DrawStartMenu +RedisplayStartMenu_DoNotDrawStartMenu:: + farcall PrintSafariZoneSteps ; print Safari Zone info, if in Safari Zone call UpdateSprites .loop call HandleMenuInput @@ -77,7 +77,7 @@ RedisplayStartMenu_DoNotDrawStartMenu: ; EXIT falls through to here CloseStartMenu:: call Joypad - ld a, [hJoyPressed] + ldh a, [hJoyPressed] bit 0, a ; was A button newly pressed? jr nz, CloseStartMenu call LoadTextBoxTilePatterns diff --git a/home/text.asm b/home/text.asm index f78227eb6..78d691383 100644 --- a/home/text.asm +++ b/home/text.asm @@ -5,9 +5,9 @@ TextBoxBorder:: push hl ld a, "┌" ld [hli], a - inc a ; ─ - call NPlaceChar - inc a ; ┐ + inc a ; "─" + call .PlaceChars + inc a ; "┐" ld [hl], a pop hl @@ -20,7 +20,7 @@ TextBoxBorder:: ld a, "│" ld [hli], a ld a, " " - call NPlaceChar + call .PlaceChars ld [hl], "│" pop hl @@ -33,11 +33,11 @@ TextBoxBorder:: ld a, "└" ld [hli], a ld a, "─" - call NPlaceChar + call .PlaceChars ld [hl], "┘" ret -NPlaceChar:: +.PlaceChars:: ; Place char a c times. ld d, c .loop @@ -48,21 +48,21 @@ NPlaceChar:: PlaceString:: push hl + PlaceNextChar:: ld a, [de] - cp "@" - jr nz, Char4ETest + jr nz, .NotTerminator ld b, h ld c, l pop hl ret -Char4ETest:: - cp $4E ; next - jr nz, .char4FTest +.NotTerminator + cp "" + jr nz, .NotNext ld bc, 2 * SCREEN_WIDTH - ld a, [hFlags_0xFFFA] + ldh a, [hFlagsFFFA] bit 2, a jr z, .ok ld bc, SCREEN_WIDTH @@ -70,142 +70,101 @@ Char4ETest:: pop hl add hl, bc push hl - jp PlaceNextChar_inc + jp NextChar -.char4FTest - cp $4F ; line - jr nz, .next3 +.NotNext + cp "" + jr nz, .NotLine pop hl - coord hl, 1, 16 + hlcoord 1, 16 push hl - jp PlaceNextChar_inc - -.next3 ; Check against a dictionary -dict: macro -if \1 == 0 - and a -else - cp \1 -endc - jp z, \2 -endm - - dict $00, Char00 ; error - dict $4C, Char4C ; autocont - dict $4B, Char4B ; cont_ - dict $51, Char51 ; para - dict $49, Char49 ; page - dict $52, Char52 ; player - dict $53, Char53 ; rival - dict $54, Char54 ; POKé - dict $5B, Char5B ; PC - dict $5E, Char5E ; ROCKET - dict $5C, Char5C ; TM - dict $5D, Char5D ; TRAINER - dict $55, Char55 ; cont - dict $56, Char56 ; 6 dots - dict $57, Char57 ; done - dict $58, Char58 ; prompt - dict $4A, Char4A ; PKMN - dict $5F, Char5F ; dex - dict $59, Char59 ; TARGET - dict $5A, Char5A ; USER + jp NextChar + +.NotLine + +; Check against a dictionary + dict "", NullChar + dict "", _ContTextNoPause + dict "<_CONT>", _ContText + dict "", Paragraph + dict "", PageChar + dict "", PrintPlayerName + dict "", PrintRivalName + dict "#", PlacePOKe + dict "", PCChar + dict "", RocketChar + dict "", TMChar + dict "", TrainerChar + dict "", ContText + dict "<……>", SixDotsChar + dict "", DoneText + dict "", PromptText + dict "", PlacePKMN + dict "", PlaceDexEnd + dict "", PlaceMoveTargetsName + dict "", PlaceMoveUsersName ld [hli], a call PrintLetterDelay -PlaceNextChar_inc:: + +NextChar:: inc de jp PlaceNextChar -Char00:: +NullChar:: ld b, h ld c, l pop hl - ld de, Char00Text + ld de, TextIDErrorText dec de ret -Char00Text:: ; “%d ERROR.” - TX_FAR _Char00Text - db "@" - -Char52:: ; player’s name - push de - ld de, wPlayerName - jr FinishDTE - -Char53:: ; rival’s name - push de - ld de, wRivalName - jr FinishDTE - -Char5D:: ; TRAINER - push de - ld de, Char5DText - jr FinishDTE +TextIDErrorText:: ; "[hSpriteIndexOrTextID] ERROR." + text_far _TextIDErrorText + text_end -Char5C:: ; TM +print_name: MACRO push de - ld de, Char5CText - jr FinishDTE - -Char5B:: ; PC - push de - ld de, Char5BText - jr FinishDTE - -Char5E:: ; ROCKET - push de - ld de, Char5EText - jr FinishDTE - -Char54:: ; POKé - push de - ld de, Char54Text - jr FinishDTE + ld de, \1 + jr PlaceCommandCharacter +ENDM + +PrintPlayerName:: print_name wPlayerName +PrintRivalName:: print_name wRivalName + +TrainerChar:: print_name TrainerCharText +TMChar:: print_name TMCharText +PCChar:: print_name PCCharText +RocketChar:: print_name RocketCharText +PlacePOKe:: print_name PlacePOKeText +SixDotsChar:: print_name SixDotsCharText +PlacePKMN:: print_name PlacePKMNText + +PlaceMoveTargetsName:: + ldh a, [hWhoseTurn] + xor 1 + jr PlaceMoveUsersName.place -Char56:: ; …… - push de - ld de, Char56Text - jr FinishDTE +PlaceMoveUsersName:: + ldh a, [hWhoseTurn] -Char4A:: ; PKMN - push de - ld de, Char4AText - jr FinishDTE - -Char59:: -; depending on whose turn it is, print -; enemy active monster’s name, prefixed with “Enemy ” -; or -; player active monster’s name -; (like Char5A but flipped) - ld a, [H_WHOSETURN] - xor 1 - jr MonsterNameCharsCommon - -Char5A:: -; depending on whose turn it is, print -; player active monster’s name -; or -; enemy active monster’s name, prefixed with “Enemy ” - ld a, [H_WHOSETURN] -MonsterNameCharsCommon:: +.place: push de and a - jr nz, .Enemy - ld de, wBattleMonNick ; player active monster name - jr FinishDTE + jr nz, .enemy -.Enemy - ; print “Enemy ” - ld de, Char5AText + ld de, wBattleMonNick + jr PlaceCommandCharacter + +.enemy + ld de, EnemyText call PlaceString ld h, b ld l, c - ld de, wEnemyMonNick ; enemy active monster name + ld de, wEnemyMonNick + ; fallthrough -FinishDTE:: +PlaceCommandCharacter:: call PlaceString ld h, b ld l, c @@ -213,28 +172,20 @@ FinishDTE:: inc de jp PlaceNextChar -Char5CText:: - db "TM@" -Char5DText:: - db "TRAINER@" -Char5BText:: - db "PC@" -Char5EText:: - db "ROCKET@" -Char54Text:: - db "POKé@" -Char56Text:: - db "……@" -Char5AText:: - db "Enemy @" -Char4AText:: - db $E1, $E2, "@" ; PKMN - -Char55:: +TMCharText:: db "TM@" +TrainerCharText:: db "TRAINER@" +PCCharText:: db "PC@" +RocketCharText:: db "ROCKET@" +PlacePOKeText:: db "POKé@" +SixDotsCharText:: db "……@" +EnemyText:: db "Enemy @" +PlacePKMNText:: db "@" + +ContText:: push de ld b, h ld c, l - ld hl, Char55Text + ld hl, ContCharText call TextCommandProcessor ld h, b ld l, c @@ -242,101 +193,99 @@ Char55:: inc de jp PlaceNextChar -Char55Text:: -; equivalent to Char4B - TX_FAR _Char55Text - db "@" +ContCharText:: + text_far _ContCharText + text_end -Char5F:: -; ends a Pokédex entry +PlaceDexEnd:: ld [hl], "." pop hl ret -Char58:: ; prompt +PromptText:: ld a, [wLinkState] cp LINK_STATE_BATTLING jp z, .ok ld a, "▼" - Coorda 18, 16 + ldcoord_a 18, 16 .ok call ProtectedDelay3 call ManualTextScroll ld a, " " - Coorda 18, 16 -Char57:: ; done + ldcoord_a 18, 16 + +DoneText:: pop hl - ld de, Char58Text + ld de, .stop dec de ret -Char58Text:: - db "@" +.stop: + text_end -Char51:: ; para +Paragraph:: push de ld a, "▼" - Coorda 18, 16 + ldcoord_a 18, 16 call ProtectedDelay3 call ManualTextScroll - coord hl, 1, 13 + hlcoord 1, 13 lb bc, 4, 18 call ClearScreenArea ld c, 20 call DelayFrames pop de - coord hl, 1, 14 - jp PlaceNextChar_inc + hlcoord 1, 14 + jp NextChar -Char49:: - ld a, [hFlags_0xFFFA] +PageChar:: + ldh a, [hFlagsFFFA] bit 3, a - jr z, .Char49 - ld a, $4e - jp Char4ETest + jr z, .pageChar + ld a, "" + jp PlaceNextChar.NotTerminator -.Char49 +.pageChar push de ld a, "▼" - Coorda 18, 16 + ldcoord_a 18, 16 call ProtectedDelay3 call ManualTextScroll - coord hl, 1, 10 + hlcoord 1, 10 lb bc, 7, 18 call ClearScreenArea ld c, 20 call DelayFrames pop de pop hl - coord hl, 1, 11 + hlcoord 1, 11 push hl - jp PlaceNextChar_inc + jp NextChar -Char4B:: +_ContText:: ld a, "▼" - Coorda 18, 16 + ldcoord_a 18, 16 call ProtectedDelay3 push de call ManualTextScroll pop de ld a, " " - Coorda 18, 16 - ;fall through -Char4C:: + ldcoord_a 18, 16 +_ContTextNoPause:: push de call ScrollTextUpOneLine call ScrollTextUpOneLine - coord hl, 1, 16 + hlcoord 1, 16 pop de - jp PlaceNextChar_inc + jp NextChar ; move both rows of text in the normal text box up one row ; always called twice in a row ; first time, copy the two rows of text to the "in between" rows that are usually emtpy ; second time, copy the bottom row of text into the top row of text ScrollTextUpOneLine:: - coord hl, 0, 14 ; top row of text - coord de, 0, 13 ; empty line above text + hlcoord 0, 14 ; top row of text + decoord 0, 13 ; empty line above text ld b, SCREEN_WIDTH * 3 .copyText ld a, [hli] @@ -344,7 +293,7 @@ ScrollTextUpOneLine:: inc de dec b jr nz, .copyText - coord hl, 1, 16 + hlcoord 1, 16 ld a, " " ld b, SCREEN_WIDTH - 2 .clearText @@ -352,7 +301,6 @@ ScrollTextUpOneLine:: dec b jr nz, .clearText - ; wait five frames ld b, 5 .WaitFrame call DelayFrame @@ -372,7 +320,7 @@ TextCommandProcessor:: push af set 1, a ld e, a - ld a, [$fff9] + ldh a, [hClearLetterPrintingDelayFlags] xor e ld [wLetterPrintingDelayFlags], a ld a, c @@ -382,18 +330,18 @@ TextCommandProcessor:: NextTextCommand:: ld a, [hli] - cp "@" ; terminator - jr nz, .doTextCommand + cp TX_END + jr nz, .TextCommand pop af ld [wLetterPrintingDelayFlags], a ret -.doTextCommand + +.TextCommand: push hl - cp $17 - jp z, TextCommand17 - cp $0e - jp nc, TextCommand0B ; if a != 0x17 and a >= 0xE, go to command 0xB -; if a < 0xE, use a jump table + cp TX_FAR + jp z, TextCommand_FAR + cp TX_SOUND_POKEDEX_RATING + jp nc, TextCommand_SOUND ld hl, TextCommandJumpTable push bc add a @@ -406,12 +354,8 @@ NextTextCommand:: ld l, a jp hl -; draw box -; 04AAAABBCC -; AAAA = address of upper left corner -; BB = height -; CC = width -TextCommand04:: +TextCommand_BOX:: +; draw a box (height, width) pop hl ld a, [hli] ld e, a @@ -428,9 +372,8 @@ TextCommand04:: pop hl jr NextTextCommand -; place string inline -; 00{string} -TextCommand00:: +TextCommand_START:: +; write text until "@" pop hl ld d, h ld e, l @@ -442,10 +385,8 @@ TextCommand00:: inc hl jr NextTextCommand -; place string from RAM -; 01AAAA -; AAAA = address of string -TextCommand01:: +TextCommand_RAM:: +; write text from a ram address (little endian) pop hl ld a, [hli] ld e, a @@ -458,13 +399,8 @@ TextCommand01:: pop hl jr NextTextCommand -; print BCD number -; 02AAAABB -; AAAA = address of BCD number -; BB -; bits 0-4 = length in bytes -; bits 5-7 = unknown flags -TextCommand02:: +TextCommand_BCD:: +; write bcd from address, typically ram pop hl ld a, [hli] ld e, a @@ -481,10 +417,8 @@ TextCommand02:: pop hl jr NextTextCommand -; repoint destination address -; 03AAAA -; AAAA = new destination address -TextCommand03:: +TextCommand_MOVE:: +; move to a new tile pop hl ld a, [hli] ld [wTextDest], a @@ -494,58 +428,47 @@ TextCommand03:: ld b, a jp NextTextCommand -; repoint destination to second line of dialogue text box -; 05 -; (no arguments) -TextCommand05:: +TextCommand_LOW:: +; write text at (1,16) pop hl - coord bc, 1, 16 ; address of second line of dialogue text box + bccoord 1, 16 ; second line of dialogue text box jp NextTextCommand -; blink arrow and wait for A or B to be pressed -; 06 -; (no arguments) -TextCommand06:: +TextCommand_PROMPT_BUTTON:: +; wait for button press; show arrow ld a, [wLinkState] cp LINK_STATE_BATTLING - jp z, TextCommand0D + jp z, TextCommand_WAIT_BUTTON ld a, "▼" - Coorda 18, 16 ; place down arrow in lower right corner of dialogue text box + ldcoord_a 18, 16 ; place down arrow in lower right corner of dialogue text box push bc call ManualTextScroll ; blink arrow and wait for A or B to be pressed pop bc ld a, " " - Coorda 18, 16 ; overwrite down arrow with blank space + ldcoord_a 18, 16 ; overwrite down arrow with blank space pop hl jp NextTextCommand -; scroll text up one line -; 07 -; (no arguments) -TextCommand07:: +TextCommand_SCROLL:: +; pushes text up two lines and sets the BC cursor to the border tile +; below the first character column of the text box. ld a, " " - Coorda 18, 16 ; place blank space in lower right corner of dialogue text box + ldcoord_a 18, 16 ; place blank space in lower right corner of dialogue text box call ScrollTextUpOneLine call ScrollTextUpOneLine pop hl - coord bc, 1, 16 ; address of second line of dialogue text box + bccoord 1, 16 ; second line of dialogue text box jp NextTextCommand -; execute asm inline -; 08{code} -TextCommand08:: +TextCommand_START_ASM:: +; run assembly code pop hl ld de, NextTextCommand - push de ; return address + push de jp hl -; print decimal number (converted from binary number) -; 09AAAABB -; AAAA = address of number -; BB -; bits 0-3 = how many digits to display -; bits 4-7 = how long the number is in bytes -TextCommand09:: +TextCommand_NUM:: +; print a number pop hl ld a, [hli] ld e, a @@ -569,45 +492,42 @@ TextCommand09:: pop hl jp NextTextCommand -; wait half a second if the user doesn't hold A or B -; 0A -; (no arguments) -TextCommand0A:: +TextCommand_PAUSE:: +; wait for button press or 30 frames push bc call Joypad - ld a, [hJoyHeld] + ldh a, [hJoyHeld] and A_BUTTON | B_BUTTON - jr nz, .skipDelay - ld c, 30 + jr nz, .done + ld c, 30 ; half a second call DelayFrames -.skipDelay +.done pop bc pop hl jp NextTextCommand -; plays sounds -; this actually handles various command ID's, not just 0B -; (no arguments) -TextCommand0B:: +TextCommand_SOUND:: +; play a sound effect from TextCommandSounds pop hl push bc dec hl ld a, [hli] - ld b, a ; b = command number that got us here + ld b, a ; b = text command number that got us here push hl ld hl, TextCommandSounds .loop ld a, [hli] cp b - jr z, .matchFound + jr z, .play inc hl jr .loop -.matchFound - cp $14 + +.play + cp TX_SOUND_CRY_PIKACHU jr z, .pokemonCry - cp $15 + cp TX_SOUND_CRY_PIDGEOT jr z, .pokemonCry - cp $16 + cp TX_SOUND_CRY_DEWGONG jr z, .pokemonCry ld a, [hl] call PlaySound @@ -615,6 +535,7 @@ TextCommand0B:: pop hl pop bc jp NextTextCommand + .pokemonCry push de ld a, [hl] @@ -624,95 +545,95 @@ TextCommand0B:: pop bc jp NextTextCommand -; format: text command ID, sound ID or cry ID TextCommandSounds:: - db $0B, SFX_GET_ITEM_1 - db $12, SFX_TURN_OFF_PC - db $0E, SFX_POKEDEX_RATING - db $0F, SFX_GET_ITEM_1 - db $10, SFX_GET_ITEM_2 - db $11, SFX_GET_KEY_ITEM - db $13, SFX_TRADE_MACHINE - db $14, PIKACHU ; used in OakSpeech - db $15, PIDGEOT ; used in SaffronCityText12 - db $16, DEWGONG ; unused? - -; draw ellipses -; 0CAA -; AA = number of ellipses to draw -TextCommand0C:: + db TX_SOUND_GET_ITEM_1, SFX_GET_ITEM_1 ; actually plays SFX_LEVEL_UP when the battle music engine is loaded + db TX_SOUND_CAUGHT_MON, SFX_CAUGHT_MON + db TX_SOUND_POKEDEX_RATING, SFX_POKEDEX_RATING ; unused + db TX_SOUND_GET_ITEM_1_DUPLICATE, SFX_GET_ITEM_1 ; unused + db TX_SOUND_GET_ITEM_2, SFX_GET_ITEM_2 + db TX_SOUND_GET_KEY_ITEM, SFX_GET_KEY_ITEM + db TX_SOUND_DEX_PAGE_ADDED, SFX_DEX_PAGE_ADDED + db TX_SOUND_CRY_PIKACHU, PIKACHU ; used in OakSpeech + db TX_SOUND_CRY_PIDGEOT, PIDGEOT ; used in SaffronCityText12 + db TX_SOUND_CRY_DEWGONG, DEWGONG ; unused + +TextCommand_DOTS:: +; wait for button press or 30 frames while printing "…"s pop hl ld a, [hli] ld d, a push hl ld h, b ld l, c + .loop ld a, "…" ld [hli], a push de call Joypad pop de - ld a, [hJoyHeld] ; joypad state + ldh a, [hJoyHeld] ; joypad state and A_BUTTON | B_BUTTON - jr nz, .skipDelay ; if so, skip the delay + jr nz, .next ; if so, skip the delay ld c, 10 call DelayFrames -.skipDelay +.next dec d jr nz, .loop + ld b, h ld c, l pop hl jp NextTextCommand -; wait for A or B to be pressed -; 0D -; (no arguments) -TextCommand0D:: +TextCommand_WAIT_BUTTON:: +; wait for button press; don't show arrow push bc - call ManualTextScroll ; wait for A or B to be pressed + call ManualTextScroll pop bc pop hl jp NextTextCommand -; process text commands in another ROM bank -; 17AAAABB -; AAAA = address of text commands -; BB = bank -TextCommand17:: +TextCommand_FAR:: +; write text from a different bank (little endian) pop hl - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af + ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] - ld [H_LOADEDROMBANK], a + + ldh [hLoadedROMBank], a ld [MBC1RomBank], a + push hl ld l, e ld h, d call TextCommandProcessor pop hl + pop af - ld [H_LOADEDROMBANK], a + ldh [hLoadedROMBank], a ld [MBC1RomBank], a jp NextTextCommand TextCommandJumpTable:: - dw TextCommand00 - dw TextCommand01 - dw TextCommand02 - dw TextCommand03 - dw TextCommand04 - dw TextCommand05 - dw TextCommand06 - dw TextCommand07 - dw TextCommand08 - dw TextCommand09 - dw TextCommand0A - dw TextCommand0B - dw TextCommand0C - dw TextCommand0D +; entries correspond to TX_* constants (see macros/scripts/text.asm) + dw TextCommand_START ; TX_START + dw TextCommand_RAM ; TX_RAM + dw TextCommand_BCD ; TX_BCD + dw TextCommand_MOVE ; TX_MOVE + dw TextCommand_BOX ; TX_BOX + dw TextCommand_LOW ; TX_LOW + dw TextCommand_PROMPT_BUTTON ; TX_PROMPT_BUTTON + dw TextCommand_SCROLL ; TX_SCROLL + dw TextCommand_START_ASM ; TX_START_ASM + dw TextCommand_NUM ; TX_NUM + dw TextCommand_PAUSE ; TX_PAUSE + dw TextCommand_SOUND ; TX_SOUND_GET_ITEM_1 (also handles other TX_SOUND_* commands) + dw TextCommand_DOTS ; TX_DOTS + dw TextCommand_WAIT_BUTTON ; TX_WAIT_BUTTON + ; greater TX_* constants are handled directly by NextTextCommand diff --git a/home/text_script.asm b/home/text_script.asm new file mode 100644 index 000000000..1847e23ba --- /dev/null +++ b/home/text_script.asm @@ -0,0 +1,225 @@ +; this function is used to display sign messages, sprite dialog, etc. +; INPUT: [hSpriteIndexOrTextID] = sprite ID or text ID +DisplayTextID:: + ldh a, [hLoadedROMBank] + push af + farcall DisplayTextIDInit ; initialization + ld hl, wTextPredefFlag + bit 0, [hl] + res 0, [hl] + jr nz, .skipSwitchToMapBank + ld a, [wCurMap] + call SwitchToMapRomBank +.skipSwitchToMapBank + ld a, 30 ; half a second + ldh [hFrameCounter], a ; used as joypad poll timer + ld hl, wMapTextPtr + ld a, [hli] + ld h, [hl] + ld l, a ; hl = map text pointer + ld d, $00 + ldh a, [hSpriteIndexOrTextID] ; text ID + ld [wSpriteIndex], a + + dict TEXT_START_MENU, DisplayStartMenu + dict TEXT_PIKACHU_ANIM, DisplayPikachuEmotion + dict TEXT_SAFARI_GAME_OVER, DisplaySafariGameOverText + dict TEXT_MON_FAINTED, DisplayPokemonFaintedText + dict TEXT_BLACKED_OUT, DisplayPlayerBlackedOutText + dict TEXT_REPEL_WORE_OFF, DisplayRepelWoreOffText + + ld a, [wNumSprites] + ld e, a + ldh a, [hSpriteIndexOrTextID] ; sprite ID + cp e + jr z, .spriteHandling + jr nc, .skipSpriteHandling +.spriteHandling +; get the text ID of the sprite + push hl + ;push de + ;push bc + ;farcall UpdateSpriteFacingOffsetAndDelayMovement ; update the graphics of the sprite the player is talking to (to face the right direction) + ;pop bc + ;pop de + ld hl, wMapSpriteData ; NPC text entries + ldh a, [hSpriteIndexOrTextID] + dec a + add a + ld e, a + ld d, $0 + add hl, de + inc hl + ld a, [hl] ; a = text ID of the sprite + pop hl +.skipSpriteHandling +; look up the address of the text in the map's text entries + dec a + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a ; hl = address of the text + ld a, [hl] ; a = first byte of text + +; check first byte of text for special cases + +dict2: MACRO + cp \1 + jr nz, .not\@ + \2 + jr AfterDisplayingTextID +.not\@ +ENDM + + dict TX_SCRIPT_MART, DisplayPokemartDialogue + dict TX_SCRIPT_POKECENTER_NURSE, DisplayPokemonCenterDialogue + dict TX_SCRIPT_PLAYERS_PC, TextScript_ItemStoragePC + dict TX_SCRIPT_BILLS_PC, TextScript_BillsPC + dict TX_SCRIPT_POKECENTER_PC, TextScript_PokemonCenterPC + dict2 TX_SCRIPT_VENDING_MACHINE, farcall VendingMachineMenu + dict TX_SCRIPT_PRIZE_VENDOR, TextScript_GameCornerPrizeMenu + dict2 TX_SCRIPT_CABLE_CLUB_RECEPTIONIST, callfar CableClubNPC + + call PrintText_NoCreatingTextBox ; display the text + ld a, [wDoNotWaitForButtonPressAfterDisplayingText] + and a + jr nz, HoldTextDisplayOpen + +AfterDisplayingTextID:: + ld a, [wEnteringCableClub] + and a + jr nz, HoldTextDisplayOpen + call WaitForTextScrollButtonPress ; wait for a button press after displaying all the text + +; loop to hold the dialogue box open as long as the player keeps holding down the A button +HoldTextDisplayOpen:: + call Joypad + ldh a, [hJoyHeld] + bit 0, a ; is the A button being pressed? + jr nz, HoldTextDisplayOpen + +CloseTextDisplay:: + ld a, [wCurMap] + call SwitchToMapRomBank + ld a, $90 + ldh [hWY], a ; move the window off the screen + call DelayFrame + call LoadGBPal + xor a + ldh [hAutoBGTransferEnabled], a ; disable continuous WRAM to VRAM transfer each V-blank +; loop to make sprites face the directions they originally faced before the dialogue + ld hl, wSprite01StateData2OrigFacingDirection + ld c, $0f + ld de, $10 +.restoreSpriteFacingDirectionLoop + ld a, [hl] ; x#SPRITESTATEDATA2_ORIGFACINGDIRECTION + dec h + ld [hl], a ; [x#SPRITESTATEDATA1_FACINGDIRECTION] + inc h + add hl, de + dec c + jr nz, .restoreSpriteFacingDirectionLoop + call InitMapSprites ; reload sprite tile pattern data (since it was partially overwritten by text tile patterns) + ld hl, wFontLoaded + res 0, [hl] + ld a, [wd732] + bit 3, a ; used fly warp + call z, LoadPlayerSpriteGraphics + call LoadCurrentMapView + pop af + call BankswitchCommon + jp UpdateSprites + +DisplayPokemartDialogue:: + push hl + ld hl, PokemartGreetingText + call PrintText + pop hl + inc hl + call LoadItemList + ld a, PRICEDITEMLISTMENU + ld [wListMenuID], a + homecall DisplayPokemartDialogue_ + jp AfterDisplayingTextID + +PokemartGreetingText:: + text_far _PokemartGreetingText + text_end + +LoadItemList:: + ld a, 1 + ld [wUpdateSpritesEnabled], a + ld a, h + ld [wItemListPointer], a + ld a, l + ld [wItemListPointer + 1], a + ld de, wItemList +.loop + ld a, [hli] + ld [de], a + inc de + cp $ff + jr nz, .loop + ret + +DisplayPokemonCenterDialogue:: +; zeroing these doesn't appear to serve any purpose + xor a + ldh [hItemPrice], a + ldh [hItemPrice + 1], a + ldh [hItemPrice + 2], a + + inc hl + homecall DisplayPokemonCenterDialogue_ + jp AfterDisplayingTextID + +DisplaySafariGameOverText:: + callfar PrintSafariGameOverText + jp AfterDisplayingTextID + +DisplayPokemonFaintedText:: + ld hl, PokemonFaintedText + call PrintText + jp AfterDisplayingTextID + +PokemonFaintedText:: + text_far _PokemonFaintedText + text_end + +DisplayPlayerBlackedOutText:: + ld hl, PlayerBlackedOutText + call PrintText + ld a, [wd732] + res 5, a ; reset forced to use bike bit + ld [wd732], a + CheckEvent EVENT_IN_SAFARI_ZONE + jr z, .didnotblackoutinsafari + xor a + ld [wNumSafariBalls], a + ld [wSafariSteps], a + ld [wSafariSteps + 1], a + EventFlagAddressa EVENT_IN_SAFARI_ZONE + ld [wcf0d], a + ld [wSafariZoneGateCurScript], a +.didnotblackoutinsafari + jp HoldTextDisplayOpen + +PlayerBlackedOutText:: + text_far _PlayerBlackedOutText + text_end + +DisplayRepelWoreOffText:: + ld hl, RepelWoreOffText + call PrintText + jp AfterDisplayingTextID + +RepelWoreOffText:: + text_far _RepelWoreOffText + text_end + +DisplayPikachuEmotion:: + callfar TalkToPikachu + jp CloseTextDisplay diff --git a/home/textbox.asm b/home/textbox.asm new file mode 100644 index 000000000..f95c72c73 --- /dev/null +++ b/home/textbox.asm @@ -0,0 +1,7 @@ +; function to draw various text boxes +; INPUT: +; [wTextBoxID] = text box ID +; b, c = y, x cursor position (TWO_OPTION_MENU only) +DisplayTextBoxID:: + homecall_sf DisplayTextBoxID_ + ret diff --git a/home/tilemap.asm b/home/tilemap.asm new file mode 100644 index 000000000..ea2477637 --- /dev/null +++ b/home/tilemap.asm @@ -0,0 +1,45 @@ +UncompressSpriteFromDE:: +; Decompress pic at a:de. + ld hl, wSpriteInputPtr + ld [hl], e + inc hl + ld [hl], d + jp UncompressSpriteData + +SaveScreenTilesToBuffer2:: + hlcoord 0, 0 + ld de, wTileMapBackup2 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + jp CopyData + +LoadScreenTilesFromBuffer2:: + call LoadScreenTilesFromBuffer2DisableBGTransfer + ld a, 1 + ldh [hAutoBGTransferEnabled], a + ret + +; loads screen tiles stored in wTileMapBackup2 but leaves hAutoBGTransferEnabled disabled +LoadScreenTilesFromBuffer2DisableBGTransfer:: + xor a + ldh [hAutoBGTransferEnabled], a + ld hl, wTileMapBackup2 + decoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + jp CopyData + +SaveScreenTilesToBuffer1:: + hlcoord 0, 0 + ld de, wTileMapBackup + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + jp CopyData + +LoadScreenTilesFromBuffer1:: + xor a + ldh [hAutoBGTransferEnabled], a + ld hl, wTileMapBackup + decoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + call CopyData + ld a, 1 + ldh [hAutoBGTransferEnabled], a + ret diff --git a/home/trainers.asm b/home/trainers.asm new file mode 100644 index 000000000..f407652ac --- /dev/null +++ b/home/trainers.asm @@ -0,0 +1,426 @@ +; stores hl in [wTrainerHeaderPtr] +StoreTrainerHeaderPointer:: + ld a, h + ld [wTrainerHeaderPtr], a + ld a, l + ld [wTrainerHeaderPtr+1], a + ret + +; executes the current map script from the function pointer array provided in de. +; a: map script index to execute (unless overridden by [wd733] bit 4) +; hl: trainer header pointer +ExecuteCurMapScriptInTable:: + push af + push de + call StoreTrainerHeaderPointer + pop hl + pop af + push hl + ld hl, wFlags_D733 + bit 4, [hl] + res 4, [hl] + jr z, .useProvidedIndex ; test if map script index was overridden manually + ld a, [wCurMapScript] +.useProvidedIndex + pop hl + ld [wCurMapScript], a + call CallFunctionInTable + ld a, [wCurMapScript] + ret + +LoadGymLeaderAndCityName:: + push de + ld de, wGymCityName + ld bc, $11 + call CopyData ; load city name + pop hl + ld de, wGymLeaderName + ld bc, NAME_LENGTH + jp CopyData ; load gym leader name + +; reads specific information from trainer header (pointed to at wTrainerHeaderPtr) +; a: offset in header data +; 0 -> flag's bit (into wTrainerHeaderFlagBit) +; 2 -> flag's byte ptr (into hl) +; 4 -> before battle text (into hl) +; 6 -> after battle text (into hl) +; 8 -> end battle text (into hl) +ReadTrainerHeaderInfo:: + push de + push af + ld d, $0 + ld e, a + ld hl, wTrainerHeaderPtr + ld a, [hli] + ld l, [hl] + ld h, a + add hl, de + pop af + and a + jr nz, .nonZeroOffset + ld a, [hl] + ld [wTrainerHeaderFlagBit], a ; store flag's bit + jr .done +.nonZeroOffset + cp $2 + jr z, .readPointer ; read flag's byte ptr + cp $4 + jr z, .readPointer ; read before battle text + cp $6 + jr z, .readPointer ; read after battle text + cp $8 + jr z, .readPointer ; read end battle text + cp $a + jr nz, .done + ld a, [hli] ; read end battle text (2) but override the result afterwards (XXX why, bug?) + ld d, [hl] + ld e, a + jr .done +.readPointer + ld a, [hli] + ld h, [hl] + ld l, a +.done + pop de + ret + +TrainerFlagAction:: + predef_jump FlagActionPredef + +TalkToTrainer:: + call StoreTrainerHeaderPointer + xor a + call ReadTrainerHeaderInfo ; read flag's bit + ld a, $2 + call ReadTrainerHeaderInfo ; read flag's byte ptr + ld a, [wTrainerHeaderFlagBit] + ld c, a + ld b, FLAG_TEST + call TrainerFlagAction ; read trainer's flag + ld a, c + and a + jr z, .trainerNotYetFought ; test trainer's flag + ld a, $6 + call ReadTrainerHeaderInfo ; print after battle text + jp PrintText +.trainerNotYetFought + ld a, $4 + call ReadTrainerHeaderInfo ; print before battle text + call PrintText + ld a, $a + call ReadTrainerHeaderInfo ; (?) does nothing apparently (maybe bug in ReadTrainerHeaderInfo) + push de + ld a, $8 + call ReadTrainerHeaderInfo ; read end battle text + pop de + call SaveEndBattleTextPointers + ld hl, wFlags_D733 + set 4, [hl] ; activate map script index override (index is set below) + ld hl, wFlags_0xcd60 + bit 0, [hl] ; test if player is already engaging the trainer (because the trainer saw the player) + ret nz +; if the player talked to the trainer of his own volition + call EngageMapTrainer + ld hl, wCurMapScript + inc [hl] ; increment map script index before StartTrainerBattle increments it again (next script function is usually EndTrainerBattle) + jp StartTrainerBattle + +; checks if any trainers are seeing the player and wanting to fight +CheckFightingMapTrainers:: + call CheckForEngagingTrainers + ld a, [wSpriteIndex] + cp $ff + jr nz, .trainerEngaging +.trainerNotEngaging + xor a + ld [wSpriteIndex], a + ld [wTrainerHeaderFlagBit], a + ret +.trainerEngaging + ld hl, wFlags_D733 + set 3, [hl] + ld [wEmotionBubbleSpriteIndex], a + xor a ; EXCLAMATION_BUBBLE + ld [wWhichEmotionBubble], a + predef EmotionBubble + ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN + ld [wJoyIgnore], a + xor a + ldh [hJoyHeld], a + call TrainerWalkUpToPlayer_Bank0 + ld hl, wCurMapScript + inc [hl] ; increment map script index (next script function is usually DisplayEnemyTrainerTextAndStartBattle) + ret + +; display the before battle text after the enemy trainer has walked up to the player's sprite +DisplayEnemyTrainerTextAndStartBattle:: + ld a, [wd730] + and $1 + ret nz ; return if the enemy trainer hasn't finished walking to the player's sprite + ld [wJoyIgnore], a + ld a, [wSpriteIndex] + ldh [hSpriteIndexOrTextID], a + call DisplayTextID + ; fall through + +StartTrainerBattle:: + xor a + ld [wJoyIgnore], a + call InitBattleEnemyParameters + ld hl, wd72d + set 6, [hl] + set 7, [hl] + ld hl, wd72e + set 1, [hl] + ld hl, wCurMapScript + inc [hl] ; increment map script index (next script function is usually EndTrainerBattle) + ret + +EndTrainerBattle:: + ld hl, wCurrentMapScriptFlags + set 5, [hl] + set 6, [hl] + ld hl, wd72d + res 7, [hl] + ld hl, wFlags_0xcd60 + res 0, [hl] ; player is no longer engaged by any trainer + ld a, [wIsInBattle] + cp $ff + jp z, ResetButtonPressedAndMapScript + ld a, $2 + call ReadTrainerHeaderInfo + ld a, [wTrainerHeaderFlagBit] + ld c, a + ld b, FLAG_SET + call TrainerFlagAction ; flag trainer as fought + ld a, [wEnemyMonOrTrainerClass] + cp OPP_ID_OFFSET + jr nc, .skipRemoveSprite ; test if trainer was fought (in that case skip removing the corresponding sprite) + ld hl, wMissableObjectList + ld de, $2 + ld a, [wSpriteIndex] + call IsInArray ; search for sprite ID + inc hl + ld a, [hl] + ld [wMissableObjectIndex], a ; load corresponding missable object index and remove it + predef HideObject +.skipRemoveSprite + ld hl, wd730 + bit 4, [hl] + res 4, [hl] + ret nz + +ResetButtonPressedAndMapScript:: + xor a + ld [wJoyIgnore], a + ldh [hJoyHeld], a + ldh [hJoyPressed], a + ldh [hJoyReleased], a + ld [wCurMapScript], a ; reset battle status + ret + +; calls TrainerWalkUpToPlayer +TrainerWalkUpToPlayer_Bank0:: + farjp TrainerWalkUpToPlayer + +; sets opponent type and mon set/lvl based on the engaging trainer data +InitBattleEnemyParameters:: + ld a, [wEngagedTrainerClass] + ld [wCurOpponent], a + ld [wEnemyMonOrTrainerClass], a + cp OPP_ID_OFFSET + ld a, [wEngagedTrainerSet] + jr c, .noTrainer + ld [wTrainerNo], a + ret +.noTrainer + ld [wCurEnemyLVL], a + ret + +GetSpritePosition1:: + ld hl, _GetSpritePosition1 + jr SpritePositionBankswitch + +GetSpritePosition2:: + ld hl, _GetSpritePosition2 + jr SpritePositionBankswitch + +SetSpritePosition1:: + ld hl, _SetSpritePosition1 + jr SpritePositionBankswitch + +SetSpritePosition2:: + ld hl, _SetSpritePosition2 +SpritePositionBankswitch:: + ld b, BANK(_GetSpritePosition1) ; BANK(_GetSpritePosition2), BANK(_SetSpritePosition1), BANK(_SetSpritePosition2) + jp Bankswitch ; indirect jump to one of the four functions + +CheckForEngagingTrainers:: + xor a + call ReadTrainerHeaderInfo ; read trainer flag's bit (unused) + ld d, h ; store trainer header address in de + ld e, l +.trainerLoop + call StoreTrainerHeaderPointer ; set trainer header pointer to current trainer + ld a, [de] + ld [wSpriteIndex], a ; store trainer flag's bit + ld [wTrainerHeaderFlagBit], a + cp -1 + ret z + ld a, $2 + call ReadTrainerHeaderInfo ; read trainer flag's byte ptr + ld b, FLAG_TEST + ld a, [wTrainerHeaderFlagBit] + ld c, a + call TrainerFlagAction ; read trainer flag + ld a, c + and a ; has the trainer already been defeated? + jr nz, .continue + push hl + push de + push hl + xor a + call ReadTrainerHeaderInfo ; get trainer header pointer + inc hl + ld a, [hl] ; read trainer engage distance + pop hl + ld [wTrainerEngageDistance], a + ld a, [wSpriteIndex] + swap a + ld [wTrainerSpriteOffset], a + predef TrainerEngage + pop de + pop hl + ld a, [wTrainerSpriteOffset] + and a + ret nz ; break if the trainer is engaging +.continue + ld hl, $c + add hl, de + ld d, h + ld e, l + jr .trainerLoop + +; hl = text if the player wins +; de = text if the player loses +SaveEndBattleTextPointers:: + ldh a, [hLoadedROMBank] + ld [wEndBattleTextRomBank], a + ld a, h + ld [wEndBattleWinTextPointer], a + ld a, l + ld [wEndBattleWinTextPointer + 1], a + ld a, d + ld [wEndBattleLoseTextPointer], a + ld a, e + ld [wEndBattleLoseTextPointer + 1], a + ret + +; loads data of some trainer on the current map and plays pre-battle music +; [wSpriteIndex]: sprite ID of trainer who is engaged +EngageMapTrainer:: + ld hl, wMapSpriteExtraData + ld d, $0 + ld a, [wSpriteIndex] + dec a + add a + ld e, a + add hl, de ; seek to engaged trainer data + ld a, [hli] ; load trainer class + ld [wEngagedTrainerClass], a + ld a, [hl] ; load trainer mon set + ld [wEngagedTrainerSet], a + jp PlayTrainerMusic + +PrintEndBattleText:: + push hl + ld hl, wd72d + bit 7, [hl] + res 7, [hl] + pop hl + ret z + ldh a, [hLoadedROMBank] + push af + ld a, [wEndBattleTextRomBank] + ldh [hLoadedROMBank], a + ld [MBC1RomBank], a + push hl + farcall SaveTrainerName + ld hl, TrainerEndBattleText + call PrintText + pop hl + pop af + ldh [hLoadedROMBank], a + ld [MBC1RomBank], a + farcall FreezeEnemyTrainerSprite + jp WaitForSoundToFinish + +GetSavedEndBattleTextPointer:: + ld a, [wBattleResult] + and a +; won battle + jr nz, .lostBattle + ld a, [wEndBattleWinTextPointer] + ld h, a + ld a, [wEndBattleWinTextPointer + 1] + ld l, a + ret +.lostBattle + ld a, [wEndBattleLoseTextPointer] + ld h, a + ld a, [wEndBattleLoseTextPointer + 1] + ld l, a + ret + +TrainerEndBattleText:: + text_far _TrainerNameText + text_asm + call GetSavedEndBattleTextPointer + call TextCommandProcessor + jp TextScriptEnd + +PlayTrainerMusic:: + ld a, [wEngagedTrainerClass] + cp OPP_RIVAL1 + ret z + cp OPP_RIVAL2 + ret z + cp OPP_RIVAL3 + ret z + ld a, [wGymLeaderNo] + and a + ret nz + xor a + ld [wAudioFadeOutControl], a + call StopAllMusic + ld a, BANK(Music_MeetEvilTrainer) + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a + ld a, [wEngagedTrainerClass] + ld b, a + ld hl, EvilTrainerList +.evilTrainerListLoop + ld a, [hli] + cp $ff + jr z, .noEvilTrainer + cp b + jr nz, .evilTrainerListLoop + ld a, MUSIC_MEET_EVIL_TRAINER + jr .PlaySound +.noEvilTrainer + ld hl, FemaleTrainerList +.femaleTrainerListLoop + ld a, [hli] + cp $ff + jr z, .maleTrainer + cp b + jr nz, .femaleTrainerListLoop + ld a, MUSIC_MEET_FEMALE_TRAINER + jr .PlaySound +.maleTrainer + ld a, MUSIC_MEET_MALE_TRAINER +.PlaySound + ld [wNewSoundID], a + jp PlaySound + +INCLUDE "data/trainers/encounter_types.asm" diff --git a/home/trainers2.asm b/home/trainers2.asm new file mode 100644 index 000000000..78fb64633 --- /dev/null +++ b/home/trainers2.asm @@ -0,0 +1,54 @@ +GetTrainerInformation:: + call GetTrainerName + ld a, [wLinkState] + and a + jr nz, .linkBattle + ld a, BANK(TrainerPicAndMoneyPointers) + call BankswitchHome + ld a, [wTrainerClass] + dec a + ld hl, TrainerPicAndMoneyPointers + ld bc, $5 + call AddNTimes + ld de, wTrainerPicPointer + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + ld de, wTrainerBaseMoney + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + call IsFightingJessieJames + jp BankswitchBack +.linkBattle + ld hl, wTrainerPicPointer + ld de, RedPicFront + ld [hl], e + inc hl + ld [hl], d + ret + +IsFightingJessieJames:: + ld a, [wTrainerClass] + cp ROCKET + ret nz + ld a, [wTrainerNo] + cp $2a + ret c + ld de, JessieJamesPic + cp $2e + jr c, .dummy + ld de, JessieJamesPic ; possibly meant to add another pic +.dummy + ld hl, wTrainerPicPointer + ld a, e + ld [hli], a + ld [hl], d + ret + +GetTrainerName:: + farjp GetTrainerName_ diff --git a/home/uncompress.asm b/home/uncompress.asm new file mode 100644 index 000000000..182821aa2 --- /dev/null +++ b/home/uncompress.asm @@ -0,0 +1,588 @@ +; bankswitches and runs _UncompressSpriteData +; bank is given in a, sprite input stream is pointed to in wSpriteInputPtr +UncompressSpriteData:: + ld b, a + ldh a, [hLoadedROMBank] + push af + ld a, b + call BankswitchCommon + ld a, $0 + call SwitchSRAMBankAndLatchClockData + call _UncompressSpriteData + call PrepareRTCDataAndDisableSRAM + pop af + call BankswitchCommon + ret + +; initializes necessary data to load a sprite and runs UncompressSpriteDataLoop +_UncompressSpriteData:: + ld hl, sSpriteBuffer1 + ld c, LOW(2 * SPRITEBUFFERSIZE) + ld b, HIGH(2 * SPRITEBUFFERSIZE) + xor a + call FillMemory ; clear sprite buffer 1 and 2 + ld a, $1 + ld [wSpriteInputBitCounter], a + ld a, $3 + ld [wSpriteOutputBitOffset], a + xor a + ld [wSpriteCurPosX], a + ld [wSpriteCurPosY], a + ld [wSpriteLoadFlags], a + call ReadNextInputByte ; first byte of input determines sprite width (high nybble) and height (low nybble) in tiles (8x8 pixels) + ld b, a + and $f + add a + add a + add a + ld [wSpriteHeight], a + ld a, b + swap a + and $f + add a + add a + add a + ld [wSpriteWidth], a + call ReadNextInputBit + ld [wSpriteLoadFlags], a ; initialite bit1 to 0 and bit0 to the first input bit + ; this will load two chunks of data to sSpriteBuffer1 and sSpriteBuffer2 + ; bit 0 decides in which one the first chunk is placed + ; fall through + +; uncompresses a chunk from the sprite input data stream (pointed to at wd0da) into sSpriteBuffer1 or sSpriteBuffer2 +; each chunk is a 1bpp sprite. A 2bpp sprite consist of two chunks which are merged afterwards +; note that this is an endless loop which is terminated during a call to MoveToNextBufferPosition by manipulating the stack +UncompressSpriteDataLoop:: + ld hl, sSpriteBuffer1 + ld a, [wSpriteLoadFlags] + bit 0, a + jr z, .useSpriteBuffer1 ; check which buffer to use + ld hl, sSpriteBuffer2 +.useSpriteBuffer1 + call StoreSpriteOutputPointer + ld a, [wSpriteLoadFlags] + bit 1, a + jr z, .startDecompression ; check if last iteration + call ReadNextInputBit ; if last chunk, read 1-2 bit unpacking mode + and a + jr z, .unpackingMode0 ; 0 -> mode 0 + call ReadNextInputBit ; 1 0 -> mode 1 + inc a ; 1 1 -> mode 2 +.unpackingMode0 + ld [wSpriteUnpackMode], a +.startDecompression + call ReadNextInputBit + and a + jr z, .readRLEncodedZeros ; if first bit is 0, the input starts with zeroes, otherwise with (non-zero) input +.readNextInput + call ReadNextInputBit + ld c, a + call ReadNextInputBit + sla c + or c ; read next two bits into c + and a + jr z, .readRLEncodedZeros ; 00 -> RLEncoded zeroes following + call WriteSpriteBitsToBuffer ; otherwise write input to output and repeat + call MoveToNextBufferPosition + jr .readNextInput +.readRLEncodedZeros + ld c, $0 ; number of zeroes it length encoded, the number +.countConsecutiveOnesLoop ; of consecutive ones determines the number of bits the number has + call ReadNextInputBit + and a + jr z, .countConsecutiveOnesFinished + inc c + jr .countConsecutiveOnesLoop +.countConsecutiveOnesFinished + ld a, c + add a + ld hl, LengthEncodingOffsetList + add l + ld l, a + jr nc, .noCarry + inc h +.noCarry + ld a, [hli] ; read offset that is added to the number later on + ld e, a ; adding an offset of 2^length - 1 makes every integer uniquely + ld d, [hl] ; representable in the length encoding and saves bits + push de + inc c + ld e, $0 + ld d, e +.readNumberOfZerosLoop ; reads the next c+1 bits of input + call ReadNextInputBit + or e + ld e, a + dec c + jr z, .readNumberOfZerosDone + sla e + rl d + jr .readNumberOfZerosLoop +.readNumberOfZerosDone + pop hl ; add the offset + add hl, de + ld e, l + ld d, h +.writeZerosLoop + ld b, e + xor a ; write 00 to buffer + call WriteSpriteBitsToBuffer + ld e, b + call MoveToNextBufferPosition + dec de + ld a, d + and a + jr nz, .continueLoop + ld a, e + and a +.continueLoop + jr nz, .writeZerosLoop + jr .readNextInput + +; moves output pointer to next position +; also cancels the calling function if the all output is done (by removing the return pointer from stack) +; and calls postprocessing functions according to the unpack mode +MoveToNextBufferPosition:: + ld a, [wSpriteHeight] + ld b, a + ld a, [wSpriteCurPosY] + inc a + cp b + jr z, .curColumnDone + ld [wSpriteCurPosY], a + ld a, [wSpriteOutputPtr] + inc a + ld [wSpriteOutputPtr], a + ret nz + ld a, [wSpriteOutputPtr+1] + inc a + ld [wSpriteOutputPtr+1], a + ret +.curColumnDone + xor a + ld [wSpriteCurPosY], a + ld a, [wSpriteOutputBitOffset] + and a + jr z, .bitOffsetsDone + dec a + ld [wSpriteOutputBitOffset], a + ld hl, wSpriteOutputPtrCached + ld a, [hli] + ld [wSpriteOutputPtr], a + ld a, [hl] + ld [wSpriteOutputPtr+1], a + ret +.bitOffsetsDone + ld a, $3 + ld [wSpriteOutputBitOffset], a + ld a, [wSpriteCurPosX] + add $8 + ld [wSpriteCurPosX], a + ld b, a + ld a, [wSpriteWidth] + cp b + jr z, .allColumnsDone + ld a, [wSpriteOutputPtr] + ld l, a + ld a, [wSpriteOutputPtr+1] + ld h, a + inc hl + jp StoreSpriteOutputPointer +.allColumnsDone + pop hl + xor a + ld [wSpriteCurPosX], a + ld a, [wSpriteLoadFlags] + bit 1, a + jr nz, .done ; test if there is one more sprite to go + xor $1 + set 1, a + ld [wSpriteLoadFlags], a + jp UncompressSpriteDataLoop +.done + jp UnpackSprite + +; writes 2 bits (from a) to the output buffer (pointed to from wSpriteOutputPtr) +WriteSpriteBitsToBuffer:: + ld e, a + ld a, [wSpriteOutputBitOffset] + and a + jr z, .offset0 + cp $2 + jr c, .offset1 + jr z, .offset2 + rrc e ; offset 3 + rrc e + jr .offset0 +.offset1 + sla e + sla e + jr .offset0 +.offset2 + swap e +.offset0 + ld a, [wSpriteOutputPtr] + ld l, a + ld a, [wSpriteOutputPtr+1] + ld h, a + ld a, [hl] + or e + ld [hl], a + ret + +; reads next bit from input stream and returns it in a +ReadNextInputBit:: + ld a, [wSpriteInputBitCounter] + dec a + jr nz, .curByteHasMoreBitsToRead + call ReadNextInputByte + ld [wSpriteInputCurByte], a + ld a, $8 +.curByteHasMoreBitsToRead + ld [wSpriteInputBitCounter], a + ld a, [wSpriteInputCurByte] + rlca + ld [wSpriteInputCurByte], a + and $1 + ret + +; reads next byte from input stream and returns it in a +ReadNextInputByte:: + ld a, [wSpriteInputPtr] + ld l, a + ld a, [wSpriteInputPtr+1] + ld h, a + ld a, [hli] + ld b, a + ld a, l + ld [wSpriteInputPtr], a + ld a, h + ld [wSpriteInputPtr+1], a + ld a, b + ret + +; the nth item is 2^n - 1 +LengthEncodingOffsetList:: + dw %0000000000000001 + dw %0000000000000011 + dw %0000000000000111 + dw %0000000000001111 + dw %0000000000011111 + dw %0000000000111111 + dw %0000000001111111 + dw %0000000011111111 + dw %0000000111111111 + dw %0000001111111111 + dw %0000011111111111 + dw %0000111111111111 + dw %0001111111111111 + dw %0011111111111111 + dw %0111111111111111 + dw %1111111111111111 + +; unpacks the sprite data depending on the unpack mode +UnpackSprite:: + ld a, [wSpriteUnpackMode] + cp $2 + jp z, UnpackSpriteMode2 + and a + jp nz, XorSpriteChunks + ld hl, sSpriteBuffer1 + call SpriteDifferentialDecode + ld hl, sSpriteBuffer2 + ; fall through + +; decodes differential encoded sprite data +; input bit value 0 preserves the current bit value and input bit value 1 toggles it (starting from initial value 0). +SpriteDifferentialDecode:: + xor a + ld [wSpriteCurPosX], a + ld [wSpriteCurPosY], a + call StoreSpriteOutputPointer + ld a, [wSpriteFlipped] + and a + jr z, .notFlipped + ld hl, DecodeNybble0TableFlipped + ld de, DecodeNybble1TableFlipped + jr .storeDecodeTablesPointers +.notFlipped + ld hl, DecodeNybble0Table + ld de, DecodeNybble1Table +.storeDecodeTablesPointers + ld a, l + ld [wSpriteDecodeTable0Ptr], a + ld a, h + ld [wSpriteDecodeTable0Ptr+1], a + ld a, e + ld [wSpriteDecodeTable1Ptr], a + ld a, d + ld [wSpriteDecodeTable1Ptr+1], a + ld e, $0 ; last decoded nybble, initialized to 0 +.decodeNextByteLoop + ld a, [wSpriteOutputPtr] + ld l, a + ld a, [wSpriteOutputPtr+1] + ld h, a + ld a, [hl] + ld b, a + swap a + and $f + call DifferentialDecodeNybble ; decode high nybble + swap a + ld d, a + ld a, b + and $f + call DifferentialDecodeNybble ; decode low nybble + or d + ld b, a + ld a, [wSpriteOutputPtr] + ld l, a + ld a, [wSpriteOutputPtr+1] + ld h, a + ld a, b + ld [hl], a ; write back decoded data + ld a, [wSpriteHeight] + add l ; move on to next column + jr nc, .noCarry + inc h +.noCarry + ld [wSpriteOutputPtr], a + ld a, h + ld [wSpriteOutputPtr+1], a + ld a, [wSpriteCurPosX] + add $8 + ld [wSpriteCurPosX], a + ld b, a + ld a, [wSpriteWidth] + cp b + jr nz, .decodeNextByteLoop ; test if current row is done + xor a + ld e, a + ld [wSpriteCurPosX], a + ld a, [wSpriteCurPosY] ; move on to next row + inc a + ld [wSpriteCurPosY], a + ld b, a + ld a, [wSpriteHeight] + cp b + jr z, .done ; test if all rows finished + ld a, [wSpriteOutputPtrCached] + ld l, a + ld a, [wSpriteOutputPtrCached+1] + ld h, a + inc hl + call StoreSpriteOutputPointer + jr .decodeNextByteLoop +.done + xor a + ld [wSpriteCurPosY], a + ret + +; decodes the nybble stored in a. Last decoded data is assumed to be in e (needed to determine if initial value is 0 or 1) +DifferentialDecodeNybble:: + srl a ; c=a%2, a/=2 + ld c, $0 + jr nc, .evenNumber + ld c, $1 +.evenNumber + ld l, a + ld a, [wSpriteFlipped] + and a + jr z, .notFlipped ; determine if initial value is 0 or one + bit 3, e ; if flipped, consider MSB of last data + jr .selectLookupTable +.notFlipped + bit 0, e ; else consider LSB +.selectLookupTable + ld e, l + jr nz, .initialValue1 ; load the appropriate table + ld a, [wSpriteDecodeTable0Ptr] + ld l, a + ld a, [wSpriteDecodeTable0Ptr+1] + jr .tableLookup +.initialValue1 + ld a, [wSpriteDecodeTable1Ptr] + ld l, a + ld a, [wSpriteDecodeTable1Ptr+1] +.tableLookup + ld h, a + ld a, e + add l + ld l, a + jr nc, .noCarry + inc h +.noCarry + ld a, [hl] + bit 0, c + jr nz, .selectLowNybble + swap a ; select high nybble +.selectLowNybble + and $f + ld e, a ; update last decoded data + ret + +DecodeNybble0Table:: + dn $0, $1 + dn $3, $2 + dn $7, $6 + dn $4, $5 + dn $f, $e + dn $c, $d + dn $8, $9 + dn $b, $a +DecodeNybble1Table:: + dn $f, $e + dn $c, $d + dn $8, $9 + dn $b, $a + dn $0, $1 + dn $3, $2 + dn $7, $6 + dn $4, $5 +DecodeNybble0TableFlipped:: + dn $0, $8 + dn $c, $4 + dn $e, $6 + dn $2, $a + dn $f, $7 + dn $3, $b + dn $1, $9 + dn $d, $5 +DecodeNybble1TableFlipped:: + dn $f, $7 + dn $3, $b + dn $1, $9 + dn $d, $5 + dn $0, $8 + dn $c, $4 + dn $e, $6 + dn $2, $a + +; combines the two loaded chunks with xor (the chunk loaded second is the destination). The source chunk is differeintial decoded beforehand. +XorSpriteChunks:: + xor a + ld [wSpriteCurPosX], a + ld [wSpriteCurPosY], a + call ResetSpriteBufferPointers + ld a, [wSpriteOutputPtr] ; points to buffer 1 or 2, depending on flags + ld l, a + ld a, [wSpriteOutputPtr+1] + ld h, a + call SpriteDifferentialDecode ; decode buffer 1 or 2, depending on flags + call ResetSpriteBufferPointers + ld a, [wSpriteOutputPtr] ; source buffer, points to buffer 1 or 2, depending on flags + ld l, a + ld a, [wSpriteOutputPtr+1] + ld h, a + ld a, [wSpriteOutputPtrCached] ; destination buffer, points to buffer 2 or 1, depending on flags + ld e, a + ld a, [wSpriteOutputPtrCached+1] + ld d, a +.xorChunksLoop + ld a, [wSpriteFlipped] + and a + jr z, .notFlipped + push de + ld a, [de] + ld b, a + swap a + and $f + call ReverseNybble ; if flipped reverse the nybbles in the destination buffer + swap a + ld c, a + ld a, b + and $f + call ReverseNybble + or c + pop de + ld [de], a +.notFlipped + ld a, [hli] + ld b, a + ld a, [de] + xor b + ld [de], a + inc de + ld a, [wSpriteCurPosY] + inc a + ld [wSpriteCurPosY], a ; go to next row + ld b, a + ld a, [wSpriteHeight] + cp b + jr nz, .xorChunksLoop ; test if column finished + xor a + ld [wSpriteCurPosY], a + ld a, [wSpriteCurPosX] + add $8 + ld [wSpriteCurPosX], a ; go to next column + ld b, a + ld a, [wSpriteWidth] + cp b + jr nz, .xorChunksLoop ; test if all columns finished + xor a + ld [wSpriteCurPosX], a + ret + +; reverses the bits in the nybble given in register a +ReverseNybble:: + ld de, NybbleReverseTable + add e + ld e, a + jr nc, .noCarry + inc d +.noCarry + ld a, [de] + ret + +; resets sprite buffer pointers to buffer 1 and 2, depending on wSpriteLoadFlags +ResetSpriteBufferPointers:: + ld a, [wSpriteLoadFlags] + bit 0, a + jr nz, .buffer2Selected + ld de, sSpriteBuffer1 + ld hl, sSpriteBuffer2 + jr .storeBufferPointers +.buffer2Selected + ld de, sSpriteBuffer2 + ld hl, sSpriteBuffer1 +.storeBufferPointers + ld a, l + ld [wSpriteOutputPtr], a + ld a, h + ld [wSpriteOutputPtr+1], a + ld a, e + ld [wSpriteOutputPtrCached], a + ld a, d + ld [wSpriteOutputPtrCached+1], a + ret + +; maps each nybble to its reverse +NybbleReverseTable:: + db $0, $8, $4, $c, $2, $a, $6 ,$e, $1, $9, $5, $d, $3, $b, $7 ,$f + +; combines the two loaded chunks with xor (the chunk loaded second is the destination). Both chunks are differeintial decoded beforehand. +UnpackSpriteMode2:: + call ResetSpriteBufferPointers + ld a, [wSpriteFlipped] + push af + xor a + ld [wSpriteFlipped], a ; temporarily clear flipped flag for decoding the destination chunk + ld a, [wSpriteOutputPtrCached] + ld l, a + ld a, [wSpriteOutputPtrCached+1] + ld h, a + call SpriteDifferentialDecode + call ResetSpriteBufferPointers + pop af + ld [wSpriteFlipped], a + jp XorSpriteChunks + +; stores hl into the output pointers +StoreSpriteOutputPointer:: + ld a, l + ld [wSpriteOutputPtr], a + ld [wSpriteOutputPtrCached], a + ld a, h + ld [wSpriteOutputPtr+1], a + ld [wSpriteOutputPtrCached+1], a + ret diff --git a/home/update_sprites.asm b/home/update_sprites.asm new file mode 100644 index 000000000..0c32dad85 --- /dev/null +++ b/home/update_sprites.asm @@ -0,0 +1,15 @@ +UpdateSprites:: + ld a, [wUpdateSpritesEnabled] + dec a + ret nz + ldh a, [hLoadedROMBank] + push af + switchbank _UpdateSprites + ld a, $ff + ld [wUpdateSpritesEnabled], a + call _UpdateSprites + ld a, $1 + ld [wUpdateSpritesEnabled], a + pop af + call BankswitchCommon + ret diff --git a/home/vblank.asm b/home/vblank.asm index 764e5277a..ed39714fc 100644 --- a/home/vblank.asm +++ b/home/vblank.asm @@ -5,24 +5,24 @@ VBlank:: push de push hl - ld a, [rVBK] ; vram bank + ldh a, [rVBK] ; vram bank push af xor a - ld [rVBK], a ; reset vram bank to 0 + ldh [rVBK], a ; reset vram bank to 0 - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] ld [wVBlankSavedROMBank], a - ld a, [hSCX] - ld [rSCX], a - ld a, [hSCY] - ld [rSCY], a + ldh a, [hSCX] + ldh [rSCX], a + ldh a, [hSCY] + ldh [rSCY], a ld a, [wDisableVBlankWYUpdate] and a jr nz, .ok - ld a, [hWY] - ld [rWY], a + ldh a, [hWY] + ldh [rWY], a .ok call AutoBgMapTransfer @@ -31,9 +31,9 @@ VBlank:: call VBlankCopy call VBlankCopyDouble call UpdateMovingBgTiles - call $ff80 ; hOAMDMA + call hDMARoutine ld a, BANK(PrepareOAMData) - ld [H_LOADEDROMBANK], a + ldh [hLoadedROMBank], a ld [MBC1RomBank], a call PrepareOAMData @@ -43,18 +43,18 @@ VBlank:: call Random call ReadJoypad - ld a, [H_VBLANKOCCURRED] + ldh a, [hVBlankOccurred] and a jr z, .skipZeroing xor a - ld [H_VBLANKOCCURRED], a + ldh [hVBlankOccurred], a .skipZeroing - ld a, [H_FRAMECOUNTER] + ldh a, [hFrameCounter] and a jr z, .skipDec dec a - ld [H_FRAMECOUNTER], a + ldh [hFrameCounter], a .skipDec call FadeOutAudio @@ -65,11 +65,11 @@ VBlank:: call SerialFunction ld a, [wVBlankSavedROMBank] - ld [H_LOADEDROMBANK], a + ldh [hLoadedROMBank], a ld [MBC1RomBank], a pop af - ld [rVBK],a + ldh [rVBK], a pop hl pop de @@ -85,10 +85,10 @@ DelayFrame:: NOT_VBLANKED EQU 1 ld a, NOT_VBLANKED - ld [H_VBLANKOCCURRED], a + ldh [hVBlankOccurred], a .halt halt - ld a, [H_VBLANKOCCURRED] + ldh a, [hVBlankOccurred] and a jr nz, .halt ret diff --git a/home/vcopy.asm b/home/vcopy.asm index bec679c4e..9b6efb3a1 100644 --- a/home/vcopy.asm +++ b/home/vcopy.asm @@ -40,19 +40,19 @@ ClearBgMap:: ; However, this function is also called repeatedly to redraw the whole screen ; when necessary. It is also used in trade animation and elevator code. RedrawRowOrColumn:: - ld a, [hRedrawRowOrColumnMode] + ldh a, [hRedrawRowOrColumnMode] and a ret z ld b, a xor a - ld [hRedrawRowOrColumnMode], a + ldh [hRedrawRowOrColumnMode], a dec b jr nz, .redrawRow .redrawColumn ld hl, wRedrawRowOrColumnSrcTiles - ld a, [hRedrawRowOrColumnDest] + ldh a, [hRedrawRowOrColumnDest] ld e, a - ld a, [hRedrawRowOrColumnDest + 1] + ldh a, [hRedrawRowOrColumnDest + 1] ld d, a ld c, SCREEN_HEIGHT .loop1 @@ -75,13 +75,13 @@ RedrawRowOrColumn:: dec c jr nz, .loop1 xor a - ld [hRedrawRowOrColumnMode], a + ldh [hRedrawRowOrColumnMode], a ret .redrawRow ld hl, wRedrawRowOrColumnSrcTiles - ld a, [hRedrawRowOrColumnDest] + ldh a, [hRedrawRowOrColumnDest] ld e, a - ld a, [hRedrawRowOrColumnDest + 1] + ldh a, [hRedrawRowOrColumnDest + 1] ld d, a push de call .DrawHalf ; draw upper half @@ -120,59 +120,59 @@ RedrawRowOrColumn:: ; the above function, RedrawRowOrColumn, is used when walking to ; improve efficiency. AutoBgMapTransfer:: - ld a, [H_AUTOBGTRANSFERENABLED] + ldh a, [hAutoBGTransferEnabled] and a ret z - ld [H_SPTEMP], sp ; save stack pointer - ld a, [H_AUTOBGTRANSFERPORTION] + ld [hSPTemp], sp ; save stack pointer + ldh a, [hAutoBGTransferPortion] and a jr z, .transferTopThird dec a jr z, .transferMiddleThird .transferBottomThird - coord hl, 0, 12 + hlcoord 0, 12 ld sp, hl - ld a, [H_AUTOBGTRANSFERDEST + 1] + ldh a, [hAutoBGTransferDest + 1] ld h, a - ld a, [H_AUTOBGTRANSFERDEST] + ldh a, [hAutoBGTransferDest] ld l, a ld de, (12 * 32) add hl, de xor a ; TRANSFERTOP jr .doTransfer .transferTopThird - coord hl, 0, 0 + hlcoord 0, 0 ld sp, hl - ld a, [H_AUTOBGTRANSFERDEST + 1] + ldh a, [hAutoBGTransferDest + 1] ld h, a - ld a, [H_AUTOBGTRANSFERDEST] + ldh a, [hAutoBGTransferDest] ld l, a ld a, TRANSFERMIDDLE jr .doTransfer .transferMiddleThird - coord hl, 0, 6 + hlcoord 0, 6 ld sp, hl - ld a, [H_AUTOBGTRANSFERDEST + 1] + ldh a, [hAutoBGTransferDest + 1] ld h, a - ld a, [H_AUTOBGTRANSFERDEST] + ldh a, [hAutoBGTransferDest] ld l, a ld de, (6 * 32) add hl, de ld a, TRANSFERBOTTOM .doTransfer - ld [H_AUTOBGTRANSFERPORTION], a ; store next portion + ldh [hAutoBGTransferPortion], a ; store next portion ld b, 6 TransferBgRows:: ; unrolled loop and using pop for speed - rept 20 / 2 - 1 + REPT 20 / 2 - 1 pop de ld [hl], e inc l ld [hl], d inc l - endr + ENDR pop de ld [hl], e @@ -188,68 +188,68 @@ TransferBgRows:: dec b jr nz, TransferBgRows - ld a, [H_SPTEMP] + ldh a, [hSPTemp] ld l, a - ld a, [H_SPTEMP + 1] + ldh a, [hSPTemp + 1] ld h, a ld sp, hl ret -; Copies [H_VBCOPYBGNUMROWS] rows from H_VBCOPYBGSRC to H_VBCOPYBGDEST. -; If H_VBCOPYBGSRC is XX00, the transfer is disabled. +; Copies [hVBlankCopyBGNumRows] rows from hVBlankCopyBGSource to hVBlankCopyBGDest. +; If hVBlankCopyBGSource is XX00, the transfer is disabled. VBlankCopyBgMap:: - ld a, [H_VBCOPYBGSRC] ; doubles as enabling byte + ldh a, [hVBlankCopyBGSource] ; doubles as enabling byte and a ret z - ld [H_SPTEMP], sp ; save stack pointer - ld a, [H_VBCOPYBGSRC] + ld [hSPTemp], sp ; save stack pointer + ldh a, [hVBlankCopyBGSource] ld l, a - ld a, [H_VBCOPYBGSRC + 1] + ldh a, [hVBlankCopyBGSource + 1] ld h, a ld sp, hl - ld a, [H_VBCOPYBGDEST] + ldh a, [hVBlankCopyBGDest] ld l, a - ld a, [H_VBCOPYBGDEST + 1] + ldh a, [hVBlankCopyBGDest + 1] ld h, a - ld a, [H_VBCOPYBGNUMROWS] + ldh a, [hVBlankCopyBGNumRows] ld b, a xor a - ld [H_VBCOPYBGSRC], a ; disable transfer so it doesn't continue next V-blank + ldh [hVBlankCopyBGSource], a ; disable transfer so it doesn't continue next V-blank jr TransferBgRows VBlankCopyDouble:: -; Copy [H_VBCOPYDOUBLESIZE] 1bpp tiles -; from H_VBCOPYDOUBLESRC to H_VBCOPYDOUBLEDEST. +; Copy [hVBlankCopyDoubleSize] 1bpp tiles +; from hVBlankCopyDoubleSource to hVBlankCopyDoubleDest. ; While we're here, convert to 2bpp. ; The process is straightforward: ; copy each byte twice. - ld a, [H_VBCOPYDOUBLESIZE] + ldh a, [hVBlankCopyDoubleSize] and a ret z - ld [H_SPTEMP], sp ; save stack pointer + ld [hSPTemp], sp ; save stack pointer - ld a, [H_VBCOPYDOUBLESRC] + ldh a, [hVBlankCopyDoubleSource] ld l, a - ld a, [H_VBCOPYDOUBLESRC + 1] + ldh a, [hVBlankCopyDoubleSource + 1] ld h, a ld sp, hl - ld a, [H_VBCOPYDOUBLEDEST] + ldh a, [hVBlankCopyDoubleDest] ld l, a - ld a, [H_VBCOPYDOUBLEDEST + 1] + ldh a, [hVBlankCopyDoubleDest + 1] ld h, a - ld a, [H_VBCOPYDOUBLESIZE] + ldh a, [hVBlankCopyDoubleSize] ld b, a xor a ; transferred - ld [H_VBCOPYDOUBLESIZE], a + ldh [hVBlankCopyDoubleSize], a .loop - rept 3 + REPT 3 pop de ld [hl], e inc l @@ -259,7 +259,7 @@ VBlankCopyDouble:: inc l ld [hl], d inc l - endr + ENDR pop de ld [hl], e @@ -273,13 +273,13 @@ VBlankCopyDouble:: dec b jr nz, .loop - ld [H_VBCOPYDOUBLESRC], sp + ld [hVBlankCopyDoubleSource], sp ld sp, hl ; load destination into sp to save time with ld [$xxxx], sp - ld [H_VBCOPYDOUBLEDEST], sp + ld [hVBlankCopyDoubleDest], sp - ld a, [H_SPTEMP] + ldh a, [hSPTemp] ld l, a - ld a, [H_SPTEMP + 1] + ldh a, [hSPTemp + 1] ld h, a ld sp, hl @@ -287,42 +287,42 @@ VBlankCopyDouble:: VBlankCopy:: -; Copy [H_VBCOPYSIZE] 2bpp tiles (or 16 * [H_VBCOPYSIZE] tile map entries) -; from H_VBCOPYSRC to H_VBCOPYDEST. +; Copy [hVBlankCopySize] 2bpp tiles (or 16 * [hVBlankCopySize] tile map entries) +; from hVBlankCopySource to hVBlankCopyDest. ; Source and destination addresses are updated, ; so transfer can continue in subsequent calls. - ld a, [H_VBCOPYSIZE] + ldh a, [hVBlankCopySize] and a ret z - ld [H_SPTEMP], sp + ld [hSPTemp], sp - ld a, [H_VBCOPYSRC] + ldh a, [hVBlankCopySource] ld l, a - ld a, [H_VBCOPYSRC + 1] + ldh a, [hVBlankCopySource + 1] ld h, a ld sp, hl - ld a, [H_VBCOPYDEST] + ldh a, [hVBlankCopyDest] ld l, a - ld a, [H_VBCOPYDEST + 1] + ldh a, [hVBlankCopyDest + 1] ld h, a - ld a, [H_VBCOPYSIZE] + ldh a, [hVBlankCopySize] ld b, a xor a ; transferred - ld [H_VBCOPYSIZE], a + ldh [hVBlankCopySize], a .loop - rept 7 + REPT 7 pop de ld [hl], e inc l ld [hl], d inc l - endr + ENDR pop de ld [hl], e @@ -332,13 +332,13 @@ VBlankCopy:: dec b jr nz, .loop - ld [H_VBCOPYSRC], sp + ld [hVBlankCopySource], sp ld sp, hl - ld [H_VBCOPYDEST], sp + ld [hVBlankCopyDest], sp - ld a, [H_SPTEMP] + ldh a, [hSPTemp] ld l, a - ld a, [H_SPTEMP + 1] + ldh a, [hSPTemp + 1] ld h, a ld sp, hl @@ -349,17 +349,17 @@ UpdateMovingBgTiles:: ; Animate water and flower ; tiles in the overworld. - ld a, [hTilesetType] + ldh a, [hTilesetType] and a ret z ; no animations if indoors (or if a menu set this to 0) - ld a,[rLY] + ldh a, [rLY] cp $90 ; check if not in vblank period??? (maybe if vblank is too long) ret c - ld a, [hMovingBGTilesCounter1] + ldh a, [hMovingBGTilesCounter1] inc a - ld [hMovingBGTilesCounter1], a + ldh [hMovingBGTilesCounter1], a cp 20 ret c cp 21 @@ -367,7 +367,7 @@ UpdateMovingBgTiles:: ; water - ld hl, vTileset + $14 * $10 + ld hl, vTileset tile $14 ld c, $10 ld a, [wMovingBGTilesCounter2] @@ -391,17 +391,17 @@ UpdateMovingBgTiles:: dec c jr nz, .left .done - ld a, [hTilesetType] + ldh a, [hTilesetType] rrca ret nc ; if in a cave, no flower animations xor a - ld [hMovingBGTilesCounter1], a + ldh [hMovingBGTilesCounter1], a ret .flower xor a - ld [hMovingBGTilesCounter1], a + ldh [hMovingBGTilesCounter1], a ld a, [wMovingBGTilesCounter2] and 3 @@ -412,7 +412,7 @@ UpdateMovingBgTiles:: jr z, .copy ld hl, FlowerTile3 .copy - ld de, vTileset + $3 * $10 + ld de, vTileset tile $03 ld c, $10 .loop ld a, [hli] diff --git a/home/window.asm b/home/window.asm new file mode 100644 index 000000000..8ccb9de95 --- /dev/null +++ b/home/window.asm @@ -0,0 +1,292 @@ +HandleMenuInput:: + xor a + ld [wPartyMenuAnimMonEnabled], a + +HandleMenuInput_:: + ldh a, [hDownArrowBlinkCount1] + push af + ldh a, [hDownArrowBlinkCount2] + push af ; save existing values on stack + xor a + ldh [hDownArrowBlinkCount1], a ; blinking down arrow timing value 1 + ld a, 6 + ldh [hDownArrowBlinkCount2], a ; blinking down arrow timing value 2 +.loop1 + xor a + ld [wAnimCounter], a ; counter for pokemon shaking animation + call PlaceMenuCursor + call Delay3 +.loop2 + push hl + ld a, [wPartyMenuAnimMonEnabled] + and a ; is it a pokemon selection menu? + jr z, .getJoypadState + farcall AnimatePartyMon ; shake mini sprite of selected pokemon +.getJoypadState + pop hl + call JoypadLowSensitivity + ldh a, [hJoy5] + and a ; was a key pressed? + jr nz, .keyPressed + push hl + hlcoord 18, 11 ; coordinates of blinking down arrow in some menus + call HandleDownArrowBlinkTiming ; blink down arrow (if any) + pop hl + ld a, [wMenuJoypadPollCount] + dec a + jr z, .giveUpWaiting + jr .loop2 +.giveUpWaiting +; if a key wasn't pressed within the specified number of checks + pop af + ldh [hDownArrowBlinkCount2], a + pop af + ldh [hDownArrowBlinkCount1], a ; restore previous values + xor a + ld [wMenuWrappingEnabled], a ; disable menu wrapping + ret +.keyPressed + xor a + ld [wCheckFor180DegreeTurn], a + ldh a, [hJoy5] + ld b, a + bit 0, a ; pressed A key? + jr nz, .checkOtherKeys + bit 6, a ; pressed Up key? + jr z, .checkIfDownPressed +.upPressed + ld a, [wCurrentMenuItem] ; selected menu item + and a ; already at the top of the menu? + jr z, .alreadyAtTop +.notAtTop + dec a + ld [wCurrentMenuItem], a ; move selected menu item up one space + jr .checkOtherKeys +.alreadyAtTop + ld a, [wMenuWrappingEnabled] + and a ; is wrapping around enabled? + jr z, .noWrappingAround + ld a, [wMaxMenuItem] + ld [wCurrentMenuItem], a ; wrap to the bottom of the menu + jr .checkOtherKeys +.checkIfDownPressed + bit 7, a + jr z, .checkOtherKeys +.downPressed + ld a, [wCurrentMenuItem] + inc a + ld c, a + ld a, [wMaxMenuItem] + cp c + jr nc, .notAtBottom +.alreadyAtBottom + ld a, [wMenuWrappingEnabled] + and a ; is wrapping around enabled? + jr z, .noWrappingAround + ld c, $00 ; wrap from bottom to top +.notAtBottom + ld a, c + ld [wCurrentMenuItem], a +.checkOtherKeys + ld a, [wMenuWatchedKeys] + and b ; does the menu care about any of the pressed keys? + jp z, .loop1 +.checkIfAButtonOrBButtonPressed + ldh a, [hJoy5] + and A_BUTTON | B_BUTTON + jr z, .skipPlayingSound +.AButtonOrBButtonPressed + push hl + ld hl, wFlags_0xcd60 + bit 5, [hl] + pop hl + jr nz, .skipPlayingSound + ld a, SFX_PRESS_AB + call PlaySound +.skipPlayingSound + pop af + ldh [hDownArrowBlinkCount2], a + pop af + ldh [hDownArrowBlinkCount1], a ; restore previous values + xor a + ld [wMenuWrappingEnabled], a ; disable menu wrapping + ldh a, [hJoy5] + ret +.noWrappingAround + ld a, [wMenuWatchMovingOutOfBounds] + and a ; should we return if the user tried to go past the top or bottom? + jr z, .checkOtherKeys + jr .checkIfAButtonOrBButtonPressed + +PlaceMenuCursor:: + ld a, [wTopMenuItemY] + and a ; is the y coordinate 0? + jr z, .adjustForXCoord + hlcoord 0, 0 + ld bc, SCREEN_WIDTH +.topMenuItemLoop + add hl, bc + dec a + jr nz, .topMenuItemLoop +.adjustForXCoord + ld a, [wTopMenuItemX] + ld b, 0 + ld c, a + add hl, bc + push hl + ld a, [wLastMenuItem] + and a ; was the previous menu id 0? + jr z, .checkForArrow1 + ld bc, 40 + push af + ldh a, [hFlagsFFFA] + bit 1, a ; is the menu double spaced? + jr z, .doubleSpaced1 + ld bc, 20 +.doubleSpaced1 + pop af +.oldMenuItemLoop + add hl, bc + dec a + jr nz, .oldMenuItemLoop +.checkForArrow1 + ld a, [hl] + cp "▶" ; was an arrow next to the previously selected menu item? + jr nz, .skipClearingArrow +.clearArrow + ld a, [wTileBehindCursor] + ld [hl], a +.skipClearingArrow + pop hl + ld a, [wCurrentMenuItem] + and a + jr z, .checkForArrow2 + ld bc, 40 + push af + ldh a, [hFlagsFFFA] + bit 1, a ; is the menu double spaced? + jr z, .doubleSpaced2 + ld bc, 20 +.doubleSpaced2 + pop af +.currentMenuItemLoop + add hl, bc + dec a + jr nz, .currentMenuItemLoop +.checkForArrow2 + ld a, [hl] + cp "▶" ; has the right arrow already been placed? + jr z, .skipSavingTile ; if so, don't lose the saved tile + ld [wTileBehindCursor], a ; save tile before overwriting with right arrow +.skipSavingTile + ld a, "▶" ; place right arrow + ld [hl], a + ld a, l + ld [wMenuCursorLocation], a + ld a, h + ld [wMenuCursorLocation + 1], a + ld a, [wCurrentMenuItem] + ld [wLastMenuItem], a + ret + +; This is used to mark a menu cursor other than the one currently being +; manipulated. In the case of submenus, this is used to show the location of +; the menu cursor in the parent menu. In the case of swapping items in list, +; this is used to mark the item that was first chosen to be swapped. +PlaceUnfilledArrowMenuCursor:: + ld b, a + ld a, [wMenuCursorLocation] + ld l, a + ld a, [wMenuCursorLocation + 1] + ld h, a + ld [hl], "▷" + ld a, b + ret + +; Replaces the menu cursor with a blank space. +EraseMenuCursor:: + ld a, [wMenuCursorLocation] + ld l, a + ld a, [wMenuCursorLocation + 1] + ld h, a + ld [hl], " " + ret + +; This toggles a blinking down arrow at hl on and off after a delay has passed. +; This is often called even when no blinking is occurring. +; The reason is that most functions that call this initialize hDownArrowBlinkCount1 to 0. +; The effect is that if the tile at hl is initialized with a down arrow, +; this function will toggle that down arrow on and off, but if the tile isn't +; initialized with a down arrow, this function does nothing. +; That allows this to be called without worrying about if a down arrow should +; be blinking. +HandleDownArrowBlinkTiming:: + ld a, [hl] + ld b, a + ld a, "▼" + cp b + jr nz, .downArrowOff +.downArrowOn + ldh a, [hDownArrowBlinkCount1] + dec a + ldh [hDownArrowBlinkCount1], a + ret nz + ldh a, [hDownArrowBlinkCount2] + dec a + ldh [hDownArrowBlinkCount2], a + ret nz + ld a, " " + ld [hl], a + ld a, $ff + ldh [hDownArrowBlinkCount1], a + ld a, $06 + ldh [hDownArrowBlinkCount2], a + ret +.downArrowOff + ldh a, [hDownArrowBlinkCount1] + and a + ret z + dec a + ldh [hDownArrowBlinkCount1], a + ret nz + dec a + ldh [hDownArrowBlinkCount1], a + ldh a, [hDownArrowBlinkCount2] + dec a + ldh [hDownArrowBlinkCount2], a + ret nz + ld a, $06 + ldh [hDownArrowBlinkCount2], a + ld a, "▼" + ld [hl], a + ret + +; The following code either enables or disables the automatic drawing of +; text boxes by DisplayTextID. Both functions cause DisplayTextID to wait +; for a button press after displaying text (unless [wEnteringCableClub] is set). + +EnableAutoTextBoxDrawing:: + xor a + jr AutoTextBoxDrawingCommon + +DisableAutoTextBoxDrawing:: + ld a, TRUE + +AutoTextBoxDrawingCommon:: + ld [wAutoTextBoxDrawingControl], a + xor a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a ; make DisplayTextID wait for button press + ret + +PrintText:: +; Print text hl at (1, 14). + push hl + ld a, MESSAGE_BOX + ld [wTextBoxID], a + call DisplayTextBoxID + call UpdateSprites + call Delay3 + pop hl +PrintText_NoCreatingTextBox:: + bccoord 1, 14 + jp TextCommandProcessor diff --git a/home/yes_no.asm b/home/yes_no.asm new file mode 100644 index 000000000..28d6c7aac --- /dev/null +++ b/home/yes_no.asm @@ -0,0 +1,40 @@ +; displays yes/no choice +; yes -> set carry +YesNoChoice:: + call SaveScreenTilesToBuffer1 + call InitYesNoTextBoxParameters + jr DisplayYesNoChoice + +Func_35f7:: + ld a, TWO_OPTION_MENU + ld [wTextBoxID], a + call InitYesNoTextBoxParameters + jp DisplayTextBoxID + +InitYesNoTextBoxParameters:: + xor a ; YES_NO_MENU + ld [wTwoOptionMenuID], a + hlcoord 14, 7 + lb bc, 8, 15 + ret + +YesNoChoicePokeCenter:: + call SaveScreenTilesToBuffer1 + ld a, HEAL_CANCEL_MENU + ld [wTwoOptionMenuID], a + hlcoord 11, 6 + lb bc, 8, 12 + jr DisplayYesNoChoice + +WideYesNoChoice:: ; unused + call SaveScreenTilesToBuffer1 + ld a, WIDE_YES_NO_MENU + ld [wTwoOptionMenuID], a + hlcoord 12, 7 + lb bc, 8, 13 + +DisplayYesNoChoice:: + ld a, TWO_OPTION_MENU + ld [wTextBoxID], a + call DisplayTextBoxID + jp LoadScreenTilesFromBuffer1 diff --git a/hram.asm b/hram.asm index 0e1fae7ed..f3ffc5649 100644 --- a/hram.asm +++ b/hram.asm @@ -1,333 +1,412 @@ -hSoftReset EQU $FF8A +SECTION "HRAM", HRAM + ; Initialized to 16. ; Decremented each input iteration if the player ; presses the reset sequence (A+B+SEL+START). ; Soft reset when 0 is reached. +hSoftReset:: db -; base tile ID to which offsets are added -hBaseTileID EQU $FF8B - -; 3-byte BCD number -hItemPrice EQU $FF8B - -hDexWeight EQU $FF8B - -hWarpDestinationMap EQU $FF8B - -hOAMTile EQU $FF8B - -hPreviousTileset EQU $FF8B - -hEastWestConnectedMapWidth EQU $FF8B - -hSlideAmount EQU $FF8B - -hRLEByteValue EQU $FF8B +UNION +hBaseTileID:: ; base tile ID to which offsets are added +hDexWeight:: +hWarpDestinationMap:: +hOAMTile:: +hROMBankTemp:: +hPreviousTileset:: +hRLEByteValue:: + db -H_SPRITEWIDTH EQU $FF8B ; in tiles -H_SPRITEINTERLACECOUNTER EQU $FF8B -H_SPRITEHEIGHT EQU $FF8C ; in tiles -H_SPRITEOFFSET EQU $FF8D +hSpriteIndexOrTextID:: ; DisplayTextID's argument +hPartyMonIndex:: + db -; counters for blinking down arrow -H_DOWNARROWBLINKCNT1 EQU $FF8B -H_DOWNARROWBLINKCNT2 EQU $FF8C - -H_SPRITEDATAOFFSET EQU $FF8B -H_SPRITEINDEX EQU $FF8C - -hMapStride EQU $FF8B -hMapWidth EQU $FF8C +hVRAMSlot:: + db -hNorthSouthConnectionStripWidth EQU $FF8B -hNorthSouthConnectedMapWidth EQU $FF8C +hFourTileSpriteCount:: +hHalveItemPrices:: + db -; DisplayTextID's argument -hSpriteIndexOrTextID EQU $FF8C +NEXTU +hItemPrice:: ds 3 ; BCD number -hPartyMonIndex EQU $FF8C +NEXTU +hSlideAmount:: db ; the total number of tiles being shifted each time the pic slides by one tile -hSlidingRegionSize EQU $FF8C - -; 2 bytes -hEnemySpeed EQU $FF8D - -hVRAMSlot EQU $FF8D - -hFourTileSpriteCount EQU $FF8E +hSlidingRegionSize:: db ; -1 = left ; 0 = right -hSlideDirection EQU $FF8D - -hSpriteFacingDirection EQU $FF8D - -hSpriteMovementByte2 EQU $FF8D - -hSpriteImageIndex EQU $FF8D +hSlideDirection:: db -hLoadSpriteTemp1 EQU $FF8D -hLoadSpriteTemp2 EQU $FF8E - -hHalveItemPrices EQU $FF8E - -hSpriteOffset2 EQU $FF8F - -hOAMBufferOffset EQU $FF90 - -hSpriteScreenX EQU $FF91 -hSpriteScreenY EQU $FF92 - -hTilePlayerStandingOn EQU $FF93 - -hSpritePriority EQU $FF94 - -; 2 bytes -hSignCoordPointer EQU $FF95 - -hNPCMovementDirections2Index EQU $FF95 - -; CalcPositionOfPlayerRelativeToNPC -hNPCSpriteOffset EQU $FF95 - -; temp value used when swapping bytes -hSwapTemp EQU $FF95 - -hExperience EQU $FF96 ; 3 bytes, big endian - -; Multiplication and division variables are meant -; to overlap for back-to-back usage. Big endian. - -H_MULTIPLICAND EQU $FF96 ; 3 bytes -H_MULTIPLIER EQU $FF99 ; 1 byte -H_PRODUCT EQU $FF95 ; 4 bytes - -H_DIVIDEND EQU $FF95 ; 4 bytes -H_DIVISOR EQU $FF99 ; 1 byte -H_QUOTIENT EQU $FF95 ; 4 bytes -H_REMAINDER EQU $FF99 ; 1 byte - -H_DIVIDEBUFFER EQU $FF9A - -H_MULTIPLYBUFFER EQU $FF9B +NEXTU +hSpriteInterlaceCounter:: +hSpriteWidth:: db ; in tiles +hSpriteHeight:: db ; in tiles +hSpriteOffset:: db +NEXTU +; counters for blinking down arrow +hDownArrowBlinkCount1:: db +hDownArrowBlinkCount2:: db + +NEXTU +hMapStride:: +hEastWestConnectedMapWidth:: +hNorthSouthConnectionStripWidth:: + db +hMapWidth:: +hNorthSouthConnectedMapWidth:: + db + +NEXTU +hSpriteDataOffset:: db +hSpriteIndex:: db +hSpriteImageIndex:: +hSpriteFacingDirection:: +hSpriteMovementByte2:: + db + +NEXTU + ds 2 +hLoadSpriteTemp1:: db +hLoadSpriteTemp2:: db + +NEXTU + ds 2 +hEnemySpeed:: dw +ENDU + +UNION +hSpriteOffset2:: db +hOAMBufferOffset:: db +hSpriteScreenX:: db +hSpriteScreenY:: db + +NEXTU +hFF8F:: db +hFF90:: db +hFF91:: db +hFF92:: db +ENDU + +hTilePlayerStandingOn:: db + +hSpritePriority:: db + +UNION +;; Multiplication and division variables are meant +;; to overlap for back-to-back usage. Big endian. +UNION + ds 1 +hMultiplicand:: ds 3 +hMultiplier:: db + ds 1 +hMultiplyBuffer:: ds 4 +NEXTU +hProduct:: ds 4 +NEXTU +hDividend:: ds 4 +hDivisor:: db +hDivideBuffer:: ds 5 +NEXTU +hQuotient:: ds 4 +hRemainder:: db +ENDU + +NEXTU ; PrintNumber (big endian). -H_PASTLEADINGZEROES EQU $FF95 ; last char printed -H_NUMTOPRINT EQU $FF96 ; 3 bytes -H_POWEROFTEN EQU $FF99 ; 3 bytes -H_SAVEDNUMTOPRINT EQU $FF9C ; 3 bytes - +hPastLeadingZeros:: db ; last char printed +hNumToPrint:: ds 3 +hPowerOf10:: ds 3 +hSavedNumToPrint:: ds 3 + +NEXTU +hNPCMovementDirections2Index:: +hNPCSpriteOffset:: ; distance in steps between NPC and player -hNPCPlayerYDistance EQU $FF95 -hNPCPlayerXDistance EQU $FF96 - -hFindPathNumSteps EQU $FF97 - +hNPCPlayerYDistance:: + db +hNPCPlayerXDistance:: + db +hFindPathNumSteps:: db ; bit 0: set when the end of the path's Y coordinate matches the target's ; bit 1: set when the end of the path's X coordinate matches the target's ; When both bits are set, the end of the path is at the target's position ; (i.e. the path has been found). -hFindPathFlags EQU $FF98 - -hFindPathYProgress EQU $FF99 -hFindPathXProgress EQU $FF9A - +hFindPathFlags:: db +hFindPathYProgress:: db +hFindPathXProgress:: db ; 0 = from player to NPC ; 1 = from NPC to player -hNPCPlayerRelativePosPerspective EQU $FF9B - +hNPCPlayerRelativePosPerspective:: db + ds 1 ; bit 0: ; 0 = target is to the south or aligned ; 1 = target is to the north ; bit 1: ; 0 = target is to the east or aligned ; 1 = target is to the west -hNPCPlayerRelativePosFlags EQU $FF9D - -; some code zeroes this for no reason when writing a coin amount -hUnusedCoinsByte EQU $FF9F - -hMoney EQU $FF9F ; 3-byte BCD number -hCoins EQU $FFA0 ; 2-byte BCD number - -hDivideBCDDivisor EQU $FFA2 ; 3-byte BCD number -hDivideBCDQuotient EQU $FFA2 ; 3-byte BCD number -hDivideBCDBuffer EQU $FFA5 ; 3-byte BCD number +hNPCPlayerRelativePosFlags:: db -hSerialReceivedNewData EQU $FFA9 +NEXTU +hSwapItemID:: db +hSwapItemQuantity:: db -; $01 = using external clock -; $02 = using internal clock -; $ff = establishing connection -hSerialConnectionStatus EQU $FFAA +NEXTU +hSignCoordPointer:: dw -hSerialIgnoringInitialData EQU $FFAB +NEXTU + ds 1 +hMutateWY:: db +hMutateWX:: db -hSerialSendData EQU $FFAC +NEXTU +; temp value used when swapping bytes or words +hSwapTemp:: db +hExperience:: ds 3 ; big endian +ENDU -hSerialReceiveData EQU $FFAD - -; these values are copied to SCX, SCY, and WY during V-blank -hSCX EQU $FFAE -hSCY EQU $FFAF -hWY EQU $FFB0 +UNION +hMoney:: ds 3 ; BCD number +NEXTU +; some code zeroes this for no reason when writing a coin amount +hUnusedCoinsByte:: db +hCoins:: ds 2 ; BCD number +ENDU -hJoyLast EQU $FFB1 -hJoyReleased EQU $FFB2 -hJoyPressed EQU $FFB3 -hJoyHeld EQU $FFB4 -hJoy5 EQU $FFB5 -hJoy6 EQU $FFB6 -hJoy7 EQU $FFB7 +hDivideBCDDivisor:: +hDivideBCDQuotient:: + ds 3 ; BCD number +hDivideBCDBuffer:: + ds 3 ; BCD number -H_LOADEDROMBANK EQU $FFB8 + ds 1 -hSavedROMBank EQU $FFB9 +hSerialReceivedNewData:: db +; $01 = using external clock +; $02 = using internal clock +; $ff = establishing connection +hSerialConnectionStatus:: db +hSerialIgnoringInitialData:: db +hSerialSendData:: db +hSerialReceiveData:: db + +; these values are copied to rSCX, rSCY, and rWY during V-blank +hSCX:: db +hSCY:: db +hWY:: db + +hJoyLast:: db +hJoyReleased:: db +hJoyPressed:: db +hJoyHeld:: db +hJoy5:: db +hJoy6:: db +hJoy7:: db + +hLoadedROMBank:: db +hSavedROMBank:: db ; is automatic background transfer during V-blank enabled? ; if nonzero, yes ; if zero, no -H_AUTOBGTRANSFERENABLED EQU $FFBA - -TRANSFERTOP EQU 0 -TRANSFERMIDDLE EQU 1 -TRANSFERBOTTOM EQU 2 +hAutoBGTransferEnabled:: db ; 00 = top third of background ; 01 = middle third of background ; 02 = bottom third of background -H_AUTOBGTRANSFERPORTION EQU $FFBB +hAutoBGTransferPortion:: db ; the destination address of the automatic background transfer -H_AUTOBGTRANSFERDEST EQU $FFBC ; 2 bytes +hAutoBGTransferDest:: dw + +hRedrawMapViewRowOffset:: db ; temporary storage for stack pointer during memory transfers that use pop ; to increase speed -H_SPTEMP EQU $FFBF ; 2 bytes +hSPTemp:: dw ; source address for VBlankCopyBgMap function ; the first byte doubles as the byte that enabled the transfer. ; if it is 0, the transfer is disabled ; if it is not 0, the transfer is enabled ; this means that XX00 is not a valid source address -H_VBCOPYBGSRC EQU $FFC1 ; 2 bytes +hVBlankCopyBGSource:: dw ; destination address for VBlankCopyBgMap function -H_VBCOPYBGDEST EQU $FFC3 ; 2 bytes +hVBlankCopyBGDest:: dw ; number of rows for VBlankCopyBgMap to copy -H_VBCOPYBGNUMROWS EQU $FFC5 +hVBlankCopyBGNumRows:: db ; size of VBlankCopy transfer in 16-byte units -H_VBCOPYSIZE EQU $FFC6 +hVBlankCopySize:: db ; source address for VBlankCopy function -H_VBCOPYSRC EQU $FFC7 +hVBlankCopySource:: dw ; destination address for VBlankCopy function -H_VBCOPYDEST EQU $FFC9 +hVBlankCopyDest:: dw ; size of source data for VBlankCopyDouble in 8-byte units -H_VBCOPYDOUBLESIZE EQU $FFCB +hVBlankCopyDoubleSize:: db ; source address for VBlankCopyDouble function -H_VBCOPYDOUBLESRC EQU $FFCC +hVBlankCopyDoubleSource:: dw ; destination address for VBlankCopyDouble function -H_VBCOPYDOUBLEDEST EQU $FFCE +hVBlankCopyDoubleDest:: dw ; controls whether a row or column of 2x2 tile blocks is redrawn in V-blank ; 00 = no redraw ; 01 = redraw column ; 02 = redraw row -hRedrawRowOrColumnMode EQU $FFD0 - -REDRAW_COL EQU 1 -REDRAW_ROW EQU 2 +hRedrawRowOrColumnMode:: db -hRedrawRowOrColumnDest EQU $FFD1 +hRedrawRowOrColumnDest:: dw -hRandomAdd EQU $FFD3 -hRandomSub EQU $FFD4 +hRandomAdd:: db +hRandomSub:: db -H_FRAMECOUNTER EQU $FFD5 ; decremented every V-blank (used for delays) +hFrameCounter:: db ; decremented every V-blank (used for delays) ; V-blank sets this to 0 each time it runs. ; So, by setting it to a nonzero value and waiting for it to become 0 again, ; you can detect that the V-blank handler has run since then. -H_VBLANKOCCURRED EQU $FFD6 +hVBlankOccurred:: db ; 00 = indoor ; 01 = cave ; 02 = outdoor ; this is often set to 00 in order to turn off water and flower BG tile animations -hTilesetType EQU $FFD7 - -hMovingBGTilesCounter1 EQU $FFD8 +hTilesetType:: db -H_CURRENTSPRITEOFFSET EQU $FFDA ; multiple of $10 +hMovingBGTilesCounter1:: db -hItemCounter EQU $FFDB + ds 1 -hCanceledPrinting EQU $FFDB +hCurrentSpriteOffset:: db ; multiple of $10 -hGymGateIndex EQU $FFDB +UNION +hPlayerFacing:: db +hPlayerYCoord:: db +hPlayerXCoord:: db -hGymTrashCanRandNumMask EQU $FFDB - -hDexRatingNumMonsSeen EQU $FFDB -hDexRatingNumMonsOwned EQU $FFDC +NEXTU ; $00 = bag full ; $01 = got item ; $80 = didn't meet required number of owned mons ; $FF = player cancelled -hOaksAideResult EQU $FFDB +hOaksAideResult:: +hOaksAideRequirement:: ; required number of owned mons + db +hOaksAideRewardItem:: db +hOaksAideNumMonsOwned:: db + +NEXTU +hVendingMachineItem:: db +hVendingMachinePrice:: ds 3 ; BCD number + +NEXTU +hGymGateIndex:: db +hGymGateAnswer:: db + +NEXTU +hDexRatingNumMonsSeen:: db +hDexRatingNumMonsOwned:: db + +NEXTU +hItemToRemoveID:: db +hItemToRemoveIndex:: db + +NEXTU +hItemCounter:: +hSavedCoordIndex:: +hMissableObjectIndex:: +hGymTrashCanRandNumMask:: + db -hOaksAideRequirement EQU $FFDB ; required number of owned mons -hOaksAideRewardItem EQU $FFDC -hOaksAideNumMonsOwned EQU $FFDD +NEXTU +hFFDB:: db +hFFDC:: db -hItemToRemoveID EQU $FFDB -hItemToRemoveIndex EQU $FFDC +NEXTU +hCanceledPrinting:: db +ENDU -hVendingMachineItem EQU $FFDB -hVendingMachinePrice EQU $FFDC ; 3-byte BCD number + ds 1 + +hBackupGymGateIndex:: +hUnlockedSilphCoDoors:: + db ; the first tile ID in a sequence of tile IDs that increase by 1 each step -hStartTileID EQU $FFE1 +hStartTileID:: db + + ds 2 + +hNewPartyLength:: db + +UNION +hDividend2:: db +hDivisor2:: db +hQuotient2:: db -hNewPartyLength EQU $FFE4 +NEXTU +hIsHiddenMissableObject:: db +ENDU -hDividend2 EQU $FFE5 -hDivisor2 EQU $FFE6 -hQuotient2 EQU $FFE7 +hMapROMBank:: db -hSpriteVRAMSlotAndFacing EQU $FFE9 +hSpriteVRAMSlotAndFacing:: db -hCoordsInFrontOfPlayerMatch EQU $FFEA +hCoordsInFrontOfPlayerMatch:: +hSpriteAnimFrameCounter:: + db -hSpriteAnimFrameCounter EQU $FFEA +UNION +hSpriteScreenYCoord:: db +hSpriteScreenXCoord:: db +hSpriteMapYCoord:: db +hSpriteMapXCoord:: db -hItemAlreadyFound EQU $FFEB +NEXTU +hItemAlreadyFound:: db + ds 2 +hDidntFindAnyHiddenObject:: db -hDidntFindAnyHiddenObject EQU $FFEE +NEXTU + ds 1 +hSavedMapTextPtr:: dw + ds 1 +ENDU -H_WHOSETURN EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn + ds 4 -hLCDCPointer EQU $FFF4 +hWhoseTurn:: db ; 0 on player's turn, 1 on enemy's turn -hJoyInput EQU $FFF5 +hLCDCPointer:: db -hDisableJoypadPolling EQU $FFF8 ; non-zero value disables polling of joypad +hJoyInput:: db + + ds 2 + +hDisableJoypadPolling:: db + +hClearLetterPrintingDelayFlags:: db ; bit 0: draw HP fraction to the right of bar instead of below (for party menu) ; bit 1: menu is double spaced -hFlags_0xFFFA EQU $FFFA +hFlagsFFFA:: db + +hFieldMoveMonMenuTopMenuItemX:: db -hFieldMoveMonMenuTopMenuItemX EQU $FFFB +hFFFC:: db -h_0xFFFC EQU $FFFC + ds 1 -hGBC EQU $FFFE ; 0 if DMG, != 0 if GBC +; 0 if DMG, != 0 if GBC +hGBC:: db diff --git a/layout.link b/layout.link new file mode 100644 index 000000000..1e1b7085d --- /dev/null +++ b/layout.link @@ -0,0 +1,241 @@ +ROM0 + org $0000 + "NULL" + org $0000 + "rst0" + org $0008 + "rst8" + org $0010 + "rst10" + org $0018 + "rst18" + org $0020 + "rst20" + org $0028 + "rst28" + org $0030 + "rst30" + org $0038 + "rst38" + org $0040 + "vblank" + org $0048 + "lcd" + org $0050 + "timer" + org $0058 + "serial" + org $0060 + "joypad" + ; $0061 + "High Home" + org $100 + "Header" + org $150 + "Home" +ROMX $1 + "bank1" +ROMX $2 + "Sound Effect Headers 1" + "Music Headers 1" + "Sound Effects 1" + "Audio Engine 1" + "Music 1" +ROMX $3 + "bank3" +ROMX $4 + "Font Graphics" + "NPC Sprites 1" + "Battle Engine 1" +ROMX $5 + "bank5" + "NPC Sprites 2" + "Battle Engine 2" +ROMX $6 + "Maps 1" + "Maps 2" + "Doors and Ledges" +ROMX $7 + "Maps 3" + "Pokémon Names" + "Maps 4" + "Hidden Objects 1" +ROMX $8 + "Sound Effect Headers 2" + "Music Headers 2" + "Sound Effects 2" + "Low Health Alarm (Audio Engine 2)" + "Bill's PC" + "Audio Engine 2" + "Music 2" +ROMX $9 + "Pics 1" + "Battle Engine 3" +ROMX $A + "Pics 2" + "Battle Engine 4" +ROMX $B + "Pics 3" + "Battle Engine 5" +ROMX $C + "Pics 4" +ROMX $D + "Pics 5" + "Slot Machines" +ROMX $E + "Battle Engine 7" +ROMX $F + "Battle Core" +ROMX $10 + "bank10" +ROMX $11 + "Maps 5" + "Pokédex Rating" + "Maps 6" + "Dungeon Warps" +ROMX $12 + "Maps 7" + "Maps 8" +ROMX $13 + "Pics 6" + "Maps 9" +ROMX $14 + "Maps 10" + "Hidden Objects 2" +ROMX $15 + "Maps 11" + "Battle Engine 9" + "Maps 12" + "Diploma" + "Trainer Sight" +ROMX $16 + "Maps 13" + "Battle Engine 10" + "Maps 14" + "Saffron Guards" +ROMX $17 + "Maps 15" + "Starter Dex" + "Maps 16" + "Hidden Objects 3" +ROMX $18 + "Maps 17" + "Cinnabar Lab Fossils" + "Maps 18" + "Hidden Objects 4" +ROMX $19 + "Tilesets 1" +ROMX $1A + "Battle Engine 11" + "Tilesets 2" +ROMX $1B + "Tilesets 3" +ROMX $1C + "bank1C" +ROMX $1D + "Maps 19" + "Itemfinder 1" + "Maps 20" + "Vending Machine" + "Maps 21" + "Itemfinder 2" +ROMX $1E + "bank1E" +ROMX $1F + "Sound Effect Headers 3" + "Music Headers 3" + "Sound Effects 3" + "Audio Engine 3" + "Music 3" +ROMX $20 + "Sound Effect Headers 4" + "Music Headers 4" + "Sound Effects 4" + "Audio Engine 4" + "Music 4" +ROMX $21 + "Pikachu Cries 1" +ROMX $22 + "Pikachu Cries 2" +ROMX $23 + "Pikachu Cries 3" +ROMX $24 + "Pikachu Cries 4" +ROMX $25 + "Pikachu Cries 5" +ROMX $26 + "Text 1" +ROMX $27 + "Text 2" +ROMX $28 + "Text 3" +ROMX $29 + "Text 4" +ROMX $2A + "Text 5" +ROMX $2B + "Text 6" +ROMX $2C + "Text 7" +ROMX $2D + "Text 8" +ROMX $2E + "Pokédex Text" +ROMX $2f + "Move Names" + org $5000 + "bank2f" +ROMX $30 + "bank30" +ROMX $31 + "Pikachu Cries 6" +ROMX $32 + "Pikachu Cries 7" +ROMX $33 + "Pikachu Cries 8" +ROMX $34 + "Pikachu Cries 9" +ROMX $35 + "Pikachu Cries 10" +ROMX $36 + "Pikachu Cries 11" +ROMX $37 + "Pikachu Cries 12" +ROMX $38 + "Pikachu Cries 13" +ROMX $39 + "bank39" +ROMX $3A + "bank3A" +; bank $3b is empty +ROMX $3C + "bank3C" +ROMX $3D + "bank3D" +ROMX $3E + "bank3E" +ROMX $3F + "bank3F" +WRAM0 + "WRAM" + org $c100 + "Sprite State Data" + org $c300 + "OAM Buffer" +WRAMX $1 + "WRAM Bank 1" + org $dfff + "Stack" +VRAM $0 + "VRAM" +SRAM $0 + "Sprite Buffers" +SRAM $1 + "Save Data" +SRAM $2 + "Saved Boxes 1" +SRAM $3 + "Saved Boxes 2" +HRAM + "OAM DMA" + "HRAM" diff --git a/macros.asm b/macros.asm index db13fec6b..3da4a691a 100644 --- a/macros.asm +++ b/macros.asm @@ -1,8 +1,15 @@ -INCLUDE "macros/asm_macros.asm" -INCLUDE "macros/data_macros.asm" -INCLUDE "macros/text_macros.asm" -INCLUDE "macros/audio_macros.asm" -INCLUDE "macros/event_macros.asm" +INCLUDE "macros/const.asm" +INCLUDE "macros/predef.asm" +INCLUDE "macros/farcall.asm" +INCLUDE "macros/data.asm" +INCLUDE "macros/code.asm" +INCLUDE "macros/gfx.asm" +INCLUDE "macros/coords.asm" + +INCLUDE "macros/scripts/audio.asm" +INCLUDE "macros/scripts/maps.asm" +INCLUDE "macros/scripts/events.asm" +INCLUDE "macros/scripts/text.asm" SHADE_BLACK EQU %11 SHADE_DARK EQU %10 @@ -22,61 +29,61 @@ setpalOBP: MACRO ENDM homecall_jump: MACRO - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af ld a, BANK(\1) call BankswitchCommon call \1 pop af jp BankswitchCommon - ENDM +ENDM homecall_jump_sf: MACRO - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af ld a, BANK(\1) call BankswitchCommon call \1 pop bc - ld a,b + ld a, b jp BankswitchCommon - ENDM +ENDM homecall_sf: MACRO ; homecall but save flags by popping into bc instead of af - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] push af ld a, BANK(\1) call BankswitchCommon call \1 pop bc - ld a,b + ld a, b call BankswitchCommon - ENDM +ENDM switchbank: MACRO ld a, BANK(\1) call BankswitchCommon - ENDM +ENDM callbs: MACRO ld a, BANK(\1) call BankswitchCommon call \1 - ENDM +ENDM calladb_ModifyPikachuHappiness: MACRO ld hl, ModifyPikachuHappiness ld d, \1 ld b, BANK(ModifyPikachuHappiness) call Bankswitch - ENDM +ENDM callabd_ModifyPikachuHappiness: MACRO ld hl, ModifyPikachuHappiness ld b, BANK(ModifyPikachuHappiness) ld d, \1 call Bankswitch - ENDM +ENDM sine_wave: MACRO ; \1: amplitude diff --git a/macros/asm_macros.asm b/macros/asm_macros.asm deleted file mode 100755 index 7012d7e16..000000000 --- a/macros/asm_macros.asm +++ /dev/null @@ -1,190 +0,0 @@ - -lb: MACRO ; r, hi, lo - ld \1, ((\2) & $ff) << 8 + ((\3) & $ff) -ENDM - -homecall: MACRO - ld a, [H_LOADEDROMBANK] - push af - ld a, BANK(\1) - call BankswitchCommon - call \1 - pop af - call BankswitchCommon -ENDM - -farcall EQUS "callba" - -callba: MACRO - ld b, BANK(\1) - ld hl, \1 - call Bankswitch -ENDM - -callab: MACRO - ld hl, \1 - ld b, BANK(\1) - call Bankswitch -ENDM - -jpba: MACRO - ld b, BANK(\1) - ld hl, \1 - jp Bankswitch -ENDM - -jpab: MACRO - ld hl, \1 - ld b, BANK(\1) - jp Bankswitch -ENDM - -validateCoords: MACRO - IF \1 >= SCREEN_WIDTH - fail "x coord out of range" - ENDC - IF \2 >= SCREEN_HEIGHT - fail "y coord out of range" - ENDC -ENDM - -;\1 = r -;\2 = X -;\3 = Y -;\4 = which tilemap (optional) -coord: MACRO - validateCoords \2, \3 - IF _NARG >= 4 - ld \1, \4 + SCREEN_WIDTH * \3 + \2 - ELSE - ld \1, wTileMap + SCREEN_WIDTH * \3 + \2 - ENDC -ENDM - -;\1 = X -;\2 = Y -;\3 = which tilemap (optional) -aCoord: MACRO - validateCoords \1, \2 - IF _NARG >= 3 - ld a, [\3 + SCREEN_WIDTH * \2 + \1] - ELSE - ld a, [wTileMap + SCREEN_WIDTH * \2 + \1] - ENDC -ENDM - -;\1 = X -;\2 = Y -;\3 = which tilemap (optional) -Coorda: MACRO - validateCoords \1, \2 - IF _NARG >= 3 - ld [\3 + SCREEN_WIDTH * \2 + \1], a - ELSE - ld [wTileMap + SCREEN_WIDTH * \2 + \1], a - ENDC -ENDM - -;\1 = X -;\2 = Y -;\3 = which tilemap (optional) -dwCoord: MACRO - validateCoords \1, \2 - IF _NARG >= 3 - dw \3 + SCREEN_WIDTH * \2 + \1 - ELSE - dw wTileMap + SCREEN_WIDTH * \2 + \1 - ENDC -ENDM - -;\1 = r -;\2 = X -;\3 = Y -;\4 = map width -overworldMapCoord: MACRO - ld \1, wOverworldMap + ((\2) + 3) + (((\3) + 3) * ((\4) + (3 * 2))) -ENDM - -; macro for two nibbles -dn: MACRO - db (\1 << 4 | \2) -ENDM - -; macro for putting a byte then a word -dbw: MACRO - db \1 - dw \2 -ENDM - -dba: MACRO - dbw BANK(\1), \1 -ENDM - -dwb: MACRO - dw \1 - db \2 -ENDM - -dab: MACRO - dwb \1, BANK(\1) -ENDM - -dbbw: MACRO - db \1, \2 - dw \3 -ENDM - -; Predef macro. -predef_const: MACRO - const \1PredefID -ENDM - -add_predef: MACRO -\1Predef:: - db BANK(\1) - dw \1 -ENDM - -predef_id: MACRO - ld a, (\1Predef - PredefPointers) / 3 -ENDM - -predef: MACRO - predef_id \1 - call Predef -ENDM - -predef_jump: MACRO - predef_id \1 - jp Predef -ENDM - -tx_pre_const: MACRO - const \1_id -ENDM - -add_tx_pre: MACRO -\1_id:: dw \1 -ENDM - -db_tx_pre: MACRO - db (\1_id - TextPredefs) / 2 + 1 -ENDM - -tx_pre_id: MACRO - ld a, (\1_id - TextPredefs) / 2 + 1 -ENDM - -tx_pre: MACRO - tx_pre_id \1 - call PrintPredefTextID -ENDM - -tx_pre_jump: MACRO - tx_pre_id \1 - jp PrintPredefTextID -ENDM - -ldPal: MACRO - ld \1, \2 << 6 | \3 << 4 | \4 << 2 | \5 -ENDM diff --git a/macros/audio_macros.asm b/macros/audio_macros.asm deleted file mode 100755 index 6daadbc67..000000000 --- a/macros/audio_macros.asm +++ /dev/null @@ -1,214 +0,0 @@ - -;StopAllMusic: MACRO -; ld a, $ff -; call PlaySound -;ENDM - -Ch1 EQU 0 -Ch2 EQU 1 -Ch3 EQU 2 -Ch4 EQU 3 -Ch5 EQU 4 -Ch6 EQU 5 -Ch7 EQU 6 -Ch8 EQU 7 - -audio_header: MACRO - db (_NARG - 2) << 6 | \2 - dw \1_\2 - IF _NARG > 2 - db \3 - dw \1_\3 - ENDC - IF _NARG > 3 - db \4 - dw \1_\4 - ENDC - IF _NARG > 4 - db \5 - dw \1_\5 - ENDC -ENDM - -; arguments: length [0, 7], pitch change [-7, 7] -; length: length of time between pitch shifts -; sometimes used with a value >7 in which case the MSB is ignored -; pitch change: positive value means increase in pitch, negative value means decrease in pitch -; small magnitude means quick change, large magnitude means slow change -; in signed magnitude representation, so a value of 8 is the same as (negative) 0 -pitch_sweep: MACRO - db $10 - IF \2 < 0 - db (\1 << 4) | (%1000 | (\2 * -1)) - ELSE - db (\1 << 4) | \2 - ENDC -ENDM - -; arguments: length [0, 15], volume [0, 15], fade [-7, 7], frequency -; fade: positive value means decrease in volume, negative value means increase in volume -; small magnitude means quick change, large magnitude means slow change -; in signed magnitude representation, so a value of 8 is the same as (negative) 0 -square_note: MACRO - db $20 | \1 - IF \3 < 0 - db (\2 << 4) | (%1000 | (\3 * -1)) - ELSE - db (\2 << 4) | \3 - ENDC - dw \4 -ENDM - -; arguments: length [0, 15], volume [0, 15], fade [-7, 7], frequency -; fade: positive value means decrease in volume, negative value means increase in volume -; small magnitude means quick change, large magnitude means slow change -; in signed magnitude representation, so a value of 8 is the same as (negative) 0 -noise_note: MACRO - db $20 | \1 - IF \3 < 0 - db (\2 << 4) | (%1000 | (\3 * -1)) - ELSE - db (\2 << 4) | \3 - ENDC - db \4 -ENDM - -C_ EQU $0 -C# EQU $1 -D_ EQU $2 -D# EQU $3 -E_ EQU $4 -F_ EQU $5 -F# EQU $6 -G_ EQU $7 -G# EQU $8 -A_ EQU $9 -A# EQU $A -B_ EQU $B - -; arguments: pitch, length [1, 16] -note: MACRO - db (\1 << 4) | (\2 - 1) -ENDM - -; arguments: instrument [1, 19], length [1, 16] -drum_note: MACRO - db $B0 | (\2 - 1) - db \1 -ENDM - -; arguments: instrument, length [1, 16] -; like drum_note but one 1 byte instead of 2 -; can only be used with instruments 1-10, excluding 2 -; unused -drum_note_short: MACRO - db (\1 << 4) | (\2 - 1) -ENDM - -; arguments: length [1, 16] -rest: MACRO - db $C0 | (\1 - 1) -ENDM - -; arguments: speed [0, 15], volume [0, 15], fade [-7, 7] -; fade: positive value means decrease in volume, negative value means increase in volume -; small magnitude means quick change, large magnitude means slow change -; in signed magnitude representation, so a value of 8 is the same as (negative) 0 -note_type: MACRO - db $D0 | \1 - IF \3 < 0 - db (\2 << 4) | (%1000 | (\3 * -1)) - ELSE - db (\2 << 4) | \3 - ENDC -ENDM - -; arguments: speed [0, 15] -drum_speed: MACRO - db $D0 | \1 -ENDM - -; arguments: octave [1, 8] -octave: MACRO - db $E8 - \1 -ENDM - -; when enabled, effective frequency used is incremented by 1 -toggle_perfect_pitch: MACRO - db $E8 -ENDM - -; arguments: delay [0, 255], depth [0, 15], rate [0, 15] -; delay: time delay until vibrato effect begins -; depth: amplitude of vibrato wave -; rate: frequency of vibrato wave -vibrato: MACRO - db $EA - db \1 - db (\2 << 4) | \3 -ENDM - -; arguments: length [1, 256], octave [1, 8], pitch -pitch_slide: MACRO - db $EB - db \1 - 1 - db ((8 - \2) << 4) | \3 -ENDM - -; arguments: duty cycle [0, 3] (12.5%, 25%, 50%, 75%) -duty_cycle: MACRO - db $EC - db \1 -ENDM - -; arguments: tempo [0, $ffff] -; used to calculate note delay counters -; so a smaller value means music plays faster -; ideally should be set to $100 or less to guarantee no overflow -; if larger than $100, large note speed or note length values might cause overflow -; stored in big endian -tempo: MACRO - db $ED - db \1 / $100 - db \1 % $100 -ENDM - -; arguments: left output enable mask, right output enable mask -stereo_panning: MACRO - db $EE - db (\1 << 4) | \2 -ENDM - -; arguments: left master volume [0, 7], right master volume [0, 7] -volume: MACRO - db $F0 - db (\1 << 4) | \2 -ENDM - -; when enabled, the sfx data is interpreted as music data -execute_music: MACRO - db $F8 -ENDM - -; arguments: duty cycle 1, duty cycle 2, duty cycle 3, duty cycle 4 -duty_cycle_pattern: MACRO - db $FC - db \1 << 6 | \2 << 4 | \3 << 2 | \4 -ENDM - -; arguments: address -sound_call: MACRO - db $FD - dw \1 -ENDM - -; arguments: count, address -sound_loop: MACRO - db $FE - db \1 - dw \2 -ENDM - -sound_ret: MACRO - db $FF -ENDM diff --git a/macros/code.asm b/macros/code.asm new file mode 100755 index 000000000..8507b1ad2 --- /dev/null +++ b/macros/code.asm @@ -0,0 +1,20 @@ +; Syntactic sugar macros + +lb: MACRO ; r, hi, lo + ld \1, ((\2) & $ff) << 8 + ((\3) & $ff) +ENDM + +ldPal: MACRO + ld \1, \2 << 6 | \3 << 4 | \4 << 2 | \5 +ENDM + +; Design patterns + +dict: MACRO +IF \1 == 0 + and a +ELSE + cp \1 +ENDC + jp z, \2 +ENDM diff --git a/macros/const.asm b/macros/const.asm new file mode 100644 index 000000000..57380e970 --- /dev/null +++ b/macros/const.asm @@ -0,0 +1,40 @@ +; Enumerate constants + +const_def: MACRO +IF _NARG >= 1 +const_value = \1 +ELSE +const_value = 0 +ENDC +IF _NARG >= 2 +const_inc = \2 +ELSE +const_inc = 1 +ENDC +ENDM + +const: MACRO +\1 EQU const_value +const_value = const_value + const_inc +ENDM + +shift_const: MACRO +\1 EQU (1 << const_value) +const_value = const_value + const_inc +ENDM + +const_skip: MACRO +if _NARG >= 1 +const_value = const_value + const_inc * (\1) +else +const_value = const_value + const_inc +endc +ENDM + +const_next: MACRO +if (const_value > 0 && \1 < const_value) || (const_value < 0 && \1 > const_value) +fail "const_next cannot go backwards from {const_value} to \1" +else +const_value = \1 +endc +ENDM diff --git a/macros/coords.asm b/macros/coords.asm new file mode 100644 index 000000000..6b16e7f79 --- /dev/null +++ b/macros/coords.asm @@ -0,0 +1,90 @@ +validate_coords: MACRO + IF _NARG >= 4 + IF \1 >= \3 + fail "x coord out of range" + ENDC + IF \2 >= \4 + fail "y coord out of range" + ENDC + ELSE + validate_coords \1, \2, SCREEN_WIDTH, SCREEN_HEIGHT + ENDC +ENDM + +hlcoord EQUS "coord hl," +bccoord EQUS "coord bc," +decoord EQUS "coord de," + +coord: MACRO +; register, x, y[, origin] + validate_coords \2, \3 + IF _NARG >= 4 + ld \1, (\3) * SCREEN_WIDTH + (\2) + \4 + ELSE + ld \1, (\3) * SCREEN_WIDTH + (\2) + wTileMap + ENDC +ENDM + +hlbgcoord EQUS "bgcoord hl," +bcbgcoord EQUS "bgcoord bc," +debgcoord EQUS "bgcoord de," + +bgcoord: MACRO +; register, x, y[, origin] + validate_coords \2, \3, BG_MAP_WIDTH, BG_MAP_HEIGHT + IF _NARG >= 4 + ld \1, (\3) * BG_MAP_WIDTH + (\2) + \4 + ELSE + ld \1, (\3) * BG_MAP_WIDTH + (\2) + vBGMap0 + ENDC +ENDM + +hlowcoord EQUS "owcoord hl," +bcowcoord EQUS "owcoord bc," +deowcoord EQUS "owcoord de," + +owcoord: MACRO +; register, x, y, map width + ld \1, wOverworldMap + ((\2) + 3) + (((\3) + 3) * ((\4) + (3 * 2))) +ENDM + +event_displacement: MACRO +; map width, x blocks, y blocks + dw (wOverworldMap + 7 + (\1) + ((\1) + 6) * ((\3) >> 1) + ((\2) >> 1)) + db \3, \2 +ENDM + +dwcoord: MACRO +; x, y + validate_coords \1, \2 + IF _NARG >= 3 + dw (\2) * SCREEN_WIDTH + (\1) + \3 + ELSE + dw (\2) * SCREEN_WIDTH + (\1) + wTileMap + ENDC +ENDM + +ldcoord_a: MACRO +; x, y[, origin] + validate_coords \1, \2 + IF _NARG >= 3 + ld [(\2) * SCREEN_WIDTH + (\1) + \3], a + ELSE + ld [(\2) * SCREEN_WIDTH + (\1) + wTileMap], a + ENDC +ENDM + +lda_coord: MACRO +; x, y[, origin] + validate_coords \1, \2 + IF _NARG >= 3 + ld a, [(\2) * SCREEN_WIDTH + (\1) + \3] + ELSE + ld a, [(\2) * SCREEN_WIDTH + (\1) + wTileMap] + ENDC +ENDM + +dbmapcoord: MACRO +; x, y + db \2, \1 +ENDM diff --git a/macros/data.asm b/macros/data.asm new file mode 100755 index 000000000..16742d53d --- /dev/null +++ b/macros/data.asm @@ -0,0 +1,80 @@ +; Value macros + +percent EQUS "* $ff / 100" + +bcd2: MACRO + dn ((\1) / 1000) % 10, ((\1) / 100) % 10 + dn ((\1) / 10) % 10, (\1) % 10 +ENDM + +bcd3: MACRO + dn ((\1) / 100000) % 10, ((\1) / 10000) % 10 + dn ((\1) / 1000) % 10, ((\1) / 100) % 10 + dn ((\1) / 10) % 10, (\1) % 10 +ENDM + +coins EQUS "bcd2" +money EQUS "bcd3" + +tmhm: MACRO +; used in data/pokemon/base_stats/*.asm +_tms1 = 0 ; TM01-TM24 (24) +_tms2 = 0 ; TM25-TM48 (24) +_tms3 = 0 ; TM49-TM50 + HM01-HM05 (7/24) +REPT _NARG + if DEF(\1_TMNUM) + if \1_TMNUM < 24 + 1 +_tms1 = _tms1 | (1 << ((\1_TMNUM) - 1)) + ELIF \1_TMNUM < 48 + 1 +_tms2 = _tms2 | (1 << ((\1_TMNUM) - 1 - 24)) + else +_tms3 = _tms3 | (1 << ((\1_TMNUM) - 1 - 48)) + ENDC + else + fail "\1 is not a TM or HM move" + ENDC + SHIFT +ENDR +REPT 3 ; TM01-TM24 (24/24) + db _tms1 & $ff +_tms1 = _tms1 >> 8 +ENDR +REPT 3 ; TM25-TM48 (24/24) + db _tms2 & $ff +_tms2 = _tms2 >> 8 +ENDR +REPT 1 ; TM49-TM50 + HM01-HM05 (7/8) + db _tms3 & $ff +_tms3 = _tms3 >> 8 +ENDR +ENDM + + +; Constant data (db, dw, dl) macros + +dn: MACRO ; nybbles + db (\1 << 4 | \2) +ENDM + +dbw: MACRO + db \1 + dw \2 +ENDM + +dba: MACRO + dbw BANK(\1), \1 +ENDM + +dwb: MACRO + dw \1 + db \2 +ENDM + +dab: MACRO + dwb \1, BANK(\1) +ENDM + +dbbw: MACRO + db \1, \2 + dw \3 +ENDM diff --git a/macros/data_macros.asm b/macros/data_macros.asm deleted file mode 100755 index ee5cb8f03..000000000 --- a/macros/data_macros.asm +++ /dev/null @@ -1,242 +0,0 @@ - -; Constant enumeration is useful for monsters, items, moves, etc. -const_def: MACRO -const_value = 0 -ENDM - -const: MACRO -\1 EQU const_value -const_value = const_value + 1 -ENDM - -; data format macros - -percent EQUS "* $ff / 100" - -bcd2: MACRO - dn ((\1) / 1000) % 10, ((\1) / 100) % 10 - dn ((\1) / 10) % 10, (\1) % 10 -ENDM - -bcd3: MACRO - dn ((\1) / 100000) % 10, ((\1) / 10000) % 10 - dn ((\1) / 1000) % 10, ((\1) / 100) % 10 - dn ((\1) / 10) % 10, (\1) % 10 -ENDM - -coins equs "bcd2" -money equs "bcd3" - -;\1 = Map Width -;\2 = Rows above (Y-blocks) -;\3 = X movement (X-blocks) -EVENT_DISP: MACRO - dw (wOverworldMap + 7 + (\1) + ((\1) + 6) * ((\2) >> 1) + ((\3) >> 1)) ; Ev.Disp - db \2,\3 ;Y,X -ENDM - -FLYWARP_DATA: MACRO - EVENT_DISP \1,\2,\3 - db ((\2) & $01) ;sub-block Y - db ((\3) & $01) ;sub-block X -ENDM - -; external map entry macro -EMAP: MACRO ; emap x-coordinate,y-coordinate,textpointer -; the appearance of towns and routes in the town map, indexed by map id - ; nybble: y-coordinate - ; nybble: x-coordinate - ; word : pointer to map name - dn \2, \1 - dw \3 -ENDM - -; internal map entry macro -IMAP: MACRO ; imap mapid_less_than,x-coordinate,y-coordinate,textpointer -; the appearance of buildings and dungeons in the town map - ; byte : maximum map id subject to this rule - ; nybble: y-coordinate - ; nybble: x-coordinate - ; word : pointer to map name - db \1 + 1 - dn \3, \2 - dw \4 -ENDM - -; tilesets' headers macro -tileset: MACRO - db BANK(\2) ; BANK(GFX) - dw \1, \2, \3 ; Block, GFX, Coll - db \4, \5, \6 ; counter tiles - db \7 ; grass tile - db \8 ; permission (indoor, cave, outdoor) -ENDM - -INDOOR EQU 0 -CAVE EQU 1 -OUTDOOR EQU 2 - -RGB: MACRO - dw (\3 << 10 | \2 << 5 | \1) -ENDM - -WALK EQU $FE -STAY EQU $FF - -DOWN EQU $D0 -UP EQU $D1 -LEFT EQU $D2 -RIGHT EQU $D3 -NONE EQU $FF - -;\1 sprite id -;\2 x position -;\3 y position -;\4 movement (WALK/STAY) -;\5 range or direction -;\6 text id -;\7 items only: item id -;\7 trainers only: trainer class/pokemon id -;\8 trainers only: trainer number/pokemon level -object: MACRO - db \1 - db \3 + 4 - db \2 + 4 - db \4 - db \5 - IF (_NARG > 7) - db TRAINER | \6 - db \7 - db \8 - ELSE - IF (_NARG > 6) - db ITEM | \6 - db \7 - ELSE - db \6 - ENDC - ENDC -ENDM - -;\1 x position -;\2 y position -;\3 destination warp id -;\4 destination map (-1 = wLastMap) -warp: MACRO - db \2, \1, \3, \4 -ENDM - -;\1 x position -;\2 y position -;\3 sign id -sign: MACRO - db \2, \1, \3 -ENDM - -;\1 x position -;\2 y position -;\3 map width -warp_to: MACRO - EVENT_DISP \3, \2, \1 -ENDM - -;\1 (byte) = current map id -;\2 (byte) = connected map id -;\3 (byte) = x movement of connection strip -;\4 (byte) = connection strip offset -;\5 (word) = connected map blocks pointer -NORTH_MAP_CONNECTION: MACRO - db \2 ; map id - dw \5 + (\2_WIDTH * (\2_HEIGHT - 3)) + \4; "Connection Strip" location - dw wOverworldMap + 3 + \3 ; current map position - IF (\1_WIDTH < \2_WIDTH) - db \1_WIDTH - \3 + 3 ; width of connection strip - ELSE - db \2_WIDTH - \4 ; width of connection strip - ENDC - db \2_WIDTH ; map width - db (\2_HEIGHT * 2) - 1 ; y alignment (y coordinate of player when entering map) - db (\3 - \4) * -2 ; x alignment (x coordinate of player when entering map) - dw wOverworldMap + 1 + (\2_HEIGHT * (\2_WIDTH + 6)) ; window (position of the upper left block after entering the map) -ENDM - -;\1 (byte) = current map id -;\2 (byte) = connected map id -;\3 (byte) = x movement of connection strip -;\4 (byte) = connection strip offset -;\5 (word) = connected map blocks pointer -;\6 (flag) = add 3 to width of connection strip (why?) -SOUTH_MAP_CONNECTION: MACRO - db \2 ; map id - dw \5 + \4 ; "Connection Strip" location - dw wOverworldMap + 3 + (\1_HEIGHT + 3) * (\1_WIDTH + 6) + \3 ; current map position - IF (\1_WIDTH < \2_WIDTH) - IF (_NARG > 5) - db \1_WIDTH - \3 + 3 ; width of connection strip - ELSE - db \1_WIDTH - \3 ; width of connection strip - ENDC - ELSE - db \2_WIDTH - \4 ; width of connection strip - ENDC - db \2_WIDTH ; map width - db 0 ; y alignment (y coordinate of player when entering map) - db (\3 - \4) * -2 ; x alignment (x coordinate of player when entering map) - dw wOverworldMap + 7 + \2_WIDTH ; window (position of the upper left block after entering the map) -ENDM - -;\1 (byte) = current map id -;\2 (byte) = connected map id -;\3 (byte) = y movement of connection strip -;\4 (byte) = connection strip offset -;\5 (word) = connected map blocks pointer -WEST_MAP_CONNECTION: MACRO - db \2 ; map id - dw \5 + (\2_WIDTH * \4) + \2_WIDTH - 3 ; "Connection Strip" location - dw wOverworldMap + (\1_WIDTH + 6) * (\3 + 3) ; current map position - IF (\1_HEIGHT < \2_HEIGHT) - db \1_HEIGHT - \3 + 3 ; height of connection strip - ELSE - db \2_HEIGHT - \4 ; height of connection strip - ENDC - db \2_WIDTH ; map width - db (\3 - \4) * -2 ; y alignment - db (\2_WIDTH * 2) - 1 ; x alignment - dw wOverworldMap + 6 + (2 * \2_WIDTH) ; window (position of the upper left block after entering the map) -ENDM - -;\1 (byte) = current map id -;\2 (byte) = connected map id -;\3 (byte) = y movement of connection strip -;\4 (byte) = connection strip offset -;\5 (word) = connected map blocks pointer -;\6 (flag) = add 3 to height of connection strip (why?) -EAST_MAP_CONNECTION: MACRO - db \2 ; map id - dw \5 + (\2_WIDTH * \4) ; "Connection Strip" location - dw wOverworldMap - 3 + (\1_WIDTH + 6) * (\3 + 4) ; current map position - IF (\1_HEIGHT < \2_HEIGHT) - IF (_NARG > 5) - db \1_HEIGHT - \3 + 3 ; height of connection strip - ELSE - db \1_HEIGHT - \3 ; height of connection strip - ENDC - ELSE - db \2_HEIGHT - \4 ; height of connection strip - ENDC - db \2_WIDTH ; map width - db (\3 - \4) * -2 ; y alignment - db 0 ; x alignment - dw wOverworldMap + 7 + \2_WIDTH ; window (position of the upper left block after entering the map) -ENDM - -tmlearn: MACRO -x = 0 - REPT _NARG -IF \1 != 0 -x = x | (1 << ((\1 - 1) % 8)) -ENDC - SHIFT - ENDR - db x -ENDM diff --git a/macros/event_macros.asm b/macros/event_macros.asm deleted file mode 100644 index a3ce9746f..000000000 --- a/macros/event_macros.asm +++ /dev/null @@ -1,502 +0,0 @@ -;\1 = event index -;\2 = return result in carry instead of zero flag -CheckEvent: MACRO -event_byte = ((\1) / 8) - ld a, [wEventFlags + event_byte] - - IF _NARG > 1 - IF ((\1) % 8) == 7 - add a - ELSE - REPT ((\1) % 8) + 1 - rrca - ENDR - ENDC - ELSE - bit (\1) % 8, a - ENDC - ENDM - -;\1 = event index -CheckEventReuseA: MACRO - IF event_byte != ((\1) / 8) -event_byte = ((\1) / 8) - ld a, [wEventFlags + event_byte] - ENDC - - bit (\1) % 8, a - ENDM - -;\1 = event index -;\2 = event index of the last event used before the branch -CheckEventAfterBranchReuseA: MACRO -event_byte = ((\2) / 8) - IF event_byte != ((\1) / 8) -event_byte = ((\1) / 8) - ld a, [wEventFlags + event_byte] - ENDC - - bit (\1) % 8, a - ENDM - -;\1 = reg -;\2 = event index -;\3 = event index this event is relative to (optional, this is needed when there is a fixed flag address) -EventFlagBit: MACRO - IF _NARG > 2 - ld \1, ((\3) % 8) + ((\2) - (\3)) - ELSE - ld \1, (\2) % 8 - ENDC - ENDM - -;\1 = reg -;\2 = event index -EventFlagAddress: MACRO -event_byte = ((\2) / 8) - ld \1, wEventFlags + event_byte - ENDM - -EventFlagAddressa: MACRO -event_byte = ((\1) / 8) - ld [wEventFlags + event_byte], a - ENDM - -aEventFlagAddress: MACRO -event_byte = ((\1) / 8) - ld a, [wEventFlags + event_byte] - ENDM - -;\1 = event index -CheckEventHL: MACRO -event_byte = ((\1) / 8) - ld hl, wEventFlags + event_byte - bit (\1) % 8, [hl] - ENDM - -;\1 = event index -CheckEventReuseHL: MACRO -IF event_byte != ((\1) / 8) -event_byte = ((\1) / 8) - ld hl, wEventFlags + event_byte - ENDC - - bit (\1) % 8, [hl] - ENDM - -; dangerous, only use when HL is guaranteed to be the desired value -;\1 = event index -CheckEventForceReuseHL: MACRO -event_byte = ((\1) / 8) - bit (\1) % 8, [hl] - ENDM - -;\1 = event index -;\2 = event index of the last event used before the branch -CheckEventAfterBranchReuseHL: MACRO -event_byte = ((\2) / 8) -IF event_byte != ((\1) / 8) -event_byte = ((\1) / 8) - ld hl, wEventFlags + event_byte - ENDC - - bit (\1) % 8, [hl] - ENDM - -;\1 = event index -CheckAndSetEvent: MACRO -event_byte = ((\1) / 8) - ld hl, wEventFlags + event_byte - bit (\1) % 8, [hl] - set (\1) % 8, [hl] - ENDM - -;\1 = event index -CheckAndResetEvent: MACRO -event_byte = ((\1) / 8) - ld hl, wEventFlags + event_byte - bit (\1) % 8, [hl] - res (\1) % 8, [hl] - ENDM - -;\1 = event index -CheckAndSetEventA: MACRO - ld a, [wEventFlags + ((\1) / 8)] - bit (\1) % 8, a - set (\1) % 8, a - ld [wEventFlags + ((\1) / 8)], a - ENDM - -;\1 = event index -CheckAndResetEventA: MACRO - ld a, [wEventFlags + ((\1) / 8)] - bit (\1) % 8, a - res (\1) % 8, a - ld [wEventFlags + ((\1) / 8)], a - ENDM - -CheckAndSetEventReuseHL: MACRO - IF event_byte != ((\1) / 8) -event_byte = ((\1) / 8) - ld hl, wEventFlags + event_byte - ENDC - - bit (\1) % 8, [hl] - set (\1) % 8, [hl] - ENDM - -CheckAndResetEventReuseHL: MACRO - IF event_byte != ((\1) / 8) -event_byte = ((\1) / 8) - ld hl, wEventFlags + event_byte - ENDC - - bit (\1) % 8, [hl] - res (\1) % 8, [hl] - ENDM - - -;\1 = event index -SetEvent: MACRO -event_byte = ((\1) / 8) - ld hl, wEventFlags + event_byte - set (\1) % 8, [hl] - ENDM - -;\1 = event index -SetEventReuseHL: MACRO - IF event_byte != ((\1) / 8) -event_byte = ((\1) / 8) - ld hl, wEventFlags + event_byte - ENDC - - set (\1) % 8, [hl] - ENDM - -;\1 = event index -;\2 = event index of the last event used before the branch -SetEventAfterBranchReuseHL: MACRO -event_byte = ((\2) / 8) -IF event_byte != ((\1) / 8) -event_byte = ((\1) / 8) - ld hl, wEventFlags + event_byte - ENDC - - set (\1) % 8, [hl] - ENDM - -; dangerous, only use when HL is guaranteed to be the desired value -;\1 = event index -SetEventForceReuseHL: MACRO -event_byte = ((\1) / 8) - set (\1) % 8, [hl] - ENDM - -;\1 = event index -;\2 = event index -;\3, \4, ... = additional (optional) event indices -SetEvents: MACRO - SetEvent \1 - rept (_NARG + -1) - SetEventReuseHL \2 - shift - endr - ENDM - -;\1 = event index -ResetEvent: MACRO -event_byte = ((\1) / 8) - ld hl, wEventFlags + event_byte - res (\1) % 8, [hl] - ENDM - -;\1 = event index -ResetEventReuseHL: MACRO - IF event_byte != ((\1) / 8) -event_byte = ((\1) / 8) - ld hl, wEventFlags + event_byte - ENDC - - res (\1) % 8, [hl] - ENDM - -;\1 = event index -;\2 = event index of the last event used before the branch -ResetEventAfterBranchReuseHL: MACRO -event_byte = ((\2) / 8) -IF event_byte != ((\1) / 8) -event_byte = ((\1) / 8) - ld hl, wEventFlags + event_byte - ENDC - - res (\1) % 8, [hl] - ENDM - -; dangerous, only use when HL is guaranteed to be the desired value -;\1 = event index -ResetEventForceReuseHL: MACRO -event_byte = ((\1) / 8) - res (\1) % 8, [hl] - ENDM - -;\1 = event index -;\2 = event index -;\3 = event index (optional) -ResetEvents: MACRO - ResetEvent \1 - rept (_NARG + -1) - ResetEventReuseHL \2 - shift - endr - ENDM - -;\1 = event index -;\2 = number of bytes away from the base address (optional, for matching the ROM) -dbEventFlagBit: MACRO - IF _NARG > 1 - db ((\1) % 8) + ((\2) * 8) - ELSE - db ((\1) % 8) - ENDC - ENDM - -;\1 = event index -;\2 = number of bytes away from the base address (optional, for matching the ROM) -dwEventFlagAddress: MACRO - IF _NARG > 1 - dw wEventFlags + ((\1) / 8) - (\2) - ELSE - dw wEventFlags + ((\1) / 8) - ENDC - ENDM - -;\1 = start -;\2 = end -SetEventRange: MACRO -event_start_byte = ((\1) / 8) -event_end_byte = ((\2) / 8) - - IF event_end_byte < event_start_byte - FAIL "Incorrect argument order in SetEventRange." - ENDC - - IF event_start_byte == event_end_byte - ld a, [wEventFlags + event_start_byte] - or (1 << (((\2) % 8) + 1)) - (1 << ((\1) % 8)) - ld [wEventFlags + event_start_byte], a - ELSE -event_fill_start = event_start_byte + 1 -event_fill_count = event_end_byte - event_start_byte - 1 - - IF ((\1) % 8) == 0 -event_fill_start = event_fill_start + -1 -event_fill_count = event_fill_count + 1 - ELSE - ld a, [wEventFlags + event_start_byte] - or $ff - ((1 << ((\1) % 8)) - 1) - ld [wEventFlags + event_start_byte], a - ENDC - - IF ((\2) % 8) == 7 -event_fill_count = event_fill_count + 1 - ENDC - - IF event_fill_count == 1 - ld hl, wEventFlags + event_fill_start - ld [hl], $ff - ENDC - - IF event_fill_count > 1 - ld a, $ff - ld hl, wEventFlags + event_fill_start - - REPT event_fill_count + -1 - ld [hli], a - ENDR - - ld [hl], a - ENDC - - IF ((\2) % 8) == 0 - ld hl, wEventFlags + event_end_byte - set 0, [hl] - ELSE - IF ((\2) % 8) != 7 - ld a, [wEventFlags + event_end_byte] - or (1 << (((\2) % 8) + 1)) - 1 - ld [wEventFlags + event_end_byte], a - ENDC - ENDC - ENDC - ENDM - -;\1 = start -;\2 = end -;\3 = assume a is 0 if present -ResetEventRange: MACRO -event_start_byte = ((\1) / 8) -event_end_byte = ((\2) / 8) - - IF event_end_byte < event_start_byte - FAIL "Incorrect argument order in ResetEventRange." - ENDC - - IF event_start_byte == event_end_byte - ld a, [wEventFlags + event_start_byte] - and ~((1 << (((\2) % 8) + 1)) - (1 << ((\1) % 8))) & $ff - ld [wEventFlags + event_start_byte], a - ELSE -event_fill_start = event_start_byte + 1 -event_fill_count = event_end_byte - event_start_byte - 1 - - IF ((\1) % 8) == 0 -event_fill_start = event_fill_start + -1 -event_fill_count = event_fill_count + 1 - ELSE - ld a, [wEventFlags + event_start_byte] - and ~($ff - ((1 << ((\1) % 8)) - 1)) & $ff - ld [wEventFlags + event_start_byte], a - ENDC - - IF ((\2) % 8) == 7 -event_fill_count = event_fill_count + 1 - ENDC - - IF event_fill_count == 1 - ld hl, wEventFlags + event_fill_start - ld [hl], 0 - ENDC - - IF event_fill_count > 1 - ld hl, wEventFlags + event_fill_start - - ; force xor a if we just to wrote to it above - IF (_NARG < 3) || (((\1) % 8) != 0) - xor a - ENDC - - REPT event_fill_count + -1 - ld [hli], a - ENDR - - ld [hl], a - ENDC - - IF ((\2) % 8) == 0 - ld hl, wEventFlags + event_end_byte - res 0, [hl] - ELSE - IF ((\2) % 8) != 7 - ld a, [wEventFlags + event_end_byte] - and ~((1 << (((\2) % 8) + 1)) - 1) & $ff - ld [wEventFlags + event_end_byte], a - ENDC - ENDC - ENDC - ENDM - -; returns whether both events are set in Z flag -; This is counter-intuitive because the other event checks set the Z flag when -; the event is not set, but this sets the Z flag when the event is set. -;\1 = event index 1 -;\2 = event index 2 -;\3 = try to reuse a (optional) -CheckBothEventsSet: MACRO - IF ((\1) / 8) == ((\2) / 8) - IF (_NARG < 3) || (((\1) / 8) != event_byte) -event_byte = ((\1) / 8) - ld a, [wEventFlags + ((\1) / 8)] - ENDC - and (1 << ((\1) % 8)) | (1 << ((\2) % 8)) - cp (1 << ((\1) % 8)) | (1 << ((\2) % 8)) - ELSE - ; This case doesn't happen in the original ROM. - IF ((\1) % 8) == ((\2) % 8) - push hl - ld a, [wEventFlags + ((\1) / 8)] - ld hl, wEventFlags + ((\2) / 8) - and [hl] - cpl - bit ((\1) % 8), a - pop hl - ELSE - push bc - ld a, [wEventFlags + ((\1) / 8)] - and (1 << ((\1) % 8)) - ld b, a - ld a, [wEventFlags + ((\2) / 8)] - and (1 << ((\2) % 8)) - or b - cp (1 << ((\1) % 8)) | (1 << ((\2) % 8)) - pop bc - ENDC - ENDC - ENDM - -; returns the complement of whether either event is set in Z flag -;\1 = event index 1 -;\2 = event index 2 -CheckEitherEventSet: MACRO - IF ((\1) / 8) == ((\2) / 8) - ld a, [wEventFlags + ((\1) / 8)] - and (1 << ((\1) % 8)) | (1 << ((\2) % 8)) - ELSE - ; This case doesn't happen in the original ROM. - IF ((\1) % 8) == ((\2) % 8) - push hl - ld a, [wEventFlags + ((\1) / 8)] - ld hl, wEventFlags + ((\2) / 8) - or [hl] - bit ((\1) % 8), a - pop hl - ELSE - push bc - ld a, [wEventFlags + ((\1) / 8)] - and (1 << ((\1) % 8)) - ld b, a - ld a, [wEventFlags + ((\2) / 8)] - and (1 << ((\2) % 8)) - or b - pop bc - ENDC - ENDC - ENDM - -CheckEitherEventSetReuseA: MACRO - IF event_byte != ((\1) / 8) -event_byte = ((\1) / 8) - ld a, [wEventFlags + event_byte] - ENDC - IF ((\1) / 8) == ((\2) / 8) - ld a, [wEventFlags + ((\1) / 8)] - and (1 << ((\1) % 8)) | (1 << ((\2) % 8)) - ELSE - ; This case doesn't happen in the original ROM. - IF ((\1) % 8) == ((\2) % 8) - push hl - ld a, [wEventFlags + ((\1) / 8)] - ld hl, wEventFlags + ((\2) / 8) - or [hl] - bit ((\1) % 8), a - pop hl - ELSE - push bc - ld a, [wEventFlags + ((\1) / 8)] - and (1 << ((\1) % 8)) - ld b, a - ld a, [wEventFlags + ((\2) / 8)] - and (1 << ((\2) % 8)) - or b - pop bc - ENDC - ENDC - ENDM - -; for handling fixed event bits when events are inserted/removed -;\1 = event index -;\2 = fixed flag bit -AdjustEventBit: MACRO - IF ((\1) % 8) != (\2) - add ((\1) % 8) - (\2) - ENDC - ENDM diff --git a/macros/farcall.asm b/macros/farcall.asm new file mode 100644 index 000000000..b4af8b2d7 --- /dev/null +++ b/macros/farcall.asm @@ -0,0 +1,33 @@ +farcall: MACRO + ld b, BANK(\1) + ld hl, \1 + call Bankswitch +ENDM + +callfar: MACRO + ld hl, \1 + ld b, BANK(\1) + call Bankswitch +ENDM + +farjp: MACRO + ld b, BANK(\1) + ld hl, \1 + jp Bankswitch +ENDM + +jpfar: MACRO + ld hl, \1 + ld b, BANK(\1) + jp Bankswitch +ENDM + +homecall: MACRO + ldh a, [hLoadedROMBank] + push af + ld a, BANK(\1) + call BankswitchCommon + call \1 + pop af + call BankswitchCommon +ENDM diff --git a/macros/gfx.asm b/macros/gfx.asm new file mode 100644 index 000000000..98eabec44 --- /dev/null +++ b/macros/gfx.asm @@ -0,0 +1,22 @@ +RGB: MACRO +REPT _NARG / 3 + dw palred (\1) + palgreen (\2) + palblue (\3) + SHIFT 3 +ENDR +ENDM + +palred EQUS "(1 << 0) *" +palgreen EQUS "(1 << 5) *" +palblue EQUS "(1 << 10) *" + +palettes EQUS "* PALETTE_SIZE" +palette EQUS "+ PALETTE_SIZE *" +color EQUS "+ PAL_COLOR_SIZE *" + +tiles EQUS "* LEN_2BPP_TILE" +tile EQUS "+ LEN_2BPP_TILE *" + +dbsprite: MACRO +; x tile, y tile, x pixel, y pixel, vtile offset, attributes + db (\2 * TILE_WIDTH) % $100 + \4, (\1 * TILE_WIDTH) % $100 + \3, \5, \6 +ENDM diff --git a/macros/predef.asm b/macros/predef.asm new file mode 100644 index 000000000..f4e7f6097 --- /dev/null +++ b/macros/predef.asm @@ -0,0 +1,36 @@ +predef_id: MACRO + ld a, (\1Predef - PredefPointers) / 3 +ENDM + +predef: MACRO + predef_id \1 + call Predef +ENDM + +predef_jump: MACRO + predef_id \1 + jp Predef +ENDM + + +tx_pre_id: MACRO + ld a, (\1_id - TextPredefs) / 2 + 1 +ENDM + +tx_pre: MACRO + tx_pre_id \1 + call PrintPredefTextID +ENDM + +tx_pre_jump: MACRO + tx_pre_id \1 + jp PrintPredefTextID +ENDM + +db_tx_pre: MACRO + db (\1_id - TextPredefs) / 2 + 1 +ENDM + +predef_const: MACRO + const \1PredefID +ENDM diff --git a/macros/scripts/audio.asm b/macros/scripts/audio.asm new file mode 100755 index 000000000..b12a2adca --- /dev/null +++ b/macros/scripts/audio.asm @@ -0,0 +1,233 @@ +audio_header: MACRO + db (_NARG - 2) << 6 | \2 + dw \1_\2 + IF _NARG > 2 + db \3 + dw \1_\3 + ENDC + IF _NARG > 3 + db \4 + dw \1_\4 + ENDC + IF _NARG > 4 + db \5 + dw \1_\5 + ENDC +ENDM + + const_def $10 + +; arguments: length [0, 7], pitch change [-7, 7] +; length: length of time between pitch shifts +; sometimes used with a value >7 in which case the MSB is ignored +; pitch change: positive value means increase in pitch, negative value means decrease in pitch +; small magnitude means quick change, large magnitude means slow change +; in signed magnitude representation, so a value of 8 is the same as (negative) 0 + const pitch_sweep_cmd ; $10 +pitch_sweep: MACRO + db pitch_sweep_cmd + IF \2 < 0 + db (\1 << 4) | (%1000 | (\2 * -1)) + ELSE + db (\1 << 4) | \2 + ENDC +ENDM + + const_next $20 + + const sfx_note_cmd ; $20 + +; arguments: length [0, 15], volume [0, 15], fade [-7, 7], frequency +; fade: positive value means decrease in volume, negative value means increase in volume +; small magnitude means quick change, large magnitude means slow change +; in signed magnitude representation, so a value of 8 is the same as (negative) 0 +square_note_cmd EQU sfx_note_cmd ; $20 +square_note: MACRO + db square_note_cmd | \1 + IF \3 < 0 + db (\2 << 4) | (%1000 | (\3 * -1)) + ELSE + db (\2 << 4) | \3 + ENDC + dw \4 +ENDM + +; arguments: length [0, 15], volume [0, 15], fade [-7, 7], frequency +; fade: positive value means decrease in volume, negative value means increase in volume +; small magnitude means quick change, large magnitude means slow change +; in signed magnitude representation, so a value of 8 is the same as (negative) 0 +noise_note_cmd EQU sfx_note_cmd ; $20 +noise_note: MACRO + db noise_note_cmd | \1 + IF \3 < 0 + db (\2 << 4) | (%1000 | (\3 * -1)) + ELSE + db (\2 << 4) | \3 + ENDC + db \4 +ENDM + +; arguments: pitch, length [1, 16] +note: MACRO + db (\1 << 4) | (\2 - 1) +ENDM + + const_next $b0 + +; arguments: instrument [1, 19], length [1, 16] + const drum_note_cmd ; $b0 +drum_note: MACRO + db drum_note_cmd | (\2 - 1) + db \1 +ENDM + +; arguments: instrument, length [1, 16] +; like drum_note but one 1 byte instead of 2 +; can only be used with instruments 1-10, excluding 2 +; unused +drum_note_short: MACRO + db (\1 << 4) | (\2 - 1) +ENDM + + const_next $c0 + +; arguments: length [1, 16] + const rest_cmd ; $c0 +rest: MACRO + db rest_cmd | (\1 - 1) +ENDM + + const_next $d0 + +; arguments: speed [0, 15], volume [0, 15], fade [-7, 7] +; fade: positive value means decrease in volume, negative value means increase in volume +; small magnitude means quick change, large magnitude means slow change +; in signed magnitude representation, so a value of 8 is the same as (negative) 0 + const note_type_cmd ; $d0 +note_type: MACRO + db note_type_cmd | \1 + IF \3 < 0 + db (\2 << 4) | (%1000 | (\3 * -1)) + ELSE + db (\2 << 4) | \3 + ENDC +ENDM + +; arguments: speed [0, 15] +drum_speed_cmd EQU note_type_cmd ; $d0 +drum_speed: MACRO + db drum_speed_cmd | \1 +ENDM + + const_next $e0 + +; arguments: octave [1, 8] + const octave_cmd ; $e0 +octave: MACRO + db octave_cmd | (8 - \1) +ENDM + + const_next $e8 + +; when enabled, effective frequency used is incremented by 1 + const toggle_perfect_pitch_cmd ; $e8 +toggle_perfect_pitch: MACRO + db toggle_perfect_pitch_cmd +ENDM + + const_skip ; $e9 + +; arguments: delay [0, 255], depth [0, 15], rate [0, 15] +; delay: time delay until vibrato effect begins +; depth: amplitude of vibrato wave +; rate: frequency of vibrato wave + const vibrato_cmd ; $ea +vibrato: MACRO + db vibrato_cmd + db \1 + db (\2 << 4) | \3 +ENDM + +; arguments: length [1, 256], octave [1, 8], pitch + const pitch_slide_cmd ; $eb +pitch_slide: MACRO + db pitch_slide_cmd + db \1 - 1 + db ((8 - \2) << 4) | \3 +ENDM + +; arguments: duty cycle [0, 3] (12.5%, 25%, 50%, 75%) + const duty_cycle_cmd ; $ec +duty_cycle: MACRO + db duty_cycle_cmd + db \1 +ENDM + +; arguments: tempo [0, $ffff] +; used to calculate note delay counters +; so a smaller value means music plays faster +; ideally should be set to $100 or less to guarantee no overflow +; if larger than $100, large note speed or note length values might cause overflow +; stored in big endian + const tempo_cmd ; $ed +tempo: MACRO + db tempo_cmd + db HIGH(\1), LOW(\1) +ENDM + +; arguments: left output enable mask, right output enable mask + const stereo_panning_cmd ; $ee +stereo_panning: MACRO + db stereo_panning_cmd + db (\1 << 4) | \2 +ENDM + + const unknownmusic0xef_cmd ; $ef +unknownmusic0xef: MACRO + db unknownmusic0xef_cmd + db \1 +ENDM + +; arguments: left master volume [0, 7], right master volume [0, 7] + const volume_cmd ; $f0 +volume: MACRO + db volume_cmd + db (\1 << 4) | \2 +ENDM + + const_next $f8 + +; when enabled, the sfx data is interpreted as music data + const execute_music_cmd ; $f8 +execute_music: MACRO + db execute_music_cmd +ENDM + + const_next $fc + +; arguments: duty cycle 1, duty cycle 2, duty cycle 3, duty cycle 4 + const duty_cycle_pattern_cmd ; $fc +duty_cycle_pattern: MACRO + db duty_cycle_pattern_cmd + db \1 << 6 | \2 << 4 | \3 << 2 | \4 +ENDM + +; arguments: address + const sound_call_cmd ; $fd +sound_call: MACRO + db sound_call_cmd + dw \1 +ENDM + +; arguments: count, address + const sound_loop_cmd ; $fe +sound_loop: MACRO + db sound_loop_cmd + db \1 + dw \2 +ENDM + + const sound_ret_cmd ; $ff +sound_ret: MACRO + db sound_ret_cmd +ENDM diff --git a/macros/scripts/events.asm b/macros/scripts/events.asm new file mode 100644 index 000000000..266ffdd11 --- /dev/null +++ b/macros/scripts/events.asm @@ -0,0 +1,532 @@ +;\1 = event index +;\2 = return result in carry instead of zero flag +CheckEvent: MACRO +event_byte = ((\1) / 8) + ld a, [wEventFlags + event_byte] + + IF _NARG > 1 + IF ((\1) % 8) == 7 + add a + ELSE + REPT ((\1) % 8) + 1 + rrca + ENDR + ENDC + ELSE + bit (\1) % 8, a + ENDC +ENDM + + +;\1 = event index +CheckEventReuseA: MACRO + IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld a, [wEventFlags + event_byte] + ENDC + + bit (\1) % 8, a +ENDM + + +;\1 = event index +;\2 = event index of the last event used before the branch +CheckEventAfterBranchReuseA: MACRO +event_byte = ((\2) / 8) + IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld a, [wEventFlags + event_byte] + ENDC + + bit (\1) % 8, a +ENDM + + +;\1 = reg +;\2 = event index +;\3 = event index this event is relative to (optional, this is needed when there is a fixed flag address) +EventFlagBit: MACRO + IF _NARG > 2 + ld \1, ((\3) % 8) + ((\2) - (\3)) + ELSE + ld \1, (\2) % 8 + ENDC +ENDM + + +;\1 = reg +;\2 = event index +EventFlagAddress: MACRO +event_byte = ((\2) / 8) + ld \1, wEventFlags + event_byte +ENDM + + +EventFlagAddressa: MACRO +event_byte = ((\1) / 8) + ld [wEventFlags + event_byte], a + ENDM + +aEventFlagAddress: MACRO +event_byte = ((\1) / 8) + ld a, [wEventFlags + event_byte] + ENDM + +;\1 = event index +CheckEventHL: MACRO +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + bit (\1) % 8, [hl] +ENDM + + +;\1 = event index +CheckEventReuseHL: MACRO +IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + ENDC + + bit (\1) % 8, [hl] +ENDM + + +; dangerous, only use when HL is guaranteed to be the desired value +;\1 = event index +CheckEventForceReuseHL: MACRO +event_byte = ((\1) / 8) + bit (\1) % 8, [hl] +ENDM + + +;\1 = event index +;\2 = event index of the last event used before the branch +CheckEventAfterBranchReuseHL: MACRO +event_byte = ((\2) / 8) +IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + ENDC + + bit (\1) % 8, [hl] +ENDM + + +;\1 = event index +CheckAndSetEvent: MACRO +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + bit (\1) % 8, [hl] + set (\1) % 8, [hl] +ENDM + + +;\1 = event index +CheckAndResetEvent: MACRO +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + bit (\1) % 8, [hl] + res (\1) % 8, [hl] +ENDM + + +;\1 = event index +CheckAndSetEventA: MACRO + ld a, [wEventFlags + ((\1) / 8)] + bit (\1) % 8, a + set (\1) % 8, a + ld [wEventFlags + ((\1) / 8)], a +ENDM + + +;\1 = event index +CheckAndResetEventA: MACRO + ld a, [wEventFlags + ((\1) / 8)] + bit (\1) % 8, a + res (\1) % 8, a + ld [wEventFlags + ((\1) / 8)], a +ENDM + + +CheckAndSetEventReuseHL: MACRO + IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + ENDC + + bit (\1) % 8, [hl] + set (\1) % 8, [hl] + ENDM + +CheckAndResetEventReuseHL: MACRO + IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + ENDC + + bit (\1) % 8, [hl] + res (\1) % 8, [hl] + ENDM + + +;\1 = event index +SetEvent: MACRO +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + set (\1) % 8, [hl] +ENDM + + +;\1 = event index +SetEventReuseHL: MACRO + IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + ENDC + + set (\1) % 8, [hl] +ENDM + + +;\1 = event index +;\2 = event index of the last event used before the branch +SetEventAfterBranchReuseHL: MACRO +event_byte = ((\2) / 8) +IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + ENDC + + set (\1) % 8, [hl] +ENDM + + +; dangerous, only use when HL is guaranteed to be the desired value +;\1 = event index +SetEventForceReuseHL: MACRO +event_byte = ((\1) / 8) + set (\1) % 8, [hl] +ENDM + + +;\1 = event index +;\2 = event index +;\3, \4, ... = additional (optional) event indices +SetEvents: MACRO + SetEvent \1 + REPT _NARG - 1 + SetEventReuseHL \2 + SHIFT + ENDR +ENDM + + +;\1 = event index +ResetEvent: MACRO +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + res (\1) % 8, [hl] +ENDM + + +;\1 = event index +ResetEventReuseHL: MACRO + IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + ENDC + + res (\1) % 8, [hl] +ENDM + + +;\1 = event index +;\2 = event index of the last event used before the branch +ResetEventAfterBranchReuseHL: MACRO +event_byte = ((\2) / 8) +IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + ENDC + + res (\1) % 8, [hl] +ENDM + + +; dangerous, only use when HL is guaranteed to be the desired value +;\1 = event index +ResetEventForceReuseHL: MACRO +event_byte = ((\1) / 8) + res (\1) % 8, [hl] +ENDM + + +;\1 = event index +;\2 = event index +;\3 = event index (optional) +ResetEvents: MACRO + ResetEvent \1 + REPT _NARG - 1 + ResetEventReuseHL \2 + SHIFT + ENDR +ENDM + + +;\1 = event index +;\2 = number of bytes away from the base address (optional, for matching the ROM) +dbEventFlagBit: MACRO + IF _NARG > 1 + db ((\1) % 8) + ((\2) * 8) + ELSE + db ((\1) % 8) + ENDC +ENDM + + +;\1 = event index +;\2 = number of bytes away from the base address (optional, for matching the ROM) +dwEventFlagAddress: MACRO + IF _NARG > 1 + dw wEventFlags + ((\1) / 8) - (\2) + ELSE + dw wEventFlags + ((\1) / 8) + ENDC +ENDM + + +;\1 = start +;\2 = end +SetEventRange: MACRO +event_start_byte = ((\1) / 8) +event_end_byte = ((\2) / 8) + + IF event_end_byte < event_start_byte + FAIL "Incorrect argument order in SetEventRange." + ENDC + + IF event_start_byte == event_end_byte + ld a, [wEventFlags + event_start_byte] + or (1 << (((\2) % 8) + 1)) - (1 << ((\1) % 8)) + ld [wEventFlags + event_start_byte], a + ELSE +event_fill_start = event_start_byte + 1 +event_fill_count = event_end_byte - event_start_byte - 1 + + IF ((\1) % 8) == 0 +event_fill_start = event_fill_start - 1 +event_fill_count = event_fill_count + 1 + ELSE + ld a, [wEventFlags + event_start_byte] + or $ff - ((1 << ((\1) % 8)) - 1) + ld [wEventFlags + event_start_byte], a + ENDC + + IF ((\2) % 8) == 7 +event_fill_count = event_fill_count + 1 + ENDC + + IF event_fill_count == 1 + ld hl, wEventFlags + event_fill_start + ld [hl], $ff + ENDC + + IF event_fill_count > 1 + ld a, $ff + ld hl, wEventFlags + event_fill_start + + REPT event_fill_count - 1 + ld [hli], a + ENDR + + ld [hl], a + ENDC + + IF ((\2) % 8) == 0 + ld hl, wEventFlags + event_end_byte + set 0, [hl] + ELSE + IF ((\2) % 8) != 7 + ld a, [wEventFlags + event_end_byte] + or (1 << (((\2) % 8) + 1)) - 1 + ld [wEventFlags + event_end_byte], a + ENDC + ENDC + ENDC +ENDM + + +;\1 = start +;\2 = end +;\3 = assume a is 0 if present +ResetEventRange: MACRO +event_start_byte = ((\1) / 8) +event_end_byte = ((\2) / 8) + + IF event_end_byte < event_start_byte + FAIL "Incorrect argument order in ResetEventRange." + ENDC + + IF event_start_byte == event_end_byte + ld a, [wEventFlags + event_start_byte] + and ~((1 << (((\2) % 8) + 1)) - (1 << ((\1) % 8))) & $ff + ld [wEventFlags + event_start_byte], a + ELSE +event_fill_start = event_start_byte + 1 +event_fill_count = event_end_byte - event_start_byte - 1 + + IF ((\1) % 8) == 0 +event_fill_start = event_fill_start - 1 +event_fill_count = event_fill_count + 1 + ELSE + ld a, [wEventFlags + event_start_byte] + and ~($ff - ((1 << ((\1) % 8)) - 1)) & $ff + ld [wEventFlags + event_start_byte], a + ENDC + + IF ((\2) % 8) == 7 +event_fill_count = event_fill_count + 1 + ENDC + + IF event_fill_count == 1 + ld hl, wEventFlags + event_fill_start + ld [hl], 0 + ENDC + + IF event_fill_count > 1 + ld hl, wEventFlags + event_fill_start + + ; force xor a if we just to wrote to it above + IF (_NARG < 3) || (((\1) % 8) != 0) + xor a + ENDC + + REPT event_fill_count - 1 + ld [hli], a + ENDR + + ld [hl], a + ENDC + + IF ((\2) % 8) == 0 + ld hl, wEventFlags + event_end_byte + res 0, [hl] + ELSE + IF ((\2) % 8) != 7 + ld a, [wEventFlags + event_end_byte] + and ~((1 << (((\2) % 8) + 1)) - 1) & $ff + ld [wEventFlags + event_end_byte], a + ENDC + ENDC + ENDC +ENDM + + +; returns whether both events are set in Z flag +; This is counter-intuitive because the other event checks set the Z flag when +; the event is not set, but this sets the Z flag when the event is set. +;\1 = event index 1 +;\2 = event index 2 +;\3 = try to reuse a (optional) +CheckBothEventsSet: MACRO + IF ((\1) / 8) == ((\2) / 8) + IF (_NARG < 3) || (((\1) / 8) != event_byte) +event_byte = ((\1) / 8) + ld a, [wEventFlags + ((\1) / 8)] + ENDC + and (1 << ((\1) % 8)) | (1 << ((\2) % 8)) + cp (1 << ((\1) % 8)) | (1 << ((\2) % 8)) + ELSE + ; This case doesn't happen in the original ROM. + IF ((\1) % 8) == ((\2) % 8) + push hl + ld a, [wEventFlags + ((\1) / 8)] + ld hl, wEventFlags + ((\2) / 8) + and [hl] + cpl + bit ((\1) % 8), a + pop hl + ELSE + push bc + ld a, [wEventFlags + ((\1) / 8)] + and (1 << ((\1) % 8)) + ld b, a + ld a, [wEventFlags + ((\2) / 8)] + and (1 << ((\2) % 8)) + or b + cp (1 << ((\1) % 8)) | (1 << ((\2) % 8)) + pop bc + ENDC + ENDC +ENDM + + +; returns the complement of whether either event is set in Z flag +;\1 = event index 1 +;\2 = event index 2 +CheckEitherEventSet: MACRO + IF ((\1) / 8) == ((\2) / 8) + ld a, [wEventFlags + ((\1) / 8)] + and (1 << ((\1) % 8)) | (1 << ((\2) % 8)) + ELSE + ; This case doesn't happen in the original ROM. + IF ((\1) % 8) == ((\2) % 8) + push hl + ld a, [wEventFlags + ((\1) / 8)] + ld hl, wEventFlags + ((\2) / 8) + or [hl] + bit ((\1) % 8), a + pop hl + ELSE + push bc + ld a, [wEventFlags + ((\1) / 8)] + and (1 << ((\1) % 8)) + ld b, a + ld a, [wEventFlags + ((\2) / 8)] + and (1 << ((\2) % 8)) + or b + pop bc + ENDC + ENDC +ENDM + + +CheckEitherEventSetReuseA: MACRO + IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld a, [wEventFlags + event_byte] + ENDC + IF ((\1) / 8) == ((\2) / 8) + ld a, [wEventFlags + ((\1) / 8)] + and (1 << ((\1) % 8)) | (1 << ((\2) % 8)) + ELSE + ; This case doesn't happen in the original ROM. + IF ((\1) % 8) == ((\2) % 8) + push hl + ld a, [wEventFlags + ((\1) / 8)] + ld hl, wEventFlags + ((\2) / 8) + or [hl] + bit ((\1) % 8), a + pop hl + ELSE + push bc + ld a, [wEventFlags + ((\1) / 8)] + and (1 << ((\1) % 8)) + ld b, a + ld a, [wEventFlags + ((\2) / 8)] + and (1 << ((\2) % 8)) + or b + pop bc + ENDC + ENDC + ENDM + +; for handling fixed event bits when events are inserted/removed +;\1 = event index +;\2 = fixed flag bit +AdjustEventBit: MACRO + IF ((\1) % 8) != (\2) + add ((\1) % 8) - (\2) + ENDC +ENDM + diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm new file mode 100644 index 000000000..2032629b8 --- /dev/null +++ b/macros/scripts/maps.asm @@ -0,0 +1,225 @@ +def_objects: MACRO + IF DEF(_NUM_OBJECTS) + PURGE _NUM_OBJECTS + ENDC +_NUM_OBJECTS EQUS "_NUM_OBJECTS_\@" + db _NUM_OBJECTS +_NUM_OBJECTS = 0 +ENDM + +;\1 sprite id +;\2 x position +;\3 y position +;\4 movement (WALK/STAY) +;\5 range or direction +;\6 text id +;\7 items only: item id +;\7 trainers only: trainer class/pokemon id +;\8 trainers only: trainer number/pokemon level +object: MACRO + db \1 + db \3 + 4 + db \2 + 4 + db \4 + db \5 + IF _NARG > 7 + db TRAINER | \6 + db \7 + db \8 + ELIF _NARG > 6 + db ITEM | \6 + db \7 + ELSE + db \6 + ENDC +_NUM_OBJECTS = _NUM_OBJECTS + 1 +ENDM + +def_warps: MACRO + IF DEF(_NUM_WARPS) + PURGE _NUM_WARPS + ENDC +_NUM_WARPS EQUS "_NUM_WARPS_\@" + db _NUM_WARPS +_NUM_WARPS = 0 +ENDM + +;\1 x position +;\2 y position +;\3 destination warp id +;\4 destination map (-1 = wLastMap) +warp: MACRO + db \2, \1, \3, \4 +_NUM_WARPS = _NUM_WARPS + 1 +; the Nth warp defines a corresponding Nth warp_to, stored in _WARP_TO_NUM_ +_WARP_TO_NAME EQUS "_WARP_TO_NUM_{d:{_NUM_WARPS}}" +_WARP_TO_NAME EQUS "warp_to \1, \2, _WARP_TO_WIDTH" + PURGE _WARP_TO_NAME +ENDM + +def_signs: MACRO + IF DEF(_NUM_SIGNS) + PURGE _NUM_SIGNS + ENDC +_NUM_SIGNS EQUS "_NUM_SIGNS_\@" + db _NUM_SIGNS +_NUM_SIGNS = 0 +ENDM + +;\1 x position +;\2 y position +;\3 sign id +sign: MACRO + db \2, \1, \3 +_NUM_SIGNS = _NUM_SIGNS + 1 +ENDM + +;\1 source map +def_warps_to: MACRO +; output and purge each _WARP_TO_NUM_ warp_to, from N=1 to _NUM_WARPS +_WARP_TO_WIDTH = \1_WIDTH +_WARP_TO_N = 1 + REPT _NUM_WARPS +_WARP_TO_NAME EQUS "_WARP_TO_NUM_{d:_WARP_TO_N}" + _WARP_TO_NAME +_WARP_TO_N = _WARP_TO_N + 1 +_PURGE_WARP_TO_NUM EQUS "PURGE {_WARP_TO_NAME}" + _PURGE_WARP_TO_NUM + PURGE _PURGE_WARP_TO_NUM + PURGE _WARP_TO_NAME + ENDR +ENDM + +;\1 x position +;\2 y position +;\3 map width +warp_to: MACRO + event_displacement \3, \1, \2 +ENDM + + +;\1 event flag +;\2 view range +;\3 TextBeforeBattle +;\4 TextAfterBattle +;\5 TextEndBattle +trainer: MACRO + IF _NARG > 5 + dbEventFlagBit \1, \2 + db (\3 << 4) + dwEventFlagAddress \1, \2 + SHIFT + ELSE + dbEventFlagBit \1 + db (\2 << 4) + dwEventFlagAddress \1 + ENDC + dw \3, \5, \4, \4 +ENDM + +;\1 x position +;\2 y position +;\3 movement data +map_coord_movement: MACRO + dbmapcoord \1, \2 + dw \3 +ENDM + + +;\1 map name +;\2 map id +;\3 tileset +;\4 connections: combo of NORTH, SOUTH, WEST, and/or EAST, or 0 for none +map_header: MACRO +CURRENT_MAP_WIDTH = \2_WIDTH +CURRENT_MAP_HEIGHT = \2_HEIGHT +CURRENT_MAP_OBJECT EQUS "\1_Object" +\1_h:: + db \3 + db CURRENT_MAP_HEIGHT, CURRENT_MAP_WIDTH + dw \1_Blocks + dw \1_TextPointers + dw \1_Script + db \4 +ENDM + +; Comes after map_header and connection macros +end_map_header: MACRO + dw CURRENT_MAP_OBJECT + PURGE CURRENT_MAP_WIDTH + PURGE CURRENT_MAP_HEIGHT + PURGE CURRENT_MAP_OBJECT +ENDM + +; Connections go in order: north, south, west, east +;\1 direction +;\2 map name +;\3 map id +;\4 offset of the target map relative to the current map +; (x offset for east/west, y offset for north/south) +connection: MACRO + +; Calculate tile offsets for source (current) and target maps +_src = 0 +_tgt = (\4) + 3 +IF _tgt < 2 +_src = -_tgt +_tgt = 0 +ENDC + +IF !STRCMP("\1", "north") +_blk = \3_WIDTH * (\3_HEIGHT - 3) + _src +_map = _tgt +_win = (\3_WIDTH + 6) * \3_HEIGHT + 1 +_y = \3_HEIGHT * 2 - 1 +_x = (\4) * -2 +_len = CURRENT_MAP_WIDTH + 3 - (\4) +IF _len > \3_WIDTH +_len = \3_WIDTH +ENDC + +ELIF !STRCMP("\1", "south") +_blk = _src +_map = (CURRENT_MAP_WIDTH + 6) * (CURRENT_MAP_HEIGHT + 3) + _tgt +_win = \3_WIDTH + 7 +_y = 0 +_x = (\4) * -2 +_len = CURRENT_MAP_WIDTH + 3 - (\4) +IF _len > \3_WIDTH +_len = \3_WIDTH +ENDC + +ELIF !STRCMP("\1", "west") +_blk = (\3_WIDTH * _src) + \3_WIDTH - 3 +_map = (CURRENT_MAP_WIDTH + 6) * _tgt +_win = (\3_WIDTH + 6) * 2 - 6 +_y = (\4) * -2 +_x = \3_WIDTH * 2 - 1 +_len = CURRENT_MAP_HEIGHT + 3 - (\4) +IF _len > \3_HEIGHT +_len = \3_HEIGHT +ENDC + +ELIF !STRCMP("\1", "east") +_blk = (\3_WIDTH * _src) +_map = (CURRENT_MAP_WIDTH + 6) * _tgt + CURRENT_MAP_WIDTH + 3 +_win = \3_WIDTH + 7 +_y = (\4) * -2 +_x = 0 +_len = CURRENT_MAP_HEIGHT + 3 - (\4) +IF _len > \3_HEIGHT +_len = \3_HEIGHT +ENDC + +ELSE +fail "Invalid direction for 'connection'." +ENDC + + db \3 + dw \2_Blocks + _blk + dw wOverworldMap + _map + db _len - _src + db \3_WIDTH + db _y, _x + dw wOverworldMap + _win +ENDM diff --git a/macros/scripts/text.asm b/macros/scripts/text.asm new file mode 100755 index 000000000..2ec1de43c --- /dev/null +++ b/macros/scripts/text.asm @@ -0,0 +1,213 @@ +text EQUS "db TX_START," ; Start writing text. +next EQUS "db \"\"," ; Move a line down. +line EQUS "db \"\"," ; Start writing at the bottom line. +para EQUS "db \"\"," ; Start a new paragraph. +cont EQUS "db \"\"," ; Scroll to the next line. +done EQUS "db \"\"" ; End a text box. +prompt EQUS "db \"\"" ; Prompt the player to end a text box (initiating some other event). + +page EQUS "db \"\"," ; Start a new Pokédex page. +dex EQUS "db \"\", \"@\"" ; End a Pokédex entry. + + +; TextCommandJumpTable indexes (see home/text.asm) + const_def + + const TX_START ; $00 +text_start: MACRO + db TX_START +ENDM + + const TX_RAM ; $01 +text_ram: MACRO + db TX_RAM + dw \1 ; address to read from +ENDM + + const TX_BCD ; $02 +text_bcd: MACRO + db TX_BCD + dw \1 ; address to read from + db \2 ; number of bytes + print flags +ENDM + + const TX_MOVE ; $03 +text_move: MACRO + db TX_MOVE + dw \1 ; address of the new location +ENDM + + const TX_BOX ; $04 +text_box: MACRO +; draw box + db TX_BOX + dw \1 ; address of upper left corner + db \2, \3 ; height, width +ENDM + + const TX_LOW ; $05 +text_low: MACRO + db TX_LOW +ENDM + + const TX_PROMPT_BUTTON ; $06 +text_promptbutton: MACRO + db TX_PROMPT_BUTTON +ENDM + + const TX_SCROLL ; $07 +text_scroll: MACRO + db TX_SCROLL +ENDM + + const TX_START_ASM ; $08 +text_asm: MACRO + db TX_START_ASM +ENDM + + const TX_NUM ; $09 +text_decimal: MACRO +; print a big-endian decimal number. + db TX_NUM + dw \1 ; address to read from + dn \2, \3 ; number of bytes to read, number of digits to display +ENDM + + const TX_PAUSE ; $0a +text_pause: MACRO + db TX_PAUSE +ENDM + + const TX_SOUND_GET_ITEM_1 ; $0b +sound_get_item_1: MACRO + db TX_SOUND_GET_ITEM_1 +ENDM + +TX_SOUND_LEVEL_UP EQU TX_SOUND_GET_ITEM_1 +sound_level_up EQUS "sound_get_item_1" + + const TX_DOTS ; $0c +text_dots: MACRO + db TX_DOTS + db \1 ; number of ellipses to draw +ENDM + + const TX_WAIT_BUTTON ; $0d +text_waitbutton: MACRO + db TX_WAIT_BUTTON +ENDM + + const TX_SOUND_POKEDEX_RATING ; $0e +sound_pokedex_rating: MACRO + db TX_SOUND_POKEDEX_RATING +ENDM + + const TX_SOUND_GET_ITEM_1_DUPLICATE ; $0f +sound_get_item_1_duplicate: MACRO + db TX_SOUND_GET_ITEM_1_DUPLICATE +ENDM + + const TX_SOUND_GET_ITEM_2 ; $10 +sound_get_item_2: MACRO + db TX_SOUND_GET_ITEM_2 +ENDM + + const TX_SOUND_GET_KEY_ITEM ; $11 +sound_get_key_item: MACRO + db TX_SOUND_GET_KEY_ITEM +ENDM + + const TX_SOUND_CAUGHT_MON ; $12 +sound_caught_mon: MACRO + db TX_SOUND_CAUGHT_MON +ENDM + + const TX_SOUND_DEX_PAGE_ADDED ; $13 +sound_dex_page_added: MACRO + db TX_SOUND_DEX_PAGE_ADDED +ENDM + + const TX_SOUND_CRY_PIKACHU ; $14 +sound_cry_pikachu: MACRO + db TX_SOUND_CRY_PIKACHU +ENDM + + const TX_SOUND_CRY_PIDGEOT ; $15 +sound_cry_pidgeot: MACRO + db TX_SOUND_CRY_PIDGEOT +ENDM + + const TX_SOUND_CRY_DEWGONG ; $16 +sound_cry_dewgong: MACRO + db TX_SOUND_CRY_DEWGONG +ENDM + + const TX_FAR ; $17 +text_far: MACRO + db TX_FAR + dab \1 ; address of text commands +ENDM + + + const_next $50 + + const TX_END ; $50 +text_end: MACRO + db TX_END +ENDM + + +; Text script IDs (see home/text_script.asm) + const_def -1, -1 + + const TX_SCRIPT_POKECENTER_NURSE ; $ff +script_pokecenter_nurse: MACRO + db TX_SCRIPT_POKECENTER_NURSE +ENDM + + const TX_SCRIPT_MART ; $fe +script_mart: MACRO + db TX_SCRIPT_MART + db _NARG ; number of items +REPT _NARG + db \1 ; item id + SHIFT +ENDR + db -1 ; end +ENDM + + const TX_SCRIPT_BILLS_PC ; $fd +script_bills_pc: MACRO + db TX_SCRIPT_BILLS_PC +ENDM + + const TX_SCRIPT_PLAYERS_PC ; $fc +script_players_pc: MACRO + db TX_SCRIPT_PLAYERS_PC +ENDM + + const_skip ; $fb + + const_skip ; $fa + + const TX_SCRIPT_POKECENTER_PC ; $f9 +script_pokecenter_pc: MACRO + db TX_SCRIPT_POKECENTER_PC +ENDM + + const_skip ; $f8 + + const TX_SCRIPT_PRIZE_VENDOR ; $f7 +script_prize_vendor: MACRO + db TX_SCRIPT_PRIZE_VENDOR +ENDM + + const TX_SCRIPT_CABLE_CLUB_RECEPTIONIST ; $f6 +script_cable_club_receptionist: MACRO + db TX_SCRIPT_CABLE_CLUB_RECEPTIONIST +ENDM + + const TX_SCRIPT_VENDING_MACHINE ; $f5 +script_vending_machine: MACRO + db TX_SCRIPT_VENDING_MACHINE +ENDM diff --git a/macros/text_macros.asm b/macros/text_macros.asm deleted file mode 100755 index 21e02634a..000000000 --- a/macros/text_macros.asm +++ /dev/null @@ -1,80 +0,0 @@ - -; text macros -text EQUS "db $00," ; Start writing text. -next EQUS "db $4e," ; Move a line down. -line EQUS "db $4f," ; Start writing at the bottom line. -para EQUS "db $51," ; Start a new paragraph. -cont EQUS "db $55," ; Scroll to the next line. -done EQUS "db $57" ; End a text box. -prompt EQUS "db $58" ; Prompt the player to end a text box (initiating some other event). - -page EQUS "db $49," ; Start a new Pokedex page. -dex EQUS "db $5f, $50" ; End a Pokedex entry. - -TX_RAM: MACRO -; prints text to screen -; \1: RAM address to read from - db $1 - dw \1 -ENDM - -TX_BCD: MACRO -; \1: RAM address to read from -; \2: number of bytes + print flags - db $2 - dw \1 - db \2 -ENDM - -TX_LINE EQUS "db $05" -TX_BLINK EQUS "db $06" -;TX_SCROLL EQUS "db $07" -TX_ASM EQUS "db $08" - -TX_NUM: MACRO -; print a big-endian decimal number. -; \1: address to read from -; \2: number of bytes to read -; \3: number of digits to display - db $09 - dw \1 - db \2 << 4 | \3 -ENDM - -TX_DELAY EQUS "db $0a" -TX_SFX_ITEM_1 EQUS "db $0b" -TX_SFX_LEVEL_UP EQUS "db $0b" -;TX_ELLIPSES EQUS "db $0c" -TX_WAIT EQUS "db $0d" -;TX_SFX_DEX_RATING EQUS "db $0e" -TX_SFX_ITEM_2 EQUS "db $10" -TX_SFX_KEY_ITEM EQUS "db $11" -TX_SFX_CAUGHT_MON EQUS "db $12" -TX_SFX_DEX_PAGE_ADDED EQUS "db $13" -TX_CRY_NIDORINA EQUS "db $14" -TX_CRY_PIDGEOT EQUS "db $15" -;TX_CRY_DEWGONG EQUS "db $16" - -TX_FAR: MACRO - db $17 - dw \1 - db BANK(\1) -ENDM - -TX_VENDING_MACHINE EQUS "db $f5" -TX_CABLE_CLUB_RECEPTIONIST EQUS "db $f6" -TX_PRIZE_VENDOR EQUS "db $f7" -TX_POKECENTER_PC EQUS "db $f9" -TX_PLAYERS_PC EQUS "db $fc" -TX_BILLS_PC EQUS "db $fd" - -TX_MART: MACRO - db $FE, _NARG - REPT _NARG - db \1 - SHIFT - ENDR - db $FF -ENDM - -TX_POKECENTER_NURSE EQUS "db $ff" diff --git a/macros/wram.asm b/macros/wram.asm new file mode 100644 index 000000000..41fd1dad4 --- /dev/null +++ b/macros/wram.asm @@ -0,0 +1,97 @@ +; Used in wram.asm + +flag_array: MACRO + ds ((\1) + 7) / 8 +ENDM + +BOX_STRUCT_LENGTH EQU 25 + NUM_MOVES * 2 + +box_struct: MACRO +\1Species:: db +\1HP:: dw +\1BoxLevel:: db +\1Status:: db +\1Type:: +\1Type1:: db +\1Type2:: db +\1CatchRate:: db +\1Moves:: ds NUM_MOVES +\1OTID:: dw +\1Exp:: ds 3 +\1HPExp:: dw +\1AttackExp:: dw +\1DefenseExp:: dw +\1SpeedExp:: dw +\1SpecialExp:: dw +\1DVs:: ds 2 +\1PP:: ds NUM_MOVES +ENDM + +party_struct: MACRO + box_struct \1 +\1Level:: db +\1Stats:: +\1MaxHP:: dw +\1Attack:: dw +\1Defense:: dw +\1Speed:: dw +\1Special:: dw +ENDM + +battle_struct: MACRO +\1Species:: db +\1HP:: dw +\1PartyPos:: +\1BoxLevel:: db +\1Status:: db +\1Type:: +\1Type1:: db +\1Type2:: db +\1CatchRate:: db +\1Moves:: ds NUM_MOVES +\1DVs:: ds 2 +\1Level:: db +\1Stats:: +\1MaxHP:: dw +\1Attack:: dw +\1Defense:: dw +\1Speed:: dw +\1Special:: dw +\1PP:: ds NUM_MOVES +ENDM + +spritestatedata1: MACRO +\1PictureID:: db +\1MovementStatus:: db +\1ImageIndex:: db +\1YStepVector:: db +\1YPixels:: db +\1XStepVector:: db +\1XPixels:: db +\1IntraAnimFrameCounter:: db +\1AnimFrameCounter:: db +\1FacingDirection:: db +\1YAdjusted:: db +\1XAdjusted:: db +\1CollisionData:: db + ds 3 +\1End:: +ENDM + +spritestatedata2: MACRO +\1WalkAnimationCounter:: db + ds 1 +\1YDisplacement:: db +\1XDisplacement:: db +\1MapY:: db +\1MapX:: db +\1MovementByte1:: db +\1GrassPriority:: db +\1MovementDelay:: db +\1OrigFacingDirection:: db + ds 3 +\1PictureID:: db +\1ImageBaseOffset:: db + ds 1 +\1End:: +ENDM diff --git a/main.asm b/main.asm index 1c8efc315..e94dc292b 100755 --- a/main.asm +++ b/main.asm @@ -1,2014 +1,322 @@ INCLUDE "constants.asm" -INCLUDE "home.asm" - SECTION "bank1", ROMX -INCLUDE "data/facing.asm" - +INCLUDE "data/sprites/facings.asm" INCLUDE "engine/battle/safari_zone.asm" - -INCLUDE "engine/titlescreen.asm" -INCLUDE "engine/load_mon_data.asm" - -INCLUDE "data/item_prices.asm" -INCLUDE "text/item_names.asm" -INCLUDE "text/unused_names.asm" - -INCLUDE "engine/overworld/oam.asm" - -INCLUDE "engine/print_waiting_text.asm" - -INCLUDE "engine/overworld/map_sprite_functions1.asm" - -INCLUDE "engine/overworld/item.asm" +INCLUDE "engine/movie/title.asm" +INCLUDE "engine/pokemon/load_mon_data.asm" +INCLUDE "data/items/prices.asm" +INCLUDE "data/items/names.asm" +INCLUDE "data/text/unused_names.asm" +INCLUDE "engine/gfx/sprite_oam.asm" +INCLUDE "engine/link/print_waiting_text.asm" +INCLUDE "engine/overworld/sprite_collisions.asm" +INCLUDE "engine/events/pick_up_item.asm" INCLUDE "engine/overworld/movement.asm" - -INCLUDE "engine/cable_club.asm" - -INCLUDE "engine/menu/main_menu.asm" - -INCLUDE "engine/oak_speech.asm" - -INCLUDE "engine/special_warps.asm" - -INCLUDE "engine/debug1.asm" - -INCLUDE "engine/menu/naming_screen.asm" - -INCLUDE "engine/oak_speech2.asm" - -INCLUDE "engine/subtract_paid_money.asm" - -INCLUDE "engine/menu/swap_items.asm" - -INCLUDE "engine/overworld/pokemart.asm" - -INCLUDE "engine/learn_move.asm" - -INCLUDE "engine/overworld/pokecenter.asm" - -INCLUDE "engine/overworld/set_blackout_map.asm" - -INCLUDE "engine/display_text_id_init.asm" -INCLUDE "engine/menu/draw_start_menu.asm" - -INCLUDE "engine/overworld/cable_club_npc.asm" - -INCLUDE "engine/menu/text_box.asm" - -INCLUDE "engine/battle/moveEffects/drain_hp_effect.asm" - -INCLUDE "engine/menu/players_pc.asm" - -INCLUDE "engine/remove_pokemon.asm" - -INCLUDE "engine/display_pokedex.asm" +INCLUDE "engine/link/cable_club.asm" +INCLUDE "engine/menus/main_menu.asm" +INCLUDE "engine/movie/oak_speech/oak_speech.asm" +INCLUDE "engine/overworld/special_warps.asm" +INCLUDE "engine/debug/debug_party.asm" +INCLUDE "engine/menus/naming_screen.asm" +INCLUDE "engine/movie/oak_speech/oak_speech2.asm" +INCLUDE "engine/items/subtract_paid_money.asm" +INCLUDE "engine/menus/swap_items.asm" +INCLUDE "engine/events/pokemart.asm" +INCLUDE "engine/pokemon/learn_move.asm" +INCLUDE "engine/events/pokecenter.asm" +INCLUDE "engine/events/set_blackout_map.asm" +INCLUDE "engine/menus/display_text_id_init.asm" +INCLUDE "engine/menus/draw_start_menu.asm" +INCLUDE "engine/link/cable_club_npc.asm" +INCLUDE "engine/menus/text_box.asm" +INCLUDE "engine/battle/move_effects/drain_hp.asm" +INCLUDE "engine/menus/players_pc.asm" +INCLUDE "engine/pokemon/remove_mon.asm" +INCLUDE "engine/events/display_pokedex.asm" SECTION "bank3", ROMX INCLUDE "engine/joypad.asm" - INCLUDE "engine/overworld/clear_variables.asm" INCLUDE "engine/overworld/player_state.asm" -INCLUDE "engine/overworld/poison.asm" -INCLUDE "engine/overworld/tileset_header.asm" +INCLUDE "engine/events/poison.asm" +INCLUDE "engine/overworld/tilesets.asm" INCLUDE "engine/overworld/daycare_exp.asm" - -INCLUDE "data/hide_show_data.asm" - +INCLUDE "data/maps/hide_show_data.asm" INCLUDE "engine/overworld/wild_mons.asm" - -INCLUDE "engine/items/items.asm" - -INCLUDE "engine/menu/draw_badges.asm" - +INCLUDE "engine/items/item_effects.asm" +INCLUDE "engine/menus/draw_badges.asm" INCLUDE "engine/overworld/update_map.asm" INCLUDE "engine/overworld/cut.asm" INCLUDE "engine/overworld/missable_objects.asm" INCLUDE "engine/overworld/push_boulder.asm" - -INCLUDE "engine/add_mon.asm" +INCLUDE "engine/pokemon/add_mon.asm" INCLUDE "engine/flag_action.asm" -INCLUDE "engine/heal_party.asm" -INCLUDE "engine/bcd.asm" -INCLUDE "engine/init_player_data.asm" -INCLUDE "engine/get_bag_item_quantity.asm" -INCLUDE "engine/pathfinding.asm" -INCLUDE "engine/hp_bar.asm" -INCLUDE "engine/hidden_object_functions3.asm" - - -SECTION "Graphics (BANK 4)", ROMX - -PokemonLogoJapanGraphics: INCBIN "gfx/pokemon_logo_japan.2bpp" -FontGraphics: INCBIN "gfx/font.1bpp" -FontGraphicsEnd: -ABTiles: INCBIN "gfx/AB.2bpp" -HpBarAndStatusGraphics: INCBIN "gfx/hp_bar_and_status.2bpp" -HpBarAndStatusGraphicsEnd: -BattleHudTiles1: INCBIN "gfx/battle_hud1.1bpp" -BattleHudTiles1End: -BattleHudTiles2: INCBIN "gfx/battle_hud2.1bpp" -BattleHudTiles3: INCBIN "gfx/battle_hud3.1bpp" -BattleHudTiles3End: -NintendoCopyrightLogoGraphics: INCBIN "gfx/copyright.2bpp" -GamefreakLogoGraphics: INCBIN "gfx/gamefreak.2bpp" -GamefreakLogoGraphicsEnd: -NineTile: INCBIN "gfx/9_tile.2bpp" -TextBoxGraphics: INCBIN "gfx/text_box.2bpp" -TextBoxGraphicsEnd: -PokedexTileGraphics: INCBIN "gfx/pokedex.2bpp" -PokedexTileGraphicsEnd: -WorldMapTileGraphics: INCBIN "gfx/town_map.2bpp" -WorldMapTileGraphicsEnd: -PlayerCharacterTitleGraphics: INCBIN "gfx/player_title.2bpp" - -INCLUDE "engine/menu/status_screen.asm" -INCLUDE "engine/menu/party_menu.asm" - -RedPicFront: INCBIN "pic/ytrainer/red.pic" -ShrinkPic1: INCBIN "pic/trainer/shrink1.pic" -ShrinkPic2: INCBIN "pic/trainer/shrink2.pic" - -INCLUDE "engine/menu/start_sub_menus.asm" +INCLUDE "engine/events/heal_party.asm" +INCLUDE "engine/math/bcd.asm" +INCLUDE "engine/movie/oak_speech/init_player_data.asm" +INCLUDE "engine/items/get_bag_item_quantity.asm" +INCLUDE "engine/overworld/pathfinding.asm" +INCLUDE "engine/gfx/hp_bar.asm" +INCLUDE "engine/events/hidden_objects/bookshelves.asm" +INCLUDE "engine/events/hidden_objects/indigo_plateau_statues.asm" +INCLUDE "engine/events/hidden_objects/book_or_sculpture.asm" +INCLUDE "engine/events/hidden_objects/elevator.asm" +INCLUDE "engine/events/hidden_objects/town_map.asm" +INCLUDE "engine/events/hidden_objects/pokemon_stuff.asm" + + +SECTION "Font Graphics", ROMX + +INCLUDE "gfx/font.asm" + +INCLUDE "engine/pokemon/status_screen.asm" +INCLUDE "engine/menus/party_menu.asm" +INCLUDE "gfx/player.asm" +INCLUDE "engine/menus/start_sub_menus.asm" INCLUDE "engine/items/tms.asm" -SECTION "NPC Sprites 1", ROMX ; BANK $04 - -OakAideSprite: INCBIN "gfx/sprites/oak_aide.2bpp" -RockerSprite: INCBIN "gfx/sprites/rocker.2bpp" -SwimmerSprite: INCBIN "gfx/sprites/swimmer.2bpp" -WhitePlayerSprite: INCBIN "gfx/sprites/white_player.2bpp" -GymHelperSprite: INCBIN "gfx/sprites/gym_helper.2bpp" -OldPersonSprite: INCBIN "gfx/sprites/old_person.2bpp" -MartGuySprite: INCBIN "gfx/sprites/mart_guy.2bpp" -FisherSprite: INCBIN "gfx/sprites/fisher.2bpp" -OldMediumWomanSprite: INCBIN "gfx/sprites/old_medium_woman.2bpp" -NurseSprite: INCBIN "gfx/sprites/nurse.2bpp" -CableClubWomanSprite: INCBIN "gfx/sprites/cable_club_woman.2bpp" -MrMasterballSprite: INCBIN "gfx/sprites/mr_masterball.2bpp" -LaprasGiverSprite: INCBIN "gfx/sprites/lapras_giver.2bpp" -WardenSprite: INCBIN "gfx/sprites/warden.2bpp" -SsCaptainSprite: INCBIN "gfx/sprites/ss_captain.2bpp" -Fisher2Sprite: INCBIN "gfx/sprites/fisher2.2bpp" -BlackbeltSprite: INCBIN "gfx/sprites/blackbelt.2bpp" -GuardSprite: INCBIN "gfx/sprites/guard.2bpp" -BallSprite: INCBIN "gfx/sprites/ball.2bpp" -OmanyteSprite: INCBIN "gfx/sprites/omanyte.2bpp" -BoulderSprite: INCBIN "gfx/sprites/boulder.2bpp" -PaperSheetSprite: INCBIN "gfx/sprites/paper_sheet.2bpp" -BookMapDexSprite: INCBIN "gfx/sprites/book_map_dex.2bpp" -ClipboardSprite: INCBIN "gfx/sprites/clipboard.2bpp" -SnorlaxSprite: INCBIN "gfx/sprites/snorlax.2bpp" -OldAmberSprite: INCBIN "gfx/sprites/old_amber.2bpp" -LyingOldManSprite: INCBIN "gfx/sprites/lying_old_man.2bpp" -QuestionMarkSprite: INCBIN "gfx/sprites/question_mark.2bpp" +SECTION "Battle Engine 1", ROMX INCLUDE "engine/battle/end_of_battle.asm" INCLUDE "engine/battle/wild_encounters.asm" -INCLUDE "engine/battle/moveEffects/recoil_effect.asm" -INCLUDE "engine/battle/moveEffects/conversion_effect.asm" -INCLUDE "engine/battle/moveEffects/haze_effect.asm" +INCLUDE "engine/battle/move_effects/recoil.asm" +INCLUDE "engine/battle/move_effects/conversion.asm" +INCLUDE "engine/battle/move_effects/haze.asm" -SECTION "NPC Sprites 2", ROMX ; BANK $05 +SECTION "bank5", ROMX -INCLUDE "engine/load_pokedex_tiles.asm" +INCLUDE "engine/gfx/load_pokedex_tiles.asm" INCLUDE "engine/overworld/map_sprites.asm" -RedCyclingSprite: INCBIN "gfx/sprites/cycling.2bpp" -RedSprite: INCBIN "gfx/sprites/red.2bpp" -BlueSprite: INCBIN "gfx/sprites/blue.2bpp" -OakSprite: INCBIN "gfx/sprites/oak.2bpp" -BugCatcherSprite: INCBIN "gfx/sprites/bug_catcher.2bpp" -SlowbroSprite: INCBIN "gfx/sprites/slowbro.2bpp" -LassSprite: INCBIN "gfx/sprites/lass.2bpp" -BlackHairBoy1Sprite: INCBIN "gfx/sprites/black_hair_boy_1.2bpp" -LittleGirlSprite: INCBIN "gfx/sprites/little_girl.2bpp" -BirdSprite: INCBIN "gfx/sprites/bird.2bpp" -FatBaldGuySprite: INCBIN "gfx/sprites/fat_bald_guy.2bpp" -GamblerSprite: INCBIN "gfx/sprites/gambler.2bpp" -BlackHairBoy2Sprite: INCBIN "gfx/sprites/black_hair_boy_2.2bpp" -GirlSprite: INCBIN "gfx/sprites/girl.2bpp" -HikerSprite: INCBIN "gfx/sprites/hiker.2bpp" -FoulardWomanSprite: INCBIN "gfx/sprites/foulard_woman.2bpp" -GentlemanSprite: INCBIN "gfx/sprites/gentleman.2bpp" -DaisySprite: INCBIN "gfx/sprites/daisy.2bpp" -BikerSprite: INCBIN "gfx/sprites/biker.2bpp" -SailorSprite: INCBIN "gfx/sprites/sailor.2bpp" -CookSprite: INCBIN "gfx/sprites/cook.2bpp" -BikeShopGuySprite: INCBIN "gfx/sprites/bike_shop_guy.2bpp" -MrFujiSprite: INCBIN "gfx/sprites/mr_fuji.2bpp" -GiovanniSprite: INCBIN "gfx/sprites/giovanni.2bpp" -RocketSprite: INCBIN "gfx/sprites/rocket.2bpp" -MediumSprite: INCBIN "gfx/sprites/medium.2bpp" -WaiterSprite: INCBIN "gfx/sprites/waiter.2bpp" -ErikaSprite: INCBIN "gfx/sprites/erika.2bpp" -MomGeishaSprite: INCBIN "gfx/sprites/mom_geisha.2bpp" -BrunetteGirlSprite: INCBIN "gfx/sprites/brunette_girl.2bpp" -LanceSprite: INCBIN "gfx/sprites/lance.2bpp" -MomSprite: INCBIN "gfx/sprites/mom.2bpp" -BaldingGuySprite: INCBIN "gfx/sprites/balding_guy.2bpp" -YoungBoySprite: INCBIN "gfx/sprites/young_boy.2bpp" -GameboyKidSprite: INCBIN "gfx/sprites/gameboy_kid.2bpp" -ClefairySprite: INCBIN "gfx/sprites/clefairy.2bpp" -AgathaSprite: INCBIN "gfx/sprites/agatha.2bpp" -BrunoSprite: INCBIN "gfx/sprites/bruno.2bpp" -LoreleiSprite: INCBIN "gfx/sprites/lorelei.2bpp" -SeelSprite: INCBIN "gfx/sprites/seel.2bpp" - -INCLUDE "engine/battle/moveEffects/substitute_effect.asm" -INCLUDE "engine/menu/pc.asm" - - -SECTION "bank6", ROMX - -INCLUDE "data/mapHeaders/CeladonCity.asm" -INCLUDE "data/mapObjects/CeladonCity.asm" -CeladonCity_Blocks: INCBIN "maps/CeladonCity.blk" - -INCLUDE "data/mapHeaders/PalletTown.asm" -INCLUDE "data/mapObjects/PalletTown.asm" -PalletTown_Blocks: INCBIN "maps/PalletTown.blk" - -INCLUDE "data/mapHeaders/ViridianCity.asm" -INCLUDE "data/mapObjects/ViridianCity.asm" -ViridianCity_Blocks: INCBIN "maps/ViridianCity.blk" - -INCLUDE "data/mapHeaders/PewterCity.asm" - ds 1 -INCLUDE "data/mapObjects/PewterCity.asm" -PewterCity_Blocks: INCBIN "maps/PewterCity.blk" - -INCLUDE "data/mapHeaders/CeruleanCity.asm" -INCLUDE "data/mapObjects/CeruleanCity.asm" -CeruleanCity_Blocks: INCBIN "maps/CeruleanCity.blk" - -INCLUDE "data/mapHeaders/VermilionCity.asm" -INCLUDE "data/mapObjects/VermilionCity.asm" -VermilionCity_Blocks: INCBIN "maps/VermilionCity.blk" - -INCLUDE "data/mapHeaders/FuchsiaCity.asm" -INCLUDE "data/mapObjects/FuchsiaCity.asm" -FuchsiaCity_Blocks: INCBIN "maps/FuchsiaCity.blk" - -INCLUDE "scripts/PalletTown.asm" -INCLUDE "scripts/ViridianCity.asm" -INCLUDE "scripts/PewterCity.asm" -INCLUDE "scripts/CeruleanCity.asm" -INCLUDE "scripts/VermilionCity.asm" -INCLUDE "scripts/CeladonCity.asm" -INCLUDE "scripts/FuchsiaCity.asm" - -INCLUDE "data/mapHeaders/BluesHouse.asm" -INCLUDE "scripts/BluesHouse.asm" -INCLUDE "data/mapObjects/BluesHouse.asm" -BluesHouse_Blocks: INCBIN "maps/BluesHouse.blk" - -INCLUDE "data/mapHeaders/VermilionTradeHouse.asm" -INCLUDE "scripts/VermilionTradeHouse.asm" -INCLUDE "data/mapObjects/VermilionTradeHouse.asm" -VermilionTradeHouse_Blocks: INCBIN "maps/VermilionTradeHouse.blk" - -INCLUDE "data/mapHeaders/IndigoPlateauLobby.asm" -INCLUDE "scripts/IndigoPlateauLobby.asm" -INCLUDE "data/mapObjects/IndigoPlateauLobby.asm" -IndigoPlateauLobby_Blocks: INCBIN "maps/IndigoPlateauLobby.blk" - -INCLUDE "data/mapHeaders/SilphCo4F.asm" -INCLUDE "scripts/SilphCo4F.asm" -INCLUDE "data/mapObjects/SilphCo4F.asm" -SilphCo4F_Blocks: INCBIN "maps/SilphCo4F.blk" - -INCLUDE "data/mapHeaders/SilphCo5F.asm" -INCLUDE "scripts/SilphCo5F.asm" -INCLUDE "data/mapObjects/SilphCo5F.asm" -SilphCo5F_Blocks: INCBIN "maps/SilphCo5F.blk" - -INCLUDE "data/mapHeaders/SilphCo6F.asm" -INCLUDE "scripts/SilphCo6F.asm" -INCLUDE "data/mapObjects/SilphCo6F.asm" -SilphCo6F_Blocks: INCBIN "maps/SilphCo6F.blk" - -INCLUDE "engine/overworld/npc_movement.asm" -INCLUDE "engine/overworld/doors.asm" -INCLUDE "engine/overworld/ledges.asm" - - -SECTION "bank7", ROMX - -INCLUDE "data/mapHeaders/CinnabarIsland.asm" -INCLUDE "data/mapObjects/CinnabarIsland.asm" -CinnabarIsland_Blocks: INCBIN "maps/CinnabarIsland.blk" - -INCLUDE "data/mapHeaders/Route1.asm" -INCLUDE "data/mapObjects/Route1.asm" -Route1_Blocks: INCBIN "maps/Route1.blk" - -UndergroundPathRoute8_Blocks: INCBIN "maps/UndergroundPathRoute8.blk" - -OaksLab_Blocks: INCBIN "maps/OaksLab.blk" - -MrPsychicsHouse_Blocks: -NameRatersHouse_Blocks: -MrFujisHouse_Blocks: -Route16FlyHouse_Blocks: -Route2TradeHouse_Blocks: -SaffronPidgeyHouse_Blocks: -VermilionPidgeyHouse_Blocks: -LavenderCuboneHouse_Blocks: -CeruleanTradeHouse_Blocks: -PewterNidoranHouse_Blocks: -PewterSpeechHouse_Blocks: -ViridianNicknameHouse_Blocks: INCBIN "maps/ViridianNicknameHouse.blk" -CeladonMansionRoofHouse_Blocks: -ViridianSchoolHouse_Blocks: INCBIN "maps/ViridianSchoolHouse.blk" +SECTION "Battle Engine 2", ROMX +INCLUDE "engine/battle/move_effects/substitute.asm" +INCLUDE "engine/menus/pc.asm" -CeruleanTrashedHouse_Blocks: INCBIN "maps/CeruleanTrashedHouse.blk" -DiglettsCaveRoute11_Blocks: -DiglettsCaveRoute2_Blocks: INCBIN "maps/DiglettsCaveRoute2.blk" +SECTION "Doors and Ledges", ROMX -INCLUDE "engine/clear_save.asm" - -INCLUDE "engine/predefs7.asm" - -INCLUDE "scripts/CinnabarIsland.asm" +INCLUDE "engine/overworld/auto_movement.asm" +INCLUDE "engine/overworld/doors.asm" +INCLUDE "engine/overworld/ledges.asm" -INCLUDE "scripts/Route1.asm" -INCLUDE "data/mapHeaders/OaksLab.asm" -INCLUDE "scripts/OaksLab.asm" -INCLUDE "data/mapObjects/OaksLab.asm" +SECTION "Pokémon Names", ROMX -INCLUDE "data/mapHeaders/ViridianMart.asm" -INCLUDE "scripts/ViridianMart.asm" -INCLUDE "data/mapObjects/ViridianMart.asm" -ViridianMart_Blocks: INCBIN "maps/ViridianMart.blk" +INCLUDE "engine/movie/oak_speech/clear_save.asm" +INCLUDE "engine/events/elevator.asm" -INCLUDE "data/mapHeaders/ViridianSchoolHouse.asm" -INCLUDE "scripts/ViridianSchoolHouse.asm" -INCLUDE "data/mapObjects/ViridianSchoolHouse.asm" -INCLUDE "data/mapHeaders/ViridianNicknameHouse.asm" - ds 1 -INCLUDE "scripts/ViridianNicknameHouse.asm" -INCLUDE "data/mapObjects/ViridianNicknameHouse.asm" +SECTION "Hidden Objects 1", ROMX -INCLUDE "data/mapHeaders/PewterNidoranHouse.asm" -INCLUDE "scripts/PewterNidoranHouse.asm" -INCLUDE "data/mapObjects/PewterNidoranHouse.asm" +INCLUDE "engine/menus/oaks_pc.asm" +INCLUDE "engine/events/hidden_objects/new_bike.asm" +INCLUDE "engine/events/hidden_objects/oaks_lab_posters.asm" +INCLUDE "engine/events/hidden_objects/safari_game.asm" +INCLUDE "engine/events/hidden_objects/cinnabar_gym_quiz.asm" +INCLUDE "engine/events/hidden_objects/magazines.asm" +INCLUDE "engine/events/hidden_objects/bills_house_pc.asm" +INCLUDE "engine/events/hidden_objects/oaks_lab_email.asm" -INCLUDE "data/mapHeaders/PewterSpeechHouse.asm" -INCLUDE "scripts/PewterSpeechHouse.asm" -INCLUDE "data/mapObjects/PewterSpeechHouse.asm" -INCLUDE "data/mapHeaders/CeruleanTrashedHouse.asm" -INCLUDE "scripts/CeruleanTrashedHouse.asm" -INCLUDE "data/mapObjects/CeruleanTrashedHouse.asm" +SECTION "Bill's PC", ROMX -INCLUDE "data/mapHeaders/CeruleanTradeHouse.asm" -INCLUDE "scripts/CeruleanTradeHouse.asm" -INCLUDE "data/mapObjects/CeruleanTradeHouse.asm" +INCLUDE "engine/pokemon/bills_pc.asm" -INCLUDE "data/mapHeaders/BikeShop.asm" -INCLUDE "scripts/BikeShop.asm" -INCLUDE "data/mapObjects/BikeShop.asm" -BikeShop_Blocks: INCBIN "maps/BikeShop.blk" -INCLUDE "data/mapHeaders/MrFujisHouse.asm" -INCLUDE "scripts/MrFujisHouse.asm" -INCLUDE "data/mapObjects/MrFujisHouse.asm" +SECTION "Battle Engine 3", ROMX -INCLUDE "data/mapHeaders/LavenderCuboneHouse.asm" -INCLUDE "scripts/LavenderCuboneHouse.asm" -INCLUDE "data/mapObjects/LavenderCuboneHouse.asm" +INCLUDE "engine/battle/print_type.asm" +INCLUDE "engine/battle/save_trainer_name.asm" -INCLUDE "data/mapHeaders/NameRatersHouse.asm" -INCLUDE "scripts/NameRatersHouse.asm" -INCLUDE "data/mapObjects/NameRatersHouse.asm" -INCLUDE "data/mapHeaders/VermilionPidgeyHouse.asm" -INCLUDE "scripts/VermilionPidgeyHouse.asm" -INCLUDE "data/mapObjects/VermilionPidgeyHouse.asm" - -INCLUDE "data/mapHeaders/VermilionDock.asm" -INCLUDE "scripts/VermilionDock.asm" -INCLUDE "data/mapObjects/VermilionDock.asm" -VermilionDock_Blocks: INCBIN "maps/VermilionDock.blk" - -INCLUDE "data/mapHeaders/CeladonMansionRoofHouse.asm" -INCLUDE "scripts/CeladonMansionRoofHouse.asm" -INCLUDE "data/mapObjects/CeladonMansionRoofHouse.asm" - -INCLUDE "data/mapHeaders/FuchsiaMart.asm" -INCLUDE "scripts/FuchsiaMart.asm" -INCLUDE "data/mapObjects/FuchsiaMart.asm" -FuchsiaMart_Blocks: INCBIN "maps/FuchsiaMart.blk" - -INCLUDE "data/mapHeaders/SaffronPidgeyHouse.asm" -INCLUDE "scripts/SaffronPidgeyHouse.asm" -INCLUDE "data/mapObjects/SaffronPidgeyHouse.asm" - -INCLUDE "data/mapHeaders/MrPsychicsHouse.asm" -INCLUDE "scripts/MrPsychicsHouse.asm" -INCLUDE "data/mapObjects/MrPsychicsHouse.asm" - -INCLUDE "data/mapHeaders/DiglettsCaveRoute2.asm" -INCLUDE "scripts/DiglettsCaveRoute2.asm" -INCLUDE "data/mapObjects/DiglettsCaveRoute2.asm" - -INCLUDE "data/mapHeaders/Route2TradeHouse.asm" -INCLUDE "scripts/Route2TradeHouse.asm" -INCLUDE "data/mapObjects/Route2TradeHouse.asm" - -INCLUDE "data/mapHeaders/Route5Gate.asm" -INCLUDE "scripts/Route5Gate.asm" -INCLUDE "data/mapObjects/Route5Gate.asm" -Route5Gate_Blocks: INCBIN "maps/Route5Gate.blk" - -INCLUDE "data/mapHeaders/Route6Gate.asm" -INCLUDE "scripts/Route6Gate.asm" -INCLUDE "data/mapObjects/Route6Gate.asm" -Route6Gate_Blocks: INCBIN "maps/Route6Gate.blk" - -INCLUDE "data/mapHeaders/Route7Gate.asm" -INCLUDE "scripts/Route7Gate.asm" -INCLUDE "data/mapObjects/Route7Gate.asm" -Route7Gate_Blocks: INCBIN "maps/Route7Gate.blk" - -INCLUDE "data/mapHeaders/Route8Gate.asm" -INCLUDE "scripts/Route8Gate.asm" -INCLUDE "data/mapObjects/Route8Gate.asm" -Route8Gate_Blocks: INCBIN "maps/Route8Gate.blk" - -INCLUDE "data/mapHeaders/UndergroundPathRoute8.asm" -INCLUDE "scripts/UndergroundPathRoute8.asm" -INCLUDE "data/mapObjects/UndergroundPathRoute8.asm" - -INCLUDE "data/mapHeaders/PowerPlant.asm" -INCLUDE "scripts/PowerPlant.asm" -INCLUDE "data/mapObjects/PowerPlant.asm" -PowerPlant_Blocks: INCBIN "maps/PowerPlant.blk" - -INCLUDE "data/mapHeaders/DiglettsCaveRoute11.asm" -INCLUDE "scripts/DiglettsCaveRoute11.asm" -INCLUDE "data/mapObjects/DiglettsCaveRoute11.asm" - -INCLUDE "data/mapHeaders/Route16FlyHouse.asm" -INCLUDE "scripts/Route16FlyHouse.asm" -INCLUDE "data/mapObjects/Route16FlyHouse.asm" - -INCLUDE "data/mapHeaders/Route22Gate.asm" -INCLUDE "scripts/Route22Gate.asm" -INCLUDE "data/mapObjects/Route22Gate.asm" -Route22Gate_Blocks: INCBIN "maps/Route22Gate.blk" - -INCLUDE "data/mapHeaders/BillsHouse.asm" -INCLUDE "scripts/BillsHouse.asm" -INCLUDE "data/mapObjects/BillsHouse.asm" -BillsHouse_Blocks: INCBIN "maps/BillsHouse.blk" - -INCLUDE "engine/menu/oaks_pc.asm" - -INCLUDE "engine/hidden_object_functions7.asm" - - -SECTION "Pics 1", ROMX ; BANK $09 - -RhydonPicFront:: INCBIN "pic/ymon/rhydon.pic" -RhydonPicBack:: INCBIN "pic/monback/rhydonb.pic" -KangaskhanPicFront:: INCBIN "pic/ymon/kangaskhan.pic" -KangaskhanPicBack:: INCBIN "pic/monback/kangaskhanb.pic" -NidoranMPicFront:: INCBIN "pic/ymon/nidoranm.pic" -NidoranMPicBack:: INCBIN "pic/monback/nidoranmb.pic" -ClefairyPicFront:: INCBIN "pic/ymon/clefairy.pic" -ClefairyPicBack:: INCBIN "pic/monback/clefairyb.pic" -SpearowPicFront:: INCBIN "pic/ymon/spearow.pic" -SpearowPicBack:: INCBIN "pic/monback/spearowb.pic" -VoltorbPicFront:: INCBIN "pic/ymon/voltorb.pic" -VoltorbPicBack:: INCBIN "pic/monback/voltorbb.pic" -NidokingPicFront:: INCBIN "pic/ymon/nidoking.pic" -NidokingPicBack:: INCBIN "pic/monback/nidokingb.pic" -SlowbroPicFront:: INCBIN "pic/ymon/slowbro.pic" -SlowbroPicBack:: INCBIN "pic/monback/slowbrob.pic" -IvysaurPicFront:: INCBIN "pic/ymon/ivysaur.pic" -IvysaurPicBack:: INCBIN "pic/monback/ivysaurb.pic" -ExeggutorPicFront:: INCBIN "pic/ymon/exeggutor.pic" -ExeggutorPicBack:: INCBIN "pic/monback/exeggutorb.pic" -LickitungPicFront:: INCBIN "pic/ymon/lickitung.pic" -LickitungPicBack:: INCBIN "pic/monback/lickitungb.pic" -ExeggcutePicFront:: INCBIN "pic/ymon/exeggcute.pic" -ExeggcutePicBack:: INCBIN "pic/monback/exeggcuteb.pic" -GrimerPicFront:: INCBIN "pic/ymon/grimer.pic" -GrimerPicBack:: INCBIN "pic/monback/grimerb.pic" -GengarPicFront:: INCBIN "pic/ymon/gengar.pic" -GengarPicBack:: INCBIN "pic/monback/gengarb.pic" -NidoranFPicFront:: INCBIN "pic/ymon/nidoranf.pic" -NidoranFPicBack:: INCBIN "pic/monback/nidoranfb.pic" -NidoqueenPicFront:: INCBIN "pic/ymon/nidoqueen.pic" -NidoqueenPicBack:: INCBIN "pic/monback/nidoqueenb.pic" -CubonePicFront:: INCBIN "pic/ymon/cubone.pic" -CubonePicBack:: INCBIN "pic/monback/cuboneb.pic" -RhyhornPicFront:: INCBIN "pic/ymon/rhyhorn.pic" -RhyhornPicBack:: INCBIN "pic/monback/rhyhornb.pic" -LaprasPicFront:: INCBIN "pic/ymon/lapras.pic" -LaprasPicBack:: INCBIN "pic/monback/laprasb.pic" -ArcaninePicFront:: INCBIN "pic/ymon/arcanine.pic" -ArcaninePicBack:: INCBIN "pic/monback/arcanineb.pic" -MewPicFront:: INCBIN "pic/ymon/mew.pic" -MewPicBack:: INCBIN "pic/monback/mewb.pic" -GyaradosPicFront:: INCBIN "pic/ymon/gyarados.pic" -GyaradosPicBack:: INCBIN "pic/monback/gyaradosb.pic" -ShellderPicFront:: INCBIN "pic/ymon/shellder.pic" -ShellderPicBack:: INCBIN "pic/monback/shellderb.pic" -TentacoolPicFront:: INCBIN "pic/ymon/tentacool.pic" -TentacoolPicBack:: INCBIN "pic/monback/tentacoolb.pic" -GastlyPicFront:: INCBIN "pic/ymon/gastly.pic" -GastlyPicBack:: INCBIN "pic/monback/gastlyb.pic" -ScytherPicFront:: INCBIN "pic/ymon/scyther.pic" -ScytherPicBack:: INCBIN "pic/monback/scytherb.pic" -StaryuPicFront:: INCBIN "pic/ymon/staryu.pic" -StaryuPicBack:: INCBIN "pic/monback/staryub.pic" -BlastoisePicFront:: INCBIN "pic/ymon/blastoise.pic" -BlastoisePicBack:: INCBIN "pic/monback/blastoiseb.pic" -PinsirPicFront:: INCBIN "pic/ymon/pinsir.pic" -PinsirPicBack:: INCBIN "pic/monback/pinsirb.pic" -TangelaPicFront:: INCBIN "pic/ymon/tangela.pic" -TangelaPicBack:: INCBIN "pic/monback/tangelab.pic" +SECTION "Battle Engine 4", ROMX -INCLUDE "engine/battle/print_type.asm" -INCLUDE "engine/battle/save_trainer_name.asm" +INCLUDE "engine/gfx/screen_effects.asm" +INCLUDE "engine/battle/move_effects/leech_seed.asm" -SECTION "Pics 2", ROMX ; BANK $0A - -GrowlithePicFront:: INCBIN "pic/ymon/growlithe.pic" -GrowlithePicBack:: INCBIN "pic/monback/growlitheb.pic" -OnixPicFront:: INCBIN "pic/ymon/onix.pic" -OnixPicBack:: INCBIN "pic/monback/onixb.pic" -FearowPicFront:: INCBIN "pic/ymon/fearow.pic" -FearowPicBack:: INCBIN "pic/monback/fearowb.pic" -PidgeyPicFront:: INCBIN "pic/ymon/pidgey.pic" -PidgeyPicBack:: INCBIN "pic/monback/pidgeyb.pic" -SlowpokePicFront:: INCBIN "pic/ymon/slowpoke.pic" -SlowpokePicBack:: INCBIN "pic/monback/slowpokeb.pic" -KadabraPicFront:: INCBIN "pic/ymon/kadabra.pic" -KadabraPicBack:: INCBIN "pic/monback/kadabrab.pic" -GravelerPicFront:: INCBIN "pic/ymon/graveler.pic" -GravelerPicBack:: INCBIN "pic/monback/gravelerb.pic" -ChanseyPicFront:: INCBIN "pic/ymon/chansey.pic" -ChanseyPicBack:: INCBIN "pic/monback/chanseyb.pic" -MachokePicFront:: INCBIN "pic/ymon/machoke.pic" -MachokePicBack:: INCBIN "pic/monback/machokeb.pic" -MrMimePicFront:: INCBIN "pic/ymon/mr.mime.pic" -MrMimePicBack:: INCBIN "pic/monback/mr.mimeb.pic" -HitmonleePicFront:: INCBIN "pic/ymon/hitmonlee.pic" -HitmonleePicBack:: INCBIN "pic/monback/hitmonleeb.pic" -HitmonchanPicFront:: INCBIN "pic/ymon/hitmonchan.pic" -HitmonchanPicBack:: INCBIN "pic/monback/hitmonchanb.pic" -ArbokPicFront:: INCBIN "pic/ymon/arbok.pic" -ArbokPicBack:: INCBIN "pic/monback/arbokb.pic" -ParasectPicFront:: INCBIN "pic/ymon/parasect.pic" -ParasectPicBack:: INCBIN "pic/monback/parasectb.pic" -PsyduckPicFront:: INCBIN "pic/ymon/psyduck.pic" -PsyduckPicBack:: INCBIN "pic/monback/psyduckb.pic" -DrowzeePicFront:: INCBIN "pic/ymon/drowzee.pic" -DrowzeePicBack:: INCBIN "pic/monback/drowzeeb.pic" -GolemPicFront:: INCBIN "pic/ymon/golem.pic" -GolemPicBack:: INCBIN "pic/monback/golemb.pic" -MagmarPicFront:: INCBIN "pic/ymon/magmar.pic" -MagmarPicBack:: INCBIN "pic/monback/magmarb.pic" -ElectabuzzPicFront:: INCBIN "pic/ymon/electabuzz.pic" -ElectabuzzPicBack:: INCBIN "pic/monback/electabuzzb.pic" -MagnetonPicFront:: INCBIN "pic/ymon/magneton.pic" -MagnetonPicBack:: INCBIN "pic/monback/magnetonb.pic" -KoffingPicFront:: INCBIN "pic/ymon/koffing.pic" -KoffingPicBack:: INCBIN "pic/monback/koffingb.pic" -MankeyPicFront:: INCBIN "pic/ymon/mankey.pic" -MankeyPicBack:: INCBIN "pic/monback/mankeyb.pic" -SeelPicFront:: INCBIN "pic/ymon/seel.pic" -SeelPicBack:: INCBIN "pic/monback/seelb.pic" -DiglettPicFront:: INCBIN "pic/ymon/diglett.pic" -DiglettPicBack:: INCBIN "pic/monback/diglettb.pic" -TaurosPicFront:: INCBIN "pic/ymon/tauros.pic" -TaurosPicBack:: INCBIN "pic/monback/taurosb.pic" -FarfetchdPicFront:: INCBIN "pic/ymon/farfetchd.pic" -FarfetchdPicBack:: INCBIN "pic/monback/farfetchdb.pic" -VenonatPicFront:: INCBIN "pic/ymon/venonat.pic" -VenonatPicBack:: INCBIN "pic/monback/venonatb.pic" -DragonitePicFront:: INCBIN "pic/ymon/dragonite.pic" -DragonitePicBack:: INCBIN "pic/monback/dragoniteb.pic" -DoduoPicFront:: INCBIN "pic/ymon/doduo.pic" -DoduoPicBack:: INCBIN "pic/monback/doduob.pic" -PoliwagPicFront:: INCBIN "pic/ymon/poliwag.pic" -PoliwagPicBack:: INCBIN "pic/monback/poliwagb.pic" -JynxPicFront:: INCBIN "pic/ymon/jynx.pic" -JynxPicBack:: INCBIN "pic/monback/jynxb.pic" -MoltresPicFront:: INCBIN "pic/ymon/moltres.pic" -MoltresPicBack:: INCBIN "pic/monback/moltresb.pic" - -INCLUDE "engine/predefsA.asm" -INCLUDE "engine/battle/moveEffects/leech_seed_effect.asm" - - -SECTION "Pics 3", ROMX ; BANK $0B - -ArticunoPicFront:: INCBIN "pic/ymon/articuno.pic" -ArticunoPicBack:: INCBIN "pic/monback/articunob.pic" -ZapdosPicFront:: INCBIN "pic/ymon/zapdos.pic" -ZapdosPicBack:: INCBIN "pic/monback/zapdosb.pic" -DittoPicFront:: INCBIN "pic/ymon/ditto.pic" -DittoPicBack:: INCBIN "pic/monback/dittob.pic" -MeowthPicFront:: INCBIN "pic/ymon/meowth.pic" -MeowthPicBack:: INCBIN "pic/monback/meowthb.pic" -KrabbyPicFront:: INCBIN "pic/ymon/krabby.pic" -KrabbyPicBack:: INCBIN "pic/monback/krabbyb.pic" -VulpixPicFront:: INCBIN "pic/ymon/vulpix.pic" -VulpixPicBack:: INCBIN "pic/monback/vulpixb.pic" -NinetalesPicFront:: INCBIN "pic/ymon/ninetales.pic" -NinetalesPicBack:: INCBIN "pic/monback/ninetalesb.pic" -PikachuPicFront:: INCBIN "pic/ymon/pikachu.pic" -PikachuPicBack:: INCBIN "pic/monback/pikachub.pic" -RaichuPicFront:: INCBIN "pic/ymon/raichu.pic" -RaichuPicBack:: INCBIN "pic/monback/raichub.pic" -DratiniPicFront:: INCBIN "pic/ymon/dratini.pic" -DratiniPicBack:: INCBIN "pic/monback/dratinib.pic" -DragonairPicFront:: INCBIN "pic/ymon/dragonair.pic" -DragonairPicBack:: INCBIN "pic/monback/dragonairb.pic" -KabutoPicFront:: INCBIN "pic/ymon/kabuto.pic" -KabutoPicBack:: INCBIN "pic/monback/kabutob.pic" -KabutopsPicFront:: INCBIN "pic/ymon/kabutops.pic" -KabutopsPicBack:: INCBIN "pic/monback/kabutopsb.pic" -HorseaPicFront:: INCBIN "pic/ymon/horsea.pic" -HorseaPicBack:: INCBIN "pic/monback/horseab.pic" -SeadraPicFront:: INCBIN "pic/ymon/seadra.pic" -SeadraPicBack:: INCBIN "pic/monback/seadrab.pic" -SandshrewPicFront:: INCBIN "pic/ymon/sandshrew.pic" -SandshrewPicBack:: INCBIN "pic/monback/sandshrewb.pic" -SandslashPicFront:: INCBIN "pic/ymon/sandslash.pic" -SandslashPicBack:: INCBIN "pic/monback/sandslashb.pic" -OmanytePicFront:: INCBIN "pic/ymon/omanyte.pic" -OmanytePicBack:: INCBIN "pic/monback/omanyteb.pic" -OmastarPicFront:: INCBIN "pic/ymon/omastar.pic" -OmastarPicBack:: INCBIN "pic/monback/omastarb.pic" -JigglypuffPicFront:: INCBIN "pic/ymon/jigglypuff.pic" -JigglypuffPicBack:: INCBIN "pic/monback/jigglypuffb.pic" -WigglytuffPicFront:: INCBIN "pic/ymon/wigglytuff.pic" -WigglytuffPicBack:: INCBIN "pic/monback/wigglytuffb.pic" -EeveePicFront:: INCBIN "pic/ymon/eevee.pic" -EeveePicBack:: INCBIN "pic/monback/eeveeb.pic" -FlareonPicFront:: INCBIN "pic/ymon/flareon.pic" -FlareonPicBack:: INCBIN "pic/monback/flareonb.pic" -JolteonPicFront:: INCBIN "pic/ymon/jolteon.pic" -JolteonPicBack:: INCBIN "pic/monback/jolteonb.pic" -VaporeonPicFront:: INCBIN "pic/ymon/vaporeon.pic" -VaporeonPicBack:: INCBIN "pic/monback/vaporeonb.pic" -MachopPicFront:: INCBIN "pic/ymon/machop.pic" -MachopPicBack:: INCBIN "pic/monback/machopb.pic" -ZubatPicFront:: INCBIN "pic/ymon/zubat.pic" -ZubatPicBack:: INCBIN "pic/monback/zubatb.pic" -EkansPicFront:: INCBIN "pic/ymon/ekans.pic" -EkansPicBack:: INCBIN "pic/monback/ekansb.pic" -ParasPicFront:: INCBIN "pic/ymon/paras.pic" -ParasPicBack:: INCBIN "pic/monback/parasb.pic" -PoliwhirlPicFront:: INCBIN "pic/ymon/poliwhirl.pic" -PoliwhirlPicBack:: INCBIN "pic/monback/poliwhirlb.pic" -PoliwrathPicFront:: INCBIN "pic/ymon/poliwrath.pic" -PoliwrathPicBack:: INCBIN "pic/monback/poliwrathb.pic" -WeedlePicFront:: INCBIN "pic/ymon/weedle.pic" -WeedlePicBack:: INCBIN "pic/monback/weedleb.pic" -KakunaPicFront:: INCBIN "pic/ymon/kakuna.pic" -KakunaPicBack:: INCBIN "pic/monback/kakunab.pic" -BeedrillPicFront:: INCBIN "pic/ymon/beedrill.pic" -BeedrillPicBack:: INCBIN "pic/monback/beedrillb.pic" - -FossilKabutopsPic:: INCBIN "pic/ymon/fossilkabutops.pic" +SECTION "Battle Engine 5", ROMX INCLUDE "engine/battle/display_effectiveness.asm" INCLUDE "engine/items/tmhm.asm" Func_2fd6a: - callab IsThisPartymonStarterPikachu_Party + callfar IsThisPartymonStarterPikachu_Party ret nc ld a, $3 ld [wPikachuSpawnState], a ret INCLUDE "engine/battle/scale_sprites.asm" -INCLUDE "engine/game_corner_slots2.asm" - - -SECTION "Pics 4", ROMX ; BANK $0C - -DodrioPicFront:: INCBIN "pic/ymon/dodrio.pic" -DodrioPicBack:: INCBIN "pic/monback/dodriob.pic" -PrimeapePicFront:: INCBIN "pic/ymon/primeape.pic" -PrimeapePicBack:: INCBIN "pic/monback/primeapeb.pic" -DugtrioPicFront:: INCBIN "pic/ymon/dugtrio.pic" -DugtrioPicBack:: INCBIN "pic/monback/dugtriob.pic" -VenomothPicFront:: INCBIN "pic/ymon/venomoth.pic" -VenomothPicBack:: INCBIN "pic/monback/venomothb.pic" -DewgongPicFront:: INCBIN "pic/ymon/dewgong.pic" -DewgongPicBack:: INCBIN "pic/monback/dewgongb.pic" -CaterpiePicFront:: INCBIN "pic/ymon/caterpie.pic" -CaterpiePicBack:: INCBIN "pic/monback/caterpieb.pic" -MetapodPicFront:: INCBIN "pic/ymon/metapod.pic" -MetapodPicBack:: INCBIN "pic/monback/metapodb.pic" -ButterfreePicFront:: INCBIN "pic/ymon/butterfree.pic" -ButterfreePicBack:: INCBIN "pic/monback/butterfreeb.pic" -MachampPicFront:: INCBIN "pic/ymon/machamp.pic" -MachampPicBack:: INCBIN "pic/monback/machampb.pic" -GolduckPicFront:: INCBIN "pic/ymon/golduck.pic" -GolduckPicBack:: INCBIN "pic/monback/golduckb.pic" -HypnoPicFront:: INCBIN "pic/ymon/hypno.pic" -HypnoPicBack:: INCBIN "pic/monback/hypnob.pic" -GolbatPicFront:: INCBIN "pic/ymon/golbat.pic" -GolbatPicBack:: INCBIN "pic/monback/golbatb.pic" -MewtwoPicFront:: INCBIN "pic/ymon/mewtwo.pic" -MewtwoPicBack:: INCBIN "pic/monback/mewtwob.pic" -SnorlaxPicFront:: INCBIN "pic/ymon/snorlax.pic" -SnorlaxPicBack:: INCBIN "pic/monback/snorlaxb.pic" -MagikarpPicFront:: INCBIN "pic/ymon/magikarp.pic" -MagikarpPicBack:: INCBIN "pic/monback/magikarpb.pic" -MukPicFront:: INCBIN "pic/ymon/muk.pic" -MukPicBack:: INCBIN "pic/monback/mukb.pic" -KinglerPicFront:: INCBIN "pic/ymon/kingler.pic" -KinglerPicBack:: INCBIN "pic/monback/kinglerb.pic" -CloysterPicFront:: INCBIN "pic/ymon/cloyster.pic" -CloysterPicBack:: INCBIN "pic/monback/cloysterb.pic" -ElectrodePicFront:: INCBIN "pic/ymon/electrode.pic" -ElectrodePicBack:: INCBIN "pic/monback/electrodeb.pic" -ClefablePicFront:: INCBIN "pic/ymon/clefable.pic" -ClefablePicBack:: INCBIN "pic/monback/clefableb.pic" -WeezingPicFront:: INCBIN "pic/ymon/weezing.pic" -WeezingPicBack:: INCBIN "pic/monback/weezingb.pic" -PersianPicFront:: INCBIN "pic/ymon/persian.pic" -PersianPicBack:: INCBIN "pic/monback/persianb.pic" -MarowakPicFront:: INCBIN "pic/ymon/marowak.pic" -MarowakPicBack:: INCBIN "pic/monback/marowakb.pic" -HaunterPicFront:: INCBIN "pic/ymon/haunter.pic" -HaunterPicBack:: INCBIN "pic/monback/haunterb.pic" -AbraPicFront:: INCBIN "pic/ymon/abra.pic" -AbraPicBack:: INCBIN "pic/monback/abrab.pic" -AlakazamPicFront:: INCBIN "pic/ymon/alakazam.pic" -AlakazamPicBack:: INCBIN "pic/monback/alakazamb.pic" -PidgeottoPicFront:: INCBIN "pic/ymon/pidgeotto.pic" -PidgeottoPicBack:: INCBIN "pic/monback/pidgeottob.pic" -PidgeotPicFront:: INCBIN "pic/ymon/pidgeot.pic" -PidgeotPicBack:: INCBIN "pic/monback/pidgeotb.pic" -StarmiePicFront:: INCBIN "pic/ymon/starmie.pic" -StarmiePicBack:: INCBIN "pic/monback/starmieb.pic" - - -SECTION "Pics 5", ROMX ; BANK $0D - -BulbasaurPicFront:: INCBIN "pic/ymon/bulbasaur.pic" -BulbasaurPicBack:: INCBIN "pic/monback/bulbasaurb.pic" -VenusaurPicFront:: INCBIN "pic/ymon/venusaur.pic" -VenusaurPicBack:: INCBIN "pic/monback/venusaurb.pic" -TentacruelPicFront:: INCBIN "pic/ymon/tentacruel.pic" -TentacruelPicBack:: INCBIN "pic/monback/tentacruelb.pic" -GoldeenPicFront:: INCBIN "pic/ymon/goldeen.pic" -GoldeenPicBack:: INCBIN "pic/monback/goldeenb.pic" -SeakingPicFront:: INCBIN "pic/ymon/seaking.pic" -SeakingPicBack:: INCBIN "pic/monback/seakingb.pic" -PonytaPicFront:: INCBIN "pic/ymon/ponyta.pic" -RapidashPicFront:: INCBIN "pic/ymon/rapidash.pic" -PonytaPicBack:: INCBIN "pic/monback/ponytab.pic" -RapidashPicBack:: INCBIN "pic/monback/rapidashb.pic" -RattataPicFront:: INCBIN "pic/ymon/rattata.pic" -RattataPicBack:: INCBIN "pic/monback/rattatab.pic" -RaticatePicFront:: INCBIN "pic/ymon/raticate.pic" -RaticatePicBack:: INCBIN "pic/monback/raticateb.pic" -NidorinoPicFront:: INCBIN "pic/ymon/nidorino.pic" -NidorinoPicBack:: INCBIN "pic/monback/nidorinob.pic" -NidorinaPicFront:: INCBIN "pic/ymon/nidorina.pic" -NidorinaPicBack:: INCBIN "pic/monback/nidorinab.pic" -GeodudePicFront:: INCBIN "pic/ymon/geodude.pic" -GeodudePicBack:: INCBIN "pic/monback/geodudeb.pic" -PorygonPicFront:: INCBIN "pic/ymon/porygon.pic" -PorygonPicBack:: INCBIN "pic/monback/porygonb.pic" -AerodactylPicFront:: INCBIN "pic/ymon/aerodactyl.pic" -AerodactylPicBack:: INCBIN "pic/monback/aerodactylb.pic" -MagnemitePicFront:: INCBIN "pic/ymon/magnemite.pic" -MagnemitePicBack:: INCBIN "pic/monback/magnemiteb.pic" -CharmanderPicFront:: INCBIN "pic/ymon/charmander.pic" -CharmanderPicBack:: INCBIN "pic/monback/charmanderb.pic" -SquirtlePicFront:: INCBIN "pic/ymon/squirtle.pic" -SquirtlePicBack:: INCBIN "pic/monback/squirtleb.pic" -CharmeleonPicFront:: INCBIN "pic/ymon/charmeleon.pic" -CharmeleonPicBack:: INCBIN "pic/monback/charmeleonb.pic" -WartortlePicFront:: INCBIN "pic/ymon/wartortle.pic" -WartortlePicBack:: INCBIN "pic/monback/wartortleb.pic" -CharizardPicFront:: INCBIN "pic/ymon/charizard.pic" -CharizardPicBack:: INCBIN "pic/monback/charizardb.pic" -FossilAerodactylPic:: INCBIN "pic/ymon/fossilaerodactyl.pic" -GhostPic:: INCBIN "pic/other/ghost.pic" -OddishPicFront:: INCBIN "pic/ymon/oddish.pic" -OddishPicBack:: INCBIN "pic/monback/oddishb.pic" -GloomPicFront:: INCBIN "pic/ymon/gloom.pic" -GloomPicBack:: INCBIN "pic/monback/gloomb.pic" -VileplumePicFront:: INCBIN "pic/ymon/vileplume.pic" -VileplumePicBack:: INCBIN "pic/monback/vileplumeb.pic" -BellsproutPicFront:: INCBIN "pic/ymon/bellsprout.pic" -BellsproutPicBack:: INCBIN "pic/monback/bellsproutb.pic" -WeepinbellPicFront:: INCBIN "pic/ymon/weepinbell.pic" -WeepinbellPicBack:: INCBIN "pic/monback/weepinbellb.pic" -VictreebelPicFront:: INCBIN "pic/ymon/victreebel.pic" -VictreebelPicBack:: INCBIN "pic/monback/victreebelb.pic" - -INCLUDE "engine/titlescreen2.asm" -INCLUDE "engine/slot_machine.asm" -INCLUDE "engine/game_corner_slots.asm" - - -SECTION "bankE", ROMX - -INCLUDE "data/moves.asm" -BaseStats: INCLUDE "data/base_stats.asm" -INCLUDE "data/cries.asm" -INCLUDE "engine/battle/trainer_ai.asm" -INCLUDE "engine/battle/draw_hud_pokeball_gfx.asm" +INCLUDE "engine/slots/game_corner_slots2.asm" -TradingAnimationGraphics: -INCBIN "gfx/game_boy.2bpp" -INCBIN "gfx/link_cable.2bpp" -TradingAnimationGraphicsEnd: -; Pokeball traveling through the link cable. -TradingAnimationGraphics2: INCBIN "gfx/trade2.2bpp" -TradingAnimationGraphics2End: +SECTION "Slot Machines", ROMX -INCLUDE "engine/evos_moves.asm" +INCLUDE "engine/movie/title2.asm" +INCLUDE "engine/slots/slot_machine.asm" +INCLUDE "engine/slots/game_corner_slots.asm" -SECTION "bankF", ROMX - -INCLUDE "engine/battle/core.asm" +SECTION "Battle Engine 7", ROMX +INCLUDE "data/moves/moves.asm" +INCLUDE "data/pokemon/base_stats.asm" +INCLUDE "data/pokemon/cries.asm" +INCLUDE "engine/battle/trainer_ai.asm" +INCLUDE "engine/battle/draw_hud_pokeball_gfx.asm" +INCLUDE "gfx/trade.asm" +INCLUDE "engine/pokemon/evos_moves.asm" -SECTION "bank10", ROMX -INCLUDE "engine/menu/pokedex.asm" -INCLUDE "engine/overworld/emotion_bubbles.asm" -INCLUDE "engine/trade.asm" -INCLUDE "engine/intro.asm" -INCLUDE "engine/trade2.asm" -INCLUDE "engine/menu/options.asm" - - -SECTION "bank11", ROMX - -INCLUDE "data/mapHeaders/LavenderTown.asm" -INCLUDE "data/mapObjects/LavenderTown.asm" -LavenderTown_Blocks: INCBIN "maps/LavenderTown.blk" - -ViridianPokecenter_Blocks: INCBIN "maps/ViridianPokecenter.blk" - -SafariZoneCenterRestHouse_Blocks: -SafariZoneWestRestHouse_Blocks: -SafariZoneEastRestHouse_Blocks: -SafariZoneNorthRestHouse_Blocks: INCBIN "maps/SafariZoneCenterRestHouse.blk" - -INCLUDE "scripts/LavenderTown.asm" - -INCLUDE "engine/pokedex_rating.asm" - -INCLUDE "data/mapHeaders/ViridianPokecenter.asm" -INCLUDE "scripts/ViridianPokecenter.asm" -INCLUDE "data/mapObjects/ViridianPokecenter.asm" - -INCLUDE "data/mapHeaders/CeladonMart1F.asm" -INCLUDE "scripts/CeladonMart1F.asm" -INCLUDE "data/mapObjects/CeladonMart1F.asm" -CeladonMart1F_Blocks: INCBIN "maps/CeladonMart1F.blk" - -INCLUDE "data/mapHeaders/PokemonMansion1F.asm" -INCLUDE "scripts/PokemonMansion1F.asm" -INCLUDE "data/mapObjects/PokemonMansion1F.asm" -PokemonMansion1F_Blocks: INCBIN "maps/PokemonMansion1F.blk" - -INCLUDE "data/mapHeaders/RockTunnel1F.asm" -INCLUDE "scripts/RockTunnel1F.asm" -INCLUDE "data/mapObjects/RockTunnel1F.asm" -RockTunnel1F_Blocks: INCBIN "maps/RockTunnel1F.blk" - -INCLUDE "data/mapHeaders/SeafoamIslands1F.asm" -INCLUDE "scripts/SeafoamIslands1F.asm" -INCLUDE "data/mapObjects/SeafoamIslands1F.asm" -SeafoamIslands1F_Blocks: INCBIN "maps/SeafoamIslands1F.blk" - -INCLUDE "data/mapHeaders/SSAnne3F.asm" -INCLUDE "scripts/SSAnne3F.asm" -INCLUDE "data/mapObjects/SSAnne3F.asm" -SSAnne3F_Blocks: INCBIN "maps/SSAnne3F.blk" - -INCLUDE "data/mapHeaders/VictoryRoad3F.asm" -INCLUDE "scripts/VictoryRoad3F.asm" -INCLUDE "data/mapObjects/VictoryRoad3F.asm" -VictoryRoad3F_Blocks: INCBIN "maps/VictoryRoad3F.blk" - -INCLUDE "data/mapHeaders/RocketHideoutB1F.asm" -INCLUDE "scripts/RocketHideoutB1F.asm" -INCLUDE "data/mapObjects/RocketHideoutB1F.asm" -RocketHideoutB1F_Blocks: INCBIN "maps/RocketHideoutB1F.blk" - -INCLUDE "data/mapHeaders/RocketHideoutB2F.asm" -INCLUDE "scripts/RocketHideoutB2F.asm" -INCLUDE "data/mapObjects/RocketHideoutB2F.asm" -RocketHideoutB2F_Blocks: INCBIN "maps/RocketHideoutB2F.blk" - -INCLUDE "data/mapHeaders/RocketHideoutB3F.asm" -INCLUDE "scripts/RocketHideoutB3F.asm" -INCLUDE "data/mapObjects/RocketHideoutB3F.asm" -RocketHideoutB3F_Blocks: INCBIN "maps/RocketHideoutB3F.blk" - -INCLUDE "data/mapHeaders/RocketHideoutB4F.asm" -INCLUDE "scripts/RocketHideoutB4F.asm" -INCLUDE "data/mapObjects/RocketHideoutB4F.asm" -RocketHideoutB4F_Blocks: INCBIN "maps/RocketHideoutB4F.blk" - -INCLUDE "data/mapHeaders/RocketHideoutElevator.asm" -INCLUDE "scripts/RocketHideoutElevator.asm" -INCLUDE "data/mapObjects/RocketHideoutElevator.asm" -RocketHideoutElevator_Blocks: INCBIN "maps/RocketHideoutElevator.blk" - -INCLUDE "data/mapHeaders/SilphCoElevator.asm" -INCLUDE "scripts/SilphCoElevator.asm" -INCLUDE "data/mapObjects/SilphCoElevator.asm" -SilphCoElevator_Blocks: INCBIN "maps/SilphCoElevator.blk" - -INCLUDE "data/mapHeaders/SafariZoneEast.asm" -INCLUDE "scripts/SafariZoneEast.asm" -INCLUDE "data/mapObjects/SafariZoneEast.asm" -SafariZoneEast_Blocks: INCBIN "maps/SafariZoneEast.blk" - -INCLUDE "data/mapHeaders/SafariZoneNorth.asm" -INCLUDE "scripts/SafariZoneNorth.asm" -INCLUDE "data/mapObjects/SafariZoneNorth.asm" -SafariZoneNorth_Blocks: INCBIN "maps/SafariZoneNorth.blk" - -INCLUDE "data/mapHeaders/SafariZoneCenter.asm" -INCLUDE "scripts/SafariZoneCenter.asm" -INCLUDE "data/mapObjects/SafariZoneCenter.asm" -SafariZoneCenter_Blocks: INCBIN "maps/SafariZoneCenter.blk" - -INCLUDE "data/mapHeaders/SafariZoneCenterRestHouse.asm" -INCLUDE "scripts/SafariZoneCenterRestHouse.asm" -INCLUDE "data/mapObjects/SafariZoneCenterRestHouse.asm" - -INCLUDE "data/mapHeaders/SafariZoneWestRestHouse.asm" -INCLUDE "scripts/SafariZoneWestRestHouse.asm" -INCLUDE "data/mapObjects/SafariZoneWestRestHouse.asm" - -INCLUDE "data/mapHeaders/SafariZoneEastRestHouse.asm" -INCLUDE "scripts/SafariZoneEastRestHouse.asm" -INCLUDE "data/mapObjects/SafariZoneEastRestHouse.asm" - -INCLUDE "data/mapHeaders/SafariZoneNorthRestHouse.asm" -INCLUDE "scripts/SafariZoneNorthRestHouse.asm" -INCLUDE "data/mapObjects/SafariZoneNorthRestHouse.asm" - -INCLUDE "data/mapHeaders/CeruleanCave2F.asm" -INCLUDE "scripts/CeruleanCave2F.asm" -INCLUDE "data/mapObjects/CeruleanCave2F.asm" -CeruleanCave2F_Blocks: INCBIN "maps/CeruleanCave2F.blk" - -INCLUDE "data/mapHeaders/CeruleanCaveB1F.asm" -INCLUDE "scripts/CeruleanCaveB1F.asm" -INCLUDE "data/mapObjects/CeruleanCaveB1F.asm" -CeruleanCaveB1F_Blocks: INCBIN "maps/CeruleanCaveB1F.blk" - -INCLUDE "data/mapHeaders/RockTunnelB1F.asm" -INCLUDE "scripts/RockTunnelB1F.asm" -INCLUDE "data/mapObjects/RockTunnelB1F.asm" -RockTunnelB1F_Blocks: INCBIN "maps/RockTunnelB1F.blk" - -INCLUDE "data/mapHeaders/SeafoamIslandsB1F.asm" -INCLUDE "scripts/SeafoamIslandsB1F.asm" -INCLUDE "data/mapObjects/SeafoamIslandsB1F.asm" -SeafoamIslandsB1F_Blocks: INCBIN "maps/SeafoamIslandsB1F.blk" - -INCLUDE "data/mapHeaders/SeafoamIslandsB2F.asm" -INCLUDE "scripts/SeafoamIslandsB2F.asm" -INCLUDE "data/mapObjects/SeafoamIslandsB2F.asm" -SeafoamIslandsB2F_Blocks: INCBIN "maps/SeafoamIslandsB2F.blk" - -INCLUDE "data/mapHeaders/SeafoamIslandsB3F.asm" -INCLUDE "scripts/SeafoamIslandsB3F.asm" -INCLUDE "data/mapObjects/SeafoamIslandsB3F.asm" -SeafoamIslandsB3F_Blocks: INCBIN "maps/SeafoamIslandsB3F.blk" - -INCLUDE "data/mapHeaders/SeafoamIslandsB4F.asm" -INCLUDE "scripts/SeafoamIslandsB4F.asm" -INCLUDE "data/mapObjects/SeafoamIslandsB4F.asm" -SeafoamIslandsB4F_Blocks: INCBIN "maps/SeafoamIslandsB4F.blk" +SECTION "Battle Core", ROMX -INCLUDE "engine/overworld/dungeon_warps.asm" +INCLUDE "engine/battle/core.asm" +INCLUDE "engine/battle/effects.asm" -SECTION "bank12", ROMX - -INCLUDE "data/mapHeaders/Route7.asm" -INCLUDE "data/mapObjects/Route7.asm" -Route7_Blocks: INCBIN "maps/Route7.blk" - -CeladonPokecenter_Blocks: -RockTunnelPokecenter_Blocks: -MtMoonPokecenter_Blocks: INCBIN "maps/MtMoonPokecenter.blk" - -Route18Gate1F_Blocks: -Route15Gate1F_Blocks: -Route11Gate1F_Blocks: INCBIN "maps/Route11Gate1F.blk" - -Route18Gate2F_Blocks: -Route16Gate2F_Blocks: -Route15Gate2F_Blocks: -Route12Gate2F_Blocks: -Route11Gate2F_Blocks: INCBIN "maps/Route11Gate2F.blk" - -INCLUDE "scripts/Route7.asm" - -INCLUDE "data/mapHeaders/RedsHouse1F.asm" -INCLUDE "scripts/RedsHouse1F.asm" -INCLUDE "data/mapObjects/RedsHouse1F.asm" -RedsHouse1F_Blocks: INCBIN "maps/RedsHouse1F.blk" - -INCLUDE "data/mapHeaders/CeladonMart3F.asm" -INCLUDE "scripts/CeladonMart3F.asm" -INCLUDE "data/mapObjects/CeladonMart3F.asm" -CeladonMart3F_Blocks: INCBIN "maps/CeladonMart3F.blk" - -INCLUDE "data/mapHeaders/CeladonMart4F.asm" -INCLUDE "scripts/CeladonMart4F.asm" -INCLUDE "data/mapObjects/CeladonMart4F.asm" -CeladonMart4F_Blocks: INCBIN "maps/CeladonMart4F.blk" - -INCLUDE "data/mapHeaders/CeladonMartRoof.asm" -INCLUDE "scripts/CeladonMartRoof.asm" -INCLUDE "data/mapObjects/CeladonMartRoof.asm" -CeladonMartRoof_Blocks: INCBIN "maps/CeladonMartRoof.blk" - -INCLUDE "data/mapHeaders/CeladonMartElevator.asm" -INCLUDE "scripts/CeladonMartElevator.asm" -INCLUDE "data/mapObjects/CeladonMartElevator.asm" -CeladonMartElevator_Blocks: INCBIN "maps/CeladonMartElevator.blk" - -INCLUDE "data/mapHeaders/CeladonMansion1F.asm" -INCLUDE "scripts/CeladonMansion1F.asm" -INCLUDE "data/mapObjects/CeladonMansion1F.asm" -CeladonMansion1F_Blocks: INCBIN "maps/CeladonMansion1F.blk" - -INCLUDE "data/mapHeaders/CeladonMansion2F.asm" -INCLUDE "scripts/CeladonMansion2F.asm" -INCLUDE "data/mapObjects/CeladonMansion2F.asm" -CeladonMansion2F_Blocks: INCBIN "maps/CeladonMansion2F.blk" - -INCLUDE "data/mapHeaders/CeladonMansion3F.asm" -INCLUDE "scripts/CeladonMansion3F.asm" -INCLUDE "data/mapObjects/CeladonMansion3F.asm" -CeladonMansion3F_Blocks: INCBIN "maps/CeladonMansion3F.blk" - -INCLUDE "data/mapHeaders/CeladonMansionRoof.asm" -INCLUDE "scripts/CeladonMansionRoof.asm" -INCLUDE "data/mapObjects/CeladonMansionRoof.asm" -CeladonMansionRoof_Blocks: INCBIN "maps/CeladonMansionRoof.blk" - -INCLUDE "data/mapHeaders/CeladonPokecenter.asm" -INCLUDE "scripts/CeladonPokecenter.asm" -INCLUDE "data/mapObjects/CeladonPokecenter.asm" - -INCLUDE "data/mapHeaders/CeladonGym.asm" -INCLUDE "scripts/CeladonGym.asm" -INCLUDE "data/mapObjects/CeladonGym.asm" -CeladonGym_Blocks: INCBIN "maps/CeladonGym.blk" - -INCLUDE "data/mapHeaders/GameCorner.asm" -INCLUDE "scripts/GameCorner.asm" -INCLUDE "data/mapObjects/GameCorner.asm" -GameCorner_Blocks: INCBIN "maps/GameCorner.blk" - -INCLUDE "data/mapHeaders/CeladonMart5F.asm" -INCLUDE "scripts/CeladonMart5F.asm" -INCLUDE "data/mapObjects/CeladonMart5F.asm" -CeladonMart5F_Blocks: INCBIN "maps/CeladonMart5F.blk" - -INCLUDE "data/mapHeaders/GameCornerPrizeRoom.asm" -INCLUDE "scripts/GameCornerPrizeRoom.asm" -INCLUDE "data/mapObjects/GameCornerPrizeRoom.asm" -GameCornerPrizeRoom_Blocks: INCBIN "maps/GameCornerPrizeRoom.blk" - -INCLUDE "data/mapHeaders/CeladonDiner.asm" -INCLUDE "scripts/CeladonDiner.asm" -INCLUDE "data/mapObjects/CeladonDiner.asm" -CeladonDiner_Blocks: INCBIN "maps/CeladonDiner.blk" - -INCLUDE "data/mapHeaders/CeladonChiefHouse.asm" -INCLUDE "scripts/CeladonChiefHouse.asm" -INCLUDE "data/mapObjects/CeladonChiefHouse.asm" -CeladonChiefHouse_Blocks: INCBIN "maps/CeladonChiefHouse.blk" - -INCLUDE "data/mapHeaders/CeladonHotel.asm" -INCLUDE "scripts/CeladonHotel.asm" -INCLUDE "data/mapObjects/CeladonHotel.asm" -CeladonHotel_Blocks: INCBIN "maps/CeladonHotel.blk" - -INCLUDE "data/mapHeaders/MtMoonPokecenter.asm" -INCLUDE "scripts/MtMoonPokecenter.asm" -INCLUDE "data/mapObjects/MtMoonPokecenter.asm" - -INCLUDE "data/mapHeaders/RockTunnelPokecenter.asm" -INCLUDE "scripts/RockTunnelPokecenter.asm" -INCLUDE "data/mapObjects/RockTunnelPokecenter.asm" - -INCLUDE "data/mapHeaders/Route11Gate1F.asm" -INCLUDE "scripts/Route11Gate1F.asm" -INCLUDE "data/mapObjects/Route11Gate1F.asm" - -INCLUDE "data/mapHeaders/Route11Gate2F.asm" -INCLUDE "scripts/Route11Gate2F.asm" -INCLUDE "data/mapObjects/Route11Gate2F.asm" - -INCLUDE "data/mapHeaders/Route12Gate1F.asm" -INCLUDE "scripts/Route12Gate1F.asm" -INCLUDE "data/mapObjects/Route12Gate1F.asm" -Route12Gate1F_Blocks: INCBIN "maps/Route12Gate1F.blk" - -INCLUDE "data/mapHeaders/Route12Gate2F.asm" -INCLUDE "scripts/Route12Gate2F.asm" -INCLUDE "data/mapObjects/Route12Gate2F.asm" - -INCLUDE "data/mapHeaders/Route15Gate1F.asm" -INCLUDE "scripts/Route15Gate1F.asm" -INCLUDE "data/mapObjects/Route15Gate1F.asm" - -INCLUDE "data/mapHeaders/Route15Gate2F.asm" -INCLUDE "scripts/Route15Gate2F.asm" -INCLUDE "data/mapObjects/Route15Gate2F.asm" - -INCLUDE "data/mapHeaders/Route16Gate1F.asm" -INCLUDE "scripts/Route16Gate1F.asm" -INCLUDE "data/mapObjects/Route16Gate1F.asm" -Route16Gate1F_Blocks: INCBIN "maps/Route16Gate1F.blk" - -INCLUDE "data/mapHeaders/Route16Gate2F.asm" -INCLUDE "scripts/Route16Gate2F.asm" -INCLUDE "data/mapObjects/Route16Gate2F.asm" - -INCLUDE "data/mapHeaders/Route18Gate1F.asm" -INCLUDE "scripts/Route18Gate1F.asm" -INCLUDE "data/mapObjects/Route18Gate1F.asm" - -INCLUDE "data/mapHeaders/Route18Gate2F.asm" -INCLUDE "scripts/Route18Gate2F.asm" -INCLUDE "data/mapObjects/Route18Gate2F.asm" - -INCLUDE "data/mapHeaders/MtMoon1F.asm" -INCLUDE "scripts/MtMoon1F.asm" -INCLUDE "data/mapObjects/MtMoon1F.asm" -MtMoon1F_Blocks: INCBIN "maps/MtMoon1F.blk" - -INCLUDE "data/mapHeaders/MtMoonB2F.asm" -INCLUDE "scripts/MtMoonB2F.asm" -INCLUDE "data/mapObjects/MtMoonB2F.asm" -MtMoonB2F_Blocks: INCBIN "maps/MtMoonB2F.blk" -INCLUDE "scripts/MtMoonB2F_2.asm" - -INCLUDE "data/mapHeaders/SafariZoneWest.asm" -INCLUDE "scripts/SafariZoneWest.asm" -INCLUDE "data/mapObjects/SafariZoneWest.asm" -SafariZoneWest_Blocks: INCBIN "maps/SafariZoneWest.blk" - -INCLUDE "data/mapHeaders/SafariZoneSecretHouse.asm" -INCLUDE "scripts/SafariZoneSecretHouse.asm" -INCLUDE "data/mapObjects/SafariZoneSecretHouse.asm" -SafariZoneSecretHouse_Blocks: INCBIN "maps/SafariZoneSecretHouse.blk" - - -SECTION "bank13", ROMX - -TrainerPics:: -YoungsterPic:: INCBIN "pic/trainer/youngster.pic" -BugCatcherPic:: INCBIN "pic/trainer/bugcatcher.pic" -LassPic:: INCBIN "pic/trainer/lass.pic" -SailorPic:: INCBIN "pic/trainer/sailor.pic" -JrTrainerMPic:: INCBIN "pic/trainer/jr.trainerm.pic" -JrTrainerFPic:: INCBIN "pic/trainer/jr.trainerf.pic" -PokemaniacPic:: INCBIN "pic/trainer/pokemaniac.pic" -SuperNerdPic:: INCBIN "pic/trainer/supernerd.pic" -HikerPic:: INCBIN "pic/trainer/hiker.pic" -BikerPic:: INCBIN "pic/trainer/biker.pic" -BurglarPic:: INCBIN "pic/trainer/burglar.pic" -EngineerPic:: INCBIN "pic/trainer/engineer.pic" -FisherPic:: INCBIN "pic/trainer/fisher.pic" -SwimmerPic:: INCBIN "pic/trainer/swimmer.pic" -CueBallPic:: INCBIN "pic/trainer/cueball.pic" -GamblerPic:: INCBIN "pic/trainer/gambler.pic" -BeautyPic:: INCBIN "pic/trainer/beauty.pic" -PsychicPic:: INCBIN "pic/trainer/psychic.pic" -RockerPic:: INCBIN "pic/trainer/rocker.pic" -JugglerPic:: INCBIN "pic/trainer/juggler.pic" -TamerPic:: INCBIN "pic/trainer/tamer.pic" -BirdKeeperPic:: INCBIN "pic/trainer/birdkeeper.pic" -BlackbeltPic:: INCBIN "pic/trainer/blackbelt.pic" -Rival1Pic:: INCBIN "pic/ytrainer/rival1.pic" -ProfOakPic:: INCBIN "pic/trainer/prof.oak.pic" -ChiefPic:: -ScientistPic:: INCBIN "pic/trainer/scientist.pic" -GiovanniPic:: INCBIN "pic/trainer/giovanni.pic" -RocketPic:: INCBIN "pic/trainer/rocket.pic" -CooltrainerMPic:: INCBIN "pic/trainer/cooltrainerm.pic" -CooltrainerFPic:: INCBIN "pic/trainer/cooltrainerf.pic" -BrunoPic:: INCBIN "pic/trainer/bruno.pic" -BrockPic:: INCBIN "pic/ytrainer/brock.pic" -MistyPic:: INCBIN "pic/ytrainer/misty.pic" -LtSurgePic:: INCBIN "pic/trainer/lt.surge.pic" -ErikaPic:: INCBIN "pic/ytrainer/erika.pic" -KogaPic:: INCBIN "pic/trainer/koga.pic" -BlainePic:: INCBIN "pic/trainer/blaine.pic" -SabrinaPic:: INCBIN "pic/trainer/sabrina.pic" -GentlemanPic:: INCBIN "pic/trainer/gentleman.pic" -Rival2Pic:: INCBIN "pic/ytrainer/rival2.pic" -Rival3Pic:: INCBIN "pic/ytrainer/rival3.pic" -LoreleiPic:: INCBIN "pic/trainer/lorelei.pic" -ChannelerPic:: INCBIN "pic/trainer/channeler.pic" -AgathaPic:: INCBIN "pic/trainer/agatha.pic" -LancePic:: INCBIN "pic/trainer/lance.pic" -JessieJamesPic:: INCBIN "pic/ytrainer/jessiejames.pic" - -INCLUDE "data/mapHeaders/TradeCenter.asm" -INCLUDE "scripts/TradeCenter.asm" -INCLUDE "data/mapObjects/TradeCenter.asm" -TradeCenter_Blocks: INCBIN "maps/TradeCenter.blk" - -INCLUDE "data/mapHeaders/Colosseum.asm" -INCLUDE "scripts/Colosseum.asm" -INCLUDE "data/mapObjects/Colosseum.asm" -Colosseum_Blocks: INCBIN "maps/Colosseum.blk" - - -SECTION "bank14", ROMX - -INCLUDE "data/mapHeaders/Route22.asm" -INCLUDE "data/mapObjects/Route22.asm" -Route22_Blocks: INCBIN "maps/Route22.blk" - -INCLUDE "data/mapHeaders/Route20.asm" -INCLUDE "data/mapObjects/Route20.asm" -Route20_Blocks: INCBIN "maps/Route20.blk" - -INCLUDE "data/mapHeaders/Route23.asm" -INCLUDE "data/mapObjects/Route23.asm" -Route23_Blocks: INCBIN "maps/Route23.blk" - -INCLUDE "data/mapHeaders/Route24.asm" -INCLUDE "data/mapObjects/Route24.asm" -Route24_Blocks: INCBIN "maps/Route24.blk" - -INCLUDE "data/mapHeaders/Route25.asm" -INCLUDE "data/mapObjects/Route25.asm" -Route25_Blocks: INCBIN "maps/Route25.blk" - -INCLUDE "data/mapHeaders/IndigoPlateau.asm" -INCLUDE "scripts/IndigoPlateau.asm" -INCLUDE "data/mapObjects/IndigoPlateau.asm" -IndigoPlateau_Blocks: INCBIN "maps/IndigoPlateau.blk" - -INCLUDE "data/mapHeaders/SaffronCity.asm" -INCLUDE "data/mapObjects/SaffronCity.asm" -SaffronCity_Blocks: INCBIN "maps/SaffronCity.blk" -INCLUDE "scripts/SaffronCity.asm" - -INCLUDE "scripts/Route20.asm" -INCLUDE "scripts/Route22.asm" -INCLUDE "scripts/Route23.asm" -INCLUDE "scripts/Route24.asm" -INCLUDE "scripts/Route25.asm" - -INCLUDE "data/mapHeaders/VictoryRoad2F.asm" -INCLUDE "scripts/VictoryRoad2F.asm" -INCLUDE "data/mapObjects/VictoryRoad2F.asm" -VictoryRoad2F_Blocks: INCBIN "maps/VictoryRoad2F.blk" - -INCLUDE "data/mapHeaders/MtMoonB1F.asm" -INCLUDE "scripts/MtMoonB1F.asm" -INCLUDE "data/mapObjects/MtMoonB1F.asm" -MtMoonB1F_Blocks: INCBIN "maps/MtMoonB1F.blk" - -INCLUDE "data/mapHeaders/SilphCo7F.asm" -INCLUDE "scripts/SilphCo7F.asm" -INCLUDE "data/mapObjects/SilphCo7F.asm" -SilphCo7F_Blocks: INCBIN "maps/SilphCo7F.blk" - -INCLUDE "data/mapHeaders/PokemonMansion2F.asm" -INCLUDE "scripts/PokemonMansion2F.asm" -INCLUDE "data/mapObjects/PokemonMansion2F.asm" -PokemonMansion2F_Blocks: INCBIN "maps/PokemonMansion2F.blk" - -INCLUDE "data/mapHeaders/PokemonMansion3F.asm" -INCLUDE "scripts/PokemonMansion3F.asm" -INCLUDE "data/mapObjects/PokemonMansion3F.asm" -PokemonMansion3F_Blocks: INCBIN "maps/PokemonMansion3F.blk" - -INCLUDE "data/mapHeaders/PokemonMansionB1F.asm" -INCLUDE "scripts/PokemonMansionB1F.asm" -INCLUDE "data/mapObjects/PokemonMansionB1F.asm" -PokemonMansionB1F_Blocks: INCBIN "maps/PokemonMansionB1F.blk" - -INCLUDE "engine/overworld/card_key.asm" - -INCLUDE "engine/menu/prize_menu.asm" - -INCLUDE "engine/hidden_object_functions14.asm" - - -SECTION "bank15", ROMX +SECTION "bank10", ROMX -INCLUDE "data/mapHeaders/Route2.asm" -INCLUDE "data/mapObjects/Route2.asm" -Route2_Blocks: INCBIN "maps/Route2.blk" +INCLUDE "engine/menus/pokedex.asm" +INCLUDE "engine/overworld/emotion_bubbles.asm" +INCLUDE "engine/movie/trade.asm" +INCLUDE "engine/movie/intro.asm" +INCLUDE "engine/movie/trade2.asm" +INCLUDE "engine/menus/options.asm" -INCLUDE "data/mapHeaders/Route3.asm" -INCLUDE "data/mapObjects/Route3.asm" -Route3_Blocks: INCBIN "maps/Route3.blk" -INCLUDE "data/mapHeaders/Route4.asm" -INCLUDE "data/mapObjects/Route4.asm" -Route4_Blocks: INCBIN "maps/Route4.blk" +SECTION "Pokédex Rating", ROMX -INCLUDE "data/mapHeaders/Route5.asm" -INCLUDE "data/mapObjects/Route5.asm" -Route5_Blocks: INCBIN "maps/Route5.blk" +INCLUDE "engine/events/pokedex_rating.asm" -INCLUDE "data/mapHeaders/Route9.asm" -INCLUDE "data/mapObjects/Route9.asm" -Route9_Blocks: INCBIN "maps/Route9.blk" -INCLUDE "data/mapHeaders/Route13.asm" -INCLUDE "data/mapObjects/Route13.asm" -Route13_Blocks: INCBIN "maps/Route13.blk" +SECTION "Dungeon Warps", ROMX -INCLUDE "data/mapHeaders/Route14.asm" -INCLUDE "data/mapObjects/Route14.asm" -Route14_Blocks: INCBIN "maps/Route14.blk" +INCLUDE "engine/overworld/dungeon_warps.asm" -INCLUDE "data/mapHeaders/Route17.asm" -INCLUDE "data/mapObjects/Route17.asm" -Route17_Blocks: INCBIN "maps/Route17.blk" -INCLUDE "data/mapHeaders/Route19.asm" -INCLUDE "data/mapObjects/Route19.asm" -Route19_Blocks: INCBIN "maps/Route19.blk" +SECTION "Hidden Objects 2", ROMX -INCLUDE "data/mapHeaders/Route21.asm" -INCLUDE "data/mapObjects/Route21.asm" -Route21_Blocks: INCBIN "maps/Route21.blk" +INCLUDE "engine/events/card_key.asm" +INCLUDE "engine/events/prize_menu.asm" +INCLUDE "engine/events/hidden_objects/school_notebooks.asm" +INCLUDE "engine/events/hidden_objects/fighting_dojo.asm" +INCLUDE "engine/events/hidden_objects/indigo_plateau_hq.asm" -VermilionOldRodHouse_Blocks: -Route12SuperRodHouse_Blocks: -Daycare_Blocks: INCBIN "maps/Daycare.blk" -FuchsiaGoodRodHouse_Blocks: INCBIN "maps/FuchsiaGoodRodHouse.blk" +SECTION "Battle Engine 9", ROMX INCLUDE "engine/battle/experience.asm" -INCLUDE "scripts/Route2.asm" -INCLUDE "scripts/Route3.asm" -INCLUDE "scripts/Route4.asm" -INCLUDE "scripts/Route5.asm" -INCLUDE "scripts/Route9.asm" -INCLUDE "scripts/Route13.asm" -INCLUDE "scripts/Route14.asm" -INCLUDE "scripts/Route17.asm" -INCLUDE "scripts/Route19.asm" -INCLUDE "scripts/Route21.asm" - -INCLUDE "data/mapHeaders/VermilionOldRodHouse.asm" -INCLUDE "scripts/VermilionOldRodHouse.asm" -INCLUDE "data/mapObjects/VermilionOldRodHouse.asm" - -INCLUDE "data/mapHeaders/CeladonMart2F.asm" -INCLUDE "scripts/CeladonMart2F.asm" -INCLUDE "data/mapObjects/CeladonMart2F.asm" -CeladonMart2F_Blocks: INCBIN "maps/CeladonMart2F.blk" - -INCLUDE "data/mapHeaders/FuchsiaGoodRodHouse.asm" -INCLUDE "scripts/FuchsiaGoodRodHouse.asm" -INCLUDE "data/mapObjects/FuchsiaGoodRodHouse.asm" - -INCLUDE "data/mapHeaders/Daycare.asm" -INCLUDE "scripts/Daycare.asm" -INCLUDE "data/mapObjects/Daycare.asm" -INCLUDE "data/mapHeaders/Route12SuperRodHouse.asm" -INCLUDE "scripts/Route12SuperRodHouse.asm" -INCLUDE "data/mapObjects/Route12SuperRodHouse.asm" +SECTION "Diploma", ROMX -INCLUDE "data/mapHeaders/SilphCo8F.asm" -INCLUDE "scripts/SilphCo8F.asm" -INCLUDE "data/mapObjects/SilphCo8F.asm" -SilphCo8F_Blocks: INCBIN "maps/SilphCo8F.blk" +INCLUDE "engine/events/diploma.asm" -INCLUDE "engine/menu/diploma.asm" -INCLUDE "engine/overworld/trainers.asm" +SECTION "Trainer Sight", ROMX +INCLUDE "engine/overworld/trainer_sight.asm" -SECTION "bank16", ROMX -INCLUDE "data/mapHeaders/Route6.asm" -INCLUDE "data/mapObjects/Route6.asm" -Route6_Blocks: INCBIN "maps/Route6.blk" +SECTION "Battle Engine 10", ROMX -INCLUDE "data/mapHeaders/Route8.asm" -INCLUDE "data/mapObjects/Route8.asm" -Route8_Blocks: INCBIN "maps/Route8.blk" +INCLUDE "engine/pokemon/experience.asm" +INCLUDE "engine/pokemon/status_ailments.asm" +INCLUDE "engine/events/oaks_aide.asm" -INCLUDE "data/mapHeaders/Route10.asm" -INCLUDE "data/mapObjects/Route10.asm" -Route10_Blocks: INCBIN "maps/Route10.blk" -INCLUDE "data/mapHeaders/Route11.asm" -INCLUDE "data/mapObjects/Route11.asm" -Route11_Blocks: INCBIN "maps/Route11.blk" +SECTION "Saffron Guards", ROMX -INCLUDE "data/mapHeaders/Route12.asm" -INCLUDE "data/mapObjects/Route12.asm" -Route12_Blocks: INCBIN "maps/Route12.blk" +INCLUDE "engine/events/saffron_guards.asm" -INCLUDE "data/mapHeaders/Route15.asm" -INCLUDE "data/mapObjects/Route15.asm" -Route15_Blocks: INCBIN "maps/Route15.blk" -INCLUDE "data/mapHeaders/Route16.asm" -INCLUDE "data/mapObjects/Route16.asm" -Route16_Blocks: INCBIN "maps/Route16.blk" +SECTION "Starter Dex", ROMX -INCLUDE "data/mapHeaders/Route18.asm" -INCLUDE "data/mapObjects/Route18.asm" -Route18_Blocks: INCBIN "maps/Route18.blk" +INCLUDE "engine/events/starter_dex.asm" - INCBIN "maps/UnusedPokecenterCopy.blk" -INCLUDE "engine/experience.asm" +SECTION "Hidden Objects 3", ROMX -INCLUDE "engine/status_ailments.asm" +INCLUDE "engine/movie/evolution.asm" +INCLUDE "engine/pokemon/set_types.asm" +INCLUDE "engine/events/hidden_objects/reds_room.asm" +INCLUDE "engine/events/hidden_objects/route_15_binoculars.asm" +INCLUDE "engine/events/hidden_objects/museum_fossils.asm" +INCLUDE "engine/events/hidden_objects/fanclub_pictures.asm" +INCLUDE "engine/events/hidden_objects/museum_fossils2.asm" +INCLUDE "engine/events/hidden_objects/school_blackboard.asm" +INCLUDE "engine/events/hidden_objects/vermilion_gym_trash.asm" -INCLUDE "engine/overworld/oaks_aide.asm" -INCLUDE "scripts/Route6.asm" -INCLUDE "scripts/Route8.asm" -INCLUDE "scripts/Route10.asm" -INCLUDE "scripts/Route11.asm" -INCLUDE "scripts/Route12.asm" -INCLUDE "scripts/Route15.asm" -INCLUDE "scripts/Route16.asm" -INCLUDE "scripts/Route18.asm" +SECTION "Cinnabar Lab Fossils", ROMX -INCLUDE "data/mapHeaders/PokemonFanClub.asm" -INCLUDE "scripts/PokemonFanClub.asm" -INCLUDE "data/mapObjects/PokemonFanClub.asm" -PokemonFanClub_Blocks: INCBIN "maps/PokemonFanClub.blk" +INCLUDE "engine/events/cinnabar_lab.asm" -INCLUDE "data/mapHeaders/SilphCo2F.asm" -INCLUDE "scripts/SilphCo2F.asm" -INCLUDE "data/mapObjects/SilphCo2F.asm" -SilphCo2F_Blocks: INCBIN "maps/SilphCo2F.blk" -INCLUDE "data/mapHeaders/SilphCo3F.asm" -INCLUDE "scripts/SilphCo3F.asm" -INCLUDE "data/mapObjects/SilphCo3F.asm" -SilphCo3F_Blocks: INCBIN "maps/SilphCo3F.blk" +SECTION "Hidden Objects 4", ROMX -INCLUDE "data/mapHeaders/SilphCo10F.asm" -INCLUDE "scripts/SilphCo10F.asm" -INCLUDE "data/mapObjects/SilphCo10F.asm" -SilphCo10F_Blocks: INCBIN "maps/SilphCo10F.blk" +INCLUDE "engine/events/hidden_objects/gym_statues.asm" +INCLUDE "engine/events/hidden_objects/bench_guys.asm" +INCLUDE "engine/events/hidden_objects/blues_room.asm" +INCLUDE "engine/events/hidden_objects/pokecenter_pc.asm" -INCLUDE "data/mapHeaders/LancesRoom.asm" -INCLUDE "scripts/LancesRoom.asm" -INCLUDE "data/mapObjects/LancesRoom.asm" -LancesRoom_Blocks: INCBIN "maps/LancesRoom.blk" -INCLUDE "data/mapHeaders/HallOfFame.asm" -INCLUDE "scripts/HallOfFame.asm" -INCLUDE "data/mapObjects/HallOfFame.asm" -HallOfFame_Blocks: INCBIN "maps/HallOfFame.blk" +SECTION "Battle Engine 11", ROMX -INCLUDE "engine/overworld/saffron_guards.asm" - - -SECTION "bank17", ROMX - -SaffronMart_Blocks: -LavenderMart_Blocks: -CeruleanMart_Blocks: -VermilionMart_Blocks: INCBIN "maps/VermilionMart.blk" - -CopycatsHouse2F_Blocks: -RedsHouse2F_Blocks: INCBIN "maps/RedsHouse2F.blk" - -Museum1F_Blocks: INCBIN "maps/Museum1F.blk" - -Museum2F_Blocks: INCBIN "maps/Museum2F.blk" - -SaffronPokecenter_Blocks: -VermilionPokecenter_Blocks: -LavenderPokecenter_Blocks: -PewterPokecenter_Blocks: INCBIN "maps/PewterPokecenter.blk" - -UndergroundPathRoute7_Blocks: -UndergroundPathRoute7Copy_Blocks: -UndergroundPathRoute6_Blocks: -UndergroundPathRoute5_Blocks: INCBIN "maps/UndergroundPathRoute5.blk" - -Route2Gate_Blocks: -ViridianForestSouthGate_Blocks: -ViridianForestNorthGate_Blocks: INCBIN "maps/ViridianForestNorthGate.blk" - -INCLUDE "data/mapHeaders/RedsHouse2F.asm" -INCLUDE "scripts/RedsHouse2F.asm" -INCLUDE "data/mapObjects/RedsHouse2F.asm" - -INCLUDE "engine/predefs17.asm" - -INCLUDE "data/mapHeaders/Museum1F.asm" -INCLUDE "scripts/Museum1F.asm" -INCLUDE "data/mapObjects/Museum1F.asm" - -INCLUDE "data/mapHeaders/Museum2F.asm" -INCLUDE "scripts/Museum2F.asm" -INCLUDE "data/mapObjects/Museum2F.asm" - -INCLUDE "data/mapHeaders/PewterGym.asm" -INCLUDE "scripts/PewterGym.asm" -INCLUDE "data/mapObjects/PewterGym.asm" -PewterGym_Blocks: INCBIN "maps/PewterGym.blk" - -INCLUDE "data/mapHeaders/PewterPokecenter.asm" -INCLUDE "scripts/PewterPokecenter.asm" -INCLUDE "data/mapObjects/PewterPokecenter.asm" - -INCLUDE "data/mapHeaders/CeruleanPokecenter.asm" -INCLUDE "scripts/CeruleanPokecenter.asm" -INCLUDE "data/mapObjects/CeruleanPokecenter.asm" -CeruleanPokecenter_Blocks: INCBIN "maps/CeruleanPokecenter.blk" - -INCLUDE "data/mapHeaders/CeruleanGym.asm" -INCLUDE "scripts/CeruleanGym.asm" -INCLUDE "data/mapObjects/CeruleanGym.asm" -CeruleanGym_Blocks: INCBIN "maps/CeruleanGym.blk" - -INCLUDE "data/mapHeaders/CeruleanMart.asm" -INCLUDE "scripts/CeruleanMart.asm" -INCLUDE "data/mapObjects/CeruleanMart.asm" - -INCLUDE "data/mapHeaders/LavenderPokecenter.asm" -INCLUDE "scripts/LavenderPokecenter.asm" -INCLUDE "data/mapObjects/LavenderPokecenter.asm" - -INCLUDE "data/mapHeaders/LavenderMart.asm" -INCLUDE "scripts/LavenderMart.asm" -INCLUDE "data/mapObjects/LavenderMart.asm" - -INCLUDE "data/mapHeaders/VermilionPokecenter.asm" -INCLUDE "scripts/VermilionPokecenter.asm" -INCLUDE "data/mapObjects/VermilionPokecenter.asm" - -INCLUDE "data/mapHeaders/VermilionMart.asm" -INCLUDE "scripts/VermilionMart.asm" -INCLUDE "data/mapObjects/VermilionMart.asm" - -INCLUDE "data/mapHeaders/VermilionGym.asm" -INCLUDE "scripts/VermilionGym.asm" -INCLUDE "data/mapObjects/VermilionGym.asm" -VermilionGym_Blocks: INCBIN "maps/VermilionGym.blk" - -INCLUDE "data/mapHeaders/CopycatsHouse2F.asm" -INCLUDE "scripts/CopycatsHouse2F.asm" -INCLUDE "data/mapObjects/CopycatsHouse2F.asm" - -INCLUDE "data/mapHeaders/FightingDojo.asm" -INCLUDE "scripts/FightingDojo.asm" -INCLUDE "data/mapObjects/FightingDojo.asm" -FightingDojo_Blocks: INCBIN "maps/FightingDojo.blk" - -INCLUDE "data/mapHeaders/SaffronGym.asm" -INCLUDE "scripts/SaffronGym.asm" -INCLUDE "data/mapObjects/SaffronGym.asm" -SaffronGym_Blocks: INCBIN "maps/SaffronGym.blk" - -INCLUDE "data/mapHeaders/SaffronMart.asm" -INCLUDE "scripts/SaffronMart.asm" -INCLUDE "data/mapObjects/SaffronMart.asm" - -INCLUDE "data/mapHeaders/SilphCo1F.asm" -INCLUDE "scripts/SilphCo1F.asm" -INCLUDE "data/mapObjects/SilphCo1F.asm" -SilphCo1F_Blocks: INCBIN "maps/SilphCo1F.blk" - -INCLUDE "data/mapHeaders/SaffronPokecenter.asm" -INCLUDE "scripts/SaffronPokecenter.asm" -INCLUDE "data/mapObjects/SaffronPokecenter.asm" - -INCLUDE "data/mapHeaders/ViridianForestNorthGate.asm" -INCLUDE "scripts/ViridianForestNorthGate.asm" -INCLUDE "data/mapObjects/ViridianForestNorthGate.asm" - -INCLUDE "data/mapHeaders/Route2Gate.asm" -INCLUDE "scripts/Route2Gate.asm" -INCLUDE "data/mapObjects/Route2Gate.asm" - -INCLUDE "data/mapHeaders/ViridianForestSouthGate.asm" -INCLUDE "scripts/ViridianForestSouthGate.asm" -INCLUDE "data/mapObjects/ViridianForestSouthGate.asm" - -INCLUDE "data/mapHeaders/UndergroundPathRoute5.asm" -INCLUDE "scripts/UndergroundPathRoute5.asm" -INCLUDE "data/mapObjects/UndergroundPathRoute5.asm" - -INCLUDE "data/mapHeaders/UndergroundPathRoute6.asm" -INCLUDE "scripts/UndergroundPathRoute6.asm" -INCLUDE "data/mapObjects/UndergroundPathRoute6.asm" - -INCLUDE "data/mapHeaders/UndergroundPathRoute7.asm" -INCLUDE "scripts/UndergroundPathRoute7.asm" -INCLUDE "data/mapObjects/UndergroundPathRoute7.asm" - -INCLUDE "data/mapHeaders/UndergroundPathRoute7Copy.asm" -INCLUDE "scripts/UndergroundPathRoute7Copy.asm" -INCLUDE "data/mapObjects/UndergroundPathRoute7Copy.asm" - -INCLUDE "data/mapHeaders/SilphCo9F.asm" -INCLUDE "scripts/SilphCo9F.asm" -INCLUDE "data/mapObjects/SilphCo9F.asm" -SilphCo9F_Blocks: INCBIN "maps/SilphCo9F.blk" - -INCLUDE "data/mapHeaders/VictoryRoad1F.asm" -INCLUDE "scripts/VictoryRoad1F.asm" -INCLUDE "data/mapObjects/VictoryRoad1F.asm" -VictoryRoad1F_Blocks: INCBIN "maps/VictoryRoad1F.blk" - -INCLUDE "engine/evolution.asm" - -INCLUDE "engine/predefs17_2.asm" - -INCLUDE "engine/hidden_object_functions17.asm" - - -SECTION "bank18", ROMX - -ViridianForest_Blocks: INCBIN "maps/ViridianForest.blk" -UndergroundPathNorthSouth_Blocks: INCBIN "maps/UndergroundPathNorthSouth.blk" -UndergroundPathWestEast_Blocks: INCBIN "maps/UndergroundPathWestEast.blk" - - INCBIN "maps/UnusedDiglettsCaveCopy.blk" - -SSAnneB1FRooms_Blocks: -SSAnne2FRooms_Blocks: INCBIN "maps/SSAnne2FRooms.blk" - -INCLUDE "data/mapHeaders/PokemonTower1F.asm" -INCLUDE "scripts/PokemonTower1F.asm" -INCLUDE "data/mapObjects/PokemonTower1F.asm" -PokemonTower1F_Blocks: INCBIN "maps/PokemonTower1F.blk" - -INCLUDE "data/mapHeaders/PokemonTower2F.asm" -INCLUDE "scripts/PokemonTower2F.asm" -INCLUDE "data/mapObjects/PokemonTower2F.asm" -PokemonTower2F_Blocks: INCBIN "maps/PokemonTower2F.blk" - -INCLUDE "data/mapHeaders/PokemonTower3F.asm" -INCLUDE "scripts/PokemonTower3F.asm" -INCLUDE "data/mapObjects/PokemonTower3F.asm" -PokemonTower3F_Blocks: INCBIN "maps/PokemonTower3F.blk" - -INCLUDE "data/mapHeaders/PokemonTower4F.asm" -INCLUDE "scripts/PokemonTower4F.asm" -INCLUDE "data/mapObjects/PokemonTower4F.asm" -PokemonTower4F_Blocks: INCBIN "maps/PokemonTower4F.blk" - -INCLUDE "data/mapHeaders/PokemonTower5F.asm" -INCLUDE "scripts/PokemonTower5F.asm" -INCLUDE "data/mapObjects/PokemonTower5F.asm" -PokemonTower5F_Blocks: INCBIN "maps/PokemonTower5F.blk" - -INCLUDE "data/mapHeaders/PokemonTower6F.asm" -INCLUDE "scripts/PokemonTower6F.asm" -INCLUDE "data/mapObjects/PokemonTower6F.asm" -PokemonTower6F_Blocks: INCBIN "maps/PokemonTower6F.blk" - - INCBIN "maps/UnusedEmptyMap.blk" - -INCLUDE "data/mapHeaders/PokemonTower7F.asm" -INCLUDE "scripts/PokemonTower7F.asm" -INCLUDE "data/mapObjects/PokemonTower7F.asm" -PokemonTower7F_Blocks: INCBIN "maps/PokemonTower7F.blk" - -INCLUDE "engine/overworld/cinnabar_lab.asm" - -INCLUDE "data/mapHeaders/ViridianForest.asm" -INCLUDE "scripts/ViridianForest.asm" -INCLUDE "data/mapObjects/ViridianForest.asm" - -INCLUDE "data/mapHeaders/SSAnne1F.asm" -INCLUDE "scripts/SSAnne1F.asm" -INCLUDE "data/mapObjects/SSAnne1F.asm" -SSAnne1F_Blocks: INCBIN "maps/SSAnne1F.blk" - -INCLUDE "data/mapHeaders/SSAnne2F.asm" -INCLUDE "scripts/SSAnne2F.asm" -INCLUDE "data/mapObjects/SSAnne2F.asm" -SSAnne2F_Blocks: INCBIN "maps/SSAnne2F.blk" - -INCLUDE "data/mapHeaders/SSAnneB1F.asm" -INCLUDE "scripts/SSAnneB1F.asm" -INCLUDE "data/mapObjects/SSAnneB1F.asm" -SSAnneB1F_Blocks: INCBIN "maps/SSAnneB1F.blk" - -INCLUDE "data/mapHeaders/SSAnneBow.asm" -INCLUDE "scripts/SSAnneBow.asm" -INCLUDE "data/mapObjects/SSAnneBow.asm" -SSAnneBow_Blocks: INCBIN "maps/SSAnneBow.blk" - -INCLUDE "data/mapHeaders/SSAnneKitchen.asm" -INCLUDE "scripts/SSAnneKitchen.asm" -INCLUDE "data/mapObjects/SSAnneKitchen.asm" -SSAnneKitchen_Blocks: INCBIN "maps/SSAnneKitchen.blk" - -INCLUDE "data/mapHeaders/SSAnneCaptainsRoom.asm" -INCLUDE "scripts/SSAnneCaptainsRoom.asm" -INCLUDE "data/mapObjects/SSAnneCaptainsRoom.asm" -SSAnneCaptainsRoom_Blocks: INCBIN "maps/SSAnneCaptainsRoom.blk" - -INCLUDE "data/mapHeaders/SSAnne1FRooms.asm" -INCLUDE "scripts/SSAnne1FRooms.asm" -INCLUDE "data/mapObjects/SSAnne1FRooms.asm" -SSAnne1FRooms_Blocks: INCBIN "maps/SSAnne1FRooms.blk" - -INCLUDE "data/mapHeaders/SSAnne2FRooms.asm" -INCLUDE "scripts/SSAnne2FRooms.asm" -INCLUDE "data/mapObjects/SSAnne2FRooms.asm" - -INCLUDE "data/mapHeaders/SSAnneB1FRooms.asm" -INCLUDE "scripts/SSAnneB1FRooms.asm" -INCLUDE "data/mapObjects/SSAnneB1FRooms.asm" - -INCLUDE "data/mapHeaders/UndergroundPathNorthSouth.asm" -INCLUDE "scripts/UndergroundPathNorthSouth.asm" -INCLUDE "data/mapObjects/UndergroundPathNorthSouth.asm" - -INCLUDE "data/mapHeaders/UndergroundPathWestEast.asm" -INCLUDE "scripts/UndergroundPathWestEast.asm" -INCLUDE "data/mapObjects/UndergroundPathWestEast.asm" - -INCLUDE "data/mapHeaders/DiglettsCave.asm" -INCLUDE "scripts/DiglettsCave.asm" -INCLUDE "data/mapObjects/DiglettsCave.asm" -DiglettsCave_Blocks: INCBIN "maps/DiglettsCave.blk" - -INCLUDE "data/mapHeaders/SilphCo11F.asm" -INCLUDE "scripts/SilphCo11F.asm" -INCLUDE "data/mapObjects/SilphCo11F.asm" -SilphCo11F_Blocks: INCBIN "maps/SilphCo11F.blk" - -INCLUDE "engine/hidden_object_functions18.asm" - - -SECTION "bank19", ROMX - -Overworld_GFX: INCBIN "gfx/tilesets/overworld.2bpp" - ds 32 -Overworld_Block: INCBIN "gfx/blocksets/overworld.bst" - -RedsHouse1_GFX: -RedsHouse2_GFX: INCBIN "gfx/tilesets/reds_house.2bpp" - ds 16 -RedsHouse1_Block: -RedsHouse2_Block: INCBIN "gfx/blocksets/reds_house.bst" - -House_GFX: INCBIN "gfx/tilesets/house.2bpp" -House_Block: INCBIN "gfx/blocksets/house.bst" -Mansion_GFX: INCBIN "gfx/tilesets/mansion.2bpp" -Mansion_Block: INCBIN "gfx/blocksets/mansion.bst" -ShipPort_GFX: INCBIN "gfx/tilesets/ship_port.2bpp" -ShipPort_Block: INCBIN "gfx/blocksets/ship_port.bst" -Interior_GFX: INCBIN "gfx/tilesets/interior.2bpp" -Interior_Block: INCBIN "gfx/blocksets/interior.bst" -Plateau_GFX: INCBIN "gfx/tilesets/plateau.2bpp" -Plateau_Block: INCBIN "gfx/blocksets/plateau.bst" - - -SECTION "bank1A", ROMX - -INCBIN "gfx/blueversion.1bpp" ; unused - -Dojo_GFX: -Gym_GFX: INCBIN "gfx/tilesets/gym.2bpp" -Dojo_Block: -Gym_Block: INCBIN "gfx/blocksets/gym.bst" - -Mart_GFX: -Pokecenter_GFX: INCBIN "gfx/tilesets/pokecenter.2bpp" -Mart_Block: -Pokecenter_Block: INCBIN "gfx/blocksets/pokecenter.bst" - -ForestGate_GFX: -Museum_GFX: -Gate_GFX: INCBIN "gfx/tilesets/gate.2bpp" -ForestGate_Block: -Museum_Block: -Gate_Block: INCBIN "gfx/blocksets/gate.bst" - -Forest_GFX: INCBIN "gfx/tilesets/forest.2bpp" -Forest_Block: INCBIN "gfx/blocksets/forest.bst" -Facility_GFX: INCBIN "gfx/tilesets/facility.2bpp" -Facility_Block: INCBIN "gfx/blocksets/facility.bst" - - -SECTION "bank1B", ROMX - -Cemetery_GFX: INCBIN "gfx/tilesets/cemetery.2bpp" -Cemetery_Block: INCBIN "gfx/blocksets/cemetery.bst" -Cavern_GFX: INCBIN "gfx/tilesets/cavern.2bpp" -Cavern_Block: INCBIN "gfx/blocksets/cavern.bst" -Lobby_GFX: INCBIN "gfx/tilesets/lobby.2bpp" -Lobby_Block: INCBIN "gfx/blocksets/lobby.bst" -Ship_GFX: INCBIN "gfx/tilesets/ship.2bpp" -Ship_Block: INCBIN "gfx/blocksets/ship.bst" -Lab_GFX: INCBIN "gfx/tilesets/lab.2bpp" -Lab_Block: INCBIN "gfx/blocksets/lab.bst" -Club_GFX: INCBIN "gfx/tilesets/club.2bpp" -Club_Block: INCBIN "gfx/blocksets/club.bst" -Underground_GFX: INCBIN "gfx/tilesets/underground.2bpp" -Underground_Block: INCBIN "gfx/blocksets/underground.bst" +INCLUDE "gfx/version.asm" SECTION "bank1C", ROMX -INCLUDE "engine/gamefreak.asm" -INCLUDE "engine/hall_of_fame.asm" +INCLUDE "engine/movie/splash.asm" +INCLUDE "engine/movie/hall_of_fame.asm" INCLUDE "engine/overworld/healing_machine.asm" INCLUDE "engine/overworld/player_animations.asm" INCLUDE "engine/battle/ghost_marowak_anim.asm" INCLUDE "engine/battle/battle_transitions.asm" -INCLUDE "engine/town_map.asm" -INCLUDE "engine/mon_party_sprites.asm" -INCLUDE "engine/in_game_trades.asm" -INCLUDE "engine/palettes.asm" -INCLUDE "engine/save.asm" +INCLUDE "engine/items/town_map.asm" +INCLUDE "engine/gfx/mon_icons.asm" +INCLUDE "engine/events/in_game_trades.asm" +INCLUDE "engine/gfx/palettes.asm" +INCLUDE "engine/menus/save.asm" -SECTION "bank1D", ROMX +SECTION "Itemfinder 1", ROMX -CopycatsHouse1F_Blocks: INCBIN "maps/CopycatsHouse1F.blk" +INCLUDE "engine/items/itemfinder.asm" -CinnabarMart_Blocks: -PewterMart_Blocks: INCBIN "maps/PewterMart.blk" -FuchsiaBillsGrandpasHouse_Blocks: INCBIN "maps/FuchsiaBillsGrandpasHouse.blk" +SECTION "Vending Machine", ROMX -CinnabarPokecenter_Blocks: -FuchsiaPokecenter_Blocks: INCBIN "maps/FuchsiaPokecenter.blk" +INCLUDE "engine/events/vending_machine.asm" -CeruleanBadgeHouse_Blocks: INCBIN "maps/CeruleanBadgeHouse.blk" -INCLUDE "engine/items/itemfinder.asm" - -INCLUDE "scripts/CeruleanCity_2.asm" - -INCLUDE "data/mapHeaders/ViridianGym.asm" -INCLUDE "scripts/ViridianGym.asm" -INCLUDE "data/mapObjects/ViridianGym.asm" -ViridianGym_Blocks: INCBIN "maps/ViridianGym.blk" - -INCLUDE "data/mapHeaders/PewterMart.asm" -INCLUDE "scripts/PewterMart.asm" -INCLUDE "data/mapObjects/PewterMart.asm" - -INCLUDE "data/mapHeaders/CeruleanCave1F.asm" -INCLUDE "scripts/CeruleanCave1F.asm" -INCLUDE "data/mapObjects/CeruleanCave1F.asm" -CeruleanCave1F_Blocks: INCBIN "maps/CeruleanCave1F.blk" - -INCLUDE "data/mapHeaders/CeruleanBadgeHouse.asm" -INCLUDE "scripts/CeruleanBadgeHouse.asm" -INCLUDE "data/mapObjects/CeruleanBadgeHouse.asm" - -INCLUDE "engine/menu/vending_machine.asm" - -INCLUDE "data/mapHeaders/FuchsiaBillsGrandpasHouse.asm" -INCLUDE "scripts/FuchsiaBillsGrandpasHouse.asm" -INCLUDE "data/mapObjects/FuchsiaBillsGrandpasHouse.asm" - -INCLUDE "data/mapHeaders/FuchsiaPokecenter.asm" -INCLUDE "scripts/FuchsiaPokecenter.asm" -INCLUDE "data/mapObjects/FuchsiaPokecenter.asm" - -INCLUDE "data/mapHeaders/WardensHouse.asm" -INCLUDE "scripts/WardensHouse.asm" -INCLUDE "data/mapObjects/WardensHouse.asm" -WardensHouse_Blocks: INCBIN "maps/WardensHouse.blk" - -INCLUDE "data/mapHeaders/SafariZoneGate.asm" -INCLUDE "data/mapObjects/SafariZoneGate.asm" -SafariZoneGate_Blocks: INCBIN "maps/SafariZoneGate.blk" -INCLUDE "scripts/SafariZoneGate.asm" - -INCLUDE "data/mapHeaders/FuchsiaGym.asm" -INCLUDE "scripts/FuchsiaGym.asm" -INCLUDE "data/mapObjects/FuchsiaGym.asm" -FuchsiaGym_Blocks: INCBIN "maps/FuchsiaGym.blk" - -INCLUDE "data/mapHeaders/FuchsiaMeetingRoom.asm" -INCLUDE "scripts/FuchsiaMeetingRoom.asm" -INCLUDE "data/mapObjects/FuchsiaMeetingRoom.asm" -FuchsiaMeetingRoom_Blocks: INCBIN "maps/FuchsiaMeetingRoom.blk" - -INCLUDE "data/mapHeaders/CinnabarGym.asm" -INCLUDE "scripts/CinnabarGym.asm" -INCLUDE "data/mapObjects/CinnabarGym.asm" -CinnabarGym_Blocks: INCBIN "maps/CinnabarGym.blk" -INCLUDE "scripts/CinnabarGym_2.asm" - -INCLUDE "data/mapHeaders/CinnabarLab.asm" -INCLUDE "scripts/CinnabarLab.asm" -INCLUDE "data/mapObjects/CinnabarLab.asm" -CinnabarLab_Blocks: INCBIN "maps/CinnabarLab.blk" - -INCLUDE "data/mapHeaders/CinnabarLabTradeRoom.asm" -INCLUDE "scripts/CinnabarLabTradeRoom.asm" -INCLUDE "data/mapObjects/CinnabarLabTradeRoom.asm" -CinnabarLabTradeRoom_Blocks: INCBIN "maps/CinnabarLabTradeRoom.blk" - -INCLUDE "data/mapHeaders/CinnabarLabMetronomeRoom.asm" -INCLUDE "scripts/CinnabarLabMetronomeRoom.asm" -INCLUDE "data/mapObjects/CinnabarLabMetronomeRoom.asm" -CinnabarLabMetronomeRoom_Blocks: INCBIN "maps/CinnabarLabMetronomeRoom.blk" - -INCLUDE "data/mapHeaders/CinnabarLabFossilRoom.asm" -INCLUDE "scripts/CinnabarLabFossilRoom.asm" -INCLUDE "data/mapObjects/CinnabarLabFossilRoom.asm" -CinnabarLabFossilRoom_Blocks: INCBIN "maps/CinnabarLabFossilRoom.blk" - -INCLUDE "data/mapHeaders/CinnabarPokecenter.asm" -INCLUDE "scripts/CinnabarPokecenter.asm" -INCLUDE "data/mapObjects/CinnabarPokecenter.asm" - -INCLUDE "data/mapHeaders/CinnabarMart.asm" -INCLUDE "scripts/CinnabarMart.asm" -INCLUDE "data/mapObjects/CinnabarMart.asm" - -INCLUDE "data/mapHeaders/CopycatsHouse1F.asm" -INCLUDE "scripts/CopycatsHouse1F.asm" -INCLUDE "data/mapObjects/CopycatsHouse1F.asm" - -INCLUDE "data/mapHeaders/ChampionsRoom.asm" -INCLUDE "scripts/ChampionsRoom.asm" -INCLUDE "data/mapObjects/ChampionsRoom.asm" -ChampionsRoom_Blocks: INCBIN "maps/ChampionsRoom.blk" - -INCLUDE "data/mapHeaders/LoreleisRoom.asm" -INCLUDE "scripts/LoreleisRoom.asm" -INCLUDE "data/mapObjects/LoreleisRoom.asm" -LoreleisRoom_Blocks: INCBIN "maps/LoreleisRoom.blk" - -INCLUDE "data/mapHeaders/BrunosRoom.asm" -INCLUDE "scripts/BrunosRoom.asm" -INCLUDE "data/mapObjects/BrunosRoom.asm" -BrunosRoom_Blocks: INCBIN "maps/BrunosRoom.blk" - -INCLUDE "data/mapHeaders/AgathasRoom.asm" -INCLUDE "scripts/AgathasRoom.asm" -INCLUDE "data/mapObjects/AgathasRoom.asm" -AgathasRoom_Blocks: INCBIN "maps/AgathasRoom.blk" - -INCLUDE "engine/menu/league_pc.asm" +SECTION "Itemfinder 2", ROMX +INCLUDE "engine/menus/league_pc.asm" INCLUDE "engine/overworld/elevator.asm" - -INCLUDE "engine/overworld/hidden_items.asm" +INCLUDE "engine/events/hidden_items.asm" SECTION "bank1E", ROMX INCLUDE "engine/battle/animations.asm" - INCLUDE "engine/overworld/cut2.asm" +INCLUDE "engine/overworld/dust_smoke.asm" -INCLUDE "engine/overworld/ssanne.asm" - -RedFishingTilesFront: INCBIN "gfx/red_fishing_tile_front.2bpp" -RedFishingTilesBack: INCBIN "gfx/red_fishing_tile_back.2bpp" -RedFishingTilesSide: INCBIN "gfx/red_fishing_tile_side.2bpp" -RedFishingRodTiles: INCBIN "gfx/red_fishingrod_tiles.2bpp" - -INCLUDE "data/animations.asm" +INCLUDE "gfx/fishing.asm" +INCLUDE "data/moves/animations.asm" +INCLUDE "data/battle_anims/subanimations.asm" +INCLUDE "data/battle_anims/frame_blocks.asm" SECTION "bank2f", ROMX @@ -2142,10 +450,8 @@ INCBIN "gfx/pikachu/unknown_e7d13.2bpp" SECTION "bank3A", ROMX -INCLUDE "text/monster_names.asm" - +INCLUDE "data/pokemon/names.asm" INCLUDE "engine/overworld/is_player_just_outside_map.asm" - INCLUDE "engine/printer.asm" INCLUDE "engine/diploma_3a.asm" @@ -2153,7 +459,6 @@ SurfingPikachu3Graphics: INCBIN "gfx/surfing_pikachu_3.2bpp" SurfingPikachu3GraphicsEnd: INCLUDE "engine/unknown_ea3ea.asm" - INCLUDE "engine/overworld/npc_movement_2.asm" ; bank $3b is empty diff --git a/maps.asm b/maps.asm new file mode 100644 index 000000000..2a7e33920 --- /dev/null +++ b/maps.asm @@ -0,0 +1,1226 @@ +INCLUDE "constants.asm" + + +SECTION "Maps 1", ROMX + +INCLUDE "data/maps/headers/CeladonCity.asm" +INCLUDE "data/maps/objects/CeladonCity.asm" +CeladonCity_Blocks: INCBIN "maps/CeladonCity.blk" + +INCLUDE "data/maps/headers/PalletTown.asm" +INCLUDE "data/maps/objects/PalletTown.asm" +PalletTown_Blocks: INCBIN "maps/PalletTown.blk" + +INCLUDE "data/maps/headers/ViridianCity.asm" +INCLUDE "data/maps/objects/ViridianCity.asm" +ViridianCity_Blocks: INCBIN "maps/ViridianCity.blk" + +INCLUDE "data/maps/headers/PewterCity.asm" + ds 1 +INCLUDE "data/maps/objects/PewterCity.asm" +PewterCity_Blocks: INCBIN "maps/PewterCity.blk" + +INCLUDE "data/maps/headers/CeruleanCity.asm" +INCLUDE "data/maps/objects/CeruleanCity.asm" +CeruleanCity_Blocks: INCBIN "maps/CeruleanCity.blk" + +INCLUDE "data/maps/headers/VermilionCity.asm" +INCLUDE "data/maps/objects/VermilionCity.asm" +VermilionCity_Blocks: INCBIN "maps/VermilionCity.blk" + +INCLUDE "data/maps/headers/FuchsiaCity.asm" +INCLUDE "data/maps/objects/FuchsiaCity.asm" +FuchsiaCity_Blocks: INCBIN "maps/FuchsiaCity.blk" + + +SECTION "Maps 2", ROMX + +INCLUDE "scripts/PalletTown.asm" +INCLUDE "scripts/ViridianCity.asm" +INCLUDE "scripts/PewterCity.asm" +INCLUDE "scripts/CeruleanCity.asm" +INCLUDE "scripts/VermilionCity.asm" +INCLUDE "scripts/CeladonCity.asm" +INCLUDE "scripts/FuchsiaCity.asm" + +INCLUDE "data/maps/headers/BluesHouse.asm" +INCLUDE "scripts/BluesHouse.asm" +INCLUDE "data/maps/objects/BluesHouse.asm" +BluesHouse_Blocks: INCBIN "maps/BluesHouse.blk" + +INCLUDE "data/maps/headers/VermilionTradeHouse.asm" +INCLUDE "scripts/VermilionTradeHouse.asm" +INCLUDE "data/maps/objects/VermilionTradeHouse.asm" +VermilionTradeHouse_Blocks: INCBIN "maps/VermilionTradeHouse.blk" + +INCLUDE "data/maps/headers/IndigoPlateauLobby.asm" +INCLUDE "scripts/IndigoPlateauLobby.asm" +INCLUDE "data/maps/objects/IndigoPlateauLobby.asm" +IndigoPlateauLobby_Blocks: INCBIN "maps/IndigoPlateauLobby.blk" + +INCLUDE "data/maps/headers/SilphCo4F.asm" +INCLUDE "scripts/SilphCo4F.asm" +INCLUDE "data/maps/objects/SilphCo4F.asm" +SilphCo4F_Blocks: INCBIN "maps/SilphCo4F.blk" + +INCLUDE "data/maps/headers/SilphCo5F.asm" +INCLUDE "scripts/SilphCo5F.asm" +INCLUDE "data/maps/objects/SilphCo5F.asm" +SilphCo5F_Blocks: INCBIN "maps/SilphCo5F.blk" + +INCLUDE "data/maps/headers/SilphCo6F.asm" +INCLUDE "scripts/SilphCo6F.asm" +INCLUDE "data/maps/objects/SilphCo6F.asm" +SilphCo6F_Blocks: INCBIN "maps/SilphCo6F.blk" + + +SECTION "Maps 3", ROMX + +INCLUDE "data/maps/headers/CinnabarIsland.asm" +INCLUDE "data/maps/objects/CinnabarIsland.asm" +CinnabarIsland_Blocks: INCBIN "maps/CinnabarIsland.blk" + +INCLUDE "data/maps/headers/Route1.asm" +INCLUDE "data/maps/objects/Route1.asm" +Route1_Blocks: INCBIN "maps/Route1.blk" + +UndergroundPathRoute8_Blocks: INCBIN "maps/UndergroundPathRoute8.blk" + +OaksLab_Blocks: INCBIN "maps/OaksLab.blk" + +MrPsychicsHouse_Blocks: +NameRatersHouse_Blocks: +MrFujisHouse_Blocks: +Route16FlyHouse_Blocks: +Route2TradeHouse_Blocks: +SaffronPidgeyHouse_Blocks: +VermilionPidgeyHouse_Blocks: +LavenderCuboneHouse_Blocks: +CeruleanTradeHouse_Blocks: +PewterNidoranHouse_Blocks: +PewterSpeechHouse_Blocks: +ViridianNicknameHouse_Blocks: INCBIN "maps/ViridianNicknameHouse.blk" + +CeladonMansionRoofHouse_Blocks: +ViridianSchoolHouse_Blocks: INCBIN "maps/ViridianSchoolHouse.blk" + +CeruleanTrashedHouse_Blocks: INCBIN "maps/CeruleanTrashedHouse.blk" + +DiglettsCaveRoute11_Blocks: +DiglettsCaveRoute2_Blocks: INCBIN "maps/DiglettsCaveRoute2.blk" + + +SECTION "Maps 4", ROMX + +INCLUDE "scripts/CinnabarIsland.asm" + +INCLUDE "scripts/Route1.asm" + +INCLUDE "data/maps/headers/OaksLab.asm" +INCLUDE "scripts/OaksLab.asm" +INCLUDE "data/maps/objects/OaksLab.asm" + +INCLUDE "data/maps/headers/ViridianMart.asm" +INCLUDE "scripts/ViridianMart.asm" +INCLUDE "data/maps/objects/ViridianMart.asm" +ViridianMart_Blocks: INCBIN "maps/ViridianMart.blk" + +INCLUDE "data/maps/headers/ViridianSchoolHouse.asm" +INCLUDE "scripts/ViridianSchoolHouse.asm" +INCLUDE "data/maps/objects/ViridianSchoolHouse.asm" + +INCLUDE "data/maps/headers/ViridianNicknameHouse.asm" + ds 1 +INCLUDE "scripts/ViridianNicknameHouse.asm" +INCLUDE "data/maps/objects/ViridianNicknameHouse.asm" + +INCLUDE "data/maps/headers/PewterNidoranHouse.asm" +INCLUDE "scripts/PewterNidoranHouse.asm" +INCLUDE "data/maps/objects/PewterNidoranHouse.asm" + +INCLUDE "data/maps/headers/PewterSpeechHouse.asm" +INCLUDE "scripts/PewterSpeechHouse.asm" +INCLUDE "data/maps/objects/PewterSpeechHouse.asm" + +INCLUDE "data/maps/headers/CeruleanTrashedHouse.asm" +INCLUDE "scripts/CeruleanTrashedHouse.asm" +INCLUDE "data/maps/objects/CeruleanTrashedHouse.asm" + +INCLUDE "data/maps/headers/CeruleanTradeHouse.asm" +INCLUDE "scripts/CeruleanTradeHouse.asm" +INCLUDE "data/maps/objects/CeruleanTradeHouse.asm" + +INCLUDE "data/maps/headers/BikeShop.asm" +INCLUDE "scripts/BikeShop.asm" +INCLUDE "data/maps/objects/BikeShop.asm" +BikeShop_Blocks: INCBIN "maps/BikeShop.blk" + +INCLUDE "data/maps/headers/MrFujisHouse.asm" +INCLUDE "scripts/MrFujisHouse.asm" +INCLUDE "data/maps/objects/MrFujisHouse.asm" + +INCLUDE "data/maps/headers/LavenderCuboneHouse.asm" +INCLUDE "scripts/LavenderCuboneHouse.asm" +INCLUDE "data/maps/objects/LavenderCuboneHouse.asm" + +INCLUDE "data/maps/headers/NameRatersHouse.asm" +INCLUDE "scripts/NameRatersHouse.asm" +INCLUDE "data/maps/objects/NameRatersHouse.asm" + +INCLUDE "data/maps/headers/VermilionPidgeyHouse.asm" +INCLUDE "scripts/VermilionPidgeyHouse.asm" +INCLUDE "data/maps/objects/VermilionPidgeyHouse.asm" + +INCLUDE "data/maps/headers/VermilionDock.asm" +INCLUDE "scripts/VermilionDock.asm" +INCLUDE "data/maps/objects/VermilionDock.asm" +VermilionDock_Blocks: INCBIN "maps/VermilionDock.blk" + +INCLUDE "data/maps/headers/CeladonMansionRoofHouse.asm" +INCLUDE "scripts/CeladonMansionRoofHouse.asm" +INCLUDE "data/maps/objects/CeladonMansionRoofHouse.asm" + +INCLUDE "data/maps/headers/FuchsiaMart.asm" +INCLUDE "scripts/FuchsiaMart.asm" +INCLUDE "data/maps/objects/FuchsiaMart.asm" +FuchsiaMart_Blocks: INCBIN "maps/FuchsiaMart.blk" + +INCLUDE "data/maps/headers/SaffronPidgeyHouse.asm" +INCLUDE "scripts/SaffronPidgeyHouse.asm" +INCLUDE "data/maps/objects/SaffronPidgeyHouse.asm" + +INCLUDE "data/maps/headers/MrPsychicsHouse.asm" +INCLUDE "scripts/MrPsychicsHouse.asm" +INCLUDE "data/maps/objects/MrPsychicsHouse.asm" + +INCLUDE "data/maps/headers/DiglettsCaveRoute2.asm" +INCLUDE "scripts/DiglettsCaveRoute2.asm" +INCLUDE "data/maps/objects/DiglettsCaveRoute2.asm" + +INCLUDE "data/maps/headers/Route2TradeHouse.asm" +INCLUDE "scripts/Route2TradeHouse.asm" +INCLUDE "data/maps/objects/Route2TradeHouse.asm" + +INCLUDE "data/maps/headers/Route5Gate.asm" +INCLUDE "scripts/Route5Gate.asm" +INCLUDE "data/maps/objects/Route5Gate.asm" +Route5Gate_Blocks: INCBIN "maps/Route5Gate.blk" + +INCLUDE "data/maps/headers/Route6Gate.asm" +INCLUDE "scripts/Route6Gate.asm" +INCLUDE "data/maps/objects/Route6Gate.asm" +Route6Gate_Blocks: INCBIN "maps/Route6Gate.blk" + +INCLUDE "data/maps/headers/Route7Gate.asm" +INCLUDE "scripts/Route7Gate.asm" +INCLUDE "data/maps/objects/Route7Gate.asm" +Route7Gate_Blocks: INCBIN "maps/Route7Gate.blk" + +INCLUDE "data/maps/headers/Route8Gate.asm" +INCLUDE "scripts/Route8Gate.asm" +INCLUDE "data/maps/objects/Route8Gate.asm" +Route8Gate_Blocks: INCBIN "maps/Route8Gate.blk" + +INCLUDE "data/maps/headers/UndergroundPathRoute8.asm" +INCLUDE "scripts/UndergroundPathRoute8.asm" +INCLUDE "data/maps/objects/UndergroundPathRoute8.asm" + +INCLUDE "data/maps/headers/PowerPlant.asm" +INCLUDE "scripts/PowerPlant.asm" +INCLUDE "data/maps/objects/PowerPlant.asm" +PowerPlant_Blocks: INCBIN "maps/PowerPlant.blk" + +INCLUDE "data/maps/headers/DiglettsCaveRoute11.asm" +INCLUDE "scripts/DiglettsCaveRoute11.asm" +INCLUDE "data/maps/objects/DiglettsCaveRoute11.asm" + +INCLUDE "data/maps/headers/Route16FlyHouse.asm" +INCLUDE "scripts/Route16FlyHouse.asm" +INCLUDE "data/maps/objects/Route16FlyHouse.asm" + +INCLUDE "data/maps/headers/Route22Gate.asm" +INCLUDE "scripts/Route22Gate.asm" +INCLUDE "data/maps/objects/Route22Gate.asm" +Route22Gate_Blocks: INCBIN "maps/Route22Gate.blk" + +INCLUDE "data/maps/headers/BillsHouse.asm" +INCLUDE "scripts/BillsHouse.asm" +INCLUDE "data/maps/objects/BillsHouse.asm" +BillsHouse_Blocks: INCBIN "maps/BillsHouse.blk" + + +SECTION "Maps 5", ROMX + +INCLUDE "data/maps/headers/LavenderTown.asm" +INCLUDE "data/maps/objects/LavenderTown.asm" +LavenderTown_Blocks: INCBIN "maps/LavenderTown.blk" + +ViridianPokecenter_Blocks: INCBIN "maps/ViridianPokecenter.blk" + +SafariZoneCenterRestHouse_Blocks: +SafariZoneWestRestHouse_Blocks: +SafariZoneEastRestHouse_Blocks: +SafariZoneNorthRestHouse_Blocks: INCBIN "maps/SafariZoneCenterRestHouse.blk" + +INCLUDE "scripts/LavenderTown.asm" + + +SECTION "Maps 6", ROMX + +INCLUDE "data/maps/headers/ViridianPokecenter.asm" +INCLUDE "scripts/ViridianPokecenter.asm" +INCLUDE "data/maps/objects/ViridianPokecenter.asm" + +INCLUDE "data/maps/headers/CeladonMart1F.asm" +INCLUDE "scripts/CeladonMart1F.asm" +INCLUDE "data/maps/objects/CeladonMart1F.asm" +CeladonMart1F_Blocks: INCBIN "maps/CeladonMart1F.blk" + +INCLUDE "data/maps/headers/PokemonMansion1F.asm" +INCLUDE "scripts/PokemonMansion1F.asm" +INCLUDE "data/maps/objects/PokemonMansion1F.asm" +PokemonMansion1F_Blocks: INCBIN "maps/PokemonMansion1F.blk" + +INCLUDE "data/maps/headers/RockTunnel1F.asm" +INCLUDE "scripts/RockTunnel1F.asm" +INCLUDE "data/maps/objects/RockTunnel1F.asm" +RockTunnel1F_Blocks: INCBIN "maps/RockTunnel1F.blk" + +INCLUDE "data/maps/headers/SeafoamIslands1F.asm" +INCLUDE "scripts/SeafoamIslands1F.asm" +INCLUDE "data/maps/objects/SeafoamIslands1F.asm" +SeafoamIslands1F_Blocks: INCBIN "maps/SeafoamIslands1F.blk" + +INCLUDE "data/maps/headers/SSAnne3F.asm" +INCLUDE "scripts/SSAnne3F.asm" +INCLUDE "data/maps/objects/SSAnne3F.asm" +SSAnne3F_Blocks: INCBIN "maps/SSAnne3F.blk" + +INCLUDE "data/maps/headers/VictoryRoad3F.asm" +INCLUDE "scripts/VictoryRoad3F.asm" +INCLUDE "data/maps/objects/VictoryRoad3F.asm" +VictoryRoad3F_Blocks: INCBIN "maps/VictoryRoad3F.blk" + +INCLUDE "data/maps/headers/RocketHideoutB1F.asm" +INCLUDE "scripts/RocketHideoutB1F.asm" +INCLUDE "data/maps/objects/RocketHideoutB1F.asm" +RocketHideoutB1F_Blocks: INCBIN "maps/RocketHideoutB1F.blk" + +INCLUDE "data/maps/headers/RocketHideoutB2F.asm" +INCLUDE "scripts/RocketHideoutB2F.asm" +INCLUDE "data/maps/objects/RocketHideoutB2F.asm" +RocketHideoutB2F_Blocks: INCBIN "maps/RocketHideoutB2F.blk" + +INCLUDE "data/maps/headers/RocketHideoutB3F.asm" +INCLUDE "scripts/RocketHideoutB3F.asm" +INCLUDE "data/maps/objects/RocketHideoutB3F.asm" +RocketHideoutB3F_Blocks: INCBIN "maps/RocketHideoutB3F.blk" + +INCLUDE "data/maps/headers/RocketHideoutB4F.asm" +INCLUDE "scripts/RocketHideoutB4F.asm" +INCLUDE "data/maps/objects/RocketHideoutB4F.asm" +RocketHideoutB4F_Blocks: INCBIN "maps/RocketHideoutB4F.blk" + +INCLUDE "data/maps/headers/RocketHideoutElevator.asm" +INCLUDE "scripts/RocketHideoutElevator.asm" +INCLUDE "data/maps/objects/RocketHideoutElevator.asm" +RocketHideoutElevator_Blocks: INCBIN "maps/RocketHideoutElevator.blk" + +INCLUDE "data/maps/headers/SilphCoElevator.asm" +INCLUDE "scripts/SilphCoElevator.asm" +INCLUDE "data/maps/objects/SilphCoElevator.asm" +SilphCoElevator_Blocks: INCBIN "maps/SilphCoElevator.blk" + +INCLUDE "data/maps/headers/SafariZoneEast.asm" +INCLUDE "scripts/SafariZoneEast.asm" +INCLUDE "data/maps/objects/SafariZoneEast.asm" +SafariZoneEast_Blocks: INCBIN "maps/SafariZoneEast.blk" + +INCLUDE "data/maps/headers/SafariZoneNorth.asm" +INCLUDE "scripts/SafariZoneNorth.asm" +INCLUDE "data/maps/objects/SafariZoneNorth.asm" +SafariZoneNorth_Blocks: INCBIN "maps/SafariZoneNorth.blk" + +INCLUDE "data/maps/headers/SafariZoneCenter.asm" +INCLUDE "scripts/SafariZoneCenter.asm" +INCLUDE "data/maps/objects/SafariZoneCenter.asm" +SafariZoneCenter_Blocks: INCBIN "maps/SafariZoneCenter.blk" + +INCLUDE "data/maps/headers/SafariZoneCenterRestHouse.asm" +INCLUDE "scripts/SafariZoneCenterRestHouse.asm" +INCLUDE "data/maps/objects/SafariZoneCenterRestHouse.asm" + +INCLUDE "data/maps/headers/SafariZoneWestRestHouse.asm" +INCLUDE "scripts/SafariZoneWestRestHouse.asm" +INCLUDE "data/maps/objects/SafariZoneWestRestHouse.asm" + +INCLUDE "data/maps/headers/SafariZoneEastRestHouse.asm" +INCLUDE "scripts/SafariZoneEastRestHouse.asm" +INCLUDE "data/maps/objects/SafariZoneEastRestHouse.asm" + +INCLUDE "data/maps/headers/SafariZoneNorthRestHouse.asm" +INCLUDE "scripts/SafariZoneNorthRestHouse.asm" +INCLUDE "data/maps/objects/SafariZoneNorthRestHouse.asm" + +INCLUDE "data/maps/headers/CeruleanCave2F.asm" +INCLUDE "scripts/CeruleanCave2F.asm" +INCLUDE "data/maps/objects/CeruleanCave2F.asm" +CeruleanCave2F_Blocks: INCBIN "maps/CeruleanCave2F.blk" + +INCLUDE "data/maps/headers/CeruleanCaveB1F.asm" +INCLUDE "scripts/CeruleanCaveB1F.asm" +INCLUDE "data/maps/objects/CeruleanCaveB1F.asm" +CeruleanCaveB1F_Blocks: INCBIN "maps/CeruleanCaveB1F.blk" + +INCLUDE "data/maps/headers/RockTunnelB1F.asm" +INCLUDE "scripts/RockTunnelB1F.asm" +INCLUDE "data/maps/objects/RockTunnelB1F.asm" +RockTunnelB1F_Blocks: INCBIN "maps/RockTunnelB1F.blk" + +INCLUDE "data/maps/headers/SeafoamIslandsB1F.asm" +INCLUDE "scripts/SeafoamIslandsB1F.asm" +INCLUDE "data/maps/objects/SeafoamIslandsB1F.asm" +SeafoamIslandsB1F_Blocks: INCBIN "maps/SeafoamIslandsB1F.blk" + +INCLUDE "data/maps/headers/SeafoamIslandsB2F.asm" +INCLUDE "scripts/SeafoamIslandsB2F.asm" +INCLUDE "data/maps/objects/SeafoamIslandsB2F.asm" +SeafoamIslandsB2F_Blocks: INCBIN "maps/SeafoamIslandsB2F.blk" + +INCLUDE "data/maps/headers/SeafoamIslandsB3F.asm" +INCLUDE "scripts/SeafoamIslandsB3F.asm" +INCLUDE "data/maps/objects/SeafoamIslandsB3F.asm" +SeafoamIslandsB3F_Blocks: INCBIN "maps/SeafoamIslandsB3F.blk" + +INCLUDE "data/maps/headers/SeafoamIslandsB4F.asm" +INCLUDE "scripts/SeafoamIslandsB4F.asm" +INCLUDE "data/maps/objects/SeafoamIslandsB4F.asm" +SeafoamIslandsB4F_Blocks: INCBIN "maps/SeafoamIslandsB4F.blk" + + +SECTION "Maps 7", ROMX + +INCLUDE "data/maps/headers/Route7.asm" +INCLUDE "data/maps/objects/Route7.asm" +Route7_Blocks: INCBIN "maps/Route7.blk" + +CeladonPokecenter_Blocks: +RockTunnelPokecenter_Blocks: +MtMoonPokecenter_Blocks: INCBIN "maps/MtMoonPokecenter.blk" + +Route18Gate1F_Blocks: +Route15Gate1F_Blocks: +Route11Gate1F_Blocks: INCBIN "maps/Route11Gate1F.blk" + +Route18Gate2F_Blocks: +Route16Gate2F_Blocks: +Route15Gate2F_Blocks: +Route12Gate2F_Blocks: +Route11Gate2F_Blocks: INCBIN "maps/Route11Gate2F.blk" + + +SECTION "Maps 8", ROMX + +INCLUDE "scripts/Route7.asm" + +INCLUDE "data/maps/headers/RedsHouse1F.asm" +INCLUDE "scripts/RedsHouse1F.asm" +INCLUDE "data/maps/objects/RedsHouse1F.asm" +RedsHouse1F_Blocks: INCBIN "maps/RedsHouse1F.blk" + +INCLUDE "data/maps/headers/CeladonMart3F.asm" +INCLUDE "scripts/CeladonMart3F.asm" +INCLUDE "data/maps/objects/CeladonMart3F.asm" +CeladonMart3F_Blocks: INCBIN "maps/CeladonMart3F.blk" + +INCLUDE "data/maps/headers/CeladonMart4F.asm" +INCLUDE "scripts/CeladonMart4F.asm" +INCLUDE "data/maps/objects/CeladonMart4F.asm" +CeladonMart4F_Blocks: INCBIN "maps/CeladonMart4F.blk" + +INCLUDE "data/maps/headers/CeladonMartRoof.asm" +INCLUDE "scripts/CeladonMartRoof.asm" +INCLUDE "data/maps/objects/CeladonMartRoof.asm" +CeladonMartRoof_Blocks: INCBIN "maps/CeladonMartRoof.blk" + +INCLUDE "data/maps/headers/CeladonMartElevator.asm" +INCLUDE "scripts/CeladonMartElevator.asm" +INCLUDE "data/maps/objects/CeladonMartElevator.asm" +CeladonMartElevator_Blocks: INCBIN "maps/CeladonMartElevator.blk" + +INCLUDE "data/maps/headers/CeladonMansion1F.asm" +INCLUDE "scripts/CeladonMansion1F.asm" +INCLUDE "data/maps/objects/CeladonMansion1F.asm" +CeladonMansion1F_Blocks: INCBIN "maps/CeladonMansion1F.blk" + +INCLUDE "data/maps/headers/CeladonMansion2F.asm" +INCLUDE "scripts/CeladonMansion2F.asm" +INCLUDE "data/maps/objects/CeladonMansion2F.asm" +CeladonMansion2F_Blocks: INCBIN "maps/CeladonMansion2F.blk" + +INCLUDE "data/maps/headers/CeladonMansion3F.asm" +INCLUDE "scripts/CeladonMansion3F.asm" +INCLUDE "data/maps/objects/CeladonMansion3F.asm" +CeladonMansion3F_Blocks: INCBIN "maps/CeladonMansion3F.blk" + +INCLUDE "data/maps/headers/CeladonMansionRoof.asm" +INCLUDE "scripts/CeladonMansionRoof.asm" +INCLUDE "data/maps/objects/CeladonMansionRoof.asm" +CeladonMansionRoof_Blocks: INCBIN "maps/CeladonMansionRoof.blk" + +INCLUDE "data/maps/headers/CeladonPokecenter.asm" +INCLUDE "scripts/CeladonPokecenter.asm" +INCLUDE "data/maps/objects/CeladonPokecenter.asm" + +INCLUDE "data/maps/headers/CeladonGym.asm" +INCLUDE "scripts/CeladonGym.asm" +INCLUDE "data/maps/objects/CeladonGym.asm" +CeladonGym_Blocks: INCBIN "maps/CeladonGym.blk" + +INCLUDE "data/maps/headers/GameCorner.asm" +INCLUDE "scripts/GameCorner.asm" +INCLUDE "data/maps/objects/GameCorner.asm" +GameCorner_Blocks: INCBIN "maps/GameCorner.blk" + +INCLUDE "data/maps/headers/CeladonMart5F.asm" +INCLUDE "scripts/CeladonMart5F.asm" +INCLUDE "data/maps/objects/CeladonMart5F.asm" +CeladonMart5F_Blocks: INCBIN "maps/CeladonMart5F.blk" + +INCLUDE "data/maps/headers/GameCornerPrizeRoom.asm" +INCLUDE "scripts/GameCornerPrizeRoom.asm" +INCLUDE "data/maps/objects/GameCornerPrizeRoom.asm" +GameCornerPrizeRoom_Blocks: INCBIN "maps/GameCornerPrizeRoom.blk" + +INCLUDE "data/maps/headers/CeladonDiner.asm" +INCLUDE "scripts/CeladonDiner.asm" +INCLUDE "data/maps/objects/CeladonDiner.asm" +CeladonDiner_Blocks: INCBIN "maps/CeladonDiner.blk" + +INCLUDE "data/maps/headers/CeladonChiefHouse.asm" +INCLUDE "scripts/CeladonChiefHouse.asm" +INCLUDE "data/maps/objects/CeladonChiefHouse.asm" +CeladonChiefHouse_Blocks: INCBIN "maps/CeladonChiefHouse.blk" + +INCLUDE "data/maps/headers/CeladonHotel.asm" +INCLUDE "scripts/CeladonHotel.asm" +INCLUDE "data/maps/objects/CeladonHotel.asm" +CeladonHotel_Blocks: INCBIN "maps/CeladonHotel.blk" + +INCLUDE "data/maps/headers/MtMoonPokecenter.asm" +INCLUDE "scripts/MtMoonPokecenter.asm" +INCLUDE "data/maps/objects/MtMoonPokecenter.asm" + +INCLUDE "data/maps/headers/RockTunnelPokecenter.asm" +INCLUDE "scripts/RockTunnelPokecenter.asm" +INCLUDE "data/maps/objects/RockTunnelPokecenter.asm" + +INCLUDE "data/maps/headers/Route11Gate1F.asm" +INCLUDE "scripts/Route11Gate1F.asm" +INCLUDE "data/maps/objects/Route11Gate1F.asm" + +INCLUDE "data/maps/headers/Route11Gate2F.asm" +INCLUDE "scripts/Route11Gate2F.asm" +INCLUDE "data/maps/objects/Route11Gate2F.asm" + +INCLUDE "data/maps/headers/Route12Gate1F.asm" +INCLUDE "scripts/Route12Gate1F.asm" +INCLUDE "data/maps/objects/Route12Gate1F.asm" +Route12Gate1F_Blocks: INCBIN "maps/Route12Gate1F.blk" + +INCLUDE "data/maps/headers/Route12Gate2F.asm" +INCLUDE "scripts/Route12Gate2F.asm" +INCLUDE "data/maps/objects/Route12Gate2F.asm" + +INCLUDE "data/maps/headers/Route15Gate1F.asm" +INCLUDE "scripts/Route15Gate1F.asm" +INCLUDE "data/maps/objects/Route15Gate1F.asm" + +INCLUDE "data/maps/headers/Route15Gate2F.asm" +INCLUDE "scripts/Route15Gate2F.asm" +INCLUDE "data/maps/objects/Route15Gate2F.asm" + +INCLUDE "data/maps/headers/Route16Gate1F.asm" +INCLUDE "scripts/Route16Gate1F.asm" +INCLUDE "data/maps/objects/Route16Gate1F.asm" +Route16Gate1F_Blocks: INCBIN "maps/Route16Gate1F.blk" + +INCLUDE "data/maps/headers/Route16Gate2F.asm" +INCLUDE "scripts/Route16Gate2F.asm" +INCLUDE "data/maps/objects/Route16Gate2F.asm" + +INCLUDE "data/maps/headers/Route18Gate1F.asm" +INCLUDE "scripts/Route18Gate1F.asm" +INCLUDE "data/maps/objects/Route18Gate1F.asm" + +INCLUDE "data/maps/headers/Route18Gate2F.asm" +INCLUDE "scripts/Route18Gate2F.asm" +INCLUDE "data/maps/objects/Route18Gate2F.asm" + +INCLUDE "data/maps/headers/MtMoon1F.asm" +INCLUDE "scripts/MtMoon1F.asm" +INCLUDE "data/maps/objects/MtMoon1F.asm" +MtMoon1F_Blocks: INCBIN "maps/MtMoon1F.blk" + +INCLUDE "data/maps/headers/MtMoonB2F.asm" +INCLUDE "scripts/MtMoonB2F.asm" +INCLUDE "data/maps/objects/MtMoonB2F.asm" +MtMoonB2F_Blocks: INCBIN "maps/MtMoonB2F.blk" +INCLUDE "scripts/MtMoonB2F_2.asm" + +INCLUDE "data/maps/headers/SafariZoneWest.asm" +INCLUDE "scripts/SafariZoneWest.asm" +INCLUDE "data/maps/objects/SafariZoneWest.asm" +SafariZoneWest_Blocks: INCBIN "maps/SafariZoneWest.blk" + +INCLUDE "data/maps/headers/SafariZoneSecretHouse.asm" +INCLUDE "scripts/SafariZoneSecretHouse.asm" +INCLUDE "data/maps/objects/SafariZoneSecretHouse.asm" +SafariZoneSecretHouse_Blocks: INCBIN "maps/SafariZoneSecretHouse.blk" + + +SECTION "Maps 9", ROMX + +INCLUDE "data/maps/headers/TradeCenter.asm" +INCLUDE "scripts/TradeCenter.asm" +INCLUDE "data/maps/objects/TradeCenter.asm" +TradeCenter_Blocks: INCBIN "maps/TradeCenter.blk" + +INCLUDE "data/maps/headers/Colosseum.asm" +INCLUDE "scripts/Colosseum.asm" +INCLUDE "data/maps/objects/Colosseum.asm" +Colosseum_Blocks: INCBIN "maps/Colosseum.blk" + + +SECTION "Maps 10", ROMX + +INCLUDE "data/maps/headers/Route22.asm" +INCLUDE "data/maps/objects/Route22.asm" +Route22_Blocks: INCBIN "maps/Route22.blk" + +INCLUDE "data/maps/headers/Route20.asm" +INCLUDE "data/maps/objects/Route20.asm" +Route20_Blocks: INCBIN "maps/Route20.blk" + +INCLUDE "data/maps/headers/Route23.asm" +INCLUDE "data/maps/objects/Route23.asm" +Route23_Blocks: INCBIN "maps/Route23.blk" + +INCLUDE "data/maps/headers/Route24.asm" +INCLUDE "data/maps/objects/Route24.asm" +Route24_Blocks: INCBIN "maps/Route24.blk" + +INCLUDE "data/maps/headers/Route25.asm" +INCLUDE "data/maps/objects/Route25.asm" +Route25_Blocks: INCBIN "maps/Route25.blk" + +INCLUDE "data/maps/headers/IndigoPlateau.asm" +INCLUDE "scripts/IndigoPlateau.asm" +INCLUDE "data/maps/objects/IndigoPlateau.asm" +IndigoPlateau_Blocks: INCBIN "maps/IndigoPlateau.blk" + +INCLUDE "data/maps/headers/SaffronCity.asm" +INCLUDE "data/maps/objects/SaffronCity.asm" +SaffronCity_Blocks: INCBIN "maps/SaffronCity.blk" +INCLUDE "scripts/SaffronCity.asm" + +INCLUDE "scripts/Route20.asm" +INCLUDE "scripts/Route22.asm" +INCLUDE "scripts/Route23.asm" +INCLUDE "scripts/Route24.asm" +INCLUDE "scripts/Route25.asm" + +INCLUDE "data/maps/headers/VictoryRoad2F.asm" +INCLUDE "scripts/VictoryRoad2F.asm" +INCLUDE "data/maps/objects/VictoryRoad2F.asm" +VictoryRoad2F_Blocks: INCBIN "maps/VictoryRoad2F.blk" + +INCLUDE "data/maps/headers/MtMoonB1F.asm" +INCLUDE "scripts/MtMoonB1F.asm" +INCLUDE "data/maps/objects/MtMoonB1F.asm" +MtMoonB1F_Blocks: INCBIN "maps/MtMoonB1F.blk" + +INCLUDE "data/maps/headers/SilphCo7F.asm" +INCLUDE "scripts/SilphCo7F.asm" +INCLUDE "data/maps/objects/SilphCo7F.asm" +SilphCo7F_Blocks: INCBIN "maps/SilphCo7F.blk" + +INCLUDE "data/maps/headers/PokemonMansion2F.asm" +INCLUDE "scripts/PokemonMansion2F.asm" +INCLUDE "data/maps/objects/PokemonMansion2F.asm" +PokemonMansion2F_Blocks: INCBIN "maps/PokemonMansion2F.blk" + +INCLUDE "data/maps/headers/PokemonMansion3F.asm" +INCLUDE "scripts/PokemonMansion3F.asm" +INCLUDE "data/maps/objects/PokemonMansion3F.asm" +PokemonMansion3F_Blocks: INCBIN "maps/PokemonMansion3F.blk" + +INCLUDE "data/maps/headers/PokemonMansionB1F.asm" +INCLUDE "scripts/PokemonMansionB1F.asm" +INCLUDE "data/maps/objects/PokemonMansionB1F.asm" +PokemonMansionB1F_Blocks: INCBIN "maps/PokemonMansionB1F.blk" + + +SECTION "Maps 11", ROMX + +INCLUDE "data/maps/headers/Route2.asm" +INCLUDE "data/maps/objects/Route2.asm" +Route2_Blocks: INCBIN "maps/Route2.blk" + +INCLUDE "data/maps/headers/Route3.asm" +INCLUDE "data/maps/objects/Route3.asm" +Route3_Blocks: INCBIN "maps/Route3.blk" + +INCLUDE "data/maps/headers/Route4.asm" +INCLUDE "data/maps/objects/Route4.asm" +Route4_Blocks: INCBIN "maps/Route4.blk" + +INCLUDE "data/maps/headers/Route5.asm" +INCLUDE "data/maps/objects/Route5.asm" +Route5_Blocks: INCBIN "maps/Route5.blk" + +INCLUDE "data/maps/headers/Route9.asm" +INCLUDE "data/maps/objects/Route9.asm" +Route9_Blocks: INCBIN "maps/Route9.blk" + +INCLUDE "data/maps/headers/Route13.asm" +INCLUDE "data/maps/objects/Route13.asm" +Route13_Blocks: INCBIN "maps/Route13.blk" + +INCLUDE "data/maps/headers/Route14.asm" +INCLUDE "data/maps/objects/Route14.asm" +Route14_Blocks: INCBIN "maps/Route14.blk" + +INCLUDE "data/maps/headers/Route17.asm" +INCLUDE "data/maps/objects/Route17.asm" +Route17_Blocks: INCBIN "maps/Route17.blk" + +INCLUDE "data/maps/headers/Route19.asm" +INCLUDE "data/maps/objects/Route19.asm" +Route19_Blocks: INCBIN "maps/Route19.blk" + +INCLUDE "data/maps/headers/Route21.asm" +INCLUDE "data/maps/objects/Route21.asm" +Route21_Blocks: INCBIN "maps/Route21.blk" + +VermilionOldRodHouse_Blocks: +Route12SuperRodHouse_Blocks: +Daycare_Blocks: INCBIN "maps/Daycare.blk" + +FuchsiaGoodRodHouse_Blocks: INCBIN "maps/FuchsiaGoodRodHouse.blk" + + +SECTION "Maps 12", ROMX + +INCLUDE "scripts/Route2.asm" +INCLUDE "scripts/Route3.asm" +INCLUDE "scripts/Route4.asm" +INCLUDE "scripts/Route5.asm" +INCLUDE "scripts/Route9.asm" +INCLUDE "scripts/Route13.asm" +INCLUDE "scripts/Route14.asm" +INCLUDE "scripts/Route17.asm" +INCLUDE "scripts/Route19.asm" +INCLUDE "scripts/Route21.asm" + +INCLUDE "data/maps/headers/VermilionOldRodHouse.asm" +INCLUDE "scripts/VermilionOldRodHouse.asm" +INCLUDE "data/maps/objects/VermilionOldRodHouse.asm" + +INCLUDE "data/maps/headers/CeladonMart2F.asm" +INCLUDE "scripts/CeladonMart2F.asm" +INCLUDE "data/maps/objects/CeladonMart2F.asm" +CeladonMart2F_Blocks: INCBIN "maps/CeladonMart2F.blk" + +INCLUDE "data/maps/headers/FuchsiaGoodRodHouse.asm" +INCLUDE "scripts/FuchsiaGoodRodHouse.asm" +INCLUDE "data/maps/objects/FuchsiaGoodRodHouse.asm" + +INCLUDE "data/maps/headers/Daycare.asm" +INCLUDE "scripts/Daycare.asm" +INCLUDE "data/maps/objects/Daycare.asm" + +INCLUDE "data/maps/headers/Route12SuperRodHouse.asm" +INCLUDE "scripts/Route12SuperRodHouse.asm" +INCLUDE "data/maps/objects/Route12SuperRodHouse.asm" + +INCLUDE "data/maps/headers/SilphCo8F.asm" +INCLUDE "scripts/SilphCo8F.asm" +INCLUDE "data/maps/objects/SilphCo8F.asm" +SilphCo8F_Blocks: INCBIN "maps/SilphCo8F.blk" + + +SECTION "Maps 13", ROMX + +INCLUDE "data/maps/headers/Route6.asm" +INCLUDE "data/maps/objects/Route6.asm" +Route6_Blocks: INCBIN "maps/Route6.blk" + +INCLUDE "data/maps/headers/Route8.asm" +INCLUDE "data/maps/objects/Route8.asm" +Route8_Blocks: INCBIN "maps/Route8.blk" + +INCLUDE "data/maps/headers/Route10.asm" +INCLUDE "data/maps/objects/Route10.asm" +Route10_Blocks: INCBIN "maps/Route10.blk" + +INCLUDE "data/maps/headers/Route11.asm" +INCLUDE "data/maps/objects/Route11.asm" +Route11_Blocks: INCBIN "maps/Route11.blk" + +INCLUDE "data/maps/headers/Route12.asm" +INCLUDE "data/maps/objects/Route12.asm" +Route12_Blocks: INCBIN "maps/Route12.blk" + +INCLUDE "data/maps/headers/Route15.asm" +INCLUDE "data/maps/objects/Route15.asm" +Route15_Blocks: INCBIN "maps/Route15.blk" + +INCLUDE "data/maps/headers/Route16.asm" +INCLUDE "data/maps/objects/Route16.asm" +Route16_Blocks: INCBIN "maps/Route16.blk" + +INCLUDE "data/maps/headers/Route18.asm" +INCLUDE "data/maps/objects/Route18.asm" +Route18_Blocks: INCBIN "maps/Route18.blk" + + INCBIN "maps/UnusedPokecenterCopy.blk" + + +SECTION "Maps 14", ROMX + +INCLUDE "scripts/Route6.asm" +INCLUDE "scripts/Route8.asm" +INCLUDE "scripts/Route10.asm" +INCLUDE "scripts/Route11.asm" +INCLUDE "scripts/Route12.asm" +INCLUDE "scripts/Route15.asm" +INCLUDE "scripts/Route16.asm" +INCLUDE "scripts/Route18.asm" + +INCLUDE "data/maps/headers/PokemonFanClub.asm" +INCLUDE "scripts/PokemonFanClub.asm" +INCLUDE "data/maps/objects/PokemonFanClub.asm" +PokemonFanClub_Blocks: INCBIN "maps/PokemonFanClub.blk" + +INCLUDE "data/maps/headers/SilphCo2F.asm" +INCLUDE "scripts/SilphCo2F.asm" +INCLUDE "data/maps/objects/SilphCo2F.asm" +SilphCo2F_Blocks: INCBIN "maps/SilphCo2F.blk" + +INCLUDE "data/maps/headers/SilphCo3F.asm" +INCLUDE "scripts/SilphCo3F.asm" +INCLUDE "data/maps/objects/SilphCo3F.asm" +SilphCo3F_Blocks: INCBIN "maps/SilphCo3F.blk" + +INCLUDE "data/maps/headers/SilphCo10F.asm" +INCLUDE "scripts/SilphCo10F.asm" +INCLUDE "data/maps/objects/SilphCo10F.asm" +SilphCo10F_Blocks: INCBIN "maps/SilphCo10F.blk" + +INCLUDE "data/maps/headers/LancesRoom.asm" +INCLUDE "scripts/LancesRoom.asm" +INCLUDE "data/maps/objects/LancesRoom.asm" +LancesRoom_Blocks: INCBIN "maps/LancesRoom.blk" + +INCLUDE "data/maps/headers/HallOfFame.asm" +INCLUDE "scripts/HallOfFame.asm" +INCLUDE "data/maps/objects/HallOfFame.asm" +HallOfFame_Blocks: INCBIN "maps/HallOfFame.blk" + + +SECTION "Maps 15", ROMX + +SaffronMart_Blocks: +LavenderMart_Blocks: +CeruleanMart_Blocks: +VermilionMart_Blocks: INCBIN "maps/VermilionMart.blk" + +CopycatsHouse2F_Blocks: +RedsHouse2F_Blocks: INCBIN "maps/RedsHouse2F.blk" + +Museum1F_Blocks: INCBIN "maps/Museum1F.blk" + +Museum2F_Blocks: INCBIN "maps/Museum2F.blk" + +SaffronPokecenter_Blocks: +VermilionPokecenter_Blocks: +LavenderPokecenter_Blocks: +PewterPokecenter_Blocks: INCBIN "maps/PewterPokecenter.blk" + +UndergroundPathRoute7_Blocks: +UndergroundPathRoute7Copy_Blocks: +UndergroundPathRoute6_Blocks: +UndergroundPathRoute5_Blocks: INCBIN "maps/UndergroundPathRoute5.blk" + +Route2Gate_Blocks: +ViridianForestSouthGate_Blocks: +ViridianForestNorthGate_Blocks: INCBIN "maps/ViridianForestNorthGate.blk" + +INCLUDE "data/maps/headers/RedsHouse2F.asm" +INCLUDE "scripts/RedsHouse2F.asm" +INCLUDE "data/maps/objects/RedsHouse2F.asm" + + +SECTION "Maps 16", ROMX + +INCLUDE "data/maps/headers/Museum1F.asm" +INCLUDE "scripts/Museum1F.asm" +INCLUDE "data/maps/objects/Museum1F.asm" + +INCLUDE "data/maps/headers/Museum2F.asm" +INCLUDE "scripts/Museum2F.asm" +INCLUDE "data/maps/objects/Museum2F.asm" + +INCLUDE "data/maps/headers/PewterGym.asm" +INCLUDE "scripts/PewterGym.asm" +INCLUDE "data/maps/objects/PewterGym.asm" +PewterGym_Blocks: INCBIN "maps/PewterGym.blk" + +INCLUDE "data/maps/headers/PewterPokecenter.asm" +INCLUDE "scripts/PewterPokecenter.asm" +INCLUDE "data/maps/objects/PewterPokecenter.asm" + +INCLUDE "data/maps/headers/CeruleanPokecenter.asm" +INCLUDE "scripts/CeruleanPokecenter.asm" +INCLUDE "data/maps/objects/CeruleanPokecenter.asm" +CeruleanPokecenter_Blocks: INCBIN "maps/CeruleanPokecenter.blk" + +INCLUDE "data/maps/headers/CeruleanGym.asm" +INCLUDE "scripts/CeruleanGym.asm" +INCLUDE "data/maps/objects/CeruleanGym.asm" +CeruleanGym_Blocks: INCBIN "maps/CeruleanGym.blk" + +INCLUDE "data/maps/headers/CeruleanMart.asm" +INCLUDE "scripts/CeruleanMart.asm" +INCLUDE "data/maps/objects/CeruleanMart.asm" + +INCLUDE "data/maps/headers/LavenderPokecenter.asm" +INCLUDE "scripts/LavenderPokecenter.asm" +INCLUDE "data/maps/objects/LavenderPokecenter.asm" + +INCLUDE "data/maps/headers/LavenderMart.asm" +INCLUDE "scripts/LavenderMart.asm" +INCLUDE "data/maps/objects/LavenderMart.asm" + +INCLUDE "data/maps/headers/VermilionPokecenter.asm" +INCLUDE "scripts/VermilionPokecenter.asm" +INCLUDE "data/maps/objects/VermilionPokecenter.asm" + +INCLUDE "data/maps/headers/VermilionMart.asm" +INCLUDE "scripts/VermilionMart.asm" +INCLUDE "data/maps/objects/VermilionMart.asm" + +INCLUDE "data/maps/headers/VermilionGym.asm" +INCLUDE "scripts/VermilionGym.asm" +INCLUDE "data/maps/objects/VermilionGym.asm" +VermilionGym_Blocks: INCBIN "maps/VermilionGym.blk" + +INCLUDE "data/maps/headers/CopycatsHouse2F.asm" +INCLUDE "scripts/CopycatsHouse2F.asm" +INCLUDE "data/maps/objects/CopycatsHouse2F.asm" + +INCLUDE "data/maps/headers/FightingDojo.asm" +INCLUDE "scripts/FightingDojo.asm" +INCLUDE "data/maps/objects/FightingDojo.asm" +FightingDojo_Blocks: INCBIN "maps/FightingDojo.blk" + +INCLUDE "data/maps/headers/SaffronGym.asm" +INCLUDE "scripts/SaffronGym.asm" +INCLUDE "data/maps/objects/SaffronGym.asm" +SaffronGym_Blocks: INCBIN "maps/SaffronGym.blk" + +INCLUDE "data/maps/headers/SaffronMart.asm" +INCLUDE "scripts/SaffronMart.asm" +INCLUDE "data/maps/objects/SaffronMart.asm" + +INCLUDE "data/maps/headers/SilphCo1F.asm" +INCLUDE "scripts/SilphCo1F.asm" +INCLUDE "data/maps/objects/SilphCo1F.asm" +SilphCo1F_Blocks: INCBIN "maps/SilphCo1F.blk" + +INCLUDE "data/maps/headers/SaffronPokecenter.asm" +INCLUDE "scripts/SaffronPokecenter.asm" +INCLUDE "data/maps/objects/SaffronPokecenter.asm" + +INCLUDE "data/maps/headers/ViridianForestNorthGate.asm" +INCLUDE "scripts/ViridianForestNorthGate.asm" +INCLUDE "data/maps/objects/ViridianForestNorthGate.asm" + +INCLUDE "data/maps/headers/Route2Gate.asm" +INCLUDE "scripts/Route2Gate.asm" +INCLUDE "data/maps/objects/Route2Gate.asm" + +INCLUDE "data/maps/headers/ViridianForestSouthGate.asm" +INCLUDE "scripts/ViridianForestSouthGate.asm" +INCLUDE "data/maps/objects/ViridianForestSouthGate.asm" + +INCLUDE "data/maps/headers/UndergroundPathRoute5.asm" +INCLUDE "scripts/UndergroundPathRoute5.asm" +INCLUDE "data/maps/objects/UndergroundPathRoute5.asm" + +INCLUDE "data/maps/headers/UndergroundPathRoute6.asm" +INCLUDE "scripts/UndergroundPathRoute6.asm" +INCLUDE "data/maps/objects/UndergroundPathRoute6.asm" + +INCLUDE "data/maps/headers/UndergroundPathRoute7.asm" +INCLUDE "scripts/UndergroundPathRoute7.asm" +INCLUDE "data/maps/objects/UndergroundPathRoute7.asm" + +INCLUDE "data/maps/headers/UndergroundPathRoute7Copy.asm" +INCLUDE "scripts/UndergroundPathRoute7Copy.asm" +INCLUDE "data/maps/objects/UndergroundPathRoute7Copy.asm" + +INCLUDE "data/maps/headers/SilphCo9F.asm" +INCLUDE "scripts/SilphCo9F.asm" +INCLUDE "data/maps/objects/SilphCo9F.asm" +SilphCo9F_Blocks: INCBIN "maps/SilphCo9F.blk" + +INCLUDE "data/maps/headers/VictoryRoad1F.asm" +INCLUDE "scripts/VictoryRoad1F.asm" +INCLUDE "data/maps/objects/VictoryRoad1F.asm" +VictoryRoad1F_Blocks: INCBIN "maps/VictoryRoad1F.blk" + + +SECTION "Maps 17", ROMX + +ViridianForest_Blocks: INCBIN "maps/ViridianForest.blk" +UndergroundPathNorthSouth_Blocks: INCBIN "maps/UndergroundPathNorthSouth.blk" +UndergroundPathWestEast_Blocks: INCBIN "maps/UndergroundPathWestEast.blk" + + INCBIN "maps/UnusedDiglettsCaveCopy.blk" + +SSAnneB1FRooms_Blocks: +SSAnne2FRooms_Blocks: INCBIN "maps/SSAnne2FRooms.blk" + +INCLUDE "data/maps/headers/PokemonTower1F.asm" +INCLUDE "scripts/PokemonTower1F.asm" +INCLUDE "data/maps/objects/PokemonTower1F.asm" +PokemonTower1F_Blocks: INCBIN "maps/PokemonTower1F.blk" + +INCLUDE "data/maps/headers/PokemonTower2F.asm" +INCLUDE "scripts/PokemonTower2F.asm" +INCLUDE "data/maps/objects/PokemonTower2F.asm" +PokemonTower2F_Blocks: INCBIN "maps/PokemonTower2F.blk" + +INCLUDE "data/maps/headers/PokemonTower3F.asm" +INCLUDE "scripts/PokemonTower3F.asm" +INCLUDE "data/maps/objects/PokemonTower3F.asm" +PokemonTower3F_Blocks: INCBIN "maps/PokemonTower3F.blk" + +INCLUDE "data/maps/headers/PokemonTower4F.asm" +INCLUDE "scripts/PokemonTower4F.asm" +INCLUDE "data/maps/objects/PokemonTower4F.asm" +PokemonTower4F_Blocks: INCBIN "maps/PokemonTower4F.blk" + +INCLUDE "data/maps/headers/PokemonTower5F.asm" +INCLUDE "scripts/PokemonTower5F.asm" +INCLUDE "data/maps/objects/PokemonTower5F.asm" +PokemonTower5F_Blocks: INCBIN "maps/PokemonTower5F.blk" + +INCLUDE "data/maps/headers/PokemonTower6F.asm" +INCLUDE "scripts/PokemonTower6F.asm" +INCLUDE "data/maps/objects/PokemonTower6F.asm" +PokemonTower6F_Blocks: INCBIN "maps/PokemonTower6F.blk" + + INCBIN "maps/UnusedEmptyMap.blk" + +INCLUDE "data/maps/headers/PokemonTower7F.asm" +INCLUDE "scripts/PokemonTower7F.asm" +INCLUDE "data/maps/objects/PokemonTower7F.asm" +PokemonTower7F_Blocks: INCBIN "maps/PokemonTower7F.blk" + + +SECTION "Maps 18", ROMX + +INCLUDE "data/maps/headers/ViridianForest.asm" +INCLUDE "scripts/ViridianForest.asm" +INCLUDE "data/maps/objects/ViridianForest.asm" + +INCLUDE "data/maps/headers/SSAnne1F.asm" +INCLUDE "scripts/SSAnne1F.asm" +INCLUDE "data/maps/objects/SSAnne1F.asm" +SSAnne1F_Blocks: INCBIN "maps/SSAnne1F.blk" + +INCLUDE "data/maps/headers/SSAnne2F.asm" +INCLUDE "scripts/SSAnne2F.asm" +INCLUDE "data/maps/objects/SSAnne2F.asm" +SSAnne2F_Blocks: INCBIN "maps/SSAnne2F.blk" + +INCLUDE "data/maps/headers/SSAnneB1F.asm" +INCLUDE "scripts/SSAnneB1F.asm" +INCLUDE "data/maps/objects/SSAnneB1F.asm" +SSAnneB1F_Blocks: INCBIN "maps/SSAnneB1F.blk" + +INCLUDE "data/maps/headers/SSAnneBow.asm" +INCLUDE "scripts/SSAnneBow.asm" +INCLUDE "data/maps/objects/SSAnneBow.asm" +SSAnneBow_Blocks: INCBIN "maps/SSAnneBow.blk" + +INCLUDE "data/maps/headers/SSAnneKitchen.asm" +INCLUDE "scripts/SSAnneKitchen.asm" +INCLUDE "data/maps/objects/SSAnneKitchen.asm" +SSAnneKitchen_Blocks: INCBIN "maps/SSAnneKitchen.blk" + +INCLUDE "data/maps/headers/SSAnneCaptainsRoom.asm" +INCLUDE "scripts/SSAnneCaptainsRoom.asm" +INCLUDE "data/maps/objects/SSAnneCaptainsRoom.asm" +SSAnneCaptainsRoom_Blocks: INCBIN "maps/SSAnneCaptainsRoom.blk" + +INCLUDE "data/maps/headers/SSAnne1FRooms.asm" +INCLUDE "scripts/SSAnne1FRooms.asm" +INCLUDE "data/maps/objects/SSAnne1FRooms.asm" +SSAnne1FRooms_Blocks: INCBIN "maps/SSAnne1FRooms.blk" + +INCLUDE "data/maps/headers/SSAnne2FRooms.asm" +INCLUDE "scripts/SSAnne2FRooms.asm" +INCLUDE "data/maps/objects/SSAnne2FRooms.asm" + +INCLUDE "data/maps/headers/SSAnneB1FRooms.asm" +INCLUDE "scripts/SSAnneB1FRooms.asm" +INCLUDE "data/maps/objects/SSAnneB1FRooms.asm" + +INCLUDE "data/maps/headers/UndergroundPathNorthSouth.asm" +INCLUDE "scripts/UndergroundPathNorthSouth.asm" +INCLUDE "data/maps/objects/UndergroundPathNorthSouth.asm" + +INCLUDE "data/maps/headers/UndergroundPathWestEast.asm" +INCLUDE "scripts/UndergroundPathWestEast.asm" +INCLUDE "data/maps/objects/UndergroundPathWestEast.asm" + +INCLUDE "data/maps/headers/DiglettsCave.asm" +INCLUDE "scripts/DiglettsCave.asm" +INCLUDE "data/maps/objects/DiglettsCave.asm" +DiglettsCave_Blocks: INCBIN "maps/DiglettsCave.blk" + +INCLUDE "data/maps/headers/SilphCo11F.asm" +INCLUDE "scripts/SilphCo11F.asm" +INCLUDE "data/maps/objects/SilphCo11F.asm" +SilphCo11F_Blocks: INCBIN "maps/SilphCo11F.blk" + + +SECTION "Maps 19", ROMX + +CopycatsHouse1F_Blocks: INCBIN "maps/CopycatsHouse1F.blk" + +CinnabarMart_Blocks: +PewterMart_Blocks: INCBIN "maps/PewterMart.blk" + +FuchsiaBillsGrandpasHouse_Blocks: INCBIN "maps/FuchsiaBillsGrandpasHouse.blk" + +CinnabarPokecenter_Blocks: +FuchsiaPokecenter_Blocks: INCBIN "maps/FuchsiaPokecenter.blk" + +CeruleanBadgeHouse_Blocks: INCBIN "maps/CeruleanBadgeHouse.blk" + + +SECTION "Maps 20", ROMX + +INCLUDE "scripts/CeruleanCity_2.asm" + +INCLUDE "data/maps/headers/ViridianGym.asm" +INCLUDE "scripts/ViridianGym.asm" +INCLUDE "data/maps/objects/ViridianGym.asm" +ViridianGym_Blocks: INCBIN "maps/ViridianGym.blk" + +INCLUDE "data/maps/headers/PewterMart.asm" +INCLUDE "scripts/PewterMart.asm" +INCLUDE "data/maps/objects/PewterMart.asm" + +INCLUDE "data/maps/headers/CeruleanCave1F.asm" +INCLUDE "scripts/CeruleanCave1F.asm" +INCLUDE "data/maps/objects/CeruleanCave1F.asm" +CeruleanCave1F_Blocks: INCBIN "maps/CeruleanCave1F.blk" + +INCLUDE "data/maps/headers/CeruleanBadgeHouse.asm" +INCLUDE "scripts/CeruleanBadgeHouse.asm" +INCLUDE "data/maps/objects/CeruleanBadgeHouse.asm" + + +SECTION "Maps 21", ROMX + +INCLUDE "data/maps/headers/FuchsiaBillsGrandpasHouse.asm" +INCLUDE "scripts/FuchsiaBillsGrandpasHouse.asm" +INCLUDE "data/maps/objects/FuchsiaBillsGrandpasHouse.asm" + +INCLUDE "data/maps/headers/FuchsiaPokecenter.asm" +INCLUDE "scripts/FuchsiaPokecenter.asm" +INCLUDE "data/maps/objects/FuchsiaPokecenter.asm" + +INCLUDE "data/maps/headers/WardensHouse.asm" +INCLUDE "scripts/WardensHouse.asm" +INCLUDE "data/maps/objects/WardensHouse.asm" +WardensHouse_Blocks: INCBIN "maps/WardensHouse.blk" + +INCLUDE "data/maps/headers/SafariZoneGate.asm" +INCLUDE "data/maps/objects/SafariZoneGate.asm" +SafariZoneGate_Blocks: INCBIN "maps/SafariZoneGate.blk" +INCLUDE "scripts/SafariZoneGate.asm" + +INCLUDE "data/maps/headers/FuchsiaGym.asm" +INCLUDE "scripts/FuchsiaGym.asm" +INCLUDE "data/maps/objects/FuchsiaGym.asm" +FuchsiaGym_Blocks: INCBIN "maps/FuchsiaGym.blk" + +INCLUDE "data/maps/headers/FuchsiaMeetingRoom.asm" +INCLUDE "scripts/FuchsiaMeetingRoom.asm" +INCLUDE "data/maps/objects/FuchsiaMeetingRoom.asm" +FuchsiaMeetingRoom_Blocks: INCBIN "maps/FuchsiaMeetingRoom.blk" + +INCLUDE "data/maps/headers/CinnabarGym.asm" +INCLUDE "scripts/CinnabarGym.asm" +INCLUDE "data/maps/objects/CinnabarGym.asm" +CinnabarGym_Blocks: INCBIN "maps/CinnabarGym.blk" +INCLUDE "scripts/CinnabarGym_2.asm" + +INCLUDE "data/maps/headers/CinnabarLab.asm" +INCLUDE "scripts/CinnabarLab.asm" +INCLUDE "data/maps/objects/CinnabarLab.asm" +CinnabarLab_Blocks: INCBIN "maps/CinnabarLab.blk" + +INCLUDE "data/maps/headers/CinnabarLabTradeRoom.asm" +INCLUDE "scripts/CinnabarLabTradeRoom.asm" +INCLUDE "data/maps/objects/CinnabarLabTradeRoom.asm" +CinnabarLabTradeRoom_Blocks: INCBIN "maps/CinnabarLabTradeRoom.blk" + +INCLUDE "data/maps/headers/CinnabarLabMetronomeRoom.asm" +INCLUDE "scripts/CinnabarLabMetronomeRoom.asm" +INCLUDE "data/maps/objects/CinnabarLabMetronomeRoom.asm" +CinnabarLabMetronomeRoom_Blocks: INCBIN "maps/CinnabarLabMetronomeRoom.blk" + +INCLUDE "data/maps/headers/CinnabarLabFossilRoom.asm" +INCLUDE "scripts/CinnabarLabFossilRoom.asm" +INCLUDE "data/maps/objects/CinnabarLabFossilRoom.asm" +CinnabarLabFossilRoom_Blocks: INCBIN "maps/CinnabarLabFossilRoom.blk" + +INCLUDE "data/maps/headers/CinnabarPokecenter.asm" +INCLUDE "scripts/CinnabarPokecenter.asm" +INCLUDE "data/maps/objects/CinnabarPokecenter.asm" + +INCLUDE "data/maps/headers/CinnabarMart.asm" +INCLUDE "scripts/CinnabarMart.asm" +INCLUDE "data/maps/objects/CinnabarMart.asm" + +INCLUDE "data/maps/headers/CopycatsHouse1F.asm" +INCLUDE "scripts/CopycatsHouse1F.asm" +INCLUDE "data/maps/objects/CopycatsHouse1F.asm" + +INCLUDE "data/maps/headers/ChampionsRoom.asm" +INCLUDE "scripts/ChampionsRoom.asm" +INCLUDE "data/maps/objects/ChampionsRoom.asm" +ChampionsRoom_Blocks: INCBIN "maps/ChampionsRoom.blk" + +INCLUDE "data/maps/headers/LoreleisRoom.asm" +INCLUDE "scripts/LoreleisRoom.asm" +INCLUDE "data/maps/objects/LoreleisRoom.asm" +LoreleisRoom_Blocks: INCBIN "maps/LoreleisRoom.blk" + +INCLUDE "data/maps/headers/BrunosRoom.asm" +INCLUDE "scripts/BrunosRoom.asm" +INCLUDE "data/maps/objects/BrunosRoom.asm" +BrunosRoom_Blocks: INCBIN "maps/BrunosRoom.blk" + +INCLUDE "data/maps/headers/AgathasRoom.asm" +INCLUDE "scripts/AgathasRoom.asm" +INCLUDE "data/maps/objects/AgathasRoom.asm" +AgathasRoom_Blocks: INCBIN "maps/AgathasRoom.blk" diff --git a/maps/green/CeruleanCave1F.blk b/maps/green/CeruleanCave1F.blk new file mode 100644 index 000000000..689593fd5 --- /dev/null +++ b/maps/green/CeruleanCave1F.blk @@ -0,0 +1,3 @@ +|_vvvv|bRvvvvvfm,+vvvvv'fv,+|vvtvf,v=vvv f S + ^-f+ +$ \ No newline at end of file diff --git a/maps/green/CeruleanCave2F.blk b/maps/green/CeruleanCave2F.blk new file mode 100644 index 000000000..c62864da4 --- /dev/null +++ b/maps/green/CeruleanCave2F.blk @@ -0,0 +1 @@ + (  ((    (#( \ No newline at end of file diff --git a/maps/green/CeruleanCaveB1F.blk b/maps/green/CeruleanCaveB1F.blk new file mode 100644 index 000000000..8411849ff --- /dev/null +++ b/maps/green/CeruleanCaveB1F.blk @@ -0,0 +1 @@ +n !"n,- " L  "avvv "Q-+tv "vfvvNvvvvvvf--SQvvvvvL  \ No newline at end of file diff --git a/pokeyellow.link b/pokeyellow.link deleted file mode 100644 index 60b2beaf1..000000000 --- a/pokeyellow.link +++ /dev/null @@ -1,345 +0,0 @@ -ROM0 - org $0000 - "rst 00" - - org $0008 - "rst 08" - - org $0010 - "rst 10" - - org $0018 - "rst 18" - - org $0020 - "rst 20" - - org $0028 - "rst 28" - - org $0030 - "rst 30" - - org $0038 - "rst 38" - - org $0040 - "vblank" - - org $0048 - "hblank" - - org $0050 - "timer" - - org $0058 - "serial" - - org $0060 - "joypad" - ; $0061 - "Home" - - org $100 - "Entry" - ; $0104 - "Header" - - org $150 - "Main" - -ROMX $1 - org $4000 - "bank1" - -ROMX $2 - org $4000 - "Sound Effect Headers 1" ; AUDIO_1 - "Music Headers 1" - "Sound Effects 1" - "Audio Engine 1" - "Music 1" - -ROMX $3 - org $4000 - "bank3" - -ROMX $4 - org $4000 - "Graphics (BANK 4)" - "NPC Sprites 1" - -ROMX $5 - org $4000 - "NPC Sprites 2" - -ROMX $6 - org $4000 - "bank6" - -ROMX $7 - org $4000 - "bank7" - -ROMX $8 - org $4000 - "Sound Effect Headers 2" ; AUDIO_2 - "Music Headers 2" - "Sound Effects 2" - "Audio Engine 2" - "Music 2" - -ROMX $9 - org $4000 - "Pics 1" - -ROMX $A - org $4000 - "Pics 2" - -ROMX $B - org $4000 - "Pics 3" - -ROMX $C - org $4000 - "Pics 4" - -ROMX $D - org $4000 - "Pics 5" - -ROMX $E - org $4000 - "bankE" - -ROMX $F - org $4000 - "bankF" - -ROMX $10 - org $4000 - "bank10" - -ROMX $11 - org $4000 - "bank11" - -ROMX $12 - org $4000 - "bank12" - -ROMX $13 - org $4000 - "bank13" - -ROMX $14 - org $4000 - "bank14" - -ROMX $15 - org $4000 - "bank15" - -ROMX $16 - org $4000 - "bank16" - -ROMX $17 - org $4000 - "bank17" - -ROMX $18 - org $4000 - "bank18" - -ROMX $19 - org $4000 - "bank19" - -ROMX $1A - org $4000 - "bank1A" - -ROMX $1B - org $4000 - "bank1B" - -ROMX $1C - org $4000 - "bank1C" - -ROMX $1D - org $4000 - "bank1D" - -ROMX $1E - org $4000 - "bank1E" - -ROMX $1F - org $4000 - "Sound Effect Headers 3" ; AUDIO_3 - "Music Headers 3" - "Sound Effects 3" - "Audio Engine 3" - "Music 3" - -ROMX $20 - org $4000 - "Sound Effect Headers 4" ; AUDIO_4 - "Music Headers 4" - "Sound Effects 4" - "Audio Engine 4" - "Music 4" - -ROMX $21 - org $4000 - "Pikachu Cries 1" - -ROMX $22 - org $4000 - "Pikachu Cries 2" - -ROMX $23 - org $4000 - "Pikachu Cries 3" - -ROMX $24 - org $4000 - "Pikachu Cries 4" - -ROMX $25 - org $4000 - "Pikachu Cries 5" - -ROMX $26 - org $4000 - "Text 1" - -ROMX $27 - org $4000 - "Text 2" - -ROMX $28 - org $4000 - "Text 3" - -ROMX $29 - org $4000 - "Text 4" - -ROMX $2A - org $4000 - "Text 5" - -ROMX $2B - org $4000 - "Text 6" - -ROMX $2C - org $4000 - "Text 7" - -ROMX $2D - org $4000 - "Text 8" - -ROMX $2E - org $4000 - "Pokedex Text" - -ROMX $2f - org $4000 - "Move Names" - org $5000 - "bank2f" - -ROMX $30 - org $4000 - "bank30" - -ROMX $31 - org $4000 - "Pikachu Cries 6" - -ROMX $32 - org $4000 - "Pikachu Cries 7" - -ROMX $33 - org $4000 - "Pikachu Cries 8" - -ROMX $34 - org $4000 - "Pikachu Cries 9" - -ROMX $35 - org $4000 - "Pikachu Cries 10" - -ROMX $36 - org $4000 - "Pikachu Cries 11" - -ROMX $37 - org $4000 - "Pikachu Cries 12" - -ROMX $38 - org $4000 - "Pikachu Cries 13" - -ROMX $39 - org $4000 - "bank39" - -ROMX $3A - org $4000 - "bank3A" - -; bank $3b is empty - -ROMX $3C - org $4000 - "bank3C" - -ROMX $3D - org $4000 - "bank3D" - -ROMX $3E - org $4000 - "bank3E" - -ROMX $3F - org $4000 - "bank3F" - -WRAM0 - org $c000 - "WRAM Bank 0" - org $c100 - "Sprite State Data" - org $c300 - "OAM Buffer" - -WRAMX 1 - org $d000 - "WRAM Bank 1" - org $dfff - "Stack" - -SRAM 0 - "Sprite Buffers" - -SRAM 1 - "Save Data" - -SRAM 2 - "Saved Boxes 1" - -SRAM 3 - "Saved Boxes 2" - diff --git a/rgbdscheck.asm b/rgbdscheck.asm new file mode 100644 index 000000000..73a103320 --- /dev/null +++ b/rgbdscheck.asm @@ -0,0 +1,12 @@ +; pokered requires rgbds 0.4.1 or newer. +MAJOR EQU 0 +MINOR EQU 4 +PATCH EQU 1 + +IF !DEF(__RGBDS_MAJOR__) || !DEF(__RGBDS_MINOR__) || !DEF(__RGBDS_PATCH__) + fail "pokered requires rgbds {MAJOR}.{MINOR}.{PATCH} or newer." +ELIF (__RGBDS_MAJOR__ < MAJOR) || \ + (__RGBDS_MAJOR__ == MAJOR && __RGBDS_MINOR__ < MINOR) || \ + (__RGBDS_MAJOR__ == MAJOR && __RGBDS_MINOR__ == MINOR && __RGBDS_PATCH__ < PATCH) + fail "pokered requires rgbds {MAJOR}.{MINOR}.{PATCH} or newer." +ENDC diff --git a/roms.md5 b/roms.md5 deleted file mode 100644 index 6b0475393..000000000 --- a/roms.md5 +++ /dev/null @@ -1 +0,0 @@ -d9290db87b1f0a23b89f99ee4469e34b pokeyellow.gbc diff --git a/roms.sha1 b/roms.sha1 new file mode 100644 index 000000000..e61e2279f --- /dev/null +++ b/roms.sha1 @@ -0,0 +1 @@ +cc7d03262ebfaf2f06772c1a480c7d9d5f4a38e1 *pokeyellow.gbc diff --git a/scripts/AgathasRoom.asm b/scripts/AgathasRoom.asm index 202451665..9aa957f5d 100755 --- a/scripts/AgathasRoom.asm +++ b/scripts/AgathasRoom.asm @@ -64,8 +64,8 @@ AgathaScript0: call ArePlayerCoordsInArray jp nc, CheckFightingMapTrainers xor a - ld [hJoyPressed], a - ld [hJoyHeld], a + ldh [hJoyPressed], a + ldh [hJoyHeld], a ld [wSimulatedJoypadStatesEnd], a ld [wSimulatedJoypadStatesIndex], a ld a, [wCoordIndex] @@ -75,7 +75,7 @@ AgathaScript0: jr z, AgathaScriptWalkIntoRoom .stopPlayerFromLeaving ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ; "Don't run away!" ld a, D_UP ld [wSimulatedJoypadStatesEnd], a @@ -88,11 +88,11 @@ AgathaScript0: ret AgathaEntranceCoords: - db $0A,$04 - db $0A,$05 - db $0B,$04 - db $0B,$05 - db $FF + dbmapcoord 4, 10 + dbmapcoord 5, 10 + dbmapcoord 4, 11 + dbmapcoord 5, 11 + db -1 ; end AgathaScript3: ld a, [wSimulatedJoypadStatesIndex] @@ -111,7 +111,7 @@ AgathaScript2: cp $ff jp z, ResetAgathaScript ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $1 ld [wChampionsRoomCurScript], a @@ -122,34 +122,27 @@ AgathasRoom_TextPointers: dw AgathaDontRunAwayText AgathaTrainerHeader0: - dbEventFlagBit EVENT_BEAT_AGATHAS_ROOM_TRAINER_0 - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_AGATHAS_ROOM_TRAINER_0 - dw AgathaBeforeBattleText ; TextBeforeBattle - dw AgathaAfterBattleText ; TextAfterBattle - dw AgathaEndBattleText ; TextEndBattle - dw AgathaEndBattleText ; TextEndBattle - - db $ff + trainer EVENT_BEAT_AGATHAS_ROOM_TRAINER_0, 0, AgathaBeforeBattleText, AgathaEndBattleText, AgathaAfterBattleText + db -1 ; end AgathaText1: - TX_ASM + text_asm ld hl, AgathaTrainerHeader0 call TalkToTrainer jp TextScriptEnd AgathaBeforeBattleText: - TX_FAR _AgathaBeforeBattleText - db "@" + text_far _AgathaBeforeBattleText + text_end AgathaEndBattleText: - TX_FAR _AgathaEndBattleText - db "@" + text_far _AgathaEndBattleText + text_end AgathaAfterBattleText: - TX_FAR _AgathaAfterBattleText - db "@" + text_far _AgathaAfterBattleText + text_end AgathaDontRunAwayText: - TX_FAR _AgathaDontRunAwayText - db "@" + text_far _AgathaDontRunAwayText + text_end diff --git a/scripts/BeachHouse.asm b/scripts/BeachHouse.asm index 6a67c7ab4..2059f59d8 100644 --- a/scripts/BeachHouse.asm +++ b/scripts/BeachHouse.asm @@ -11,7 +11,7 @@ BeachHouse_TextPointers: dw BeachHouseSign4Text SurfinDudeText: - TX_ASM + text_asm ld a, [wd472] bit 6, a jr nz, .next @@ -35,7 +35,7 @@ SurfinDudeText: jr nz, .asm_f226b ld a, 1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a - callba SurfingPikachuMinigame + farcall SurfingPikachuMinigame ld hl, wd492 set 1, [hl] jr .done @@ -46,20 +46,20 @@ SurfinDudeText: jp TextScriptEnd .SurfinDudeText1 - TX_FAR _SurfinDudeText1 - db "@" + text_far _SurfinDudeText1 + text_end .SurfinDudeText2 - TX_FAR _SurfinDudeText2 - db "@" + text_far _SurfinDudeText2 + text_end .SurfinDudeText3 - TX_FAR _SurfinDudeText3 - db "@" + text_far _SurfinDudeText3 + text_end .SurfinDudeText4 - TX_FAR _SurfinDudeText4 - db "@" + text_far _SurfinDudeText4 + text_end BeachHousePikachuText: - TX_ASM + text_asm ld hl, .BeachHousePikachuText call PrintText ld a, PIKACHU @@ -68,11 +68,11 @@ BeachHousePikachuText: jp TextScriptEnd .BeachHousePikachuText - TX_FAR _BeachHousePikachuText - db "@" + text_far _BeachHousePikachuText + text_end BeachHouseSign1Text: - TX_ASM + text_asm ld hl, .BeachHouseSign1Text2 ld a, [wd472] bit 6, a @@ -83,14 +83,14 @@ BeachHouseSign1Text: jp TextScriptEnd .BeachHouseSign1Text1 - TX_FAR _BeachHouseSign1Text1 - db "@" + text_far _BeachHouseSign1Text1 + text_end .BeachHouseSign1Text2 - TX_FAR _BeachHouseSign1Text2 - db "@" + text_far _BeachHouseSign1Text2 + text_end BeachHouseSign2Text: - TX_ASM + text_asm ld hl, .BeachHouseSign2Text2 ld a, [wd472] bit 6, a @@ -101,14 +101,14 @@ BeachHouseSign2Text: jp TextScriptEnd .BeachHouseSign2Text1 - TX_FAR _BeachHouseSign2Text1 - db "@" + text_far _BeachHouseSign2Text1 + text_end .BeachHouseSign2Text2 - TX_FAR _BeachHouseSign2Text2 - db "@" + text_far _BeachHouseSign2Text2 + text_end BeachHouseSign3Text: - TX_ASM + text_asm ld hl, .BeachHouseSign3Text2 ld a, [wd472] bit 6, a @@ -119,14 +119,14 @@ BeachHouseSign3Text: jp TextScriptEnd .BeachHouseSign3Text1 - TX_FAR _BeachHouseSign3Text1 - db "@" + text_far _BeachHouseSign3Text1 + text_end .BeachHouseSign3Text2 - TX_FAR _BeachHouseSign3Text2 - db "@" + text_far _BeachHouseSign3Text2 + text_end BeachHouseSign4Text: - TX_ASM + text_asm ld a, 1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld a, [wd472] @@ -158,7 +158,7 @@ BeachHouseSign4Text: set 6, [hl] xor a ld [wUpdateSpritesEnabled], a - callab Printer_PrepareSurfingMinigameHighScoreTileMap + callfar Printer_PrepareSurfingMinigameHighScoreTileMap call WaitForTextScrollButtonPress ld hl, wd730 res 6, [hl] @@ -178,14 +178,16 @@ BeachHouseSign4Text: jp TextScriptEnd .BeachHousePrinterText1 - TX_FAR _BeachHousePrinterText1 - db $d, "@" + text_far _BeachHousePrinterText1 + text_waitbutton + text_end .BeachHousePrinterText2 - TX_FAR _BeachHousePrinterText2 - db $d, "@" + text_far _BeachHousePrinterText2 + text_waitbutton + text_end .BeachHousePrinterText3 - TX_FAR _BeachHousePrinterText3 - db "@" + text_far _BeachHousePrinterText3 + text_end .BeachHousePrinterText4 - TX_FAR _BeachHousePrinterText4 - db "@" + text_far _BeachHousePrinterText4 + text_end diff --git a/scripts/BeachHouse2.asm b/scripts/BeachHouse2.asm index a5b7e7be8..1cf570bcf 100755 --- a/scripts/BeachHouse2.asm +++ b/scripts/BeachHouse2.asm @@ -4,7 +4,7 @@ Func_f23d0: ld [wUpdateSpritesEnabled], a ld hl, wd730 set 6, [hl] - callab PrintSurfingMinigameHighScore + callfar PrintSurfingMinigameHighScore ld hl, wd730 res 6, [hl] call GBPalWhiteOutWithDelay3 @@ -14,7 +14,7 @@ Func_f23d0: call Delay3 call GBPalNormal ld hl, Text_f2412 - ld a, [hOaksAideResult] + ldh a, [hOaksAideResult] and a jr nz, .asm_f2406 ld hl, Text_f240c @@ -23,11 +23,11 @@ Func_f23d0: jp TextScriptEnd Text_f240c: - TX_FAR _BeachHousePrinterText5 - TX_WAIT - db "@" + text_far _BeachHousePrinterText5 + text_waitbutton + text_end Text_f2412: - TX_FAR _BeachHousePrinterText6 - TX_WAIT - db "@" + text_far _BeachHousePrinterText6 + text_waitbutton + text_end diff --git a/scripts/BikeShop.asm b/scripts/BikeShop.asm index a554cf7cf..e4345e8e4 100755 --- a/scripts/BikeShop.asm +++ b/scripts/BikeShop.asm @@ -8,7 +8,7 @@ BikeShop_TextPointers: dw BikeShopText3 BikeShopText1: - TX_ASM + text_asm CheckEvent EVENT_GOT_BICYCLE jr z, .asm_260d4 ld hl, BikeShopText_1d82f @@ -25,8 +25,8 @@ BikeShopText1: call GiveItem jr nc, .BagFull ld a, BIKE_VOUCHER - ld [$ffdb], a - callba RemoveItemByID + ldh [hItemToRemoveID], a + farcall RemoveItemByID SetEvent EVENT_GOT_BICYCLE ld hl, BikeShopText_1d824 call PrintText @@ -53,14 +53,14 @@ BikeShopText1: ld [wTopMenuItemX], a ld hl, wd730 set 6, [hl] - coord hl, 0, 0 + hlcoord 0, 0 lb bc, 4, 15 call TextBoxBorder call UpdateSprites - coord hl, 2, 2 + hlcoord 2, 2 ld de, BikeShopMenuText call PlaceString - coord hl, 8, 3 + hlcoord 8, 3 ld de, BikeShopMenuPrice call PlaceString ld hl, BikeShopText_1d815 @@ -90,50 +90,50 @@ BikeShopMenuPrice: db "¥1000000@" BikeShopText_1d810: - TX_FAR _BikeShopText_1d810 - db "@" + text_far _BikeShopText_1d810 + text_end BikeShopText_1d815: - TX_FAR _BikeShopText_1d815 - db "@" + text_far _BikeShopText_1d815 + text_end BikeShopCantAffordText: - TX_FAR _BikeShopCantAffordText - db "@" + text_far _BikeShopCantAffordText + text_end BikeShopText_1d81f: - TX_FAR _BikeShopText_1d81f - db "@" + text_far _BikeShopText_1d81f + text_end BikeShopText_1d824: - TX_FAR _BikeShopText_1d824 - TX_SFX_KEY_ITEM - db "@" + text_far _BikeShopText_1d824 + sound_get_key_item + text_end BikeShopComeAgainText: - TX_FAR _BikeShopComeAgainText - db "@" + text_far _BikeShopComeAgainText + text_end BikeShopText_1d82f: - TX_FAR _BikeShopText_1d82f - db "@" + text_far _BikeShopText_1d82f + text_end BikeShopText_1d834: - TX_FAR _BikeShopText_1d834 - db "@" + text_far _BikeShopText_1d834 + text_end BikeShopText2: - TX_ASM + text_asm ld hl, BikeShopText_1d843 call PrintText jp TextScriptEnd BikeShopText_1d843: - TX_FAR _BikeShopText_1d843 - db "@" + text_far _BikeShopText_1d843 + text_end BikeShopText3: - TX_ASM + text_asm CheckEvent EVENT_GOT_BICYCLE ld hl, BikeShopText_1d861 jr nz, .asm_34d2d @@ -143,9 +143,9 @@ BikeShopText3: jp TextScriptEnd BikeShopText_1d85c: - TX_FAR _BikeShopText_1d85c - db "@" + text_far _BikeShopText_1d85c + text_end BikeShopText_1d861: - TX_FAR _BikeShopText_1d861 - db "@" + text_far _BikeShopText_1d861 + text_end diff --git a/scripts/BillsHouse.asm b/scripts/BillsHouse.asm index a9e09947f..8559c0b1c 100755 --- a/scripts/BillsHouse.asm +++ b/scripts/BillsHouse.asm @@ -41,9 +41,9 @@ BillsHouseScript0: ld a, [wd472] bit 7, a jr z, .asm_1e0d2 - callab CheckPikachuFaintedOrStatused + callfar CheckPikachuFaintedOrStatused jr c, .asm_1e0d2 - callab Func_f24d5 + callfar Func_f24d5 .asm_1e0d2 xor a ld [wJoyIgnore], a @@ -63,12 +63,12 @@ BillsHouseScript2: jr nz, .notDown call CheckPikachuFollowingPlayer jr nz, .asm_1e0f8 - callab Func_f250b + callfar Func_f250b .asm_1e0f8 ld de, MovementData_1e7a0 .notDown ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call MoveSprite ld a, $3 ld [wBillsHouseCurScript], a @@ -78,7 +78,7 @@ MovementData_1e79c: db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP - db $FF + db -1 ; end ; make Bill walk around the player MovementData_1e7a0: @@ -87,7 +87,7 @@ MovementData_1e7a0: db NPC_MOVEMENT_UP db NPC_MOVEMENT_LEFT db NPC_MOVEMENT_UP - db $FF + db -1 ; end BillsHouseScript3: ld a, [wd730] @@ -105,7 +105,7 @@ BillsHouseScript3: ld hl, PikachuMovementData_1e152 .asm_1e133 call ApplyPikachuMovementData - callab InitializePikachuTextID + callfar InitializePikachuTextID .asm_1e13e xor a ld [wJoyIgnore], a @@ -144,13 +144,13 @@ BillsHouseScript5: ld a, $2 ld [wSpriteIndex], a ld a, $c - ld [$ffeb], a + ldh [hSpriteScreenYCoord], a ld a, $40 - ld [$ffec], a - ld a, $6 - ld [$ffed], a - ld a, $5 - ld [$ffee], a + ldh [hSpriteScreenXCoord], a + ld a, 6 + ldh [hSpriteMapYCoord], a + ld a, 5 + ldh [hSpriteMapXCoord], a call SetSpritePosition1 ld a, HS_BILL_1 ld [wMissableObjectIndex], a @@ -163,9 +163,9 @@ BillsHouseScript5: call CheckPikachuFollowingPlayer jr z, .asm_1e1c6 ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld a, SPRITE_FACING_DOWN - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld hl, PikachuMovementData_1e1a9 call ApplyPikachuMovementData @@ -174,10 +174,10 @@ BillsHouseScript5: ld a, EXCLAMATION_BUBBLE ld [wWhichEmotionBubble], a predef EmotionBubble - callab InitializePikachuTextID + callfar InitializePikachuTextID .asm_1e1c6 ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld de, MovementData_1e807 call MoveSprite ld a, $6 @@ -190,7 +190,7 @@ MovementData_1e807: db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_DOWN - db $FF + db -1 ; end PikachuMovementData_1e1a9: db $00 @@ -225,7 +225,7 @@ BillsHouseScript7: ret RLE_1e219: - db D_RIGHT,$3 + db D_RIGHT, $3 db $FF BillsHouseScript8: @@ -237,14 +237,14 @@ BillsHouseScript8: ld a, SPRITE_FACING_UP ld [wSpritePlayerStateData1FacingDirection], a ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld a, SPRITE_FACING_DOWN - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay xor a ld [wJoyIgnore], a ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $9 ld [wBillsHouseCurScript], a @@ -260,20 +260,20 @@ BillsHouse_TextPointers: dw BillsHouseText4 BillsHouseText4: - TX_FAR _BillsHouseDontLeaveText - db "@" + text_far _BillsHouseDontLeaveText + text_end BillsHouseText1: - TX_ASM - callba Func_f2418 + text_asm + farcall Func_f2418 jp TextScriptEnd BillsHouseText2: - TX_ASM - callba Func_f244a + text_asm + farcall Func_f244a jp TextScriptEnd BillsHouseText3: - TX_ASM - callba Func_f24a2 + text_asm + farcall Func_f24a2 jp TextScriptEnd diff --git a/scripts/BillsHouse2.asm b/scripts/BillsHouse2.asm index ce4740048..b1c6e8203 100755 --- a/scripts/BillsHouse2.asm +++ b/scripts/BillsHouse2.asm @@ -1,4 +1,4 @@ -Func_f2418: +Func_f2418:: ld hl, BillsHouseText_f243b call PrintText call YesNoChoice @@ -18,18 +18,18 @@ Func_f2418: jr .asm_f2427 BillsHouseText_f243b: - TX_FAR _BillsHouseText_1e865 - db "@" + text_far _BillsHouseText_1e865 + text_end BillsHouseText_f2440: - TX_FAR _BillsHouseText_1e86a - db "@" + text_far _BillsHouseText_1e86a + text_end BillsHouseText_f2445: - TX_FAR _BillsHouseText_1e86f - db "@" + text_far _BillsHouseText_1e86f + text_end -Func_f244a: +Func_f244a:: CheckEvent EVENT_GOT_SS_TICKET jr nz, .asm_f247e ld hl, BillsHouseText_f248c @@ -57,31 +57,31 @@ Func_f244a: ret BillsHouseText_f248c: - TX_FAR _BillThankYouText - db "@" + text_far _BillThankYouText + text_end BillsHouseText_f2491: - TX_FAR _SSTicketReceivedText - TX_SFX_KEY_ITEM - TX_BLINK - db "@" + text_far _SSTicketReceivedText + sound_get_key_item + text_promptbutton + text_end BillsHouseText_f2498: - TX_FAR _SSTicketNoRoomText - db "@" + text_far _SSTicketNoRoomText + text_end BillsHouseText_f249d: - TX_FAR _BillsHouseText_1e8cb - db "@" + text_far _BillsHouseText_1e8cb + text_end -Func_f24a2: +Func_f24a2:: ld hl, BillsHouseText_f24a9 call PrintText ret BillsHouseText_f24a9: - TX_FAR _BillsHouseText_1e8da - db "@" + text_far _BillsHouseText_1e8da + text_end Func_f24ae: ld a, [wCurMap] @@ -106,7 +106,7 @@ Func_f24ae: ld e, $ff ret -Func_f24d5: +Func_f24d5:: ld a, $ff ld [wJoyIgnore], a xor a @@ -121,7 +121,7 @@ Func_f24d5: ld [wWhichEmotionBubble], a predef EmotionBubble call DisablePikachuFollowingPlayer - callab InitializePikachuTextID + callfar InitializePikachuTextID ret Data_f2505: @@ -132,7 +132,7 @@ Data_f2505: db $1e db $3f -Func_f250b: +Func_f250b:: ld hl, Data_f251c ld b, SPRITE_FACING_UP call TryApplyPikachuMovementData diff --git a/scripts/BluesHouse.asm b/scripts/BluesHouse.asm index 471e69896..9d9bf33ae 100755 --- a/scripts/BluesHouse.asm +++ b/scripts/BluesHouse.asm @@ -11,75 +11,76 @@ BluesHouse_ScriptPointers: BluesHouseScript0: SetEvent EVENT_ENTERED_BLUES_HOUSE - - ; trigger the next script - ld a, 1 + ld a, $1 ld [wBluesHouseCurScript], a BluesHouseScript1: ret BluesHouse_TextPointers: - dw BluesHouseText1 - dw BluesHouseText2 - dw BluesHouseText3 + dw BluesHouseDaisySittingText + dw BluesHouseDaisyWalkingText + dw BluesHouseTownMapText -BluesHouseText1: - TX_ASM +BluesHouseDaisySittingText: + text_asm CheckEvent EVENT_GOT_TOWN_MAP - jr nz, .GotMap + jr nz, .got_town_map CheckEvent EVENT_GOT_POKEDEX - jr nz, .GiveMap + jr nz, .give_town_map ld hl, DaisyInitialText call PrintText jr .done -.GiveMap + +.give_town_map ld hl, DaisyOfferMapText call PrintText lb bc, TOWN_MAP, 1 call GiveItem - jr nc, .BagFull + jr nc, .bag_full ld a, HS_TOWN_MAP ld [wMissableObjectIndex], a - predef HideObject ; hide table map object + predef HideObject ld hl, GotMapText call PrintText SetEvent EVENT_GOT_TOWN_MAP jr .done -.GotMap + +.got_town_map ld hl, DaisyUseMapText call PrintText jr .done -.BagFull + +.bag_full ld hl, DaisyBagFullText call PrintText .done jp TextScriptEnd DaisyInitialText: - TX_FAR _DaisyInitialText - db "@" + text_far _DaisyInitialText + text_end DaisyOfferMapText: - TX_FAR _DaisyOfferMapText - db "@" + text_far _DaisyOfferMapText + text_end GotMapText: - TX_FAR _GotMapText - TX_SFX_KEY_ITEM - db "@" + text_far _GotMapText + sound_get_key_item + text_end DaisyBagFullText: - TX_FAR _DaisyBagFullText - db "@" + text_far _DaisyBagFullText + text_end DaisyUseMapText: - TX_FAR _DaisyUseMapText - db "@" + text_far _DaisyUseMapText + text_end -BluesHouseText2: ; Daisy, walking around - TX_FAR _BluesHouseText2 - db "@" +BluesHouseDaisyWalkingText: + text_far _BluesHouseDaisyWalkingText + text_end -BluesHouseText3: ; map on table - TX_FAR _BluesHouseText3 - db "@" +BluesHouseTownMapText: + text_far _BluesHouseTownMapText + text_end diff --git a/scripts/BrunosRoom.asm b/scripts/BrunosRoom.asm index a525e5bb4..e5ecc1afa 100755 --- a/scripts/BrunosRoom.asm +++ b/scripts/BrunosRoom.asm @@ -64,8 +64,8 @@ BrunoScript0: call ArePlayerCoordsInArray jp nc, CheckFightingMapTrainers xor a - ld [hJoyPressed], a - ld [hJoyHeld], a + ldh [hJoyPressed], a + ldh [hJoyHeld], a ld [wSimulatedJoypadStatesEnd], a ld [wSimulatedJoypadStatesIndex], a ld a, [wCoordIndex] @@ -75,7 +75,7 @@ BrunoScript0: jr z, BrunoScriptWalkIntoRoom .stopPlayerFromLeaving ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ; "Don't run away!" ld a, D_UP ld [wSimulatedJoypadStatesEnd], a @@ -88,11 +88,11 @@ BrunoScript0: ret BrunoEntranceCoords: - db $0A,$04 - db $0A,$05 - db $0B,$04 - db $0B,$05 - db $FF + dbmapcoord 4, 10 + dbmapcoord 5, 10 + dbmapcoord 4, 11 + dbmapcoord 5, 11 + db -1 ; end BrunoScript3: ld a, [wSimulatedJoypadStatesIndex] @@ -111,7 +111,7 @@ BrunoScript2: cp $ff jp z, ResetBrunoScript ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a jp DisplayTextID BrunosRoom_TextPointers: @@ -119,34 +119,27 @@ BrunosRoom_TextPointers: dw BrunoDontRunAwayText BrunoTrainerHeader0: - dbEventFlagBit EVENT_BEAT_BRUNOS_ROOM_TRAINER_0 - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_BRUNOS_ROOM_TRAINER_0 - dw BrunoBeforeBattleText ; TextBeforeBattle - dw BrunoAfterBattleText ; TextAfterBattle - dw BrunoEndBattleText ; TextEndBattle - dw BrunoEndBattleText ; TextEndBattle - - db $ff + trainer EVENT_BEAT_BRUNOS_ROOM_TRAINER_0, 0, BrunoBeforeBattleText, BrunoEndBattleText, BrunoAfterBattleText + db -1 ; end BrunoText1: - TX_ASM + text_asm ld hl, BrunoTrainerHeader0 call TalkToTrainer jp TextScriptEnd BrunoBeforeBattleText: - TX_FAR _BrunoBeforeBattleText - db "@" + text_far _BrunoBeforeBattleText + text_end BrunoEndBattleText: - TX_FAR _BrunoEndBattleText - db "@" + text_far _BrunoEndBattleText + text_end BrunoAfterBattleText: - TX_FAR _BrunoAfterBattleText - db "@" + text_far _BrunoAfterBattleText + text_end BrunoDontRunAwayText: - TX_FAR _BrunoDontRunAwayText - db "@" + text_far _BrunoDontRunAwayText + text_end diff --git a/scripts/CeladonChiefHouse.asm b/scripts/CeladonChiefHouse.asm index fc37bd4d2..ad604b980 100755 --- a/scripts/CeladonChiefHouse.asm +++ b/scripts/CeladonChiefHouse.asm @@ -8,13 +8,13 @@ CeladonChiefHouse_TextPointers: dw CeladonHouseText3 CeladonHouseText1: - TX_FAR _CeladonHouseText1 - db "@" + text_far _CeladonHouseText1 + text_end CeladonHouseText2: - TX_FAR _CeladonHouseText2 - db "@" + text_far _CeladonHouseText2 + text_end CeladonHouseText3: - TX_FAR _CeladonHouseText3 - db "@" + text_far _CeladonHouseText3 + text_end diff --git a/scripts/CeladonCity.asm b/scripts/CeladonCity.asm index bd49f5af0..b62809807 100755 --- a/scripts/CeladonCity.asm +++ b/scripts/CeladonCity.asm @@ -34,28 +34,28 @@ CeladonCity_TextPointers: dw CeladonCityText18 CeladonCityText1: - TX_FAR _CeladonCityText1 - db "@" + text_far _CeladonCityText1 + text_end CeladonCityText2: - TX_FAR _CeladonCityText2 - db "@" + text_far _CeladonCityText2 + text_end CeladonCityText3: - TX_FAR _CeladonCityText3 - db "@" + text_far _CeladonCityText3 + text_end CeladonCityText4: - TX_FAR _CeladonCityText4 - db "@" + text_far _CeladonCityText4 + text_end CeladonCityText5: - TX_ASM + text_asm CheckEvent EVENT_GOT_TM41 jr nz, .asm_7053f ld hl, TM41PreText call PrintText - lb bc, TM_41, 1 + lb bc, TM_SOFTBOILED, 1 call GiveItem jr c, .Success ld hl, TM41NoRoomText @@ -73,70 +73,70 @@ CeladonCityText5: jp TextScriptEnd TM41PreText: - TX_FAR _TM41PreText - db "@" + text_far _TM41PreText + text_end ReceivedTM41Text: - TX_FAR _ReceivedTM41Text - TX_SFX_ITEM_1 - db "@" + text_far _ReceivedTM41Text + sound_get_item_1 + text_end TM41ExplanationText: - TX_FAR _TM41ExplanationText - db "@" + text_far _TM41ExplanationText + text_end TM41NoRoomText: - TX_FAR _TM41NoRoomText - db "@" + text_far _TM41NoRoomText + text_end CeladonCityText6: - TX_FAR _CeladonCityText6 - db "@" + text_far _CeladonCityText6 + text_end CeladonCityText7: - TX_FAR _CeladonCityText7 - TX_ASM + text_far _CeladonCityText7 + text_asm ld a, POLIWRATH call PlayCry jp TextScriptEnd CeladonCityText8: - TX_FAR _CeladonCityText8 - db "@" + text_far _CeladonCityText8 + text_end CeladonCityText9: - TX_FAR _CeladonCityText9 - db "@" + text_far _CeladonCityText9 + text_end CeladonCityText10: - TX_ASM - callba Func_f1ac6 + text_asm + farcall Func_f1ac6 jp TextScriptEnd CeladonCityText11: - TX_FAR _CeladonCityText11 - db "@" + text_far _CeladonCityText11 + text_end CeladonCityText13: - TX_FAR _CeladonCityText13 - db "@" + text_far _CeladonCityText13 + text_end CeladonCityText14: - TX_FAR _CeladonCityText14 - db "@" + text_far _CeladonCityText14 + text_end CeladonCityText15: - TX_FAR _CeladonCityText15 - db "@" + text_far _CeladonCityText15 + text_end CeladonCityText16: - TX_FAR _CeladonCityText16 - db "@" + text_far _CeladonCityText16 + text_end CeladonCityText17: - TX_FAR _CeladonCityText17 - db "@" + text_far _CeladonCityText17 + text_end CeladonCityText18: - TX_FAR _CeladonCityText18 - db "@" + text_far _CeladonCityText18 + text_end diff --git a/scripts/CeladonCity2.asm b/scripts/CeladonCity2.asm index 12f7b3668..56824c9ae 100755 --- a/scripts/CeladonCity2.asm +++ b/scripts/CeladonCity2.asm @@ -1,8 +1,8 @@ -Func_f1ac6: +Func_f1ac6:: ld hl, Text_f1acd call PrintText ret Text_f1acd: - TX_FAR _CeladonCityText10 - db "@" + text_far _CeladonCityText10 + text_end diff --git a/scripts/CeladonDiner.asm b/scripts/CeladonDiner.asm index f444ec15e..b4936e755 100755 --- a/scripts/CeladonDiner.asm +++ b/scripts/CeladonDiner.asm @@ -10,22 +10,22 @@ CeladonDiner_TextPointers: dw CeladonDinerText5 CeladonDinerText1: - TX_FAR _CeladonDinerText1 - db "@" + text_far _CeladonDinerText1 + text_end CeladonDinerText2: - TX_FAR _CeladonDinerText2 - db "@" + text_far _CeladonDinerText2 + text_end CeladonDinerText3: - TX_FAR _CeladonDinerText3 - db "@" + text_far _CeladonDinerText3 + text_end CeladonDinerText4: - TX_FAR _CeladonDinerText4 - db "@" + text_far _CeladonDinerText4 + text_end CeladonDinerText5: - TX_ASM - callab Func_f1f31 + text_asm + callfar Func_f1f31 jp TextScriptEnd diff --git a/scripts/CeladonDiner2.asm b/scripts/CeladonDiner2.asm index 8cd66a19c..ceef9f52d 100755 --- a/scripts/CeladonDiner2.asm +++ b/scripts/CeladonDiner2.asm @@ -1,38 +1,38 @@ -Func_f1f31: +Func_f1f31:: CheckEvent EVENT_GOT_COIN_CASE - jr nz, .asm_eb14d + jr nz, .got_item ld hl, CeladonDinerText_491a7 call PrintText lb bc, COIN_CASE, 1 call GiveItem - jr nc, .BagFull + jr nc, .bag_full SetEvent EVENT_GOT_COIN_CASE ld hl, ReceivedCoinCaseText call PrintText - jr .asm_68b61 -.BagFull + jr .done +.bag_full ld hl, CoinCaseNoRoomText call PrintText - jr .asm_68b61 -.asm_eb14d + jr .done +.got_item ld hl, CeladonDinerText_491b7 call PrintText -.asm_68b61 +.done ret CeladonDinerText_491a7: - TX_FAR _CeladonDinerText_491a7 - db "@" + text_far _CeladonDinerText_491a7 + text_end ReceivedCoinCaseText: - TX_FAR _ReceivedCoinCaseText - TX_SFX_KEY_ITEM - db "@" + text_far _ReceivedCoinCaseText + sound_get_key_item + text_end CoinCaseNoRoomText: - TX_FAR _CoinCaseNoRoomText - db "@" + text_far _CoinCaseNoRoomText + text_end CeladonDinerText_491b7: - TX_FAR _CeladonDinerText_491b7 - db "@" + text_far _CeladonDinerText_491b7 + text_end diff --git a/scripts/CeladonGym.asm b/scripts/CeladonGym.asm index 50c02196f..2b695819f 100755 --- a/scripts/CeladonGym.asm +++ b/scripts/CeladonGym.asm @@ -2,7 +2,7 @@ CeladonGym_Script: ld hl, wCurrentMapScriptFlags bit 6, [hl] res 6, [hl] - call nz, CeladonGymScript_48927 + call nz, .LoadNames call EnableAutoTextBoxDrawing ld hl, CeladonGymTrainerHeader0 ld de, CeladonGym_ScriptPointers @@ -11,15 +11,15 @@ CeladonGym_Script: ld [wCeladonGymCurScript], a ret -CeladonGymScript_48927: - ld hl, Gym4CityName - ld de, Gym4LeaderName +.LoadNames: + ld hl, .CityName + ld de, .LeaderName jp LoadGymLeaderAndCityName -Gym4CityName: +.CityName: db "CELADON CITY@" -Gym4LeaderName: +.LeaderName: db "ERIKA@" CeladonGymText_48943: @@ -44,26 +44,26 @@ CeladonGymScript3: CeladonGymText_48963: ld a, $9 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_BEAT_ERIKA - lb bc, TM_21, 1 + lb bc, TM_MEGA_DRAIN, 1 call GiveItem jr nc, .BagFull ld a, $a - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_GOT_TM21 jr .gymVictory .BagFull ld a, $b - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID .gymVictory ld hl, wObtainedBadges - set 3, [hl] + set BIT_RAINBOWBADGE, [hl] ld hl, wBeatGymFlags - set 3, [hl] + set BIT_RAINBOWBADGE, [hl] ; deactivate gym trainers SetEventRange EVENT_BEAT_CELADON_GYM_TRAINER_0, EVENT_BEAT_CELADON_GYM_TRAINER_6 @@ -84,72 +84,23 @@ CeladonGym_TextPointers: dw TM21NoRoomText CeladonGymTrainerHeader0: - dbEventFlagBit EVENT_BEAT_CELADON_GYM_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_CELADON_GYM_TRAINER_0 - dw CeladonGymBattleText2 ; TextBeforeBattle - dw CeladonGymAfterBattleText2 ; TextAfterBattle - dw CeladonGymEndBattleText2 ; TextEndBattle - dw CeladonGymEndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_CELADON_GYM_TRAINER_0, 2, CeladonGymBattleText2, CeladonGymEndBattleText2, CeladonGymAfterBattleText2 CeladonGymTrainerHeader1: - dbEventFlagBit EVENT_BEAT_CELADON_GYM_TRAINER_1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_CELADON_GYM_TRAINER_1 - dw CeladonGymBattleText3 ; TextBeforeBattle - dw CeladonGymAfterBattleText3 ; TextAfterBattle - dw CeladonGymEndBattleText3 ; TextEndBattle - dw CeladonGymEndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_CELADON_GYM_TRAINER_1, 2, CeladonGymBattleText3, CeladonGymEndBattleText3, CeladonGymAfterBattleText3 CeladonGymTrainerHeader2: - dbEventFlagBit EVENT_BEAT_CELADON_GYM_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_CELADON_GYM_TRAINER_2 - dw CeladonGymBattleText4 ; TextBeforeBattle - dw CeladonGymAfterBattleText4 ; TextAfterBattle - dw CeladonGymEndBattleText4 ; TextEndBattle - dw CeladonGymEndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_CELADON_GYM_TRAINER_2, 4, CeladonGymBattleText4, CeladonGymEndBattleText4, CeladonGymAfterBattleText4 CeladonGymTrainerHeader3: - dbEventFlagBit EVENT_BEAT_CELADON_GYM_TRAINER_3 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_CELADON_GYM_TRAINER_3 - dw CeladonGymBattleText5 ; TextBeforeBattle - dw CeladonGymAfterBattleText5 ; TextAfterBattle - dw CeladonGymEndBattleText5 ; TextEndBattle - dw CeladonGymEndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_CELADON_GYM_TRAINER_3, 4, CeladonGymBattleText5, CeladonGymEndBattleText5, CeladonGymAfterBattleText5 CeladonGymTrainerHeader4: - dbEventFlagBit EVENT_BEAT_CELADON_GYM_TRAINER_4 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_CELADON_GYM_TRAINER_4 - dw CeladonGymBattleText6 ; TextBeforeBattle - dw CeladonGymAfterBattleText6 ; TextAfterBattle - dw CeladonGymEndBattleText6 ; TextEndBattle - dw CeladonGymEndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_CELADON_GYM_TRAINER_4, 2, CeladonGymBattleText6, CeladonGymEndBattleText6, CeladonGymAfterBattleText6 CeladonGymTrainerHeader5: - dbEventFlagBit EVENT_BEAT_CELADON_GYM_TRAINER_5 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_CELADON_GYM_TRAINER_5 - dw CeladonGymBattleText7 ; TextBeforeBattle - dw CeladonGymAfterBattleText7 ; TextAfterBattle - dw CeladonGymEndBattleText7 ; TextEndBattle - dw CeladonGymEndBattleText7 ; TextEndBattle - + trainer EVENT_BEAT_CELADON_GYM_TRAINER_5, 2, CeladonGymBattleText7, CeladonGymEndBattleText7, CeladonGymAfterBattleText7 CeladonGymTrainerHeader6: - dbEventFlagBit EVENT_BEAT_CELADON_GYM_TRAINER_6, 1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_CELADON_GYM_TRAINER_6, 1 - dw CeladonGymBattleText8 ; TextBeforeBattle - dw CeladonGymAfterBattleText8 ; TextAfterBattle - dw CeladonGymEndBattleText8 ; TextEndBattle - dw CeladonGymEndBattleText8 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_CELADON_GYM_TRAINER_6, 1, 3, CeladonGymBattleText8, CeladonGymEndBattleText8, CeladonGymAfterBattleText8 + db -1 ; end CeladonGymText1: - TX_ASM + text_asm CheckEvent EVENT_BEAT_ERIKA jr z, .beginBattle CheckEventReuseA EVENT_GOT_TM21 @@ -170,7 +121,7 @@ CeladonGymText1: ld hl, CeladonGymText_48a63 ld de, CeladonGymText_48a63 call SaveEndBattleTextPointers - ld a, [H_SPRITEINDEX] + ldh a, [hSpriteIndex] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters @@ -183,153 +134,153 @@ CeladonGymText1: jp TextScriptEnd CeladonGymText_48a5e: - TX_FAR _CeladonGymText_48a5e - db "@" + text_far _CeladonGymText_48a5e + text_end CeladonGymText_48a63: - TX_FAR _CeladonGymText_48a63 - db "@" + text_far _CeladonGymText_48a63 + text_end CeladonGymText_48a68: - TX_FAR _CeladonGymText_48a68 - db "@" + text_far _CeladonGymText_48a68 + text_end CeladonGymText9: - TX_FAR _CeladonGymText9 - db "@" + text_far _CeladonGymText9 + text_end TM21Text: - TX_FAR _ReceivedTM21Text - TX_SFX_ITEM_1 - TX_FAR _TM21ExplanationText - db "@" + text_far _ReceivedTM21Text + sound_get_item_1 + text_far _TM21ExplanationText + text_end TM21NoRoomText: - TX_FAR _TM21NoRoomText - db "@" + text_far _TM21NoRoomText + text_end CeladonGymText2: - TX_ASM + text_asm ld hl, CeladonGymTrainerHeader0 call TalkToTrainer jp TextScriptEnd CeladonGymBattleText2: - TX_FAR _CeladonGymBattleText2 - db "@" + text_far _CeladonGymBattleText2 + text_end CeladonGymEndBattleText2: - TX_FAR _CeladonGymEndBattleText2 - db "@" + text_far _CeladonGymEndBattleText2 + text_end CeladonGymAfterBattleText2: - TX_FAR _CeladonGymAfterBattleText2 - db "@" + text_far _CeladonGymAfterBattleText2 + text_end CeladonGymText3: - TX_ASM + text_asm ld hl, CeladonGymTrainerHeader1 call TalkToTrainer jp TextScriptEnd CeladonGymBattleText3: - TX_FAR _CeladonGymBattleText3 - db "@" + text_far _CeladonGymBattleText3 + text_end CeladonGymEndBattleText3: - TX_FAR _CeladonGymEndBattleText3 - db "@" + text_far _CeladonGymEndBattleText3 + text_end CeladonGymAfterBattleText3: - TX_FAR _CeladonGymAfterBattleText3 - db "@" + text_far _CeladonGymAfterBattleText3 + text_end CeladonGymText4: - TX_ASM + text_asm ld hl, CeladonGymTrainerHeader2 call TalkToTrainer jp TextScriptEnd CeladonGymBattleText4: - TX_FAR _CeladonGymBattleText4 - db "@" + text_far _CeladonGymBattleText4 + text_end CeladonGymEndBattleText4: - TX_FAR _CeladonGymEndBattleText4 - db "@" + text_far _CeladonGymEndBattleText4 + text_end CeladonGymAfterBattleText4: - TX_FAR _CeladonGymAfterBattleText4 - db "@" + text_far _CeladonGymAfterBattleText4 + text_end CeladonGymText5: - TX_ASM + text_asm ld hl, CeladonGymTrainerHeader3 call TalkToTrainer jp TextScriptEnd CeladonGymBattleText5: - TX_FAR _CeladonGymBattleText5 - db "@" + text_far _CeladonGymBattleText5 + text_end CeladonGymEndBattleText5: - TX_FAR _CeladonGymEndBattleText5 - db "@" + text_far _CeladonGymEndBattleText5 + text_end CeladonGymAfterBattleText5: - TX_FAR _CeladonGymAfterBattleText5 - db "@" + text_far _CeladonGymAfterBattleText5 + text_end CeladonGymText6: - TX_ASM + text_asm ld hl, CeladonGymTrainerHeader4 call TalkToTrainer jp TextScriptEnd CeladonGymBattleText6: - TX_FAR _CeladonGymBattleText6 - db "@" + text_far _CeladonGymBattleText6 + text_end CeladonGymEndBattleText6: - TX_FAR _CeladonGymEndBattleText6 - db "@" + text_far _CeladonGymEndBattleText6 + text_end CeladonGymAfterBattleText6: - TX_FAR _CeladonGymAfterBattleText6 - db "@" + text_far _CeladonGymAfterBattleText6 + text_end CeladonGymText7: - TX_ASM + text_asm ld hl, CeladonGymTrainerHeader5 call TalkToTrainer jp TextScriptEnd CeladonGymBattleText7: - TX_FAR _CeladonGymBattleText7 - db "@" + text_far _CeladonGymBattleText7 + text_end CeladonGymEndBattleText7: - TX_FAR _CeladonGymEndBattleText7 - db "@" + text_far _CeladonGymEndBattleText7 + text_end CeladonGymAfterBattleText7: - TX_FAR _CeladonGymAfterBattleText7 - db "@" + text_far _CeladonGymAfterBattleText7 + text_end CeladonGymText8: - TX_ASM + text_asm ld hl, CeladonGymTrainerHeader6 call TalkToTrainer jp TextScriptEnd CeladonGymBattleText8: - TX_FAR _CeladonGymBattleText8 - db "@" + text_far _CeladonGymBattleText8 + text_end CeladonGymEndBattleText8: - TX_FAR _CeladonGymEndBattleText8 - db "@" + text_far _CeladonGymEndBattleText8 + text_end CeladonGymAfterBattleText8: - TX_FAR _CeladonGymAfterBattleText8 - db "@" + text_far _CeladonGymAfterBattleText8 + text_end diff --git a/scripts/CeladonHotel.asm b/scripts/CeladonHotel.asm index ee4e140c2..2cdd95b08 100755 --- a/scripts/CeladonHotel.asm +++ b/scripts/CeladonHotel.asm @@ -7,13 +7,13 @@ CeladonHotel_TextPointers: dw CeladonHotelText3 CeladonHotelText1: - TX_FAR _CeladonHotelText1 - db "@" + text_far _CeladonHotelText1 + text_end CeladonHotelText2: - TX_FAR _CeladonHotelText2 - db "@" + text_far _CeladonHotelText2 + text_end CeladonHotelText3: - TX_FAR _CeladonHotelText3 - db "@" + text_far _CeladonHotelText3 + text_end diff --git a/scripts/CeladonMansion1F.asm b/scripts/CeladonMansion1F.asm index 1d7c37b48..61d53da72 100755 --- a/scripts/CeladonMansion1F.asm +++ b/scripts/CeladonMansion1F.asm @@ -10,39 +10,39 @@ CeladonMansion1F_TextPointers: dw CeladonMansion1Text5 CeladonMansion1Text1: - TX_FAR _CeladonMansion1Text1 - TX_ASM + text_far _CeladonMansion1Text1 + text_asm ld a, MEOWTH call PlayCry jp TextScriptEnd CeladonMansion1Text2: - TX_ASM - callba Func_f1e70 + text_asm + farcall Func_f1e70 ld a, [wPikachuHappiness] cp 251 jr c, .asm_485d9 ld c, 50 call DelayFrames ldpikacry e, PikachuCry23 - callab PlayPikachuSoundClip + callfar PlayPikachuSoundClip .asm_485d9 jp TextScriptEnd CeladonMansion1Text3: - TX_FAR _CeladonMansion1Text3 - TX_ASM + text_far _CeladonMansion1Text3 + text_asm ld a, CLEFAIRY call PlayCry jp TextScriptEnd CeladonMansion1Text4: - TX_FAR _CeladonMansion1Text4 - TX_ASM + text_far _CeladonMansion1Text4 + text_asm ld a, NIDORAN_F call PlayCry jp TextScriptEnd CeladonMansion1Text5: - TX_FAR _CeladonMansion1Text5 - db "@" + text_far _CeladonMansion1Text5 + text_end diff --git a/scripts/CeladonMansion1F_2.asm b/scripts/CeladonMansion1F_2.asm index cdd56ab8b..70bf6c888 100755 --- a/scripts/CeladonMansion1F_2.asm +++ b/scripts/CeladonMansion1F_2.asm @@ -1,9 +1,9 @@ -Func_f1e70: +Func_f1e70:: ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, CeladonMansion1Text_f1e96 call PrintText - callab IsStarterPikachuInOurParty + callfar IsStarterPikachuInOurParty ret nc ld hl, CeladonMansionText_f1e9c call PrintText @@ -14,14 +14,14 @@ Func_f1e70: ret CeladonMansion1Text_f1e96: - TX_FAR _CeladonMansion1Text2 - TX_WAIT - db "@" + text_far _CeladonMansion1Text2 + text_waitbutton + text_end CeladonMansionText_f1e9c: - TX_FAR _CeladonMansion1Text6 - TX_BLINK - db "@" + text_far _CeladonMansion1Text6 + text_promptbutton + text_end Func_f1ea2: ld hl, PikachuHappinessThresholds_f1eb9 @@ -44,7 +44,7 @@ Func_f1ea2: ld l, a ret -PikachuHappinessThresholds_f1eb9 +PikachuHappinessThresholds_f1eb9: dw 51, CeladonMansion1Text_f1ed5 dw 101, CeladonMansion1Text_f1eda dw 131, CeladonMansion1Text_f1edf @@ -54,25 +54,25 @@ PikachuHappinessThresholds_f1eb9 dbbw 0, $ff, CeladonMansion1Text_f1eee CeladonMansion1Text_f1ed5: - TX_FAR _CeladonMansion1Text7 - db "@" + text_far _CeladonMansion1Text7 + text_end CeladonMansion1Text_f1eda: - TX_FAR _CeladonMansion1Text8 - db "@" + text_far _CeladonMansion1Text8 + text_end CeladonMansion1Text_f1edf: - TX_FAR _CeladonMansion1Text9 - db "@" + text_far _CeladonMansion1Text9 + text_end CeladonMansion1Text_f1ee4: - TX_FAR _CeladonMansion1Text10 - db "@" + text_far _CeladonMansion1Text10 + text_end CeladonMansion1Text_f1ee9: - TX_FAR _CeladonMansion1Text11 - db "@" + text_far _CeladonMansion1Text11 + text_end CeladonMansion1Text_f1eee: - TX_FAR _CeladonMansion1Text12 - db "@" + text_far _CeladonMansion1Text12 + text_end diff --git a/scripts/CeladonMansion2F.asm b/scripts/CeladonMansion2F.asm index 9deb606d2..8f83e86a7 100755 --- a/scripts/CeladonMansion2F.asm +++ b/scripts/CeladonMansion2F.asm @@ -6,5 +6,5 @@ CeladonMansion2F_TextPointers: dw CeladonMansion2Text1 CeladonMansion2Text1: - TX_FAR _CeladonMansion2Text1 - db "@" + text_far _CeladonMansion2Text1 + text_end diff --git a/scripts/CeladonMansion3F.asm b/scripts/CeladonMansion3F.asm index 64a8343b6..0cea70cc2 100755 --- a/scripts/CeladonMansion3F.asm +++ b/scripts/CeladonMansion3F.asm @@ -20,7 +20,7 @@ CeladonMansion3F_TextPointers: dw GameFreakSignText ProgrammerText: - TX_ASM + text_asm call CeladonMansion3_PokedexCount cp 150 ld hl, CeladonMansion3Text_486f5 @@ -31,15 +31,15 @@ ProgrammerText: jp TextScriptEnd CeladonMansion3Text_486f0: - TX_FAR _ProgrammerText - db "@" + text_far _ProgrammerText + text_end CeladonMansion3Text_486f5: - TX_FAR _ProgrammerText2 - db "@" + text_far _ProgrammerText2 + text_end GraphicArtistText: - TX_ASM + text_asm call CeladonMansion3_PokedexCount cp 150 jr nc, .completed @@ -58,7 +58,7 @@ GraphicArtistText: ld [wUpdateSpritesEnabled], a ld hl, wd730 set 6, [hl] - callab PrintDiploma + callfar PrintDiploma ld hl, wd730 res 6, [hl] call GBPalWhiteOutWithDelay3 @@ -68,7 +68,7 @@ GraphicArtistText: call Delay3 call GBPalNormal ld hl, CeladonMansion3Text_4876b - ld a, [$ffdb] + ldh a, [hCanceledPrinting] and a jr nz, .print ld hl, CeladonMansion3Text_48766 @@ -81,27 +81,27 @@ GraphicArtistText: jp TextScriptEnd CeladonMansion3Text_48757: - TX_FAR _GraphicArtistText - db "@" + text_far _GraphicArtistText + text_end CeladonMansion3Text_4875c: - TX_FAR _GraphicArtistText2 - db "@" + text_far _GraphicArtistText2 + text_end CeladonMansion3Text_48761: - TX_FAR _GraphicArtistText3 - db "@" + text_far _GraphicArtistText3 + text_end CeladonMansion3Text_48766: - TX_FAR _GraphicArtistText4 - db "@" + text_far _GraphicArtistText4 + text_end CeladonMansion3Text_4876b: - TX_FAR _GraphicArtistText5 - db "@" + text_far _GraphicArtistText5 + text_end WriterText: - TX_ASM + text_asm call CeladonMansion3_PokedexCount cp 150 ld hl, CeladonMansion3Text_48789 @@ -112,22 +112,22 @@ WriterText: jp TextScriptEnd CeladonMansion3Text_48784: - TX_FAR _WriterText - db "@" + text_far _WriterText + text_end CeladonMansion3Text_48789: - TX_FAR _WriterText2 - db "@" + text_far _WriterText2 + text_end DirectorText: - TX_ASM + text_asm call CeladonMansion3_PokedexCount ; check pokédex - cp 150 - jr nc, .CompletedDex - ld hl, .GameDesigner + cp NUM_POKEMON - 1 ; discount Mew + jr nc, .completed_dex + ld hl, .GameDesignerText jr .done -.CompletedDex +.completed_dex ld hl, .CompletedDexText call PrintText call Delay3 @@ -138,39 +138,39 @@ DirectorText: call PrintText jp TextScriptEnd -.GameDesigner - TX_FAR _GameDesignerText - db "@" +.GameDesignerText: + text_far _GameDesignerText + text_end -.CompletedDexText - TX_FAR _CompletedDexText - TX_BLINK - TX_ASM - callab DisplayDiploma - ld a, $1 +.CompletedDexText: + text_far _CompletedDexText + text_promptbutton + text_asm + callfar DisplayDiploma + ld a, TRUE ld [wDoNotWaitForButtonPressAfterDisplayingText], a jp TextScriptEnd .UnlockedDiplomaPrinting - TX_FAR _CompletedDexText2 - db "@" + text_far _CompletedDexText2 + text_end GameFreakPCText1: - TX_ASM - callba Func_f1ef3 + text_asm + farcall Func_f1ef3 jp TextScriptEnd GameFreakPCText2: - TX_ASM - callba Func_f1eff + text_asm + farcall Func_f1eff jp TextScriptEnd GameFreakPCText3: - TX_ASM - callba Func_f1f0b + text_asm + farcall Func_f1f0b jp TextScriptEnd GameFreakSignText: - TX_ASM - callba Func_f1f17 + text_asm + farcall Func_f1f17 jp TextScriptEnd diff --git a/scripts/CeladonMansion3F_2.asm b/scripts/CeladonMansion3F_2.asm index 3a7035ba5..f0b7c3950 100755 --- a/scripts/CeladonMansion3F_2.asm +++ b/scripts/CeladonMansion3F_2.asm @@ -1,35 +1,35 @@ -Func_f1ef3: +Func_f1ef3:: ld hl, CeladonMansion3Text_f1efa call PrintText ret CeladonMansion3Text_f1efa: - TX_FAR _CeladonMansion3Text5 - db "@" + text_far _CeladonMansion3Text5 + text_end -Func_f1eff: +Func_f1eff:: ld hl, CeladonMansion3Text_f1f06 call PrintText ret CeladonMansion3Text_f1f06: - TX_FAR _CeladonMansion3Text6 - db "@" + text_far _CeladonMansion3Text6 + text_end -Func_f1f0b: +Func_f1f0b:: ld hl, CeladonMansion3Text_f1f12 call PrintText ret CeladonMansion3Text_f1f12: - TX_FAR _CeladonMansion3Text7 - db "@" + text_far _CeladonMansion3Text7 + text_end -Func_f1f17: +Func_f1f17:: ld hl, CeladonMansion3Text_f1f1e call PrintText ret CeladonMansion3Text_f1f1e: - TX_FAR _CeladonMansion3Text8 - db "@" + text_far _CeladonMansion3Text8 + text_end diff --git a/scripts/CeladonMansionRoof.asm b/scripts/CeladonMansionRoof.asm index 1813e9ee4..47c093ddf 100755 --- a/scripts/CeladonMansionRoof.asm +++ b/scripts/CeladonMansionRoof.asm @@ -6,5 +6,5 @@ CeladonMansionRoof_TextPointers: dw CeladonMansion4Text1 CeladonMansion4Text1: - TX_FAR _CeladonMansion4Text1 - db "@" + text_far _CeladonMansion4Text1 + text_end diff --git a/scripts/CeladonMansionRoofHouse.asm b/scripts/CeladonMansionRoofHouse.asm index 8e4853528..3b7e39144 100755 --- a/scripts/CeladonMansionRoofHouse.asm +++ b/scripts/CeladonMansionRoofHouse.asm @@ -7,16 +7,16 @@ CeladonMansionRoofHouse_TextPointers: dw CeladonMansion5Text2 CeladonMansion5Text1: - TX_FAR _CeladonMansion5Text1 - db "@" + text_far _CeladonMansion5Text1 + text_end CeladonMansion5Text2: - TX_ASM + text_asm lb bc, EEVEE, 25 call GivePokemon - jr nc, .asm_24365 + jr nc, .party_full ld a, HS_CELADON_MANSION_EEVEE_GIFT ld [wMissableObjectIndex], a predef HideObject -.asm_24365 +.party_full jp TextScriptEnd diff --git a/scripts/CeladonMart1F.asm b/scripts/CeladonMart1F.asm index e84eaae0a..54176e01d 100755 --- a/scripts/CeladonMart1F.asm +++ b/scripts/CeladonMart1F.asm @@ -8,13 +8,13 @@ CeladonMart1F_TextPointers: dw CeladonMart1Text3 CeladonMart1Text1: - TX_FAR _CeladonMart1Text1 - db "@" + text_far _CeladonMart1Text1 + text_end CeladonMart1Text2: - TX_FAR _CeladonMart1Text2 - db "@" + text_far _CeladonMart1Text2 + text_end CeladonMart1Text3: - TX_FAR _CeladonMart1Text3 - db "@" + text_far _CeladonMart1Text3 + text_end diff --git a/scripts/CeladonMart2F.asm b/scripts/CeladonMart2F.asm index 787c186e4..118271283 100755 --- a/scripts/CeladonMart2F.asm +++ b/scripts/CeladonMart2F.asm @@ -9,13 +9,13 @@ CeladonMart2F_TextPointers: dw CeladonMart2Text5 CeladonMart2Text3: - TX_FAR _CeladonMart2Text3 - db "@" + text_far _CeladonMart2Text3 + text_end CeladonMart2Text4: - TX_FAR _CeladonMart2Text4 - db "@" + text_far _CeladonMart2Text4 + text_end CeladonMart2Text5: - TX_FAR _CeladonMart2Text5 - db "@" + text_far _CeladonMart2Text5 + text_end diff --git a/scripts/CeladonMart3F.asm b/scripts/CeladonMart3F.asm index c8a108d71..01ab73cea 100755 --- a/scripts/CeladonMart3F.asm +++ b/scripts/CeladonMart3F.asm @@ -21,55 +21,55 @@ CeladonMart3F_TextPointers: dw CeladonMart3Text17 CeladonMart3Text1: - TX_ASM - callab Func_f1e30 + text_asm + callfar Func_f1e30 jp TextScriptEnd CeladonMart3Text2: - TX_FAR _CeladonMart3Text2 - db "@" + text_far _CeladonMart3Text2 + text_end CeladonMart3Text3: - TX_FAR _CeladonMart3Text3 - db "@" + text_far _CeladonMart3Text3 + text_end CeladonMart3Text4: - TX_FAR _CeladonMart3Text4 - db "@" + text_far _CeladonMart3Text4 + text_end CeladonMart3Text5: - TX_FAR _CeladonMart3Text5 - db "@" + text_far _CeladonMart3Text5 + text_end -CeladonMart3Text12 +CeladonMart3Text12: CeladonMart3Text10: CeladonMart3Text8: CeladonMart3Text6: - TX_FAR _CeladonMart3Text6 - db "@" + text_far _CeladonMart3Text6 + text_end CeladonMart3Text7: - TX_FAR _CeladonMart3Text7 - db "@" + text_far _CeladonMart3Text7 + text_end CeladonMart3Text9: - TX_FAR _CeladonMart3Text9 - db "@" + text_far _CeladonMart3Text9 + text_end CeladonMart3Text11: - TX_FAR _CeladonMart3Text11 - db "@" + text_far _CeladonMart3Text11 + text_end CeladonMart3Text13: - TX_FAR _CeladonMart3Text13 - db "@" + text_far _CeladonMart3Text13 + text_end CeladonMart3Text14: - TX_FAR _CeladonMart3Text14 - db "@" + text_far _CeladonMart3Text14 + text_end CeladonMart3Text17: CeladonMart3Text16: CeladonMart3Text15: - TX_FAR _CeladonMart3Text15 - db "@" + text_far _CeladonMart3Text15 + text_end diff --git a/scripts/CeladonMart3F_2.asm b/scripts/CeladonMart3F_2.asm index 8c99e0e0f..239f84d12 100755 --- a/scripts/CeladonMart3F_2.asm +++ b/scripts/CeladonMart3F_2.asm @@ -1,38 +1,36 @@ -Func_f1e30 +Func_f1e30:: CheckEvent EVENT_GOT_TM18 - jr nz, .asm_f1e54 - ld hl, CeladonMart3Text_f1e5b + jr nz, .got_item + ld hl, TM18PreReceiveText call PrintText - lb bc, TM_18, 1 + lb bc, TM_COUNTER, 1 call GiveItem - jr nc, .asm_f1e4f + jr nc, .bag_full SetEvent EVENT_GOT_TM18 - ld hl, CeladonMart3Text_f1e60 - jr .asm_f1e57 - -.asm_f1e4f - ld hl, CeladonMart3Text_f1e6b - jr .asm_f1e57 - -.asm_f1e54 - ld hl, CeladonMart3Text_f1e66 -.asm_f1e57 + ld hl, ReceivedTM18Text + jr .done +.bag_full + ld hl, TM18NoRoomText + jr .done +.got_item + ld hl, TM18ExplanationText +.done call PrintText ret -CeladonMart3Text_f1e5b: - TX_FAR _TM18PreReceiveText - db "@" +TM18PreReceiveText: + text_far _TM18PreReceiveText + text_end -CeladonMart3Text_f1e60: - TX_FAR _ReceivedTM18Text - TX_SFX_ITEM_1 - db "@" +ReceivedTM18Text: + text_far _ReceivedTM18Text + sound_get_item_1 + text_end -CeladonMart3Text_f1e66: - TX_FAR _TM18ExplanationText - db "@" +TM18ExplanationText: + text_far _TM18ExplanationText + text_end -CeladonMart3Text_f1e6b: - TX_FAR _TM18NoRoomText - db "@" +TM18NoRoomText: + text_far _TM18NoRoomText + text_end diff --git a/scripts/CeladonMart4F.asm b/scripts/CeladonMart4F.asm index 20f817e9b..1365dd0d4 100755 --- a/scripts/CeladonMart4F.asm +++ b/scripts/CeladonMart4F.asm @@ -8,13 +8,13 @@ CeladonMart4F_TextPointers: dw CeladonMart4Text4 CeladonMart4Text2: - TX_FAR _CeladonMart4Text2 - db "@" + text_far _CeladonMart4Text2 + text_end CeladonMart4Text3: - TX_FAR _CeladonMart4Text3 - db "@" + text_far _CeladonMart4Text3 + text_end CeladonMart4Text4: - TX_FAR _CeladonMart4Text4 - db "@" + text_far _CeladonMart4Text4 + text_end diff --git a/scripts/CeladonMart5F.asm b/scripts/CeladonMart5F.asm index 74c590be5..a6e974055 100755 --- a/scripts/CeladonMart5F.asm +++ b/scripts/CeladonMart5F.asm @@ -10,13 +10,13 @@ CeladonMart5F_TextPointers: dw CeladonMart5Text5 CeladonMart5Text1: - TX_FAR _CeladonMart5Text1 - db "@" + text_far _CeladonMart5Text1 + text_end CeladonMart5Text2: - TX_FAR _CeladonMart5Text2 - db "@" + text_far _CeladonMart5Text2 + text_end CeladonMart5Text5: - TX_FAR _CeladonMart5Text5 - db "@" + text_far _CeladonMart5Text5 + text_end diff --git a/scripts/CeladonMartElevator.asm b/scripts/CeladonMartElevator.asm index 34b923f95..b657b3f9c 100755 --- a/scripts/CeladonMartElevator.asm +++ b/scripts/CeladonMartElevator.asm @@ -40,33 +40,32 @@ CeladonMartElevatorScript_48631: jp CopyData CeladonMartElevatorFloors: - db 5 ; number of elements in list + db 5 ; # db FLOOR_1F db FLOOR_2F db FLOOR_3F db FLOOR_4F db FLOOR_5F - db $FF + db -1 ; end -CeladonMartElevatorWarpMaps: -; first byte is warp number -; second byte is map number ; These specify where the player goes after getting out of the elevator. - db $05, CELADON_MART_1F - db $02, CELADON_MART_2F - db $02, CELADON_MART_3F - db $02, CELADON_MART_4F - db $02, CELADON_MART_5F +CeladonMartElevatorWarpMaps: + ; warp number, map id + db 5, CELADON_MART_1F + db 2, CELADON_MART_2F + db 2, CELADON_MART_3F + db 2, CELADON_MART_4F + db 2, CELADON_MART_5F CeladonMartElevatorWarpMapsEnd: CeladonMartElevatorScript_48654: - jpba ShakeElevator + farjp ShakeElevator CeladonMartElevator_TextPointers: dw CeladonMartElevatorText1 CeladonMartElevatorText1: - TX_ASM + text_asm call CeladonMartElevatorScript_48631 ld hl, CeladonMartElevatorWarpMaps predef DisplayElevatorFloorMenu diff --git a/scripts/CeladonMartRoof.asm b/scripts/CeladonMartRoof.asm index 64871bdd9..1d39670df 100755 --- a/scripts/CeladonMartRoof.asm +++ b/scripts/CeladonMartRoof.asm @@ -39,7 +39,7 @@ CeladonMartRoofDrinkList: db FRESH_WATER db SODA_POP db LEMONADE - db $00 + db 0 ; end CeladonMartRoofScript_GiveDrinkToGirl: ld hl, wd730 @@ -65,7 +65,7 @@ CeladonMartRoofScript_GiveDrinkToGirl: dec l ld b, l ld c, 12 - coord hl, 0, 0 + hlcoord 0, 0 call TextBoxBorder call UpdateSprites call CeladonMartRoofScript_PrintDrinksInBag @@ -80,7 +80,7 @@ CeladonMartRoofScript_GiveDrinkToGirl: ld e, a add hl, de ld a, [hl] - ld [hItemToRemoveID], a + ldh [hItemToRemoveID], a cp FRESH_WATER jr z, .gaveFreshWater cp SODA_POP @@ -91,7 +91,7 @@ CeladonMartRoofScript_GiveDrinkToGirl: ld hl, CeladonMartRoofText_48515 call PrintText call RemoveItemByIDBank12 - lb bc, TM_49, 1 + lb bc, TM_TRI_ATTACK, 1 call GiveItem jr nc, .bagFull ld hl, ReceivedTM49Text @@ -104,7 +104,7 @@ CeladonMartRoofScript_GiveDrinkToGirl: ld hl, CeladonMartRoofText_48504 call PrintText call RemoveItemByIDBank12 - lb bc, TM_48, 1 + lb bc, TM_ROCK_SLIDE, 1 call GiveItem jr nc, .bagFull ld hl, CeladonMartRoofText_4850a @@ -117,7 +117,7 @@ CeladonMartRoofScript_GiveDrinkToGirl: ld hl, CeladonMartRoofText_484f3 call PrintText call RemoveItemByIDBank12 - lb bc, TM_13, 1 + lb bc, TM_ICE_BEAM, 1 call GiveItem jr nc, .bagFull ld hl, CeladonMartRoofText_484f9 @@ -134,63 +134,63 @@ CeladonMartRoofScript_GiveDrinkToGirl: ret RemoveItemByIDBank12: - callba RemoveItemByID + farcall RemoveItemByID ret CeladonMartRoofText_484ee: - TX_FAR _CeladonMartRoofText_484ee - db "@" + text_far _CeladonMartRoofText_484ee + text_end CeladonMartRoofText_484f3: - TX_FAR _CeladonMartRoofText_484f3 - TX_WAIT - db "@" + text_far _CeladonMartRoofText_484f3 + text_waitbutton + text_end CeladonMartRoofText_484f9: - TX_FAR _CeladonMartRoofText_484f9 - TX_SFX_ITEM_1 - TX_FAR _CeladonMartRoofText_484fe - TX_WAIT - db "@" + text_far _CeladonMartRoofText_484f9 + sound_get_item_1 + text_far _CeladonMartRoofText_484fe + text_waitbutton + text_end CeladonMartRoofText_48504: - TX_FAR _CeladonMartRoofText_48504 - TX_WAIT - db "@" + text_far _CeladonMartRoofText_48504 + text_waitbutton + text_end CeladonMartRoofText_4850a: - TX_FAR _CeladonMartRoofText_4850a - TX_SFX_ITEM_1 - TX_FAR _CeladonMartRoofText_4850f - TX_WAIT - db "@" + text_far _CeladonMartRoofText_4850a + sound_get_item_1 + text_far _CeladonMartRoofText_4850f + text_waitbutton + text_end CeladonMartRoofText_48515: - TX_FAR _CeladonMartRoofText_48515 - TX_WAIT - db "@" + text_far _CeladonMartRoofText_48515 + text_waitbutton + text_end ReceivedTM49Text: - TX_FAR _ReceivedTM49Text - TX_SFX_ITEM_1 - TX_FAR _CeladonMartRoofText_48520 - TX_WAIT - db "@" + text_far _ReceivedTM49Text + sound_get_item_1 + text_far _CeladonMartRoofText_48520 + text_waitbutton + text_end CeladonMartRoofText_48526: - TX_FAR _CeladonMartRoofText_48526 - TX_WAIT - db "@" + text_far _CeladonMartRoofText_48526 + text_waitbutton + text_end CeladonMartRoofText_4852c: - TX_FAR _CeladonMartRoofText_4852c - TX_WAIT - db "@" + text_far _CeladonMartRoofText_4852c + text_waitbutton + text_end CeladonMartRoofScript_PrintDrinksInBag: ld hl, wFilteredBagItems xor a - ld [hItemCounter], a + ldh [hItemCounter], a .loop ld a, [hli] cp $ff @@ -198,8 +198,8 @@ CeladonMartRoofScript_PrintDrinksInBag: push hl ld [wd11e], a call GetItemName - coord hl, 2, 2 - ld a, [hItemCounter] + hlcoord 2, 2 + ldh a, [hItemCounter] ld bc, SCREEN_WIDTH * 2 call AddNTimes ld de, wcd6d @@ -218,11 +218,11 @@ CeladonMartRoof_TextPointers: dw CeladonMartRoofText6 CeladonMartRoofText1: - TX_FAR _CeladonMartRoofText1 - db "@" + text_far _CeladonMartRoofText1 + text_end CeladonMartRoofText2: - TX_ASM + text_asm call CeladonMartRoofScript_GetDrinksInBag ld a, [wFilteredBagItemsCount] and a @@ -244,16 +244,16 @@ CeladonMartRoofText2: jp TextScriptEnd CeladonMartRoofText3: - TX_FAR _CeladonMartRoofText_48598 - db "@" + text_far _CeladonMartRoofText_48598 + text_end CeladonMartRoofText4: - TX_FAR _CeladonMartRoofText4 - db "@" + text_far _CeladonMartRoofText4 + text_end CeladonMartRoofText5: - TX_VENDING_MACHINE + script_vending_machine CeladonMartRoofText6: - TX_FAR _CeladonMartRoofText6 - db "@" + text_far _CeladonMartRoofText6 + text_end diff --git a/scripts/CeladonPokecenter.asm b/scripts/CeladonPokecenter.asm index 21b9452c3..febc21f82 100755 --- a/scripts/CeladonPokecenter.asm +++ b/scripts/CeladonPokecenter.asm @@ -10,20 +10,20 @@ CeladonPokecenter_TextPointers: dw CeladonPokecenterText5 CeladonTradeNurseText: - TX_CABLE_CLUB_RECEPTIONIST + script_cable_club_receptionist CeladonHealNurseText: - TX_POKECENTER_NURSE + script_pokecenter_nurse CeladonPokecenterText2: - TX_FAR _CeladonPokecenterText2 - db "@" + text_far _CeladonPokecenterText2 + text_end CeladonPokecenterText3: - TX_FAR _CeladonPokecenterText3 - db "@" + text_far _CeladonPokecenterText3 + text_end CeladonPokecenterText5: - TX_ASM - callab PokecenterChanseyText + text_asm + callfar PokecenterChanseyText jp TextScriptEnd diff --git a/scripts/CeruleanBadgeHouse.asm b/scripts/CeruleanBadgeHouse.asm index cab2bf239..5e35b0797 100755 --- a/scripts/CeruleanBadgeHouse.asm +++ b/scripts/CeruleanBadgeHouse.asm @@ -1,5 +1,5 @@ CeruleanBadgeHouse_Script: - ld a, $1 + ld a, TRUE ld [wAutoTextBoxDrawingControl], a dec a ld [wDoNotWaitForButtonPressAfterDisplayingText], a @@ -9,7 +9,7 @@ CeruleanBadgeHouse_TextPointers: dw CeruleanHouse2Text1 CeruleanHouse2Text1: - TX_ASM + text_asm ld hl, CeruleanHouse2Text_74e77 call PrintText xor a @@ -34,7 +34,7 @@ CeruleanHouse2Text1: jr c, .asm_74e60 ld hl, TextPointers_74e86 ld a, [wcf91] - sub $15 + sub BOULDERBADGE add a ld d, $0 ld e, a @@ -52,19 +52,28 @@ CeruleanHouse2Text1: jp TextScriptEnd BadgeItemList: - db $8,BOULDERBADGE,CASCADEBADGE,THUNDERBADGE,RAINBOWBADGE,SOULBADGE,MARSHBADGE,VOLCANOBADGE,EARTHBADGE,$FF + db 8 ; # + db BOULDERBADGE + db CASCADEBADGE + db THUNDERBADGE + db RAINBOWBADGE + db SOULBADGE + db MARSHBADGE + db VOLCANOBADGE + db EARTHBADGE + db -1 ; end CeruleanHouse2Text_74e77: - TX_FAR _CeruleanHouse2Text_74e77 - db "@" + text_far _CeruleanHouse2Text_74e77 + text_end CeruleanHouse2Text_74e7c: - TX_FAR _CeruleanHouse2Text_74e7c - db "@" + text_far _CeruleanHouse2Text_74e7c + text_end CeruleanHouse2Text_74e81: - TX_FAR _CeruleanHouse2Text_74e81 - db "@" + text_far _CeruleanHouse2Text_74e81 + text_end TextPointers_74e86: dw CeruleanHouse2Text_74e96 @@ -77,33 +86,33 @@ TextPointers_74e86: dw CeruleanHouse2Text_74eb9 CeruleanHouse2Text_74e96: - TX_FAR _CeruleanHouse2Text_74e96 - db "@" + text_far _CeruleanHouse2Text_74e96 + text_end CeruleanHouse2Text_74e9b: - TX_FAR _CeruleanHouse2Text_74e9b - db "@" + text_far _CeruleanHouse2Text_74e9b + text_end CeruleanHouse2Text_74ea0: - TX_FAR _CeruleanHouse2Text_74ea0 - db "@" + text_far _CeruleanHouse2Text_74ea0 + text_end CeruleanHouse2Text_74ea5: - TX_FAR _CeruleanHouse2Text_74ea5 - db "@" + text_far _CeruleanHouse2Text_74ea5 + text_end CeruleanHouse2Text_74eaa: - TX_FAR _CeruleanHouse2Text_74eaa - db "@" + text_far _CeruleanHouse2Text_74eaa + text_end CeruleanHouse2Text_74eaf: - TX_FAR _CeruleanHouse2Text_74eaf - db "@" + text_far _CeruleanHouse2Text_74eaf + text_end CeruleanHouse2Text_74eb4: - TX_FAR _CeruleanHouse2Text_74eb4 - db "@" + text_far _CeruleanHouse2Text_74eb4 + text_end CeruleanHouse2Text_74eb9: - TX_FAR _CeruleanHouse2Text_74eb9 - db "@" + text_far _CeruleanHouse2Text_74eb9 + text_end diff --git a/scripts/CeruleanCaveB1F.asm b/scripts/CeruleanCaveB1F.asm index b98ca4baa..a94a7fe38 100755 --- a/scripts/CeruleanCaveB1F.asm +++ b/scripts/CeruleanCaveB1F.asm @@ -20,25 +20,18 @@ CeruleanCaveB1F_TextPointers: dw PickUpItemText MewtwoTrainerHeader: - dbEventFlagBit EVENT_BEAT_MEWTWO - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_MEWTWO - dw MewtwoBattleText ; TextBeforeBattle - dw MewtwoBattleText ; TextAfterBattle - dw MewtwoBattleText ; TextEndBattle - dw MewtwoBattleText ; TextEndBattle - - db $ff + trainer EVENT_BEAT_MEWTWO, 0, MewtwoBattleText, MewtwoBattleText, MewtwoBattleText + db -1 ; end MewtwoText: - TX_ASM + text_asm ld hl, MewtwoTrainerHeader call TalkToTrainer jp TextScriptEnd MewtwoBattleText: - TX_FAR _MewtwoBattleText - TX_ASM + text_far _MewtwoBattleText + text_asm ld a, MEWTWO call PlayCry call WaitForSoundToFinish diff --git a/scripts/CeruleanCity.asm b/scripts/CeruleanCity.asm index c36b3dd67..5a8ce978c 100755 --- a/scripts/CeruleanCity.asm +++ b/scripts/CeruleanCity.asm @@ -27,7 +27,7 @@ CeruleanCityScript4: ld [wJoyIgnore], a SetEvent EVENT_BEAT_CERULEAN_ROCKET_THIEF ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wJoyIgnore], a @@ -50,10 +50,10 @@ CeruleanCityScript0: .asm_194e6 ld [wPlayerMovingDirection], a ld a, b - ld [wSpriteStateData1 + 2 * $10 + $9], a + ld [wSprite02StateData1FacingDirection], a call Delay3 ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a jp DisplayTextID .asm_194f7 CheckEvent EVENT_BEAT_CERULEAN_RIVAL @@ -70,51 +70,51 @@ CeruleanCityScript0: ld a, MUSIC_MEET_RIVAL call PlayMusic xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $f0 ld [wJoyIgnore], a ld a, [wXCoord] - cp $14 + cp 20 jr z, .asm_19535 ld a, $1 - ld [H_SPRITEINDEX], a - ld a, $5 - ld [H_SPRITEDATAOFFSET], a + ldh [hSpriteIndex], a + ld a, SPRITESTATEDATA2_MAPX + ldh [hSpriteDataOffset], a call GetPointerWithinSpriteStateData2 - ld [hl], $19 + ld [hl], 25 .asm_19535 ld a, HS_CERULEAN_RIVAL ld [wMissableObjectIndex], a predef ShowObject ld de, CeruleanCityMovement1 ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call MoveSprite ld a, $1 ld [wCeruleanCityCurScript], a ret CeruleanCityCoords1: - db $07,$1e - db $09,$1e - db $ff + dbmapcoord 30, 7 + dbmapcoord 30, 9 + db -1 ; end CeruleanCityCoords2: - db $06,$14 - db $06,$15 - db $ff + dbmapcoord 20, 6 + dbmapcoord 21, 6 + db -1 ; end CeruleanCityMovement1: db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN - db $FF + db -1 ; end CeruleanCityScript_1955d: ld a, 1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a xor a ; SPRITE_FACING_DOWN - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a jp SetSpriteFacingDirectionAndDelay ; face object CeruleanCityScript1: @@ -124,7 +124,7 @@ CeruleanCityScript1: xor a ld [wJoyIgnore], a ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd72d set 6, [hl] @@ -132,12 +132,12 @@ CeruleanCityScript1: ld hl, CeruleanCityText_1966d ld de, CeruleanCityText_19672 call SaveEndBattleTextPointers - ld a, OPP_SONY1 + ld a, OPP_RIVAL1 ld [wCurOpponent], a ld a, 3 ld [wTrainerNo], a xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a call CeruleanCityScript_1955d ld a, $2 ld [wCeruleanCityCurScript], a @@ -152,15 +152,15 @@ CeruleanCityScript2: ld [wJoyIgnore], a SetEvent EVENT_BEAT_CERULEAN_RIVAL ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call StopAllMusic - callba Music_RivalAlternateStart + farcall Music_RivalAlternateStart ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call SetSpriteMovementBytesToFF ld a, [wXCoord] - cp $14 + cp 20 jr nz, .asm_195f0 ld de, CeruleanCityMovement4 jr .asm_195f3 @@ -168,7 +168,7 @@ CeruleanCityScript2: ld de, CeruleanCityMovement3 .asm_195f3 ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call MoveSprite ld a, $3 ld [wCeruleanCityCurScript], a @@ -182,7 +182,7 @@ CeruleanCityMovement3: db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN - db $FF + db -1 ; end CeruleanCityMovement4: db NPC_MOVEMENT_RIGHT @@ -192,7 +192,7 @@ CeruleanCityMovement4: db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN - db $FF + db -1 ; end CeruleanCityScript3: ld a, [wd730] @@ -228,7 +228,7 @@ CeruleanCity_TextPointers: dw CeruleanCityText17 CeruleanCityText1: - TX_ASM + text_asm CheckEvent EVENT_BEAT_CERULEAN_RIVAL ; do pre-battle text jr z, .PreBattleText @@ -243,23 +243,23 @@ CeruleanCityText1: jp TextScriptEnd CeruleanCityText_19668: - TX_FAR _CeruleanCityText_19668 - db "@" + text_far _CeruleanCityText_19668 + text_end CeruleanCityText_1966d: - TX_FAR _CeruleanCityText_1966d - db "@" + text_far _CeruleanCityText_1966d + text_end CeruleanCityText_19672: - TX_FAR _CeruleanCityText_19672 - db "@" + text_far _CeruleanCityText_19672 + text_end CeruleanCityText_19677: - TX_FAR _CeruleanCityText_19677 - db "@" + text_far _CeruleanCityText_19677 + text_end CeruleanCityText2: - TX_ASM + text_asm CheckEvent EVENT_BEAT_CERULEAN_ROCKET_THIEF jr nz, .asm_4ca20 ld hl, CeruleanCityText_196d9 @@ -270,7 +270,7 @@ CeruleanCityText2: ld hl, CeruleanCityText_196ee ld de, CeruleanCityText_196ee call SaveEndBattleTextPointers - ld a, [hSpriteIndexOrTextID] + ldh a, [hSpriteIndexOrTextID] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters @@ -280,7 +280,7 @@ CeruleanCityText2: .asm_4ca20 ld hl, CeruleanCityText_196f3 call PrintText - lb bc, TM_28, 1 + lb bc, TM_DIG, 1 call GiveItem jr c, .Success ld hl, TM28NoRoomText @@ -291,53 +291,53 @@ CeruleanCityText2: ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, ReceivedTM28Text call PrintText - callba CeruleanHideRocket + farcall CeruleanHideRocket .Done jp TextScriptEnd CeruleanCityText_196d9: - TX_FAR _CeruleanCityText_196d9 - db "@" + text_far _CeruleanCityText_196d9 + text_end ReceivedTM28Text: - TX_FAR _ReceivedTM28Text - TX_SFX_ITEM_1 - TX_FAR _ReceivedTM28Text2 - TX_WAIT - db "@" + text_far _ReceivedTM28Text + sound_get_item_1 + text_far _ReceivedTM28Text2 + text_waitbutton + text_end TM28NoRoomText: - TX_FAR _TM28NoRoomText - db "@" + text_far _TM28NoRoomText + text_end CeruleanCityText_196ee: - TX_FAR _CeruleanCityText_196ee - db "@" + text_far _CeruleanCityText_196ee + text_end CeruleanCityText_196f3: - TX_FAR _CeruleanCityText_196f3 - db "@" + text_far _CeruleanCityText_196f3 + text_end CeruleanCityText3: - TX_FAR _CeruleanCityText3 - db "@" + text_far _CeruleanCityText3 + text_end CeruleanCityText4: - TX_FAR _CeruleanCityText4 - db "@" + text_far _CeruleanCityText4 + text_end CeruleanCityText5: - TX_FAR _CeruleanCityText5 - db "@" + text_far _CeruleanCityText5 + text_end CeruleanCityText11: CeruleanCityText6: - TX_FAR _CeruleanCityText6 - db "@" + text_far _CeruleanCityText6 + text_end CeruleanCityText7: - TX_ASM - ld a, [hRandomAdd] + text_asm + ldh a, [hRandomAdd] cp 180 jr c, .asm_e9fc9 ld hl, CeruleanCityText_19730 @@ -356,20 +356,20 @@ CeruleanCityText7: jp TextScriptEnd CeruleanCityText_19730: - TX_FAR _CeruleanCityText_19730 - db "@" + text_far _CeruleanCityText_19730 + text_end CeruleanCityText_19735: - TX_FAR _CeruleanCityText_19735 - db "@" + text_far _CeruleanCityText_19735 + text_end CeruleanCityText_1973a: - TX_FAR _CeruleanCityText_1973a - db "@" + text_far _CeruleanCityText_1973a + text_end CeruleanCityText8: - TX_ASM - ld a, [hRandomAdd] + text_asm + ldh a, [hRandomAdd] cp 180 jr c, .asm_e28da ld hl, CeruleanCityText_1976f @@ -394,41 +394,41 @@ CeruleanCityText8: jp TextScriptEnd CeruleanCityText_1976f: - TX_FAR _CeruleanCityText_1976f - db "@" + text_far _CeruleanCityText_1976f + text_end CeruleanCityText_19774: - TX_FAR _CeruleanCityText_19774 - db "@" + text_far _CeruleanCityText_19774 + text_end CeruleanCityText_19779: - TX_FAR _CeruleanCityText_19779 - db "@" + text_far _CeruleanCityText_19779 + text_end CeruleanCityText_1977e: - TX_FAR _CeruleanCityText_1977e - db "@" + text_far _CeruleanCityText_1977e + text_end CeruleanCityText9: - TX_FAR _CeruleanCityText9 - db "@" + text_far _CeruleanCityText9 + text_end CeruleanCityText10: - TX_FAR _CeruleanCityText10 - db "@" + text_far _CeruleanCityText10 + text_end CeruleanCityText12: - TX_FAR _CeruleanCityText12 - db "@" + text_far _CeruleanCityText12 + text_end CeruleanCityText13: - TX_FAR _CeruleanCityText13 - db "@" + text_far _CeruleanCityText13 + text_end CeruleanCityText16: - TX_FAR _CeruleanCityText16 - db "@" + text_far _CeruleanCityText16 + text_end CeruleanCityText17: - TX_FAR _CeruleanCityText17 - db "@" + text_far _CeruleanCityText17 + text_end diff --git a/scripts/CeruleanGym.asm b/scripts/CeruleanGym.asm index d1dd66e40..13a00da21 100755 --- a/scripts/CeruleanGym.asm +++ b/scripts/CeruleanGym.asm @@ -2,7 +2,7 @@ CeruleanGym_Script: ld hl, wCurrentMapScriptFlags bit 6, [hl] res 6, [hl] - call nz, CeruleanGymScript_5c6d0 + call nz, .LoadNames call EnableAutoTextBoxDrawing ld hl, CeruleanGymTrainerHeader0 ld de, CeruleanGym_ScriptPointers @@ -11,15 +11,15 @@ CeruleanGym_Script: ld [wCeruleanGymCurScript], a ret -CeruleanGymScript_5c6d0: - ld hl, Gym2CityName - ld de, Gym2LeaderName +.LoadNames: + ld hl, .CityName + ld de, .LeaderName jp LoadGymLeaderAndCityName -Gym2CityName: +.CityName: db "CERULEAN CITY@" -Gym2LeaderName: +.LeaderName: db "MISTY@" CeruleanGymScript_5c6ed: @@ -44,26 +44,26 @@ CeruleanGymScript3: CeruleanGymScript_5c70d: ld a, $5 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_BEAT_MISTY - lb bc, TM_11, 1 + lb bc, TM_BUBBLEBEAM, 1 call GiveItem jr nc, .BagFull ld a, $6 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_GOT_TM11 jr .gymVictory .BagFull ld a, $7 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID .gymVictory ld hl, wObtainedBadges - set 1, [hl] + set BIT_CASCADEBADGE, [hl] ld hl, wBeatGymFlags - set 1, [hl] + set BIT_CASCADEBADGE, [hl] ; deactivate gym trainers SetEvents EVENT_BEAT_CERULEAN_GYM_TRAINER_0, EVENT_BEAT_CERULEAN_GYM_TRAINER_1 @@ -80,27 +80,13 @@ CeruleanGym_TextPointers: dw CeruleanGymText7 CeruleanGymTrainerHeader0: - dbEventFlagBit EVENT_BEAT_CERULEAN_GYM_TRAINER_0 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_CERULEAN_GYM_TRAINER_0 - dw CeruleanGymBattleText1 ; TextBeforeBattle - dw CeruleanGymAfterBattleText1 ; TextAfterBattle - dw CeruleanGymEndBattleText1 ; TextEndBattle - dw CeruleanGymEndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_CERULEAN_GYM_TRAINER_0, 3, CeruleanGymBattleText1, CeruleanGymEndBattleText1, CeruleanGymAfterBattleText1 CeruleanGymTrainerHeader1: - dbEventFlagBit EVENT_BEAT_CERULEAN_GYM_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_CERULEAN_GYM_TRAINER_1 - dw CeruleanGymBattleText2 ; TextBeforeBattle - dw CeruleanGymAfterBattleText2 ; TextAfterBattle - dw CeruleanGymEndBattleText2 ; TextEndBattle - dw CeruleanGymEndBattleText2 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_CERULEAN_GYM_TRAINER_1, 3, CeruleanGymBattleText2, CeruleanGymEndBattleText2, CeruleanGymAfterBattleText2 + db -1 ; end CeruleanGymText1: - TX_ASM + text_asm CheckEvent EVENT_BEAT_MISTY jr z, .beginBattle CheckEventReuseA EVENT_GOT_TM11 @@ -121,82 +107,82 @@ CeruleanGymText1: ld hl, CeruleanGymText_5c7d8 ld de, CeruleanGymText_5c7d8 call SaveEndBattleTextPointers - ld a, [H_SPRITEINDEX] + ldh a, [hSpriteIndex] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters ld a, $2 ld [wGymLeaderNo], a xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $3 ld [wCeruleanGymCurScript], a .done jp TextScriptEnd CeruleanGymText_5c7be: - TX_FAR _CeruleanGymText_5c7be - db "@" + text_far _CeruleanGymText_5c7be + text_end CeruleanGymText_5c7c3: - TX_FAR _CeruleanGymText_5c7c3 - db "@" + text_far _CeruleanGymText_5c7c3 + text_end CeruleanGymText5: - TX_FAR _CeruleanGymText_5c7c8 - db "@" + text_far _CeruleanGymText_5c7c8 + text_end CeruleanGymText6: - TX_FAR _ReceivedTM11Text - TX_SFX_ITEM_1 - db "@" + text_far _ReceivedTM11Text + sound_get_item_1 + text_end CeruleanGymText7: - TX_FAR _CeruleanGymText_5c7d3 - db "@" + text_far _CeruleanGymText_5c7d3 + text_end CeruleanGymText_5c7d8: - TX_FAR _CeruleanGymText_5c7d8 - db "@" + text_far _CeruleanGymText_5c7d8 + text_end CeruleanGymText2: - TX_ASM + text_asm ld hl, CeruleanGymTrainerHeader0 call TalkToTrainer jp TextScriptEnd CeruleanGymBattleText1: - TX_FAR _CeruleanGymBattleText1 - db "@" + text_far _CeruleanGymBattleText1 + text_end CeruleanGymEndBattleText1: - TX_FAR _CeruleanGymEndBattleText1 - db "@" + text_far _CeruleanGymEndBattleText1 + text_end CeruleanGymAfterBattleText1: - TX_FAR _CeruleanGymAfterBattleText1 - db "@" + text_far _CeruleanGymAfterBattleText1 + text_end CeruleanGymText3: - TX_ASM + text_asm ld hl, CeruleanGymTrainerHeader1 call TalkToTrainer jp TextScriptEnd CeruleanGymBattleText2: - TX_FAR _CeruleanGymBattleText2 - db "@" + text_far _CeruleanGymBattleText2 + text_end CeruleanGymEndBattleText2: - TX_FAR _CeruleanGymEndBattleText2 - db "@" + text_far _CeruleanGymEndBattleText2 + text_end CeruleanGymAfterBattleText2: - TX_FAR _CeruleanGymAfterBattleText2 - db "@" + text_far _CeruleanGymAfterBattleText2 + text_end CeruleanGymText4: - TX_ASM + text_asm CheckEvent EVENT_BEAT_MISTY jr nz, .asm_5c821 ld hl, CeruleanGymText_5c82a @@ -209,9 +195,9 @@ CeruleanGymText4: jp TextScriptEnd CeruleanGymText_5c82a: - TX_FAR _CeruleanGymText_5c82a - db "@" + text_far _CeruleanGymText_5c82a + text_end CeruleanGymText_5c82f: - TX_FAR _CeruleanGymText_5c82f - db "@" + text_far _CeruleanGymText_5c82f + text_end diff --git a/scripts/CeruleanMart.asm b/scripts/CeruleanMart.asm index f812aadd1..beb0fa1b3 100755 --- a/scripts/CeruleanMart.asm +++ b/scripts/CeruleanMart.asm @@ -7,9 +7,9 @@ CeruleanMart_TextPointers: dw CeruleanMartText3 CeruleanMartText2: - TX_FAR _CeruleanMartText2 - db "@" + text_far _CeruleanMartText2 + text_end CeruleanMartText3: - TX_FAR _CeruleanMartText3 - db "@" + text_far _CeruleanMartText3 + text_end diff --git a/scripts/CeruleanPokecenter.asm b/scripts/CeruleanPokecenter.asm index de4fd57d0..3aa465ca5 100755 --- a/scripts/CeruleanPokecenter.asm +++ b/scripts/CeruleanPokecenter.asm @@ -10,20 +10,20 @@ CeruleanPokecenter_TextPointers: dw CeruleanPokecenterText5 CeruleanTradeNurseText: - TX_CABLE_CLUB_RECEPTIONIST + script_cable_club_receptionist CeruleanHealNurseText: - TX_POKECENTER_NURSE + script_pokecenter_nurse CeruleanPokecenterText2: - TX_FAR _CeruleanPokecenterText2 - db "@" + text_far _CeruleanPokecenterText2 + text_end CeruleanPokecenterText3: - TX_FAR _CeruleanPokecenterText3 - db "@" + text_far _CeruleanPokecenterText3 + text_end CeruleanPokecenterText5: - TX_ASM - callab PokecenterChanseyText + text_asm + callfar PokecenterChanseyText jp TextScriptEnd diff --git a/scripts/CeruleanTradeHouse.asm b/scripts/CeruleanTradeHouse.asm index 8b5d4495d..a6820fdb0 100755 --- a/scripts/CeruleanTradeHouse.asm +++ b/scripts/CeruleanTradeHouse.asm @@ -9,7 +9,7 @@ CeruleanTradeHouse_TextPointers: dw CeruleanHouse1Text4 CeruleanHouse1Text1: - TX_ASM + text_asm ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a CheckEvent EVENT_GOT_BULBASAUR_IN_CERULEAN @@ -61,46 +61,46 @@ CeruleanHouse1Text1: jp TextScriptEnd CeruleanHouse1Text_1cfc8: - TX_FAR MelanieText1 - TX_WAIT - db "@" + text_far MelanieText1 + text_waitbutton + text_end CeruleanHouse1Text_1cfce: - TX_FAR MelanieText2 - db "@" + text_far MelanieText2 + text_end CeruleanHouse1Text_1cfd3: - TX_FAR MelanieText3 - TX_WAIT - db "@" + text_far MelanieText3 + text_waitbutton + text_end CeruleanHouse1Text_1cfd9: - TX_FAR MelanieText4 - TX_WAIT - db "@" + text_far MelanieText4 + text_waitbutton + text_end CeruleanHouse1Text_1cfdf: - TX_FAR MelanieText5 - TX_WAIT - db "@" + text_far MelanieText5 + text_waitbutton + text_end CeruleanHouse1Text2: - TX_FAR MelanieBulbasaurText - TX_ASM + text_far MelanieBulbasaurText + text_asm ld a, BULBASAUR call PlayCry jp TextScriptEnd CeruleanHouse1Text3: - TX_FAR MelanieOddishText - TX_ASM + text_far MelanieOddishText + text_asm ld a, ODDISH call PlayCry jp TextScriptEnd CeruleanHouse1Text4: - TX_FAR MelanieSandshrewText - TX_ASM + text_far MelanieSandshrewText + text_asm ld a, SANDSHREW call PlayCry jp TextScriptEnd diff --git a/scripts/CeruleanTrashedHouse.asm b/scripts/CeruleanTrashedHouse.asm index f249ef016..d11c77218 100755 --- a/scripts/CeruleanTrashedHouse.asm +++ b/scripts/CeruleanTrashedHouse.asm @@ -8,32 +8,32 @@ CeruleanTrashedHouse_TextPointers: dw CeruleanHouseTrashedText3 CeruleanHouseTrashedText1: - TX_ASM - ld b, $e4 + text_asm + ld b, TM_DIG predef GetQuantityOfItemInBag and b - jr z, .asm_f8734 + jr z, .no_dig_tm ld hl, CeruleanHouseTrashedText_1d6b0 call PrintText - jr .asm_8dfe9 -.asm_f8734 + jr .done +.no_dig_tm ld hl, CeruleanHouseTrashedText_1d6ab call PrintText -.asm_8dfe9 +.done jp TextScriptEnd CeruleanHouseTrashedText_1d6ab: - TX_FAR _CeruleanTrashedText_1d6ab - db "@" + text_far _CeruleanTrashedText_1d6ab + text_end CeruleanHouseTrashedText_1d6b0: - TX_FAR _CeruleanTrashedText_1d6b0 - db "@" + text_far _CeruleanTrashedText_1d6b0 + text_end CeruleanHouseTrashedText2: - TX_FAR _CeruleanHouseTrashedText2 - db "@" + text_far _CeruleanHouseTrashedText2 + text_end CeruleanHouseTrashedText3: - TX_FAR _CeruleanHouseTrashedText3 - db "@" + text_far _CeruleanHouseTrashedText3 + text_end diff --git a/scripts/ChampionsRoom.asm b/scripts/ChampionsRoom.asm index b8ce710b5..d500e1d2c 100755 --- a/scripts/ChampionsRoom.asm +++ b/scripts/ChampionsRoom.asm @@ -44,7 +44,7 @@ GaryEntrance_RLEMovement: db D_UP, 1 db D_RIGHT, 1 db D_UP, 3 - db $ff + db -1 ; end GaryScript2: ld a, [wSimulatedJoypadStatesIndex] @@ -56,7 +56,7 @@ GaryScript2: ld hl, wOptions res 7, [hl] ; Turn on battle animations to make the battle feel more epic. ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 ld hl, wd72d @@ -65,7 +65,7 @@ GaryScript2: ld hl, GaryDefeatedText ld de, GaryVictoryText call SaveEndBattleTextPointers - ld a, OPP_SONY3 + ld a, OPP_RIVAL3 ld [wCurOpponent], a ; select which team to use during the encounter @@ -74,7 +74,7 @@ GaryScript2: ld [wTrainerNo], a xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $3 ld [wChampionsRoomCurScript], a ret @@ -88,26 +88,26 @@ GaryScript3: ld a, $f0 ld [wJoyIgnore], a ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call GaryScript_760c8 ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call SetSpriteMovementBytesToFF ld a, $4 ld [wChampionsRoomCurScript], a ret GaryScript4: - callba Music_Cities1AlternateTempo + farcall Music_Cities1AlternateTempo ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call GaryScript_760c8 ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call SetSpriteMovementBytesToFF ld de, OakEntranceAfterVictoryMovement ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call MoveSprite ld a, HS_CHAMPIONS_ROOM_OAK ld [wMissableObjectIndex], a @@ -122,7 +122,7 @@ OakEntranceAfterVictoryMovement: db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP - db $FF + db -1 ; end GaryScript5: ld a, [wd730] @@ -131,17 +131,17 @@ GaryScript5: ld a, PLAYER_DIR_LEFT ld [wPlayerMovingDirection], a ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld a, SPRITE_FACING_LEFT - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a xor a ; SPRITE_FACING_DOWN - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $3 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call GaryScript_760c8 ld a, $6 ld [wChampionsRoomCurScript], a @@ -149,12 +149,12 @@ GaryScript5: GaryScript6: ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld a, SPRITE_FACING_RIGHT - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $4 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call GaryScript_760c8 ld a, $7 ld [wChampionsRoomCurScript], a @@ -162,16 +162,16 @@ GaryScript6: GaryScript7: ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a xor a ; SPRITE_FACING_DOWN - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $5 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call GaryScript_760c8 ld de, OakExitGaryRoomMovement ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call MoveSprite ld a, $8 ld [wChampionsRoomCurScript], a @@ -180,7 +180,7 @@ GaryScript7: OakExitGaryRoomMovement: db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP - db $FF + db -1 ; end GaryScript8: ld a, [wd730] @@ -209,7 +209,7 @@ GaryScript9: WalkToHallOfFame_RLEMovment: db D_UP, 4 db D_LEFT, 1 - db $ff + db -1 ; end GaryScript10: ld a, [wSimulatedJoypadStatesIndex] @@ -237,7 +237,7 @@ ChampionsRoom_TextPointers: dw GaryText5 GaryText1: - TX_ASM + text_asm CheckEvent EVENT_BEAT_CHAMPION_RIVAL ld hl, GaryChampionIntroText jr z, .printText @@ -247,27 +247,27 @@ GaryText1: jp TextScriptEnd GaryChampionIntroText: - TX_FAR _GaryChampionIntroText - db "@" + text_far _GaryChampionIntroText + text_end GaryDefeatedText: - TX_FAR _GaryDefeatedText - db "@" + text_far _GaryDefeatedText + text_end GaryVictoryText: - TX_FAR _GaryVictoryText - db "@" + text_far _GaryVictoryText + text_end GaryText_76103: - TX_FAR _GaryText_76103 - db "@" + text_far _GaryText_76103 + text_end GaryText2: - TX_FAR _GaryText2 - db "@" + text_far _GaryText2 + text_end GaryText3: - TX_ASM + text_asm ld a, [wPlayerStarter] ld [wd11e], a call GetMonName @@ -276,13 +276,13 @@ GaryText3: jp TextScriptEnd GaryText_76120: - TX_FAR _GaryText_76120 - db "@" + text_far _GaryText_76120 + text_end GaryText4: - TX_FAR _GaryText_76125 - db "@" + text_far _GaryText_76125 + text_end GaryText5: - TX_FAR _GaryText_7612a - db "@" + text_far _GaryText_7612a + text_end diff --git a/scripts/CinnabarGym.asm b/scripts/CinnabarGym.asm index 2dc07e58d..529b3be2b 100755 --- a/scripts/CinnabarGym.asm +++ b/scripts/CinnabarGym.asm @@ -10,21 +10,23 @@ CinnabarGymScript_75759: bit 6, [hl] res 6, [hl] push hl - call nz, CinnabarGymScript_75772 + call nz, .LoadNames pop hl bit 5, [hl] res 5, [hl] call nz, UpdateCinnabarGymGateTileBlocks ResetEvent EVENT_2A7 ret -CinnabarGymScript_75772: - ld hl, Gym7CityName - ld de, Gym7LeaderName + +.LoadNames: + ld hl, .CityName + ld de, .LeaderName jp LoadGymLeaderAndCityName -Gym7CityName: +.CityName: db "CINNABAR ISLAND@" -Gym7LeaderName: + +.LeaderName: db "BLAINE@" CinnabarGymScript_75792: @@ -36,7 +38,7 @@ CinnabarGymScript_75792: ret CinnabarGymScript_74f48: - ld a, [hSpriteIndexOrTextID] + ldh a, [hSpriteIndexOrTextID] ld [wTrainerHeaderFlagBit], a ret @@ -53,7 +55,7 @@ CinnabarGymScript0: ld a, [wOpponentAfterWrongAnswer] and a ret z - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a cp $4 jr nz, .asm_757c3 ld a, PLAYER_DIR_DOWN @@ -80,7 +82,7 @@ CinnabarGymScript0: MovementData_757d7: db NPC_MOVEMENT_LEFT db NPC_MOVEMENT_UP - db $FF + db -1 ; end PikachuMovementData_74f97: db $00 @@ -91,7 +93,7 @@ PikachuMovementData_74f97: MovementData_757da: db NPC_MOVEMENT_LEFT - db $FF + db -1 ; end PikachuMovementData_74f9e: db $00 @@ -106,7 +108,7 @@ CinnabarGymScript_74fa3: ret z push hl push bc - callab GetPikachuFacingDirectionAndReturnToE + callfar GetPikachuFacingDirectionAndReturnToE pop bc pop hl ld a, b @@ -123,7 +125,7 @@ CinnabarGymScript1: ld [wJoyIgnore], a ld a, [wOpponentAfterWrongAnswer] ld [wTrainerHeaderFlagBit], a - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a jp DisplayTextID CinnabarGymScript2: @@ -166,7 +168,7 @@ CinnabarGymScript2: CinnabarGymScript_75023: ld a, [wTrainerHeaderFlagBit] - ld [$ffdb], a + ldh [hGymGateIndex], a ld c, a ld b, FLAG_SET EventFlagAddress hl, EVENT_BEAT_CINNABAR_GYM_TRAINER_0 @@ -175,7 +177,7 @@ CinnabarGymScript_75023: CinnabarGymScript_75032: ld a, [wTrainerHeaderFlagBit] - ld [$ffdb], a + ldh [hGymGateIndex], a ld c, a ld b, FLAG_TEST EventFlagAddress hl, EVENT_BEAT_CINNABAR_GYM_TRAINER_0 @@ -201,26 +203,26 @@ CinnabarGymScript3: ld [wJoyIgnore], a CinnabarGymScript3_75857: ld a, $a - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_BEAT_BLAINE - lb bc, TM_38, 1 + lb bc, TM_FIRE_BLAST, 1 call GiveItem jr nc, .BagFull ld a, $b - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_GOT_TM38 jr .gymVictory .BagFull ld a, $c - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID .gymVictory ld hl, wObtainedBadges - set 6, [hl] + set BIT_VOLCANOBADGE, [hl] ld hl, wBeatGymFlags - set 6, [hl] + set BIT_VOLCANOBADGE, [hl] ; deactivate gym trainers SetEventRange EVENT_BEAT_CINNABAR_GYM_TRAINER_0, EVENT_BEAT_CINNABAR_GYM_TRAINER_6 @@ -245,7 +247,7 @@ CinnabarGym_TextPointers: dw TM38NoRoomText CinnabarGymScript_750c3: - ld a, [hSpriteIndexOrTextID] + ldh a, [hSpriteIndexOrTextID] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters @@ -265,7 +267,7 @@ CinnabarGymScript_750c3: jp TextScriptEnd CinnabarGymText1: - TX_ASM + text_asm CheckEvent EVENT_BEAT_BLAINE jr z, .beginBattle CheckEventReuseA EVENT_GOT_TM38 @@ -288,35 +290,35 @@ CinnabarGymText1: jp CinnabarGymScript_750c3 BlaineBattleText: - TX_FAR _BlaineBattleText - db "@" + text_far _BlaineBattleText + text_end BlaineEndBattleText: - TX_FAR _BlaineEndBattleText - TX_SFX_KEY_ITEM ; actually plays the second channel of SFX_BALL_POOF due to the wrong music bank being loaded - TX_WAIT - db "@" + text_far _BlaineEndBattleText + sound_get_key_item ; actually plays the second channel of SFX_BALL_POOF due to the wrong music bank being loaded + text_waitbutton + text_end BlaineFireBlastText: - TX_FAR _BlaineFireBlastText - db "@" + text_far _BlaineFireBlastText + text_end BlaineBadgeText: - TX_FAR _BlaineBadgeText - db "@" + text_far _BlaineBadgeText + text_end ReceivedTM38Text: - TX_FAR _ReceivedTM38Text - TX_SFX_ITEM_1 - TX_FAR _TM38ExplanationText - db "@" + text_far _ReceivedTM38Text + sound_get_item_1 + text_far _TM38ExplanationText + text_end TM38NoRoomText: - TX_FAR _TM38NoRoomText - db "@" + text_far _TM38NoRoomText + text_end CinnabarGymText2: - TX_ASM + text_asm call CinnabarGymScript_74f48 CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_0 jr nz, .asm_46bb4 @@ -332,19 +334,19 @@ CinnabarGymText2: jp TextScriptEnd CinnabarGymText_7595f: - TX_FAR _CinnabarGymText_7595f - db "@" + text_far _CinnabarGymText_7595f + text_end CinnabarGymText_75964: - TX_FAR _CinnabarGymText_75964 - db "@" + text_far _CinnabarGymText_75964 + text_end CinnabarGymText_75969: - TX_FAR _CinnabarGymText_75969 - db "@" + text_far _CinnabarGymText_75969 + text_end CinnabarGymText3: - TX_ASM + text_asm call CinnabarGymScript_74f48 CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_1 jr nz, .asm_751a8 @@ -369,19 +371,19 @@ CinnabarGymText3: jp TextScriptEnd CinnabarGymText_75994: - TX_FAR _CinnabarGymText_75994 - db "@" + text_far _CinnabarGymText_75994 + text_end CinnabarGymText_75999: - TX_FAR _CinnabarGymText_75999 - db "@" + text_far _CinnabarGymText_75999 + text_end CinnabarGymText_7599e: - TX_FAR _CinnabarGymText_7599e - db "@" + text_far _CinnabarGymText_7599e + text_end CinnabarGymText4: - TX_ASM + text_asm call CinnabarGymScript_74f48 CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_2 jr nz, .asm_751ee @@ -405,19 +407,19 @@ CinnabarGymText4: jp TextScriptEnd CinnabarGymText_759c9: - TX_FAR _CinnabarGymText_759c9 - db "@" + text_far _CinnabarGymText_759c9 + text_end CinnabarGymText_759ce: - TX_FAR _CinnabarGymText_759ce - db "@" + text_far _CinnabarGymText_759ce + text_end CinnabarGymText_759d3: - TX_FAR _CinnabarGymText_759d3 - db "@" + text_far _CinnabarGymText_759d3 + text_end CinnabarGymText5: - TX_ASM + text_asm call CinnabarGymScript_74f48 CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_3 jr nz, .asm_75234 @@ -441,19 +443,19 @@ CinnabarGymText5: jp TextScriptEnd CinnabarGymText_759fe: - TX_FAR _CinnabarGymText_759fe - db "@" + text_far _CinnabarGymText_759fe + text_end CinnabarGymText_75a03: - TX_FAR _CinnabarGymText_75a03 - db "@" + text_far _CinnabarGymText_75a03 + text_end CinnabarGymText_75a08: - TX_FAR _CinnabarGymText_75a08 - db "@" + text_far _CinnabarGymText_75a08 + text_end CinnabarGymText6: - TX_ASM + text_asm call CinnabarGymScript_74f48 CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_4 jr nz, .asm_776b4 @@ -477,19 +479,19 @@ CinnabarGymText6: jp TextScriptEnd CinnabarGymText_75a33: - TX_FAR _CinnabarGymText_75a33 - db "@" + text_far _CinnabarGymText_75a33 + text_end CinnabarGymText_75a38: - TX_FAR _CinnabarGymText_75a38 - db "@" + text_far _CinnabarGymText_75a38 + text_end CinnabarGymText_75a3d: - TX_FAR _CinnabarGymText_75a3d - db "@" + text_far _CinnabarGymText_75a3d + text_end CinnabarGymText7: - TX_ASM + text_asm call CinnabarGymScript_74f48 CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_5 jr nz, .asm_2f755 @@ -513,19 +515,19 @@ CinnabarGymText7: jp TextScriptEnd CinnabarGymText_75a68: - TX_FAR _CinnabarGymText_75a68 - db "@" + text_far _CinnabarGymText_75a68 + text_end CinnabarGymText_75a6d: - TX_FAR _CinnabarGymText_75a6d - db "@" + text_far _CinnabarGymText_75a6d + text_end CinnabarGymText_75a72: - TX_FAR _CinnabarGymText_75a72 - db "@" + text_far _CinnabarGymText_75a72 + text_end CinnabarGymText8: - TX_ASM + text_asm call CinnabarGymScript_74f48 CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_6 jr nz, .asm_d87be @@ -549,18 +551,18 @@ CinnabarGymText8: jp TextScriptEnd CinnabarGymText_75a9d: - TX_FAR _CinnabarGymText_75a9d - db "@" + text_far _CinnabarGymText_75a9d + text_end CinnabarGymText_75aa2: - TX_FAR _CinnabarGymText_75aa2 - db "@" + text_far _CinnabarGymText_75aa2 + text_end CinnabarGymText_75aa7: - TX_FAR _CinnabarGymText_75aa7 - db "@" + text_far _CinnabarGymText_75aa7 + text_end CinnabarGymText9: - TX_ASM - callab Func_f2133 + text_asm + callfar Func_f2133 jp TextScriptEnd diff --git a/scripts/CinnabarGym3.asm b/scripts/CinnabarGym3.asm index 9e8cad74c..af3db510b 100755 --- a/scripts/CinnabarGym3.asm +++ b/scripts/CinnabarGym3.asm @@ -1,4 +1,4 @@ -Func_f2133: +Func_f2133:: CheckEvent EVENT_BEAT_BLAINE jr nz, .asm_627d9 ld hl, CinnabarGymText_75ac2 @@ -10,14 +10,14 @@ Func_f2133: ret CinnabarGymText_75ac2: - TX_FAR _CinnabarGymText_75ac2 - db "@" + text_far _CinnabarGymText_75ac2 + text_end CinnabarGymText_75ac7: - TX_FAR _CinnabarGymText_75ac7 - db "@" + text_far _CinnabarGymText_75ac7 + text_end -Func_f2150: +Func_f2150:: ld hl, TextPointers_f215d ld d, 0 add hl, de @@ -36,29 +36,29 @@ TextPointers_f215d: dw CinnabarGymText_f2182 CinnabarGymText_f2169: - TX_FAR _CinnabarGymText_1 - db "@" + text_far _CinnabarGymText_1 + text_end CinnabarGymText_f216e: - TX_FAR _CinnabarGymText_2 - db "@" + text_far _CinnabarGymText_2 + text_end CinnabarGymText_f2173: - TX_FAR _CinnabarGymText_3 - db "@" + text_far _CinnabarGymText_3 + text_end CinnabarGymText_f2178: - TX_FAR _CinnabarGymText_4 - db "@" + text_far _CinnabarGymText_4 + text_end CinnabarGymText_f217d: - TX_FAR _CinnabarGymText_5 - db "@" + text_far _CinnabarGymText_5 + text_end CinnabarGymText_f2182: - TX_FAR _CinnabarGymText_6 - db "@" + text_far _CinnabarGymText_6 + text_end CinnabarGymText_f2187: - TX_FAR _CinnabarGymText_7 ; unused - db "@" + text_far _CinnabarGymText_7 ; unused + text_end diff --git a/scripts/CinnabarGym_2.asm b/scripts/CinnabarGym_2.asm index 00118fb56..4c296cf7d 100755 --- a/scripts/CinnabarGym_2.asm +++ b/scripts/CinnabarGym_2.asm @@ -1,5 +1,5 @@ CinnabarGymScript_753de: - callab Func_f2150 + callfar Func_f2150 jp TextScriptEnd CinnabarGymScript_753e9: diff --git a/scripts/CinnabarIsland.asm b/scripts/CinnabarIsland.asm index 5716428c0..a1b20cd39 100755 --- a/scripts/CinnabarIsland.asm +++ b/scripts/CinnabarIsland.asm @@ -17,18 +17,18 @@ CinnabarIslandScript0: call IsItemInBag ret nz ld a, [wYCoord] - cp $4 + cp 4 ret nz ld a, [wXCoord] - cp $12 + cp 18 ret nz ld a, PLAYER_DIR_UP ld [wPlayerMovingDirection], a ld a, $8 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $1 ld [wSimulatedJoypadStatesIndex], a ld a, D_DOWN @@ -61,25 +61,25 @@ CinnabarIsland_TextPointers: dw CinnabarIslandText8 CinnabarIslandText8: - TX_FAR _CinnabarIslandText8 - db "@" + text_far _CinnabarIslandText8 + text_end CinnabarIslandText1: - TX_FAR _CinnabarIslandText1 - db "@" + text_far _CinnabarIslandText1 + text_end CinnabarIslandText2: - TX_FAR _CinnabarIslandText2 - db "@" + text_far _CinnabarIslandText2 + text_end CinnabarIslandText3: - TX_FAR _CinnabarIslandText3 - db "@" + text_far _CinnabarIslandText3 + text_end CinnabarIslandText6: - TX_FAR _CinnabarIslandText6 - db "@" + text_far _CinnabarIslandText6 + text_end CinnabarIslandText7: - TX_FAR _CinnabarIslandText7 - db "@" + text_far _CinnabarIslandText7 + text_end diff --git a/scripts/CinnabarLab.asm b/scripts/CinnabarLab.asm index aab3324b8..2f4be7f29 100755 --- a/scripts/CinnabarLab.asm +++ b/scripts/CinnabarLab.asm @@ -10,21 +10,21 @@ CinnabarLab_TextPointers: dw Lab1Text5 Lab1Text1: - TX_FAR _Lab1Text1 - db "@" + text_far _Lab1Text1 + text_end Lab1Text2: - TX_FAR _Lab1Text2 - db "@" + text_far _Lab1Text2 + text_end Lab1Text3: - TX_FAR _Lab1Text3 - db "@" + text_far _Lab1Text3 + text_end Lab1Text4: - TX_FAR _Lab1Text4 - db "@" + text_far _Lab1Text4 + text_end Lab1Text5: - TX_FAR _Lab1Text5 - db "@" + text_far _Lab1Text5 + text_end diff --git a/scripts/CinnabarLabFossilRoom.asm b/scripts/CinnabarLabFossilRoom.asm index f5f03a198..2c388119b 100755 --- a/scripts/CinnabarLabFossilRoom.asm +++ b/scripts/CinnabarLabFossilRoom.asm @@ -44,10 +44,10 @@ FossilsList: db DOME_FOSSIL db HELIX_FOSSIL db OLD_AMBER - db $00 + db 0 ; end Lab4Text1: - TX_ASM + text_asm CheckEvent EVENT_GAVE_FOSSIL_TO_LAB jr nz, .asm_75d96 ld hl, Lab4Text_75dc6 @@ -56,7 +56,7 @@ Lab4Text1: ld a, [wFilteredBagItemsCount] and a jr z, .asm_75d8d - callba GiveFossilToCinnabarLab + farcall GiveFossilToCinnabarLab jr .asm_75d93 .asm_75d8d ld hl, Lab4Text_75dcb @@ -83,27 +83,27 @@ Lab4Text1: jr .asm_75d93 Lab4Text_75dc6: - TX_FAR _Lab4Text_75dc6 - db "@" + text_far _Lab4Text_75dc6 + text_end Lab4Text_75dcb: - TX_FAR _Lab4Text_75dcb - db "@" + text_far _Lab4Text_75dcb + text_end Lab4Text_75dd0: - TX_FAR _Lab4Text_75dd0 - db "@" + text_far _Lab4Text_75dd0 + text_end Lab4Text_75dd5: - TX_FAR _Lab4Text_75dd5 - db "@" + text_far _Lab4Text_75dd5 + text_end Lab4Text2: - TX_ASM - ld a, $3 + text_asm + ld a, TRADE_FOR_SAILOR ld [wWhichTrade], a predef DoInGameTradeDialogue jp TextScriptEnd LoadFossilItemAndMonNameBank1D: - jpba LoadFossilItemAndMonName + farjp LoadFossilItemAndMonName diff --git a/scripts/CinnabarLabMetronomeRoom.asm b/scripts/CinnabarLabMetronomeRoom.asm index 6eddceae6..b43f98e2d 100755 --- a/scripts/CinnabarLabMetronomeRoom.asm +++ b/scripts/CinnabarLabMetronomeRoom.asm @@ -9,54 +9,54 @@ CinnabarLabMetronomeRoom_TextPointers: dw Lab3Text5 Lab3Text1: - TX_ASM + text_asm CheckEvent EVENT_GOT_TM35 - jr nz, .asm_e551a + jr nz, .got_item ld hl, TM35PreReceiveText call PrintText - lb bc, TM_35, 1 + lb bc, TM_METRONOME, 1 call GiveItem - jr nc, .BagFull + jr nc, .bag_full ld hl, ReceivedTM35Text call PrintText SetEvent EVENT_GOT_TM35 - jr .asm_eb896 -.BagFull + jr .done +.bag_full ld hl, TM35NoRoomText call PrintText - jr .asm_eb896 -.asm_e551a + jr .done +.got_item ld hl, TM35ExplanationText call PrintText -.asm_eb896 +.done jp TextScriptEnd TM35PreReceiveText: - TX_FAR _TM35PreReceiveText - db "@" + text_far _TM35PreReceiveText + text_end ReceivedTM35Text: - TX_FAR _ReceivedTM35Text - TX_SFX_ITEM_1 - db "@" + text_far _ReceivedTM35Text + sound_get_item_1 + text_end TM35ExplanationText: - TX_FAR _TM35ExplanationText - db "@" + text_far _TM35ExplanationText + text_end TM35NoRoomText: - TX_FAR _TM35NoRoomText - db "@" + text_far _TM35NoRoomText + text_end Lab3Text2: - TX_FAR _Lab3Text2 - db "@" + text_far _Lab3Text2 + text_end Lab3Text4: Lab3Text3: - TX_FAR _Lab3Text3 - db "@" + text_far _Lab3Text3 + text_end Lab3Text5: - TX_FAR _Lab3Text5 - db "@" + text_far _Lab3Text5 + text_end diff --git a/scripts/CinnabarLabTradeRoom.asm b/scripts/CinnabarLabTradeRoom.asm index 6093ae149..1f8710bea 100755 --- a/scripts/CinnabarLabTradeRoom.asm +++ b/scripts/CinnabarLabTradeRoom.asm @@ -7,18 +7,18 @@ CinnabarLabTradeRoom_TextPointers: dw Lab2Text3 Lab2Text1: - TX_FAR _Lab2Text1 - db "@" + text_far _Lab2Text1 + text_end Lab2Text2: - TX_ASM - ld a, $7 + text_asm + ld a, TRADE_FOR_DORIS ld [wWhichTrade], a jr Lab2DoTrade Lab2Text3: - TX_ASM - ld a, $8 + text_asm + ld a, TRADE_FOR_CRINKLES ld [wWhichTrade], a Lab2DoTrade: predef DoInGameTradeDialogue diff --git a/scripts/CinnabarMart.asm b/scripts/CinnabarMart.asm index 898948c7e..e614bd294 100755 --- a/scripts/CinnabarMart.asm +++ b/scripts/CinnabarMart.asm @@ -7,9 +7,9 @@ CinnabarMart_TextPointers: dw CinnabarMartText3 CinnabarMartText2: - TX_FAR _CinnabarMartText2 - db "@" + text_far _CinnabarMartText2 + text_end CinnabarMartText3: - TX_FAR _CinnabarMartText3 - db "@" + text_far _CinnabarMartText3 + text_end diff --git a/scripts/CinnabarPokecenter.asm b/scripts/CinnabarPokecenter.asm index 53301266b..3a229ca34 100755 --- a/scripts/CinnabarPokecenter.asm +++ b/scripts/CinnabarPokecenter.asm @@ -10,20 +10,20 @@ CinnabarPokecenter_TextPointers: dw CinnabarPokecenterText5 CinnabarHealNurseText: - TX_POKECENTER_NURSE + script_pokecenter_nurse CinnabarPokecenterText2: - TX_FAR _CinnabarPokecenterText2 - db "@" + text_far _CinnabarPokecenterText2 + text_end CinnabarPokecenterText3: - TX_FAR _CinnabarPokecenterText3 - db "@" + text_far _CinnabarPokecenterText3 + text_end CinnabarTradeNurseText: - TX_CABLE_CLUB_RECEPTIONIST + script_cable_club_receptionist CinnabarPokecenterText5: - TX_ASM - callab PokecenterChanseyText + text_asm + callfar PokecenterChanseyText jp TextScriptEnd diff --git a/scripts/Colosseum.asm b/scripts/Colosseum.asm index 8cc6b0566..83d41bdcb 100644 --- a/scripts/Colosseum.asm +++ b/scripts/Colosseum.asm @@ -5,5 +5,5 @@ Colosseum_TextPointers: dw ColosseumText1 ColosseumText1: - TX_FAR _ColosseumText1 - db "@" + text_far _ColosseumText1 + text_end diff --git a/scripts/CopycatsHouse1F.asm b/scripts/CopycatsHouse1F.asm index a86625fc3..fc5ff3cf3 100755 --- a/scripts/CopycatsHouse1F.asm +++ b/scripts/CopycatsHouse1F.asm @@ -7,16 +7,16 @@ CopycatsHouse1F_TextPointers: dw CopycatsHouse1FText3 CopycatsHouse1FText1: - TX_FAR _CopycatsHouse1FText1 - db "@" + text_far _CopycatsHouse1FText1 + text_end CopycatsHouse1FText2: - TX_FAR _CopycatsHouse1FText2 - db "@" + text_far _CopycatsHouse1FText2 + text_end CopycatsHouse1FText3: - TX_FAR _CopycatsHouse1FText3 - TX_ASM + text_far _CopycatsHouse1FText3 + text_asm ld a, CHANSEY call PlayCry jp TextScriptEnd diff --git a/scripts/CopycatsHouse2F.asm b/scripts/CopycatsHouse2F.asm index e0ec54258..ef0742abd 100755 --- a/scripts/CopycatsHouse2F.asm +++ b/scripts/CopycatsHouse2F.asm @@ -11,79 +11,79 @@ CopycatsHouse2F_TextPointers: dw CopycatsHouse2FText7 CopycatsHouse2FText1: - TX_ASM + text_asm CheckEvent EVENT_GOT_TM31 - jr nz, .asm_7ccf3 - ld a, $1 + jr nz, .got_item + ld a, TRUE ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, CopycatsHouse2FText_5ccd4 call PrintText ld b, POKE_DOLL call IsItemInBag - jr z, .asm_62ecd + jr z, .done ld hl, TM31PreReceiveText call PrintText - lb bc, TM_31, 1 + lb bc, TM_MIMIC, 1 call GiveItem - jr nc, .BagFull + jr nc, .bag_full ld hl, ReceivedTM31Text call PrintText ld a, POKE_DOLL - ld [$ffdb], a - callba RemoveItemByID + ldh [hItemToRemoveID], a + farcall RemoveItemByID SetEvent EVENT_GOT_TM31 - jr .asm_62ecd -.BagFull + jr .done +.bag_full ld hl, TM31NoRoomText call PrintText - jr .asm_62ecd -.asm_7ccf3 + jr .done +.got_item ld hl, TM31ExplanationText2 call PrintText -.asm_62ecd +.done jp TextScriptEnd CopycatsHouse2FText_5ccd4: - TX_FAR _CopycatsHouse2FText_5ccd4 - db "@" + text_far _CopycatsHouse2FText_5ccd4 + text_end TM31PreReceiveText: - TX_FAR _TM31PreReceiveText - db "@" + text_far _TM31PreReceiveText + text_end ReceivedTM31Text: - TX_FAR _ReceivedTM31Text - TX_SFX_ITEM_1 + text_far _ReceivedTM31Text + sound_get_item_1 TM31ExplanationText1: - TX_FAR _TM31ExplanationText1 - TX_WAIT - db "@" + text_far _TM31ExplanationText1 + text_waitbutton + text_end TM31ExplanationText2: - TX_FAR _TM31ExplanationText2 - db "@" + text_far _TM31ExplanationText2 + text_end TM31NoRoomText: - TX_FAR _TM31NoRoomText - TX_WAIT - db "@" + text_far _TM31NoRoomText + text_waitbutton + text_end CopycatsHouse2FText2: - TX_FAR _CopycatsHouse2FText2 - db "@" + text_far _CopycatsHouse2FText2 + text_end CopycatsHouse2FText5: CopycatsHouse2FText4: CopycatsHouse2FText3: - TX_FAR _CopycatsHouse2FText3 - db "@" + text_far _CopycatsHouse2FText3 + text_end CopycatsHouse2FText6: - TX_FAR _CopycatsHouse2FText6 - db "@" + text_far _CopycatsHouse2FText6 + text_end CopycatsHouse2FText7: - TX_ASM + text_asm ld a, [wSpritePlayerStateData1FacingDirection] cp SPRITE_FACING_UP ld hl, CopycatsHouse2FText_5cd1c @@ -94,9 +94,9 @@ CopycatsHouse2FText7: jp TextScriptEnd CopycatsHouse2FText_5cd17: - TX_FAR _CopycatsHouse2FText_5cd17 - db "@" + text_far _CopycatsHouse2FText_5cd17 + text_end CopycatsHouse2FText_5cd1c: - TX_FAR _CopycatsHouse2FText_5cd1c - db "@" + text_far _CopycatsHouse2FText_5cd1c + text_end diff --git a/scripts/Daycare.asm b/scripts/Daycare.asm index 5b65307e6..164664b48 100755 --- a/scripts/Daycare.asm +++ b/scripts/Daycare.asm @@ -5,7 +5,7 @@ Daycare_TextPointers: dw DayCareMText1 DayCareMText1: - TX_ASM + text_asm call SaveScreenTilesToBuffer2 ld a, [wDayCareInUse] and a @@ -35,7 +35,7 @@ DayCareMText1: pop af ld hl, DayCareAllRightThenText jp c, .done - callab KnowsHMMove + callfar KnowsHMMove ld hl, DayCareCantAcceptMonWithHMText jp c, .done xor a @@ -50,7 +50,7 @@ DayCareMText1: ld a, PARTY_TO_DAYCARE ld [wMoveMonType], a call MoveMon - callab IsThisPartymonStarterPikachu + callfar IsThisPartymonStarterPikachu push af xor a ld [wRemoveMonFromBox], a @@ -63,7 +63,7 @@ DayCareMText1: .depositedPikachuIntoDayCare ldpikacry e, PikachuCry28 - callab PlayPikachuSoundClip + callfar PlayPikachuSoundClip .asm_562e3 ld hl, DayCareComeSeeMeInAWhileText jp .done @@ -75,19 +75,19 @@ DayCareMText1: ld a, DAYCARE_DATA ld [wMonDataLocation], a call LoadMonData - callab CalcLevelFromExperience + callfar CalcLevelFromExperience ld a, d cp MAX_LEVEL jr c, .skipCalcExp ld d, MAX_LEVEL - callab CalcExperience + callfar CalcExperience ld hl, wDayCareMonExp - ld a, [hExperience] + ldh a, [hExperience] ld [hli], a - ld a, [hExperience + 1] + ldh a, [hExperience + 1] ld [hli], a - ld a, [hExperience + 2] + ldh a, [hExperience + 2] ld [hl], a ld d, MAX_LEVEL @@ -148,11 +148,11 @@ DayCareMText1: and a jp nz, .leaveMonInDayCare ld hl, wDayCareTotalCost - ld [hMoney], a + ldh [hMoney], a ld a, [hli] - ld [hMoney + 1], a + ldh [hMoney + 1], a ld a, [hl] - ld [hMoney + 2], a + ldh [hMoney + 2], a call HasEnoughMoney jr nc, .enoughMoney ld hl, DayCareNotEnoughMoneyText @@ -210,7 +210,7 @@ DayCareMText1: ld a, [wPartyCount] dec a ld [wWhichPokemon], a - callab IsThisPartymonStarterPikachu + callfar IsThisPartymonStarterPikachu jr c, .withdrewPikachuFromDayCare ld a, [wcf91] call PlayCry @@ -226,7 +226,7 @@ DayCareMText1: ld hl, Bankswitch ldpikacry e, PikachuCry35 - callab PlayPikachuSoundClip + callfar PlayPikachuSoundClip .asm_56430 ld hl, DayCareGotMonBackText jr .done @@ -240,59 +240,59 @@ DayCareMText1: jp TextScriptEnd DayCareIntroText: - TX_FAR _DayCareIntroText - db "@" + text_far _DayCareIntroText + text_end DayCareWhichMonText: - TX_FAR _DayCareWhichMonText - db "@" + text_far _DayCareWhichMonText + text_end DayCareWillLookAfterMonText: - TX_FAR _DayCareWillLookAfterMonText - db "@" + text_far _DayCareWillLookAfterMonText + text_end DayCareComeSeeMeInAWhileText: - TX_FAR _DayCareComeSeeMeInAWhileText - db "@" + text_far _DayCareComeSeeMeInAWhileText + text_end DayCareMonHasGrownText: - TX_FAR _DayCareMonHasGrownText - db "@" + text_far _DayCareMonHasGrownText + text_end DayCareOweMoneyText: - TX_FAR _DayCareOweMoneyText - db "@" + text_far _DayCareOweMoneyText + text_end DayCareGotMonBackText: - TX_FAR _DayCareGotMonBackText - db "@" + text_far _DayCareGotMonBackText + text_end DayCareMonNeedsMoreTimeText: - TX_FAR _DayCareMonNeedsMoreTimeText - db "@" + text_far _DayCareMonNeedsMoreTimeText + text_end DayCareAllRightThenText: - TX_FAR _DayCareAllRightThenText + text_far _DayCareAllRightThenText DayCareComeAgainText: - TX_FAR _DayCareComeAgainText - db "@" + text_far _DayCareComeAgainText + text_end DayCareNoRoomForMonText: - TX_FAR _DayCareNoRoomForMonText - db "@" + text_far _DayCareNoRoomForMonText + text_end DayCareOnlyHaveOneMonText: - TX_FAR _DayCareOnlyHaveOneMonText - db "@" + text_far _DayCareOnlyHaveOneMonText + text_end DayCareCantAcceptMonWithHMText: - TX_FAR _DayCareCantAcceptMonWithHMText - db "@" + text_far _DayCareCantAcceptMonWithHMText + text_end DayCareHeresYourMonText: - TX_FAR _DayCareHeresYourMonText - db "@" + text_far _DayCareHeresYourMonText + text_end DayCareNotEnoughMoneyText: - TX_FAR _DayCareNotEnoughMoneyText - db "@" + text_far _DayCareNotEnoughMoneyText + text_end diff --git a/scripts/DiglettsCave.asm b/scripts/DiglettsCave.asm index 1d7b23f9e..f9f2e590c 100755 --- a/scripts/DiglettsCave.asm +++ b/scripts/DiglettsCave.asm @@ -2,4 +2,5 @@ DiglettsCave_Script: jp EnableAutoTextBoxDrawing DiglettsCave_TextPointers: - db "@" + + text_end ; unused diff --git a/scripts/DiglettsCaveRoute11.asm b/scripts/DiglettsCaveRoute11.asm index 54c3112ea..648fe2bc0 100755 --- a/scripts/DiglettsCaveRoute11.asm +++ b/scripts/DiglettsCaveRoute11.asm @@ -8,5 +8,5 @@ DiglettsCaveRoute11_TextPointers: dw DiglettsCaveEntranceRoute11Text1 DiglettsCaveEntranceRoute11Text1: - TX_FAR _DiglettsCaveEntRoute11Text1 - db "@" + text_far _DiglettsCaveEntRoute11Text1 + text_end diff --git a/scripts/DiglettsCaveRoute2.asm b/scripts/DiglettsCaveRoute2.asm index 5fe7777c9..32f17d659 100755 --- a/scripts/DiglettsCaveRoute2.asm +++ b/scripts/DiglettsCaveRoute2.asm @@ -7,5 +7,5 @@ DiglettsCaveRoute2_TextPointers: dw DiglettsCaveRoute2Text1 DiglettsCaveRoute2Text1: - TX_FAR _DiglettsCaveRoute2Text1 - db "@" + text_far _DiglettsCaveRoute2Text1 + text_end diff --git a/scripts/FightingDojo.asm b/scripts/FightingDojo.asm index fc691dba7..e5d0a0a7a 100755 --- a/scripts/FightingDojo.asm +++ b/scripts/FightingDojo.asm @@ -30,25 +30,25 @@ FightingDojoScript1: CheckEvent EVENT_BEAT_KARATE_MASTER ret nz xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld [wcf0d], a ld a, [wYCoord] - cp $3 + cp 3 ret nz ld a, [wXCoord] - cp $4 + cp 4 ret nz ld a, $1 ld [wcf0d], a ld a, PLAYER_DIR_RIGHT ld [wPlayerMovingDirection], a ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld a, SPRITE_FACING_LEFT - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ret @@ -62,9 +62,9 @@ FightingDojoScript3: ld a, PLAYER_DIR_RIGHT ld [wPlayerMovingDirection], a ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld a, SPRITE_FACING_LEFT - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay .asm_5cde4 @@ -72,7 +72,7 @@ FightingDojoScript3: ld [wJoyIgnore], a SetEventRange EVENT_BEAT_KARATE_MASTER, EVENT_BEAT_FIGHTING_DOJO_TRAINER_3 ld a, $8 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wJoyIgnore], a @@ -91,45 +91,17 @@ FightingDojo_TextPointers: dw FightingDojoText8 FightingDojoTrainerHeader0: - dbEventFlagBit EVENT_BEAT_FIGHTING_DOJO_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_FIGHTING_DOJO_TRAINER_0 - dw FightingDojoBattleText1 ; TextBeforeBattle - dw FightingDojoAfterBattleText1 ; TextAfterBattle - dw FightingDojoEndBattleText1 ; TextEndBattle - dw FightingDojoEndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_FIGHTING_DOJO_TRAINER_0, 4, FightingDojoBattleText1, FightingDojoEndBattleText1, FightingDojoAfterBattleText1 FightingDojoTrainerHeader1: - dbEventFlagBit EVENT_BEAT_FIGHTING_DOJO_TRAINER_1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_FIGHTING_DOJO_TRAINER_1 - dw FightingDojoBattleText2 ; TextBeforeBattle - dw FightingDojoAfterBattleText2 ; TextAfterBattle - dw FightingDojoEndBattleText2 ; TextEndBattle - dw FightingDojoEndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_FIGHTING_DOJO_TRAINER_1, 4, FightingDojoBattleText2, FightingDojoEndBattleText2, FightingDojoAfterBattleText2 FightingDojoTrainerHeader2: - dbEventFlagBit EVENT_BEAT_FIGHTING_DOJO_TRAINER_2 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_FIGHTING_DOJO_TRAINER_2 - dw FightingDojoBattleText3 ; TextBeforeBattle - dw FightingDojoAfterBattleText3 ; TextAfterBattle - dw FightingDojoEndBattleText3 ; TextEndBattle - dw FightingDojoEndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_FIGHTING_DOJO_TRAINER_2, 3, FightingDojoBattleText3, FightingDojoEndBattleText3, FightingDojoAfterBattleText3 FightingDojoTrainerHeader3: - dbEventFlagBit EVENT_BEAT_FIGHTING_DOJO_TRAINER_3 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_FIGHTING_DOJO_TRAINER_3 - dw FightingDojoBattleText4 ; TextBeforeBattle - dw FightingDojoAfterBattleText4 ; TextAfterBattle - dw FightingDojoEndBattleText4 ; TextEndBattle - dw FightingDojoEndBattleText4 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_FIGHTING_DOJO_TRAINER_3, 3, FightingDojoBattleText4, FightingDojoEndBattleText4, FightingDojoAfterBattleText4 + db -1 ; end FightingDojoText1: - TX_ASM + text_asm CheckEvent EVENT_DEFEATED_FIGHTING_DOJO jp nz, .continue1 CheckEventReuseA EVENT_BEAT_KARATE_MASTER @@ -142,7 +114,7 @@ FightingDojoText1: ld hl, FightingDojoText_5ce93 ld de, FightingDojoText_5ce93 call SaveEndBattleTextPointers - ld a, [hSpriteIndexOrTextID] + ldh a, [hSpriteIndexOrTextID] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters @@ -161,96 +133,96 @@ FightingDojoText1: jp TextScriptEnd FightingDojoText_5ce8e: - TX_FAR _FightingDojoText_5ce8e - db "@" + text_far _FightingDojoText_5ce8e + text_end FightingDojoText_5ce93: - TX_FAR _FightingDojoText_5ce93 - db "@" + text_far _FightingDojoText_5ce93 + text_end FightingDojoText8: - TX_FAR _FightingDojoText_5ce98 - db "@" + text_far _FightingDojoText_5ce98 + text_end FightingDojoText_5ce9d: - TX_FAR _FightingDojoText_5ce9d - db "@" + text_far _FightingDojoText_5ce9d + text_end FightingDojoText2: - TX_ASM + text_asm ld hl, FightingDojoTrainerHeader0 call TalkToTrainer jp TextScriptEnd FightingDojoBattleText1: - TX_FAR _FightingDojoBattleText1 - db "@" + text_far _FightingDojoBattleText1 + text_end FightingDojoEndBattleText1: - TX_FAR _FightingDojoEndBattleText1 - db "@" + text_far _FightingDojoEndBattleText1 + text_end FightingDojoAfterBattleText1: - TX_FAR _FightingDojoAfterBattleText1 - db "@" + text_far _FightingDojoAfterBattleText1 + text_end FightingDojoText3: - TX_ASM + text_asm ld hl, FightingDojoTrainerHeader1 call TalkToTrainer jp TextScriptEnd FightingDojoBattleText2: - TX_FAR _FightingDojoBattleText2 - db "@" + text_far _FightingDojoBattleText2 + text_end FightingDojoEndBattleText2: - TX_FAR _FightingDojoEndBattleText2 - db "@" + text_far _FightingDojoEndBattleText2 + text_end FightingDojoAfterBattleText2: - TX_FAR _FightingDojoAfterBattleText2 - db "@" + text_far _FightingDojoAfterBattleText2 + text_end FightingDojoText4: - TX_ASM + text_asm ld hl, FightingDojoTrainerHeader2 call TalkToTrainer jp TextScriptEnd FightingDojoBattleText3: - TX_FAR _FightingDojoBattleText3 - db "@" + text_far _FightingDojoBattleText3 + text_end FightingDojoEndBattleText3: - TX_FAR _FightingDojoEndBattleText3 - db "@" + text_far _FightingDojoEndBattleText3 + text_end FightingDojoAfterBattleText3: - TX_FAR _FightingDojoAfterBattleText3 - db "@" + text_far _FightingDojoAfterBattleText3 + text_end FightingDojoText5: - TX_ASM + text_asm ld hl, FightingDojoTrainerHeader3 call TalkToTrainer jp TextScriptEnd FightingDojoBattleText4: - TX_FAR _FightingDojoBattleText4 - db "@" + text_far _FightingDojoBattleText4 + text_end FightingDojoEndBattleText4: - TX_FAR _FightingDojoEndBattleText4 - db "@" + text_far _FightingDojoEndBattleText4 + text_end FightingDojoAfterBattleText4: - TX_FAR _FightingDojoAfterBattleText4 - db "@" + text_far _FightingDojoAfterBattleText4 + text_end FightingDojoText6: ; Hitmonlee Poké Ball - TX_ASM + text_asm CheckEitherEventSet EVENT_GOT_HITMONLEE, EVENT_GOT_HITMONCHAN jr z, .GetMon ld hl, OtherHitmonText @@ -280,12 +252,12 @@ FightingDojoText6: jp TextScriptEnd WantHitmonleeText: - TX_FAR _WantHitmonleeText - db "@" + text_far _WantHitmonleeText + text_end FightingDojoText7: ; Hitmonchan Poké Ball - TX_ASM + text_asm CheckEitherEventSet EVENT_GOT_HITMONLEE, EVENT_GOT_HITMONCHAN jr z, .GetMon ld hl, OtherHitmonText @@ -315,9 +287,9 @@ FightingDojoText7: jp TextScriptEnd WantHitmonchanText: - TX_FAR _WantHitmonchanText - db "@" + text_far _WantHitmonchanText + text_end OtherHitmonText: - TX_FAR _OtherHitmonText - db "@" + text_far _OtherHitmonText + text_end diff --git a/scripts/FuchsiaBillsGrandpasHouse.asm b/scripts/FuchsiaBillsGrandpasHouse.asm index ca5f2c16f..69ce1cf18 100755 --- a/scripts/FuchsiaBillsGrandpasHouse.asm +++ b/scripts/FuchsiaBillsGrandpasHouse.asm @@ -8,13 +8,13 @@ FuchsiaBillsGrandpasHouse_TextPointers: dw FuchsiaHouse1Text3 FuchsiaHouse1Text1: - TX_FAR _FuchsiaHouse1Text1 - db "@" + text_far _FuchsiaHouse1Text1 + text_end FuchsiaHouse1Text2: - TX_FAR _FuchsiaHouse1Text2 - db "@" + text_far _FuchsiaHouse1Text2 + text_end FuchsiaHouse1Text3: - TX_FAR _FuchsiaHouse1Text3 - db "@" + text_far _FuchsiaHouse1Text3 + text_end diff --git a/scripts/FuchsiaCity.asm b/scripts/FuchsiaCity.asm index d3f0ce321..ac9f273bb 100755 --- a/scripts/FuchsiaCity.asm +++ b/scripts/FuchsiaCity.asm @@ -28,20 +28,20 @@ FuchsiaCity_TextPointers: dw FuchsiaCityText24 FuchsiaCityText1: - TX_FAR _FuchsiaCityText1 - db "@" + text_far _FuchsiaCityText1 + text_end FuchsiaCityText2: - TX_FAR _FuchsiaCityText2 - db "@" + text_far _FuchsiaCityText2 + text_end FuchsiaCityText3: - TX_FAR _FuchsiaCityText3 - db "@" + text_far _FuchsiaCityText3 + text_end FuchsiaCityText4: - TX_FAR _FuchsiaCityText4 - db "@" + text_far _FuchsiaCityText4 + text_end FuchsiaCityText5: FuchsiaCityText6: @@ -49,32 +49,32 @@ FuchsiaCityText7: FuchsiaCityText8: FuchsiaCityText9: FuchsiaCityText10: - TX_FAR _FuchsiaCityText5 - db "@" + text_far _FuchsiaCityText5 + text_end FuchsiaCityText12: FuchsiaCityText11: - TX_FAR _FuchsiaCityText11 - db "@" + text_far _FuchsiaCityText11 + text_end FuchsiaCityText13: - TX_FAR _FuchsiaCityText13 - db "@" + text_far _FuchsiaCityText13 + text_end FuchsiaCityText16: - TX_FAR _FuchsiaCityText16 - db "@" + text_far _FuchsiaCityText16 + text_end FuchsiaCityText17: - TX_FAR _FuchsiaCityText17 - db "@" + text_far _FuchsiaCityText17 + text_end FuchsiaCityText18: - TX_FAR _FuchsiaCityText18 - db "@" + text_far _FuchsiaCityText18 + text_end FuchsiaCityText19: - TX_ASM + text_asm ld hl, FuchsiaCityChanseyText call PrintText ld a, CHANSEY @@ -82,11 +82,11 @@ FuchsiaCityText19: jp TextScriptEnd FuchsiaCityChanseyText: - TX_FAR _FuchsiaCityChanseyText - db "@" + text_far _FuchsiaCityChanseyText + text_end FuchsiaCityText20: - TX_ASM + text_asm ld hl, FuchsiaCityVoltorbText call PrintText ld a, VOLTORB @@ -94,11 +94,11 @@ FuchsiaCityText20: jp TextScriptEnd FuchsiaCityVoltorbText: - TX_FAR _FuchsiaCityVoltorbText - db "@" + text_far _FuchsiaCityVoltorbText + text_end FuchsiaCityText21: - TX_ASM + text_asm ld hl, FuchsiaCityKangaskhanText call PrintText ld a, KANGASKHAN @@ -106,11 +106,11 @@ FuchsiaCityText21: jp TextScriptEnd FuchsiaCityKangaskhanText: - TX_FAR _FuchsiaCityKangaskhanText - db "@" + text_far _FuchsiaCityKangaskhanText + text_end FuchsiaCityText22: - TX_ASM + text_asm ld hl, FuchsiaCitySlowpokeText call PrintText ld a, SLOWPOKE @@ -118,11 +118,11 @@ FuchsiaCityText22: jp TextScriptEnd FuchsiaCitySlowpokeText: - TX_FAR _FuchsiaCitySlowpokeText - db "@" + text_far _FuchsiaCitySlowpokeText + text_end FuchsiaCityText23: - TX_ASM + text_asm ld hl, FuchsiaCityLaprasText call PrintText ld a, LAPRAS @@ -130,11 +130,11 @@ FuchsiaCityText23: jp TextScriptEnd FuchsiaCityLaprasText: - TX_FAR _FuchsiaCityLaprasText - db "@" + text_far _FuchsiaCityLaprasText + text_end FuchsiaCityText24: - TX_ASM + text_asm CheckEvent EVENT_GOT_DOME_FOSSIL jr nz, .asm_3b4e8 CheckEventReuseA EVENT_GOT_HELIX_FOSSIL @@ -157,13 +157,13 @@ FuchsiaCityText24: jp TextScriptEnd FuchsiaCityOmanyteText: - TX_FAR _FuchsiaCityOmanyteText - db "@" + text_far _FuchsiaCityOmanyteText + text_end FuchsiaCityKabutoText: - TX_FAR _FuchsiaCityKabutoText - db "@" + text_far _FuchsiaCityKabutoText + text_end FuchsiaCityText_19b2a: - TX_FAR _FuchsiaCityText_19b2a - db "@" + text_far _FuchsiaCityText_19b2a + text_end diff --git a/scripts/FuchsiaGoodRodHouse.asm b/scripts/FuchsiaGoodRodHouse.asm index 93a20e80f..28f6d056b 100755 --- a/scripts/FuchsiaGoodRodHouse.asm +++ b/scripts/FuchsiaGoodRodHouse.asm @@ -5,71 +5,62 @@ FuchsiaGoodRodHouse_TextPointers: dw FuchsiaHouse3Text1 FuchsiaHouse3Text1: - TX_ASM + text_asm ld a, [wd728] - bit 4, a - jr nz, .after - + bit 4, a ; got good rod? + jr nz, .got_item ld hl, FuchsiaHouse3Text_561bd call PrintText - call YesNoChoice ld a, [wCurrentMenuItem] and a jr nz, .refused - lb bc, GOOD_ROD, 1 call GiveItem - jr nc, .full - + jr nc, .bag_full ld hl, wd728 - set 4, [hl] - + set 4, [hl] ; got good rod ld hl, FuchsiaHouse3Text_561c2 - jr .talk - -.full + jr .done +.bag_full ld hl, FuchsiaHouse3Text_5621c - jr .talk - + jr .done .refused ld hl, FuchsiaHouse3Text_56212 - jr .talk - -.after + jr .done +.got_item ld hl, FuchsiaHouse3Text_56217 - -.talk +.done call PrintText jp TextScriptEnd FuchsiaHouse3Text_561bd: - TX_FAR _FuchsiaHouse3Text_561bd - db "@" + text_far _FuchsiaHouse3Text_561bd + text_end FuchsiaHouse3Text_561c2: - TX_FAR _FuchsiaHouse3Text_561c2 - TX_SFX_ITEM_1 - db "@" + text_far _FuchsiaHouse3Text_561c2 + sound_get_item_1 + text_end UnusedText_561c8: - para "つり こそ" - line "おとこの ロマン だ!" + para "つり こそ" + line "おとこの ロマン だ!" para "へぼいつりざおは" - line "コイキングしか つれ なんだが" - line "この いいつりざおなら" - line "もっと いいもんが つれるんじゃ!" + line "コイキングしか つれ なんだが" + line "この いいつりざおなら" + line "もっと いいもんが つれるんじゃ!" done FuchsiaHouse3Text_56212: - TX_FAR _FuchsiaHouse3Text_56212 - db "@" + text_far _FuchsiaHouse3Text_56212 + text_end FuchsiaHouse3Text_56217: - TX_FAR _FuchsiaHouse3Text_56217 - db "@" + text_far _FuchsiaHouse3Text_56217 + text_end FuchsiaHouse3Text_5621c: - TX_FAR _FuchsiaHouse3Text_5621c - db "@" + text_far _FuchsiaHouse3Text_5621c + text_end diff --git a/scripts/FuchsiaGym.asm b/scripts/FuchsiaGym.asm index 15f016af1..6f4f28fc7 100755 --- a/scripts/FuchsiaGym.asm +++ b/scripts/FuchsiaGym.asm @@ -1,5 +1,5 @@ FuchsiaGym_Script: - call FuchsiaGymScript_75453 + call .LoadNames call EnableAutoTextBoxDrawing ld hl, FuchsiaGymTrainerHeader0 ld de, FuchsiaGym_ScriptPointers @@ -8,19 +8,20 @@ FuchsiaGym_Script: ld [wFuchsiaGymCurScript], a ret -FuchsiaGymScript_75453: +.LoadNames: ld hl, wCurrentMapScriptFlags bit 6, [hl] res 6, [hl] ret z - ld hl, Gym5CityName - ld de, Gym5LeaderName + ld hl, .CityName + ld de, .LeaderName call LoadGymLeaderAndCityName ret -Gym5CityName: +.CityName: db "FUCHSIA CITY@" -Gym5LeaderName: + +.LeaderName: db "KOGA@" FuchsiaGymScript_75477: @@ -44,26 +45,26 @@ FuchsiaGymScript3: ld [wJoyIgnore], a FuchsiaGymScript3_75497: ld a, $9 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_BEAT_KOGA - lb bc, TM_06, 1 + lb bc, TM_TOXIC, 1 call GiveItem jr nc, .BagFull ld a, $a - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_GOT_TM06 jr .gymVictory .BagFull ld a, $b - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID .gymVictory ld hl, wObtainedBadges - set 4, [hl] + set BIT_SOULBADGE, [hl] ld hl, wBeatGymFlags - set 4, [hl] + set BIT_SOULBADGE, [hl] ; deactivate gym trainers SetEventRange EVENT_BEAT_FUCHSIA_GYM_TRAINER_0, EVENT_BEAT_FUCHSIA_GYM_TRAINER_5 @@ -84,63 +85,21 @@ FuchsiaGym_TextPointers: dw FuchsiaGymText11 FuchsiaGymTrainerHeader0: - dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_0 - dw FuchsiaGymBattleText1 ; TextBeforeBattle - dw FuchsiaGymAfterBattleText1 ; TextAfterBattle - dw FuchsiaGymEndBattleText1 ; TextEndBattle - dw FuchsiaGymEndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_FUCHSIA_GYM_TRAINER_0, 2, FuchsiaGymBattleText1, FuchsiaGymEndBattleText1, FuchsiaGymAfterBattleText1 FuchsiaGymTrainerHeader1: - dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_1 - dw FuchsiaGymBattleText2 ; TextBeforeBattle - dw FuchsiaGymAfterBattleText2 ; TextAfterBattle - dw FuchsiaGymEndBattleText2 ; TextEndBattle - dw FuchsiaGymEndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_FUCHSIA_GYM_TRAINER_1, 2, FuchsiaGymBattleText2, FuchsiaGymEndBattleText2, FuchsiaGymAfterBattleText2 FuchsiaGymTrainerHeader2: - dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_2 - dw FuchsiaGymBattleText3 ; TextBeforeBattle - dw FuchsiaGymAfterBattleText3 ; TextAfterBattle - dw FuchsiaGymEndBattleText3 ; TextEndBattle - dw FuchsiaGymEndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_FUCHSIA_GYM_TRAINER_2, 4, FuchsiaGymBattleText3, FuchsiaGymEndBattleText3, FuchsiaGymAfterBattleText3 FuchsiaGymTrainerHeader3: - dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_3 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_3 - dw FuchsiaGymBattleText4 ; TextBeforeBattle - dw FuchsiaGymAfterBattleText4 ; TextAfterBattle - dw FuchsiaGymEndBattleText4 ; TextEndBattle - dw FuchsiaGymEndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_FUCHSIA_GYM_TRAINER_3, 2, FuchsiaGymBattleText4, FuchsiaGymEndBattleText4, FuchsiaGymAfterBattleText4 FuchsiaGymTrainerHeader4: - dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_4 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_4 - dw FuchsiaGymBattleText5 ; TextBeforeBattle - dw FuchsiaGymAfterBattleText5 ; TextAfterBattle - dw FuchsiaGymEndBattleText5 ; TextEndBattle - dw FuchsiaGymEndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_FUCHSIA_GYM_TRAINER_4, 2, FuchsiaGymBattleText5, FuchsiaGymEndBattleText5, FuchsiaGymAfterBattleText5 FuchsiaGymTrainerHeader5: - dbEventFlagBit EVENT_BEAT_FUCHSIA_GYM_TRAINER_5 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_FUCHSIA_GYM_TRAINER_5 - dw FuchsiaGymBattleText6 ; TextBeforeBattle - dw FuchsiaGymAfterBattleText6 ; TextAfterBattle - dw FuchsiaGymEndBattleText6 ; TextEndBattle - dw FuchsiaGymEndBattleText6 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_FUCHSIA_GYM_TRAINER_5, 2, FuchsiaGymBattleText6, FuchsiaGymEndBattleText6, FuchsiaGymAfterBattleText6 + db -1 ; end FuchsiaGymText1: - TX_ASM + text_asm CheckEvent EVENT_BEAT_KOGA jr z, .beginBattle CheckEventReuseA EVENT_GOT_TM06 @@ -161,157 +120,157 @@ FuchsiaGymText1: ld hl, KogaAfterBattleText ld de, KogaAfterBattleText call SaveEndBattleTextPointers - ld a, [H_SPRITEINDEX] + ldh a, [hSpriteIndex] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters ld a, $5 ld [wGymLeaderNo], a xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $3 ld [wFuchsiaGymCurScript], a .done jp TextScriptEnd KogaBeforeBattleText: - TX_FAR _KogaBeforeBattleText - db "@" + text_far _KogaBeforeBattleText + text_end KogaAfterBattleText: - TX_FAR _KogaAfterBattleText - db "@" + text_far _KogaAfterBattleText + text_end KogaExplainToxicText: - TX_FAR _KogaExplainToxicText - db "@" + text_far _KogaExplainToxicText + text_end FuchsiaGymText9: - TX_FAR _FuchsiaGymText9 - db "@" + text_far _FuchsiaGymText9 + text_end FuchsiaGymText10: - TX_FAR _ReceivedTM06Text - TX_SFX_KEY_ITEM + text_far _ReceivedTM06Text + sound_get_key_item TM06ExplanationText: - TX_FAR _TM06ExplanationText - db "@" + text_far _TM06ExplanationText + text_end FuchsiaGymText11: - TX_FAR _TM06NoRoomText - db "@" + text_far _TM06NoRoomText + text_end FuchsiaGymText2: - TX_ASM + text_asm ld hl, FuchsiaGymTrainerHeader0 call TalkToTrainer jp TextScriptEnd FuchsiaGymBattleText1: - TX_FAR _FuchsiaGymBattleText1 - db "@" + text_far _FuchsiaGymBattleText1 + text_end FuchsiaGymEndBattleText1: - TX_FAR _FuchsiaGymEndBattleText1 - db "@" + text_far _FuchsiaGymEndBattleText1 + text_end FuchsiaGymAfterBattleText1: - TX_FAR _FuchsiaGymAfterBattleText1 - db "@" + text_far _FuchsiaGymAfterBattleText1 + text_end FuchsiaGymText3: - TX_ASM + text_asm ld hl, FuchsiaGymTrainerHeader1 call TalkToTrainer jp TextScriptEnd FuchsiaGymBattleText2: - TX_FAR _FuchsiaGymBattleText2 - db "@" + text_far _FuchsiaGymBattleText2 + text_end FuchsiaGymEndBattleText2: - TX_FAR _FuchsiaGymEndBattleText2 - db "@" + text_far _FuchsiaGymEndBattleText2 + text_end FuchsiaGymAfterBattleText2: - TX_FAR _FuchsiaGymAfterBattleText2 - db "@" + text_far _FuchsiaGymAfterBattleText2 + text_end FuchsiaGymText4: - TX_ASM + text_asm ld hl, FuchsiaGymTrainerHeader2 call TalkToTrainer jp TextScriptEnd FuchsiaGymBattleText3: - TX_FAR _FuchsiaGymBattleText3 - db "@" + text_far _FuchsiaGymBattleText3 + text_end FuchsiaGymEndBattleText3: - TX_FAR _FuchsiaGymEndBattleText3 - db "@" + text_far _FuchsiaGymEndBattleText3 + text_end FuchsiaGymAfterBattleText3: - TX_FAR _FuchsiaGymAfterBattleText3 - db "@" + text_far _FuchsiaGymAfterBattleText3 + text_end FuchsiaGymText5: - TX_ASM + text_asm ld hl, FuchsiaGymTrainerHeader3 call TalkToTrainer jp TextScriptEnd FuchsiaGymBattleText4: - TX_FAR _FuchsiaGymBattleText4 - db "@" + text_far _FuchsiaGymBattleText4 + text_end FuchsiaGymEndBattleText4: - TX_FAR _FuchsiaGymEndBattleText4 - db "@" + text_far _FuchsiaGymEndBattleText4 + text_end FuchsiaGymAfterBattleText4: - TX_FAR _FuchsiaGymAfterBattleText4 - db "@" + text_far _FuchsiaGymAfterBattleText4 + text_end FuchsiaGymText6: - TX_ASM + text_asm ld hl, FuchsiaGymTrainerHeader4 call TalkToTrainer jp TextScriptEnd FuchsiaGymBattleText5: - TX_FAR _FuchsiaGymBattleText5 - db "@" + text_far _FuchsiaGymBattleText5 + text_end FuchsiaGymEndBattleText5: - TX_FAR _FuchsiaGymEndBattleText5 - db "@" + text_far _FuchsiaGymEndBattleText5 + text_end FuchsiaGymAfterBattleText5: - TX_FAR _FuchsiaGymAfterBattleText5 - db "@" + text_far _FuchsiaGymAfterBattleText5 + text_end FuchsiaGymText7: - TX_ASM + text_asm ld hl, FuchsiaGymTrainerHeader5 call TalkToTrainer jp TextScriptEnd FuchsiaGymBattleText6: - TX_FAR _FuchsiaGymBattleText6 - db "@" + text_far _FuchsiaGymBattleText6 + text_end FuchsiaGymEndBattleText6: - TX_FAR _FuchsiaGymEndBattleText6 - db "@" + text_far _FuchsiaGymEndBattleText6 + text_end FuchsiaGymAfterBattleText6: - TX_FAR _FuchsiaGymAfterBattleText6 - db "@" + text_far _FuchsiaGymAfterBattleText6 + text_end FuchsiaGymText8: - TX_ASM + text_asm CheckEvent EVENT_BEAT_KOGA ld hl, FuchsiaGymText_75653 jr nz, .asm_50671 @@ -321,9 +280,9 @@ FuchsiaGymText8: jp TextScriptEnd FuchsiaGymText_7564e: - TX_FAR _FuchsiaGymText_7564e - db "@" + text_far _FuchsiaGymText_7564e + text_end FuchsiaGymText_75653: - TX_FAR _FuchsiaGymText_75653 - db "@" + text_far _FuchsiaGymText_75653 + text_end diff --git a/scripts/FuchsiaMart.asm b/scripts/FuchsiaMart.asm index 50786127d..75e9a45d1 100755 --- a/scripts/FuchsiaMart.asm +++ b/scripts/FuchsiaMart.asm @@ -8,9 +8,9 @@ FuchsiaMart_TextPointers: dw FuchsiaMartText3 FuchsiaMartText2: - TX_FAR _FuchsiaMartText2 - db "@" + text_far _FuchsiaMartText2 + text_end FuchsiaMartText3: - TX_FAR _FuchsiaMartText3 - db "@" + text_far _FuchsiaMartText3 + text_end diff --git a/scripts/FuchsiaMeetingRoom.asm b/scripts/FuchsiaMeetingRoom.asm index 95ac12fae..4fc05b1f0 100755 --- a/scripts/FuchsiaMeetingRoom.asm +++ b/scripts/FuchsiaMeetingRoom.asm @@ -8,13 +8,13 @@ FuchsiaMeetingRoom_TextPointers: dw FuchsiaMeetingRoomText3 FuchsiaMeetingRoomText1: - TX_FAR _FuchsiaMeetingRoomText1 - db "@" + text_far _FuchsiaMeetingRoomText1 + text_end FuchsiaMeetingRoomText2: - TX_FAR _FuchsiaMeetingRoomText2 - db "@" + text_far _FuchsiaMeetingRoomText2 + text_end FuchsiaMeetingRoomText3: - TX_FAR _FuchsiaMeetingRoomText3 - db "@" + text_far _FuchsiaMeetingRoomText3 + text_end diff --git a/scripts/FuchsiaPokecenter.asm b/scripts/FuchsiaPokecenter.asm index 40aa3d45f..2d98ca173 100755 --- a/scripts/FuchsiaPokecenter.asm +++ b/scripts/FuchsiaPokecenter.asm @@ -10,20 +10,20 @@ FuchsiaPokecenter_TextPointers: dw FuchsiaPokecenterText5 FuchsiaHealNurseText: - TX_POKECENTER_NURSE + script_pokecenter_nurse FuchsiaPokecenterText2: - TX_FAR _FuchsiaPokecenterText1 - db "@" + text_far _FuchsiaPokecenterText1 + text_end FuchsiaPokecenterText3: - TX_FAR _FuchsiaPokecenterText3 - db "@" + text_far _FuchsiaPokecenterText3 + text_end FuchsiaTradeNurseText: - TX_CABLE_CLUB_RECEPTIONIST + script_cable_club_receptionist FuchsiaPokecenterText5: - TX_ASM - callab PokecenterChanseyText + text_asm + callfar PokecenterChanseyText jp TextScriptEnd diff --git a/scripts/GameCorner.asm b/scripts/GameCorner.asm index e2b7690c1..b2d4d96ac 100755 --- a/scripts/GameCorner.asm +++ b/scripts/GameCorner.asm @@ -12,7 +12,7 @@ CeladonGameCornerScript_48bcf: res 6, [hl] ret z call Random - ld a, [hRandomAdd] + ldh a, [hRandomAdd] cp $7 jr nc, .asm_48be2 ld a, $8 @@ -57,29 +57,29 @@ CeladonGameCornerScript1: ld a, $f0 ld [wJoyIgnore], a ld a, $d - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $b - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call SetSpriteMovementBytesToFF ld de, MovementData_48c5a ld a, [wYCoord] - cp $6 + cp 6 jr nz, .asm_48c43 ld de, MovementData_48c63 jr .asm_48c4d .asm_48c43 ld a, [wXCoord] - cp $8 + cp 8 jr nz, .pikachu ld de, MovementData_48c63 jr .asm_48c4d .pikachu - callab Func_f1f23 + callfar Func_f1f23 ld de, MovementData_48c5a .asm_48c4d ld a, $b - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call MoveSprite ld a, $2 ld [wGameCornerCurScript], a @@ -94,7 +94,7 @@ MovementData_48c5a: db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_RIGHT - db $FF + db -1 ; end MovementData_48c63: db NPC_MOVEMENT_RIGHT @@ -102,7 +102,7 @@ MovementData_48c63: db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_RIGHT - db $FF + db -1 ; end CeladonGameCornerScript2: ld a, [wd730] @@ -136,11 +136,11 @@ GameCorner_TextPointers: dw CeladonGameCornerText13 CeladonGameCornerText1: - TX_FAR _CeladonGameCornerText1 - db "@" + text_far _CeladonGameCornerText1 + text_end CeladonGameCornerText2: - TX_ASM + text_asm call CeladonGameCornerScript_48f1e ld hl, CeladonGameCornerText_48d22 call PrintText @@ -154,29 +154,29 @@ CeladonGameCornerText2: call Has9990Coins jr nc, .asm_48d14 xor a - ld [hMoney], a - ld [hMoney + 2], a + ldh [hMoney], a + ldh [hMoney + 2], a ld a, $10 - ld [hMoney + 1], a + ldh [hMoney + 1], a call HasEnoughMoney jr nc, .asm_48cdb ld hl, CeladonGameCornerText_48d31 jr .asm_48d1c .asm_48cdb xor a - ld [hMoney], a - ld [hMoney + 2], a + ldh [hMoney], a + ldh [hMoney + 2], a ld a, $10 - ld [hMoney + 1], a + ldh [hMoney + 1], a ld hl, hMoney + 2 ld de, wPlayerMoney + 2 ld c, $3 predef SubBCDPredef xor a - ld [hUnusedCoinsByte], a - ld [hCoins], a + ldh [hUnusedCoinsByte], a + ldh [hCoins], a ld a, $50 - ld [hCoins + 1], a + ldh [hCoins + 1], a ld de, wPlayerCoins + 1 ld hl, hCoins + 1 ld c, $2 @@ -197,39 +197,39 @@ CeladonGameCornerText2: jp TextScriptEnd CeladonGameCornerText_48d22: - TX_FAR _CeladonGameCornerText_48d22 - db "@" + text_far _CeladonGameCornerText_48d22 + text_end CeladonGameCornerText_48d27: - TX_FAR _CeladonGameCornerText_48d27 - db "@" + text_far _CeladonGameCornerText_48d27 + text_end CeladonGameCornerText_48d2c: - TX_FAR _CeladonGameCornerText_48d2c - db "@" + text_far _CeladonGameCornerText_48d2c + text_end CeladonGameCornerText_48d31: - TX_FAR _CeladonGameCornerText_48d31 - db "@" + text_far _CeladonGameCornerText_48d31 + text_end CeladonGameCornerText_48d36: - TX_FAR _CeladonGameCornerText_48d36 - db "@" + text_far _CeladonGameCornerText_48d36 + text_end CeladonGameCornerText_48d3b: - TX_FAR _CeladonGameCornerText_48d3b - db "@" + text_far _CeladonGameCornerText_48d3b + text_end CeladonGameCornerText3: - TX_FAR _CeladonGameCornerText3 - db "@" + text_far _CeladonGameCornerText3 + text_end CeladonGameCornerText4: - TX_FAR _CeladonGameCornerText4 - db "@" + text_far _CeladonGameCornerText4 + text_end CeladonGameCornerText5: - TX_ASM + text_asm CheckEvent EVENT_GOT_10_COINS jr nz, .asm_48d89 ld hl, CeladonGameCornerText_48d9c @@ -240,10 +240,10 @@ CeladonGameCornerText5: call Has9990Coins jr nc, .asm_48d8e xor a - ld [hUnusedCoinsByte], a - ld [hCoins], a + ldh [hUnusedCoinsByte], a + ldh [hCoins], a ld a, $10 - ld [hCoins + 1], a + ldh [hCoins + 1], a ld de, wPlayerCoins + 1 ld hl, hCoins + 1 ld c, $2 @@ -266,28 +266,28 @@ CeladonGameCornerText5: jp TextScriptEnd CeladonGameCornerText_48d9c: - TX_FAR _CeladonGameCornerText_48d9c - db "@" + text_far _CeladonGameCornerText_48d9c + text_end Received10CoinsText: - TX_FAR _Received10CoinsText - TX_SFX_ITEM_1 - db "@" + text_far _Received10CoinsText + sound_get_item_1 + text_end CeladonGameCornerText_48da7: - TX_FAR _CeladonGameCornerText_48da7 - db "@" + text_far _CeladonGameCornerText_48da7 + text_end CeladonGameCornerText_48dac: - TX_FAR _CeladonGameCornerText_48dac - db "@" + text_far _CeladonGameCornerText_48dac + text_end CeladonGameCornerText6: - TX_FAR _CeladonGameCornerText6 - db "@" + text_far _CeladonGameCornerText6 + text_end CeladonGameCornerText7: - TX_ASM + text_asm CheckEvent EVENT_BEAT_ERIKA ld hl, CeladonGameCornerText_48dca jr z, .asm_48dc4 @@ -297,19 +297,19 @@ CeladonGameCornerText7: jp TextScriptEnd CeladonGameCornerText_48dca: - TX_FAR _CeladonGameCornerText_48dca - db "@" + text_far _CeladonGameCornerText_48dca + text_end CeladonGameCornerText_48dcf: - TX_FAR _CeladonGameCornerText_48dcf - db "@" + text_far _CeladonGameCornerText_48dcf + text_end CeladonGameCornerText8: - TX_FAR _CeladonGameCornerText8 - db "@" + text_far _CeladonGameCornerText8 + text_end CeladonGameCornerText9: - TX_ASM + text_asm CheckEvent EVENT_GOT_20_COINS_2 jr nz, .asm_48e13 ld hl, CeladonGameCornerText_48e26 @@ -320,10 +320,10 @@ CeladonGameCornerText9: call Has9990Coins jr nc, .asm_48e18 xor a - ld [hUnusedCoinsByte], a - ld [hCoins], a + ldh [hUnusedCoinsByte], a + ldh [hCoins], a ld a, $20 - ld [hCoins + 1], a + ldh [hCoins + 1], a ld de, wPlayerCoins + 1 ld hl, hCoins + 1 ld c, $2 @@ -344,24 +344,24 @@ CeladonGameCornerText9: jp TextScriptEnd CeladonGameCornerText_48e26: - TX_FAR _CeladonGameCornerText_48e26 - db "@" + text_far _CeladonGameCornerText_48e26 + text_end Received20CoinsText: - TX_FAR _Received20CoinsText - TX_SFX_ITEM_1 - db "@" + text_far _Received20CoinsText + sound_get_item_1 + text_end CeladonGameCornerText_48e31: - TX_FAR _CeladonGameCornerText_48e31 - db "@" + text_far _CeladonGameCornerText_48e31 + text_end CeladonGameCornerText_48e36: - TX_FAR _CeladonGameCornerText_48e36 - db "@" + text_far _CeladonGameCornerText_48e36 + text_end CeladonGameCornerText10: - TX_ASM + text_asm CheckEvent EVENT_GOT_20_COINS jr nz, .asm_48e75 ld hl, CeladonGameCornerText_48e88 @@ -372,10 +372,10 @@ CeladonGameCornerText10: call Has9990Coins jr z, .asm_48e7a xor a - ld [hUnusedCoinsByte], a - ld [hCoins], a + ldh [hUnusedCoinsByte], a + ldh [hCoins], a ld a, $20 - ld [hCoins + 1], a + ldh [hCoins + 1], a ld de, wPlayerCoins + 1 ld hl, hCoins + 1 ld c, $2 @@ -396,24 +396,24 @@ CeladonGameCornerText10: jp TextScriptEnd CeladonGameCornerText_48e88: - TX_FAR _CeladonGameCornerText_48e88 - db "@" + text_far _CeladonGameCornerText_48e88 + text_end CeladonGameCornerText_48e8d: - TX_FAR _CeladonGameCornerText_48e8d - TX_SFX_ITEM_1 - db "@" + text_far _CeladonGameCornerText_48e8d + sound_get_item_1 + text_end CeladonGameCornerText_48e93: - TX_FAR _CeladonGameCornerText_48e93 - db "@" + text_far _CeladonGameCornerText_48e93 + text_end CeladonGameCornerText_48e98: - TX_FAR _CeladonGameCornerText_48e98 - db "@" + text_far _CeladonGameCornerText_48e98 + text_end CeladonGameCornerText11: - TX_ASM + text_asm ld hl, CeladonGameCornerText_48ece call PrintText ld hl, wd72d @@ -422,32 +422,32 @@ CeladonGameCornerText11: ld hl, CeladonGameCornerText_48ed3 ld de, CeladonGameCornerText_48ed3 call SaveEndBattleTextPointers - ld a, [H_SPRITEINDEX] + ldh a, [hSpriteIndex] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters xor a - ld [hJoyHeld], a - ld [hJoyPressed], a - ld [hJoyReleased], a + ldh [hJoyHeld], a + ldh [hJoyPressed], a + ldh [hJoyReleased], a ld a, $1 ld [wGameCornerCurScript], a jp TextScriptEnd CeladonGameCornerText_48ece: - TX_FAR _CeladonGameCornerText_48ece - db "@" + text_far _CeladonGameCornerText_48ece + text_end CeladonGameCornerText_48ed3: - TX_FAR _CeladonGameCornerText_48ed3 - db "@" + text_far _CeladonGameCornerText_48ed3 + text_end CeladonGameCornerText13: - TX_FAR _CeladonGameCornerText_48ed8 - db "@" + text_far _CeladonGameCornerText_48ed8 + text_end CeladonGameCornerText12: - TX_ASM + text_asm ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, CeladonGameCornerText_48f09 @@ -464,44 +464,44 @@ CeladonGameCornerText12: jp TextScriptEnd CeladonGameCornerText_48f09: - TX_FAR _CeladonGameCornerText_48f09 - TX_ASM + text_far _CeladonGameCornerText_48f09 + text_asm ld a, SFX_SWITCH call PlaySound call WaitForSoundToFinish jp TextScriptEnd CeladonGameCornerText_48f19: - TX_FAR _CeladonGameCornerText_48f19 - db "@" + text_far _CeladonGameCornerText_48f19 + text_end CeladonGameCornerScript_48f1e: ld hl, wd730 set 6, [hl] - coord hl, 11, 0 + hlcoord 11, 0 lb bc, 5, 7 call TextBoxBorder call UpdateSprites - coord hl, 12, 1 + hlcoord 12, 1 lb bc, 4, 7 call ClearScreenArea - coord hl, 12, 2 + hlcoord 12, 2 ld de, GameCornerMoneyText call PlaceString - coord hl, 12, 3 + hlcoord 12, 3 ld de, GameCornerBlankText1 call PlaceString - coord hl, 12, 3 + hlcoord 12, 3 ld de, wPlayerMoney ld c, 3 | MONEY_SIGN | LEADING_ZEROES call PrintBCDNumber - coord hl, 12, 4 + hlcoord 12, 4 ld de, GameCornerCoinText call PlaceString - coord hl, 12, 5 + hlcoord 12, 5 ld de, GameCornerBlankText2 call PlaceString - coord hl, 15, 5 + hlcoord 15, 5 ld de, wPlayerCoins ld c, $82 call PrintBCDNumber @@ -523,7 +523,7 @@ GameCornerBlankText2: Has9990Coins: ld a, $99 - ld [hCoins], a + ldh [hCoins], a ld a, $90 - ld [hCoins + 1], a + ldh [hCoins + 1], a jp HasEnoughCoins diff --git a/scripts/GameCorner2.asm b/scripts/GameCorner2.asm index f8d25905e..3571e9d9f 100755 --- a/scripts/GameCorner2.asm +++ b/scripts/GameCorner2.asm @@ -1,4 +1,4 @@ -Func_f1f23: +Func_f1f23:: ld hl, PikachuMovementData_f1f2c ld b, SPRITE_FACING_DOWN call TryApplyPikachuMovementData diff --git a/scripts/GameCornerPrizeRoom.asm b/scripts/GameCornerPrizeRoom.asm index e6cf6f0d7..c8dddf719 100755 --- a/scripts/GameCornerPrizeRoom.asm +++ b/scripts/GameCornerPrizeRoom.asm @@ -9,12 +9,12 @@ GameCornerPrizeRoom_TextPointers: dw CeladonPrizeRoomText3 CeladonPrizeRoomText1: - TX_FAR _CeladonPrizeRoomText1 - db "@" + text_far _CeladonPrizeRoomText1 + text_end CeladonPrizeRoomText2: - TX_FAR _CeladonPrizeRoomText2 - db "@" + text_far _CeladonPrizeRoomText2 + text_end CeladonPrizeRoomText3: - TX_PRIZE_VENDOR + script_prize_vendor diff --git a/scripts/HallOfFame.asm b/scripts/HallOfFame.asm index af424089b..fd13719b9 100755 --- a/scripts/HallOfFame.asm +++ b/scripts/HallOfFame.asm @@ -45,7 +45,7 @@ HallofFameRoomScript2: ld [wHallOfFameCurScript], a ld a, PALLET_TOWN ld [wLastBlackoutMap], a - callba SaveSAVtoSRAM + farcall SaveSAVtoSRAM ld b, 5 .delayLoop ld c, 600 / 5 @@ -69,8 +69,8 @@ HallofFameRoomScript0: ret RLEMovement5a528: - db D_UP,$5 - db $ff + db D_UP, 5 + db -1 ; end HallofFameRoomScript1: ld a, [wSimulatedJoypadStatesIndex] @@ -79,10 +79,10 @@ HallofFameRoomScript1: ld a, PLAYER_DIR_RIGHT ld [wPlayerMovingDirection], a ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call SetSpriteMovementBytesToFF ld a, SPRITE_FACING_LEFT - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay call Delay3 xor a @@ -90,7 +90,7 @@ HallofFameRoomScript1: inc a ; PLAYER_DIR_RIGHT ld [wPlayerMovingDirection], a ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff ld [wJoyIgnore], a @@ -105,5 +105,5 @@ HallOfFame_TextPointers: dw HallofFameRoomText1 HallofFameRoomText1: - TX_FAR _HallofFameRoomText1 - db "@" + text_far _HallofFameRoomText1 + text_end diff --git a/scripts/IndigoPlateauLobby.asm b/scripts/IndigoPlateauLobby.asm index d618d1557..0a532d9aa 100755 --- a/scripts/IndigoPlateauLobby.asm +++ b/scripts/IndigoPlateauLobby.asm @@ -23,20 +23,20 @@ IndigoPlateauLobby_TextPointers: dw IndigoPlateauLobbyText6 IndigoHealNurseText: - TX_POKECENTER_NURSE + script_pokecenter_nurse IndigoPlateauLobbyText2: - TX_FAR _IndigoPlateauLobbyText2 - db "@" + text_far _IndigoPlateauLobbyText2 + text_end IndigoPlateauLobbyText3: - TX_FAR _IndigoPlateauLobbyText3 - db "@" + text_far _IndigoPlateauLobbyText3 + text_end IndigoTradeNurseText: - TX_CABLE_CLUB_RECEPTIONIST + script_cable_club_receptionist IndigoPlateauLobbyText6: - TX_ASM - callab PokecenterChanseyText + text_asm + callfar PokecenterChanseyText jp TextScriptEnd diff --git a/scripts/LancesRoom.asm b/scripts/LancesRoom.asm index aec555a31..68d2020ea 100755 --- a/scripts/LancesRoom.asm +++ b/scripts/LancesRoom.asm @@ -58,12 +58,12 @@ LanceScript0: call ArePlayerCoordsInArray jp nc, CheckFightingMapTrainers xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, [wCoordIndex] cp $3 ; Is player standing next to Lance's sprite? jr nc, .notStandingNextToLance ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a jp DisplayTextID .notStandingNextToLance cp $5 ; Is player standing on the entrance staircase? @@ -77,12 +77,12 @@ LanceScript0: jp LanceShowOrHideEntranceBlocks LanceTriggerMovementCoords: - db $01,$05 - db $02,$06 - db $0B,$05 - db $0B,$06 - db $10,$18 - db $FF + dbmapcoord 5, 1 + dbmapcoord 6, 2 + dbmapcoord 5, 11 + dbmapcoord 6, 11 + dbmapcoord 24, 16 + db -1 ; end LanceScript2: call EndTrainerBattle @@ -90,7 +90,7 @@ LanceScript2: cp $ff jp z, ResetLanceScript ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a jp DisplayTextID WalkToLance: @@ -109,11 +109,11 @@ WalkToLance: ret WalkToLance_RLEList: - db D_UP, $0D - db D_LEFT, $0C - db D_DOWN, $07 - db D_LEFT, $06 - db $FF + db D_UP, 13 + db D_LEFT, 12 + db D_DOWN, 7 + db D_LEFT, 6 + db -1 ; end LanceScript3: ld a, [wSimulatedJoypadStatesIndex] @@ -130,32 +130,25 @@ LancesRoom_TextPointers: dw LanceText1 LanceTrainerHeader0: - dbEventFlagBit EVENT_BEAT_LANCES_ROOM_TRAINER_0 - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_LANCES_ROOM_TRAINER_0 - dw LanceBeforeBattleText ; TextBeforeBattle - dw LanceAfterBattleText ; TextAfterBattle - dw LanceEndBattleText ; TextEndBattle - dw LanceEndBattleText ; TextEndBattle - - db $ff + trainer EVENT_BEAT_LANCES_ROOM_TRAINER_0, 0, LanceBeforeBattleText, LanceEndBattleText, LanceAfterBattleText + db -1 ; end LanceText1: - TX_ASM + text_asm ld hl, LanceTrainerHeader0 call TalkToTrainer jp TextScriptEnd LanceBeforeBattleText: - TX_FAR _LanceBeforeBattleText - db "@" + text_far _LanceBeforeBattleText + text_end LanceEndBattleText: - TX_FAR _LanceEndBattleText - db "@" + text_far _LanceEndBattleText + text_end LanceAfterBattleText: - TX_FAR _LanceAfterBattleText - TX_ASM + text_far _LanceAfterBattleText + text_asm SetEvent EVENT_BEAT_LANCE jp TextScriptEnd diff --git a/scripts/LavenderCuboneHouse.asm b/scripts/LavenderCuboneHouse.asm index ff5aa732f..69d74edeb 100755 --- a/scripts/LavenderCuboneHouse.asm +++ b/scripts/LavenderCuboneHouse.asm @@ -7,29 +7,29 @@ LavenderCuboneHouse_TextPointers: dw LavenderHouse2Text2 LavenderHouse2Text1: - TX_FAR _LavenderHouse2Text1 - TX_ASM + text_far _LavenderHouse2Text1 + text_asm ld a, CUBONE call PlayCry jp TextScriptEnd LavenderHouse2Text2: - TX_ASM + text_asm CheckEvent EVENT_RESCUED_MR_FUJI - jr nz, .asm_65711 + jr nz, .rescued_mr_fuji ld hl, LavenderHouse2Text_1d9dc call PrintText - jr .asm_64be1 -.asm_65711 + jr .done +.rescued_mr_fuji ld hl, LavenderHouse2Text_1d9e1 call PrintText -.asm_64be1 +.done jp TextScriptEnd LavenderHouse2Text_1d9dc: - TX_FAR _LavenderHouse2Text_1d9dc - db "@" + text_far _LavenderHouse2Text_1d9dc + text_end LavenderHouse2Text_1d9e1: - TX_FAR _LavenderHouse2Text_1d9e1 - db "@" + text_far _LavenderHouse2Text_1d9e1 + text_end diff --git a/scripts/LavenderMart.asm b/scripts/LavenderMart.asm index 47330e5db..2b67aaa69 100755 --- a/scripts/LavenderMart.asm +++ b/scripts/LavenderMart.asm @@ -7,11 +7,11 @@ LavenderMart_TextPointers: dw LavenderMartText3 LavenderMartText2: - TX_FAR _LavenderMartText2 - db "@" + text_far _LavenderMartText2 + text_end LavenderMartText3: - TX_ASM + text_asm CheckEvent EVENT_RESCUED_MR_FUJI jr nz, .Nugget ld hl, .ReviveText @@ -24,9 +24,9 @@ LavenderMartText3: jp TextScriptEnd .ReviveText - TX_FAR _LavenderMartReviveText - db "@" + text_far _LavenderMartReviveText + text_end .NuggetText - TX_FAR _LavenderMartNuggetText - db "@" + text_far _LavenderMartNuggetText + text_end diff --git a/scripts/LavenderPokecenter.asm b/scripts/LavenderPokecenter.asm index 21270313d..a15bfcfa0 100755 --- a/scripts/LavenderPokecenter.asm +++ b/scripts/LavenderPokecenter.asm @@ -10,20 +10,20 @@ LavenderPokecenter_TextPointers: dw LavenderPokecenterText5 LavenderTradeNurseText: - TX_CABLE_CLUB_RECEPTIONIST + script_cable_club_receptionist LavenderHealNurseText: - TX_POKECENTER_NURSE + script_pokecenter_nurse LavenderPokecenterText2: - TX_FAR _LavenderPokecenterText2 - db "@" + text_far _LavenderPokecenterText2 + text_end LavenderPokecenterText3: - TX_FAR _LavenderPokecenterText3 - db "@" + text_far _LavenderPokecenterText3 + text_end LavenderPokecenterText5: - TX_ASM - callab PokecenterChanseyText + text_asm + callfar PokecenterChanseyText jp TextScriptEnd diff --git a/scripts/LavenderTown.asm b/scripts/LavenderTown.asm index c23996e9e..d0c662086 100755 --- a/scripts/LavenderTown.asm +++ b/scripts/LavenderTown.asm @@ -13,51 +13,51 @@ LavenderTown_TextPointers: dw LavenderTownText9 LavenderTownText1: - TX_ASM + text_asm ld hl, LavenderTownText_4413c call PrintText call YesNoChoice ld a, [wCurrentMenuItem] and a ld hl, LavenderTownText_44146 - jr nz, .asm_40831 + jr nz, .got_text ld hl, LavenderTownText_44141 -.asm_40831 +.got_text call PrintText jp TextScriptEnd LavenderTownText_4413c: - TX_FAR _LavenderTownText_4413c - db "@" + text_far _LavenderTownText_4413c + text_end LavenderTownText_44141: - TX_FAR _LavenderTownText_44141 - db "@" + text_far _LavenderTownText_44141 + text_end LavenderTownText_44146: - TX_FAR _LavenderTownText_44146 - db "@" + text_far _LavenderTownText_44146 + text_end LavenderTownText2: - TX_FAR _LavenderTownText2 - db "@" + text_far _LavenderTownText2 + text_end LavenderTownText3: - TX_FAR _LavenderTownText3 - db "@" + text_far _LavenderTownText3 + text_end LavenderTownText4: - TX_FAR _LavenderTownText4 - db "@" + text_far _LavenderTownText4 + text_end LavenderTownText5: - TX_FAR _LavenderTownText5 - db "@" + text_far _LavenderTownText5 + text_end LavenderTownText8: - TX_FAR _LavenderTownText8 - db "@" + text_far _LavenderTownText8 + text_end LavenderTownText9: - TX_FAR _LavenderTownText9 - db "@" + text_far _LavenderTownText9 + text_end diff --git a/scripts/LoreleisRoom.asm b/scripts/LoreleisRoom.asm index 811423776..8e9730fff 100755 --- a/scripts/LoreleisRoom.asm +++ b/scripts/LoreleisRoom.asm @@ -65,8 +65,8 @@ LoreleiScript0: call ArePlayerCoordsInArray jp nc, CheckFightingMapTrainers xor a - ld [hJoyPressed], a - ld [hJoyHeld], a + ldh [hJoyPressed], a + ldh [hJoyHeld], a ld [wSimulatedJoypadStatesEnd], a ld [wSimulatedJoypadStatesIndex], a ld a, [wCoordIndex] @@ -76,7 +76,7 @@ LoreleiScript0: jr z, LoreleiScriptWalkIntoRoom .stopPlayerFromLeaving ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ; "Don't run away!" ld a, D_UP ld [wSimulatedJoypadStatesEnd], a @@ -89,11 +89,11 @@ LoreleiScript0: ret LoreleiEntranceCoords: - db $0A,$04 - db $0A,$05 - db $0B,$04 - db $0B,$05 - db $FF + dbmapcoord 4, 10 + dbmapcoord 5, 10 + dbmapcoord 4, 11 + dbmapcoord 5, 11 + db -1 ; end LoreleiScript3: ld a, [wSimulatedJoypadStatesIndex] @@ -112,7 +112,7 @@ LoreleiScript2: cp $ff jp z, ResetLoreleiScript ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a jp DisplayTextID LoreleisRoom_TextPointers: @@ -120,34 +120,27 @@ LoreleisRoom_TextPointers: dw LoreleiDontRunAwayText LoreleiTrainerHeader0: - dbEventFlagBit EVENT_BEAT_LORELEIS_ROOM_TRAINER_0 - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_LORELEIS_ROOM_TRAINER_0 - dw LoreleiBeforeBattleText ; TextBeforeBattle - dw LoreleiAfterBattleText ; TextAfterBattle - dw LoreleiEndBattleText ; TextEndBattle - dw LoreleiEndBattleText ; TextEndBattle - - db $ff + trainer EVENT_BEAT_LORELEIS_ROOM_TRAINER_0, 0, LoreleiBeforeBattleText, LoreleiEndBattleText, LoreleiAfterBattleText + db -1 ; end LoreleiText1: - TX_ASM + text_asm ld hl, LoreleiTrainerHeader0 call TalkToTrainer jp TextScriptEnd LoreleiBeforeBattleText: - TX_FAR _LoreleiBeforeBattleText - db "@" + text_far _LoreleiBeforeBattleText + text_end LoreleiEndBattleText: - TX_FAR _LoreleiEndBattleText - db "@" + text_far _LoreleiEndBattleText + text_end LoreleiAfterBattleText: - TX_FAR _LoreleiAfterBattleText - db "@" + text_far _LoreleiAfterBattleText + text_end LoreleiDontRunAwayText: - TX_FAR _LoreleiDontRunAwayText - db "@" + text_far _LoreleiDontRunAwayText + text_end diff --git a/scripts/MrFujisHouse.asm b/scripts/MrFujisHouse.asm index 98190cd80..3ef3017aa 100755 --- a/scripts/MrFujisHouse.asm +++ b/scripts/MrFujisHouse.asm @@ -11,102 +11,102 @@ MrFujisHouse_TextPointers: dw LavenderHouse1Text6 LavenderHouse1Text1: - TX_ASM + text_asm CheckEvent EVENT_RESCUED_MR_FUJI - jr nz, .asm_72e5d + jr nz, .rescued_mr_fuji ld hl, LavenderHouse1Text_1d8d1 call PrintText - jr .asm_6957f -.asm_72e5d + jr .done +.rescued_mr_fuji ld hl, LavenderHouse1Text_1d8d6 call PrintText -.asm_6957f +.done jp TextScriptEnd LavenderHouse1Text_1d8d1: - TX_FAR _LavenderHouse1Text_1d8d1 - db "@" + text_far _LavenderHouse1Text_1d8d1 + text_end LavenderHouse1Text_1d8d6: - TX_FAR _LavenderHouse1Text_1d8d6 - db "@" + text_far _LavenderHouse1Text_1d8d6 + text_end LavenderHouse1Text2: - TX_ASM + text_asm CheckEvent EVENT_RESCUED_MR_FUJI - jr nz, .asm_06470 + jr nz, .rescued_mr_fuji ld hl, LavenderHouse1Text_1d8f4 call PrintText - jr .asm_3d208 -.asm_06470 + jr .done +.rescued_mr_fuji ld hl, LavenderHouse1Text_1d8f9 call PrintText -.asm_3d208 +.done jp TextScriptEnd LavenderHouse1Text_1d8f4: - TX_FAR _LavenderHouse1Text_1d8f4 - db "@" + text_far _LavenderHouse1Text_1d8f4 + text_end LavenderHouse1Text_1d8f9: - TX_FAR _LavenderHouse1Text_1d8f9 - db "@" + text_far _LavenderHouse1Text_1d8f9 + text_end LavenderHouse1Text3: - TX_FAR _LavenderHouse1Text3 - TX_ASM + text_far _LavenderHouse1Text3 + text_asm ld a, PSYDUCK call PlayCry jp TextScriptEnd LavenderHouse1Text4: - TX_FAR _LavenderHouse1Text4 - TX_ASM + text_far _LavenderHouse1Text4 + text_asm ld a, NIDORINO call PlayCry jp TextScriptEnd LavenderHouse1Text5: - TX_ASM + text_asm CheckEvent EVENT_GOT_POKE_FLUTE - jr nz, .asm_15ac2 + jr nz, .got_item ld hl, LavenderHouse1Text_1d94c call PrintText lb bc, POKE_FLUTE, 1 call GiveItem - jr nc, .BagFull + jr nc, .bag_full ld hl, ReceivedFluteText call PrintText SetEvent EVENT_GOT_POKE_FLUTE - jr .asm_da749 -.BagFull + jr .done +.bag_full ld hl, FluteNoRoomText call PrintText - jr .asm_da749 -.asm_15ac2 + jr .done +.got_item ld hl, MrFujiAfterFluteText call PrintText -.asm_da749 +.done jp TextScriptEnd LavenderHouse1Text_1d94c: - TX_FAR _LavenderHouse1Text_1d94c - db "@" + text_far _LavenderHouse1Text_1d94c + text_end ReceivedFluteText: - TX_FAR _ReceivedFluteText - TX_SFX_KEY_ITEM - TX_FAR _FluteExplanationText - db "@" + text_far _ReceivedFluteText + sound_get_key_item + text_far _FluteExplanationText + text_end FluteNoRoomText: - TX_FAR _FluteNoRoomText - db "@" + text_far _FluteNoRoomText + text_end MrFujiAfterFluteText: - TX_FAR _MrFujiAfterFluteText - db "@" + text_far _MrFujiAfterFluteText + text_end LavenderHouse1Text6: - TX_FAR _LavenderHouse1Text6 - db "@" + text_far _LavenderHouse1Text6 + text_end diff --git a/scripts/MrPsychicsHouse.asm b/scripts/MrPsychicsHouse.asm index 7d4f54c08..399edfbd4 100755 --- a/scripts/MrPsychicsHouse.asm +++ b/scripts/MrPsychicsHouse.asm @@ -5,41 +5,41 @@ MrPsychicsHouse_TextPointers: dw SaffronHouse2Text1 SaffronHouse2Text1: - TX_ASM + text_asm CheckEvent EVENT_GOT_TM29 - jr nz, .asm_9e72b + jr nz, .got_item ld hl, TM29PreReceiveText call PrintText - lb bc, TM_29, 1 + lb bc, TM_PSYCHIC_M, 1 call GiveItem - jr nc, .BagFull + jr nc, .bag_full ld hl, ReceivedTM29Text call PrintText SetEvent EVENT_GOT_TM29 - jr .asm_fe4e1 -.BagFull + jr .done +.bag_full ld hl, TM29NoRoomText call PrintText - jr .asm_fe4e1 -.asm_9e72b + jr .done +.got_item ld hl, TM29ExplanationText call PrintText -.asm_fe4e1 +.done jp TextScriptEnd TM29PreReceiveText: - TX_FAR _TM29PreReceiveText - db "@" + text_far _TM29PreReceiveText + text_end ReceivedTM29Text: - TX_FAR _ReceivedTM29Text - TX_SFX_ITEM_1 - db "@" + text_far _ReceivedTM29Text + sound_get_item_1 + text_end TM29ExplanationText: - TX_FAR _TM29ExplanationText - db "@" + text_far _TM29ExplanationText + text_end TM29NoRoomText: - TX_FAR _TM29NoRoomText - db "@" + text_far _TM29NoRoomText + text_end diff --git a/scripts/MtMoon1F.asm b/scripts/MtMoon1F.asm index cb1204207..2653016fe 100755 --- a/scripts/MtMoon1F.asm +++ b/scripts/MtMoon1F.asm @@ -29,191 +29,142 @@ MtMoon1F_TextPointers: dw MtMoon1Text14 MtMoon1TrainerHeader0: - dbEventFlagBit EVENT_BEAT_MT_MOON_1_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_MT_MOON_1_TRAINER_0 - dw MtMoon1BattleText2 ; TextBeforeBattle - dw MtMoon1AfterBattleText2 ; TextAfterBattle - dw MtMoon1EndBattleText2 ; TextEndBattle - dw MtMoon1EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_MT_MOON_1_TRAINER_0, 2, MtMoon1BattleText2, MtMoon1EndBattleText2, MtMoon1AfterBattleText2 MtMoon1TrainerHeader1: - dbEventFlagBit EVENT_BEAT_MT_MOON_1_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_MT_MOON_1_TRAINER_1 - dw MtMoon1BattleText3 ; TextBeforeBattle - dw MtMoon1AfterBattleText3 ; TextAfterBattle - dw MtMoon1EndBattleText3 ; TextEndBattle - dw MtMoon1EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_MT_MOON_1_TRAINER_1, 3, MtMoon1BattleText3, MtMoon1EndBattleText3, MtMoon1AfterBattleText3 MtMoon1TrainerHeader2: - dbEventFlagBit EVENT_BEAT_MT_MOON_1_TRAINER_2 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_MT_MOON_1_TRAINER_2 - dw MtMoon1BattleText4 ; TextBeforeBattle - dw MtMoon1AfterBattleText4 ; TextAfterBattle - dw MtMoon1EndBattleText4 ; TextEndBattle - dw MtMoon1EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_MT_MOON_1_TRAINER_2, 3, MtMoon1BattleText4, MtMoon1EndBattleText4, MtMoon1AfterBattleText4 MtMoon1TrainerHeader3: - dbEventFlagBit EVENT_BEAT_MT_MOON_1_TRAINER_3 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_MT_MOON_1_TRAINER_3 - dw MtMoon1BattleText5 ; TextBeforeBattle - dw MtMoon1AfterBattleText5 ; TextAfterBattle - dw MtMoon1EndBattleText5 ; TextEndBattle - dw MtMoon1EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_MT_MOON_1_TRAINER_3, 3, MtMoon1BattleText5, MtMoon1EndBattleText5, MtMoon1AfterBattleText5 MtMoon1TrainerHeader4: - dbEventFlagBit EVENT_BEAT_MT_MOON_1_TRAINER_4 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_MT_MOON_1_TRAINER_4 - dw MtMoon1BattleText6 ; TextBeforeBattle - dw MtMoon1AfterBattleText6 ; TextAfterBattle - dw MtMoon1EndBattleText6 ; TextEndBattle - dw MtMoon1EndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_MT_MOON_1_TRAINER_4, 3, MtMoon1BattleText6, MtMoon1EndBattleText6, MtMoon1AfterBattleText6 MtMoon1TrainerHeader5: - dbEventFlagBit EVENT_BEAT_MT_MOON_1_TRAINER_5 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_MT_MOON_1_TRAINER_5 - dw MtMoon1BattleText7 ; TextBeforeBattle - dw MtMoon1AfterBattleText7 ; TextAfterBattle - dw MtMoon1EndBattleText7 ; TextEndBattle - dw MtMoon1EndBattleText7 ; TextEndBattle - + trainer EVENT_BEAT_MT_MOON_1_TRAINER_5, 3, MtMoon1BattleText7, MtMoon1EndBattleText7, MtMoon1AfterBattleText7 MtMoon1TrainerHeader6: - dbEventFlagBit EVENT_BEAT_MT_MOON_1_TRAINER_6 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_MT_MOON_1_TRAINER_6 - dw MtMoon1BattleText8 ; TextBeforeBattle - dw MtMoon1AfterBattleText8 ; TextAfterBattle - dw MtMoon1EndBattleText8 ; TextEndBattle - dw MtMoon1EndBattleText8 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_MT_MOON_1_TRAINER_6, 3, MtMoon1BattleText8, MtMoon1EndBattleText8, MtMoon1AfterBattleText8 + db -1 ; end MtMoon1Text1: - TX_ASM + text_asm ld hl, MtMoon1TrainerHeader0 jr MtMoon1TalkToTrainer MtMoon1Text2: - TX_ASM + text_asm ld hl, MtMoon1TrainerHeader1 jr MtMoon1TalkToTrainer MtMoon1Text3: - TX_ASM + text_asm ld hl, MtMoon1TrainerHeader2 jr MtMoon1TalkToTrainer MtMoon1Text4: - TX_ASM + text_asm ld hl, MtMoon1TrainerHeader3 jr MtMoon1TalkToTrainer MtMoon1Text5: - TX_ASM + text_asm ld hl, MtMoon1TrainerHeader4 jr MtMoon1TalkToTrainer MtMoon1Text6: - TX_ASM + text_asm ld hl, MtMoon1TrainerHeader5 jr MtMoon1TalkToTrainer MtMoon1Text7: - TX_ASM + text_asm ld hl, MtMoon1TrainerHeader6 MtMoon1TalkToTrainer: call TalkToTrainer jp TextScriptEnd MtMoon1BattleText2: - TX_FAR _MtMoon1BattleText2 - db "@" + text_far _MtMoon1BattleText2 + text_end MtMoon1EndBattleText2: - TX_FAR _MtMoon1EndBattleText2 - db "@" + text_far _MtMoon1EndBattleText2 + text_end MtMoon1AfterBattleText2: - TX_FAR _MtMoon1AfterBattleText2 - db "@" + text_far _MtMoon1AfterBattleText2 + text_end MtMoon1BattleText3: - TX_FAR _MtMoon1BattleText3 - db "@" + text_far _MtMoon1BattleText3 + text_end MtMoon1EndBattleText3: - TX_FAR _MtMoon1EndBattleText3 - db "@" + text_far _MtMoon1EndBattleText3 + text_end MtMoon1AfterBattleText3: - TX_FAR _MtMoon1AfterBattleText3 - db "@" + text_far _MtMoon1AfterBattleText3 + text_end MtMoon1BattleText4: - TX_FAR _MtMoon1BattleText4 - db "@" + text_far _MtMoon1BattleText4 + text_end MtMoon1EndBattleText4: - TX_FAR _MtMoon1EndBattleText4 - db "@" + text_far _MtMoon1EndBattleText4 + text_end MtMoon1AfterBattleText4: - TX_FAR _MtMoon1AfterBattleText4 - db "@" + text_far _MtMoon1AfterBattleText4 + text_end MtMoon1BattleText5: - TX_FAR _MtMoon1BattleText5 - db "@" + text_far _MtMoon1BattleText5 + text_end MtMoon1EndBattleText5: - TX_FAR _MtMoon1EndBattleText5 - db "@" + text_far _MtMoon1EndBattleText5 + text_end MtMoon1AfterBattleText5: - TX_FAR _MtMoon1AfterBattleText5 - db "@" + text_far _MtMoon1AfterBattleText5 + text_end MtMoon1BattleText6: - TX_FAR _MtMoon1BattleText6 - db "@" + text_far _MtMoon1BattleText6 + text_end MtMoon1EndBattleText6: - TX_FAR _MtMoon1EndBattleText6 - db "@" + text_far _MtMoon1EndBattleText6 + text_end MtMoon1AfterBattleText6: - TX_FAR _MtMoon1AfterBattleText6 - db "@" + text_far _MtMoon1AfterBattleText6 + text_end MtMoon1BattleText7: - TX_FAR _MtMoon1BattleText7 - db "@" + text_far _MtMoon1BattleText7 + text_end MtMoon1EndBattleText7: - TX_FAR _MtMoon1EndBattleText7 - db "@" + text_far _MtMoon1EndBattleText7 + text_end MtMoon1AfterBattleText7: - TX_FAR _MtMoon1AfterBattleText7 - db "@" + text_far _MtMoon1AfterBattleText7 + text_end MtMoon1BattleText8: - TX_FAR _MtMoon1BattleText8 - db "@" + text_far _MtMoon1BattleText8 + text_end MtMoon1EndBattleText8: - TX_FAR _MtMoon1EndBattleText8 - db "@" + text_far _MtMoon1EndBattleText8 + text_end MtMoon1AfterBattleText8: - TX_FAR _MtMoon1AfterBattleText8 - db "@" + text_far _MtMoon1AfterBattleText8 + text_end MtMoon1Text14: - TX_FAR _MtMoon1Text14 - db "@" + text_far _MtMoon1Text14 + text_end diff --git a/scripts/MtMoonB1F.asm b/scripts/MtMoonB1F.asm index 779812c36..06af2dd32 100755 --- a/scripts/MtMoonB1F.asm +++ b/scripts/MtMoonB1F.asm @@ -6,5 +6,5 @@ MtMoonB1F_TextPointers: dw MtMoonText1 MtMoonText1: - TX_FAR _MtMoonText1 - db "@" + text_far _MtMoonText1 + text_end diff --git a/scripts/MtMoonB2F.asm b/scripts/MtMoonB2F.asm index cf4583d3f..a02d7d428 100755 --- a/scripts/MtMoonB2F.asm +++ b/scripts/MtMoonB2F.asm @@ -19,23 +19,23 @@ MtMoonB2F_Script: ret CoordsData_49d37: - db $05,$0B - db $05,$0C - db $05,$0D - db $05,$0E - db $06,$0B - db $06,$0C - db $06,$0D - db $06,$0E - db $07,$0B - db $07,$0C - db $07,$0D - db $07,$0E - db $08,$0B - db $08,$0C - db $08,$0D - db $08,$0E - db $FF + dbmapcoord 11, 5 + dbmapcoord 12, 5 + dbmapcoord 13, 5 + dbmapcoord 14, 5 + dbmapcoord 11, 6 + dbmapcoord 12, 6 + dbmapcoord 13, 6 + dbmapcoord 14, 6 + dbmapcoord 11, 7 + dbmapcoord 12, 7 + dbmapcoord 13, 7 + dbmapcoord 14, 7 + dbmapcoord 11, 8 + dbmapcoord 12, 8 + dbmapcoord 13, 8 + dbmapcoord 14, 8 + db -1 ; end MtMoon3Script_49cd7: CheckAndResetEvent EVENT_57E @@ -83,15 +83,15 @@ MtMoon3Script_49d28: CheckEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD jp nz, .asm_49d4b ld a, [wYCoord] - cp $8 + cp 8 jp nz, .asm_49d4b ld a, [wXCoord] - cp $d + cp 13 jp nz, .asm_49d4b xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ret @@ -115,7 +115,7 @@ MtMoon3Script3: MtMoon3Script4: ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call SetSpriteMovementBytesToFF ld hl, CoordsData_49dc7 call ArePlayerCoordsInArray @@ -147,21 +147,21 @@ MtMoon3Script4: ld de, MovementData_49ddc .asm_49db3 ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call MoveSprite ld a, $5 call MtMoon3Script_49ce5 ret CoordsData_49dc0: - db $07,$0C - db $06,$0B - db $05,$0C - db $FF + dbmapcoord 12, 7 + dbmapcoord 11, 6 + dbmapcoord 12, 5 + db -1 ; end CoordsData_49dc7: - db $07,$0C - db $FF + dbmapcoord 12, 7 + db -1 ; end PikachuMovementData_49dca: db $00 @@ -170,14 +170,14 @@ PikachuMovementData_49dca: db $3f CoordsData_49dce: - db $07,$0D - db $06,$0E - db $05,$0E - db $FF + dbmapcoord 13, 7 + dbmapcoord 14, 6 + dbmapcoord 14, 5 + db -1 ; end CoordsData_49dd5: - db $07,$0D - db $FF + dbmapcoord 13, 7 + db -1 ; end PikachuMovementData_49dd8: db $00 @@ -189,7 +189,7 @@ MovementData_49ddc: db NPC_MOVEMENT_RIGHT MovementData_49ddd: db NPC_MOVEMENT_UP - db $FF + db -1 ; end MtMoon3Script5: ld a, [wd730] @@ -200,7 +200,7 @@ MtMoon3Script5: ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld a, $b - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID CheckEvent EVENT_GOT_HELIX_FOSSIL jr z, .asm_49e1d @@ -229,7 +229,7 @@ MtMoon3Script_49e15: ld a, MUSIC_MEET_JESSIE_JAMES call PlayMusic xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $FF ^ (A_BUTTON | B_BUTTON) ld [wJoyIgnore], a ld a, HS_MT_MOON_B2F_JESSIE @@ -239,7 +239,7 @@ MtMoon3Script_49e15: ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld a, $c - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wDoNotWaitForButtonPressAfterDisplayingText], a @@ -272,7 +272,7 @@ MtMoon3Script6: ret nz call Delay3 ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld de, MovementData_f9e65 call MoveSprite ld a, $ff @@ -294,7 +294,7 @@ MtMoon3Script8: ld [wSpriteStateData1 + 2 * $10 + 9], a MtMoon3Script9: ld a, $6 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld de, MovementData_f9e66 call MoveSprite ld a, $ff @@ -318,7 +318,7 @@ MtMoon3Script11: ld a, $FF ^ (A_BUTTON | B_BUTTON) ld [wJoyIgnore], a ld a, $d - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID MtMoon3Script12: ld hl, wd72d @@ -332,7 +332,7 @@ MtMoon3Script12: ld a, $2a ld [wTrainerNo], a xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld [wJoyIgnore], a SetEvent EVENT_57E ld a, $d @@ -356,7 +356,7 @@ MtMoon3Script13: ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld a, $e - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wDoNotWaitForButtonPressAfterDisplayingText], a @@ -388,7 +388,7 @@ MtMoon3Script14: MtMoon3Script15: call PlayDefaultMusic xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld [wJoyIgnore], a SetEvent EVENT_BEAT_MT_MOON_3_TRAINER_0 ResetEventReuseHL EVENT_57E @@ -425,41 +425,20 @@ MtMoonB2F_TextPointers: dw MtMoon3Text14 MtMoon3TrainerHeader0: - dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_1 - db ($4 << 4) - dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_1 - dw MtMoon3BattleText3 - dw MtMoon3AfterBattleText3 - dw MtMoon3EndBattleText3 - dw MtMoon3EndBattleText3 - + trainer EVENT_BEAT_MT_MOON_3_TRAINER_1, 4, MtMoon3BattleText3, MtMoon3EndBattleText3, MtMoon3AfterBattleText3 MtMoon3TrainerHeader1: - dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_2 - db ($4 << 4) - dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_2 - dw MtMoon3BattleText4 - dw MtMoon3AfterBattleText4 - dw MtMoon3EndBattleText4 - dw MtMoon3EndBattleText4 - + trainer EVENT_BEAT_MT_MOON_3_TRAINER_2, 4, MtMoon3BattleText4, MtMoon3EndBattleText4, MtMoon3AfterBattleText4 MtMoon3TrainerHeader2: - dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_3 - db ($4 << 4) - dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_3 - dw MtMoon3BattleText5 - dw MtMoon3AfterBattleText5 - dw MtMoon3EndBattleText5 - dw MtMoon3EndBattleText5 - - db $FF + trainer EVENT_BEAT_MT_MOON_3_TRAINER_3, 4, MtMoon3BattleText5, MtMoon3EndBattleText5, MtMoon3AfterBattleText5 + db -1 ; end MtMoon3Text2: MtMoon3Text6: - db "@" + text_end MtMoon3Text12: - TX_FAR _MtMoonJessieJamesText1 - TX_ASM + text_far _MtMoonJessieJamesText1 + text_asm ld c, 10 call DelayFrames ld a, PLAYER_DIR_UP @@ -474,22 +453,22 @@ MtMoon3Text12: jp TextScriptEnd MtMoon3Text13: - TX_FAR _MtMoonJessieJamesText2 - db "@" + text_far _MtMoonJessieJamesText2 + text_end MtMoon3JessieJamesEndBattleText: - TX_FAR _MtMoonJessieJamesText3 - db "@" + text_far _MtMoonJessieJamesText3 + text_end MtMoon3Text14: - TX_FAR _MtMoonJessieJamesText4 - TX_ASM + text_far _MtMoonJessieJamesText4 + text_asm ld c, 64 call DelayFrames jp TextScriptEnd MtMoon3Text1: - TX_ASM + text_asm CheckEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD jr z, .asm_4a02f ; CheckEitherEventSetReuseA EVENT_GOT_DOME_FOSSIL, EVENT_GOT_HELIX_FOSSIL @@ -508,7 +487,7 @@ MtMoon3Text1: ld hl, MtMoon3SuperNerdEndBattleText ld de, MtMoon3SuperNerdEndBattleText call SaveEndBattleTextPointers - ld a, [H_SPRITEINDEX] + ldh a, [hSpriteIndex] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters @@ -523,25 +502,25 @@ MtMoon3Text1: jp TextScriptEnd MtMoon3Text3: - TX_ASM + text_asm ld hl, MtMoon3TrainerHeader0 jr MtMoon3TalkToTrainer MtMoon3Text4: - TX_ASM + text_asm ld hl, MtMoon3TrainerHeader1 jr MtMoon3TalkToTrainer MtMoon3Text5: - TX_ASM + text_asm ld hl, MtMoon3TrainerHeader2 MtMoon3TalkToTrainer: call TalkToTrainer jp TextScriptEnd MtMoon3Text7: - TX_ASM + text_asm ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, MtMoon3Text_4a0ae @@ -564,11 +543,11 @@ MtMoon3Text7: jp TextScriptEnd MtMoon3Text_4a0ae: - TX_FAR _MtMoon3Text_49f24 - db "@" + text_far _MtMoon3Text_49f24 + text_end MtMoon3Text8: - TX_ASM + text_asm ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, MtMoon3Text_4a0eb @@ -591,18 +570,18 @@ MtMoon3Text8: jp TextScriptEnd MtMoon3Text_4a0eb: - TX_FAR _MtMoon3Text_49f64 - db "@" + text_far _MtMoon3Text_49f64 + text_end MtMoon3Script_4a0f0: ld hl, MtMoon3Text_4a0f6 jp PrintText MtMoon3Text_4a0f6: - TX_FAR _MtMoon3Text_49f6f - TX_SFX_KEY_ITEM - TX_WAIT - db "@" + text_far _MtMoon3Text_49f6f + sound_get_key_item + text_waitbutton + text_end MtMoon3Script_4a0fd: ld hl, MtMoon3Text_4a106 @@ -610,64 +589,64 @@ MtMoon3Script_4a0fd: jp TextScriptEnd MtMoon3Text_4a106: - TX_FAR _MtMoon3Text_49f7f - TX_WAIT - db "@" + text_far _MtMoon3Text_49f7f + text_waitbutton + text_end MtMoon3Text_4a10c: - TX_FAR _MtMoon3Text_49f85 - db "@" + text_far _MtMoon3Text_49f85 + text_end MtMoon3SuperNerdEndBattleText: - TX_FAR _MtMoon3Text_49f8a - db "@" + text_far _MtMoon3Text_49f8a + text_end MtMoon3Text_4a116: - TX_FAR _MtMoon3Text_49f8f - db "@" + text_far _MtMoon3Text_49f8f + text_end MtMoon3Text_4a11b: - TX_FAR _MtMoon3Text_49f94 - db "@" + text_far _MtMoon3Text_49f94 + text_end MtMoon3Text11: - TX_FAR _MtMoon3Text_49f99 - TX_SFX_KEY_ITEM - db "@" + text_far _MtMoon3Text_49f99 + sound_get_key_item + text_end MtMoon3BattleText3: - TX_FAR _MtMoon3BattleText3 - db "@" + text_far _MtMoon3BattleText3 + text_end MtMoon3EndBattleText3: - TX_FAR _MtMoon3EndBattleText3 - db "@" + text_far _MtMoon3EndBattleText3 + text_end MtMoon3AfterBattleText3: - TX_FAR _MtMoon3AfterBattleText3 - db "@" + text_far _MtMoon3AfterBattleText3 + text_end MtMoon3BattleText4: - TX_FAR _MtMoon3BattleText4 - db "@" + text_far _MtMoon3BattleText4 + text_end MtMoon3EndBattleText4: - TX_FAR _MtMoon3EndBattleText4 - db "@" + text_far _MtMoon3EndBattleText4 + text_end MtMoon3AfterBattleText4: - TX_FAR _MtMoon3AfterBattleText4 - db "@" + text_far _MtMoon3AfterBattleText4 + text_end MtMoon3BattleText5: - TX_FAR _MtMoon3BattleText5 - db "@" + text_far _MtMoon3BattleText5 + text_end MtMoon3EndBattleText5: - TX_FAR _MtMoon3EndBattleText5 - db "@" + text_far _MtMoon3EndBattleText5 + text_end MtMoon3AfterBattleText5: - TX_FAR _MtMoon3AfterBattleText5 - db "@" + text_far _MtMoon3AfterBattleText5 + text_end diff --git a/scripts/MtMoonB2F_2.asm b/scripts/MtMoonB2F_2.asm index c6ec92b46..c983bb0d0 100755 --- a/scripts/MtMoonB2F_2.asm +++ b/scripts/MtMoonB2F_2.asm @@ -8,7 +8,7 @@ MtMoon3Script_4a325: ; pikachu-related function? push hl push bc - callab GetPikachuFacingDirectionAndReturnToE + callfar GetPikachuFacingDirectionAndReturnToE pop bc pop hl ld a, b @@ -20,7 +20,7 @@ MtMoon3Script_4a325: ; pikachu-related function? push af ld a, $ff ld [wUpdateSpritesEnabled], a - callab LoadPikachuShadowIntoVRAM + callfar LoadPikachuShadowIntoVRAM pop af ld [wUpdateSpritesEnabled], a pop hl diff --git a/scripts/MtMoonPokecenter.asm b/scripts/MtMoonPokecenter.asm index 773861098..302c5f197 100755 --- a/scripts/MtMoonPokecenter.asm +++ b/scripts/MtMoonPokecenter.asm @@ -12,29 +12,29 @@ MtMoonPokecenter_TextPointers: dw MtMoonPokecenterText7 MtMoonHealNurseText: - TX_POKECENTER_NURSE + script_pokecenter_nurse MtMoonPokecenterText2: - TX_FAR _MtMoonPokecenterText1 - db "@" + text_far _MtMoonPokecenterText1 + text_end MtMoonPokecenterText3: - TX_FAR _MtMoonPokecenterText3 - db "@" + text_far _MtMoonPokecenterText3 + text_end MagikarpSalesmanText: - TX_ASM - callab MagikarpSalesman + text_asm + callfar MagikarpSalesman jp TextScriptEnd MtMoonPokecenterText5: - TX_FAR _MtMoonPokecenterText5 - db "@" + text_far _MtMoonPokecenterText5 + text_end MtMoonTradeNurseText: - TX_CABLE_CLUB_RECEPTIONIST + script_cable_club_receptionist MtMoonPokecenterText7: - TX_ASM - callab PokecenterChanseyText + text_asm + callfar PokecenterChanseyText jp TextScriptEnd diff --git a/scripts/MtMoonPokecenter2.asm b/scripts/MtMoonPokecenter2.asm index 6097342b4..9abc02867 100755 --- a/scripts/MtMoonPokecenter2.asm +++ b/scripts/MtMoonPokecenter2.asm @@ -1,4 +1,4 @@ -MagikarpSalesman: +MagikarpSalesman:: CheckEvent EVENT_BOUGHT_MAGIKARP, 1 jp c, .alreadyBoughtMagikarp ld hl, .Text1 @@ -12,10 +12,10 @@ MagikarpSalesman: jp nz, .choseNo ; $000500 xor a - ld [hMoney], a - ld [hMoney + 2], a + ldh [hMoney], a + ldh [hMoney + 2], a ld a, $5 - ld [hMoney + 1], a + ldh [hMoney + 1], a call HasEnoughMoney jr nc, .enoughMoney ld hl, .NoMoneyText @@ -50,17 +50,17 @@ MagikarpSalesman: ret .Text1 - TX_FAR _MagikarpSalesmanText1 - db "@" + text_far _MagikarpSalesmanText1 + text_end .RefuseText - TX_FAR _MagikarpSalesmanNoText - db "@" + text_far _MagikarpSalesmanNoText + text_end .NoMoneyText - TX_FAR _MagikarpSalesmanNoMoneyText - db "@" + text_far _MagikarpSalesmanNoMoneyText + text_end .Text2 - TX_FAR _MagikarpSalesmanText2 - db "@" + text_far _MagikarpSalesmanText2 + text_end diff --git a/scripts/Museum1F.asm b/scripts/Museum1F.asm index fdae92932..c89eacda8 100755 --- a/scripts/Museum1F.asm +++ b/scripts/Museum1F.asm @@ -1,5 +1,5 @@ Museum1F_Script: - ld a, $1 + ld a, TRUE ld [wAutoTextBoxDrawingControl], a xor a ld [wDoNotWaitForButtonPressAfterDisplayingText], a @@ -14,19 +14,19 @@ Museum1F_ScriptPointers: Museum1FScript0: ld a, [wYCoord] - cp $4 + cp 4 ret nz ld a, [wXCoord] - cp $9 + cp 9 jr z, .asm_5c120 ld a, [wXCoord] - cp $a + cp 10 ret nz .asm_5c120 xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a jp DisplayTextID Museum1FScript1: @@ -40,26 +40,26 @@ Museum1F_TextPointers: dw Museum1FText5 Museum1FText1: - TX_ASM - callba Func_f1c1b + text_asm + farcall Func_f1c1b jp TextScriptEnd Museum1FText2: - TX_ASM - callba Func_f1d2a + text_asm + farcall Func_f1d2a jp TextScriptEnd Museum1FText3: - TX_ASM - callba Func_f1d36 + text_asm + farcall Func_f1d36 jp TextScriptEnd Museum1FText4: - TX_ASM - callba Func_f1d80 + text_asm + farcall Func_f1d80 jp TextScriptEnd Museum1FText5: - TX_ASM - callba Func_f1d8c + text_asm + farcall Func_f1d8c jp TextScriptEnd diff --git a/scripts/Museum1F2.asm b/scripts/Museum1F2.asm index 9b3df4207..512a32954 100755 --- a/scripts/Museum1F2.asm +++ b/scripts/Museum1F2.asm @@ -1,9 +1,9 @@ -Func_f1c1b: +Func_f1c1b:: ld a, [wYCoord] - cp $4 + cp 4 jr nz, .asm_f1c2c ld a, [wXCoord] - cp $d + cp 13 jp z, .asm_f1cde jr .asm_f1c48 @@ -11,7 +11,7 @@ Func_f1c1b: cp $3 jr nz, .asm_f1c38 ld a, [wXCoord] - cp a, $c + cp 12 jp z, .asm_f1cde .asm_f1c38 CheckEvent EVENT_BOUGHT_MUSEUM_TICKET @@ -33,7 +33,7 @@ Func_f1c1b: ld [wTextBoxID], a call DisplayTextBoxID xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld hl, Museum1FText_f1d02 call PrintText call YesNoChoice @@ -41,10 +41,10 @@ Func_f1c1b: and a jr nz, .asm_f1cbf xor a - ld [hMoney], a - ld [hMoney + 1], a + ldh [hMoney], a + ldh [hMoney + 1], a ld a, $50 - ld [hMoney + 2], a + ldh [hMoney + 2], a call HasEnoughMoney jr nc, .asm_f1c89 ld hl, Museum1FText_f1d0c @@ -106,106 +106,104 @@ Func_f1c1b: ret Museum1FText_f1cfd: - TX_FAR _Museum1FText_5c21a - db "@" + text_far _Museum1FText_5c21a + text_end Museum1FText_f1d02: - TX_FAR _Museum1FText_5c21f - db "@" + text_far _Museum1FText_5c21f + text_end Museum1FText_f1d07: - TX_FAR _Museum1FText_5c224 - db "@" + text_far _Museum1FText_5c224 + text_end Museum1FText_f1d0c: - TX_FAR _Museum1FText_5c229 - db "@" + text_far _Museum1FText_5c229 + text_end Museum1FText_f1d11: - TX_FAR _Museum1FText_5c22e - db "@" + text_far _Museum1FText_5c22e + text_end Museum1FText_f1d16: - TX_FAR _Museum1FText_5c233 - db "@" + text_far _Museum1FText_5c233 + text_end Museum1FText_f1d1b: - TX_FAR _Museum1FText_5c238 - db "@" + text_far _Museum1FText_5c238 + text_end Museum1FText_f1d20: - TX_FAR _Museum1FText_5c23d - db "@" + text_far _Museum1FText_5c23d + text_end Museum1FText_f1d25: - TX_FAR _Museum1FText_5c242 - db "@" + text_far _Museum1FText_5c242 + text_end -Func_f1d2a: +Func_f1d2a:: ld hl, Museum1FText_f1d31 call PrintText ret Museum1FText_f1d31: - TX_FAR _Museum1FText_5c251 - db "@" + text_far _Museum1FText_5c251 + text_end -Func_f1d36: +Func_f1d36:: CheckEvent EVENT_GOT_OLD_AMBER - jr nz, .asm_f1d64 - ld hl, Museum1FText_f1d6b + jr nz, .got_item + ld hl, Museum1FText_5c28e call PrintText lb bc, OLD_AMBER, 1 call GiveItem - jr nc, .asm_f1d5f + jr nc, .bag_full SetEvent EVENT_GOT_OLD_AMBER ld a, HS_OLD_AMBER ld [wMissableObjectIndex], a predef HideObject - ld hl, Museum1FText_f1d70 - jr .asm_f1d67 - -.asm_f1d5f - ld hl, Museum1FText_f1d7b - jr .asm_f1d67 - -.asm_f1d64 - ld hl, Museum1FText_f1d76 -.asm_f1d67 + ld hl, ReceivedOldAmberText + jr .done +.bag_full + ld hl, Museum1FText_5c29e + jr .done +.got_item + ld hl, Museum1FText_5c299 +.done call PrintText ret -Museum1FText_f1d6b: - TX_FAR _Museum1FText_5c28e - db "@" +Museum1FText_5c28e: + text_far _Museum1FText_5c28e + text_end -Museum1FText_f1d70: - TX_FAR _ReceivedOldAmberText - TX_SFX_ITEM_1 - db "@" +ReceivedOldAmberText: + text_far _ReceivedOldAmberText + sound_get_item_1 + text_end -Museum1FText_f1d76: - TX_FAR _Museum1FText_5c299 - db "@" +Museum1FText_5c299: + text_far _Museum1FText_5c299 + text_end -Museum1FText_f1d7b: - TX_FAR _Museum1FText_5c29e - db "@" +Museum1FText_5c29e: + text_far _Museum1FText_5c29e + text_end -Func_f1d80: +Func_f1d80:: ld hl, Museum1FText_f1d87 call PrintText ret Museum1FText_f1d87: - TX_FAR _Museum1FText_5c2ad - db "@" + text_far _Museum1FText_5c2ad + text_end -Func_f1d8c: +Func_f1d8c:: ld hl, Museum1FText_f1d93 call PrintText ret Museum1FText_f1d93: - TX_FAR _Museum1FText_5c2bc - db "@" + text_far _Museum1FText_5c2bc + text_end diff --git a/scripts/Museum2F.asm b/scripts/Museum2F.asm index e97b8ded7..fe02f5449 100755 --- a/scripts/Museum2F.asm +++ b/scripts/Museum2F.asm @@ -12,23 +12,23 @@ Museum2F_TextPointers: dw Museum2FText7 Museum2FText1: - TX_FAR _Museum2FText1 - db "@" + text_far _Museum2FText1 + text_end Museum2FText2: - TX_FAR _Museum2FText2 - db "@" + text_far _Museum2FText2 + text_end Museum2FText3: - TX_FAR _Museum2FText3 - db "@" + text_far _Museum2FText3 + text_end Museum2FText4: - TX_FAR _Museum2FText4 - db "@" + text_far _Museum2FText4 + text_end Museum2FText5: - TX_ASM + text_asm ld a, [wd472] bit 7, a jr nz, .asm_5c1f6 @@ -51,21 +51,21 @@ Museum2FText5: jp TextScriptEnd Museum2FText_5c20e: - TX_FAR _Museum2FText5 - db "@" + text_far _Museum2FText5 + text_end Museum2FText_5c213: - TX_FAR _Museum2FPikachuText1 - db "@" + text_far _Museum2FPikachuText1 + text_end Museum2FText_5c218: - TX_FAR _Museum2FPikachuText2 - db "@" + text_far _Museum2FPikachuText2 + text_end Museum2FText6: - TX_FAR _Museum2FText6 - db "@" + text_far _Museum2FText6 + text_end Museum2FText7: - TX_FAR _Museum2FText7 - db "@" + text_far _Museum2FText7 + text_end diff --git a/scripts/NameRatersHouse.asm b/scripts/NameRatersHouse.asm index 323cb3602..cecf97e74 100755 --- a/scripts/NameRatersHouse.asm +++ b/scripts/NameRatersHouse.asm @@ -41,7 +41,7 @@ NameRatersHouse_TextPointers: dw NameRaterText1 NameRaterText1: - TX_ASM + text_asm call SaveScreenTilesToBuffer2 ld hl, NameRaterText_1dab3 call NameRaterScript_1da15 @@ -68,7 +68,7 @@ NameRaterText1: jr nz, .asm_1daae ld hl, NameRaterText_1dac2 call PrintText - callba DisplayNameRaterScreen + farcall DisplayNameRaterScreen jr c, .asm_1daae ld hl, NameRaterText_1dac7 .asm_1daa8 @@ -79,29 +79,29 @@ NameRaterText1: jr .asm_1daa8 NameRaterText_1dab3: - TX_FAR _NameRaterText_1dab3 - db "@" + text_far _NameRaterText_1dab3 + text_end NameRaterText_1dab8: - TX_FAR _NameRaterText_1dab8 - db "@" + text_far _NameRaterText_1dab8 + text_end NameRaterText_1dabd: - TX_FAR _NameRaterText_1dabd - db "@" + text_far _NameRaterText_1dabd + text_end NameRaterText_1dac2: - TX_FAR _NameRaterText_1dac2 - db "@" + text_far _NameRaterText_1dac2 + text_end NameRaterText_1dac7: - TX_FAR _NameRaterText_1dac7 - db "@" + text_far _NameRaterText_1dac7 + text_end NameRaterText_1dacc: - TX_FAR _NameRaterText_1dacc - db "@" + text_far _NameRaterText_1dacc + text_end NameRaterText_1dad1: - TX_FAR _NameRaterText_1dad1 - db "@" + text_far _NameRaterText_1dad1 + text_end diff --git a/scripts/OaksLab.asm b/scripts/OaksLab.asm index 04f31d2a2..e8ef4cbea 100755 --- a/scripts/OaksLab.asm +++ b/scripts/OaksLab.asm @@ -1,7 +1,7 @@ OaksLab_Script: CheckEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS_2 call nz, OaksLabScript_1d076 - ld a, $1 + ld a, TRUE ld [wAutoTextBoxDrawingControl], a xor a ld [wDoNotWaitForButtonPressAfterDisplayingText], a @@ -53,7 +53,7 @@ OaksLabScript0: OaksLabScript1: ld a, $6 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld de, OakEntryMovement call MoveSprite @@ -65,7 +65,7 @@ OakEntryMovement: db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP - db $FF + db -1 ; end OaksLabScript2: ld a, [wd730] @@ -91,14 +91,14 @@ OaksLabScript3: ld [wSimulatedJoypadStatesIndex], a call StartSimulatingJoypadStates ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a xor a - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $3 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a xor a - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $4 @@ -106,8 +106,8 @@ OaksLabScript3: ret PlayerEntryMovementRLE: - db D_UP,$8 - db $ff + db D_UP, 8 + db -1 ; end OaksLabScript4: ld a, [wSimulatedJoypadStatesIndex] @@ -116,9 +116,9 @@ OaksLabScript4: SetEvent EVENT_FOLLOWED_OAK_INTO_LAB SetEvent EVENT_FOLLOWED_OAK_INTO_LAB_2 ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld a, SPRITE_FACING_UP - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld hl, wFlags_D733 res 1, [hl] @@ -133,11 +133,11 @@ OaksLabScript5: ld a, $fc ld [wJoyIgnore], a ld a, $d - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 ld a, $e - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 ld a, $2 @@ -145,11 +145,11 @@ OaksLabScript5: ld a, SPRITE_FACING_UP ld [wSpriteStateData1 + 1 * $10 + 9], a ld a, $f - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 ld a, $10 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wJoyIgnore], a @@ -160,21 +160,21 @@ OaksLabScript5: OaksLabScript6: ld a, [wYCoord] - cp $6 + cp 6 ret nz ld a, $3 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a xor a ; SPRITE_FACING_DOWN - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a xor a - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay call UpdateSprites ld a, $a - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $1 ld [wSimulatedJoypadStatesIndex], a @@ -200,7 +200,7 @@ OaksLabScript7: OaksLabScript8: ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a ld de, .SonyPushesPlayerAwayFromEeveeBall call MoveSprite ld a, $9 @@ -222,9 +222,9 @@ OaksLabScript9: ld [wMissableObjectIndex], a predef HideObject ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld a, SPRITE_FACING_UP - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, 1 ld [wRivalStarter], a @@ -234,7 +234,7 @@ OaksLabScript9: ld a, $FF ^ (A_BUTTON | B_BUTTON) ld [wJoyIgnore], a ld a, $11 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $a @@ -243,7 +243,7 @@ OaksLabScript9: .asm_1c564 ld a, [wYCoord] - cp $4 + cp 4 ret nz ld a, [wNPCNumScriptedSteps] cp 1 @@ -260,7 +260,7 @@ OaksLabScript9: OaksLabScript10: ld a, [wYCoord] - cp $4 + cp 4 jr z, .asm_1c599 ld a, $1 ld [wSimulatedJoypadStatesIndex], a @@ -292,7 +292,7 @@ OaksLabScript11: and a ret nz ld a, $12 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wJoyIgnore], a @@ -303,34 +303,34 @@ OaksLabScript11: OaksLabScript12: ld a, [wYCoord] - cp $6 + cp 6 ret nz ld a, PLAYER_DIR_UP ld [wPlayerMovingDirection], a ld a, $1 - ld [hSpriteIndexOrTextID], a - xor a - ld [hSpriteFacingDirection], a + ldh [hSpriteIndex], a + xor a ; SPRITE_FACING_DOWN + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL call PlayMusic ld a, $b - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $1 - ld [hNPCPlayerRelativePosPerspective], a + ldh [hNPCPlayerRelativePosPerspective], a ld a, $1 swap a - ld [hNPCPlayerYDistance], a + ldh [hNPCPlayerYDistance], a predef CalcPositionOfPlayerRelativeToNPC - ld a, [hNPCPlayerYDistance] + ldh a, [hNPCPlayerYDistance] dec a - ld [hNPCPlayerYDistance], a + ldh [hNPCPlayerYDistance], a predef FindPathToPlayer ld de, wNPCMovementDirections2 ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndex], a call MoveSprite ld a, $d ld [wOaksLabCurScript], a @@ -343,7 +343,7 @@ OaksLabScript13: ld a, $1 ld [wSpriteIndex], a call GetSpritePosition1 - ld a, OPP_SONY1 + ld a, OPP_RIVAL1 ld [wCurOpponent], a ld a, $1 ld [wTrainerNo], a @@ -400,15 +400,15 @@ OaksLabScript15: ld c, 20 call DelayFrames ld a, $c - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID - callba Music_RivalAlternateStart + farcall Music_RivalAlternateStart ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndex], a ld de, .OaksLabMovement_RivalWalksOut1 call MoveSprite ld a, [wXCoord] - cp $4 + cp 4 jr nz, .asm_1c6bb ld a, NPC_MOVEMENT_RIGHT jr .asm_1c6bd @@ -422,14 +422,14 @@ OaksLabScript15: ret .OaksLabMovement_RivalWalksOut1 - db $e0 - db $00 + db NPC_CHANGE_FACING + db NPC_MOVEMENT_DOWN db $04 db $04 db $04 db $04 db $04 - db $ff + db -1 ; end OaksLabScript16: ld a, [wd730] @@ -450,7 +450,7 @@ OaksLabScript16: cp $5 jr nz, .turnPlayerDown ld a, [wXCoord] - cp $4 + cp 4 jr nz, .turnPlayerLeft ld a, SPRITE_FACING_RIGHT jr .done @@ -460,7 +460,7 @@ OaksLabScript16: .turnPlayerDown cp $4 ret nz - xor a + xor a ; ld a, SPRITE_FACING_DOWN .done ld [wSpritePlayerStateData1FacingDirection], a ret @@ -471,10 +471,10 @@ OaksLabScript17: ld [wSpritePlayerStateData1FacingDirection], a ld a, $2 ld [wPikachuSpawnState], a - callba SchedulePikachuSpawnForAfterText + farcall SchedulePikachuSpawnForAfterText call EnablePikachuOverworldSpriteDrawing ld a, $1a - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $12 ld [wOaksLabCurScript], a @@ -482,7 +482,7 @@ OaksLabScript17: OaksLabScript18: ld a, $1b - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wJoyIgnore], a @@ -492,14 +492,14 @@ OaksLabScript18: OaksLabScript19: xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a call EnableAutoTextBoxDrawing call StopAllMusic - callba Music_RivalAlternateStart + farcall Music_RivalAlternateStart ld a, $13 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID - callab Func_f1be0 + callfar Func_f1be0 call OaksLabScript_1c8b9 ld a, HS_OAKS_LAB_RIVAL ld [wMissableObjectIndex], a @@ -513,7 +513,7 @@ OaksLabScript19: call FillMemory ld [hl], $ff ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndex], a ld de, wNPCMovementDirections2 call MoveSprite ld a, $14 @@ -522,14 +522,14 @@ OaksLabScript19: OaksLabScript_1c78e: ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndex], a ld a, SPRITE_FACING_UP - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $6 - ld [hSpriteIndexOrTextID], a - xor a - ld [hSpriteFacingDirection], a + ldh [hSpriteIndex], a + xor a ; SPRITE_FACING_DOWN + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ret @@ -543,21 +543,21 @@ OaksLabScript20: ld [wJoyIgnore], a call OaksLabScript_1c78e ld a, $14 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call DelayFrame call OaksLabScript_1c78e ld a, $15 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call DelayFrame call OaksLabScript_1c78e ld a, $16 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call DelayFrame ld a, $17 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 ld a, HS_POKEDEX_1 @@ -568,16 +568,16 @@ OaksLabScript20: predef HideObject call OaksLabScript_1c78e ld a, $18 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndex], a ld a, SPRITE_FACING_RIGHT - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay call Delay3 ld a, $19 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_GOT_POKEDEX ld a, $1 @@ -597,9 +597,9 @@ OaksLabScript20: call FillMemory ld [hl], $ff call StopAllMusic - callba Music_RivalAlternateStart + farcall Music_RivalAlternateStart ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a ld de, wNPCMovementDirections2 call MoveSprite ld a, $15 @@ -653,33 +653,33 @@ OaksLabScript_RemoveParcel: OaksLabScript_1c8b9: ld a, $7c - ld [$ffeb], a - ld a, $8 - ld [$ffee], a + ldh [hSpriteScreenYCoord], a + ld a, 8 + ldh [hSpriteMapXCoord], a ld a, [wYCoord] cp 3 jr nz, .asm_1c8d3 ld a, $4 ld [wNPCMovementDirections2Index], a ld a, $30 - ld b, $b + ld b, 11 jr .asm_1c8f6 .asm_1c8d3 - cp $1 + cp 1 jr nz, .asm_1c8e2 ld a, $2 ld [wNPCMovementDirections2Index], a ld a, $30 - ld b, $9 + ld b, 9 jr .asm_1c8f6 .asm_1c8e2 ld a, $3 ld [wNPCMovementDirections2Index], a - ld b, $a + ld b, 10 ld a, [wXCoord] - cp $4 + cp 4 jr nz, .asm_1c8f4 ld a, $40 jr .asm_1c8f6 @@ -687,9 +687,9 @@ OaksLabScript_1c8b9: .asm_1c8f4 ld a, $20 .asm_1c8f6 - ld [$ffec], a + ldh [hSpriteScreenXCoord], a ld a, b - ld [$ffed], a + ldh [hSpriteMapYCoord], a ld a, $1 ld [wSpriteIndex], a call SetSpritePosition1 @@ -744,7 +744,7 @@ OaksLab_TextPointers2: dw OaksLabText9 OaksLabText1: - TX_ASM + text_asm CheckEvent EVENT_FOLLOWED_OAK_INTO_LAB_2 jr nz, .beforeChooseMon ld hl, OaksLabGaryText1 @@ -763,19 +763,19 @@ OaksLabText1: jp TextScriptEnd OaksLabGaryText1: - TX_FAR _OaksLabGaryText1 - db "@" + text_far _OaksLabGaryText1 + text_end OaksLabText40: - TX_FAR _OaksLabText40 - db "@" + text_far _OaksLabText40 + text_end OaksLabText41: - TX_FAR _OaksLabText41 - db "@" + text_far _OaksLabText41 + text_end OaksLabText2: - TX_ASM + text_asm ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a CheckEvent EVENT_OAK_ASKED_TO_CHOOSE_MON @@ -787,8 +787,8 @@ OaksLabText2: jp TextScriptEnd OaksLabText39: - TX_FAR _OaksLabText39 - db "@" + text_far _OaksLabText39 + text_end OaksLabScript_1c9ac: ld a, $1 @@ -801,7 +801,7 @@ OaksLabScript_1c9ac: jp TextScriptEnd OaksLabText3: - TX_ASM + text_asm CheckEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS jr nz, .asm_1c9d9 ld hl, wPokedexOwned @@ -883,108 +883,108 @@ OaksLabText3: jp TextScriptEnd OaksLabText_1ca72: - TX_FAR _OaksLabPikachuText - db "@" + text_far _OaksLabPikachuText + text_end OaksLabText_1ca77: - TX_FAR _OaksLabText_1d2f5 - db "@" + text_far _OaksLabText_1d2f5 + text_end OaksLabText_1ca7c: - TX_FAR _OaksLabText_1d2fa - db "@" + text_far _OaksLabText_1d2fa + text_end OaksLabDeliverParcelText: - TX_FAR _OaksLabDeliverParcelText1 - TX_SFX_KEY_ITEM - TX_FAR _OaksLabDeliverParcelText2 - db "@" + text_far _OaksLabDeliverParcelText1 + sound_get_key_item + text_far _OaksLabDeliverParcelText2 + text_end OaksLabAroundWorldText: - TX_FAR _OaksLabAroundWorldText - db "@" + text_far _OaksLabAroundWorldText + text_end OaksLabGivePokeballsText: - TX_FAR _OaksLabGivePokeballsText1 - TX_SFX_KEY_ITEM - TX_FAR _OaksLabGivePokeballsText2 - db "@" + text_far _OaksLabGivePokeballsText1 + sound_get_key_item + text_far _OaksLabGivePokeballsText2 + text_end OaksLabPleaseVisitText: - TX_FAR _OaksLabPleaseVisitText - db "@" + text_far _OaksLabPleaseVisitText + text_end OaksLabText_1ca9f: - TX_FAR _OaksLabText_1d31d - db "@" + text_far _OaksLabText_1d31d + text_end OaksLabText4: OaksLabText5: - TX_ASM + text_asm ld hl, OaksLabText_1caae call PrintText jp TextScriptEnd OaksLabText_1caae: - TX_FAR _OaksLabText_1d32c - db "@" + text_far _OaksLabText_1d32c + text_end OaksLabText6: - TX_FAR _OaksLabText8 - db "@" + text_far _OaksLabText8 + text_end OaksLabText7: - TX_ASM + text_asm ld hl, OaksLabText_1cac2 call PrintText jp TextScriptEnd OaksLabText_1cac2: - TX_FAR _OaksLabText_1d340 - db "@" + text_far _OaksLabText_1d340 + text_end OaksLabText13: - TX_ASM + text_asm ld hl, OaksLabRivalWaitingText call PrintText jp TextScriptEnd OaksLabRivalWaitingText: - TX_FAR _OaksLabRivalWaitingText - db "@" + text_far _OaksLabRivalWaitingText + text_end OaksLabText14: - TX_ASM + text_asm ld hl, OaksLabChooseMonText call PrintText jp TextScriptEnd OaksLabChooseMonText: - TX_FAR _OaksLabChooseMonText - db "@" + text_far _OaksLabChooseMonText + text_end OaksLabText15: - TX_ASM + text_asm ld hl, OaksLabRivalInterjectionText call PrintText jp TextScriptEnd OaksLabRivalInterjectionText: - TX_FAR _OaksLabRivalInterjectionText - db "@" + text_far _OaksLabRivalInterjectionText + text_end OaksLabText16: - TX_ASM + text_asm ld hl, OaksLabBePatientText call PrintText jp TextScriptEnd OaksLabBePatientText: - TX_FAR _OaksLabBePatientText - db "@" + text_far _OaksLabBePatientText + text_end OaksLabText17: - TX_ASM + text_asm ld hl, OaksLabRivalTakesText1 call PrintText ld hl, OaksLabRivalTakesText2 @@ -998,28 +998,28 @@ OaksLabText17: jp TextScriptEnd OaksLabRivalTakesText1: - TX_FAR _OaksLabRivalTakesText1 - db "@" + text_far _OaksLabRivalTakesText1 + text_end OaksLabRivalTakesText2: - TX_FAR _OaksLabRivalTakesText2 - TX_SFX_KEY_ITEM - db "@" + text_far _OaksLabRivalTakesText2 + sound_get_key_item + text_end OaksLabRivalTakesText3: - TX_FAR _OaksLabRivalTakesText3 - db "@" + text_far _OaksLabRivalTakesText3 + text_end OaksLabRivalTakesText4: - TX_FAR _OaksLabRivalTakesText4 - db "@" + text_far _OaksLabRivalTakesText4 + text_end OaksLabRivalTakesText5: - TX_FAR _OaksLabRivalTakesText5 - db "@" + text_far _OaksLabRivalTakesText5 + text_end OaksLabText18: - TX_ASM + text_asm ld a, PIKACHU ld [wPlayerStarter], a ld [wd11e], a @@ -1047,110 +1047,110 @@ OaksLabText18: jp TextScriptEnd OaksLabOakGivesText: - TX_FAR _OaksLabOakGivesText - db "@" + text_far _OaksLabOakGivesText + text_end OaksLabRecievedText: - TX_FAR _OaksLabReceivedText - TX_SFX_KEY_ITEM - db "@" + text_far _OaksLabReceivedText + sound_get_key_item + text_end OaksLabText10: - TX_ASM + text_asm ld hl, OaksLabLeavingText call PrintText jp TextScriptEnd OaksLabLeavingText: - TX_FAR _OaksLabLeavingText - db "@" + text_far _OaksLabLeavingText + text_end OaksLabText11: - TX_ASM + text_asm ld hl, OaksLabRivalChallengeText call PrintText jp TextScriptEnd OaksLabRivalChallengeText: - TX_FAR _OaksLabRivalChallengeText - db "@" + text_far _OaksLabRivalChallengeText + text_end OaksLabRivalDefeatedText: - TX_FAR _OaksLabText_1d3be - db "@" + text_far _OaksLabText_1d3be + text_end OaksLabRivalBeatYouText: - TX_FAR _OaksLabText_1d3c3 - db "@" + text_far _OaksLabText_1d3c3 + text_end OaksLabText12: - TX_ASM + text_asm ld hl, OaksLabRivalToughenUpText call PrintText jp TextScriptEnd OaksLabRivalToughenUpText: - TX_FAR _OaksLabRivalToughenUpText - db "@" + text_far _OaksLabRivalToughenUpText + text_end OaksLabText26: - TX_ASM + text_asm ldpikacry e, PikachuCry2 - callab PlayPikachuSoundClip + callfar PlayPikachuSoundClip ld hl, OaksLabPikachuDislikesPokeballsText1 call PrintText jp TextScriptEnd OaksLabPikachuDislikesPokeballsText1: - TX_FAR _OaksLabPikachuDislikesPokeballsText1 - db "@" + text_far _OaksLabPikachuDislikesPokeballsText1 + text_end OaksLabText27: - TX_ASM + text_asm ld hl, OaksLabPikachuDislikesPokeballsText2 call PrintText jp TextScriptEnd OaksLabPikachuDislikesPokeballsText2: - TX_FAR _OaksLabPikachuDislikesPokeballsText2 - db "@" + text_far _OaksLabPikachuDislikesPokeballsText2 + text_end OaksLabText19: - TX_FAR _OaksLabText21 - db "@" + text_far _OaksLabText21 + text_end OaksLabText20: - TX_FAR _OaksLabText22 - db "@" + text_far _OaksLabText22 + text_end OaksLabText21: - TX_FAR _OaksLabText23 - db "@" + text_far _OaksLabText23 + text_end OaksLabText22: - TX_FAR _OaksLabText24 - db "@" + text_far _OaksLabText24 + text_end OaksLabText23: - TX_FAR _OaksLabText25 - TX_SFX_KEY_ITEM - db "@" + text_far _OaksLabText25 + sound_get_key_item + text_end OaksLabText24: - TX_FAR _OaksLabText26 - db "@" + text_far _OaksLabText26 + text_end OaksLabText25: - TX_FAR _OaksLabText27 - db "@" + text_far _OaksLabText27 + text_end OaksLabText8: OaksLabText9: - TX_ASM + text_asm ld hl, OaksLabText_1c31d call PrintText jp TextScriptEnd OaksLabText_1c31d: - TX_FAR _OaksLabText_1d405 - db "@" + text_far _OaksLabText_1d405 + text_end diff --git a/scripts/OaksLab2.asm b/scripts/OaksLab2.asm index 5e4e98a42..b0519827e 100755 --- a/scripts/OaksLab2.asm +++ b/scripts/OaksLab2.asm @@ -1,4 +1,4 @@ -Func_f1be0: +Func_f1be0:: ld a, [wYCoord] cp 3 jr z, .asm_f1bf0 diff --git a/scripts/PalletTown.asm b/scripts/PalletTown.asm index fbdee4bce..28f93411f 100755 --- a/scripts/PalletTown.asm +++ b/scripts/PalletTown.asm @@ -33,7 +33,7 @@ PalletTownScript0: SetEventReuseHL EVENT_PLAYER_AT_RIGHT_EXIT_TO_PALLET_TOWN .asm_18e40 xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $ff ld [wJoyIgnore], a ld a, PLAYER_DIR_UP @@ -41,7 +41,7 @@ PalletTownScript0: call StopAllMusic ld a, BANK(Music_MeetProfOak) ld c, a - ld a, MUSIC_MEET_PROF_OAK + ld a, MUSIC_MEET_PROF_OAK ; "oak appears" music call PlayMusic SetEvent EVENT_OAK_APPEARED_IN_PALLET @@ -56,7 +56,7 @@ PalletTownScript1: xor a ld [wcf0d], a ld a, 1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $FF ld [wJoyIgnore], a @@ -83,17 +83,17 @@ PalletTownScript2: ld a, 0 ld [wYCoord], a ld a, 1 - ld [hNPCPlayerRelativePosPerspective], a + ldh [hNPCPlayerRelativePosPerspective], a ld a, 1 swap a - ld [hNPCSpriteOffset], a + ldh [hNPCSpriteOffset], a predef CalcPositionOfPlayerRelativeToNPC ld hl, hNPCPlayerYDistance dec [hl] - predef FindPathToPlayer ; load Oak’s movement into wNPCMovementDirections2 + predef FindPathToPlayer ; load Oak's movement into wNPCMovementDirections2 ld de, wNPCMovementDirections2 ld a, 1 ; oak - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call MoveSprite ; trigger the next script @@ -114,7 +114,7 @@ PalletTownScript3: ld a, SPRITE_FACING_UP ld [wSpriteStateData1 + 1 * $10 + 9], a ld a, 1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ; oak faces the horizontally adjacent patch of grass to face pikachu ld a, $FF @@ -155,14 +155,14 @@ PalletTownScript5: ld a, $2 ld [wcf0d], a ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $2 ld [wSpriteStateData1 + 1 * $10 + 1], a ld a, SPRITE_FACING_UP ld [wSpriteStateData1 + 1 * $10 + 9], a ld a, $8 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff ld [wJoyIgnore], a @@ -181,7 +181,7 @@ PalletTownScript6: ld [wNPCMovementScriptFunctionNum], a ld a, $1 ld [wNPCMovementScriptPointerTableNum], a - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] ld [wNPCMovementScriptBank], a ; trigger the next script @@ -231,7 +231,7 @@ PalletTown_TextPointers: dw PalletTownText8 PalletTownText1: - TX_ASM + text_asm ld a, [wcf0d] and a jr nz, .next @@ -252,8 +252,8 @@ PalletTownText1: jp TextScriptEnd OakAppearsText: - TX_FAR _OakAppearsText - TX_ASM + text_far _OakAppearsText + text_asm ld c, 10 call DelayFrames ld a, PLAYER_DIR_DOWN @@ -266,37 +266,37 @@ OakAppearsText: jp TextScriptEnd OakWalksUpText: - TX_FAR _OakWalksUpText - db "@" + text_far _OakWalksUpText + text_end PalletTownText_19002: - TX_FAR _OakWhewText - db "@" + text_far _OakWhewText + text_end PalletTownText8: ; girl - TX_FAR _OakGrassText - db "@" + text_far _OakGrassText + text_end PalletTownText2: ; fat man - TX_FAR _PalletTownText2 - db "@" + text_far _PalletTownText2 + text_end PalletTownText3: ; sign by lab - TX_FAR _PalletTownText3 - db "@" + text_far _PalletTownText3 + text_end PalletTownText4: ; sign by fence - TX_FAR _PalletTownText4 - db "@" + text_far _PalletTownText4 + text_end -PalletTownText5: ; sign by Red’s house - TX_FAR _PalletTownText5 - db "@" +PalletTownText5: ; sign by Red's house + text_far _PalletTownText5 + text_end -PalletTownText6: ; sign by Blue’s house - TX_FAR _PalletTownText6 - db "@" +PalletTownText6: ; sign by Blue's house + text_far _PalletTownText6 + text_end PalletTownText7: - TX_FAR _PalletTownText7 - db "@" + text_far _PalletTownText7 + text_end diff --git a/scripts/PewterCity.asm b/scripts/PewterCity.asm index 63d0fe715..26827bef3 100755 --- a/scripts/PewterCity.asm +++ b/scripts/PewterCity.asm @@ -32,47 +32,47 @@ PewterCityScript_1925e: ld a, $fc ld [wJoyIgnore], a ld a, $5 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a jp DisplayTextID CoordsData_19277: - db $11,$23 - db $11,$24 - db $12,$25 - db $13,$25 - db $ff + dbmapcoord 35, 17 + dbmapcoord 36, 17 + dbmapcoord 37, 18 + dbmapcoord 37, 19 + db -1 ; end PewterCityScript1: ld a, [wNPCMovementScriptPointerTableNum] and a ret nz ld a, $3 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld a, SPRITE_FACING_UP - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, SPRITE_FACING_UP - ld [hSpriteImageIndex], a + ldh [hSpriteImageIndex], a call SpriteFunc_34a1 call PlayDefaultMusic ld hl, wFlags_0xcd60 set 4, [hl] ld a, $d - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $3c - ld [$ffeb], a + ldh [hSpriteScreenYCoord], a ld a, $30 - ld [$ffec], a - ld a, $c - ld [$ffed], a - ld a, $11 - ld [$ffee], a + ldh [hSpriteScreenXCoord], a + ld a, 12 + ldh [hSpriteMapYCoord], a + ld a, 17 + ldh [hSpriteMapXCoord], a ld a, $3 ld [wSpriteIndex], a call SetSpritePosition1 ld a, $3 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld de, MovementData_PewterMuseumGuyExit call MoveSprite ld a, $2 @@ -84,7 +84,7 @@ MovementData_PewterMuseumGuyExit: db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN - db $FF + db -1 ; end PewterCityScript2: ld a, [wd730] @@ -115,29 +115,29 @@ PewterCityScript4: and a ret nz ld a, $5 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld a, SPRITE_FACING_LEFT - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SpriteFunc_34a1 call PlayDefaultMusic ld hl, wFlags_0xcd60 set 4, [hl] ld a, $e - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $3c - ld [$ffeb], a + ldh [hSpriteScreenYCoord], a ld a, $40 - ld [$ffec], a - ld a, $16 - ld [$ffed], a - ld a, $10 - ld [$ffee], a + ldh [hSpriteScreenXCoord], a + ld a, 22 + ldh [hSpriteMapYCoord], a + ld a, 16 + ldh [hSpriteMapXCoord], a ld a, $5 ld [wSpriteIndex], a call SetSpritePosition1 ld a, $5 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld de, MovementData_PewterGymGuyExit call MoveSprite ld a, $5 @@ -150,7 +150,7 @@ MovementData_PewterGymGuyExit: db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_RIGHT - db $FF + db -1 ; end PewterCityScript5: ld a, [wd730] @@ -193,15 +193,15 @@ PewterCity_TextPointers: dw PewterCityText14 PewterCityText1: - TX_FAR _PewterCityText1 - db "@" + text_far _PewterCityText1 + text_end PewterCityText2: - TX_FAR _PewterCityText2 - db "@" + text_far _PewterCityText2 + text_end PewterCityText3: - TX_ASM + text_asm ld hl, PewterCityText_193f1 call PrintText call YesNoChoice @@ -215,12 +215,12 @@ PewterCityText3: ld hl, PewterCityText_193fb call PrintText xor a - ld [hJoyPressed], a - ld [hJoyHeld], a + ldh [hJoyPressed], a + ldh [hJoyHeld], a ld [wNPCMovementScriptFunctionNum], a ld a, $2 ld [wNPCMovementScriptPointerTableNum], a - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] ld [wNPCMovementScriptBank], a ld a, $3 ld [wSpriteIndex], a @@ -231,23 +231,23 @@ PewterCityText3: jp TextScriptEnd PewterCityText_193f1: - TX_FAR _PewterCityText_193f1 - db "@" + text_far _PewterCityText_193f1 + text_end PewterCityText_193f6: - TX_FAR _PewterCityText_193f6 - db "@" + text_far _PewterCityText_193f6 + text_end PewterCityText_193fb: - TX_FAR _PewterCityText_193fb - db "@" + text_far _PewterCityText_193fb + text_end PewterCityText13: - TX_FAR _PewterCityText13 - db "@" + text_far _PewterCityText13 + text_end PewterCityText4: - TX_ASM + text_asm ld hl, PewterCityText_19427 call PrintText call YesNoChoice @@ -264,27 +264,27 @@ PewterCityText4: jp TextScriptEnd PewterCityText_19427: - TX_FAR _PewterCityText_19427 - db "@" + text_far _PewterCityText_19427 + text_end PewterCityText_1942c: - TX_FAR _PewterCityText_1942c - db "@" + text_far _PewterCityText_1942c + text_end PewterCityText_19431: - TX_FAR _PewterCityText_19431 - db "@" + text_far _PewterCityText_19431 + text_end PewterCityText5: - TX_ASM + text_asm ld hl, PewterCityText_1945d call PrintText xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld [wNPCMovementScriptFunctionNum], a ld a, $3 ld [wNPCMovementScriptPointerTableNum], a - ld a, [H_LOADEDROMBANK] + ldh a, [hLoadedROMBank] ld [wNPCMovementScriptBank], a ld a, $5 ld [wSpriteIndex], a @@ -294,29 +294,29 @@ PewterCityText5: jp TextScriptEnd PewterCityText_1945d: - TX_FAR _PewterCityText_1945d - db "@" + text_far _PewterCityText_1945d + text_end PewterCityText14: - TX_FAR _PewterCityText14 - db "@" + text_far _PewterCityText14 + text_end PewterCityText6: - TX_FAR _PewterCityText6 - db "@" + text_far _PewterCityText6 + text_end PewterCityText7: - TX_FAR _PewterCityText7 - db "@" + text_far _PewterCityText7 + text_end PewterCityText10: - TX_FAR _PewterCityText10 - db "@" + text_far _PewterCityText10 + text_end PewterCityText11: - TX_FAR _PewterCityText11 - db "@" + text_far _PewterCityText11 + text_end PewterCityText12: - TX_FAR _PewterCityText12 - db "@" + text_far _PewterCityText12 + text_end diff --git a/scripts/PewterGym.asm b/scripts/PewterGym.asm index 4ddec77eb..76a58b718 100755 --- a/scripts/PewterGym.asm +++ b/scripts/PewterGym.asm @@ -2,7 +2,7 @@ PewterGym_Script: ld hl, wCurrentMapScriptFlags bit 6, [hl] res 6, [hl] - call nz, PewterGymScript_5c3a4 + call nz, .LoadNames call EnableAutoTextBoxDrawing ld hl, PewterGymTrainerHeader0 ld de, PewterGym_ScriptPointers @@ -11,16 +11,16 @@ PewterGym_Script: ld [wPewterGymCurScript], a ret -PewterGymScript_5c3a4: - ld hl, Gym1CityName - ld de, Gym1LeaderName +.LoadNames: + ld hl, .CityName + ld de, .LeaderName call LoadGymLeaderAndCityName ret -Gym1CityName: +.CityName: db "PEWTER CITY@" -Gym1LeaderName: +.LeaderName: db "BROCK@" PewterGymScript_5c3bf: @@ -44,26 +44,26 @@ PewterGymScript3: ld [wJoyIgnore], a PewterGymScript_5c3df: ld a, $4 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_BEAT_BROCK - lb bc, TM_34, 1 + lb bc, TM_BIDE, 1 call GiveItem jr nc, .BagFull ld a, $5 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_GOT_TM34 jr .gymVictory .BagFull ld a, $6 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID .gymVictory ld hl, wObtainedBadges - set 0, [hl] + set BIT_BOULDERBADGE, [hl] ld hl, wBeatGymFlags - set 0, [hl] + set BIT_BOULDERBADGE, [hl] ld a, HS_GYM_GUY ld [wMissableObjectIndex], a @@ -88,18 +88,11 @@ PewterGym_TextPointers: dw PewterGymText6 PewterGymTrainerHeader0: - dbEventFlagBit EVENT_BEAT_PEWTER_GYM_TRAINER_0 - db ($5 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_PEWTER_GYM_TRAINER_0 - dw PewterGymBattleText1 ; TextBeforeBattle - dw PewterGymAfterBattleText1 ; TextAfterBattle - dw PewterGymEndBattleText1 ; TextEndBattle - dw PewterGymEndBattleText1 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_PEWTER_GYM_TRAINER_0, 5, PewterGymBattleText1, PewterGymEndBattleText1, PewterGymAfterBattleText1 + db -1 ; end PewterGymText1: - TX_ASM + text_asm CheckEvent EVENT_BEAT_BROCK jr z, .beginBattle CheckEventReuseA EVENT_GOT_TM34 @@ -120,14 +113,14 @@ PewterGymText1: ld hl, PewterGymText_5c4bc ld de, PewterGymText_5c4bc call SaveEndBattleTextPointers - ld a, [H_SPRITEINDEX] + ldh a, [hSpriteIndex] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters ld a, $1 ld [wGymLeaderNo], a xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $3 ld [wPewterGymCurScript], a ld [wCurMapScript], a @@ -135,55 +128,55 @@ PewterGymText1: jp TextScriptEnd PewterGymText_5c49e: - TX_FAR _PewterGymText_5c49e - db "@" + text_far _PewterGymText_5c49e + text_end PewterGymText_5c4a3: - TX_FAR _PewterGymText_5c4a3 - db "@" + text_far _PewterGymText_5c4a3 + text_end PewterGymText4: - TX_FAR _TM34PreReceiveText - db "@" + text_far _TM34PreReceiveText + text_end PewterGymText5: - TX_FAR _ReceivedTM34Text - TX_SFX_ITEM_1 - TX_FAR _TM34ExplanationText - db "@" + text_far _ReceivedTM34Text + sound_get_item_1 + text_far _TM34ExplanationText + text_end PewterGymText6: - TX_FAR _TM34NoRoomText - db "@" + text_far _TM34NoRoomText + text_end PewterGymText_5c4bc: - TX_FAR _PewterGymText_5c4bc - TX_SFX_ITEM_1 - TX_FAR _PewterGymText_5c4c1 - db "@" + text_far _PewterGymText_5c4bc + sound_get_item_1 + text_far _PewterGymText_5c4c1 + text_end PewterGymText2: - TX_ASM + text_asm ld hl, PewterGymTrainerHeader0 call TalkToTrainer jp TextScriptEnd PewterGymBattleText1: - TX_FAR _PewterGymBattleText1 - db "@" + text_far _PewterGymBattleText1 + text_end PewterGymEndBattleText1: - TX_FAR _PewterGymEndBattleText1 - db "@" + text_far _PewterGymEndBattleText1 + text_end PewterGymAfterBattleText1: - TX_FAR _PewterGymAfterBattleText1 - db "@" + text_far _PewterGymAfterBattleText1 + text_end PewterGymText3: - TX_ASM + text_asm ld a, [wBeatGymFlags] - bit 0, a + bit BIT_BOULDERBADGE, a jr nz, .asm_5c50c ld hl, PewterGymText_5c515 call PrintText @@ -216,26 +209,26 @@ PewterGymText3: jp TextScriptEnd PewterGymText_5c515: - TX_FAR _PewterGymText_5c515 - db "@" + text_far _PewterGymText_5c515 + text_end PewterGymText_5c51a: - TX_FAR _PewterGymText_5c51a - db "@" + text_far _PewterGymText_5c51a + text_end PewterGymText_5c51f: - TX_FAR _PewterGymText_5c51f - db "@" + text_far _PewterGymText_5c51f + text_end PewterGymText_5c524: - TX_FAR _PewterGymText_5c524 - db "@" + text_far _PewterGymText_5c524 + text_end PewterGymText_5c529: - TX_FAR _PewterGymText_5c529 - db "@" + text_far _PewterGymText_5c529 + text_end PewterGymText_5c41c: - TX_FAR _PewterGymGuyText - db "@" + text_far _PewterGymGuyText + text_end diff --git a/scripts/PewterMart.asm b/scripts/PewterMart.asm index 5b3e76174..a0e9e63ed 100755 --- a/scripts/PewterMart.asm +++ b/scripts/PewterMart.asm @@ -1,6 +1,6 @@ PewterMart_Script: call EnableAutoTextBoxDrawing - ld a, $1 + ld a, TRUE ld [wAutoTextBoxDrawingControl], a ret @@ -10,21 +10,21 @@ PewterMart_TextPointers: dw PewterMartText3 PewterMartText2: - TX_ASM + text_asm ld hl, .Text call PrintText jp TextScriptEnd .Text - TX_FAR _PewterMartText2 - db "@" + text_far _PewterMartText2 + text_end PewterMartText3: - TX_ASM + text_asm ld hl, .Text call PrintText jp TextScriptEnd .Text - TX_FAR _PewterMartText3 - db "@" + text_far _PewterMartText3 + text_end diff --git a/scripts/PewterNidoranHouse.asm b/scripts/PewterNidoranHouse.asm index 2f3f41451..77fb12c0f 100755 --- a/scripts/PewterNidoranHouse.asm +++ b/scripts/PewterNidoranHouse.asm @@ -8,17 +8,17 @@ PewterNidoranHouse_TextPointers: dw PewterHouse1Text3 PewterHouse1Text1: - TX_FAR _PewterHouse1Text1 - TX_ASM + text_far _PewterHouse1Text1 + text_asm ld a, NIDORAN_M call PlayCry call WaitForSoundToFinish jp TextScriptEnd PewterHouse1Text2: - TX_FAR _PewterHouse1Text2 - db "@" + text_far _PewterHouse1Text2 + text_end PewterHouse1Text3: - TX_FAR _PewterHouse1Text3 - db "@" + text_far _PewterHouse1Text3 + text_end diff --git a/scripts/PewterPokecenter.asm b/scripts/PewterPokecenter.asm index add001bc7..247ecb03d 100755 --- a/scripts/PewterPokecenter.asm +++ b/scripts/PewterPokecenter.asm @@ -14,26 +14,26 @@ PewterPokecenter_TextPointers: dw PewterPokecenterText6 PewterHealNurseText: - TX_POKECENTER_NURSE + script_pokecenter_nurse PewterPokecenterText2: - TX_FAR _PewterPokecenterText2 - db "@" + text_far _PewterPokecenterText2 + text_end PewterJigglypuffText: - TX_ASM - callba PewterJigglypuff + text_asm + farcall PewterJigglypuff jp TextScriptEnd PewterTradeNurseText: - TX_CABLE_CLUB_RECEPTIONIST + script_cable_club_receptionist PewterPokecenterText5: - TX_ASM - callba Func_f1d98 + text_asm + farcall Func_f1d98 jp TextScriptEnd PewterPokecenterText6: - TX_ASM - callab PokecenterChanseyText + text_asm + callfar PokecenterChanseyText jp TextScriptEnd diff --git a/scripts/PewterPokecenter2.asm b/scripts/PewterPokecenter2.asm index 3d4de3f7a..79d22b2f3 100755 --- a/scripts/PewterPokecenter2.asm +++ b/scripts/PewterPokecenter2.asm @@ -1,20 +1,22 @@ -Func_f1d98: +Func_f1d98:: ld hl, PewterPokecenterText_f1d9f call PrintText ret PewterPokecenterText_f1d9f: - TX_FAR _PewterPokecenterText3 - db "@" + text_far _PewterPokecenterText3 + text_end -PewterJigglypuff: - ld a, $1 +PewterJigglypuff:: + ld a, TRUE ld [wDoNotWaitForButtonPressAfterDisplayingText], a - ld hl, .Text + ld hl, .JigglypuffText call PrintText + call StopAllMusic ld c, 32 call DelayFrames + ld hl, JigglypuffFacingDirections ld de, wJigglypuffFacingDirections ld bc, JigglypuffFacingDirectionsEnd - JigglypuffFacingDirections @@ -27,15 +29,16 @@ PewterJigglypuff: inc hl jr nz, .findMatchingFacingDirectionLoop dec hl + push hl ld c, BANK(Music_JigglypuffSong) ld a, MUSIC_JIGGLYPUFF_SONG call PlayMusic pop hl -.loop + +.spinMovementLoop ld a, [hl] ld [wSprite03StateData1ImageIndex], a - ; rotate the array push hl ld hl, wJigglypuffFacingDirections @@ -45,15 +48,13 @@ PewterJigglypuff: ld a, [wJigglypuffFacingDirections - 1] ld [wJigglypuffFacingDirections + 3], a pop hl - ld c, 24 call DelayFrames - ld a, [wChannelSoundIDs] ld b, a ld a, [wChannelSoundIDs + Ch2] or b - jr nz, .loop + jr nz, .spinMovementLoop ld c, 48 call DelayFrames @@ -61,14 +62,14 @@ PewterJigglypuff: ld a, [wd472] bit 7, a ret z - callab CheckPikachuFaintedOrStatused + callfar CheckPikachuFaintedOrStatused ret c call DisablePikachuFollowingPlayer ret -.Text - TX_FAR _PewterJigglypuffText - db "@" +.JigglypuffText: + text_far _PewterJigglypuffText + text_end JigglypuffFacingDirections: db $40 | SPRITE_FACING_DOWN diff --git a/scripts/PewterSpeechHouse.asm b/scripts/PewterSpeechHouse.asm index 943e17596..5d3d92493 100755 --- a/scripts/PewterSpeechHouse.asm +++ b/scripts/PewterSpeechHouse.asm @@ -6,9 +6,9 @@ PewterSpeechHouse_TextPointers: dw PewterHouse2Text2 PewterHouse2Text1: - TX_FAR _PewterHouse2Text1 - db "@" + text_far _PewterHouse2Text1 + text_end PewterHouse2Text2: - TX_FAR _PewterHouse2Text2 - db "@" + text_far _PewterHouse2Text2 + text_end diff --git a/scripts/PokemonFanClub.asm b/scripts/PokemonFanClub.asm index 3434f8719..c7990f19c 100755 --- a/scripts/PokemonFanClub.asm +++ b/scripts/PokemonFanClub.asm @@ -27,7 +27,7 @@ FanClubScript2: FanClubScript_59a39: call Random - ld a, [hRandomAdd] + ldh a, [hRandomAdd] cp 25 call c, FanClubScript_59a44 ret @@ -36,7 +36,7 @@ FanClubScript_59a44: ld a, [wd472] bit 7, a ret z - callab CheckPikachuFaintedOrStatused + callfar CheckPikachuFaintedOrStatused ret c ld a, $1 ld [wFanClubCurScript], a @@ -55,7 +55,7 @@ FanClubScript_59a44: ld [wSpriteStateData1 + 3 * $10 + 1], a ; Seel xor a ; SPRITE_FACING_DOWN ld [wSpriteStateData1 + 3 * $10 + 9], a - callab InitializePikachuTextID + callfar InitializePikachuTextID call DisablePikachuFollowingPlayer ret @@ -78,7 +78,7 @@ PokemonFanClub_TextPointers: FanClubText1: ; clefairy fan - TX_ASM + text_asm CheckEventHL EVENT_152 jr z, .asm_59aaf ld hl, .yellowtext @@ -101,20 +101,20 @@ FanClubText1: jp TextScriptEnd .normaltext - TX_FAR PikachuFanText - db "@" + text_far PikachuFanText + text_end .bettertext - TX_FAR PikachuFanBetterText - db "@" + text_far PikachuFanBetterText + text_end .yellowtext - TX_FAR PikachuFanPrintText - db "@" + text_far PikachuFanPrintText + text_end FanClubText2: ; seel fan - TX_ASM + text_asm CheckEventHL EVENT_152 jr z, .asm_59ae7 ld hl, .yellowtext @@ -135,20 +135,20 @@ FanClubText2: jp TextScriptEnd .normaltext - TX_FAR SeelFanText - db "@" + text_far SeelFanText + text_end .bettertext - TX_FAR SeelFanBetterText - db "@" + text_far SeelFanBetterText + text_end .yellowtext - TX_FAR SeelFanPrintText - db "@" + text_far SeelFanPrintText + text_end FanClubText3: ; pikachu - TX_ASM + text_asm ld hl, .text call PrintText ld a, CLEFAIRY @@ -157,12 +157,12 @@ FanClubText3: jp TextScriptEnd .text - TX_FAR FanClubPikachuText - db "@" + text_far FanClubPikachuText + text_end FanClubText4: ; seel - TX_ASM + text_asm ld hl, .text call PrintText ld a, SEEL @@ -171,12 +171,12 @@ FanClubText4: jp TextScriptEnd .text - TX_FAR FanClubSeelText - db "@" + text_far FanClubSeelText + text_end FanClubText5: ; chair - TX_ASM + text_asm CheckEventHL EVENT_152 jr z, .check_bike_voucher ld hl, Text_59c1f @@ -190,33 +190,32 @@ FanClubText5: .check_bike_voucher CheckEvent EVENT_GOT_BIKE_VOUCHER - jr nz, .got_bike_voucher_already - ld hl, Text_59bfc + jr nz, .nothingleft + ld hl, .meetchairtext call PrintText call YesNoChoice ld a, [wCurrentMenuItem] and a - jr nz, .declined_story - ld hl, Text_59c01 + jr nz, .nothanks + + ; tell the story + ld hl, .storytext call PrintText lb bc, BIKE_VOUCHER, 1 call GiveItem - jr nc, .no_room_for_voucher - ld hl, Text_59c06 + jr nc, .bag_full + ld hl, .receivedvouchertext call PrintText SetEvent EVENT_GOT_BIKE_VOUCHER jp TextScriptEnd - -.no_room_for_voucher - ld hl, Text_59c1a +.bag_full + ld hl, .bagfulltext jr .gbpals_print_text - -.declined_story - ld hl, Text_59c10 +.nothanks + ld hl, .nostorytext jr .gbpals_print_text - -.got_bike_voucher_already - ld hl, Text_59c15 +.nothingleft + ld hl, .finaltext .gbpals_print_text push hl call LoadGBPal @@ -244,7 +243,7 @@ FanClubText5: ld [wUpdateSpritesEnabled], a ld hl, wd730 set 6, [hl] - callab PrintFanClubPortrait + callfar PrintFanClubPortrait ld hl, wd730 res 6, [hl] call GBPalWhiteOutWithDelay3 @@ -254,54 +253,54 @@ FanClubText5: call Delay3 call GBPalNormal ld hl, Text_59c2e - ld a, [hOaksAideResult] + ldh a, [hOaksAideResult] and a jr nz, .gbpals_print_text ld hl, Text_59c29 jr .gbpals_print_text -Text_59bfc: - TX_FAR FanClubMeetChairText - db "@" +.meetchairtext + text_far FanClubMeetChairText + text_end -Text_59c01: - TX_FAR FanClubChairStoryText - db "@" +.storytext + text_far FanClubChairStoryText + text_end -Text_59c06: - TX_FAR ReceivedBikeVoucherText - TX_SFX_KEY_ITEM - TX_FAR ExplainBikeVoucherText - db "@" +.receivedvouchertext + text_far ReceivedBikeVoucherText + sound_get_key_item + text_far ExplainBikeVoucherText + text_end -Text_59c10: - TX_FAR FanClubNoStoryText - db "@" +.nostorytext + text_far FanClubNoStoryText + text_end -Text_59c15: - TX_FAR FanClubChairFinalText - db "@" +.finaltext + text_far FanClubChairFinalText + text_end -Text_59c1a: - TX_FAR FanClubBagFullText - db "@" +.bagfulltext + text_far FanClubBagFullText + text_end Text_59c1f: - TX_FAR FanClubChairPrintText1 - db "@" + text_far FanClubChairPrintText1 + text_end Text_59c24: - TX_FAR FanClubChairPrintText2 - db "@" + text_far FanClubChairPrintText2 + text_end Text_59c29: - TX_FAR FanClubChairPrintText3 - db "@" + text_far FanClubChairPrintText3 + text_end Text_59c2e: - TX_FAR FanClubChairPrintText4 - db "@" + text_far FanClubChairPrintText4 + text_end FanClubText6: - TX_FAR _FanClubText6 - db "@" + text_far _FanClubText6 + text_end diff --git a/scripts/PokemonMansion1F.asm b/scripts/PokemonMansion1F.asm index 639a4acf8..ac86d6263 100755 --- a/scripts/PokemonMansion1F.asm +++ b/scripts/PokemonMansion1F.asm @@ -45,14 +45,14 @@ Mansion1ReplaceBlock: predef ReplaceTileBlock ret -Mansion1Script_Switches: +Mansion1Script_Switches:: ld a, [wSpritePlayerStateData1FacingDirection] cp SPRITE_FACING_UP ret nz xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $4 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a jp DisplayTextID PokemonMansion1F_ScriptPointers: @@ -67,36 +67,29 @@ PokemonMansion1F_TextPointers: dw Mansion1Text4 Mansion1TrainerHeader0: - dbEventFlagBit EVENT_BEAT_MANSION_1_TRAINER_0 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_MANSION_1_TRAINER_0 - dw Mansion1BattleText2 ; TextBeforeBattle - dw Mansion1AfterBattleText2 ; TextAfterBattle - dw Mansion1EndBattleText2 ; TextEndBattle - dw Mansion1EndBattleText2 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_MANSION_1_TRAINER_0, 3, Mansion1BattleText2, Mansion1EndBattleText2, Mansion1AfterBattleText2 + db -1 ; end Mansion1Text1: - TX_ASM + text_asm ld hl, Mansion1TrainerHeader0 call TalkToTrainer jp TextScriptEnd Mansion1BattleText2: - TX_FAR _Mansion1BattleText2 - db "@" + text_far _Mansion1BattleText2 + text_end Mansion1EndBattleText2: - TX_FAR _Mansion1EndBattleText2 - db "@" + text_far _Mansion1EndBattleText2 + text_end Mansion1AfterBattleText2: - TX_FAR _Mansion1AfterBattleText2 - db "@" + text_far _Mansion1AfterBattleText2 + text_end Mansion1Text4: - TX_ASM + text_asm ld hl, MansionSwitchText call PrintText call YesNoChoice @@ -122,13 +115,13 @@ Mansion1Text4: jp TextScriptEnd MansionSwitchText: - TX_FAR _MansionSwitchText - db "@" + text_far _MansionSwitchText + text_end MansionSwitchPressedText: - TX_FAR _MansionSwitchPressedText - db "@" + text_far _MansionSwitchPressedText + text_end MansionSwitchNotPressedText: - TX_FAR _MansionSwitchNotPressedText - db "@" + text_far _MansionSwitchNotPressedText + text_end diff --git a/scripts/PokemonMansion2F.asm b/scripts/PokemonMansion2F.asm index 8d05cdc9b..2edd0fb6d 100755 --- a/scripts/PokemonMansion2F.asm +++ b/scripts/PokemonMansion2F.asm @@ -41,14 +41,14 @@ Mansion2Script_5202f: ld [wNewTileBlockID], a predef_jump ReplaceTileBlock -Mansion2Script_Switches: +Mansion2Script_Switches:: ld a, [wSpritePlayerStateData1FacingDirection] cp SPRITE_FACING_UP ret nz xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $5 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a jp DisplayTextID PokemonMansion2F_ScriptPointers: @@ -64,45 +64,38 @@ PokemonMansion2F_TextPointers: dw Mansion2Text5 Mansion2TrainerHeader0: - dbEventFlagBit EVENT_BEAT_MANSION_2_TRAINER_0 - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_MANSION_2_TRAINER_0 - dw Mansion2BattleText1 ; TextBeforeBattle - dw Mansion2AfterBattleText1 ; TextAfterBattle - dw Mansion2EndBattleText1 ; TextEndBattle - dw Mansion2EndBattleText1 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_MANSION_2_TRAINER_0, 0, Mansion2BattleText1, Mansion2EndBattleText1, Mansion2AfterBattleText1 + db -1 ; end Mansion2Text1: - TX_ASM + text_asm ld hl, Mansion2TrainerHeader0 call TalkToTrainer jp TextScriptEnd Mansion2BattleText1: - TX_FAR _Mansion2BattleText1 - db "@" + text_far _Mansion2BattleText1 + text_end Mansion2EndBattleText1: - TX_FAR _Mansion2EndBattleText1 - db "@" + text_far _Mansion2EndBattleText1 + text_end Mansion2AfterBattleText1: - TX_FAR _Mansion2AfterBattleText1 - db "@" + text_far _Mansion2AfterBattleText1 + text_end Mansion2Text3: - TX_FAR _Mansion2Text3 - db "@" + text_far _Mansion2Text3 + text_end Mansion2Text4: - TX_FAR _Mansion2Text4 - db "@" + text_far _Mansion2Text4 + text_end Mansion3Text6: Mansion2Text5: - TX_ASM + text_asm ld hl, Mansion2Text_520c2 call PrintText call YesNoChoice @@ -128,13 +121,13 @@ Mansion2Text5: jp TextScriptEnd Mansion2Text_520c2: - TX_FAR _Mansion2Text_520c2 - db "@" + text_far _Mansion2Text_520c2 + text_end Mansion2Text_520c7: - TX_FAR _Mansion2Text_520c7 - db "@" + text_far _Mansion2Text_520c7 + text_end Mansion2Text_520cc: - TX_FAR _Mansion2Text_520cc - db "@" + text_far _Mansion2Text_520cc + text_end diff --git a/scripts/PokemonMansion3F.asm b/scripts/PokemonMansion3F.asm index e19fec720..0f62d6e02 100755 --- a/scripts/PokemonMansion3F.asm +++ b/scripts/PokemonMansion3F.asm @@ -51,10 +51,10 @@ Mansion3Script0: ret CoordsData_52254: - db $0E,$10 - db $0E,$11 - db $0E,$13 - db $FF + dbmapcoord 16, 14 + dbmapcoord 17, 14 + dbmapcoord 19, 14 + db -1 ; end Mansion3Script_5225b: xor a @@ -72,14 +72,14 @@ Mansion3Script_5225b: set 4, [hl] ret -Mansion3Script_Switches: +Mansion3Script_Switches:: ld a, [wSpritePlayerStateData1FacingDirection] cp SPRITE_FACING_UP ret nz xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $6 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a jp DisplayTextID PokemonMansion3F_TextPointers: @@ -91,61 +91,47 @@ PokemonMansion3F_TextPointers: dw Mansion3Text6 Mansion3TrainerHeader0: - dbEventFlagBit EVENT_BEAT_MANSION_3_TRAINER_0 - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_MANSION_3_TRAINER_0 - dw Mansion3BattleText1 ; TextBeforeBattle - dw Mansion3AfterBattleText1 ; TextAfterBattle - dw Mansion3EndBattleText1 ; TextEndBattle - dw Mansion3EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_MANSION_3_TRAINER_0, 0, Mansion3BattleText1, Mansion3EndBattleText1, Mansion3AfterBattleText1 Mansion3TrainerHeader1: - dbEventFlagBit EVENT_BEAT_MANSION_3_TRAINER_1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_MANSION_3_TRAINER_1 - dw Mansion3BattleText2 ; TextBeforeBattle - dw Mansion3AfterBattleText2 ; TextAfterBattle - dw Mansion3EndBattleText2 ; TextEndBattle - dw Mansion3EndBattleText2 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_MANSION_3_TRAINER_1, 2, Mansion3BattleText2, Mansion3EndBattleText2, Mansion3AfterBattleText2 + db -1 ; end Mansion3Text1: - TX_ASM + text_asm ld hl, Mansion3TrainerHeader0 call TalkToTrainer jp TextScriptEnd Mansion3Text2: - TX_ASM + text_asm ld hl, Mansion3TrainerHeader1 call TalkToTrainer jp TextScriptEnd Mansion3BattleText1: - TX_FAR _Mansion3BattleText1 - db "@" + text_far _Mansion3BattleText1 + text_end Mansion3EndBattleText1: - TX_FAR _Mansion3EndBattleText1 - db "@" + text_far _Mansion3EndBattleText1 + text_end Mansion3AfterBattleText1: - TX_FAR _Mansion3AfterBattleText1 - db "@" + text_far _Mansion3AfterBattleText1 + text_end Mansion3BattleText2: - TX_FAR _Mansion3BattleText2 - db "@" + text_far _Mansion3BattleText2 + text_end Mansion3EndBattleText2: - TX_FAR _Mansion3EndBattleText2 - db "@" + text_far _Mansion3EndBattleText2 + text_end Mansion3AfterBattleText2: - TX_FAR _Mansion3AfterBattleText2 - db "@" + text_far _Mansion3AfterBattleText2 + text_end Mansion3Text5: - TX_FAR _Mansion3Text5 - db "@" + text_far _Mansion3Text5 + text_end diff --git a/scripts/PokemonMansionB1F.asm b/scripts/PokemonMansionB1F.asm index 0a668c096..f3b627934 100755 --- a/scripts/PokemonMansionB1F.asm +++ b/scripts/PokemonMansionB1F.asm @@ -43,14 +43,14 @@ Mansion4Script_523cf: call Mansion2Script_5202f ret -Mansion4Script_Switches: +Mansion4Script_Switches:: ld a, [wSpritePlayerStateData1FacingDirection] cp SPRITE_FACING_UP ret nz xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $9 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a jp DisplayTextID PokemonMansionB1F_ScriptPointers: @@ -70,61 +70,47 @@ PokemonMansionB1F_TextPointers: dw Mansion3Text6 Mansion4TrainerHeader0: - dbEventFlagBit EVENT_BEAT_MANSION_4_TRAINER_0 - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_MANSION_4_TRAINER_0 - dw Mansion4BattleText1 ; TextBeforeBattle - dw Mansion4AfterBattleText1 ; TextAfterBattle - dw Mansion4EndBattleText1 ; TextEndBattle - dw Mansion4EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_MANSION_4_TRAINER_0, 0, Mansion4BattleText1, Mansion4EndBattleText1, Mansion4AfterBattleText1 Mansion4TrainerHeader1: - dbEventFlagBit EVENT_BEAT_MANSION_4_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_MANSION_4_TRAINER_1 - dw Mansion4BattleText2 ; TextBeforeBattle - dw Mansion4AfterBattleText2 ; TextAfterBattle - dw Mansion4EndBattleText2 ; TextEndBattle - dw Mansion4EndBattleText2 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_MANSION_4_TRAINER_1, 3, Mansion4BattleText2, Mansion4EndBattleText2, Mansion4AfterBattleText2 + db -1 ; end Mansion4Text1: - TX_ASM + text_asm ld hl, Mansion4TrainerHeader0 call TalkToTrainer jp TextScriptEnd Mansion4Text2: - TX_ASM + text_asm ld hl, Mansion4TrainerHeader1 call TalkToTrainer jp TextScriptEnd Mansion4BattleText1: - TX_FAR _Mansion4BattleText1 - db "@" + text_far _Mansion4BattleText1 + text_end Mansion4EndBattleText1: - TX_FAR _Mansion4EndBattleText1 - db "@" + text_far _Mansion4EndBattleText1 + text_end Mansion4AfterBattleText1: - TX_FAR _Mansion4AfterBattleText1 - db "@" + text_far _Mansion4AfterBattleText1 + text_end Mansion4BattleText2: - TX_FAR _Mansion4BattleText2 - db "@" + text_far _Mansion4BattleText2 + text_end Mansion4EndBattleText2: - TX_FAR _Mansion4EndBattleText2 - db "@" + text_far _Mansion4EndBattleText2 + text_end Mansion4AfterBattleText2: - TX_FAR _Mansion4AfterBattleText2 - db "@" + text_far _Mansion4AfterBattleText2 + text_end Mansion4Text7: - TX_FAR _Mansion4Text7 - db "@" + text_far _Mansion4Text7 + text_end diff --git a/scripts/PokemonTower1F.asm b/scripts/PokemonTower1F.asm index b383c6476..0870364c7 100755 --- a/scripts/PokemonTower1F.asm +++ b/scripts/PokemonTower1F.asm @@ -10,21 +10,21 @@ PokemonTower1F_TextPointers: dw PokemonTower1Text5 PokemonTower1Text1: - TX_FAR _PokemonTower1Text1 - db "@" + text_far _PokemonTower1Text1 + text_end PokemonTower1Text2: - TX_FAR _PokemonTower1Text2 - db "@" + text_far _PokemonTower1Text2 + text_end PokemonTower1Text3: - TX_FAR _PokemonTower1Text3 - db "@" + text_far _PokemonTower1Text3 + text_end PokemonTower1Text4: - TX_FAR _PokemonTower1Text4 - db "@" + text_far _PokemonTower1Text4 + text_end PokemonTower1Text5: - TX_FAR _PokemonTower1Text5 - db "@" + text_far _PokemonTower1Text5 + text_end diff --git a/scripts/PokemonTower2F.asm b/scripts/PokemonTower2F.asm index 54f49cae5..5065e5598 100755 --- a/scripts/PokemonTower2F.asm +++ b/scripts/PokemonTower2F.asm @@ -39,22 +39,22 @@ PokemonTower2Script0: .asm_60544 ld [wPlayerMovingDirection], a ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld a, b - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a - ld [hJoyHeld], a - ld [hJoyPressed], a + ldh [hJoyHeld], a + ldh [hJoyPressed], a ret CoordsData_6055e: - db $05,$0F - db $06,$0E - db $0F ; isn't this supposed to end in $ff? + dbmapcoord 15, 5 + dbmapcoord 14, 6 + db $0F ; end? (should be $ff?) PokemonTower2Script1: ld a, [wIsInBattle] @@ -64,19 +64,19 @@ PokemonTower2Script1: ld [wJoyIgnore], a SetEvent EVENT_BEAT_POKEMON_TOWER_RIVAL ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld de, MovementData_605b2 CheckEvent EVENT_POKEMON_TOWER_RIVAL_ON_LEFT jr nz, .asm_60589 - callab Func_f1e22 + callfar Func_f1e22 ld de, MovementData_605a9 .asm_60589 ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call MoveSprite call StopAllMusic - callba Music_RivalAlternateStart + farcall Music_RivalAlternateStart ld a, $2 ld [wPokemonTower2FCurScript], a ld [wCurMapScript], a @@ -91,7 +91,7 @@ MovementData_605a9: db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_RIGHT - db $FF + db -1 ; end MovementData_605b2: db NPC_MOVEMENT_DOWN @@ -102,7 +102,7 @@ MovementData_605b2: db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN - db $FF + db -1 ; end PokemonTower2Script2: ld a, [wd730] @@ -124,7 +124,7 @@ PokemonTower2F_TextPointers: dw PokemonTower2Text2 PokemonTower2Text1: - TX_ASM + text_asm CheckEvent EVENT_BEAT_POKEMON_TOWER_RIVAL jr z, .asm_16f24 ld hl, PokemonTower2Text_6063c @@ -139,7 +139,7 @@ PokemonTower2Text1: ld hl, PokemonTower2Text_60632 ld de, PokemonTower2Text_60637 call SaveEndBattleTextPointers - ld a, OPP_SONY2 + ld a, OPP_RIVAL2 ld [wCurOpponent], a ld a, [wRivalStarter] add $1 @@ -152,21 +152,21 @@ PokemonTower2Text1: jp TextScriptEnd PokemonTower2Text_6062d: - TX_FAR _PokemonTower2Text_6062d - db "@" + text_far _PokemonTower2Text_6062d + text_end PokemonTower2Text_60632: - TX_FAR _PokemonTower2Text_60632 - db "@" + text_far _PokemonTower2Text_60632 + text_end PokemonTower2Text_60637: - TX_FAR _PokemonTower2Text_60637 - db "@" + text_far _PokemonTower2Text_60637 + text_end PokemonTower2Text_6063c: - TX_FAR _PokemonTower2Text_6063c - db "@" + text_far _PokemonTower2Text_6063c + text_end PokemonTower2Text2: - TX_FAR _PokemonTower2Text2 - db "@" + text_far _PokemonTower2Text2 + text_end diff --git a/scripts/PokemonTower2F_2.asm b/scripts/PokemonTower2F_2.asm index 42659da36..0dfbb965e 100755 --- a/scripts/PokemonTower2F_2.asm +++ b/scripts/PokemonTower2F_2.asm @@ -1,4 +1,4 @@ -Func_f1e22: +Func_f1e22:: ld hl, PikachuMovementData_f1e2b ld b, SPRITE_FACING_RIGHT call TryApplyPikachuMovementData diff --git a/scripts/PokemonTower3F.asm b/scripts/PokemonTower3F.asm index 7d8f63e90..cf56904fb 100755 --- a/scripts/PokemonTower3F.asm +++ b/scripts/PokemonTower3F.asm @@ -19,83 +19,63 @@ PokemonTower3F_TextPointers: dw PickUpItemText PokemonTower3TrainerHeader0: - dbEventFlagBit EVENT_BEAT_POKEMONTOWER_3_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_3_TRAINER_0 - dw PokemonTower3BattleText1 ; TextBeforeBattle - dw PokemonTower3AfterBattleText1 ; TextAfterBattle - dw PokemonTower3EndBattleText1 ; TextEndBattle - dw PokemonTower3EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_POKEMONTOWER_3_TRAINER_0, 2, PokemonTower3BattleText1, PokemonTower3EndBattleText1, PokemonTower3AfterBattleText1 PokemonTower3TrainerHeader1: - dbEventFlagBit EVENT_BEAT_POKEMONTOWER_3_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_3_TRAINER_1 - dw PokemonTower3BattleText2 ; TextBeforeBattle - dw PokemonTower3AfterBattleText2 ; TextAfterBattle - dw PokemonTower3EndBattleText2 ; TextEndBattle - dw PokemonTower3EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_POKEMONTOWER_3_TRAINER_1, 3, PokemonTower3BattleText2, PokemonTower3EndBattleText2, PokemonTower3AfterBattleText2 PokemonTower3TrainerHeader2: - dbEventFlagBit EVENT_BEAT_POKEMONTOWER_3_TRAINER_2 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_3_TRAINER_2 - dw PokemonTower3BattleText3 ; TextBeforeBattle - dw PokemonTower3AfterBattleText3 ; TextAfterBattle - dw PokemonTower3EndBattleText3 ; TextEndBattle - dw PokemonTower3EndBattleText3 ; TextEndBattle - db $ff + trainer EVENT_BEAT_POKEMONTOWER_3_TRAINER_2, 2, PokemonTower3BattleText3, PokemonTower3EndBattleText3, PokemonTower3AfterBattleText3 + db -1 ; end PokemonTower3Text1: - TX_ASM + text_asm ld hl, PokemonTower3TrainerHeader0 call TalkToTrainer jp TextScriptEnd PokemonTower3Text2: - TX_ASM + text_asm ld hl, PokemonTower3TrainerHeader1 call TalkToTrainer jp TextScriptEnd PokemonTower3Text3: - TX_ASM + text_asm ld hl, PokemonTower3TrainerHeader2 call TalkToTrainer jp TextScriptEnd PokemonTower3BattleText1: - TX_FAR _PokemonTower3BattleText1 - db "@" + text_far _PokemonTower3BattleText1 + text_end PokemonTower3EndBattleText1: - TX_FAR _PokemonTower3EndBattleText1 - db "@" + text_far _PokemonTower3EndBattleText1 + text_end PokemonTower3AfterBattleText1: - TX_FAR _PokemonTower3AfterBattleText1 - db "@" + text_far _PokemonTower3AfterBattleText1 + text_end PokemonTower3BattleText2: - TX_FAR _PokemonTower3BattleText2 - db "@" + text_far _PokemonTower3BattleText2 + text_end PokemonTower3EndBattleText2: - TX_FAR _PokemonTower3EndBattleText2 - db "@" + text_far _PokemonTower3EndBattleText2 + text_end PokemonTower3AfterBattleText2: - TX_FAR _PokemonTower3AfterBattleText2 - db "@" + text_far _PokemonTower3AfterBattleText2 + text_end PokemonTower3BattleText3: - TX_FAR _PokemonTower3BattleText3 - db "@" + text_far _PokemonTower3BattleText3 + text_end PokemonTower3EndBattleText3: - TX_FAR _PokemonTower3EndBattleText3 - db "@" + text_far _PokemonTower3EndBattleText3 + text_end PokemonTower3AfterBattleText3: - TX_FAR _PokemonTower3AfterBattleText3 - db "@" + text_far _PokemonTower3AfterBattleText3 + text_end diff --git a/scripts/PokemonTower4F.asm b/scripts/PokemonTower4F.asm index b8e0d7721..e34316447 100755 --- a/scripts/PokemonTower4F.asm +++ b/scripts/PokemonTower4F.asm @@ -21,84 +21,63 @@ PokemonTower4F_TextPointers: dw PickUpItemText PokemonTower4TrainerHeader0: - dbEventFlagBit EVENT_BEAT_POKEMONTOWER_4_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_4_TRAINER_0 - dw PokemonTower4BattleText1 ; TextBeforeBattle - dw PokemonTower4AfterBattleText1 ; TextAfterBattle - dw PokemonTower4EndBattleText1 ; TextEndBattle - dw PokemonTower4EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_POKEMONTOWER_4_TRAINER_0, 2, PokemonTower4BattleText1, PokemonTower4EndBattleText1, PokemonTower4AfterBattleText1 PokemonTower4TrainerHeader1: - dbEventFlagBit EVENT_BEAT_POKEMONTOWER_4_TRAINER_1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_4_TRAINER_1 - dw PokemonTower4BattleText2 ; TextBeforeBattle - dw PokemonTower4AfterBattleText2 ; TextAfterBattle - dw PokemonTower4EndBattleText2 ; TextEndBattle - dw PokemonTower4EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_POKEMONTOWER_4_TRAINER_1, 2, PokemonTower4BattleText2, PokemonTower4EndBattleText2, PokemonTower4AfterBattleText2 PokemonTower4TrainerHeader2: - dbEventFlagBit EVENT_BEAT_POKEMONTOWER_4_TRAINER_2 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_4_TRAINER_2 - dw PokemonTower4BattleText3 ; TextBeforeBattle - dw PokemonTower4AfterBattleText3 ; TextAfterBattle - dw PokemonTower4EndBattleText3 ; TextEndBattle - dw PokemonTower4EndBattleText3 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_POKEMONTOWER_4_TRAINER_2, 2, PokemonTower4BattleText3, PokemonTower4EndBattleText3, PokemonTower4AfterBattleText3 + db -1 ; end PokemonTower4Text1: - TX_ASM + text_asm ld hl, PokemonTower4TrainerHeader0 call TalkToTrainer jp TextScriptEnd PokemonTower4Text2: - TX_ASM + text_asm ld hl, PokemonTower4TrainerHeader1 call TalkToTrainer jp TextScriptEnd PokemonTower4Text3: - TX_ASM + text_asm ld hl, PokemonTower4TrainerHeader2 call TalkToTrainer jp TextScriptEnd PokemonTower4BattleText1: - TX_FAR _PokemonTower4BattleText1 - db "@" + text_far _PokemonTower4BattleText1 + text_end PokemonTower4EndBattleText1: - TX_FAR _PokemonTower4EndBattleText1 - db "@" + text_far _PokemonTower4EndBattleText1 + text_end PokemonTower4AfterBattleText1: - TX_FAR _PokemonTower4AfterBattleText1 - db "@" + text_far _PokemonTower4AfterBattleText1 + text_end PokemonTower4BattleText2: - TX_FAR _PokemonTower4BattleText2 - db "@" + text_far _PokemonTower4BattleText2 + text_end PokemonTower4EndBattleText2: - TX_FAR _PokemonTower4EndBattleText2 - db "@" + text_far _PokemonTower4EndBattleText2 + text_end PokemonTower4AfterBattleText2: - TX_FAR _PokemonTower4AfterBattleText2 - db "@" + text_far _PokemonTower4AfterBattleText2 + text_end PokemonTower4BattleText3: - TX_FAR _PokemonTower4BattleText3 - db "@" + text_far _PokemonTower4BattleText3 + text_end PokemonTower4EndBattleText3: - TX_FAR _PokemonTower4EndBattleText3 - db "@" + text_far _PokemonTower4EndBattleText3 + text_end PokemonTower4AfterBattleText3: - TX_FAR _PokemonTower4AfterBattleText3 - db "@" + text_far _PokemonTower4AfterBattleText3 + text_end diff --git a/scripts/PokemonTower5F.asm b/scripts/PokemonTower5F.asm index 299261e96..10189a8e9 100755 --- a/scripts/PokemonTower5F.asm +++ b/scripts/PokemonTower5F.asm @@ -24,7 +24,7 @@ PokemonTower5Script0: CheckAndSetEvent EVENT_IN_PURIFIED_ZONE ret nz xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $f0 ld [wJoyIgnore], a ld hl, wd72e @@ -35,18 +35,18 @@ PokemonTower5Script0: call Delay3 call GBFadeInFromWhite ld a, $7 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wJoyIgnore], a ret CoordsData_60992: - db $08,$0A - db $08,$0B - db $09,$0A - db $09,$0B - db $FF + dbmapcoord 10, 8 + dbmapcoord 11, 8 + dbmapcoord 10, 9 + dbmapcoord 11, 9 + db -1 ; end PokemonTower5F_TextPointers: dw PokemonTower5Text1 @@ -58,119 +58,91 @@ PokemonTower5F_TextPointers: dw PokemonTower5Text7 PokemonTower5TrainerHeader0: - dbEventFlagBit EVENT_BEAT_POKEMONTOWER_5_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_5_TRAINER_0 - dw PokemonTower5BattleText1 ; TextBeforeBattle - dw PokemonTower5AfterBattleText1 ; TextAfterBattle - dw PokemonTower5EndBattleText1 ; TextEndBattle - dw PokemonTower5EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_POKEMONTOWER_5_TRAINER_0, 2, PokemonTower5BattleText1, PokemonTower5EndBattleText1, PokemonTower5AfterBattleText1 PokemonTower5TrainerHeader1: - dbEventFlagBit EVENT_BEAT_POKEMONTOWER_5_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_5_TRAINER_1 - dw PokemonTower5BattleText2 ; TextBeforeBattle - dw PokemonTower5AfterBattleText2 ; TextAfterBattle - dw PokemonTower5EndBattleText2 ; TextEndBattle - dw PokemonTower5EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_POKEMONTOWER_5_TRAINER_1, 3, PokemonTower5BattleText2, PokemonTower5EndBattleText2, PokemonTower5AfterBattleText2 PokemonTower5TrainerHeader2: - dbEventFlagBit EVENT_BEAT_POKEMONTOWER_5_TRAINER_2 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_5_TRAINER_2 - dw PokemonTower5BattleText3 ; TextBeforeBattle - dw PokemonTower5AfterBattleText3 ; TextAfterBattle - dw PokemonTower5EndBattleText3 ; TextEndBattle - dw PokemonTower5EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_POKEMONTOWER_5_TRAINER_2, 2, PokemonTower5BattleText3, PokemonTower5EndBattleText3, PokemonTower5AfterBattleText3 PokemonTower5TrainerHeader3: - dbEventFlagBit EVENT_BEAT_POKEMONTOWER_5_TRAINER_3 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_5_TRAINER_3 - dw PokemonTower5BattleText4 ; TextBeforeBattle - dw PokemonTower5AfterBattleText4 ; TextAfterBattle - dw PokemonTower5EndBattleText4 ; TextEndBattle - dw PokemonTower5EndBattleText4 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_POKEMONTOWER_5_TRAINER_3, 2, PokemonTower5BattleText4, PokemonTower5EndBattleText4, PokemonTower5AfterBattleText4 + db -1 ; end PokemonTower5Text1: - TX_FAR _PokemonTower5Text1 - db "@" + text_far _PokemonTower5Text1 + text_end PokemonTower5Text2: - TX_ASM + text_asm ld hl, PokemonTower5TrainerHeader0 call TalkToTrainer jp TextScriptEnd PokemonTower5BattleText1: - TX_FAR _PokemonTower5BattleText1 - db "@" + text_far _PokemonTower5BattleText1 + text_end PokemonTower5EndBattleText1: - TX_FAR _PokemonTower5EndBattleText1 - db "@" + text_far _PokemonTower5EndBattleText1 + text_end PokemonTower5AfterBattleText1: - TX_FAR _PokemonTower5AfterBattleText1 - db "@" + text_far _PokemonTower5AfterBattleText1 + text_end PokemonTower5Text3: - TX_ASM + text_asm ld hl, PokemonTower5TrainerHeader1 call TalkToTrainer jp TextScriptEnd PokemonTower5BattleText2: - TX_FAR _PokemonTower5BattleText2 - db "@" + text_far _PokemonTower5BattleText2 + text_end PokemonTower5EndBattleText2: - TX_FAR _PokemonTower5EndBattleText2 - db "@" + text_far _PokemonTower5EndBattleText2 + text_end PokemonTower5AfterBattleText2: - TX_FAR _PokemonTower5AfterBattleText2 - db "@" + text_far _PokemonTower5AfterBattleText2 + text_end PokemonTower5Text4: - TX_ASM + text_asm ld hl, PokemonTower5TrainerHeader2 call TalkToTrainer jp TextScriptEnd PokemonTower5BattleText3: - TX_FAR _PokemonTower5BattleText3 - db "@" + text_far _PokemonTower5BattleText3 + text_end PokemonTower5EndBattleText3: - TX_FAR _PokemonTower5EndBattleText3 - db "@" + text_far _PokemonTower5EndBattleText3 + text_end PokemonTower5AfterBattleText3: - TX_FAR _PokemonTower5AfterBattleText3 - db "@" + text_far _PokemonTower5AfterBattleText3 + text_end PokemonTower5Text5: - TX_ASM + text_asm ld hl, PokemonTower5TrainerHeader3 call TalkToTrainer jp TextScriptEnd PokemonTower5BattleText4: - TX_FAR _PokemonTower5BattleText4 - db "@" + text_far _PokemonTower5BattleText4 + text_end PokemonTower5EndBattleText4: - TX_FAR _PokemonTower5EndBattleText4 - db "@" + text_far _PokemonTower5EndBattleText4 + text_end PokemonTower5AfterBattleText4: - TX_FAR _PokemonTower5AfterBattleText4 - db "@" + text_far _PokemonTower5AfterBattleText4 + text_end PokemonTower5Text7: - TX_FAR _PokemonTower5Text7 - db "@" + text_far _PokemonTower5Text7 + text_end diff --git a/scripts/PokemonTower6F.asm b/scripts/PokemonTower6F.asm index 962d33ebb..e236488e1 100755 --- a/scripts/PokemonTower6F.asm +++ b/scripts/PokemonTower6F.asm @@ -28,9 +28,9 @@ PokemonTower6Script0: call ArePlayerCoordsInArray jp nc, CheckFightingMapTrainers xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $6 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, RESTLESS_SOUL ld [wCurOpponent], a @@ -42,7 +42,8 @@ PokemonTower6Script0: ret CoordsData_60b45: - db $10,$0A,$FF + dbmapcoord 10, 16 + db -1 ; end PokemonTower6Script4: ld a, [wIsInBattle] @@ -61,7 +62,7 @@ PokemonTower6Script4: jr nz, .asm_60b82 SetEvent EVENT_BEAT_GHOST_MAROWAK ld a, $7 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wJoyIgnore], a @@ -75,7 +76,7 @@ PokemonTower6Script4: ld a, $10 ld [wSimulatedJoypadStatesEnd], a xor a - ld [wSpriteStateData2 + $06], a + ld [wSpritePlayerStateData2MovementByte1], a ld [wOverrideSimulatedJoypadStatesMask], a ld hl, wd730 set 7, [hl] @@ -104,54 +105,33 @@ PokemonTower6F_TextPointers: dw PokemonTower6Text7 PokemonTower6TrainerHeader0: - dbEventFlagBit EVENT_BEAT_POKEMONTOWER_6_TRAINER_0 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_6_TRAINER_0 - dw PokemonTower6BattleText1 ; TextBeforeBattle - dw PokemonTower6AfterBattleText1 ; TextAfterBattle - dw PokemonTower6EndBattleText1 ; TextEndBattle - dw PokemonTower6EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_POKEMONTOWER_6_TRAINER_0, 3, PokemonTower6BattleText1, PokemonTower6EndBattleText1, PokemonTower6AfterBattleText1 PokemonTower6TrainerHeader1: - dbEventFlagBit EVENT_BEAT_POKEMONTOWER_6_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_6_TRAINER_1 - dw PokemonTower6BattleText2 ; TextBeforeBattle - dw PokemonTower6AfterBattleText2 ; TextAfterBattle - dw PokemonTower6EndBattleText2 ; TextEndBattle - dw PokemonTower6EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_POKEMONTOWER_6_TRAINER_1, 3, PokemonTower6BattleText2, PokemonTower6EndBattleText2, PokemonTower6AfterBattleText2 PokemonTower6TrainerHeader2: - dbEventFlagBit EVENT_BEAT_POKEMONTOWER_6_TRAINER_2 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_6_TRAINER_2 - dw PokemonTower6BattleText3 ; TextBeforeBattle - dw PokemonTower6AfterBattleText3 ; TextAfterBattle - dw PokemonTower6EndBattleText3 ; TextEndBattle - dw PokemonTower6EndBattleText3 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_POKEMONTOWER_6_TRAINER_2, 2, PokemonTower6BattleText3, PokemonTower6EndBattleText3, PokemonTower6AfterBattleText3 + db -1 ; end PokemonTower6Text1: - TX_ASM + text_asm ld hl, PokemonTower6TrainerHeader0 call TalkToTrainer jp TextScriptEnd PokemonTower6Text2: - TX_ASM + text_asm ld hl, PokemonTower6TrainerHeader1 call TalkToTrainer jp TextScriptEnd PokemonTower6Text3: - TX_ASM + text_asm ld hl, PokemonTower6TrainerHeader2 call TalkToTrainer jp TextScriptEnd PokemonTower6Text7: - TX_ASM + text_asm ld hl, PokemonTower2Text_60c1f call PrintText ld a, RESTLESS_SOUL @@ -164,49 +144,49 @@ PokemonTower6Text7: jp TextScriptEnd PokemonTower2Text_60c1f: - TX_FAR _PokemonTower2Text_60c1f - db "@" + text_far _PokemonTower2Text_60c1f + text_end PokemonTower2Text_60c24: - TX_FAR _PokemonTower2Text_60c24 - db "@" + text_far _PokemonTower2Text_60c24 + text_end PokemonTower6BattleText1: - TX_FAR _PokemonTower6BattleText1 - db "@" + text_far _PokemonTower6BattleText1 + text_end PokemonTower6EndBattleText1: - TX_FAR _PokemonTower6EndBattleText1 - db "@" + text_far _PokemonTower6EndBattleText1 + text_end PokemonTower6AfterBattleText1: - TX_FAR _PokemonTower6AfterBattleText1 - db "@" + text_far _PokemonTower6AfterBattleText1 + text_end PokemonTower6BattleText2: - TX_FAR _PokemonTower6BattleText2 - db "@" + text_far _PokemonTower6BattleText2 + text_end PokemonTower6EndBattleText2: - TX_FAR _PokemonTower6EndBattleText2 - db "@" + text_far _PokemonTower6EndBattleText2 + text_end PokemonTower6AfterBattleText2: - TX_FAR _PokemonTower6AfterBattleText2 - db "@" + text_far _PokemonTower6AfterBattleText2 + text_end PokemonTower6BattleText3: - TX_FAR _PokemonTower6BattleText3 - db "@" + text_far _PokemonTower6BattleText3 + text_end PokemonTower6EndBattleText3: - TX_FAR _PokemonTower6EndBattleText3 - db "@" + text_far _PokemonTower6EndBattleText3 + text_end PokemonTower6AfterBattleText3: - TX_FAR _PokemonTower6AfterBattleText3 - db "@" + text_far _PokemonTower6AfterBattleText3 + text_end PokemonTower6Text6: - TX_FAR _PokemonTower6Text6 - db "@" + text_far _PokemonTower6Text6 + text_end diff --git a/scripts/PokemonTower7F.asm b/scripts/PokemonTower7F.asm index e34edf660..75e67a72a 100755 --- a/scripts/PokemonTower7F.asm +++ b/scripts/PokemonTower7F.asm @@ -49,7 +49,7 @@ PokemonTower7Script_60d2a: ld a, MUSIC_MEET_JESSIE_JAMES call PlayMusic xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $FF ^ (A_BUTTON | B_BUTTON) ld [wJoyIgnore], a ld a, HS_POKEMON_TOWER_7F_JESSIE @@ -59,7 +59,7 @@ PokemonTower7Script_60d2a: ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld a, $4 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff ld [wJoyIgnore], a @@ -82,7 +82,7 @@ PokemonTower7Script1: ld de, PokemonTower7MovementData_60d7a .asm_60d8c ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call MoveSprite ld a, $ff ld [wJoyIgnore], a @@ -113,7 +113,7 @@ PokemonTower7Script4: ld de, PokemonTower7MovementData_60d7b .asm_60dcc ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call MoveSprite ld a, $ff ld [wJoyIgnore], a @@ -140,7 +140,7 @@ PokemonTower7Script6: ld a, $FF ^ (A_BUTTON | B_BUTTON) ld [wJoyIgnore], a ld a, $5 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID PokemonTower7Script7: ld hl, wd72d @@ -154,7 +154,7 @@ PokemonTower7Script7: ld a, $2c ld [wTrainerNo], a xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld [wJoyIgnore], a ld a, $8 call PokemonTower7Script_60d05 @@ -177,7 +177,7 @@ PokemonTower7Script8: ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld a, $6 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wDoNotWaitForButtonPressAfterDisplayingText], a @@ -209,7 +209,7 @@ PokemonTower7Script9: PokemonTower7Script10: call PlayDefaultMusic xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld [wJoyIgnore], a SetEvent EVENT_BEAT_POKEMONTOWER_7_TRAINER_0 ld a, $0 @@ -223,7 +223,7 @@ PokemonTower7Script_60eaf: call Delay3 ret -PokemonTower7Script_60ebe +PokemonTower7Script_60ebe: ld [wMissableObjectIndex], a predef HideObject ret @@ -237,7 +237,7 @@ PokemonTower7Script11: ld a, SPRITE_FACING_UP ld [wSpritePlayerStateData1FacingDirection], a ld a, MR_FUJIS_HOUSE - ld [hWarpDestinationMap], a + ldh [hWarpDestinationMap], a ld a, $1 ld [wDestinationWarpID], a ld a, LAVENDER_TOWN @@ -258,11 +258,11 @@ PokemonTower7F_TextPointers: PokemonTower7Text1: PokemonTower7Text2: - db "@" + text_end PokemonTower7Text4: - TX_FAR _PokemonTowerJessieJamesText1 - TX_ASM + text_far _PokemonTowerJessieJamesText1 + text_asm ld c, 10 call DelayFrames ld a, PLAYER_DIR_UP @@ -277,22 +277,22 @@ PokemonTower7Text4: jp TextScriptEnd PokemonTower7Text5: - TX_FAR _PokemonTowerJessieJamesText2 - db "@" + text_far _PokemonTowerJessieJamesText2 + text_end PokemonTower7JessieJamesEndBattleText: - TX_FAR _PokemonTowerJessieJamesText3 - db "@" + text_far _PokemonTowerJessieJamesText3 + text_end PokemonTower7Text6: - TX_FAR _PokemonTowerJessieJamesText4 - TX_ASM + text_far _PokemonTowerJessieJamesText4 + text_asm ld c, 64 call DelayFrames jp TextScriptEnd PokemonTower7Text3: - TX_ASM + text_asm ld hl, PokemonTower7Text_60f75 call PrintText SetEvent EVENT_RESCUED_MR_FUJI @@ -311,5 +311,5 @@ PokemonTower7Text3: jp TextScriptEnd PokemonTower7Text_60f75: - TX_FAR _TowerRescueFujiText - db "@" + text_far _TowerRescueFujiText + text_end diff --git a/scripts/PowerPlant.asm b/scripts/PowerPlant.asm index f720b6f87..76859218a 100755 --- a/scripts/PowerPlant.asm +++ b/scripts/PowerPlant.asm @@ -29,87 +29,24 @@ PowerPlant_TextPointers: dw PickUpItemText Voltorb0TrainerHeader: - dbEventFlagBit EVENT_BEAT_POWER_PLANT_VOLTORB_0 - db 0 ; view range - dwEventFlagAddress EVENT_BEAT_POWER_PLANT_VOLTORB_0 - dw VoltorbBattleText ; TextBeforeBattle - dw VoltorbBattleText ; TextAfterBattle - dw VoltorbBattleText ; TextEndBattle - dw VoltorbBattleText ; TextEndBattle - + trainer EVENT_BEAT_POWER_PLANT_VOLTORB_0, 0, VoltorbBattleText, VoltorbBattleText, VoltorbBattleText Voltorb1TrainerHeader: - dbEventFlagBit EVENT_BEAT_POWER_PLANT_VOLTORB_1 - db 0 ; view range - dwEventFlagAddress EVENT_BEAT_POWER_PLANT_VOLTORB_1 - dw VoltorbBattleText ; TextBeforeBattle - dw VoltorbBattleText ; TextAfterBattle - dw VoltorbBattleText ; TextEndBattle - dw VoltorbBattleText ; TextEndBattle - + trainer EVENT_BEAT_POWER_PLANT_VOLTORB_1, 0, VoltorbBattleText, VoltorbBattleText, VoltorbBattleText Voltorb2TrainerHeader: - dbEventFlagBit EVENT_BEAT_POWER_PLANT_VOLTORB_2 - db 0 ; view range - dwEventFlagAddress EVENT_BEAT_POWER_PLANT_VOLTORB_2 - dw VoltorbBattleText ; TextBeforeBattle - dw VoltorbBattleText ; TextAfterBattle - dw VoltorbBattleText ; TextEndBattle - dw VoltorbBattleText ; TextEndBattle - + trainer EVENT_BEAT_POWER_PLANT_VOLTORB_2, 0, VoltorbBattleText, VoltorbBattleText, VoltorbBattleText Voltorb3TrainerHeader: - dbEventFlagBit EVENT_BEAT_POWER_PLANT_VOLTORB_3 - db 0 ; view range - dwEventFlagAddress EVENT_BEAT_POWER_PLANT_VOLTORB_3 - dw VoltorbBattleText ; TextBeforeBattle - dw VoltorbBattleText ; TextAfterBattle - dw VoltorbBattleText ; TextEndBattle - dw VoltorbBattleText ; TextEndBattle - + trainer EVENT_BEAT_POWER_PLANT_VOLTORB_3, 0, VoltorbBattleText, VoltorbBattleText, VoltorbBattleText Voltorb4TrainerHeader: - dbEventFlagBit EVENT_BEAT_POWER_PLANT_VOLTORB_4 - db 0 ; view range - dwEventFlagAddress EVENT_BEAT_POWER_PLANT_VOLTORB_4 - dw VoltorbBattleText ; TextBeforeBattle - dw VoltorbBattleText ; TextAfterBattle - dw VoltorbBattleText ; TextEndBattle - dw VoltorbBattleText ; TextEndBattle - + trainer EVENT_BEAT_POWER_PLANT_VOLTORB_4, 0, VoltorbBattleText, VoltorbBattleText, VoltorbBattleText Voltorb5TrainerHeader: - dbEventFlagBit EVENT_BEAT_POWER_PLANT_VOLTORB_5 - db 0 ; view range - dwEventFlagAddress EVENT_BEAT_POWER_PLANT_VOLTORB_5 - dw VoltorbBattleText ; TextBeforeBattle - dw VoltorbBattleText ; TextAfterBattle - dw VoltorbBattleText ; TextEndBattle - dw VoltorbBattleText ; TextEndBattle - + trainer EVENT_BEAT_POWER_PLANT_VOLTORB_5, 0, VoltorbBattleText, VoltorbBattleText, VoltorbBattleText Voltorb6TrainerHeader: - dbEventFlagBit EVENT_BEAT_POWER_PLANT_VOLTORB_6 - db 0 ; view range - dwEventFlagAddress EVENT_BEAT_POWER_PLANT_VOLTORB_6 - dw VoltorbBattleText ; TextBeforeBattle - dw VoltorbBattleText ; TextAfterBattle - dw VoltorbBattleText ; TextEndBattle - dw VoltorbBattleText ; TextEndBattle - + trainer EVENT_BEAT_POWER_PLANT_VOLTORB_6, 0, VoltorbBattleText, VoltorbBattleText, VoltorbBattleText Voltorb7TrainerHeader: - dbEventFlagBit EVENT_BEAT_POWER_PLANT_VOLTORB_7, 1 - db 0 ; view range - dwEventFlagAddress EVENT_BEAT_POWER_PLANT_VOLTORB_7, 1 - dw VoltorbBattleText ; TextBeforeBattle - dw VoltorbBattleText ; TextAfterBattle - dw VoltorbBattleText ; TextEndBattle - dw VoltorbBattleText ; TextEndBattle - + trainer EVENT_BEAT_POWER_PLANT_VOLTORB_7, 1, 0, VoltorbBattleText, VoltorbBattleText, VoltorbBattleText ZapdosTrainerHeader: - dbEventFlagBit EVENT_BEAT_ZAPDOS, 1 - db 0 ; view range - dwEventFlagAddress EVENT_BEAT_ZAPDOS, 1 - dw ZapdosBattleText ; TextBeforeBattle - dw ZapdosBattleText ; TextAfterBattle - dw ZapdosBattleText ; TextEndBattle - dw ZapdosBattleText ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ZAPDOS, 1, 0, ZapdosBattleText, ZapdosBattleText, ZapdosBattleText + db -1 ; end InitVoltorbBattle: call TalkToTrainer @@ -118,57 +55,57 @@ InitVoltorbBattle: jp TextScriptEnd Voltorb0Text: - TX_ASM + text_asm ld hl, Voltorb0TrainerHeader jr InitVoltorbBattle Voltorb1Text: - TX_ASM + text_asm ld hl, Voltorb1TrainerHeader jr InitVoltorbBattle Voltorb2Text: - TX_ASM + text_asm ld hl, Voltorb2TrainerHeader jr InitVoltorbBattle Voltorb3Text: - TX_ASM + text_asm ld hl, Voltorb3TrainerHeader jr InitVoltorbBattle Voltorb4Text: - TX_ASM + text_asm ld hl, Voltorb4TrainerHeader jr InitVoltorbBattle Voltorb5Text: - TX_ASM + text_asm ld hl, Voltorb5TrainerHeader jr InitVoltorbBattle Voltorb6Text: - TX_ASM + text_asm ld hl, Voltorb6TrainerHeader jr InitVoltorbBattle Voltorb7Text: - TX_ASM + text_asm ld hl, Voltorb7TrainerHeader jr InitVoltorbBattle ZapdosText: - TX_ASM + text_asm ld hl, ZapdosTrainerHeader jr InitVoltorbBattle VoltorbBattleText: - TX_FAR _VoltorbBattleText - db "@" + text_far _VoltorbBattleText + text_end ZapdosBattleText: - TX_FAR _ZapdosBattleText - TX_ASM + text_far _ZapdosBattleText + text_asm ld a, ZAPDOS call PlayCry call WaitForSoundToFinish diff --git a/scripts/RedsHouse1F.asm b/scripts/RedsHouse1F.asm index e4fa2094f..4af4a2e6a 100755 --- a/scripts/RedsHouse1F.asm +++ b/scripts/RedsHouse1F.asm @@ -3,15 +3,15 @@ RedsHouse1F_Script: ret RedsHouse1F_TextPointers: - dw RedsHouse1FText1 - dw RedsHouse1FText2 + dw RedsHouse1FMomText + dw RedsHouse1FTVText -RedsHouse1FText1: ; Mom - TX_ASM - callab Func_f1b73 +RedsHouse1FMomText: + text_asm + callfar Func_f1b73 jp TextScriptEnd -RedsHouse1FText2: ; TV - TX_ASM - callab Func_f1bc4 +RedsHouse1FTVText: + text_asm + callfar Func_f1bc4 jp TextScriptEnd diff --git a/scripts/RedsHouse1F2.asm b/scripts/RedsHouse1F2.asm index 8f44d30d2..e1b2145be 100755 --- a/scripts/RedsHouse1F2.asm +++ b/scripts/RedsHouse1F2.asm @@ -1,14 +1,14 @@ -Func_f1b73: +Func_f1b73:: ld a, [wd72e] - bit 3, a - jp nz, MomHealPokemon ; if player has received a Pokémon from Oak, heal team + bit 3, a ; received a Pokémon from Oak? + jp nz, MomHealPokemon ld hl, MomWakeUpText call PrintText ret MomWakeUpText: - TX_FAR _MomWakeUpText - db "@" + text_far _MomWakeUpText + text_end MomHealPokemon: ld hl, MomHealText1 @@ -19,10 +19,10 @@ MomHealPokemon: ld a, MUSIC_PKMN_HEALED ld [wNewSoundID], a call PlaySound -.loop +.next ld a, [wChannelSoundIDs] cp MUSIC_PKMN_HEALED - jr z, .loop + jr z, .next ld a, [wMapMusicSoundID] ld [wNewSoundID], a call PlaySound @@ -32,27 +32,27 @@ MomHealPokemon: ret MomHealText1: - TX_FAR _MomHealText1 - db "@" + text_far _MomHealText1 + text_end MomHealText2: - TX_FAR _MomHealText2 - db "@" + text_far _MomHealText2 + text_end -Func_f1bc4: +Func_f1bc4:: ld hl, TVWrongSideText ld a, [wSpritePlayerStateData1FacingDirection] cp SPRITE_FACING_UP - jp nz, .notUp + jp nz, .got_text ld hl, StandByMeText -.notUp +.got_text call PrintText ret StandByMeText: - TX_FAR _StandByMeText - db "@" + text_far _StandByMeText + text_end TVWrongSideText: - TX_FAR _TVWrongSideText - db "@" + text_far _TVWrongSideText + text_end diff --git a/scripts/RedsHouse2F.asm b/scripts/RedsHouse2F.asm index e692a0fac..4eb465c48 100755 --- a/scripts/RedsHouse2F.asm +++ b/scripts/RedsHouse2F.asm @@ -20,4 +20,5 @@ RedsHouse2FScript4: ret RedsHouse2F_TextPointers: - db "@" + + text_end ; unused diff --git a/scripts/RockTunnel1F.asm b/scripts/RockTunnel1F.asm index 94620d962..606e03173 100755 --- a/scripts/RockTunnel1F.asm +++ b/scripts/RockTunnel1F.asm @@ -23,191 +23,142 @@ RockTunnel1F_TextPointers: dw RockTunnel1Text8 RockTunnel1TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_0 - dw RockTunnel1BattleText1 ; TextBeforeBattle - dw RockTunnel1AfterBattleText1 ; TextAfterBattle - dw RockTunnel1EndBattleText1 ; TextEndBattle - dw RockTunnel1EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_0, 4, RockTunnel1BattleText1, RockTunnel1EndBattleText1, RockTunnel1AfterBattleText1 RockTunnel1TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_1 - dw RockTunnel1BattleText2 ; TextBeforeBattle - dw RockTunnel1AfterBattleText2 ; TextAfterBattle - dw RockTunnel1EndBattleText2 ; TextEndBattle - dw RockTunnel1EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_1, 4, RockTunnel1BattleText2, RockTunnel1EndBattleText2, RockTunnel1AfterBattleText2 RockTunnel1TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_2 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_2 - dw RockTunnel1BattleText3 ; TextBeforeBattle - dw RockTunnel1AfterBattleText3 ; TextAfterBattle - dw RockTunnel1EndBattleText3 ; TextEndBattle - dw RockTunnel1EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_2, 3, RockTunnel1BattleText3, RockTunnel1EndBattleText3, RockTunnel1AfterBattleText3 RockTunnel1TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_3 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_3 - dw RockTunnel1BattleText4 ; TextBeforeBattle - dw RockTunnel1AfterBattleText4 ; TextAfterBattle - dw RockTunnel1EndBattleText4 ; TextEndBattle - dw RockTunnel1EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_3, 3, RockTunnel1BattleText4, RockTunnel1EndBattleText4, RockTunnel1AfterBattleText4 RockTunnel1TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_4 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_4 - dw RockTunnel1BattleText5 ; TextBeforeBattle - dw RockTunnel1AfterBattleText5 ; TextAfterBattle - dw RockTunnel1EndBattleText5 ; TextEndBattle - dw RockTunnel1EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_4, 4, RockTunnel1BattleText5, RockTunnel1EndBattleText5, RockTunnel1AfterBattleText5 RockTunnel1TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_5 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_5 - dw RockTunnel1BattleText6 ; TextBeforeBattle - dw RockTunnel1AfterBattleText6 ; TextAfterBattle - dw RockTunnel1EndBattleText6 ; TextEndBattle - dw RockTunnel1EndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_5, 4, RockTunnel1BattleText6, RockTunnel1EndBattleText6, RockTunnel1AfterBattleText6 RockTunnel1TrainerHeader6: - dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_6 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_6 - dw RockTunnel1BattleText7 ; TextBeforeBattle - dw RockTunnel1AfterBattleText7 ; TextAfterBattle - dw RockTunnel1EndBattleText7 ; TextEndBattle - dw RockTunnel1EndBattleText7 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROCK_TUNNEL_1_TRAINER_6, 4, RockTunnel1BattleText7, RockTunnel1EndBattleText7, RockTunnel1AfterBattleText7 + db -1 ; end RockTunnel1Text1: - TX_ASM + text_asm ld hl, RockTunnel1TrainerHeader0 jr RockTunnel1TalkToTrainer RockTunnel1Text2: - TX_ASM + text_asm ld hl, RockTunnel1TrainerHeader1 jr RockTunnel1TalkToTrainer RockTunnel1Text3: - TX_ASM + text_asm ld hl, RockTunnel1TrainerHeader2 jr RockTunnel1TalkToTrainer RockTunnel1Text4: - TX_ASM + text_asm ld hl, RockTunnel1TrainerHeader3 jr RockTunnel1TalkToTrainer RockTunnel1Text5: - TX_ASM + text_asm ld hl, RockTunnel1TrainerHeader4 jr RockTunnel1TalkToTrainer RockTunnel1Text6: - TX_ASM + text_asm ld hl, RockTunnel1TrainerHeader5 jr RockTunnel1TalkToTrainer RockTunnel1Text7: - TX_ASM + text_asm ld hl, RockTunnel1TrainerHeader6 RockTunnel1TalkToTrainer: call TalkToTrainer jp TextScriptEnd RockTunnel1BattleText1: - TX_FAR _RockTunnel1BattleText1 - db "@" + text_far _RockTunnel1BattleText1 + text_end RockTunnel1EndBattleText1: - TX_FAR _RockTunnel1EndBattleText1 - db "@" + text_far _RockTunnel1EndBattleText1 + text_end RockTunnel1AfterBattleText1: - TX_FAR _RockTunnel1AfterBattleText1 - db "@" + text_far _RockTunnel1AfterBattleText1 + text_end RockTunnel1BattleText2: - TX_FAR _RockTunnel1BattleText2 - db "@" + text_far _RockTunnel1BattleText2 + text_end RockTunnel1EndBattleText2: - TX_FAR _RockTunnel1EndBattleText2 - db "@" + text_far _RockTunnel1EndBattleText2 + text_end RockTunnel1AfterBattleText2: - TX_FAR _RockTunnel1AfterBattleText2 - db "@" + text_far _RockTunnel1AfterBattleText2 + text_end RockTunnel1BattleText3: - TX_FAR _RockTunnel1BattleText3 - db "@" + text_far _RockTunnel1BattleText3 + text_end RockTunnel1EndBattleText3: - TX_FAR _RockTunnel1EndBattleText3 - db "@" + text_far _RockTunnel1EndBattleText3 + text_end RockTunnel1AfterBattleText3: - TX_FAR _RockTunnel1AfterBattleText3 - db "@" + text_far _RockTunnel1AfterBattleText3 + text_end RockTunnel1BattleText4: - TX_FAR _RockTunnel1BattleText4 - db "@" + text_far _RockTunnel1BattleText4 + text_end RockTunnel1EndBattleText4: - TX_FAR _RockTunnel1EndBattleText4 - db "@" + text_far _RockTunnel1EndBattleText4 + text_end RockTunnel1AfterBattleText4: - TX_FAR _RockTunnel1AfterBattleText4 - db "@" + text_far _RockTunnel1AfterBattleText4 + text_end RockTunnel1BattleText5: - TX_FAR _RockTunnel1BattleText5 - db "@" + text_far _RockTunnel1BattleText5 + text_end RockTunnel1EndBattleText5: - TX_FAR _RockTunnel1EndBattleText5 - db "@" + text_far _RockTunnel1EndBattleText5 + text_end RockTunnel1AfterBattleText5: - TX_FAR _RockTunnel1AfterBattleText5 - db "@" + text_far _RockTunnel1AfterBattleText5 + text_end RockTunnel1BattleText6: - TX_FAR _RockTunnel1BattleText6 - db "@" + text_far _RockTunnel1BattleText6 + text_end RockTunnel1EndBattleText6: - TX_FAR _RockTunnel1EndBattleText6 - db "@" + text_far _RockTunnel1EndBattleText6 + text_end RockTunnel1AfterBattleText6: - TX_FAR _RockTunnel1AfterBattleText6 - db "@" + text_far _RockTunnel1AfterBattleText6 + text_end RockTunnel1BattleText7: - TX_FAR _RockTunnel1BattleText7 - db "@" + text_far _RockTunnel1BattleText7 + text_end RockTunnel1EndBattleText7: - TX_FAR _RockTunnel1EndBattleText7 - db "@" + text_far _RockTunnel1EndBattleText7 + text_end RockTunnel1AfterBattleText7: - TX_FAR _RockTunnel1AfterBattleText7 - db "@" + text_far _RockTunnel1AfterBattleText7 + text_end RockTunnel1Text8: - TX_FAR _RockTunnel1Text8 - db "@" + text_far _RockTunnel1Text8 + text_end diff --git a/scripts/RockTunnelB1F.asm b/scripts/RockTunnelB1F.asm index 7e6fcc8b6..9cba9c3e9 100755 --- a/scripts/RockTunnelB1F.asm +++ b/scripts/RockTunnelB1F.asm @@ -23,219 +23,163 @@ RockTunnelB1F_TextPointers: dw RockTunnel2Text8 RockTunnel2TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_0 - dw RockTunnel2BattleText2 ; TextBeforeBattle - dw RockTunnel2AfterBattleText2 ; TextAfterBattle - dw RockTunnel2EndBattleText2 ; TextEndBattle - dw RockTunnel2EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_0, 4, RockTunnel2BattleText2, RockTunnel2EndBattleText2, RockTunnel2AfterBattleText2 RockTunnel2TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_1 - dw RockTunnel2BattleText3 ; TextBeforeBattle - dw RockTunnel2AfterBattleText3 ; TextAfterBattle - dw RockTunnel2EndBattleText3 ; TextEndBattle - dw RockTunnel2EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_1, 3, RockTunnel2BattleText3, RockTunnel2EndBattleText3, RockTunnel2AfterBattleText3 RockTunnel2TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_2 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_2 - dw RockTunnel2BattleText4 ; TextBeforeBattle - dw RockTunnel2AfterBattleText4 ; TextAfterBattle - dw RockTunnel2EndBattleText4 ; TextEndBattle - dw RockTunnel2EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_2, 3, RockTunnel2BattleText4, RockTunnel2EndBattleText4, RockTunnel2AfterBattleText4 RockTunnel2TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_3 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_3 - dw RockTunnel2BattleText5 ; TextBeforeBattle - dw RockTunnel2AfterBattleText5 ; TextAfterBattle - dw RockTunnel2EndBattleText5 ; TextEndBattle - dw RockTunnel2EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_3, 4, RockTunnel2BattleText5, RockTunnel2EndBattleText5, RockTunnel2AfterBattleText5 RockTunnel2TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_4 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_4 - dw RockTunnel2BattleText6 ; TextBeforeBattle - dw RockTunnel2AfterBattleText6 ; TextAfterBattle - dw RockTunnel2EndBattleText6 ; TextEndBattle - dw RockTunnel2EndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_4, 3, RockTunnel2BattleText6, RockTunnel2EndBattleText6, RockTunnel2AfterBattleText6 RockTunnel2TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_5 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_5 - dw RockTunnel2BattleText7 ; TextBeforeBattle - dw RockTunnel2AfterBattleText7 ; TextAfterBattle - dw RockTunnel2EndBattleText7 ; TextEndBattle - dw RockTunnel2EndBattleText7 ; TextEndBattle - + trainer EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_5, 4, RockTunnel2BattleText7, RockTunnel2EndBattleText7, RockTunnel2AfterBattleText7 RockTunnel2TrainerHeader6: - dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_6 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_6 - dw RockTunnel2BattleText8 ; TextBeforeBattle - dw RockTunnel2AfterBattleText8 ; TextAfterBattle - dw RockTunnel2EndBattleText8 ; TextEndBattle - dw RockTunnel2EndBattleText8 ; TextEndBattle - + trainer EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_6, 3, RockTunnel2BattleText8, RockTunnel2EndBattleText8, RockTunnel2AfterBattleText8 RockTunnel2TrainerHeader7: - dbEventFlagBit EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_7, 1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_7, 1 - dw RockTunnel2BattleText9 ; TextBeforeBattle - dw RockTunnel2AfterBattleText9 ; TextAfterBattle - dw RockTunnel2EndBattleText9 ; TextEndBattle - dw RockTunnel2EndBattleText9 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROCK_TUNNEL_2_TRAINER_7, 1, 3, RockTunnel2BattleText9, RockTunnel2EndBattleText9, RockTunnel2AfterBattleText9 + db -1 ; end RockTunnel2Text1: - TX_ASM + text_asm ld hl, RockTunnel2TrainerHeader0 call TalkToTrainer jp TextScriptEnd RockTunnel2Text2: - TX_ASM + text_asm ld hl, RockTunnel2TrainerHeader1 call TalkToTrainer jp TextScriptEnd RockTunnel2Text3: - TX_ASM + text_asm ld hl, RockTunnel2TrainerHeader2 call TalkToTrainer jp TextScriptEnd RockTunnel2Text4: - TX_ASM + text_asm ld hl, RockTunnel2TrainerHeader3 call TalkToTrainer jp TextScriptEnd RockTunnel2Text5: - TX_ASM + text_asm ld hl, RockTunnel2TrainerHeader4 call TalkToTrainer jp TextScriptEnd RockTunnel2Text6: - TX_ASM + text_asm ld hl, RockTunnel2TrainerHeader5 call TalkToTrainer jp TextScriptEnd RockTunnel2Text7: - TX_ASM + text_asm ld hl, RockTunnel2TrainerHeader6 call TalkToTrainer jp TextScriptEnd RockTunnel2Text8: - TX_ASM + text_asm ld hl, RockTunnel2TrainerHeader7 call TalkToTrainer jp TextScriptEnd RockTunnel2BattleText2: - TX_FAR _RockTunnel2BattleText2 - db "@" + text_far _RockTunnel2BattleText2 + text_end RockTunnel2EndBattleText2: - TX_FAR _RockTunnel2EndBattleText2 - db "@" + text_far _RockTunnel2EndBattleText2 + text_end RockTunnel2AfterBattleText2: - TX_FAR _RockTunnel2AfterBattleText2 - db "@" + text_far _RockTunnel2AfterBattleText2 + text_end RockTunnel2BattleText3: - TX_FAR _RockTunnel2BattleText3 - db "@" + text_far _RockTunnel2BattleText3 + text_end RockTunnel2EndBattleText3: - TX_FAR _RockTunnel2EndBattleText3 - db "@" + text_far _RockTunnel2EndBattleText3 + text_end RockTunnel2AfterBattleText3: - TX_FAR _RockTunnel2AfterBattleText3 - db "@" + text_far _RockTunnel2AfterBattleText3 + text_end RockTunnel2BattleText4: - TX_FAR _RockTunnel2BattleText4 - db "@" + text_far _RockTunnel2BattleText4 + text_end RockTunnel2EndBattleText4: - TX_FAR _RockTunnel2EndBattleText4 - db "@" + text_far _RockTunnel2EndBattleText4 + text_end RockTunnel2AfterBattleText4: - TX_FAR _RockTunnel2AfterBattleText4 - db "@" + text_far _RockTunnel2AfterBattleText4 + text_end RockTunnel2BattleText5: - TX_FAR _RockTunnel2BattleText5 - db "@" + text_far _RockTunnel2BattleText5 + text_end RockTunnel2EndBattleText5: - TX_FAR _RockTunnel2EndBattleText5 - db "@" + text_far _RockTunnel2EndBattleText5 + text_end RockTunnel2AfterBattleText5: - TX_FAR _RockTunnel2AfterBattleText5 - db "@" + text_far _RockTunnel2AfterBattleText5 + text_end RockTunnel2BattleText6: - TX_FAR _RockTunnel2BattleText6 - db "@" + text_far _RockTunnel2BattleText6 + text_end RockTunnel2EndBattleText6: - TX_FAR _RockTunnel2EndBattleText6 - db "@" + text_far _RockTunnel2EndBattleText6 + text_end RockTunnel2AfterBattleText6: - TX_FAR _RockTunnel2AfterBattleText6 - db "@" + text_far _RockTunnel2AfterBattleText6 + text_end RockTunnel2BattleText7: - TX_FAR _RockTunnel2BattleText7 - db "@" + text_far _RockTunnel2BattleText7 + text_end RockTunnel2EndBattleText7: - TX_FAR _RockTunnel2EndBattleText7 - db "@" + text_far _RockTunnel2EndBattleText7 + text_end RockTunnel2AfterBattleText7: - TX_FAR _RockTunnel2AfterBattleText7 - db "@" + text_far _RockTunnel2AfterBattleText7 + text_end RockTunnel2BattleText8: - TX_FAR _RockTunnel2BattleText8 - db "@" + text_far _RockTunnel2BattleText8 + text_end RockTunnel2EndBattleText8: - TX_FAR _RockTunnel2EndBattleText8 - db "@" + text_far _RockTunnel2EndBattleText8 + text_end RockTunnel2AfterBattleText8: - TX_FAR _RockTunnel2AfterBattleText8 - db "@" + text_far _RockTunnel2AfterBattleText8 + text_end RockTunnel2BattleText9: - TX_FAR _RockTunnel2BattleText9 - db "@" + text_far _RockTunnel2BattleText9 + text_end RockTunnel2EndBattleText9: - TX_FAR _RockTunnel2EndBattleText9 - db "@" + text_far _RockTunnel2EndBattleText9 + text_end RockTunnel2AfterBattleText9: - TX_FAR _RockTunnel2AfterBattleText9 - db "@" + text_far _RockTunnel2AfterBattleText9 + text_end diff --git a/scripts/RockTunnelPokecenter.asm b/scripts/RockTunnelPokecenter.asm index 2fcace672..3b3da387c 100755 --- a/scripts/RockTunnelPokecenter.asm +++ b/scripts/RockTunnelPokecenter.asm @@ -10,20 +10,20 @@ RockTunnelPokecenter_TextPointers: dw RockTunnelPokecenterText5 RockTunnelHealNurseText: - TX_POKECENTER_NURSE + script_pokecenter_nurse RockTunnelPokecenterText2: - TX_FAR _RockTunnelPokecenterText2 - db "@" + text_far _RockTunnelPokecenterText2 + text_end RockTunnelPokecenterText3: - TX_FAR _RockTunnelPokecenterText3 - db "@" + text_far _RockTunnelPokecenterText3 + text_end RockTunnelTradeNurseText: - TX_CABLE_CLUB_RECEPTIONIST + script_cable_club_receptionist RockTunnelPokecenterText5: - TX_ASM - callab PokecenterChanseyText + text_asm + callfar PokecenterChanseyText jp TextScriptEnd diff --git a/scripts/RocketHideoutB1F.asm b/scripts/RocketHideoutB1F.asm index 0cbddb499..f20c0892c 100755 --- a/scripts/RocketHideoutB1F.asm +++ b/scripts/RocketHideoutB1F.asm @@ -45,145 +45,110 @@ RocketHideoutB1F_TextPointers: dw PickUpItemText RocketHideout1TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_0 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_0 - dw RocketHideout1BattleText2 ; TextBeforeBattle - dw RocketHideout1AfterBattleTxt2 ; TextAfterBattle - dw RocketHideout1EndBattleText2 ; TextEndBattle - dw RocketHideout1EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_0, 3, RocketHideout1BattleText2, RocketHideout1EndBattleText2, RocketHideout1AfterBattleTxt2 RocketHideout1TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_1 - dw RocketHideout1BattleText3 ; TextBeforeBattle - dw RocketHideout1AfterBattleTxt3 ; TextAfterBattle - dw RocketHideout1EndBattleText3 ; TextEndBattle - dw RocketHideout1EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_1, 2, RocketHideout1BattleText3, RocketHideout1EndBattleText3, RocketHideout1AfterBattleTxt3 RocketHideout1TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_2 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_2 - dw RocketHideout1BattleText4 ; TextBeforeBattle - dw RocketHideout1AfterBattleTxt4 ; TextAfterBattle - dw RocketHideout1EndBattleText4 ; TextEndBattle - dw RocketHideout1EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_2, 2, RocketHideout1BattleText4, RocketHideout1EndBattleText4, RocketHideout1AfterBattleTxt4 RocketHideout1TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_3 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_3 - dw RocketHideout1BattleText5 ; TextBeforeBattle - dw RocketHideout1AfterBattleTxt5 ; TextAfterBattle - dw RocketHideout1EndBattleText5 ; TextEndBattle - dw RocketHideout1EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_3, 3, RocketHideout1BattleText5, RocketHideout1EndBattleText5, RocketHideout1AfterBattleTxt5 RocketHideout1TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_4 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_4 - dw RocketHideout1BattleText6 ; TextBeforeBattle - dw RocketHideout1AfterBattleTxt6 ; TextAfterBattle - dw RocketHideout1EndBattleText6 ; TextEndBattle - dw RocketHideout1EndBattleText6 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_4, 3, RocketHideout1BattleText6, RocketHideout1EndBattleText6, RocketHideout1AfterBattleTxt6 + db -1 ; end RocketHideout1Text1: - TX_ASM + text_asm ld hl, RocketHideout1TrainerHeader0 call TalkToTrainer jp TextScriptEnd RocketHideout1Text2: - TX_ASM + text_asm ld hl, RocketHideout1TrainerHeader1 call TalkToTrainer jp TextScriptEnd RocketHideout1Text3: - TX_ASM + text_asm ld hl, RocketHideout1TrainerHeader2 call TalkToTrainer jp TextScriptEnd RocketHideout1Text4: - TX_ASM + text_asm ld hl, RocketHideout1TrainerHeader3 call TalkToTrainer jp TextScriptEnd RocketHideout1Text5: - TX_ASM + text_asm ld hl, RocketHideout1TrainerHeader4 call TalkToTrainer jp TextScriptEnd RocketHideout1EndBattleText6: - TX_FAR _RocketHideout1EndBattleText6 - TX_ASM + text_far _RocketHideout1EndBattleText6 + text_asm SetEvent EVENT_BEAT_ROCKET_HIDEOUT_1_TRAINER_4 ld hl, RocketHideout1Text_44c9f ret RocketHideout1Text_44c9f: - TX_BLINK - db "@" + text_promptbutton + text_end RocketHideout1BattleText2: - TX_FAR _RocketHideout1BattleText2 - db "@" + text_far _RocketHideout1BattleText2 + text_end RocketHideout1EndBattleText2: - TX_FAR _RocketHideout1EndBattleText2 - db "@" + text_far _RocketHideout1EndBattleText2 + text_end RocketHideout1AfterBattleTxt2: - TX_FAR _RocketHideout1AfterBattleTxt2 - db "@" + text_far _RocketHideout1AfterBattleTxt2 + text_end RocketHideout1BattleText3: - TX_FAR _RocketHideout1BattleText3 - db "@" + text_far _RocketHideout1BattleText3 + text_end RocketHideout1EndBattleText3: - TX_FAR _RocketHideout1EndBattleText3 - db "@" + text_far _RocketHideout1EndBattleText3 + text_end RocketHideout1AfterBattleTxt3: - TX_FAR _RocketHideout1AfterBattleTxt3 - db "@" + text_far _RocketHideout1AfterBattleTxt3 + text_end RocketHideout1BattleText4: - TX_FAR _RocketHideout1BattleText4 - db "@" + text_far _RocketHideout1BattleText4 + text_end RocketHideout1EndBattleText4: - TX_FAR _RocketHideout1EndBattleText4 - db "@" + text_far _RocketHideout1EndBattleText4 + text_end RocketHideout1AfterBattleTxt4: - TX_FAR _RocketHideout1AfterBattleTxt4 - db "@" + text_far _RocketHideout1AfterBattleTxt4 + text_end RocketHideout1BattleText5: - TX_FAR _RocketHideout1BattleText5 - db "@" + text_far _RocketHideout1BattleText5 + text_end RocketHideout1EndBattleText5: - TX_FAR _RocketHideout1EndBattleText5 - db "@" + text_far _RocketHideout1EndBattleText5 + text_end RocketHideout1AfterBattleTxt5: - TX_FAR _RocketHideout1AfterBattleTxt5 - db "@" + text_far _RocketHideout1AfterBattleTxt5 + text_end RocketHideout1BattleText6: - TX_FAR _RocketHideout1BattleText6 - db "@" + text_far _RocketHideout1BattleText6 + text_end RocketHideout1AfterBattleTxt6: - TX_FAR _RocketHideout1AfterBattleTxt6 - db "@" + text_far _RocketHideout1AfterBattleTxt6 + text_end diff --git a/scripts/RocketHideoutB2F.asm b/scripts/RocketHideoutB2F.asm index 1b487df23..d6fae24f0 100755 --- a/scripts/RocketHideoutB2F.asm +++ b/scripts/RocketHideoutB2F.asm @@ -33,273 +33,227 @@ RocketHideout2Script0: ld [wCurMapScript], a ret -;format: -;db y,x -;dw pointer to movement RocketHideout2ArrowTilePlayerMovement: - db $9,$4 - dw RocketHideout2ArrowMovement1 - db $b,$4 - dw RocketHideout2ArrowMovement2 - db $f,$4 - dw RocketHideout2ArrowMovement3 - db $10,$4 - dw RocketHideout2ArrowMovement4 - db $13,$4 - dw RocketHideout2ArrowMovement1 - db $16,$4 - dw RocketHideout2ArrowMovement5 - db $e,$5 - dw RocketHideout2ArrowMovement6 - db $16,$6 - dw RocketHideout2ArrowMovement7 - db $18,$6 - dw RocketHideout2ArrowMovement8 - db $9,$8 - dw RocketHideout2ArrowMovement9 - db $c,$8 - dw RocketHideout2ArrowMovement10 - db $f,$8 - dw RocketHideout2ArrowMovement8 - db $13,$8 - dw RocketHideout2ArrowMovement9 - db $17,$8 - dw RocketHideout2ArrowMovement11 - db $e,$9 - dw RocketHideout2ArrowMovement12 - db $16,$9 - dw RocketHideout2ArrowMovement12 - db $9,$a - dw RocketHideout2ArrowMovement13 - db $a,$a - dw RocketHideout2ArrowMovement14 - db $f,$a - dw RocketHideout2ArrowMovement15 - db $11,$a - dw RocketHideout2ArrowMovement16 - db $13,$a - dw RocketHideout2ArrowMovement17 - db $19,$a - dw RocketHideout2ArrowMovement2 - db $e,$b - dw RocketHideout2ArrowMovement18 - db $10,$b - dw RocketHideout2ArrowMovement19 - db $12,$b - dw RocketHideout2ArrowMovement12 - db $9,$c - dw RocketHideout2ArrowMovement20 - db $b,$c - dw RocketHideout2ArrowMovement21 - db $d,$c - dw RocketHideout2ArrowMovement22 - db $11,$c - dw RocketHideout2ArrowMovement23 - db $a,$d - dw RocketHideout2ArrowMovement24 - db $c,$d - dw RocketHideout2ArrowMovement25 - db $10,$d - dw RocketHideout2ArrowMovement26 - db $12,$d - dw RocketHideout2ArrowMovement27 - db $13,$d - dw RocketHideout2ArrowMovement28 - db $16,$d - dw RocketHideout2ArrowMovement29 - db $17,$d - dw RocketHideout2ArrowMovement30 - db $11,$e - dw RocketHideout2ArrowMovement31 - db $10,$f - dw RocketHideout2ArrowMovement12 - db $e,$10 - dw RocketHideout2ArrowMovement32 - db $10,$10 - dw RocketHideout2ArrowMovement33 - db $12,$10 - dw RocketHideout2ArrowMovement34 - db $a,$11 - dw RocketHideout2ArrowMovement35 - db $b,$11 - dw RocketHideout2ArrowMovement36 - db $FF + map_coord_movement 4, 9, RocketHideout2ArrowMovement1 + map_coord_movement 4, 11, RocketHideout2ArrowMovement2 + map_coord_movement 4, 15, RocketHideout2ArrowMovement3 + map_coord_movement 4, 16, RocketHideout2ArrowMovement4 + map_coord_movement 4, 19, RocketHideout2ArrowMovement1 + map_coord_movement 4, 22, RocketHideout2ArrowMovement5 + map_coord_movement 5, 14, RocketHideout2ArrowMovement6 + map_coord_movement 6, 22, RocketHideout2ArrowMovement7 + map_coord_movement 6, 24, RocketHideout2ArrowMovement8 + map_coord_movement 8, 9, RocketHideout2ArrowMovement9 + map_coord_movement 8, 12, RocketHideout2ArrowMovement10 + map_coord_movement 8, 15, RocketHideout2ArrowMovement8 + map_coord_movement 8, 19, RocketHideout2ArrowMovement9 + map_coord_movement 8, 23, RocketHideout2ArrowMovement11 + map_coord_movement 9, 14, RocketHideout2ArrowMovement12 + map_coord_movement 9, 22, RocketHideout2ArrowMovement12 + map_coord_movement 10, 9, RocketHideout2ArrowMovement13 + map_coord_movement 10, 10, RocketHideout2ArrowMovement14 + map_coord_movement 10, 15, RocketHideout2ArrowMovement15 + map_coord_movement 10, 17, RocketHideout2ArrowMovement16 + map_coord_movement 10, 19, RocketHideout2ArrowMovement17 + map_coord_movement 10, 25, RocketHideout2ArrowMovement2 + map_coord_movement 11, 14, RocketHideout2ArrowMovement18 + map_coord_movement 11, 16, RocketHideout2ArrowMovement19 + map_coord_movement 11, 18, RocketHideout2ArrowMovement12 + map_coord_movement 12, 9, RocketHideout2ArrowMovement20 + map_coord_movement 12, 11, RocketHideout2ArrowMovement21 + map_coord_movement 12, 13, RocketHideout2ArrowMovement22 + map_coord_movement 12, 17, RocketHideout2ArrowMovement23 + map_coord_movement 13, 10, RocketHideout2ArrowMovement24 + map_coord_movement 13, 12, RocketHideout2ArrowMovement25 + map_coord_movement 13, 16, RocketHideout2ArrowMovement26 + map_coord_movement 13, 18, RocketHideout2ArrowMovement27 + map_coord_movement 13, 19, RocketHideout2ArrowMovement28 + map_coord_movement 13, 22, RocketHideout2ArrowMovement29 + map_coord_movement 13, 23, RocketHideout2ArrowMovement30 + map_coord_movement 14, 17, RocketHideout2ArrowMovement31 + map_coord_movement 15, 16, RocketHideout2ArrowMovement12 + map_coord_movement 16, 14, RocketHideout2ArrowMovement32 + map_coord_movement 16, 16, RocketHideout2ArrowMovement33 + map_coord_movement 16, 18, RocketHideout2ArrowMovement34 + map_coord_movement 17, 10, RocketHideout2ArrowMovement35 + map_coord_movement 17, 11, RocketHideout2ArrowMovement36 + db -1 ; end ;format: direction, count ;each list is read starting from the $FF and working backwards RocketHideout2ArrowMovement1: - db D_LEFT,$02 - db $FF + db D_LEFT, 2 + db -1 ; end RocketHideout2ArrowMovement2: - db D_RIGHT,$04 - db $FF + db D_RIGHT, 4 + db -1 ; end RocketHideout2ArrowMovement3: - db D_UP,$04 - db D_RIGHT,$04 - db $FF + db D_UP, 4 + db D_RIGHT, 4 + db -1 ; end RocketHideout2ArrowMovement4: - db D_UP,$04 - db D_RIGHT,$04 - db D_UP,$01 - db $FF + db D_UP, 4 + db D_RIGHT, 4 + db D_UP, 1 + db -1 ; end RocketHideout2ArrowMovement5: - db D_LEFT,$02 - db D_UP,$03 - db $FF + db D_LEFT, 2 + db D_UP, 3 + db -1 ; end RocketHideout2ArrowMovement6: - db D_DOWN,$02 - db D_RIGHT,$04 - db $FF + db D_DOWN, 2 + db D_RIGHT, 4 + db -1 ; end RocketHideout2ArrowMovement7: - db D_UP,$02 - db $FF + db D_UP, 2 + db -1 ; end RocketHideout2ArrowMovement8: - db D_UP,$04 - db $FF + db D_UP, 4 + db -1 ; end RocketHideout2ArrowMovement9: - db D_LEFT,$06 - db $FF + db D_LEFT, 6 + db -1 ; end RocketHideout2ArrowMovement10: - db D_UP,$01 - db $FF + db D_UP, 1 + db -1 ; end RocketHideout2ArrowMovement11: - db D_LEFT,$06 - db D_UP,$04 - db $FF + db D_LEFT, 6 + db D_UP, 4 + db -1 ; end RocketHideout2ArrowMovement12: - db D_DOWN,$02 - db $FF + db D_DOWN, 2 + db -1 ; end RocketHideout2ArrowMovement13: - db D_LEFT,$08 - db $FF + db D_LEFT, 8 + db -1 ; end RocketHideout2ArrowMovement14: - db D_LEFT,$08 - db D_UP,$01 - db $FF + db D_LEFT, 8 + db D_UP, 1 + db -1 ; end RocketHideout2ArrowMovement15: - db D_LEFT,$08 - db D_UP,$06 - db $FF + db D_LEFT, 8 + db D_UP, 6 + db -1 ; end RocketHideout2ArrowMovement16: - db D_UP,$02 - db D_RIGHT,$04 - db $FF + db D_UP, 2 + db D_RIGHT, 4 + db -1 ; end RocketHideout2ArrowMovement17: - db D_UP,$02 - db D_RIGHT,$04 - db D_UP,$02 - db $FF + db D_UP, 2 + db D_RIGHT, 4 + db D_UP, 2 + db -1 ; end RocketHideout2ArrowMovement18: - db D_DOWN,$02 - db D_RIGHT,$04 - db D_DOWN,$02 - db $FF + db D_DOWN, 2 + db D_RIGHT, 4 + db D_DOWN, 2 + db -1 ; end RocketHideout2ArrowMovement19: - db D_DOWN,$02 - db D_RIGHT,$04 - db $FF + db D_DOWN, 2 + db D_RIGHT, 4 + db -1 ; end RocketHideout2ArrowMovement20: - db D_LEFT,$0A - db $FF + db D_LEFT, 10 + db -1 ; end RocketHideout2ArrowMovement21: - db D_LEFT,$0A - db D_UP,$02 - db $FF + db D_LEFT, 10 + db D_UP, 2 + db -1 ; end RocketHideout2ArrowMovement22: - db D_LEFT,$0A - db D_UP,$04 - db $FF + db D_LEFT, 10 + db D_UP, 4 + db -1 ; end RocketHideout2ArrowMovement23: - db D_UP,$02 - db D_RIGHT,$02 - db $FF + db D_UP, 2 + db D_RIGHT, 2 + db -1 ; end RocketHideout2ArrowMovement24: - db D_RIGHT,$01 - db D_DOWN,$02 - db $FF + db D_RIGHT, 1 + db D_DOWN, 2 + db -1 ; end RocketHideout2ArrowMovement25: - db D_RIGHT,$01 - db $FF + db D_RIGHT, 1 + db -1 ; end RocketHideout2ArrowMovement26: - db D_DOWN,$02 - db D_RIGHT,$02 - db $FF + db D_DOWN, 2 + db D_RIGHT, 2 + db -1 ; end RocketHideout2ArrowMovement27: - db D_DOWN,$02 - db D_LEFT,$02 - db $FF + db D_DOWN, 2 + db D_LEFT, 2 + db -1 ; end RocketHideout2ArrowMovement28: - db D_UP,$02 - db D_RIGHT,$04 - db D_UP,$02 - db D_LEFT,$03 - db $FF + db D_UP, 2 + db D_RIGHT, 4 + db D_UP, 2 + db D_LEFT, 3 + db -1 ; end RocketHideout2ArrowMovement29: - db D_DOWN,$02 - db D_LEFT,$04 - db $FF + db D_DOWN, 2 + db D_LEFT, 4 + db -1 ; end RocketHideout2ArrowMovement30: - db D_LEFT,$06 - db D_UP,$04 - db D_LEFT,$05 - db $FF + db D_LEFT, 6 + db D_UP, 4 + db D_LEFT, 5 + db -1 ; end RocketHideout2ArrowMovement31: - db D_UP,$02 - db $FF + db D_UP, 2 + db -1 ; end RocketHideout2ArrowMovement32: - db D_UP,$01 - db $FF + db D_UP, 1 + db -1 ; end RocketHideout2ArrowMovement33: - db D_UP,$03 - db $FF + db D_UP, 3 + db -1 ; end RocketHideout2ArrowMovement34: - db D_UP,$05 - db $FF + db D_UP, 5 + db -1 ; end RocketHideout2ArrowMovement35: - db D_RIGHT,$01 - db D_DOWN,$02 - db D_LEFT,$04 - db $FF + db D_RIGHT, 1 + db D_DOWN, 2 + db D_LEFT, 4 + db -1 ; end RocketHideout2ArrowMovement36: - db D_LEFT,$0A - db D_UP,$02 - db D_LEFT,$05 - db $FF + db D_LEFT, 10 + db D_UP, 2 + db D_LEFT, 5 + db -1 ; end RocketHideout2Script3: ld a, [wSimulatedJoypadStatesIndex] @@ -313,105 +267,7 @@ RocketHideout2Script3: ld [wCurMapScript], a ret -LoadSpinnerArrowTiles: - ld a, [wSpriteStateData1 + 2] - srl a - srl a - ld hl, SpinnerPlayerFacingDirections - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - ld [wSpriteStateData1 + 2], a - ld a, [wCurMapTileset] - cp FACILITY - ld hl, FacilitySpinnerArrows - jr z, .asm_44ff6 - ld hl, GymSpinnerArrows -.asm_44ff6 - ld a, [wSimulatedJoypadStatesIndex] - bit 0, a - jr nz, .asm_45001 - ld de, $18 - add hl, de -.asm_45001 - ld a, $4 - ld bc, $0 -.asm_45006 - push af - push hl - push bc - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld h, [hl] - ld l, a - call CopyVideoData - pop bc - ld a, $6 - add c - ld c, a - pop hl - pop af - dec a - jr nz, .asm_45006 - ret - -spinner: MACRO -; \1: source -; \2: offset (BANK() chokes on literals) -; \3: length -; \4: dest - dw \1 + \2 - db \3, BANK(\1) - dw \4 -ENDM - -FacilitySpinnerArrows: -FACILITY_SPINNER EQU $20 * $10 -vFacilitySpinner EQU vTileset + FACILITY_SPINNER - - spinner SpinnerArrowAnimTiles, $00, 1, vFacilitySpinner - spinner SpinnerArrowAnimTiles, $10, 1, vFacilitySpinner + $10 - spinner SpinnerArrowAnimTiles, $20, 1, vFacilitySpinner + $100 - spinner SpinnerArrowAnimTiles, $30, 1, vFacilitySpinner + $110 - spinner Facility_GFX, FACILITY_SPINNER + $000, 1, vFacilitySpinner - spinner Facility_GFX, FACILITY_SPINNER + $010, 1, vFacilitySpinner + $10 - spinner Facility_GFX, FACILITY_SPINNER + $100, 1, vFacilitySpinner + $100 - spinner Facility_GFX, FACILITY_SPINNER + $110, 1, vFacilitySpinner + $110 - -GymSpinnerArrows: -GYM_SPINNER EQU $3c * $10 -vGymSpinner EQU vTileset + GYM_SPINNER - - spinner SpinnerArrowAnimTiles, $10, 1, vGymSpinner - spinner SpinnerArrowAnimTiles, $30, 1, vGymSpinner + $10 - spinner SpinnerArrowAnimTiles, $00, 1, vGymSpinner + $100 - spinner SpinnerArrowAnimTiles, $20, 1, vGymSpinner + $110 - spinner Gym_GFX, GYM_SPINNER + $000, 1, vGymSpinner - spinner Gym_GFX, GYM_SPINNER + $010, 1, vGymSpinner + $10 - spinner Gym_GFX, GYM_SPINNER + $100, 1, vGymSpinner + $100 - spinner Gym_GFX, GYM_SPINNER + $110, 1, vGymSpinner + $110 - -SpinnerPlayerFacingDirections: -; This isn't the order of the facing directions. Rather, it's a list of -; the facing directions that come next. For example, when the player is -; facing down (00), the next facing direction is left (08). - db $08 ; down -> left - db $0C ; up -> right - db $04 ; left -> up - db $00 ; right -> down - -; these tiles are the animation for the tiles that push the player in dungeons like Rocket HQ -SpinnerArrowAnimTiles: - INCBIN "gfx/spinner_arrow.2bpp" +INCLUDE "engine/overworld/spinners.asm" RocketHideoutB2F_TextPointers: dw RocketHideout2Text1 @@ -421,30 +277,23 @@ RocketHideoutB2F_TextPointers: dw PickUpItemText RocketHideout2TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_2_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_2_TRAINER_0 - dw RocketHideout2BattleText2 ; TextBeforeBattle - dw RocketHideout2AfterBattleTxt2 ; TextAfterBattle - dw RocketHideout2EndBattleText2 ; TextEndBattle - dw RocketHideout2EndBattleText2 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROCKET_HIDEOUT_2_TRAINER_0, 4, RocketHideout2BattleText2, RocketHideout2EndBattleText2, RocketHideout2AfterBattleTxt2 + db -1 ; end RocketHideout2Text1: - TX_ASM + text_asm ld hl, RocketHideout2TrainerHeader0 call TalkToTrainer jp TextScriptEnd RocketHideout2BattleText2: - TX_FAR _RocketHideout2BattleText2 - db "@" + text_far _RocketHideout2BattleText2 + text_end RocketHideout2EndBattleText2: - TX_FAR _RocketHideout2EndBattleText2 - db "@" + text_far _RocketHideout2EndBattleText2 + text_end RocketHideout2AfterBattleTxt2: - TX_FAR _RocketHideout2AfterBattleTxt2 - db "@" + text_far _RocketHideout2AfterBattleTxt2 + text_end diff --git a/scripts/RocketHideoutB3F.asm b/scripts/RocketHideoutB3F.asm index 4dd537b38..88876f044 100755 --- a/scripts/RocketHideoutB3F.asm +++ b/scripts/RocketHideoutB3F.asm @@ -33,103 +33,84 @@ RocketHideout3Script0: ld [wCurMapScript], a ret -;format: -;db y,x -;dw pointer to movement RocketHideout3ArrowTilePlayerMovement: - db $d,$a - dw RocketHideout3ArrowMovement6 - db $13,$a - dw RocketHideout3ArrowMovement1 - db $12,$b - dw RocketHideout3ArrowMovement2 - db $b,$c - dw RocketHideout3ArrowMovement3 - db $11,$c - dw RocketHideout3ArrowMovement4 - db $14,$c - dw RocketHideout3ArrowMovement5 - db $10,$d - dw RocketHideout3ArrowMovement6 - db $b,$e - dw RocketHideout3ArrowMovement7 - db $f,$e - dw RocketHideout3ArrowMovement6 - db $11,$e - dw RocketHideout3ArrowMovement8 - db $13,$e - dw RocketHideout3ArrowMovement9 - db $10,$f - dw RocketHideout3ArrowMovement7 - db $12,$f - dw RocketHideout3ArrowMovement10 - db $d,$10 - dw RocketHideout3ArrowMovement11 - db $c,$11 - dw RocketHideout3ArrowMovement10 - db $10,$12 - dw RocketHideout3ArrowMovement12 - db $FF + map_coord_movement 10, 13, RocketHideout3ArrowMovement6 + map_coord_movement 10, 19, RocketHideout3ArrowMovement1 + map_coord_movement 11, 18, RocketHideout3ArrowMovement2 + map_coord_movement 12, 11, RocketHideout3ArrowMovement3 + map_coord_movement 12, 17, RocketHideout3ArrowMovement4 + map_coord_movement 12, 20, RocketHideout3ArrowMovement5 + map_coord_movement 13, 16, RocketHideout3ArrowMovement6 + map_coord_movement 14, 11, RocketHideout3ArrowMovement7 + map_coord_movement 14, 15, RocketHideout3ArrowMovement6 + map_coord_movement 14, 17, RocketHideout3ArrowMovement8 + map_coord_movement 14, 19, RocketHideout3ArrowMovement9 + map_coord_movement 15, 16, RocketHideout3ArrowMovement7 + map_coord_movement 15, 18, RocketHideout3ArrowMovement10 + map_coord_movement 16, 13, RocketHideout3ArrowMovement11 + map_coord_movement 17, 12, RocketHideout3ArrowMovement10 + map_coord_movement 18, 16, RocketHideout3ArrowMovement12 + db -1 ; end ;format: direction, count ;each list is read starting from the $FF and working backwards RocketHideout3ArrowMovement1: - db D_RIGHT,$04 - db D_UP,$04 - db D_RIGHT,$04 - db $FF + db D_RIGHT, 4 + db D_UP, 4 + db D_RIGHT, 4 + db -1 ; end RocketHideout3ArrowMovement2: - db D_DOWN,$04 - db D_RIGHT,$04 - db $FF + db D_DOWN, 4 + db D_RIGHT, 4 + db -1 ; end RocketHideout3ArrowMovement3: - db D_LEFT,$02 - db $FF + db D_LEFT, 2 + db -1 ; end RocketHideout3ArrowMovement4: - db D_RIGHT,$04 - db D_UP,$02 - db D_RIGHT,$02 - db $FF + db D_RIGHT, 4 + db D_UP, 2 + db D_RIGHT, 2 + db -1 ; end RocketHideout3ArrowMovement5: - db D_RIGHT,$04 - db D_UP,$02 - db D_RIGHT,$02 - db D_UP,$03 - db $FF + db D_RIGHT, 4 + db D_UP, 2 + db D_RIGHT, 2 + db D_UP, 3 + db -1 ; end RocketHideout3ArrowMovement6: - db D_RIGHT,$04 - db $FF + db D_RIGHT, 4 + db -1 ; end RocketHideout3ArrowMovement7: - db D_RIGHT,$02 - db $FF + db D_RIGHT, 2 + db -1 ; end RocketHideout3ArrowMovement8: - db D_RIGHT,$04 - db D_UP,$02 - db $FF + db D_RIGHT, 4 + db D_UP, 2 + db -1 ; end RocketHideout3ArrowMovement9: - db D_RIGHT,$04 - db D_UP,$04 - db $FF + db D_RIGHT, 4 + db D_UP, 4 + db -1 ; end RocketHideout3ArrowMovement10: - db D_DOWN,$04 - db $FF + db D_DOWN, 4 + db -1 ; end RocketHideout3ArrowMovement11: - db D_UP,$02 - db $FF + db D_UP, 2 + db -1 ; end RocketHideout3ArrowMovement12: - db D_UP,$01 - db $FF + db D_UP, 1 + db -1 ; end RocketHideout3Script3: ld a, [wSimulatedJoypadStatesIndex] @@ -150,57 +131,43 @@ RocketHideoutB3F_TextPointers: dw PickUpItemText RocketHideout3TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_0 - dw RocketHideout3BattleText2 ; TextBeforeBattle - dw RocketHideout3AfterBattleTxt2 ; TextAfterBattle - dw RocketHideout3EndBattleText2 ; TextEndBattle - dw RocketHideout3EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_0, 2, RocketHideout3BattleText2, RocketHideout3EndBattleText2, RocketHideout3AfterBattleTxt2 RocketHideout3TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_1 - dw RocketHideout3BattleTxt ; TextBeforeBattle - dw RocketHideout3AfterBattleText3 ; TextAfterBattle - dw RocketHideout3EndBattleText3 ; TextEndBattle - dw RocketHideout3EndBattleText3 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_1, 4, RocketHideout3BattleTxt, RocketHideout3EndBattleText3, RocketHideout3AfterBattleText3 + db -1 ; end RocketHideout3Text1: - TX_ASM + text_asm ld hl, RocketHideout3TrainerHeader0 call TalkToTrainer jp TextScriptEnd RocketHideout3BattleText2: - TX_FAR _RocketHideout3BattleText2 - db "@" + text_far _RocketHideout3BattleText2 + text_end RocketHideout3EndBattleText2: - TX_FAR _RocketHideout3EndBattleText2 - db "@" + text_far _RocketHideout3EndBattleText2 + text_end RocketHideout3AfterBattleTxt2: - TX_FAR _RocketHideout3AfterBattleTxt2 - db "@" + text_far _RocketHideout3AfterBattleTxt2 + text_end RocketHideout3Text2: - TX_ASM + text_asm ld hl, RocketHideout3TrainerHeader1 call TalkToTrainer jp TextScriptEnd RocketHideout3BattleTxt: - TX_FAR _RocketHideout3BattleTxt - db "@" + text_far _RocketHideout3BattleTxt + text_end RocketHideout3EndBattleText3: - TX_FAR _RocketHideout3EndBattleText3 - db "@" + text_far _RocketHideout3EndBattleText3 + text_end RocketHideout3AfterBattleText3: - TX_FAR _RocketHide3AfterBattleText3 - db "@" + text_far _RocketHide3AfterBattleText3 + text_end diff --git a/scripts/RocketHideoutB4F.asm b/scripts/RocketHideoutB4F.asm index 89fd37e1d..564adc2a1 100755 --- a/scripts/RocketHideoutB4F.asm +++ b/scripts/RocketHideoutB4F.asm @@ -48,7 +48,7 @@ RocketHideout4Script3: ld [wJoyIgnore], a SetEvent EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI ld a, $a - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call GBFadeOutToBlack ld a, HS_ROCKET_HIDEOUT_B4F_GIOVANNI @@ -89,7 +89,7 @@ RocketHideout4Script_455a5: SetEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_1 .asm_455c2 xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $fc ld [wJoyIgnore], a call StopAllMusic @@ -103,7 +103,7 @@ RocketHideout4Script_455a5: ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld a, $b - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wDoNotWaitForButtonPressAfterDisplayingText], a @@ -132,7 +132,7 @@ RocketHideout4Script4: ld de, RocketHideout4JessieJamesMovementData_45606 .asm_45617 ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call MoveSprite ld a, $ff ld [wJoyIgnore], a @@ -166,7 +166,7 @@ RocketHideout4Script7: ld de, RocketHideout4JessieJamesMovementData_45605 .asm_4565f ld a, $3 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call MoveSprite ld a, $ff ld [wJoyIgnore], a @@ -194,7 +194,7 @@ RocketHideout4Script9: .asm_45697 call Delay3 ld a, $c - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID RocketHideout4Script10: ld hl, wd72d @@ -208,7 +208,7 @@ RocketHideout4Script10: ld a, $2b ld [wTrainerNo], a xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld [wJoyIgnore], a SetEvent EVENT_6A0 ld a, $b @@ -232,7 +232,7 @@ RocketHideout4Script11: ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld a, $d - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wDoNotWaitForButtonPressAfterDisplayingText], a @@ -264,7 +264,7 @@ RocketHideout4Script12: RocketHideout4Script13: call PlayDefaultMusic xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld [wJoyIgnore], a SetEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0 ld a, $0 @@ -299,22 +299,16 @@ RocketHideoutB4F_TextPointers: dw RocketHideout4Text12 RocketHideout4TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2 - db ($1 << 4) - dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2 - dw RocketHideout4Trainer0BeforeText - dw RocketHideout4Trainer0AfterText - dw RocketHideout4Trainer0EndBattleText - dw RocketHideout4Trainer0EndBattleText - db $ff + trainer EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2, 1, RocketHideout4Trainer0BeforeText, RocketHideout4Trainer0EndBattleText, RocketHideout4Trainer0AfterText + db -1 ; end RocketHideout4Text1: RocketHideout4Text2: - db "@" + text_end RocketHideout4Text10: - TX_FAR _RocketHideoutJessieJamesText1 - TX_ASM + text_far _RocketHideoutJessieJamesText1 + text_asm ld c, 10 call DelayFrames ld a, $8 @@ -329,22 +323,22 @@ RocketHideout4Text10: jp TextScriptEnd RocketHideout4Text11: - TX_FAR _RocketHideoutJessieJamesText2 - db "@" + text_far _RocketHideoutJessieJamesText2 + text_end RocketHideout4JessieJamesEndBattleText: - TX_FAR _RocketHideoutJessieJamesText3 - db "@" + text_far _RocketHideoutJessieJamesText3 + text_end RocketHideout4Text12: - TX_FAR _RocketHideoutJessieJamesText4 - TX_ASM + text_far _RocketHideoutJessieJamesText4 + text_asm ld c, 64 call DelayFrames jp TextScriptEnd RocketHideout4Text0: - TX_ASM + text_asm CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI jp nz, .asm_457fb ld hl, RocketHideout4Text_45804 @@ -355,12 +349,12 @@ RocketHideout4Text0: ld hl, RocketHideout4Text_45809 ld de, RocketHideout4Text_45809 call SaveEndBattleTextPointers - ld a, [hSpriteIndexOrTextID] + ldh a, [hSpriteIndex] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $3 ld [wRocketHideoutB4FCurScript], a ld [wCurMapScript], a @@ -373,31 +367,31 @@ RocketHideout4Text0: jp TextScriptEnd RocketHideout4Text_45804: - TX_FAR _RocketHideout4Text_4557a - db "@" + text_far _RocketHideout4Text_4557a + text_end RocketHideout4Text_45809: - TX_FAR _RocketHideout4Text_4557f - db "@" + text_far _RocketHideout4Text_4557f + text_end RocketHideout4Text9: - TX_FAR _RocketHideout4Text_45584 - db "@" + text_far _RocketHideout4Text_45584 + text_end RocketHideout4Text3: - TX_ASM + text_asm ld hl, RocketHideout4TrainerHeader0 call TalkToTrainer jp TextScriptEnd RocketHideout4Trainer0BeforeText: - TX_FAR _RocketHideout4BattleText4 - db "@" + text_far _RocketHideout4BattleText4 + text_end RocketHideout4Trainer0EndBattleText: - TX_FAR _RocketHideout4EndBattleText4 - TX_BLINK - TX_ASM + text_far _RocketHideout4EndBattleText4 + text_promptbutton + text_asm SetEvent EVENT_ROCKET_DROPPED_LIFT_KEY ld a, HS_ROCKET_HIDEOUT_B4F_ITEM_5 ld [wMissableObjectIndex], a @@ -405,11 +399,11 @@ RocketHideout4Trainer0EndBattleText: jp TextScriptEnd RocketHideout4Trainer0AfterText: - TX_ASM + text_asm ld hl, RocketHideout4Text_45844 call PrintText jp TextScriptEnd RocketHideout4Text_45844: - TX_FAR _RocketHideout4Text_455ec - db "@" + text_far _RocketHideout4Text_455ec + text_end diff --git a/scripts/RocketHideoutElevator.asm b/scripts/RocketHideoutElevator.asm index 9525db3a4..8c51294e6 100755 --- a/scripts/RocketHideoutElevator.asm +++ b/scripts/RocketHideoutElevator.asm @@ -41,31 +41,30 @@ RocketHideoutElevatorScript_45741: ret RocketHideoutElavatorFloors: - db $03 ; num elements in list + db 3 ; # db FLOOR_B1F db FLOOR_B2F db FLOOR_B4F - db $FF ; terminator + db -1 ; end -RocketHideoutElevatorWarpMaps: -; first byte is warp number -; second byte is map number ; These specify where the player goes after getting out of the elevator. - db $04, ROCKET_HIDEOUT_B1F - db $04, ROCKET_HIDEOUT_B2F - db $02, ROCKET_HIDEOUT_B4F +RocketHideoutElevatorWarpMaps: + ; warp number, map id + db 4, ROCKET_HIDEOUT_B1F + db 4, ROCKET_HIDEOUT_B2F + db 2, ROCKET_HIDEOUT_B4F RocketHideoutElevatorWarpMapsEnd: RocketHideoutElevatorScript_4575f: call Delay3 - callba ShakeElevator + farcall ShakeElevator ret RocketHideoutElevator_TextPointers: dw RocketHideoutElevatorText1 RocketHideoutElevatorText1: - TX_ASM + text_asm ld b, LIFT_KEY call IsItemInBag jr z, .asm_45782 @@ -80,6 +79,6 @@ RocketHideoutElevatorText1: jp TextScriptEnd RocketHideoutElevatorText_4578b: - TX_FAR _RocketElevatorText_4578b - TX_WAIT - db "@" + text_far _RocketElevatorText_4578b + text_waitbutton + text_end diff --git a/scripts/Route1.asm b/scripts/Route1.asm index d41360b27..d2f0b7667 100755 --- a/scripts/Route1.asm +++ b/scripts/Route1.asm @@ -8,16 +8,16 @@ Route1_TextPointers: dw Route1Text3 Route1Text1: - TX_ASM - callba Func_f1ad2 + text_asm + farcall Func_f1ad2 jp TextScriptEnd Route1Text2: - TX_ASM - callba Func_f1b0f + text_asm + farcall Func_f1b0f jp TextScriptEnd Route1Text3: - TX_ASM - callba Func_f1b1b + text_asm + farcall Func_f1b1b jp TextScriptEnd diff --git a/scripts/Route10.asm b/scripts/Route10.asm index 3fffa2c09..93012b9a9 100755 --- a/scripts/Route10.asm +++ b/scripts/Route10.asm @@ -25,174 +25,132 @@ Route10_TextPointers: dw Route10Text10 Route10TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_10_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_10_TRAINER_0 - dw Route10BattleText1 ; TextBeforeBattle - dw Route10AfterBattleText1 ; TextAfterBattle - dw Route10EndBattleText1 ; TextEndBattle - dw Route10EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_10_TRAINER_0, 4, Route10BattleText1, Route10EndBattleText1, Route10AfterBattleText1 Route10TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_10_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_10_TRAINER_1 - dw Route10BattleText2 ; TextBeforeBattle - dw Route10AfterBattleText2 ; TextAfterBattle - dw Route10EndBattleText2 ; TextEndBattle - dw Route10EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_10_TRAINER_1, 3, Route10BattleText2, Route10EndBattleText2, Route10AfterBattleText2 Route10TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_10_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_10_TRAINER_2 - dw Route10BattleText3 ; TextBeforeBattle - dw Route10AfterBattleText3 ; TextAfterBattle - dw Route10EndBattleText3 ; TextEndBattle - dw Route10EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_10_TRAINER_2, 4, Route10BattleText3, Route10EndBattleText3, Route10AfterBattleText3 Route10TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_10_TRAINER_3 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_10_TRAINER_3 - dw Route10BattleText4 ; TextBeforeBattle - dw Route10AfterBattleText4 ; TextAfterBattle - dw Route10EndBattleText4 ; TextEndBattle - dw Route10EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_10_TRAINER_3, 3, Route10BattleText4, Route10EndBattleText4, Route10AfterBattleText4 Route10TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_10_TRAINER_4 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_10_TRAINER_4 - dw Route10BattleText5 ; TextBeforeBattle - dw Route10AfterBattleText5 ; TextAfterBattle - dw Route10EndBattleText5 ; TextEndBattle - dw Route10EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_10_TRAINER_4, 2, Route10BattleText5, Route10EndBattleText5, Route10AfterBattleText5 Route10TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_10_TRAINER_5 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_10_TRAINER_5 - dw Route10BattleText6 ; TextBeforeBattle - dw Route10AfterBattleText6 ; TextAfterBattle - dw Route10EndBattleText6 ; TextEndBattle - dw Route10EndBattleText6 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_10_TRAINER_5, 2, Route10BattleText6, Route10EndBattleText6, Route10AfterBattleText6 + db -1 ; end Route10Text1: - TX_ASM + text_asm ld hl, Route10TrainerHeader0 call TalkToTrainer jp TextScriptEnd Route10BattleText1: - TX_FAR _Route10BattleText1 - db "@" + text_far _Route10BattleText1 + text_end Route10EndBattleText1: - TX_FAR _Route10EndBattleText1 - db "@" + text_far _Route10EndBattleText1 + text_end Route10AfterBattleText1: - TX_FAR _Route10AfterBattleText1 - db "@" + text_far _Route10AfterBattleText1 + text_end Route10Text2: - TX_ASM + text_asm ld hl, Route10TrainerHeader1 call TalkToTrainer jp TextScriptEnd Route10BattleText2: - TX_FAR _Route10BattleText2 - db "@" + text_far _Route10BattleText2 + text_end Route10EndBattleText2: - TX_FAR _Route10EndBattleText2 - db "@" + text_far _Route10EndBattleText2 + text_end Route10AfterBattleText2: - TX_FAR _Route10AfterBattleText2 - db "@" + text_far _Route10AfterBattleText2 + text_end Route10Text3: - TX_ASM + text_asm ld hl, Route10TrainerHeader2 call TalkToTrainer jp TextScriptEnd Route10BattleText3: - TX_FAR _Route10BattleText3 - db "@" + text_far _Route10BattleText3 + text_end Route10EndBattleText3: - TX_FAR _Route10EndBattleText3 - db "@" + text_far _Route10EndBattleText3 + text_end Route10AfterBattleText3: - TX_FAR _Route10AfterBattleText3 - db "@" + text_far _Route10AfterBattleText3 + text_end Route10Text4: - TX_ASM + text_asm ld hl, Route10TrainerHeader3 call TalkToTrainer jp TextScriptEnd Route10BattleText4: - TX_FAR _Route10BattleText4 - db "@" + text_far _Route10BattleText4 + text_end Route10EndBattleText4: - TX_FAR _Route10EndBattleText4 - db "@" + text_far _Route10EndBattleText4 + text_end Route10AfterBattleText4: - TX_FAR _Route10AfterBattleText4 - db "@" + text_far _Route10AfterBattleText4 + text_end Route10Text5: - TX_ASM + text_asm ld hl, Route10TrainerHeader4 call TalkToTrainer jp TextScriptEnd Route10BattleText5: - TX_FAR _Route10BattleText5 - db "@" + text_far _Route10BattleText5 + text_end Route10EndBattleText5: - TX_FAR _Route10EndBattleText5 - db "@" + text_far _Route10EndBattleText5 + text_end Route10AfterBattleText5: - TX_FAR _Route10AfterBattleText5 - db "@" + text_far _Route10AfterBattleText5 + text_end Route10Text6: - TX_ASM + text_asm ld hl, Route10TrainerHeader5 call TalkToTrainer jp TextScriptEnd Route10BattleText6: - TX_FAR _Route10BattleText6 - db "@" + text_far _Route10BattleText6 + text_end Route10EndBattleText6: - TX_FAR _Route10EndBattleText6 - db "@" + text_far _Route10EndBattleText6 + text_end Route10AfterBattleText6: - TX_FAR _Route10AfterBattleText6 - db "@" + text_far _Route10AfterBattleText6 + text_end Route10Text9: Route10Text7: - TX_FAR _Route10Text7 ; _Route10Text9 - db "@" + text_far _Route10Text7 ; _Route10Text9 + text_end Route10Text10: - TX_FAR _Route10Text10 - db "@" + text_far _Route10Text10 + text_end diff --git a/scripts/Route11.asm b/scripts/Route11.asm index 891237cca..924c02762 100755 --- a/scripts/Route11.asm +++ b/scripts/Route11.asm @@ -26,277 +26,207 @@ Route11_TextPointers: dw Route11Text11 Route11TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_0 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_0 - dw Route11BattleText1 ; TextBeforeBattle - dw Route11AfterBattleText1 ; TextAfterBattle - dw Route11EndBattleText1 ; TextEndBattle - dw Route11EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_11_TRAINER_0, 3, Route11BattleText1, Route11EndBattleText1, Route11AfterBattleText1 Route11TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_1 - dw Route11BattleText2 ; TextBeforeBattle - dw Route11AfterBattleText2 ; TextAfterBattle - dw Route11EndBattleText2 ; TextEndBattle - dw Route11EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_11_TRAINER_1, 2, Route11BattleText2, Route11EndBattleText2, Route11AfterBattleText2 Route11TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_2 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_2 - dw Route11BattleText3 ; TextBeforeBattle - dw Route11AfterBattleText3 ; TextAfterBattle - dw Route11EndBattleText3 ; TextEndBattle - dw Route11EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_11_TRAINER_2, 3, Route11BattleText3, Route11EndBattleText3, Route11AfterBattleText3 Route11TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_3 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_3 - dw Route11BattleText4 ; TextBeforeBattle - dw Route11AfterBattleText4 ; TextAfterBattle - dw Route11EndBattleText4 ; TextEndBattle - dw Route11EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_11_TRAINER_3, 3, Route11BattleText4, Route11EndBattleText4, Route11AfterBattleText4 Route11TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_4 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_4 - dw Route11BattleText5 ; TextBeforeBattle - dw Route11AfterBattleText5 ; TextAfterBattle - dw Route11EndBattleText5 ; TextEndBattle - dw Route11EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_11_TRAINER_4, 4, Route11BattleText5, Route11EndBattleText5, Route11AfterBattleText5 Route11TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_5 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_5 - dw Route11BattleText6 ; TextBeforeBattle - dw Route11AfterBattleText6 ; TextAfterBattle - dw Route11EndBattleText6 ; TextEndBattle - dw Route11EndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_11_TRAINER_5, 3, Route11BattleText6, Route11EndBattleText6, Route11AfterBattleText6 Route11TrainerHeader6: - dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_6 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_6 - dw Route11BattleText7 ; TextBeforeBattle - dw Route11AfterBattleText7 ; TextAfterBattle - dw Route11EndBattleText7 ; TextEndBattle - dw Route11EndBattleText7 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_11_TRAINER_6, 3, Route11BattleText7, Route11EndBattleText7, Route11AfterBattleText7 Route11TrainerHeader7: - dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_7, 1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_7, 1 - dw Route11BattleText8 ; TextBeforeBattle - dw Route11AfterBattleText8 ; TextAfterBattle - dw Route11EndBattleText8 ; TextEndBattle - dw Route11EndBattleText8 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_11_TRAINER_7, 1, 4, Route11BattleText8, Route11EndBattleText8, Route11AfterBattleText8 Route11TrainerHeader8: - dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_8, 1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_8, 1 - dw Route11BattleText9 ; TextBeforeBattle - dw Route11AfterBattleText9 ; TextAfterBattle - dw Route11EndBattleText9 ; TextEndBattle - dw Route11EndBattleText9 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_11_TRAINER_8, 1, 3, Route11BattleText9, Route11EndBattleText9, Route11AfterBattleText9 Route11TrainerHeader9: - dbEventFlagBit EVENT_BEAT_ROUTE_11_TRAINER_9, 1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_11_TRAINER_9, 1 - dw Route11BattleText10 ; TextBeforeBattle - dw Route11AfterBattleText10 ; TextAfterBattle - dw Route11EndBattleText10 ; TextEndBattle - dw Route11EndBattleText10 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_11_TRAINER_9, 1, 4, Route11BattleText10, Route11EndBattleText10, Route11AfterBattleText10 + db -1 ; end Route11Text1: - TX_ASM + text_asm ld hl, Route11TrainerHeader0 call TalkToTrainer jp TextScriptEnd Route11BattleText1: - TX_FAR _Route11BattleText1 - db "@" + text_far _Route11BattleText1 + text_end Route11EndBattleText1: - TX_FAR _Route11EndBattleText1 - db "@" + text_far _Route11EndBattleText1 + text_end Route11AfterBattleText1: - TX_FAR _Route11AfterBattleText1 - db "@" + text_far _Route11AfterBattleText1 + text_end Route11Text2: - TX_ASM + text_asm ld hl, Route11TrainerHeader1 call TalkToTrainer jp TextScriptEnd Route11BattleText2: - TX_FAR _Route11BattleText2 - db "@" + text_far _Route11BattleText2 + text_end Route11EndBattleText2: - TX_FAR _Route11EndBattleText2 - db "@" + text_far _Route11EndBattleText2 + text_end Route11AfterBattleText2: - TX_FAR _Route11AfterBattleText2 - db "@" + text_far _Route11AfterBattleText2 + text_end Route11Text3: - TX_ASM + text_asm ld hl, Route11TrainerHeader2 call TalkToTrainer jp TextScriptEnd Route11BattleText3: - TX_FAR _Route11BattleText3 - db "@" + text_far _Route11BattleText3 + text_end Route11EndBattleText3: - TX_FAR _Route11EndBattleText3 - db "@" + text_far _Route11EndBattleText3 + text_end Route11AfterBattleText3: - TX_FAR _Route11AfterBattleText3 - db "@" + text_far _Route11AfterBattleText3 + text_end Route11Text4: - TX_ASM + text_asm ld hl, Route11TrainerHeader3 call TalkToTrainer jp TextScriptEnd Route11BattleText4: - TX_FAR _Route11BattleText4 - db "@" + text_far _Route11BattleText4 + text_end Route11EndBattleText4: - TX_FAR _Route11EndBattleText4 - db "@" + text_far _Route11EndBattleText4 + text_end Route11AfterBattleText4: - TX_FAR _Route11AfterBattleText4 - db "@" + text_far _Route11AfterBattleText4 + text_end Route11Text5: - TX_ASM + text_asm ld hl, Route11TrainerHeader4 call TalkToTrainer jp TextScriptEnd Route11BattleText5: - TX_FAR _Route11BattleText5 - db "@" + text_far _Route11BattleText5 + text_end Route11EndBattleText5: - TX_FAR _Route11EndBattleText5 - db "@" + text_far _Route11EndBattleText5 + text_end Route11AfterBattleText5: - TX_FAR _Route11AfterBattleText5 - db "@" + text_far _Route11AfterBattleText5 + text_end Route11Text6: - TX_ASM + text_asm ld hl, Route11TrainerHeader5 call TalkToTrainer jp TextScriptEnd Route11BattleText6: - TX_FAR _Route11BattleText6 - db "@" + text_far _Route11BattleText6 + text_end Route11EndBattleText6: - TX_FAR _Route11EndBattleText6 - db "@" + text_far _Route11EndBattleText6 + text_end Route11AfterBattleText6: - TX_FAR _Route11AfterBattleText6 - db "@" + text_far _Route11AfterBattleText6 + text_end Route11Text7: - TX_ASM + text_asm ld hl, Route11TrainerHeader6 call TalkToTrainer jp TextScriptEnd Route11BattleText7: - TX_FAR _Route11BattleText7 - db "@" + text_far _Route11BattleText7 + text_end Route11EndBattleText7: - TX_FAR _Route11EndBattleText7 - db "@" + text_far _Route11EndBattleText7 + text_end Route11AfterBattleText7: - TX_FAR _Route11AfterBattleText7 - db "@" + text_far _Route11AfterBattleText7 + text_end Route11Text8: - TX_ASM + text_asm ld hl, Route11TrainerHeader7 call TalkToTrainer jp TextScriptEnd Route11BattleText8: - TX_FAR _Route11BattleText8 - db "@" + text_far _Route11BattleText8 + text_end Route11EndBattleText8: - TX_FAR _Route11EndBattleText8 - db "@" + text_far _Route11EndBattleText8 + text_end Route11AfterBattleText8: - TX_FAR _Route11AfterBattleText8 - db "@" + text_far _Route11AfterBattleText8 + text_end Route11Text9: - TX_ASM + text_asm ld hl, Route11TrainerHeader8 call TalkToTrainer jp TextScriptEnd Route11BattleText9: - TX_FAR _Route11BattleText9 - db "@" + text_far _Route11BattleText9 + text_end Route11EndBattleText9: - TX_FAR _Route11EndBattleText9 - db "@" + text_far _Route11EndBattleText9 + text_end Route11AfterBattleText9: - TX_FAR _Route11AfterBattleText9 - db "@" + text_far _Route11AfterBattleText9 + text_end Route11Text10: - TX_ASM + text_asm ld hl, Route11TrainerHeader9 call TalkToTrainer jp TextScriptEnd Route11BattleText10: - TX_FAR _Route11BattleText10 - db "@" + text_far _Route11BattleText10 + text_end Route11EndBattleText10: - TX_FAR _Route11EndBattleText10 - db "@" + text_far _Route11EndBattleText10 + text_end Route11AfterBattleText10: - TX_FAR _Route11AfterBattleText10 - db "@" + text_far _Route11AfterBattleText10 + text_end Route11Text11: - TX_FAR _Route11Text11 - db "@" + text_far _Route11Text11 + text_end diff --git a/scripts/Route11Gate1F.asm b/scripts/Route11Gate1F.asm index 8e5f6c033..d1ebe6ea2 100755 --- a/scripts/Route11Gate1F.asm +++ b/scripts/Route11Gate1F.asm @@ -5,5 +5,5 @@ Route11Gate1F_TextPointers: dw Route11GateText1 Route11GateText1: - TX_FAR _Route11GateText1 - db "@" + text_far _Route11GateText1 + text_end diff --git a/scripts/Route11Gate2F.asm b/scripts/Route11Gate2F.asm index fde7fdd67..65352cd90 100755 --- a/scripts/Route11Gate2F.asm +++ b/scripts/Route11Gate2F.asm @@ -8,21 +8,21 @@ Route11Gate2F_TextPointers: dw Route11GateUpstairsText4 Route11GateUpstairsText1: - TX_ASM - ld a, $0 + text_asm + ld a, TRADE_FOR_TERRY ld [wWhichTrade], a predef DoInGameTradeDialogue Route11GateUpstairsScriptEnd: jp TextScriptEnd Route11GateUpstairsText2: - TX_ASM + text_asm CheckEvent EVENT_GOT_ITEMFINDER, 1 - jr c, .asm_4949b - ld a, 30 ; pokemon needed - ld [hOaksAideRequirement], a - ld a, ITEMFINDER ; oak's aide reward - ld [hOaksAideRewardItem], a + jr c, .got_item + ld a, 30 + ldh [hOaksAideRequirement], a + ld a, ITEMFINDER + ldh [hOaksAideRewardItem], a ld [wd11e], a call GetItemName ld h, d @@ -31,22 +31,22 @@ Route11GateUpstairsText2: ld bc, ITEM_NAME_LENGTH call CopyData predef OaksAideScript - ld a, [hOaksAideResult] - dec a - jr nz, .asm_494a1 + ldh a, [hOaksAideResult] + dec a ; OAKS_AIDE_GOT_ITEM? + jr nz, .no_item SetEvent EVENT_GOT_ITEMFINDER -.asm_4949b +.got_item ld hl, Route11GateUpstairsText_494a3 call PrintText -.asm_494a1 +.no_item jr Route11GateUpstairsScriptEnd Route11GateUpstairsText_494a3: - TX_FAR _Route11GateUpstairsText_494a3 - db "@" + text_far _Route11GateUpstairsText_494a3 + text_end Route11GateUpstairsText3: - TX_ASM + text_asm ld a, [wSpritePlayerStateData1FacingDirection] cp SPRITE_FACING_UP jp nz, GateUpstairsScript_PrintIfFacingUp @@ -59,18 +59,18 @@ Route11GateUpstairsText3: jp TextScriptEnd BinocularsSnorlaxText: - TX_FAR _BinocularsSnorlaxText - db "@" + text_far _BinocularsSnorlaxText + text_end BinocularsNoSnorlaxText: - TX_FAR _BinocularsNoSnorlaxText - db "@" + text_far _BinocularsNoSnorlaxText + text_end Route11GateUpstairsText4: - TX_ASM + text_asm ld hl, Route11GateUpstairsText_494d5 jp GateUpstairsScript_PrintIfFacingUp Route11GateUpstairsText_494d5: - TX_FAR _Route11GateUpstairsText_494d5 - db "@" + text_far _Route11GateUpstairsText_494d5 + text_end diff --git a/scripts/Route12.asm b/scripts/Route12.asm index 510e7727f..3c0d77e1f 100755 --- a/scripts/Route12.asm +++ b/scripts/Route12.asm @@ -27,7 +27,7 @@ Route12Script0: ResetEventReuseHL EVENT_FIGHT_ROUTE12_SNORLAX jp z, CheckFightingMapTrainers ld a, $d - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, SNORLAX ld [wCurOpponent], a @@ -50,7 +50,7 @@ Route12Script3: cp $2 jr z, .asm_59664 ld a, $e - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID .asm_59664 SetEvent EVENT_BEAT_ROUTE12_SNORLAX @@ -77,212 +77,163 @@ Route12_TextPointers: dw Route12Text14 Route12TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_12_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_12_TRAINER_0 - dw Route12BattleText1 ; TextBeforeBattle - dw Route12AfterBattleText1 ; TextAfterBattle - dw Route12EndBattleText1 ; TextEndBattle - dw Route12EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_12_TRAINER_0, 4, Route12BattleText1, Route12EndBattleText1, Route12AfterBattleText1 Route12TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_12_TRAINER_1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_12_TRAINER_1 - dw Route12BattleText2 ; TextBeforeBattle - dw Route12AfterBattleText2 ; TextAfterBattle - dw Route12EndBattleText2 ; TextEndBattle - dw Route12EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_12_TRAINER_1, 4, Route12BattleText2, Route12EndBattleText2, Route12AfterBattleText2 Route12TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_12_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_12_TRAINER_2 - dw Route12BattleText3 ; TextBeforeBattle - dw Route12AfterBattleText3 ; TextAfterBattle - dw Route12EndBattleText3 ; TextEndBattle - dw Route12EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_12_TRAINER_2, 4, Route12BattleText3, Route12EndBattleText3, Route12AfterBattleText3 Route12TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_12_TRAINER_3 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_12_TRAINER_3 - dw Route12BattleText4 ; TextBeforeBattle - dw Route12AfterBattleText4 ; TextAfterBattle - dw Route12EndBattleText4 ; TextEndBattle - dw Route12EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_12_TRAINER_3, 4, Route12BattleText4, Route12EndBattleText4, Route12AfterBattleText4 Route12TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_12_TRAINER_4 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_12_TRAINER_4 - dw Route12BattleText5 ; TextBeforeBattle - dw Route12AfterBattleText5 ; TextAfterBattle - dw Route12EndBattleText5 ; TextEndBattle - dw Route12EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_12_TRAINER_4, 4, Route12BattleText5, Route12EndBattleText5, Route12AfterBattleText5 Route12TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_12_TRAINER_5 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_12_TRAINER_5 - dw Route12BattleText6 ; TextBeforeBattle - dw Route12AfterBattleText6 ; TextAfterBattle - dw Route12EndBattleText6 ; TextEndBattle - dw Route12EndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_12_TRAINER_5, 4, Route12BattleText6, Route12EndBattleText6, Route12AfterBattleText6 Route12TrainerHeader6: - dbEventFlagBit EVENT_BEAT_ROUTE_12_TRAINER_6, 1 - db ($1 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_12_TRAINER_6, 1 - dw Route12BattleText7 ; TextBeforeBattle - dw Route12AfterBattleText7 ; TextAfterBattle - dw Route12EndBattleText7 ; TextEndBattle - dw Route12EndBattleText7 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_12_TRAINER_6, 1, 1, Route12BattleText7, Route12EndBattleText7, Route12AfterBattleText7 + db -1 ; end Route12Text1: - TX_FAR _Route12Text1 - db "@" + text_far _Route12Text1 + text_end Route12Text13: - TX_FAR _Route12Text13 - db "@" + text_far _Route12Text13 + text_end Route12Text14: - TX_FAR _Route12Text14 - db "@" + text_far _Route12Text14 + text_end Route12Text2: - TX_ASM + text_asm ld hl, Route12TrainerHeader0 call TalkToTrainer jp TextScriptEnd Route12BattleText1: - TX_FAR _Route12BattleText1 - db "@" + text_far _Route12BattleText1 + text_end Route12EndBattleText1: - TX_FAR _Route12EndBattleText1 - db "@" + text_far _Route12EndBattleText1 + text_end Route12AfterBattleText1: - TX_FAR _Route12AfterBattleText1 - db "@" + text_far _Route12AfterBattleText1 + text_end Route12Text3: - TX_ASM + text_asm ld hl, Route12TrainerHeader1 call TalkToTrainer jp TextScriptEnd Route12BattleText2: - TX_FAR _Route12BattleText2 - db "@" + text_far _Route12BattleText2 + text_end Route12EndBattleText2: - TX_FAR _Route12EndBattleText2 - db "@" + text_far _Route12EndBattleText2 + text_end Route12AfterBattleText2: - TX_FAR _Route12AfterBattleText2 - db "@" + text_far _Route12AfterBattleText2 + text_end Route12Text4: - TX_ASM + text_asm ld hl, Route12TrainerHeader2 call TalkToTrainer jp TextScriptEnd Route12BattleText3: - TX_FAR _Route12BattleText3 - db "@" + text_far _Route12BattleText3 + text_end Route12EndBattleText3: - TX_FAR _Route12EndBattleText3 - db "@" + text_far _Route12EndBattleText3 + text_end Route12AfterBattleText3: - TX_FAR _Route12AfterBattleText3 - db "@" + text_far _Route12AfterBattleText3 + text_end Route12Text5: - TX_ASM + text_asm ld hl, Route12TrainerHeader3 call TalkToTrainer jp TextScriptEnd Route12BattleText4: - TX_FAR _Route12BattleText4 - db "@" + text_far _Route12BattleText4 + text_end Route12EndBattleText4: - TX_FAR _Route12EndBattleText4 - db "@" + text_far _Route12EndBattleText4 + text_end Route12AfterBattleText4: - TX_FAR _Route12AfterBattleText4 - db "@" + text_far _Route12AfterBattleText4 + text_end Route12Text6: - TX_ASM + text_asm ld hl, Route12TrainerHeader4 call TalkToTrainer jp TextScriptEnd Route12BattleText5: - TX_FAR _Route12BattleText5 - db "@" + text_far _Route12BattleText5 + text_end Route12EndBattleText5: - TX_FAR _Route12EndBattleText5 - db "@" + text_far _Route12EndBattleText5 + text_end Route12AfterBattleText5: - TX_FAR _Route12AfterBattleText5 - db "@" + text_far _Route12AfterBattleText5 + text_end Route12Text7: - TX_ASM + text_asm ld hl, Route12TrainerHeader5 call TalkToTrainer jp TextScriptEnd Route12BattleText6: - TX_FAR _Route12BattleText6 - db "@" + text_far _Route12BattleText6 + text_end Route12EndBattleText6: - TX_FAR _Route12EndBattleText6 - db "@" + text_far _Route12EndBattleText6 + text_end Route12AfterBattleText6: - TX_FAR _Route12AfterBattleText6 - db "@" + text_far _Route12AfterBattleText6 + text_end Route12Text8: - TX_ASM + text_asm ld hl, Route12TrainerHeader6 call TalkToTrainer jp TextScriptEnd Route12BattleText7: - TX_FAR _Route12BattleText7 - db "@" + text_far _Route12BattleText7 + text_end Route12EndBattleText7: - TX_FAR _Route12EndBattleText7 - db "@" + text_far _Route12EndBattleText7 + text_end Route12AfterBattleText7: - TX_FAR _Route12AfterBattleText7 - db "@" + text_far _Route12AfterBattleText7 + text_end Route12Text11: - TX_FAR _Route12Text11 - db "@" + text_far _Route12Text11 + text_end Route12Text12: - TX_FAR _Route12Text12 - db "@" + text_far _Route12Text12 + text_end diff --git a/scripts/Route12Gate1F.asm b/scripts/Route12Gate1F.asm index 52d427ee7..72f2dfbfa 100755 --- a/scripts/Route12Gate1F.asm +++ b/scripts/Route12Gate1F.asm @@ -5,5 +5,5 @@ Route12Gate1F_TextPointers: dw Route12GateText1 Route12GateText1: - TX_FAR _Route12GateText1 - db "@" + text_far _Route12GateText1 + text_end diff --git a/scripts/Route12Gate2F.asm b/scripts/Route12Gate2F.asm index 4fe120e8f..2174fba8b 100755 --- a/scripts/Route12Gate2F.asm +++ b/scripts/Route12Gate2F.asm @@ -7,68 +7,68 @@ Route12Gate2F_TextPointers: dw Route12GateUpstairsText3 Route12GateUpstairsText1: - TX_ASM + text_asm CheckEvent EVENT_GOT_TM39, 1 - jr c, .asm_0ad3c + jr c, .got_item ld hl, TM39PreReceiveText call PrintText - lb bc, TM_39, 1 + lb bc, TM_SWIFT, 1 call GiveItem - jr nc, .BagFull + jr nc, .bag_full ld hl, ReceivedTM39Text call PrintText SetEvent EVENT_GOT_TM39 - jr .asm_4ba56 -.BagFull + jr .done +.bag_full ld hl, TM39NoRoomText call PrintText - jr .asm_4ba56 -.asm_0ad3c + jr .done +.got_item ld hl, TM39ExplanationText call PrintText -.asm_4ba56 +.done jp TextScriptEnd TM39PreReceiveText: - TX_FAR _TM39PreReceiveText - db "@" + text_far _TM39PreReceiveText + text_end ReceivedTM39Text: - TX_FAR _ReceivedTM39Text - TX_SFX_ITEM_1 - db "@" + text_far _ReceivedTM39Text + sound_get_item_1 + text_end TM39ExplanationText: - TX_FAR _TM39ExplanationText - db "@" + text_far _TM39ExplanationText + text_end TM39NoRoomText: - TX_FAR _TM39NoRoomText - db "@" + text_far _TM39NoRoomText + text_end Route12GateUpstairsText2: - TX_ASM + text_asm ld hl, Route12GateUpstairsText_495b8 jp GateUpstairsScript_PrintIfFacingUp Route12GateUpstairsText_495b8: - TX_FAR _Route12GateUpstairsText_495b8 - db "@" + text_far _Route12GateUpstairsText_495b8 + text_end Route12GateUpstairsText3: - TX_ASM + text_asm ld hl, Route12GateUpstairsText_495c4 jp GateUpstairsScript_PrintIfFacingUp Route12GateUpstairsText_495c4: - TX_FAR _Route12GateUpstairsText_495c4 - db "@" + text_far _Route12GateUpstairsText_495c4 + text_end GateUpstairsScript_PrintIfFacingUp: ld a, [wSpritePlayerStateData1FacingDirection] cp SPRITE_FACING_UP jr z, .up - ld a, $1 + ld a, TRUE jr .done .up call PrintText diff --git a/scripts/Route12SuperRodHouse.asm b/scripts/Route12SuperRodHouse.asm index de8ed8f07..fba5426e9 100755 --- a/scripts/Route12SuperRodHouse.asm +++ b/scripts/Route12SuperRodHouse.asm @@ -5,53 +5,53 @@ Route12SuperRodHouse_TextPointers: dw Route12HouseText1 Route12HouseText1: - TX_ASM + text_asm ld a, [wd728] - bit 5, a - jr nz, .asm_b4cad + bit 5, a ; received super rod? + jr nz, .got_item ld hl, Route12HouseText_564c0 call PrintText call YesNoChoice ld a, [wCurrentMenuItem] and a - jr nz, .asm_a2d76 + jr nz, .refused lb bc, SUPER_ROD, 1 call GiveItem - jr nc, .BagFull + jr nc, .bag_full ld hl, wd728 - set 5, [hl] + set 5, [hl] ; received super rod ld hl, Route12HouseText_564c5 - jr .asm_df984 -.BagFull + jr .done +.bag_full ld hl, Route12HouseText_564d9 - jr .asm_df984 -.asm_a2d76 + jr .done +.refused ld hl, Route12HouseText_564cf - jr .asm_df984 -.asm_b4cad + jr .done +.got_item ld hl, Route12HouseText_564d4 -.asm_df984 +.done call PrintText jp TextScriptEnd Route12HouseText_564c0: - TX_FAR _Route12HouseText_564c0 - db "@" + text_far _Route12HouseText_564c0 + text_end Route12HouseText_564c5: - TX_FAR _Route12HouseText_564c5 - TX_SFX_ITEM_1 - TX_FAR _Route12HouseText_564ca - db "@" + text_far _Route12HouseText_564c5 + sound_get_item_1 + text_far _Route12HouseText_564ca + text_end Route12HouseText_564cf: - TX_FAR _Route12HouseText_564cf - db "@" + text_far _Route12HouseText_564cf + text_end Route12HouseText_564d4: - TX_FAR _Route12HouseText_564d4 - db "@" + text_far _Route12HouseText_564d4 + text_end Route12HouseText_564d9: - TX_FAR _Route12HouseText_564d9 - db "@" + text_far _Route12HouseText_564d9 + text_end diff --git a/scripts/Route13.asm b/scripts/Route13.asm index 8f92147e9..c01ed514e 100755 --- a/scripts/Route13.asm +++ b/scripts/Route13.asm @@ -28,285 +28,215 @@ Route13_TextPointers: dw Route13Text13 Route13TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_0 - dw Route13BattleText2 ; TextBeforeBattle - dw Route13AfterBattleText2 ; TextAfterBattle - dw Route13EndBattleText2 ; TextEndBattle - dw Route13EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_13_TRAINER_0, 2, Route13BattleText2, Route13EndBattleText2, Route13AfterBattleText2 Route13TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_1 - dw Route13BattleText3 ; TextBeforeBattle - dw Route13AfterBattleText3 ; TextAfterBattle - dw Route13EndBattleText3 ; TextEndBattle - dw Route13EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_13_TRAINER_1, 2, Route13BattleText3, Route13EndBattleText3, Route13AfterBattleText3 Route13TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_2 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_2 - dw Route13BattleText4 ; TextBeforeBattle - dw Route13AfterBattleText4 ; TextAfterBattle - dw Route13EndBattleText4 ; TextEndBattle - dw Route13EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_13_TRAINER_2, 2, Route13BattleText4, Route13EndBattleText4, Route13AfterBattleText4 Route13TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_3 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_3 - dw Route13BattleText5 ; TextBeforeBattle - dw Route13AfterBattleText5 ; TextAfterBattle - dw Route13EndBattleText5 ; TextEndBattle - dw Route13EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_13_TRAINER_3, 2, Route13BattleText5, Route13EndBattleText5, Route13AfterBattleText5 Route13TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_4 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_4 - dw Route13BattleText6 ; TextBeforeBattle - dw Route13AfterBattleText6 ; TextAfterBattle - dw Route13EndBattleText6 ; TextEndBattle - dw Route13EndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_13_TRAINER_4, 4, Route13BattleText6, Route13EndBattleText6, Route13AfterBattleText6 Route13TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_5 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_5 - dw Route13BattleText7 ; TextBeforeBattle - dw Route13AfterBattleText7 ; TextAfterBattle - dw Route13EndBattleText7 ; TextEndBattle - dw Route13EndBattleText7 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_13_TRAINER_5, 2, Route13BattleText7, Route13EndBattleText7, Route13AfterBattleText7 Route13TrainerHeader6: - dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_6 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_6 - dw Route13BattleText8 ; TextBeforeBattle - dw Route13AfterBattleText8 ; TextAfterBattle - dw Route13EndBattleText8 ; TextEndBattle - dw Route13EndBattleText8 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_13_TRAINER_6, 4, Route13BattleText8, Route13EndBattleText8, Route13AfterBattleText8 Route13TrainerHeader7: - dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_7, 1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_7, 1 - dw Route13BattleText9 ; TextBeforeBattle - dw Route13AfterBattleText9 ; TextAfterBattle - dw Route13EndBattleText9 ; TextEndBattle - dw Route13EndBattleText9 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_13_TRAINER_7, 1, 2, Route13BattleText9, Route13EndBattleText9, Route13AfterBattleText9 Route13TrainerHeader8: - dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_8, 1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_8, 1 - dw Route13BattleText10 ; TextBeforeBattle - dw Route13AfterBattleText10 ; TextAfterBattle - dw Route13EndBattleText10 ; TextEndBattle - dw Route13EndBattleText10 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_13_TRAINER_8, 1, 2, Route13BattleText10, Route13EndBattleText10, Route13AfterBattleText10 Route13TrainerHeader9: - dbEventFlagBit EVENT_BEAT_ROUTE_13_TRAINER_9, 1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_13_TRAINER_9, 1 - dw Route13BattleText11 ; TextBeforeBattle - dw Route13AfterBattleText11 ; TextAfterBattle - dw Route13EndBattleText11 ; TextEndBattle - dw Route13EndBattleText11 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_13_TRAINER_9, 1, 4, Route13BattleText11, Route13EndBattleText11, Route13AfterBattleText11 + db -1 ; end Route13Text1: - TX_ASM + text_asm ld hl, Route13TrainerHeader0 call TalkToTrainer jp TextScriptEnd Route13BattleText2: - TX_FAR _Route13BattleText2 - db "@" + text_far _Route13BattleText2 + text_end Route13EndBattleText2: - TX_FAR _Route13EndBattleText2 - db "@" + text_far _Route13EndBattleText2 + text_end Route13AfterBattleText2: - TX_FAR _Route13AfterBattleText2 - db "@" + text_far _Route13AfterBattleText2 + text_end Route13Text2: - TX_ASM + text_asm ld hl, Route13TrainerHeader1 call TalkToTrainer jp TextScriptEnd Route13BattleText3: - TX_FAR _Route13BattleText3 - db "@" + text_far _Route13BattleText3 + text_end Route13EndBattleText3: - TX_FAR _Route13EndBattleText3 - db "@" + text_far _Route13EndBattleText3 + text_end Route13AfterBattleText3: - TX_FAR _Route13AfterBattleText3 - db "@" + text_far _Route13AfterBattleText3 + text_end Route13Text3: - TX_ASM + text_asm ld hl, Route13TrainerHeader2 call TalkToTrainer jp TextScriptEnd Route13BattleText4: - TX_FAR _Route13BattleText4 - db "@" + text_far _Route13BattleText4 + text_end Route13EndBattleText4: - TX_FAR _Route13EndBattleText4 - db "@" + text_far _Route13EndBattleText4 + text_end Route13AfterBattleText4: - TX_FAR _Route13AfterBattleText4 - db "@" + text_far _Route13AfterBattleText4 + text_end Route13Text4: - TX_ASM + text_asm ld hl, Route13TrainerHeader3 call TalkToTrainer jp TextScriptEnd Route13BattleText5: - TX_FAR _Route13BattleText5 - db "@" + text_far _Route13BattleText5 + text_end Route13EndBattleText5: - TX_FAR _Route13EndBattleText5 - db "@" + text_far _Route13EndBattleText5 + text_end Route13AfterBattleText5: - TX_FAR _Route13AfterBattleText5 - db "@" + text_far _Route13AfterBattleText5 + text_end Route13Text5: - TX_ASM + text_asm ld hl, Route13TrainerHeader4 call TalkToTrainer jp TextScriptEnd Route13BattleText6: - TX_FAR _Route13BattleText6 - db "@" + text_far _Route13BattleText6 + text_end Route13EndBattleText6: - TX_FAR _Route13EndBattleText6 - db "@" + text_far _Route13EndBattleText6 + text_end Route13AfterBattleText6: - TX_FAR _Route13AfterBattleText6 - db "@" + text_far _Route13AfterBattleText6 + text_end Route13Text6: - TX_ASM + text_asm ld hl, Route13TrainerHeader5 call TalkToTrainer jp TextScriptEnd Route13BattleText7: - TX_FAR _Route13BattleText7 - db "@" + text_far _Route13BattleText7 + text_end Route13EndBattleText7: - TX_FAR _Route13EndBattleText7 - db "@" + text_far _Route13EndBattleText7 + text_end Route13AfterBattleText7: - TX_FAR _Route13AfterBattleText7 - db "@" + text_far _Route13AfterBattleText7 + text_end Route13Text7: - TX_ASM + text_asm ld hl, Route13TrainerHeader6 call TalkToTrainer jp TextScriptEnd Route13BattleText8: - TX_FAR _Route13BattleText8 - db "@" + text_far _Route13BattleText8 + text_end Route13EndBattleText8: - TX_FAR _Route13EndBattleText8 - db "@" + text_far _Route13EndBattleText8 + text_end Route13AfterBattleText8: - TX_FAR _Route13AfterBattleText8 - db "@" + text_far _Route13AfterBattleText8 + text_end Route13Text8: - TX_ASM + text_asm ld hl, Route13TrainerHeader7 call TalkToTrainer jp TextScriptEnd Route13BattleText9: - TX_FAR _Route13BattleText9 - db "@" + text_far _Route13BattleText9 + text_end Route13EndBattleText9: - TX_FAR _Route13EndBattleText9 - db "@" + text_far _Route13EndBattleText9 + text_end Route13AfterBattleText9: - TX_FAR _Route13AfterBattleText9 - db "@" + text_far _Route13AfterBattleText9 + text_end Route13Text9: - TX_ASM + text_asm ld hl, Route13TrainerHeader8 call TalkToTrainer jp TextScriptEnd Route13BattleText10: - TX_FAR _Route13BattleText10 - db "@" + text_far _Route13BattleText10 + text_end Route13EndBattleText10: - TX_FAR _Route13EndBattleText10 - db "@" + text_far _Route13EndBattleText10 + text_end Route13AfterBattleText10: - TX_FAR _Route13AfterBattleText10 - db "@" + text_far _Route13AfterBattleText10 + text_end Route13Text10: - TX_ASM + text_asm ld hl, Route13TrainerHeader9 call TalkToTrainer jp TextScriptEnd Route13BattleText11: - TX_FAR _Route13BattleText11 - db "@" + text_far _Route13BattleText11 + text_end Route13EndBattleText11: - TX_FAR _Route13EndBattleText11 - db "@" + text_far _Route13EndBattleText11 + text_end Route13AfterBattleText11: - TX_FAR _Route13AfterBattleText11 - db "@" + text_far _Route13AfterBattleText11 + text_end Route13Text11: - TX_FAR _Route13Text11 - db "@" + text_far _Route13Text11 + text_end Route13Text12: - TX_FAR _Route13Text12 - db "@" + text_far _Route13Text12 + text_end Route13Text13: - TX_FAR _Route13Text13 - db "@" + text_far _Route13Text13 + text_end diff --git a/scripts/Route14.asm b/scripts/Route14.asm index fdc84d748..988fbe32f 100755 --- a/scripts/Route14.asm +++ b/scripts/Route14.asm @@ -26,277 +26,207 @@ Route14_TextPointers: dw Route14Text11 Route14TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_0 - dw Route14BattleText1 ; TextBeforeBattle - dw Route14AfterBattleText1 ; TextAfterBattle - dw Route14EndBattleText1 ; TextEndBattle - dw Route14EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_14_TRAINER_0, 2, Route14BattleText1, Route14EndBattleText1, Route14AfterBattleText1 Route14TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_1 - dw Route14BattleText2 ; TextBeforeBattle - dw Route14AfterBattleText2 ; TextAfterBattle - dw Route14EndBattleText2 ; TextEndBattle - dw Route14EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_14_TRAINER_1, 2, Route14BattleText2, Route14EndBattleText2, Route14AfterBattleText2 Route14TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_2 - dw Route14BattleText3 ; TextBeforeBattle - dw Route14AfterBattleText3 ; TextAfterBattle - dw Route14EndBattleText3 ; TextEndBattle - dw Route14EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_14_TRAINER_2, 4, Route14BattleText3, Route14EndBattleText3, Route14AfterBattleText3 Route14TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_3 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_3 - dw Route14BattleText4 ; TextBeforeBattle - dw Route14AfterBattleText4 ; TextAfterBattle - dw Route14EndBattleText4 ; TextEndBattle - dw Route14EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_14_TRAINER_3, 3, Route14BattleText4, Route14EndBattleText4, Route14AfterBattleText4 Route14TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_4 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_4 - dw Route14BattleText5 ; TextBeforeBattle - dw Route14AfterBattleText5 ; TextAfterBattle - dw Route14EndBattleText5 ; TextEndBattle - dw Route14EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_14_TRAINER_4, 3, Route14BattleText5, Route14EndBattleText5, Route14AfterBattleText5 Route14TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_5 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_5 - dw Route14BattleText6 ; TextBeforeBattle - dw Route14AfterBattleText6 ; TextAfterBattle - dw Route14EndBattleText6 ; TextEndBattle - dw Route14EndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_14_TRAINER_5, 4, Route14BattleText6, Route14EndBattleText6, Route14AfterBattleText6 Route14TrainerHeader6: - dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_6 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_6 - dw Route14BattleText7 ; TextBeforeBattle - dw Route14AfterBattleText7 ; TextAfterBattle - dw Route14EndBattleText7 ; TextEndBattle - dw Route14EndBattleText7 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_14_TRAINER_6, 4, Route14BattleText7, Route14EndBattleText7, Route14AfterBattleText7 Route14TrainerHeader7: - dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_7, 1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_7, 1 - dw Route14BattleText8 ; TextBeforeBattle - dw Route14AfterBattleText8 ; TextAfterBattle - dw Route14EndBattleText8 ; TextEndBattle - dw Route14EndBattleText8 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_14_TRAINER_7, 1, 4, Route14BattleText8, Route14EndBattleText8, Route14AfterBattleText8 Route14TrainerHeader8: - dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_8, 1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_8, 1 - dw Route14BattleText9 ; TextBeforeBattle - dw Route14AfterBattleText9 ; TextAfterBattle - dw Route14EndBattleText9 ; TextEndBattle - dw Route14EndBattleText9 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_14_TRAINER_8, 1, 3, Route14BattleText9, Route14EndBattleText9, Route14AfterBattleText9 Route14TrainerHeader9: - dbEventFlagBit EVENT_BEAT_ROUTE_14_TRAINER_9, 1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_14_TRAINER_9, 1 - dw Route14BattleText10 ; TextBeforeBattle - dw Route14AfterBattleText10 ; TextAfterBattle - dw Route14EndBattleText10 ; TextEndBattle - dw Route14EndBattleText10 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_14_TRAINER_9, 1, 4, Route14BattleText10, Route14EndBattleText10, Route14AfterBattleText10 + db -1 ; end Route14Text1: - TX_ASM + text_asm ld hl, Route14TrainerHeader0 call TalkToTrainer jp TextScriptEnd Route14BattleText1: - TX_FAR _Route14BattleText1 - db "@" + text_far _Route14BattleText1 + text_end Route14EndBattleText1: - TX_FAR _Route14EndBattleText1 - db "@" + text_far _Route14EndBattleText1 + text_end Route14AfterBattleText1: - TX_FAR _Route14AfterBattleText1 - db "@" + text_far _Route14AfterBattleText1 + text_end Route14Text2: - TX_ASM + text_asm ld hl, Route14TrainerHeader1 call TalkToTrainer jp TextScriptEnd Route14BattleText2: - TX_FAR _Route14BattleText2 - db "@" + text_far _Route14BattleText2 + text_end Route14EndBattleText2: - TX_FAR _Route14EndBattleText2 - db "@" + text_far _Route14EndBattleText2 + text_end Route14AfterBattleText2: - TX_FAR _Route14AfterBattleText2 - db "@" + text_far _Route14AfterBattleText2 + text_end Route14Text3: - TX_ASM + text_asm ld hl, Route14TrainerHeader2 call TalkToTrainer jp TextScriptEnd Route14BattleText3: - TX_FAR _Route14BattleText3 - db "@" + text_far _Route14BattleText3 + text_end Route14EndBattleText3: - TX_FAR _Route14EndBattleText3 - db "@" + text_far _Route14EndBattleText3 + text_end Route14AfterBattleText3: - TX_FAR _Route14AfterBattleText3 - db "@" + text_far _Route14AfterBattleText3 + text_end Route14Text4: - TX_ASM + text_asm ld hl, Route14TrainerHeader3 call TalkToTrainer jp TextScriptEnd Route14BattleText4: - TX_FAR _Route14BattleText4 - db "@" + text_far _Route14BattleText4 + text_end Route14EndBattleText4: - TX_FAR _Route14EndBattleText4 - db "@" + text_far _Route14EndBattleText4 + text_end Route14AfterBattleText4: - TX_FAR _Route14AfterBattleText4 - db "@" + text_far _Route14AfterBattleText4 + text_end Route14Text5: - TX_ASM + text_asm ld hl, Route14TrainerHeader4 call TalkToTrainer jp TextScriptEnd Route14BattleText5: - TX_FAR _Route14BattleText5 - db "@" + text_far _Route14BattleText5 + text_end Route14EndBattleText5: - TX_FAR _Route14EndBattleText5 - db "@" + text_far _Route14EndBattleText5 + text_end Route14AfterBattleText5: - TX_FAR _Route14AfterBattleText5 - db "@" + text_far _Route14AfterBattleText5 + text_end Route14Text6: - TX_ASM + text_asm ld hl, Route14TrainerHeader5 call TalkToTrainer jp TextScriptEnd Route14BattleText6: - TX_FAR _Route14BattleText6 - db "@" + text_far _Route14BattleText6 + text_end Route14EndBattleText6: - TX_FAR _Route14EndBattleText6 - db "@" + text_far _Route14EndBattleText6 + text_end Route14AfterBattleText6: - TX_FAR _Route14AfterBattleText6 - db "@" + text_far _Route14AfterBattleText6 + text_end Route14Text7: - TX_ASM + text_asm ld hl, Route14TrainerHeader6 call TalkToTrainer jp TextScriptEnd Route14BattleText7: - TX_FAR _Route14BattleText7 - db "@" + text_far _Route14BattleText7 + text_end Route14EndBattleText7: - TX_FAR _Route14EndBattleText7 - db "@" + text_far _Route14EndBattleText7 + text_end Route14AfterBattleText7: - TX_FAR _Route14AfterBattleText7 - db "@" + text_far _Route14AfterBattleText7 + text_end Route14Text8: - TX_ASM + text_asm ld hl, Route14TrainerHeader7 call TalkToTrainer jp TextScriptEnd Route14BattleText8: - TX_FAR _Route14BattleText8 - db "@" + text_far _Route14BattleText8 + text_end Route14EndBattleText8: - TX_FAR _Route14EndBattleText8 - db "@" + text_far _Route14EndBattleText8 + text_end Route14AfterBattleText8: - TX_FAR _Route14AfterBattleText8 - db "@" + text_far _Route14AfterBattleText8 + text_end Route14Text9: - TX_ASM + text_asm ld hl, Route14TrainerHeader8 call TalkToTrainer jp TextScriptEnd Route14BattleText9: - TX_FAR _Route14BattleText9 - db "@" + text_far _Route14BattleText9 + text_end Route14EndBattleText9: - TX_FAR _Route14EndBattleText9 - db "@" + text_far _Route14EndBattleText9 + text_end Route14AfterBattleText9: - TX_FAR _Route14AfterBattleText9 - db "@" + text_far _Route14AfterBattleText9 + text_end Route14Text10: - TX_ASM + text_asm ld hl, Route14TrainerHeader9 call TalkToTrainer jp TextScriptEnd Route14BattleText10: - TX_FAR _Route14BattleText10 - db "@" + text_far _Route14BattleText10 + text_end Route14EndBattleText10: - TX_FAR _Route14EndBattleText10 - db "@" + text_far _Route14EndBattleText10 + text_end Route14AfterBattleText10: - TX_FAR _Route14AfterBattleText10 - db "@" + text_far _Route14AfterBattleText10 + text_end Route14Text11: - TX_FAR _Route14Text11 - db "@" + text_far _Route14Text11 + text_end diff --git a/scripts/Route15.asm b/scripts/Route15.asm index d973eb9c5..3eed25d57 100755 --- a/scripts/Route15.asm +++ b/scripts/Route15.asm @@ -27,269 +27,199 @@ Route15_TextPointers: dw Route15Text12 Route15TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_0 - dw Route15BattleText1 ; TextBeforeBattle - dw Route15AfterBattleText1 ; TextAfterBattle - dw Route15EndBattleText1 ; TextEndBattle - dw Route15EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_15_TRAINER_0, 2, Route15BattleText1, Route15EndBattleText1, Route15AfterBattleText1 Route15TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_1 - dw Route15BattleText2 ; TextBeforeBattle - dw Route15AfterBattleText2 ; TextAfterBattle - dw Route15EndBattleText2 ; TextEndBattle - dw Route15EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_15_TRAINER_1, 3, Route15BattleText2, Route15EndBattleText2, Route15AfterBattleText2 Route15TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_2 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_2 - dw Route15BattleText3 ; TextBeforeBattle - dw Route15AfterBattleText3 ; TextAfterBattle - dw Route15EndBattleText3 ; TextEndBattle - dw Route15EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_15_TRAINER_2, 3, Route15BattleText3, Route15EndBattleText3, Route15AfterBattleText3 Route15TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_3 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_3 - dw Route15BattleText4 ; TextBeforeBattle - dw Route15AfterBattleText4 ; TextAfterBattle - dw Route15EndBattleText4 ; TextEndBattle - dw Route15EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_15_TRAINER_3, 3, Route15BattleText4, Route15EndBattleText4, Route15AfterBattleText4 Route15TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_4 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_4 - dw Route15BattleText5 ; TextBeforeBattle - dw Route15AfterBattleText5 ; TextAfterBattle - dw Route15EndBattleText5 ; TextEndBattle - dw Route15EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_15_TRAINER_4, 2, Route15BattleText5, Route15EndBattleText5, Route15AfterBattleText5 Route15TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_5 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_5 - dw Route15BattleText6 ; TextBeforeBattle - dw Route15AfterBattleText6 ; TextAfterBattle - dw Route15EndBattleText6 ; TextEndBattle - dw Route15EndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_15_TRAINER_5, 3, Route15BattleText6, Route15EndBattleText6, Route15AfterBattleText6 Route15TrainerHeader6: - dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_6 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_6 - dw Route15BattleText7 ; TextBeforeBattle - dw Route15AfterBattleText7 ; TextAfterBattle - dw Route15EndBattleText7 ; TextEndBattle - dw Route15EndBattleText7 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_15_TRAINER_6, 3, Route15BattleText7, Route15EndBattleText7, Route15AfterBattleText7 Route15TrainerHeader7: - dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_7, 1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_7, 1 - dw Route15BattleText8 ; TextBeforeBattle - dw Route15AfterBattleText8 ; TextAfterBattle - dw Route15EndBattleText8 ; TextEndBattle - dw Route15EndBattleText8 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_15_TRAINER_7, 1, 3, Route15BattleText8, Route15EndBattleText8, Route15AfterBattleText8 Route15TrainerHeader8: - dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_8, 1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_8, 1 - dw Route15BattleText9 ; TextBeforeBattle - dw Route15AfterBattleText9 ; TextAfterBattle - dw Route15EndBattleText9 ; TextEndBattle - dw Route15EndBattleText9 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_15_TRAINER_8, 1, 3, Route15BattleText9, Route15EndBattleText9, Route15AfterBattleText9 Route15TrainerHeader9: - dbEventFlagBit EVENT_BEAT_ROUTE_15_TRAINER_9, 1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_15_TRAINER_9, 1 - dw Route15BattleText10 ; TextBeforeBattle - dw Route15AfterBattleText10 ; TextAfterBattle - dw Route15EndBattleText10 ; TextEndBattle - dw Route15EndBattleText10 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_15_TRAINER_9, 1, 3, Route15BattleText10, Route15EndBattleText10, Route15AfterBattleText10 + db -1 ; end Route15Text1: - TX_ASM + text_asm ld hl, Route15TrainerHeader0 jr Route15TalkToTrainer Route15Text2: - TX_ASM + text_asm ld hl, Route15TrainerHeader1 jr Route15TalkToTrainer Route15Text3: - TX_ASM + text_asm ld hl, Route15TrainerHeader2 jr Route15TalkToTrainer Route15Text4: - TX_ASM + text_asm ld hl, Route15TrainerHeader3 jr Route15TalkToTrainer Route15Text5: - TX_ASM + text_asm ld hl, Route15TrainerHeader4 jr Route15TalkToTrainer Route15Text6: - TX_ASM + text_asm ld hl, Route15TrainerHeader5 jr Route15TalkToTrainer Route15Text7: - TX_ASM + text_asm ld hl, Route15TrainerHeader6 jr Route15TalkToTrainer Route15Text8: - TX_ASM + text_asm ld hl, Route15TrainerHeader7 jr Route15TalkToTrainer Route15Text9: - TX_ASM + text_asm ld hl, Route15TrainerHeader8 jr Route15TalkToTrainer Route15Text10: - TX_ASM + text_asm ld hl, Route15TrainerHeader9 Route15TalkToTrainer: call TalkToTrainer jp TextScriptEnd Route15BattleText1: - TX_FAR _Route15BattleText1 - db "@" + text_far _Route15BattleText1 + text_end Route15EndBattleText1: - TX_FAR _Route15EndBattleText1 - db "@" + text_far _Route15EndBattleText1 + text_end Route15AfterBattleText1: - TX_FAR _Route15AfterBattleText1 - db "@" + text_far _Route15AfterBattleText1 + text_end Route15BattleText2: - TX_FAR _Route15BattleText2 - db "@" + text_far _Route15BattleText2 + text_end Route15EndBattleText2: - TX_FAR _Route15EndBattleText2 - db "@" + text_far _Route15EndBattleText2 + text_end Route15AfterBattleText2: - TX_FAR _Route15AfterBattleText2 - db "@" + text_far _Route15AfterBattleText2 + text_end Route15BattleText3: - TX_FAR _Route15BattleText3 - db "@" + text_far _Route15BattleText3 + text_end Route15EndBattleText3: - TX_FAR _Route15EndBattleText3 - db "@" + text_far _Route15EndBattleText3 + text_end Route15AfterBattleText3: - TX_FAR _Route15AfterBattleText3 - db "@" + text_far _Route15AfterBattleText3 + text_end Route15BattleText4: - TX_FAR _Route15BattleText4 - db "@" + text_far _Route15BattleText4 + text_end Route15EndBattleText4: - TX_FAR _Route15EndBattleText4 - db "@" + text_far _Route15EndBattleText4 + text_end Route15AfterBattleText4: - TX_FAR _Route15AfterBattleText4 - db "@" + text_far _Route15AfterBattleText4 + text_end Route15BattleText5: - TX_FAR _Route15BattleText5 - db "@" + text_far _Route15BattleText5 + text_end Route15EndBattleText5: - TX_FAR _Route15EndBattleText5 - db "@" + text_far _Route15EndBattleText5 + text_end Route15AfterBattleText5: - TX_FAR _Route15AfterBattleText5 - db "@" + text_far _Route15AfterBattleText5 + text_end Route15BattleText6: - TX_FAR _Route15BattleText6 - db "@" + text_far _Route15BattleText6 + text_end Route15EndBattleText6: - TX_FAR _Route15EndBattleText6 - db "@" + text_far _Route15EndBattleText6 + text_end Route15AfterBattleText6: - TX_FAR _Route15AfterBattleText6 - db "@" + text_far _Route15AfterBattleText6 + text_end Route15BattleText7: - TX_FAR _Route15BattleText7 - db "@" + text_far _Route15BattleText7 + text_end Route15EndBattleText7: - TX_FAR _Route15EndBattleText7 - db "@" + text_far _Route15EndBattleText7 + text_end Route15AfterBattleText7: - TX_FAR _Route15AfterBattleText7 - db "@" + text_far _Route15AfterBattleText7 + text_end Route15BattleText8: - TX_FAR _Route15BattleText8 - db "@" + text_far _Route15BattleText8 + text_end Route15EndBattleText8: - TX_FAR _Route15EndBattleText8 - db "@" + text_far _Route15EndBattleText8 + text_end Route15AfterBattleText8: - TX_FAR _Route15AfterBattleText8 - db "@" + text_far _Route15AfterBattleText8 + text_end Route15BattleText9: - TX_FAR _Route15BattleText9 - db "@" + text_far _Route15BattleText9 + text_end Route15EndBattleText9: - TX_FAR _Route15EndBattleText9 - db "@" + text_far _Route15EndBattleText9 + text_end Route15AfterBattleText9: - TX_FAR _Route15AfterBattleText9 - db "@" + text_far _Route15AfterBattleText9 + text_end Route15BattleText10: - TX_FAR _Route15BattleText10 - db "@" + text_far _Route15BattleText10 + text_end Route15EndBattleText10: - TX_FAR _Route15EndBattleText10 - db "@" + text_far _Route15EndBattleText10 + text_end Route15AfterBattleText10: - TX_FAR _Route15AfterBattleText10 - db "@" + text_far _Route15AfterBattleText10 + text_end Route15Text12: - TX_FAR _Route15Text12 - db "@" + text_far _Route15Text12 + text_end diff --git a/scripts/Route15Gate1F.asm b/scripts/Route15Gate1F.asm index 910eb2a58..dfbce9d4d 100755 --- a/scripts/Route15Gate1F.asm +++ b/scripts/Route15Gate1F.asm @@ -5,5 +5,5 @@ Route15Gate1F_TextPointers: dw Route15GateText1 Route15GateText1: - TX_FAR _Route15GateText1 - db "@" + text_far _Route15GateText1 + text_end diff --git a/scripts/Route15Gate2F.asm b/scripts/Route15Gate2F.asm index 83763762f..1b85e34e1 100755 --- a/scripts/Route15Gate2F.asm +++ b/scripts/Route15Gate2F.asm @@ -6,13 +6,13 @@ Route15Gate2F_TextPointers: dw Route15GateUpstairsText2 Route15GateUpstairsText1: - TX_ASM + text_asm CheckEvent EVENT_GOT_EXP_ALL - jr nz, .asm_49683 - ld a, 50 ; pokemon needed - ld [hOaksAideRequirement], a - ld a, EXP_ALL ; oak's aide reward - ld [hOaksAideRewardItem], a + jr nz, .got_item + ld a, 50 + ldh [hOaksAideRequirement], a + ld a, EXP_ALL + ldh [hOaksAideRewardItem], a ld [wd11e], a call GetItemName ld hl, wcd6d @@ -20,25 +20,25 @@ Route15GateUpstairsText1: ld bc, ITEM_NAME_LENGTH call CopyData predef OaksAideScript - ld a, [hOaksAideResult] - cp $1 - jr nz, .asm_49689 + ldh a, [hOaksAideResult] + cp OAKS_AIDE_GOT_ITEM + jr nz, .no_item SetEvent EVENT_GOT_EXP_ALL -.asm_49683 +.got_item ld hl, Route15GateUpstairsText_4968c call PrintText -.asm_49689 +.no_item jp TextScriptEnd Route15GateUpstairsText_4968c: - TX_FAR _Route15GateUpstairsText_4968c - db "@" + text_far _Route15GateUpstairsText_4968c + text_end Route15GateUpstairsText2: - TX_ASM + text_asm ld hl, Route15GateUpstairsText_49698 jp GateUpstairsScript_PrintIfFacingUp Route15GateUpstairsText_49698: - TX_FAR _Route15GateUpstairsText_49698 - db "@" + text_far _Route15GateUpstairsText_49698 + text_end diff --git a/scripts/Route16.asm b/scripts/Route16.asm index 54f83380c..e7b1eb9aa 100755 --- a/scripts/Route16.asm +++ b/scripts/Route16.asm @@ -27,7 +27,7 @@ Route16Script0: ResetEventReuseHL EVENT_FIGHT_ROUTE16_SNORLAX jp z, CheckFightingMapTrainers ld a, $a - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, SNORLAX ld [wCurOpponent], a @@ -51,7 +51,7 @@ Route16Script3: cp $2 jr z, .asm_599a8 ld a, $b - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID .asm_599a8 SetEvent EVENT_BEAT_ROUTE16_SNORLAX @@ -75,185 +75,143 @@ Route16_TextPointers: dw Route16Text11 Route16TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_16_TRAINER_0 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_16_TRAINER_0 - dw Route16BattleText1 ; TextBeforeBattle - dw Route16AfterBattleText1 ; TextAfterBattle - dw Route16EndBattleText1 ; TextEndBattle - dw Route16EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_16_TRAINER_0, 3, Route16BattleText1, Route16EndBattleText1, Route16AfterBattleText1 Route16TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_16_TRAINER_1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_16_TRAINER_1 - dw Route16BattleText2 ; TextBeforeBattle - dw Route16AfterBattleText2 ; TextAfterBattle - dw Route16EndBattleText2 ; TextEndBattle - dw Route16EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_16_TRAINER_1, 2, Route16BattleText2, Route16EndBattleText2, Route16AfterBattleText2 Route16TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_16_TRAINER_2 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_16_TRAINER_2 - dw Route16BattleText3 ; TextBeforeBattle - dw Route16AfterBattleText3 ; TextAfterBattle - dw Route16EndBattleText3 ; TextEndBattle - dw Route16EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_16_TRAINER_2, 2, Route16BattleText3, Route16EndBattleText3, Route16AfterBattleText3 Route16TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_16_TRAINER_3 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_16_TRAINER_3 - dw Route16BattleText4 ; TextBeforeBattle - dw Route16AfterBattleText4 ; TextAfterBattle - dw Route16EndBattleText4 ; TextEndBattle - dw Route16EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_16_TRAINER_3, 2, Route16BattleText4, Route16EndBattleText4, Route16AfterBattleText4 Route16TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_16_TRAINER_4 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_16_TRAINER_4 - dw Route16BattleText5 ; TextBeforeBattle - dw Route16AfterBattleText5 ; TextAfterBattle - dw Route16EndBattleText5 ; TextEndBattle - dw Route16EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_16_TRAINER_4, 2, Route16BattleText5, Route16EndBattleText5, Route16AfterBattleText5 Route16TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_16_TRAINER_5 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_16_TRAINER_5 - dw Route16BattleText6 ; TextBeforeBattle - dw Route16AfterBattleText6 ; TextAfterBattle - dw Route16EndBattleText6 ; TextEndBattle - dw Route16EndBattleText6 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_16_TRAINER_5, 4, Route16BattleText6, Route16EndBattleText6, Route16AfterBattleText6 + db -1 ; end Route16Text1: - TX_ASM + text_asm ld hl, Route16TrainerHeader0 call TalkToTrainer jp TextScriptEnd Route16BattleText1: - TX_FAR _Route16BattleText1 - db "@" + text_far _Route16BattleText1 + text_end Route16EndBattleText1: - TX_FAR _Route16EndBattleText1 - db "@" + text_far _Route16EndBattleText1 + text_end Route16AfterBattleText1: - TX_FAR _Route16AfterBattleText1 - db "@" + text_far _Route16AfterBattleText1 + text_end Route16Text2: - TX_ASM + text_asm ld hl, Route16TrainerHeader1 call TalkToTrainer jp TextScriptEnd Route16BattleText2: - TX_FAR _Route16BattleText2 - db "@" + text_far _Route16BattleText2 + text_end Route16EndBattleText2: - TX_FAR _Route16EndBattleText2 - db "@" + text_far _Route16EndBattleText2 + text_end Route16AfterBattleText2: - TX_FAR _Route16AfterBattleText2 - db "@" + text_far _Route16AfterBattleText2 + text_end Route16Text3: - TX_ASM + text_asm ld hl, Route16TrainerHeader2 call TalkToTrainer jp TextScriptEnd Route16BattleText3: - TX_FAR _Route16BattleText3 - db "@" + text_far _Route16BattleText3 + text_end Route16EndBattleText3: - TX_FAR _Route16EndBattleText3 - db "@" + text_far _Route16EndBattleText3 + text_end Route16AfterBattleText3: - TX_FAR _Route16AfterBattleText3 - db "@" + text_far _Route16AfterBattleText3 + text_end Route16Text4: - TX_ASM + text_asm ld hl, Route16TrainerHeader3 call TalkToTrainer jp TextScriptEnd Route16BattleText4: - TX_FAR _Route16BattleText4 - db "@" + text_far _Route16BattleText4 + text_end Route16EndBattleText4: - TX_FAR _Route16EndBattleText4 - db "@" + text_far _Route16EndBattleText4 + text_end Route16AfterBattleText4: - TX_FAR _Route16AfterBattleText4 - db "@" + text_far _Route16AfterBattleText4 + text_end Route16Text5: - TX_ASM + text_asm ld hl, Route16TrainerHeader4 call TalkToTrainer jp TextScriptEnd Route16BattleText5: - TX_FAR _Route16BattleText5 - db "@" + text_far _Route16BattleText5 + text_end Route16EndBattleText5: - TX_FAR _Route16EndBattleText5 - db "@" + text_far _Route16EndBattleText5 + text_end Route16AfterBattleText5: - TX_FAR _Route16AfterBattleText5 - db "@" + text_far _Route16AfterBattleText5 + text_end Route16Text6: - TX_ASM + text_asm ld hl, Route16TrainerHeader5 call TalkToTrainer jp TextScriptEnd Route16BattleText6: - TX_FAR _Route16BattleText6 - db "@" + text_far _Route16BattleText6 + text_end Route16EndBattleText6: - TX_FAR _Route16EndBattleText6 - db "@" + text_far _Route16EndBattleText6 + text_end Route16AfterBattleText6: - TX_FAR _Route16AfterBattleText6 - db "@" + text_far _Route16AfterBattleText6 + text_end Route16Text7: - TX_FAR _Route16Text7 - db "@" + text_far _Route16Text7 + text_end Route16Text10: - TX_FAR _Route16Text10 - db "@" + text_far _Route16Text10 + text_end Route16Text11: - TX_FAR _Route16Text11 - db "@" + text_far _Route16Text11 + text_end Route16Text8: - TX_FAR _Route16Text8 - db "@" + text_far _Route16Text8 + text_end Route16Text9: - TX_FAR _Route16Text9 - db "@" + text_far _Route16Text9 + text_end diff --git a/scripts/Route16FlyHouse.asm b/scripts/Route16FlyHouse.asm index 1d74ac80c..3bb34b753 100755 --- a/scripts/Route16FlyHouse.asm +++ b/scripts/Route16FlyHouse.asm @@ -6,43 +6,43 @@ Route16FlyHouse_TextPointers: dw Route16HouseText2 Route16HouseText1: - TX_ASM + text_asm CheckEvent EVENT_GOT_HM02 ld hl, HM02ExplanationText - jr nz, .asm_13616 + jr nz, .got_item ld hl, Route16HouseText3 call PrintText - lb bc, HM_02, 1 + lb bc, HM_FLY, 1 call GiveItem - jr nc, .BagFull + jr nc, .bag_full SetEvent EVENT_GOT_HM02 ld hl, ReceivedHM02Text - jr .asm_13616 -.BagFull + jr .got_item +.bag_full ld hl, HM02NoRoomText -.asm_13616 +.got_item call PrintText jp TextScriptEnd Route16HouseText3: - TX_FAR _Route16HouseText3 - db "@" + text_far _Route16HouseText3 + text_end ReceivedHM02Text: - TX_FAR _ReceivedHM02Text - TX_SFX_KEY_ITEM - db "@" + text_far _ReceivedHM02Text + sound_get_key_item + text_end HM02ExplanationText: - TX_FAR _HM02ExplanationText - db "@" + text_far _HM02ExplanationText + text_end HM02NoRoomText: - TX_FAR _HM02NoRoomText - db "@" + text_far _HM02NoRoomText + text_end Route16HouseText2: - TX_ASM + text_asm ld hl, Route16HouseText_1e652 call PrintText ld a, FEAROW @@ -51,5 +51,5 @@ Route16HouseText2: jp TextScriptEnd Route16HouseText_1e652: - TX_FAR _Route16HouseText_1e652 - db "@" + text_far _Route16HouseText_1e652 + text_end diff --git a/scripts/Route16Gate1F.asm b/scripts/Route16Gate1F.asm index f814d209b..e992fa448 100755 --- a/scripts/Route16Gate1F.asm +++ b/scripts/Route16Gate1F.asm @@ -19,10 +19,10 @@ Route16GateScript0: call ArePlayerCoordsInArray ret nc ld a, $3 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, [wCoordIndex] cp $1 jr z, .asm_4970e @@ -44,11 +44,11 @@ Route16GateScript0: ret CoordsData_49714: - db $07,$04 - db $08,$04 - db $09,$04 - db $0A,$04 - db $FF + dbmapcoord 4, 7 + dbmapcoord 4, 8 + dbmapcoord 4, 9 + dbmapcoord 4, 10 + db -1 ; end Route16GateScript1: ld a, [wSimulatedJoypadStatesIndex] @@ -59,7 +59,7 @@ Route16GateScript1: Route16GateScript2: ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $1 ld [wSimulatedJoypadStatesIndex], a @@ -92,7 +92,7 @@ Route16Gate1F_TextPointers: dw Route16GateText3 Route16GateText1: - TX_ASM + text_asm call Route16GateScript_49755 jr z, .asm_0bdf3 ld hl, Route16GateText_4977c @@ -105,17 +105,17 @@ Route16GateText1: jp TextScriptEnd Route16GateText_49777: - TX_FAR _Route16GateText_49777 - db "@" + text_far _Route16GateText_49777 + text_end Route16GateText_4977c: - TX_FAR _Route16GateText_4977c - db "@" + text_far _Route16GateText_4977c + text_end Route16GateText3: - TX_FAR _Route16GateText_49781 - db "@" + text_far _Route16GateText_49781 + text_end Route16GateText2: - TX_FAR _Route16GateText2 - db "@" + text_far _Route16GateText2 + text_end diff --git a/scripts/Route16Gate2F.asm b/scripts/Route16Gate2F.asm index 643a5ec75..27e147a1b 100755 --- a/scripts/Route16Gate2F.asm +++ b/scripts/Route16Gate2F.asm @@ -8,39 +8,39 @@ Route16Gate2F_TextPointers: dw Route16GateUpstairsText4 Route16GateUpstairsText1: - TX_ASM + text_asm ld hl, Route16GateUpstairsText_49820 call PrintText jp TextScriptEnd Route16GateUpstairsText_49820: - TX_FAR _Route16GateUpstairsText_49820 - db "@" + text_far _Route16GateUpstairsText_49820 + text_end Route16GateUpstairsText2: - TX_ASM + text_asm ld hl, Route16GateUpstairsText_4982f call PrintText jp TextScriptEnd Route16GateUpstairsText_4982f: - TX_FAR _Route16GateUpstairsText_4982f - db "@" + text_far _Route16GateUpstairsText_4982f + text_end Route16GateUpstairsText3: - TX_ASM + text_asm ld hl, Route16GateUpstairsText_4983b jp GateUpstairsScript_PrintIfFacingUp Route16GateUpstairsText_4983b: - TX_FAR _Route16GateUpstairsText_4983b - db "@" + text_far _Route16GateUpstairsText_4983b + text_end Route16GateUpstairsText4: - TX_ASM + text_asm ld hl, Route16GateUpstairsText_49847 jp GateUpstairsScript_PrintIfFacingUp Route16GateUpstairsText_49847: - TX_FAR _Route16GateUpstairsText_49847 - db "@" + text_far _Route16GateUpstairsText_49847 + text_end diff --git a/scripts/Route17.asm b/scripts/Route17.asm index dd92ac440..27693f9f4 100755 --- a/scripts/Route17.asm +++ b/scripts/Route17.asm @@ -31,297 +31,227 @@ Route17_TextPointers: dw Route17Text16 Route17TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_0 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_0 - dw Route17BattleText1 ; TextBeforeBattle - dw Route17AfterBattleText1 ; TextAfterBattle - dw Route17EndBattleText1 ; TextEndBattle - dw Route17EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_17_TRAINER_0, 3, Route17BattleText1, Route17EndBattleText1, Route17AfterBattleText1 Route17TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_1 - dw Route17BattleText2 ; TextBeforeBattle - dw Route17AfterBattleText2 ; TextAfterBattle - dw Route17EndBattleText2 ; TextEndBattle - dw Route17EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_17_TRAINER_1, 4, Route17BattleText2, Route17EndBattleText2, Route17AfterBattleText2 Route17TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_2 - dw Route17BattleText3 ; TextBeforeBattle - dw Route17AfterBattleText3 ; TextAfterBattle - dw Route17EndBattleText3 ; TextEndBattle - dw Route17EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_17_TRAINER_2, 4, Route17BattleText3, Route17EndBattleText3, Route17AfterBattleText3 Route17TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_3 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_3 - dw Route17BattleText4 ; TextBeforeBattle - dw Route17AfterBattleText4 ; TextAfterBattle - dw Route17EndBattleText4 ; TextEndBattle - dw Route17EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_17_TRAINER_3, 4, Route17BattleText4, Route17EndBattleText4, Route17AfterBattleText4 Route17TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_4 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_4 - dw Route17BattleText5 ; TextBeforeBattle - dw Route17AfterBattleText5 ; TextAfterBattle - dw Route17EndBattleText5 ; TextEndBattle - dw Route17EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_17_TRAINER_4, 3, Route17BattleText5, Route17EndBattleText5, Route17AfterBattleText5 Route17TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_5 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_5 - dw Route17BattleText6 ; TextBeforeBattle - dw Route17AfterBattleText6 ; TextAfterBattle - dw Route17EndBattleText6 ; TextEndBattle - dw Route17EndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_17_TRAINER_5, 2, Route17BattleText6, Route17EndBattleText6, Route17AfterBattleText6 Route17TrainerHeader6: - dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_6 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_6 - dw Route17BattleText7 ; TextBeforeBattle - dw Route17AfterBattleText7 ; TextAfterBattle - dw Route17EndBattleText7 ; TextEndBattle - dw Route17EndBattleText7 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_17_TRAINER_6, 4, Route17BattleText7, Route17EndBattleText7, Route17AfterBattleText7 Route17TrainerHeader7: - dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_7, 1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_7, 1 - dw Route17BattleText8 ; TextBeforeBattle - dw Route17AfterBattleText8 ; TextAfterBattle - dw Route17EndBattleText8 ; TextEndBattle - dw Route17EndBattleText8 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_17_TRAINER_7, 1, 2, Route17BattleText8, Route17EndBattleText8, Route17AfterBattleText8 Route17TrainerHeader8: - dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_8, 1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_8, 1 - dw Route17BattleText9 ; TextBeforeBattle - dw Route17AfterBattleText9 ; TextAfterBattle - dw Route17EndBattleText9 ; TextEndBattle - dw Route17EndBattleText9 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_17_TRAINER_8, 1, 3, Route17BattleText9, Route17EndBattleText9, Route17AfterBattleText9 Route17TrainerHeader9: - dbEventFlagBit EVENT_BEAT_ROUTE_17_TRAINER_9, 1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_17_TRAINER_9, 1 - dw Route17BattleText10 ; TextBeforeBattle - dw Route17AfterBattleText10 ; TextAfterBattle - dw Route17EndBattleText10 ; TextEndBattle - dw Route17EndBattleText10 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_17_TRAINER_9, 1, 4, Route17BattleText10, Route17EndBattleText10, Route17AfterBattleText10 + db -1 ; end Route17Text1: - TX_ASM + text_asm ld hl, Route17TrainerHeader0 call TalkToTrainer jp TextScriptEnd Route17BattleText1: - TX_FAR _Route17BattleText1 - db "@" + text_far _Route17BattleText1 + text_end Route17EndBattleText1: - TX_FAR _Route17EndBattleText1 - db "@" + text_far _Route17EndBattleText1 + text_end Route17AfterBattleText1: - TX_FAR _Route17AfterBattleText1 - db "@" + text_far _Route17AfterBattleText1 + text_end Route17Text2: - TX_ASM + text_asm ld hl, Route17TrainerHeader1 call TalkToTrainer jp TextScriptEnd Route17BattleText2: - TX_FAR _Route17BattleText2 - db "@" + text_far _Route17BattleText2 + text_end Route17EndBattleText2: - TX_FAR _Route17EndBattleText2 - db "@" + text_far _Route17EndBattleText2 + text_end Route17AfterBattleText2: - TX_FAR _Route17AfterBattleText2 - db "@" + text_far _Route17AfterBattleText2 + text_end Route17Text3: - TX_ASM + text_asm ld hl, Route17TrainerHeader2 call TalkToTrainer jp TextScriptEnd Route17BattleText3: - TX_FAR _Route17BattleText3 - db "@" + text_far _Route17BattleText3 + text_end Route17EndBattleText3: - TX_FAR _Route17EndBattleText3 - db "@" + text_far _Route17EndBattleText3 + text_end Route17AfterBattleText3: - TX_FAR _Route17AfterBattleText3 - db "@" + text_far _Route17AfterBattleText3 + text_end Route17Text4: - TX_ASM + text_asm ld hl, Route17TrainerHeader3 call TalkToTrainer jp TextScriptEnd Route17BattleText4: - TX_FAR _Route17BattleText4 - db "@" + text_far _Route17BattleText4 + text_end Route17EndBattleText4: - TX_FAR _Route17EndBattleText4 - db "@" + text_far _Route17EndBattleText4 + text_end Route17AfterBattleText4: - TX_FAR _Route17AfterBattleText4 - db "@" + text_far _Route17AfterBattleText4 + text_end Route17Text5: - TX_ASM + text_asm ld hl, Route17TrainerHeader4 call TalkToTrainer jp TextScriptEnd Route17BattleText5: - TX_FAR _Route17BattleText5 - db "@" + text_far _Route17BattleText5 + text_end Route17EndBattleText5: - TX_FAR _Route17EndBattleText5 - db "@" + text_far _Route17EndBattleText5 + text_end Route17AfterBattleText5: - TX_FAR _Route17AfterBattleText5 - db "@" + text_far _Route17AfterBattleText5 + text_end Route17Text6: - TX_ASM + text_asm ld hl, Route17TrainerHeader5 call TalkToTrainer jp TextScriptEnd Route17BattleText6: - TX_FAR _Route17BattleText6 - db "@" + text_far _Route17BattleText6 + text_end Route17EndBattleText6: - TX_FAR _Route17EndBattleText6 - db "@" + text_far _Route17EndBattleText6 + text_end Route17AfterBattleText6: - TX_FAR _Route17AfterBattleText6 - db "@" + text_far _Route17AfterBattleText6 + text_end Route17Text7: - TX_ASM + text_asm ld hl, Route17TrainerHeader6 call TalkToTrainer jp TextScriptEnd Route17BattleText7: - TX_FAR _Route17BattleText7 - db "@" + text_far _Route17BattleText7 + text_end Route17EndBattleText7: - TX_FAR _Route17EndBattleText7 - db "@" + text_far _Route17EndBattleText7 + text_end Route17AfterBattleText7: - TX_FAR _Route17AfterBattleText7 - db "@" + text_far _Route17AfterBattleText7 + text_end Route17Text8: - TX_ASM + text_asm ld hl, Route17TrainerHeader7 call TalkToTrainer jp TextScriptEnd Route17BattleText8: - TX_FAR _Route17BattleText8 - db "@" + text_far _Route17BattleText8 + text_end Route17EndBattleText8: - TX_FAR _Route17EndBattleText8 - db "@" + text_far _Route17EndBattleText8 + text_end Route17AfterBattleText8: - TX_FAR _Route17AfterBattleText8 - db "@" + text_far _Route17AfterBattleText8 + text_end Route17Text9: - TX_ASM + text_asm ld hl, Route17TrainerHeader8 call TalkToTrainer jp TextScriptEnd Route17BattleText9: - TX_FAR _Route17BattleText9 - db "@" + text_far _Route17BattleText9 + text_end Route17EndBattleText9: - TX_FAR _Route17EndBattleText9 - db "@" + text_far _Route17EndBattleText9 + text_end Route17AfterBattleText9: - TX_FAR _Route17AfterBattleText9 - db "@" + text_far _Route17AfterBattleText9 + text_end Route17Text10: - TX_ASM + text_asm ld hl, Route17TrainerHeader9 call TalkToTrainer jp TextScriptEnd Route17BattleText10: - TX_FAR _Route17BattleText10 - db "@" + text_far _Route17BattleText10 + text_end Route17EndBattleText10: - TX_FAR _Route17EndBattleText10 - db "@" + text_far _Route17EndBattleText10 + text_end Route17AfterBattleText10: - TX_FAR _Route17AfterBattleText10 - db "@" + text_far _Route17AfterBattleText10 + text_end Route17Text11: - TX_FAR _Route17Text11 - db "@" + text_far _Route17Text11 + text_end Route17Text12: - TX_FAR _Route17Text12 - db "@" + text_far _Route17Text12 + text_end Route17Text13: - TX_FAR _Route17Text13 - db "@" + text_far _Route17Text13 + text_end Route17Text14: - TX_FAR _Route17Text14 - db "@" + text_far _Route17Text14 + text_end Route17Text15: - TX_FAR _Route17Text15 - db "@" + text_far _Route17Text15 + text_end Route17Text16: - TX_FAR _Route17Text16 - db "@" + text_far _Route17Text16 + text_end diff --git a/scripts/Route18.asm b/scripts/Route18.asm index 022d41bee..f6738fc6b 100755 --- a/scripts/Route18.asm +++ b/scripts/Route18.asm @@ -20,92 +20,71 @@ Route18_TextPointers: dw Route18Text5 Route18TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_18_TRAINER_0 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_18_TRAINER_0 - dw Route18BattleText1 ; TextBeforeBattle - dw Route18AfterBattleText1 ; TextAfterBattle - dw Route18EndBattleText1 ; TextEndBattle - dw Route18EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_18_TRAINER_0, 3, Route18BattleText1, Route18EndBattleText1, Route18AfterBattleText1 Route18TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_18_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_18_TRAINER_1 - dw Route18BattleText2 ; TextBeforeBattle - dw Route18AfterBattleText2 ; TextAfterBattle - dw Route18EndBattleText2 ; TextEndBattle - dw Route18EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_18_TRAINER_1, 3, Route18BattleText2, Route18EndBattleText2, Route18AfterBattleText2 Route18TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_18_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_18_TRAINER_2 - dw Route18BattleText3 ; TextBeforeBattle - dw Route18AfterBattleText3 ; TextAfterBattle - dw Route18EndBattleText3 ; TextEndBattle - dw Route18EndBattleText3 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_18_TRAINER_2, 4, Route18BattleText3, Route18EndBattleText3, Route18AfterBattleText3 + db -1 ; end Route18Text1: - TX_ASM + text_asm ld hl, Route18TrainerHeader0 call TalkToTrainer jp TextScriptEnd Route18BattleText1: - TX_FAR _Route18BattleText1 - db "@" + text_far _Route18BattleText1 + text_end Route18EndBattleText1: - TX_FAR _Route18EndBattleText1 - db "@" + text_far _Route18EndBattleText1 + text_end Route18AfterBattleText1: - TX_FAR _Route18AfterBattleText1 - db "@" + text_far _Route18AfterBattleText1 + text_end Route18Text2: - TX_ASM + text_asm ld hl, Route18TrainerHeader1 call TalkToTrainer jp TextScriptEnd Route18BattleText2: - TX_FAR _Route18BattleText2 - db "@" + text_far _Route18BattleText2 + text_end Route18EndBattleText2: - TX_FAR _Route18EndBattleText2 - db "@" + text_far _Route18EndBattleText2 + text_end Route18AfterBattleText2: - TX_FAR _Route18AfterBattleText2 - db "@" + text_far _Route18AfterBattleText2 + text_end Route18Text3: - TX_ASM + text_asm ld hl, Route18TrainerHeader2 call TalkToTrainer jp TextScriptEnd Route18BattleText3: - TX_FAR _Route18BattleText3 - db "@" + text_far _Route18BattleText3 + text_end Route18EndBattleText3: - TX_FAR _Route18EndBattleText3 - db "@" + text_far _Route18EndBattleText3 + text_end Route18AfterBattleText3: - TX_FAR _Route18AfterBattleText3 - db "@" + text_far _Route18AfterBattleText3 + text_end Route18Text4: - TX_FAR _Route18Text4 - db "@" + text_far _Route18Text4 + text_end Route18Text5: - TX_FAR _Route18Text5 - db "@" + text_far _Route18Text5 + text_end diff --git a/scripts/Route18Gate1F.asm b/scripts/Route18Gate1F.asm index 812cb3e0b..2caeaedd8 100755 --- a/scripts/Route18Gate1F.asm +++ b/scripts/Route18Gate1F.asm @@ -19,10 +19,10 @@ Route18GateScript0: call ArePlayerCoordsInArray ret nc ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, [wCoordIndex] cp $1 jr z, .asm_498c6 @@ -44,11 +44,11 @@ Route18GateScript0: ret CoordsData_498cc: - db $03,$04 - db $04,$04 - db $05,$04 - db $06,$04 - db $FF + dbmapcoord 4, 3 + dbmapcoord 4, 4 + dbmapcoord 4, 5 + dbmapcoord 4, 6 + db -1 ; end Route18GateScript1: ld a, [wSimulatedJoypadStatesIndex] @@ -59,7 +59,7 @@ Route18GateScript1: Route18GateScript2: ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $1 ld [wSimulatedJoypadStatesIndex], a @@ -87,7 +87,7 @@ Route18Gate1F_TextPointers: dw Route18GateText2 Route18GateText1: - TX_ASM + text_asm call Route16GateScript_49755 jr z, .asm_3c84d ld hl, Route18GateText_4992d @@ -100,13 +100,13 @@ Route18GateText1: jp TextScriptEnd Route18GateText_49928: - TX_FAR _Route18GateText_49928 - db "@" + text_far _Route18GateText_49928 + text_end Route18GateText_4992d: - TX_FAR _Route18GateText_4992d - db "@" + text_far _Route18GateText_4992d + text_end Route18GateText2: - TX_FAR _Route18GateText_49932 - db "@" + text_far _Route18GateText_49932 + text_end diff --git a/scripts/Route18Gate2F.asm b/scripts/Route18Gate2F.asm index 6987a0997..efb6d70aa 100755 --- a/scripts/Route18Gate2F.asm +++ b/scripts/Route18Gate2F.asm @@ -7,26 +7,26 @@ Route18Gate2F_TextPointers: dw Route18GateUpstairsText3 Route18GateUpstairsText1: - TX_ASM - ld a, $5 + text_asm + ld a, TRADE_FOR_MARC ld [wWhichTrade], a predef DoInGameTradeDialogue jp TextScriptEnd Route18GateUpstairsText2: - TX_ASM + text_asm ld hl, Route18GateUpstairsText_49993 jp GateUpstairsScript_PrintIfFacingUp Route18GateUpstairsText_49993: - TX_FAR _Route18GateUpstairsText_49993 - db "@" + text_far _Route18GateUpstairsText_49993 + text_end Route18GateUpstairsText3: - TX_ASM + text_asm ld hl, Route18GateUpstairsText_4999f jp GateUpstairsScript_PrintIfFacingUp Route18GateUpstairsText_4999f: - TX_FAR _Route18GateUpstairsText_4999f - db "@" + text_far _Route18GateUpstairsText_4999f + text_end diff --git a/scripts/Route19.asm b/scripts/Route19.asm index febeb9a41..7e09c5e37 100755 --- a/scripts/Route19.asm +++ b/scripts/Route19.asm @@ -26,269 +26,199 @@ Route19_TextPointers: dw Route19Text11 Route19TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_0 - dw Route19BattleText1 ; TextBeforeBattle - dw Route19AfterBattleText1 ; TextAfterBattle - dw Route19EndBattleText1 ; TextEndBattle - dw Route19EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_19_TRAINER_0, 4, Route19BattleText1, Route19EndBattleText1, Route19AfterBattleText1 Route19TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_1 - dw Route19BattleText2 ; TextBeforeBattle - dw Route19AfterBattleText2 ; TextAfterBattle - dw Route19EndBattleText2 ; TextEndBattle - dw Route19EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_19_TRAINER_1, 4, Route19BattleText2, Route19EndBattleText2, Route19AfterBattleText2 Route19TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_2 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_2 - dw Route19BattleText3 ; TextBeforeBattle - dw Route19AfterBattleText3 ; TextAfterBattle - dw Route19EndBattleText3 ; TextEndBattle - dw Route19EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_19_TRAINER_2, 3, Route19BattleText3, Route19EndBattleText3, Route19AfterBattleText3 Route19TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_3 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_3 - dw Route19BattleText4 ; TextBeforeBattle - dw Route19AfterBattleText4 ; TextAfterBattle - dw Route19EndBattleText4 ; TextEndBattle - dw Route19EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_19_TRAINER_3, 4, Route19BattleText4, Route19EndBattleText4, Route19AfterBattleText4 Route19TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_4 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_4 - dw Route19BattleText5 ; TextBeforeBattle - dw Route19AfterBattleText5 ; TextAfterBattle - dw Route19EndBattleText5 ; TextEndBattle - dw Route19EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_19_TRAINER_4, 4, Route19BattleText5, Route19EndBattleText5, Route19AfterBattleText5 Route19TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_5 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_5 - dw Route19BattleText6 ; TextBeforeBattle - dw Route19AfterBattleText6 ; TextAfterBattle - dw Route19EndBattleText6 ; TextEndBattle - dw Route19EndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_19_TRAINER_5, 4, Route19BattleText6, Route19EndBattleText6, Route19AfterBattleText6 Route19TrainerHeader6: - dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_6 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_6 - dw Route19BattleText7 ; TextBeforeBattle - dw Route19AfterBattleText7 ; TextAfterBattle - dw Route19EndBattleText7 ; TextEndBattle - dw Route19EndBattleText7 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_19_TRAINER_6, 3, Route19BattleText7, Route19EndBattleText7, Route19AfterBattleText7 Route19TrainerHeader7: - dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_7, 1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_7, 1 - dw Route19BattleText8 ; TextBeforeBattle - dw Route19AfterBattleText8 ; TextAfterBattle - dw Route19EndBattleText8 ; TextEndBattle - dw Route19EndBattleText8 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_19_TRAINER_7, 1, 4, Route19BattleText8, Route19EndBattleText8, Route19AfterBattleText8 Route19TrainerHeader8: - dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_8, 1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_8, 1 - dw Route19BattleText9 ; TextBeforeBattle - dw Route19AfterBattleText9 ; TextAfterBattle - dw Route19EndBattleText9 ; TextEndBattle - dw Route19EndBattleText9 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_19_TRAINER_8, 1, 4, Route19BattleText9, Route19EndBattleText9, Route19AfterBattleText9 Route19TrainerHeader9: - dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_9, 1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_9, 1 - dw Route19BattleText10 ; TextBeforeBattle - dw Route19AfterBattleText10 ; TextAfterBattle - dw Route19EndBattleText10 ; TextEndBattle - dw Route19EndBattleText10 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_19_TRAINER_9, 1, 4, Route19BattleText10, Route19EndBattleText10, Route19AfterBattleText10 + db -1 ; end Route19Text1: - TX_ASM + text_asm ld hl, Route19TrainerHeader0 jr Route19_TalkToTrainer Route19Text2: - TX_ASM + text_asm ld hl, Route19TrainerHeader1 jr Route19_TalkToTrainer Route19Text3: - TX_ASM + text_asm ld hl, Route19TrainerHeader2 jr Route19_TalkToTrainer Route19Text4: - TX_ASM + text_asm ld hl, Route19TrainerHeader3 jr Route19_TalkToTrainer Route19Text5: - TX_ASM + text_asm ld hl, Route19TrainerHeader4 jr Route19_TalkToTrainer Route19Text6: - TX_ASM + text_asm ld hl, Route19TrainerHeader5 jr Route19_TalkToTrainer Route19Text7: - TX_ASM + text_asm ld hl, Route19TrainerHeader6 jr Route19_TalkToTrainer Route19Text8: - TX_ASM + text_asm ld hl, Route19TrainerHeader7 jr Route19_TalkToTrainer Route19Text9: - TX_ASM + text_asm ld hl, Route19TrainerHeader8 jr Route19_TalkToTrainer Route19Text10: - TX_ASM + text_asm ld hl, Route19TrainerHeader9 Route19_TalkToTrainer: call TalkToTrainer jp TextScriptEnd Route19BattleText1: - TX_FAR _Route19BattleText1 - db "@" + text_far _Route19BattleText1 + text_end Route19EndBattleText1: - TX_FAR _Route19EndBattleText1 - db "@" + text_far _Route19EndBattleText1 + text_end Route19AfterBattleText1: - TX_FAR _Route19AfterBattleText1 - db "@" + text_far _Route19AfterBattleText1 + text_end Route19BattleText2: - TX_FAR _Route19BattleText2 - db "@" + text_far _Route19BattleText2 + text_end Route19EndBattleText2: - TX_FAR _Route19EndBattleText2 - db "@" + text_far _Route19EndBattleText2 + text_end Route19AfterBattleText2: - TX_FAR _Route19AfterBattleText2 - db "@" + text_far _Route19AfterBattleText2 + text_end Route19BattleText3: - TX_FAR _Route19BattleText3 - db "@" + text_far _Route19BattleText3 + text_end Route19EndBattleText3: - TX_FAR _Route19EndBattleText3 - db "@" + text_far _Route19EndBattleText3 + text_end Route19AfterBattleText3: - TX_FAR _Route19AfterBattleText3 - db "@" + text_far _Route19AfterBattleText3 + text_end Route19BattleText4: - TX_FAR _Route19BattleText4 - db "@" + text_far _Route19BattleText4 + text_end Route19EndBattleText4: - TX_FAR _Route19EndBattleText4 - db "@" + text_far _Route19EndBattleText4 + text_end Route19AfterBattleText4: - TX_FAR _Route19AfterBattleText4 - db "@" + text_far _Route19AfterBattleText4 + text_end Route19BattleText5: - TX_FAR _Route19BattleText5 - db "@" + text_far _Route19BattleText5 + text_end Route19EndBattleText5: - TX_FAR _Route19EndBattleText5 - db "@" + text_far _Route19EndBattleText5 + text_end Route19AfterBattleText5: - TX_FAR _Route19AfterBattleText5 - db "@" + text_far _Route19AfterBattleText5 + text_end Route19BattleText6: - TX_FAR _Route19BattleText6 - db "@" + text_far _Route19BattleText6 + text_end Route19EndBattleText6: - TX_FAR _Route19EndBattleText6 - db "@" + text_far _Route19EndBattleText6 + text_end Route19AfterBattleText6: - TX_FAR _Route19AfterBattleText6 - db "@" + text_far _Route19AfterBattleText6 + text_end Route19BattleText7: - TX_FAR _Route19BattleText7 - db "@" + text_far _Route19BattleText7 + text_end Route19EndBattleText7: - TX_FAR _Route19EndBattleText7 - db "@" + text_far _Route19EndBattleText7 + text_end Route19AfterBattleText7: - TX_FAR _Route19AfterBattleText7 - db "@" + text_far _Route19AfterBattleText7 + text_end Route19BattleText8: - TX_FAR _Route19BattleText8 - db "@" + text_far _Route19BattleText8 + text_end Route19EndBattleText8: - TX_FAR _Route19EndBattleText8 - db "@" + text_far _Route19EndBattleText8 + text_end Route19AfterBattleText8: - TX_FAR _Route19AfterBattleText8 - db "@" + text_far _Route19AfterBattleText8 + text_end Route19BattleText9: - TX_FAR _Route19BattleText9 - db "@" + text_far _Route19BattleText9 + text_end Route19EndBattleText9: - TX_FAR _Route19EndBattleText9 - db "@" + text_far _Route19EndBattleText9 + text_end Route19AfterBattleText9: - TX_FAR _Route19AfterBattleText9 - db "@" + text_far _Route19AfterBattleText9 + text_end Route19BattleText10: - TX_FAR _Route19BattleText10 - db "@" + text_far _Route19BattleText10 + text_end Route19EndBattleText10: - TX_FAR _Route19EndBattleText10 - db "@" + text_far _Route19EndBattleText10 + text_end Route19AfterBattleText10: - TX_FAR _Route19AfterBattleText10 - db "@" + text_far _Route19AfterBattleText10 + text_end Route19Text11: - TX_FAR _Route19Text11 - db "@" + text_far _Route19Text11 + text_end diff --git a/scripts/Route1_2.asm b/scripts/Route1_2.asm index ee34ce558..94748252c 100755 --- a/scripts/Route1_2.asm +++ b/scripts/Route1_2.asm @@ -1,53 +1,53 @@ -Func_f1ad2: +Func_f1ad2:: CheckAndSetEvent EVENT_GOT_POTION_SAMPLE - jr nz, .asm_1cada + jr nz, .got_item ld hl, Route1ViridianMartSampleText call PrintText lb bc, POTION, 1 call GiveItem - jr nc, .BagFull - ld hl, Route1Text_f1aff - jr .asm_1cadd -.BagFull - ld hl, Route1Text_f1b0a - jr .asm_1cadd -.asm_1cada - ld hl, Route1Text_f1b05 -.asm_1cadd + jr nc, .bag_full + ld hl, Route1Text_1cae8 + jr .done +.bag_full + ld hl, Route1Text_1caf3 + jr .done +.got_item + ld hl, Route1Text_1caee +.done call PrintText ret Route1ViridianMartSampleText: - TX_FAR _Route1ViridianMartSampleText - db "@" + text_far _Route1ViridianMartSampleText + text_end -Route1Text_f1aff: - TX_FAR _Route1Text_1cae8 - TX_SFX_ITEM_1 - db "@" +Route1Text_1cae8: + text_far _Route1Text_1cae8 + sound_get_item_1 + text_end -Route1Text_f1b05: - TX_FAR _Route1Text_1caee - db "@" +Route1Text_1caee: + text_far _Route1Text_1caee + text_end -Route1Text_f1b0a: - TX_FAR _Route1Text_1caf3 - db "@" +Route1Text_1caf3: + text_far _Route1Text_1caf3 + text_end -Func_f1b0f: +Func_f1b0f:: ld hl, Route1Text_f1b16 call PrintText ret Route1Text_f1b16: - TX_FAR _Route1Text2 - db "@" + text_far _Route1Text2 + text_end -Func_f1b1b: +Func_f1b1b:: ld hl, Route1Text_f1b22 call PrintText ret Route1Text_f1b22: - TX_FAR _Route1Text3 - db "@" + text_far _Route1Text3 + text_end diff --git a/scripts/Route2.asm b/scripts/Route2.asm index f4b1c8c48..c6886ce40 100755 --- a/scripts/Route2.asm +++ b/scripts/Route2.asm @@ -8,9 +8,9 @@ Route2_TextPointers: dw Route2Text4 Route2Text3: - TX_FAR _Route2Text3 - db "@" + text_far _Route2Text3 + text_end Route2Text4: - TX_FAR _Route2Text4 - db "@" + text_far _Route2Text4 + text_end diff --git a/scripts/Route20.asm b/scripts/Route20.asm index 081a723ea..f9904d4e2 100755 --- a/scripts/Route20.asm +++ b/scripts/Route20.asm @@ -33,7 +33,7 @@ Route20Script_50cc6: db HS_SEAFOAM_ISLANDS_B2F_BOULDER_2 db HS_SEAFOAM_ISLANDS_B3F_BOULDER_3 db HS_SEAFOAM_ISLANDS_B3F_BOULDER_4 - db $FF + db -1 ; end .asm_50cef CheckBothEventsSet EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE, EVENT_SEAFOAM4_BOULDER2_DOWN_HOLE @@ -76,278 +76,208 @@ Route20_TextPointers: dw Route20Text12 Route20TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_0 - dw Route20BattleText1 ; TextBeforeBattle - dw Route20AfterBattleText1 ; TextAfterBattle - dw Route20EndBattleText1 ; TextEndBattle - dw Route20EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_20_TRAINER_0, 4, Route20BattleText1, Route20EndBattleText1, Route20AfterBattleText1 Route20TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_1 - dw Route20BattleText2 ; TextBeforeBattle - dw Route20AfterBattleText2 ; TextAfterBattle - dw Route20EndBattleText2 ; TextEndBattle - dw Route20EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_20_TRAINER_1, 4, Route20BattleText2, Route20EndBattleText2, Route20AfterBattleText2 Route20TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_2 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_2 - dw Route20BattleText3 ; TextBeforeBattle - dw Route20AfterBattleText3 ; TextAfterBattle - dw Route20EndBattleText3 ; TextEndBattle - dw Route20EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_20_TRAINER_2, 2, Route20BattleText3, Route20EndBattleText3, Route20AfterBattleText3 Route20TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_3 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_3 - dw Route20BattleText4 ; TextBeforeBattle - dw Route20AfterBattleText4 ; TextAfterBattle - dw Route20EndBattleText4 ; TextEndBattle - dw Route20EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_20_TRAINER_3, 4, Route20BattleText4, Route20EndBattleText4, Route20AfterBattleText4 Route20TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_4 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_4 - dw Route20BattleText5 ; TextBeforeBattle - dw Route20AfterBattleText5 ; TextAfterBattle - dw Route20EndBattleText5 ; TextEndBattle - dw Route20EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_20_TRAINER_4, 3, Route20BattleText5, Route20EndBattleText5, Route20AfterBattleText5 Route20TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_5 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_5 - dw Route20BattleText6 ; TextBeforeBattle - dw Route20AfterBattleText6 ; TextAfterBattle - dw Route20EndBattleText6 ; TextEndBattle - dw Route20EndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_20_TRAINER_5, 4, Route20BattleText6, Route20EndBattleText6, Route20AfterBattleText6 Route20TrainerHeader6: - dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_6 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_6 - dw Route20BattleText7 ; TextBeforeBattle - dw Route20AfterBattleText7 ; TextAfterBattle - dw Route20EndBattleText7 ; TextEndBattle - dw Route20EndBattleText7 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_20_TRAINER_6, 2, Route20BattleText7, Route20EndBattleText7, Route20AfterBattleText7 Route20TrainerHeader7: - dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_7, 1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_7, 1 - dw Route20BattleText8 ; TextBeforeBattle - dw Route20AfterBattleText8 ; TextAfterBattle - dw Route20EndBattleText8 ; TextEndBattle - dw Route20EndBattleText8 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_20_TRAINER_7, 1, 4, Route20BattleText8, Route20EndBattleText8, Route20AfterBattleText8 Route20TrainerHeader8: - dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_8, 1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_8, 1 - dw Route20BattleText9 ; TextBeforeBattle - dw Route20AfterBattleText9 ; TextAfterBattle - dw Route20EndBattleText9 ; TextEndBattle - dw Route20EndBattleText9 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_20_TRAINER_8, 1, 3, Route20BattleText9, Route20EndBattleText9, Route20AfterBattleText9 Route20TrainerHeader9: - dbEventFlagBit EVENT_BEAT_ROUTE_20_TRAINER_9, 1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_20_TRAINER_9, 1 - dw Route20BattleText10 ; TextBeforeBattle - dw Route20AfterBattleText10 ; TextAfterBattle - dw Route20EndBattleText10 ; TextEndBattle - dw Route20EndBattleText10 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_20_TRAINER_9, 1, 4, Route20BattleText10, Route20EndBattleText10, Route20AfterBattleText10 + db -1 ; end Route20Text1: - TX_ASM + text_asm ld hl, Route20TrainerHeader0 call TalkToTrainer jp TextScriptEnd Route20Text2: - TX_ASM + text_asm ld hl, Route20TrainerHeader1 call TalkToTrainer jp TextScriptEnd Route20Text3: - TX_ASM + text_asm ld hl, Route20TrainerHeader2 call TalkToTrainer jp TextScriptEnd Route20Text4: - TX_ASM + text_asm ld hl, Route20TrainerHeader3 call TalkToTrainer jp TextScriptEnd Route20Text5: - TX_ASM + text_asm ld hl, Route20TrainerHeader4 call TalkToTrainer jp TextScriptEnd Route20Text6: - TX_ASM + text_asm ld hl, Route20TrainerHeader5 call TalkToTrainer jp TextScriptEnd Route20Text7: - TX_ASM + text_asm ld hl, Route20TrainerHeader6 call TalkToTrainer jp TextScriptEnd Route20Text8: - TX_ASM + text_asm ld hl, Route20TrainerHeader7 call TalkToTrainer jp TextScriptEnd Route20Text9: - TX_ASM + text_asm ld hl, Route20TrainerHeader8 call TalkToTrainer jp TextScriptEnd Route20Text10: - TX_ASM + text_asm ld hl, Route20TrainerHeader9 call TalkToTrainer jp TextScriptEnd Route20BattleText1: - TX_FAR _Route20BattleText1 - db "@" + text_far _Route20BattleText1 + text_end Route20EndBattleText1: - TX_FAR _Route20EndBattleText1 - db "@" + text_far _Route20EndBattleText1 + text_end Route20AfterBattleText1: - TX_FAR _Route20AfterBattleText1 - db "@" + text_far _Route20AfterBattleText1 + text_end Route20BattleText2: - TX_FAR _Route20BattleText2 - db "@" + text_far _Route20BattleText2 + text_end Route20EndBattleText2: - TX_FAR _Route20EndBattleText2 - db "@" + text_far _Route20EndBattleText2 + text_end Route20AfterBattleText2: - TX_FAR _Route20AfterBattleText2 - db "@" + text_far _Route20AfterBattleText2 + text_end Route20BattleText3: - TX_FAR _Route20BattleText3 - db "@" + text_far _Route20BattleText3 + text_end Route20EndBattleText3: - TX_FAR _Route20EndBattleText3 - db "@" + text_far _Route20EndBattleText3 + text_end Route20AfterBattleText3: - TX_FAR _Route20AfterBattleText3 - db "@" + text_far _Route20AfterBattleText3 + text_end Route20BattleText4: - TX_FAR _Route20BattleText4 - db "@" + text_far _Route20BattleText4 + text_end Route20EndBattleText4: - TX_FAR _Route20EndBattleText4 - db "@" + text_far _Route20EndBattleText4 + text_end Route20AfterBattleText4: - TX_FAR _Route20AfterBattleText4 - db "@" + text_far _Route20AfterBattleText4 + text_end Route20BattleText5: - TX_FAR _Route20BattleText5 - db "@" + text_far _Route20BattleText5 + text_end Route20EndBattleText5: - TX_FAR _Route20EndBattleText5 - db "@" + text_far _Route20EndBattleText5 + text_end Route20AfterBattleText5: - TX_FAR _Route20AfterBattleText5 - db "@" + text_far _Route20AfterBattleText5 + text_end Route20BattleText6: - TX_FAR _Route20BattleText6 - db "@" + text_far _Route20BattleText6 + text_end Route20EndBattleText6: - TX_FAR _Route20EndBattleText6 - db "@" + text_far _Route20EndBattleText6 + text_end Route20AfterBattleText6: - TX_FAR _Route20AfterBattleText6 - db "@" + text_far _Route20AfterBattleText6 + text_end Route20BattleText7: - TX_FAR _Route20BattleText7 - db "@" + text_far _Route20BattleText7 + text_end Route20EndBattleText7: - TX_FAR _Route20EndBattleText7 - db "@" + text_far _Route20EndBattleText7 + text_end Route20AfterBattleText7: - TX_FAR _Route20AfterBattleText7 - db "@" + text_far _Route20AfterBattleText7 + text_end Route20BattleText8: - TX_FAR _Route20BattleText8 - db "@" + text_far _Route20BattleText8 + text_end Route20EndBattleText8: - TX_FAR _Route20EndBattleText8 - db "@" + text_far _Route20EndBattleText8 + text_end Route20AfterBattleText8: - TX_FAR _Route20AfterBattleText8 - db "@" + text_far _Route20AfterBattleText8 + text_end Route20BattleText9: - TX_FAR _Route20BattleText9 - db "@" + text_far _Route20BattleText9 + text_end Route20EndBattleText9: - TX_FAR _Route20EndBattleText9 - db "@" + text_far _Route20EndBattleText9 + text_end Route20AfterBattleText9: - TX_FAR _Route20AfterBattleText9 - db "@" + text_far _Route20AfterBattleText9 + text_end Route20BattleText10: - TX_FAR _Route20BattleText10 - db "@" + text_far _Route20BattleText10 + text_end Route20EndBattleText10: - TX_FAR _Route20EndBattleText10 - db "@" + text_far _Route20EndBattleText10 + text_end Route20AfterBattleText10: - TX_FAR _Route20AfterBattleText10 - db "@" + text_far _Route20AfterBattleText10 + text_end Route20Text12: Route20Text11: - TX_FAR _Route20Text11 - db "@" + text_far _Route20Text11 + text_end diff --git a/scripts/Route21.asm b/scripts/Route21.asm index 15dacd5d8..7afe350f9 100755 --- a/scripts/Route21.asm +++ b/scripts/Route21.asm @@ -24,246 +24,183 @@ Route21_TextPointers: dw Route21Text9 Route21TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_0 - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_0 - dw Route21BattleText1 ; TextBeforeBattle - dw Route21AfterBattleText1 ; TextAfterBattle - dw Route21EndBattleText1 ; TextEndBattle - dw Route21EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_21_TRAINER_0, 0, Route21BattleText1, Route21EndBattleText1, Route21AfterBattleText1 Route21TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_1 - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_1 - dw Route21BattleText2 ; TextBeforeBattle - dw Route21AfterBattleText2 ; TextAfterBattle - dw Route21EndBattleText2 ; TextEndBattle - dw Route21EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_21_TRAINER_1, 0, Route21BattleText2, Route21EndBattleText2, Route21AfterBattleText2 Route21TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_2 - dw Route21BattleText3 ; TextBeforeBattle - dw Route21AfterBattleText3 ; TextAfterBattle - dw Route21EndBattleText3 ; TextEndBattle - dw Route21EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_21_TRAINER_2, 4, Route21BattleText3, Route21EndBattleText3, Route21AfterBattleText3 Route21TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_3 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_3 - dw Route21BattleText4 ; TextBeforeBattle - dw Route21AfterBattleText4 ; TextAfterBattle - dw Route21EndBattleText4 ; TextEndBattle - dw Route21EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_21_TRAINER_3, 4, Route21BattleText4, Route21EndBattleText4, Route21AfterBattleText4 Route21TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_4 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_4 - dw Route21BattleText5 ; TextBeforeBattle - dw Route21AfterBattleText5 ; TextAfterBattle - dw Route21EndBattleText5 ; TextEndBattle - dw Route21EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_21_TRAINER_4, 4, Route21BattleText5, Route21EndBattleText5, Route21AfterBattleText5 Route21TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_5 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_5 - dw Route21BattleText6 ; TextBeforeBattle - dw Route21AfterBattleText6 ; TextAfterBattle - dw Route21EndBattleText6 ; TextEndBattle - dw Route21EndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_21_TRAINER_5, 4, Route21BattleText6, Route21EndBattleText6, Route21AfterBattleText6 Route21TrainerHeader6: - dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_6 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_6 - dw Route21BattleText7 ; TextBeforeBattle - dw Route21AfterBattleText7 ; TextAfterBattle - dw Route21EndBattleText7 ; TextEndBattle - dw Route21EndBattleText7 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_21_TRAINER_6, 3, Route21BattleText7, Route21EndBattleText7, Route21AfterBattleText7 Route21TrainerHeader7: - dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_7, 1 - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_7, 1 - dw Route21BattleText8 ; TextBeforeBattle - dw Route21AfterBattleText8 ; TextAfterBattle - dw Route21EndBattleText8 ; TextEndBattle - dw Route21EndBattleText8 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_21_TRAINER_7, 1, 0, Route21BattleText8, Route21EndBattleText8, Route21AfterBattleText8 Route21TrainerHeader8: - dbEventFlagBit EVENT_BEAT_ROUTE_21_TRAINER_8, 1 - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_21_TRAINER_8, 1 - dw Route21BattleText9 ; TextBeforeBattle - dw Route21AfterBattleText9 ; TextAfterBattle - dw Route21EndBattleText9 ; TextEndBattle - dw Route21EndBattleText9 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_21_TRAINER_8, 1, 0, Route21BattleText9, Route21EndBattleText9, Route21AfterBattleText9 + db -1 ; end Route21Text1: - TX_ASM + text_asm ld hl, Route21TrainerHeader0 call TalkToTrainer jp TextScriptEnd Route21Text2: - TX_ASM + text_asm ld hl, Route21TrainerHeader1 call TalkToTrainer jp TextScriptEnd Route21Text3: - TX_ASM + text_asm ld hl, Route21TrainerHeader2 call TalkToTrainer jp TextScriptEnd Route21Text4: - TX_ASM + text_asm ld hl, Route21TrainerHeader3 call TalkToTrainer jp TextScriptEnd Route21Text5: - TX_ASM + text_asm ld hl, Route21TrainerHeader4 call TalkToTrainer jp TextScriptEnd Route21Text6: - TX_ASM + text_asm ld hl, Route21TrainerHeader5 call TalkToTrainer jp TextScriptEnd Route21Text7: - TX_ASM + text_asm ld hl, Route21TrainerHeader6 call TalkToTrainer jp TextScriptEnd Route21Text8: - TX_ASM + text_asm ld hl, Route21TrainerHeader7 call TalkToTrainer jp TextScriptEnd Route21Text9: - TX_ASM + text_asm ld hl, Route21TrainerHeader8 call TalkToTrainer jp TextScriptEnd Route21BattleText1: - TX_FAR _Route21BattleText1 - db "@" + text_far _Route21BattleText1 + text_end Route21EndBattleText1: - TX_FAR _Route21EndBattleText1 - db "@" + text_far _Route21EndBattleText1 + text_end Route21AfterBattleText1: - TX_FAR _Route21AfterBattleText1 - db "@" + text_far _Route21AfterBattleText1 + text_end Route21BattleText2: - TX_FAR _Route21BattleText2 - db "@" + text_far _Route21BattleText2 + text_end Route21EndBattleText2: - TX_FAR _Route21EndBattleText2 - db "@" + text_far _Route21EndBattleText2 + text_end Route21AfterBattleText2: - TX_FAR _Route21AfterBattleText2 - db "@" + text_far _Route21AfterBattleText2 + text_end Route21BattleText3: - TX_FAR _Route21BattleText3 - db "@" + text_far _Route21BattleText3 + text_end Route21EndBattleText3: - TX_FAR _Route21EndBattleText3 - db "@" + text_far _Route21EndBattleText3 + text_end Route21AfterBattleText3: - TX_FAR _Route21AfterBattleText3 - db "@" + text_far _Route21AfterBattleText3 + text_end Route21BattleText4: - TX_FAR _Route21BattleText4 - db "@" + text_far _Route21BattleText4 + text_end Route21EndBattleText4: - TX_FAR _Route21EndBattleText4 - db "@" + text_far _Route21EndBattleText4 + text_end Route21AfterBattleText4: - TX_FAR _Route21AfterBattleText4 - db "@" + text_far _Route21AfterBattleText4 + text_end Route21BattleText5: - TX_FAR _Route21BattleText5 - db "@" + text_far _Route21BattleText5 + text_end Route21EndBattleText5: - TX_FAR _Route21EndBattleText5 - db "@" + text_far _Route21EndBattleText5 + text_end Route21AfterBattleText5: - TX_FAR _Route21AfterBattleText5 - db "@" + text_far _Route21AfterBattleText5 + text_end Route21BattleText6: - TX_FAR _Route21BattleText6 - db "@" + text_far _Route21BattleText6 + text_end Route21EndBattleText6: - TX_FAR _Route21EndBattleText6 - db "@" + text_far _Route21EndBattleText6 + text_end Route21AfterBattleText6: - TX_FAR _Route21AfterBattleText6 - db "@" + text_far _Route21AfterBattleText6 + text_end Route21BattleText7: - TX_FAR _Route21BattleText7 - db "@" + text_far _Route21BattleText7 + text_end Route21EndBattleText7: - TX_FAR _Route21EndBattleText7 - db "@" + text_far _Route21EndBattleText7 + text_end Route21AfterBattleText7: - TX_FAR _Route21AfterBattleText7 - db "@" + text_far _Route21AfterBattleText7 + text_end Route21BattleText8: - TX_FAR _Route21BattleText8 - db "@" + text_far _Route21BattleText8 + text_end Route21EndBattleText8: - TX_FAR _Route21EndBattleText8 - db "@" + text_far _Route21EndBattleText8 + text_end Route21AfterBattleText8: - TX_FAR _Route21AfterBattleText8 - db "@" + text_far _Route21AfterBattleText8 + text_end Route21BattleText9: - TX_FAR _Route21BattleText9 - db "@" + text_far _Route21BattleText9 + text_end Route21EndBattleText9: - TX_FAR _Route21EndBattleText9 - db "@" + text_far _Route21EndBattleText9 + text_end Route21AfterBattleText9: - TX_FAR _Route21AfterBattleText9 - db "@" + text_far _Route21AfterBattleText9 + text_end diff --git a/scripts/Route22.asm b/scripts/Route22.asm index ff57f902c..5dfdc67e1 100755 --- a/scripts/Route22.asm +++ b/scripts/Route22.asm @@ -22,14 +22,14 @@ Route22Script7: ret Route22Script_50ed6: - ld a, OPP_SONY1 + ld a, OPP_RIVAL1 ld [wCurOpponent], a ld a, $2 ld [wTrainerNo], a ret Route22Script_50ee1: - ld a, OPP_SONY2 + ld a, OPP_RIVAL2 ld [wCurOpponent], a ld a, [wRivalStarter] add 7 @@ -45,7 +45,7 @@ Route22MoveRivalSprite: .asm_50ef1 call MoveSprite ld a, SPRITE_FACING_RIGHT - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a jp SetSpriteFacingDirectionAndDelay Route22RivalMovementData: @@ -53,7 +53,7 @@ Route22RivalMovementData: db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_RIGHT - db $FF + db -1 ; end Route22Script0: CheckEvent EVENT_ROUTE22_RIVAL_WANTS_BATTLE @@ -64,7 +64,7 @@ Route22Script0: ld a, [wCoordIndex] ld [wcf0d], a xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $f0 ld [wJoyIgnore], a ld a, PLAYER_DIR_LEFT @@ -76,9 +76,9 @@ Route22Script0: ret .Route22RivalBattleCoords - db $04, $1D - db $05, $1D - db $FF + dbmapcoord 29, 4 + dbmapcoord 29, 5 + db -1 ; end .firstRivalBattle ld a, $1 @@ -95,7 +95,7 @@ Route22Script0: ld a, MUSIC_MEET_RIVAL call PlayMusic ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call Route22MoveRivalSprite ld a, $1 ld [wRoute22CurScript], a @@ -115,14 +115,14 @@ Route22Script1: .asm_50f78 ld a, SPRITE_FACING_RIGHT .asm_50f7a - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call SetSpriteFacingDirectionAndDelay xor a ld [wJoyIgnore], a ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd72d set 6, [hl] @@ -136,12 +136,12 @@ Route22Script1: ret Route22RivalDefeatedText1: - TX_FAR _Route22RivalDefeatedText1 - db "@" + text_far _Route22RivalDefeatedText1 + text_end Route22Text_511bc: - TX_FAR _Route22Text_511bc - db "@" + text_far _Route22Text_511bc + text_end Route22Script2: ld a, [wIsInBattle] @@ -161,18 +161,18 @@ Route22Script2: .notDown ld a, SPRITE_FACING_RIGHT .done - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call SetSpriteFacingDirectionAndDelay ld a, $f0 ld [wJoyIgnore], a SetEvent EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call StopAllMusic - callba Music_RivalAlternateStart + farcall Music_RivalAlternateStart ld a, [wcf0d] cp $1 jr nz, .asm_50fff @@ -193,7 +193,7 @@ Route22Script_5100d: ld de, Route22RivalExitMovementData2 Route22MoveRival1: ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a jp MoveSprite Route22RivalExitMovementData1: @@ -204,7 +204,7 @@ Route22RivalExitMovementData1: db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN - db $FF + db -1 ; end Route22RivalExitMovementData2: db NPC_MOVEMENT_UP @@ -217,7 +217,7 @@ Route22RivalExitMovementData2: db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN - db $FF + db -1 ; end Route22Script3: ld a, [wd730] @@ -246,9 +246,9 @@ Route22Script_5104e: call StopAllMusic .skipYVisibilityTesta call StopAllMusic - callba Music_RivalAlternateTempo + farcall Music_RivalAlternateTempo ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call Route22MoveRivalSprite ld a, $4 ld [wRoute22CurScript], a @@ -259,7 +259,7 @@ Route22Script4: bit 0, a ret nz ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld a, [wcf0d] cp $1 jr nz, .asm_510a1 @@ -272,12 +272,12 @@ Route22Script4: ld [wPlayerMovingDirection], a ld a, SPRITE_FACING_RIGHT .asm_510a8 - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay xor a ld [wJoyIgnore], a ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd72d set 6, [hl] @@ -291,19 +291,19 @@ Route22Script4: ret Route22RivalDefeatedText2: - TX_FAR _Route22RivalDefeatedText2 - db "@" + text_far _Route22RivalDefeatedText2 + text_end Route22Text_511d0: - TX_FAR _Route22Text_511d0 - db "@" + text_far _Route22Text_511d0 + text_end Route22Script5: ld a, [wIsInBattle] cp $ff jp z, Route22Script_50ece ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld a, [wcf0d] cp $1 jr nz, .asm_510fb @@ -316,16 +316,16 @@ Route22Script5: ld [wPlayerMovingDirection], a ld a, SPRITE_FACING_RIGHT .asm_51102 - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $f0 ld [wJoyIgnore], a SetEvent EVENT_BEAT_ROUTE22_RIVAL_2ND_BATTLE ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call StopAllMusic - callba Music_RivalAlternateStartAndTempo + farcall Music_RivalAlternateStartAndTempo ld a, [wcf0d] cp $1 jr nz, .asm_51134 @@ -346,17 +346,16 @@ Route22Script_51142: ld de, MovementData_5114d Route22MoveRival2: ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a jp MoveSprite MovementData_5114c: db NPC_MOVEMENT_LEFT - MovementData_5114d: db NPC_MOVEMENT_LEFT db NPC_MOVEMENT_LEFT db NPC_MOVEMENT_LEFT - db $FF + db -1 ; end Route22Script6: ld a, [wd730] @@ -379,16 +378,16 @@ Route22_TextPointers: dw Route22FrontGateText Route22Text1: - TX_ASM - callba Func_f1b27 + text_asm + farcall Func_f1b27 jp TextScriptEnd Route22Text2: - TX_ASM - callba Func_f1b47 + text_asm + farcall Func_f1b47 jp TextScriptEnd Route22FrontGateText: - TX_ASM - callba Func_f1b67 + text_asm + farcall Func_f1b67 jp TextScriptEnd diff --git a/scripts/Route22Gate.asm b/scripts/Route22Gate.asm index 946366b55..adbefe8a6 100755 --- a/scripts/Route22Gate.asm +++ b/scripts/Route22Gate.asm @@ -4,7 +4,7 @@ Route22Gate_Script: ld a, [wRoute22GateCurScript] call CallFunctionInTable ld a, [wYCoord] - cp $4 + cp 4 ld a, ROUTE_23 jr c, .asm_1e69a ld a, ROUTE_22 @@ -22,18 +22,18 @@ Route22GateScript0: call ArePlayerCoordsInArray ret nc xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, SPRITE_FACING_LEFT ld [wSpriteStateData1 + 1 * $10 + 9], a ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ret Route22GateScriptCoords: - db 2,4 - db 2,5 - db $ff + dbmapcoord 4, 2 + dbmapcoord 5, 2 + db -1 ; end Route22GateScript_1e6ba: ld a, $1 @@ -60,7 +60,7 @@ Route22Gate_TextPointers: dw Route22GateText1 Route22GateText1: - TX_ASM + text_asm ld a, [wObtainedBadges] bit 0, a ; BOULDERBADGE jr nz, .asm_1e6f6 @@ -78,8 +78,8 @@ Route22GateText1: jp TextScriptEnd Route22GateText_1e704: - TX_FAR _Route22GateText_1e704 - TX_ASM + text_far _Route22GateText_1e704 + text_asm ld a, SFX_DENIED call PlaySoundWaitForCurrent call WaitForSoundToFinish @@ -87,10 +87,10 @@ Route22GateText_1e704: ret Route22GateText_1e715: - TX_FAR _Route22GateText_1e715 - db "@" + text_far _Route22GateText_1e715 + text_end Route22GateText_1e71a: - TX_FAR _Route22GateText_1e71a - TX_SFX_ITEM_1 - db "@" + text_far _Route22GateText_1e71a + sound_get_item_1 + text_end diff --git a/scripts/Route22_2.asm b/scripts/Route22_2.asm index 1cd23ed20..7f3fa54d7 100755 --- a/scripts/Route22_2.asm +++ b/scripts/Route22_2.asm @@ -1,4 +1,4 @@ -Func_f1b27: +Func_f1b27:: CheckEvent EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE jr z, .asm_5118b ld hl, Route22RivalAfterBattleText1 @@ -12,14 +12,14 @@ Func_f1b27: ret Route22RivalBeforeBattleText1: - TX_FAR _Route22RivalBeforeBattleText1 - db "@" + text_far _Route22RivalBeforeBattleText1 + text_end Route22RivalAfterBattleText1: - TX_FAR _Route22RivalAfterBattleText1 - db "@" + text_far _Route22RivalAfterBattleText1 + text_end -Func_f1b47: +Func_f1b47:: CheckEvent EVENT_BEAT_ROUTE22_RIVAL_2ND_BATTLE jr z, .asm_511a4 ld hl, Route22RivalAfterBattleText2 @@ -33,18 +33,18 @@ Func_f1b47: ret Route22RivalBeforeBattleText2: - TX_FAR _Route22RivalBeforeBattleText2 - db "@" + text_far _Route22RivalBeforeBattleText2 + text_end Route22RivalAfterBattleText2: - TX_FAR _Route22RivalAfterBattleText2 - db "@" + text_far _Route22RivalAfterBattleText2 + text_end -Func_f1b67: +Func_f1b67:: ld hl, Route22FrontGateText_3c call PrintText ret Route22FrontGateText_3c: - TX_FAR _Route22FrontGateText - db "@" + text_far _Route22FrontGateText + text_end diff --git a/scripts/Route23.asm b/scripts/Route23.asm index 34d95b844..e5318862f 100755 --- a/scripts/Route23.asm +++ b/scripts/Route23.asm @@ -32,20 +32,20 @@ Route23Script0: EventFlagBit c, EVENT_PASSED_EARTHBADGE_CHECK + 1, EVENT_PASSED_CASCADEBADGE_CHECK .asm_51224 ld a, [hli] - cp $ff + cp -1 ret z inc e dec c cp b jr nz, .asm_51224 - cp $23 + cp 35 jr nz, .asm_51237 ld a, [wXCoord] - cp $e + cp 14 ret nc .asm_51237 ld a, e - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a ld a, c ld [wWhichBadge], a ld b, FLAG_TEST @@ -57,11 +57,18 @@ Route23Script0: call Route23Script_5125d call DisplayTextID xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ret YCoordsData_51255: - db $23,$38,$55,$60,$69,$77,$88,$FF + db 35 + db 56 + db 85 + db 96 + db 105 + db 119 + db 136 + db -1 ; end Route23Script_5125d: ld hl, BadgeTextPointers @@ -142,43 +149,43 @@ Route23_TextPointers: dw Route23Text8 Route23Text1: - TX_ASM + text_asm EventFlagBit a, EVENT_PASSED_EARTHBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK call Route23Script_51346 jp TextScriptEnd Route23Text2: - TX_ASM + text_asm EventFlagBit a, EVENT_PASSED_VOLCANOBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK call Route23Script_51346 jp TextScriptEnd Route23Text3: - TX_ASM + text_asm EventFlagBit a, EVENT_PASSED_MARSHBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK call Route23Script_51346 jp TextScriptEnd Route23Text4: - TX_ASM + text_asm EventFlagBit a, EVENT_PASSED_SOULBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK call Route23Script_51346 jp TextScriptEnd Route23Text5: - TX_ASM + text_asm EventFlagBit a, EVENT_PASSED_RAINBOWBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK call Route23Script_51346 jp TextScriptEnd Route23Text6: - TX_ASM + text_asm EventFlagBit a, EVENT_PASSED_THUNDERBADGE_CHECK, EVENT_PASSED_CASCADEBADGE_CHECK call Route23Script_51346 jp TextScriptEnd Route23Text7: - TX_ASM + text_asm EventFlagBit a, EVENT_PASSED_CASCADEBADGE_CHECK call Route23Script_51346 jp TextScriptEnd @@ -218,19 +225,19 @@ Route23Script_51388: jp PrintText VictoryRoadGuardText1: - TX_FAR _VictoryRoadGuardText1 - TX_ASM + text_far _VictoryRoadGuardText1 + text_asm ld a, SFX_DENIED call PlaySoundWaitForCurrent call WaitForSoundToFinish jp TextScriptEnd VictoryRoadGuardText2: - TX_FAR _VictoryRoadGuardText2 - TX_SFX_ITEM_1 - TX_FAR _VictoryRoadGuardText_513a3 - db "@" + text_far _VictoryRoadGuardText2 + sound_get_item_1 + text_far _VictoryRoadGuardText_513a3 + text_end Route23Text8: - TX_FAR _Route23Text8 - db "@" + text_far _Route23Text8 + text_end diff --git a/scripts/Route24.asm b/scripts/Route24.asm index 58f719818..fc4633e79 100755 --- a/scripts/Route24.asm +++ b/scripts/Route24.asm @@ -28,9 +28,9 @@ Route24Script0: call ArePlayerCoordsInArray jp nc, CheckFightingMapTrainers xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID CheckAndResetEvent EVENT_NUGGET_REWARD_AVAILABLE ret z @@ -45,7 +45,8 @@ Route24Script0: ret CoordsData_5140e: - db $0F,$0A,$FF + dbmapcoord 10, 15 + db -1 ; end Route24Script4: ld a, [wSimulatedJoypadStatesIndex] @@ -66,7 +67,7 @@ Route24Script3: ld [wJoyIgnore], a SetEvent EVENT_BEAT_ROUTE24_ROCKET ld a, $1 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wJoyIgnore], a @@ -87,71 +88,29 @@ Route24_TextPointers: dw Route24Text8 Route24TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_24_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_24_TRAINER_0 - dw Route24BattleText1 ; TextBeforeBattle - dw Route24AfterBattleText1 ; TextAfterBattle - dw Route24EndBattleText1 ; TextEndBattle - dw Route24EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_24_TRAINER_0, 4, Route24BattleText1, Route24EndBattleText1, Route24AfterBattleText1 Route24TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_24_TRAINER_1 - db ($1 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_24_TRAINER_1 - dw Route24BattleText2 ; TextBeforeBattle - dw Route24AfterBattleText2 ; TextAfterBattle - dw Route24EndBattleText2 ; TextEndBattle - dw Route24EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_24_TRAINER_1, 1, Route24BattleText2, Route24EndBattleText2, Route24AfterBattleText2 Route24TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_24_TRAINER_2 - db ($1 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_24_TRAINER_2 - dw Route24BattleText3 ; TextBeforeBattle - dw Route24AfterBattleText3 ; TextAfterBattle - dw Route24EndBattleText3 ; TextEndBattle - dw Route24EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_24_TRAINER_2, 1, Route24BattleText3, Route24EndBattleText3, Route24AfterBattleText3 Route24TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_24_TRAINER_3 - db ($1 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_24_TRAINER_3 - dw Route24BattleText4 ; TextBeforeBattle - dw Route24AfterBattleText4 ; TextAfterBattle - dw Route24EndBattleText4 ; TextEndBattle - dw Route24EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_24_TRAINER_3, 1, Route24BattleText4, Route24EndBattleText4, Route24AfterBattleText4 Route24TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_24_TRAINER_4 - db ($1 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_24_TRAINER_4 - dw Route24BattleText5 ; TextBeforeBattle - dw Route24AfterBattleText5 ; TextAfterBattle - dw Route24EndBattleText5 ; TextEndBattle - dw Route24EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_24_TRAINER_4, 1, Route24BattleText5, Route24EndBattleText5, Route24AfterBattleText5 Route24TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_24_TRAINER_5 - db ($1 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_24_TRAINER_5 - dw Route24BattleText6 ; TextBeforeBattle - dw Route24AfterBattleText6 ; TextAfterBattle - dw Route24EndBattleText6 ; TextEndBattle - dw Route24EndBattleText6 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_24_TRAINER_5, 1, Route24BattleText6, Route24EndBattleText6, Route24AfterBattleText6 + db -1 ; end Route24Text1: - TX_ASM + text_asm ResetEvent EVENT_NUGGET_REWARD_AVAILABLE CheckEvent EVENT_GOT_NUGGET - jr nz, .asm_514f9 + jr nz, .got_item ld hl, Route24Text_51510 call PrintText lb bc, NUGGET, 1 call GiveItem - jr nc, .BagFull + jr nc, .bag_full SetEvent EVENT_GOT_NUGGET ld hl, Route24Text_5151a call PrintText @@ -163,164 +122,164 @@ Route24Text1: ld hl, Route24Text_5152b ld de, Route24Text_5152b call SaveEndBattleTextPointers - ld a, [hSpriteIndexOrTextID] + ldh a, [hSpriteIndexOrTextID] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $3 ld [wRoute24CurScript], a ld [wCurMapScript], a jp TextScriptEnd -.asm_514f9 +.got_item ld hl, Route24Text_51530 call PrintText jp TextScriptEnd -.BagFull +.bag_full ld hl, Route24Text_51521 call PrintText SetEvent EVENT_NUGGET_REWARD_AVAILABLE jp TextScriptEnd Route24Text_51510: - TX_FAR _Route24Text_51510 - TX_SFX_ITEM_1 - TX_FAR _Route24Text_51515 - db "@" + text_far _Route24Text_51510 + sound_get_item_1 + text_far _Route24Text_51515 + text_end Route24Text_5151a: - TX_FAR _Route24Text_5151a - TX_SFX_KEY_ITEM - TX_BLINK - db "@" + text_far _Route24Text_5151a + sound_get_key_item + text_promptbutton + text_end Route24Text_51521: - TX_FAR _Route24Text_51521 - db "@" + text_far _Route24Text_51521 + text_end Route24Text_51526: - TX_FAR _Route24Text_51526 - db "@" + text_far _Route24Text_51526 + text_end Route24Text_5152b: - TX_FAR _Route24Text_5152b - db "@" + text_far _Route24Text_5152b + text_end Route24Text_51530: - TX_FAR _Route24Text_51530 - db "@" + text_far _Route24Text_51530 + text_end Route24Text2: - TX_ASM + text_asm ld hl, Route24TrainerHeader0 call TalkToTrainer jp TextScriptEnd Route24Text3: - TX_ASM + text_asm ld hl, Route24TrainerHeader1 call TalkToTrainer jp TextScriptEnd Route24Text4: - TX_ASM + text_asm ld hl, Route24TrainerHeader2 call TalkToTrainer jp TextScriptEnd Route24Text5: - TX_ASM + text_asm ld hl, Route24TrainerHeader3 call TalkToTrainer jp TextScriptEnd Route24Text6: - TX_ASM + text_asm ld hl, Route24TrainerHeader4 call TalkToTrainer jp TextScriptEnd Route24Text7: - TX_ASM + text_asm ld hl, Route24TrainerHeader5 call TalkToTrainer jp TextScriptEnd Route24BattleText1: - TX_FAR _Route24BattleText1 - db "@" + text_far _Route24BattleText1 + text_end Route24EndBattleText1: - TX_FAR _Route24EndBattleText1 - db "@" + text_far _Route24EndBattleText1 + text_end Route24AfterBattleText1: - TX_FAR _Route24AfterBattleText1 - db "@" + text_far _Route24AfterBattleText1 + text_end Route24BattleText2: - TX_FAR _Route24BattleText2 - db "@" + text_far _Route24BattleText2 + text_end Route24EndBattleText2: - TX_FAR _Route24EndBattleText2 - db "@" + text_far _Route24EndBattleText2 + text_end Route24AfterBattleText2: - TX_FAR _Route24AfterBattleText2 - db "@" + text_far _Route24AfterBattleText2 + text_end Route24BattleText3: - TX_FAR _Route24BattleText3 - db "@" + text_far _Route24BattleText3 + text_end Route24EndBattleText3: - TX_FAR _Route24EndBattleText3 - db "@" + text_far _Route24EndBattleText3 + text_end Route24AfterBattleText3: - TX_FAR _Route24AfterBattleText3 - db "@" + text_far _Route24AfterBattleText3 + text_end Route24BattleText4: - TX_FAR _Route24BattleText4 - db "@" + text_far _Route24BattleText4 + text_end Route24EndBattleText4: - TX_FAR _Route24EndBattleText4 - db "@" + text_far _Route24EndBattleText4 + text_end Route24AfterBattleText4: - TX_FAR _Route24AfterBattleText4 - db "@" + text_far _Route24AfterBattleText4 + text_end Route24BattleText5: - TX_FAR _Route24BattleText5 - db "@" + text_far _Route24BattleText5 + text_end Route24EndBattleText5: - TX_FAR _Route24EndBattleText5 - db "@" + text_far _Route24EndBattleText5 + text_end Route24AfterBattleText5: - TX_FAR _Route24AfterBattleText5 - db "@" + text_far _Route24AfterBattleText5 + text_end Route24BattleText6: - TX_FAR _Route24BattleText6 - db "@" + text_far _Route24BattleText6 + text_end Route24EndBattleText6: - TX_FAR _Route24EndBattleText6 - db "@" + text_far _Route24EndBattleText6 + text_end Route24AfterBattleText6: - TX_FAR _Route24AfterBattleText6 - db "@" + text_far _Route24AfterBattleText6 + text_end Route24Text8: - TX_ASM + text_asm CheckEvent EVENT_54F jr nz, .asm_515d5 ld hl, Route24Text_515de @@ -359,19 +318,18 @@ Route24Text8: jp TextScriptEnd Route24Text_515de: - TX_FAR _Route24DamianText1 - db "@" + text_far _Route24DamianText1 + text_end Route24Text_515e3: - TX_FAR _Route24DamianText2 - db $d - db "@" + text_far _Route24DamianText2 + text_waitbutton + text_end Route24Text_515e9: - TX_FAR _Route24DamianText3 - db "@" + text_far _Route24DamianText3 + text_end Route24Text_515ee: - TX_FAR _Route24DamianText4 - db "@" - + text_far _Route24DamianText4 + text_end diff --git a/scripts/Route25.asm b/scripts/Route25.asm index c3c11ed5f..400ac9ed4 100755 --- a/scripts/Route25.asm +++ b/scripts/Route25.asm @@ -65,250 +65,187 @@ Route25_TextPointers: dw Route25Text11 Route25TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_0 - dw Route25BattleText1 ; TextBeforeBattle - dw Route25AfterBattleText1 ; TextAfterBattle - dw Route25EndBattleText1 ; TextEndBattle - dw Route25EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_25_TRAINER_0, 2, Route25BattleText1, Route25EndBattleText1, Route25AfterBattleText1 Route25TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_1 - dw Route25BattleText2 ; TextBeforeBattle - dw Route25AfterBattleText2 ; TextAfterBattle - dw Route25EndBattleText2 ; TextEndBattle - dw Route25EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_25_TRAINER_1, 3, Route25BattleText2, Route25EndBattleText2, Route25AfterBattleText2 Route25TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_2 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_2 - dw Route25BattleText3 ; TextBeforeBattle - dw Route25AfterBattleText3 ; TextAfterBattle - dw Route25EndBattleText3 ; TextEndBattle - dw Route25EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_25_TRAINER_2, 3, Route25BattleText3, Route25EndBattleText3, Route25AfterBattleText3 Route25TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_3 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_3 - dw Route25BattleText4 ; TextBeforeBattle - dw Route25AfterBattleText4 ; TextAfterBattle - dw Route25EndBattleText4 ; TextEndBattle - dw Route25EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_25_TRAINER_3, 2, Route25BattleText4, Route25EndBattleText4, Route25AfterBattleText4 Route25TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_4 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_4 - dw Route25BattleText5 ; TextBeforeBattle - dw Route25AfterBattleText5 ; TextAfterBattle - dw Route25EndBattleText5 ; TextEndBattle - dw Route25EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_25_TRAINER_4, 4, Route25BattleText5, Route25EndBattleText5, Route25AfterBattleText5 Route25TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_5 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_5 - dw Route25BattleText6 ; TextBeforeBattle - dw Route25AfterBattleText6 ; TextAfterBattle - dw Route25EndBattleText6 ; TextEndBattle - dw Route25EndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_25_TRAINER_5, 4, Route25BattleText6, Route25EndBattleText6, Route25AfterBattleText6 Route25TrainerHeader6: - dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_6 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_6 - dw Route25BattleText7 ; TextBeforeBattle - dw Route25AfterBattleText7 ; TextAfterBattle - dw Route25EndBattleText7 ; TextEndBattle - dw Route25EndBattleText7 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_25_TRAINER_6, 3, Route25BattleText7, Route25EndBattleText7, Route25AfterBattleText7 Route25TrainerHeader7: - dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_7, 1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_7, 1 - dw Route25BattleText8 ; TextBeforeBattle - dw Route25AfterBattleText8 ; TextAfterBattle - dw Route25EndBattleText8 ; TextEndBattle - dw Route25EndBattleText8 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_25_TRAINER_7, 1, 2, Route25BattleText8, Route25EndBattleText8, Route25AfterBattleText8 Route25TrainerHeader8: - dbEventFlagBit EVENT_BEAT_ROUTE_25_TRAINER_8, 1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_25_TRAINER_8, 1 - dw Route25BattleText9 ; TextBeforeBattle - dw Route25AfterBattleText9 ; TextAfterBattle - dw Route25EndBattleText9 ; TextEndBattle - dw Route25EndBattleText9 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_25_TRAINER_8, 1, 2, Route25BattleText9, Route25EndBattleText9, Route25AfterBattleText9 + db -1 ; end Route25Text1: - TX_ASM + text_asm ld hl, Route25TrainerHeader0 call TalkToTrainer jp TextScriptEnd Route25Text2: - TX_ASM + text_asm ld hl, Route25TrainerHeader1 call TalkToTrainer jp TextScriptEnd Route25Text3: - TX_ASM + text_asm ld hl, Route25TrainerHeader2 call TalkToTrainer jp TextScriptEnd Route25Text4: - TX_ASM + text_asm ld hl, Route25TrainerHeader3 call TalkToTrainer jp TextScriptEnd Route25Text5: - TX_ASM + text_asm ld hl, Route25TrainerHeader4 call TalkToTrainer jp TextScriptEnd Route25Text6: - TX_ASM + text_asm ld hl, Route25TrainerHeader5 call TalkToTrainer jp TextScriptEnd Route25Text7: - TX_ASM + text_asm ld hl, Route25TrainerHeader6 call TalkToTrainer jp TextScriptEnd Route25Text8: - TX_ASM + text_asm ld hl, Route25TrainerHeader7 call TalkToTrainer jp TextScriptEnd Route25Text9: - TX_ASM + text_asm ld hl, Route25TrainerHeader8 call TalkToTrainer jp TextScriptEnd Route25BattleText1: - TX_FAR _Route25BattleText1 - db "@" + text_far _Route25BattleText1 + text_end Route25EndBattleText1: - TX_FAR _Route25EndBattleText1 - db "@" + text_far _Route25EndBattleText1 + text_end Route25AfterBattleText1: - TX_FAR _Route25AfterBattleText1 - db "@" + text_far _Route25AfterBattleText1 + text_end Route25BattleText2: - TX_FAR _Route25BattleText2 - db "@" + text_far _Route25BattleText2 + text_end Route25EndBattleText2: - TX_FAR _Route25EndBattleText2 - db "@" + text_far _Route25EndBattleText2 + text_end Route25AfterBattleText2: - TX_FAR _Route25AfterBattleText2 - db "@" + text_far _Route25AfterBattleText2 + text_end Route25BattleText3: - TX_FAR _Route25BattleText3 - db "@" + text_far _Route25BattleText3 + text_end Route25EndBattleText3: - TX_FAR _Route25EndBattleText3 - db "@" + text_far _Route25EndBattleText3 + text_end Route25AfterBattleText3: - TX_FAR _Route25AfterBattleText3 - db "@" + text_far _Route25AfterBattleText3 + text_end Route25BattleText4: - TX_FAR _Route25BattleText4 - db "@" + text_far _Route25BattleText4 + text_end Route25EndBattleText4: - TX_FAR _Route25EndBattleText4 - db "@" + text_far _Route25EndBattleText4 + text_end Route25AfterBattleText4: - TX_FAR _Route25AfterBattleText4 - db "@" + text_far _Route25AfterBattleText4 + text_end Route25BattleText5: - TX_FAR _Route25BattleText5 - db "@" + text_far _Route25BattleText5 + text_end Route25EndBattleText5: - TX_FAR _Route25EndBattleText5 - db "@" + text_far _Route25EndBattleText5 + text_end Route25AfterBattleText5: - TX_FAR _Route25AfterBattleText5 - db "@" + text_far _Route25AfterBattleText5 + text_end Route25BattleText6: - TX_FAR _Route25BattleText6 - db "@" + text_far _Route25BattleText6 + text_end Route25EndBattleText6: - TX_FAR _Route25EndBattleText6 - db "@" + text_far _Route25EndBattleText6 + text_end Route25AfterBattleText6: - TX_FAR _Route25AfterBattleText6 - db "@" + text_far _Route25AfterBattleText6 + text_end Route25BattleText7: - TX_FAR _Route25BattleText7 - db "@" + text_far _Route25BattleText7 + text_end Route25EndBattleText7: - TX_FAR _Route25EndBattleText7 - db "@" + text_far _Route25EndBattleText7 + text_end Route25AfterBattleText7: - TX_FAR _Route25AfterBattleText7 - db "@" + text_far _Route25AfterBattleText7 + text_end Route25BattleText8: - TX_FAR _Route25BattleText8 - db "@" + text_far _Route25BattleText8 + text_end Route25EndBattleText8: - TX_FAR _Route25EndBattleText8 - db "@" + text_far _Route25EndBattleText8 + text_end Route25AfterBattleText8: - TX_FAR _Route25AfterBattleText8 - db "@" + text_far _Route25AfterBattleText8 + text_end Route25BattleText9: - TX_FAR _Route25BattleText9 - db "@" + text_far _Route25BattleText9 + text_end Route25EndBattleText9: - TX_FAR _Route25EndBattleText9 - db "@" + text_far _Route25EndBattleText9 + text_end Route25AfterBattleText9: - TX_FAR _Route25AfterBattleText9 - db "@" + text_far _Route25AfterBattleText9 + text_end Route25Text11: - TX_FAR _Route25Text11 - db "@" + text_far _Route25Text11 + text_end diff --git a/scripts/Route2Gate.asm b/scripts/Route2Gate.asm index 70d938146..60f6ffe11 100755 --- a/scripts/Route2Gate.asm +++ b/scripts/Route2Gate.asm @@ -6,13 +6,13 @@ Route2Gate_TextPointers: dw Route2GateText2 Route2GateText1: - TX_ASM + text_asm CheckEvent EVENT_GOT_HM05 - jr nz, .asm_5d60d - ld a, 10 ; pokemon needed - ld [hOaksAideRequirement], a - ld a, HM_05 ; oak's aide reward - ld [hOaksAideRewardItem], a + jr nz, .got_item + ld a, 10 + ldh [hOaksAideRequirement], a + ld a, HM_FLASH + ldh [hOaksAideRewardItem], a ld [wd11e], a call GetItemName ld hl, wcd6d @@ -20,20 +20,20 @@ Route2GateText1: ld bc, ITEM_NAME_LENGTH call CopyData predef OaksAideScript - ld a, [hOaksAideResult] - cp $1 - jr nz, .asm_5d613 + ldh a, [hOaksAideResult] + cp OAKS_AIDE_GOT_ITEM + jr nz, .no_item SetEvent EVENT_GOT_HM05 -.asm_5d60d +.got_item ld hl, Route2GateText_5d616 call PrintText -.asm_5d613 +.no_item jp TextScriptEnd Route2GateText_5d616: - TX_FAR _Route2GateText_5d616 - db "@" + text_far _Route2GateText_5d616 + text_end Route2GateText2: - TX_FAR _Route2GateText2 - db "@" + text_far _Route2GateText2 + text_end diff --git a/scripts/Route2TradeHouse.asm b/scripts/Route2TradeHouse.asm index a89e2fe9c..85ed2d342 100755 --- a/scripts/Route2TradeHouse.asm +++ b/scripts/Route2TradeHouse.asm @@ -6,12 +6,12 @@ Route2TradeHouse_TextPointers: dw Route2HouseText2 Route2HouseText1: - TX_FAR _Route2HouseText1 - db "@" + text_far _Route2HouseText1 + text_end Route2HouseText2: - TX_ASM - ld a, $1 + text_asm + ld a, TRADE_FOR_MARCEL ld [wWhichTrade], a predef DoInGameTradeDialogue jp TextScriptEnd diff --git a/scripts/Route3.asm b/scripts/Route3.asm index d55831bf1..74140b400 100755 --- a/scripts/Route3.asm +++ b/scripts/Route3.asm @@ -25,227 +25,171 @@ Route3_TextPointers: dw Route3Text10 Route3TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_3_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_3_TRAINER_0 - dw Route3BattleText1 ; TextBeforeBattle - dw Route3AfterBattleText1 ; TextAfterBattle - dw Route3EndBattleText1 ; TextEndBattle - dw Route3EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_3_TRAINER_0, 2, Route3BattleText1, Route3EndBattleText1, Route3AfterBattleText1 Route3TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_3_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_3_TRAINER_1 - dw Route3BattleText2 ; TextBeforeBattle - dw Route3AfterBattleText2 ; TextAfterBattle - dw Route3EndBattleText2 ; TextEndBattle - dw Route3EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_3_TRAINER_1, 3, Route3BattleText2, Route3EndBattleText2, Route3AfterBattleText2 Route3TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_3_TRAINER_2 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_3_TRAINER_2 - dw Route3BattleText3 ; TextBeforeBattle - dw Route3AfterBattleText3 ; TextAfterBattle - dw Route3EndBattleText3 ; TextEndBattle - dw Route3EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_3_TRAINER_2, 2, Route3BattleText3, Route3EndBattleText3, Route3AfterBattleText3 Route3TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_3_TRAINER_3 - db ($1 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_3_TRAINER_3 - dw Route3BattleText4 ; TextBeforeBattle - dw Route3AfterBattleText4 ; TextAfterBattle - dw Route3EndBattleText4 ; TextEndBattle - dw Route3EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_3_TRAINER_3, 1, Route3BattleText4, Route3EndBattleText4, Route3AfterBattleText4 Route3TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_3_TRAINER_4 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_3_TRAINER_4 - dw Route3BattleText5 ; TextBeforeBattle - dw Route3AfterBattleText5 ; TextAfterBattle - dw Route3EndBattleText5 ; TextEndBattle - dw Route3EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_3_TRAINER_4, 4, Route3BattleText5, Route3EndBattleText5, Route3AfterBattleText5 Route3TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_3_TRAINER_5 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_3_TRAINER_5 - dw Route3BattleText6 ; TextBeforeBattle - dw Route3AfterBattleText6 ; TextAfterBattle - dw Route3EndBattleText6 ; TextEndBattle - dw Route3EndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_3_TRAINER_5, 3, Route3BattleText6, Route3EndBattleText6, Route3AfterBattleText6 Route3TrainerHeader6: - dbEventFlagBit EVENT_BEAT_ROUTE_3_TRAINER_6, 1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_3_TRAINER_6, 1 - dw Route3BattleText7 ; TextBeforeBattle - dw Route3AfterBattleText7 ; TextAfterBattle - dw Route3EndBattleText7 ; TextEndBattle - dw Route3EndBattleText7 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_3_TRAINER_6, 1, 3, Route3BattleText7, Route3EndBattleText7, Route3AfterBattleText7 Route3TrainerHeader7: - dbEventFlagBit EVENT_BEAT_ROUTE_3_TRAINER_7, 1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_3_TRAINER_7, 1 - dw Route3BattleText8 ; TextBeforeBattle - dw Route3AfterBattleText8 ; TextAfterBattle - dw Route3EndBattleText8 ; TextEndBattle - dw Route3EndBattleText8 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_3_TRAINER_7, 1, 2, Route3BattleText8, Route3EndBattleText8, Route3AfterBattleText8 + db -1 ; end Route3Text1: - TX_FAR _Route3Text1 - db "@" + text_far _Route3Text1 + text_end Route3Text2: - TX_ASM + text_asm ld hl, Route3TrainerHeader0 call TalkToTrainer jp TextScriptEnd Route3BattleText1: - TX_FAR _Route3BattleText1 - db "@" + text_far _Route3BattleText1 + text_end Route3EndBattleText1: - TX_FAR _Route3EndBattleText1 - db "@" + text_far _Route3EndBattleText1 + text_end Route3AfterBattleText1: - TX_FAR _Route3AfterBattleText1 - db "@" + text_far _Route3AfterBattleText1 + text_end Route3Text3: - TX_ASM + text_asm ld hl, Route3TrainerHeader1 call TalkToTrainer jp TextScriptEnd Route3BattleText2: - TX_FAR _Route3BattleText2 - db "@" + text_far _Route3BattleText2 + text_end Route3EndBattleText2: - TX_FAR _Route3EndBattleText2 - db "@" + text_far _Route3EndBattleText2 + text_end Route3AfterBattleText2: - TX_FAR _Route3AfterBattleText2 - db "@" + text_far _Route3AfterBattleText2 + text_end Route3Text4: - TX_ASM + text_asm ld hl, Route3TrainerHeader2 call TalkToTrainer jp TextScriptEnd Route3BattleText3: - TX_FAR _Route3BattleText3 - db "@" + text_far _Route3BattleText3 + text_end Route3EndBattleText3: - TX_FAR _Route3EndBattleText3 - db "@" + text_far _Route3EndBattleText3 + text_end Route3AfterBattleText3: - TX_FAR _Route3AfterBattleText3 - db "@" + text_far _Route3AfterBattleText3 + text_end Route3Text5: - TX_ASM + text_asm ld hl, Route3TrainerHeader3 call TalkToTrainer jp TextScriptEnd Route3BattleText4: - TX_FAR _Route3BattleText4 - db "@" + text_far _Route3BattleText4 + text_end Route3EndBattleText4: - TX_FAR _Route3EndBattleText4 - db "@" + text_far _Route3EndBattleText4 + text_end Route3AfterBattleText4: - TX_FAR _Route3AfterBattleText4 - db "@" + text_far _Route3AfterBattleText4 + text_end Route3Text6: - TX_ASM + text_asm ld hl, Route3TrainerHeader4 call TalkToTrainer jp TextScriptEnd Route3BattleText5: - TX_FAR _Route3BattleText5 - db "@" + text_far _Route3BattleText5 + text_end Route3EndBattleText5: - TX_FAR _Route3EndBattleText5 - db "@" + text_far _Route3EndBattleText5 + text_end Route3AfterBattleText5: - TX_FAR _Route3AfterBattleText5 - db "@" + text_far _Route3AfterBattleText5 + text_end Route3Text7: - TX_ASM + text_asm ld hl, Route3TrainerHeader5 call TalkToTrainer jp TextScriptEnd Route3BattleText6: - TX_FAR _Route3BattleText6 - db "@" + text_far _Route3BattleText6 + text_end Route3EndBattleText6: - TX_FAR _Route3EndBattleText6 - db "@" + text_far _Route3EndBattleText6 + text_end Route3AfterBattleText6: - TX_FAR _Route3AfterBattleText6 - db "@" + text_far _Route3AfterBattleText6 + text_end Route3Text8: - TX_ASM + text_asm ld hl, Route3TrainerHeader6 call TalkToTrainer jp TextScriptEnd Route3BattleText7: - TX_FAR _Route3BattleText7 - db "@" + text_far _Route3BattleText7 + text_end Route3EndBattleText7: - TX_FAR _Route3EndBattleText7 - db "@" + text_far _Route3EndBattleText7 + text_end Route3AfterBattleText7: - TX_FAR _Route3AfterBattleText7 - db "@" + text_far _Route3AfterBattleText7 + text_end Route3Text9: - TX_ASM + text_asm ld hl, Route3TrainerHeader7 call TalkToTrainer jp TextScriptEnd Route3BattleText8: - TX_FAR _Route3BattleText8 - db "@" + text_far _Route3BattleText8 + text_end Route3EndBattleText8: - TX_FAR _Route3EndBattleText8 - db "@" + text_far _Route3EndBattleText8 + text_end Route3AfterBattleText8: - TX_FAR _Route3AfterBattleText8 - db "@" + text_far _Route3AfterBattleText8 + text_end Route3Text10: - TX_FAR _Route3Text10 - db "@" + text_far _Route3Text10 + text_end diff --git a/scripts/Route4.asm b/scripts/Route4.asm index 9b04a47a9..b69a88c74 100755 --- a/scripts/Route4.asm +++ b/scripts/Route4.asm @@ -21,42 +21,35 @@ Route4_TextPointers: dw Route4Text6 Route4TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_4_TRAINER_0 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_4_TRAINER_0 - dw Route4BattleText1 ; TextBeforeBattle - dw Route4AfterBattleText1 ; TextAfterBattle - dw Route4EndBattleText1 ; TextEndBattle - dw Route4EndBattleText1 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_4_TRAINER_0, 3, Route4BattleText1, Route4EndBattleText1, Route4AfterBattleText1 + db -1 ; end Route4Text1: - TX_FAR _Route4Text1 - db "@" + text_far _Route4Text1 + text_end Route4Text2: - TX_ASM + text_asm ld hl, Route4TrainerHeader0 call TalkToTrainer jp TextScriptEnd Route4BattleText1: - TX_FAR _Route4BattleText1 - db "@" + text_far _Route4BattleText1 + text_end Route4EndBattleText1: - TX_FAR _Route4EndBattleText1 - db "@" + text_far _Route4EndBattleText1 + text_end Route4AfterBattleText1: - TX_FAR _Route4AfterBattleText1 - db "@" + text_far _Route4AfterBattleText1 + text_end Route4Text5: - TX_FAR _Route4Text5 - db "@" + text_far _Route4Text5 + text_end Route4Text6: - TX_FAR _Route4Text6 - db "@" + text_far _Route4Text6 + text_end diff --git a/scripts/Route5.asm b/scripts/Route5.asm index 1b2bd2422..33f3c345f 100755 --- a/scripts/Route5.asm +++ b/scripts/Route5.asm @@ -5,5 +5,5 @@ Route5_TextPointers: dw Route5Text1 Route5Text1: - TX_FAR _Route5Text1 - db "@" + text_far _Route5Text1 + text_end diff --git a/scripts/Route5Gate.asm b/scripts/Route5Gate.asm index bc763dfdb..e155694af 100755 --- a/scripts/Route5Gate.asm +++ b/scripts/Route5Gate.asm @@ -25,13 +25,13 @@ Route5GateScript0: ld a, PLAYER_DIR_LEFT ld [wPlayerMovingDirection], a xor a - ld [hJoyHeld], a - callba RemoveGuardDrink - ld a, [$ffdb] + ldh [hJoyHeld], a + farcall RemoveGuardDrink + ldh a, [hItemToRemoveID] and a jr nz, .asm_1df82 ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call Route5GateScript_1df43 ld a, $1 @@ -39,16 +39,16 @@ Route5GateScript0: ret .asm_1df82 ld a, $3 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd728 set 6, [hl] ret CoordsData_1df8f: - db 3,3 - db 3,4 - db $ff + dbmapcoord 3, 3 + dbmapcoord 4, 3 + db -1 ; end Route5GateScript1: ld a, [wSimulatedJoypadStatesIndex] @@ -69,12 +69,12 @@ Route8GateText1: Route7GateText1: Route6GateText1: Route5GateText1: - TX_ASM + text_asm ld a, [wd728] bit 6, a jr nz, .asm_88856 - callba RemoveGuardDrink - ld a, [$ffdb] + farcall RemoveGuardDrink + ldh a, [hItemToRemoveID] and a jr nz, .asm_768a2 ld hl, Route5GateText2 @@ -98,20 +98,20 @@ Route8GateText2: Route7GateText2: Route6GateText2: Route5GateText2: - TX_FAR _SaffronGateText_1dfe7 - db "@" + text_far _SaffronGateText_1dfe7 + text_end Route8GateText3: Route7GateText3: Route6GateText3: Route5GateText3: - TX_FAR _SaffronGateText_8aaa9 - TX_SFX_KEY_ITEM - TX_FAR _SaffronGateText_1dff1 - db "@" + text_far _SaffronGateText_8aaa9 + sound_get_key_item + text_far _SaffronGateText_1dff1 + text_end SaffronGateText_1dff6: - TX_FAR _SaffronGateText_1dff6 - db "@" + text_far _SaffronGateText_1dff6 + text_end diff --git a/scripts/Route6.asm b/scripts/Route6.asm index 6ee3f3179..01d5414d9 100755 --- a/scripts/Route6.asm +++ b/scripts/Route6.asm @@ -22,169 +22,127 @@ Route6_TextPointers: dw Route6Text7 Route6TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_6_TRAINER_0 - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_6_TRAINER_0 - dw Route6BattleText1 ; TextBeforeBattle - dw Route6AfterBattleText1 ; TextAfterBattle - dw Route6EndBattleText1 ; TextEndBattle - dw Route6EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_6_TRAINER_0, 0, Route6BattleText1, Route6EndBattleText1, Route6AfterBattleText1 Route6TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_6_TRAINER_1 - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_6_TRAINER_1 - dw Route6BattleText2 ; TextBeforeBattle - dw Route6AfterBattleText2 ; TextAfterBattle - dw Route6EndBattleText2 ; TextEndBattle - dw Route6EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_6_TRAINER_1, 0, Route6BattleText2, Route6EndBattleText2, Route6AfterBattleText2 Route6TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_6_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_6_TRAINER_2 - dw Route6BattleText3 ; TextBeforeBattle - dw Route6AfterBattleText3 ; TextAfterBattle - dw Route6EndBattleText3 ; TextEndBattle - dw Route6EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_6_TRAINER_2, 4, Route6BattleText3, Route6EndBattleText3, Route6AfterBattleText3 Route6TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_6_TRAINER_3 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_6_TRAINER_3 - dw Route6BattleText4 ; TextBeforeBattle - dw Route6AfterBattleText4 ; TextAfterBattle - dw Route6EndBattleText4 ; TextEndBattle - dw Route6EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_6_TRAINER_3, 3, Route6BattleText4, Route6EndBattleText4, Route6AfterBattleText4 Route6TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_6_TRAINER_4 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_6_TRAINER_4 - dw Route6BattleText5 ; TextBeforeBattle - dw Route6AfterBattleText5 ; TextAfterBattle - dw Route6EndBattleText5 ; TextEndBattle - dw Route6EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_6_TRAINER_4, 3, Route6BattleText5, Route6EndBattleText5, Route6AfterBattleText5 Route6TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_6_TRAINER_5 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_6_TRAINER_5 - dw Route6BattleText6 ; TextBeforeBattle - dw Route6AfterBattleText6 ; TextAfterBattle - dw Route6EndBattleText6 ; TextEndBattle - dw Route6EndBattleText6 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_6_TRAINER_5, 3, Route6BattleText6, Route6EndBattleText6, Route6AfterBattleText6 + db -1 ; end Route6Text1: - TX_ASM + text_asm ld hl, Route6TrainerHeader0 call TalkToTrainer jp TextScriptEnd Route6BattleText1: - TX_FAR _Route6BattleText1 - db "@" + text_far _Route6BattleText1 + text_end Route6EndBattleText1: - TX_FAR _Route6EndBattleText1 - db "@" + text_far _Route6EndBattleText1 + text_end Route6AfterBattleText1: - TX_FAR _Route6AfterBattleText1 - db "@" + text_far _Route6AfterBattleText1 + text_end Route6Text2: - TX_ASM + text_asm ld hl, Route6TrainerHeader1 call TalkToTrainer jp TextScriptEnd Route6BattleText2: - TX_FAR _Route6BattleText2 - db "@" + text_far _Route6BattleText2 + text_end Route6EndBattleText2: - TX_FAR _Route6EndBattleText2 - db "@" + text_far _Route6EndBattleText2 + text_end Route6AfterBattleText2: - TX_FAR _Route6AfterBattleText2 - db "@" + text_far _Route6AfterBattleText2 + text_end Route6Text3: - TX_ASM + text_asm ld hl, Route6TrainerHeader2 call TalkToTrainer jp TextScriptEnd Route6BattleText3: - TX_FAR _Route6BattleText3 - db "@" + text_far _Route6BattleText3 + text_end Route6EndBattleText3: - TX_FAR _Route6EndBattleText3 - db "@" + text_far _Route6EndBattleText3 + text_end Route6AfterBattleText3: - TX_FAR _Route6AfterBattleText3 - db "@" + text_far _Route6AfterBattleText3 + text_end Route6Text4: - TX_ASM + text_asm ld hl, Route6TrainerHeader3 call TalkToTrainer jp TextScriptEnd Route6BattleText4: - TX_FAR _Route6BattleText4 - db "@" + text_far _Route6BattleText4 + text_end Route6EndBattleText4: - TX_FAR _Route6EndBattleText4 - db "@" + text_far _Route6EndBattleText4 + text_end Route6AfterBattleText4: - TX_FAR _Route6AfterBattleText4 - db "@" + text_far _Route6AfterBattleText4 + text_end Route6Text5: - TX_ASM + text_asm ld hl, Route6TrainerHeader4 call TalkToTrainer jp TextScriptEnd Route6BattleText5: - TX_FAR _Route6BattleText5 - db "@" + text_far _Route6BattleText5 + text_end Route6EndBattleText5: - TX_FAR _Route6EndBattleText5 - db "@" + text_far _Route6EndBattleText5 + text_end Route6AfterBattleText5: - TX_FAR _Route6AfterBattleText5 - db "@" + text_far _Route6AfterBattleText5 + text_end Route6Text6: - TX_ASM + text_asm ld hl, Route6TrainerHeader5 call TalkToTrainer jp TextScriptEnd Route6BattleText6: - TX_FAR _Route6BattleText6 - db "@" + text_far _Route6BattleText6 + text_end Route6EndBattleText6: - TX_FAR _Route6EndBattleText6 - db "@" + text_far _Route6EndBattleText6 + text_end Route6AfterBattleText6: - TX_FAR _Route6AfterBattleText6 - db "@" + text_far _Route6AfterBattleText6 + text_end Route6Text7: - TX_FAR _Route6Text7 - db "@" + text_far _Route6Text7 + text_end diff --git a/scripts/Route6Gate.asm b/scripts/Route6Gate.asm index 348f61acf..143f60ae5 100755 --- a/scripts/Route6Gate.asm +++ b/scripts/Route6Gate.asm @@ -19,13 +19,13 @@ Route6GateScript0: ld a, PLAYER_DIR_RIGHT ld [wPlayerMovingDirection], a xor a - ld [hJoyHeld], a - callba RemoveGuardDrink - ld a, [$ffdb] + ldh [hJoyHeld], a + farcall RemoveGuardDrink + ldh a, [hItemToRemoveID] and a jr nz, .asm_1e080 ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call Route6GateScript_1e0a1 ld a, $1 @@ -35,12 +35,13 @@ Route6GateScript0: ld hl, wd728 set 6, [hl] ld a, $3 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a jp DisplayTextID CoordsData_1e08c: - db $02,$03 - db $02,$04,$FF + dbmapcoord 3, 2 + dbmapcoord 4, 2 + db -1 ; end Route6GateScript1: ld a, [wSimulatedJoypadStatesIndex] @@ -60,7 +61,7 @@ Route6GateScript_1e0a1: ld a, $1 ld [wSimulatedJoypadStatesIndex], a xor a - ld [wSpriteStateData2 + $06], a + ld [wSpritePlayerStateData2MovementByte1], a ld [wOverrideSimulatedJoypadStatesMask], a ret diff --git a/scripts/Route7.asm b/scripts/Route7.asm index 27d07a7aa..648cbb58d 100755 --- a/scripts/Route7.asm +++ b/scripts/Route7.asm @@ -6,5 +6,5 @@ Route7_TextPointers: dw Route7Text1 Route7Text1: - TX_FAR _Route7Text1 - db "@" + text_far _Route7Text1 + text_end diff --git a/scripts/Route7Gate.asm b/scripts/Route7Gate.asm index 724172c58..9a647965d 100755 --- a/scripts/Route7Gate.asm +++ b/scripts/Route7Gate.asm @@ -17,7 +17,7 @@ Route7GateScript_1e111: ld a, $1 ld [wSimulatedJoypadStatesIndex], a xor a - ld [wSpriteStateData2 + $06], a + ld [wSpritePlayerStateData2MovementByte1], a ld [wOverrideSimulatedJoypadStatesMask], a ret @@ -31,13 +31,13 @@ Route7GateScript0: ld a, PLAYER_DIR_UP ld [wPlayerMovingDirection], a xor a - ld [hJoyHeld], a - callba RemoveGuardDrink - ld a, [$ffdb] + ldh [hJoyHeld], a + farcall RemoveGuardDrink + ldh a, [hItemToRemoveID] and a jr nz, .asm_1e15a ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call Route7GateScript_1e111 ld a, $1 @@ -45,16 +45,16 @@ Route7GateScript0: ret .asm_1e15a ld a, $3 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wd728 set 6, [hl] ret CoordsData_1e167: - db 3,3 - db 4,3 - db $ff + dbmapcoord 3, 3 + dbmapcoord 3, 4 + db -1 ; end Route7GateScript1: ld a, [wSimulatedJoypadStatesIndex] diff --git a/scripts/Route8.asm b/scripts/Route8.asm index f3388505e..f50167c06 100755 --- a/scripts/Route8.asm +++ b/scripts/Route8.asm @@ -25,250 +25,187 @@ Route8_TextPointers: dw Route8Text10 Route8TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_0 - dw Route8BattleText1 ; TextBeforeBattle - dw Route8AfterBattleText1 ; TextAfterBattle - dw Route8EndBattleText1 ; TextEndBattle - dw Route8EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_8_TRAINER_0, 4, Route8BattleText1, Route8EndBattleText1, Route8AfterBattleText1 Route8TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_1 - dw Route8BattleText2 ; TextBeforeBattle - dw Route8AfterBattleText2 ; TextAfterBattle - dw Route8EndBattleText2 ; TextEndBattle - dw Route8EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_8_TRAINER_1, 4, Route8BattleText2, Route8EndBattleText2, Route8AfterBattleText2 Route8TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_2 - dw Route8BattleText3 ; TextBeforeBattle - dw Route8AfterBattleText3 ; TextAfterBattle - dw Route8EndBattleText3 ; TextEndBattle - dw Route8EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_8_TRAINER_2, 4, Route8BattleText3, Route8EndBattleText3, Route8AfterBattleText3 Route8TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_3 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_3 - dw Route8BattleText4 ; TextBeforeBattle - dw Route8AfterBattleText4 ; TextAfterBattle - dw Route8EndBattleText4 ; TextEndBattle - dw Route8EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_8_TRAINER_3, 2, Route8BattleText4, Route8EndBattleText4, Route8AfterBattleText4 Route8TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_4 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_4 - dw Route8BattleText5 ; TextBeforeBattle - dw Route8AfterBattleText5 ; TextAfterBattle - dw Route8EndBattleText5 ; TextEndBattle - dw Route8EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_8_TRAINER_4, 3, Route8BattleText5, Route8EndBattleText5, Route8AfterBattleText5 Route8TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_5 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_5 - dw Route8BattleText6 ; TextBeforeBattle - dw Route8AfterBattleText6 ; TextAfterBattle - dw Route8EndBattleText6 ; TextEndBattle - dw Route8EndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_8_TRAINER_5, 3, Route8BattleText6, Route8EndBattleText6, Route8AfterBattleText6 Route8TrainerHeader6: - dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_6 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_6 - dw Route8BattleText7 ; TextBeforeBattle - dw Route8AfterBattleText7 ; TextAfterBattle - dw Route8EndBattleText7 ; TextEndBattle - dw Route8EndBattleText7 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_8_TRAINER_6, 2, Route8BattleText7, Route8EndBattleText7, Route8AfterBattleText7 Route8TrainerHeader7: - dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_7, 1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_7, 1 - dw Route8BattleText8 ; TextBeforeBattle - dw Route8AfterBattleText8 ; TextAfterBattle - dw Route8EndBattleText8 ; TextEndBattle - dw Route8EndBattleText8 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_8_TRAINER_7, 1, 2, Route8BattleText8, Route8EndBattleText8, Route8AfterBattleText8 Route8TrainerHeader8: - dbEventFlagBit EVENT_BEAT_ROUTE_8_TRAINER_8, 1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_8_TRAINER_8, 1 - dw Route8BattleText9 ; TextBeforeBattle - dw Route8AfterBattleText9 ; TextAfterBattle - dw Route8EndBattleText9 ; TextEndBattle - dw Route8EndBattleText9 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_8_TRAINER_8, 1, 4, Route8BattleText9, Route8EndBattleText9, Route8AfterBattleText9 + db -1 ; end Route8Text1: - TX_ASM + text_asm ld hl, Route8TrainerHeader0 call TalkToTrainer jp TextScriptEnd Route8BattleText1: - TX_FAR _Route8BattleText1 - db "@" + text_far _Route8BattleText1 + text_end Route8EndBattleText1: - TX_FAR _Route8EndBattleText1 - db "@" + text_far _Route8EndBattleText1 + text_end Route8AfterBattleText1: - TX_FAR _Route8AfterBattleText1 - db "@" + text_far _Route8AfterBattleText1 + text_end Route8Text2: - TX_ASM + text_asm ld hl, Route8TrainerHeader1 call TalkToTrainer jp TextScriptEnd Route8BattleText2: - TX_FAR _Route8BattleText2 - db "@" + text_far _Route8BattleText2 + text_end Route8EndBattleText2: - TX_FAR _Route8EndBattleText2 - db "@" + text_far _Route8EndBattleText2 + text_end Route8AfterBattleText2: - TX_FAR _Route8AfterBattleText2 - db "@" + text_far _Route8AfterBattleText2 + text_end Route8Text3: - TX_ASM + text_asm ld hl, Route8TrainerHeader2 call TalkToTrainer jp TextScriptEnd Route8BattleText3: - TX_FAR _Route8BattleText3 - db "@" + text_far _Route8BattleText3 + text_end Route8EndBattleText3: - TX_FAR _Route8EndBattleText3 - db "@" + text_far _Route8EndBattleText3 + text_end Route8AfterBattleText3: - TX_FAR _Route8AfterBattleText3 - db "@" + text_far _Route8AfterBattleText3 + text_end Route8Text4: - TX_ASM + text_asm ld hl, Route8TrainerHeader3 call TalkToTrainer jp TextScriptEnd Route8BattleText4: - TX_FAR _Route8BattleText4 - db "@" + text_far _Route8BattleText4 + text_end Route8EndBattleText4: - TX_FAR _Route8EndBattleText4 - db "@" + text_far _Route8EndBattleText4 + text_end Route8AfterBattleText4: - TX_FAR _Route8AfterBattleText4 - db "@" + text_far _Route8AfterBattleText4 + text_end Route8Text5: - TX_ASM + text_asm ld hl, Route8TrainerHeader4 call TalkToTrainer jp TextScriptEnd Route8BattleText5: - TX_FAR _Route8BattleText5 - db "@" + text_far _Route8BattleText5 + text_end Route8EndBattleText5: - TX_FAR _Route8EndBattleText5 - db "@" + text_far _Route8EndBattleText5 + text_end Route8AfterBattleText5: - TX_FAR _Route8AfterBattleText5 - db "@" + text_far _Route8AfterBattleText5 + text_end Route8Text6: - TX_ASM + text_asm ld hl, Route8TrainerHeader5 call TalkToTrainer jp TextScriptEnd Route8BattleText6: - TX_FAR _Route8BattleText6 - db "@" + text_far _Route8BattleText6 + text_end Route8EndBattleText6: - TX_FAR _Route8EndBattleText6 - db "@" + text_far _Route8EndBattleText6 + text_end Route8AfterBattleText6: - TX_FAR _Route8AfterBattleText6 - db "@" + text_far _Route8AfterBattleText6 + text_end Route8Text7: - TX_ASM + text_asm ld hl, Route8TrainerHeader6 call TalkToTrainer jp TextScriptEnd Route8BattleText7: - TX_FAR _Route8BattleText7 - db "@" + text_far _Route8BattleText7 + text_end Route8EndBattleText7: - TX_FAR _Route8EndBattleText7 - db "@" + text_far _Route8EndBattleText7 + text_end Route8AfterBattleText7: - TX_FAR _Route8AfterBattleText7 - db "@" + text_far _Route8AfterBattleText7 + text_end Route8Text8: - TX_ASM + text_asm ld hl, Route8TrainerHeader7 call TalkToTrainer jp TextScriptEnd Route8BattleText8: - TX_FAR _Route8BattleText8 - db "@" + text_far _Route8BattleText8 + text_end Route8EndBattleText8: - TX_FAR _Route8EndBattleText8 - db "@" + text_far _Route8EndBattleText8 + text_end Route8AfterBattleText8: - TX_FAR _Route8AfterBattleText8 - db "@" + text_far _Route8AfterBattleText8 + text_end Route8Text9: - TX_ASM + text_asm ld hl, Route8TrainerHeader8 call TalkToTrainer jp TextScriptEnd Route8BattleText9: - TX_FAR _Route8BattleText9 - db "@" + text_far _Route8BattleText9 + text_end Route8EndBattleText9: - TX_FAR _Route8EndBattleText9 - db "@" + text_far _Route8EndBattleText9 + text_end Route8AfterBattleText9: - TX_FAR _Route8AfterBattleText9 - db "@" + text_far _Route8AfterBattleText9 + text_end Route8Text10: - TX_FAR _Route8Text10 - db "@" + text_far _Route8Text10 + text_end diff --git a/scripts/Route8Gate.asm b/scripts/Route8Gate.asm index 49f605a26..554439313 100755 --- a/scripts/Route8Gate.asm +++ b/scripts/Route8Gate.asm @@ -16,7 +16,7 @@ Route8GateScript_1e1d7: ld a, $1 ld [wSimulatedJoypadStatesIndex], a xor a - ld [wSpriteStateData2 + $06], a + ld [wSpritePlayerStateData2MovementByte1], a ld [wOverrideSimulatedJoypadStatesMask], a ret @@ -30,13 +30,13 @@ Route8GateScript0: ld a, PLAYER_DIR_UP ld [wPlayerMovingDirection], a xor a - ld [hJoyHeld], a - callba RemoveGuardDrink - ld a, [$ffdb] + ldh [hJoyHeld], a + farcall RemoveGuardDrink + ldh a, [hItemToRemoveID] and a jr nz, .asm_1e220 ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call Route8GateScript_1e1d7 ld a, $1 @@ -46,13 +46,13 @@ Route8GateScript0: ld hl, wd728 set 6, [hl] ld a, $3 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a jp DisplayTextID CoordsData_1e22c: - db 3,2 - db 4,2 - db $ff + dbmapcoord 2, 3 + dbmapcoord 2, 4 + db -1 ; end Route8GateScript1: ld a, [wSimulatedJoypadStatesIndex] diff --git a/scripts/Route9.asm b/scripts/Route9.asm index 8b346ee8a..e69d4d355 100755 --- a/scripts/Route9.asm +++ b/scripts/Route9.asm @@ -26,243 +26,180 @@ Route9_TextPointers: dw Route9Text11 Route9TrainerHeader0: - dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_0 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_0 - dw Route9BattleText1 ; TextBeforeBattle - dw Route9AfterBattleText1 ; TextAfterBattle - dw Route9EndBattleText1 ; TextEndBattle - dw Route9EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_9_TRAINER_0, 3, Route9BattleText1, Route9EndBattleText1, Route9AfterBattleText1 Route9TrainerHeader1: - dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_1 - dw Route9BattleTextAJ ; TextBeforeBattle - dw Route9AfterBattleTextAJ ; TextAfterBattle - dw Route9EndBattleTextAJ ; TextEndBattle - dw Route9EndBattleTextAJ ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_9_TRAINER_1, 2, Route9BattleTextAJ, Route9EndBattleTextAJ, Route9AfterBattleTextAJ Route9TrainerHeader2: - dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_2 - dw Route9BattleText3 ; TextBeforeBattle - dw Route9AfterBattleText3 ; TextAfterBattle - dw Route9EndBattleText3 ; TextEndBattle - dw Route9EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_9_TRAINER_2, 4, Route9BattleText3, Route9EndBattleText3, Route9AfterBattleText3 Route9TrainerHeader3: - dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_3 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_3 - dw Route9BattleText4 ; TextBeforeBattle - dw Route9AfterBattleText4 ; TextAfterBattle - dw Route9EndBattleText4 ; TextEndBattle - dw Route9EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_9_TRAINER_3, 2, Route9BattleText4, Route9EndBattleText4, Route9AfterBattleText4 Route9TrainerHeader4: - dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_4 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_4 - dw Route9BattleText5 ; TextBeforeBattle - dw Route9AfterBattleText5 ; TextAfterBattle - dw Route9EndBattleText5 ; TextEndBattle - dw Route9EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_9_TRAINER_4, 2, Route9BattleText5, Route9EndBattleText5, Route9AfterBattleText5 Route9TrainerHeader5: - dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_5 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_5 - dw Route9BattleText6 ; TextBeforeBattle - dw Route9AfterBattleText6 ; TextAfterBattle - dw Route9EndBattleText6 ; TextEndBattle - dw Route9EndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_9_TRAINER_5, 3, Route9BattleText6, Route9EndBattleText6, Route9AfterBattleText6 Route9TrainerHeader6: - dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_6 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_6 - dw Route9BattleText7 ; TextBeforeBattle - dw Route9AfterBattleText7 ; TextAfterBattle - dw Route9EndBattleText7 ; TextEndBattle - dw Route9EndBattleText7 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_9_TRAINER_6, 4, Route9BattleText7, Route9EndBattleText7, Route9AfterBattleText7 Route9TrainerHeader7: - dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_7, 1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_7, 1 - dw Route9BattleText8 ; TextBeforeBattle - dw Route9AfterBattleText8 ; TextAfterBattle - dw Route9EndBattleText8 ; TextEndBattle - dw Route9EndBattleText8 ; TextEndBattle - + trainer EVENT_BEAT_ROUTE_9_TRAINER_7, 1, 2, Route9BattleText8, Route9EndBattleText8, Route9AfterBattleText8 Route9TrainerHeader8: - dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_8, 1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_8, 1 - dw Route9BattleText9 ; TextBeforeBattle - dw Route9AfterBattleText9 ; TextAfterBattle - dw Route9EndBattleText9 ; TextEndBattle - dw Route9EndBattleText9 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ROUTE_9_TRAINER_8, 1, 2, Route9BattleText9, Route9EndBattleText9, Route9AfterBattleText9 + db -1 ; end Route9Text1: - TX_ASM + text_asm ld hl, Route9TrainerHeader0 jr Route9TalkToTrainer Route9TextAJ: - TX_ASM + text_asm ld hl, Route9TrainerHeader1 jr Route9TalkToTrainer Route9Text3: - TX_ASM + text_asm ld hl, Route9TrainerHeader2 jr Route9TalkToTrainer Route9Text4: - TX_ASM + text_asm ld hl, Route9TrainerHeader3 jr Route9TalkToTrainer Route9Text5: - TX_ASM + text_asm ld hl, Route9TrainerHeader4 jr Route9TalkToTrainer Route9Text6: - TX_ASM + text_asm ld hl, Route9TrainerHeader5 jr Route9TalkToTrainer Route9Text7: - TX_ASM + text_asm ld hl, Route9TrainerHeader6 jr Route9TalkToTrainer Route9Text8: - TX_ASM + text_asm ld hl, Route9TrainerHeader7 jr Route9TalkToTrainer Route9Text9: - TX_ASM + text_asm ld hl, Route9TrainerHeader8 Route9TalkToTrainer: call TalkToTrainer jp TextScriptEnd Route9BattleText1: - TX_FAR _Route9BattleText1 - db "@" + text_far _Route9BattleText1 + text_end Route9EndBattleText1: - TX_FAR _Route9EndBattleText1 - db "@" + text_far _Route9EndBattleText1 + text_end Route9AfterBattleText1: - TX_FAR _Route9AfterBattleText1 - db "@" + text_far _Route9AfterBattleText1 + text_end Route9BattleTextAJ: - TX_FAR _Route9BattleTextAJ - db "@" + text_far _Route9BattleTextAJ + text_end Route9EndBattleTextAJ: - TX_FAR _Route9EndBattleTextAJ - db "@" + text_far _Route9EndBattleTextAJ + text_end Route9AfterBattleTextAJ: - TX_FAR _Route9AfterBattleTextAJ - db "@" + text_far _Route9AfterBattleTextAJ + text_end Route9BattleText3: - TX_FAR _Route9BattleText3 - db "@" + text_far _Route9BattleText3 + text_end Route9EndBattleText3: - TX_FAR _Route9EndBattleText3 - db "@" + text_far _Route9EndBattleText3 + text_end Route9AfterBattleText3: - TX_FAR _Route9AfterBattleText3 - db "@" + text_far _Route9AfterBattleText3 + text_end Route9BattleText4: - TX_FAR _Route9BattleText4 - db "@" + text_far _Route9BattleText4 + text_end Route9EndBattleText4: - TX_FAR _Route9EndBattleText4 - db "@" + text_far _Route9EndBattleText4 + text_end Route9AfterBattleText4: - TX_FAR _Route9AfterBattleText4 - db "@" + text_far _Route9AfterBattleText4 + text_end Route9BattleText5: - TX_FAR _Route9BattleText5 - db "@" + text_far _Route9BattleText5 + text_end Route9EndBattleText5: - TX_FAR _Route9EndBattleText5 - db "@" + text_far _Route9EndBattleText5 + text_end Route9AfterBattleText5: - TX_FAR _Route9AfterBattleText5 - db "@" + text_far _Route9AfterBattleText5 + text_end Route9BattleText6: - TX_FAR _Route9BattleText6 - db "@" + text_far _Route9BattleText6 + text_end Route9EndBattleText6: - TX_FAR _Route9EndBattleText6 - db "@" + text_far _Route9EndBattleText6 + text_end Route9AfterBattleText6: - TX_FAR _Route9AfterBattleText6 - db "@" + text_far _Route9AfterBattleText6 + text_end Route9BattleText7: - TX_FAR _Route9BattleText7 - db "@" + text_far _Route9BattleText7 + text_end Route9EndBattleText7: - TX_FAR _Route9EndBattleText7 - db "@" + text_far _Route9EndBattleText7 + text_end Route9AfterBattleText7: - TX_FAR _Route9AfterBattleText7 - db "@" + text_far _Route9AfterBattleText7 + text_end Route9BattleText8: - TX_FAR _Route9BattleText8 - db "@" + text_far _Route9BattleText8 + text_end Route9EndBattleText8: - TX_FAR _Route9EndBattleText8 - db "@" + text_far _Route9EndBattleText8 + text_end Route9AfterBattleText8: - TX_FAR _Route9AfterBattleText8 - db "@" + text_far _Route9AfterBattleText8 + text_end Route9BattleText9: - TX_FAR _Route9BattleText9 - db "@" + text_far _Route9BattleText9 + text_end Route9EndBattleText9: - TX_FAR _Route9EndBattleText9 - db "@" + text_far _Route9EndBattleText9 + text_end Route9AfterBattleText9: - TX_FAR _Route9AfterBattleText9 - db "@" + text_far _Route9AfterBattleText9 + text_end Route9Text11: - TX_FAR _Route9Text11 - db "@" + text_far _Route9Text11 + text_end diff --git a/scripts/SSAnne1F.asm b/scripts/SSAnne1F.asm index 5cace6ee2..c819f4708 100755 --- a/scripts/SSAnne1F.asm +++ b/scripts/SSAnne1F.asm @@ -7,9 +7,9 @@ SSAnne1F_TextPointers: dw SSAnne1Text2 SSAnne1Text1: - TX_FAR _SSAnne1Text1 - db "@" + text_far _SSAnne1Text1 + text_end SSAnne1Text2: - TX_FAR _SSAnne1Text2 - db "@" + text_far _SSAnne1Text2 + text_end diff --git a/scripts/SSAnne1FRooms.asm b/scripts/SSAnne1FRooms.asm index 2371f2861..e4e4813dc 100755 --- a/scripts/SSAnne1FRooms.asm +++ b/scripts/SSAnne1FRooms.asm @@ -26,138 +26,110 @@ SSAnne1FRooms_TextPointers: dw SSAnne8Text11 SSAnne8TrainerHeader0: - dbEventFlagBit EVENT_BEAT_SS_ANNE_8_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SS_ANNE_8_TRAINER_0 - dw SSAnne8BattleText1 ; TextBeforeBattle - dw SSAnne8AfterBattleText1 ; TextAfterBattle - dw SSAnne8EndBattleText1 ; TextEndBattle - dw SSAnne8EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_SS_ANNE_8_TRAINER_0, 2, SSAnne8BattleText1, SSAnne8EndBattleText1, SSAnne8AfterBattleText1 SSAnne8TrainerHeader1: - dbEventFlagBit EVENT_BEAT_SS_ANNE_8_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SS_ANNE_8_TRAINER_1 - dw SSAnne8BattleText2 ; TextBeforeBattle - dw SSAnne8AfterBattleText2 ; TextAfterBattle - dw SSAnne8EndBattleText2 ; TextEndBattle - dw SSAnne8EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_SS_ANNE_8_TRAINER_1, 3, SSAnne8BattleText2, SSAnne8EndBattleText2, SSAnne8AfterBattleText2 SSAnne8TrainerHeader2: - dbEventFlagBit EVENT_BEAT_SS_ANNE_8_TRAINER_2 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SS_ANNE_8_TRAINER_2 - dw SSAnne8BattleText3 ; TextBeforeBattle - dw SSAnne8AfterBattleText3 ; TextAfterBattle - dw SSAnne8EndBattleText3 ; TextEndBattle - dw SSAnne8EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_SS_ANNE_8_TRAINER_2, 2, SSAnne8BattleText3, SSAnne8EndBattleText3, SSAnne8AfterBattleText3 SSAnne8TrainerHeader3: - dbEventFlagBit EVENT_BEAT_SS_ANNE_8_TRAINER_3 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SS_ANNE_8_TRAINER_3 - dw SSAnne8BattleText4 ; TextBeforeBattle - dw SSAnne8AfterBattleText4 ; TextAfterBattle - dw SSAnne8EndBattleText4 ; TextEndBattle - dw SSAnne8EndBattleText4 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_SS_ANNE_8_TRAINER_3, 2, SSAnne8BattleText4, SSAnne8EndBattleText4, SSAnne8AfterBattleText4 + db -1 ; end SSAnne8Text1: - TX_ASM + text_asm ld hl, SSAnne8TrainerHeader0 call TalkToTrainer jp TextScriptEnd SSAnne8Text2: - TX_ASM + text_asm ld hl, SSAnne8TrainerHeader1 call TalkToTrainer jp TextScriptEnd SSAnne8Text3: - TX_ASM + text_asm ld hl, SSAnne8TrainerHeader2 call TalkToTrainer jp TextScriptEnd SSAnne8Text4: - TX_ASM + text_asm ld hl, SSAnne8TrainerHeader3 call TalkToTrainer jp TextScriptEnd SSAnne8Text8: - TX_FAR _SSAnne8Text8 - TX_ASM + text_far _SSAnne8Text8 + text_asm ld a, WIGGLYTUFF call PlayCry jp TextScriptEnd SSAnne8BattleText1: - TX_FAR _SSAnne8BattleText1 - db "@" + text_far _SSAnne8BattleText1 + text_end SSAnne8EndBattleText1: - TX_FAR _SSAnne8EndBattleText1 - db "@" + text_far _SSAnne8EndBattleText1 + text_end SSAnne8AfterBattleText1: - TX_FAR _SSAnne8AfterBattleText1 - db "@" + text_far _SSAnne8AfterBattleText1 + text_end SSAnne8BattleText2: - TX_FAR _SSAnne8BattleText2 - db "@" + text_far _SSAnne8BattleText2 + text_end SSAnne8EndBattleText2: - TX_FAR _SSAnne8EndBattleText2 - db "@" + text_far _SSAnne8EndBattleText2 + text_end SSAnne8AfterBattleText2: - TX_FAR _SSAnne8AfterBattleText2 - db "@" + text_far _SSAnne8AfterBattleText2 + text_end SSAnne8BattleText3: - TX_FAR _SSAnne8BattleText3 - db "@" + text_far _SSAnne8BattleText3 + text_end SSAnne8EndBattleText3: - TX_FAR _SSAnne8EndBattleText3 - db "@" + text_far _SSAnne8EndBattleText3 + text_end SSAnne8AfterBattleText3: - TX_FAR _SSAnne8AfterBattleText3 - db "@" + text_far _SSAnne8AfterBattleText3 + text_end SSAnne8BattleText4: - TX_FAR _SSAnne8BattleText4 - db "@" + text_far _SSAnne8BattleText4 + text_end SSAnne8EndBattleText4: - TX_FAR _SSAnne8EndBattleText4 - db "@" + text_far _SSAnne8EndBattleText4 + text_end SSAnne8AfterBattleText4: - TX_FAR _SSAnne8AfterBattleText4 - db "@" + text_far _SSAnne8AfterBattleText4 + text_end SSAnne8Text5: - TX_FAR _SSAnne8Text5 - db "@" + text_far _SSAnne8Text5 + text_end SSAnne8Text6: - TX_FAR _SSAnne8Text6 - db "@" + text_far _SSAnne8Text6 + text_end SSAnne8Text7: - TX_FAR _SSAnne8Text7 - db "@" + text_far _SSAnne8Text7 + text_end SSAnne8Text9: - TX_FAR _SSAnne8Text9 - db "@" + text_far _SSAnne8Text9 + text_end SSAnne8Text11: - TX_FAR _SSAnne8Text11 - db "@" + text_far _SSAnne8Text11 + text_end diff --git a/scripts/SSAnne2F.asm b/scripts/SSAnne2F.asm index 77b283d2d..d00917fec 100755 --- a/scripts/SSAnne2F.asm +++ b/scripts/SSAnne2F.asm @@ -29,19 +29,19 @@ SSAnne2Script0: ld a, MUSIC_MEET_RIVAL call PlayMusic ld a, [wCoordIndex] - ld [$ffdb], a + ldh [hSavedCoordIndex], a ld a, HS_SS_ANNE_2F_RIVAL ld [wMissableObjectIndex], a predef ShowObject call Delay3 ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call SetSpriteMovementBytesToFF xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $f0 ld [wJoyIgnore], a - ld a, [$ffdb] + ldh a, [hSavedCoordIndex] cp $2 jr nz, .asm_61400 ld de, MovementData_6140c @@ -56,21 +56,20 @@ SSAnne2Script0: MovementData_6140c: db NPC_MOVEMENT_DOWN - MovementData_6140d: db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN - db $FF + db -1 ; end CoordsData_61411: - db $08,$24 - db $08,$25 - db $FF + dbmapcoord 36, 8 + dbmapcoord 37, 8 + db -1 ; end SSAnne2Script_61416: ld a, [wXCoord] - cp $25 + cp 37 jr nz, .asm_61426 ld a, PLAYER_DIR_LEFT ld [wPlayerMovingDirection], a @@ -79,9 +78,9 @@ SSAnne2Script_61416: .asm_61426 xor a ; SPRITE_FACING_DOWN .asm_61427 - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a jp SetSpriteFacingDirectionAndDelay SSAnne2Script1: @@ -92,10 +91,10 @@ SSAnne2Script1: xor a ld [wJoyIgnore], a ld a, $2 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 - ld a, OPP_SONY2 + ld a, OPP_RIVAL2 ld [wCurOpponent], a ld a, $1 ld [wTrainerNo], a @@ -112,13 +111,13 @@ SSAnne2Script2: ld a, $f0 ld [wJoyIgnore], a ld a, $3 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call SetSpriteMovementBytesToFF ld a, [wXCoord] - cp $25 + cp 37 jr nz, .asm_61497 ld de, MovementData_614b9 jr .asm_6149a @@ -126,10 +125,10 @@ SSAnne2Script2: ld de, MovementData_614b7 .asm_6149a ld a, $2 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call MoveSprite call StopAllMusic - callba Music_RivalAlternateStart + farcall Music_RivalAlternateStart ld a, $3 ld [wSSAnne2FCurScript], a ret @@ -137,13 +136,12 @@ SSAnne2Script2: MovementData_614b7: db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_DOWN - MovementData_614b9: db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN - db $FF + db -1 ; end SSAnne2Script3: ld a, [wd730] @@ -165,11 +163,11 @@ SSAnne2F_TextPointers: dw SSAnne2Text3 SSAnne2Text1: - TX_FAR _SSAnne2Text1 - db "@" + text_far _SSAnne2Text1 + text_end SSAnne2Text2: - TX_ASM + text_asm ld hl, SSAnneRivalBeforeBattleText call PrintText ld hl, wd72d @@ -181,17 +179,17 @@ SSAnne2Text2: jp TextScriptEnd SSAnneRivalBeforeBattleText: - TX_FAR _SSAnneRivalBeforeBattleText - db "@" + text_far _SSAnneRivalBeforeBattleText + text_end SSAnneRivalDefeatedText: - TX_FAR _SSAnneRivalDefeatedText - db "@" + text_far _SSAnneRivalDefeatedText + text_end SSAnneRivalWonText: - TX_FAR _SSAnneRivalWonText - db "@" + text_far _SSAnneRivalWonText + text_end SSAnne2Text3: - TX_FAR _SSAnneRivalCaptainText - db "@" + text_far _SSAnneRivalCaptainText + text_end diff --git a/scripts/SSAnne2FRooms.asm b/scripts/SSAnne2FRooms.asm index fb57cf375..ff1dcfaf1 100755 --- a/scripts/SSAnne2FRooms.asm +++ b/scripts/SSAnne2FRooms.asm @@ -28,69 +28,41 @@ SSAnne2FRooms_TextPointers: dw SSAnne9Text13 SSAnne9TrainerHeader0: - dbEventFlagBit EVENT_BEAT_SS_ANNE_9_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SS_ANNE_9_TRAINER_0 - dw SSAnne9BattleText1 ; TextBeforeBattle - dw SSAnne9AfterBattleText1 ; TextAfterBattle - dw SSAnne9EndBattleText1 ; TextEndBattle - dw SSAnne9EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_SS_ANNE_9_TRAINER_0, 2, SSAnne9BattleText1, SSAnne9EndBattleText1, SSAnne9AfterBattleText1 SSAnne9TrainerHeader1: - dbEventFlagBit EVENT_BEAT_SS_ANNE_9_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SS_ANNE_9_TRAINER_1 - dw SSAnne9BattleText2 ; TextBeforeBattle - dw SSAnne9AfterBattleText2 ; TextAfterBattle - dw SSAnne9EndBattleText2 ; TextEndBattle - dw SSAnne9EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_SS_ANNE_9_TRAINER_1, 3, SSAnne9BattleText2, SSAnne9EndBattleText2, SSAnne9AfterBattleText2 SSAnne9TrainerHeader2: - dbEventFlagBit EVENT_BEAT_SS_ANNE_9_TRAINER_2 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SS_ANNE_9_TRAINER_2 - dw SSAnne9BattleText3 ; TextBeforeBattle - dw SSAnne9AfterBattleText3 ; TextAfterBattle - dw SSAnne9EndBattleText3 ; TextEndBattle - dw SSAnne9EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_SS_ANNE_9_TRAINER_2, 3, SSAnne9BattleText3, SSAnne9EndBattleText3, SSAnne9AfterBattleText3 SSAnne9TrainerHeader3: - dbEventFlagBit EVENT_BEAT_SS_ANNE_9_TRAINER_3 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SS_ANNE_9_TRAINER_3 - dw SSAnne9BattleText4 ; TextBeforeBattle - dw SSAnne9AfterBattleText4 ; TextAfterBattle - dw SSAnne9EndBattleText4 ; TextEndBattle - dw SSAnne9EndBattleText4 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_SS_ANNE_9_TRAINER_3, 2, SSAnne9BattleText4, SSAnne9EndBattleText4, SSAnne9AfterBattleText4 + db -1 ; end SSAnne9Text1: - TX_ASM + text_asm ld hl, SSAnne9TrainerHeader0 call TalkToTrainer jp TextScriptEnd SSAnne9Text2: - TX_ASM + text_asm ld hl, SSAnne9TrainerHeader1 call TalkToTrainer jp TextScriptEnd SSAnne9Text3: - TX_ASM + text_asm ld hl, SSAnne9TrainerHeader2 call TalkToTrainer jp TextScriptEnd SSAnne9Text4: - TX_ASM + text_asm ld hl, SSAnne9TrainerHeader3 call TalkToTrainer jp TextScriptEnd SSAnne9Text5: - TX_ASM + text_asm call SaveScreenTilesToBuffer1 ld hl, SSAnne9Text_61bf2 call PrintText @@ -100,93 +72,93 @@ SSAnne9Text5: jp TextScriptEnd SSAnne9Text_61bf2: - TX_FAR _SSAnne9Text_61bf2 - db "@" + text_far _SSAnne9Text_61bf2 + text_end SSAnne9Text7: - TX_ASM + text_asm ld hl, SSAnne9Text_61c01 call PrintText jp TextScriptEnd SSAnne9Text_61c01: - TX_FAR _SSAnne9Text_61c01 - db "@" + text_far _SSAnne9Text_61c01 + text_end SSAnne9Text8: - TX_ASM + text_asm ld hl, SSAnne9Text_61c10 call PrintText jp TextScriptEnd SSAnne9Text_61c10: - TX_FAR _SSAnne9Text_61c10 - db "@" + text_far _SSAnne9Text_61c10 + text_end SSAnne9Text10: - TX_ASM - callba Func_f2570 + text_asm + farcall Func_f2570 jp TextScriptEnd SSAnne9Text11: - TX_ASM - callba Func_f257c + text_asm + farcall Func_f257c jp TextScriptEnd SSAnne9Text12: - TX_ASM - callba Func_f2588 + text_asm + farcall Func_f2588 jp TextScriptEnd SSAnne9Text13: - TX_ASM - callba Func_f2594 + text_asm + farcall Func_f2594 jp TextScriptEnd SSAnne9BattleText1: - TX_FAR _SSAnne9BattleText1 - db "@" + text_far _SSAnne9BattleText1 + text_end SSAnne9EndBattleText1: - TX_FAR _SSAnne9EndBattleText1 - db "@" + text_far _SSAnne9EndBattleText1 + text_end SSAnne9AfterBattleText1: - TX_FAR _SSAnne9AfterBattleText1 - db "@" + text_far _SSAnne9AfterBattleText1 + text_end SSAnne9BattleText2: - TX_FAR _SSAnne9BattleText2 - db "@" + text_far _SSAnne9BattleText2 + text_end SSAnne9EndBattleText2: - TX_FAR _SSAnne9EndBattleText2 - db "@" + text_far _SSAnne9EndBattleText2 + text_end SSAnne9AfterBattleText2: - TX_FAR _SSAnne9AfterBattleText2 - db "@" + text_far _SSAnne9AfterBattleText2 + text_end SSAnne9BattleText3: - TX_FAR _SSAnne9BattleText3 - db "@" + text_far _SSAnne9BattleText3 + text_end SSAnne9EndBattleText3: - TX_FAR _SSAnne9EndBattleText3 - db "@" + text_far _SSAnne9EndBattleText3 + text_end SSAnne9AfterBattleText3: - TX_FAR _SSAnne9AfterBattleText3 - db "@" + text_far _SSAnne9AfterBattleText3 + text_end SSAnne9BattleText4: - TX_FAR _SSAnne9BattleText4 - db "@" + text_far _SSAnne9BattleText4 + text_end SSAnne9EndBattleText4: - TX_FAR _SSAnne9EndBattleText4 - db "@" + text_far _SSAnne9EndBattleText4 + text_end SSAnne9AfterBattleText4: - TX_FAR _SSAnne9AfterBattleText4 - db "@" + text_far _SSAnne9AfterBattleText4 + text_end diff --git a/scripts/SSAnne2FRooms_2.asm b/scripts/SSAnne2FRooms_2.asm index f856221c6..2271e83d9 100755 --- a/scripts/SSAnne2FRooms_2.asm +++ b/scripts/SSAnne2FRooms_2.asm @@ -1,35 +1,35 @@ -Func_f2570: +Func_f2570:: ld hl, SSAnne9Text_f2577 call PrintText ret SSAnne9Text_f2577: - TX_FAR _SSAnne9Text_61c1f - db "@" + text_far _SSAnne9Text_61c1f + text_end -Func_f257c: +Func_f257c:: ld hl, SSAnne9Text_f2583 call PrintText ret SSAnne9Text_f2583: - TX_FAR _SSAnne9Text_61c2e - db "@" + text_far _SSAnne9Text_61c2e + text_end -Func_f2588: +Func_f2588:: ld hl, SSAnne9Text_f258f call PrintText ret SSAnne9Text_f258f: - TX_FAR _SSAnne9Text_61c3d - db "@" + text_far _SSAnne9Text_61c3d + text_end -Func_f2594: +Func_f2594:: ld hl, SSAnne9Text_f259b call PrintText ret SSAnne9Text_f259b: - TX_FAR _SSAnne9Text_61c4c - db "@" + text_far _SSAnne9Text_61c4c + text_end diff --git a/scripts/SSAnne3F.asm b/scripts/SSAnne3F.asm index 5da0e0c70..e3e7a1d33 100755 --- a/scripts/SSAnne3F.asm +++ b/scripts/SSAnne3F.asm @@ -5,5 +5,5 @@ SSAnne3F_TextPointers: dw SSAnne3Text1 SSAnne3Text1: - TX_FAR _SSAnne3Text1 - db "@" + text_far _SSAnne3Text1 + text_end diff --git a/scripts/SSAnneB1F.asm b/scripts/SSAnneB1F.asm index 25df076f1..f66fdfaa9 100755 --- a/scripts/SSAnneB1F.asm +++ b/scripts/SSAnneB1F.asm @@ -2,4 +2,5 @@ SSAnneB1F_Script: jp EnableAutoTextBoxDrawing SSAnneB1F_TextPointers: - db "@" + + text_end ; unused diff --git a/scripts/SSAnneB1FRooms.asm b/scripts/SSAnneB1FRooms.asm index 3777852cf..2a077c337 100755 --- a/scripts/SSAnneB1FRooms.asm +++ b/scripts/SSAnneB1FRooms.asm @@ -26,176 +26,134 @@ SSAnneB1FRooms_TextPointers: dw PickUpItemText SSAnne10TrainerHeader0: - dbEventFlagBit EVENT_BEAT_SS_ANNE_10_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SS_ANNE_10_TRAINER_0 - dw SSAnne10BattleText1 ; TextBeforeBattle - dw SSAnne10AfterBattleText1 ; TextAfterBattle - dw SSAnne10EndBattleText1 ; TextEndBattle - dw SSAnne10EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_SS_ANNE_10_TRAINER_0, 2, SSAnne10BattleText1, SSAnne10EndBattleText1, SSAnne10AfterBattleText1 SSAnne10TrainerHeader1: - dbEventFlagBit EVENT_BEAT_SS_ANNE_10_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SS_ANNE_10_TRAINER_1 - dw SSAnne10BattleText2 ; TextBeforeBattle - dw SSAnne10AfterBattleText2 ; TextAfterBattle - dw SSAnne10EndBattleText2 ; TextEndBattle - dw SSAnne10EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_SS_ANNE_10_TRAINER_1, 3, SSAnne10BattleText2, SSAnne10EndBattleText2, SSAnne10AfterBattleText2 SSAnne10TrainerHeader2: - dbEventFlagBit EVENT_BEAT_SS_ANNE_10_TRAINER_2 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SS_ANNE_10_TRAINER_2 - dw SSAnne10BattleText3 ; TextBeforeBattle - dw SSAnne10AfterBattleText3 ; TextAfterBattle - dw SSAnne10EndBattleText3 ; TextEndBattle - dw SSAnne10EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_SS_ANNE_10_TRAINER_2, 2, SSAnne10BattleText3, SSAnne10EndBattleText3, SSAnne10AfterBattleText3 SSAnne10TrainerHeader3: - dbEventFlagBit EVENT_BEAT_SS_ANNE_10_TRAINER_3 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SS_ANNE_10_TRAINER_3 - dw SSAnne10BattleText4 ; TextBeforeBattle - dw SSAnne10AfterBattleText4 ; TextAfterBattle - dw SSAnne10EndBattleText4 ; TextEndBattle - dw SSAnne10EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_SS_ANNE_10_TRAINER_3, 2, SSAnne10BattleText4, SSAnne10EndBattleText4, SSAnne10AfterBattleText4 SSAnne10TrainerHeader4: - dbEventFlagBit EVENT_BEAT_SS_ANNE_10_TRAINER_4 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SS_ANNE_10_TRAINER_4 - dw SSAnne10BattleText5 ; TextBeforeBattle - dw SSAnne10AfterBattleText5 ; TextAfterBattle - dw SSAnne10EndBattleText5 ; TextEndBattle - dw SSAnne10EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_SS_ANNE_10_TRAINER_4, 2, SSAnne10BattleText5, SSAnne10EndBattleText5, SSAnne10AfterBattleText5 SSAnne10TrainerHeader5: - dbEventFlagBit EVENT_BEAT_SS_ANNE_10_TRAINER_5 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SS_ANNE_10_TRAINER_5 - dw SSAnne10BattleText6 ; TextBeforeBattle - dw SSAnne10AfterBattleText6 ; TextAfterBattle - dw SSAnne10EndBattleText6 ; TextEndBattle - dw SSAnne10EndBattleText6 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_SS_ANNE_10_TRAINER_5, 3, SSAnne10BattleText6, SSAnne10EndBattleText6, SSAnne10AfterBattleText6 + db -1 ; end SSAnne10Text1: - TX_ASM + text_asm ld hl, SSAnne10TrainerHeader0 call TalkToTrainer jp TextScriptEnd SSAnne10Text2: - TX_ASM + text_asm ld hl, SSAnne10TrainerHeader1 call TalkToTrainer jp TextScriptEnd SSAnne10Text3: - TX_ASM + text_asm ld hl, SSAnne10TrainerHeader2 call TalkToTrainer jp TextScriptEnd SSAnne10Text4: - TX_ASM + text_asm ld hl, SSAnne10TrainerHeader3 call TalkToTrainer jp TextScriptEnd SSAnne10Text5: - TX_ASM + text_asm ld hl, SSAnne10TrainerHeader4 call TalkToTrainer jp TextScriptEnd SSAnne10Text6: - TX_ASM + text_asm ld hl, SSAnne10TrainerHeader5 call TalkToTrainer jp TextScriptEnd SSAnne10Text8: - TX_FAR _SSAnne10Text8 - TX_ASM + text_far _SSAnne10Text8 + text_asm ld a, MACHOKE call PlayCry jp TextScriptEnd SSAnne10BattleText1: - TX_FAR _SSAnne10BattleText1 - db "@" + text_far _SSAnne10BattleText1 + text_end SSAnne10EndBattleText1: - TX_FAR _SSAnne10EndBattleText1 - db "@" + text_far _SSAnne10EndBattleText1 + text_end SSAnne10AfterBattleText1: - TX_FAR _SSAnne10AfterBattleText1 - db "@" + text_far _SSAnne10AfterBattleText1 + text_end SSAnne10BattleText2: - TX_FAR _SSAnne10BattleText2 - db "@" + text_far _SSAnne10BattleText2 + text_end SSAnne10EndBattleText2: - TX_FAR _SSAnne10EndBattleText2 - db "@" + text_far _SSAnne10EndBattleText2 + text_end SSAnne10AfterBattleText2: - TX_FAR _SSAnne10AfterBattleText2 - db "@" + text_far _SSAnne10AfterBattleText2 + text_end SSAnne10BattleText3: - TX_FAR _SSAnne10BattleText3 - db "@" + text_far _SSAnne10BattleText3 + text_end SSAnne10EndBattleText3: - TX_FAR _SSAnne10EndBattleText3 - db "@" + text_far _SSAnne10EndBattleText3 + text_end SSAnne10AfterBattleText3: - TX_FAR _SSAnne10AfterBattleText3 - db "@" + text_far _SSAnne10AfterBattleText3 + text_end SSAnne10BattleText4: - TX_FAR _SSAnne10BattleText4 - db "@" + text_far _SSAnne10BattleText4 + text_end SSAnne10EndBattleText4: - TX_FAR _SSAnne10EndBattleText4 - db "@" + text_far _SSAnne10EndBattleText4 + text_end SSAnne10AfterBattleText4: - TX_FAR _SSAnne10AfterBattleText4 - db "@" + text_far _SSAnne10AfterBattleText4 + text_end SSAnne10BattleText5: - TX_FAR _SSAnne10BattleText5 - db "@" + text_far _SSAnne10BattleText5 + text_end SSAnne10EndBattleText5: - TX_FAR _SSAnne10EndBattleText5 - db "@" + text_far _SSAnne10EndBattleText5 + text_end SSAnne10AfterBattleText5: - TX_FAR _SSAnne10AfterBattleText5 - db "@" + text_far _SSAnne10AfterBattleText5 + text_end SSAnne10BattleText6: - TX_FAR _SSAnne10BattleText6 - db "@" + text_far _SSAnne10BattleText6 + text_end SSAnne10EndBattleText6: - TX_FAR _SSAnne10EndBattleText6 - db "@" + text_far _SSAnne10EndBattleText6 + text_end SSAnne10AfterBattleText6: - TX_FAR _SSAnne10AfterBattleText6 - db "@" + text_far _SSAnne10AfterBattleText6 + text_end SSAnne10Text7: - TX_FAR _SSAnne10Text7 - db "@" + text_far _SSAnne10Text7 + text_end diff --git a/scripts/SSAnneBow.asm b/scripts/SSAnneBow.asm index 4569f0f8f..0621785de 100755 --- a/scripts/SSAnneBow.asm +++ b/scripts/SSAnneBow.asm @@ -20,69 +20,55 @@ SSAnneBow_TextPointers: dw SSAnne5Text5 SSAnne5TrainerHeader0: - dbEventFlagBit EVENT_BEAT_SS_ANNE_5_TRAINER_0 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SS_ANNE_5_TRAINER_0 - dw SSAnne5BattleText1 ; TextBeforeBattle - dw SSAnne5AfterBattleText1 ; TextAfterBattle - dw SSAnne5EndBattleText1 ; TextEndBattle - dw SSAnne5EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_SS_ANNE_5_TRAINER_0, 3, SSAnne5BattleText1, SSAnne5EndBattleText1, SSAnne5AfterBattleText1 SSAnne5TrainerHeader1: - dbEventFlagBit EVENT_BEAT_SS_ANNE_5_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SS_ANNE_5_TRAINER_1 - dw SSAnne5BattleText2 ; TextBeforeBattle - dw SSAnne5AfterBattleText2 ; TextAfterBattle - dw SSAnne5EndBattleText2 ; TextEndBattle - dw SSAnne5EndBattleText2 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_SS_ANNE_5_TRAINER_1, 3, SSAnne5BattleText2, SSAnne5EndBattleText2, SSAnne5AfterBattleText2 + db -1 ; end SSAnne5Text1: - TX_FAR _SSAnne5Text1 - db "@" + text_far _SSAnne5Text1 + text_end SSAnne5Text2: - TX_FAR _SSAnne5Text2 - db "@" + text_far _SSAnne5Text2 + text_end SSAnne5Text3: - TX_FAR _SSAnne5Text3 - db "@" + text_far _SSAnne5Text3 + text_end SSAnne5Text4: - TX_ASM + text_asm ld hl, SSAnne5TrainerHeader0 call TalkToTrainer jp TextScriptEnd SSAnne5BattleText1: - TX_FAR _SSAnne5BattleText1 - db "@" + text_far _SSAnne5BattleText1 + text_end SSAnne5EndBattleText1: - TX_FAR _SSAnne5EndBattleText1 - db "@" + text_far _SSAnne5EndBattleText1 + text_end SSAnne5AfterBattleText1: - TX_FAR _SSAnne5AfterBattleText1 - db "@" + text_far _SSAnne5AfterBattleText1 + text_end SSAnne5Text5: - TX_ASM + text_asm ld hl, SSAnne5TrainerHeader1 call TalkToTrainer jp TextScriptEnd SSAnne5BattleText2: - TX_FAR _SSAnne5BattleText2 - db "@" + text_far _SSAnne5BattleText2 + text_end SSAnne5EndBattleText2: - TX_FAR _SSAnne5EndBattleText2 - db "@" + text_far _SSAnne5EndBattleText2 + text_end SSAnne5AfterBattleText2: - TX_FAR _SSAnne5AfterBattleText2 - db "@" + text_far _SSAnne5AfterBattleText2 + text_end diff --git a/scripts/SSAnneCaptainsRoom.asm b/scripts/SSAnneCaptainsRoom.asm index 949181188..593cd872a 100755 --- a/scripts/SSAnneCaptainsRoom.asm +++ b/scripts/SSAnneCaptainsRoom.asm @@ -15,35 +15,35 @@ SSAnneCaptainsRoom_TextPointers: dw SSAnne7Text3 SSAnne7Text1: - TX_ASM + text_asm CheckEvent EVENT_GOT_HM01 - jr nz, .asm_797c4 + jr nz, .got_item ld hl, SSAnne7RubText call PrintText ld hl, ReceivingHM01Text call PrintText - lb bc, HM_01, 1 + lb bc, HM_CUT, 1 call GiveItem - jr nc, .BagFull + jr nc, .bag_full ld hl, ReceivedHM01Text call PrintText SetEvent EVENT_GOT_HM01 ld hl, wd72d res 5, [hl] - jr .asm_0faf5 -.BagFull + jr .done +.bag_full ld hl, HM01NoRoomText call PrintText - jr .asm_0faf5 -.asm_797c4 + jr .done +.got_item ld hl, SSAnne7Text_61932 call PrintText -.asm_0faf5 +.done jp TextScriptEnd SSAnne7RubText: - TX_FAR _SSAnne7RubText - TX_ASM + text_far _SSAnne7RubText + text_asm ld a, [wAudioROMBank] cp BANK(AudioEngine3) ld [wAudioSavedROMBank], a @@ -66,26 +66,26 @@ SSAnne7RubText: jp TextScriptEnd ReceivingHM01Text: - TX_FAR _ReceivingHM01Text - db "@" + text_far _ReceivingHM01Text + text_end ReceivedHM01Text: - TX_FAR _ReceivedHM01Text - TX_SFX_KEY_ITEM - db "@" + text_far _ReceivedHM01Text + sound_get_key_item + text_end SSAnne7Text_61932: - TX_FAR _SSAnne7Text_61932 - db "@" + text_far _SSAnne7Text_61932 + text_end HM01NoRoomText: - TX_FAR _HM01NoRoomText - db "@" + text_far _HM01NoRoomText + text_end SSAnne7Text2: - TX_FAR _SSAnne7Text2 - db "@" + text_far _SSAnne7Text2 + text_end SSAnne7Text3: - TX_FAR _SSAnne7Text3 - db "@" + text_far _SSAnne7Text3 + text_end diff --git a/scripts/SSAnneKitchen.asm b/scripts/SSAnneKitchen.asm index 137706a0a..30a9830f0 100755 --- a/scripts/SSAnneKitchen.asm +++ b/scripts/SSAnneKitchen.asm @@ -12,61 +12,61 @@ SSAnneKitchen_TextPointers: dw SSAnne6Text7 SSAnne6Text1: - TX_FAR _SSAnne6Text1 - db "@" + text_far _SSAnne6Text1 + text_end SSAnne6Text2: - TX_FAR _SSAnne6Text2 - db "@" + text_far _SSAnne6Text2 + text_end SSAnne6Text3: - TX_FAR _SSAnne6Text3 - db "@" + text_far _SSAnne6Text3 + text_end SSAnne6Text4: - TX_FAR _SSAnne6Text4 - db "@" + text_far _SSAnne6Text4 + text_end SSAnne6Text5: - TX_FAR _SSAnne6Text5 - db "@" + text_far _SSAnne6Text5 + text_end SSAnne6Text6: - TX_FAR _SSAnne6Text6 - db "@" + text_far _SSAnne6Text6 + text_end SSAnne6Text7: - TX_ASM + text_asm ld hl, SSAnne6Text_61807 call PrintText - ld a, [hRandomAdd] + ldh a, [hRandomAdd] bit 7, a - jr z, .asm_93eb1 + jr z, .not_dialog_1 ld hl, SSAnne6Text_6180c - jr .asm_63292 -.asm_93eb1 + jr .done +.not_dialog_1 bit 4, a - jr z, .asm_7436c + jr z, .not_dialog_2 ld hl, SSAnne6Text_61811 - jr .asm_63292 -.asm_7436c + jr .done +.not_dialog_2 ld hl, SSAnne6Text_61816 -.asm_63292 +.done call PrintText jp TextScriptEnd SSAnne6Text_61807: - TX_FAR _SSAnne6Text_61807 - db "@" + text_far _SSAnne6Text_61807 + text_end SSAnne6Text_6180c: - TX_FAR _SSAnne6Text_6180c - db "@" + text_far _SSAnne6Text_6180c + text_end SSAnne6Text_61811: - TX_FAR _SSAnne6Text_61811 - db "@" + text_far _SSAnne6Text_61811 + text_end SSAnne6Text_61816: - TX_FAR _SSAnne6Text_61816 - db "@" + text_far _SSAnne6Text_61816 + text_end diff --git a/scripts/SafariZoneCenter.asm b/scripts/SafariZoneCenter.asm index 0a2668870..1e7db2435 100755 --- a/scripts/SafariZoneCenter.asm +++ b/scripts/SafariZoneCenter.asm @@ -7,9 +7,9 @@ SafariZoneCenter_TextPointers: dw SafariZoneCenterText3 SafariZoneCenterText2: - TX_FAR _SafariZoneCenterText2 - db "@" + text_far _SafariZoneCenterText2 + text_end SafariZoneCenterText3: - TX_FAR _SafariZoneCenterText3 - db "@" + text_far _SafariZoneCenterText3 + text_end diff --git a/scripts/SafariZoneCenterRestHouse.asm b/scripts/SafariZoneCenterRestHouse.asm index a652644bd..a03823cce 100755 --- a/scripts/SafariZoneCenterRestHouse.asm +++ b/scripts/SafariZoneCenterRestHouse.asm @@ -6,9 +6,9 @@ SafariZoneCenterRestHouse_TextPointers: dw SafariZoneRestHouse1Text2 SafariZoneRestHouse1Text1: - TX_FAR _SafariZoneRestHouse1Text1 - db "@" + text_far _SafariZoneRestHouse1Text1 + text_end SafariZoneRestHouse1Text2: - TX_FAR _SafariZoneRestHouse1Text2 - db "@" + text_far _SafariZoneRestHouse1Text2 + text_end diff --git a/scripts/SafariZoneEast.asm b/scripts/SafariZoneEast.asm index 7f4a5543c..062eeab1e 100755 --- a/scripts/SafariZoneEast.asm +++ b/scripts/SafariZoneEast.asm @@ -11,13 +11,13 @@ SafariZoneEast_TextPointers: dw SafariZoneEastText7 SafariZoneEastText5: - TX_FAR _SafariZoneEastText5 - db "@" + text_far _SafariZoneEastText5 + text_end SafariZoneEastText6: - TX_FAR _SafariZoneEastText6 - db "@" + text_far _SafariZoneEastText6 + text_end SafariZoneEastText7: - TX_FAR _SafariZoneEastText7 - db "@" + text_far _SafariZoneEastText7 + text_end diff --git a/scripts/SafariZoneEastRestHouse.asm b/scripts/SafariZoneEastRestHouse.asm index 24141459a..03655d699 100755 --- a/scripts/SafariZoneEastRestHouse.asm +++ b/scripts/SafariZoneEastRestHouse.asm @@ -8,13 +8,13 @@ SafariZoneEastRestHouse_TextPointers: dw SafariZoneRestHouse3Text3 SafariZoneRestHouse3Text1: - TX_FAR _SafariZoneRestHouse3Text1 - db "@" + text_far _SafariZoneRestHouse3Text1 + text_end SafariZoneRestHouse3Text2: - TX_FAR _SafariZoneRestHouse3Text2 - db "@" + text_far _SafariZoneRestHouse3Text2 + text_end SafariZoneRestHouse3Text3: - TX_FAR _SafariZoneRestHouse3Text3 - db "@" + text_far _SafariZoneRestHouse3Text3 + text_end diff --git a/scripts/SafariZoneGate.asm b/scripts/SafariZoneGate.asm index 217001dd1..9e4cc5dd7 100755 --- a/scripts/SafariZoneGate.asm +++ b/scripts/SafariZoneGate.asm @@ -19,12 +19,12 @@ SafariZoneGate_ScriptPointers: call ArePlayerCoordsInArray ret nc ld a, $3 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff ld [wJoyIgnore], a xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, SPRITE_FACING_RIGHT ld [wSpritePlayerStateData1FacingDirection], a ld a, [wCoordIndex] @@ -44,20 +44,20 @@ SafariZoneGate_ScriptPointers: ret .CoordsData_75221: - db $02, $03 - db $02, $04 - db $FF + dbmapcoord 3, 2 + dbmapcoord 4, 2 + db -1 ; end .SafariZoneEntranceScript1 call SafariZoneEntranceScript_752b4 ret nz .SafariZoneEntranceScript2 xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld [wJoyIgnore], a call UpdateSprites ld a, $4 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $ff ld [wJoyIgnore], a @@ -82,7 +82,7 @@ SafariZoneGate_ScriptPointers: ld a, $f0 ld [wJoyIgnore], a ld a, $6 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wNumSafariBalls], a @@ -96,7 +96,7 @@ SafariZoneGate_ScriptPointers: jr .asm_75286 .asm_7527f ld a, $5 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID .asm_75286 ret @@ -142,17 +142,17 @@ SafariZoneGate_TextPointers: dw .SafariZoneEntranceText6 .SafariZoneEntranceText1 - TX_FAR _SafariZoneEntranceText1 - db "@" + text_far _SafariZoneEntranceText1 + text_end .SafariZoneEntranceText4 - TX_ASM - callab Func_f1f77 + text_asm + callfar Func_f1f77 jp TextScriptEnd .SafariZoneEntranceText5 - TX_FAR SafariZoneEntranceText_9e814 - TX_ASM + text_far SafariZoneEntranceText_9e814 + text_asm call YesNoChoice ld a, [wCurrentMenuItem] and a @@ -184,18 +184,18 @@ SafariZoneGate_TextPointers: jp TextScriptEnd .SafariZoneEntranceText_753bb - TX_FAR _SafariZoneEntranceText_753bb - db "@" + text_far _SafariZoneEntranceText_753bb + text_end .SafariZoneEntranceText_753c0 - TX_FAR _SafariZoneEntranceText_753c0 - db "@" + text_far _SafariZoneEntranceText_753c0 + text_end .SafariZoneEntranceText6 - TX_FAR _SafariZoneEntranceText_753c5 - db "@" + text_far _SafariZoneEntranceText_753c5 + text_end .SafariZoneEntranceText2 - TX_ASM - callab Func_f203e + text_asm + callfar Func_f203e jp TextScriptEnd diff --git a/scripts/SafariZoneGate2.asm b/scripts/SafariZoneGate2.asm index a99bad6af..6187b2c6f 100755 --- a/scripts/SafariZoneGate2.asm +++ b/scripts/SafariZoneGate2.asm @@ -1,4 +1,4 @@ -Func_f1f77: +Func_f1f77:: ld hl, .WelcomeText call PrintText ld a, MONEY_BOX @@ -20,11 +20,11 @@ Func_f1f77: .has_positive_balance xor a - ld [hMoney], a + ldh [hMoney], a ld a, $5 - ld [hMoney + 1], a + ldh [hMoney + 1], a ld a, $0 - ld [hMoney + 2], a + ldh [hMoney + 2], a call HasEnoughMoney jr nc, .has_enough_money ld hl, .NotEnoughMoneyText @@ -81,24 +81,24 @@ Func_f1f77: ret .WelcomeText - TX_FAR SafariZoneEntranceText_9e6e4 - db "@" + text_far SafariZoneEntranceText_9e6e4 + text_end .MakePaymentText - TX_FAR SafariZoneEntranceText_9e747 - TX_SFX_ITEM_1 - TX_FAR _SafariZoneEntranceText_75360 - db "@" + text_far SafariZoneEntranceText_9e747 + sound_get_item_1 + text_far _SafariZoneEntranceText_75360 + text_end .PleaseComeAgainText - TX_FAR _SafariZoneEntranceText_75365 - db "@" + text_far _SafariZoneEntranceText_75365 + text_end .NotEnoughMoneyText - TX_FAR _SafariZoneEntranceText_7536a - db "@" + text_far _SafariZoneEntranceText_7536a + text_end -Func_f203e: +Func_f203e:: ld hl, .FirstTimeQuestionText call PrintText call YesNoChoice @@ -112,16 +112,16 @@ Func_f203e: ret .FirstTimeQuestionText - TX_FAR _SafariZoneEntranceText_753e6 - db "@" + text_far _SafariZoneEntranceText_753e6 + text_end .ExplanationText - TX_FAR _SafariZoneEntranceText_753eb - db "@" + text_far _SafariZoneEntranceText_753eb + text_end .RegularText - TX_FAR _SafariZoneEntranceText_753f0 - db "@" + text_far _SafariZoneEntranceText_753f0 + text_end SafariZoneEntranceStartSimulatingJoypadStates: push af @@ -139,12 +139,12 @@ SafariZoneEntranceCalculateLowCostAdmission: ld bc, $3 call CopyData xor a - ld [hDivideBCDDivisor], a - ld [hDivideBCDDivisor + 1], a + ldh [hDivideBCDDivisor], a + ldh [hDivideBCDDivisor + 1], a ld a, 23 - ld [hDivideBCDDivisor + 2], a + ldh [hDivideBCDDivisor + 2], a predef DivideBCDPredef3 - ld a, [hDivideBCDQuotient + 2] + ldh a, [hDivideBCDQuotient + 2] call SafariZoneEntranceConvertBCDtoNumber push af ld hl, wPlayerMoney @@ -171,12 +171,12 @@ SafariZoneEntranceCalculateLowCostAdmission: ret SafariZoneEntranceText_f20c4: - TX_FAR _SafariZoneLowCostText1 - db "@" + text_far _SafariZoneLowCostText1 + text_end SafariZoneEntranceText_f20c9: - TX_FAR _SafariZoneLowCostText2 - db "@" + text_far _SafariZoneLowCostText2 + text_end SafariZoneEntranceGetLowCostAdmissionText: ld hl, wSafariSteps @@ -207,10 +207,10 @@ SafariZoneEntranceGetLowCostAdmissionText: ret SafariZoneEntranceText_f20f6: - TX_FAR _SafariZoneLowCostText3 - TX_SFX_ITEM_1 - TX_FAR _SafariZoneLowCostText4 - db "@" + text_far _SafariZoneLowCostText3 + sound_get_item_1 + text_far _SafariZoneLowCostText4 + text_end Pointers_f2100: dw SafariZoneEntranceText_f210a @@ -220,20 +220,20 @@ Pointers_f2100: dw SafariZoneEntranceText_f2119 SafariZoneEntranceText_f210a: - TX_FAR _SafariZoneLowCostText5 - db "@" + text_far _SafariZoneLowCostText5 + text_end SafariZoneEntranceText_f210f: - TX_FAR _SafariZoneLowCostText6 - db "@" + text_far _SafariZoneLowCostText6 + text_end SafariZoneEntranceText_f2114: - TX_FAR _SafariZoneLowCostText7 - db "@" + text_far _SafariZoneLowCostText7 + text_end SafariZoneEntranceText_f2119: - TX_FAR _SafariZoneLowCostText8 - db "@" + text_far _SafariZoneLowCostText8 + text_end SafariZoneEntranceConvertBCDtoNumber: push hl diff --git a/scripts/SafariZoneNorth.asm b/scripts/SafariZoneNorth.asm index 734328b4d..aaf39ea25 100755 --- a/scripts/SafariZoneNorth.asm +++ b/scripts/SafariZoneNorth.asm @@ -11,21 +11,21 @@ SafariZoneNorth_TextPointers: dw SafariZoneNorthText7 SafariZoneNorthText3: - TX_FAR _SafariZoneNorthText3 - db "@" + text_far _SafariZoneNorthText3 + text_end SafariZoneNorthText4: - TX_FAR _SafariZoneNorthText4 - db "@" + text_far _SafariZoneNorthText4 + text_end SafariZoneNorthText5: - TX_FAR _SafariZoneNorthText5 - db "@" + text_far _SafariZoneNorthText5 + text_end SafariZoneNorthText6: - TX_FAR _SafariZoneNorthText6 - db "@" + text_far _SafariZoneNorthText6 + text_end SafariZoneNorthText7: - TX_FAR _SafariZoneNorthText7 - db "@" + text_far _SafariZoneNorthText7 + text_end diff --git a/scripts/SafariZoneNorthRestHouse.asm b/scripts/SafariZoneNorthRestHouse.asm index fdc438f44..b7a690a1d 100755 --- a/scripts/SafariZoneNorthRestHouse.asm +++ b/scripts/SafariZoneNorthRestHouse.asm @@ -8,13 +8,13 @@ SafariZoneNorthRestHouse_TextPointers: dw SafariZoneRestHouse4Text3 SafariZoneRestHouse4Text1: - TX_FAR _SafariZoneRestHouse4Text1 - db "@" + text_far _SafariZoneRestHouse4Text1 + text_end SafariZoneRestHouse4Text2: - TX_FAR _SafariZoneRestHouse4Text2 - db "@" + text_far _SafariZoneRestHouse4Text2 + text_end SafariZoneRestHouse4Text3: - TX_FAR _SafariZoneRestHouse4Text3 - db "@" + text_far _SafariZoneRestHouse4Text3 + text_end diff --git a/scripts/SafariZoneSecretHouse.asm b/scripts/SafariZoneSecretHouse.asm index 2d9b23050..6eeff8adb 100755 --- a/scripts/SafariZoneSecretHouse.asm +++ b/scripts/SafariZoneSecretHouse.asm @@ -5,41 +5,41 @@ SafariZoneSecretHouse_TextPointers: dw SafariZoneSecretHouseText1 SafariZoneSecretHouseText1: - TX_ASM + text_asm CheckEvent EVENT_GOT_HM03 - jr nz, .asm_20a9b + jr nz, .got_item ld hl, SafariZoneSecretHouseText_4a350 call PrintText - lb bc, HM_03, 1 + lb bc, HM_SURF, 1 call GiveItem - jr nc, .BagFull + jr nc, .bag_full ld hl, ReceivedHM03Text call PrintText SetEvent EVENT_GOT_HM03 - jr .asm_8f1fc -.BagFull + jr .done +.bag_full ld hl, HM03NoRoomText call PrintText - jr .asm_8f1fc -.asm_20a9b + jr .done +.got_item ld hl, HM03ExplanationText call PrintText -.asm_8f1fc +.done jp TextScriptEnd SafariZoneSecretHouseText_4a350: - TX_FAR _SecretHouseText_4a350 - db "@" + text_far _SecretHouseText_4a350 + text_end ReceivedHM03Text: - TX_FAR _ReceivedHM03Text - TX_SFX_ITEM_1 - db "@" + text_far _ReceivedHM03Text + sound_get_item_1 + text_end HM03ExplanationText: - TX_FAR _HM03ExplanationText - db "@" + text_far _HM03ExplanationText + text_end HM03NoRoomText: - TX_FAR _HM03NoRoomText - db "@" + text_far _HM03NoRoomText + text_end diff --git a/scripts/SafariZoneWest.asm b/scripts/SafariZoneWest.asm index 483a92ee0..7ae0807d9 100755 --- a/scripts/SafariZoneWest.asm +++ b/scripts/SafariZoneWest.asm @@ -12,17 +12,17 @@ SafariZoneWest_TextPointers: dw SafariZoneWestText8 SafariZoneWestText5: - TX_FAR _SafariZoneWestText5 - db "@" + text_far _SafariZoneWestText5 + text_end SafariZoneWestText6: - TX_FAR _SafariZoneWestText6 - db "@" + text_far _SafariZoneWestText6 + text_end SafariZoneWestText7: - TX_FAR _SafariZoneWestText7 - db "@" + text_far _SafariZoneWestText7 + text_end SafariZoneWestText8: - TX_FAR _SafariZoneWestText8 - db "@" + text_far _SafariZoneWestText8 + text_end diff --git a/scripts/SafariZoneWestRestHouse.asm b/scripts/SafariZoneWestRestHouse.asm index 371bd56c1..74ad98fe3 100755 --- a/scripts/SafariZoneWestRestHouse.asm +++ b/scripts/SafariZoneWestRestHouse.asm @@ -8,13 +8,13 @@ SafariZoneWestRestHouse_TextPointers: dw SafariZoneRestHouse2Text3 SafariZoneRestHouse2Text1: - TX_FAR _SafariZoneRestHouse2Text1 - db "@" + text_far _SafariZoneRestHouse2Text1 + text_end SafariZoneRestHouse2Text2: - TX_FAR _SafariZoneRestHouse2Text2 - db "@" + text_far _SafariZoneRestHouse2Text2 + text_end SafariZoneRestHouse2Text3: - TX_FAR _SafariZoneRestHouse2Text3 - db "@" + text_far _SafariZoneRestHouse2Text3 + text_end diff --git a/scripts/SaffronCity.asm b/scripts/SaffronCity.asm index 02e6e2bb8..849825349 100755 --- a/scripts/SaffronCity.asm +++ b/scripts/SaffronCity.asm @@ -29,94 +29,94 @@ SaffronCity_TextPointers: dw SaffronCityText25 SaffronCityText1: - TX_FAR _SaffronCityText1 - db "@" + text_far _SaffronCityText1 + text_end SaffronCityText2: - TX_FAR _SaffronCityText2 - db "@" + text_far _SaffronCityText2 + text_end SaffronCityText3: - TX_FAR _SaffronCityText3 - db "@" + text_far _SaffronCityText3 + text_end SaffronCityText4: - TX_FAR _SaffronCityText4 - db "@" + text_far _SaffronCityText4 + text_end SaffronCityText5: - TX_FAR _SaffronCityText5 - db "@" + text_far _SaffronCityText5 + text_end SaffronCityText6: - TX_FAR _SaffronCityText6 - db "@" + text_far _SaffronCityText6 + text_end SaffronCityText7: - TX_FAR _SaffronCityText7 - db "@" + text_far _SaffronCityText7 + text_end SaffronCityText8: - TX_FAR _SaffronCityText8 - db "@" + text_far _SaffronCityText8 + text_end SaffronCityText9: - TX_FAR _SaffronCityText9 - db "@" + text_far _SaffronCityText9 + text_end SaffronCityText10: - TX_FAR _SaffronCityText10 - db "@" + text_far _SaffronCityText10 + text_end SaffronCityText11: - TX_FAR _SaffronCityText11 - db "@" + text_far _SaffronCityText11 + text_end SaffronCityText12: - TX_FAR _SaffronCityText12 - TX_CRY_PIDGEOT - db "@" + text_far _SaffronCityText12 + sound_cry_pidgeot + text_end SaffronCityText13: - TX_FAR _SaffronCityText13 - db "@" + text_far _SaffronCityText13 + text_end SaffronCityText14: - TX_FAR _SaffronCityText14 - db "@" + text_far _SaffronCityText14 + text_end SaffronCityText15: - TX_FAR _SaffronCityText15 - db "@" + text_far _SaffronCityText15 + text_end SaffronCityText16: - TX_FAR _SaffronCityText16 - db "@" + text_far _SaffronCityText16 + text_end SaffronCityText17: - TX_FAR _SaffronCityText17 - db "@" + text_far _SaffronCityText17 + text_end SaffronCityText18: - TX_FAR _SaffronCityText18 - db "@" + text_far _SaffronCityText18 + text_end SaffronCityText20: - TX_FAR _SaffronCityText20 - db "@" + text_far _SaffronCityText20 + text_end SaffronCityText21: - TX_FAR _SaffronCityText21 - db "@" + text_far _SaffronCityText21 + text_end SaffronCityText22: - TX_FAR _SaffronCityText22 - db "@" + text_far _SaffronCityText22 + text_end SaffronCityText24: - TX_FAR _SaffronCityText24 - db "@" + text_far _SaffronCityText24 + text_end SaffronCityText25: - TX_FAR _SaffronCityText25 - db "@" + text_far _SaffronCityText25 + text_end diff --git a/scripts/SaffronGym.asm b/scripts/SaffronGym.asm index 0539d6131..f90bba654 100755 --- a/scripts/SaffronGym.asm +++ b/scripts/SaffronGym.asm @@ -2,7 +2,7 @@ SaffronGym_Script: ld hl, wCurrentMapScriptFlags bit 6, [hl] res 6, [hl] - call nz, .extra + call nz, .LoadNames call EnableAutoTextBoxDrawing ld hl, SaffronGymTrainerHeader0 ld de, SaffronGym_ScriptPointers @@ -11,15 +11,15 @@ SaffronGym_Script: ld [wSaffronGymCurScript], a ret -.extra - ld hl, Gym6CityName - ld de, Gym6LeaderName +.LoadNames: + ld hl, .CityName + ld de, .LeaderName jp LoadGymLeaderAndCityName -Gym6CityName: +.CityName: db "SAFFRON CITY@" -Gym6LeaderName: +.LeaderName: db "SABRINA@" SaffronGymText_5d048: @@ -44,26 +44,26 @@ SaffronGymScript3: SaffronGymText_5d068: ld a, $a - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_BEAT_SABRINA - lb bc, TM_46, 1 + lb bc, TM_PSYWAVE, 1 call GiveItem jr nc, .BagFull ld a, $b - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_GOT_TM46 jr .gymVictory .BagFull ld a, $c - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID .gymVictory ld hl, wObtainedBadges - set 5, [hl] + set BIT_MARSHBADGE, [hl] ld hl, wBeatGymFlags - set 5, [hl] + set BIT_MARSHBADGE, [hl] ; deactivate gym trainers SetEventRange EVENT_BEAT_SAFFRON_GYM_TRAINER_0, EVENT_BEAT_SAFFRON_GYM_TRAINER_6 @@ -85,72 +85,23 @@ SaffronGym_TextPointers: dw SaffronGymText12 SaffronGymTrainerHeader0: - dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_0 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_0 - dw SaffronGymBattleText1 ; TextBeforeBattle - dw SaffronGymAfterBattleText1 ; TextAfterBattle - dw SaffronGymEndBattleText1 ; TextEndBattle - dw SaffronGymEndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_0, 3, SaffronGymBattleText1, SaffronGymEndBattleText1, SaffronGymAfterBattleText1 SaffronGymTrainerHeader1: - dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_1 - dw SaffronGymBattleText2 ; TextBeforeBattle - dw SaffronGymAfterBattleText2 ; TextAfterBattle - dw SaffronGymEndBattleText2 ; TextEndBattle - dw SaffronGymEndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_1, 3, SaffronGymBattleText2, SaffronGymEndBattleText2, SaffronGymAfterBattleText2 SaffronGymTrainerHeader2: - dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_2 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_2 - dw SaffronGymBattleText3 ; TextBeforeBattle - dw SaffronGymAfterBattleText3 ; TextAfterBattle - dw SaffronGymEndBattleText3 ; TextEndBattle - dw SaffronGymEndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_2, 3, SaffronGymBattleText3, SaffronGymEndBattleText3, SaffronGymAfterBattleText3 SaffronGymTrainerHeader3: - dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_3 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_3 - dw SaffronGymBattleText4 ; TextBeforeBattle - dw SaffronGymAfterBattleText4 ; TextAfterBattle - dw SaffronGymEndBattleText4 ; TextEndBattle - dw SaffronGymEndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_3, 3, SaffronGymBattleText4, SaffronGymEndBattleText4, SaffronGymAfterBattleText4 SaffronGymTrainerHeader4: - dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_4 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_4 - dw SaffronGymBattleText5 ; TextBeforeBattle - dw SaffronGymAfterBattleText5 ; TextAfterBattle - dw SaffronGymEndBattleText5 ; TextEndBattle - dw SaffronGymEndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_4, 3, SaffronGymBattleText5, SaffronGymEndBattleText5, SaffronGymAfterBattleText5 SaffronGymTrainerHeader5: - dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_5 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_5 - dw SaffronGymBattleText6 ; TextBeforeBattle - dw SaffronGymAfterBattleText6 ; TextAfterBattle - dw SaffronGymEndBattleText6 ; TextEndBattle - dw SaffronGymEndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_5, 3, SaffronGymBattleText6, SaffronGymEndBattleText6, SaffronGymAfterBattleText6 SaffronGymTrainerHeader6: - dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_6, 1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_6, 1 - dw SaffronGymBattleText7 ; TextBeforeBattle - dw SaffronGymAfterBattleText7 ; TextAfterBattle - dw SaffronGymEndBattleText7 ; TextEndBattle - dw SaffronGymEndBattleText7 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_SAFFRON_GYM_TRAINER_6, 1, 3, SaffronGymBattleText7, SaffronGymEndBattleText7, SaffronGymAfterBattleText7 + db -1 ; end SaffronGymText1: - TX_ASM + text_asm CheckEvent EVENT_BEAT_SABRINA jr z, .beginBattle CheckEventReuseA EVENT_GOT_TM46 @@ -171,7 +122,7 @@ SaffronGymText1: ld hl, SaffronGymText_5d167 ld de, SaffronGymText_5d167 call SaveEndBattleTextPointers - ld a, [H_SPRITEINDEX] + ldh a, [hSpriteIndex] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters @@ -183,77 +134,77 @@ SaffronGymText1: jp TextScriptEnd SaffronGymText_5d162: - TX_FAR _SaffronGymText_5d162 - db "@" + text_far _SaffronGymText_5d162 + text_end SaffronGymText_5d167: - TX_FAR _SaffronGymText_5d167 - TX_SFX_KEY_ITEM ; actually plays the second channel of SFX_BALL_POOF due to the wrong music bank being loaded - TX_BLINK - db "@" + text_far _SaffronGymText_5d167 + sound_get_key_item ; actually plays the second channel of SFX_BALL_POOF due to the wrong music bank being loaded + text_promptbutton + text_end SaffronGymText_5d16e: - TX_FAR _SaffronGymText_5d16e - db "@" + text_far _SaffronGymText_5d16e + text_end SaffronGymText10: - TX_FAR _SaffronGymText_5d173 - db "@" + text_far _SaffronGymText_5d173 + text_end SaffronGymText11: - TX_FAR ReceivedTM46Text - TX_SFX_ITEM_1 - TX_FAR _TM46ExplanationText - db "@" + text_far ReceivedTM46Text + sound_get_item_1 + text_far _TM46ExplanationText + text_end SaffronGymText12: - TX_FAR _TM46NoRoomText - db "@" + text_far _TM46NoRoomText + text_end SaffronGymText2: - TX_ASM + text_asm ld hl, SaffronGymTrainerHeader0 call TalkToTrainer jp TextScriptEnd SaffronGymText3: - TX_ASM + text_asm ld hl, SaffronGymTrainerHeader1 call TalkToTrainer jp TextScriptEnd SaffronGymText4: - TX_ASM + text_asm ld hl, SaffronGymTrainerHeader2 call TalkToTrainer jp TextScriptEnd SaffronGymText5: - TX_ASM + text_asm ld hl, SaffronGymTrainerHeader3 call TalkToTrainer jp TextScriptEnd SaffronGymText6: - TX_ASM + text_asm ld hl, SaffronGymTrainerHeader4 call TalkToTrainer jp TextScriptEnd SaffronGymText7: - TX_ASM + text_asm ld hl, SaffronGymTrainerHeader5 call TalkToTrainer jp TextScriptEnd SaffronGymText8: - TX_ASM + text_asm ld hl, SaffronGymTrainerHeader6 call TalkToTrainer jp TextScriptEnd SaffronGymText9: - TX_ASM + text_asm CheckEvent EVENT_BEAT_SABRINA jr nz, .asm_5d1dd ld hl, SaffronGymText_5d1e6 @@ -266,93 +217,93 @@ SaffronGymText9: jp TextScriptEnd SaffronGymText_5d1e6: - TX_FAR _SaffronGymText_5d1e6 - db "@" + text_far _SaffronGymText_5d1e6 + text_end SaffronGymText_5d1eb: - TX_FAR _SaffronGymText_5d1eb - db "@" + text_far _SaffronGymText_5d1eb + text_end SaffronGymBattleText1: - TX_FAR _SaffronGymBattleText1 - db "@" + text_far _SaffronGymBattleText1 + text_end SaffronGymEndBattleText1: - TX_FAR _SaffronGymEndBattleText1 - db "@" + text_far _SaffronGymEndBattleText1 + text_end SaffronGymAfterBattleText1: - TX_FAR _SaffronGymAfterBattleText1 - db "@" + text_far _SaffronGymAfterBattleText1 + text_end SaffronGymBattleText2: - TX_FAR _SaffronGymBattleText2 - db "@" + text_far _SaffronGymBattleText2 + text_end SaffronGymEndBattleText2: - TX_FAR _SaffronGymEndBattleText2 - db "@" + text_far _SaffronGymEndBattleText2 + text_end SaffronGymAfterBattleText2: - TX_FAR _SaffronGymAfterBattleText2 - db "@" + text_far _SaffronGymAfterBattleText2 + text_end SaffronGymBattleText3: - TX_FAR _SaffronGymBattleText3 - db "@" + text_far _SaffronGymBattleText3 + text_end SaffronGymEndBattleText3: - TX_FAR _SaffronGymEndBattleText3 - db "@" + text_far _SaffronGymEndBattleText3 + text_end SaffronGymAfterBattleText3: - TX_FAR _SaffronGymAfterBattleText3 - db "@" + text_far _SaffronGymAfterBattleText3 + text_end SaffronGymBattleText4: - TX_FAR _SaffronGymBattleText4 - db "@" + text_far _SaffronGymBattleText4 + text_end SaffronGymEndBattleText4: - TX_FAR _SaffronGymEndBattleText4 - db "@" + text_far _SaffronGymEndBattleText4 + text_end SaffronGymAfterBattleText4: - TX_FAR _SaffronGymAfterBattleText4 - db "@" + text_far _SaffronGymAfterBattleText4 + text_end SaffronGymBattleText5: - TX_FAR _SaffronGymBattleText5 - db "@" + text_far _SaffronGymBattleText5 + text_end SaffronGymEndBattleText5: - TX_FAR _SaffronGymEndBattleText5 - db "@" + text_far _SaffronGymEndBattleText5 + text_end SaffronGymAfterBattleText5: - TX_FAR _SaffronGymAfterBattleText5 - db "@" + text_far _SaffronGymAfterBattleText5 + text_end SaffronGymBattleText6: - TX_FAR _SaffronGymBattleText6 - db "@" + text_far _SaffronGymBattleText6 + text_end SaffronGymEndBattleText6: - TX_FAR _SaffronGymEndBattleText6 - db "@" + text_far _SaffronGymEndBattleText6 + text_end SaffronGymAfterBattleText6: - TX_FAR _SaffronGymAfterBattleText6 - db "@" + text_far _SaffronGymAfterBattleText6 + text_end SaffronGymBattleText7: - TX_FAR _SaffronGymBattleText7 - db "@" + text_far _SaffronGymBattleText7 + text_end SaffronGymEndBattleText7: - TX_FAR _SaffronGymEndBattleText7 - db "@" + text_far _SaffronGymEndBattleText7 + text_end SaffronGymAfterBattleText7: - TX_FAR _SaffronGymAfterBattleText7 - db "@" + text_far _SaffronGymAfterBattleText7 + text_end diff --git a/scripts/SaffronMart.asm b/scripts/SaffronMart.asm index ebb3cddfe..bfa47eb15 100755 --- a/scripts/SaffronMart.asm +++ b/scripts/SaffronMart.asm @@ -7,9 +7,9 @@ SaffronMart_TextPointers: dw SaffronMartText3 SaffronMartText2: - TX_FAR _SaffronMartText2 - db "@" + text_far _SaffronMartText2 + text_end SaffronMartText3: - TX_FAR _SaffronMartText3 - db "@" + text_far _SaffronMartText3 + text_end diff --git a/scripts/SaffronPidgeyHouse.asm b/scripts/SaffronPidgeyHouse.asm index f38fbfdbf..90078e81a 100755 --- a/scripts/SaffronPidgeyHouse.asm +++ b/scripts/SaffronPidgeyHouse.asm @@ -8,20 +8,20 @@ SaffronPidgeyHouse_TextPointers: dw SaffronHouse1Text4 SaffronHouse1Text1: - TX_FAR _SaffronHouse1Text1 - db "@" + text_far _SaffronHouse1Text1 + text_end SaffronHouse1Text2: - TX_FAR _SaffronHouse1Text2 - TX_ASM + text_far _SaffronHouse1Text2 + text_asm ld a, PIDGEY call PlayCry jp TextScriptEnd SaffronHouse1Text3: - TX_FAR _SaffronHouse1Text3 - db "@" + text_far _SaffronHouse1Text3 + text_end SaffronHouse1Text4: - TX_FAR _SaffronHouse1Text4 - db "@" + text_far _SaffronHouse1Text4 + text_end diff --git a/scripts/SaffronPokecenter.asm b/scripts/SaffronPokecenter.asm index 435367ea3..f4d9f1924 100755 --- a/scripts/SaffronPokecenter.asm +++ b/scripts/SaffronPokecenter.asm @@ -10,20 +10,20 @@ SaffronPokecenter_TextPointers: dw SaffronPokecenterText5 SaffronHealNurseText: - TX_POKECENTER_NURSE + script_pokecenter_nurse SaffronPokecenterText2: - TX_FAR _SaffronPokecenterText2 - db "@" + text_far _SaffronPokecenterText2 + text_end SaffronPokecenterText3: - TX_FAR _SaffronPokecenterText3 - db "@" + text_far _SaffronPokecenterText3 + text_end SaffronTradeNurseText: - TX_CABLE_CLUB_RECEPTIONIST + script_cable_club_receptionist SaffronPokecenterText5: - TX_ASM - callab PokecenterChanseyText + text_asm + callfar PokecenterChanseyText jp TextScriptEnd diff --git a/scripts/SeafoamIslands1F.asm b/scripts/SeafoamIslands1F.asm index b024a6bd9..ceb2a2fb9 100755 --- a/scripts/SeafoamIslands1F.asm +++ b/scripts/SeafoamIslands1F.asm @@ -38,9 +38,9 @@ SeafoamIslands1F_Script: jp IsPlayerOnDungeonWarp Seafoam1HolesCoords: - db $06,$11 - db $06,$18 - db $ff + dbmapcoord 17, 6 + dbmapcoord 24, 6 + db -1 ; end SeafoamIslands1F_TextPointers: dw BoulderText diff --git a/scripts/SeafoamIslandsB1F.asm b/scripts/SeafoamIslandsB1F.asm index a4c5767ba..ac6675137 100755 --- a/scripts/SeafoamIslandsB1F.asm +++ b/scripts/SeafoamIslandsB1F.asm @@ -37,9 +37,9 @@ SeafoamIslandsB1F_Script: jp IsPlayerOnDungeonWarp Seafoam2HolesCoords: - db $06,$12 - db $06,$17 - db $ff + dbmapcoord 18, 6 + dbmapcoord 23, 6 + db -1 ; end SeafoamIslandsB1F_TextPointers: dw BoulderText diff --git a/scripts/SeafoamIslandsB2F.asm b/scripts/SeafoamIslandsB2F.asm index eb6d2437e..fe4b3ead6 100755 --- a/scripts/SeafoamIslandsB2F.asm +++ b/scripts/SeafoamIslandsB2F.asm @@ -37,9 +37,9 @@ SeafoamIslandsB2F_Script: jp IsPlayerOnDungeonWarp Seafoam3HolesCoords: - db $06,$13 - db $06,$16 - db $ff + dbmapcoord 19, 6 + dbmapcoord 22, 6 + db -1 ; end SeafoamIslandsB2F_TextPointers: dw BoulderText diff --git a/scripts/SeafoamIslandsB3F.asm b/scripts/SeafoamIslandsB3F.asm index c8fec3388..9d1093e52 100755 --- a/scripts/SeafoamIslandsB3F.asm +++ b/scripts/SeafoamIslandsB3F.asm @@ -45,9 +45,9 @@ SeafoamIslandsB3F_Script: jp CallFunctionInTable Seafoam4HolesCoords: - db $10,$03 - db $10,$06 - db $ff + dbmapcoord 3, 16 + dbmapcoord 6, 16 + db -1 ; end SeafoamIslandsB3F_ScriptPointers: dw SeafoamIslands4Script0 @@ -59,10 +59,10 @@ SeafoamIslands4Script0: CheckBothEventsSet EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE, EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE ret z ld a, [wYCoord] - cp $8 + cp 8 ret nz ld a, [wXCoord] - cp $f + cp 15 ret nz ld hl, wSimulatedJoypadStatesEnd ld de, RLEMovement46632 @@ -77,10 +77,10 @@ SeafoamIslands4Script0: ret RLEMovement46632: - db D_DOWN,6 - db D_RIGHT,5 - db D_DOWN,3 - db $ff + db D_DOWN, 6 + db D_RIGHT, 5 + db D_DOWN, 3 + db -1 ; end SeafoamIslands4Script1: ld a, [wSimulatedJoypadStatesIndex] @@ -94,9 +94,9 @@ SeafoamIslands4Script2: CheckBothEventsSet EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE, EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE ret z ld a, [wXCoord] - cp $12 + cp 18 jr z, .asm_4665e - cp $13 + cp 19 ld a, $0 jr nz, .asm_4667b ld de, RLEData_4667f @@ -109,7 +109,7 @@ SeafoamIslands4Script2: dec a ld [wSimulatedJoypadStatesIndex], a xor a - ld [wSpriteStateData2 + $06], a + ld [wSpritePlayerStateData2MovementByte1], a ld hl, wd730 set 7, [hl] ld hl, wFlags_D733 @@ -120,17 +120,17 @@ SeafoamIslands4Script2: ret RLEData_4667f: - db D_DOWN,$06 - db D_RIGHT,$02 - db D_DOWN,$04 - db D_LEFT,$01 - db $FF + db D_DOWN, 6 + db D_RIGHT, 2 + db D_DOWN, 4 + db D_LEFT, 1 + db -1 ; end RLEData_46688: - db D_DOWN,$06 - db D_RIGHT,$02 - db D_DOWN,$04 - db $FF + db D_DOWN, 6 + db D_RIGHT, 2 + db D_DOWN, 4 + db -1 ; end SeafoamIslands4Script3: ld a, [wSimulatedJoypadStatesIndex] diff --git a/scripts/SeafoamIslandsB4F.asm b/scripts/SeafoamIslandsB4F.asm index 1383a5613..1dd0b7f95 100755 --- a/scripts/SeafoamIslandsB4F.asm +++ b/scripts/SeafoamIslandsB4F.asm @@ -54,11 +54,11 @@ SeafoamIslands5Script0: ret .Coords - db $11,$14 - db $11,$15 - db $10,$14 - db $10,$15 - db $FF + dbmapcoord 20, 17 + dbmapcoord 21, 17 + dbmapcoord 20, 16 + dbmapcoord 21, 16 + db -1 ; end SeafoamIslands5Script1: ld a, [wSimulatedJoypadStatesIndex] @@ -97,21 +97,21 @@ SeafoamIslands5Script2: ret .Coords - db $0E,$04 - db $0E,$05 - db $FF + dbmapcoord 4, 14 + dbmapcoord 5, 14 + db -1 ; end RLEMovementData_46852: - db D_UP,$03 - db D_RIGHT,$02 - db D_UP,$01 - db $FF + db D_UP, 3 + db D_RIGHT, 2 + db D_UP, 1 + db -1 ; end RLEMovementData_46859: - db D_UP,$03 - db D_RIGHT,$03 - db D_UP,$01 - db $FF + db D_UP, 3 + db D_RIGHT, 3 + db D_UP, 1 + db -1 ; end SeafoamIslands5Script3: ld a, [wSimulatedJoypadStatesIndex] @@ -139,18 +139,11 @@ SeafoamIslandsB4F_TextPointers: dw SeafoamIslands5Text5 ArticunoTrainerHeader: - dbEventFlagBit EVENT_BEAT_ARTICUNO - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ARTICUNO - dw ArticunoBattleText ; TextBeforeBattle - dw ArticunoBattleText ; TextAfterBattle - dw ArticunoBattleText ; TextEndBattle - dw ArticunoBattleText ; TextEndBattle - - db $ff + trainer EVENT_BEAT_ARTICUNO, 0, ArticunoBattleText, ArticunoBattleText, ArticunoBattleText + db -1 ; end ArticunoText: - TX_ASM + text_asm ld hl, ArticunoTrainerHeader call TalkToTrainer ld a, $4 @@ -158,17 +151,17 @@ ArticunoText: jp TextScriptEnd ArticunoBattleText: - TX_FAR _ArticunoBattleText - TX_ASM + text_far _ArticunoBattleText + text_asm ld a, ARTICUNO call PlayCry call WaitForSoundToFinish jp TextScriptEnd SeafoamIslands5Text4: - TX_FAR _SeafoamIslands5Text4 - db "@" + text_far _SeafoamIslands5Text4 + text_end SeafoamIslands5Text5: - TX_FAR _SeafoamIslands5Text5 - db "@" + text_far _SeafoamIslands5Text5 + text_end diff --git a/scripts/SilphCo10F.asm b/scripts/SilphCo10F.asm index 40506682b..29b640fd5 100755 --- a/scripts/SilphCo10F.asm +++ b/scripts/SilphCo10F.asm @@ -24,11 +24,11 @@ SilphCo10Script_5a14f: predef_jump ReplaceTileBlock SilphCo10GateCoords: - db $04,$05 - db $FF + dbmapcoord 5, 4 + db -1 ; end SilphCo10Text_5a176: - ld a, [$ffe0] + ldh a, [hUnlockedSilphCoDoors] and a ret z SetEvent EVENT_SILPH_CO_10_UNLOCKED_DOOR @@ -48,39 +48,25 @@ SilphCo10F_TextPointers: dw PickUpItemText SilphCo10TrainerHeader0: - dbEventFlagBit EVENT_BEAT_SILPH_CO_10F_TRAINER_0 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_10F_TRAINER_0 - dw SilphCo10BattleText1 ; TextBeforeBattle - dw SilphCo10AfterBattleText1 ; TextAfterBattle - dw SilphCo10EndBattleText1 ; TextEndBattle - dw SilphCo10EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_10F_TRAINER_0, 3, SilphCo10BattleText1, SilphCo10EndBattleText1, SilphCo10AfterBattleText1 SilphCo10TrainerHeader1: - dbEventFlagBit EVENT_BEAT_SILPH_CO_10F_TRAINER_1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_10F_TRAINER_1 - dw SilphCo10BattleText2 ; TextBeforeBattle - dw SilphCo10AfterBattleText2 ; TextAfterBattle - dw SilphCo10EndBattleText2 ; TextEndBattle - dw SilphCo10EndBattleText2 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_SILPH_CO_10F_TRAINER_1, 4, SilphCo10BattleText2, SilphCo10EndBattleText2, SilphCo10AfterBattleText2 + db -1 ; end SilphCo10Text1: - TX_ASM + text_asm ld hl, SilphCo10TrainerHeader0 call TalkToTrainer jp TextScriptEnd SilphCo10Text2: - TX_ASM + text_asm ld hl, SilphCo10TrainerHeader1 call TalkToTrainer jp TextScriptEnd SilphCo10Text3: - TX_ASM + text_asm CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI ld hl, SilphCo10Text_5a1d8 jr nz, .asm_cf85f @@ -90,33 +76,33 @@ SilphCo10Text3: jp TextScriptEnd SilphCo10Text_5a1d3: - TX_FAR _SilphCo10Text_5a1d3 - db "@" + text_far _SilphCo10Text_5a1d3 + text_end SilphCo10Text_5a1d8: - TX_FAR _SilphCo10Text_5a1d8 - db "@" + text_far _SilphCo10Text_5a1d8 + text_end SilphCo10BattleText1: - TX_FAR _SilphCo10BattleText1 - db "@" + text_far _SilphCo10BattleText1 + text_end SilphCo10EndBattleText1: - TX_FAR _SilphCo10EndBattleText1 - db "@" + text_far _SilphCo10EndBattleText1 + text_end SilphCo10AfterBattleText1: - TX_FAR _SilphCo10AfterBattleText1 - db "@" + text_far _SilphCo10AfterBattleText1 + text_end SilphCo10BattleText2: - TX_FAR _SilphCo10BattleText2 - db "@" + text_far _SilphCo10BattleText2 + text_end SilphCo10EndBattleText2: - TX_FAR _SilphCo10EndBattleText2 - db "@" + text_far _SilphCo10EndBattleText2 + text_end SilphCo10AfterBattleText2: - TX_FAR _SilphCo10AfterBattleText2 - db "@" + text_far _SilphCo10AfterBattleText2 + text_end diff --git a/scripts/SilphCo11F.asm b/scripts/SilphCo11F.asm index e58dbebee..113ceecc7 100755 --- a/scripts/SilphCo11F.asm +++ b/scripts/SilphCo11F.asm @@ -25,8 +25,8 @@ SilphCo11Script_62127: ret SilphCo11GateCoords: - db $06,$03 - db $FF + dbmapcoord 3, 6 + db -1 ; end SilphCo11Script_6214f: push hl @@ -36,14 +36,14 @@ SilphCo11Script_6214f: ld a, [hl] ld c, a xor a - ld [$ffe0], a + ldh [hUnlockedSilphCoDoors], a pop hl .asm_62143 ld a, [hli] cp $ff jr z, .asm_6215f push hl - ld hl, $ffe0 + ld hl, hUnlockedSilphCoDoors inc [hl] pop hl cp b @@ -61,11 +61,11 @@ SilphCo11Script_6214f: ret .asm_6215f xor a - ld [$ffe0], a + ldh [hUnlockedSilphCoDoors], a ret SilphCo11Script_6217b: - ld a, [$ffe0] + ldh a, [hUnlockedSilphCoDoors] and a ret z SetEvent EVENT_SILPH_CO_11_UNLOCKED_DOOR @@ -112,14 +112,14 @@ SilphCo11Script_621c5: ld a, [wCoordIndex] ld [wcf0d], a xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $f0 ld [wJoyIgnore], a ld a, $3 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $3 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call SetSpriteMovementBytesToFF ld de, MovementData_62216 call MoveSprite @@ -128,15 +128,15 @@ SilphCo11Script_621c5: ret CoordsData_62211: - db $0D,$06 - db $0C,$07 - db $FF + dbmapcoord 6, 13 + dbmapcoord 7, 12 + db -1 ; end MovementData_62216: db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_DOWN - db $FF + db -1 ; end SilphCo11Script_621ff: ld [wPlayerMovingDirection], a @@ -164,10 +164,10 @@ SilphCo11Script3: ld a, $f0 ld [wJoyIgnore], a ld a, $7 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call GBFadeOutToBlack - callba Func_f25a0 + farcall Func_f25a0 call UpdateSprites call Delay3 call GBFadeInFromBlack @@ -181,7 +181,7 @@ SilphCo11Script4: bit 0, a ret nz ld a, $3 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call SetSpriteMovementBytesToFF ld a, [wcf0d] cp $1 @@ -203,7 +203,7 @@ SilphCo11Script4: ld hl, SilphCo10Text_62528 ld de, SilphCo10Text_62528 call SaveEndBattleTextPointers - ld a, [H_SPRITEINDEX] + ldh a, [hSpriteIndex] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters @@ -233,13 +233,13 @@ SilphCo11Script_6229c: ld a, MUSIC_MEET_JESSIE_JAMES call PlayMusic xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $fc ld [wJoyIgnore], a ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld a, $8 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wDoNotWaitForButtonPressAfterDisplayingText], a @@ -308,7 +308,7 @@ SilphCo11Script5: ld de, SilphCo11MovementData_6230b .asm_6232d ld a, $4 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call MoveSprite ld a, $ff ld [wJoyIgnore], a @@ -346,7 +346,7 @@ SilphCo11Script8: ld de, SilphCo11MovementData_62311 .asm_6237b ld a, $6 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call MoveSprite ld a, $ff ld [wJoyIgnore], a @@ -374,7 +374,7 @@ SilphCo11Script10: .asm_623b1 call Delay3 ld a, $9 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SilphCo11Script11: ld hl, wd72d @@ -388,7 +388,7 @@ SilphCo11Script11: ld a, $2d ld [wTrainerNo], a xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld [wJoyIgnore], a ld a, $c call SilphCo11Script_62189 @@ -411,7 +411,7 @@ SilphCo11Script12: ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld a, $a - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wDoNotWaitForButtonPressAfterDisplayingText], a @@ -443,7 +443,7 @@ SilphCo11Script13: SilphCo11Script14: call PlayDefaultMusic xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld [wJoyIgnore], a ResetEvent EVENT_782 SetEventReuseHL EVENT_BEAT_SILPH_CO_11F_TRAINER_0 @@ -476,21 +476,14 @@ SilphCo11F_TextPointers: dw SilphCo11Text10 SilphCo11TrainerHeader0: - dbEventFlagBit EVENT_BEAT_SILPH_CO_11F_TRAINER_1 - db ($3 << 4) - dwEventFlagAddress EVENT_BEAT_SILPH_CO_11F_TRAINER_1 - dw SilphCo11Trainer1BattleText - dw SilphCo11Trainer1AfterBattleText - dw SilphCo11Trainer1EndBattleText - dw SilphCo11Trainer1EndBattleText - - db $ff ; no more trainers + trainer EVENT_BEAT_SILPH_CO_11F_TRAINER_1, 3, SilphCo11Trainer1BattleText, SilphCo11Trainer1EndBattleText, SilphCo11Trainer1AfterBattleText + db -1 ; end SilphCo11Text4: SilphCo11Text6: SilphCo11Text8: - TX_FAR _SilphCoJessieJamesText1 - TX_ASM + text_far _SilphCoJessieJamesText1 + text_asm ld c, 10 call DelayFrames ld a, $4 @@ -505,91 +498,90 @@ SilphCo11Text8: jp TextScriptEnd SilphCo11Text9: - TX_FAR _SilphCoJessieJamesText2 - db "@" + text_far _SilphCoJessieJamesText2 + text_end SilphCo11Text_624c2: - TX_FAR _SilphCoJessieJamesText3 - db "@" + text_far _SilphCoJessieJamesText3 + text_end SilphCo11Text10: - TX_FAR _SilphCoJessieJamesText4 - TX_ASM + text_far _SilphCoJessieJamesText4 + text_asm ld c, 64 call DelayFrames jp TextScriptEnd SilphCo11Text1: - TX_ASM + text_asm CheckEvent EVENT_GOT_MASTER_BALL - jp nz, .asm_62500 - ld hl, SilphCo11Text_62509 + jp nz, .got_item + ld hl, SilphCoPresidentText call PrintText lb bc, MASTER_BALL, 1 call GiveItem - jr nc, .asm_624f8 - ld hl, SilphCo11Text_6250e + jr nc, .bag_full + ld hl, ReceivedSilphCoMasterBallText call PrintText SetEvent EVENT_GOT_MASTER_BALL - jr .asm_62506 -.asm_624f8 - ld hl, SilphCo11Text_62519 + jr .done +.bag_full + ld hl, SilphCoMasterBallNoRoomText call PrintText - jr .asm_62506 - -.asm_62500 - ld hl, SilphCo11Text_62514 + jr .done +.got_item + ld hl, SilphCo10Text_6231c call PrintText -.asm_62506 +.done jp TextScriptEnd -SilphCo11Text_62509: - TX_FAR _SilphCoPresidentText - db "@" +SilphCoPresidentText: + text_far _SilphCoPresidentText + text_end -SilphCo11Text_6250e: - TX_FAR _ReceivedSilphCoMasterBallText - TX_SFX_KEY_ITEM - db "@" +ReceivedSilphCoMasterBallText: + text_far _ReceivedSilphCoMasterBallText + sound_get_key_item + text_end -SilphCo11Text_62514: - TX_FAR _SilphCo10Text_6231c - db "@" +SilphCo10Text_6231c: + text_far _SilphCo10Text_6231c + text_end -SilphCo11Text_62519: - TX_FAR _SilphCoMasterBallNoRoomText - db "@" +SilphCoMasterBallNoRoomText: + text_far _SilphCoMasterBallNoRoomText + text_end SilphCo11Text2: - TX_FAR _SilphCo11Text2 - db "@" + text_far _SilphCo11Text2 + text_end SilphCo11Text3: - TX_FAR _SilphCo11Text3 - db "@" + text_far _SilphCo11Text3 + text_end SilphCo10Text_62528: - TX_FAR _SilphCo10Text_62330 - db "@" + text_far _SilphCo10Text_62330 + text_end SilphCo11Text7: - TX_FAR _SilphCo10Text_62335 - db "@" + text_far _SilphCo10Text_62335 + text_end SilphCo11Text5: - TX_ASM + text_asm ld hl, SilphCo11TrainerHeader0 call TalkToTrainer jp TextScriptEnd SilphCo11Trainer1BattleText: - TX_FAR _SilphCo11BattleText2 - db "@" + text_far _SilphCo11BattleText2 + text_end SilphCo11Trainer1EndBattleText: - TX_FAR _SilphCo11EndBattleText2 - db "@" + text_far _SilphCo11EndBattleText2 + text_end SilphCo11Trainer1AfterBattleText: - TX_FAR _SilphCo11AfterBattleText2 - db "@" + text_far _SilphCo11AfterBattleText2 + text_end diff --git a/scripts/SilphCo11F_2.asm b/scripts/SilphCo11F_2.asm index bf575de51..c8fd9c3ed 100755 --- a/scripts/SilphCo11F_2.asm +++ b/scripts/SilphCo11F_2.asm @@ -1,4 +1,4 @@ -Func_f25a0: +Func_f25a0:: ld hl, MissableObjects_f25ce .asm_f25a3 ld a, [hli] @@ -31,7 +31,7 @@ MissableObjects_f25c7: db HS_SAFFRON_CITY_D db $FF -MissableObjects_f25ce +MissableObjects_f25ce: db HS_SAFFRON_CITY_1 db HS_SAFFRON_CITY_2 db HS_SAFFRON_CITY_3 diff --git a/scripts/SilphCo1F.asm b/scripts/SilphCo1F.asm index 6ccaa29c8..bc484b7ca 100755 --- a/scripts/SilphCo1F.asm +++ b/scripts/SilphCo1F.asm @@ -12,5 +12,5 @@ SilphCo1F_TextPointers: dw SilphCo1Text1 SilphCo1Text1: - TX_FAR _SilphCo1Text1 - db "@" + text_far _SilphCo1Text1 + text_end diff --git a/scripts/SilphCo2F.asm b/scripts/SilphCo2F.asm index 5fd542cbf..4b96c314d 100755 --- a/scripts/SilphCo2F.asm +++ b/scripts/SilphCo2F.asm @@ -33,9 +33,9 @@ SilphCo2Script_59d07: predef_jump ReplaceTileBlock SilphCo2GateCoords: - db $02,$02 - db $05,$02 - db $FF + dbmapcoord 2, 2 + dbmapcoord 2, 5 + db -1 ; end SilphCo2Script_59d43: push hl @@ -45,14 +45,14 @@ SilphCo2Script_59d43: ld a, [hl] ld c, a xor a - ld [$ffe0], a + ldh [hUnlockedSilphCoDoors], a pop hl .asm_59d4f ld a, [hli] cp $ff jr z, .asm_59d6b push hl - ld hl, $ffe0 + ld hl, hUnlockedSilphCoDoors inc [hl] pop hl cp b @@ -70,12 +70,12 @@ SilphCo2Script_59d43: ret .asm_59d6b xor a - ld [$ffe0], a + ldh [hUnlockedSilphCoDoors], a ret SilphCo2Script_59d6f: EventFlagAddress hl, EVENT_SILPH_CO_2_UNLOCKED_DOOR1 - ld a, [$ffe0] + ldh a, [hUnlockedSilphCoDoors] and a ret z cp $1 @@ -99,50 +99,22 @@ SilphCo2F_TextPointers: dw SilphCo2Text5 SilphCo2TrainerHeader0: - dbEventFlagBit EVENT_BEAT_SILPH_CO_2F_TRAINER_0 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_2F_TRAINER_0 - dw SilphCo2BattleText1 ; TextBeforeBattle - dw SilphCo2AfterBattleText1 ; TextAfterBattle - dw SilphCo2EndBattleText1 ; TextEndBattle - dw SilphCo2EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_2F_TRAINER_0, 3, SilphCo2BattleText1, SilphCo2EndBattleText1, SilphCo2AfterBattleText1 SilphCo2TrainerHeader1: - dbEventFlagBit EVENT_BEAT_SILPH_CO_2F_TRAINER_1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_2F_TRAINER_1 - dw SilphCo2BattleText2 ; TextBeforeBattle - dw SilphCo2AfterBattleText2 ; TextAfterBattle - dw SilphCo2EndBattleText2 ; TextEndBattle - dw SilphCo2EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_2F_TRAINER_1, 4, SilphCo2BattleText2, SilphCo2EndBattleText2, SilphCo2AfterBattleText2 SilphCo2TrainerHeader2: - dbEventFlagBit EVENT_BEAT_SILPH_CO_2F_TRAINER_2 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_2F_TRAINER_2 - dw SilphCo2BattleText3 ; TextBeforeBattle - dw SilphCo2AfterBattleText3 ; TextAfterBattle - dw SilphCo2EndBattleText3 ; TextEndBattle - dw SilphCo2EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_2F_TRAINER_2, 3, SilphCo2BattleText3, SilphCo2EndBattleText3, SilphCo2AfterBattleText3 SilphCo2TrainerHeader3: - dbEventFlagBit EVENT_BEAT_SILPH_CO_2F_TRAINER_3 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_2F_TRAINER_3 - dw SilphCo2BattleText4 ; TextBeforeBattle - dw SilphCo2AfterBattleText4 ; TextAfterBattle - dw SilphCo2EndBattleText4 ; TextEndBattle - dw SilphCo2EndBattleText4 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_SILPH_CO_2F_TRAINER_3, 3, SilphCo2BattleText4, SilphCo2EndBattleText4, SilphCo2AfterBattleText4 + db -1 ; end SilphCo2Text1: - TX_ASM + text_asm CheckEvent EVENT_GOT_TM36 jr nz, .asm_59de4 ld hl, SilphCo2Text_59ded call PrintText - lb bc, TM_36, 1 + lb bc, TM_SELFDESTRUCT, 1 call GiveItem ld hl, TM36NoRoomText jr nc, .asm_59de7 @@ -156,90 +128,90 @@ SilphCo2Text1: jp TextScriptEnd SilphCo2Text_59ded: - TX_FAR _SilphCo2Text_59ded - db "@" + text_far _SilphCo2Text_59ded + text_end ReceivedTM36Text: - TX_FAR _ReceivedTM36Text - TX_SFX_ITEM_1 - db "@" + text_far _ReceivedTM36Text + sound_get_item_1 + text_end TM36ExplanationText: - TX_FAR _TM36ExplanationText - db "@" + text_far _TM36ExplanationText + text_end TM36NoRoomText: - TX_FAR _TM36NoRoomText - db "@" + text_far _TM36NoRoomText + text_end SilphCo2Text2: - TX_ASM + text_asm ld hl, SilphCo2TrainerHeader0 call TalkToTrainer jp TextScriptEnd SilphCo2Text3: - TX_ASM + text_asm ld hl, SilphCo2TrainerHeader1 call TalkToTrainer jp TextScriptEnd SilphCo2Text4: - TX_ASM + text_asm ld hl, SilphCo2TrainerHeader2 call TalkToTrainer jp TextScriptEnd SilphCo2Text5: - TX_ASM + text_asm ld hl, SilphCo2TrainerHeader3 call TalkToTrainer jp TextScriptEnd SilphCo2BattleText1: - TX_FAR _SilphCo2BattleText1 - db "@" + text_far _SilphCo2BattleText1 + text_end SilphCo2EndBattleText1: - TX_FAR _SilphCo2EndBattleText1 - db "@" + text_far _SilphCo2EndBattleText1 + text_end SilphCo2AfterBattleText1: - TX_FAR _SilphCo2AfterBattleText1 - db "@" + text_far _SilphCo2AfterBattleText1 + text_end SilphCo2BattleText2: - TX_FAR _SilphCo2BattleText2 - db "@" + text_far _SilphCo2BattleText2 + text_end SilphCo2EndBattleText2: - TX_FAR _SilphCo2EndBattleText2 - db "@" + text_far _SilphCo2EndBattleText2 + text_end SilphCo2AfterBattleText2: - TX_FAR _SilphCo2AfterBattleText2 - db "@" + text_far _SilphCo2AfterBattleText2 + text_end SilphCo2BattleText3: - TX_FAR _SilphCo2BattleText3 - db "@" + text_far _SilphCo2BattleText3 + text_end SilphCo2EndBattleText3: - TX_FAR _SilphCo2EndBattleText3 - db "@" + text_far _SilphCo2EndBattleText3 + text_end SilphCo2AfterBattleText3: - TX_FAR _SilphCo2AfterBattleText3 - db "@" + text_far _SilphCo2AfterBattleText3 + text_end SilphCo2BattleText4: - TX_FAR _SilphCo2BattleText4 - db "@" + text_far _SilphCo2BattleText4 + text_end SilphCo2EndBattleText4: - TX_FAR _SilphCo2EndBattleText4 - db "@" + text_far _SilphCo2EndBattleText4 + text_end SilphCo2AfterBattleText4: - TX_FAR _SilphCo2AfterBattleText4 - db "@" + text_far _SilphCo2AfterBattleText4 + text_end diff --git a/scripts/SilphCo3F.asm b/scripts/SilphCo3F.asm index 42b5d611c..69dfdad99 100755 --- a/scripts/SilphCo3F.asm +++ b/scripts/SilphCo3F.asm @@ -33,13 +33,13 @@ SilphCo3Script_59f71: predef_jump ReplaceTileBlock SilphCo3GateCoords: - db $04,$04 - db $04,$08 - db $FF + dbmapcoord 4, 4 + dbmapcoord 8, 4 + db -1 ; end SilphCo3Script_59fad: EventFlagAddress hl, EVENT_SILPH_CO_3_UNLOCKED_DOOR1 - ld a, [$ffe0] + ldh a, [hUnlockedSilphCoDoors] and a ret z cp $1 @@ -62,27 +62,13 @@ SilphCo3F_TextPointers: dw PickUpItemText SilphCo3TrainerHeader0: - dbEventFlagBit EVENT_BEAT_SILPH_CO_3F_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_3F_TRAINER_0 - dw SilphCo3BattleText1 ; TextBeforeBattle - dw SilphCo3AfterBattleText1 ; TextAfterBattle - dw SilphCo3EndBattleText1 ; TextEndBattle - dw SilphCo3EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_3F_TRAINER_0, 2, SilphCo3BattleText1, SilphCo3EndBattleText1, SilphCo3AfterBattleText1 SilphCo3TrainerHeader1: - dbEventFlagBit EVENT_BEAT_SILPH_CO_3F_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_3F_TRAINER_1 - dw SilphCo3BattleText2 ; TextBeforeBattle - dw SilphCo3AfterBattleText2 ; TextAfterBattle - dw SilphCo3EndBattleText2 ; TextEndBattle - dw SilphCo3EndBattleText2 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_SILPH_CO_3F_TRAINER_1, 3, SilphCo3BattleText2, SilphCo3EndBattleText2, SilphCo3AfterBattleText2 + db -1 ; end SilphCo3Text1: - TX_ASM + text_asm CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI ld hl, SilphCo3Text_59ffe jr nz, .asm_59fee @@ -92,45 +78,45 @@ SilphCo3Text1: jp TextScriptEnd SilphCo3Text_59ff9: - TX_FAR _SilphCo3Text_59ff9 - db "@" + text_far _SilphCo3Text_59ff9 + text_end SilphCo3Text_59ffe: - TX_FAR _SilphCo3Text_59ffe - db "@" + text_far _SilphCo3Text_59ffe + text_end SilphCo3Text2: - TX_ASM + text_asm ld hl, SilphCo3TrainerHeader0 call TalkToTrainer jp TextScriptEnd SilphCo3BattleText1: - TX_FAR _SilphCo3BattleText1 - db "@" + text_far _SilphCo3BattleText1 + text_end SilphCo3EndBattleText1: - TX_FAR _SilphCo3EndBattleText1 - db "@" + text_far _SilphCo3EndBattleText1 + text_end SilphCo3AfterBattleText1: - TX_FAR _SilphCo3AfterBattleText1 - db "@" + text_far _SilphCo3AfterBattleText1 + text_end SilphCo3Text3: - TX_ASM + text_asm ld hl, SilphCo3TrainerHeader1 call TalkToTrainer jp TextScriptEnd SilphCo3BattleText2: - TX_FAR _SilphCo3BattleText2 - db "@" + text_far _SilphCo3BattleText2 + text_end SilphCo3EndBattleText2: - TX_FAR _SilphCo3EndBattleText2 - db "@" + text_far _SilphCo3EndBattleText2 + text_end SilphCo3AfterBattleText2: - TX_FAR _SilphCo3AfterBattleText2 - db "@" + text_far _SilphCo3AfterBattleText2 + text_end diff --git a/scripts/SilphCo4F.asm b/scripts/SilphCo4F.asm index 7d5072f69..8d5d696a0 100755 --- a/scripts/SilphCo4F.asm +++ b/scripts/SilphCo4F.asm @@ -33,9 +33,9 @@ SilphCo4Script_19d21: predef_jump ReplaceTileBlock SilphCo4GateCoords: - db $06,$02 - db $04,$06 - db $FF + dbmapcoord 2, 6 + dbmapcoord 6, 4 + db -1 ; end SilphCo4Script_19d5d: push hl @@ -45,14 +45,14 @@ SilphCo4Script_19d5d: ld a, [hl] ld c, a xor a - ld [$ffe0], a + ldh [hUnlockedSilphCoDoors], a pop hl .asm_19d69 ld a, [hli] cp $ff jr z, .asm_19d85 push hl - ld hl, $ffe0 + ld hl, hUnlockedSilphCoDoors inc [hl] pop hl cp b @@ -70,12 +70,12 @@ SilphCo4Script_19d5d: ret .asm_19d85 xor a - ld [$ffe0], a + ldh [hUnlockedSilphCoDoors], a ret SilphCo4Script_19d89: EventFlagAddress hl, EVENT_SILPH_CO_4_UNLOCKED_DOOR1 - ld a, [$ffe0] + ldh a, [hUnlockedSilphCoDoors] and a ret z cp $1 @@ -101,99 +101,78 @@ SilphCo4F_TextPointers: dw PickUpItemText SilphCo4TrainerHeader0: - dbEventFlagBit EVENT_BEAT_SILPH_CO_4F_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_4F_TRAINER_0 - dw SilphCo4BattleText2 ; TextBeforeBattle - dw SilphCo4AfterBattleText2 ; TextAfterBattle - dw SilphCo4EndBattleText2 ; TextEndBattle - dw SilphCo4EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_4F_TRAINER_0, 4, SilphCo4BattleText2, SilphCo4EndBattleText2, SilphCo4AfterBattleText2 SilphCo4TrainerHeader1: - dbEventFlagBit EVENT_BEAT_SILPH_CO_4F_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_4F_TRAINER_1 - dw SilphCo4BattleText3 ; TextBeforeBattle - dw SilphCo4AfterBattleText3 ; TextAfterBattle - dw SilphCo4EndBattleText3 ; TextEndBattle - dw SilphCo4EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_4F_TRAINER_1, 3, SilphCo4BattleText3, SilphCo4EndBattleText3, SilphCo4AfterBattleText3 SilphCo4TrainerHeader2: - dbEventFlagBit EVENT_BEAT_SILPH_CO_4F_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_4F_TRAINER_2 - dw SilphCo4BattleText4 ; TextBeforeBattle - dw SilphCo4AfterBattleText4 ; TextAfterBattle - dw SilphCo4EndBattleText4 ; TextEndBattle - dw SilphCo4EndBattleText4 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_SILPH_CO_4F_TRAINER_2, 4, SilphCo4BattleText4, SilphCo4EndBattleText4, SilphCo4AfterBattleText4 + db -1 ; end SilphCo4Text1: - TX_ASM + text_asm ld hl, SilphCo4Text_19de0 ld de, SilphCo4Text_19de5 call SilphCo6Script_1a22f jp TextScriptEnd SilphCo4Text_19de0: - TX_FAR _SilphCo4Text_19de0 - db "@" + text_far _SilphCo4Text_19de0 + text_end SilphCo4Text_19de5: - TX_FAR _SilphCo4Text_19de5 - db "@" + text_far _SilphCo4Text_19de5 + text_end SilphCo4Text2: - TX_ASM + text_asm ld hl, SilphCo4TrainerHeader0 call TalkToTrainer jp TextScriptEnd SilphCo4BattleText2: - TX_FAR _SilphCo4BattleText2 - db "@" + text_far _SilphCo4BattleText2 + text_end SilphCo4EndBattleText2: - TX_FAR _SilphCo4EndBattleText2 - db "@" + text_far _SilphCo4EndBattleText2 + text_end SilphCo4AfterBattleText2: - TX_FAR _SilphCo4AfterBattleText2 - db "@" + text_far _SilphCo4AfterBattleText2 + text_end SilphCo4Text3: - TX_ASM + text_asm ld hl, SilphCo4TrainerHeader1 call TalkToTrainer jp TextScriptEnd SilphCo4BattleText3: - TX_FAR _SilphCo4BattleText3 - db "@" + text_far _SilphCo4BattleText3 + text_end SilphCo4EndBattleText3: - TX_FAR _SilphCo4EndBattleText3 - db "@" + text_far _SilphCo4EndBattleText3 + text_end SilphCo4AfterBattleText3: - TX_FAR _SilphCo4AfterBattleText3 - db "@" + text_far _SilphCo4AfterBattleText3 + text_end SilphCo4Text4: - TX_ASM + text_asm ld hl, SilphCo4TrainerHeader2 call TalkToTrainer jp TextScriptEnd SilphCo4BattleText4: - TX_FAR _SilphCo4BattleText4 - db "@" + text_far _SilphCo4BattleText4 + text_end SilphCo4EndBattleText4: - TX_FAR _SilphCo4EndBattleText4 - db "@" + text_far _SilphCo4EndBattleText4 + text_end SilphCo4AfterBattleText4: - TX_FAR _SilphCo4AfterBattleText4 - db "@" + text_far _SilphCo4AfterBattleText4 + text_end diff --git a/scripts/SilphCo5F.asm b/scripts/SilphCo5F.asm index d9deda5be..975dacac4 100755 --- a/scripts/SilphCo5F.asm +++ b/scripts/SilphCo5F.asm @@ -42,14 +42,14 @@ SilphCo5Script_19f4d: predef_jump ReplaceTileBlock SilphCo5GateCoords: - db $02,$03 - db $06,$03 - db $05,$07 - db $FF + dbmapcoord 3, 2 + dbmapcoord 3, 6 + dbmapcoord 7, 5 + db -1 ; end SilphCo5Script_19f9e: EventFlagAddress hl, EVENT_SILPH_CO_5_UNLOCKED_DOOR1 - ld a, [$ffe0] + ldh a, [hUnlockedSilphCoDoors] and a ret z cp $1 @@ -84,138 +84,110 @@ SilphCo5F_TextPointers: dw SilphCo5Text11 SilphCo5TrainerHeader0: - dbEventFlagBit EVENT_BEAT_SILPH_CO_5F_TRAINER_0 - db ($1 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_5F_TRAINER_0 - dw SilphCo5BattleText2 ; TextBeforeBattle - dw SilphCo5AfterBattleText2 ; TextAfterBattle - dw SilphCo5EndBattleText2 ; TextEndBattle - dw SilphCo5EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_5F_TRAINER_0, 1, SilphCo5BattleText2, SilphCo5EndBattleText2, SilphCo5AfterBattleText2 SilphCo5TrainerHeader1: - dbEventFlagBit EVENT_BEAT_SILPH_CO_5F_TRAINER_1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_5F_TRAINER_1 - dw SilphCo5BattleText3 ; TextBeforeBattle - dw SilphCo5AfterBattleText3 ; TextAfterBattle - dw SilphCo5EndBattleText3 ; TextEndBattle - dw SilphCo5EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_5F_TRAINER_1, 2, SilphCo5BattleText3, SilphCo5EndBattleText3, SilphCo5AfterBattleText3 SilphCo5TrainerHeader2: - dbEventFlagBit EVENT_BEAT_SILPH_CO_5F_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_5F_TRAINER_2 - dw SilphCo5BattleText4 ; TextBeforeBattle - dw SilphCo5AfterBattleText4 ; TextAfterBattle - dw SilphCo5EndBattleText4 ; TextEndBattle - dw SilphCo5EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_5F_TRAINER_2, 4, SilphCo5BattleText4, SilphCo5EndBattleText4, SilphCo5AfterBattleText4 SilphCo5TrainerHeader3: - dbEventFlagBit EVENT_BEAT_SILPH_CO_5F_TRAINER_3 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_5F_TRAINER_3 - dw SilphCo5BattleText5 ; TextBeforeBattle - dw SilphCo5AfterBattleText5 ; TextAfterBattle - dw SilphCo5EndBattleText5 ; TextEndBattle - dw SilphCo5EndBattleText5 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_SILPH_CO_5F_TRAINER_3, 3, SilphCo5BattleText5, SilphCo5EndBattleText5, SilphCo5AfterBattleText5 + db -1 ; end SilphCo5Text1: - TX_ASM + text_asm ld hl, SilphCo5Text_1a010 ld de, SilphCo5Text_1a015 call SilphCo6Script_1a22f jp TextScriptEnd SilphCo5Text_1a010: - TX_FAR _SilphCo5Text_1a010 - db "@" + text_far _SilphCo5Text_1a010 + text_end SilphCo5Text_1a015: - TX_FAR _SilphCo5Text_1a015 - db "@" + text_far _SilphCo5Text_1a015 + text_end SilphCo5Text2: - TX_ASM + text_asm ld hl, SilphCo5TrainerHeader0 call TalkToTrainer jp TextScriptEnd SilphCo5BattleText2: - TX_FAR _SilphCo5BattleText2 - db "@" + text_far _SilphCo5BattleText2 + text_end SilphCo5EndBattleText2: - TX_FAR _SilphCo5EndBattleText2 - db "@" + text_far _SilphCo5EndBattleText2 + text_end SilphCo5AfterBattleText2: - TX_FAR _SilphCo5AfterBattleText2 - db "@" + text_far _SilphCo5AfterBattleText2 + text_end SilphCo5Text3: - TX_ASM + text_asm ld hl, SilphCo5TrainerHeader1 call TalkToTrainer jp TextScriptEnd SilphCo5BattleText3: - TX_FAR _SilphCo5BattleText3 - db "@" + text_far _SilphCo5BattleText3 + text_end SilphCo5EndBattleText3: - TX_FAR _SilphCo5EndBattleText3 - db "@" + text_far _SilphCo5EndBattleText3 + text_end SilphCo5AfterBattleText3: - TX_FAR _SilphCo5AfterBattleText3 - db "@" + text_far _SilphCo5AfterBattleText3 + text_end SilphCo5Text4: - TX_ASM + text_asm ld hl, SilphCo5TrainerHeader2 call TalkToTrainer jp TextScriptEnd SilphCo5BattleText4: - TX_FAR _SilphCo5BattleText4 - db "@" + text_far _SilphCo5BattleText4 + text_end SilphCo5EndBattleText4: - TX_FAR _SilphCo5EndBattleText4 - db "@" + text_far _SilphCo5EndBattleText4 + text_end SilphCo5AfterBattleText4: - TX_FAR _SilphCo5AfterBattleText4 - db "@" + text_far _SilphCo5AfterBattleText4 + text_end SilphCo5Text5: - TX_ASM + text_asm ld hl, SilphCo5TrainerHeader3 call TalkToTrainer jp TextScriptEnd SilphCo5BattleText5: - TX_FAR _SilphCo5BattleText5 - db "@" + text_far _SilphCo5BattleText5 + text_end SilphCo5EndBattleText5: - TX_FAR _SilphCo5EndBattleText5 - db "@" + text_far _SilphCo5EndBattleText5 + text_end SilphCo5AfterBattleText5: - TX_FAR _SilphCo5AfterBattleText5 - db "@" + text_far _SilphCo5AfterBattleText5 + text_end SilphCo5Text9: - TX_FAR _SilphCo5Text9 - db "@" + text_far _SilphCo5Text9 + text_end SilphCo5Text10: - TX_FAR _SilphCo5Text10 - db "@" + text_far _SilphCo5Text10 + text_end SilphCo5Text11: - TX_FAR _SilphCo5Text11 - db "@" + text_far _SilphCo5Text11 + text_end diff --git a/scripts/SilphCo6F.asm b/scripts/SilphCo6F.asm index ddbcba79d..ea8c20c2c 100755 --- a/scripts/SilphCo6F.asm +++ b/scripts/SilphCo6F.asm @@ -24,11 +24,11 @@ SilphCo6Script_1a1bf: predef_jump ReplaceTileBlock SilphCo6GateCoords: - db $06,$02 - db $FF + dbmapcoord 2, 6 + db -1 ; end SilphCo6Script_1a1e6: - ld a, [$ffe0] + ldh a, [hUnlockedSilphCoDoors] and a ret z SetEvent EVENT_SILPH_CO_6_UNLOCKED_DOOR @@ -52,33 +52,12 @@ SilphCo6F_TextPointers: dw PickUpItemText SilphCo6TrainerHeader0: - dbEventFlagBit EVENT_BEAT_SILPH_CO_6F_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_6F_TRAINER_0 - dw SilphCo6BattleText2 ; TextBeforeBattle - dw SilphCo6AfterBattleText2 ; TextAfterBattle - dw SilphCo6EndBattleText2 ; TextEndBattle - dw SilphCo6EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_6F_TRAINER_0, 2, SilphCo6BattleText2, SilphCo6EndBattleText2, SilphCo6AfterBattleText2 SilphCo6TrainerHeader1: - dbEventFlagBit EVENT_BEAT_SILPH_CO_6F_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_6F_TRAINER_1 - dw SilphCo6BattleText3 ; TextBeforeBattle - dw SilphCo6AfterBattleText3 ; TextAfterBattle - dw SilphCo6EndBattleText3 ; TextEndBattle - dw SilphCo6EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_6F_TRAINER_1, 3, SilphCo6BattleText3, SilphCo6EndBattleText3, SilphCo6AfterBattleText3 SilphCo6TrainerHeader2: - dbEventFlagBit EVENT_BEAT_SILPH_CO_6F_TRAINER_2, 1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_6F_TRAINER_2, 1 - dw SilphCo6BattleText4 ; TextBeforeBattle - dw SilphCo6AfterBattleText4 ; TextAfterBattle - dw SilphCo6EndBattleText4 ; TextEndBattle - dw SilphCo6EndBattleText4 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_SILPH_CO_6F_TRAINER_2, 1, 2, SilphCo6BattleText4, SilphCo6EndBattleText4, SilphCo6AfterBattleText4 + db -1 ; end SilphCo6Script_1a22f: CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI @@ -91,130 +70,130 @@ SilphCo6Script_1a22f: jp PrintText SilphCo6Text1: - TX_ASM + text_asm ld hl, SilphCo6Text_1a24a ld de, SilphCo6Text_1a24f call SilphCo6Script_1a22f jp TextScriptEnd SilphCo6Text_1a24a: - TX_FAR _SilphCo6Text_1a24a - db "@" + text_far _SilphCo6Text_1a24a + text_end SilphCo6Text_1a24f: - TX_FAR _SilphCo6Text_1a24f - db "@" + text_far _SilphCo6Text_1a24f + text_end SilphCo6Text2: - TX_ASM + text_asm ld hl, SilphCo6Text_1a261 ld de, SilphCo6Text_1a266 call SilphCo6Script_1a22f jp TextScriptEnd SilphCo6Text_1a261: - TX_FAR _SilphCo6Text_1a261 - db "@" + text_far _SilphCo6Text_1a261 + text_end SilphCo6Text_1a266: - TX_FAR _SilphCo6Text_1a266 - db "@" + text_far _SilphCo6Text_1a266 + text_end SilphCo6Text3: - TX_ASM + text_asm ld hl, SilphCo6Text_1a278 ld de, SilphCo6Text_1a27d call SilphCo6Script_1a22f jp TextScriptEnd SilphCo6Text_1a278: - TX_FAR _SilphCo6Text_1a278 - db "@" + text_far _SilphCo6Text_1a278 + text_end SilphCo6Text_1a27d: - TX_FAR _SilphCo6Text_1a27d - db "@" + text_far _SilphCo6Text_1a27d + text_end SilphCo6Text4: - TX_ASM + text_asm ld hl, SilphCo6Text_1a28f ld de, SilphCo6Text_1a294 call SilphCo6Script_1a22f jp TextScriptEnd SilphCo6Text_1a28f: - TX_FAR _SilphCo6Text_1a28f - db "@" + text_far _SilphCo6Text_1a28f + text_end SilphCo6Text_1a294: - TX_FAR _SilphCo6Text_1a294 - db "@" + text_far _SilphCo6Text_1a294 + text_end SilphCo6Text5: - TX_ASM + text_asm ld hl, SilphCo6Text_1a2a6 ld de, SilphCo6Text_1a2ab call SilphCo6Script_1a22f jp TextScriptEnd SilphCo6Text_1a2a6: - TX_FAR _SilphCo6Text_1a2a6 - db "@" + text_far _SilphCo6Text_1a2a6 + text_end SilphCo6Text_1a2ab: - TX_FAR _SilphCo6Text_1a2ab - db "@" + text_far _SilphCo6Text_1a2ab + text_end SilphCo6Text6: - TX_ASM + text_asm ld hl, SilphCo6TrainerHeader0 call TalkToTrainer jp TextScriptEnd SilphCo6BattleText2: - TX_FAR _SilphCo6BattleText2 - db "@" + text_far _SilphCo6BattleText2 + text_end SilphCo6EndBattleText2: - TX_FAR _SilphCo6EndBattleText2 - db "@" + text_far _SilphCo6EndBattleText2 + text_end SilphCo6AfterBattleText2: - TX_FAR _SilphCo6AfterBattleText2 - db "@" + text_far _SilphCo6AfterBattleText2 + text_end SilphCo6Text7: - TX_ASM + text_asm ld hl, SilphCo6TrainerHeader1 call TalkToTrainer jp TextScriptEnd SilphCo6BattleText3: - TX_FAR _SilphCo6BattleText3 - db "@" + text_far _SilphCo6BattleText3 + text_end SilphCo6EndBattleText3: - TX_FAR _SilphCo6EndBattleText3 - db "@" + text_far _SilphCo6EndBattleText3 + text_end SilphCo6AfterBattleText3: - TX_FAR _SilphCo6AfterBattleText3 - db "@" + text_far _SilphCo6AfterBattleText3 + text_end SilphCo6Text8: - TX_ASM + text_asm ld hl, SilphCo6TrainerHeader2 call TalkToTrainer jp TextScriptEnd SilphCo6BattleText4: - TX_FAR _SilphCo6BattleText4 - db "@" + text_far _SilphCo6BattleText4 + text_end SilphCo6EndBattleText4: - TX_FAR _SilphCo6EndBattleText4 - db "@" + text_far _SilphCo6EndBattleText4 + text_end SilphCo6AfterBattleText4: - TX_FAR _SilphCo6AfterBattleText4 - db "@" + text_far _SilphCo6AfterBattleText4 + text_end diff --git a/scripts/SilphCo7F.asm b/scripts/SilphCo7F.asm index a8dc032d6..b32f967b3 100755 --- a/scripts/SilphCo7F.asm +++ b/scripts/SilphCo7F.asm @@ -42,10 +42,10 @@ SilphCo7Script_51b77: predef_jump ReplaceTileBlock SilphCo7GateCoords: - db $03,$05 - db $02,$0A - db $06,$0A - db $FF + dbmapcoord 5, 3 + dbmapcoord 10, 2 + dbmapcoord 10, 6 + db -1 ; end SilphCo7Text_51bc8: push hl @@ -55,14 +55,14 @@ SilphCo7Text_51bc8: ld a, [hl] ld c, a xor a - ld [$ffe0], a + ldh [hUnlockedSilphCoDoors], a pop hl .asm_51bd4 ld a, [hli] cp $ff jr z, .asm_51bf0 push hl - ld hl, $ffe0 + ld hl, hUnlockedSilphCoDoors inc [hl] pop hl cp b @@ -80,12 +80,12 @@ SilphCo7Text_51bc8: ret .asm_51bf0 xor a - ld [$ffe0], a + ldh [hUnlockedSilphCoDoors], a ret SilphCo7Text_51bf4: EventFlagAddress hl, EVENT_SILPH_CO_7_UNLOCKED_DOOR1 - ld a, [$ffe0] + ldh a, [hUnlockedSilphCoDoors] and a ret z cp $1 @@ -125,7 +125,7 @@ SilphCo7Script0: call ArePlayerCoordsInArray jp nc, CheckFightingMapTrainers xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $f0 ld [wJoyIgnore], a ld a, PLAYER_DIR_DOWN @@ -135,10 +135,10 @@ SilphCo7Script0: ld a, MUSIC_MEET_RIVAL call PlayMusic ld a, $9 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, $9 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call SetSpriteMovementBytesToFF ld de, MovementData_51c7d ld a, [wCoordIndex] @@ -148,22 +148,22 @@ SilphCo7Script0: inc de .asm_51c6c ld a, $9 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call MoveSprite ld a, $3 jp SilphCo7Text_51c10 CoordsData_51c78: - db $02,$03 - db $03,$03 - db $FF + dbmapcoord 3, 2 + dbmapcoord 3, 3 + db -1 ; end MovementData_51c7d: db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP - db $FF + db -1 ; end SilphCo7Script3: ld a, [wd730] @@ -172,7 +172,7 @@ SilphCo7Script3: xor a ld [wJoyIgnore], a ld a, $d - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 ld hl, wd72d @@ -181,7 +181,7 @@ SilphCo7Script3: ld hl, SilphCo7Text14 ld de, SilphCo7Text_51ecd call SaveEndBattleTextPointers - ld a, OPP_SONY2 + ld a, OPP_RIVAL2 ld [wCurOpponent], a ld a, [wRivalStarter] add 4 @@ -200,15 +200,15 @@ SilphCo7Script4: ld a, PLAYER_DIR_DOWN ld [wPlayerMovingDirection], a ld a, $9 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a ld a, SPRITE_FACING_UP - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $f - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call StopAllMusic - callba Music_RivalAlternateStart + farcall Music_RivalAlternateStart ld de, MovementData_51d1d ld a, [wcf0d] cp $1 @@ -216,7 +216,7 @@ SilphCo7Script4: ld de, MovementData_51d1a .asm_51d0e ld a, $9 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call MoveSprite ld a, $5 jp SilphCo7Text_51c10 @@ -224,7 +224,7 @@ SilphCo7Script4: MovementData_51d1a: db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_RIGHT - db $FF + db -1 ; end MovementData_51d1d: db NPC_MOVEMENT_LEFT @@ -234,7 +234,7 @@ MovementData_51d1d: db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_DOWN - db $FF + db -1 ; end SilphCo7Script5: ld a, [wd730] @@ -266,46 +266,18 @@ SilphCo7F_TextPointers: dw SilphCo7Text15 SilphCo7TrainerHeader0: - dbEventFlagBit EVENT_BEAT_SILPH_CO_7F_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_7F_TRAINER_0 - dw SilphCo7BattleText1 ; TextBeforeBattle - dw SilphCo7AfterBattleText1 ; TextAfterBattle - dw SilphCo7EndBattleText1 ; TextEndBattle - dw SilphCo7EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_7F_TRAINER_0, 2, SilphCo7BattleText1, SilphCo7EndBattleText1, SilphCo7AfterBattleText1 SilphCo7TrainerHeader1: - dbEventFlagBit EVENT_BEAT_SILPH_CO_7F_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_7F_TRAINER_1 - dw SilphCo7BattleText2 ; TextBeforeBattle - dw SilphCo7AfterBattleText2 ; TextAfterBattle - dw SilphCo7EndBattleText2 ; TextEndBattle - dw SilphCo7EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_7F_TRAINER_1, 3, SilphCo7BattleText2, SilphCo7EndBattleText2, SilphCo7AfterBattleText2 SilphCo7TrainerHeader2: - dbEventFlagBit EVENT_BEAT_SILPH_CO_7F_TRAINER_2 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_7F_TRAINER_2 - dw SilphCo7BattleText3 ; TextBeforeBattle - dw SilphCo7AfterBattleText3 ; TextAfterBattle - dw SilphCo7EndBattleText3 ; TextEndBattle - dw SilphCo7EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_7F_TRAINER_2, 3, SilphCo7BattleText3, SilphCo7EndBattleText3, SilphCo7AfterBattleText3 SilphCo7TrainerHeader3: - dbEventFlagBit EVENT_BEAT_SILPH_CO_7F_TRAINER_3, 1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_7F_TRAINER_3, 1 - dw SilphCo7BattleText4 ; TextBeforeBattle - dw SilphCo7AfterBattleText4 ; TextAfterBattle - dw SilphCo7EndBattleText4 ; TextEndBattle - dw SilphCo7EndBattleText4 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_SILPH_CO_7F_TRAINER_3, 1, 4, SilphCo7BattleText4, SilphCo7EndBattleText4, SilphCo7AfterBattleText4 + db -1 ; end SilphCo7Text1: ; lapras guy - TX_ASM + text_asm ld a, [wd72e] bit 0, a ; got lapras? jr z, .givelapras @@ -336,23 +308,23 @@ SilphCo7Text1: jp TextScriptEnd .MeetLaprasGuyText - TX_FAR _MeetLaprasGuyText - db "@" + text_far _MeetLaprasGuyText + text_end .HeresYourLaprasText - TX_FAR _HeresYourLaprasText - db "@" + text_far _HeresYourLaprasText + text_end .LaprasGuyText - TX_FAR _LaprasGuyText - db "@" + text_far _LaprasGuyText + text_end .LaprasGuySavedText - TX_FAR _LaprasGuySavedText - db "@" + text_far _LaprasGuySavedText + text_end SilphCo7Text2: - TX_ASM + text_asm CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI jr nz, .savedsilph ld hl, .rockettext @@ -365,15 +337,15 @@ SilphCo7Text2: jp TextScriptEnd .rockettext - TX_FAR _SilphCo7Text_51e00 - db "@" + text_far _SilphCo7Text_51e00 + text_end .savedtext - TX_FAR _CanceledMasterBallText - db "@" + text_far _CanceledMasterBallText + text_end SilphCo7Text3: - TX_ASM + text_asm CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI jr nz, .savedsilph ld hl, .rockettext @@ -386,15 +358,15 @@ SilphCo7Text3: jp TextScriptEnd .rockettext - TX_FAR _SilphCo7Text_51e23 - db "@" + text_far _SilphCo7Text_51e23 + text_end .savedtext - TX_FAR _SilphCo7Text_51e28 - db "@" + text_far _SilphCo7Text_51e28 + text_end SilphCo7Text4: - TX_ASM + text_asm CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI jr nz, .savedsilph ld hl, .rockettext @@ -407,107 +379,107 @@ SilphCo7Text4: jp TextScriptEnd .rockettext - TX_FAR _SilphCo7Text_51e46 - db "@" + text_far _SilphCo7Text_51e46 + text_end .savedtext - TX_FAR _SilphCo7Text_51e4b - db "@" + text_far _SilphCo7Text_51e4b + text_end SilphCo7Text5: - TX_ASM + text_asm ld hl, SilphCo7TrainerHeader0 call TalkToTrainer jp TextScriptEnd SilphCo7BattleText1: - TX_FAR _SilphCo7BattleText1 - db "@" + text_far _SilphCo7BattleText1 + text_end SilphCo7EndBattleText1: - TX_FAR _SilphCo7EndBattleText1 - db "@" + text_far _SilphCo7EndBattleText1 + text_end SilphCo7AfterBattleText1: - TX_FAR _SilphCo7AfterBattleText1 - db "@" + text_far _SilphCo7AfterBattleText1 + text_end SilphCo7Text6: - TX_ASM + text_asm ld hl, SilphCo7TrainerHeader1 call TalkToTrainer jp TextScriptEnd SilphCo7BattleText2: - TX_FAR _SilphCo7BattleText2 - db "@" + text_far _SilphCo7BattleText2 + text_end SilphCo7EndBattleText2: - TX_FAR _SilphCo7EndBattleText2 - db "@" + text_far _SilphCo7EndBattleText2 + text_end SilphCo7AfterBattleText2: - TX_FAR _SilphCo7AfterBattleText2 - db "@" + text_far _SilphCo7AfterBattleText2 + text_end SilphCo7Text7: - TX_ASM + text_asm ld hl, SilphCo7TrainerHeader2 call TalkToTrainer jp TextScriptEnd SilphCo7BattleText3: - TX_FAR _SilphCo7BattleText3 - db "@" + text_far _SilphCo7BattleText3 + text_end SilphCo7EndBattleText3: - TX_FAR _SilphCo7EndBattleText3 - db "@" + text_far _SilphCo7EndBattleText3 + text_end SilphCo7AfterBattleText3: - TX_FAR _SilphCo7AfterBattleText3 - db "@" + text_far _SilphCo7AfterBattleText3 + text_end SilphCo7Text8: - TX_ASM + text_asm ld hl, SilphCo7TrainerHeader3 call TalkToTrainer jp TextScriptEnd SilphCo7BattleText4: - TX_FAR _SilphCo7BattleText4 - db "@" + text_far _SilphCo7BattleText4 + text_end SilphCo7EndBattleText4: - TX_FAR _SilphCo7EndBattleText4 - db "@" + text_far _SilphCo7EndBattleText4 + text_end SilphCo7AfterBattleText4: - TX_FAR _SilphCo7AfterBattleText4 - db "@" + text_far _SilphCo7AfterBattleText4 + text_end SilphCo7Text9: - TX_ASM + text_asm ld hl, SilphCo7Text_51ebe call PrintText jp TextScriptEnd SilphCo7Text_51ebe: - TX_FAR _SilphCo7Text_51ebe - db "@" + text_far _SilphCo7Text_51ebe + text_end SilphCo7Text13: - TX_FAR _SilphCo7Text_51ec3 - db "@" + text_far _SilphCo7Text_51ec3 + text_end SilphCo7Text14: - TX_FAR _SilphCo7Text_51ec8 - db "@" + text_far _SilphCo7Text_51ec8 + text_end SilphCo7Text_51ecd: - TX_FAR _SilphCo7Text_51ecd - db "@" + text_far _SilphCo7Text_51ecd + text_end SilphCo7Text15: - TX_FAR _SilphCo7Text_51ed2 - db "@" + text_far _SilphCo7Text_51ed2 + text_end diff --git a/scripts/SilphCo8F.asm b/scripts/SilphCo8F.asm index ce6579f78..c4e022d4d 100755 --- a/scripts/SilphCo8F.asm +++ b/scripts/SilphCo8F.asm @@ -24,8 +24,8 @@ SilphCo8Script_5651a: predef_jump ReplaceTileBlock SilphCo8GateCoords: - db $04,$03 - db $FF + dbmapcoord 3, 4 + db -1 ; end SilphCo8Script_56541: push hl @@ -35,14 +35,14 @@ SilphCo8Script_56541: ld a, [hl] ld c, a xor a - ld [$ffe0], a + ldh [hUnlockedSilphCoDoors], a pop hl .asm_5654d ld a, [hli] cp $ff jr z, .asm_56569 push hl - ld hl, $ffe0 + ld hl, hUnlockedSilphCoDoors inc [hl] pop hl cp b @@ -60,11 +60,11 @@ SilphCo8Script_56541: ret .asm_56569 xor a - ld [$ffe0], a + ldh [hUnlockedSilphCoDoors], a ret SilphCo8Script_5656d: - ld a, [$ffe0] + ldh a, [hUnlockedSilphCoDoors] and a ret z SetEvent EVENT_SILPH_CO_8_UNLOCKED_DOOR @@ -82,36 +82,15 @@ SilphCo8F_TextPointers: dw SilphCo8Text4 SilphCo8TrainerHeader0: - dbEventFlagBit EVENT_BEAT_SILPH_CO_8F_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_8F_TRAINER_0 - dw SilphCo8BattleText1 ; TextBeforeBattle - dw SilphCo8AfterBattleText1 ; TextAfterBattle - dw SilphCo8EndBattleText1 ; TextEndBattle - dw SilphCo8EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_8F_TRAINER_0, 4, SilphCo8BattleText1, SilphCo8EndBattleText1, SilphCo8AfterBattleText1 SilphCo8TrainerHeader1: - dbEventFlagBit EVENT_BEAT_SILPH_CO_8F_TRAINER_1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_8F_TRAINER_1 - dw SilphCo8BattleText2 ; TextBeforeBattle - dw SilphCo8AfterBattleText2 ; TextAfterBattle - dw SilphCo8EndBattleText2 ; TextEndBattle - dw SilphCo8EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_8F_TRAINER_1, 4, SilphCo8BattleText2, SilphCo8EndBattleText2, SilphCo8AfterBattleText2 SilphCo8TrainerHeader2: - dbEventFlagBit EVENT_BEAT_SILPH_CO_8F_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_8F_TRAINER_2 - dw SilphCo8BattleText3 ; TextBeforeBattle - dw SilphCo8AfterBattleText3 ; TextAfterBattle - dw SilphCo8EndBattleText3 ; TextEndBattle - dw SilphCo8EndBattleText3 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_SILPH_CO_8F_TRAINER_2, 4, SilphCo8BattleText3, SilphCo8EndBattleText3, SilphCo8AfterBattleText3 + db -1 ; end SilphCo8Text1: - TX_ASM + text_asm CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI ld hl, SilphCo8Text_565c3 jr nz, .asm_565b8 @@ -121,63 +100,63 @@ SilphCo8Text1: jp TextScriptEnd SilphCo8Text_565be: - TX_FAR _SilphCo8Text_565be - db "@" + text_far _SilphCo8Text_565be + text_end SilphCo8Text_565c3: - TX_FAR _SilphCo8Text_565c3 - db "@" + text_far _SilphCo8Text_565c3 + text_end SilphCo8Text2: - TX_ASM + text_asm ld hl, SilphCo8TrainerHeader0 call TalkToTrainer jp TextScriptEnd SilphCo8Text3: - TX_ASM + text_asm ld hl, SilphCo8TrainerHeader1 call TalkToTrainer jp TextScriptEnd SilphCo8Text4: - TX_ASM + text_asm ld hl, SilphCo8TrainerHeader2 call TalkToTrainer jp TextScriptEnd SilphCo8BattleText1: - TX_FAR _SilphCo8BattleText1 - db "@" + text_far _SilphCo8BattleText1 + text_end SilphCo8EndBattleText1: - TX_FAR _SilphCo8EndBattleText1 - db "@" + text_far _SilphCo8EndBattleText1 + text_end SilphCo8AfterBattleText1: - TX_FAR _SilphCo8AfterBattleText1 - db "@" + text_far _SilphCo8AfterBattleText1 + text_end SilphCo8BattleText2: - TX_FAR _SilphCo8BattleText2 - db "@" + text_far _SilphCo8BattleText2 + text_end SilphCo8EndBattleText2: - TX_FAR _SilphCo8EndBattleText2 - db "@" + text_far _SilphCo8EndBattleText2 + text_end SilphCo8AfterBattleText2: - TX_FAR _SilphCo8AfterBattleText2 - db "@" + text_far _SilphCo8AfterBattleText2 + text_end SilphCo8BattleText3: - TX_FAR _SilphCo8BattleText3 - db "@" + text_far _SilphCo8BattleText3 + text_end SilphCo8EndBattleText3: - TX_FAR _SilphCo8EndBattleText3 - db "@" + text_far _SilphCo8EndBattleText3 + text_end SilphCo8AfterBattleText3: - TX_FAR _SilphCo8AfterBattleText3 - db "@" + text_far _SilphCo8AfterBattleText3 + text_end diff --git a/scripts/SilphCo9F.asm b/scripts/SilphCo9F.asm index 66291e98b..1efb3d780 100755 --- a/scripts/SilphCo9F.asm +++ b/scripts/SilphCo9F.asm @@ -51,11 +51,11 @@ SilphCo9Script_5d7d1: predef_jump ReplaceTileBlock SilphCo9GateCoords: - db $04,$01 - db $02,$09 - db $05,$09 - db $06,$05 - db $FF + dbmapcoord 1, 4 + dbmapcoord 9, 2 + dbmapcoord 9, 5 + dbmapcoord 5, 6 + db -1 ; end SilphCo9Script_5d837: push hl @@ -65,14 +65,14 @@ SilphCo9Script_5d837: ld a, [hl] ld c, a xor a - ld [$ffe0], a + ldh [hUnlockedSilphCoDoors], a pop hl .asm_5d843 ld a, [hli] cp $ff jr z, .asm_5d85f push hl - ld hl, $ffe0 + ld hl, hUnlockedSilphCoDoors inc [hl] pop hl cp b @@ -90,12 +90,12 @@ SilphCo9Script_5d837: ret .asm_5d85f xor a - ld [$ffe0], a + ldh [hUnlockedSilphCoDoors], a ret SilphCo9Script_5d863: EventFlagAddress hl, EVENT_SILPH_CO_9_UNLOCKED_DOOR1 - ld a, [$ffe0] + ldh a, [hUnlockedSilphCoDoors] and a ret z cp $1 @@ -130,36 +130,15 @@ SilphCo9F_TextPointers: dw SilphCo9Text4 SilphCo9TrainerHeader0: - dbEventFlagBit EVENT_BEAT_SILPH_CO_9F_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_9F_TRAINER_0 - dw SilphCo9BattleText1 ; TextBeforeBattle - dw SilphCo9AfterBattleText1 ; TextAfterBattle - dw SilphCo9EndBattleText1 ; TextEndBattle - dw SilphCo9EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_9F_TRAINER_0, 4, SilphCo9BattleText1, SilphCo9EndBattleText1, SilphCo9AfterBattleText1 SilphCo9TrainerHeader1: - dbEventFlagBit EVENT_BEAT_SILPH_CO_9F_TRAINER_1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_9F_TRAINER_1 - dw SilphCo9BattleText2 ; TextBeforeBattle - dw SilphCo9AfterBattleText2 ; TextAfterBattle - dw SilphCo9EndBattleText2 ; TextEndBattle - dw SilphCo9EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_SILPH_CO_9F_TRAINER_1, 2, SilphCo9BattleText2, SilphCo9EndBattleText2, SilphCo9AfterBattleText2 SilphCo9TrainerHeader2: - dbEventFlagBit EVENT_BEAT_SILPH_CO_9F_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_SILPH_CO_9F_TRAINER_2 - dw SilphCo9BattleText3 ; TextBeforeBattle - dw SilphCo9AfterBattleText3 ; TextAfterBattle - dw SilphCo9EndBattleText3 ; TextEndBattle - dw SilphCo9EndBattleText3 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_SILPH_CO_9F_TRAINER_2, 4, SilphCo9BattleText3, SilphCo9EndBattleText3, SilphCo9AfterBattleText3 + db -1 ; end SilphCo9Text1: - TX_ASM + text_asm CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI jr nz, .asm_5d8dc ld hl, SilphCo9Text_5d8e5 @@ -178,67 +157,67 @@ SilphCo9Text1: jp TextScriptEnd SilphCo9Text_5d8e5: - TX_FAR _SilphCo9Text_5d8e5 - db "@" + text_far _SilphCo9Text_5d8e5 + text_end SilphCo9Text_5d8ea: - TX_FAR _SilphCo9Text_5d8ea - db "@" + text_far _SilphCo9Text_5d8ea + text_end SilphCo9Text_5d8ef: - TX_FAR _SilphCo9Text_5d8ef - db "@" + text_far _SilphCo9Text_5d8ef + text_end SilphCo9Text2: - TX_ASM + text_asm ld hl, SilphCo9TrainerHeader0 call TalkToTrainer jp TextScriptEnd SilphCo9Text3: - TX_ASM + text_asm ld hl, SilphCo9TrainerHeader1 call TalkToTrainer jp TextScriptEnd SilphCo9Text4: - TX_ASM + text_asm ld hl, SilphCo9TrainerHeader2 call TalkToTrainer jp TextScriptEnd SilphCo9BattleText1: - TX_FAR _SilphCo9BattleText1 - db "@" + text_far _SilphCo9BattleText1 + text_end SilphCo9EndBattleText1: - TX_FAR _SilphCo9EndBattleText1 - db "@" + text_far _SilphCo9EndBattleText1 + text_end SilphCo9AfterBattleText1: - TX_FAR _SilphCo9AfterBattleText1 - db "@" + text_far _SilphCo9AfterBattleText1 + text_end SilphCo9BattleText2: - TX_FAR _SilphCo9BattleText2 - db "@" + text_far _SilphCo9BattleText2 + text_end SilphCo9EndBattleText2: - TX_FAR _SilphCo9EndBattleText2 - db "@" + text_far _SilphCo9EndBattleText2 + text_end SilphCo9AfterBattleText2: - TX_FAR _SilphCo9AfterBattleText2 - db "@" + text_far _SilphCo9AfterBattleText2 + text_end SilphCo9BattleText3: - TX_FAR _SilphCo9BattleText3 - db "@" + text_far _SilphCo9BattleText3 + text_end SilphCo9EndBattleText3: - TX_FAR _SilphCo9EndBattleText3 - db "@" + text_far _SilphCo9EndBattleText3 + text_end SilphCo9AfterBattleText3: - TX_FAR _SilphCo9AfterBattleText3 - db "@" + text_far _SilphCo9AfterBattleText3 + text_end diff --git a/scripts/SilphCoElevator.asm b/scripts/SilphCoElevator.asm index 49de6b271..c898cbd17 100755 --- a/scripts/SilphCoElevator.asm +++ b/scripts/SilphCoElevator.asm @@ -41,7 +41,7 @@ SilphCoElevatorScript_457f1: ret SilphCoElevatorFloors: - db $0B ; num elements in list + db 11 ; # db FLOOR_1F db FLOOR_2F db FLOOR_3F @@ -53,35 +53,34 @@ SilphCoElevatorFloors: db FLOOR_9F db FLOOR_10F db FLOOR_11F - db $FF ; terminator + db -1 ; end -SilphCoElevatorWarpMaps: -; first byte is warp number -; second byte is map number ; These specify where the player goes after getting out of the elevator. - db $03, SILPH_CO_1F - db $02, SILPH_CO_2F - db $02, SILPH_CO_3F - db $02, SILPH_CO_4F - db $02, SILPH_CO_5F - db $02, SILPH_CO_6F - db $02, SILPH_CO_7F - db $02, SILPH_CO_8F - db $02, SILPH_CO_9F - db $02, SILPH_CO_10F - db $01, SILPH_CO_11F +SilphCoElevatorWarpMaps: + ; warp number, map id + db 3, SILPH_CO_1F + db 2, SILPH_CO_2F + db 2, SILPH_CO_3F + db 2, SILPH_CO_4F + db 2, SILPH_CO_5F + db 2, SILPH_CO_6F + db 2, SILPH_CO_7F + db 2, SILPH_CO_8F + db 2, SILPH_CO_9F + db 2, SILPH_CO_10F + db 1, SILPH_CO_11F SilphCoElevatorWarpMapsEnd: SilphCoElevatorScript_45827: call Delay3 - callba ShakeElevator + farcall ShakeElevator ret SilphCoElevator_TextPointers: dw SilphCoElevatorText1 SilphCoElevatorText1: - TX_ASM + text_asm call SilphCoElevatorScript_457f1 ld hl, SilphCoElevatorWarpMaps predef DisplayElevatorFloorMenu diff --git a/scripts/TradeCenter.asm b/scripts/TradeCenter.asm index ddb3061ea..dbed79c17 100644 --- a/scripts/TradeCenter.asm +++ b/scripts/TradeCenter.asm @@ -1,38 +1,38 @@ TradeCenter_Script: call EnableAutoTextBoxDrawing - ld a, [hSerialConnectionStatus] + ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK ld a, SPRITE_FACING_LEFT jr z, .next ld a, SPRITE_FACING_RIGHT .next - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a ld a, $1 - ld [H_SPRITEINDEX], a + ldh [hSpriteIndex], a call SetSpriteFacingDirection ld hl, wd72d bit 0, [hl] set 0, [hl] ret nz - ld hl, wSpriteStateData2 + $14 - ld a, $8 + ld hl, wSprite01StateData2MapY + ld a, 8 ; y ld [hli], a - ld a, $a + ld a, 10 ; x ld [hl], a ld a, SPRITE_FACING_LEFT - ld [wSpriteStateData1 + $19], a - ld a, [hSerialConnectionStatus] + ld [wSprite01StateData1FacingDirection], a + ldh a, [hSerialConnectionStatus] cp USING_INTERNAL_CLOCK ret z - ld a, $7 - ld [wSpriteStateData2 + $15], a + ld a, 7 ; x + ld [wSprite01StateData2MapX], a ld a, SPRITE_FACING_RIGHT - ld [wSpriteStateData1 + $19], a + ld [wSprite01StateData1FacingDirection], a ret TradeCenter_TextPointers: dw TradeCenterText1 TradeCenterText1: - TX_FAR _TradeCenterText1 - db "@" + text_far _TradeCenterText1 + text_end diff --git a/scripts/UndergroundPathNorthSouth.asm b/scripts/UndergroundPathNorthSouth.asm index 52b3d8bf0..00a7ef90d 100755 --- a/scripts/UndergroundPathNorthSouth.asm +++ b/scripts/UndergroundPathNorthSouth.asm @@ -2,4 +2,5 @@ UndergroundPathNorthSouth_Script: jp EnableAutoTextBoxDrawing UndergroundPathNorthSouth_TextPointers: - db "@" + + text_end ; unused diff --git a/scripts/UndergroundPathRoute5.asm b/scripts/UndergroundPathRoute5.asm index 23d72569a..5c0780508 100755 --- a/scripts/UndergroundPathRoute5.asm +++ b/scripts/UndergroundPathRoute5.asm @@ -3,16 +3,16 @@ UndergroundPathRoute5_Script: ld [wLastMap], a ret -UndergroundPathEntranceRoute5_5d6af: - db "@" +UndergroundPathEntranceRoute5_TextScriptEndingText: + text_end UndergroundPathRoute5_TextPointers: dw UndergroundPathEntranceRoute5Text1 UndergroundPathEntranceRoute5Text1: - TX_ASM - ld a, $9 + text_asm + ld a, TRADE_FOR_SPOT ld [wWhichTrade], a predef DoInGameTradeDialogue - ld hl, UndergroundPathEntranceRoute5_5d6af + ld hl, UndergroundPathEntranceRoute5_TextScriptEndingText ret diff --git a/scripts/UndergroundPathRoute6.asm b/scripts/UndergroundPathRoute6.asm index 0a690518a..e3994e335 100755 --- a/scripts/UndergroundPathRoute6.asm +++ b/scripts/UndergroundPathRoute6.asm @@ -7,5 +7,5 @@ UndergroundPathRoute6_TextPointers: dw UndergroundPathEntranceRoute6Text1 UndergroundPathEntranceRoute6Text1: - TX_FAR _UndergrdTunnelEntRoute6Text1 - db "@" + text_far _UndergrdTunnelEntRoute6Text1 + text_end diff --git a/scripts/UndergroundPathRoute7.asm b/scripts/UndergroundPathRoute7.asm index 3a1f14c7d..c311b409f 100755 --- a/scripts/UndergroundPathRoute7.asm +++ b/scripts/UndergroundPathRoute7.asm @@ -7,5 +7,5 @@ UndergroundPathRoute7_TextPointers: dw UndergroundPathEntranceRoute7Text1 UndergroundPathEntranceRoute7Text1: - TX_FAR _UndergroundPathEntRoute7Text1 - db "@" + text_far _UndergroundPathEntRoute7Text1 + text_end diff --git a/scripts/UndergroundPathRoute7Copy.asm b/scripts/UndergroundPathRoute7Copy.asm index 8a494caf7..2eb74fce8 100755 --- a/scripts/UndergroundPathRoute7Copy.asm +++ b/scripts/UndergroundPathRoute7Copy.asm @@ -8,17 +8,17 @@ UndergroundPathRoute7Copy_TextPointers: dw UGPathRoute7EntranceUnusedText_5d77d UGPathRoute7EntranceUnusedText_5d773: - TX_FAR _UGPathRoute7EntranceUnusedText_5d773 - db "@" + text_far _UGPathRoute7EntranceUnusedText_5d773 + text_end UGPathRoute7EntranceUnusedText_5d778: - TX_FAR _UGPathRoute7EntranceUnusedText_5d778 - db "@" + text_far _UGPathRoute7EntranceUnusedText_5d778 + text_end UGPathRoute7EntranceUnusedText_5d77d: - TX_FAR _UGPathRoute7EntranceUnusedText_5d77d - db "@" + text_far _UGPathRoute7EntranceUnusedText_5d77d + text_end UGPathRoute7EntranceUnusedText_5d782: - TX_FAR _UGPathRoute7EntranceUnusedText_5d782 - db "@" + text_far _UGPathRoute7EntranceUnusedText_5d782 + text_end diff --git a/scripts/UndergroundPathRoute8.asm b/scripts/UndergroundPathRoute8.asm index ab0a99778..6eab58c24 100755 --- a/scripts/UndergroundPathRoute8.asm +++ b/scripts/UndergroundPathRoute8.asm @@ -7,5 +7,5 @@ UndergroundPathRoute8_TextPointers: dw UndergroundPathEntranceRoute8Text1 UndergroundPathEntranceRoute8Text1: - TX_FAR _UndergroundPathEntRoute8Text1 - db "@" + text_far _UndergroundPathEntRoute8Text1 + text_end diff --git a/scripts/UndergroundPathWestEast.asm b/scripts/UndergroundPathWestEast.asm index cb1a7bd89..98571e177 100755 --- a/scripts/UndergroundPathWestEast.asm +++ b/scripts/UndergroundPathWestEast.asm @@ -2,4 +2,5 @@ UndergroundPathWestEast_Script: jp EnableAutoTextBoxDrawing UndergroundPathWestEast_TextPointers: - db "@" + + text_end ; unused diff --git a/scripts/VermilionCity.asm b/scripts/VermilionCity.asm index a9336970d..8a93b6da3 100755 --- a/scripts/VermilionCity.asm +++ b/scripts/VermilionCity.asm @@ -27,9 +27,9 @@ VermilionCity_Script: .setFirstLockTrashCanIndex call Random - ld a, [hRandomAdd] + ldh a, [hRandomAdd] ld b, a - ld a, [hRandomSub] + ldh a, [hRandomSub] adc b and $e ld [wFirstLockTrashCanIndex], a @@ -60,10 +60,10 @@ VermilionCityScript0: call ArePlayerCoordsInArray jr nc, .return xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld [wcf0d], a ld a, $3 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID CheckEvent EVENT_SS_ANNE_LEFT jr nz, .shipHasDeparted @@ -86,8 +86,8 @@ VermilionCityScript0: ret SSAnneTicketCheckCoords: - db $1e,$12 ; y, x - db $ff + dbmapcoord 18, 30 + db -1 ; end VermilionCityScript4: ld hl, SSAnneTicketCheckCoords @@ -116,7 +116,7 @@ VermilionCityScript3: ret nz xor a ld [wJoyIgnore], a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $0 ld [wVermilionCityCurScript], a ret @@ -148,11 +148,11 @@ VermilionCity_TextPointers: dw VermilionCityText14 VermilionCityText1: - TX_FAR _VermilionCityText1 - db "@" + text_far _VermilionCityText1 + text_end VermilionCityText2: - TX_ASM + text_asm CheckEvent EVENT_SS_ANNE_LEFT jr nz, .shipHasDeparted ld hl, VermilionCityTextDidYouSee @@ -165,15 +165,15 @@ VermilionCityText2: jp TextScriptEnd VermilionCityTextDidYouSee: - TX_FAR _VermilionCityTextDidYouSee - db "@" + text_far _VermilionCityTextDidYouSee + text_end VermilionCityTextSSAnneDeparted: - TX_FAR _VermilionCityTextSSAnneDeparted - db "@" + text_far _VermilionCityTextSSAnneDeparted + text_end VermilionCityText3: - TX_ASM + text_asm CheckEvent EVENT_SS_ANNE_LEFT jr nz, .shipHasDeparted ld a, [wSpritePlayerStateData1FacingDirection] @@ -210,37 +210,37 @@ VermilionCityText3: jp TextScriptEnd .inFrontOfOrBehindGuardCoords - db $1d,$13 ; y, x of tile in front of guard - db $1f,$13 ; y, x of tile behind guard - db $ff + dbmapcoord 19, 29 ; in front of guard + dbmapcoord 19, 31 ; behind guard + db -1 ; end SSAnneWelcomeText4: - TX_FAR _SSAnneWelcomeText4 - db "@" + text_far _SSAnneWelcomeText4 + text_end SSAnneWelcomeText9: - TX_FAR _SSAnneWelcomeText9 - db "@" + text_far _SSAnneWelcomeText9 + text_end SSAnneFlashedTicketText: - TX_FAR _SSAnneFlashedTicketText - db "@" + text_far _SSAnneFlashedTicketText + text_end SSAnneNoTicketText: - TX_FAR _SSAnneNoTicketText - db "@" + text_far _SSAnneNoTicketText + text_end SSAnneNotHereText: - TX_FAR _SSAnneNotHereText - db "@" + text_far _SSAnneNotHereText + text_end VermilionCityText4: - TX_FAR _VermilionCityText4 - db "@" + text_far _VermilionCityText4 + text_end VermilionCityText5: - TX_FAR _VermilionCityText5 - TX_ASM + text_far _VermilionCityText5 + text_asm ld a, MACHOP call PlayCry call WaitForSoundToFinish @@ -248,39 +248,39 @@ VermilionCityText5: ret VermilionCityText15: - TX_FAR _VermilionCityText15 - db "@" + text_far _VermilionCityText15 + text_end VermilionCityText6: - TX_FAR _VermilionCityText6 - db "@" + text_far _VermilionCityText6 + text_end VermilionCityText8: - TX_ASM - callba Func_f1a8a + text_asm + farcall Func_f1a8a jp TextScriptEnd VermilionCityText9: - TX_ASM - callba Func_f1a96 + text_asm + farcall Func_f1a96 jp TextScriptEnd VermilionCityText12: - TX_ASM - callba Func_f1aa2 + text_asm + farcall Func_f1aa2 jp TextScriptEnd VermilionCityText13: - TX_ASM - callba Func_f1aae + text_asm + farcall Func_f1aae jp TextScriptEnd VermilionCityText14: - TX_ASM - callba Func_f1aba + text_asm + farcall Func_f1aba jp TextScriptEnd VermilionCityText7: - TX_ASM - callba Func_f1a0f + text_asm + farcall Func_f1a0f jp TextScriptEnd diff --git a/scripts/VermilionCity2.asm b/scripts/VermilionCity2.asm index eb7ea37a0..93aa8df5e 100755 --- a/scripts/VermilionCity2.asm +++ b/scripts/VermilionCity2.asm @@ -1,4 +1,4 @@ -Func_f1a0f: +Func_f1a0f:: CheckEvent EVENT_GOT_SQUIRTLE_FROM_OFFICER_JENNY jr nz, .asm_f1a69 ld a, [wBeatGymFlags] @@ -45,67 +45,67 @@ Func_f1a0f: ret OfficerJennyText1: - TX_FAR _OfficerJennyText1 - db "@" + text_far _OfficerJennyText1 + text_end OfficerJennyText2: - TX_FAR _OfficerJennyText2 - db "@" + text_far _OfficerJennyText2 + text_end OfficerJennyText3: - TX_FAR _OfficerJennyText3 - db $d - db "@" + text_far _OfficerJennyText3 + text_waitbutton + text_end OfficerJennyText4: - TX_FAR _OfficerJennyText4 - db "@" + text_far _OfficerJennyText4 + text_end OfficerJennyText5: - TX_FAR _OfficerJennyText5 - db "@" + text_far _OfficerJennyText5 + text_end -Func_f1a8a: +Func_f1a8a:: ld hl, VermilionCityText_f1a91 call PrintText ret VermilionCityText_f1a91: - TX_FAR _VermilionCityText8 - db "@" + text_far _VermilionCityText8 + text_end -Func_f1a96: +Func_f1a96:: ld hl, VermilionCityText_f1a9d call PrintText ret VermilionCityText_f1a9d: - TX_FAR _VermilionCityText9 - db "@" + text_far _VermilionCityText9 + text_end -Func_f1aa2: +Func_f1aa2:: ld hl, VermilionCityText_f1aa9 call PrintText ret VermilionCityText_f1aa9: - TX_FAR _VermilionCityText12 - db "@" + text_far _VermilionCityText12 + text_end -Func_f1aae: +Func_f1aae:: ld hl, VermilionCityText_f1ab5 call PrintText ret VermilionCityText_f1ab5: - TX_FAR _VermilionCityText13 - db "@" + text_far _VermilionCityText13 + text_end -Func_f1aba: +Func_f1aba:: ld hl, VermilionCityText_f1ac1 call PrintText ret VermilionCityText_f1ac1: - TX_FAR _VermilionCityText14 - db "@" + text_far _VermilionCityText14 + text_end diff --git a/scripts/VermilionDock.asm b/scripts/VermilionDock.asm index f5807dd42..0263669f5 100755 --- a/scripts/VermilionDock.asm +++ b/scripts/VermilionDock.asm @@ -21,7 +21,7 @@ VermilionDock_Script: ld a, $3 ld [wSimulatedJoypadStatesIndex], a xor a - ld [wSpriteStateData2 + $06], a + ld [wSpritePlayerStateData2MovementByte1], a ld [wOverrideSimulatedJoypadStatesMask], a dec a ld [wJoyIgnore], a @@ -44,24 +44,24 @@ VermilionDock_1db9b: ld c, BANK(Music_Surfing) ld a, MUSIC_SURFING call PlayMusic - callba LoadSmokeTileFourTimes + farcall LoadSmokeTileFourTimes xor a - ld [wSpriteStateData1 + 2], a + ld [wSpritePlayerStateData1ImageIndex], a ld c, 120 call DelayFrames ld b, $9c call CopyScreenTileBufferToVRAM - coord hl, 0, 10 + hlcoord 0, 10 ld bc, SCREEN_WIDTH * 6 ld a, $14 ; water tile call FillMemory ld a, 1 - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a call Delay3 xor a - ld [H_AUTOBGTRANSFERENABLED], a + ldh [hAutoBGTransferEnabled], a ld [wSSAnneSmokeDriftAmount], a - ld [rOBP1], a + ldh [rOBP1], a call UpdateGBCPal_OBP1 ld a, 88 ld [wSSAnneSmokeX], a @@ -78,7 +78,7 @@ VermilionDock_1db9b: ld d, $0 ld e, $8 .asm_1dbfa - ld hl, $0002 + ld hl, $2 add hl, bc ld a, l ld [wMapViewVRAMPointer], a @@ -104,11 +104,11 @@ VermilionDock_1db9b: dec e jr nz, .asm_1dbfa xor a - ld [rWY], a - ld [hWY], a + ldh [rWY], a + ldh [hWY], a call VermilionDock_EraseSSAnne ld a, $90 - ld [hWY], a + ldh [hWY], a ld a, $1 ld [wUpdateSpritesEnabled], a pop hl @@ -155,6 +155,7 @@ VermilionDock_EmitSmokePuff: ret VermilionDockOAMBlock: + ; tile id, attribute db $fc, $10 db $fd, $10 db $fe, $10 @@ -167,13 +168,13 @@ VermilionDock_1dc7c: ld h, $0 ld l, $80 .asm_1dc86 - ld a, [rLY] + ldh a, [rLY] cp l jr nz, .asm_1dc86 ld a, h - ld [rSCX], a + ldh [rSCX], a .asm_1dc8e - ld a, [rLY] + ldh a, [rLY] cp h jr z, .asm_1dc8e ret @@ -184,7 +185,7 @@ VermilionDock_EraseSSAnne: ld bc, (5 * BG_MAP_WIDTH) + SCREEN_WIDTH ld a, $14 ; water tile call FillMemory - ld hl, vBGMap0 + 10 * BG_MAP_WIDTH + hlbgcoord 0, 10 ld de, wVermilionDockTileMapBuffer ld bc, (6 * BG_MAP_WIDTH) / 16 call CopyVideoData @@ -194,7 +195,7 @@ VermilionDock_EraseSSAnne: ; the blocks is unnecessary because the blocks the ship occupies are south of ; the player and won't be redrawn when the player automatically walks north and ; exits the map. This code could be removed without affecting anything. - overworldMapCoord hl, 5, 2, VERMILION_DOCK_WIDTH + hlowcoord 5, 2, VERMILION_DOCK_WIDTH ld a, $d ; water block ld [hli], a ld [hli], a @@ -211,5 +212,5 @@ VermilionDock_TextPointers: dw VermilionDockText1 VermilionDockText1: - TX_FAR _VermilionDockText1 - db "@" + text_far _VermilionDockText1 + text_end diff --git a/scripts/VermilionGym.asm b/scripts/VermilionGym.asm index 0af379451..7343f37f7 100755 --- a/scripts/VermilionGym.asm +++ b/scripts/VermilionGym.asm @@ -3,7 +3,7 @@ VermilionGym_Script: bit 5, [hl] res 5, [hl] push hl - call nz, VermilionGymLoadName + call nz, .LoadNames pop hl bit 6, [hl] res 6, [hl] @@ -16,15 +16,15 @@ VermilionGym_Script: ld [wVermilionGymCurScript], a ret -VermilionGymLoadName: - ld hl, Gym3CityName - ld de, Gym3LeaderName +.LoadNames: + ld hl, .CityName + ld de, .LeaderName jp LoadGymLeaderAndCityName -Gym3CityName: +.CityName: db "VERMILION CITY@" -Gym3LeaderName: +.LeaderName: db "LT.SURGE@" VermilionGymSetDoorTile: @@ -63,26 +63,26 @@ VermilionGymLTSurgePostBattle: VermilionGymReceiveTM24: ld a, $6 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_BEAT_LT_SURGE - lb bc, TM_24, 1 + lb bc, TM_THUNDERBOLT, 1 call GiveItem jr nc, .BagFull ld a, $7 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_GOT_TM24 jr .gymVictory .BagFull ld a, $8 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID .gymVictory ld hl, wObtainedBadges - set 2, [hl] + set BIT_THUNDERBADGE, [hl] ld hl, wBeatGymFlags - set 2, [hl] + set BIT_THUNDERBADGE, [hl] ; deactivate gym trainers SetEventRange EVENT_BEAT_VERMILION_GYM_TRAINER_0, EVENT_BEAT_VERMILION_GYM_TRAINER_2 @@ -100,36 +100,15 @@ VermilionGym_TextPointers: dw TM24NoRoomText VermilionGymTrainerHeader0: - dbEventFlagBit EVENT_BEAT_VERMILION_GYM_TRAINER_0 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VERMILION_GYM_TRAINER_0 - dw VermilionGymBattleText1 ; TextBeforeBattle - dw VermilionGymAfterBattleText1 ; TextAfterBattle - dw VermilionGymEndBattleText1 ; TextEndBattle - dw VermilionGymEndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_VERMILION_GYM_TRAINER_0, 3, VermilionGymBattleText1, VermilionGymEndBattleText1, VermilionGymAfterBattleText1 VermilionGymTrainerHeader1: - dbEventFlagBit EVENT_BEAT_VERMILION_GYM_TRAINER_1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VERMILION_GYM_TRAINER_1 - dw VermilionGymBattleText2 ; TextBeforeBattle - dw VermilionGymAfterBattleText2 ; TextAfterBattle - dw VermilionGymEndBattleText2 ; TextEndBattle - dw VermilionGymEndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_VERMILION_GYM_TRAINER_1, 2, VermilionGymBattleText2, VermilionGymEndBattleText2, VermilionGymAfterBattleText2 VermilionGymTrainerHeader2: - dbEventFlagBit EVENT_BEAT_VERMILION_GYM_TRAINER_2 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VERMILION_GYM_TRAINER_2 - dw VermilionGymBattleText3 ; TextBeforeBattle - dw VermilionGymAfterBattleText3 ; TextAfterBattle - dw VermilionGymEndBattleText3 ; TextEndBattle - dw VermilionGymEndBattleText3 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_VERMILION_GYM_TRAINER_2, 3, VermilionGymBattleText3, VermilionGymEndBattleText3, VermilionGymAfterBattleText3 + db -1 ; end LTSurgeText: - TX_ASM + text_asm CheckEvent EVENT_BEAT_LT_SURGE jr z, .beforeBeat CheckEventReuseA EVENT_GOT_TM24 @@ -150,14 +129,14 @@ LTSurgeText: ld hl, ReceivedThunderbadgeText ld de, ReceivedThunderbadgeText call SaveEndBattleTextPointers - ld a, [H_SPRITEINDEX] + ldh a, [hSpriteIndex] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters ld a, $3 ld [wGymLeaderNo], a xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $3 ; set script index to LT Surge post-battle script ld [wVermilionGymCurScript], a ld [wCurMapScript], a @@ -165,89 +144,89 @@ LTSurgeText: jp TextScriptEnd LTSurgePreBattleText: - TX_FAR _LTSurgePreBattleText - db "@" + text_far _LTSurgePreBattleText + text_end LTSurgePostBattleAdviceText: - TX_FAR _LTSurgePostBattleAdviceText - db "@" + text_far _LTSurgePostBattleAdviceText + text_end LTSurgeThunderbadgeInfoText: - TX_FAR _LTSurgeThunderbadgeInfoText - db "@" + text_far _LTSurgeThunderbadgeInfoText + text_end ReceivedTM24Text: - TX_FAR _ReceivedTM24Text - TX_SFX_KEY_ITEM - TX_FAR _TM24ExplanationText - db "@" + text_far _ReceivedTM24Text + sound_get_key_item + text_far _TM24ExplanationText + text_end TM24NoRoomText: - TX_FAR _TM24NoRoomText - db "@" + text_far _TM24NoRoomText + text_end ReceivedThunderbadgeText: - TX_FAR _ReceivedThunderbadgeText - db "@" + text_far _ReceivedThunderbadgeText + text_end VermilionGymTrainerText1: - TX_ASM + text_asm ld hl, VermilionGymTrainerHeader0 call TalkToTrainer jp TextScriptEnd VermilionGymBattleText1: - TX_FAR _VermilionGymBattleText1 - db "@" + text_far _VermilionGymBattleText1 + text_end VermilionGymEndBattleText1: - TX_FAR _VermilionGymEndBattleText1 - db "@" + text_far _VermilionGymEndBattleText1 + text_end VermilionGymAfterBattleText1: - TX_FAR _VermilionGymAfterBattleText1 - db "@" + text_far _VermilionGymAfterBattleText1 + text_end VermilionGymTrainerText2: - TX_ASM + text_asm ld hl, VermilionGymTrainerHeader1 call TalkToTrainer jp TextScriptEnd VermilionGymBattleText2: - TX_FAR _VermilionGymBattleText2 - db "@" + text_far _VermilionGymBattleText2 + text_end VermilionGymEndBattleText2: - TX_FAR _VermilionGymEndBattleText2 - db "@" + text_far _VermilionGymEndBattleText2 + text_end VermilionGymAfterBattleText2: - TX_FAR _VermilionGymAfterBattleText2 - db "@" + text_far _VermilionGymAfterBattleText2 + text_end VermilionGymTrainerText3: - TX_ASM + text_asm ld hl, VermilionGymTrainerHeader2 call TalkToTrainer jp TextScriptEnd VermilionGymBattleText3: - TX_FAR _VermilionGymBattleText3 - db "@" + text_far _VermilionGymBattleText3 + text_end VermilionGymEndBattleText3: - TX_FAR _VermilionGymEndBattleText3 - db "@" + text_far _VermilionGymEndBattleText3 + text_end VermilionGymAfterBattleText3: - TX_FAR _VermilionGymAfterBattleText3 - db "@" + text_far _VermilionGymAfterBattleText3 + text_end VermilionGymFanText: - TX_ASM + text_asm ld a, [wBeatGymFlags] - bit 2, a + bit BIT_THUNDERBADGE, a jr nz, .afterBeat ld hl, VermilionGymFanPreBattleText call PrintText @@ -259,9 +238,9 @@ VermilionGymFanText: jp TextScriptEnd VermilionGymFanPreBattleText: - TX_FAR _VermilionGymFanPreBattleText - db "@" + text_far _VermilionGymFanPreBattleText + text_end VermilionGymFanPostBattleText: - TX_FAR _VermilionGymFanPostBattleText - db "@" + text_far _VermilionGymFanPostBattleText + text_end diff --git a/scripts/VermilionMart.asm b/scripts/VermilionMart.asm index 00ba0c26f..88a632c88 100755 --- a/scripts/VermilionMart.asm +++ b/scripts/VermilionMart.asm @@ -7,9 +7,9 @@ VermilionMart_TextPointers: dw VermilionMartText3 VermilionMartText2: - TX_FAR _VermilionMartText2 - db "@" + text_far _VermilionMartText2 + text_end VermilionMartText3: - TX_FAR _VermilionMartText3 - db "@" + text_far _VermilionMartText3 + text_end diff --git a/scripts/VermilionOldRodHouse.asm b/scripts/VermilionOldRodHouse.asm index 772158ffd..524395d46 100755 --- a/scripts/VermilionOldRodHouse.asm +++ b/scripts/VermilionOldRodHouse.asm @@ -5,53 +5,53 @@ VermilionOldRodHouse_TextPointers: dw VermilionHouse2Text1 VermilionHouse2Text1: - TX_ASM + text_asm ld a, [wd728] - bit 3, a - jr nz, .asm_03ef5 + bit 3, a ; got old rod? + jr nz, .got_item ld hl, VermilionHouse2Text_560b1 call PrintText call YesNoChoice ld a, [wCurrentMenuItem] and a - jr nz, .asm_eb1b7 + jr nz, .refused lb bc, OLD_ROD, 1 call GiveItem - jr nc, .BagFull + jr nc, .bag_full ld hl, wd728 - set 3, [hl] + set 3, [hl] ; got old rod ld hl, VermilionHouse2Text_560b6 - jr .asm_5dd95 -.BagFull + jr .done +.bag_full ld hl, VermilionHouse2Text_560ca - jr .asm_5dd95 -.asm_eb1b7 + jr .done +.refused ld hl, VermilionHouse2Text_560c0 - jr .asm_5dd95 -.asm_03ef5 + jr .done +.got_item ld hl, VermilionHouse2Text_560c5 -.asm_5dd95 +.done call PrintText jp TextScriptEnd VermilionHouse2Text_560b1: - TX_FAR _VermilionHouse2Text_560b1 - db "@" + text_far _VermilionHouse2Text_560b1 + text_end VermilionHouse2Text_560b6: - TX_FAR _VermilionHouse2Text_560b6 - TX_SFX_ITEM_1 - TX_FAR _VermilionHouse2Text_560bb - db "@" + text_far _VermilionHouse2Text_560b6 + sound_get_item_1 + text_far _VermilionHouse2Text_560bb + text_end VermilionHouse2Text_560c0: - TX_FAR _VermilionHouse2Text_560c0 - db "@" + text_far _VermilionHouse2Text_560c0 + text_end VermilionHouse2Text_560c5: - TX_FAR _VermilionHouse2Text_560c5 - db "@" + text_far _VermilionHouse2Text_560c5 + text_end VermilionHouse2Text_560ca: - TX_FAR _VermilionHouse2Text_560ca - db "@" + text_far _VermilionHouse2Text_560ca + text_end diff --git a/scripts/VermilionPidgeyHouse.asm b/scripts/VermilionPidgeyHouse.asm index 5004d367b..fef476d5f 100755 --- a/scripts/VermilionPidgeyHouse.asm +++ b/scripts/VermilionPidgeyHouse.asm @@ -8,17 +8,17 @@ VermilionPidgeyHouse_TextPointers: dw VermilionHouse1Text3 VermilionHouse1Text1: - TX_FAR _VermilionHouse1Text1 - db "@" + text_far _VermilionHouse1Text1 + text_end VermilionHouse1Text2: - TX_FAR _VermilionHouse1Text2 - TX_ASM + text_far _VermilionHouse1Text2 + text_asm ld a, PIDGEY call PlayCry call WaitForSoundToFinish jp TextScriptEnd VermilionHouse1Text3: - TX_FAR _VermilionHouse1Text3 - db "@" + text_far _VermilionHouse1Text3 + text_end diff --git a/scripts/VermilionPokecenter.asm b/scripts/VermilionPokecenter.asm index e470b0285..dd3b514eb 100755 --- a/scripts/VermilionPokecenter.asm +++ b/scripts/VermilionPokecenter.asm @@ -10,20 +10,20 @@ VermilionPokecenter_TextPointers: dw VermilionPokecenterText5 VermilionHealNurseText: - TX_POKECENTER_NURSE + script_pokecenter_nurse VermilionPokecenterText2: - TX_FAR _VermilionPokecenterText2 - db "@" + text_far _VermilionPokecenterText2 + text_end VermilionPokecenterText3: - TX_FAR _VermilionPokecenterText3 - db "@" + text_far _VermilionPokecenterText3 + text_end VermilionTradeNurseText: - TX_CABLE_CLUB_RECEPTIONIST + script_cable_club_receptionist VermilionPokecenterText5: - TX_ASM - callab PokecenterChanseyText + text_asm + callfar PokecenterChanseyText jp TextScriptEnd diff --git a/scripts/VermilionTradeHouse.asm b/scripts/VermilionTradeHouse.asm index 7f7203645..6cdd849ab 100755 --- a/scripts/VermilionTradeHouse.asm +++ b/scripts/VermilionTradeHouse.asm @@ -5,5 +5,5 @@ VermilionTradeHouse_TextPointers: dw VermilionHouse3Text1 VermilionHouse3Text1: - TX_FAR TeachingHMsText - db "@" + text_far TeachingHMsText + text_end diff --git a/scripts/VictoryRoad1F.asm b/scripts/VictoryRoad1F.asm index 07f203b10..9d566e6fd 100755 --- a/scripts/VictoryRoad1F.asm +++ b/scripts/VictoryRoad1F.asm @@ -29,7 +29,7 @@ VictoryRoad1Script0: ld hl, CoordsData_5da5c call CheckBoulderCoords jp nc, CheckFightingMapTrainers - ld a, [H_SPRITEINDEX] + ldh a, [hSpriteIndex] cp $f jp z, CheckFightingMapTrainers ld hl, wCurrentMapScriptFlags @@ -38,7 +38,8 @@ VictoryRoad1Script0: ret CoordsData_5da5c: - db $0D,$11,$FF + dbmapcoord 17, 13 + db -1 ; end VictoryRoad1F_TextPointers: dw VictoryRoad1Text1 @@ -50,57 +51,43 @@ VictoryRoad1F_TextPointers: dw BoulderText VictoryRoad1TrainerHeader0: - dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_1_TRAINER_0 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_1_TRAINER_0 - dw VictoryRoad1BattleText1 ; TextBeforeBattle - dw VictoryRoad1AfterBattleText1 ; TextAfterBattle - dw VictoryRoad1EndBattleText1 ; TextEndBattle - dw VictoryRoad1EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_VICTORY_ROAD_1_TRAINER_0, 2, VictoryRoad1BattleText1, VictoryRoad1EndBattleText1, VictoryRoad1AfterBattleText1 VictoryRoad1TrainerHeader1: - dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_1_TRAINER_1 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_1_TRAINER_1 - dw VictoryRoad1BattleText2 ; TextBeforeBattle - dw VictoryRoad1AfterBattleText2 ; TextAfterBattle - dw VictoryRoad1EndBattleText2 ; TextEndBattle - dw VictoryRoad1EndBattleText2 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_VICTORY_ROAD_1_TRAINER_1, 2, VictoryRoad1BattleText2, VictoryRoad1EndBattleText2, VictoryRoad1AfterBattleText2 + db -1 ; end VictoryRoad1Text1: - TX_ASM + text_asm ld hl, VictoryRoad1TrainerHeader0 call TalkToTrainer jp TextScriptEnd VictoryRoad1Text2: - TX_ASM + text_asm ld hl, VictoryRoad1TrainerHeader1 call TalkToTrainer jp TextScriptEnd VictoryRoad1BattleText1: - TX_FAR _VictoryRoad1BattleText1 - db "@" + text_far _VictoryRoad1BattleText1 + text_end VictoryRoad1EndBattleText1: - TX_FAR _VictoryRoad1EndBattleText1 - db "@" + text_far _VictoryRoad1EndBattleText1 + text_end VictoryRoad1AfterBattleText1: - TX_FAR _VictoryRoad1AfterBattleText1 - db "@" + text_far _VictoryRoad1AfterBattleText1 + text_end VictoryRoad1BattleText2: - TX_FAR _VictoryRoad1BattleText2 - db "@" + text_far _VictoryRoad1BattleText2 + text_end VictoryRoad1EndBattleText2: - TX_FAR _VictoryRoad1EndBattleText2 - db "@" + text_far _VictoryRoad1EndBattleText2 + text_end VictoryRoad1AfterBattleText2: - TX_FAR _VictoryRoad1AfterBattleText2 - db "@" + text_far _VictoryRoad1AfterBattleText2 + text_end diff --git a/scripts/VictoryRoad2F.asm b/scripts/VictoryRoad2F.asm index a09e6f04c..e52556746 100755 --- a/scripts/VictoryRoad2F.asm +++ b/scripts/VictoryRoad2F.asm @@ -44,7 +44,7 @@ VictoryRoad2Script0: ld hl, CoordsData_51816 call CheckBoulderCoords jp nc, CheckFightingMapTrainers - ld a, [hSpriteIndexOrTextID] + ldh a, [hSpriteIndexOrTextID] cp $f jp z, CheckFightingMapTrainers EventFlagAddress hl, EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1 @@ -65,9 +65,9 @@ VictoryRoad2Script0: ret CoordsData_51816: - db $10,$01 - db $10,$09 - db $FF + dbmapcoord 1, 16 + dbmapcoord 9, 16 + db -1 ; end VictoryRoad2F_TextPointers: dw VictoryRoad2Text1 @@ -85,161 +85,119 @@ VictoryRoad2F_TextPointers: dw BoulderText VictoryRoad2TrainerHeader0: - dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_2_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_2_TRAINER_0 - dw VictoryRoad2BattleText1 ; TextBeforeBattle - dw VictoryRoad2AfterBattleText1 ; TextAfterBattle - dw VictoryRoad2EndBattleText1 ; TextEndBattle - dw VictoryRoad2EndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_VICTORY_ROAD_2_TRAINER_0, 4, VictoryRoad2BattleText1, VictoryRoad2EndBattleText1, VictoryRoad2AfterBattleText1 VictoryRoad2TrainerHeader1: - dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_2_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_2_TRAINER_1 - dw VictoryRoad2BattleText2 ; TextBeforeBattle - dw VictoryRoad2AfterBattleText2 ; TextAfterBattle - dw VictoryRoad2EndBattleText2 ; TextEndBattle - dw VictoryRoad2EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_VICTORY_ROAD_2_TRAINER_1, 3, VictoryRoad2BattleText2, VictoryRoad2EndBattleText2, VictoryRoad2AfterBattleText2 VictoryRoad2TrainerHeader2: - dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_2_TRAINER_2 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_2_TRAINER_2 - dw VictoryRoad2BattleText3 ; TextBeforeBattle - dw VictoryRoad2AfterBattleText3 ; TextAfterBattle - dw VictoryRoad2EndBattleText3 ; TextEndBattle - dw VictoryRoad2EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_VICTORY_ROAD_2_TRAINER_2, 3, VictoryRoad2BattleText3, VictoryRoad2EndBattleText3, VictoryRoad2AfterBattleText3 VictoryRoad2TrainerHeader3: - dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_2_TRAINER_3 - db ($1 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_2_TRAINER_3 - dw VictoryRoad2BattleText4 ; TextBeforeBattle - dw VictoryRoad2AfterBattleText4 ; TextAfterBattle - dw VictoryRoad2EndBattleText4 ; TextEndBattle - dw VictoryRoad2EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_VICTORY_ROAD_2_TRAINER_3, 1, VictoryRoad2BattleText4, VictoryRoad2EndBattleText4, VictoryRoad2AfterBattleText4 VictoryRoad2TrainerHeader4: - dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_2_TRAINER_4 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_2_TRAINER_4 - dw VictoryRoad2BattleText5 ; TextBeforeBattle - dw VictoryRoad2AfterBattleText5 ; TextAfterBattle - dw VictoryRoad2EndBattleText5 ; TextEndBattle - dw VictoryRoad2EndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_VICTORY_ROAD_2_TRAINER_4, 3, VictoryRoad2BattleText5, VictoryRoad2EndBattleText5, VictoryRoad2AfterBattleText5 MoltresTrainerHeader: - dbEventFlagBit EVENT_BEAT_MOLTRES - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_MOLTRES - dw MoltresBattleText ; TextBeforeBattle - dw MoltresBattleText ; TextAfterBattle - dw MoltresBattleText ; TextEndBattle - dw MoltresBattleText ; TextEndBattle - - db $ff + trainer EVENT_BEAT_MOLTRES, 0, MoltresBattleText, MoltresBattleText, MoltresBattleText + db -1 ; end VictoryRoad2Text1: - TX_ASM + text_asm ld hl, VictoryRoad2TrainerHeader0 call TalkToTrainer jp TextScriptEnd VictoryRoad2Text2: - TX_ASM + text_asm ld hl, VictoryRoad2TrainerHeader1 call TalkToTrainer jp TextScriptEnd VictoryRoad2Text3: - TX_ASM + text_asm ld hl, VictoryRoad2TrainerHeader2 call TalkToTrainer jp TextScriptEnd VictoryRoad2Text4: - TX_ASM + text_asm ld hl, VictoryRoad2TrainerHeader3 call TalkToTrainer jp TextScriptEnd VictoryRoad2Text5: - TX_ASM + text_asm ld hl, VictoryRoad2TrainerHeader4 call TalkToTrainer jp TextScriptEnd MoltresText: - TX_ASM + text_asm ld hl, MoltresTrainerHeader call TalkToTrainer jp TextScriptEnd MoltresBattleText: - TX_FAR _MoltresBattleText - TX_ASM + text_far _MoltresBattleText + text_asm ld a, MOLTRES call PlayCry call WaitForSoundToFinish jp TextScriptEnd VictoryRoad2BattleText1: - TX_FAR _VictoryRoad2BattleText1 - db "@" + text_far _VictoryRoad2BattleText1 + text_end VictoryRoad2EndBattleText1: - TX_FAR _VictoryRoad2EndBattleText1 - db "@" + text_far _VictoryRoad2EndBattleText1 + text_end VictoryRoad2AfterBattleText1: - TX_FAR _VictoryRoad2AfterBattleText1 - db "@" + text_far _VictoryRoad2AfterBattleText1 + text_end VictoryRoad2BattleText2: - TX_FAR _VictoryRoad2BattleText2 - db "@" + text_far _VictoryRoad2BattleText2 + text_end VictoryRoad2EndBattleText2: - TX_FAR _VictoryRoad2EndBattleText2 - db "@" + text_far _VictoryRoad2EndBattleText2 + text_end VictoryRoad2AfterBattleText2: - TX_FAR _VictoryRoad2AfterBattleText2 - db "@" + text_far _VictoryRoad2AfterBattleText2 + text_end VictoryRoad2BattleText3: - TX_FAR _VictoryRoad2BattleText3 - db "@" + text_far _VictoryRoad2BattleText3 + text_end VictoryRoad2EndBattleText3: - TX_FAR _VictoryRoad2EndBattleText3 - db "@" + text_far _VictoryRoad2EndBattleText3 + text_end VictoryRoad2AfterBattleText3: - TX_FAR _VictoryRoad2AfterBattleText3 - db "@" + text_far _VictoryRoad2AfterBattleText3 + text_end VictoryRoad2BattleText4: - TX_FAR _VictoryRoad2BattleText4 - db "@" + text_far _VictoryRoad2BattleText4 + text_end VictoryRoad2EndBattleText4: - TX_FAR _VictoryRoad2EndBattleText4 - db "@" + text_far _VictoryRoad2EndBattleText4 + text_end VictoryRoad2AfterBattleText4: - TX_FAR _VictoryRoad2AfterBattleText4 - db "@" + text_far _VictoryRoad2AfterBattleText4 + text_end VictoryRoad2BattleText5: - TX_FAR _VictoryRoad2BattleText5 - db "@" + text_far _VictoryRoad2BattleText5 + text_end VictoryRoad2EndBattleText5: - TX_FAR _VictoryRoad2EndBattleText5 - db "@" + text_far _VictoryRoad2EndBattleText5 + text_end VictoryRoad2AfterBattleText5: - TX_FAR _VictoryRoad2AfterBattleText5 - db "@" + text_far _VictoryRoad2AfterBattleText5 + text_end diff --git a/scripts/VictoryRoad3F.asm b/scripts/VictoryRoad3F.asm index dc7a2aac7..f63a71e50 100755 --- a/scripts/VictoryRoad3F.asm +++ b/scripts/VictoryRoad3F.asm @@ -36,7 +36,7 @@ VictoryRoad3Script0: ld a, [wCoordIndex] cp $1 jr nz, .asm_449dc - ld a, [hSpriteIndexOrTextID] + ldh a, [hSpriteIndexOrTextID] cp $f ; Pikachu jp z, .asm_449fe ld hl, wCurrentMapScriptFlags @@ -54,9 +54,9 @@ VictoryRoad3Script0: predef_jump ShowObject .coordsData_449f9: - db $05,$03 - db $0F,$17 - db $FF + dbmapcoord 3, 5 + dbmapcoord 23, 15 + db -1 ; end .asm_449fe ld a, VICTORY_ROAD_2F @@ -90,111 +90,83 @@ VictoryRoad3F_TextPointers: dw BoulderText VictoryRoad3TrainerHeader0: - dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_3_TRAINER_0 - db ($1 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_3_TRAINER_0 - dw VictoryRoad3BattleText2 ; TextBeforeBattle - dw VictoryRoad3AfterBattleText2 ; TextAfterBattle - dw VictoryRoad3EndBattleText2 ; TextEndBattle - dw VictoryRoad3EndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_VICTORY_ROAD_3_TRAINER_0, 1, VictoryRoad3BattleText2, VictoryRoad3EndBattleText2, VictoryRoad3AfterBattleText2 VictoryRoad3TrainerHeader1: - dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_3_TRAINER_1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_3_TRAINER_1 - dw VictoryRoad3BattleText3 ; TextBeforeBattle - dw VictoryRoad3AfterBattleText3 ; TextAfterBattle - dw VictoryRoad3EndBattleText3 ; TextEndBattle - dw VictoryRoad3EndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_VICTORY_ROAD_3_TRAINER_1, 4, VictoryRoad3BattleText3, VictoryRoad3EndBattleText3, VictoryRoad3AfterBattleText3 VictoryRoad3TrainerHeader2: - dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_3_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_3_TRAINER_2 - dw VictoryRoad3BattleText4 ; TextBeforeBattle - dw VictoryRoad3AfterBattleText4 ; TextAfterBattle - dw VictoryRoad3EndBattleText4 ; TextEndBattle - dw VictoryRoad3EndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_VICTORY_ROAD_3_TRAINER_2, 4, VictoryRoad3BattleText4, VictoryRoad3EndBattleText4, VictoryRoad3AfterBattleText4 VictoryRoad3TrainerHeader3: - dbEventFlagBit EVENT_BEAT_VICTORY_ROAD_3_TRAINER_3 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VICTORY_ROAD_3_TRAINER_3 - dw VictoryRoad3BattleText5 ; TextBeforeBattle - dw VictoryRoad3AfterBattleText5 ; TextAfterBattle - dw VictoryRoad3EndBattleText5 ; TextEndBattle - dw VictoryRoad3EndBattleText5 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_VICTORY_ROAD_3_TRAINER_3, 4, VictoryRoad3BattleText5, VictoryRoad3EndBattleText5, VictoryRoad3AfterBattleText5 + db -1 ; end VictoryRoad3Text1: - TX_ASM + text_asm ld hl, VictoryRoad3TrainerHeader0 call TalkToTrainer jp TextScriptEnd VictoryRoad3Text2: - TX_ASM + text_asm ld hl, VictoryRoad3TrainerHeader1 call TalkToTrainer jp TextScriptEnd VictoryRoad3Text3: - TX_ASM + text_asm ld hl, VictoryRoad3TrainerHeader2 call TalkToTrainer jp TextScriptEnd VictoryRoad3Text4: - TX_ASM + text_asm ld hl, VictoryRoad3TrainerHeader3 call TalkToTrainer jp TextScriptEnd VictoryRoad3BattleText2: - TX_FAR _VictoryRoad3BattleText2 - db "@" + text_far _VictoryRoad3BattleText2 + text_end VictoryRoad3EndBattleText2: - TX_FAR _VictoryRoad3EndBattleText2 - db "@" + text_far _VictoryRoad3EndBattleText2 + text_end VictoryRoad3AfterBattleText2: - TX_FAR _VictoryRoad3AfterBattleText2 - db "@" + text_far _VictoryRoad3AfterBattleText2 + text_end VictoryRoad3BattleText3: - TX_FAR _VictoryRoad3BattleText3 - db "@" + text_far _VictoryRoad3BattleText3 + text_end VictoryRoad3EndBattleText3: - TX_FAR _VictoryRoad3EndBattleText3 - db "@" + text_far _VictoryRoad3EndBattleText3 + text_end VictoryRoad3AfterBattleText3: - TX_FAR _VictoryRoad3AfterBattleText3 - db "@" + text_far _VictoryRoad3AfterBattleText3 + text_end VictoryRoad3BattleText4: - TX_FAR _VictoryRoad3BattleText4 - db "@" + text_far _VictoryRoad3BattleText4 + text_end VictoryRoad3EndBattleText4: - TX_FAR _VictoryRoad3EndBattleText4 - db "@" + text_far _VictoryRoad3EndBattleText4 + text_end VictoryRoad3AfterBattleText4: - TX_FAR _VictoryRoad3AfterBattleText4 - db "@" + text_far _VictoryRoad3AfterBattleText4 + text_end VictoryRoad3BattleText5: - TX_FAR _VictoryRoad3BattleText5 - db "@" + text_far _VictoryRoad3BattleText5 + text_end VictoryRoad3EndBattleText5: - TX_FAR _VictoryRoad3EndBattleText5 - db "@" + text_far _VictoryRoad3EndBattleText5 + text_end VictoryRoad3AfterBattleText5: - TX_FAR _VictoryRoad3AfterBattleText5 - db "@" + text_far _VictoryRoad3AfterBattleText5 + text_end diff --git a/scripts/ViridianCity.asm b/scripts/ViridianCity.asm index 6dc68d4f8..d960b9cb6 100755 --- a/scripts/ViridianCity.asm +++ b/scripts/ViridianCity.asm @@ -33,11 +33,11 @@ ViridianCityScript_1905b: CheckEvent EVENT_VIRIDIAN_GYM_OPEN ret nz ld a, [wObtainedBadges] - cp %01111111 - jr nz, .gymClosed + cp $ff ^ (1 << BIT_EARTHBADGE) + jr nz, .gym_closed SetEvent EVENT_VIRIDIAN_GYM_OPEN ret -.gymClosed +.gym_closed ld a, [wYCoord] cp 8 ret nz @@ -45,7 +45,7 @@ ViridianCityScript_1905b: cp 32 ret nz ld a, $f - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID call StartSimulatingJoypadStates ld a, $1 @@ -55,7 +55,7 @@ ViridianCityScript_1905b: xor a ld [wSpritePlayerStateData1FacingDirection], a ld [wJoyIgnore], a - ld [hJoyHeld], a + ldh [hJoyHeld], a ld a, $6 ld [wViridianCityCurScript], a ret @@ -77,10 +77,10 @@ ViridianCityScript_190ab: cp 19 ret nz ld a, $5 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a - ld [hJoyHeld], a + ldh [hJoyHeld], a call ViridianCityScript_1914d ld a, $5 ld [wViridianCityCurScript], a @@ -106,14 +106,14 @@ ViridianCityScript_190db: ret ViridianCityScript_190ef: - ld a, [wSpriteStateData1 + 3 * $10 + 4] - ld [$ffeb], a - ld a, [wSpriteStateData1 + 3 * $10 + 6] - ld [$ffec], a - ld a, [wSpriteStateData2 + 3 * $10 + 4] - ld [$ffed], a - ld a, [wSpriteStateData2 + 3 * $10 + 5] - ld [$ffee], a + ld a, [wSprite03StateData1YPixels] + ldh [hSpriteScreenYCoord], a + ld a, [wSprite03StateData1XPixels] + ldh [hSpriteScreenXCoord], a + ld a, [wSprite03StateData2MapY] + ldh [hSpriteMapYCoord], a + ld a, [wSprite03StateData2MapX] + ldh [hSpriteMapXCoord], a ret ViridianCityScript4: @@ -124,7 +124,7 @@ ViridianCityScript4: xor a ld [wJoyIgnore], a ld a, $10 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wBattleType], a @@ -134,14 +134,14 @@ ViridianCityScript4: ret ViridianCityScript_1912a: - ld a, [$ffeb] - ld [wSpriteStateData1 + 3 * $10 + 4], a - ld a, [$ffec] - ld [wSpriteStateData1 + 3 * $10 + 6], a - ld a, [$ffed] - ld [wSpriteStateData2 + 3 * $10 + 4], a - ld a, [$ffee] - ld [wSpriteStateData2 + 3 * $10 + 5], a + ldh a, [hSpriteScreenYCoord] + ld [wSprite03StateData1YPixels], a + ldh a, [hSpriteScreenXCoord] + ld [wSprite03StateData1XPixels], a + ldh a, [hSpriteMapYCoord] + ld [wSprite03StateData2MapY], a + ldh a, [hSpriteMapXCoord] + ld [wSprite03StateData2MapX], a ret ViridianCityScript5: @@ -174,14 +174,14 @@ ViridianCityScript_19162: cp 19 ret nz ld a, $8 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a ld a, SPRITE_FACING_RIGHT - ld [hSpriteFacingDirection], a + ldh [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay ld a, $8 ld [wSpritePlayerStateData1FacingDirection], a ld a, $8 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld a, D_UP | D_DOWN | D_LEFT | D_RIGHT | START | SELECT ld [wJoyIgnore], a @@ -205,7 +205,7 @@ ViridianCityScript8: ld a, D_UP | D_DOWN | D_LEFT | D_RIGHT | START | SELECT ld [wJoyIgnore], a ld a, $8 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID xor a ld [wBattleType], a @@ -220,11 +220,11 @@ ViridianCityScript9: ld a, [wXCoord] cp 19 jr z, .asm_191e4 - callab Func_f1a01 + callfar Func_f1a01 ld de, ViridianCityOldManMovementData1 .asm_191e4 ld a, $8 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call MoveSprite ld a, $a ld [wViridianCityCurScript], a @@ -273,46 +273,46 @@ ViridianCity_TextPointers: dw ViridianCityText_13 ViridianCityText_0: - TX_ASM - callba Func_f18bb + text_asm + farcall Func_f18bb jp TextScriptEnd ViridianCityText_1: - TX_ASM - callba Func_f18c7 + text_asm + farcall Func_f18c7 jp TextScriptEnd ViridianCityText_2: - TX_ASM - callba Func_f18e9 + text_asm + farcall Func_f18e9 jp TextScriptEnd ViridianCityText_3: - TX_ASM - callba Func_f1911 + text_asm + farcall Func_f1911 jp TextScriptEnd ViridianCityText_4: - TX_ASM - callba Func_f192c + text_asm + farcall Func_f192c jp TextScriptEnd ViridianCityText_5: - TX_ASM - callba Func_f194a + text_asm + farcall Func_f194a jp TextScriptEnd ViridianCityText_6: - TX_ASM - callba Func_f198e + text_asm + farcall Func_f198e jp TextScriptEnd ViridianCityText_13: - TX_FAR _ViridianCityText_19219 - db "@" + text_far _ViridianCityText_19219 + text_end ViridianCityText_7: - TX_ASM + text_asm CheckEvent EVENT_02D jr nz, .asm_192a6 ld hl, ViridianCityText_192af @@ -330,34 +330,34 @@ ViridianCityText_7: jp TextScriptEnd ViridianCityText_192af: - TX_FAR _ViridianCityText_1920a - db "@" + text_far _ViridianCityText_1920a + text_end ViridianCityText_192b4: - TX_FAR _OldManTextAfterBattle - db "@" + text_far _OldManTextAfterBattle + text_end ViridianCityText_8: - TX_ASM - callba Func_f19c5 + text_asm + farcall Func_f19c5 jp TextScriptEnd ViridianCityText_9: - TX_ASM - callba Func_f19d1 + text_asm + farcall Func_f19d1 jp TextScriptEnd ViridianCityText_10: - TX_ASM - callba Func_f19dd + text_asm + farcall Func_f19dd jp TextScriptEnd ViridianCityText_11: - TX_ASM - callba Func_f19e9 + text_asm + farcall Func_f19e9 jp TextScriptEnd ViridianCityText_12: - TX_ASM - callba Func_f19f5 + text_asm + farcall Func_f19f5 jp TextScriptEnd diff --git a/scripts/ViridianCity2.asm b/scripts/ViridianCity2.asm index ffaeb4e2d..c2e8254eb 100755 --- a/scripts/ViridianCity2.asm +++ b/scripts/ViridianCity2.asm @@ -1,33 +1,33 @@ -Func_f18bb: +Func_f18bb:: ld hl, ViridianCityText_f18c2 call PrintText ret ViridianCityText_f18c2: - TX_FAR _ViridianCityText1 - db "@" + text_far _ViridianCityText1 + text_end -Func_f18c7: - ld hl, ViridianCityText_f18e4 +Func_f18c7:: + ld hl, ViridianCityText_19127 ld a, [wObtainedBadges] - cp %01111111 - jr z, .printAndDone + cp $ff ^ (1 << BIT_EARTHBADGE) + jr z, .done CheckEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI - jr nz, .printAndDone - ld hl, ViridianCityText_f18df -.printAndDone + jr nz, .done + ld hl, ViridianCityText_19122 +.done call PrintText ret -ViridianCityText_f18df: - TX_FAR _ViridianCityText_19122 - db "@" +ViridianCityText_19122: + text_far _ViridianCityText_19122 + text_end -ViridianCityText_f18e4: - TX_FAR _ViridianCityText_19127 - db "@" +ViridianCityText_19127: + text_far _ViridianCityText_19127 + text_end -Func_f18e9: +Func_f18e9:: ld hl, ViridianCityText_f1902 call PrintText call YesNoChoice @@ -41,18 +41,18 @@ Func_f18e9: ret ViridianCityText_f1902: - TX_FAR _ViridianCityText_1914d - db "@" + text_far _ViridianCityText_1914d + text_end ViridianCityText_f1907: - TX_FAR _ViridianCityText_19152 - db "@" + text_far _ViridianCityText_19152 + text_end ViridianCityText_f190c: - TX_FAR _ViridianCityText_19157 - db "@" + text_far _ViridianCityText_19157 + text_end -Func_f1911: +Func_f1911:: ld hl, ViridianCityText_f1927 CheckEvent EVENT_GOT_POKEDEX jr nz, .gotPokedex @@ -62,14 +62,14 @@ Func_f1911: ret ViridianCityText_f1922: - TX_FAR _ViridianCityText_19175 - db "@" + text_far _ViridianCityText_19175 + text_end ViridianCityText_f1927: - TX_FAR _ViridianCityText_1917a - db "@" + text_far _ViridianCityText_1917a + text_end -Func_f192c: +Func_f192c:: ld hl, ViridianCityText_f1945 call PrintText call StartSimulatingJoypadStates @@ -82,48 +82,48 @@ Func_f192c: ret ViridianCityText_f1945: - TX_FAR _ViridianCityText_19191 - db "@" + text_far _ViridianCityText_19191 + text_end -Func_f194a: +Func_f194a:: CheckEvent EVENT_GOT_TM42 - jr nz, .gotTm42 - ld hl, ViridianCityText_f1979 + jr nz, .got_item + ld hl, ViridianCityText_191ca call PrintText - lb bc, TM_42, 1 + lb bc, TM_DREAM_EATER, 1 call GiveItem - jr nc, .BagFull - ld hl, ViridianCityText_f197e + jr nc, .bag_full + ld hl, ReceivedTM42Text call PrintText SetEvent EVENT_GOT_TM42 ret -.BagFull - ld hl, ViridianCityText_f1989 +.bag_full + ld hl, TM42NoRoomText call PrintText ret -.gotTm42 - ld hl, ViridianCityText_f1984 +.got_item + ld hl, TM42Explanation call PrintText ret -ViridianCityText_f1979: - TX_FAR _ViridianCityText_191ca - db "@" +ViridianCityText_191ca: + text_far _ViridianCityText_191ca + text_end -ViridianCityText_f197e: - TX_FAR _ReceivedTM42Text - TX_SFX_ITEM_2 - db "@" +ReceivedTM42Text: + text_far _ReceivedTM42Text + sound_get_item_2 + text_end -ViridianCityText_f1984: - TX_FAR _TM42Explanation - db "@" +TM42Explanation: + text_far _TM42Explanation + text_end -ViridianCityText_f1989: - TX_FAR _TM42NoRoomText - db "@" +TM42NoRoomText: + text_far _TM42NoRoomText + text_end -Func_f198e: +Func_f198e:: ld hl, ViridianCityText_f19b6 call PrintText ld c, 2 @@ -131,77 +131,77 @@ Func_f198e: call YesNoChoice ld a, [wCurrentMenuItem] and a - jr nz, .hurry + jr nz, .refused ld hl, ViridianCityText_f19bb call PrintText ld a, $3 ld [wViridianCityCurScript], a jr .done -.hurry +.refused ld hl, ViridianCityText_f19c0 call PrintText .done ret ViridianCityText_f19b6: - TX_FAR _OldManAgainText1 - db "@" + text_far _OldManAgainText1 + text_end ViridianCityText_f19bb: - TX_FAR _OldManAgainText2 - db "@" + text_far _OldManAgainText2 + text_end ViridianCityText_f19c0: - TX_FAR _OldManAgainText3 - db "@" + text_far _OldManAgainText3 + text_end -Func_f19c5: +Func_f19c5:: ld hl, ViridianCityText_f19cc call PrintText ret ViridianCityText_f19cc: - TX_FAR _ViridianCityText8 - db "@" + text_far _ViridianCityText8 + text_end -Func_f19d1: +Func_f19d1:: ld hl, ViridianCityText_f19d8 call PrintText ret ViridianCityText_f19d8: - TX_FAR _ViridianCityText9 - db "@" + text_far _ViridianCityText9 + text_end -Func_f19dd: +Func_f19dd:: ld hl, ViridianCityText_f19e4 call PrintText ret ViridianCityText_f19e4: - TX_FAR _ViridianCityText10 - db "@" + text_far _ViridianCityText10 + text_end -Func_f19e9: +Func_f19e9:: ld hl, ViridianCityText_f19f0 call PrintText ret ViridianCityText_f19f0: - TX_FAR _ViridianCityText13 - db "@" + text_far _ViridianCityText13 + text_end -Func_f19f5: +Func_f19f5:: ld hl, ViridianCityText_f19fc call PrintText ret ViridianCityText_f19fc: - TX_FAR _ViridianCityText14 - db "@" + text_far _ViridianCityText14 + text_end -Func_f1a01: +Func_f1a01:: ld hl, Data_f1a0a ld b, SPRITE_FACING_RIGHT call TryApplyPikachuMovementData diff --git a/scripts/ViridianForest.asm b/scripts/ViridianForest.asm index fb9a71e31..ca212d8eb 100755 --- a/scripts/ViridianForest.asm +++ b/scripts/ViridianForest.asm @@ -31,176 +31,141 @@ ViridianForest_TextPointers: dw ViridianForestText16 ViridianForestTrainerHeader0: - dbEventFlagBit EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_0 - dw ViridianForestBattleText1 ; TextBeforeBattle - dw ViridianForestAfterBattleText1 ; TextAfterBattle - dw ViridianForestEndBattleText1 ; TextEndBattle - dw ViridianForestEndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_0, 4, ViridianForestBattleText1, ViridianForestEndBattleText1, ViridianForestAfterBattleText1 ViridianForestTrainerHeader1: - dbEventFlagBit EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_1 - dw ViridianForestBattleText2 ; TextBeforeBattle - dw ViridianForestAfterBattleText2 ; TextAfterBattle - dw ViridianForestEndBattleText2 ; TextEndBattle - dw ViridianForestEndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_1, 4, ViridianForestBattleText2, ViridianForestEndBattleText2, ViridianForestAfterBattleText2 ViridianForestTrainerHeader2: - dbEventFlagBit EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_2 - db ($1 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_2 - dw ViridianForestBattleText3 ; TextBeforeBattle - dw ViridianForestAfterBattleText3 ; TextAfterBattle - dw ViridianForestEndBattleText3 ; TextEndBattle - dw ViridianForestEndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_2, 1, ViridianForestBattleText3, ViridianForestEndBattleText3, ViridianForestAfterBattleText3 ViridianForestTrainerHeader3: - dbEventFlagBit EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_3 - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_3 - dw ViridianForestBattleText4 ; TextBeforeBattle - dw ViridianForestAfterBattleText4 ; TextAfterBattle - dw ViridianForestEndBattleText4 ; TextEndBattle - dw ViridianForestEndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_3, 0, ViridianForestBattleText4, ViridianForestEndBattleText4, ViridianForestAfterBattleText4 ViridianForestTrainerHeader4: - dbEventFlagBit EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_4 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_4 - dw ViridianForestBattleText5 ; TextBeforeBattle - dw ViridianForestAfterBattleText5 ; TextAfterBattle - dw ViridianForestEndBattleText5 ; TextEndBattle - dw ViridianForestEndBattleText5 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_4, 4, ViridianForestBattleText5, ViridianForestEndBattleText5, ViridianForestAfterBattleText5 + db -1 ; end ViridianForestText1: - TX_FAR _ViridianForestText1 - db "@" + text_far _ViridianForestText1 + text_end ViridianForestText2: - TX_ASM + text_asm ld hl, ViridianForestTrainerHeader0 jr ViridianForestTalkToTrainer ViridianForestText3: - TX_ASM + text_asm ld hl, ViridianForestTrainerHeader1 jr ViridianForestTalkToTrainer ViridianForestText4: - TX_ASM + text_asm ld hl, ViridianForestTrainerHeader2 jr ViridianForestTalkToTrainer ViridianForestText5: - TX_ASM + text_asm ld hl, ViridianForestTrainerHeader3 jr ViridianForestTalkToTrainer ViridianForestText6: - TX_ASM + text_asm ld hl, ViridianForestTrainerHeader4 ViridianForestTalkToTrainer: call TalkToTrainer jp TextScriptEnd ViridianForestBattleText1: - TX_FAR _ViridianForestBattleText1 - db "@" + text_far _ViridianForestBattleText1 + text_end ViridianForestEndBattleText1: - TX_FAR _ViridianForestEndBattleText1 - db "@" + text_far _ViridianForestEndBattleText1 + text_end ViridianForestAfterBattleText1: - TX_FAR _ViridianFrstAfterBattleText1 - db "@" + text_far _ViridianFrstAfterBattleText1 + text_end ViridianForestBattleText2: - TX_FAR _ViridianForestBattleText2 - db "@" + text_far _ViridianForestBattleText2 + text_end ViridianForestEndBattleText2: - TX_FAR _ViridianForestEndBattleText2 - db "@" + text_far _ViridianForestEndBattleText2 + text_end ViridianForestAfterBattleText2: - TX_FAR _ViridianFrstAfterBattleText2 - db "@" + text_far _ViridianFrstAfterBattleText2 + text_end ViridianForestBattleText3: - TX_FAR _ViridianForestBattleText3 - db "@" + text_far _ViridianForestBattleText3 + text_end ViridianForestEndBattleText3: - TX_FAR _ViridianForestEndBattleText3 - db "@" + text_far _ViridianForestEndBattleText3 + text_end ViridianForestAfterBattleText3: - TX_FAR _ViridianFrstAfterBattleText3 - db "@" + text_far _ViridianFrstAfterBattleText3 + text_end ViridianForestBattleText4: - TX_FAR _ViridianForestBattleTextPikaGirl - db "@" + text_far _ViridianForestBattleTextPikaGirl + text_end ViridianForestEndBattleText4: - TX_FAR _ViridianForestEndBattleTextPikaGirl - db "@" + text_far _ViridianForestEndBattleTextPikaGirl + text_end ViridianForestAfterBattleText4: - TX_FAR _ViridianForestAfterBattleTextPikaGirl - db "@" + text_far _ViridianForestAfterBattleTextPikaGirl + text_end ViridianForestBattleText5: - TX_FAR _ViridianForestBattleTextSamurai - db "@" + text_far _ViridianForestBattleTextSamurai + text_end ViridianForestEndBattleText5: - TX_FAR _ViridianForestEndBattleTextSamurai - db "@" + text_far _ViridianForestEndBattleTextSamurai + text_end ViridianForestAfterBattleText5: - TX_FAR _ViridianForestAfterBattleTextSamurai - db "@" + text_far _ViridianForestAfterBattleTextSamurai + text_end ViridianForestText10: - TX_FAR _ViridianForestText8 - db "@" + text_far _ViridianForestText8 + text_end ViridianForestText11: - TX_ASM + text_asm ld hl, Func_f2528 jp ViridianForestScript_6120d ViridianForestText12: - TX_ASM + text_asm ld hl, Func_f2534 jp ViridianForestScript_6120d ViridianForestText13: - TX_ASM + text_asm ld hl, Func_f2540 jp ViridianForestScript_6120d ViridianForestText14: - TX_ASM + text_asm ld hl, Func_f254c jp ViridianForestScript_6120d ViridianForestText15: - TX_ASM + text_asm ld hl, Func_f2558 jp ViridianForestScript_6120d ViridianForestText16: - TX_ASM + text_asm ld hl, Func_f2528 -ViridianForestScript_6120d +ViridianForestScript_6120d: ld b, BANK(Func_f2528) call Bankswitch jp TextScriptEnd diff --git a/scripts/ViridianForest2.asm b/scripts/ViridianForest2.asm index 489db39c3..e5f03ccbf 100755 --- a/scripts/ViridianForest2.asm +++ b/scripts/ViridianForest2.asm @@ -1,47 +1,47 @@ -Func_f2528: +Func_f2528:: ld hl, Text_f252f call PrintText ret Text_f252f: - TX_FAR _ViridianForestText9 - db "@" + text_far _ViridianForestText9 + text_end -Func_f2534: +Func_f2534:: ld hl, Text_f253b call PrintText ret Text_f253b: - TX_FAR _ViridianForestText10 - db "@" + text_far _ViridianForestText10 + text_end -Func_f2540: +Func_f2540:: ld hl, Text_f254a call PrintText ret Text_f254a: - TX_FAR _ViridianForestText11 - db "@" + text_far _ViridianForestText11 + text_end -Func_f254c: +Func_f254c:: ld hl, Text_f2553 call PrintText ret Text_f2553: - TX_FAR _ViridianForestText12 - db "@" + text_far _ViridianForestText12 + text_end -Func_f2558: +Func_f2558:: ld hl, Text_f255f call PrintText ret Text_f255f: - TX_FAR _ViridianForestText13 - db "@" + text_far _ViridianForestText13 + text_end Func_f2564: ld hl, ViridianForestText_f256b @@ -49,5 +49,5 @@ Func_f2564: ret ViridianForestText_f256b: - TX_FAR _ViridianForestText14 - db "@" + text_far _ViridianForestText14 + text_end diff --git a/scripts/ViridianForestNorthGate.asm b/scripts/ViridianForestNorthGate.asm index e421bf5b0..6aef26d3d 100755 --- a/scripts/ViridianForestNorthGate.asm +++ b/scripts/ViridianForestNorthGate.asm @@ -6,9 +6,9 @@ ViridianForestNorthGate_TextPointers: dw ViridianForestExitText2 ViridianForestExitText1: - TX_FAR _ViridianForestExitText1 - db "@" + text_far _ViridianForestExitText1 + text_end ViridianForestExitText2: - TX_FAR _ViridianForestExitText2 - db "@" + text_far _ViridianForestExitText2 + text_end diff --git a/scripts/ViridianForestSouthGate.asm b/scripts/ViridianForestSouthGate.asm index 6eaaaace4..7ef66b85a 100755 --- a/scripts/ViridianForestSouthGate.asm +++ b/scripts/ViridianForestSouthGate.asm @@ -7,9 +7,9 @@ ViridianForestSouthGate_TextPointers: dw ViridianForestEntranceText2 ViridianForestEntranceText1: - TX_FAR _ViridianForestEntranceText1 - db "@" + text_far _ViridianForestEntranceText1 + text_end ViridianForestEntranceText2: - TX_FAR _ViridianForestEntranceText2 - db "@" + text_far _ViridianForestEntranceText2 + text_end diff --git a/scripts/ViridianGym.asm b/scripts/ViridianGym.asm index b0f94b9d9..68da9301c 100755 --- a/scripts/ViridianGym.asm +++ b/scripts/ViridianGym.asm @@ -1,6 +1,6 @@ ViridianGym_Script: - ld hl, Gym8CityName - ld de, Gym8LeaderName + ld hl, .CityName + ld de, .LeaderName call LoadGymLeaderAndCityName call EnableAutoTextBoxDrawing ld hl, ViridianGymTrainerHeader0 @@ -10,9 +10,10 @@ ViridianGym_Script: ld [wViridianGymCurScript], a ret -Gym8CityName: +.CityName: db "VIRIDIAN CITY@" -Gym8LeaderName: + +.LeaderName: db "GIOVANNI@" ViridianGymScript_748d6: @@ -49,72 +50,68 @@ ViridianGymScript0: ld [wCurMapScript], a ret -;format: -;db y,x -;dw pointer to movement ViridianGymArrowTilePlayerMovement: - db $b,$13 - dw ViridianGymArrowMovement1 - db $1,$13 - dw ViridianGymArrowMovement2 - db $2,$12 - dw ViridianGymArrowMovement3 - db $2,$b - dw ViridianGymArrowMovement4 - db $a,$10 - dw ViridianGymArrowMovement5 - db $6,$4 - dw ViridianGymArrowMovement6 - db $d,$5 - dw ViridianGymArrowMovement7 - db $e,$4 - dw ViridianGymArrowMovement8 - db $f,$0 - dw ViridianGymArrowMovement9 - db $f,$1 - dw ViridianGymArrowMovement10 - db $10,$d - dw ViridianGymArrowMovement11 - db $11,$d - dw ViridianGymArrowMovement12 - db $FF - -;format: direction, count + map_coord_movement 19, 11, ViridianGymArrowMovement1 + map_coord_movement 19, 1, ViridianGymArrowMovement2 + map_coord_movement 18, 2, ViridianGymArrowMovement3 + map_coord_movement 11, 2, ViridianGymArrowMovement4 + map_coord_movement 16, 10, ViridianGymArrowMovement5 + map_coord_movement 4, 6, ViridianGymArrowMovement6 + map_coord_movement 5, 13, ViridianGymArrowMovement7 + map_coord_movement 4, 14, ViridianGymArrowMovement8 + map_coord_movement 0, 15, ViridianGymArrowMovement9 + map_coord_movement 1, 15, ViridianGymArrowMovement10 + map_coord_movement 13, 16, ViridianGymArrowMovement11 + map_coord_movement 13, 17, ViridianGymArrowMovement12 + db -1 ; end + ViridianGymArrowMovement1: - db D_UP,$09,$FF + db D_UP, 9 + db -1 ; end ViridianGymArrowMovement2: - db D_LEFT,$08,$FF + db D_LEFT, 8 + db -1 ; end ViridianGymArrowMovement3: - db D_DOWN,$09,$FF + db D_DOWN, 9 + db -1 ; end ViridianGymArrowMovement4: - db D_RIGHT,$06,$FF + db D_RIGHT, 6 + db -1 ; end ViridianGymArrowMovement5: - db D_DOWN,$02,$FF + db D_DOWN, 2 + db -1 ; end ViridianGymArrowMovement6: - db D_DOWN,$07,$FF + db D_DOWN, 7 + db -1 ; end ViridianGymArrowMovement7: - db D_RIGHT,$08,$FF + db D_RIGHT, 8 + db -1 ; end ViridianGymArrowMovement8: - db D_RIGHT,$09,$FF + db D_RIGHT, 9 + db -1 ; end ViridianGymArrowMovement9: - db D_UP,$08,$FF + db D_UP, 8 + db -1 ; end ViridianGymArrowMovement10: - db D_UP,$06,$FF + db D_UP, 6 + db -1 ; end ViridianGymArrowMovement11: - db D_LEFT,$06,$FF + db D_LEFT, 6 + db -1 ; end ViridianGymArrowMovement12: - db D_LEFT,$0C,$FF + db D_LEFT, 12 + db -1 ; end ViridianGymScript4: ld a, [wSimulatedJoypadStatesIndex] @@ -128,7 +125,7 @@ ViridianGymScript4: ld [wCurMapScript], a ret .asm_74980 - jpba LoadSpinnerArrowTiles + farjp LoadSpinnerArrowTiles ViridianGymScript3: ld a, [wIsInBattle] @@ -138,26 +135,26 @@ ViridianGymScript3: ld [wJoyIgnore], a ViridianGymScript3_74995: ld a, $c - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI - lb bc, TM_27, 1 + lb bc, TM_FISSURE, 1 call GiveItem jr nc, .BagFull ld a, $d - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_GOT_TM27 jr .gymVictory .BagFull ld a, $e - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID .gymVictory ld hl, wObtainedBadges - set 7, [hl] + set BIT_EARTHBADGE, [hl] ld hl, wBeatGymFlags - set 7, [hl] + set BIT_EARTHBADGE, [hl] ; deactivate gym trainers SetEventRange EVENT_BEAT_VIRIDIAN_GYM_TRAINER_0, EVENT_BEAT_VIRIDIAN_GYM_TRAINER_7 @@ -185,81 +182,25 @@ ViridianGym_TextPointers: dw ViridianGymText14 ViridianGymTrainerHeader0: - dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_0 - dw ViridianGymBattleText1 ; TextBeforeBattle - dw ViridianGymAfterBattleText1 ; TextAfterBattle - dw ViridianGymEndBattleText1 ; TextEndBattle - dw ViridianGymEndBattleText1 ; TextEndBattle - + trainer EVENT_BEAT_VIRIDIAN_GYM_TRAINER_0, 4, ViridianGymBattleText1, ViridianGymEndBattleText1, ViridianGymAfterBattleText1 ViridianGymTrainerHeader1: - dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_1 - dw ViridianGymBattleText2 ; TextBeforeBattle - dw ViridianGymAfterBattleText2 ; TextAfterBattle - dw ViridianGymEndBattleText2 ; TextEndBattle - dw ViridianGymEndBattleText2 ; TextEndBattle - + trainer EVENT_BEAT_VIRIDIAN_GYM_TRAINER_1, 4, ViridianGymBattleText2, ViridianGymEndBattleText2, ViridianGymAfterBattleText2 ViridianGymTrainerHeader2: - dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_2 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_2 - dw ViridianGymBattleText3 ; TextBeforeBattle - dw ViridianGymAfterBattleText3 ; TextAfterBattle - dw ViridianGymEndBattleText3 ; TextEndBattle - dw ViridianGymEndBattleText3 ; TextEndBattle - + trainer EVENT_BEAT_VIRIDIAN_GYM_TRAINER_2, 4, ViridianGymBattleText3, ViridianGymEndBattleText3, ViridianGymAfterBattleText3 ViridianGymTrainerHeader3: - dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_3 - db ($2 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_3 - dw ViridianGymBattleText4 ; TextBeforeBattle - dw ViridianGymAfterBattleText4 ; TextAfterBattle - dw ViridianGymEndBattleText4 ; TextEndBattle - dw ViridianGymEndBattleText4 ; TextEndBattle - + trainer EVENT_BEAT_VIRIDIAN_GYM_TRAINER_3, 2, ViridianGymBattleText4, ViridianGymEndBattleText4, ViridianGymAfterBattleText4 ViridianGymTrainerHeader4: - dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_4 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_4 - dw ViridianGymBattleText5 ; TextBeforeBattle - dw ViridianGymAfterBattleText5 ; TextAfterBattle - dw ViridianGymEndBattleText5 ; TextEndBattle - dw ViridianGymEndBattleText5 ; TextEndBattle - + trainer EVENT_BEAT_VIRIDIAN_GYM_TRAINER_4, 3, ViridianGymBattleText5, ViridianGymEndBattleText5, ViridianGymAfterBattleText5 ViridianGymTrainerHeader5: - dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_5 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_5 - dw ViridianGymBattleText6 ; TextBeforeBattle - dw ViridianGymAfterBattleText6 ; TextAfterBattle - dw ViridianGymEndBattleText6 ; TextEndBattle - dw ViridianGymEndBattleText6 ; TextEndBattle - + trainer EVENT_BEAT_VIRIDIAN_GYM_TRAINER_5, 4, ViridianGymBattleText6, ViridianGymEndBattleText6, ViridianGymAfterBattleText6 ViridianGymTrainerHeader6: - dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_6, 1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_6, 1 - dw ViridianGymBattleText7 ; TextBeforeBattle - dw ViridianGymAfterBattleText7 ; TextAfterBattle - dw ViridianGymEndBattleText7 ; TextEndBattle - dw ViridianGymEndBattleText7 ; TextEndBattle - + trainer EVENT_BEAT_VIRIDIAN_GYM_TRAINER_6, 1, 3, ViridianGymBattleText7, ViridianGymEndBattleText7, ViridianGymAfterBattleText7 ViridianGymTrainerHeader7: - dbEventFlagBit EVENT_BEAT_VIRIDIAN_GYM_TRAINER_7, 1 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_VIRIDIAN_GYM_TRAINER_7, 1 - dw ViridianGymBattleText8 ; TextBeforeBattle - dw ViridianGymAfterBattleText8 ; TextAfterBattle - dw ViridianGymEndBattleText8 ; TextEndBattle - dw ViridianGymEndBattleText8 ; TextEndBattle - - db $ff + trainer EVENT_BEAT_VIRIDIAN_GYM_TRAINER_7, 1, 4, ViridianGymBattleText8, ViridianGymEndBattleText8, ViridianGymAfterBattleText8 + db -1 ; end ViridianGymText1: - TX_ASM + text_asm CheckEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI jr z, .beginBattle CheckEventReuseA EVENT_GOT_TM27 @@ -289,7 +230,7 @@ ViridianGymText1: ld hl, ViridianGymText_74ad3 ld de, ViridianGymText_74ad3 call SaveEndBattleTextPointers - ld a, [H_SPRITEINDEX] + ldh a, [hSpriteIndex] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters @@ -301,181 +242,181 @@ ViridianGymText1: jp TextScriptEnd ViridianGymText_74ace: - TX_FAR _ViridianGymText_74ace - db "@" + text_far _ViridianGymText_74ace + text_end ViridianGymText_74ad3: - TX_FAR _ViridianGymText_74ad3 - TX_SFX_LEVEL_UP ; probably supposed to play SFX_GET_ITEM_1 but the wrong music bank is loaded - db "@" + text_far _ViridianGymText_74ad3 + sound_level_up ; probably supposed to play SFX_GET_ITEM_1 but the wrong music bank is loaded + text_end ViridianGymText_74ad9: - TX_FAR _ViridianGymText_74ad9 - TX_WAIT - db "@" + text_far _ViridianGymText_74ad9 + text_waitbutton + text_end ViridianGymText12: - TX_FAR _ViridianGymText12 - db "@" + text_far _ViridianGymText12 + text_end ViridianGymText13: - TX_FAR _ReceivedTM27Text - TX_SFX_ITEM_1 + text_far _ReceivedTM27Text + sound_get_item_1 TM27ExplanationText: - TX_FAR _TM27ExplanationText - db "@" + text_far _TM27ExplanationText + text_end ViridianGymText14: - TX_FAR _TM27NoRoomText - db "@" + text_far _TM27NoRoomText + text_end ViridianGymText2: - TX_ASM + text_asm ld hl, ViridianGymTrainerHeader0 call TalkToTrainer jp TextScriptEnd ViridianGymBattleText1: - TX_FAR _ViridianGymBattleText1 - db "@" + text_far _ViridianGymBattleText1 + text_end ViridianGymEndBattleText1: - TX_FAR _ViridianGymEndBattleText1 - db "@" + text_far _ViridianGymEndBattleText1 + text_end ViridianGymAfterBattleText1: - TX_FAR _ViridianGymAfterBattleText1 - db "@" + text_far _ViridianGymAfterBattleText1 + text_end ViridianGymText3: - TX_ASM + text_asm ld hl, ViridianGymTrainerHeader1 call TalkToTrainer jp TextScriptEnd ViridianGymBattleText2: - TX_FAR _ViridianGymBattleText2 - db "@" + text_far _ViridianGymBattleText2 + text_end ViridianGymEndBattleText2: - TX_FAR _ViridianGymEndBattleText2 - db "@" + text_far _ViridianGymEndBattleText2 + text_end ViridianGymAfterBattleText2: - TX_FAR _ViridianGymAfterBattleText2 - db "@" + text_far _ViridianGymAfterBattleText2 + text_end ViridianGymText4: - TX_ASM + text_asm ld hl, ViridianGymTrainerHeader2 call TalkToTrainer jp TextScriptEnd ViridianGymBattleText3: - TX_FAR _ViridianGymBattleText3 - db "@" + text_far _ViridianGymBattleText3 + text_end ViridianGymEndBattleText3: - TX_FAR _ViridianGymEndBattleText3 - db "@" + text_far _ViridianGymEndBattleText3 + text_end ViridianGymAfterBattleText3: - TX_FAR _ViridianGymAfterBattleText3 - db "@" + text_far _ViridianGymAfterBattleText3 + text_end ViridianGymText5: - TX_ASM + text_asm ld hl, ViridianGymTrainerHeader3 call TalkToTrainer jp TextScriptEnd ViridianGymBattleText4: - TX_FAR _ViridianGymBattleText4 - db "@" + text_far _ViridianGymBattleText4 + text_end ViridianGymEndBattleText4: - TX_FAR _ViridianGymEndBattleText4 - db "@" + text_far _ViridianGymEndBattleText4 + text_end ViridianGymAfterBattleText4: - TX_FAR _ViridianGymAfterBattleText4 - db "@" + text_far _ViridianGymAfterBattleText4 + text_end ViridianGymText6: - TX_ASM + text_asm ld hl, ViridianGymTrainerHeader4 call TalkToTrainer jp TextScriptEnd ViridianGymBattleText5: - TX_FAR _ViridianGymBattleText5 - db "@" + text_far _ViridianGymBattleText5 + text_end ViridianGymEndBattleText5: - TX_FAR _ViridianGymEndBattleText5 - db "@" + text_far _ViridianGymEndBattleText5 + text_end ViridianGymAfterBattleText5: - TX_FAR _ViridianGymAfterBattleText5 - db "@" + text_far _ViridianGymAfterBattleText5 + text_end ViridianGymText7: - TX_ASM + text_asm ld hl, ViridianGymTrainerHeader5 call TalkToTrainer jp TextScriptEnd ViridianGymBattleText6: - TX_FAR _ViridianGymBattleText6 - db "@" + text_far _ViridianGymBattleText6 + text_end ViridianGymEndBattleText6: - TX_FAR _ViridianGymEndBattleText6 - db "@" + text_far _ViridianGymEndBattleText6 + text_end ViridianGymAfterBattleText6: - TX_FAR _ViridianGymAfterBattleText6 - db "@" + text_far _ViridianGymAfterBattleText6 + text_end ViridianGymText8: - TX_ASM + text_asm ld hl, ViridianGymTrainerHeader6 call TalkToTrainer jp TextScriptEnd ViridianGymBattleText7: - TX_FAR _ViridianGymBattleText7 - db "@" + text_far _ViridianGymBattleText7 + text_end ViridianGymEndBattleText7: - TX_FAR _ViridianGymEndBattleText7 - db "@" + text_far _ViridianGymEndBattleText7 + text_end ViridianGymAfterBattleText7: - TX_FAR _ViridianGymAfterBattleText7 - db "@" + text_far _ViridianGymAfterBattleText7 + text_end ViridianGymText9: - TX_ASM + text_asm ld hl, ViridianGymTrainerHeader7 call TalkToTrainer jp TextScriptEnd ViridianGymBattleText8: - TX_FAR _ViridianGymBattleText8 - db "@" + text_far _ViridianGymBattleText8 + text_end ViridianGymEndBattleText8: - TX_FAR _ViridianGymEndBattleText8 - db "@" + text_far _ViridianGymEndBattleText8 + text_end ViridianGymAfterBattleText8: - TX_FAR _ViridianGymAfterBattleText8 - db "@" + text_far _ViridianGymAfterBattleText8 + text_end ViridianGymText10: - TX_ASM + text_asm CheckEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI jr nz, .asm_1abd1 ld hl, ViridianGymText_74bd4 @@ -488,9 +429,9 @@ ViridianGymText10: jp TextScriptEnd ViridianGymText_74bd4: - TX_FAR _ViridianGymText_74bd4 - db "@" + text_far _ViridianGymText_74bd4 + text_end ViridianGymText_74bd9: - TX_FAR _ViridianGymText_74bd9 - db "@" + text_far _ViridianGymText_74bd9 + text_end diff --git a/scripts/ViridianMart.asm b/scripts/ViridianMart.asm index d11457781..2d837018d 100755 --- a/scripts/ViridianMart.asm +++ b/scripts/ViridianMart.asm @@ -8,12 +8,12 @@ ViridianMart_Script: ViridianMartScript_1d47d: CheckEvent EVENT_OAK_GOT_PARCEL - jr nz, .asm_1d489 + jr nz, .delivered_parcel ld hl, ViridianMart_TextPointers - jr .asm_1d48c -.asm_1d489 + jr .done +.delivered_parcel ld hl, ViridianMart_TextPointers2 -.asm_1d48c +.done ld a, l ld [wMapTextPtr], a ld a, h @@ -28,7 +28,7 @@ ViridianMart_ScriptPointers: ViridianMartScript0: call UpdateSprites ld a, $4 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID ld hl, wSimulatedJoypadStatesEnd ld de, RLEMovement1d4bb @@ -41,9 +41,9 @@ ViridianMartScript0: ret RLEMovement1d4bb: - db D_LEFT, $01 - db D_UP, $02 - db $ff + db D_LEFT, 1 + db D_UP, 2 + db -1 ; end ViridianMartScript1: ld a, [wSimulatedJoypadStatesIndex] @@ -51,7 +51,7 @@ ViridianMartScript1: ret nz call Delay3 ld a, $5 - ld [hSpriteIndexOrTextID], a + ldh [hSpriteIndexOrTextID], a call DisplayTextID lb bc, OAKS_PARCEL, 1 call GiveItem @@ -79,28 +79,29 @@ ViridianMart_TextPointers: dw ViridianMartText3 dw ViridianMartText4 dw ViridianMartText5 + ViridianMart_TextPointers2: dw ViridianCashierText dw ViridianMartText2 dw ViridianMartText3 ViridianMartText1: - TX_FAR _ViridianMartText1 - db "@" + text_far _ViridianMartText1 + text_end ViridianMartText4: - TX_FAR _ViridianMartText4 - db "@" + text_far _ViridianMartText4 + text_end ViridianMartText5: - TX_FAR ViridianMartParcelQuestText - TX_SFX_KEY_ITEM - db "@" + text_far ViridianMartParcelQuestText + sound_get_key_item + text_end ViridianMartText2: - TX_FAR _ViridianMartText2 - db "@" + text_far _ViridianMartText2 + text_end ViridianMartText3: - TX_FAR _ViridianMartText3 - db "@" + text_far _ViridianMartText3 + text_end diff --git a/scripts/ViridianNicknameHouse.asm b/scripts/ViridianNicknameHouse.asm index 000fe82bd..df7482c2f 100755 --- a/scripts/ViridianNicknameHouse.asm +++ b/scripts/ViridianNicknameHouse.asm @@ -8,15 +8,15 @@ ViridianNicknameHouse_TextPointers: dw ViridianHouseText4 ViridianHouseText1: - TX_FAR _ViridianHouseText1 - db "@" + text_far _ViridianHouseText1 + text_end ViridianHouseText2: - TX_FAR _ViridianHouseText2 - db "@" + text_far _ViridianHouseText2 + text_end ViridianHouseText3: - TX_ASM + text_asm ld hl, ViridianHouseText_1d5b1 call PrintText ld a, SPEAROW @@ -25,9 +25,9 @@ ViridianHouseText3: jp TextScriptEnd ViridianHouseText_1d5b1: - TX_FAR _ViridianHouseText_1d5b1 - db "@" + text_far _ViridianHouseText_1d5b1 + text_end ViridianHouseText4: - TX_FAR _ViridianHouseText4 - db "@" + text_far _ViridianHouseText4 + text_end diff --git a/scripts/ViridianPokecenter.asm b/scripts/ViridianPokecenter.asm index 5f324bf72..25f4d637c 100755 --- a/scripts/ViridianPokecenter.asm +++ b/scripts/ViridianPokecenter.asm @@ -10,20 +10,20 @@ ViridianPokecenter_TextPointers: dw ViridianPokeCenterText5 ViridianHealNurseText: - TX_POKECENTER_NURSE + script_pokecenter_nurse ViridianPokeCenterText2: - TX_FAR _ViridianPokeCenterText2 - db "@" + text_far _ViridianPokeCenterText2 + text_end ViridianPokeCenterText3: - TX_FAR _ViridianPokeCenterText3 - db "@" + text_far _ViridianPokeCenterText3 + text_end ViridianTradeNurseText: - TX_CABLE_CLUB_RECEPTIONIST + script_cable_club_receptionist ViridianPokeCenterText5: - TX_ASM - callab PokecenterChanseyText + text_asm + callfar PokecenterChanseyText jp TextScriptEnd diff --git a/scripts/ViridianSchoolHouse.asm b/scripts/ViridianSchoolHouse.asm index ccfda145b..77dffa383 100755 --- a/scripts/ViridianSchoolHouse.asm +++ b/scripts/ViridianSchoolHouse.asm @@ -8,15 +8,15 @@ ViridianSchoolHouse_TextPointers: dw SchoolText3 SchoolText1: - TX_FAR _SchoolText1 - db "@" + text_far _SchoolText1 + text_end SchoolText2: - TX_ASM - callba Func_f1c0f + text_asm + farcall Func_f1c0f jp TextScriptEnd SchoolText3: - TX_ASM - callba Func_f1c03 + text_asm + farcall Func_f1c03 jp TextScriptEnd diff --git a/scripts/ViridianSchoolHouse2.asm b/scripts/ViridianSchoolHouse2.asm index 677a43ecd..e56448304 100755 --- a/scripts/ViridianSchoolHouse2.asm +++ b/scripts/ViridianSchoolHouse2.asm @@ -1,17 +1,17 @@ -Func_f1c03: +Func_f1c03:: ld hl, SchoolText_f1c0a call PrintText ret SchoolText_f1c0a: - TX_FAR _SchoolText3 - db "@" + text_far _SchoolText3 + text_end -Func_f1c0f: +Func_f1c0f:: ld hl, SchoolText_f1c16 call PrintText ret SchoolText_f1c16: - TX_FAR _SchoolText2 - db "@" + text_far _SchoolText2 + text_end diff --git a/scripts/WardensHouse.asm b/scripts/WardensHouse.asm index 69e199c9a..2dd0410c8 100755 --- a/scripts/WardensHouse.asm +++ b/scripts/WardensHouse.asm @@ -9,93 +9,93 @@ WardensHouse_TextPointers: dw FuchsiaHouse2Text5 FuchsiaHouse2Text1: - TX_ASM + text_asm CheckEvent EVENT_GOT_HM04 - jr nz, .subtract + jr nz, .got_item ld b, GOLD_TEETH call IsItemInBag - jr nz, .asm_3f30f + jr nz, .have_gold_teeth CheckEvent EVENT_GAVE_GOLD_TEETH - jr nz, .asm_60cba + jr nz, .gave_gold_teeth ld hl, WardenGibberishText1 call PrintText call YesNoChoice ld a, [wCurrentMenuItem] and a ld hl, WardenGibberishText3 - jr nz, .asm_61238 + jr nz, .refused ld hl, WardenGibberishText2 -.asm_61238 +.refused call PrintText - jr .asm_52039 -.asm_3f30f + jr .done +.have_gold_teeth ld hl, WardenTeethText1 call PrintText ld a, GOLD_TEETH - ld [$ffdb], a - callba RemoveItemByID + ldh [hItemToRemoveID], a + farcall RemoveItemByID SetEvent EVENT_GAVE_GOLD_TEETH -.asm_60cba +.gave_gold_teeth ld hl, WardenThankYouText call PrintText - lb bc, HM_04, 1 + lb bc, HM_STRENGTH, 1 call GiveItem - jr nc, .BagFull + jr nc, .bag_full ld hl, ReceivedHM04Text call PrintText SetEvent EVENT_GOT_HM04 - jr .asm_52039 -.subtract + jr .done +.got_item ld hl, HM04ExplanationText call PrintText - jr .asm_52039 -.BagFull + jr .done +.bag_full ld hl, HM04NoRoomText call PrintText -.asm_52039 +.done jp TextScriptEnd WardenGibberishText1: - TX_FAR _WardenGibberishText1 - db "@" + text_far _WardenGibberishText1 + text_end WardenGibberishText2: - TX_FAR _WardenGibberishText2 - db "@" + text_far _WardenGibberishText2 + text_end WardenGibberishText3: - TX_FAR _WardenGibberishText3 - db "@" + text_far _WardenGibberishText3 + text_end WardenTeethText1: - TX_FAR _WardenTeethText1 - TX_SFX_ITEM_1 + text_far _WardenTeethText1 + sound_get_item_1 WardenTeethText2: - TX_FAR _WardenTeethText2 - db "@" + text_far _WardenTeethText2 + text_end WardenThankYouText: - TX_FAR _WardenThankYouText - db "@" + text_far _WardenThankYouText + text_end ReceivedHM04Text: - TX_FAR _ReceivedHM04Text - TX_SFX_ITEM_1 - db "@" + text_far _ReceivedHM04Text + sound_get_item_1 + text_end HM04ExplanationText: - TX_FAR _HM04ExplanationText - db "@" + text_far _HM04ExplanationText + text_end HM04NoRoomText: - TX_FAR _HM04NoRoomText - db "@" + text_far _HM04NoRoomText + text_end FuchsiaHouse2Text5: FuchsiaHouse2Text4: - TX_ASM - ld a, [H_SPRITEINDEX] + text_asm + ldh a, [hSpriteIndex] cp $4 ld hl, FuchsiaHouse2Text_7517b jr nz, .asm_4c9a2 @@ -105,9 +105,9 @@ FuchsiaHouse2Text4: jp TextScriptEnd FuchsiaHouse2Text_75176: - TX_FAR _FuchsiaHouse2Text_75176 - db "@" + text_far _FuchsiaHouse2Text_75176 + text_end FuchsiaHouse2Text_7517b: - TX_FAR _FuchsiaHouse2Text_7517b - db "@" + text_far _FuchsiaHouse2Text_7517b + text_end diff --git a/sram.asm b/sram.asm index 966ccba33..07cfdfbaf 100644 --- a/sram.asm +++ b/sram.asm @@ -1,45 +1,45 @@ SECTION "Sprite Buffers", SRAM ; BANK 0 -sSpriteBuffer0:: ds SPRITEBUFFERSIZE ; a000 -sSpriteBuffer1:: ds SPRITEBUFFERSIZE ; a188 -sSpriteBuffer2:: ds SPRITEBUFFERSIZE ; a310 +sSpriteBuffer0:: ds SPRITEBUFFERSIZE +sSpriteBuffer1:: ds SPRITEBUFFERSIZE +sSpriteBuffer2:: ds SPRITEBUFFERSIZE ds $100 -sHallOfFame:: ds HOF_TEAM * HOF_TEAM_CAPACITY ; a598 +sHallOfFame:: ds HOF_TEAM * HOF_TEAM_CAPACITY SECTION "Save Data", SRAM ; BANK 1 ds $598 -sPlayerName:: ds NAME_LENGTH ; a598 -sMainData:: ds wMainDataEnd - wMainDataStart ; a5a3 -sSpriteData:: ds wSpriteDataEnd - wSpriteDataStart ; ad2c -sPartyData:: ds wPartyDataEnd - wPartyDataStart ; af2c -sCurBoxData:: ds wBoxDataEnd - wBoxDataStart ; b0c0 -sTilesetType:: ds 1 ; b522 -sMainDataCheckSum:: ds 1 ; b523 +sPlayerName:: ds NAME_LENGTH +sMainData:: ds wMainDataEnd - wMainDataStart +sSpriteData:: ds wSpriteDataEnd - wSpriteDataStart +sPartyData:: ds wPartyDataEnd - wPartyDataStart +sCurBoxData:: ds wBoxDataEnd - wBoxDataStart +sTilesetType:: ds 1 +sMainDataCheckSum:: ds 1 SECTION "Saved Boxes 1", SRAM ; BANK 2 -sBox1:: ds wBoxDataEnd - wBoxDataStart ; a000 -sBox2:: ds wBoxDataEnd - wBoxDataStart ; a462 -sBox3:: ds wBoxDataEnd - wBoxDataStart ; a8c4 -sBox4:: ds wBoxDataEnd - wBoxDataStart ; ad26 -sBox5:: ds wBoxDataEnd - wBoxDataStart ; b188 -sBox6:: ds wBoxDataEnd - wBoxDataStart ; b5ea -sBank2AllBoxesChecksum:: ds 1 ; ba4c -sBank2IndividualBoxChecksums:: ds 6 ; ba4d +sBox1:: ds wBoxDataEnd - wBoxDataStart +sBox2:: ds wBoxDataEnd - wBoxDataStart +sBox3:: ds wBoxDataEnd - wBoxDataStart +sBox4:: ds wBoxDataEnd - wBoxDataStart +sBox5:: ds wBoxDataEnd - wBoxDataStart +sBox6:: ds wBoxDataEnd - wBoxDataStart +sBank2AllBoxesChecksum:: ds 1 +sBank2IndividualBoxChecksums:: ds 6 SECTION "Saved Boxes 2", SRAM ; BANK 3 -sBox7:: ds wBoxDataEnd - wBoxDataStart ; a000 -sBox8:: ds wBoxDataEnd - wBoxDataStart ; a462 -sBox9:: ds wBoxDataEnd - wBoxDataStart ; a8c4 -sBox10:: ds wBoxDataEnd - wBoxDataStart ; ad26 -sBox11:: ds wBoxDataEnd - wBoxDataStart ; b188 -sBox12:: ds wBoxDataEnd - wBoxDataStart ; b5ea -sBank3AllBoxesChecksum:: ds 1 ; ba4c -sBank3IndividualBoxChecksums:: ds 6 ; ba4d +sBox7:: ds wBoxDataEnd - wBoxDataStart +sBox8:: ds wBoxDataEnd - wBoxDataStart +sBox9:: ds wBoxDataEnd - wBoxDataStart +sBox10:: ds wBoxDataEnd - wBoxDataStart +sBox11:: ds wBoxDataEnd - wBoxDataStart +sBox12:: ds wBoxDataEnd - wBoxDataStart +sBank3AllBoxesChecksum:: ds 1 +sBank3IndividualBoxChecksums:: ds 6 diff --git a/text.asm b/text.asm index 8a67c2316..3f76cc984 100644 --- a/text.asm +++ b/text.asm @@ -1,3399 +1,269 @@ -INCLUDE "charmap.asm" - -INCLUDE "constants/text_constants.asm" - -TEXT_1 EQU $20 -TEXT_2 EQU TEXT_1 + 1 -TEXT_3 EQU TEXT_2 + 1 -TEXT_4 EQU TEXT_3 + 1 -TEXT_5 EQU TEXT_4 + 1 -TEXT_6 EQU TEXT_5 + 1 -TEXT_7 EQU TEXT_6 + 1 -TEXT_8 EQU TEXT_7 + 1 -TEXT_9 EQU TEXT_8 + 1 -TEXT_10 EQU TEXT_9 + 1 -TEXT_11 EQU TEXT_10 + 1 - -POKEDEX_TEXT EQU TEXT_11 + 1 -MOVE_NAMES EQU POKEDEX_TEXT + 1 - -INCLUDE "macros.asm" - -INCLUDE "hram.asm" - - -SECTION "Text 1", ROMX ; BANK $26 - -_CardKeySuccessText1:: - text "Bingo!@@" - -_CardKeySuccessText2:: - text "" - line "The CARD KEY" - cont "opened the door!" - done - -_CardKeyFailText:: - text "Darn! It needs a" - line "CARD KEY!" - done - -_TrainerNameText:: - TX_RAM wcd6d - text ": @@" - -_NoNibbleText:: - text "Not even a nibble!" - prompt - -_NothingHereText:: - text "Looks like there's" - line "nothing here." - prompt - -_ItsABiteText:: - text "Oh!" - line "It's a bite!" - prompt - -_ExclamationText:: - text "!" - done - -_GroundRoseText:: - text "Ground rose up" - line "somewhere!" - done - -_BoulderText:: - text "This requires" - line "STRENGTH to move!" - done - -_MartSignText:: - text "All your item" - line "needs fulfilled!" - cont "#MON MART" - done - -_PokeCenterSignText:: - text "Heal Your #MON!" - line "#MON CENTER" - done - -_FoundItemText:: - text " found" - line "@" - TX_RAM wcf4b - text "!@@" - -_NoMoreRoomForItemText:: - text "No more room for" - line "items!" - done - -_OaksAideHiText:: - text "Hi! Remember me?" - line "I'm PROF.OAK's" - cont "AIDE!" - - para "If you caught @" - TX_NUM hOaksAideRequirement, 1, 3 - text "" - line "kinds of #MON," - cont "I'm supposed to" - cont "give you an" - cont "@" - TX_RAM wOaksAideRewardItemName - text "!" - - para "So, ! Have" - line "you caught at" - cont "least @" - TX_NUM hOaksAideRequirement, 1, 3 - text " kinds of" - cont "#MON?" - done - -_OaksAideUhOhText:: - text "Let's see..." - line "Uh-oh! You have" - cont "caught only @" - TX_NUM hOaksAideNumMonsOwned, 1, 3 - text "" - cont "kinds of #MON!" - - para "You need @" - TX_NUM hOaksAideRequirement, 1, 3 - text " kinds" - line "if you want the" - cont "@" - TX_RAM wOaksAideRewardItemName - text "." - done - -_OaksAideComeBackText:: - text "Oh. I see." - - para "When you get @" - TX_NUM hOaksAideRequirement, 1, 3 - text "" - line "kinds, come back" - cont "for @" - TX_RAM wOaksAideRewardItemName - text "." - done - -_OaksAideHereYouGoText:: - text "Great! You have" - line "caught @" - TX_NUM hOaksAideNumMonsOwned, 1, 3 - text " kinds " - cont "of #MON!" - cont "Congratulations!" - - para "Here you go!" - prompt - -_OaksAideGotItemText:: - text " got the" - line "@" - TX_RAM wOaksAideRewardItemName - text "!@@" - -_OaksAideNoRoomText:: - text "Oh! I see you" - line "don't have any" - cont "room for the" - cont "@" - TX_RAM wOaksAideRewardItemName - text "." - done - -_NurseChanseyText:: - text "CHANSEY: Chaaan" - line "sey!" - done - -INCLUDE "text/maps/ViridianForest.asm" -INCLUDE "text/maps/MtMoon1F.asm" -INCLUDE "text/maps/MtMoonB1F.asm" -INCLUDE "text/maps/MtMoonB2F.asm" -INCLUDE "text/maps/SSAnne1F.asm" -INCLUDE "text/maps/SSAnne2F.asm" -INCLUDE "text/maps/SSAnne3F.asm" -INCLUDE "text/maps/SSAnneBow.asm" -INCLUDE "text/maps/SSAnneKitchen.asm" -INCLUDE "text/maps/SSAnneCaptainsRoom.asm" -INCLUDE "text/maps/SSAnne1FRooms.asm" -INCLUDE "text/maps/SSAnne2FRooms.asm" -INCLUDE "text/maps/SSAnneB1FRooms.asm" -INCLUDE "text/maps/VictoryRoad3F.asm" -INCLUDE "text/maps/RocketHideoutB1F.asm" -INCLUDE "text/maps/RocketHideoutB2F.asm" -INCLUDE "text/maps/RocketHideoutB3F.asm" -INCLUDE "text/maps/RocketHideoutB4F.asm" -INCLUDE "text/maps/RocketHideoutElevator.asm" -INCLUDE "text/maps/SilphCo2F.asm" -INCLUDE "text/maps/SilphCo3F.asm" -INCLUDE "text/maps/SilphCo4F.asm" -INCLUDE "text/maps/SilphCo5F.asm" -INCLUDE "text/maps/SilphCo6F.asm" -INCLUDE "text/maps/SilphCo7F.asm" -INCLUDE "text/maps/SilphCo8F.asm" -INCLUDE "text/maps/SilphCo9F.asm" -INCLUDE "text/maps/SilphCo10F.asm" - - -SECTION "Text 2", ROMX ; BANK $27 - -INCLUDE "text/maps/SilphCo11F.asm" -INCLUDE "text/maps/PokemonMansion2F.asm" -INCLUDE "text/maps/PokemonMansion3F.asm" -INCLUDE "text/maps/PokemonMansionB1F.asm" -INCLUDE "text/maps/SafariZoneEast.asm" -INCLUDE "text/maps/SafariZoneNorth.asm" -INCLUDE "text/maps/SafariZoneWest.asm" -INCLUDE "text/maps/SafariZoneCenter.asm" -INCLUDE "text/maps/SafariZoneCenterRestHouse.asm" -INCLUDE "text/maps/SafariZoneSecretHouse.asm" -INCLUDE "text/maps/SafariZoneWestRestHouse.asm" -INCLUDE "text/maps/SafariZoneEastRestHouse.asm" -INCLUDE "text/maps/SafariZoneNorthRestHouse.asm" -INCLUDE "text/maps/CeruleanCaveB1F.asm" -INCLUDE "text/maps/VictoryRoad1F.asm" -INCLUDE "text/maps/LancesRoom.asm" -INCLUDE "text/maps/HallOfFame.asm" -INCLUDE "text/maps/ChampionsRoom.asm" -INCLUDE "text/maps/LoreleisRoom.asm" -INCLUDE "text/maps/BrunosRoom.asm" -INCLUDE "text/maps/AgathasRoom.asm" -INCLUDE "text/maps/RockTunnelB1F.asm" -INCLUDE "text/maps/SeafoamIslandsB4F.asm" - -_AIBattleWithdrawText:: - TX_RAM wTrainerName - text " with-" - line "drew @" - TX_RAM wEnemyMonNick - text "!" - prompt - -_AIBattleUseItemText:: - TX_RAM wTrainerName - text "" - line "used @" - TX_RAM wcd6d - text "" - cont "on @" - TX_RAM wEnemyMonNick - text "!" - prompt - -_BoxFullTest:: - text "The BOX is full!" - done - -_BoxWillBeClearedText:: - text "The BOX will be" - line "cleared." - done - -_TradeWentToText:: - TX_RAM wcf4b - text " went" - line "to @" - TX_RAM wGrassRate - text "." - done - -_TradeForText:: - text "For 's" - line "@" - TX_RAM wcf4b - text "," - done - -_TradeSendsText:: - TX_RAM wGrassRate - text " sends" - line "@" - TX_RAM wcd6d - text "." - done - -_TradeWavesFarewellText:: - TX_RAM wGrassRate - text " waves" - line "farewell as" - done - -_TradeTransferredText:: - TX_RAM wcd6d - text " is" - line "transferred." - done - -_TradeTakeCareText:: - text "Take good care of" - line "@" - TX_RAM wcd6d - text "." - done - -_TradeWillTradeText:: - TX_RAM wGrassRate - text " will" - line "trade @" - TX_RAM wcd6d - text "" - done - -_TradeforText:: - text "for 's" - line "@" - TX_RAM wcf4b - text "." - done - -_PlaySlotMachineText:: - text "A slot machine!" - line "Want to play?" - done - -_OutOfCoinsSlotMachineText:: - text "Darn!" - line "Ran out of coins!" - done - -_BetHowManySlotMachineText:: - text "Bet how many" - line "coins?" - done - -_StartSlotMachineText:: - text "Start!" - done - -_NotEnoughCoinsSlotMachineText:: - text "Not enough" - line "coins!" - prompt - -_OneMoreGoSlotMachineText:: - text "One more " - line "go?" - done - -_LinedUpText:: - text " lined up!" - line "Scored @" - TX_RAM wcf4b - text " coins!" - done - -_NotThisTimeText:: - text "Not this time!" - prompt - -_YeahText:: - text "Yeah!@@" - -_DexSeenOwnedText:: - text "#DEX Seen:@" - TX_NUM wDexRatingNumMonsSeen, 1, 3 - text "" - line " Owned:@" - TX_NUM wDexRatingNumMonsOwned, 1, 3 - db "@" - -_DexRatingText:: - text "#DEX Rating", $6d - done - -_GymStatueText1:: - TX_RAM wGymCityName - text "" - line "#MON GYM" - cont "LEADER: @" - TX_RAM wGymLeaderName - text "" - - para "WINNING TRAINERS:" - line "" - done - -_GymStatueText2:: - TX_RAM wGymCityName - text "" - line "#MON GYM" - cont "LEADER: @" - TX_RAM wGymLeaderName - text "" - - para "WINNING TRAINERS:" - line "" - cont "" - done - -_ViridianCityPokecenterGuyText:: - text "#MON CENTERs" - line "heal your tired," - cont "hurt or fainted" - cont "#MON!" - done - -_PewterCityPokecenterGuyText:: - text "Yawn!" - - para "When JIGGLYPUFF" - line "sings, #MON" - cont "get drowsy..." - - para "...Me too..." - line "Snore..." - done - -_CeruleanPokecenterGuyText:: - text "BILL has lots of" - line "#MON!" - - para "He collects rare" - line "ones too!" - done - -_LavenderPokecenterGuyText:: - text "CUBONEs wear" - line "skulls, right?" - - para "People will pay a" - line "lot for one!" - done - -_MtMoonPokecenterBenchGuyText:: - text "If you have too" - line "many #MON, you" - cont "should store them" - cont "via PC!" - done - -_RockTunnelPokecenterGuyText:: - text "I heard that" - line "GHOSTs haunt" - cont "LAVENDER TOWN!" - done - -_UnusedBenchGuyText1:: - text "I wish I could" - line "catch #MON." - done - -_UnusedBenchGuyText2:: - text "I'm tired from" - line "all the fun..." - done - -_UnusedBenchGuyText3:: - text "SILPH's manager" - line "is hiding in the" - cont "SAFARI ZONE." - done - -_VermilionPokecenterGuyText:: - text "It is true that a" - line "higher level" - cont "#MON will be" - cont "more powerful..." - - para "But, all #MON" - line "will have weak" - cont "points against" - cont "specific types." - - para "So, there is no" - line "universally" - cont "strong #MON." - done - -_CeladonCityPokecenterGuyText:: - text "If I had a BIKE," - line "I would go to" - cont "CYCLING ROAD!" - done - -_FuchsiaCityPokecenterGuyText:: - text "If you're studying " - line "#MON, visit" - cont "the SAFARI ZONE." - - para "It has all sorts" - line "of rare #MON." - done - -_CinnabarPokecenterGuyText:: - text "#MON can still" - line "learn techniques" - cont "after canceling" - cont "evolution." - - para "Evolution can wait" - line "until new moves" - cont "have been learned." - done - -_SaffronCityPokecenterGuyText1:: - text "It would be great" - line "if the ELITE FOUR" - cont "came and stomped" - cont "TEAM ROCKET!" - done - -_SaffronCityPokecenterGuyText2:: - text "TEAM ROCKET took" - line "off! We can go" - cont "out safely again!" - cont "That's great!" - done - -_CeladonCityHotelText:: - text "My sis brought me" - line "on this vacation!" - done - -_BookcaseText:: - text "Crammed full of" - line "#MON books!" - done - -_NewBicycleText:: - text "A shiny new" - line "BICYCLE!" - done - -_PushStartText:: - text "Push START to" - line "open the MENU!" - done - -_SaveOptionText:: - text "The SAVE option is" - line "on the MENU" - cont "screen." - done - -_StrengthsAndWeaknessesText:: - text "All #MON types" - line "have strong and" - cont "weak points" - cont "against others." - done - -_TimesUpText:: - text "PA: Ding-dong!" - - para "Time's up!" - prompt - -_GameOverText:: - text "PA: Your SAFARI" - line "GAME is over!" - done - -_CinnabarGymQuizDummyIntroText:: - text "#MON Quiz!" - - para "Get it right and" - line "the door opens to" - cont "the next room!" - - para "Get it wrong and" - line "face a trainer!" - - para "If you want to" - line "conserve your" - cont "#MON for the" - cont "GYM LEADER..." - - para "Then get it right!" - line "Here we go!" - prompt - -_CinnabarGymQuizIntroText:: - text "#MON Quiz!" - - para "Get it right and" - line "the door opens to" - cont "the next room!" - - para "Get it wrong and" - line "face the trainer" - cont "blocking the way!" - - para "If you want to" - line "conserve your" - cont "#MON for the" - cont "GYM LEADER..." - - para "Then get it right!" - line "Here we go!" - para "" - done - -_CinnabarGymQuizShortIntroText:: - text "#MON Quiz!" - - line "Test your skill!" - para "" - done - -_CinnabarQuizQuestionsText1:: - text "CATERPIE evolves" - line "into BUTTERFREE?" - done - -_CinnabarQuizQuestionsText2:: - text "There are 9" - line "certified #MON" - cont "LEAGUE BADGEs?" - done - -_CinnabarQuizQuestionsText3:: - text "POLIWAG evolves 3" - line "times?" - done - -_CinnabarQuizQuestionsText4:: - text "Are thunder moves" - line "effective against" - cont "ground element-" - cont "type #MON?" - done - -_CinnabarQuizQuestionsText5:: - text "#MON of the" - line "same kind and" - cont "level are not" - cont "identical?" - done - -_CinnabarQuizQuestionsText6:: - text "TM28 contains" - line "TOMBSTONER?" - done - -_CinnabarGymQuizCorrectText:: - text "You're absolutely" - line "correct!" - - para "Go on through!@@" - -_CinnabarGymQuizIncorrectText:: - text "Sorry! Bad call!" - prompt - -_MagazinesText:: - text "#MON magazines!" - - para "#MON notebooks!" - - para "#MON graphs!" - done - -_BillsHouseMonitorText:: - text "TELEPORTER is" - line "displayed on the" - cont "PC monitor." - done - -_BillsHouseInitiatedText:: - text " initiated" - line "TELEPORTER's Cell" - cont "Separator!@@" - -_BillsHousePokemonListText1:: - text "BILL's favorite" - line "#MON list!" - prompt - -_BillsHousePokemonListText2:: - text "Which #MON do" - line "you want to see?" - done - -_OakLabEmailText:: - text "There's an e-mail" - line "message here!" - - para "..." - - para "Calling all" - line "#MON trainers!" - - para "The elite trainers" - line "of #MON LEAGUE" - cont "are ready to take" - cont "on all comers!" - - para "Bring your best" - line "#MON and see" - cont "how you rate as a" - cont "trainer!" - - para "#MON LEAGUE HQ" - line "INDIGO PLATEAU" - - para "PS: PROF.OAK," - line "please visit us!" - cont "..." - done - -_GameCornerCoinCaseText:: - text "A COIN CASE is" - line "required!" - done - -_GameCornerNoCoinsText:: - text "You don't have" - line "any coins!" - done - -_GameCornerOutOfOrderText:: - text "OUT OF ORDER" - line "This is broken." - done - -_GameCornerOutToLunchText:: - text "OUT TO LUNCH" - line "This is reserved." - done - -_GameCornerSomeonesKeysText:: - text "Someone's keys!" - line "They'll be back." - done - -_JustAMomentText:: - text "Just a moment." - done - -TMNotebookText:: - text "It's a pamphlet" - line "on TMs." - - para "..." - - para "There are 50 TMs" - line "in all." - - para "There are also 5" - line "HMs that can be" - cont "used repeatedly." - - para "SILPH CO.@@" - -_TurnPageText:: - text "Turn the page?" - done - -_ViridianSchoolNotebookText5:: - text "GIRL: Hey! Don't" - line "look at my notes!@@" - -_ViridianSchoolNotebookText1:: - text "Looked at the" - line "notebook!" - - para "First page..." - - para "# BALLs are" - line "used to catch" - cont "#MON." - - para "Up to 6 #MON" - line "can be carried." - - para "People who raise" - line "and make #MON" - cont "fight are called" - cont "#MON trainers." - prompt - -_ViridianSchoolNotebookText2:: - text "Second page..." - - para "A healthy #MON" - line "may be hard to" - cont "catch, so weaken" - cont "it first!" - - para "Poison, burns and" - line "other damage are" - cont "effective!" - prompt - -_ViridianSchoolNotebookText3:: - text "Third page..." - - para "#MON trainers" - line "seek others to" - cont "engage in #MON" - cont "fights." - - para "Battles are" - line "constantly fought" - cont "at #MON GYMs." - prompt - -_ViridianSchoolNotebookText4:: - text "Fourth page..." - - para "The goal for" - line "#MON trainers" - cont "is to beat the " - cont "top 8 #MON" - cont "GYM LEADERs." - - para "Do so to earn the" - line "right to face..." - - para "The ELITE FOUR of" - line "#MON LEAGUE!" - prompt - -_EnemiesOnEverySideText:: - text "Enemies on every" - line "side!" - done - -_WhatGoesAroundComesAroundText:: - text "What goes around" - line "comes around!" - done - -_FightingDojoText:: - text "FIGHTING DOJO" - done - -_IndigoPlateauHQText:: - text "INDIGO PLATEAU" - line "#MON LEAGUE HQ" - done - -_RedBedroomSNESText:: - text " is" - line "playing the SNES!" - cont "...Okay!" - cont "It's time to go!" - done - -_Route15UpstairsBinocularsText:: - text "Looked into the" - line "binoculars..." - - para "A large, shining" - line "bird is flying" - cont "toward the sea." - done - -_AerodactylFossilText:: - text "AERODACTYL Fossil" - line "A primitive and" - cont "rare #MON." - done - -_KabutopsFossilText:: - text "KABUTOPS Fossil" - line "A primitive and" - cont "rare #MON." - done - -_FanClubPicture1Text:: - text "My cute RAPIDASH." - done - -_FanClubPicture2Text:: - text "My beloved FEAROW." - done - -_LinkCableHelpText1:: - text "TRAINER TIPS" - - para "Using a Game Link" - line "Cable" - prompt - -_LinkCableHelpText2:: - text "Which heading do" - line "you want to read?" - done - -_LinkCableInfoText1:: - text "When you have" - line "linked your GAME" - cont "BOY with another" - cont "GAME BOY, talk to" - cont "the attendant on" - cont "the right in any" - cont "#MON CENTER." - prompt - -_LinkCableInfoText2:: - text "COLOSSEUM lets" - line "you play against" - cont "a friend." - prompt - -_LinkCableInfoText3:: - text "TRADE CENTER is" - line "used for trading" - cont "#MON." - prompt - -_ViridianSchoolBlackboardText1:: - text "The blackboard" - line "describes #MON" - cont "STATUS changes" - cont "during battles." - prompt - -_ViridianSchoolBlackboardText2:: - text "Which heading do" - line "you want to read?" - done - -_ViridianBlackboardSleepText:: - text "A #MON can't" - line "attack if it's" - cont "asleep!" - - para "#MON will stay" - line "asleep even after" - cont "battles." - - para "Use AWAKENING to" - line "wake them up!" - prompt - -_ViridianBlackboardPoisonText:: - text "When poisoned, a" - line "#MON's health" - cont "steadily drops." - - para "Poison lingers" - line "after battles." - - para "Use an ANTIDOTE" - line "to cure poison!" - prompt - -_ViridianBlackboardPrlzText:: - text "Paralysis could" - line "make #MON" - cont "moves misfire!" - - para "Paralysis remains" - line "after battles." - - para "Use PARLYZ HEAL" - line "for treatment!" - prompt - -_ViridianBlackboardBurnText:: - text "A burn reduces" - line "power and speed." - cont "It also causes" - cont "ongoing damage." - - para "Burns remain" - line "after battles." - - para "Use BURN HEAL to" - line "cure a burn!" - prompt - -_ViridianBlackboardFrozenText:: - text "If frozen, a" - line "#MON becomes" - cont "totally immobile!" - - para "It stays frozen" - line "even after the" - cont "battle ends." - - para "Use ICE HEAL to" - line "thaw out #MON!" - prompt - -_VermilionGymTrashText:: - text "Nope, there's" - line "only trash here." - done - -_VermilionGymTrashSuccessText1:: - text "Hey! There's a" - line "switch under the" - cont "trash!" - cont "Turn it on!" - - para "The 1st electric" - line "lock opened!@@" - -_VermilionGymTrashSuccessText2:: - text "Hey! There's" - line "another switch" - cont "under the trash!" - cont "Turn it on!" - prompt - -_VermilionGymTrashSuccessText3:: - text "The 2nd electric" - line "lock opened!" - - para "The motorized door" - line "opened!@@" - -_VermilionGymTrashFailText:: - text "Nope! There's" - line "only trash here." - cont "Hey! The electric" - cont "locks were reset!@@" - -_FoundHiddenItemText:: - text " found" - line "@" - TX_RAM wcd6d - text "!@@" - -_HiddenItemBagFullText:: - text "But, has" - line "no more room for" - cont "other items!" - done - -_FoundHiddenCoinsText:: - text " found" - line "@" - TX_BCD hCoins, 2 | LEADING_ZEROES | LEFT_ALIGN - text " coins!@@" - -_FoundHiddenCoins2Text:: - text " found" - line "@" - TX_BCD hCoins, 2 | LEADING_ZEROES | LEFT_ALIGN - text " coins!@@" - -_DroppedHiddenCoinsText:: - text "" - para "Oops! Dropped" - line "some coins!" - done - -_IndigoPlateauStatuesText1:: - text "INDIGO PLATEAU" - prompt - -_IndigoPlateauStatuesText2:: - text "The ultimate goal" - line "of trainers!" - cont "#MON LEAGUE HQ" - done - -_IndigoPlateauStatuesText3:: - text "The highest" - line "#MON authority" - cont "#MON LEAGUE HQ" - done - -_PokemonBooksText:: - text "Crammed full of" - line "#MON books!" - done - -_DiglettSculptureText:: - text "It's a sculpture" - line "of DIGLETT." - done - -_ElevatorText:: - text "This is an" - line "elevator." - done - -_TownMapText:: - text "A TOWN MAP.@@" - -_PokemonStuffText:: - text "Wow! Tons of" - line "#MON stuff!" - done - -_OutOfSafariBallsText:: - text "PA: Ding-dong!" - - para "You are out of" - line "SAFARI BALLs!" - prompt - -_WildRanText:: - text "Wild @" - TX_RAM wEnemyMonNick - text "" - line "ran!" - prompt - -_EnemyRanText:: - text "Enemy @" - TX_RAM wEnemyMonNick - text "" - line "ran!" - prompt - -_HurtByPoisonText:: - text "'s" - line "hurt by poison!" - prompt - -_HurtByBurnText:: - text "'s" - line "hurt by the burn!" - prompt - -_HurtByLeechSeedText:: - text "LEECH SEED saps" - line "!" - prompt - -_EnemyMonFaintedText:: - text "Enemy @" - TX_RAM wEnemyMonNick - text "" - line "fainted!" - prompt - -_MoneyForWinningText:: - text " got ¥@" - TX_BCD wAmountMoneyWon, 3 | LEADING_ZEROES | LEFT_ALIGN - text "" - line "for winning!" - prompt - -_TrainerDefeatedText:: - text " defeated" - line "@" - TX_RAM wTrainerName - text "!" - prompt - -_PlayerMonFaintedText:: - TX_RAM wBattleMonNick - text "" - line "fainted!" - prompt - -_UseNextMonText:: - text "Use next #MON?" - done - -_Sony1WinText:: - text ": Yeah! Am" - line "I great or what?" - prompt - -_PlayerBlackedOutText2:: - text " is out of" - line "useable #MON!" - - para " blacked" - line "out!" - prompt - -_LinkBattleLostText:: - text " lost to" - line "@" - TX_RAM wTrainerName - text "!" - prompt - -_TrainerAboutToUseText:: - TX_RAM wTrainerName - text " is" - line "about to use" - cont"@" - TX_RAM wEnemyMonNick - text "!" - - para "Will " - line "change #MON?" - done - -_TrainerSentOutText:: - TX_RAM wTrainerName - text " sent" - line "out @" - TX_RAM wEnemyMonNick - text "!" - done - -_NoWillText:: - text "There's no will" - line "to fight!" - prompt - -_CantEscapeText:: - text "Can't escape!" - prompt - -_NoRunningText:: - text "No! There's no" - line "running from a" - cont "trainer battle!" - prompt - -_GotAwayText:: - text "Got away safely!" - prompt - -_RunAwayText:: - text "Hurry, get away!" - prompt - -_ItemsCantBeUsedHereText:: - text "Items can't be" - line "used here." - prompt - -_AlreadyOutText:: - TX_RAM wBattleMonNick - text " is" - line "already out!" - prompt - -_MoveNoPPText:: - text "No PP left for" - line "this move!" - prompt - -_MoveDisabledText:: - text "The move is" - line "disabled!" - prompt - -_NoMovesLeftText:: - TX_RAM wBattleMonNick - text " has no" - line "moves left!" - done - -_MultiHitText:: - text "Hit the enemy" - line "@" - TX_NUM wPlayerNumHits, 1, 1 - text " times!" - prompt - -_ScaredText:: - TX_RAM wBattleMonNick - text " is too" - line "scared to move!" - prompt - -_GetOutText:: - text "GHOST: Get out..." - line "Get out..." - prompt - -_FastAsleepText:: - text "" - line "is fast asleep!" - prompt - -_WokeUpText:: - text "" - line "woke up!" - prompt - -_IsFrozenText:: - text "" - line "is frozen solid!" - prompt - -_FullyParalyzedText:: - text "'s" - line "fully paralyzed!" - prompt - -_FlinchedText:: - text "" - line "flinched!" - prompt - -_MustRechargeText:: - text "" - line "must recharge!" - prompt - -_DisabledNoMoreText:: - text "'s" - line "disabled no more!" - prompt - -_IsConfusedText:: - text "" - line "is confused!" - prompt - -_HurtItselfText:: - text "It hurt itself in" - line "its confusion!" - prompt - -_ConfusedNoMoreText:: - text "'s" - line "confused no more!" - prompt - -_SavingEnergyText:: - text "" - line "is saving energy!" - prompt - -_UnleashedEnergyText:: - text "" - line "unleashed energy!" - prompt - -_ThrashingAboutText:: - text "'s" - line "thrashing about!" - done - -_AttackContinuesText:: - text "'s" - line "attack continues!" - done - -_CantMoveText:: - text "" - line "can't move!" - prompt - -_MoveIsDisabledText:: - text "'s" - line "@" - TX_RAM wcd6d - text " is" - cont "disabled!" - prompt - -_MonName1Text:: - text "@@" - -_Used1Text:: - text "" - line "used @@" - -_Used2Text:: - text "" - line "used @@" - -_InsteadText:: - text "instead," - cont "@@" - -_CF4BText:: - TX_RAM wcf4b - text "@" - -_ExclamationPoint1Text:: - text "!" - done - -_ExclamationPoint2Text:: - text "!" - done - -_ExclamationPoint3Text:: - text "!" - done - -_ExclamationPoint4Text:: - text "!" - done - -_ExclamationPoint5Text:: - text "!" - done - -_AttackMissedText:: - text "'s" - line "attack missed!" - prompt - -_KeptGoingAndCrashedText:: - text "" - line "kept going and" - cont "crashed!" - prompt - -_UnaffectedText:: - text "'s" - line "unaffected!" - prompt - -_DoesntAffectMonText:: - text "It doesn't affect" - line "!" - prompt - -_CriticalHitText:: - text "Critical hit!" - prompt - -_OHKOText:: - text "One-hit KO!" - prompt - -_LoafingAroundText:: - TX_RAM wBattleMonNick - text " is" - line "loafing around." - prompt - -_BeganToNapText:: - TX_RAM wBattleMonNick - text " began" - line "to nap!" - prompt - -_WontObeyText:: - TX_RAM wBattleMonNick - text " won't" - line "obey!" - prompt - -_TurnedAwayText:: - TX_RAM wBattleMonNick - text " turned" - line "away!" - prompt - -_IgnoredOrdersText:: - TX_RAM wBattleMonNick - text "" - line "ignored orders!" - prompt - -_SubstituteTookDamageText:: - text "The SUBSTITUTE" - line "took damage for" - cont "!" - prompt - -_SubstituteBrokeText:: - text "'s" - line "SUBSTITUTE broke!" - prompt - -_BuildingRageText:: - text "'s" - line "RAGE is building!" - prompt - -_MirrorMoveFailedText:: - text "The MIRROR MOVE" - next "failed!" - prompt - -_HitXTimesText:: - text "Hit @" - TX_NUM wEnemyNumHits, 1, 1 - text " times!" - prompt - -_GainedText:: - TX_RAM wcd6d - text " gained" - line "@@" - -_WithExpAllText:: - text "with EXP.ALL," - cont "@@" - -_BoostedText:: - text "a boosted" - cont "@@" - -_ExpPointsText:: - TX_NUM wExpAmountGained, 2, 4 - text " EXP. Points!" - prompt - -_GrewLevelText:: - TX_RAM wcd6d - text " grew" - line "to level @" - TX_NUM wCurEnemyLVL, 1, 3 - text "!@@" - -_SuperEffectiveText:: - text "It's super" - line "effective!" - prompt - -_NotVeryEffectiveText:: - text "It's not very" - line "effective..." - prompt - -_SafariZoneEatingText:: - text "Wild @" - TX_RAM wEnemyMonNick - text "" - line "is eating!" - prompt - -_SafariZoneAngryText:: - text "Wild @" - TX_RAM wEnemyMonNick - text "" - line "is angry!" - prompt - -_WildMonAppearedText:: - text "Wild @" - TX_RAM wEnemyMonNick - text "" - line "appeared!" - prompt - -_HookedMonAttackedText:: - text "The hooked" - line "@" - TX_RAM wEnemyMonNick - text "" - cont "attacked!" - prompt - - -SECTION "Text 3", ROMX ; BANK $28 - -_EnemyAppearedText:: - TX_RAM wEnemyMonNick - text "" - line "appeared!" - prompt - -_TrainerWantsToFightText:: - TX_RAM wTrainerName - text " wants" - line "to fight!" - prompt - -_UnveiledGhostText:: - text "SILPH SCOPE" - line "unveiled the" - cont "GHOST's identity!" - prompt - -_GhostCantBeIDdText:: - text "Darn! The GHOST" - line "can't be ID'd!" - prompt - -_GoText:: - text "Go! @@" - -_DoItText:: - text "Do it! @@" - -_GetmText:: - text "Get'm! @@" - -_EnemysWeakText:: - text "The enemy's weak!" - line "Get'm! @@" - -_PlayerMon1Text:: - TX_RAM wBattleMonNick - text "!" - done - -_PlayerMon2Text:: - TX_RAM wBattleMonNick - text " @@" - -_EnoughText:: - text "enough!@@" - -_OKExclamationText:: - text "OK!@@" - -_GoodText:: - text "good!@@" - -_ComeBackText:: - text "" - line "Come back!" - done - -; money related -_PickUpPayDayMoneyText:: - text " picked up" - line "¥@" - TX_BCD wTotalPayDayMoney, 3 | LEADING_ZEROES | LEFT_ALIGN - text "!" - prompt - -_ClearSaveDataText:: - text "Clear all saved" - line "data?" - done - -_WhichFloorText:: - text "Which floor do" - line "you want? " - done - -_SleepingPikachuText1:: - text "There isn't any" - line "response..." - prompt - -_PartyMenuNormalText:: - text "Choose a #MON." - done - -_PartyMenuItemUseText:: - text "Use item on which" - line "#MON?" - done - -_PartyMenuBattleText:: - text "Bring out which" - line "#MON?" - done - -_PartyMenuUseTMText:: - text "Teach to which" - line "#MON?" - done - -_PartyMenuSwapMonText:: - text "Move #MON" - line "where?" - done - -_PotionText:: - TX_RAM wcd6d - text "" - line "recovered by @" - TX_NUM wHPBarHPDifference, 2, 3 - text "!" - done - -_AntidoteText:: - TX_RAM wcd6d - text " was" - line "cured of poison!" - done - -_ParlyzHealText:: - TX_RAM wcd6d - text "'s" - line "rid of paralysis!" - done - -_BurnHealText:: - TX_RAM wcd6d - text "'s" - line "burn was healed!" - done - -_IceHealText:: - TX_RAM wcd6d - text " was" - line "defrosted!" - done - -_AwakeningText:: - TX_RAM wcd6d - text "" - line "woke up!" - done - -_FullHealText:: - TX_RAM wcd6d - text "'s" - line "health returned!" - done - -_ReviveText:: - TX_RAM wcd6d - text "" - line "is revitalized!" - done - -_RareCandyText:: - TX_RAM wcd6d - text " grew" - line "to level @" - TX_NUM wCurEnemyLVL, 1, 3 - text "!@@" - -_TurnedOnPC1Text:: - text " turned on" - line "the PC." - prompt - -_AccessedBillsPCText:: - text "Accessed BILL's" - line "PC." - - para "Accessed #MON" - line "Storage System." - prompt - -_AccessedSomeonesPCText:: - text "Accessed someone's" - line "PC." - - para "Accessed #MON" - line "Storage System." - prompt - -_AccessedMyPCText:: - text "Accessed my PC." - - para "Accessed Item" - line "Storage System." - prompt - -_TurnedOnPC2Text:: - text " turned on" - line "the PC." - prompt - -_WhatDoYouWantText:: - text "What do you want" - line "to do?" - done - -_WhatToDepositText:: - text "What do you want" - line "to deposit?" - done - -_DepositHowManyText:: - text "How many?" - done - -_ItemWasStoredText:: - TX_RAM wcd6d - text " was" - line "stored via PC." - prompt - -_NothingToDepositText:: - text "You have nothing" - line "to deposit." - prompt - -_NoRoomToStoreText:: - text "No room left to" - line "store items." - prompt - -_WhatToWithdrawText:: - text "What do you want" - line "to withdraw?" - done - -_WithdrawHowManyText:: - text "How many?" - done - -_WithdrewItemText:: - text "Withdrew" - line "@" - TX_RAM wcd6d - text "." - prompt - -_NothingStoredText:: - text "There is nothing" - line "stored." - prompt - -_CantCarryMoreText:: - text "You can't carry" - line "any more items." - prompt - -_WhatToTossText:: - text "What do you want" - line "to toss away?" - done - -_TossHowManyText:: - text "How many?" - done - -_AccessedHoFPCText:: - text "Accessed #MON" - line "LEAGUE's site." - - para "Accessed the HALL" - line "OF FAME List." - prompt - -_SleepingPikachuText2:: - text "There isn't any" - line "response..." - prompt - -_SwitchOnText:: - text "Switch on!" - prompt - -_WhatText:: - text "What?" - done - -_DepositWhichMonText:: - text "Deposit which" - line "#MON?" - done - -_MonWasStoredText:: - TX_RAM wcf4b - text " was" - line "stored in Box @" - TX_RAM wBoxNumString - text "." - prompt - -_CantDepositLastMonText:: - text "You can't deposit" - line "the last #MON!" - prompt - -_BoxFullText:: - text "Oops! This Box is" - line "full of #MON." - prompt - -_MonIsTakenOutText:: - TX_RAM wcf4b - text " is" - line "taken out." - cont "Got @" - TX_RAM wcf4b - text "." - prompt - -_NoMonText:: - text "What? There are" - line "no #MON here!" - prompt - -_CantTakeMonText:: - text "You can't take" - line "any more #MON." - - para "Deposit #MON" - line "first." - prompt - -_PikachuUnhappyText:: - TX_RAM wcd6d - text " looks" - line "unhappy about it!" - prompt - -_ReleaseWhichMonText:: - text "Release which" - line "#MON?" - done - -_OnceReleasedText:: - text "Once released," - line "@" - TX_RAM wcf4b - text " is" - cont "gone forever. OK?" - done - -_MonWasReleasedText:: - TX_RAM wcf4b - text " was" - line "released outside." - cont "Bye @" - -_CF4BExclamationText:: - TX_RAM wcf4b - text "!" - prompt - -_RequireCoinCaseText:: - text "A COIN CASE is" - line "required!@@" - -_ExchangeCoinsForPrizesText:: - text "We exchange your" - line "coins for prizes." - prompt - -_WhichPrizeText:: - text "Which prize do" - line "you want?" - done - -_HereYouGoText:: - text "Here you go!@@" - -_SoYouWantPrizeText:: - text "So, you want" - line "@" - TX_RAM wcd6d - text "?" - done - -_SorryNeedMoreCoinsText:: - text "Sorry, you need" - line "more coins.@@" - -_OopsYouDontHaveEnoughRoomText:: - text "Oops! You don't" - line "have enough room.@@" - -_OhFineThenText:: - text "Oh, fine then.@@" - -_GetDexRatedText:: - text "Want to get your" - line "#DEX rated?" - done - -_ClosedOaksPCText:: - text "Closed link to" - line "PROF.OAK's PC.@@" - -_AccessedOaksPCText:: - text "Accessed PROF." - line "OAK's PC." - - para "Accessed #DEX" - line "Rating System." - prompt - -_ExpressionText:: - text "This expression is" - line "No. @" - TX_NUM wExpressionNumber, 1, 2 - text "." - prompt - -_NotEnoughMemoryText:: - text "Not enough Yellow" - line "Version memory." - done - -INCLUDE "text/oakspeech.asm" - -_DoYouWantToNicknameText:: - text "Do you want to" - line "give a nickname" - cont "to @" - TX_RAM wcd6d - text "?" - done - -_YourNameIsText:: - text "Right! So your" - line "name is !" - prompt - -_HisNameIsText:: - text "That's right! I" - line "remember now! His" - cont "name is !" - prompt - -_WillBeTradedText:: - TX_RAM wNameOfPlayerMonToBeTraded - text " and" - line "@" - TX_RAM wcd6d - text " will" - cont "be traded." - done - -_Colosseum3MonsText:: - text "You need 3 #MON" - line "to fight!" - prompt - -_ColosseumMewText:: - text "Sorry, MEW can't" - line "attend!" - prompt - -_ColosseumDifferentMonsText:: - text "Your #MON must" - line "all be different!" - prompt - -_ColosseumMaxL55Text:: - text "No #MON can" - line "exceed L55!" - prompt - -_ColosseumMinL50Text:: - text "All #MON must" - line "be at least L50!" - prompt - -_ColosseumTotalL155Text:: - text "Your total levels" - line "exceed 155!" - prompt - -_ColosseumMaxL30Text:: - text "No #MON can" - line "exceed L30!" - prompt - -_ColosseumMinL25Text:: - text "All #MON must" - line "be at least L25!" - prompt - -_ColosseumTotalL80Text:: - text "Your total levels" - line "exceed 80!" - prompt - -_ColosseumMaxL20Text:: - text "No #MON can" - line "exceed L20!" - prompt - -_ColosseumMinL15Text:: - text "All #MON must" - line "be at least L15!" - prompt - -_ColosseumTotalL50Text:: - text "Your total levels" - line "exceed 50!" - prompt - -_ColosseumHeightText:: - TX_RAM wcd6d - text " is over" - line "6′8″ tall!" - prompt - -_ColosseumWeightText:: - TX_RAM wcd6d - text " weighs" - line "over 44 pounds!" - prompt - -_ColosseumEvolvedText:: - TX_RAM wcd6d - text " is an" - line "evolved #MON!" - prompt - -_ColosseumIneligibleText:: - text "Your opponent is" - line "ineligible." - prompt - -_ColosseumWhereToText:: - text "Where would you" - line "like to go?" - done - -_ColosseumPleaseWaitText:: - text "OK, please wait" - line "just a moment." - done - -_ColosseumCanceledText:: - text "The link was" - line "canceled." - done - -_ColosseumVersionText:: - text "The game versions" - line "don't match." - prompt - -_Char00Text:: - TX_NUM hSpriteIndexOrTextID, 1, 2 - text " error." - done - -_Char55Text:: - text $4B, "@@" - -_NoPokemonText:: - text "There are no" - line "#MON here!" - prompt - -INCLUDE "text/maps/DiglettsCaveRoute2.asm" -INCLUDE "text/maps/ViridianForestNorthGate.asm" -INCLUDE "text/maps/Route2TradeHouse.asm" -INCLUDE "text/maps/Route2Gate.asm" -INCLUDE "text/maps/ViridianForestSouthGate.asm" -INCLUDE "text/maps/MtMoonPokecenter.asm" -INCLUDE "text/maps/SaffronGates.asm" -INCLUDE "text/maps/Daycare.asm" -INCLUDE "text/maps/UndergroundPathRoute6.asm" -INCLUDE "text/maps/UndergroundPathRoute7.asm" -INCLUDE "text/maps/UndergroundPathRoute7Copy.asm" -INCLUDE "text/maps/UndergroundPathRoute8.asm" -INCLUDE "text/maps/RockTunnelPokecenter.asm" -INCLUDE "text/maps/RockTunnel1F.asm" -INCLUDE "text/maps/PowerPlant.asm" -INCLUDE "text/maps/Route11Gate1F.asm" -INCLUDE "text/maps/Route11Gate2F.asm" -INCLUDE "text/maps/DiglettsCaveRoute11.asm" -INCLUDE "text/maps/Route12Gate1F.asm" -INCLUDE "text/maps/Route12Gate2F.asm" -INCLUDE "text/maps/Route12SuperRodHouse.asm" -INCLUDE "text/maps/Route15Gate1F.asm" -INCLUDE "text/maps/Route15Gate2F.asm" -INCLUDE "text/maps/Route16Gate1F.asm" -INCLUDE "text/maps/Route16Gate2F.asm" -INCLUDE "text/maps/Route16FlyHouse.asm" -INCLUDE "text/maps/Route18Gate1F.asm" -INCLUDE "text/maps/Route18Gate2F.asm" -INCLUDE "text/maps/BeachHouse.asm" -INCLUDE "text/maps/Route22Gate.asm" -INCLUDE "text/maps/VictoryRoad2F.asm" -INCLUDE "text/maps/BillsHouse.asm" -INCLUDE "text/maps/Route1.asm" -INCLUDE "text/maps/Route2.asm" -INCLUDE "text/maps/Route3.asm" -INCLUDE "text/maps/Route4.asm" -INCLUDE "text/maps/Route5.asm" -INCLUDE "text/maps/Route6.asm" -INCLUDE "text/maps/Route7.asm" -INCLUDE "text/maps/Route8.asm" -INCLUDE "text/maps/Route9.asm" - - -SECTION "Text 4", ROMX ; BANK $29 - -INCLUDE "text/maps/Route9_2.asm" -INCLUDE "text/maps/Route10.asm" -INCLUDE "text/maps/Route11.asm" -INCLUDE "text/maps/Route12.asm" -INCLUDE "text/maps/Route13.asm" -INCLUDE "text/maps/Route14.asm" -INCLUDE "text/maps/Route15.asm" -INCLUDE "text/maps/Route16.asm" -INCLUDE "text/maps/Route17.asm" -INCLUDE "text/maps/Route18.asm" -INCLUDE "text/maps/Route19.asm" -INCLUDE "text/maps/Route20.asm" -INCLUDE "text/maps/Route21.asm" -INCLUDE "text/maps/Route22.asm" -INCLUDE "text/maps/Route23.asm" -INCLUDE "text/maps/Route24.asm" -INCLUDE "text/maps/Route25.asm" - -_FileDataDestroyedText:: - text "The file data is" - line "destroyed!" - prompt - -_WouldYouLikeToSaveText:: - text "Would you like to" - line "SAVE the game?" - done - -_SavingText:: - text "Saving..." - done - -_GameSavedText:: - text " saved" - line "the game!" - done - -_OlderFileWillBeErasedText:: - text "The older file" - line "will be erased to" - cont "save. Okay?" - done - -_WhenYouChangeBoxText:: - text "When you change a" - line "#MON BOX, data" - cont "will be saved." - - para "Is that okay?" - done - -_ChooseABoxText:: - text "Choose a" - line " BOX.@@" - -_EvolvedText:: - TX_RAM wcf4b - text " evolved" - done - -_IntoText:: - text "" - line "into @" - TX_RAM wcd6d - text "!" - done - -_StoppedEvolvingText:: - text "Huh? @" - TX_RAM wcf4b - text "" - line "stopped evolving!" - prompt - - -SECTION "Text 5", ROMX ; BANK $2a - -_IsEvolvingText:: - text "What? @" - TX_RAM wcf4b - text "" - line "is evolving!" - done - -_FellAsleepText:: - text "" - line "fell asleep!" - prompt - -_AlreadyAsleepText:: - text "'s" - line "already asleep!" - prompt - -_PoisonedText:: - text "" - line "was poisoned!" - prompt - -_BadlyPoisonedText:: - text "'s" - line "badly poisoned!" - prompt - -_BurnedText:: - text "" - line "was burned!" - prompt - -_FrozenText:: - text "" - line "was frozen solid!" - prompt - -_FireDefrostedText:: - text "Fire defrosted" - line "!" - prompt - -_MonsStatsRoseText:: - text "'s" - line "@" - TX_RAM wcf4b - text "@@" - -_GreatlyRoseText:: - text $4c, "greatly@@" - -_RoseText:: - text " rose!" - prompt - -_MonsStatsFellText:: - text "'s" - line "@" - TX_RAM wcf4b - text "@@" - -_GreatlyFellText:: - text $4c, "greatly@@" - -_FellText:: - text " fell!" - prompt - -_RanFromBattleText:: - text "" - line "ran from battle!" - prompt - -_RanAwayScaredText:: - text "" - line "ran away scared!" - prompt - -_WasBlownAwayText:: - text "" - line "was blown away!" - prompt - -_ChargeMoveEffectText:: - text "@@" - -_MadeWhirlwindText:: - text "" - line "made a whirlwind!" - prompt - -_TookInSunlightText:: - text "" - line "took in sunlight!" - prompt - -_LoweredItsHeadText:: - text "" - line "lowered its head!" - prompt - -_SkyAttackGlowingText:: - text "" - line "is glowing!" - prompt - -_FlewUpHighText:: - text "" - line "flew up high!" - prompt - -_DugAHoleText:: - text "" - line "dug a hole!" - prompt - -_BecameConfusedText:: - text "" - line "became confused!" - prompt - -_MimicLearnedMoveText:: - text "" - line "learned" - cont "@" - TX_RAM wcd6d - text "!" - prompt - -_MoveWasDisabledText:: - text "'s" - line "@" - TX_RAM wcd6d - text " was" - cont "disabled!" - prompt - -_NothingHappenedText:: - text "Nothing happened!" - prompt - -_NoEffectText:: - text "No effect!" - prompt - -_ButItFailedText:: - text "But, it failed! " - prompt - -_DidntAffectText:: - text "It didn't affect" - line "!" - prompt - -_IsUnaffectedText:: - text "" - line "is unaffected!" - prompt - -_ParalyzedMayNotAttackText:: - text "'s" - line "paralyzed! It may" - cont "not attack!" - prompt - -_SubstituteText:: - text "It created a" - line "SUBSTITUTE!" - prompt - -_HasSubstituteText:: - text "" - line "has a SUBSTITUTE!" - prompt - -_TooWeakSubstituteText:: - text "Too weak to make" - line "a SUBSTITUTE!" - prompt - -_WasSeededText:: - text "" - line "was seeded!" - prompt - -_EvadedAttackText:: - text "" - line "evaded attack!" - prompt - -_HitWithRecoilText:: - text "'s" - line "hit with recoil!" - prompt - -_ConvertedTypeText:: - text "Converted type to" - line "'s!" - prompt - -_StatusChangesEliminatedText:: - text "All STATUS changes" - line "are eliminated!" - prompt - -_GettingPumpedText:: - text "'s" - line "getting pumped!" - prompt - -_StartedSleepingEffect:: - text "" - line "started sleeping!" - done - -_FellAsleepBecameHealthyText:: - text "" - line "fell asleep and" - cont "became healthy!" - done - -_RegainedHealthText:: - text "" - line "regained health!" - prompt - -_TransformedText:: - text "" - line "transformed into" - cont "@" - TX_RAM wcd6d - text "!" - prompt - -_LightScreenProtectedText:: - text "'s" - line "protected against" - cont "special attacks!" - prompt - -_ReflectGainedArmorText:: - text "" - line "gained armor!" - prompt - -_ShroudedInMistText:: - text "'s" - line "shrouded in mist!" - prompt - -_CoinsScatteredText:: - text "Coins scattered" - line "everywhere!" - prompt - -_SuckedHealthText:: - text "Sucked health from" - line "!" - prompt - -_DreamWasEatenText:: - text "'s" - line "dream was eaten!" - prompt - -_TradeCenterText1:: - text "!" - done - -_ColosseumText1:: - text "!" - done - -INCLUDE "text/maps/RedsHouse1F.asm" -INCLUDE "text/maps/BluesHouse.asm" -INCLUDE "text/maps/OaksLab.asm" +INCLUDE "constants.asm" + + +SECTION "Text 1", ROMX + +INCLUDE "data/text/text_1.asm" + +INCLUDE "text/ViridianForest.asm" +INCLUDE "text/MtMoon1F.asm" +INCLUDE "text/MtMoonB1F.asm" +INCLUDE "text/MtMoonB2F.asm" +INCLUDE "text/SSAnne1F.asm" +INCLUDE "text/SSAnne2F.asm" +INCLUDE "text/SSAnne3F.asm" +INCLUDE "text/SSAnneBow.asm" +INCLUDE "text/SSAnneKitchen.asm" +INCLUDE "text/SSAnneCaptainsRoom.asm" +INCLUDE "text/SSAnne1FRooms.asm" +INCLUDE "text/SSAnne2FRooms.asm" +INCLUDE "text/SSAnneB1FRooms.asm" +INCLUDE "text/VictoryRoad3F.asm" +INCLUDE "text/RocketHideoutB1F.asm" +INCLUDE "text/RocketHideoutB2F.asm" +INCLUDE "text/RocketHideoutB3F.asm" +INCLUDE "text/RocketHideoutB4F.asm" +INCLUDE "text/RocketHideoutElevator.asm" +INCLUDE "text/SilphCo2F.asm" +INCLUDE "text/SilphCo3F.asm" +INCLUDE "text/SilphCo4F.asm" +INCLUDE "text/SilphCo5F.asm" +INCLUDE "text/SilphCo6F.asm" +INCLUDE "text/SilphCo7F.asm" +INCLUDE "text/SilphCo8F.asm" +INCLUDE "text/SilphCo9F.asm" +INCLUDE "text/SilphCo10F.asm" + + +SECTION "Text 2", ROMX + +INCLUDE "text/SilphCo11F.asm" +INCLUDE "text/PokemonMansion2F.asm" +INCLUDE "text/PokemonMansion3F.asm" +INCLUDE "text/PokemonMansionB1F.asm" +INCLUDE "text/SafariZoneEast.asm" +INCLUDE "text/SafariZoneNorth.asm" +INCLUDE "text/SafariZoneWest.asm" +INCLUDE "text/SafariZoneCenter.asm" +INCLUDE "text/SafariZoneCenterRestHouse.asm" +INCLUDE "text/SafariZoneSecretHouse.asm" +INCLUDE "text/SafariZoneWestRestHouse.asm" +INCLUDE "text/SafariZoneEastRestHouse.asm" +INCLUDE "text/SafariZoneNorthRestHouse.asm" +INCLUDE "text/CeruleanCaveB1F.asm" +INCLUDE "text/VictoryRoad1F.asm" +INCLUDE "text/LancesRoom.asm" +INCLUDE "text/HallOfFame.asm" +INCLUDE "text/ChampionsRoom.asm" +INCLUDE "text/LoreleisRoom.asm" +INCLUDE "text/BrunosRoom.asm" +INCLUDE "text/AgathasRoom.asm" +INCLUDE "text/RockTunnelB1F.asm" +INCLUDE "text/SeafoamIslandsB4F.asm" + +INCLUDE "data/text/text_2.asm" + + +SECTION "Text 3", ROMX + +INCLUDE "data/text/text_3.asm" + +INCLUDE "text/DiglettsCaveRoute2.asm" +INCLUDE "text/ViridianForestNorthGate.asm" +INCLUDE "text/Route2TradeHouse.asm" +INCLUDE "text/Route2Gate.asm" +INCLUDE "text/ViridianForestSouthGate.asm" +INCLUDE "text/MtMoonPokecenter.asm" +INCLUDE "text/SaffronGates.asm" +INCLUDE "text/Daycare.asm" +INCLUDE "text/UndergroundPathRoute6.asm" +INCLUDE "text/UndergroundPathRoute7.asm" +INCLUDE "text/UndergroundPathRoute7Copy.asm" +INCLUDE "text/UndergroundPathRoute8.asm" +INCLUDE "text/RockTunnelPokecenter.asm" +INCLUDE "text/RockTunnel1F.asm" +INCLUDE "text/PowerPlant.asm" +INCLUDE "text/Route11Gate1F.asm" +INCLUDE "text/Route11Gate2F.asm" +INCLUDE "text/DiglettsCaveRoute11.asm" +INCLUDE "text/Route12Gate1F.asm" +INCLUDE "text/Route12Gate2F.asm" +INCLUDE "text/Route12SuperRodHouse.asm" +INCLUDE "text/Route15Gate1F.asm" +INCLUDE "text/Route15Gate2F.asm" +INCLUDE "text/Route16Gate1F.asm" +INCLUDE "text/Route16Gate2F.asm" +INCLUDE "text/Route16FlyHouse.asm" +INCLUDE "text/Route18Gate1F.asm" +INCLUDE "text/Route18Gate2F.asm" +INCLUDE "text/BeachHouse.asm" +INCLUDE "text/Route22Gate.asm" +INCLUDE "text/VictoryRoad2F.asm" +INCLUDE "text/BillsHouse.asm" +INCLUDE "text/Route1.asm" +INCLUDE "text/Route2.asm" +INCLUDE "text/Route3.asm" +INCLUDE "text/Route4.asm" +INCLUDE "text/Route5.asm" +INCLUDE "text/Route6.asm" +INCLUDE "text/Route7.asm" +INCLUDE "text/Route8.asm" +INCLUDE "text/Route9.asm" + + +SECTION "Text 4", ROMX + +INCLUDE "text/Route9_2.asm" +INCLUDE "text/Route10.asm" +INCLUDE "text/Route11.asm" +INCLUDE "text/Route12.asm" +INCLUDE "text/Route13.asm" +INCLUDE "text/Route14.asm" +INCLUDE "text/Route15.asm" +INCLUDE "text/Route16.asm" +INCLUDE "text/Route17.asm" +INCLUDE "text/Route18.asm" +INCLUDE "text/Route19.asm" +INCLUDE "text/Route20.asm" +INCLUDE "text/Route21.asm" +INCLUDE "text/Route22.asm" +INCLUDE "text/Route23.asm" +INCLUDE "text/Route24.asm" +INCLUDE "text/Route25.asm" + +INCLUDE "data/text/text_4.asm" + + +SECTION "Text 5", ROMX + +INCLUDE "data/text/text_5.asm" + +INCLUDE "text/RedsHouse1F.asm" +INCLUDE "text/BluesHouse.asm" +INCLUDE "text/OaksLab.asm" INCLUDE "text/pokedex_ratings.asm" -INCLUDE "text/maps/ViridianPokecenter.asm" -INCLUDE "text/maps/ViridianMart.asm" -INCLUDE "text/maps/ViridianSchoolHouse.asm" -INCLUDE "text/maps/ViridianNicknameHouse.asm" -INCLUDE "text/maps/ViridianGym.asm" -INCLUDE "text/maps/Museum1F.asm" -INCLUDE "text/maps/Museum2F.asm" -INCLUDE "text/maps/PewterGym.asm" -INCLUDE "text/maps/PewterNidoranHouse.asm" -INCLUDE "text/maps/PewterMart.asm" -INCLUDE "text/maps/PewterSpeechHouse.asm" -INCLUDE "text/maps/PewterPokecenter.asm" -INCLUDE "text/maps/CeruleanTrashedHouse.asm" -INCLUDE "text/maps/CeruleanTradeHouse.asm" -INCLUDE "text/maps/CeruleanPokecenter.asm" -INCLUDE "text/maps/CeruleanGym.asm" -INCLUDE "text/maps/BikeShop.asm" -INCLUDE "text/maps/CeruleanMart.asm" -INCLUDE "text/maps/CeruleanBadgeHouse.asm" - - -SECTION "Text 6", ROMX ; BANK $2b - -INCLUDE "text/maps/CeruleanBadgeHouse_2.asm" -INCLUDE "text/maps/LavenderPokecenter.asm" -INCLUDE "text/maps/PokemonTower1F.asm" -INCLUDE "text/maps/PokemonTower2F.asm" -INCLUDE "text/maps/PokemonTower3F.asm" -INCLUDE "text/maps/PokemonTower4F.asm" -INCLUDE "text/maps/PokemonTower5F.asm" -INCLUDE "text/maps/PokemonTower6F.asm" -INCLUDE "text/maps/PokemonTower7F.asm" -INCLUDE "text/maps/MrFujisHouse.asm" -INCLUDE "text/maps/LavenderMart.asm" -INCLUDE "text/maps/LavenderCuboneHouse.asm" -INCLUDE "text/maps/NameRatersHouse.asm" -INCLUDE "text/maps/VermilionPokecenter.asm" -INCLUDE "text/maps/PokemonFanClub.asm" -INCLUDE "text/maps/VermilionMart.asm" -INCLUDE "text/maps/VermilionGym.asm" -INCLUDE "text/maps/VermilionPidgeyHouse.asm" -INCLUDE "text/maps/VermilionDock.asm" - -TeachingHMsText:: - text "Once a #MON" - line "learns an HM, the" - cont "technique can't" - cont "be replaced." - - para "Better think care-" - line "fully before you" - cont "teach HM moves." - done - -INCLUDE "text/maps/VermilionOldRodHouse.asm" -INCLUDE "text/maps/CeladonMart1F.asm" -INCLUDE "text/maps/CeladonMart2F.asm" -INCLUDE "text/maps/CeladonMart3F.asm" -INCLUDE "text/maps/CeladonMart4F.asm" -INCLUDE "text/maps/CeladonMartRoof.asm" -INCLUDE "text/maps/CeladonMansion1F.asm" -INCLUDE "text/maps/CeladonMansion2F.asm" -INCLUDE "text/maps/CeladonMansion3F.asm" -INCLUDE "text/maps/CeladonMansionRoof.asm" -INCLUDE "text/maps/CeladonMansionRoofHouse.asm" -INCLUDE "text/maps/CeladonPokecenter.asm" -INCLUDE "text/maps/CeladonGym.asm" -INCLUDE "text/maps/GameCorner.asm" - - -SECTION "Text 7", ROMX ; BANK $2c - -INCLUDE "text/maps/GameCorner_2.asm" -INCLUDE "text/maps/CeladonMart5F.asm" -INCLUDE "text/maps/GameCornerPrizeRoom.asm" -INCLUDE "text/maps/CeladonDiner.asm" -INCLUDE "text/maps/CeladonChiefHouse.asm" -INCLUDE "text/maps/CeladonHotel.asm" -INCLUDE "text/maps/FuchsiaMart.asm" -INCLUDE "text/maps/FuchsiaBillsGrandpasHouse.asm" -INCLUDE "text/maps/FuchsiaPokecenter.asm" -INCLUDE "text/maps/WardensHouse.asm" -INCLUDE "text/maps/SafariZoneGate.asm" -INCLUDE "text/maps/FuchsiaGym.asm" -INCLUDE "text/maps/FuchsiaMeetingRoom.asm" -INCLUDE "text/maps/FuchsiaGoodRodHouse.asm" -INCLUDE "text/maps/PokemonMansion1F.asm" -INCLUDE "text/maps/CinnabarGym.asm" -INCLUDE "text/maps/CinnabarLab.asm" -INCLUDE "text/maps/CinnabarLabTradeRoom.asm" -INCLUDE "text/maps/CinnabarLabMetronomeRoom.asm" -INCLUDE "text/maps/CinnabarLabFossilRoom.asm" -INCLUDE "text/maps/CinnabarPokecenter.asm" -INCLUDE "text/maps/CinnabarMart.asm" -INCLUDE "text/maps/IndigoPlateauLobby.asm" -INCLUDE "text/maps/CopycatsHouse1F.asm" -INCLUDE "text/maps/CopycatsHouse2F.asm" -INCLUDE "text/maps/FightingDojo.asm" -INCLUDE "text/maps/SaffronGym.asm" -INCLUDE "text/maps/SaffronPidgeyHouse.asm" -INCLUDE "text/maps/SaffronMart.asm" -INCLUDE "text/maps/SilphCo1F.asm" -INCLUDE "text/maps/SaffronPokecenter.asm" -INCLUDE "text/maps/MrPsychicsHouse.asm" - -_PokemonText:: - text "#MON!" - done - -_PokemartGreetingText:: - text "Hi there!" - next "May I help you?" - done - -_PokemonFaintedText:: - TX_RAM wcd6d - text "" - line "fainted!" - done - -_PlayerBlackedOutText:: - text " is out of" - line "useable #MON!" - - para " blacked" - line "out!" - prompt - -_RepelWoreOffText:: - text "REPEL's effect" - line "wore off." - done - -_PokemartBuyingGreetingText:: - text "Take your time." - done - -_PokemartTellBuyPriceText:: - TX_RAM wcf4b - text "?" - line "That will be" - cont "¥@" - TX_BCD hMoney, 3 | LEADING_ZEROES | LEFT_ALIGN - text ". OK?" - done - -_PokemartBoughtItemText:: - text "Here you are!" - line "Thank you!" - prompt - -_PokemartNotEnoughMoneyText:: - text "You don't have" - line "enough money." - prompt - -_PokemartItemBagFullText:: - text "You can't carry" - line "any more items." - prompt - -_PokemonSellingGreetingText:: - text "What would you" - line "like to sell?" - done - -_PokemartTellSellPriceText:: - text "I can pay you" - line "¥@" - TX_BCD hMoney, 3 | LEADING_ZEROES | LEFT_ALIGN - text " for that." - done - -_PokemartItemBagEmptyText:: - text "You don't have" - line "anything to sell." - prompt - -_PokemartUnsellableItemText:: - text "I can't put a" - line "price on that." - prompt - -_PokemartThankYouText:: - text "Thank you!" - done - -_PokemartAnythingElseText:: - text "Is there anything" - line "else I can do?" - done - -_LearnedMove1Text:: - TX_RAM wLearnMoveMonName - text " learned" - line "@" - TX_RAM wcf4b - text "!@@" - -_WhichMoveToForgetText:: - text "Which move should" - next "be forgotten?" - done - -_AbandonLearningText:: - text "Abandon learning" - line "@" - TX_RAM wcf4b - text "?" - done - -_DidNotLearnText:: - TX_RAM wLearnMoveMonName - text "" - line "did not learn" - cont "@" - TX_RAM wcf4b - text "!" - prompt - -_TryingToLearnText:: - TX_RAM wLearnMoveMonName - text " is" - line "trying to learn" - cont "@" - TX_RAM wcf4b - text "!" - - para "But, @" - TX_RAM wLearnMoveMonName - text "" - line "can't learn more" - cont "than 4 moves!" - - para "Delete an older" - line "move to make room" - cont "for @" - TX_RAM wcf4b - text "?" - done - -_OneTwoAndText:: - text "1, 2 and...@@" - -_PoofText:: - text " Poof!@@" - -_ForgotAndText:: - text "" - para "@" - TX_RAM wLearnMoveMonName - text " forgot" - line "@" - TX_RAM wcd6d - text "!" - - para "And..." - prompt - -_HMCantDeleteText:: - text "HM techniques" - line "can't be deleted!" - prompt - -_PokemonCenterWelcomeText:: - text "Welcome to our" - line "#MON CENTER!" - - para "We heal your" - line "#MON back to" - cont "perfect health!" - prompt - -_ShallWeHealYourPokemonText:: - text "Shall we heal your" - line "#MON?" - done - -_NeedYourPokemonText:: - text "OK. We'll need" - line "your #MON." - done - -_PokemonFightingFitText:: - text "Thank you!" - line "Your #MON are" - cont "fighting fit!" - prompt - -_PokemonCenterFarewellText:: - text "We hope to see" - line "you again!" - done - -_LooksContentText:: - text "It looks very" - line "content asleep." - done - -_CableClubNPCAreaReservedFor2FriendsLinkedByCableText:: - text "This area is" - line "reserved for 2" - cont "friends who are" - cont "linked by cable." - done - -_CableClubNPCWelcomeText:: - text "Welcome to the" - line "Cable Club!" - done - -_CableClubNPCPleaseApplyHereHaveToSaveText:: - text "Please apply here." - - para "Before opening" - line "the link, we have" - cont "to save the game." - done - - -SECTION "Text 8", ROMX ; BANK $2d - -_CableClubNPCPleaseWaitText:: - text "Please wait.@@" - -_CableClubNPCLinkClosedBecauseOfInactivityText:: - text "The link has been" - line "closed because of" - cont "inactivity." - - para "Please contact" - line "your friend and" - cont "come again!" - done - -_CableClubNPCPleaseComeAgainText:: - text "Please come again!" - done - -_CableClubNPCMakingPreparationsText:: - text "We're making" - line "preparations." - cont "Please wait." - done - -_FlashLightsAreaText:: - text "A blinding FLASH" - line "lights the area!" - prompt - -_WarpToLastPokemonCenterText:: - text "Warp to the last" - line "#MON CENTER." - done - -_CannotUseTeleportNowText:: - TX_RAM wcd6d - text " can't" - line "use TELEPORT now." - prompt - -_CannotFlyHereText:: - TX_RAM wcd6d - text " can't" - line "FLY here." - prompt - -_NotHealthyEnoughText:: - text "Not healthy" - line "enough." - prompt - -_NewBadgeRequiredText:: - text "No! A new BADGE" - line "is required." - prompt - -_CannotUseItemsHereText:: - text "You can't use items" - line "here." - prompt - -_CannotGetOffHereText:: - text "You can't get off" - line "here." - prompt - -_UsedStrengthText:: - TX_RAM wcd6d - text " used" - line "STRENGTH.@@" - -_CanMoveBouldersText:: - TX_RAM wcd6d - text " can" - line "move boulders." - prompt - -_CurrentTooFastText:: - text "The current is" - line "much too fast!" - prompt - -_CyclingIsFunText:: - text "Cycling is fun!" - line "Forget SURFing!" - prompt - -_GotMonText:: - text " got" - line "@" - TX_RAM wcd6d - text "!@@" - -_SetToBoxText:: - text "There's no more" - line "room for #MON!" - cont "@" - TX_RAM wBoxMonNicks - text " was" - cont "sent to #MON" - cont "BOX @" - TX_RAM wcf4b - text " on PC!" - done - -_BoxIsFullText:: - text "There's no more" - line "room for #MON!" - - para "The #MON BOX" - line "is full and can't" - cont "accept any more!" - - para "Change the BOX at" - line "a #MON CENTER!" - done - -INCLUDE "text/maps/PalletTown.asm" -INCLUDE "text/maps/ViridianCity.asm" -INCLUDE "text/maps/PewterCity.asm" -INCLUDE "text/maps/CeruleanCity.asm" -INCLUDE "text/maps/LavenderTown.asm" -INCLUDE "text/maps/VermilionCity.asm" -INCLUDE "text/maps/CeladonCity.asm" -INCLUDE "text/maps/FuchsiaCity.asm" -INCLUDE "text/maps/CinnabarIsland.asm" -INCLUDE "text/maps/SaffronCity.asm" - -_ItemUseBallText00:: - text "It dodged the" - line "thrown BALL!" - - para "This #MON" - line "can't be caught!" - prompt - -_ItemUseBallText01:: - text "You missed the" - line "#MON!" - prompt - -_ItemUseBallText02:: - text "Darn! The #MON" - line "broke free!" - prompt - -_ItemUseBallText03:: - text "Aww! It appeared" - line "to be caught! " - prompt - -_ItemUseBallText04:: - text "Shoot! It was so" - line "close too!" - prompt - -_ItemUseBallText05:: - text "All right!" - line "@" - TX_RAM wEnemyMonNick - text " was" - cont "caught!@@" - -_ItemUseBallText07:: - TX_RAM wBoxMonNicks - text " was" - line "transferred to" - cont "BILL's PC!" - prompt - -_ItemUseBallText08:: - TX_RAM wBoxMonNicks - text " was" - line "transferred to" - cont "someone's PC!" - prompt - -_ItemUseBallText06:: - text "New #DEX data" - line "will be added for" - cont "@" - TX_RAM wEnemyMonNick - text "!@@" - -_SurfingGotOnText:: - text " got on" - line "@" - TX_RAM wcd6d - text "!" - prompt - -_SurfingNoPlaceToGetOffText:: - text "There's no place" - line "to get off!" - prompt - -_RefusingText:: - TX_RAM wcd6d - text "" - line "is refusing!" - prompt - -_VitaminStatRoseText:: - TX_RAM wcd6d - text "'s" - line "@" - TX_RAM wcf4b - text " rose." - prompt - -_VitaminNoEffectText:: - text "It won't have any" - line "effect." - prompt - -_ThrewBaitText:: - text " threw" - line "some BAIT." - done - -_ThrewRockText:: - text " threw a" - line "ROCK." - done - -_PlayedFluteNoEffectText:: - text "Played the #" - line "FLUTE." - - para "Now, that's a" - line "catchy tune!" - prompt - -_FluteWokeUpText:: - text "All sleeping" - line "#MON woke up." - prompt - -_PlayedFluteHadEffectText:: - text " played the" - line "# FLUTE.@@" - -_CoinCaseNumCoinsText:: - text "Coins" - line "@" - TX_BCD wPlayerCoins, 2 | LEADING_ZEROES | LEFT_ALIGN - text " " - prompt - -_ItemfinderFoundItemText:: - text "Yes! ITEMFINDER" - line "indicates there's" - cont "an item nearby." - prompt - -_ItemfinderFoundNothingText:: - text "Nope! ITEMFINDER" - line "isn't responding." - prompt - -_RaisePPWhichTechniqueText:: - text "Raise PP of which" - line "technique?" - done - -_RestorePPWhichTechniqueText:: - text "Restore PP of" - line "which technique?" - done - -_PPMaxedOutText:: - TX_RAM wcf4b - text "'s PP" - line "is maxed out." - prompt - -_PPIncreasedText:: - TX_RAM wcf4b - text "'s PP" - line "increased." - prompt - -_PPRestoredText:: - text "PP was restored." - prompt - -_BootedUpTMText:: - text "Booted up a TM!" - prompt - -_BootedUpHMText:: - text "Booted up an HM!" - prompt - -_TeachMachineMoveText:: - text "It contained" - line "@" - TX_RAM wcf4b - text "!" - - para "Teach @" - TX_RAM wcf4b - text "" - line "to a #MON?" - done - -_MonCannotLearnMachineMoveText:: - TX_RAM wcd6d - text " is not" - line "compatible with" - cont "@" - TX_RAM wcf4b - text "." - - para "It can't learn" - line "@" - TX_RAM wcf4b - text "." - prompt - -_ItemUseNotTimeText:: - text "OAK: !" - line "This isn't the" - cont "time to use that! " - prompt - -_ItemUseNotYoursToUseText:: - text "This isn't yours" - line "to use!" - prompt - -_ItemUseNoEffectText:: - text "It won't have any" - line "effect." - prompt - -_ThrowBallAtTrainerMonText1:: - text "The trainer" - line "blocked the BALL!" - prompt - -_ThrowBallAtTrainerMonText2:: - text "Don't be a thief!" - prompt - -_NoCyclingAllowedHereText:: - text "No cycling" - next "allowed here." - prompt - -_NoSurfingHereText:: - text "No SURFing on" - line "@" - TX_RAM wcd6d - text " here!" - prompt - -_BoxFullCannotThrowBallText:: - text "The #MON BOX" - line "is full! Can't" - cont "use that item!" - prompt - -_DontHavePokemonText:: - text "You don't have a " - line "#MON!" - prompt - -_ItemUseText001:: - text " used@@" - -_ItemUseText002:: - TX_RAM wcf4b - text "!" - done - -_GotOnBicycleText1:: - text " got on the@@" - -_GotOnBicycleText2:: - TX_RAM wcf4b - text "!" - prompt - -_GotOffBicycleText1:: - text " got off@@" - -_GotOffBicycleText2:: - text "the @" - TX_RAM wcf4b - text "." - prompt - -_ThrewAwayItemText:: - text "Threw away" - line "@" - TX_RAM wcd6d - text "." - prompt - -_IsItOKToTossItemText:: - text "Is it OK to toss" - line "@" - TX_RAM wcf4b - text "?" - prompt - -_TooImportantToTossText:: - text "That's too impor-" - line "tant to toss!" - prompt - -_AlreadyKnowsText:: - TX_RAM wcd6d - text " knows" - line "@" - TX_RAM wcf4b - text "!" - prompt - -_ConnectCableText:: - text "Okay, connect the" - line "cable like so!" - prompt - -_TradedForText:: - text " traded" - line "@" - TX_RAM wInGameTradeGiveMonName - text " for" - cont "@" - TX_RAM wInGameTradeReceiveMonName - text "!@@" - -_WannaTrade1Text:: - text "I'm looking for" - line "@" - TX_RAM wInGameTradeGiveMonName - text "! Wanna" - - para "trade one for" - line "@" - TX_RAM wInGameTradeReceiveMonName - text "? " - done - -_NoTrade1Text:: - text "Awww!" - line "Oh well..." - done - -_WrongMon1Text:: - text "What? That's not" - line "@" - TX_RAM wInGameTradeGiveMonName - text "!" - - para "If you get one," - line "come back here!" - done - -_Thanks1Text:: - text "Hey thanks!" - done - -_AfterTrade1Text:: - text "Isn't my old" - line "@" - TX_RAM wInGameTradeReceiveMonName - text " great?" - done - -_WannaTrade2Text:: - text "Hello there! Do" - line "you want to trade" - - para "your @" - TX_RAM wInGameTradeGiveMonName - text "" - line "for @" - TX_RAM wInGameTradeReceiveMonName - text "?" - done - -_NoTrade2Text:: - text "Well, if you" - line "don't want to..." - done - -_WrongMon2Text:: - text "Hmmm? This isn't" - line "@" - TX_RAM wInGameTradeGiveMonName - text "." - - para "Think of me when" - line "you get one." - done - -_Thanks2Text:: - text "Thanks!" - done - -_AfterTrade2Text:: - text "Hello there! Your" - line "old @" - TX_RAM wInGameTradeGiveMonName - text " is" - cont "magnificent!" - done - -_WannaTrade3Text:: - text "Hi! Do you have" - line "@" - TX_RAM wInGameTradeGiveMonName - text "?" - - para "Want to trade it" - line "for @" - TX_RAM wInGameTradeReceiveMonName - text "?" - done - -_NoTrade3Text:: - text "That's too bad." - done - -_WrongMon3Text:: - text "...This is no" - line "@" - TX_RAM wInGameTradeGiveMonName - text "." - - para "If you get one," - line "trade it with me!" - done - -_Thanks3Text:: - text "Thanks, pal!" - done - -_AfterTrade3Text:: - text "How is my old" - line "@" - TX_RAM wInGameTradeReceiveMonName - text "?" - - para "My @" - TX_RAM wInGameTradeGiveMonName - text " is" - line "doing great!" - done - -_NothingToCutText:: - text "There isn't" - line "anything to CUT!" - prompt - -_UsedCutText:: - TX_RAM wcd6d - text " hacked" - line "away with CUT!" - prompt - - -SECTION "Pokedex Text", ROMX ; BANK $2e - -INCLUDE "text/pokedex.asm" - - -SECTION "Move Names", ROMX ; BANK $2f - -INCLUDE "text/move_names.asm" +INCLUDE "text/ViridianPokecenter.asm" +INCLUDE "text/ViridianMart.asm" +INCLUDE "text/ViridianSchoolHouse.asm" +INCLUDE "text/ViridianNicknameHouse.asm" +INCLUDE "text/ViridianGym.asm" +INCLUDE "text/Museum1F.asm" +INCLUDE "text/Museum2F.asm" +INCLUDE "text/PewterGym.asm" +INCLUDE "text/PewterNidoranHouse.asm" +INCLUDE "text/PewterMart.asm" +INCLUDE "text/PewterSpeechHouse.asm" +INCLUDE "text/PewterPokecenter.asm" +INCLUDE "text/CeruleanTrashedHouse.asm" +INCLUDE "text/CeruleanTradeHouse.asm" +INCLUDE "text/CeruleanPokecenter.asm" +INCLUDE "text/CeruleanGym.asm" +INCLUDE "text/BikeShop.asm" +INCLUDE "text/CeruleanMart.asm" +INCLUDE "text/CeruleanBadgeHouse.asm" + + +SECTION "Text 6", ROMX + +INCLUDE "text/CeruleanBadgeHouse_2.asm" +INCLUDE "text/LavenderPokecenter.asm" +INCLUDE "text/PokemonTower1F.asm" +INCLUDE "text/PokemonTower2F.asm" +INCLUDE "text/PokemonTower3F.asm" +INCLUDE "text/PokemonTower4F.asm" +INCLUDE "text/PokemonTower5F.asm" +INCLUDE "text/PokemonTower6F.asm" +INCLUDE "text/PokemonTower7F.asm" +INCLUDE "text/MrFujisHouse.asm" +INCLUDE "text/LavenderMart.asm" +INCLUDE "text/LavenderCuboneHouse.asm" +INCLUDE "text/NameRatersHouse.asm" +INCLUDE "text/VermilionPokecenter.asm" +INCLUDE "text/PokemonFanClub.asm" +INCLUDE "text/VermilionMart.asm" +INCLUDE "text/VermilionGym.asm" +INCLUDE "text/VermilionPidgeyHouse.asm" +INCLUDE "text/VermilionDock.asm" + +INCLUDE "data/text/text_6.asm" + +INCLUDE "text/VermilionOldRodHouse.asm" +INCLUDE "text/CeladonMart1F.asm" +INCLUDE "text/CeladonMart2F.asm" +INCLUDE "text/CeladonMart3F.asm" +INCLUDE "text/CeladonMart4F.asm" +INCLUDE "text/CeladonMartRoof.asm" +INCLUDE "text/CeladonMansion1F.asm" +INCLUDE "text/CeladonMansion2F.asm" +INCLUDE "text/CeladonMansion3F.asm" +INCLUDE "text/CeladonMansionRoof.asm" +INCLUDE "text/CeladonMansionRoofHouse.asm" +INCLUDE "text/CeladonPokecenter.asm" +INCLUDE "text/CeladonGym.asm" +INCLUDE "text/GameCorner.asm" + + +SECTION "Text 7", ROMX + +INCLUDE "text/GameCorner_2.asm" +INCLUDE "text/CeladonMart5F.asm" +INCLUDE "text/GameCornerPrizeRoom.asm" +INCLUDE "text/CeladonDiner.asm" +INCLUDE "text/CeladonChiefHouse.asm" +INCLUDE "text/CeladonHotel.asm" +INCLUDE "text/FuchsiaMart.asm" +INCLUDE "text/FuchsiaBillsGrandpasHouse.asm" +INCLUDE "text/FuchsiaPokecenter.asm" +INCLUDE "text/WardensHouse.asm" +INCLUDE "text/SafariZoneGate.asm" +INCLUDE "text/FuchsiaGym.asm" +INCLUDE "text/FuchsiaMeetingRoom.asm" +INCLUDE "text/FuchsiaGoodRodHouse.asm" +INCLUDE "text/PokemonMansion1F.asm" +INCLUDE "text/CinnabarGym.asm" +INCLUDE "text/CinnabarLab.asm" +INCLUDE "text/CinnabarLabTradeRoom.asm" +INCLUDE "text/CinnabarLabMetronomeRoom.asm" +INCLUDE "text/CinnabarLabFossilRoom.asm" +INCLUDE "text/CinnabarPokecenter.asm" +INCLUDE "text/CinnabarMart.asm" +INCLUDE "text/IndigoPlateauLobby.asm" +INCLUDE "text/CopycatsHouse1F.asm" +INCLUDE "text/CopycatsHouse2F.asm" +INCLUDE "text/FightingDojo.asm" +INCLUDE "text/SaffronGym.asm" +INCLUDE "text/SaffronPidgeyHouse.asm" +INCLUDE "text/SaffronMart.asm" +INCLUDE "text/SilphCo1F.asm" +INCLUDE "text/SaffronPokecenter.asm" +INCLUDE "text/MrPsychicsHouse.asm" + +INCLUDE "data/text/text_7.asm" + + +SECTION "Text 8", ROMX + +INCLUDE "data/text/text_8.asm" + +INCLUDE "text/PalletTown.asm" +INCLUDE "text/ViridianCity.asm" +INCLUDE "text/PewterCity.asm" +INCLUDE "text/CeruleanCity.asm" +INCLUDE "text/LavenderTown.asm" +INCLUDE "text/VermilionCity.asm" +INCLUDE "text/CeladonCity.asm" +INCLUDE "text/FuchsiaCity.asm" +INCLUDE "text/CinnabarIsland.asm" +INCLUDE "text/SaffronCity.asm" + +INCLUDE "data/text/text_9.asm" + + +SECTION "Pokédex Text", ROMX + +INCLUDE "data/pokemon/dex_text.asm" + + +SECTION "Move Names", ROMX + +INCLUDE "data/moves/names.asm" diff --git a/text/maps/AgathasRoom.asm b/text/AgathasRoom.asm similarity index 100% rename from text/maps/AgathasRoom.asm rename to text/AgathasRoom.asm diff --git a/text/BeachHouse.asm b/text/BeachHouse.asm new file mode 100644 index 000000000..d15e0b9a5 --- /dev/null +++ b/text/BeachHouse.asm @@ -0,0 +1,107 @@ +_SurfinDudeText1:: + text "Whoa!" + + para "Your PIKACHU knows" + line "how to SURF! So," + cont "I'm not alone..." + + para "Great! You earned" + line "the right to SURF" + cont "with the DUDE!" + + para "Give it a go?" + done + +_SurfinDudeText2:: + text "Come SURF anytime," + line "my friend!" + done + +_SurfinDudeText3:: + text "Wanna go SURF?" + done + +_SurfinDudeText4:: + text "Dogs and burgers" + line "on special today!" + done + +_BeachHousePikachuText:: + text "PIKACHU: Pikaa" + done + +_BeachHouseSign1Text1:: + text "SURFIN' DUDE's" + line "scribbles..." + + para "When I shoot the" + line "tube, the tunes" + cont "hit the groove!" + done + +_BeachHouseSign1Text2:: + text "30 years of waves!" + line "SURFIN' DUDE" + done + +_BeachHouseSign2Text1:: + text "SURFING TIP 1!" + + para "After flips, line" + line "the board up with" + cont "a wave for a cool" + cont "effect!" + done + +_BeachHouseSign2Text2:: + text "SUMMER BEACH HOUSE" + line "#MON welcome!" + done + +_BeachHouseSign3Text1:: + text "SURFING TIP 2!" + + para "Pulling flips in" + line "a jump is totally" + cont "rad!" + done + +_BeachHouseSign3Text2:: + text "The sea unites" + line "all in surfdom!" + done + +_BeachHousePrinterText1:: + text "It's some sort of" + line "a machine...@" + text_end + +_BeachHousePrinterText2:: + text "SUMMER BEACH HOUSE" + line "PRINTER, it says.@" + text_end + +_BeachHousePrinterText3:: + text "The Hi-Score is" + line "shown." + + para "PRINT it out?" + done + +_BeachHousePrinterText4:: + text "SUMMER BEACH HOUSE" + line "PRINTER, it says." + + para "The Hi-Score is" + line "shown." + + para "PRINT it out?" + done + +_BeachHousePrinterText5:: + text "PRINT completed.@" + text_end + +_BeachHousePrinterText6:: + text "PRINT error!@" + text_end diff --git a/text/BikeShop.asm b/text/BikeShop.asm new file mode 100644 index 000000000..254da08c4 --- /dev/null +++ b/text/BikeShop.asm @@ -0,0 +1,71 @@ +_BikeShopText_1d810:: + text "Hi! Welcome to" + line "our BIKE SHOP." + + para "Have we got just" + line "the BIKE for you!" + prompt + +_BikeShopText_1d815:: + text "It's a cool BIKE!" + line "Do you want it?" + done + +_BikeShopCantAffordText:: + text "Sorry! You can't" + line "afford it!" + prompt + +_BikeShopText_1d81f:: + text "Oh, that's..." + + para "A BIKE VOUCHER!" + + para "OK! Here you go!" + prompt + +_BikeShopText_1d824:: + text " exchanged" + line "the BIKE VOUCHER" + cont "for a BICYCLE.@" + text_end + +_BikeShopComeAgainText:: + text "Come back again" + line "sometime!" + done + +_BikeShopText_1d82f:: + text "How do you like" + line "your new BICYCLE?" + + para "You can take it" + line "on CYCLING ROAD" + cont "and in caves!" + done + +_BikeShopText_1d834:: + text "You better make" + line "room for this!" + done + +_BikeShopText_1d843:: + text "A plain city BIKE" + line "is good enough" + cont "for me!" + + para "You can't put a" + line "shopping basket" + cont "on an MTB!" + done + +_BikeShopText_1d85c:: + text "These BIKEs are" + line "cool, but they're" + cont "way expensive!" + done + +_BikeShopText_1d861:: + text "Wow. Your BIKE is" + line "really cool!" + done diff --git a/text/BillsHouse.asm b/text/BillsHouse.asm new file mode 100644 index 000000000..2ad5748ad --- /dev/null +++ b/text/BillsHouse.asm @@ -0,0 +1,93 @@ +_BillsHouseDontLeaveText:: + text "Whoa, don't go" + line "anywhere, wait!" + done + +_BillsHouseText_1e865:: + text "Hiya! I'm a" + line "#MON..." + cont "...No I'm not!" + + para "Call me BILL!" + line "I'm a true blue" + cont "#MANIAC! Hey!" + cont "What's with that" + cont "skeptical look?" + + para "I'm not joshing" + line "you, I screwed up" + cont "an experiment and" + cont "got combined with" + cont "a #MON!" + + para "So, how about it?" + line "Help me out here!" + done + +_BillsHouseText_1e86a:: + text "When I'm in the" + line "TELEPORTER, go to" + cont "my PC and run the" + cont "Cell Separation" + cont "System!" + done + +_BillsHouseText_1e86f:: + text "No!? Come on, you" + line "gotta help a guy" + cont "in deep trouble!" + + para "What do you say," + line "chief? Please?" + cont "OK? All right!" + prompt + +_BillThankYouText:: + text "BILL: Yeehah!" + line "Thanks, bud! I" + cont "owe you one!" + + para "So, did you come" + line "to see my #MON" + cont "collection?" + cont "You didn't?" + cont "That's a bummer." + + para "I've got to thank" + line "you... Oh here," + cont "maybe this'll do." + prompt + +_SSTicketReceivedText:: + text " received" + line "an @" + text_ram wcf4b + text "!@" + text_end + +_SSTicketNoRoomText:: + text "You've got too" + line "much stuff, bud!" + done + +_BillsHouseText_1e8cb:: + text "That cruise ship," + line "S.S.ANNE, is in" + cont "VERMILION CITY." + cont "Its passengers" + cont "are all trainers!" + + para "They invited me" + line "to their party," + cont "but I can't stand" + cont "fancy do's. Why" + cont "don't you go" + cont "instead of me?" + done + +_BillsHouseText_1e8da:: + text "BILL: Look, bud," + line "just check out" + cont "some of my rare" + cont "#MON on my PC!" + done diff --git a/text/BluesHouse.asm b/text/BluesHouse.asm new file mode 100644 index 000000000..d799b9edf --- /dev/null +++ b/text/BluesHouse.asm @@ -0,0 +1,42 @@ +_DaisyInitialText:: + text "Hi !" + line " is out at" + cont "Grandpa's lab." + done + +_DaisyOfferMapText:: + text "Grandpa asked you" + line "to run an errand?" + cont "Here, this will" + cont "help you!" + prompt + +_GotMapText:: + text " got a" + line "@" + text_ram wcf4b + text "!@" + text_end + +_DaisyBagFullText:: + text "You have too much" + line "stuff with you." + done + +_DaisyUseMapText:: + text "Use the TOWN MAP" + line "to find out where" + cont "you are." + done + +_BluesHouseDaisyWalkingText:: + text "Spending time" + line "with your #MON" + cont "makes them more" + cont "friendly to you." + done + +_BluesHouseTownMapText:: + text "It's a big map!" + line "This is useful!" + done diff --git a/text/maps/BrunosRoom.asm b/text/BrunosRoom.asm similarity index 100% rename from text/maps/BrunosRoom.asm rename to text/BrunosRoom.asm diff --git a/text/maps/CeladonChiefHouse.asm b/text/CeladonChiefHouse.asm similarity index 100% rename from text/maps/CeladonChiefHouse.asm rename to text/CeladonChiefHouse.asm diff --git a/text/CeladonCity.asm b/text/CeladonCity.asm new file mode 100644 index 000000000..6ec80e662 --- /dev/null +++ b/text/CeladonCity.asm @@ -0,0 +1,154 @@ +_CeladonCityText1:: + text "I got my KOFFING" + line "from my friend!" + + para "We get along now," + line "because I was" + cont "very nice to it!" + done + +_CeladonCityText2:: + text "Heheh! This GYM" + line "is great! It's" + cont "full of women!" + done + +_CeladonCityText3:: + text "The GAME CORNER" + line "is bad for our" + cont "city's image!" + done + +_CeladonCityText4:: + text "Moan! I blew it" + line "all at the slots!" + + para "I knew I should" + line "have cashed in my" + cont "coins for prizes!" + done + +_TM41PreText:: + text "Hello, there!" + + para "I've seen you," + line "but I never had a" + cont "chance to talk!" + + para "Here's a gift for" + line "dropping by!" + prompt + +_ReceivedTM41Text:: + text " received" + line "@" + text_ram wcf4b + text "!@" + text_end + +_TM41ExplanationText:: + text "TM41 teaches" + line "SOFTBOILED!" + + para "Only one #MON" + line "can use it!" + + para "That #MON is" + line "CHANSEY!" + done + +_TM41NoRoomText:: + text "Oh, your pack is" + line "full of items!" + done + +_CeladonCityText6:: + text "This is my trusted" + line "pal, POLIWRATH!" + + para "It evolved from" + line "POLIWHIRL when I" + cont "used WATER STONE!" + done + +_CeladonCityText7:: + text "POLIWRATH: Ribi" + line "ribit!@" + text_end + +_CeladonCityText8:: + text "What are you" + line "staring at?" + done + +_CeladonCityText9:: + text "Keep out of TEAM" + line "ROCKET's way!" + done + +_CeladonCityText11:: + text "CELADON CITY" + line "The City of" + cont "Rainbow Dreams" + done + +_CeladonCityText13:: + text "CELADON CITY" + line "#MON GYM" + cont "LEADER: ERIKA" + + para "The Nature-Loving" + line "Princess!" + done + +_CeladonCityText14:: + text "CELADON MANSION" + done + +_CeladonCityText15:: + text "Find what you" + line "need at CELADON" + cont "DEPT. STORE!" + done + +_CeladonCityText16:: + text "TRAINER TIPS" + + para "GUARD SPEC." + line "protects #MON" + cont "against SPECIAL" + cont "attacks such as" + cont "fire and water!" + + para "Get your items at" + line "CELADON DEPT." + cont "STORE!" + done + +_CeladonCityText17:: + text "Coins exchanged" + line "for prizes!" + cont "PRIZE EXCHANGE" + done + +_CeladonCityText18:: + text "ROCKET GAME CORNER" + line "The playground" + cont "for grownups!" + done + +_CeladonCityText10:: + text "TRAINER TIPS" + + para "X ACCURACY boosts" + line "the accuracy of" + cont "techniques!" + + para "DIRE HIT jacks up" + line "the likelihood of" + cont "critical hits!" + + para "Get your items at" + line "CELADON DEPT." + cont "STORE!" + done diff --git a/text/CeladonDiner.asm b/text/CeladonDiner.asm new file mode 100644 index 000000000..dd86a0c13 --- /dev/null +++ b/text/CeladonDiner.asm @@ -0,0 +1,60 @@ +_CeladonDinerText1:: + text "Hi!" + + para "We're taking a" + line "break now." + done + +_CeladonDinerText2:: + text "My #MON are" + line "weak, so I often" + cont "have to go to the" + cont "DRUG STORE." + done + +_CeladonDinerText3:: + text "Psst! There's a" + line "basement under" + cont "the GAME CORNER." + done + +_CeladonDinerText4:: + text "Munch..." + + para "The man at that" + line "table lost it all" + cont "at the slots." + done + +_CeladonDinerText_491a7:: + text "Go ahead! Laugh!" + + para "I'm flat out" + line "busted!" + + para "No more slots for" + line "me! I'm going" + cont "straight!" + + para "Here! I won't be" + line "needing this any-" + cont "more!" + prompt + +_ReceivedCoinCaseText:: + text " received" + line "a @" + text_ram wcf4b + text "!@" + text_end + +_CoinCaseNoRoomText:: + text "Make room for" + line "this!" + done + +_CeladonDinerText_491b7:: + text "I always thought" + line "I was going to" + cont "win it back..." + done diff --git a/text/CeladonGym.asm b/text/CeladonGym.asm new file mode 100644 index 000000000..5d354bbb3 --- /dev/null +++ b/text/CeladonGym.asm @@ -0,0 +1,220 @@ +_CeladonGymText_48a5e:: + text "Hello. Lovely" + line "weather isn't it?" + cont "It's so pleasant." + + para "...Oh dear..." + line "I must have dozed" + cont "off. Welcome." + + para "My name is ERIKA." + line "I am the LEADER" + cont "of CELADON GYM." + + para "I teach the art of" + line "flower arranging." + cont "My #MON are of" + cont "the grass-type." + + para "Oh, I'm sorry, I" + line "had no idea that" + cont "you wished to" + cont "challenge me." + + para "Very well, but I" + line "shall not lose." + done + +_CeladonGymText_48a63:: + text "Oh!" + line "I concede defeat." + + para "You are remarkably" + line "strong." + + para "I must confer you" + line "the RAINBOWBADGE." + prompt + +_CeladonGymText_48a68:: + text "You are cataloging" + line "#MON? I must" + cont "say I'm impressed." + + para "I would never" + line "collect #MON" + cont "if they were" + cont "unattractive." + done + +_CeladonGymText9:: + text "The RAINBOWBADGE" + line "will make #MON" + cont "up to L50 obey." + + para "It also allows" + line "#MON to use" + cont "STRENGTH in and" + cont "out of battle." + + para "Please also take" + line "this with you." + done + +_ReceivedTM21Text:: + text " received" + line "@" + text_ram wcf4b + text "!@" + text_end + +_TM21ExplanationText:: + text_start + + para "TM21 contains" + line "MEGA DRAIN." + + para "Half the damage" + line "it inflicts is" + cont "drained to heal" + cont "your #MON!" + done + +_TM21NoRoomText:: + text "You should make" + line "room for this." + done + +_CeladonGymBattleText2:: + text "Hey!" + + para "You are not" + line "allowed in here!" + done + +_CeladonGymEndBattleText2:: + text "You're" + line "too rough!" + prompt + +_CeladonGymAfterBattleText2:: + text "Bleaah!" + line "I hope ERIKA" + cont "wipes you out!" + done + +_CeladonGymBattleText3:: + text "I was getting" + line "bored." + done + +_CeladonGymEndBattleText3:: + text "My" + line "makeup!" + prompt + +_CeladonGymAfterBattleText3:: + text "Grass-type #MON" + line "are tough against" + cont "the water-type!" + + para "They also have an" + line "edge on rock and" + cont "ground #MON!" + done + +_CeladonGymBattleText4:: + text "Aren't you the" + line "peeping Tom?" + done + +_CeladonGymEndBattleText4:: + text "I'm" + line "in shock!" + prompt + +_CeladonGymAfterBattleText4:: + text "Oh, you weren't" + line "peeping? We get a" + cont "lot of gawkers!" + done + +_CeladonGymBattleText5:: + text "Look at my grass" + line "#MON!" + + para "They're so easy" + line "to raise!" + done + +_CeladonGymEndBattleText5:: + text "No!" + prompt + +_CeladonGymAfterBattleText5:: + text "We only use grass-" + line "type #MON at" + cont "our GYM!" + + para "We also use them" + line "for making flower" + cont "arrangements!" + done + +_CeladonGymBattleText6:: + text "Don't bring any" + line "bugs or fire" + cont "#MON in here!" + done + +_CeladonGymEndBattleText6:: + text "Oh!" + line "You!" + prompt + +_CeladonGymAfterBattleText6:: + text "Our LEADER, ERIKA," + line "might be quiet," + cont "but she's also" + cont "very skilled!" + done + +_CeladonGymBattleText7:: + text "Pleased to meet" + line "you. My hobby is" + cont "#MON training." + done + +_CeladonGymEndBattleText7:: + text "Oh!" + line "Splendid!" + prompt + +_CeladonGymAfterBattleText7:: + text "I have a blind" + line "date coming up." + cont "I have to learn" + cont "to be polite." + done + +_CeladonGymBattleText8:: + text "Welcome to" + line "CELADON GYM!" + + para "You better not" + line "underestimate" + cont "girl power!" + done + +_CeladonGymEndBattleText8:: + text "Oh!" + line "Beaten!" + prompt + +_CeladonGymAfterBattleText8:: + text "I didn't bring my" + line "best #MON!" + + para "Wait 'til next" + line "time!" + done diff --git a/text/maps/CeladonHotel.asm b/text/CeladonHotel.asm similarity index 100% rename from text/maps/CeladonHotel.asm rename to text/CeladonHotel.asm diff --git a/text/CeladonMansion1F.asm b/text/CeladonMansion1F.asm new file mode 100644 index 000000000..52946a41e --- /dev/null +++ b/text/CeladonMansion1F.asm @@ -0,0 +1,68 @@ +_CeladonMansion1Text1:: + text "MEOWTH: Meow!@" + text_end + +_CeladonMansion1Text3:: + text "CLEFAIRY: Pi" + line "pippippi!@" + text_end + +_CeladonMansion1Text4:: + text "NIDORAN: Kya" + line "kyaoo!@" + text_end + +_CeladonMansion1Text5:: + text "CELADON MANSION" + line "Manager's Suite" + done + +_CeladonMansion1Text2:: + text "My dear #MON" + line "keep me company." + + para "MEOWTH even brings" + line "money home!" + done + +_CeladonMansion1Text6:: + text "Oh, you have an" + line "adorable PIKACHU" + cont "with you.@" + text_end + +_CeladonMansion1Text7:: + text "It seems like it" + line "hasn't been tamed" + cont "at all." + done + +_CeladonMansion1Text8:: + text "Why don't you" + line "take more care" + cont "with PIKACHU?" + done + +_CeladonMansion1Text9:: + text "You must be happy" + line "to have a #MON" + cont "that cute." + done + +_CeladonMansion1Text10:: + text "Your PIKACHU seems" + line "tamed." + done + +_CeladonMansion1Text11:: + text "Your PIKACHU looks" + line "happy with you." + done + +_CeladonMansion1Text12:: + text "You look like a" + line "fantastic duo." + + para "You're making me" + line "jealous!" + done diff --git a/text/maps/CeladonMansion2F.asm b/text/CeladonMansion2F.asm similarity index 100% rename from text/maps/CeladonMansion2F.asm rename to text/CeladonMansion2F.asm diff --git a/text/CeladonMansion3F.asm b/text/CeladonMansion3F.asm new file mode 100644 index 000000000..4381c60fd --- /dev/null +++ b/text/CeladonMansion3F.asm @@ -0,0 +1,118 @@ +_ProgrammerText:: + text "Me? I'm the" + line "programmer!" + done + +_ProgrammerText2:: + text "Me? I'm the" + line "programmer!" + + para "What a surprise!" + line "I never expected" + cont "anyone to fill a" + cont "#DEX." + done + +_GraphicArtistText:: + text "I'm the graphic" + line "artist!" + cont "I drew you!" + done + +_GraphicArtistText2:: + text "I'm the graphic" + line "artist!" + + para "Wow, you finished" + line "your #DEX!" + cont "Want me to PRINT" + cont "out a DIPLOMA" + cont "as proof?" + done + +_GraphicArtistText3:: + text "Just tell me if" + line "you want to PRINT" + cont "out a DIPLOMA." + done + +_GraphicArtistText4:: + text "All done!" + done + +_GraphicArtistText5:: + text "OK, let's not" + line "PRINT." + done + +_WriterText:: + text "I wrote the story!" + line "Isn't ERIKA cute?" + + para "I like MISTY a" + line "lot too!" + + para "Oh, and SABRINA," + line "I like her!" + done + +_WriterText2:: + text "I wrote the story!" + + para "It's great you" + line "caught all the" + cont "#MON! Thanks!" + done + +_GameDesignerText:: + text "Is that right?" + + para "I'm the game" + line "designer!" + + para "Filling up your" + line "#DEX is tough," + cont "but don't quit!" + + para "When you finish," + line "come tell me!" + done + +_CompletedDexText:: + text "Wow! Excellent!" + line "You completed" + cont "your #DEX!" + cont "Congratulations!" + cont "...@" + text_end + +_CompletedDexText2:: + text "Go show off your" + line "DIPLOMA to" + cont "the development" + cont "crew." + done + +_CeladonMansion3Text5:: + text "It's the game" + line "program! Messing" + cont "with it could bug" + cont "out the game!" + done + +_CeladonMansion3Text6:: + text "Someone's playing" + line "a game instead of" + cont "working!" + done + +_CeladonMansion3Text7:: + text "It's the script!" + line "Better not look" + cont "at the ending!" + done + +_CeladonMansion3Text8:: + text "GAME FREAK" + line "Development Room" + done diff --git a/text/maps/CeladonMansionRoof.asm b/text/CeladonMansionRoof.asm similarity index 100% rename from text/maps/CeladonMansionRoof.asm rename to text/CeladonMansionRoof.asm diff --git a/text/maps/CeladonMansionRoofHouse.asm b/text/CeladonMansionRoofHouse.asm similarity index 100% rename from text/maps/CeladonMansionRoofHouse.asm rename to text/CeladonMansionRoofHouse.asm diff --git a/text/maps/CeladonMart1F.asm b/text/CeladonMart1F.asm similarity index 100% rename from text/maps/CeladonMart1F.asm rename to text/CeladonMart1F.asm diff --git a/text/maps/CeladonMart2F.asm b/text/CeladonMart2F.asm similarity index 100% rename from text/maps/CeladonMart2F.asm rename to text/CeladonMart2F.asm diff --git a/text/CeladonMart3F.asm b/text/CeladonMart3F.asm new file mode 100644 index 000000000..633f1d3bd --- /dev/null +++ b/text/CeladonMart3F.asm @@ -0,0 +1,99 @@ +_CeladonMart3Text2:: + text "Captured #MON" + line "are registered" + cont "with an ID No." + cont "and OT, the name" + cont "of the Original" + cont "Trainer that" + cont "caught it!" + done + +_CeladonMart3Text3:: + text "All right!" + + para "My buddy's going" + line "to trade me his" + cont "KANGASKHAN for my" + cont "GRAVELER!" + done + +_CeladonMart3Text4:: + text "Come on GRAVELER!" + + para "I love GRAVELER!" + line "I collect them!" + + para "Huh?" + + para "GRAVELER turned" + line "into a different" + cont "#MON!" + done + +_CeladonMart3Text5:: + text "You can identify" + line "#MON you got" + cont "in trades by" + cont "their ID Numbers!" + done + +_CeladonMart3Text6:: + text "It's an SNES!" + done + +_CeladonMart3Text7:: + text "An RPG! There's" + line "no time for that!" + done + +_CeladonMart3Text9:: + text "A sports game!" + line "Dad'll like that!" + done + +_CeladonMart3Text11:: + text "A puzzle game!" + line "Looks addictive!" + done + +_CeladonMart3Text13:: + text "A fighting game!" + line "Looks tough!" + done + +_CeladonMart3Text14:: + text "3F: TV GAME SHOP" + done + +_CeladonMart3Text15:: + text "Red and Blue!" + line "Both are #MON!" + done + +_TM18PreReceiveText:: + text "Oh, hi! I finally" + line "finished #MON!" + + para "Not done yet?" + line "This might be" + cont "useful!" + prompt + +_ReceivedTM18Text:: + text " received" + line "@" + text_ram wcf4b + text "!@" + text_end + +_TM18ExplanationText:: + text "TM18 is COUNTER!" + line "Not like the one" + cont "I'm leaning on," + cont "mind you!" + done + +_TM18NoRoomText:: + text "Your pack is full" + line "of items!" + done diff --git a/text/maps/CeladonMart4F.asm b/text/CeladonMart4F.asm similarity index 100% rename from text/maps/CeladonMart4F.asm rename to text/CeladonMart4F.asm diff --git a/text/maps/CeladonMart5F.asm b/text/CeladonMart5F.asm similarity index 100% rename from text/maps/CeladonMart5F.asm rename to text/CeladonMart5F.asm diff --git a/text/CeladonMartRoof.asm b/text/CeladonMartRoof.asm new file mode 100644 index 000000000..fa6f1f64f --- /dev/null +++ b/text/CeladonMartRoof.asm @@ -0,0 +1,149 @@ +_CeladonMartRoofText_484ee:: + text "Give her which" + line "drink?" + done + +_CeladonMartRoofText_484f3:: + text "Yay!" + + para "FRESH WATER!" + + para "Thank you!" + + para "You can have this" + line "from me!@" + text_end + +_CeladonMartRoofText_484f9:: + text " received" + line "@" + text_ram wcf4b + text "!@" + text_end + +_CeladonMartRoofText_484fe:: + text_start + + para "@" + text_ram wcf4b + text " contains" + line "ICE BEAM!" + + para "It can freeze the" + line "target sometimes!@" + text_end + +_CeladonMartRoofText_48504:: + text "Yay!" + + para "SODA POP!" + + para "Thank you!" + + para "You can have this" + line "from me!@" + text_end + +_CeladonMartRoofText_4850a:: + text " received" + line "@" + text_ram wcf4b + text "!@" + text_end + +_CeladonMartRoofText_4850f:: + text_start + + para "@" + text_ram wcf4b + text " contains" + line "ROCK SLIDE!@" + text_end + +_CeladonMartRoofText_48515:: + text "Yay!" + + para "LEMONADE!" + + para "Thank you!" + + para "You can have this" + line "from me!@" + text_end + +_ReceivedTM49Text:: + text " received" + line "TM49!@" + text_end + +_CeladonMartRoofText_48520:: + text_start + + para "TM49 contains" + line "TRI ATTACK!@" + text_end + +_CeladonMartRoofText_48526:: + text "You don't have" + line "space for this!@" + text_end + +_CeladonMartRoofText_4852c:: + text "No thank you!" + line "I'm not thirsty" + cont "after all!@" + text_end + +_CeladonMartRoofText1:: + text "My sister is a" + line "trainer, believe" + cont "it or not." + + para "But, she's so" + line "immature, she" + cont "drives me nuts!" + done + +_CeladonMartRoofText_48598:: + text "I'm thirsty!" + line "I want something" + cont "to drink!" + done + +_CeladonMartRoofText4:: + text "I'm thirsty!" + line "I want something" + cont "to drink!" + + para "Give her a drink?" + done + +_CeladonMartRoofText6:: + text "ROOFTOP SQUARE:" + line "VENDING MACHINES" + done + +_VendingMachineText1:: + text "A vending machine!" + line "Here's the menu!" + prompt + +_VendingMachineText4:: + text "Oops, not enough" + line "money!" + done + +_VendingMachineText5:: + text_ram wcf4b + text_start + line "popped out!" + done + +_VendingMachineText6:: + text "There's no more" + line "room for stuff!" + done + +_VendingMachineText7:: + text "Not thirsty!" + done diff --git a/text/maps/CeladonPokecenter.asm b/text/CeladonPokecenter.asm similarity index 100% rename from text/maps/CeladonPokecenter.asm rename to text/CeladonPokecenter.asm diff --git a/text/maps/CeruleanBadgeHouse.asm b/text/CeruleanBadgeHouse.asm similarity index 100% rename from text/maps/CeruleanBadgeHouse.asm rename to text/CeruleanBadgeHouse.asm diff --git a/text/maps/CeruleanBadgeHouse_2.asm b/text/CeruleanBadgeHouse_2.asm old mode 100755 new mode 100644 similarity index 100% rename from text/maps/CeruleanBadgeHouse_2.asm rename to text/CeruleanBadgeHouse_2.asm diff --git a/text/CeruleanCaveB1F.asm b/text/CeruleanCaveB1F.asm new file mode 100644 index 000000000..cb407c606 --- /dev/null +++ b/text/CeruleanCaveB1F.asm @@ -0,0 +1,3 @@ +_MewtwoBattleText:: + text "Mew!@" + text_end diff --git a/text/CeruleanCity.asm b/text/CeruleanCity.asm new file mode 100644 index 000000000..955dca89e --- /dev/null +++ b/text/CeruleanCity.asm @@ -0,0 +1,235 @@ +_CeruleanCityText_19668:: + text ": Yo!" + line "!" + + para "You're still" + line "struggling along" + cont "back here?" + + para "I'm doing great!" + line "I caught a bunch" + cont "of strong and" + cont "smart #MON!" + + para "Here, let me see" + line "what you caught," + cont "!" + done + +_CeruleanCityText_1966d:: + text "Hey!" + line "Take it easy!" + cont "You won already!" + prompt + +_CeruleanCityText_19672:: + text "Heh!" + line "You're no match" + cont "for my genius!" + prompt + +_CeruleanCityText_19677:: + text ": Hey," + line "guess what?" + + para "I went to BILL's" + line "and got him to" + cont "show me his rare" + cont "#MON!" + + para "That added a lot" + line "of pages to my" + cont "#DEX!" + + para "After all, BILL's" + line "world famous as a" + cont "#MANIAC!" + + para "He invented the" + line "#MON Storage" + cont "System on PC!" + + para "Since you're using" + line "his system, go" + cont "thank him!" + + para "Well, I better" + line "get rolling!" + cont "Smell ya later!" + done + +_CeruleanCityText_196d9:: + text "Hey! Stay out!" + line "It's not your" + cont "yard! Huh? Me?" + + para "I'm an innocent" + line "bystander! Don't" + cont "you believe me?" + done + +_ReceivedTM28Text:: + text " recovered" + line "TM28!@" + text_end + +_ReceivedTM28Text2:: + text_start + + para "I better get" + line "moving! Bye!@" + text_end + +_TM28NoRoomText:: + text "Make room for" + line "this!" + + para "I can't run until" + line "I give it to you!" + done + +_CeruleanCityText_196ee:: + text "Stop!" + line "I give up! I'll" + cont "leave quietly!" + prompt + +_CeruleanCityText_196f3:: + text "OK! I'll return" + line "the TM I stole!" + prompt + +_CeruleanCityText3:: + text "You're a trainer" + line "too? Collecting," + cont "fighting, it's a" + cont "tough life." + done + +_CeruleanCityText4:: + text "That bush in" + line "front of the shop" + cont "is in the way." + + para "There might be a" + line "way around." + done + +_CeruleanCityText5:: + text "You're making an" + line "encyclopedia on" + cont "#MON? That" + cont "sounds amusing." + done + +_CeruleanCityText6:: + text "These poor people" + line "here were robbed." + + para "We're positive" + line "that TEAM ROCKET" + cont "is behind this" + cont "terrible deed." + + para "Even our POLICE" + line "FORCE has trouble" + cont "with the ROCKETs!" + done + +_CeruleanCityText_19730:: + text "OK! ELECTRODE!" + line "Use SONICBOOM!" + cont "Please ELECTRODE," + cont "pay attention!" + done + +_CeruleanCityText_19735:: + text "ELECTRODE, TACKLE!" + line "No! You blew it" + cont "again!" + done + +_CeruleanCityText_1973a:: + text "ELECTRODE, SWIFT!" + line "No! That's wrong!" + + para "Training #MON" + line "is difficult!" + + para "Your #MON's" + line "obedience depends" + cont "on your abilities" + cont "as a trainer!" + done + +_CeruleanCityText_1976f:: + text "ELECTRODE took a" + line "snooze..." + done + +_CeruleanCityText_19774:: + text "ELECTRODE is" + line "loafing around..." + done + +_CeruleanCityText_19779:: + text "ELECTRODE turned" + line "away..." + done + +_CeruleanCityText_1977e:: + text "ELECTRODE" + line "ignored orders..." + done + +_CeruleanCityText9:: + text "I want a bright" + line "red BICYCLE!" + + para "I'll keep it at" + line "home, so it won't" + cont "get dirty!" + done + +_CeruleanCityText10:: + text "This is CERULEAN" + line "CAVE! Horribly" + cont "strong #MON" + cont "live in there!" + + para "The #MON LEAGUE" + line "champion is the" + cont "only person who" + cont "is allowed in!" + done + +_CeruleanCityText12:: + text "CERULEAN CITY" + line "A Mysterious," + cont "Blue Aura" + cont "Surrounds It" + done + +_CeruleanCityText13:: + text "TRAINER TIPS" + + para "Pressing B Button" + line "during evolution" + cont "cancels the whole" + cont "process." + done + +_CeruleanCityText16:: + text "Grass and caves" + line "handled easily!" + cont "BIKE SHOP" + done + +_CeruleanCityText17:: + text "CERULEAN CITY" + line "#MON GYM" + cont "LEADER: MISTY" + + para "The Tomboyish" + line "Mermaid!" + done diff --git a/text/CeruleanGym.asm b/text/CeruleanGym.asm new file mode 100644 index 000000000..4f8d5ab2b --- /dev/null +++ b/text/CeruleanGym.asm @@ -0,0 +1,135 @@ +_CeruleanGymText_5c7be:: + text "Hi, you're a new" + line "face!" + + para "What's your policy" + line "on #MON? What" + cont "is your approach?" + + para "My policy is an" + line "all-out offensive" + cont "with water-type" + cont "#MON!" + + para "MISTY, the world-" + line "famous beauty, is" + cont "your host!" + + para "Are you ready," + line "sweetie?" + done + +_CeruleanGymText_5c7c3:: + text "TM11 teaches" + line "BUBBLEBEAM!" + + para "Use it on an" + line "aquatic #MON!" + done + +_CeruleanGymText_5c7c8:: + text "The CASCADEBADGE" + line "makes all #MON" + cont "up to L30 obey!" + + para "That includes" + line "even outsiders!" + + para "There's more, you" + line "can now use CUT" + cont "anytime!" + + para "You can CUT down" + line "small bushes to" + cont "open new paths!" + + para "You can also have" + line "my favorite TM!" + done + +_ReceivedTM11Text:: + text " received" + line "TM11!@" + text_end + +_CeruleanGymText_5c7d3:: + text "You better make" + line "room for this!" + done + +_CeruleanGymText_5c7d8:: + text "I can't" + line "believe I lost!" + + para "All right!" + + para "You can have the" + line "CASCADEBADGE to" + cont "show you beat me!" + prompt + +_CeruleanGymBattleText1:: + text "I'm more than good" + line "enough for you!" + + para "MISTY can wait!" + done + +_CeruleanGymEndBattleText1:: + text "You" + line "overwhelmed me!" + prompt + +_CeruleanGymAfterBattleText1:: + text "You have to face" + line "other trainers to" + cont "find out how good" + cont "you really are." + done + +_CeruleanGymBattleText2:: + text "Splash!" + + para "I'm first up!" + line "Let's do it!" + done + +_CeruleanGymEndBattleText2:: + text "That" + line "can't be!" + prompt + +_CeruleanGymAfterBattleText2:: + text "MISTY is going to" + line "keep improving!" + + para "She won't lose to" + line "someone like you!" + done + +_CeruleanGymText_5c82a:: + text "Yo! Champ in" + line "making!" + + para "Here's my advice!" + + para "The LEADER, MISTY," + line "is a pro who uses" + cont "water #MON!" + + para "You can drain all" + line "their water with" + cont "plant #MON!" + + para "Or, zap them with" + line "electricity!" + done + +_CeruleanGymText_5c82f:: + text "You beat MISTY!" + line "What'd I tell ya?" + + para "You and me, kid," + line "we make a pretty" + cont "darn good team!" + done diff --git a/text/maps/CeruleanMart.asm b/text/CeruleanMart.asm similarity index 100% rename from text/maps/CeruleanMart.asm rename to text/CeruleanMart.asm diff --git a/text/maps/CeruleanPokecenter.asm b/text/CeruleanPokecenter.asm similarity index 100% rename from text/maps/CeruleanPokecenter.asm rename to text/CeruleanPokecenter.asm diff --git a/text/CeruleanTradeHouse.asm b/text/CeruleanTradeHouse.asm new file mode 100644 index 000000000..d50a4ac49 --- /dev/null +++ b/text/CeruleanTradeHouse.asm @@ -0,0 +1,46 @@ +MelanieText1:: + text "I take care of" + line "injured #MON." + + para "I nursed this" + line "BULBASAUR back to" + cont "health." + + para "It needs a good" + line "trainer to take" + cont "care of it now.@" + text_end + +MelanieText2:: + text "I know! Would you" + line "take care of this" + cont "BULBASAUR?" + done + +MelanieText3:: + text "Please take care" + line "of BULBASAUR!@" + text_end + +MelanieText4:: + text "Is BULBASAUR" + line "doing well?@" + text_end + +MelanieText5:: + text "Oh..." + line "That's too bad...@" + text_end + +MelanieBulbasaurText:: + text "BULBASAUR: Bubba!" + line "Zoar!@" + text_end + +MelanieOddishText:: + text "ODDISH: Orddissh!@" + text_end + +MelanieSandshrewText:: + text "SANDSHREW: Pikii!@" + text_end diff --git a/text/maps/CeruleanTrashedHouse.asm b/text/CeruleanTrashedHouse.asm similarity index 100% rename from text/maps/CeruleanTrashedHouse.asm rename to text/CeruleanTrashedHouse.asm diff --git a/text/ChampionsRoom.asm b/text/ChampionsRoom.asm new file mode 100644 index 000000000..575b7da46 --- /dev/null +++ b/text/ChampionsRoom.asm @@ -0,0 +1,146 @@ +_GaryChampionIntroText:: + text ": Hey!" + + para "I was looking" + line "forward to seeing" + cont "you, !" + + para "My rival should" + line "be strong to keep" + cont "me sharp!" + + para "While working on" + line "#DEX, I looked" + cont "all over for" + cont "powerful #MON!" + + para "Not only that, I" + line "assembled teams" + cont "that would beat" + cont "any #MON type!" + + para "And now!" + + para "I'm the #MON" + line "LEAGUE champion!" + + para "! Do you" + line "know what that" + cont "means?" + + para "I'll tell you!" + + para "I am the most" + line "powerful trainer" + cont "in the world!" + done + +_GaryDefeatedText:: + text "NO!" + line "That can't be!" + cont "You beat my best!" + + para "After all that" + line "work to become" + cont "LEAGUE champ?" + + para "My reign is over" + line "already?" + cont "It's not fair!" + prompt + +_GaryVictoryText:: + text "Hahaha!" + line "I won, I won!" + + para "I'm too good for" + line "you, !" + + para "You did well to" + line "even reach me," + cont ", the" + cont "#MON genius!" + + para "Nice try, loser!" + line "Hahaha!" + prompt + +_GaryText_76103:: + text "Why?" + line "Why did I lose?" + + para "I never made any" + line "mistakes raising" + cont "my #MON..." + + para "Darn it! You're" + line "the new #MON" + cont "LEAGUE champion!" + + para "Although I don't" + line "like to admit it." + done + +_GaryText2:: + text "OAK: !" + done + +_GaryText_76120:: + text "OAK: So, you won!" + line "Congratulations!" + cont "You're the new" + cont "#MON LEAGUE" + cont "champion!" + + para "You've grown up so" + line "much since you" + cont "first left with" + cont "@" + text_ram wcd6d + text "!" + + para ", you have" + line "come of age!" + done + +_GaryText_76125:: + text "OAK: ! I'm" + line "disappointed!" + + para "I came when I" + line "heard you beat" + cont "the ELITE FOUR!" + + para "But, when I got" + line "here, you had" + cont "already lost!" + + para "! Do you" + line "understand why" + cont "you lost?" + + para "You have forgotten" + line "to treat your" + cont "#MON with" + cont "trust and love!" + + para "Without them, you" + line "will never become" + cont "a champ again!" + done + +_GaryText_7612a:: + text "OAK: !" + + para "You understand" + line "that your victory" + cont "was not just your" + cont "own doing!" + + para "The bond you share" + line "with your #MON" + cont "is marvelous!" + + para "!" + line "Come with me!" + done diff --git a/text/CinnabarGym.asm b/text/CinnabarGym.asm new file mode 100644 index 000000000..a59dbeaa9 --- /dev/null +++ b/text/CinnabarGym.asm @@ -0,0 +1,255 @@ +_BlaineBattleText:: + text "Hah!" + + para "I am BLAINE! I" + line "am the LEADER of" + cont "CINNABAR GYM!" + + para "My fiery #MON" + line "will incinerate" + cont "all challengers!" + + para "Hah! You better" + line "have BURN HEAL!" + done + +_BlaineEndBattleText:: + text "I have" + line "burnt out!" + + para "You have earned" + line "the VOLCANOBADGE!@" + text_end + +_BlaineFireBlastText:: + text "FIRE BLAST is the" + line "ultimate fire" + cont "technique!" + + para "Don't waste it on" + line "water #MON!" + done + +_BlaineBadgeText:: + text "Hah!" + + para "The VOLCANOBADGE" + line "heightens the" + cont "SPECIAL abilities" + cont "of your #MON!" + + para "Here, you can" + line "have this too!" + done + +_ReceivedTM38Text:: + text " received" + line "@" + text_ram wcf4b + text "!@" + text_end + +_TM38ExplanationText:: + text_start + + para "TM38 contains" + line "FIRE BLAST!" + + para "Teach it to fire-" + line "type #MON!" + + para "CHARMELEON or" + line "PONYTA would be" + cont "good bets!" + done + +_TM38NoRoomText:: + text "Make room for my" + line "gift!" + done + +_CinnabarGymText_7595f:: + text "Do you know how" + line "hot #MON fire" + cont "breath can get?" + done + +_CinnabarGymText_75964:: + text "Yow!" + line "Hot, hot, hot!" + prompt + +_CinnabarGymText_75969:: + text "Fire, or to be" + line "more precise," + cont "combustion..." + + para "Blah, blah, blah," + line "blah..." + done + +_CinnabarGymText_75994:: + text "I was a thief, but" + line "I became straight" + cont "as a trainer!" + done + +_CinnabarGymText_75999:: + text "I" + line "surrender!" + prompt + +_CinnabarGymText_7599e:: + text "I can't help" + line "stealing other" + cont "people's #MON!" + done + +_CinnabarGymText_759c9:: + text "You can't win!" + line "I have studied" + cont "#MON totally!" + done + +_CinnabarGymText_759ce:: + text "Waah!" + line "My studies!" + prompt + +_CinnabarGymText_759d3:: + text "My theories are" + line "too complicated" + cont "for you!" + done + +_CinnabarGymText_759fe:: + text "I just like using" + line "fire #MON!" + done + +_CinnabarGymText_75a03:: + text "Too hot" + line "to handle!" + prompt + +_CinnabarGymText_75a08:: + text "I wish there was" + line "a thief #MON!" + cont "I'd use that!" + done + +_CinnabarGymText_75a33:: + text "I know why BLAINE" + line "became a trainer!" + done + +_CinnabarGymText_75a38:: + text "Ow!" + prompt + +_CinnabarGymText_75a3d:: + text "BLAINE was lost" + line "in the mountains" + cont "when a fiery bird" + cont "#MON appeared." + + para "Its light enabled" + line "BLAINE to find" + cont "his way down!" + done + +_CinnabarGymText_75a68:: + text "I've been to many" + line "GYMs, but this is" + cont "my favorite!" + done + +_CinnabarGymText_75a6d:: + text "Yowza!" + line "Too hot!" + prompt + +_CinnabarGymText_75a72:: + text "Us fire #MON" + line "fans like PONYTA" + cont "and NINETALES!" + done + +_CinnabarGymText_75a9d:: + text "Fire is weak" + line "against H2O!" + done + +_CinnabarGymText_75aa2:: + text "Oh!" + line "Snuffed out!" + prompt + +_CinnabarGymText_75aa7:: + text "Water beats fire!" + line "But, fire melts" + cont "ice #MON!" + done + +_CinnabarGymText_75ac2:: + text "Yo! Champ in" + line "making!" + + para "The hot-headed" + line "BLAINE is a fire" + cont "#MON pro!" + + para "Douse his spirits" + line "with water!" + + para "You better take" + line "some BURN HEALs!" + done + +_CinnabarGymText_75ac7:: + text "! You beat" + line "that fire brand!" + done + +_CinnabarGymText_1:: + text "This GYM is also" + line "known as the QUIZ" + cont "GYM." + + para "You have to take a" + line "quiz if you want" + cont "to see BLAINE." + + para "You don't have to" + line "fight us if you" + cont "get it right." + done + +_CinnabarGymText_2:: + text "Think you can do" + line "it?" + done + +_CinnabarGymText_3:: + text "This one's tricky!" + done + +_CinnabarGymText_4:: + text "#MON enjoy" + line "quizzes too!" + done + +_CinnabarGymText_5:: + text "I like it here at" + line "QUIZ GYM." + done + +_CinnabarGymText_6:: + text "This is the last" + line "question." + done + +_CinnabarGymText_7:: + text "Come on, answer" + line "the question!" + done diff --git a/text/maps/CinnabarIsland.asm b/text/CinnabarIsland.asm similarity index 100% rename from text/maps/CinnabarIsland.asm rename to text/CinnabarIsland.asm diff --git a/text/maps/CinnabarLab.asm b/text/CinnabarLab.asm similarity index 100% rename from text/maps/CinnabarLab.asm rename to text/CinnabarLab.asm diff --git a/text/CinnabarLabFossilRoom.asm b/text/CinnabarLabFossilRoom.asm new file mode 100644 index 000000000..e7983fe99 --- /dev/null +++ b/text/CinnabarLabFossilRoom.asm @@ -0,0 +1,78 @@ +_Lab4Text_75dc6:: + text "Hiya!" + + para "I am important" + line "doctor!" + + para "I study here rare" + line "#MON fossils!" + + para "You! Have you a" + line "fossil for me?" + prompt + +_Lab4Text_75dcb:: + text "No! Is too bad!" + done + +_Lab4Text_75dd0:: + text "I take a little" + line "time!" + + para "You go for walk a" + line "little while!" + done + +_Lab4Text_75dd5:: + text "Where were you?" + + para "Your fossil is" + line "back to life!" + + para "It was @" + text_ram wcf4b + text_start + line "like I think!" + prompt + +_Lab4Text_610ae:: + text "Oh! That is" + line "@" + text_ram wcd6d + text "!" + + para "It is fossil of" + line "@" + text_ram wcf4b + text ", a" + cont "#MON that is" + cont "already extinct!" + + para "My Resurrection" + line "Machine will make" + cont "that #MON live" + cont "again!" + done + +_Lab4Text_610b3:: + text "So! You hurry and" + line "give me that!" + + para " handed" + line "over @" + text_ram wcd6d + text "!" + prompt + +_Lab4Text_610b8:: + text "I take a little" + line "time!" + + para "You go for walk a" + line "little while!" + done + +_Lab4Text_610bd:: + text "Aiyah! You come" + line "again!" + done diff --git a/text/CinnabarLabMetronomeRoom.asm b/text/CinnabarLabMetronomeRoom.asm new file mode 100644 index 000000000..f9b2c5d5c --- /dev/null +++ b/text/CinnabarLabMetronomeRoom.asm @@ -0,0 +1,64 @@ +_TM35PreReceiveText:: + text "Tch-tch-tch!" + line "I made a cool TM!" + + para "It can cause all" + line "kinds of fun!" + prompt + +_ReceivedTM35Text:: + text " received " + line "@" + text_ram wcf4b + text "!@" + text_end + +_TM35ExplanationText:: + text "Tch-tch-tch!" + line "That's the sound" + cont "of a METRONOME!" + + para "It tweaks your" + line "#MON's brain" + cont "into using moves" + cont "it doesn't know!" + done + +_TM35NoRoomText:: + text "Your pack is" + line "crammed full!" + done + +_Lab3Text2:: + text "EEVEE can evolve" + line "into 1 of 3 kinds" + cont "of #MON." + done + +_Lab3Text3:: + text "There's an e-mail" + line "message!" + + para "..." + + para "The 3 legendary" + line "bird #MON are" + cont "ARTICUNO, ZAPDOS" + cont "and MOLTRES." + + para "Their whereabouts" + line "are unknown." + + para "We plan to explore" + line "the cavern close" + cont "to CERULEAN." + + para "From: #MON" + line "RESEARCH TEAM" + + para "..." + done + +_Lab3Text5:: + text "An amber pipe!" + done diff --git a/text/maps/CinnabarLabTradeRoom.asm b/text/CinnabarLabTradeRoom.asm similarity index 100% rename from text/maps/CinnabarLabTradeRoom.asm rename to text/CinnabarLabTradeRoom.asm diff --git a/text/maps/CinnabarMart.asm b/text/CinnabarMart.asm similarity index 100% rename from text/maps/CinnabarMart.asm rename to text/CinnabarMart.asm diff --git a/text/maps/CinnabarPokecenter.asm b/text/CinnabarPokecenter.asm similarity index 100% rename from text/maps/CinnabarPokecenter.asm rename to text/CinnabarPokecenter.asm diff --git a/text/CopycatsHouse1F.asm b/text/CopycatsHouse1F.asm new file mode 100644 index 000000000..d2d1f42ab --- /dev/null +++ b/text/CopycatsHouse1F.asm @@ -0,0 +1,21 @@ +_CopycatsHouse1FText1:: + text "My daughter is so" + line "self-centered." + cont "She only has a" + cont "few friends." + done + +_CopycatsHouse1FText2:: + text "My daughter likes" + line "to mimic people." + + para "Her mimicry has" + line "earned her the" + cont "nickname COPYCAT" + cont "around here!" + done + +_CopycatsHouse1FText3:: + text "CHANSEY: Chaaan" + line "sey!@" + text_end diff --git a/text/CopycatsHouse2F.asm b/text/CopycatsHouse2F.asm new file mode 100644 index 000000000..7d1aa0ad9 --- /dev/null +++ b/text/CopycatsHouse2F.asm @@ -0,0 +1,100 @@ +_CopycatsHouse2FText_5ccd4:: + text ": Hi! Do" + line "you like #MON?" + + para ": Uh no, I" + line "just asked you." + + para ": Huh?" + line "You're strange!" + + para "COPYCAT: Hmm?" + line "Quit mimicking?" + + para "But, that's my" + line "favorite hobby!" + prompt + +_TM31PreReceiveText:: + text "Oh wow!" + line "A # DOLL!" + + para "For me?" + line "Thank you!" + + para "You can have" + line "this, then!" + prompt + +_ReceivedTM31Text:: + text " received" + line "@" + text_ram wcf4b + text "!@" + text_end + +_TM31ExplanationText1:: + text_start + + para "TM31 contains my" + line "favorite, MIMIC!" + + para "Use it on a good" + line "#MON!@" + text_end + +_TM31ExplanationText2:: + text ": Hi!" + line "Thanks for TM31!" + + para ": Pardon?" + + para ": Is it" + line "that fun to mimic" + cont "my every move?" + + para "COPYCAT: You bet!" + line "It's a scream!" + done + +_TM31NoRoomText:: + text "Don't you want" + line "this?@" + text_end + +_CopycatsHouse2FText2:: + text "DODUO: Giiih!" + + para "MIRROR MIRROR ON" + line "THE WALL, WHO IS" + cont "THE FAIREST ONE" + cont "OF ALL?" + done + +_CopycatsHouse2FText3:: + text "This is a rare" + line "#MON! Huh?" + cont "It's only a doll!" + done + +_CopycatsHouse2FText6:: + text "A game with MARIO" + line "wearing a bucket" + cont "on his head!" + done + +_CopycatsHouse2FText_5cd17:: + text "..." + + para "My Secrets!" + + para "Skill: Mimicry!" + line "Hobby: Collecting" + cont "dolls!" + cont "Favorite #MON:" + cont "CLEFAIRY!" + done + +_CopycatsHouse2FText_5cd1c:: + text "Huh? Can't see!" + done diff --git a/text/Daycare.asm b/text/Daycare.asm new file mode 100644 index 000000000..aa1e5bc58 --- /dev/null +++ b/text/Daycare.asm @@ -0,0 +1,97 @@ +_DayCareIntroText:: + text "I run a DAYCARE." + line "Would you like me" + cont "to raise one of" + cont "your #MON?" + done + +_DayCareWhichMonText:: + text "Which #MON" + line "should I raise?" + prompt + +_DayCareWillLookAfterMonText:: + text "Fine, I'll look" + line "after @" + text_ram wcd6d + text_start + cont "for a while." + prompt + +_DayCareComeSeeMeInAWhileText:: + text "Come see me in" + line "a while." + done + +_DayCareMonHasGrownText:: + text "Your @" + text_ram wcd6d + text_start + line "has grown a lot!" + + para "By level, it's" + line "grown by @" + text_decimal wDayCareNumLevelsGrown, 1, 3 + text "!" + + para "Aren't I great?" + prompt + +_DayCareOweMoneyText:: + text "You owe me ¥@" + text_bcd wDayCareTotalCost, 2 | LEADING_ZEROES | LEFT_ALIGN + text_start + line "for the return" + cont "of this #MON." + done + +_DayCareGotMonBackText:: + text " got" + line "@" + text_ram wDayCareMonName + text " back!" + done + +_DayCareMonNeedsMoreTimeText:: + text "Back already?" + line "Your @" + text_ram wcd6d + text_start + cont "needs some more" + cont "time with me." + prompt + +_DayCareAllRightThenText:: + text "All right then," + line "@" + text_end + +_DayCareComeAgainText:: + text "Come again." + done + +_DayCareNoRoomForMonText:: + text "You have no room" + line "for this #MON!" + done + +_DayCareOnlyHaveOneMonText:: + text "You only have one" + line "#MON with you." + done + +_DayCareCantAcceptMonWithHMText:: + text "I can't accept a" + line "#MON that" + cont "knows an HM move." + done + +_DayCareHeresYourMonText:: + text "Thank you! Here's" + line "your #MON!" + prompt + +_DayCareNotEnoughMoneyText:: + text "Hey, you don't" + line "have enough ¥!" + done diff --git a/text/maps/DiglettsCaveRoute11.asm b/text/DiglettsCaveRoute11.asm similarity index 100% rename from text/maps/DiglettsCaveRoute11.asm rename to text/DiglettsCaveRoute11.asm diff --git a/text/maps/DiglettsCaveRoute2.asm b/text/DiglettsCaveRoute2.asm similarity index 100% rename from text/maps/DiglettsCaveRoute2.asm rename to text/DiglettsCaveRoute2.asm diff --git a/text/maps/FightingDojo.asm b/text/FightingDojo.asm similarity index 100% rename from text/maps/FightingDojo.asm rename to text/FightingDojo.asm diff --git a/text/maps/FuchsiaBillsGrandpasHouse.asm b/text/FuchsiaBillsGrandpasHouse.asm similarity index 100% rename from text/maps/FuchsiaBillsGrandpasHouse.asm rename to text/FuchsiaBillsGrandpasHouse.asm diff --git a/text/maps/FuchsiaCity.asm b/text/FuchsiaCity.asm similarity index 100% rename from text/maps/FuchsiaCity.asm rename to text/FuchsiaCity.asm diff --git a/text/FuchsiaGoodRodHouse.asm b/text/FuchsiaGoodRodHouse.asm new file mode 100644 index 000000000..142c28375 --- /dev/null +++ b/text/FuchsiaGoodRodHouse.asm @@ -0,0 +1,44 @@ +_FuchsiaHouse3Text_561bd:: + text "I'm the FISHING" + line "GURU's older" + cont "brother!" + + para "I simply Looove" + line "fishing!" + + para "Do you like to" + line "fish?" + done + +_FuchsiaHouse3Text_561c2:: + text "Grand! I like" + line "your style!" + + para "Take this and" + line "fish, young one!" + + para " received" + line "a @" + text_ram wcf4b + text "!@" + text_end + +_FuchsiaHouse3Text_56212:: + text "Oh... That's so" + line "disappointing..." + done + +_FuchsiaHouse3Text_56217:: + text "Hello there," + line "!" + + para "How are the fish" + line "biting?" + done + +_FuchsiaHouse3Text_5621c:: + text "Oh no!" + + para "You have no room" + line "for my gift!" + done diff --git a/text/FuchsiaGym.asm b/text/FuchsiaGym.asm new file mode 100644 index 000000000..587af1a13 --- /dev/null +++ b/text/FuchsiaGym.asm @@ -0,0 +1,221 @@ +_KogaBeforeBattleText:: + text "KOGA: Fwahahaha!" + + para "A mere child like" + line "you dares to" + cont "challenge me?" + + para "Very well, I" + line "shall show you" + cont "true terror as a" + cont "ninja master!" + + para "You shall feel" + line "the despair of" + cont "poison and sleep" + cont "techniques!" + done + +_KogaAfterBattleText:: + text "Humph!" + line "You have proven" + cont "your worth!" + + para "Here! Take the" + line "SOULBADGE!" + prompt + +_KogaExplainToxicText:: + text "When afflicted by" + line "TOXIC, #MON" + cont "suffer more and" + cont "more as battle" + cont "progresses!" + + para "It will surely" + line "terrorize foes!" + done + +_FuchsiaGymText9:: + text "Now that you have" + line "the SOULBADGE," + cont "the DEFENSE of" + cont "your #MON" + cont "increases!" + + para "It also lets you" + line "SURF outside of" + cont "battle!" + + para "Ah! Take this" + line "too!" + done + +_ReceivedTM06Text:: + text " received" + line "@" + text_ram wcf4b + text "!@" + text_end + +_TM06ExplanationText:: + text_start + para "TM06 contains" + line "TOXIC!" + + para "It is a secret" + line "technique over" + cont "400 years old!" + done + +_TM06NoRoomText:: + text "Make space for" + line "this, child!" + done + +_FuchsiaGymBattleText1:: + text "Strength isn't" + line "the key for" + cont "#MON!" + + para "It's strategy!" + + para "I'll show you how" + line "strategy can beat" + cont "brute strength!" + done + +_FuchsiaGymEndBattleText1:: + text "What?" + line "Extraordinary!" + prompt + +_FuchsiaGymAfterBattleText1:: + text "So, you mix brawn" + line "with brains?" + cont "Good strategy!" + done + +_FuchsiaGymBattleText2:: + text "I wanted to become" + line "a ninja, so I" + cont "joined this GYM!" + done + +_FuchsiaGymEndBattleText2:: + text "I'm done" + line "for!" + prompt + +_FuchsiaGymAfterBattleText2:: + text "I will keep on" + line "training under" + cont "KOGA, my ninja" + cont "master!" + done + +_FuchsiaGymBattleText3:: + text "Let's see you" + line "beat my special" + cont "techniques!" + done + +_FuchsiaGymEndBattleText3:: + text "You" + line "had me fooled!" + prompt + +_FuchsiaGymAfterBattleText3:: + text "I like poison and" + line "sleep techniques," + cont "as they linger" + cont "after battle!" + done + +_FuchsiaGymBattleText4:: + text "Stop right there!" + + para "Our invisible" + line "walls have you" + cont "frustrated?" + done + +_FuchsiaGymEndBattleText4:: + text "Whoa!" + line "He's got it!" + prompt + +_FuchsiaGymAfterBattleText4:: + text "You impressed me!" + line "Here's a hint!" + + para "Look very closely" + line "for gaps in the" + cont "invisible walls!" + done + +_FuchsiaGymBattleText5:: + text "I also study the" + line "way of the ninja" + cont "with master KOGA!" + + para "Ninja have a long" + line "history of using" + cont "animals!" + done + +_FuchsiaGymEndBattleText5:: + text "Awoo!" + prompt + +_FuchsiaGymAfterBattleText5:: + text "I still have much" + line "to learn!" + done + +_FuchsiaGymBattleText6:: + text "Master KOGA comes" + line "from a long line" + cont "of ninjas!" + + para "What did you" + line "descend from?" + done + +_FuchsiaGymEndBattleText6:: + text "Dropped" + line "my balls!" + prompt + +_FuchsiaGymAfterBattleText6:: + text "Where there is" + line "light, there is" + cont "shadow!" + + para "Light and shadow!" + line "Which do you" + cont "choose?" + done + +_FuchsiaGymText_7564e:: + text "Yo! Champ in" + line "making!" + + para "FUCHSIA GYM is" + line "riddled with" + cont "invisible walls!" + + para "KOGA might appear" + line "close, but he's" + cont "blocked off!" + + para "You have to find" + line "gaps in the walls" + cont "to reach him!" + done + +_FuchsiaGymText_75653:: + text "It's amazing how" + line "ninja can terrify" + cont "even now!" + done diff --git a/text/maps/FuchsiaMart.asm b/text/FuchsiaMart.asm similarity index 100% rename from text/maps/FuchsiaMart.asm rename to text/FuchsiaMart.asm diff --git a/text/maps/FuchsiaMeetingRoom.asm b/text/FuchsiaMeetingRoom.asm similarity index 100% rename from text/maps/FuchsiaMeetingRoom.asm rename to text/FuchsiaMeetingRoom.asm diff --git a/text/maps/FuchsiaPokecenter.asm b/text/FuchsiaPokecenter.asm similarity index 100% rename from text/maps/FuchsiaPokecenter.asm rename to text/FuchsiaPokecenter.asm diff --git a/text/GameCorner.asm b/text/GameCorner.asm new file mode 100644 index 000000000..a65043d96 --- /dev/null +++ b/text/GameCorner.asm @@ -0,0 +1,185 @@ +_CeladonGameCornerText1:: + text "Welcome!" + + para "You can exchange" + line "your coins for" + cont "fabulous prizes" + cont "next door." + done + +_CeladonGameCornerText_48d22:: + text "Welcome to ROCKET" + line "GAME CORNER!" + + para "Do you need some" + line "game coins?" + + para "It's ¥1000 for 50" + line "coins. Would you" + cont "like some?" + done + +_CeladonGameCornerText_48d27:: + text "Thanks! Here are" + line "your 50 coins!" + done + +_CeladonGameCornerText_48d2c:: + text "No? Please come" + line "play sometime!" + done + +_CeladonGameCornerText_48d31:: + text "You can't afford" + line "the coins!" + done + +_CeladonGameCornerText_48d36:: + text "Oops! Your COIN" + line "CASE is full." + done + +_CeladonGameCornerText_48d3b:: + text "You don't have a" + line "COIN CASE!" + done + +_CeladonGameCornerText3:: + text "Keep this quiet." + + para "It's rumored that" + line "this place is run" + cont "by TEAM ROCKET." + done + +_CeladonGameCornerText4:: + text "I think these" + line "machines have" + cont "different odds." + done + +_CeladonGameCornerText_48d9c:: + text "Kid, do you want" + line "to play?" + prompt + +_Received10CoinsText:: + text " received" + line "10 coins!@" + text_end + +_CeladonGameCornerText_48da7:: + text "You don't need my" + line "coins!" + done + +_CeladonGameCornerText_48dac:: + text "Wins seem to come" + line "and go." + done + +_CeladonGameCornerText6:: + text "I'm having a" + line "wonderful time!" + done + +_CeladonGameCornerText_48dca:: + text "Hey!" + + para "You have better" + line "things to do," + cont "champ in making!" + + para "CELADON GYM's" + line "LEADER is ERIKA!" + cont "She uses grass-" + cont "type #MON!" + + para "She might appear" + line "docile, but don't" + cont "be fooled!" + done + +_CeladonGameCornerText_48dcf:: + text "They offer rare" + line "#MON that can" + cont "be exchanged for" + cont "your coins." + + para "But, I just can't" + line "seem to win!" + done + +_CeladonGameCornerText8:: + text "Games are scary!" + line "It's so easy to" + cont "get hooked!" + done + +_CeladonGameCornerText_48e26:: + text "What's up? Want" + line "some coins?" + prompt + +_Received20CoinsText:: + text " received" + line "20 coins!@" + text_end + +_CeladonGameCornerText_48e31:: + text "You have lots of" + line "coins!" + done + +_CeladonGameCornerText_48e36:: + text "Darn! I need more" + line "coins for the" + cont "#MON I want!" + done + +_CeladonGameCornerText_48e88:: + text "Hey, what? You're" + line "throwing me off!" + cont "Here are some" + cont "coins, shoo!" + prompt + +_CeladonGameCornerText_48e8d:: + text " received" + line "20 coins!@" + text_end + +_CeladonGameCornerText_48e93:: + text "You've got your" + line "own coins!" + done + +_CeladonGameCornerText_48e98:: + text "The trick is to" + line "watch the reels" + cont "closely!" + done + +_CeladonGameCornerText_48ece:: + text "I'm guarding this" + line "poster!" + cont "Go away, or else!" + done + +_CeladonGameCornerText_48ed3:: + text "Dang!" + prompt + +_CeladonGameCornerText_48ed8:: + text "Our hideout might" + line "be discovered! I" + cont "better tell BOSS!" + done + +_CeladonGameCornerText_48f09:: + text "Hey!" + + para "A switch behind" + line "the poster!?" + cont "Let's push it!@" + text_end diff --git a/text/maps/GameCornerPrizeRoom.asm b/text/GameCornerPrizeRoom.asm similarity index 100% rename from text/maps/GameCornerPrizeRoom.asm rename to text/GameCornerPrizeRoom.asm diff --git a/text/maps/GameCorner_2.asm b/text/GameCorner_2.asm old mode 100755 new mode 100644 similarity index 100% rename from text/maps/GameCorner_2.asm rename to text/GameCorner_2.asm diff --git a/text/maps/HallOfFame.asm b/text/HallOfFame.asm similarity index 100% rename from text/maps/HallOfFame.asm rename to text/HallOfFame.asm diff --git a/text/maps/IndigoPlateauLobby.asm b/text/IndigoPlateauLobby.asm similarity index 100% rename from text/maps/IndigoPlateauLobby.asm rename to text/IndigoPlateauLobby.asm diff --git a/text/LancesRoom.asm b/text/LancesRoom.asm new file mode 100644 index 000000000..224db0b36 --- /dev/null +++ b/text/LancesRoom.asm @@ -0,0 +1,64 @@ +_LanceBeforeBattleText:: + text "Ah! I heard about" + line "you, !" + + para "I lead the ELITE" + line "FOUR! You can" + cont "call me LANCE the" + cont "dragon trainer!" + + para "You know that" + line "dragons are" + cont "mythical #MON!" + + para "They're hard to" + line "catch and raise," + cont "but their powers" + cont "are superior!" + + para "They're virtually" + line "indestructible!" + + para "Well, are you" + line "ready to lose?" + + para "Your LEAGUE" + line "challenge ends" + cont "with me, !" + done + +_LanceEndBattleText:: + text "That's it!" + + para "I hate to admit" + line "it, but you are a" + cont "#MON master!" + prompt + +_LanceAfterBattleText:: + text "I still can't" + line "believe my" + cont "dragons lost to" + cont "you, !" + + para "You are now the" + line "#MON LEAGUE" + cont "champion!" + + para "...Or, you would" + line "have been, but" + cont "you have one more" + cont "challenge ahead." + + para "You have to face" + line "another trainer!" + cont "His name is..." + + para "!" + line "He beat the ELITE" + cont "FOUR before you!" + + para "He is the real" + line "#MON LEAGUE" + cont "champion!@" + text_end diff --git a/text/LavenderCuboneHouse.asm b/text/LavenderCuboneHouse.asm new file mode 100644 index 000000000..77b8598d1 --- /dev/null +++ b/text/LavenderCuboneHouse.asm @@ -0,0 +1,25 @@ +_LavenderHouse2Text1:: + text "CUBONE: Kyarugoo!@" + text_end + +_LavenderHouse2Text_1d9dc:: + text "I hate those" + line "horrible ROCKETs!" + + para "That poor CUBONE's" + line "mother..." + + para "It was killed" + line "trying to escape" + cont "from TEAM ROCKET!" + done + +_LavenderHouse2Text_1d9e1:: + text "The GHOST of" + line "#MON TOWER is" + cont "gone!" + + para "Someone must have" + line "soothed its" + cont "restless soul!" + done diff --git a/text/maps/LavenderMart.asm b/text/LavenderMart.asm similarity index 100% rename from text/maps/LavenderMart.asm rename to text/LavenderMart.asm diff --git a/text/maps/LavenderPokecenter.asm b/text/LavenderPokecenter.asm similarity index 100% rename from text/maps/LavenderPokecenter.asm rename to text/LavenderPokecenter.asm diff --git a/text/maps/LavenderTown.asm b/text/LavenderTown.asm similarity index 100% rename from text/maps/LavenderTown.asm rename to text/LavenderTown.asm diff --git a/text/maps/LoreleisRoom.asm b/text/LoreleisRoom.asm similarity index 100% rename from text/maps/LoreleisRoom.asm rename to text/LoreleisRoom.asm diff --git a/text/MrFujisHouse.asm b/text/MrFujisHouse.asm new file mode 100644 index 000000000..2f76ad945 --- /dev/null +++ b/text/MrFujisHouse.asm @@ -0,0 +1,89 @@ +_LavenderHouse1Text_1d8d1:: + text "That's odd, MR.FUJI" + line "isn't here." + cont "Where'd he go?" + done + +_LavenderHouse1Text_1d8d6:: + text "MR.FUJI had been" + line "praying alone for" + cont "CUBONE's mother." + done + +_LavenderHouse1Text_1d8f4:: + text "This is really" + line "MR.FUJI's house." + + para "He's really kind!" + + para "He looks after" + line "abandoned and" + cont "orphaned #MON!" + done + +_LavenderHouse1Text_1d8f9:: + text "It's so warm!" + line "#MON are so" + cont "nice to hug!" + done + +_LavenderHouse1Text3:: + text "PSYDUCK: Gwappa!@" + text_end + +_LavenderHouse1Text4:: + text "NIDORINO: Gaoo!@" + text_end + +_LavenderHouse1Text_1d94c:: + text "MR.FUJI: ." + + para "Your #DEX quest" + line "may fail without" + cont "love for your" + cont "#MON." + + para "I think this may" + line "help your quest." + prompt + +_ReceivedFluteText:: + text " received" + line "a @" + text_ram wcf4b + text "!@" + text_end + +_FluteExplanationText:: + text_start + + para "Upon hearing #" + line "FLUTE, sleeping" + cont "#MON will" + cont "spring awake." + + para "It works on all" + line "sleeping #MON." + done + +_FluteNoRoomText:: + text "You must make" + line "room for this!" + done + +_MrFujiAfterFluteText:: + text "MR.FUJI: Has my" + line "FLUTE helped you?" + done + +_LavenderHouse1Text6:: + text "#MON Monthly" + line "Grand Prize" + cont "Drawing!" + + para "The application" + line "form is..." + + para "Gone! It's been" + line "clipped out!" + done diff --git a/text/MrPsychicsHouse.asm b/text/MrPsychicsHouse.asm new file mode 100644 index 000000000..5ac2c9af2 --- /dev/null +++ b/text/MrPsychicsHouse.asm @@ -0,0 +1,26 @@ +_TM29PreReceiveText:: + text "...Wait! Don't" + line "say a word!" + + para "You wanted this!" + prompt + +_ReceivedTM29Text:: + text " received" + line "@" + text_ram wcf4b + text "!@" + text_end + +_TM29ExplanationText:: + text "TM29 is PSYCHIC!" + + para "It can lower the" + line "target's SPECIAL" + cont "abilities." + done + +_TM29NoRoomText:: + text "Where do you plan" + line "to put this?" + done diff --git a/text/maps/MtMoon1F.asm b/text/MtMoon1F.asm similarity index 100% rename from text/maps/MtMoon1F.asm rename to text/MtMoon1F.asm diff --git a/text/MtMoonB1F.asm b/text/MtMoonB1F.asm new file mode 100644 index 000000000..968b845fc --- /dev/null +++ b/text/MtMoonB1F.asm @@ -0,0 +1,3 @@ +_MtMoonText1:: + text_start + done diff --git a/text/MtMoonB2F.asm b/text/MtMoonB2F.asm new file mode 100644 index 000000000..e00987918 --- /dev/null +++ b/text/MtMoonB2F.asm @@ -0,0 +1,130 @@ +_MtMoonJessieJamesText1:: + text "Stop right there!@" + text_end + +_MtMoonJessieJamesText2:: + text "That fossil is" + line "TEAM ROCKET's!" + + para "Surrender now, or " + line "prepare to fight!" + done + +_MtMoonJessieJamesText3:: + text "A" + line "brat beat us?" + prompt + +_MtMoonJessieJamesText4:: + text "TEAM ROCKET, blast" + line "off at the speed" + cont "of light!@" + text_end + +_MtMoon3Text_49f24:: + text "You want the" + line "DOME FOSSIL?" + done + +_MtMoon3Text_49f64:: + text "You want the" + line "HELIX FOSSIL?" + done + +_MtMoon3Text_49f6f:: + text " got the" + line "@" + text_ram wcf4b + text "!@" + text_end + +_MtMoon3Text_49f7f:: + text "Look, you've got" + line "no room for this.@" + text_end + +_MtMoon3Text_49f85:: + text "Hey, stop!" + + para "I found these" + line "fossils! They're" + cont "both mine!" + done + +_MtMoon3Text_49f8a:: + text "OK!" + line "I'll share!" + prompt + +_MtMoon3Text_49f8f:: + text "We'll each take" + line "one!" + cont "No being greedy!" + done + +_MtMoon3Text_49f94:: + text "Far away, on" + line "CINNABAR ISLAND," + cont "there's a #MON" + cont "LAB." + + para "They do research" + line "on regenerating" + cont "fossils." + done + +_MtMoon3Text_49f99:: + text "All right. Then" + line "this is mine!@" + text_end + +_MtMoon3BattleText3:: + text "We, TEAM ROCKET," + line "are #MON" + cont "gangsters!" + done + +_MtMoon3EndBattleText3:: + text "I blew" + line "it!" + prompt + +_MtMoon3AfterBattleText3:: + text "Darn it all! My" + line "associates won't" + cont "stand for this!" + done + +_MtMoon3BattleText4:: + text "We're pulling a" + line "big job here!" + cont "Get lost, kid!" + done + +_MtMoon3EndBattleText4:: + text "So, you" + line "are good." + prompt + +_MtMoon3AfterBattleText4:: + text "If you find a" + line "fossil, give it" + cont "to me and scram!" + done + +_MtMoon3BattleText5:: + text "Little kids" + line "should leave" + cont "grown-ups alone!" + done + +_MtMoon3EndBattleText5:: + text "I'm" + line "steamed!" + prompt + +_MtMoon3AfterBattleText5:: + text "#MON lived" + line "here long before" + cont "people came." + done diff --git a/text/MtMoonPokecenter.asm b/text/MtMoonPokecenter.asm new file mode 100644 index 000000000..052dd85b2 --- /dev/null +++ b/text/MtMoonPokecenter.asm @@ -0,0 +1,48 @@ +_MtMoonPokecenterText1:: + text "I've 6 # BALLs" + line "set in my belt." + + para "At most, you can" + line "carry 6 #MON." + done + +_MtMoonPokecenterText3:: + text "TEAM ROCKET" + line "attacks CERULEAN" + cont "citizens..." + + para "TEAM ROCKET is" + line "always in the" + cont "news!" + done + +_MtMoonPokecenterText5:: + text_start + done + +_MagikarpSalesmanText1:: + text "MAN: Hello, there!" + line "Have I got a deal" + cont "just for you!" + + para "I'll let you have" + line "a swell MAGIKARP" + cont "for just ¥500!" + cont "What do you say?" + done + +_MagikarpSalesmanNoText:: + text "No? I'm only" + line "doing this as a" + cont "favor to you!" + done + +_MagikarpSalesmanNoMoneyText:: + text "You'll need more" + line "money than that!" + done + +_MagikarpSalesmanText2:: + text "MAN: Well, I don't" + line "give refunds!" + done diff --git a/text/Museum1F.asm b/text/Museum1F.asm new file mode 100644 index 000000000..e7b6ce53f --- /dev/null +++ b/text/Museum1F.asm @@ -0,0 +1,108 @@ +_Museum1FText_5c21a:: + text "Come again!" + done + +_Museum1FText_5c21f:: + text "It's ¥50 for a" + line "child's ticket." + + para "Would you like to" + line "come in?" + done + +_Museum1FText_5c224:: + text "Right, ¥50!" + line "Thank you!" + done + +_Museum1FText_5c229:: + text "You don't have" + line "enough money." + prompt + +_Museum1FText_5c22e:: + text "You can't sneak" + line "in the back way!" + + para "Oh, whatever!" + line "Do you know what" + cont "AMBER is?" + done + +_Museum1FText_5c233:: + text "There's a lab" + line "somewhere trying" + cont "to resurrect" + cont "ancient #MON" + cont "from AMBER." + done + +_Museum1FText_5c238:: + text "AMBER is fossil-" + line "ized tree sap." + done + +_Museum1FText_5c23d:: + text "Please go to the" + line "other side!" + done + +_Museum1FText_5c242:: + text "Take plenty of" + line "time to look!" + done + +_Museum1FText_5c251:: + text "That is one" + line "magnificent" + cont "fossil!" + done + +_Museum1FText_5c28e:: + text "Ssh! I think that" + line "this chunk of" + cont "AMBER contains" + cont "#MON DNA!" + + para "It would be great" + line "if #MON could" + cont "be resurrected" + cont "from it!" + + para "But, my colleagues" + line "just ignore me!" + + para "So, I have a favor" + line "to ask!" + + para "Take this to a" + line "#MON LAB and" + cont "get it examined!" + prompt + +_ReceivedOldAmberText:: + text " received" + line "OLD AMBER!@" + text_end + +_Museum1FText_5c299:: + text "Ssh! Get the OLD" + line "AMBER checked!" + done + +_Museum1FText_5c29e:: + text "You don't have" + line "space for this!" + done + +_Museum1FText_5c2ad:: + text "We are proud of 2" + line "fossils of very" + cont "rare, prehistoric" + cont "#MON!" + done + +_Museum1FText_5c2bc:: + text "The AMBER is" + line "clear and gold!" + done diff --git a/text/maps/Museum2F.asm b/text/Museum2F.asm similarity index 100% rename from text/maps/Museum2F.asm rename to text/Museum2F.asm diff --git a/text/NameRatersHouse.asm b/text/NameRatersHouse.asm new file mode 100644 index 000000000..49637b6d1 --- /dev/null +++ b/text/NameRatersHouse.asm @@ -0,0 +1,60 @@ +_NameRaterText_1dab3:: + text "Hello, hello!" + line "I am the official" + cont "NAME RATER!" + + para "Want me to rate" + line "the nicknames of" + cont "your #MON?" + done + +_NameRaterText_1dab8:: + text "Which #MON" + line "should I look at?" + prompt + +_NameRaterText_1dabd:: + text_ram wcd6d + text ", is it?" + line "That is a decent" + cont "nickname!" + + para "But, would you" + line "like me to give" + cont "it a nicer name?" + + para "How about it?" + done + +_NameRaterText_1dac2:: + text "Fine! What should" + line "we name it?" + prompt + +_NameRaterText_1dac7:: + text "OK! This #MON" + line "has been renamed" + cont "@" + text_ram wBuffer + text "!" + + para "That's a better" + line "name than before!" + done + +_NameRaterText_1dacc:: + text "Fine! Come any-" + line "time you like!" + done + +_NameRaterText_1dad1:: + text_ram wcd6d + text ", is it?" + line "That is a truly" + cont "impeccable name!" + + para "Take good care of" + line "@" + text_ram wcd6d + text "!" + done diff --git a/text/OaksLab.asm b/text/OaksLab.asm new file mode 100644 index 000000000..7e78f8f58 --- /dev/null +++ b/text/OaksLab.asm @@ -0,0 +1,401 @@ +_OaksLabGaryText1:: + text ": Yo" + line "! Gramps" + cont "isn't around!" + + para "I ran here 'cos" + line "he said he had a" + cont "#MON for me." + done + +_OaksLabText40:: + text ": Humph!" + line "I'll get a better" + cont "#MON than you!" + done + +_OaksLabText41:: + text ": Heh, my" + line "#MON looks a" + cont "lot stronger." + done + +_OaksLabText39:: + text "That's a #" + line "BALL. There's a" + cont "#MON inside!" + done + +_OaksLabPikachuText:: + text "OAK: Go ahead," + line "it's yours!" + done + +_OaksLabText_1d2f5:: + text "OAK: If a wild" + line "#MON appears," + cont "your #MON can" + cont "fight against it!" + + para "Afterward, go on" + line "to the next town." + done + +_OaksLabText_1d2fa:: + text "OAK: You should" + line "talk to it and" + cont "see how it feels." + done + +_OaksLabDeliverParcelText1:: + text "OAK: Oh, !" + + para "How is my old" + line "#MON?" + + para "Well, it seems to" + line "like you a lot." + + para "You must be" + line "talented as a" + cont "#MON trainer!" + + para "What? You have" + line "something for me?" + + para " delivered" + line "OAK's PARCEL.@" + text_end + +_OaksLabDeliverParcelText2:: + text_start + para "Ah! This is the" + line "custom # BALL" + cont "I ordered!" + cont "Thanks, !" + + para "By the way, I must" + line "ask you to do" + cont "something for me." + done + +_OaksLabAroundWorldText:: + text "#MON around the" + line "world wait for" + cont "you, !" + done + +_OaksLabGivePokeballsText1:: + text "OAK: You can't get" + line "detailed data on" + cont "#MON by just" + cont "seeing them." + + para "You must catch" + line "them! Use these" + cont "to capture wild" + cont "#MON." + + para " got 5" + line "# BALLs!@" + text_end + +_OaksLabGivePokeballsText2:: + text_start + para "When a wild" + line "#MON appears," + cont "it's fair game." + + para "Just like I showed" + line "you, throw a #" + cont "BALL at it and try" + cont "to catch it!" + + para "This won't always" + line "work, though." + + para "A healthy #MON" + line "could escape. You" + cont "have to be lucky!" + done + +_OaksLabPleaseVisitText:: + text "OAK: Come see me" + line "sometimes." + + para "I want to know how" + line "your #DEX is" + cont "coming along." + done + +_OaksLabText_1d31d:: + text "OAK: Good to see " + line "you! How is your " + cont "#DEX coming? " + cont "Here, let me take" + cont "a look!" + prompt + +_OaksLabText_1d32c:: + text "It's encyclopedia-" + line "like, but the" + cont "pages are blank!" + done + +_OaksLabText8:: + text "?" + done + +_OaksLabText_1d340:: + text "PROF.OAK is the" + line "authority on" + cont "#MON!" + + para "Many #MON" + line "trainers hold him" + cont "in high regard!" + done + +_OaksLabRivalWaitingText:: + text ": Gramps!" + line "I'm fed up with" + cont "waiting!" + done + +_OaksLabChooseMonText:: + text "OAK: Hmm? ?" + line "Why are you here" + cont "already?" + + para "I said for you to" + line "come by later..." + + para "Ah, whatever!" + line "Just wait there." + + para "Look, ! Do" + line "you see that ball" + cont "on the table?" + + para "It's called a #" + line "BALL. It holds a" + cont "#MON inside." + + para "You may have it!" + line "Go on, take it!" + done + +_OaksLabRivalInterjectionText:: + text ": Hey!" + line "Gramps! What" + cont "about me?" + done + +_OaksLabBePatientText:: + text "OAK: Be patient," + line ", I'll give" + cont "you one later." + done + +_OaksLabRivalTakesText1:: + text ": No way!" + line ", I want" + cont "this #MON!" + prompt + +_OaksLabRivalTakesText2:: + text " snatched" + line "the #MON!@" + text_end + +_OaksLabRivalTakesText3:: + text "OAK: ! What" + line "are you doing?" + prompt + +_OaksLabRivalTakesText4:: + text ": Gramps, I" + line "want this one!" + prompt + +_OaksLabRivalTakesText5:: + text "OAK: But, I... Oh," + line "all right then." + cont "That #MON is" + cont "yours." + + para "I was going to" + line "give you one" + cont "anyway..." + + para ", come over" + line "here." + done + +_OaksLabOakGivesText:: + text "OAK: , this" + line "is the #MON I" + cont "caught earlier." + + para "You can have it." + line "I caught it in" + cont "the wild and it's" + cont "not tame yet." + prompt + +_OaksLabReceivedText:: + text " received" + line "a @" + text_ram wcd6d + text "!@" + text_end + +_OaksLabLeavingText:: + text "OAK: Hey! Don't go" + line "away yet!" + done + +_OaksLabRivalChallengeText:: + text ": Wait" + line "!" + cont "Let's check out" + cont "our #MON!" + + para "Come on, I'll take" + line "you on!" + done + +_OaksLabText_1d3be:: + text "WHAT?" + line "Unbelievable!" + cont "I picked the" + cont "wrong #MON!" + prompt + +_OaksLabText_1d3c3:: + text ": Yeah! Am" + line "I great or what?" + prompt + +_OaksLabRivalToughenUpText:: + text ": Okay!" + line "I'll make my" + cont "#MON fight to" + cont "toughen it up!" + + para "! Gramps!" + line "Smell you later!" + done + +_OaksLabPikachuDislikesPokeballsText1:: + text "OAK: What?" + done + +_OaksLabPikachuDislikesPokeballsText2:: + text "OAK: Would you" + line "look at that!" + + para "It's odd, but it" + line "appears that your" + cont "PIKACHU dislikes" + cont "# BALLs." + + para "You should just" + line "keep it with you." + + para "That should make" + line "it happy!" + + para "You can talk to it" + line "and see how it" + cont "feels about you." + done + +_OaksLabText21:: + text ": Gramps!" + done + +_OaksLabText22:: + text ": Gramps," + line "my #MON has" + cont "grown stronger!" + cont "Check it out!" + done + +_OaksLabText23:: + text "OAK: Ah, ," + line "good timing!" + + para "I needed to ask" + line "both of you to do" + cont "something for me." + done + +_OaksLabText24:: + text "On the desk there" + line "is my invention," + cont "#DEX!" + + para "It automatically" + line "records data on" + cont "#MON you've" + cont "seen or caught!" + + para "It's a hi-tech" + line "encyclopedia!" + done + +_OaksLabText25:: + text "OAK: and" + line "! Take" + cont "these with you!" + + para " got" + line "#DEX from OAK!@" + text_end + +_OaksLabText26:: + text "To make a complete" + line "guide on all the" + cont "#MON in the" + cont "world..." + + para "That was my dream!" + + para "But, I'm too old!" + line "I can't do it!" + + para "So, I want you two" + line "to fulfill my" + cont "dream for me!" + + para "Get moving, you" + line "two!" + + para "This is a great" + line "undertaking in" + cont "#MON history!" + done + +_OaksLabText27:: + text ": Alright" + line "Gramps! Leave it" + cont "all to me!" + + para ", I hate to" + line "say it, but I" + cont "don't need you!" + + para "I know! I'll" + line "borrow a TOWN MAP" + cont "from my sis!" + + para "I'll tell her not" + line "to lend you one," + cont "! Hahaha!" + done + +_OaksLabText_1d405:: + text "I study #MON as" + line "PROF.OAK's AIDE." + done diff --git a/text/PalletTown.asm b/text/PalletTown.asm new file mode 100644 index 000000000..ec6ec6303 --- /dev/null +++ b/text/PalletTown.asm @@ -0,0 +1,68 @@ +_OakAppearsText:: + text "OAK: Hey! Wait!" + line "Don't go out!@" + text_end + +_OakWalksUpText:: + text "OAK: That was" + line "close!" + + para "Wild #MON live" + line "in tall grass!" + done + +_OakWhewText:: + text "OAK: Whew..." + done + +_OakGrassText:: + text "OAK: A #MON can" + line "appear anytime in" + cont "tall grass." + + para "You need your own" + line "#MON for your" + cont "protection." + cont "I know!" + + para "Here, come with" + line "me!" + done + +_PalletTownText2:: + text "I'm raising" + line "#MON too!" + + para "When they get" + line "strong, they can" + cont "protect me!" + done + +_PalletTownText3:: + text "Technology is" + line "incredible!" + + para "You can now store" + line "and recall items" + cont "and #MON as" + cont "data via PC!" + done + +_PalletTownText4:: + text "OAK #MON" + line "RESEARCH LAB" + done + +_PalletTownText5:: + text "PALLET TOWN" + line "Shades of your" + cont "journey await!" + done + +_PalletTownText6:: + text "'s house " + done + +_PalletTownText7:: + text "'s house " + done diff --git a/text/maps/PewterCity.asm b/text/PewterCity.asm similarity index 100% rename from text/maps/PewterCity.asm rename to text/PewterCity.asm diff --git a/text/PewterGym.asm b/text/PewterGym.asm new file mode 100644 index 000000000..03626f7de --- /dev/null +++ b/text/PewterGym.asm @@ -0,0 +1,186 @@ +_PewterGymText_5c49e:: + text "I'm BROCK!" + line "I'm PEWTER's GYM" + cont "LEADER!" + + para "I believe in rock" + line "hard defense and" + cont "determination!" + + para "That's why my" + line "#MON are all" + cont "the rock-type!" + + para "Do you still want" + line "to challenge me?" + cont "Fine then! Show" + cont "me your best!" + done + +_PewterGymText_5c4a3:: + text "There are all" + line "kinds of trainers" + cont "in the world!" + + para "Some raise #MON" + line "for fights. Some" + cont "see them as pets." + + para "I'm in training to" + line "become a #MON" + cont "breeder." + + para "If you take your" + line "#MON training" + cont "seriously, go" + cont "visit the GYM in" + cont "CERULEAN and test" + cont "your abilities!" + done + +_TM34PreReceiveText:: + text "Wait! Take this" + line "with you!" + done + +_ReceivedTM34Text:: + text " received" + line "TM34!@" + text_end + +_TM34ExplanationText:: + text_start + + para "A TM contains a" + line "technique that" + cont "can be taught to" + cont "#MON!" + + para "A TM is good only" + line "once! So when you" + cont "use one to teach" + cont "a new technique," + cont "pick the #MON" + cont "carefully!" + + para "TM34 contains" + line "BIDE!" + + para "Your #MON will" + line "absorb damage in" + cont "battle then pay" + cont "it back double!" + done + +_TM34NoRoomText:: + text "You don't have" + line "room for this!" + done + +_PewterGymText_5c4bc:: + text "I took" + line "you for granted." + + para "As proof of your" + line "victory, here's" + cont "the BOULDERBADGE!" + + para " received" + line "the BOULDERBADGE!@" + text_end + +_PewterGymText_5c4c1:: + text_start + + para "That's an official" + line "#MON LEAGUE" + cont "BADGE!" + + para "Its bearer's" + line "#MON become" + cont "more powerful!" + + para "The technique" + line "FLASH can now be" + cont "used anytime!" + prompt + +_PewterGymBattleText1:: + text "Stop right there," + line "kid!" + + para "You're still light" + line "years from facing" + cont "BROCK!" + done + +_PewterGymEndBattleText1:: + text "Darn!" + + para "Light years isn't" + line "time! It measures" + cont "distance!" + prompt + +_PewterGymAfterBattleText1:: + text "You're pretty hot," + line "but not as hot" + cont "as BROCK!" + done + +_PewterGymText_5c515:: + text "Hiya! I can tell" + line "you have what it" + cont "takes to become a" + cont "#MON champ!" + + para "I'm no trainer," + line "but I can tell" + cont "you how to win!" + + para "Let me take you" + line "to the top!" + done + +_PewterGymText_5c51a:: + text "All right! Let's" + line "get happening!" + prompt + +_PewterGymText_5c51f:: + text "The 1st #MON" + line "out in a match is" + cont "at the top of the" + cont "#MON LIST!" + + para "By changing the" + line "order of #MON," + cont "matches could be" + cont "made easier!" + done + +_PewterGymText_5c524:: + text "It's a free" + line "service! Let's" + cont "get happening!" + prompt + +_PewterGymText_5c529:: + text "Just as I thought!" + line "You're #MON" + cont "champ material!" + done + +_PewterGymGuyText:: + text "All right! Let's" + line "get happening!" + + para "It will be tough" + line "for your PIKACHU" + cont "at this GYM!" + + para "Electric attacks" + line "are harmless to" + cont "BROCK's ground-" + cont "type #MON." + done diff --git a/text/maps/PewterMart.asm b/text/PewterMart.asm similarity index 100% rename from text/maps/PewterMart.asm rename to text/PewterMart.asm diff --git a/text/PewterNidoranHouse.asm b/text/PewterNidoranHouse.asm new file mode 100644 index 000000000..d4a092c88 --- /dev/null +++ b/text/PewterNidoranHouse.asm @@ -0,0 +1,25 @@ +_PewterHouse1Text1:: + text "NIDORAN: Bowbow!@" + text_end + +_PewterHouse1Text2:: + text "NIDORAN sit!" + done + +_PewterHouse1Text3:: + text "Our #MON's an" + line "outsider, so it's" + cont "hard to handle." + + para "An outsider is a" + line "#MON that you" + cont "get in a trade." + + para "It grows fast, but" + line "it may ignore an" + cont "unskilled trainer" + cont "in battle!" + + para "If only we had" + line "some BADGEs..." + done diff --git a/text/maps/PewterPokecenter.asm b/text/PewterPokecenter.asm similarity index 100% rename from text/maps/PewterPokecenter.asm rename to text/PewterPokecenter.asm diff --git a/text/maps/PewterSpeechHouse.asm b/text/PewterSpeechHouse.asm similarity index 100% rename from text/maps/PewterSpeechHouse.asm rename to text/PewterSpeechHouse.asm diff --git a/text/PokemonFanClub.asm b/text/PokemonFanClub.asm new file mode 100644 index 000000000..c3858e1cf --- /dev/null +++ b/text/PokemonFanClub.asm @@ -0,0 +1,179 @@ +PikachuFanText:: + text "Won't you admire" + line "my CLEFAIRY's" + cont "adorable tail?" + done + +PikachuFanBetterText:: + text "Humph! My CLEFAIRY" + line "is twice as cute" + cont "as that one!" + done + +PikachuFanPrintText:: + text "Our CHAIRMAN's new" + line "hobby is taking" + cont "#MON photos." + + para "He gave me a nice" + line "PRINT of my cute" + cont "CLEFAIRY." + done + +SeelFanText:: + text "I just love my" + line "SEEL!" + + para "It squeals when I" + line "hug it!" + done + +SeelFanBetterText:: + text "Oh dear!" + + para "My SEEL is far" + line "more attractive!" + done + +SeelFanPrintText:: + text "I'm going to hook" + line "up the cable to" + cont "get a photo PRINT" + cont "of my SEEL!" + done + +FanClubPikachuText:: + text "CLEFAIRY: Pippii!" + done + +FanClubSeelText:: + text "SEEL: Kyuoo!" + done + +FanClubMeetChairText:: + text "I chair the" + line "#MON Fan Club!" + + para "I have more than" + line "100 #MON. I" + cont "love them all!" + + para "I'm very fussy" + line "when it comes to" + cont "#MON!" + + para "So..." + + para "Did you come to" + line "hear me brag" + cont "about my #MON?" + done + +FanClubChairStoryText:: + text "Good!" + line "Then listen up!" + + para "My favorite" + line "RAPIDASH..." + + para "It...cute..." + line "lovely...smart..." + cont "plus...amazing..." + cont "you think so?..." + cont "oh yes...it..." + cont "stunning..." + cont "kindly..." + cont "love it!" + + para "Hug it...when..." + line "sleeping...warm" + cont "and cuddly..." + cont "spectacular..." + cont "ravishing..." + cont "...Oops! Look at" + cont "the time! I kept" + cont "you too long!" + + para "Thanks for hearing" + line "me out! I want" + cont "you to have this!" + prompt + +ReceivedBikeVoucherText:: + text " received" + line "a @" + text_ram wcf4b + text "!@" + text_end + +ExplainBikeVoucherText:: + text_start + para "Exchange that for" + line "a BICYCLE!" + + para "Don't worry, my" + line "FEAROW will FLY" + cont "me anywhere!" + + para "So, I don't need a" + line "BICYCLE!" + + para "I hope you like" + line "cycling!" + done + +FanClubNoStoryText:: + text "Oh. Come back" + line "when you want to" + cont "hear my story!" + done + +FanClubChairFinalText:: + text "Hello, !" + + para "Did you come see" + line "me about my" + cont "#MON again?" + + para "No? Too bad!" + done + +FanClubBagFullText:: + text "Make room for" + line "this!" + done + +FanClubChairPrintText1:: + text "Hi there, !" + line "Have you seen my" + cont "#MON photos?" + + para "I have them framed" + line "up on that wall." + + para "Ah, I know!" + + para "Would you like me" + line "to take a photo" + cont "of your #MON?" + done + +FanClubChairPrintText2:: + text "No? That's really" + line "disappointing." + done + +FanClubChairPrintText3:: + text "OK, I'm done." + done + +FanClubChairPrintText4:: + text "Maybe we won't" + line "PRINT this now." + done + +_FanClubText6:: + text "Our CHAIRMAN is" + line "very vocal about" + cont "#MON." + done diff --git a/text/maps/PokemonMansion1F.asm b/text/PokemonMansion1F.asm similarity index 100% rename from text/maps/PokemonMansion1F.asm rename to text/PokemonMansion1F.asm diff --git a/text/maps/PokemonMansion2F.asm b/text/PokemonMansion2F.asm similarity index 100% rename from text/maps/PokemonMansion2F.asm rename to text/PokemonMansion2F.asm diff --git a/text/maps/PokemonMansion3F.asm b/text/PokemonMansion3F.asm similarity index 100% rename from text/maps/PokemonMansion3F.asm rename to text/PokemonMansion3F.asm diff --git a/text/maps/PokemonMansionB1F.asm b/text/PokemonMansionB1F.asm similarity index 100% rename from text/maps/PokemonMansionB1F.asm rename to text/PokemonMansionB1F.asm diff --git a/text/maps/PokemonTower1F.asm b/text/PokemonTower1F.asm similarity index 100% rename from text/maps/PokemonTower1F.asm rename to text/PokemonTower1F.asm diff --git a/text/maps/PokemonTower2F.asm b/text/PokemonTower2F.asm similarity index 100% rename from text/maps/PokemonTower2F.asm rename to text/PokemonTower2F.asm diff --git a/text/maps/PokemonTower3F.asm b/text/PokemonTower3F.asm similarity index 100% rename from text/maps/PokemonTower3F.asm rename to text/PokemonTower3F.asm diff --git a/text/maps/PokemonTower4F.asm b/text/PokemonTower4F.asm similarity index 100% rename from text/maps/PokemonTower4F.asm rename to text/PokemonTower4F.asm diff --git a/text/maps/PokemonTower5F.asm b/text/PokemonTower5F.asm similarity index 100% rename from text/maps/PokemonTower5F.asm rename to text/PokemonTower5F.asm diff --git a/text/maps/PokemonTower6F.asm b/text/PokemonTower6F.asm similarity index 100% rename from text/maps/PokemonTower6F.asm rename to text/PokemonTower6F.asm diff --git a/text/PokemonTower7F.asm b/text/PokemonTower7F.asm new file mode 100644 index 000000000..86f054453 --- /dev/null +++ b/text/PokemonTower7F.asm @@ -0,0 +1,51 @@ +_PokemonTowerJessieJamesText1:: + text "Stop right there!@" + text_end + +_PokemonTowerJessieJamesText2:: + text "Grampa here wanted" + line "to complain, so" + cont "we're setting him" + cont "straight." + + para "So render yourself" + line "invisible, or" + cont "prepare to fight!" + done + +_PokemonTowerJessieJamesText3:: + text "You" + line "will regret this!" + prompt + +_PokemonTowerJessieJamesText4:: + text "Looks like TEAM" + line "ROCKET's blasting" + cont "off again!@" + text_end + +_TowerRescueFujiText:: + text "MR.FUJI: Heh? You" + line "came to save me?" + + para "Thank you. But, I" + line "came here of my" + cont "own free will." + + para "I came to calm" + line "the soul of" + cont "CUBONE's mother." + + para "I think MAROWAK's" + line "spirit has gone" + cont "to the afterlife." + + para "I must thank you" + line "for your kind" + cont "concern!" + + para "Follow me to my" + line "home, #MON" + cont "HOUSE at the foot" + cont "of this tower." + done diff --git a/text/PowerPlant.asm b/text/PowerPlant.asm new file mode 100644 index 000000000..dcdcd739e --- /dev/null +++ b/text/PowerPlant.asm @@ -0,0 +1,7 @@ +_VoltorbBattleText:: + text "Bzzzt!" + done + +_ZapdosBattleText:: + text "Gyaoo!@" + text_end diff --git a/text/maps/RedsHouse1F.asm b/text/RedsHouse1F.asm similarity index 100% rename from text/maps/RedsHouse1F.asm rename to text/RedsHouse1F.asm diff --git a/text/maps/RockTunnel1F.asm b/text/RockTunnel1F.asm similarity index 100% rename from text/maps/RockTunnel1F.asm rename to text/RockTunnel1F.asm diff --git a/text/maps/RockTunnelB1F.asm b/text/RockTunnelB1F.asm similarity index 100% rename from text/maps/RockTunnelB1F.asm rename to text/RockTunnelB1F.asm diff --git a/text/maps/RockTunnelPokecenter.asm b/text/RockTunnelPokecenter.asm similarity index 100% rename from text/maps/RockTunnelPokecenter.asm rename to text/RockTunnelPokecenter.asm diff --git a/text/RocketHideoutB1F.asm b/text/RocketHideoutB1F.asm new file mode 100644 index 000000000..c4fcb4b1e --- /dev/null +++ b/text/RocketHideoutB1F.asm @@ -0,0 +1,74 @@ +_RocketHideout1EndBattleText6:: + text "Why...?@" + text_end + +_RocketHideout1BattleText2:: + text "Who are you? How" + line "did you get here?" + done + +_RocketHideout1EndBattleText2:: + text "Oww!" + line "Beaten!" + prompt + +_RocketHideout1AfterBattleTxt2:: + text "Are you dissing" + line "TEAM ROCKET?" + done + +_RocketHideout1BattleText3:: + text "You broke into" + line "our operation?" + done + +_RocketHideout1EndBattleText3:: + text "Burnt!" + prompt + +_RocketHideout1AfterBattleTxt3:: + text "You're not going" + line "to get away with" + cont "this, brat!" + done + +_RocketHideout1BattleText4:: + text "Intruder alert!" + done + +_RocketHideout1EndBattleText4:: + text "I" + line "can't do it!" + prompt + +_RocketHideout1AfterBattleTxt4:: + text "SILPH SCOPE?" + line "I don't know" + cont "where it is!" + done + +_RocketHideout1BattleText5:: + text "Why did you come" + line "here?" + done + +_RocketHideout1EndBattleText5:: + text "This" + line "won't do!" + prompt + +_RocketHideout1AfterBattleTxt5:: + text "OK, I'll talk!" + line "Take the elevator" + cont "to see my BOSS!" + done + +_RocketHideout1BattleText6:: + text "Are you lost, you" + line "little rat?" + done + +_RocketHideout1AfterBattleTxt6:: + text "Uh-oh, that fight" + line "opened the door!" + done diff --git a/text/maps/RocketHideoutB2F.asm b/text/RocketHideoutB2F.asm similarity index 100% rename from text/maps/RocketHideoutB2F.asm rename to text/RocketHideoutB2F.asm diff --git a/text/maps/RocketHideoutB3F.asm b/text/RocketHideoutB3F.asm similarity index 100% rename from text/maps/RocketHideoutB3F.asm rename to text/RocketHideoutB3F.asm diff --git a/text/RocketHideoutB4F.asm b/text/RocketHideoutB4F.asm new file mode 100644 index 000000000..099045bc7 --- /dev/null +++ b/text/RocketHideoutB4F.asm @@ -0,0 +1,67 @@ +_RocketHideoutJessieJamesText1:: + text "Not another step," + line "brat!@" + text_end + +_RocketHideoutJessieJamesText2:: + text "How dare you" + line "humiliate us at" + cont "MT.MOON!" + + para "It's payback time," + line "you brat!" + done + +_RocketHideoutJessieJamesText3:: + text "Such" + line "a dreadful twerp!" + prompt + +_RocketHideoutJessieJamesText4:: + text "Looks like TEAM" + line "ROCKET's blasting" + cont "off again!@" + text_end + +_RocketHideout4Text_4557a:: + text "So! I must say, I" + line "am impressed you" + cont "got here!" + done + +_RocketHideout4Text_4557f:: + text "WHAT!" + line "This cannot be!" + prompt + +_RocketHideout4Text_45584:: + text "I see that you" + line "raise #MON" + cont "with utmost care." + + para "A child like you" + line "would never" + cont "understand what I" + cont "hope to achieve." + + para "I shall step" + line "aside this time!" + + para "I hope we meet" + line "again..." + done + +_RocketHideout4BattleText4:: + text "The elevator" + line "doesn't work? Who" + cont "has the LIFT KEY?" + done + +_RocketHideout4EndBattleText4:: + text "No!" + prompt + +_RocketHideout4Text_455ec:: + text "Oh no! I dropped" + line "the LIFT KEY!" + done diff --git a/text/RocketHideoutElevator.asm b/text/RocketHideoutElevator.asm new file mode 100644 index 000000000..1b8ba5613 --- /dev/null +++ b/text/RocketHideoutElevator.asm @@ -0,0 +1,4 @@ +_RocketElevatorText_4578b:: + text "It appears to" + line "need a key.@" + text_end diff --git a/text/Route1.asm b/text/Route1.asm new file mode 100644 index 000000000..bf32af268 --- /dev/null +++ b/text/Route1.asm @@ -0,0 +1,50 @@ +_Route1ViridianMartSampleText:: + text "Hi! I work at a" + line "#MON MART." + + para "It's a convenient" + line "shop, so please" + cont "visit us in" + cont "VIRIDIAN CITY." + + para "I know, I'll give" + line "you a sample!" + cont "Here you go!" + prompt + +_Route1Text_1cae8:: + text " got" + line "@" + text_ram wcf4b + text "!@" + text_end + +_Route1Text_1caee:: + text "We also carry" + line "# BALLs for" + cont "catching #MON!" + done + +_Route1Text_1caf3:: + text "You have too much" + line "stuff with you!" + done + +_Route1Text2:: + text "See those ledges" + line "along the road?" + + para "It's a bit scary," + line "but you can jump" + cont "from them." + + para "You can get back" + line "to PALLET TOWN" + cont "quicker that way." + done + +_Route1Text3:: + text "ROUTE 1" + line "PALLET TOWN -" + cont "VIRIDIAN CITY" + done diff --git a/text/maps/Route10.asm b/text/Route10.asm similarity index 100% rename from text/maps/Route10.asm rename to text/Route10.asm diff --git a/text/maps/Route11.asm b/text/Route11.asm similarity index 100% rename from text/maps/Route11.asm rename to text/Route11.asm diff --git a/text/maps/Route11Gate1F.asm b/text/Route11Gate1F.asm similarity index 100% rename from text/maps/Route11Gate1F.asm rename to text/Route11Gate1F.asm diff --git a/text/maps/Route11Gate2F.asm b/text/Route11Gate2F.asm similarity index 100% rename from text/maps/Route11Gate2F.asm rename to text/Route11Gate2F.asm diff --git a/text/maps/Route12.asm b/text/Route12.asm similarity index 100% rename from text/maps/Route12.asm rename to text/Route12.asm diff --git a/text/maps/Route12Gate1F.asm b/text/Route12Gate1F.asm similarity index 100% rename from text/maps/Route12Gate1F.asm rename to text/Route12Gate1F.asm diff --git a/text/Route12Gate2F.asm b/text/Route12Gate2F.asm new file mode 100644 index 000000000..adaf22cd6 --- /dev/null +++ b/text/Route12Gate2F.asm @@ -0,0 +1,43 @@ +_TM39PreReceiveText:: + text "My #MON's" + line "ashes are stored" + cont "in #MON TOWER." + + para "You can have this" + line "TM. I don't need" + cont "it anymore..." + prompt + +_ReceivedTM39Text:: + text " received" + line "TM39!@" + text_end + +_TM39ExplanationText:: + text "TM39 is a move" + line "called SWIFT." + + para "It's very accurate," + line "so use it during" + cont "battles you can't" + cont "afford to lose." + done + +_TM39NoRoomText:: + text "You don't have" + line "room for this." + done + +_Route12GateUpstairsText_495b8:: + text "Looked into the" + line "binoculars." + + para "A man fishing!" + done + +_Route12GateUpstairsText_495c4:: + text "Looked into the" + line "binoculars." + + para "It's #MON TOWER!" + done diff --git a/text/Route12SuperRodHouse.asm b/text/Route12SuperRodHouse.asm new file mode 100644 index 000000000..ff633d3a5 --- /dev/null +++ b/text/Route12SuperRodHouse.asm @@ -0,0 +1,62 @@ +_Route12HouseText_564c0:: + text "I'm the FISHING" + line "GURU's brother!" + + para "I simply Looove" + line "fishing!" + + para "Do you like to" + line "fish?" + done + +_Route12HouseText_564c5:: + text "Grand! I like" + line "your style!" + + para "Take this and" + line "fish, young one!" + + para " received" + line "a @" + text_ram wcf4b + text "!@" + text_end + +_Route12HouseText_564ca:: + text_start + + para "Fishing is a way" + line "of life!" + + para "From the seas to" + line "rivers, go out" + cont "and land the big" + cont "one!" + done + +_Route12HouseText_564cf:: + text "Oh... That's so" + line "disappointing..." + done + +_Route12HouseText_564d4:: + text "Hello there," + line "!" + + para "Use the SUPER ROD" + line "in any water!" + cont "You can catch" + cont "different kinds" + cont "of #MON." + + para "Try fishing" + line "wherever you can!" + done + +_Route12HouseText_564d9:: + text "Oh no!" + + para "I had a gift for" + line "you, but you have" + cont "no room for it!" + done diff --git a/text/maps/Route13.asm b/text/Route13.asm similarity index 100% rename from text/maps/Route13.asm rename to text/Route13.asm diff --git a/text/maps/Route14.asm b/text/Route14.asm similarity index 100% rename from text/maps/Route14.asm rename to text/Route14.asm diff --git a/text/Route15.asm b/text/Route15.asm new file mode 100644 index 000000000..9dc0e6bac --- /dev/null +++ b/text/Route15.asm @@ -0,0 +1,172 @@ +_Route15BattleText1:: + text "Let me try out the" + line "#MON I just" + cont "got in a trade!" + done + +_Route15EndBattleText1:: + text "Not" + line "good enough!" + prompt + +_Route15AfterBattleText1:: + text "You can't change" + line "the nickname of" + cont "any #MON you" + cont "get in a trade." + + para "Only the Original" + line "Trainer can." + done + +_Route15BattleText2:: + text "You look gentle," + line "so I think I can" + cont "beat you!" + done + +_Route15EndBattleText2:: + text "No," + line "wrong!" + prompt + +_Route15AfterBattleText2:: + text "I'm afraid of" + line "BIKERs, they look" + cont "so ugly and mean!" + done + +_Route15BattleText3:: + text "When I whistle, I" + line "can summon bird" + cont "#MON!" + done + +_Route15EndBattleText3:: + text "Ow!" + line "That's tragic!" + prompt + +_Route15AfterBattleText3:: + text "Maybe I'm not cut" + line "out for battles." + done + +_Route15BattleText4:: + text "Hmm? My birds are" + line "shivering! You're" + cont "good, aren't you?" + done + +_Route15EndBattleText4:: + text "Just" + line "as I thought!" + prompt + +_Route15AfterBattleText4:: + text "Did you know moves" + line "like EARTHQUAKE" + cont "don't have any" + cont "effect on birds?" + done + +_Route15BattleText5:: + text "Oh, you're a" + line "little cutie!" + done + +_Route15EndBattleText5:: + text "You looked" + line "so cute too!" + prompt + +_Route15AfterBattleText5:: + text "I forgive you!" + line "I can take it!" + done + +_Route15BattleText6:: + text "I raise #MON" + line "because I live" + cont "alone!" + done + +_Route15EndBattleText6:: + text "I didn't" + line "ask for this!" + prompt + +_Route15AfterBattleText6:: + text "I just like going" + line "home to be with" + cont "my #MON!" + done + +_Route15BattleText7:: + text "Hey kid! C'mon!" + line "I just got these!" + done + +_Route15EndBattleText7:: + text "Why" + line "not?" + prompt + +_Route15AfterBattleText7:: + text "You only live" + line "once, so I live" + cont "as an outlaw!" + cont "TEAM ROCKET RULES!" + done + +_Route15BattleText8:: + text "Fork over all your" + line "cash when you" + cont "lose to me, kid!" + done + +_Route15EndBattleText8:: + text "That" + line "can't be true!" + prompt + +_Route15AfterBattleText8:: + text "I was just joking" + line "about the money!" + done + +_Route15BattleText9:: + text "What's cool?" + line "Trading #MON!" + done + +_Route15EndBattleText9:: + text "I" + line "said trade!" + prompt + +_Route15AfterBattleText9:: + text "I trade #MON" + line "with my friends!" + done + +_Route15BattleText10:: + text "Want to play with" + line "my #MON?" + done + +_Route15EndBattleText10:: + text "I was" + line "too impatient!" + prompt + +_Route15AfterBattleText10:: + text "I'll go train with" + line "weaker people.@" + text_end + +_Route15Text12:: + text "ROUTE 15" + line "West to FUCHSIA" + cont "CITY" + done diff --git a/text/maps/Route15Gate1F.asm b/text/Route15Gate1F.asm similarity index 100% rename from text/maps/Route15Gate1F.asm rename to text/Route15Gate1F.asm diff --git a/text/maps/Route15Gate2F.asm b/text/Route15Gate2F.asm similarity index 100% rename from text/maps/Route15Gate2F.asm rename to text/Route15Gate2F.asm diff --git a/text/maps/Route16.asm b/text/Route16.asm similarity index 100% rename from text/maps/Route16.asm rename to text/Route16.asm diff --git a/text/Route16FlyHouse.asm b/text/Route16FlyHouse.asm new file mode 100644 index 000000000..89f76e51d --- /dev/null +++ b/text/Route16FlyHouse.asm @@ -0,0 +1,32 @@ +_Route16HouseText3:: + text "Oh, you found my" + line "secret retreat!" + + para "Please don't tell" + line "anyone I'm here." + cont "I'll make it up" + cont "to you with this!" + prompt + +_ReceivedHM02Text:: + text " received" + line "HM02!@" + text_end + +_HM02ExplanationText:: + text "HM02 is FLY." + line "It will take you" + cont "back to any town." + + para "Put it to good" + line "use!" + done + +_HM02NoRoomText:: + text "You don't have any" + line "room for this." + done + +_Route16HouseText_1e652:: + text "FEAROW: Kyueen!" + done diff --git a/text/maps/Route16Gate1F.asm b/text/Route16Gate1F.asm similarity index 100% rename from text/maps/Route16Gate1F.asm rename to text/Route16Gate1F.asm diff --git a/text/maps/Route16Gate2F.asm b/text/Route16Gate2F.asm similarity index 100% rename from text/maps/Route16Gate2F.asm rename to text/Route16Gate2F.asm diff --git a/text/maps/Route17.asm b/text/Route17.asm similarity index 100% rename from text/maps/Route17.asm rename to text/Route17.asm diff --git a/text/maps/Route18.asm b/text/Route18.asm similarity index 100% rename from text/maps/Route18.asm rename to text/Route18.asm diff --git a/text/maps/Route18Gate1F.asm b/text/Route18Gate1F.asm similarity index 100% rename from text/maps/Route18Gate1F.asm rename to text/Route18Gate1F.asm diff --git a/text/maps/Route18Gate2F.asm b/text/Route18Gate2F.asm similarity index 100% rename from text/maps/Route18Gate2F.asm rename to text/Route18Gate2F.asm diff --git a/text/maps/Route19.asm b/text/Route19.asm similarity index 100% rename from text/maps/Route19.asm rename to text/Route19.asm diff --git a/text/maps/Route2.asm b/text/Route2.asm similarity index 100% rename from text/maps/Route2.asm rename to text/Route2.asm diff --git a/text/maps/Route20.asm b/text/Route20.asm similarity index 100% rename from text/maps/Route20.asm rename to text/Route20.asm diff --git a/text/maps/Route21.asm b/text/Route21.asm similarity index 100% rename from text/maps/Route21.asm rename to text/Route21.asm diff --git a/text/maps/Route22.asm b/text/Route22.asm similarity index 100% rename from text/maps/Route22.asm rename to text/Route22.asm diff --git a/text/Route22Gate.asm b/text/Route22Gate.asm new file mode 100644 index 000000000..33893d6e1 --- /dev/null +++ b/text/Route22Gate.asm @@ -0,0 +1,22 @@ +_Route22GateText_1e704:: + text "Only truly skilled" + line "trainers are" + cont "allowed through." + + para "You don't have the" + line "BOULDERBADGE yet!@" + text_end + +_Route22GateText_1e715:: + text_start + + para "The rules are" + line "rules. I can't" + cont "let you pass." + done + +_Route22GateText_1e71a:: + text "Oh! That is the" + line "BOULDERBADGE!" + cont "Go right ahead!@" + text_end diff --git a/text/Route23.asm b/text/Route23.asm new file mode 100644 index 000000000..f21857b3d --- /dev/null +++ b/text/Route23.asm @@ -0,0 +1,41 @@ +_VictoryRoadGuardText1:: + text "You can pass here" + line "only if you have" + cont "the @" + text_ram wcd6d + text "!" + + para "You don't have the" + line "@" + text_ram wcd6d + text " yet!" + + para "You have to have" + line "it to get to" + cont "#MON LEAGUE!@" + text_end + +_VictoryRoadGuardText2:: + text "You can pass here" + line "only if you have" + cont "the @" + text_ram wcd6d + text "!" + + para "Oh! That is the" + line "@" + text_ram wcd6d + text "!@" + text_end + +_VictoryRoadGuardText_513a3:: + text_start + + para "OK then! Please," + line "go right ahead!" + done + +_Route23Text8:: + text "VICTORY ROAD GATE" + line "- #MON LEAGUE" + done diff --git a/text/Route24.asm b/text/Route24.asm new file mode 100644 index 000000000..411a4d918 --- /dev/null +++ b/text/Route24.asm @@ -0,0 +1,187 @@ +_Route24Text_51510:: + text "Congratulations!" + line "You beat our 5" + cont "contest trainers!@" + text_end + +_Route24Text_51515:: + text_start + + para "You just earned a" + line "fabulous prize!" + prompt + +_Route24Text_5151a:: + text " received" + line "a @" + text_ram wcf4b + text "!@" + text_end + +_Route24Text_51521:: + text "You don't have" + line "any room!" + done + +_Route24Text_51526:: + text "By the way, would" + line "you like to join" + cont "TEAM ROCKET?" + + para "We're a group" + line "dedicated to evil" + cont "using #MON!" + + para "Want to join?" + + para "Are you sure?" + + para "Come on, join us!" + + para "I'm telling you" + line "to join!" + + para "OK, you need" + line "convincing!" + + para "I'll make you an" + line "offer you can't" + cont "refuse!" + done + +_Route24Text_5152b:: + text "Arrgh!" + line "You are good!" + prompt + +_Route24Text_51530:: + text "With your ability," + line "you could become" + cont "a top leader in" + cont "TEAM ROCKET!" + done + +_Route24BattleText1:: + text "I saw your feat" + line "from the grass!" + done + +_Route24EndBattleText1:: + text "I" + line "thought not!" + prompt + +_Route24AfterBattleText1:: + text "I hid because the" + line "people on the" + cont "bridge scared me!" + done + +_Route24BattleText2:: + text "OK! I'm No. 5!" + line "I'll stomp you!" + done + +_Route24EndBattleText2:: + text "Whoa!" + line "Too much!" + prompt + +_Route24AfterBattleText2:: + text "I did my best, I" + line "have no regrets!" + done + +_Route24BattleText3:: + text "I'm No. 4!" + line "Getting tired?" + done + +_Route24EndBattleText3:: + text "I lost" + line "too!" + prompt + +_Route24AfterBattleText3:: + text "I did my best, so" + line "I've no regrets!" + done + +_Route24BattleText4:: + text "Here's No. 3!" + line "I won't be easy!" + done + +_Route24EndBattleText4:: + text "Ow!" + line "Stomped flat!" + prompt + +_Route24AfterBattleText4:: + text "I did my best, I" + line "have no regrets!" + done + +_Route24BattleText5:: + text "I'm second!" + line "Now it's serious!" + done + +_Route24EndBattleText5:: + text "How could I" + line "lose?" + prompt + +_Route24AfterBattleText5:: + text "I did my best, I" + line "have no regrets!" + done + +_Route24BattleText6:: + text "This is NUGGET" + line "BRIDGE! Beat us 5" + cont "trainers and win" + cont "a fabulous prize!" + + para "Think you got" + line "what it takes?" + done + +_Route24EndBattleText6:: + text "Whoo!" + line "Good stuff!" + prompt + +_Route24AfterBattleText6:: + text "I did my best, I" + line "have no regrets!" + done + +_Route24DamianText1:: + text "I'm not good at" + line "raising #MON." + + para "I should release" + line "my CHARMANDER" + cont "because I haven't" + cont "raised it well..." + + para "If you promise me" + line "you'll care for" + cont "it, it's yours." + done + +_Route24DamianText2:: + text "Take good care of" + line "my CHARMANDER!@" + text_end + +_Route24DamianText3:: + text "Oh... I'd better" + line "release it then." + done + +_Route24DamianText4:: + text "How's CHARMANDER" + line "doing?" + done diff --git a/text/maps/Route25.asm b/text/Route25.asm similarity index 100% rename from text/maps/Route25.asm rename to text/Route25.asm diff --git a/text/maps/Route2Gate.asm b/text/Route2Gate.asm similarity index 100% rename from text/maps/Route2Gate.asm rename to text/Route2Gate.asm diff --git a/text/maps/Route2TradeHouse.asm b/text/Route2TradeHouse.asm similarity index 100% rename from text/maps/Route2TradeHouse.asm rename to text/Route2TradeHouse.asm diff --git a/text/maps/Route3.asm b/text/Route3.asm similarity index 100% rename from text/maps/Route3.asm rename to text/Route3.asm diff --git a/text/maps/Route4.asm b/text/Route4.asm similarity index 100% rename from text/maps/Route4.asm rename to text/Route4.asm diff --git a/text/maps/Route5.asm b/text/Route5.asm similarity index 100% rename from text/maps/Route5.asm rename to text/Route5.asm diff --git a/text/maps/Route6.asm b/text/Route6.asm similarity index 100% rename from text/maps/Route6.asm rename to text/Route6.asm diff --git a/text/maps/Route7.asm b/text/Route7.asm similarity index 100% rename from text/maps/Route7.asm rename to text/Route7.asm diff --git a/text/maps/Route8.asm b/text/Route8.asm similarity index 100% rename from text/maps/Route8.asm rename to text/Route8.asm diff --git a/text/maps/Route9.asm b/text/Route9.asm similarity index 100% rename from text/maps/Route9.asm rename to text/Route9.asm diff --git a/text/maps/Route9_2.asm b/text/Route9_2.asm old mode 100755 new mode 100644 similarity index 100% rename from text/maps/Route9_2.asm rename to text/Route9_2.asm diff --git a/text/maps/SSAnne1F.asm b/text/SSAnne1F.asm similarity index 100% rename from text/maps/SSAnne1F.asm rename to text/SSAnne1F.asm diff --git a/text/SSAnne1FRooms.asm b/text/SSAnne1FRooms.asm new file mode 100644 index 000000000..da672f8d1 --- /dev/null +++ b/text/SSAnne1FRooms.asm @@ -0,0 +1,105 @@ +_SSAnne8Text8:: + text "WIGGLYTUFF: Puup" + line "pupuu!@" + text_end + +_SSAnne8BattleText1:: + text "I travel alone" + line "on my journeys!" + + para "My #MON are my" + line "only friends!" + done + +_SSAnne8EndBattleText1:: + text "My, my" + line "friends..." + prompt + +_SSAnne8AfterBattleText1:: + text "You should be" + line "nice to friends!" + done + +_SSAnne8BattleText2:: + text "You pup! How dare" + line "you barge in!" + done + +_SSAnne8EndBattleText2:: + text "Humph!" + line "You rude child!" + prompt + +_SSAnne8AfterBattleText2:: + text "I wish to be left" + line "alone! Get out!" + done + +_SSAnne8BattleText3:: + text "I love #MON!" + line "Do you?" + done + +_SSAnne8EndBattleText3:: + text "Wow! " + line "You're great!" + prompt + +_SSAnne8AfterBattleText3:: + text "Let me be your" + line "friend, OK?" + + para "Then we can trade" + line "#MON!" + done + +_SSAnne8BattleText4:: + text "I collected these" + line "#MON from all" + cont "around the world!" + done + +_SSAnne8EndBattleText4:: + text "Oh no!" + line "I went around the" + cont "world for these!" + prompt + +_SSAnne8AfterBattleText4:: + text "You hurt my poor" + line "worldly #MON!" + + para "I demand that you" + line "heal them at a" + cont "#MON CENTER!" + done + +_SSAnne8Text5:: + text "Waiter, I would" + line "like a cherry pie" + cont "please!" + done + +_SSAnne8Text6:: + text "A cruise is so" + line "elegant yet cozy!" + done + +_SSAnne8Text7:: + text "I always travel" + line "with WIGGLYTUFF!" + done + +_SSAnne8Text9:: + text "We are cruising" + line "around the world." + done + +_SSAnne8Text11:: + text "Ssh! I'm a GLOBAL" + line "POLICE agent!" + + para "I'm on the trail" + line "of TEAM ROCKET!" + done diff --git a/text/maps/SSAnne2F.asm b/text/SSAnne2F.asm similarity index 100% rename from text/maps/SSAnne2F.asm rename to text/SSAnne2F.asm diff --git a/text/maps/SSAnne2FRooms.asm b/text/SSAnne2FRooms.asm similarity index 100% rename from text/maps/SSAnne2FRooms.asm rename to text/SSAnne2FRooms.asm diff --git a/text/maps/SSAnne3F.asm b/text/SSAnne3F.asm similarity index 100% rename from text/maps/SSAnne3F.asm rename to text/SSAnne3F.asm diff --git a/text/SSAnneB1FRooms.asm b/text/SSAnneB1FRooms.asm new file mode 100644 index 000000000..8072fc851 --- /dev/null +++ b/text/SSAnneB1FRooms.asm @@ -0,0 +1,114 @@ +_SSAnne10Text8:: + text "MACHOKE: Gwoh!" + line "Goggoh!@" + text_end + +_SSAnne10BattleText1:: + text "You know what they" + line "say about sailors" + cont "and fighting!" + done + +_SSAnne10EndBattleText1:: + text "Right!" + line "Good fight, mate!" + prompt + +_SSAnne10AfterBattleText1:: + text "Haha! Want to be" + line "a sailor, mate?" + done + +_SSAnne10BattleText2:: + text "My sailor's pride" + line "is at stake!" + done + +_SSAnne10EndBattleText2:: + text "Your" + line "spirit sank me!" + prompt + +_SSAnne10AfterBattleText2:: + text "Did you see the" + line "FISHING GURU in" + cont "VERMILION CITY?" + done + +_SSAnne10BattleText3:: + text "Us sailors have" + line "#MON too!" + done + +_SSAnne10EndBattleText3:: + text "OK, " + line "you're not bad." + prompt + +_SSAnne10AfterBattleText3:: + text "We caught all our" + line "#MON while" + cont "out at sea!" + done + +_SSAnne10BattleText4:: + text "I like feisty" + line "kids like you!@" + text_end + +_SSAnne10EndBattleText4:: + text "Argh!" + line "Lost it!" + prompt + +_SSAnne10AfterBattleText4:: + text "Sea #MON live" + line "in deep water." + cont "You'll need a ROD!" + done + +_SSAnne10BattleText5:: + text "Matey, you're" + line "walking the plank" + cont "if you lose!" + done + +_SSAnne10EndBattleText5:: + text "Argh!" + line "Beaten by a kid!" + prompt + +_SSAnne10AfterBattleText5:: + text "Jellyfish some-" + line "times drift into" + cont "the ship." + done + +_SSAnne10BattleText6:: + text "Hello stranger!" + line "Stop and chat!" + + para "All my #MON" + line "are from the sea!" + done + +_SSAnne10EndBattleText6:: + text "Darn!" + line "I let that one" + cont "get away!" + prompt + +_SSAnne10AfterBattleText6:: + text "I was going to" + line "make you my" + cont "assistant too!" + done + +_SSAnne10Text7:: + text "My buddy, MACHOKE," + line "is super strong!" + + para "He has enough" + line "STRENGTH to move" + cont "big rocks!" + done diff --git a/text/maps/SSAnneBow.asm b/text/SSAnneBow.asm similarity index 100% rename from text/maps/SSAnneBow.asm rename to text/SSAnneBow.asm diff --git a/text/SSAnneCaptainsRoom.asm b/text/SSAnneCaptainsRoom.asm new file mode 100644 index 000000000..5bd86e177 --- /dev/null +++ b/text/SSAnneCaptainsRoom.asm @@ -0,0 +1,64 @@ +_SSAnne7RubText:: + text "CAPTAIN: Ooargh..." + line "I feel hideous..." + cont "Urrp! Seasick..." + + para " rubbed" + line "the CAPTAIN's" + cont "back!" + + para "Rub-rub..." + line "Rub-rub...@" + text_end + +_ReceivingHM01Text:: + text "CAPTAIN: Whew!" + line "Thank you! I" + cont "feel much better!" + + para "You want to see" + line "my CUT technique?" + + para "I could show you" + line "if I wasn't ill..." + + para "I know! You can" + line "have this!" + + para "Teach it to your" + line "#MON and you" + cont "can see it CUT" + cont "anytime!" + prompt + +_ReceivedHM01Text:: + text " got" + line "@" + text_ram wcf4b + text "!@" + text_end + +_SSAnne7Text_61932:: + text "CAPTAIN: Whew!" + + para "Now that I'm not" + line "sick anymore, I" + cont "guess it's time." + done + +_HM01NoRoomText:: + text "Oh no! You have" + line "no room for this!" + done + +_SSAnne7Text2:: + text "Yuck! Shouldn't" + line "have looked!" + done + +_SSAnne7Text3:: + text "How to Conquer" + line "Seasickness..." + cont "The CAPTAIN's" + cont "reading this!" + done diff --git a/text/maps/SSAnneKitchen.asm b/text/SSAnneKitchen.asm similarity index 100% rename from text/maps/SSAnneKitchen.asm rename to text/SSAnneKitchen.asm diff --git a/text/maps/SafariZoneCenter.asm b/text/SafariZoneCenter.asm similarity index 100% rename from text/maps/SafariZoneCenter.asm rename to text/SafariZoneCenter.asm diff --git a/text/maps/SafariZoneCenterRestHouse.asm b/text/SafariZoneCenterRestHouse.asm similarity index 100% rename from text/maps/SafariZoneCenterRestHouse.asm rename to text/SafariZoneCenterRestHouse.asm diff --git a/text/maps/SafariZoneEast.asm b/text/SafariZoneEast.asm similarity index 100% rename from text/maps/SafariZoneEast.asm rename to text/SafariZoneEast.asm diff --git a/text/maps/SafariZoneEastRestHouse.asm b/text/SafariZoneEastRestHouse.asm similarity index 100% rename from text/maps/SafariZoneEastRestHouse.asm rename to text/SafariZoneEastRestHouse.asm diff --git a/text/SafariZoneGate.asm b/text/SafariZoneGate.asm new file mode 100644 index 000000000..bd7e8de4f --- /dev/null +++ b/text/SafariZoneGate.asm @@ -0,0 +1,147 @@ +_SafariZoneEntranceText1:: + text "Welcome to the" + line "SAFARI ZONE!" + done + +SafariZoneEntranceText_9e814:: + text "Leaving early?@" + text_end + +_SafariZoneEntranceText_753bb:: + text "Please return any" + line "SAFARI BALLs you" + cont "have left." + done + +_SafariZoneEntranceText_753c0:: + text "Good Luck!" + done + +_SafariZoneEntranceText_753c5:: + text "Did you get a" + line "good haul?" + cont "Come again!" + done + +SafariZoneEntranceText_9e6e4:: + text "For just ¥500," + line "you can catch all" + cont "the #MON you" + cont "want in the park!" + + para "Would you like to" + line "join the hunt?@" + text_end + +SafariZoneEntranceText_9e747:: + text "That'll be ¥@" + text_bcd wPriceTemp, $c3 + text "," + line "please!" + + para "We only use a" + line "special # BALL" + cont "here." + + para " received" + line "30 SAFARI BALLs!@" + text_end + +_SafariZoneEntranceText_75360:: + text_start + + para "We'll call you on" + line "the PA when you" + cont "run out of time" + cont "or SAFARI BALLs!" + done + +_SafariZoneEntranceText_75365:: + text "OK! Please come" + line "again!" + done + +_SafariZoneEntranceText_7536a:: + text "Oops! Not enough" + line "money!" + done + +_SafariZoneEntranceText_753e6:: + text "Hi! Is it your" + line "first time here?" + done + +_SafariZoneEntranceText_753eb:: + text "SAFARI ZONE has 4" + line "zones in it." + + para "Each zone has" + line "different kinds" + cont "of #MON. Use" + cont "SAFARI BALLs to" + cont "catch them!" + + para "When you run out" + line "of time or SAFARI" + cont "BALLs, it's game" + cont "over for you!" + + para "Before you go," + line "open an unused" + cont "#MON BOX so" + cont "there's room for" + cont "new #MON!" + done + +_SafariZoneEntranceText_753f0:: + text "Sorry, you're a" + line "regular here!" + done + +_SafariZoneLowCostText1:: + text_start + + para "Oh, all right, pay" + line "me what you have." + prompt + +_SafariZoneLowCostText2:: + text "But, I can't give" + line "you all 30 BALLs." + done + +_SafariZoneLowCostText3:: + text_start + + para "You're persistent," + line "aren't you?" + + para "OK, you can go in" + line "for free, but" + cont "just this once!@" + text_end + +_SafariZoneLowCostText4:: + text_start + done + +_SafariZoneLowCostText5:: + text "I'm sorry, but you" + line "have to pay to" + cont "enter." + done + +_SafariZoneLowCostText6:: + text "You can't enter" + line "without paying!" + done + +_SafariZoneLowCostText7:: + text "I said, no money," + line "no entry!" + done + +_SafariZoneLowCostText8:: + text "Read my lips, NO!" + line "Get it?" + done diff --git a/text/maps/SafariZoneNorth.asm b/text/SafariZoneNorth.asm similarity index 100% rename from text/maps/SafariZoneNorth.asm rename to text/SafariZoneNorth.asm diff --git a/text/maps/SafariZoneNorthRestHouse.asm b/text/SafariZoneNorthRestHouse.asm similarity index 100% rename from text/maps/SafariZoneNorthRestHouse.asm rename to text/SafariZoneNorthRestHouse.asm diff --git a/text/SafariZoneSecretHouse.asm b/text/SafariZoneSecretHouse.asm new file mode 100644 index 000000000..8aff18b78 --- /dev/null +++ b/text/SafariZoneSecretHouse.asm @@ -0,0 +1,45 @@ +_SecretHouseText_4a350:: + text "Ah! Finally!" + + para "You're the first" + line "person to reach" + cont "the SECRET HOUSE!" + + para "I was getting" + line "worried that no" + cont "one would win our" + cont "campaign prize." + + para "Congratulations!" + line "You have won!" + prompt + +_ReceivedHM03Text:: + text " received" + line "@" + text_ram wcf4b + text "!@" + text_end + +_HM03ExplanationText:: + text "HM03 is SURF!" + + para "#MON will be" + line "able to ferry you" + cont "across water!" + + para "And, this HM isn't" + line "disposable! You" + cont "can use it over" + cont "and over!" + + para "You're super lucky" + line "for winning this" + cont "fabulous prize!" + done + +_HM03NoRoomText:: + text "You don't have" + line "room for this" + cont "fabulous prize!" + done diff --git a/text/maps/SafariZoneWest.asm b/text/SafariZoneWest.asm similarity index 100% rename from text/maps/SafariZoneWest.asm rename to text/SafariZoneWest.asm diff --git a/text/maps/SafariZoneWestRestHouse.asm b/text/SafariZoneWestRestHouse.asm similarity index 100% rename from text/maps/SafariZoneWestRestHouse.asm rename to text/SafariZoneWestRestHouse.asm diff --git a/text/SaffronCity.asm b/text/SaffronCity.asm new file mode 100644 index 000000000..ae9c44f26 --- /dev/null +++ b/text/SaffronCity.asm @@ -0,0 +1,152 @@ +_SaffronCityText1:: + text "What do you want?" + line "Get lost!" + done + +_SaffronCityText2:: + text "BOSS said he'll" + line "take this town!" + done + +_SaffronCityText3:: + text "Get out of the" + line "way!" + done + +_SaffronCityText4:: + text "SAFFRON belongs" + line "to TEAM ROCKET!" + done + +_SaffronCityText5:: + text "Being evil makes" + line "me feel so alive!" + done + +_SaffronCityText6:: + text "Ow! Watch where" + line "you're walking!" + done + +_SaffronCityText7:: + text "With SILPH under" + line "control, we can" + cont "exploit #MON" + cont "around the world!" + done + +_SaffronCityText8:: + text "You beat TEAM" + line "ROCKET all alone?" + cont "That's amazing!" + done + +_SaffronCityText9:: + text "Yeah! TEAM ROCKET" + line "is gone!" + cont "It's safe to go" + cont "out again!" + done + +_SaffronCityText10:: + text "People should be" + line "flocking back to" + cont "SAFFRON now." + done + +_SaffronCityText11:: + text "I flew here on my" + line "PIDGEOT when I" + cont "read about SILPH." + + para "It's already over?" + line "I missed the" + cont "media action." + done + +_SaffronCityText12:: + text "PIDGEOT: Bi bibii!@" + text_end + +_SaffronCityText13:: + text "I saw ROCKET" + line "BOSS escaping" + cont "SILPH's building." + done + +_SaffronCityText14:: + text "I'm a security" + line "guard." + + para "Suspicious kids I" + line "don't allow in!" + done + +_SaffronCityText15:: + text "..." + line "Snore..." + + para "Hah! He's taking" + line "a snooze!" + done + +_SaffronCityText16:: + text "SAFFRON CITY" + line "Shining, Golden" + cont "Land of Commerce" + done + +_SaffronCityText17:: + text "FIGHTING DOJO" + done + +_SaffronCityText18:: + text "SAFFRON CITY" + line "#MON GYM" + cont "LEADER: SABRINA" + + para "The Master of" + line "Psychic #MON!" + done + +_SaffronCityText20:: + text "TRAINER TIPS" + + para "FULL HEAL cures" + line "all ailments like" + cont "sleep and burns." + + para "It costs a bit" + line "more, but it's" + cont "more convenient." + done + +_SaffronCityText21:: + text "TRAINER TIPS" + + para "New GREAT BALL" + line "offers improved" + cont "capture rates." + + para "Try it on those" + line "hard-to-catch" + cont "#MON." + done + +_SaffronCityText22:: + text "SILPH CO." + line "OFFICE BUILDING" + done + +_SaffronCityText24:: + text "MR.PSYCHIC's" + line "HOUSE" + done + +_SaffronCityText25:: + text "SILPH's latest" + line "product!" + + para "Release to be" + line "determined..." + done diff --git a/text/maps/SaffronGates.asm b/text/SaffronGates.asm similarity index 93% rename from text/maps/SaffronGates.asm rename to text/SaffronGates.asm index 35bcadbbf..50e88a016 100644 --- a/text/maps/SaffronGates.asm +++ b/text/SaffronGates.asm @@ -13,10 +13,11 @@ _SaffronGateText_8aaa9:: cont "..." cont "Huh? I can have" cont "this drink?" - cont "Gee, thanks!@@" + cont "Gee, thanks!@" + text_end _SaffronGateText_1dff1:: - text "" + text_start para "..." line "Glug, glug..." diff --git a/text/SaffronGym.asm b/text/SaffronGym.asm new file mode 100644 index 000000000..a42a69328 --- /dev/null +++ b/text/SaffronGym.asm @@ -0,0 +1,238 @@ +_SaffronGymText_5d162:: + text "I had a vision of" + line "your arrival!" + + para "I have had psychic" + line "powers since I" + cont "was a child." + + para "I first learned" + line "to bend spoons" + cont "with my mind." + + para "I dislike fight-" + line "ing, but if you" + cont "wish, I will show" + cont "you my powers!" + done + +_SaffronGymText_5d167:: + text "I'm" + line "shocked!" + cont "But, a loss is a" + cont "loss." + + para "I admit I didn't" + line "work hard enough" + cont "to win!" + + para "You earned the" + line "MARSHBADGE!@" + text_end + +_SaffronGymText_5d16e:: + text "Everyone has" + line "psychic power!" + cont "People just don't" + cont "realize it!" + done + +_SaffronGymText_5d173:: + text "The MARSHBADGE" + line "makes #MON up" + cont "to L70 obey you!" + + para "Stronger #MON" + line "will become wild," + cont "ignoring your" + cont "orders in battle!" + + para "Just don't raise" + line "your #MON too" + cont "much!" + + para "Wait, please take" + line "this TM with you!" + done + +ReceivedTM46Text:: + text " received" + line "TM46!@" + text_end + +_TM46ExplanationText:: + text_start + + para "TM46 is PSYWAVE!" + line "It uses powerful" + cont "psychic waves to" + cont "inflict damage!" + done + +_TM46NoRoomText:: + text "Your pack is full" + line "of other items!" + done + +_SaffronGymText_5d1e6:: + text "Yo! Champ in" + line "making!" + + para "SABRINA's #MON" + line "use psychic power" + cont "instead of force!" + + para "Fighting #MON" + line "are weak against" + cont "psychic #MON!" + + para "They get creamed" + line "before they can" + cont "even aim a punch!" + done + +_SaffronGymText_5d1eb:: + text "Psychic power," + line "huh?" + + para "If I had that," + line "I'd make a bundle" + cont "at the slots!" + done + +_SaffronGymBattleText1:: + text "SABRINA is younger" + line "than I, but I" + cont "respect her!" + done + +_SaffronGymEndBattleText1:: + text "Not" + line "good enough!" + prompt + +_SaffronGymAfterBattleText1:: + text "In a battle of" + line "equals, the one" + cont "with the stronger" + cont "will wins!" + + para "If you wish" + line "to beat SABRINA," + cont "focus on winning!" + done + +_SaffronGymBattleText2:: + text "Does our unseen" + line "power scare you?" + done + +_SaffronGymEndBattleText2:: + text "I never" + line "foresaw this!" + prompt + +_SaffronGymAfterBattleText2:: + text "Psychic #MON" + line "fear only bugs!" + done + +_SaffronGymBattleText3:: + text "#MON take on" + line "the appearance of" + cont "their trainers." + + para "Your #MON must" + line "be tough, then!" + done + +_SaffronGymEndBattleText3:: + text "I knew" + line "it!" + prompt + +_SaffronGymAfterBattleText3:: + text "I must teach" + line "better techniques" + cont "to my #MON!" + done + +_SaffronGymBattleText4:: + text "You know that" + line "power alone isn't" + cont "enough!" + done + +_SaffronGymEndBattleText4:: + text "I don't" + line "believe this!" + prompt + +_SaffronGymAfterBattleText4:: + text "SABRINA just wiped" + line "out the KARATE" + cont "MASTER next door!" + done + +_SaffronGymBattleText5:: + text "You and I, our" + line "#MON shall" + cont "fight!" + done + +_SaffronGymEndBattleText5:: + text "I lost" + line "after all!" + prompt + +_SaffronGymAfterBattleText5:: + text "I knew that this" + line "was going to take" + cont "place." + done + +_SaffronGymBattleText6:: + text "SABRINA is young," + line "but she's also" + cont "our LEADER!" + + para "You won't reach" + line "her easily!" + done + +_SaffronGymEndBattleText6:: + text "I lost" + line "my concentration!" + prompt + +_SaffronGymAfterBattleText6:: + text "There used to be" + line "2 #MON GYMs in" + cont "SAFFRON." + + para "The FIGHTING DOJO" + line "next door lost" + cont "its GYM status" + cont "when we went and" + cont "creamed them!" + done + +_SaffronGymBattleText7:: + text "SAFFRON #MON" + line "GYM is famous for" + cont "its psychics!" + + para "You want to see" + line "SABRINA!" + cont "I can tell!" + done + +_SaffronGymEndBattleText7:: + text "Arrrgh!" + prompt + +_SaffronGymAfterBattleText7:: + text "That's right! I" + line "used telepathy to" + cont "read your mind!" + done diff --git a/text/maps/SaffronMart.asm b/text/SaffronMart.asm similarity index 100% rename from text/maps/SaffronMart.asm rename to text/SaffronMart.asm diff --git a/text/SaffronPidgeyHouse.asm b/text/SaffronPidgeyHouse.asm new file mode 100644 index 000000000..d8666a07c --- /dev/null +++ b/text/SaffronPidgeyHouse.asm @@ -0,0 +1,27 @@ +_SaffronHouse1Text1:: + text "Thank you for" + line "writing. I hope" + cont "to see you soon!" + + para "Hey! Don't look" + line "at my letter!" + done + +_SaffronHouse1Text2:: + text "PIDGEY: Kurukkoo!@" + text_end + +_SaffronHouse1Text3:: + text "The COPYCAT is" + line "cute! I'm getting" + cont "her a # DOLL!" + done + +_SaffronHouse1Text4:: + text "I was given a PP" + line "UP as a gift." + + para "It's used for" + line "increasing the PP" + cont "of techniques!" + done diff --git a/text/maps/SaffronPokecenter.asm b/text/SaffronPokecenter.asm similarity index 100% rename from text/maps/SaffronPokecenter.asm rename to text/SaffronPokecenter.asm diff --git a/text/SeafoamIslandsB4F.asm b/text/SeafoamIslandsB4F.asm new file mode 100644 index 000000000..ea7eeaa21 --- /dev/null +++ b/text/SeafoamIslandsB4F.asm @@ -0,0 +1,14 @@ +_ArticunoBattleText:: + text "Gyaoo!@" + text_end + +_SeafoamIslands5Text4:: + text "Boulders might" + line "change the flow" + cont "of water!" + done + +_SeafoamIslands5Text5:: + text "DANGER" + line "Fast current!" + done diff --git a/text/SilphCo10F.asm b/text/SilphCo10F.asm new file mode 100644 index 000000000..fd4d4c7ce --- /dev/null +++ b/text/SilphCo10F.asm @@ -0,0 +1,68 @@ +_SilphCo10Text_5a1d3:: + text "Waaaaa!" + line "I'm scared!" + done + +_SilphCo10Text_5a1d8:: + text "Please keep quiet" + line "about my crying!" + done + +_SilphCo10BattleText1:: + text "Welcome to the" + line "10F! So good of" + cont "you to join me!" + done + +_SilphCo10EndBattleText1:: + text "I'm" + line "stunned!" + prompt + +_SilphCo10AfterBattleText1:: + text "Nice try, but the" + line "boardroom is up" + cont "one more floor!" + done + +_SilphCo10BattleText2:: + text "Enough of your" + line "silly games!" + done + +_SilphCo10EndBattleText2:: + text "No" + line "continues left!" + prompt + +_SilphCo10AfterBattleText2:: + text "Are you satisfied" + line "with beating me?" + cont "Then go on home!" + done + +_SilphCoJessieJamesText1:: + text "Hold it right" + line "there, brat!@" + text_end + +_SilphCoJessieJamesText2:: + text "Our BOSS is in a" + line "meeting!" + + para "You better not" + line "disturb him!" + done + +_SilphCoJessieJamesText3:: + text "Like" + line "always..." + prompt + +_SilphCoJessieJamesText4:: + text "TEAM ROCKET, blast" + line "off at the speed" + cont "of light!" + + para "Again...@" + text_end diff --git a/text/SilphCo11F.asm b/text/SilphCo11F.asm new file mode 100644 index 000000000..51033d720 --- /dev/null +++ b/text/SilphCo11F.asm @@ -0,0 +1,115 @@ +_SilphCoPresidentText:: + text "PRESIDENT: Thank" + line "you for saving" + cont "SILPH!" + + para "I will never" + line "forget you saved" + cont "us in our moment" + cont "of peril!" + + para "I have to thank" + line "you in some way!" + + para "Because I am rich," + line "I can give you" + cont "anything!" + + para "Here, maybe this" + line "will do!" + prompt + +_ReceivedSilphCoMasterBallText:: + text " got a" + line "@" + text_ram wcf4b + text "!@" + text_end + +_SilphCo10Text_6231c:: + text "PRESIDENT: You" + line "can't buy that" + cont "anywhere!" + + para "It's our secret" + line "prototype MASTER" + cont "BALL!" + + para "It will catch any" + line "#MON without" + cont "fail!" + + para "You should be" + line "quiet about using" + cont "it, though." + done + +_SilphCoMasterBallNoRoomText:: + text "You have no" + line "room for this." + done + +_SilphCo11Text2:: + text "SECRETARY: Thank" + line "you for rescuing" + cont "all of us!" + + para "We admire your" + line "courage." + done + +_SilphCo11Text3:: + text "Ah, !" + line "So we meet again!" + + para "The PRESIDENT and" + line "I are discussing" + cont "a vital business" + cont "proposition." + + para "Keep your nose" + line "out of grown-up" + cont "matters..." + + para "or, experience a" + line "world of pain!" + done + +_SilphCo10Text_62330:: + text "Arrgh!!" + line "I lost again!?" + prompt + +_SilphCo10Text_62335:: + text "Blast it all!" + line "You ruined our" + cont "plans for SILPH!" + + para "But, TEAM ROCKET" + line "will never fall!" + + para "! Never" + line "forget that all" + cont "#MON exist" + cont "for TEAM ROCKET!" + + para "I must go, but I" + line "shall return!" + done + +_SilphCo11BattleText2:: + text "Halt! Do you have" + line "an appointment" + cont "with my BOSS?" + done + +_SilphCo11EndBattleText2:: + text "Gaah!" + line "Demolished!" + prompt + +_SilphCo11AfterBattleText2:: + text "Watch your step," + line "my BOSS likes his" + cont "#MON tough!" + done diff --git a/text/maps/SilphCo1F.asm b/text/SilphCo1F.asm similarity index 100% rename from text/maps/SilphCo1F.asm rename to text/SilphCo1F.asm diff --git a/text/SilphCo2F.asm b/text/SilphCo2F.asm new file mode 100644 index 000000000..817b4142a --- /dev/null +++ b/text/SilphCo2F.asm @@ -0,0 +1,97 @@ +_SilphCo2Text_59ded:: + text "Eeek!" + line "No! Stop! Help!" + + para "Oh, you're not" + line "with TEAM ROCKET." + cont "I thought..." + cont "I'm sorry. Here," + cont "please take this!" + prompt + +_ReceivedTM36Text:: + text " got" + line "@" + text_ram wcf4b + text "!@" + text_end + +_TM36ExplanationText:: + text "TM36 is" + line "SELFDESTRUCT!" + + para "It's powerful, but" + line "the #MON that" + cont "uses it faints!" + cont "Be careful." + done + +_TM36NoRoomText:: + text "You don't have any" + line "room for this." + done + +_SilphCo2BattleText1:: + text "Help! I'm a SILPH" + line "employee." + done + +_SilphCo2EndBattleText1:: + text "How" + line "did you know I" + cont "was a ROCKET?" + prompt + +_SilphCo2AfterBattleText1:: + text "I work for both" + line "SILPH and TEAM" + cont "ROCKET!" + done + +_SilphCo2BattleText2:: + text "It's off limits" + line "here! Go home!" + done + +_SilphCo2EndBattleText2:: + text "You're" + line "good." + prompt + +_SilphCo2AfterBattleText2:: + text "Can you solve the" + line "maze in here?" + done + +_SilphCo2BattleText3:: + text "No kids are" + line "allowed in here!" + done + +_SilphCo2EndBattleText3:: + text "Tough!" + prompt + +_SilphCo2AfterBattleText3:: + text "Diamond-shaped" + line "tiles are" + cont "teleport blocks!" + + para "They're hi-tech" + line "transporters!" + done + +_SilphCo2BattleText4:: + text "Hey kid! What are" + line "you doing here?" + done + +_SilphCo2EndBattleText4:: + text "I goofed!" + prompt + +_SilphCo2AfterBattleText4:: + text "SILPH CO. will" + line "be merged with" + cont "TEAM ROCKET!" + done diff --git a/text/maps/SilphCo3F.asm b/text/SilphCo3F.asm similarity index 100% rename from text/maps/SilphCo3F.asm rename to text/SilphCo3F.asm diff --git a/text/maps/SilphCo4F.asm b/text/SilphCo4F.asm similarity index 100% rename from text/maps/SilphCo4F.asm rename to text/SilphCo4F.asm diff --git a/text/maps/SilphCo5F.asm b/text/SilphCo5F.asm similarity index 100% rename from text/maps/SilphCo5F.asm rename to text/SilphCo5F.asm diff --git a/text/maps/SilphCo6F.asm b/text/SilphCo6F.asm similarity index 100% rename from text/maps/SilphCo6F.asm rename to text/SilphCo6F.asm diff --git a/text/maps/SilphCo7F.asm b/text/SilphCo7F.asm similarity index 100% rename from text/maps/SilphCo7F.asm rename to text/SilphCo7F.asm diff --git a/text/maps/SilphCo8F.asm b/text/SilphCo8F.asm similarity index 100% rename from text/maps/SilphCo8F.asm rename to text/SilphCo8F.asm diff --git a/text/maps/SilphCo9F.asm b/text/SilphCo9F.asm similarity index 100% rename from text/maps/SilphCo9F.asm rename to text/SilphCo9F.asm diff --git a/text/maps/UndergroundPathRoute6.asm b/text/UndergroundPathRoute6.asm similarity index 100% rename from text/maps/UndergroundPathRoute6.asm rename to text/UndergroundPathRoute6.asm diff --git a/text/maps/UndergroundPathRoute7.asm b/text/UndergroundPathRoute7.asm similarity index 100% rename from text/maps/UndergroundPathRoute7.asm rename to text/UndergroundPathRoute7.asm diff --git a/text/maps/UndergroundPathRoute7Copy.asm b/text/UndergroundPathRoute7Copy.asm similarity index 100% rename from text/maps/UndergroundPathRoute7Copy.asm rename to text/UndergroundPathRoute7Copy.asm diff --git a/text/maps/UndergroundPathRoute8.asm b/text/UndergroundPathRoute8.asm similarity index 100% rename from text/maps/UndergroundPathRoute8.asm rename to text/UndergroundPathRoute8.asm diff --git a/text/VermilionCity.asm b/text/VermilionCity.asm new file mode 100644 index 000000000..c65063cc1 --- /dev/null +++ b/text/VermilionCity.asm @@ -0,0 +1,169 @@ +_VermilionCityText1:: + text "We're careful" + line "about pollution!" + + para "We've heard GRIMER" + line "multiplies in" + cont "toxic sludge!" + done + +_VermilionCityTextDidYouSee:: + text "Did you see S.S." + line "ANNE moored in" + cont "the harbor?" + done + +_VermilionCityTextSSAnneDeparted:: + text "So, S.S.ANNE has" + line "departed!" + + para "She'll be back in" + line "about a year." + done + +_SSAnneWelcomeText4:: + text "Welcome to S.S." + line "ANNE!" + done + +_SSAnneWelcomeText9:: + text "Welcome to S.S." + line "ANNE!" + + para "Excuse me, do you" + line "have a ticket?" + prompt + +_SSAnneFlashedTicketText:: + text " flashed" + line "the S.S.TICKET!" + + para "Great! Welcome to" + line "S.S.ANNE!" + done + +_SSAnneNoTicketText:: + text " doesn't" + line "have the needed" + cont "S.S.TICKET." + + para "Sorry!" + + para "You need a ticket" + line "to get aboard." + done + +_SSAnneNotHereText:: + text "The ship set sail." + done + +_VermilionCityText4:: + text "I'm putting up a" + line "building on this" + cont "plot of land." + + para "My #MON is" + line "tamping the land." + done + +_VermilionCityText5:: + text "MACHOP: Guoh!" + line "Gogogoh!@" + text_end + +_VermilionCityText15:: + text_start + para "A MACHOP is" + line "stomping the land" + cont "flat." + done + +_VermilionCityText6:: + text "S.S.ANNE is a" + line "famous luxury" + cont "cruise ship." + + para "We visit VERMILION" + line "once a year." + done + +_OfficerJennyText1:: + text "I just caught a" + line "SQUIRTLE that was" + cont "always getting" + cont "into mischief." + + para "I think it needs a" + line "good trainer to" + cont "set it straight." + done + +_OfficerJennyText2:: + text "You have the" + line "THUNDERBADGE!?" + + para "You must be a" + line "good trainer!" + + para "I just caught a" + line "SQUIRTLE that was" + cont "always getting" + cont "into mischief." + + para "Would you take" + line "good care of it?" + done + +_OfficerJennyText3:: + text "OK! Please treat" + line "SQUIRTLE right!@" + text_end + +_OfficerJennyText4:: + text "Oh... What am I" + line "to do now?" + done + +_OfficerJennyText5:: + text "How is SQUIRTLE" + line "doing?" + done + +_VermilionCityText8:: + text "VERMILION CITY" + line "The Port of" + cont "Exquisite Sunsets" + done + +_VermilionCityText9:: + text "NOTICE!" + + para "ROUTE 12 may be" + line "blocked off by a" + cont "sleeping #MON." + + para "Detour through" + line "ROCK TUNNEL to" + cont "LAVENDER TOWN." + + para "VERMILION POLICE" + done + +_VermilionCityText12:: + text "#MON FAN CLUB" + line "All #MON fans" + cont "welcome!" + done + +_VermilionCityText13:: + text "VERMILION CITY" + line "#MON GYM" + cont "LEADER: LT.SURGE" + + para "The Lightning " + line "American!" + done + +_VermilionCityText14:: + text "VERMILION HARBOR" + done diff --git a/text/VermilionDock.asm b/text/VermilionDock.asm new file mode 100644 index 000000000..aaf1ed34c --- /dev/null +++ b/text/VermilionDock.asm @@ -0,0 +1,3 @@ +_VermilionDockText1:: + text_start + done diff --git a/text/VermilionGym.asm b/text/VermilionGym.asm new file mode 100644 index 000000000..de548ecab --- /dev/null +++ b/text/VermilionGym.asm @@ -0,0 +1,167 @@ +_LTSurgePreBattleText:: + text "Ten-hut! Welcome" + line "to VERMILION GYM!" + + para "Will you look at" + line "that, a pint-size" + cont "challenger!" + + para "Hahaha! You've got" + line "big and brassy" + cont "nerves to take me" + cont "on with your puny" + cont "power!" + + para "A #MON battle" + line "is war! I'll show" + cont "you, civilian!" + + para "I'll shock you" + line "into surrender!" + done + +_LTSurgePostBattleAdviceText:: + text "A little word of" + line "advice, kid!" + + para "Electricity is" + line "sure powerful!" + + para "But, it's useless" + line "against ground-" + cont "type #MON!" + done + +_LTSurgeThunderbadgeInfoText:: + text "The THUNDERBADGE" + line "cranks up your" + cont "#MON's SPEED!" + + para "It also lets your" + line "#MON FLY any-" + cont "time, kid!" + + para "You're special," + line "kid! Take this!" + done + +_ReceivedTM24Text:: + text " received " + line "@" + text_ram wcf4b + text "!@" + text_end + +_TM24ExplanationText:: + text_start + + para "TM24 contains" + line "THUNDERBOLT!" + + para "Teach it to an" + line "electric #MON!" + done + +_TM24NoRoomText:: + text "Yo kid, make room" + line "in your pack!" + done + +_ReceivedThunderbadgeText:: + text "Whoa!" + + para "You're the real" + line "deal, kid!" + + para "Fine then, take" + line "the THUNDERBADGE!" + prompt + +_VermilionGymBattleText1:: + text "When I was in the" + line "Army, LT.SURGE" + cont "was my strict CO!" + done + +_VermilionGymEndBattleText1:: + text "Stop!" + line "You're very good!" + prompt + +_VermilionGymAfterBattleText1:: + text "The door won't" + line "open?" + + para "LT.SURGE always" + line "was cautious!" + done + +_VermilionGymBattleText2:: + text "I'm a lightweight," + line "but I'm good with" + cont "electricity!" + done + +_VermilionGymEndBattleText2:: + text "Fried!" + prompt + +_VermilionGymAfterBattleText2:: + text "OK, I'll talk!" + + para "LT.SURGE said he" + line "hid door switches" + cont "inside something!" + done + +_VermilionGymBattleText3:: + text "This is no place" + line "for kids!" + done + +_VermilionGymEndBattleText3:: + text "Wow!" + line "Surprised me!" + prompt + +_VermilionGymAfterBattleText3:: + text "LT.SURGE set up" + line "double locks!" + cont "Here's a hint!" + + para "When you open the" + line "1st lock, the 2nd" + cont "lock is right" + cont "next to it!" + done + +_VermilionGymFanPreBattleText:: + text "Yo! Champ in" + line "making!" + + para "LT.SURGE has a" + line "nickname. People" + cont "refer to him as" + cont "the Lightning" + cont "American!" + + para "He's an expert on" + line "electric #MON!" + + para "Birds and water" + line "#MON are at" + cont "risk! Beware of" + cont "paralysis too!" + + para "LT.SURGE is very" + line "cautious!" + + para "You'll have to" + line "break a code to" + cont "get to him!" + done + +_VermilionGymFanPostBattleText:: + text "Whew! That match" + line "was electric!" + done diff --git a/text/maps/VermilionMart.asm b/text/VermilionMart.asm similarity index 100% rename from text/maps/VermilionMart.asm rename to text/VermilionMart.asm diff --git a/text/VermilionOldRodHouse.asm b/text/VermilionOldRodHouse.asm new file mode 100644 index 000000000..d9a94cd46 --- /dev/null +++ b/text/VermilionOldRodHouse.asm @@ -0,0 +1,55 @@ +_VermilionHouse2Text_560b1:: + text "I'm the FISHING" + line "GURU!" + + para "I simply Looove" + line "fishing!" + + para "Do you like to" + line "fish?" + done + +_VermilionHouse2Text_560b6:: + text "Grand! I like" + line "your style!" + + para "Take this and" + line "fish, young one!" + + para " received" + line "an @" + text_ram wcf4b + text "!@" + text_end + +_VermilionHouse2Text_560bb:: + text_start + + para "Fishing is a way" + line "of life!" + + para "From the seas to" + line "rivers, go out" + cont "and land the big" + cont "one, young one!" + done + +_VermilionHouse2Text_560c0:: + text "Oh... That's so" + line "disappointing..." + done + +_VermilionHouse2Text_560c5:: + text "Hello there," + line "!" + + para "How are the fish" + line "biting?" + done + +_VermilionHouse2Text_560ca:: + text "Oh no!" + + para "You have no room" + line "for my gift!" + done diff --git a/text/VermilionPidgeyHouse.asm b/text/VermilionPidgeyHouse.asm new file mode 100644 index 000000000..858e84f3e --- /dev/null +++ b/text/VermilionPidgeyHouse.asm @@ -0,0 +1,22 @@ +_VermilionHouse1Text1:: + text "I'm getting my" + line "PIDGEY to fly a" + cont "letter to SAFFRON" + cont "in the north!" + done + +_VermilionHouse1Text2:: + text "PIDGEY: Kurukkoo!@" + text_end + +_VermilionHouse1Text3:: + text "Dear PIPPI, I hope" + line "to see you soon." + + para "I heard SAFFRON" + line "has problems with" + cont "TEAM ROCKET." + + para "VERMILION appears" + line "to be safe." + done diff --git a/text/maps/VermilionPokecenter.asm b/text/VermilionPokecenter.asm similarity index 100% rename from text/maps/VermilionPokecenter.asm rename to text/VermilionPokecenter.asm diff --git a/text/maps/VictoryRoad1F.asm b/text/VictoryRoad1F.asm similarity index 100% rename from text/maps/VictoryRoad1F.asm rename to text/VictoryRoad1F.asm diff --git a/text/VictoryRoad2F.asm b/text/VictoryRoad2F.asm new file mode 100644 index 000000000..ff72afaaf --- /dev/null +++ b/text/VictoryRoad2F.asm @@ -0,0 +1,86 @@ +_MoltresBattleText:: + text "Gyaoo!@" + text_end + +_VictoryRoad2BattleText1:: + text "VICTORY ROAD is" + line "the final test" + cont "for trainers!" + done + +_VictoryRoad2EndBattleText1:: + text "Aiyah!" + prompt + +_VictoryRoad2AfterBattleText1:: + text "If you get stuck," + line "try moving some" + cont "boulders around!" + done + +_VictoryRoad2BattleText2:: + text "Ah, so you wish" + line "to challenge the" + cont "ELITE FOUR?" + done + +_VictoryRoad2EndBattleText2:: + text "You" + line "got me!" + prompt + +_VictoryRoad2AfterBattleText2:: + text " also came" + line "through here!" + done + +_VictoryRoad2BattleText3:: + text "Come on!" + line "I'll whip you!" + done + +_VictoryRoad2EndBattleText3:: + text "I got" + line "whipped!" + prompt + +_VictoryRoad2AfterBattleText3:: + text "You earned the" + line "right to be on" + cont "VICTORY ROAD!" + done + +_VictoryRoad2BattleText4:: + text "If you can get" + line "through here, you" + cont "can go meet the" + cont "ELITE FOUR!" + done + +_VictoryRoad2EndBattleText4:: + text "No!" + line "Unbelievable!" + prompt + +_VictoryRoad2AfterBattleText4:: + text "I can beat you" + line "when it comes to" + cont "knowledge about" + cont "#MON!" + done + +_VictoryRoad2BattleText5:: + text "Is VICTORY ROAD" + line "too tough?" + done + +_VictoryRoad2EndBattleText5:: + text "Well" + line "done!" + prompt + +_VictoryRoad2AfterBattleText5:: + text "Many trainers give" + line "up the challenge" + cont "here." + done diff --git a/text/maps/VictoryRoad3F.asm b/text/VictoryRoad3F.asm similarity index 100% rename from text/maps/VictoryRoad3F.asm rename to text/VictoryRoad3F.asm diff --git a/text/ViridianCity.asm b/text/ViridianCity.asm new file mode 100644 index 000000000..2ffee5966 --- /dev/null +++ b/text/ViridianCity.asm @@ -0,0 +1,195 @@ +_ViridianCityText_19219:: + text "First, you need" + line "to weaken the" + cont "target #MON." + done + +_ViridianCityText_1920a:: + text "Ahh, I've had my" + line "coffee now and I" + cont "feel great!" + + para "Sure, you can go" + line "through!" + + para "I'm sorry I was" + line "so rude to you!" + + para "I see you're using" + line "a #DEX." + + para "I'll show you how" + line "to catch #MON" + cont "as my apology." + done + +_OldManTextAfterBattle:: + text "That didn't work!" + line "I must be losing" + cont "my touch." + + para "I've run out of" + line "# BALLs too." + + para "I have to get some" + line "at #MON MART." + done + +_ViridianCityText1:: + text "Those # BALLs" + line "at your waist!" + cont "You have #MON!" + + para "It's great that" + line "you can carry and" + cont "use #MON any-" + cont "time, anywhere!" + done + +_ViridianCityText_19122:: + text "This #MON GYM" + line "is always closed." + + para "I wonder who the" + line "LEADER is?" + done + +_ViridianCityText_19127:: + text "VIRIDIAN GYM's" + line "LEADER returned!" + done + +_ViridianCityText_1914d:: + text "You want to know" + line "about the 2 kinds" + cont "of caterpillar" + cont "#MON?" + done + +_ViridianCityText_19152:: + text "Oh, OK then!" + done + +_ViridianCityText_19157:: + text "CATERPIE has no" + line "poison, but" + cont "WEEDLE does." + + para "Watch out for its" + line "POISON STING!" + done + +_ViridianCityText_19175:: + text "Oh Grandpa! Don't" + line "be so mean!" + cont "He hasn't had his" + cont "coffee yet." + done + +_ViridianCityText_1917a:: + text "When I go shop in" + line "PEWTER CITY, I" + cont "have to take the" + cont "winding trail in" + cont "VIRIDIAN FOREST." + done + +_ViridianCityText_19191:: + text "You can't go" + line "through here!" + + para "This is private" + line "property!" + done + +_ViridianCityText_191ca:: + text "Yawn!" + line "I must have dozed" + cont "off in the sun." + + para "I had this dream" + line "about a DROWZEE" + cont "eating my dream." + cont "What's this?" + cont "Where did this TM" + cont "come from?" + + para "This is spooky!" + line "Here, you can" + cont "have this TM." + prompt + +_ReceivedTM42Text:: + text " received" + line "TM42!@" + text_end + +_TM42Explanation:: + text "TM42 contains" + line "DREAM EATER..." + cont "...Snore..." + done + +_TM42NoRoomText:: + text "You have too much" + line "stuff already." + done + +_OldManAgainText1:: + text "Hmm? You want me" + line "to show you how" + cont "to catch #MON" + cont "again?" + done + +_OldManAgainText2:: + text "Dandy! Watch what" + line "I do closely now!" + done + +_OldManAgainText3:: + text "Oh... I'm not good" + line "enough for you." + done + +_ViridianCityText8:: + text "VIRIDIAN CITY " + line "The Eternally" + cont "Green Paradise" + done + +_ViridianCityText9:: + text "TRAINER TIPS" + + para "Catch #MON" + line "and expand your" + cont "collection!" + + para "The more you have," + line "the easier it is" + cont "to fight!" + done + +_ViridianCityText10:: + text "TRAINER TIPS" + + para "The battle moves" + line "of #MON are" + cont "limited by their" + cont "POWER POINTs, PP." + + para "To replenish PP," + line "rest your tired" + cont "#MON at a" + cont "#MON CENTER!" + done + +_ViridianCityText13:: + text "VIRIDIAN CITY" + line "#MON GYM" + done + +_ViridianCityText14:: + text "The GYM's doors" + line "are locked..." + done diff --git a/text/maps/ViridianForest.asm b/text/ViridianForest.asm similarity index 100% rename from text/maps/ViridianForest.asm rename to text/ViridianForest.asm diff --git a/text/maps/ViridianForestNorthGate.asm b/text/ViridianForestNorthGate.asm similarity index 100% rename from text/maps/ViridianForestNorthGate.asm rename to text/ViridianForestNorthGate.asm diff --git a/text/maps/ViridianForestSouthGate.asm b/text/ViridianForestSouthGate.asm similarity index 100% rename from text/maps/ViridianForestSouthGate.asm rename to text/ViridianForestSouthGate.asm diff --git a/text/ViridianGym.asm b/text/ViridianGym.asm new file mode 100644 index 000000000..66c889df7 --- /dev/null +++ b/text/ViridianGym.asm @@ -0,0 +1,240 @@ +_ViridianGymText_74ace:: + text "Fwahahaha! This is" + line "my hideout!" + + para "I planned to" + line "resurrect TEAM" + cont "ROCKET here!" + + para "But, you have" + line "caught me again!" + cont "So be it! This" + cont "time, I'm not" + cont "holding back!" + + para "Once more, you" + line "shall face" + cont "GIOVANNI, the" + cont "greatest trainer!" + done + +_ViridianGymText_74ad3:: + text "Ha!" + line "That was a truly" + cont "intense fight!" + cont "You have won!" + cont "As proof, here is" + cont "the EARTHBADGE!@" + text_end + +_ViridianGymText_74ad9:: + text "Having lost, I" + line "cannot face my" + cont "underlings!" + cont "TEAM ROCKET is" + cont "finished forever!" + + para "I will dedicate my" + line "life to the study" + cont "of #MON!" + + para "Let us meet again" + line "someday!" + cont "Farewell!@" + text_end + +_ViridianGymText12:: + text "The EARTHBADGE" + line "makes #MON of" + cont "any level obey!" + + para "It is evidence of" + line "your mastery as a" + cont "#MON trainer!" + + para "With it, you can" + line "enter the #MON" + cont "LEAGUE!" + + para "It is my gift for" + line "your #MON" + cont "LEAGUE challenge!" + done + +_ReceivedTM27Text:: + text " received" + line "TM27!@" + text_end + +_TM27ExplanationText:: + text_start + + para "TM27 is FISSURE!" + line "It will take out" + cont "#MON with just" + cont "one hit!" + + para "I made it when I" + line "ran the GYM here," + cont "too long ago..." + done + +_TM27NoRoomText:: + text "You do not have" + line "space for this!" + done + +_ViridianGymBattleText1:: + text "Heh! You must be" + line "running out of" + cont "steam by now!" + done + +_ViridianGymEndBattleText1:: + text "I" + line "ran out of gas!" + prompt + +_ViridianGymAfterBattleText1:: + text "You need power to" + line "keep up with our" + cont "GYM LEADER!" + done + +_ViridianGymBattleText2:: + text "Rrrroar! I'm" + line "working myself" + cont "into a rage!" + done + +_ViridianGymEndBattleText2:: + text "Wargh!" + prompt + +_ViridianGymAfterBattleText2:: + text "I'm still not" + line "worthy!" + done + +_ViridianGymBattleText3:: + text "#MON and I, we" + line "make wonderful" + cont "music together!" + done + +_ViridianGymEndBattleText3:: + text "You are in" + line "perfect harmony!" + prompt + +_ViridianGymAfterBattleText3:: + text "Do you know the" + line "identity of our" + cont "GYM LEADER?" + done + +_ViridianGymBattleText4:: + text "Karate is the" + line "ultimate form of" + cont "martial arts!" + done + +_ViridianGymEndBattleText4:: + text "Atcho!" + prompt + +_ViridianGymAfterBattleText4:: + text "If my #MON" + line "were as good at" + cont "Karate as I..." + done + +_ViridianGymBattleText5:: + text "The truly talented" + line "win with style!" + done + +_ViridianGymEndBattleText5:: + text "I" + line "lost my grip!" + prompt + +_ViridianGymAfterBattleText5:: + text "The LEADER will" + line "scold me!" + done + +_ViridianGymBattleText6:: + text "I'm the KARATE" + line "KING! Your fate" + cont "rests with me!" + done + +_ViridianGymEndBattleText6:: + text "Ayah!" + prompt + +_ViridianGymAfterBattleText6:: + text "#MON LEAGUE?" + line "You? Don't get" + cont "cocky!" + done + +_ViridianGymBattleText7:: + text "Your #MON will" + line "cower at the" + cont "crack of my whip!" + done + +_ViridianGymEndBattleText7:: + text "Yowch!" + line "Whiplash!" + prompt + +_ViridianGymAfterBattleText7:: + text "Wait! I was just" + line "careless!" + done + +_ViridianGymBattleText8:: + text "VIRIDIAN GYM was" + line "closed for a long" + cont "time, but now our" + cont "LEADER is back!" + done + +_ViridianGymEndBattleText8:: + text "I" + line "was beaten?" + prompt + +_ViridianGymAfterBattleText8:: + text "You can go on to" + line "#MON LEAGUE" + cont "only by defeating" + cont "our GYM LEADER!" + done + +_ViridianGymText_74bd4:: + text "Yo! Champ in" + line "making!" + + para "Even I don't know" + line "VIRIDIAN LEADER's" + cont "identity!" + + para "This will be the" + line "toughest of all" + cont "the GYM LEADERs!" + + para "I heard that the" + line "trainers here" + cont "like ground-type" + cont "#MON!" + done + +_ViridianGymText_74bd9:: + text "Blow me away!" + line "GIOVANNI was the" + cont "GYM LEADER here?" + done diff --git a/text/ViridianMart.asm b/text/ViridianMart.asm new file mode 100644 index 000000000..0152ea4cc --- /dev/null +++ b/text/ViridianMart.asm @@ -0,0 +1,33 @@ +_ViridianMartText1:: + text "Okay! Say hi to" + line "PROF.OAK for me!" + done + +_ViridianMartText4:: + text "Hey! You came from" + line "PALLET TOWN?" + done + +ViridianMartParcelQuestText:: + text "You know PROF." + line "OAK, right?" + + para "His order came in." + line "Will you take it" + cont "to him?" + + para " got" + line "OAK's PARCEL!@" + text_end + +_ViridianMartText2:: + text "This shop sells a" + line "lot of PARLYZ" + cont "HEALs." + done + +_ViridianMartText3:: + text "The shop finally" + line "has some POTIONs" + cont "in stock." + done diff --git a/text/maps/ViridianNicknameHouse.asm b/text/ViridianNicknameHouse.asm similarity index 100% rename from text/maps/ViridianNicknameHouse.asm rename to text/ViridianNicknameHouse.asm diff --git a/text/maps/ViridianPokecenter.asm b/text/ViridianPokecenter.asm similarity index 100% rename from text/maps/ViridianPokecenter.asm rename to text/ViridianPokecenter.asm diff --git a/text/maps/ViridianSchoolHouse.asm b/text/ViridianSchoolHouse.asm similarity index 100% rename from text/maps/ViridianSchoolHouse.asm rename to text/ViridianSchoolHouse.asm diff --git a/text/WardensHouse.asm b/text/WardensHouse.asm new file mode 100644 index 000000000..47612904a --- /dev/null +++ b/text/WardensHouse.asm @@ -0,0 +1,86 @@ +_WardenGibberishText1:: + text "WARDEN: Hif fuff" + line "hefifoo!" + + para "Ha lof ha feef ee" + line "hafahi ho. Heff" + cont "hee fwee!" + done + +_WardenGibberishText2:: + text "Ah howhee ho hoo!" + line "Eef ee hafahi ho!" + done + +_WardenGibberishText3:: + text "Ha? He ohay heh" + line "ha hoo ee haheh!" + done + +_WardenTeethText1:: + text " gave the" + line "GOLD TEETH to the" + cont "WARDEN!@" + text_end + +_WardenTeethText2:: + text_start + + para "The WARDEN popped" + line "in his teeth!" + prompt + +_WardenThankYouText:: + text "WARDEN: Thanks," + line "kid! No one could" + cont "understand a word" + cont "that I said." + + para "I couldn't work" + line "that way." + cont "Let me give you" + cont "something for" + cont "your trouble." + prompt + +_ReceivedHM04Text:: + text " received" + line "@" + text_ram wcf4b + text "!@" + text_end + +_HM04ExplanationText:: + text "WARDEN: HM04" + line "teaches STRENGTH!" + + para "It lets #MON" + line "move boulders" + cont "when you're out-" + cont "side of battle." + + para "Oh yes, did you" + line "find SECRET HOUSE" + cont "in SAFARI ZONE?" + + para "If you do, you" + line "win an HM!" + + para "I hear it's the" + line "rare SURF HM." + done + +_HM04NoRoomText:: + text "Your pack is" + line "stuffed full!" + done + +_FuchsiaHouse2Text_75176:: + text "#MON photos" + line "and fossils." + done + +_FuchsiaHouse2Text_7517b:: + text "Old #MON" + line "merchandise." + done diff --git a/text/item_names.asm b/text/item_names.asm deleted file mode 100755 index e436d74d4..000000000 --- a/text/item_names.asm +++ /dev/null @@ -1,98 +0,0 @@ -ItemNames: - db "MASTER BALL@" - db "ULTRA BALL@" - db "GREAT BALL@" - db "POKé BALL@" - db "TOWN MAP@" - db "BICYCLE@" - db "?????@" - db "SAFARI BALL@" - db "POKéDEX@" - db "MOON STONE@" - db "ANTIDOTE@" - db "BURN HEAL@" - db "ICE HEAL@" - db "AWAKENING@" - db "PARLYZ HEAL@" - db "FULL RESTORE@" - db "MAX POTION@" - db "HYPER POTION@" - db "SUPER POTION@" - db "POTION@" - db "BOULDERBADGE@" - db "CASCADEBADGE@" - db "THUNDERBADGE@" - db "RAINBOWBADGE@" - db "SOULBADGE@" - db "MARSHBADGE@" - db "VOLCANOBADGE@" - db "EARTHBADGE@" - db "ESCAPE ROPE@" - db "REPEL@" - db "OLD AMBER@" - db "FIRE STONE@" - db "THUNDERSTONE@" - db "WATER STONE@" - db "HP UP@" - db "PROTEIN@" - db "IRON@" - db "CARBOS@" - db "CALCIUM@" - db "RARE CANDY@" - db "DOME FOSSIL@" - db "HELIX FOSSIL@" - db "SECRET KEY@" - db "?????@" - db "BIKE VOUCHER@" - db "X ACCURACY@" - db "LEAF STONE@" - db "CARD KEY@" - db "NUGGET@" - db "PP UP@" - db "POKé DOLL@" - db "FULL HEAL@" - db "REVIVE@" - db "MAX REVIVE@" - db "GUARD SPEC.@" - db "SUPER REPEL@" - db "MAX REPEL@" - db "DIRE HIT@" - db "COIN@" - db "FRESH WATER@" - db "SODA POP@" - db "LEMONADE@" - db "S.S.TICKET@" - db "GOLD TEETH@" - db "X ATTACK@" - db "X DEFEND@" - db "X SPEED@" - db "X SPECIAL@" - db "COIN CASE@" - db "OAK's PARCEL@" - db "ITEMFINDER@" - db "SILPH SCOPE@" - db "POKé FLUTE@" - db "LIFT KEY@" - db "EXP.ALL@" - db "OLD ROD@" - db "GOOD ROD@" - db "SUPER ROD@" - db "PP UP@" - db "ETHER@" - db "MAX ETHER@" - db "ELIXER@" - db "MAX ELIXER@" - db "B2F@" - db "B1F@" - db "1F@" - db "2F@" - db "3F@" - db "4F@" - db "5F@" - db "6F@" - db "7F@" - db "8F@" - db "9F@" - db "10F@" - db "11F@" - db "B4F@" diff --git a/text/map_names.asm b/text/map_names.asm deleted file mode 100755 index c26429420..000000000 --- a/text/map_names.asm +++ /dev/null @@ -1,107 +0,0 @@ -MapNames: -PalletTownName: - db "PALLET TOWN@" -ViridianCityName: - db "VIRIDIAN CITY@" -PewterCityName: - db "PEWTER CITY@" -CeruleanCityName: - db "CERULEAN CITY@" -LavenderTownName: - db "LAVENDER TOWN@" -VermilionCityName: - db "VERMILION CITY@" -CeladonCityName: - db "CELADON CITY@" -FuchsiaCityName: - db "FUCHSIA CITY@" -CinnabarIslandName: - db "CINNABAR ISLAND@" -IndigoPlateauName: - db "INDIGO PLATEAU@" -SaffronCityName: - db "SAFFRON CITY@" -Route1Name: - db "ROUTE 1@" -Route2Name: - db "ROUTE 2@" -Route3Name: - db "ROUTE 3@" -Route4Name: - db "ROUTE 4@" -Route5Name: - db "ROUTE 5@" -Route6Name: - db "ROUTE 6@" -Route7Name: - db "ROUTE 7@" -Route8Name: - db "ROUTE 8@" -Route9Name: - db "ROUTE 9@" -Route10Name: - db "ROUTE 10@" -Route11Name: - db "ROUTE 11@" -Route12Name: - db "ROUTE 12@" -Route13Name: - db "ROUTE 13@" -Route14Name: - db "ROUTE 14@" -Route15Name: - db "ROUTE 15@" -Route16Name: - db "ROUTE 16@" -Route17Name: - db "ROUTE 17@" -Route18Name: - db "ROUTE 18@" -Route19Name: - db "SEA ROUTE 19@" -Route20Name: - db "SEA ROUTE 20@" -Route21Name: - db "SEA ROUTE 21@" -Route22Name: - db "ROUTE 22@" -Route23Name: - db "ROUTE 23@" -Route24Name: - db "ROUTE 24@" -Route25Name: - db "ROUTE 25@" -ViridianForestName: - db "VIRIDIAN FOREST@" -MountMoonName: - db "MT.MOON@" -RockTunnelName: - db "ROCK TUNNEL@" -SeaCottageName: - db "SEA COTTAGE@" -SSAnneName: - db "S.S.ANNE@" -PokemonLeagueName: - db "#MON LEAGUE@" -UndergroundPathName: - db "UNDERGROUND PATH@" -PokemonTowerName: - db "#MON TOWER@" -SeafoamIslandsName: - db "SEAFOAM ISLANDS@" -VictoryRoadName: - db "VICTORY ROAD@" -DiglettsCaveName: - db "DIGLETT's CAVE@" -RocketHQName: - db "ROCKET HQ@" -SilphCoName: - db "SILPH CO.@" -PokemonMansionName: - db " MANSION@" -SafariZoneName: - db "SAFARI ZONE@" -CeruleanCaveName: - db "CERULEAN CAVE@" -PowerPlantName: - db "POWER PLANT@" diff --git a/text/maps/BeachHouse.asm b/text/maps/BeachHouse.asm deleted file mode 100644 index bc50b837f..000000000 --- a/text/maps/BeachHouse.asm +++ /dev/null @@ -1,103 +0,0 @@ -_SurfinDudeText1:: - text "Whoa!" - - para "Your PIKACHU knows" - line "how to SURF! So," - cont "I'm not alone..." - - para "Great! You earned" - line "the right to SURF" - cont "with the DUDE!" - - para "Give it a go?" - done - -_SurfinDudeText2:: - text "Come SURF anytime," - line "my friend!" - done - -_SurfinDudeText3:: - text "Wanna go SURF?" - done - -_SurfinDudeText4:: - text "Dogs and burgers" - line "on special today!" - done - -_BeachHousePikachuText:: - text "PIKACHU: Pikaa" - done - -_BeachHouseSign1Text1:: - text "SURFIN' DUDE's" - line "scribbles..." - - para "When I shoot the" - line "tube, the tunes" - cont "hit the groove!" - done - -_BeachHouseSign1Text2:: - text "30 years of waves!" - line "SURFIN' DUDE" - done - -_BeachHouseSign2Text1:: - text "SURFING TIP 1!" - - para "After flips, line" - line "the board up with" - cont "a wave for a cool" - cont "effect!" - done - -_BeachHouseSign2Text2:: - text "SUMMER BEACH HOUSE" - line "#MON welcome!" - done - -_BeachHouseSign3Text1:: - text "SURFING TIP 2!" - - para "Pulling flips in" - line "a jump is totally" - cont "rad!" - done - -_BeachHouseSign3Text2:: - text "The sea unites" - line "all in surfdom!" - done - -_BeachHousePrinterText1:: - text "It's some sort of" - line "a machine...@@" - -_BeachHousePrinterText2:: - text "SUMMER BEACH HOUSE" - line "PRINTER, it says.@@" - -_BeachHousePrinterText3:: - text "The Hi-Score is" - line "shown." - - para "PRINT it out?" - done - -_BeachHousePrinterText4:: - text "SUMMER BEACH HOUSE" - line "PRINTER, it says." - - para "The Hi-Score is" - line "shown." - - para "PRINT it out?" - done - -_BeachHousePrinterText5:: - text "PRINT completed.@@" - -_BeachHousePrinterText6:: - text "PRINT error!@@" diff --git a/text/maps/BikeShop.asm b/text/maps/BikeShop.asm deleted file mode 100644 index 1717c552a..000000000 --- a/text/maps/BikeShop.asm +++ /dev/null @@ -1,70 +0,0 @@ -_BikeShopText_1d810:: - text "Hi! Welcome to" - line "our BIKE SHOP." - - para "Have we got just" - line "the BIKE for you!" - prompt - -_BikeShopText_1d815:: - text "It's a cool BIKE!" - line "Do you want it?" - done - -_BikeShopCantAffordText:: - text "Sorry! You can't" - line "afford it!" - prompt - -_BikeShopText_1d81f:: - text "Oh, that's..." - - para "A BIKE VOUCHER!" - - para "OK! Here you go!" - prompt - -_BikeShopText_1d824:: - text " exchanged" - line "the BIKE VOUCHER" - cont "for a BICYCLE.@@" - -_BikeShopComeAgainText:: - text "Come back again" - line "sometime!" - done - -_BikeShopText_1d82f:: - text "How do you like" - line "your new BICYCLE?" - - para "You can take it" - line "on CYCLING ROAD" - cont "and in caves!" - done - -_BikeShopText_1d834:: - text "You better make" - line "room for this!" - done - -_BikeShopText_1d843:: - text "A plain city BIKE" - line "is good enough" - cont "for me!" - - para "You can't put a" - line "shopping basket" - cont "on an MTB!" - done - -_BikeShopText_1d85c:: - text "These BIKEs are" - line "cool, but they're" - cont "way expensive!" - done - -_BikeShopText_1d861:: - text "Wow. Your BIKE is" - line "really cool!" - done diff --git a/text/maps/BillsHouse.asm b/text/maps/BillsHouse.asm deleted file mode 100644 index 858dfe80c..000000000 --- a/text/maps/BillsHouse.asm +++ /dev/null @@ -1,92 +0,0 @@ -_BillsHouseDontLeaveText:: - text "Whoa, don't go" - line "anywhere, wait!" - done - -_BillsHouseText_1e865:: - text "Hiya! I'm a" - line "#MON..." - cont "...No I'm not!" - - para "Call me BILL!" - line "I'm a true blue" - cont "#MANIAC! Hey!" - cont "What's with that" - cont "skeptical look?" - - para "I'm not joshing" - line "you, I screwed up" - cont "an experiment and" - cont "got combined with" - cont "a #MON!" - - para "So, how about it?" - line "Help me out here!" - done - -_BillsHouseText_1e86a:: - text "When I'm in the" - line "TELEPORTER, go to" - cont "my PC and run the" - cont "Cell Separation" - cont "System!" - done - -_BillsHouseText_1e86f:: - text "No!? Come on, you" - line "gotta help a guy" - cont "in deep trouble!" - - para "What do you say," - line "chief? Please?" - cont "OK? All right!" - prompt - -_BillThankYouText:: - text "BILL: Yeehah!" - line "Thanks, bud! I" - cont "owe you one!" - - para "So, did you come" - line "to see my #MON" - cont "collection?" - cont "You didn't?" - cont "That's a bummer." - - para "I've got to thank" - line "you... Oh here," - cont "maybe this'll do." - prompt - -_SSTicketReceivedText:: - text " received" - line "an @" - TX_RAM wcf4b - text "!@@" - -_SSTicketNoRoomText:: - text "You've got too" - line "much stuff, bud!" - done - -_BillsHouseText_1e8cb:: - text "That cruise ship," - line "S.S.ANNE, is in" - cont "VERMILION CITY." - cont "Its passengers" - cont "are all trainers!" - - para "They invited me" - line "to their party," - cont "but I can't stand" - cont "fancy do's. Why" - cont "don't you go" - cont "instead of me?" - done - -_BillsHouseText_1e8da:: - text "BILL: Look, bud," - line "just check out" - cont "some of my rare" - cont "#MON on my PC!" - done diff --git a/text/maps/BluesHouse.asm b/text/maps/BluesHouse.asm deleted file mode 100644 index 8f1d8ecfe..000000000 --- a/text/maps/BluesHouse.asm +++ /dev/null @@ -1,41 +0,0 @@ -_DaisyInitialText:: - text "Hi !" - line " is out at" - cont "Grandpa's lab." - done - -_DaisyOfferMapText:: - text "Grandpa asked you" - line "to run an errand?" - cont "Here, this will" - cont "help you!" - prompt - -_GotMapText:: - text " got a" - line "@" - TX_RAM wcf4b - text "!@@" - -_DaisyBagFullText:: - text "You have too much" - line "stuff with you." - done - -_DaisyUseMapText:: - text "Use the TOWN MAP" - line "to find out where" - cont "you are." - done - -_BluesHouseText2:: - text "Spending time" - line "with your #MON" - cont "makes them more" - cont "friendly to you." - done - -_BluesHouseText3:: - text "It's a big map!" - line "This is useful!" - done diff --git a/text/maps/CeladonCity.asm b/text/maps/CeladonCity.asm deleted file mode 100644 index 1bf76470d..000000000 --- a/text/maps/CeladonCity.asm +++ /dev/null @@ -1,152 +0,0 @@ -_CeladonCityText1:: - text "I got my KOFFING" - line "from my friend!" - - para "We get along now," - line "because I was" - cont "very nice to it!" - done - -_CeladonCityText2:: - text "Heheh! This GYM" - line "is great! It's" - cont "full of women!" - done - -_CeladonCityText3:: - text "The GAME CORNER" - line "is bad for our" - cont "city's image!" - done - -_CeladonCityText4:: - text "Moan! I blew it" - line "all at the slots!" - - para "I knew I should" - line "have cashed in my" - cont "coins for prizes!" - done - -_TM41PreText:: - text "Hello, there!" - - para "I've seen you," - line "but I never had a" - cont "chance to talk!" - - para "Here's a gift for" - line "dropping by!" - prompt - -_ReceivedTM41Text:: - text " received" - line "@" - TX_RAM wcf4b - text "!@@" - -_TM41ExplanationText:: - text "TM41 teaches" - line "SOFTBOILED!" - - para "Only one #MON" - line "can use it!" - - para "That #MON is" - line "CHANSEY!" - done - -_TM41NoRoomText:: - text "Oh, your pack is" - line "full of items!" - done - -_CeladonCityText6:: - text "This is my trusted" - line "pal, POLIWRATH!" - - para "It evolved from" - line "POLIWHIRL when I" - cont "used WATER STONE!" - done - -_CeladonCityText7:: - text "POLIWRATH: Ribi" - line "ribit!@@" - -_CeladonCityText8:: - text "What are you" - line "staring at?" - done - -_CeladonCityText9:: - text "Keep out of TEAM" - line "ROCKET's way!" - done - -_CeladonCityText11:: - text "CELADON CITY" - line "The City of" - cont "Rainbow Dreams" - done - -_CeladonCityText13:: - text "CELADON CITY" - line "#MON GYM" - cont "LEADER: ERIKA" - - para "The Nature-Loving" - line "Princess!" - done - -_CeladonCityText14:: - text "CELADON MANSION" - done - -_CeladonCityText15:: - text "Find what you" - line "need at CELADON" - cont "DEPT. STORE!" - done - -_CeladonCityText16:: - text "TRAINER TIPS" - - para "GUARD SPEC." - line "protects #MON" - cont "against SPECIAL" - cont "attacks such as" - cont "fire and water!" - - para "Get your items at" - line "CELADON DEPT." - cont "STORE!" - done - -_CeladonCityText17:: - text "Coins exchanged" - line "for prizes!" - cont "PRIZE EXCHANGE" - done - -_CeladonCityText18:: - text "ROCKET GAME CORNER" - line "The playground" - cont "for grownups!" - done - -_CeladonCityText10:: - text "TRAINER TIPS" - - para "X ACCURACY boosts" - line "the accuracy of" - cont "techniques!" - - para "DIRE HIT jacks up" - line "the likelihood of" - cont "critical hits!" - - para "Get your items at" - line "CELADON DEPT." - cont "STORE!" - done diff --git a/text/maps/CeladonDiner.asm b/text/maps/CeladonDiner.asm deleted file mode 100644 index dc5e93505..000000000 --- a/text/maps/CeladonDiner.asm +++ /dev/null @@ -1,59 +0,0 @@ -_CeladonDinerText1:: - text "Hi!" - - para "We're taking a" - line "break now." - done - -_CeladonDinerText2:: - text "My #MON are" - line "weak, so I often" - cont "have to go to the" - cont "DRUG STORE." - done - -_CeladonDinerText3:: - text "Psst! There's a" - line "basement under" - cont "the GAME CORNER." - done - -_CeladonDinerText4:: - text "Munch..." - - para "The man at that" - line "table lost it all" - cont "at the slots." - done - -_CeladonDinerText_491a7:: - text "Go ahead! Laugh!" - - para "I'm flat out" - line "busted!" - - para "No more slots for" - line "me! I'm going" - cont "straight!" - - para "Here! I won't be" - line "needing this any-" - cont "more!" - prompt - -_ReceivedCoinCaseText:: - text " received" - line "a @" - TX_RAM wcf4b - text "!@@" - -_CoinCaseNoRoomText:: - text "Make room for" - line "this!" - done - -_CeladonDinerText_491b7:: - text "I always thought" - line "I was going to" - cont "win it back..." - done diff --git a/text/maps/CeladonGym.asm b/text/maps/CeladonGym.asm deleted file mode 100644 index d65860352..000000000 --- a/text/maps/CeladonGym.asm +++ /dev/null @@ -1,219 +0,0 @@ -_CeladonGymText_48a5e:: - text "Hello. Lovely" - line "weather isn't it?" - cont "It's so pleasant." - - para "...Oh dear..." - line "I must have dozed" - cont "off. Welcome." - - para "My name is ERIKA." - line "I am the LEADER" - cont "of CELADON GYM." - - para "I teach the art of" - line "flower arranging." - cont "My #MON are of" - cont "the grass-type." - - para "Oh, I'm sorry, I" - line "had no idea that" - cont "you wished to" - cont "challenge me." - - para "Very well, but I" - line "shall not lose." - done - -_CeladonGymText_48a63:: - text "Oh!" - line "I concede defeat." - - para "You are remarkably" - line "strong." - - para "I must confer you" - line "the RAINBOWBADGE." - prompt - -_CeladonGymText_48a68:: - text "You are cataloging" - line "#MON? I must" - cont "say I'm impressed." - - para "I would never" - line "collect #MON" - cont "if they were" - cont "unattractive." - done - -_CeladonGymText9:: - text "The RAINBOWBADGE" - line "will make #MON" - cont "up to L50 obey." - - para "It also allows" - line "#MON to use" - cont "STRENGTH in and" - cont "out of battle." - - para "Please also take" - line "this with you." - done - -_ReceivedTM21Text:: - text " received" - line "@" - TX_RAM wcf4b - text "!@@" - -_TM21ExplanationText:: - text "" - - para "TM21 contains" - line "MEGA DRAIN." - - para "Half the damage" - line "it inflicts is" - cont "drained to heal" - cont "your #MON!" - done - -_TM21NoRoomText:: - text "You should make" - line "room for this." - done - -_CeladonGymBattleText2:: - text "Hey!" - - para "You are not" - line "allowed in here!" - done - -_CeladonGymEndBattleText2:: - text "You're" - line "too rough!" - prompt - -_CeladonGymAfterBattleText2:: - text "Bleaah!" - line "I hope ERIKA" - cont "wipes you out!" - done - -_CeladonGymBattleText3:: - text "I was getting" - line "bored." - done - -_CeladonGymEndBattleText3:: - text "My" - line "makeup!" - prompt - -_CeladonGymAfterBattleText3:: - text "Grass-type #MON" - line "are tough against" - cont "the water-type!" - - para "They also have an" - line "edge on rock and" - cont "ground #MON!" - done - -_CeladonGymBattleText4:: - text "Aren't you the" - line "peeping Tom?" - done - -_CeladonGymEndBattleText4:: - text "I'm" - line "in shock!" - prompt - -_CeladonGymAfterBattleText4:: - text "Oh, you weren't" - line "peeping? We get a" - cont "lot of gawkers!" - done - -_CeladonGymBattleText5:: - text "Look at my grass" - line "#MON!" - - para "They're so easy" - line "to raise!" - done - -_CeladonGymEndBattleText5:: - text "No!" - prompt - -_CeladonGymAfterBattleText5:: - text "We only use grass-" - line "type #MON at" - cont "our GYM!" - - para "We also use them" - line "for making flower" - cont "arrangements!" - done - -_CeladonGymBattleText6:: - text "Don't bring any" - line "bugs or fire" - cont "#MON in here!" - done - -_CeladonGymEndBattleText6:: - text "Oh!" - line "You!" - prompt - -_CeladonGymAfterBattleText6:: - text "Our LEADER, ERIKA," - line "might be quiet," - cont "but she's also" - cont "very skilled!" - done - -_CeladonGymBattleText7:: - text "Pleased to meet" - line "you. My hobby is" - cont "#MON training." - done - -_CeladonGymEndBattleText7:: - text "Oh!" - line "Splendid!" - prompt - -_CeladonGymAfterBattleText7:: - text "I have a blind" - line "date coming up." - cont "I have to learn" - cont "to be polite." - done - -_CeladonGymBattleText8:: - text "Welcome to" - line "CELADON GYM!" - - para "You better not" - line "underestimate" - cont "girl power!" - done - -_CeladonGymEndBattleText8:: - text "Oh!" - line "Beaten!" - prompt - -_CeladonGymAfterBattleText8:: - text "I didn't bring my" - line "best #MON!" - - para "Wait 'til next" - line "time!" - done diff --git a/text/maps/CeladonMansion1F.asm b/text/maps/CeladonMansion1F.asm deleted file mode 100644 index 231238928..000000000 --- a/text/maps/CeladonMansion1F.asm +++ /dev/null @@ -1,64 +0,0 @@ -_CeladonMansion1Text1:: - text "MEOWTH: Meow!@@" - -_CeladonMansion1Text3:: - text "CLEFAIRY: Pi" - line "pippippi!@@" - -_CeladonMansion1Text4:: - text "NIDORAN: Kya" - line "kyaoo!@@" - -_CeladonMansion1Text5:: - text "CELADON MANSION" - line "Manager's Suite" - done - -_CeladonMansion1Text2:: - text "My dear #MON" - line "keep me company." - - para "MEOWTH even brings" - line "money home!" - done - -_CeladonMansion1Text6:: - text "Oh, you have an" - line "adorable PIKACHU" - cont "with you.@@" - -_CeladonMansion1Text7:: - text "It seems like it" - line "hasn't been tamed" - cont "at all." - done - -_CeladonMansion1Text8:: - text "Why don't you" - line "take more care" - cont "with PIKACHU?" - done - -_CeladonMansion1Text9:: - text "You must be happy" - line "to have a #MON" - cont "that cute." - done - -_CeladonMansion1Text10:: - text "Your PIKACHU seems" - line "tamed." - done - -_CeladonMansion1Text11:: - text "Your PIKACHU looks" - line "happy with you." - done - -_CeladonMansion1Text12:: - text "You look like a" - line "fantastic duo." - - para "You're making me" - line "jealous!" - done diff --git a/text/maps/CeladonMansion3F.asm b/text/maps/CeladonMansion3F.asm deleted file mode 100644 index baf86186d..000000000 --- a/text/maps/CeladonMansion3F.asm +++ /dev/null @@ -1,117 +0,0 @@ -_ProgrammerText:: - text "Me? I'm the" - line "programmer!" - done - -_ProgrammerText2:: - text "Me? I'm the" - line "programmer!" - - para "What a surprise!" - line "I never expected" - cont "anyone to fill a" - cont "#DEX." - done - -_GraphicArtistText:: - text "I'm the graphic" - line "artist!" - cont "I drew you!" - done - -_GraphicArtistText2:: - text "I'm the graphic" - line "artist!" - - para "Wow, you finished" - line "your #DEX!" - cont "Want me to PRINT" - cont "out a DIPLOMA" - cont "as proof?" - done - -_GraphicArtistText3:: - text "Just tell me if" - line "you want to PRINT" - cont "out a DIPLOMA." - done - -_GraphicArtistText4:: - text "All done!" - done - -_GraphicArtistText5:: - text "OK, let's not" - line "PRINT." - done - -_WriterText:: - text "I wrote the story!" - line "Isn't ERIKA cute?" - - para "I like MISTY a" - line "lot too!" - - para "Oh, and SABRINA," - line "I like her!" - done - -_WriterText2:: - text "I wrote the story!" - - para "It's great you" - line "caught all the" - cont "#MON! Thanks!" - done - -_GameDesignerText:: - text "Is that right?" - - para "I'm the game" - line "designer!" - - para "Filling up your" - line "#DEX is tough," - cont "but don't quit!" - - para "When you finish," - line "come tell me!" - done - -_CompletedDexText:: - text "Wow! Excellent!" - line "You completed" - cont "your #DEX!" - cont "Congratulations!" - cont "...@@" - -_CompletedDexText2:: - text "Go show off your" - line "DIPLOMA to" - cont "the development" - cont "crew." - done - -_CeladonMansion3Text5:: - text "It's the game" - line "program! Messing" - cont "with it could bug" - cont "out the game!" - done - -_CeladonMansion3Text6:: - text "Someone's playing" - line "a game instead of" - cont "working!" - done - -_CeladonMansion3Text7:: - text "It's the script!" - line "Better not look" - cont "at the ending!" - done - -_CeladonMansion3Text8:: - text "GAME FREAK" - line "Development Room" - done diff --git a/text/maps/CeladonMart3F.asm b/text/maps/CeladonMart3F.asm deleted file mode 100644 index 7de4a8263..000000000 --- a/text/maps/CeladonMart3F.asm +++ /dev/null @@ -1,98 +0,0 @@ -_CeladonMart3Text2:: - text "Captured #MON" - line "are registered" - cont "with an ID No." - cont "and OT, the name" - cont "of the Original" - cont "Trainer that" - cont "caught it!" - done - -_CeladonMart3Text3:: - text "All right!" - - para "My buddy's going" - line "to trade me his" - cont "KANGASKHAN for my" - cont "GRAVELER!" - done - -_CeladonMart3Text4:: - text "Come on GRAVELER!" - - para "I love GRAVELER!" - line "I collect them!" - - para "Huh?" - - para "GRAVELER turned" - line "into a different" - cont "#MON!" - done - -_CeladonMart3Text5:: - text "You can identify" - line "#MON you got" - cont "in trades by" - cont "their ID Numbers!" - done - -_CeladonMart3Text6:: - text "It's an SNES!" - done - -_CeladonMart3Text7:: - text "An RPG! There's" - line "no time for that!" - done - -_CeladonMart3Text9:: - text "A sports game!" - line "Dad'll like that!" - done - -_CeladonMart3Text11:: - text "A puzzle game!" - line "Looks addictive!" - done - -_CeladonMart3Text13:: - text "A fighting game!" - line "Looks tough!" - done - -_CeladonMart3Text14:: - text "3F: TV GAME SHOP" - done - -_CeladonMart3Text15:: - text "Red and Blue!" - line "Both are #MON!" - done - -_TM18PreReceiveText:: - text "Oh, hi! I finally" - line "finished #MON!" - - para "Not done yet?" - line "This might be" - cont "useful!" - prompt - -_ReceivedTM18Text:: - text " received" - line "@" - TX_RAM wcf4b - text "!@@" - -_TM18ExplanationText:: - text "TM18 is COUNTER!" - line "Not like the one" - cont "I'm leaning on," - cont "mind you!" - done - -_TM18NoRoomText:: - text "Your pack is full" - line "of items!" - done diff --git a/text/maps/CeladonMartRoof.asm b/text/maps/CeladonMartRoof.asm deleted file mode 100644 index cfeddaf69..000000000 --- a/text/maps/CeladonMartRoof.asm +++ /dev/null @@ -1,138 +0,0 @@ -_CeladonMartRoofText_484ee:: - text "Give her which" - line "drink?" - done - -_CeladonMartRoofText_484f3:: - text "Yay!" - - para "FRESH WATER!" - - para "Thank you!" - - para "You can have this" - line "from me!@@" - -_CeladonMartRoofText_484f9:: - text " received" - line "@" - TX_RAM wcf4b - text "!@@" - -_CeladonMartRoofText_484fe:: - text "" - - para "@" - TX_RAM wcf4b - text " contains" - line "ICE BEAM!" - - para "It can freeze the" - line "target sometimes!@@" - -_CeladonMartRoofText_48504:: - text "Yay!" - - para "SODA POP!" - - para "Thank you!" - - para "You can have this" - line "from me!@@" - -_CeladonMartRoofText_4850a:: - text " received" - line "@" - TX_RAM wcf4b - text "!@@" - -_CeladonMartRoofText_4850f:: - text "" - - para "@" - TX_RAM wcf4b - text " contains" - line "ROCK SLIDE!@@" - -_CeladonMartRoofText_48515:: - text "Yay!" - - para "LEMONADE!" - - para "Thank you!" - - para "You can have this" - line "from me!@@" - -_ReceivedTM49Text:: - text " received" - line "TM49!@@" - -_CeladonMartRoofText_48520:: - text "" - - para "TM49 contains" - line "TRI ATTACK!@@" - -_CeladonMartRoofText_48526:: - text "You don't have" - line "space for this!@@" - -_CeladonMartRoofText_4852c:: - text "No thank you!" - line "I'm not thirsty" - cont "after all!@@" - -_CeladonMartRoofText1:: - text "My sister is a" - line "trainer, believe" - cont "it or not." - - para "But, she's so" - line "immature, she" - cont "drives me nuts!" - done - -_CeladonMartRoofText_48598:: - text "I'm thirsty!" - line "I want something" - cont "to drink!" - done - -_CeladonMartRoofText4:: - text "I'm thirsty!" - line "I want something" - cont "to drink!" - - para "Give her a drink?" - done - -_CeladonMartRoofText6:: - text "ROOFTOP SQUARE:" - line "VENDING MACHINES" - done - -_VendingMachineText1:: - text "A vending machine!" - line "Here's the menu!" - prompt - -_VendingMachineText4:: - text "Oops, not enough" - line "money!" - done - -_VendingMachineText5:: - TX_RAM wcf4b - text "" - line "popped out!" - done - -_VendingMachineText6:: - text "There's no more" - line "room for stuff!" - done - -_VendingMachineText7:: - text "Not thirsty!" - done diff --git a/text/maps/CeruleanCaveB1F.asm b/text/maps/CeruleanCaveB1F.asm deleted file mode 100644 index 0918a3ce5..000000000 --- a/text/maps/CeruleanCaveB1F.asm +++ /dev/null @@ -1,2 +0,0 @@ -_MewtwoBattleText:: - text "Mew!@@" diff --git a/text/maps/CeruleanCity.asm b/text/maps/CeruleanCity.asm deleted file mode 100644 index 4bc16e7da..000000000 --- a/text/maps/CeruleanCity.asm +++ /dev/null @@ -1,233 +0,0 @@ -_CeruleanCityText_19668:: - text ": Yo!" - line "!" - - para "You're still" - line "struggling along" - cont "back here?" - - para "I'm doing great!" - line "I caught a bunch" - cont "of strong and" - cont "smart #MON!" - - para "Here, let me see" - line "what you caught," - cont "!" - done - -_CeruleanCityText_1966d:: - text "Hey!" - line "Take it easy!" - cont "You won already!" - prompt - -_CeruleanCityText_19672:: - text "Heh!" - line "You're no match" - cont "for my genius!" - prompt - -_CeruleanCityText_19677:: - text ": Hey," - line "guess what?" - - para "I went to BILL's" - line "and got him to" - cont "show me his rare" - cont "#MON!" - - para "That added a lot" - line "of pages to my" - cont "#DEX!" - - para "After all, BILL's" - line "world famous as a" - cont "#MANIAC!" - - para "He invented the" - line "#MON Storage" - cont "System on PC!" - - para "Since you're using" - line "his system, go" - cont "thank him!" - - para "Well, I better" - line "get rolling!" - cont "Smell ya later!" - done - -_CeruleanCityText_196d9:: - text "Hey! Stay out!" - line "It's not your" - cont "yard! Huh? Me?" - - para "I'm an innocent" - line "bystander! Don't" - cont "you believe me?" - done - -_ReceivedTM28Text:: - text " recovered" - line "TM28!@@" - -_ReceivedTM28Text2:: - text "" - - para "I better get" - line "moving! Bye!@@" - -_TM28NoRoomText:: - text "Make room for" - line "this!" - - para "I can't run until" - line "I give it to you!" - done - -_CeruleanCityText_196ee:: - text "Stop!" - line "I give up! I'll" - cont "leave quietly!" - prompt - -_CeruleanCityText_196f3:: - text "OK! I'll return" - line "the TM I stole!" - prompt - -_CeruleanCityText3:: - text "You're a trainer" - line "too? Collecting," - cont "fighting, it's a" - cont "tough life." - done - -_CeruleanCityText4:: - text "That bush in" - line "front of the shop" - cont "is in the way." - - para "There might be a" - line "way around." - done - -_CeruleanCityText5:: - text "You're making an" - line "encyclopedia on" - cont "#MON? That" - cont "sounds amusing." - done - -_CeruleanCityText6:: - text "These poor people" - line "here were robbed." - - para "We're positive" - line "that TEAM ROCKET" - cont "is behind this" - cont "terrible deed." - - para "Even our POLICE" - line "FORCE has trouble" - cont "with the ROCKETs!" - done - -_CeruleanCityText_19730:: - text "OK! ELECTRODE!" - line "Use SONICBOOM!" - cont "Please ELECTRODE," - cont "pay attention!" - done - -_CeruleanCityText_19735:: - text "ELECTRODE, TACKLE!" - line "No! You blew it" - cont "again!" - done - -_CeruleanCityText_1973a:: - text "ELECTRODE, SWIFT!" - line "No! That's wrong!" - - para "Training #MON" - line "is difficult!" - - para "Your #MON's" - line "obedience depends" - cont "on your abilities" - cont "as a trainer!" - done - -_CeruleanCityText_1976f:: - text "ELECTRODE took a" - line "snooze..." - done - -_CeruleanCityText_19774:: - text "ELECTRODE is" - line "loafing around..." - done - -_CeruleanCityText_19779:: - text "ELECTRODE turned" - line "away..." - done - -_CeruleanCityText_1977e:: - text "ELECTRODE" - line "ignored orders..." - done - -_CeruleanCityText9:: - text "I want a bright" - line "red BICYCLE!" - - para "I'll keep it at" - line "home, so it won't" - cont "get dirty!" - done - -_CeruleanCityText10:: - text "This is CERULEAN" - line "CAVE! Horribly" - cont "strong #MON" - cont "live in there!" - - para "The #MON LEAGUE" - line "champion is the" - cont "only person who" - cont "is allowed in!" - done - -_CeruleanCityText12:: - text "CERULEAN CITY" - line "A Mysterious," - cont "Blue Aura" - cont "Surrounds It" - done - -_CeruleanCityText13:: - text "TRAINER TIPS" - - para "Pressing B Button" - line "during evolution" - cont "cancels the whole" - cont "process." - done - -_CeruleanCityText16:: - text "Grass and caves" - line "handled easily!" - cont "BIKE SHOP" - done - -_CeruleanCityText17:: - text "CERULEAN CITY" - line "#MON GYM" - cont "LEADER: MISTY" - - para "The Tomboyish" - line "Mermaid!" - done diff --git a/text/maps/CeruleanGym.asm b/text/maps/CeruleanGym.asm deleted file mode 100644 index 9f2c46940..000000000 --- a/text/maps/CeruleanGym.asm +++ /dev/null @@ -1,134 +0,0 @@ -_CeruleanGymText_5c7be:: - text "Hi, you're a new" - line "face!" - - para "What's your policy" - line "on #MON? What" - cont "is your approach?" - - para "My policy is an" - line "all-out offensive" - cont "with water-type" - cont "#MON!" - - para "MISTY, the world-" - line "famous beauty, is" - cont "your host!" - - para "Are you ready," - line "sweetie?" - done - -_CeruleanGymText_5c7c3:: - text "TM11 teaches" - line "BUBBLEBEAM!" - - para "Use it on an" - line "aquatic #MON!" - done - -_CeruleanGymText_5c7c8:: - text "The CASCADEBADGE" - line "makes all #MON" - cont "up to L30 obey!" - - para "That includes" - line "even outsiders!" - - para "There's more, you" - line "can now use CUT" - cont "anytime!" - - para "You can CUT down" - line "small bushes to" - cont "open new paths!" - - para "You can also have" - line "my favorite TM!" - done - -_ReceivedTM11Text:: - text " received" - line "TM11!@@" - -_CeruleanGymText_5c7d3:: - text "You better make" - line "room for this!" - done - -_CeruleanGymText_5c7d8:: - text "I can't" - line "believe I lost!" - - para "All right!" - - para "You can have the" - line "CASCADEBADGE to" - cont "show you beat me!" - prompt - -_CeruleanGymBattleText1:: - text "I'm more than good" - line "enough for you!" - - para "MISTY can wait!" - done - -_CeruleanGymEndBattleText1:: - text "You" - line "overwhelmed me!" - prompt - -_CeruleanGymAfterBattleText1:: - text "You have to face" - line "other trainers to" - cont "find out how good" - cont "you really are." - done - -_CeruleanGymBattleText2:: - text "Splash!" - - para "I'm first up!" - line "Let's do it!" - done - -_CeruleanGymEndBattleText2:: - text "That" - line "can't be!" - prompt - -_CeruleanGymAfterBattleText2:: - text "MISTY is going to" - line "keep improving!" - - para "She won't lose to" - line "someone like you!" - done - -_CeruleanGymText_5c82a:: - text "Yo! Champ in" - line "making!" - - para "Here's my advice!" - - para "The LEADER, MISTY," - line "is a pro who uses" - cont "water #MON!" - - para "You can drain all" - line "their water with" - cont "plant #MON!" - - para "Or, zap them with" - line "electricity!" - done - -_CeruleanGymText_5c82f:: - text "You beat MISTY!" - line "What'd I tell ya?" - - para "You and me, kid," - line "we make a pretty" - cont "darn good team!" - done diff --git a/text/maps/CeruleanTradeHouse.asm b/text/maps/CeruleanTradeHouse.asm deleted file mode 100644 index 791c11d50..000000000 --- a/text/maps/CeruleanTradeHouse.asm +++ /dev/null @@ -1,39 +0,0 @@ -MelanieText1:: - text "I take care of" - line "injured #MON." - - para "I nursed this" - line "BULBASAUR back to" - cont "health." - - para "It needs a good" - line "trainer to take" - cont "care of it now.@@" - -MelanieText2:: - text "I know! Would you" - line "take care of this" - cont "BULBASAUR?" - done - -MelanieText3:: - text "Please take care" - line "of BULBASAUR!@@" - -MelanieText4:: - text "Is BULBASAUR" - line "doing well?@@" - -MelanieText5:: - text "Oh..." - line "That's too bad...@@" - -MelanieBulbasaurText:: - text "BULBASAUR: Bubba!" - line "Zoar!@@" - -MelanieOddishText:: - text "ODDISH: Orddissh!@@" - -MelanieSandshrewText:: - text "SANDSHREW: Pikii!@@" diff --git a/text/maps/ChampionsRoom.asm b/text/maps/ChampionsRoom.asm deleted file mode 100644 index 610505650..000000000 --- a/text/maps/ChampionsRoom.asm +++ /dev/null @@ -1,146 +0,0 @@ -_GaryChampionIntroText:: - text ": Hey!" - - para "I was looking" - line "forward to seeing" - cont "you, !" - - para "My rival should" - line "be strong to keep" - cont "me sharp!" - - para "While working on" - line "#DEX, I looked" - cont "all over for" - cont "powerful #MON!" - - para "Not only that, I" - line "assembled teams" - cont "that would beat" - cont "any #MON type!" - - para "And now!" - - para "I'm the #MON" - line "LEAGUE champion!" - - para "! Do you" - line "know what that" - cont "means?" - - para "I'll tell you!" - - para "I am the most" - line "powerful trainer" - cont "in the world!" - done - -_GaryDefeatedText:: - text "NO!" - line "That can't be!" - cont "You beat my best!" - - para "After all that" - line "work to become" - cont "LEAGUE champ?" - - para "My reign is over" - line "already?" - cont "It's not fair!" - prompt - -_GaryVictoryText:: - text "Hahaha!" - line "I won, I won!" - - para "I'm too good for" - line "you, !" - - para "You did well to" - line "even reach me," - cont ", the" - cont "#MON genius!" - - para "Nice try, loser!" - line "Hahaha!" - prompt - -_GaryText_76103:: - text "Why?" - line "Why did I lose?" - - para "I never made any" - line "mistakes raising" - cont "my #MON..." - - para "Darn it! You're" - line "the new #MON" - cont "LEAGUE champion!" - - para "Although I don't" - line "like to admit it." - done - -_GaryText2:: - text "OAK: !" - done - -_GaryText_76120:: - text "OAK: So, you won!" - line "Congratulations!" - cont "You're the new" - cont "#MON LEAGUE" - cont "champion!" - - para "You've grown up so" - line "much since you" - cont "first left with" - cont "@" - TX_RAM wcd6d - text "!" - - para ", you have" - line "come of age!" - done - -_GaryText_76125:: - text "OAK: ! I'm" - line "disappointed!" - - para "I came when I" - line "heard you beat" - cont "the ELITE FOUR!" - - para "But, when I got" - line "here, you had" - cont "already lost!" - - para "! Do you" - line "understand why" - cont "you lost?" - - para "You have forgotten" - line "to treat your" - cont "#MON with" - cont "trust and love!" - - para "Without them, you" - line "will never become" - cont "a champ again!" - done - -_GaryText_7612a:: - text "OAK: !" - - para "You understand" - line "that your victory" - cont "was not just your" - cont "own doing!" - - para "The bond you share" - line "with your #MON" - cont "is marvelous!" - - para "!" - line "Come with me!" - done diff --git a/text/maps/CinnabarGym.asm b/text/maps/CinnabarGym.asm deleted file mode 100644 index ee1fc31a9..000000000 --- a/text/maps/CinnabarGym.asm +++ /dev/null @@ -1,253 +0,0 @@ -_BlaineBattleText:: - text "Hah!" - - para "I am BLAINE! I" - line "am the LEADER of" - cont "CINNABAR GYM!" - - para "My fiery #MON" - line "will incinerate" - cont "all challengers!" - - para "Hah! You better" - line "have BURN HEAL!" - done - -_BlaineEndBattleText:: - text "I have" - line "burnt out!" - - para "You have earned" - line "the VOLCANOBADGE!@@" - -_BlaineFireBlastText:: - text "FIRE BLAST is the" - line "ultimate fire" - cont "technique!" - - para "Don't waste it on" - line "water #MON!" - done - -_BlaineBadgeText:: - text "Hah!" - - para "The VOLCANOBADGE" - line "heightens the" - cont "SPECIAL abilities" - cont "of your #MON!" - - para "Here, you can" - line "have this too!" - done - -_ReceivedTM38Text:: - text " received" - line "@" - TX_RAM wcf4b - text "!@@" - -_TM38ExplanationText:: - text "" - - para "TM38 contains" - line "FIRE BLAST!" - - para "Teach it to fire-" - line "type #MON!" - - para "CHARMELEON or" - line "PONYTA would be" - cont "good bets!" - done - -_TM38NoRoomText:: - text "Make room for my" - line "gift!" - done - -_CinnabarGymText_7595f:: - text "Do you know how" - line "hot #MON fire" - cont "breath can get?" - done - -_CinnabarGymText_75964:: - text "Yow!" - line "Hot, hot, hot!" - prompt - -_CinnabarGymText_75969:: - text "Fire, or to be" - line "more precise," - cont "combustion..." - - para "Blah, blah, blah," - line "blah..." - done - -_CinnabarGymText_75994:: - text "I was a thief, but" - line "I became straight" - cont "as a trainer!" - done - -_CinnabarGymText_75999:: - text "I" - line "surrender!" - prompt - -_CinnabarGymText_7599e:: - text "I can't help" - line "stealing other" - cont "people's #MON!" - done - -_CinnabarGymText_759c9:: - text "You can't win!" - line "I have studied" - cont "#MON totally!" - done - -_CinnabarGymText_759ce:: - text "Waah!" - line "My studies!" - prompt - -_CinnabarGymText_759d3:: - text "My theories are" - line "too complicated" - cont "for you!" - done - -_CinnabarGymText_759fe:: - text "I just like using" - line "fire #MON!" - done - -_CinnabarGymText_75a03:: - text "Too hot" - line "to handle!" - prompt - -_CinnabarGymText_75a08:: - text "I wish there was" - line "a thief #MON!" - cont "I'd use that!" - done - -_CinnabarGymText_75a33:: - text "I know why BLAINE" - line "became a trainer!" - done - -_CinnabarGymText_75a38:: - text "Ow!" - prompt - -_CinnabarGymText_75a3d:: - text "BLAINE was lost" - line "in the mountains" - cont "when a fiery bird" - cont "#MON appeared." - - para "Its light enabled" - line "BLAINE to find" - cont "his way down!" - done - -_CinnabarGymText_75a68:: - text "I've been to many" - line "GYMs, but this is" - cont "my favorite!" - done - -_CinnabarGymText_75a6d:: - text "Yowza!" - line "Too hot!" - prompt - -_CinnabarGymText_75a72:: - text "Us fire #MON" - line "fans like PONYTA" - cont "and NINETALES!" - done - -_CinnabarGymText_75a9d:: - text "Fire is weak" - line "against H2O!" - done - -_CinnabarGymText_75aa2:: - text "Oh!" - line "Snuffed out!" - prompt - -_CinnabarGymText_75aa7:: - text "Water beats fire!" - line "But, fire melts" - cont "ice #MON!" - done - -_CinnabarGymText_75ac2:: - text "Yo! Champ in" - line "making!" - - para "The hot-headed" - line "BLAINE is a fire" - cont "#MON pro!" - - para "Douse his spirits" - line "with water!" - - para "You better take" - line "some BURN HEALs!" - done - -_CinnabarGymText_75ac7:: - text "! You beat" - line "that fire brand!" - done - -_CinnabarGymText_1:: - text "This GYM is also" - line "known as the QUIZ" - cont "GYM." - - para "You have to take a" - line "quiz if you want" - cont "to see BLAINE." - - para "You don't have to" - line "fight us if you" - cont "get it right." - done - -_CinnabarGymText_2:: - text "Think you can do" - line "it?" - done - -_CinnabarGymText_3:: - text "This one's tricky!" - done - -_CinnabarGymText_4:: - text "#MON enjoy" - line "quizzes too!" - done - -_CinnabarGymText_5:: - text "I like it here at" - line "QUIZ GYM." - done - -_CinnabarGymText_6:: - text "This is the last" - line "question." - done - -_CinnabarGymText_7:: - text "Come on, answer" - line "the question!" - done diff --git a/text/maps/CinnabarLabFossilRoom.asm b/text/maps/CinnabarLabFossilRoom.asm deleted file mode 100644 index 95bde6855..000000000 --- a/text/maps/CinnabarLabFossilRoom.asm +++ /dev/null @@ -1,78 +0,0 @@ -_Lab4Text_75dc6:: - text "Hiya!" - - para "I am important" - line "doctor!" - - para "I study here rare" - line "#MON fossils!" - - para "You! Have you a" - line "fossil for me?" - prompt - -_Lab4Text_75dcb:: - text "No! Is too bad!" - done - -_Lab4Text_75dd0:: - text "I take a little" - line "time!" - - para "You go for walk a" - line "little while!" - done - -_Lab4Text_75dd5:: - text "Where were you?" - - para "Your fossil is" - line "back to life!" - - para "It was @" - TX_RAM wcf4b - text "" - line "like I think!" - prompt - -_Lab4Text_610ae:: - text "Oh! That is" - line "@" - TX_RAM wcd6d - text "!" - - para "It is fossil of" - line "@" - TX_RAM wcf4b - text ", a" - cont "#MON that is" - cont "already extinct!" - - para "My Resurrection" - line "Machine will make" - cont "that #MON live" - cont "again!" - done - -_Lab4Text_610b3:: - text "So! You hurry and" - line "give me that!" - - para " handed" - line "over @" - TX_RAM wcd6d - text "!" - prompt - -_Lab4Text_610b8:: - text "I take a little" - line "time!" - - para "You go for walk a" - line "little while!" - done - -_Lab4Text_610bd:: - text "Aiyah! You come" - line "again!" - done diff --git a/text/maps/CinnabarLabMetronomeRoom.asm b/text/maps/CinnabarLabMetronomeRoom.asm deleted file mode 100644 index fa04677f4..000000000 --- a/text/maps/CinnabarLabMetronomeRoom.asm +++ /dev/null @@ -1,63 +0,0 @@ -_TM35PreReceiveText:: - text "Tch-tch-tch!" - line "I made a cool TM!" - - para "It can cause all" - line "kinds of fun!" - prompt - -_ReceivedTM35Text:: - text " received " - line "@" - TX_RAM wcf4b - text "!@@" - -_TM35ExplanationText:: - text "Tch-tch-tch!" - line "That's the sound" - cont "of a METRONOME!" - - para "It tweaks your" - line "#MON's brain" - cont "into using moves" - cont "it doesn't know!" - done - -_TM35NoRoomText:: - text "Your pack is" - line "crammed full!" - done - -_Lab3Text2:: - text "EEVEE can evolve" - line "into 1 of 3 kinds" - cont "of #MON." - done - -_Lab3Text3:: - text "There's an e-mail" - line "message!" - - para "..." - - para "The 3 legendary" - line "bird #MON are" - cont "ARTICUNO, ZAPDOS" - cont "and MOLTRES." - - para "Their whereabouts" - line "are unknown." - - para "We plan to explore" - line "the cavern close" - cont "to CERULEAN." - - para "From: #MON" - line "RESEARCH TEAM" - - para "..." - done - -_Lab3Text5:: - text "An amber pipe!" - done diff --git a/text/maps/CopycatsHouse1F.asm b/text/maps/CopycatsHouse1F.asm deleted file mode 100644 index bd3029fd7..000000000 --- a/text/maps/CopycatsHouse1F.asm +++ /dev/null @@ -1,20 +0,0 @@ -_CopycatsHouse1FText1:: - text "My daughter is so" - line "self-centered." - cont "She only has a" - cont "few friends." - done - -_CopycatsHouse1FText2:: - text "My daughter likes" - line "to mimic people." - - para "Her mimicry has" - line "earned her the" - cont "nickname COPYCAT" - cont "around here!" - done - -_CopycatsHouse1FText3:: - text "CHANSEY: Chaaan" - line "sey!@@" diff --git a/text/maps/CopycatsHouse2F.asm b/text/maps/CopycatsHouse2F.asm deleted file mode 100644 index 561b2ac5c..000000000 --- a/text/maps/CopycatsHouse2F.asm +++ /dev/null @@ -1,97 +0,0 @@ -_CopycatsHouse2FText_5ccd4:: - text ": Hi! Do" - line "you like #MON?" - - para ": Uh no, I" - line "just asked you." - - para ": Huh?" - line "You're strange!" - - para "COPYCAT: Hmm?" - line "Quit mimicking?" - - para "But, that's my" - line "favorite hobby!" - prompt - -_TM31PreReceiveText:: - text "Oh wow!" - line "A # DOLL!" - - para "For me?" - line "Thank you!" - - para "You can have" - line "this, then!" - prompt - -_ReceivedTM31Text:: - text " received" - line "@" - TX_RAM wcf4b - text "!@@" - -_TM31ExplanationText1:: - text "" - - para "TM31 contains my" - line "favorite, MIMIC!" - - para "Use it on a good" - line "#MON!@@" - -_TM31ExplanationText2:: - text ": Hi!" - line "Thanks for TM31!" - - para ": Pardon?" - - para ": Is it" - line "that fun to mimic" - cont "my every move?" - - para "COPYCAT: You bet!" - line "It's a scream!" - done - -_TM31NoRoomText:: - text "Don't you want" - line "this?@@" - -_CopycatsHouse2FText2:: - text "DODUO: Giiih!" - - para "MIRROR MIRROR ON" - line "THE WALL, WHO IS" - cont "THE FAIREST ONE" - cont "OF ALL?" - done - -_CopycatsHouse2FText3:: - text "This is a rare" - line "#MON! Huh?" - cont "It's only a doll!" - done - -_CopycatsHouse2FText6:: - text "A game with MARIO" - line "wearing a bucket" - cont "on his head!" - done - -_CopycatsHouse2FText_5cd17:: - text "..." - - para "My Secrets!" - - para "Skill: Mimicry!" - line "Hobby: Collecting" - cont "dolls!" - cont "Favorite #MON:" - cont "CLEFAIRY!" - done - -_CopycatsHouse2FText_5cd1c:: - text "Huh? Can't see!" - done diff --git a/text/maps/Daycare.asm b/text/maps/Daycare.asm deleted file mode 100644 index 479898c89..000000000 --- a/text/maps/Daycare.asm +++ /dev/null @@ -1,96 +0,0 @@ -_DayCareIntroText:: - text "I run a DAYCARE." - line "Would you like me" - cont "to raise one of" - cont "your #MON?" - done - -_DayCareWhichMonText:: - text "Which #MON" - line "should I raise?" - prompt - -_DayCareWillLookAfterMonText:: - text "Fine, I'll look" - line "after @" - TX_RAM wcd6d - text "" - cont "for a while." - prompt - -_DayCareComeSeeMeInAWhileText:: - text "Come see me in" - line "a while." - done - -_DayCareMonHasGrownText:: - text "Your @" - TX_RAM wcd6d - text "" - line "has grown a lot!" - - para "By level, it's" - line "grown by @" - TX_NUM wDayCareNumLevelsGrown,$1,$3 - text "!" - - para "Aren't I great?" - prompt - -_DayCareOweMoneyText:: - text "You owe me ¥@" - TX_BCD wDayCareTotalCost, $c2 - text "" - line "for the return" - cont "of this #MON." - done - -_DayCareGotMonBackText:: - text " got" - line "@" - TX_RAM wDayCareMonName - text " back!" - done - -_DayCareMonNeedsMoreTimeText:: - text "Back already?" - line "Your @" - TX_RAM wcd6d - text "" - cont "needs some more" - cont "time with me." - prompt - -_DayCareAllRightThenText:: - text "All right then," - line "@@" - -_DayCareComeAgainText:: - text "Come again." - done - -_DayCareNoRoomForMonText:: - text "You have no room" - line "for this #MON!" - done - -_DayCareOnlyHaveOneMonText:: - text "You only have one" - line "#MON with you." - done - -_DayCareCantAcceptMonWithHMText:: - text "I can't accept a" - line "#MON that" - cont "knows an HM move." - done - -_DayCareHeresYourMonText:: - text "Thank you! Here's" - line "your #MON!" - prompt - -_DayCareNotEnoughMoneyText:: - text "Hey, you don't" - line "have enough ¥!" - done diff --git a/text/maps/FuchsiaGoodRodHouse.asm b/text/maps/FuchsiaGoodRodHouse.asm deleted file mode 100644 index b1b8b2f20..000000000 --- a/text/maps/FuchsiaGoodRodHouse.asm +++ /dev/null @@ -1,43 +0,0 @@ -_FuchsiaHouse3Text_561bd:: - text "I'm the FISHING" - line "GURU's older" - cont "brother!" - - para "I simply Looove" - line "fishing!" - - para "Do you like to" - line "fish?" - done - -_FuchsiaHouse3Text_561c2:: - text "Grand! I like" - line "your style!" - - para "Take this and" - line "fish, young one!" - - para " received" - line "a @" - TX_RAM wcf4b - text "!@@" - -_FuchsiaHouse3Text_56212:: - text "Oh... That's so" - line "disappointing..." - done - -_FuchsiaHouse3Text_56217:: - text "Hello there," - line "!" - - para "How are the fish" - line "biting?" - done - -_FuchsiaHouse3Text_5621c:: - text "Oh no!" - - para "You have no room" - line "for my gift!" - done diff --git a/text/maps/FuchsiaGym.asm b/text/maps/FuchsiaGym.asm deleted file mode 100644 index fc4e8f593..000000000 --- a/text/maps/FuchsiaGym.asm +++ /dev/null @@ -1,220 +0,0 @@ -_KogaBeforeBattleText:: - text "KOGA: Fwahahaha!" - - para "A mere child like" - line "you dares to" - cont "challenge me?" - - para "Very well, I" - line "shall show you" - cont "true terror as a" - cont "ninja master!" - - para "You shall feel" - line "the despair of" - cont "poison and sleep" - cont "techniques!" - done - -_KogaAfterBattleText:: - text "Humph!" - line "You have proven" - cont "your worth!" - - para "Here! Take the" - line "SOULBADGE!" - prompt - -_KogaExplainToxicText:: - text "When afflicted by" - line "TOXIC, #MON" - cont "suffer more and" - cont "more as battle" - cont "progresses!" - - para "It will surely" - line "terrorize foes!" - done - -_FuchsiaGymText9:: - text "Now that you have" - line "the SOULBADGE," - cont "the DEFENSE of" - cont "your #MON" - cont "increases!" - - para "It also lets you" - line "SURF outside of" - cont "battle!" - - para "Ah! Take this" - line "too!" - done - -_ReceivedTM06Text:: - text " received" - line "@" - TX_RAM wcf4b - text "!@@" - -_TM06ExplanationText:: - text "" - para "TM06 contains" - line "TOXIC!" - - para "It is a secret" - line "technique over" - cont "400 years old!" - done - -_TM06NoRoomText:: - text "Make space for" - line "this, child!" - done - -_FuchsiaGymBattleText1:: - text "Strength isn't" - line "the key for" - cont "#MON!" - - para "It's strategy!" - - para "I'll show you how" - line "strategy can beat" - cont "brute strength!" - done - -_FuchsiaGymEndBattleText1:: - text "What?" - line "Extraordinary!" - prompt - -_FuchsiaGymAfterBattleText1:: - text "So, you mix brawn" - line "with brains?" - cont "Good strategy!" - done - -_FuchsiaGymBattleText2:: - text "I wanted to become" - line "a ninja, so I" - cont "joined this GYM!" - done - -_FuchsiaGymEndBattleText2:: - text "I'm done" - line "for!" - prompt - -_FuchsiaGymAfterBattleText2:: - text "I will keep on" - line "training under" - cont "KOGA, my ninja" - cont "master!" - done - -_FuchsiaGymBattleText3:: - text "Let's see you" - line "beat my special" - cont "techniques!" - done - -_FuchsiaGymEndBattleText3:: - text "You" - line "had me fooled!" - prompt - -_FuchsiaGymAfterBattleText3:: - text "I like poison and" - line "sleep techniques," - cont "as they linger" - cont "after battle!" - done - -_FuchsiaGymBattleText4:: - text "Stop right there!" - - para "Our invisible" - line "walls have you" - cont "frustrated?" - done - -_FuchsiaGymEndBattleText4:: - text "Whoa!" - line "He's got it!" - prompt - -_FuchsiaGymAfterBattleText4:: - text "You impressed me!" - line "Here's a hint!" - - para "Look very closely" - line "for gaps in the" - cont "invisible walls!" - done - -_FuchsiaGymBattleText5:: - text "I also study the" - line "way of the ninja" - cont "with master KOGA!" - - para "Ninja have a long" - line "history of using" - cont "animals!" - done - -_FuchsiaGymEndBattleText5:: - text "Awoo!" - prompt - -_FuchsiaGymAfterBattleText5:: - text "I still have much" - line "to learn!" - done - -_FuchsiaGymBattleText6:: - text "Master KOGA comes" - line "from a long line" - cont "of ninjas!" - - para "What did you" - line "descend from?" - done - -_FuchsiaGymEndBattleText6:: - text "Dropped" - line "my balls!" - prompt - -_FuchsiaGymAfterBattleText6:: - text "Where there is" - line "light, there is" - cont "shadow!" - - para "Light and shadow!" - line "Which do you" - cont "choose?" - done - -_FuchsiaGymText_7564e:: - text "Yo! Champ in" - line "making!" - - para "FUCHSIA GYM is" - line "riddled with" - cont "invisible walls!" - - para "KOGA might appear" - line "close, but he's" - cont "blocked off!" - - para "You have to find" - line "gaps in the walls" - cont "to reach him!" - done - -_FuchsiaGymText_75653:: - text "It's amazing how" - line "ninja can terrify" - cont "even now!" - done diff --git a/text/maps/GameCorner.asm b/text/maps/GameCorner.asm deleted file mode 100644 index c3e4f88e3..000000000 --- a/text/maps/GameCorner.asm +++ /dev/null @@ -1,181 +0,0 @@ -_CeladonGameCornerText1:: - text "Welcome!" - - para "You can exchange" - line "your coins for" - cont "fabulous prizes" - cont "next door." - done - -_CeladonGameCornerText_48d22:: - text "Welcome to ROCKET" - line "GAME CORNER!" - - para "Do you need some" - line "game coins?" - - para "It's ¥1000 for 50" - line "coins. Would you" - cont "like some?" - done - -_CeladonGameCornerText_48d27:: - text "Thanks! Here are" - line "your 50 coins!" - done - -_CeladonGameCornerText_48d2c:: - text "No? Please come" - line "play sometime!" - done - -_CeladonGameCornerText_48d31:: - text "You can't afford" - line "the coins!" - done - -_CeladonGameCornerText_48d36:: - text "Oops! Your COIN" - line "CASE is full." - done - -_CeladonGameCornerText_48d3b:: - text "You don't have a" - line "COIN CASE!" - done - -_CeladonGameCornerText3:: - text "Keep this quiet." - - para "It's rumored that" - line "this place is run" - cont "by TEAM ROCKET." - done - -_CeladonGameCornerText4:: - text "I think these" - line "machines have" - cont "different odds." - done - -_CeladonGameCornerText_48d9c:: - text "Kid, do you want" - line "to play?" - prompt - -_Received10CoinsText:: - text " received" - line "10 coins!@@" - -_CeladonGameCornerText_48da7:: - text "You don't need my" - line "coins!" - done - -_CeladonGameCornerText_48dac:: - text "Wins seem to come" - line "and go." - done - -_CeladonGameCornerText6:: - text "I'm having a" - line "wonderful time!" - done - -_CeladonGameCornerText_48dca:: - text "Hey!" - - para "You have better" - line "things to do," - cont "champ in making!" - - para "CELADON GYM's" - line "LEADER is ERIKA!" - cont "She uses grass-" - cont "type #MON!" - - para "She might appear" - line "docile, but don't" - cont "be fooled!" - done - -_CeladonGameCornerText_48dcf:: - text "They offer rare" - line "#MON that can" - cont "be exchanged for" - cont "your coins." - - para "But, I just can't" - line "seem to win!" - done - -_CeladonGameCornerText8:: - text "Games are scary!" - line "It's so easy to" - cont "get hooked!" - done - -_CeladonGameCornerText_48e26:: - text "What's up? Want" - line "some coins?" - prompt - -_Received20CoinsText:: - text " received" - line "20 coins!@@" - -_CeladonGameCornerText_48e31:: - text "You have lots of" - line "coins!" - done - -_CeladonGameCornerText_48e36:: - text "Darn! I need more" - line "coins for the" - cont "#MON I want!" - done - -_CeladonGameCornerText_48e88:: - text "Hey, what? You're" - line "throwing me off!" - cont "Here are some" - cont "coins, shoo!" - prompt - -_CeladonGameCornerText_48e8d:: - text " received" - line "20 coins!@@" - -_CeladonGameCornerText_48e93:: - text "You've got your" - line "own coins!" - done - -_CeladonGameCornerText_48e98:: - text "The trick is to" - line "watch the reels" - cont "closely!" - done - -_CeladonGameCornerText_48ece:: - text "I'm guarding this" - line "poster!" - cont "Go away, or else!" - done - -_CeladonGameCornerText_48ed3:: - text "Dang!" - prompt - -_CeladonGameCornerText_48ed8:: - text "Our hideout might" - line "be discovered! I" - cont "better tell BOSS!" - done - -_CeladonGameCornerText_48f09:: - text "Hey!" - - para "A switch behind" - line "the poster!?" - cont "Let's push it!@@" diff --git a/text/maps/LancesRoom.asm b/text/maps/LancesRoom.asm deleted file mode 100644 index e47b006e2..000000000 --- a/text/maps/LancesRoom.asm +++ /dev/null @@ -1,63 +0,0 @@ -_LanceBeforeBattleText:: - text "Ah! I heard about" - line "you, !" - - para "I lead the ELITE" - line "FOUR! You can" - cont "call me LANCE the" - cont "dragon trainer!" - - para "You know that" - line "dragons are" - cont "mythical #MON!" - - para "They're hard to" - line "catch and raise," - cont "but their powers" - cont "are superior!" - - para "They're virtually" - line "indestructible!" - - para "Well, are you" - line "ready to lose?" - - para "Your LEAGUE" - line "challenge ends" - cont "with me, !" - done - -_LanceEndBattleText:: - text "That's it!" - - para "I hate to admit" - line "it, but you are a" - cont "#MON master!" - prompt - -_LanceAfterBattleText:: - text "I still can't" - line "believe my" - cont "dragons lost to" - cont "you, !" - - para "You are now the" - line "#MON LEAGUE" - cont "champion!" - - para "...Or, you would" - line "have been, but" - cont "you have one more" - cont "challenge ahead." - - para "You have to face" - line "another trainer!" - cont "His name is..." - - para "!" - line "He beat the ELITE" - cont "FOUR before you!" - - para "He is the real" - line "#MON LEAGUE" - cont "champion!@@" diff --git a/text/maps/LavenderCuboneHouse.asm b/text/maps/LavenderCuboneHouse.asm deleted file mode 100644 index 66cc85a5b..000000000 --- a/text/maps/LavenderCuboneHouse.asm +++ /dev/null @@ -1,24 +0,0 @@ -_LavenderHouse2Text1:: - text "CUBONE: Kyarugoo!@@" - -_LavenderHouse2Text_1d9dc:: - text "I hate those" - line "horrible ROCKETs!" - - para "That poor CUBONE's" - line "mother..." - - para "It was killed" - line "trying to escape" - cont "from TEAM ROCKET!" - done - -_LavenderHouse2Text_1d9e1:: - text "The GHOST of" - line "#MON TOWER is" - cont "gone!" - - para "Someone must have" - line "soothed its" - cont "restless soul!" - done diff --git a/text/maps/MrFujisHouse.asm b/text/maps/MrFujisHouse.asm deleted file mode 100644 index f903eb6a3..000000000 --- a/text/maps/MrFujisHouse.asm +++ /dev/null @@ -1,86 +0,0 @@ -_LavenderHouse1Text_1d8d1:: - text "That's odd, MR.FUJI" - line "isn't here." - cont "Where'd he go?" - done - -_LavenderHouse1Text_1d8d6:: - text "MR.FUJI had been" - line "praying alone for" - cont "CUBONE's mother." - done - -_LavenderHouse1Text_1d8f4:: - text "This is really" - line "MR.FUJI's house." - - para "He's really kind!" - - para "He looks after" - line "abandoned and" - cont "orphaned #MON!" - done - -_LavenderHouse1Text_1d8f9:: - text "It's so warm!" - line "#MON are so" - cont "nice to hug!" - done - -_LavenderHouse1Text3:: - text "PSYDUCK: Gwappa!@@" - -_LavenderHouse1Text4:: - text "NIDORINO: Gaoo!@@" - -_LavenderHouse1Text_1d94c:: - text "MR.FUJI: ." - - para "Your #DEX quest" - line "may fail without" - cont "love for your" - cont "#MON." - - para "I think this may" - line "help your quest." - prompt - -_ReceivedFluteText:: - text " received" - line "a @" - TX_RAM wcf4b - text "!@@" - -_FluteExplanationText:: - text "" - - para "Upon hearing #" - line "FLUTE, sleeping" - cont "#MON will" - cont "spring awake." - - para "It works on all" - line "sleeping #MON." - done - -_FluteNoRoomText:: - text "You must make" - line "room for this!" - done - -_MrFujiAfterFluteText:: - text "MR.FUJI: Has my" - line "FLUTE helped you?" - done - -_LavenderHouse1Text6:: - text "#MON Monthly" - line "Grand Prize" - cont "Drawing!" - - para "The application" - line "form is..." - - para "Gone! It's been" - line "clipped out!" - done diff --git a/text/maps/MrPsychicsHouse.asm b/text/maps/MrPsychicsHouse.asm deleted file mode 100644 index 7be2e11e8..000000000 --- a/text/maps/MrPsychicsHouse.asm +++ /dev/null @@ -1,25 +0,0 @@ -_TM29PreReceiveText:: - text "...Wait! Don't" - line "say a word!" - - para "You wanted this!" - prompt - -_ReceivedTM29Text:: - text " received" - line "@" - TX_RAM wcf4b - text "!@@" - -_TM29ExplanationText:: - text "TM29 is PSYCHIC!" - - para "It can lower the" - line "target's SPECIAL" - cont "abilities." - done - -_TM29NoRoomText:: - text "Where do you plan" - line "to put this?" - done diff --git a/text/maps/MtMoonB1F.asm b/text/maps/MtMoonB1F.asm deleted file mode 100644 index 755fa5834..000000000 --- a/text/maps/MtMoonB1F.asm +++ /dev/null @@ -1,3 +0,0 @@ -_MtMoonText1:: - text "" - done diff --git a/text/maps/MtMoonB2F.asm b/text/maps/MtMoonB2F.asm deleted file mode 100644 index ab5da5a60..000000000 --- a/text/maps/MtMoonB2F.asm +++ /dev/null @@ -1,125 +0,0 @@ -_MtMoonJessieJamesText1:: - text "Stop right there!@@" - -_MtMoonJessieJamesText2:: - text "That fossil is" - line "TEAM ROCKET's!" - - para "Surrender now, or " - line "prepare to fight!" - done - -_MtMoonJessieJamesText3:: - text "A" - line "brat beat us?" - prompt - -_MtMoonJessieJamesText4:: - text "TEAM ROCKET, blast" - line "off at the speed" - cont "of light!@@" - -_MtMoon3Text_49f24:: - text "You want the" - line "DOME FOSSIL?" - done - -_MtMoon3Text_49f64:: - text "You want the" - line "HELIX FOSSIL?" - done - -_MtMoon3Text_49f6f:: - text " got the" - line "@" - TX_RAM wcf4b - text "!@@" - -_MtMoon3Text_49f7f:: - text "Look, you've got" - line "no room for this.@@" - -_MtMoon3Text_49f85:: - text "Hey, stop!" - - para "I found these" - line "fossils! They're" - cont "both mine!" - done - -_MtMoon3Text_49f8a:: - text "OK!" - line "I'll share!" - prompt - -_MtMoon3Text_49f8f:: - text "We'll each take" - line "one!" - cont "No being greedy!" - done - -_MtMoon3Text_49f94:: - text "Far away, on" - line "CINNABAR ISLAND," - cont "there's a #MON" - cont "LAB." - - para "They do research" - line "on regenerating" - cont "fossils." - done - -_MtMoon3Text_49f99:: - text "All right. Then" - line "this is mine!@@" - -_MtMoon3BattleText3:: - text "We, TEAM ROCKET," - line "are #MON" - cont "gangsters!" - done - -_MtMoon3EndBattleText3:: - text "I blew" - line "it!" - prompt - -_MtMoon3AfterBattleText3:: - text "Darn it all! My" - line "associates won't" - cont "stand for this!" - done - -_MtMoon3BattleText4:: - text "We're pulling a" - line "big job here!" - cont "Get lost, kid!" - done - -_MtMoon3EndBattleText4:: - text "So, you" - line "are good." - prompt - -_MtMoon3AfterBattleText4:: - text "If you find a" - line "fossil, give it" - cont "to me and scram!" - done - -_MtMoon3BattleText5:: - text "Little kids" - line "should leave" - cont "grown-ups alone!" - done - -_MtMoon3EndBattleText5:: - text "I'm" - line "steamed!" - prompt - -_MtMoon3AfterBattleText5:: - text "#MON lived" - line "here long before" - cont "people came." - done diff --git a/text/maps/MtMoonPokecenter.asm b/text/maps/MtMoonPokecenter.asm deleted file mode 100644 index ab3cf6ede..000000000 --- a/text/maps/MtMoonPokecenter.asm +++ /dev/null @@ -1,48 +0,0 @@ -_MtMoonPokecenterText1:: - text "I've 6 # BALLs" - line "set in my belt." - - para "At most, you can" - line "carry 6 #MON." - done - -_MtMoonPokecenterText3:: - text "TEAM ROCKET" - line "attacks CERULEAN" - cont "citizens..." - - para "TEAM ROCKET is" - line "always in the" - cont "news!" - done - -_MtMoonPokecenterText5:: - text "" - done - -_MagikarpSalesmanText1:: - text "MAN: Hello, there!" - line "Have I got a deal" - cont "just for you!" - - para "I'll let you have" - line "a swell MAGIKARP" - cont "for just ¥500!" - cont "What do you say?" - done - -_MagikarpSalesmanNoText:: - text "No? I'm only" - line "doing this as a" - cont "favor to you!" - done - -_MagikarpSalesmanNoMoneyText:: - text "You'll need more" - line "money than that!" - done - -_MagikarpSalesmanText2:: - text "MAN: Well, I don't" - line "give refunds!" - done diff --git a/text/maps/Museum1F.asm b/text/maps/Museum1F.asm deleted file mode 100644 index ecb511aab..000000000 --- a/text/maps/Museum1F.asm +++ /dev/null @@ -1,107 +0,0 @@ -_Museum1FText_5c21a:: - text "Come again!" - done - -_Museum1FText_5c21f:: - text "It's ¥50 for a" - line "child's ticket." - - para "Would you like to" - line "come in?" - done - -_Museum1FText_5c224:: - text "Right, ¥50!" - line "Thank you!" - done - -_Museum1FText_5c229:: - text "You don't have" - line "enough money." - prompt - -_Museum1FText_5c22e:: - text "You can't sneak" - line "in the back way!" - - para "Oh, whatever!" - line "Do you know what" - cont "AMBER is?" - done - -_Museum1FText_5c233:: - text "There's a lab" - line "somewhere trying" - cont "to resurrect" - cont "ancient #MON" - cont "from AMBER." - done - -_Museum1FText_5c238:: - text "AMBER is fossil-" - line "ized tree sap." - done - -_Museum1FText_5c23d:: - text "Please go to the" - line "other side!" - done - -_Museum1FText_5c242:: - text "Take plenty of" - line "time to look!" - done - -_Museum1FText_5c251:: - text "That is one" - line "magnificent" - cont "fossil!" - done - -_Museum1FText_5c28e:: - text "Ssh! I think that" - line "this chunk of" - cont "AMBER contains" - cont "#MON DNA!" - - para "It would be great" - line "if #MON could" - cont "be resurrected" - cont "from it!" - - para "But, my colleagues" - line "just ignore me!" - - para "So, I have a favor" - line "to ask!" - - para "Take this to a" - line "#MON LAB and" - cont "get it examined!" - prompt - -_ReceivedOldAmberText:: - text " received" - line "OLD AMBER!@@" - -_Museum1FText_5c299:: - text "Ssh! Get the OLD" - line "AMBER checked!" - done - -_Museum1FText_5c29e:: - text "You don't have" - line "space for this!" - done - -_Museum1FText_5c2ad:: - text "We are proud of 2" - line "fossils of very" - cont "rare, prehistoric" - cont "#MON!" - done - -_Museum1FText_5c2bc:: - text "The AMBER is" - line "clear and gold!" - done diff --git a/text/maps/NameRatersHouse.asm b/text/maps/NameRatersHouse.asm deleted file mode 100644 index 7194a927d..000000000 --- a/text/maps/NameRatersHouse.asm +++ /dev/null @@ -1,60 +0,0 @@ -_NameRaterText_1dab3:: - text "Hello, hello!" - line "I am the official" - cont "NAME RATER!" - - para "Want me to rate" - line "the nicknames of" - cont "your #MON?" - done - -_NameRaterText_1dab8:: - text "Which #MON" - line "should I look at?" - prompt - -_NameRaterText_1dabd:: - TX_RAM wcd6d - text ", is it?" - line "That is a decent" - cont "nickname!" - - para "But, would you" - line "like me to give" - cont "it a nicer name?" - - para "How about it?" - done - -_NameRaterText_1dac2:: - text "Fine! What should" - line "we name it?" - prompt - -_NameRaterText_1dac7:: - text "OK! This #MON" - line "has been renamed" - cont "@" - TX_RAM wBuffer - text "!" - - para "That's a better" - line "name than before!" - done - -_NameRaterText_1dacc:: - text "Fine! Come any-" - line "time you like!" - done - -_NameRaterText_1dad1:: - TX_RAM wcd6d - text ", is it?" - line "That is a truly" - cont "impeccable name!" - - para "Take good care of" - line "@" - TX_RAM wcd6d - text "!" - done diff --git a/text/maps/OaksLab.asm b/text/maps/OaksLab.asm deleted file mode 100644 index 097fa931b..000000000 --- a/text/maps/OaksLab.asm +++ /dev/null @@ -1,396 +0,0 @@ -_OaksLabGaryText1:: - text ": Yo" - line "! Gramps" - cont "isn't around!" - - para "I ran here 'cos" - line "he said he had a" - cont "#MON for me." - done - -_OaksLabText40:: - text ": Humph!" - line "I'll get a better" - cont "#MON than you!" - done - -_OaksLabText41:: - text ": Heh, my" - line "#MON looks a" - cont "lot stronger." - done - -_OaksLabText39:: - text "That's a #" - line "BALL. There's a" - cont "#MON inside!" - done - -_OaksLabPikachuText:: - text "OAK: Go ahead," - line "it's yours!" - done - -_OaksLabText_1d2f5:: - text "OAK: If a wild" - line "#MON appears," - cont "your #MON can" - cont "fight against it!" - - para "Afterward, go on" - line "to the next town." - done - -_OaksLabText_1d2fa:: - text "OAK: You should" - line "talk to it and" - cont "see how it feels." - done - -_OaksLabDeliverParcelText1:: - text "OAK: Oh, !" - - para "How is my old" - line "#MON?" - - para "Well, it seems to" - line "like you a lot." - - para "You must be" - line "talented as a" - cont "#MON trainer!" - - para "What? You have" - line "something for me?" - - para " delivered" - line "OAK's PARCEL.@@" - -_OaksLabDeliverParcelText2:: - text "" - para "Ah! This is the" - line "custom # BALL" - cont "I ordered!" - cont "Thanks, !" - - para "By the way, I must" - line "ask you to do" - cont "something for me." - done - -_OaksLabAroundWorldText:: - text "#MON around the" - line "world wait for" - cont "you, !" - done - -_OaksLabGivePokeballsText1:: - text "OAK: You can't get" - line "detailed data on" - cont "#MON by just" - cont "seeing them." - - para "You must catch" - line "them! Use these" - cont "to capture wild" - cont "#MON." - - para " got 5" - line "# BALLs!@@" - -_OaksLabGivePokeballsText2:: - text "" - para "When a wild" - line "#MON appears," - cont "it's fair game." - - para "Just like I showed" - line "you, throw a #" - cont "BALL at it and try" - cont "to catch it!" - - para "This won't always" - line "work, though." - - para "A healthy #MON" - line "could escape. You" - cont "have to be lucky!" - done - -_OaksLabPleaseVisitText:: - text "OAK: Come see me" - line "sometimes." - - para "I want to know how" - line "your #DEX is" - cont "coming along." - done - -_OaksLabText_1d31d:: - text "OAK: Good to see " - line "you! How is your " - cont "#DEX coming? " - cont "Here, let me take" - cont "a look!" - prompt - -_OaksLabText_1d32c:: - text "It's encyclopedia-" - line "like, but the" - cont "pages are blank!" - done - -_OaksLabText8:: - text "?" - done - -_OaksLabText_1d340:: - text "PROF.OAK is the" - line "authority on" - cont "#MON!" - - para "Many #MON" - line "trainers hold him" - cont "in high regard!" - done - -_OaksLabRivalWaitingText:: - text ": Gramps!" - line "I'm fed up with" - cont "waiting!" - done - -_OaksLabChooseMonText:: - text "OAK: Hmm? ?" - line "Why are you here" - cont "already?" - - para "I said for you to" - line "come by later..." - - para "Ah, whatever!" - line "Just wait there." - - para "Look, ! Do" - line "you see that ball" - cont "on the table?" - - para "It's called a #" - line "BALL. It holds a" - cont "#MON inside." - - para "You may have it!" - line "Go on, take it!" - done - -_OaksLabRivalInterjectionText:: - text ": Hey!" - line "Gramps! What" - cont "about me?" - done - -_OaksLabBePatientText:: - text "OAK: Be patient," - line ", I'll give" - cont "you one later." - done - -_OaksLabRivalTakesText1:: - text ": No way!" - line ", I want" - cont "this #MON!" - prompt - -_OaksLabRivalTakesText2:: - text " snatched" - line "the #MON!@@" - -_OaksLabRivalTakesText3:: - text "OAK: ! What" - line "are you doing?" - prompt - -_OaksLabRivalTakesText4:: - text ": Gramps, I" - line "want this one!" - prompt - -_OaksLabRivalTakesText5:: - text "OAK: But, I... Oh," - line "all right then." - cont "That #MON is" - cont "yours." - - para "I was going to" - line "give you one" - cont "anyway..." - - para ", come over" - line "here." - done - -_OaksLabOakGivesText:: - text "OAK: , this" - line "is the #MON I" - cont "caught earlier." - - para "You can have it." - line "I caught it in" - cont "the wild and it's" - cont "not tame yet." - prompt - -_OaksLabReceivedText:: - text " received" - line "a @" - TX_RAM wcd6d - text "!@@" - -_OaksLabLeavingText:: - text "OAK: Hey! Don't go" - line "away yet!" - done - -_OaksLabRivalChallengeText:: - text ": Wait" - line "!" - cont "Let's check out" - cont "our #MON!" - - para "Come on, I'll take" - line "you on!" - done - -_OaksLabText_1d3be:: - text "WHAT?" - line "Unbelievable!" - cont "I picked the" - cont "wrong #MON!" - prompt - -_OaksLabText_1d3c3:: - text ": Yeah! Am" - line "I great or what?" - prompt - -_OaksLabRivalToughenUpText:: - text ": Okay!" - line "I'll make my" - cont "#MON fight to" - cont "toughen it up!" - - para "! Gramps!" - line "Smell you later!" - done - -_OaksLabPikachuDislikesPokeballsText1:: - text "OAK: What?" - done - -_OaksLabPikachuDislikesPokeballsText2:: - text "OAK: Would you" - line "look at that!" - - para "It's odd, but it" - line "appears that your" - cont "PIKACHU dislikes" - cont "# BALLs." - - para "You should just" - line "keep it with you." - - para "That should make" - line "it happy!" - - para "You can talk to it" - line "and see how it" - cont "feels about you." - done - -_OaksLabText21:: - text ": Gramps!" - done - -_OaksLabText22:: - text ": Gramps," - line "my #MON has" - cont "grown stronger!" - cont "Check it out!" - done - -_OaksLabText23:: - text "OAK: Ah, ," - line "good timing!" - - para "I needed to ask" - line "both of you to do" - cont "something for me." - done - -_OaksLabText24:: - text "On the desk there" - line "is my invention," - cont "#DEX!" - - para "It automatically" - line "records data on" - cont "#MON you've" - cont "seen or caught!" - - para "It's a hi-tech" - line "encyclopedia!" - done - -_OaksLabText25:: - text "OAK: and" - line "! Take" - cont "these with you!" - - para " got" - line "#DEX from OAK!@@" - -_OaksLabText26:: - text "To make a complete" - line "guide on all the" - cont "#MON in the" - cont "world..." - - para "That was my dream!" - - para "But, I'm too old!" - line "I can't do it!" - - para "So, I want you two" - line "to fulfill my" - cont "dream for me!" - - para "Get moving, you" - line "two!" - - para "This is a great" - line "undertaking in" - cont "#MON history!" - done - -_OaksLabText27:: - text ": Alright" - line "Gramps! Leave it" - cont "all to me!" - - para ", I hate to" - line "say it, but I" - cont "don't need you!" - - para "I know! I'll" - line "borrow a TOWN MAP" - cont "from my sis!" - - para "I'll tell her not" - line "to lend you one," - cont "! Hahaha!" - done - -_OaksLabText_1d405:: - text "I study #MON as" - line "PROF.OAK's AIDE." - done diff --git a/text/maps/PalletTown.asm b/text/maps/PalletTown.asm deleted file mode 100644 index 9ca8dc93a..000000000 --- a/text/maps/PalletTown.asm +++ /dev/null @@ -1,67 +0,0 @@ -_OakAppearsText:: - text "OAK: Hey! Wait!" - line "Don't go out!@@" - -_OakWalksUpText:: - text "OAK: That was" - line "close!" - - para "Wild #MON live" - line "in tall grass!" - done - -_OakWhewText:: - text "OAK: Whew..." - done - -_OakGrassText:: - text "OAK: A #MON can" - line "appear anytime in" - cont "tall grass." - - para "You need your own" - line "#MON for your" - cont "protection." - cont "I know!" - - para "Here, come with" - line "me!" - done - -_PalletTownText2:: - text "I'm raising" - line "#MON too!" - - para "When they get" - line "strong, they can" - cont "protect me!" - done - -_PalletTownText3:: - text "Technology is" - line "incredible!" - - para "You can now store" - line "and recall items" - cont "and #MON as" - cont "data via PC!" - done - -_PalletTownText4:: - text "OAK #MON" - line "RESEARCH LAB" - done - -_PalletTownText5:: - text "PALLET TOWN" - line "Shades of your" - cont "journey await!" - done - -_PalletTownText6:: - text "'s house " - done - -_PalletTownText7:: - text "'s house " - done diff --git a/text/maps/PewterGym.asm b/text/maps/PewterGym.asm deleted file mode 100644 index 0e156577d..000000000 --- a/text/maps/PewterGym.asm +++ /dev/null @@ -1,184 +0,0 @@ -_PewterGymText_5c49e:: - text "I'm BROCK!" - line "I'm PEWTER's GYM" - cont "LEADER!" - - para "I believe in rock" - line "hard defense and" - cont "determination!" - - para "That's why my" - line "#MON are all" - cont "the rock-type!" - - para "Do you still want" - line "to challenge me?" - cont "Fine then! Show" - cont "me your best!" - done - -_PewterGymText_5c4a3:: - text "There are all" - line "kinds of trainers" - cont "in the world!" - - para "Some raise #MON" - line "for fights. Some" - cont "see them as pets." - - para "I'm in training to" - line "become a #MON" - cont "breeder." - - para "If you take your" - line "#MON training" - cont "seriously, go" - cont "visit the GYM in" - cont "CERULEAN and test" - cont "your abilities!" - done - -_TM34PreReceiveText:: - text "Wait! Take this" - line "with you!" - done - -_ReceivedTM34Text:: - text " received" - line "TM34!@@" - -_TM34ExplanationText:: - text "" - - para "A TM contains a" - line "technique that" - cont "can be taught to" - cont "#MON!" - - para "A TM is good only" - line "once! So when you" - cont "use one to teach" - cont "a new technique," - cont "pick the #MON" - cont "carefully!" - - para "TM34 contains" - line "BIDE!" - - para "Your #MON will" - line "absorb damage in" - cont "battle then pay" - cont "it back double!" - done - -_TM34NoRoomText:: - text "You don't have" - line "room for this!" - done - -_PewterGymText_5c4bc:: - text "I took" - line "you for granted." - - para "As proof of your" - line "victory, here's" - cont "the BOULDERBADGE!" - - para " received" - line "the BOULDERBADGE!@@" - -_PewterGymText_5c4c1:: - text "" - - para "That's an official" - line "#MON LEAGUE" - cont "BADGE!" - - para "Its bearer's" - line "#MON become" - cont "more powerful!" - - para "The technique" - line "FLASH can now be" - cont "used anytime!" - prompt - -_PewterGymBattleText1:: - text "Stop right there," - line "kid!" - - para "You're still light" - line "years from facing" - cont "BROCK!" - done - -_PewterGymEndBattleText1:: - text "Darn!" - - para "Light years isn't" - line "time! It measures" - cont "distance!" - prompt - -_PewterGymAfterBattleText1:: - text "You're pretty hot," - line "but not as hot" - cont "as BROCK!" - done - -_PewterGymText_5c515:: - text "Hiya! I can tell" - line "you have what it" - cont "takes to become a" - cont "#MON champ!" - - para "I'm no trainer," - line "but I can tell" - cont "you how to win!" - - para "Let me take you" - line "to the top!" - done - -_PewterGymText_5c51a:: - text "All right! Let's" - line "get happening!" - prompt - -_PewterGymText_5c51f:: - text "The 1st #MON" - line "out in a match is" - cont "at the top of the" - cont "#MON LIST!" - - para "By changing the" - line "order of #MON," - cont "matches could be" - cont "made easier!" - done - -_PewterGymText_5c524:: - text "It's a free" - line "service! Let's" - cont "get happening!" - prompt - -_PewterGymText_5c529:: - text "Just as I thought!" - line "You're #MON" - cont "champ material!" - done - -_PewterGymGuyText:: - text "All right! Let's" - line "get happening!" - - para "It will be tough" - line "for your PIKACHU" - cont "at this GYM!" - - para "Electric attacks" - line "are harmless to" - cont "BROCK's ground-" - cont "type #MON." - done diff --git a/text/maps/PewterNidoranHouse.asm b/text/maps/PewterNidoranHouse.asm deleted file mode 100644 index 450e83727..000000000 --- a/text/maps/PewterNidoranHouse.asm +++ /dev/null @@ -1,24 +0,0 @@ -_PewterHouse1Text1:: - text "NIDORAN: Bowbow!@@" - -_PewterHouse1Text2:: - text "NIDORAN sit!" - done - -_PewterHouse1Text3:: - text "Our #MON's an" - line "outsider, so it's" - cont "hard to handle." - - para "An outsider is a" - line "#MON that you" - cont "get in a trade." - - para "It grows fast, but" - line "it may ignore an" - cont "unskilled trainer" - cont "in battle!" - - para "If only we had" - line "some BADGEs..." - done diff --git a/text/maps/PokemonFanClub.asm b/text/maps/PokemonFanClub.asm deleted file mode 100644 index 5fcd469d6..000000000 --- a/text/maps/PokemonFanClub.asm +++ /dev/null @@ -1,178 +0,0 @@ -PikachuFanText:: - text "Won't you admire" - line "my CLEFAIRY's" - cont "adorable tail?" - done - -PikachuFanBetterText:: - text "Humph! My CLEFAIRY" - line "is twice as cute" - cont "as that one!" - done - -PikachuFanPrintText:: - text "Our CHAIRMAN's new" - line "hobby is taking" - cont "#MON photos." - - para "He gave me a nice" - line "PRINT of my cute" - cont "CLEFAIRY." - done - -SeelFanText:: - text "I just love my" - line "SEEL!" - - para "It squeals when I" - line "hug it!" - done - -SeelFanBetterText:: - text "Oh dear!" - - para "My SEEL is far" - line "more attractive!" - done - -SeelFanPrintText:: - text "I'm going to hook" - line "up the cable to" - cont "get a photo PRINT" - cont "of my SEEL!" - done - -FanClubPikachuText:: - text "CLEFAIRY: Pippii!" - done - -FanClubSeelText:: - text "SEEL: Kyuoo!" - done - -FanClubMeetChairText:: - text "I chair the" - line "#MON Fan Club!" - - para "I have more than" - line "100 #MON. I" - cont "love them all!" - - para "I'm very fussy" - line "when it comes to" - cont "#MON!" - - para "So..." - - para "Did you come to" - line "hear me brag" - cont "about my #MON?" - done - -FanClubChairStoryText:: - text "Good!" - line "Then listen up!" - - para "My favorite" - line "RAPIDASH..." - - para "It...cute..." - line "lovely...smart..." - cont "plus...amazing..." - cont "you think so?..." - cont "oh yes...it..." - cont "stunning..." - cont "kindly..." - cont "love it!" - - para "Hug it...when..." - line "sleeping...warm" - cont "and cuddly..." - cont "spectacular..." - cont "ravishing..." - cont "...Oops! Look at" - cont "the time! I kept" - cont "you too long!" - - para "Thanks for hearing" - line "me out! I want" - cont "you to have this!" - prompt - -ReceivedBikeVoucherText:: - text " received" - line "a @" - TX_RAM wcf4b - text "!@@" - -ExplainBikeVoucherText:: - text "" - para "Exchange that for" - line "a BICYCLE!" - - para "Don't worry, my" - line "FEAROW will FLY" - cont "me anywhere!" - - para "So, I don't need a" - line "BICYCLE!" - - para "I hope you like" - line "cycling!" - done - -FanClubNoStoryText:: - text "Oh. Come back" - line "when you want to" - cont "hear my story!" - done - -FanClubChairFinalText:: - text "Hello, !" - - para "Did you come see" - line "me about my" - cont "#MON again?" - - para "No? Too bad!" - done - -FanClubBagFullText:: - text "Make room for" - line "this!" - done - -FanClubChairPrintText1:: - text "Hi there, !" - line "Have you seen my" - cont "#MON photos?" - - para "I have them framed" - line "up on that wall." - - para "Ah, I know!" - - para "Would you like me" - line "to take a photo" - cont "of your #MON?" - done - -FanClubChairPrintText2:: - text "No? That's really" - line "disappointing." - done - -FanClubChairPrintText3:: - text "OK, I'm done." - done - -FanClubChairPrintText4:: - text "Maybe we won't" - line "PRINT this now." - done - -_FanClubText6:: - text "Our CHAIRMAN is" - line "very vocal about" - cont "#MON." - done diff --git a/text/maps/PokemonTower7F.asm b/text/maps/PokemonTower7F.asm deleted file mode 100644 index 652cf37aa..000000000 --- a/text/maps/PokemonTower7F.asm +++ /dev/null @@ -1,49 +0,0 @@ -_PokemonTowerJessieJamesText1:: - text "Stop right there!@@" - -_PokemonTowerJessieJamesText2:: - text "Grampa here wanted" - line "to complain, so" - cont "we're setting him" - cont "straight." - - para "So render yourself" - line "invisible, or" - cont "prepare to fight!" - done - -_PokemonTowerJessieJamesText3:: - text "You" - line "will regret this!" - prompt - -_PokemonTowerJessieJamesText4:: - text "Looks like TEAM" - line "ROCKET's blasting" - cont "off again!@@" - -_TowerRescueFujiText:: - text "MR.FUJI: Heh? You" - line "came to save me?" - - para "Thank you. But, I" - line "came here of my" - cont "own free will." - - para "I came to calm" - line "the soul of" - cont "CUBONE's mother." - - para "I think MAROWAK's" - line "spirit has gone" - cont "to the afterlife." - - para "I must thank you" - line "for your kind" - cont "concern!" - - para "Follow me to my" - line "home, #MON" - cont "HOUSE at the foot" - cont "of this tower." - done diff --git a/text/maps/PowerPlant.asm b/text/maps/PowerPlant.asm deleted file mode 100644 index e5df66747..000000000 --- a/text/maps/PowerPlant.asm +++ /dev/null @@ -1,6 +0,0 @@ -_VoltorbBattleText:: - text "Bzzzt!" - done - -_ZapdosBattleText:: - text "Gyaoo!@@" diff --git a/text/maps/RocketHideoutB1F.asm b/text/maps/RocketHideoutB1F.asm deleted file mode 100644 index 36117804f..000000000 --- a/text/maps/RocketHideoutB1F.asm +++ /dev/null @@ -1,73 +0,0 @@ -_RocketHideout1EndBattleText6:: - text "Why...?@@" - -_RocketHideout1BattleText2:: - text "Who are you? How" - line "did you get here?" - done - -_RocketHideout1EndBattleText2:: - text "Oww!" - line "Beaten!" - prompt - -_RocketHideout1AfterBattleTxt2:: - text "Are you dissing" - line "TEAM ROCKET?" - done - -_RocketHideout1BattleText3:: - text "You broke into" - line "our operation?" - done - -_RocketHideout1EndBattleText3:: - text "Burnt!" - prompt - -_RocketHideout1AfterBattleTxt3:: - text "You're not going" - line "to get away with" - cont "this, brat!" - done - -_RocketHideout1BattleText4:: - text "Intruder alert!" - done - -_RocketHideout1EndBattleText4:: - text "I" - line "can't do it!" - prompt - -_RocketHideout1AfterBattleTxt4:: - text "SILPH SCOPE?" - line "I don't know" - cont "where it is!" - done - -_RocketHideout1BattleText5:: - text "Why did you come" - line "here?" - done - -_RocketHideout1EndBattleText5:: - text "This" - line "won't do!" - prompt - -_RocketHideout1AfterBattleTxt5:: - text "OK, I'll talk!" - line "Take the elevator" - cont "to see my BOSS!" - done - -_RocketHideout1BattleText6:: - text "Are you lost, you" - line "little rat?" - done - -_RocketHideout1AfterBattleTxt6:: - text "Uh-oh, that fight" - line "opened the door!" - done diff --git a/text/maps/RocketHideoutB4F.asm b/text/maps/RocketHideoutB4F.asm deleted file mode 100644 index d9e134573..000000000 --- a/text/maps/RocketHideoutB4F.asm +++ /dev/null @@ -1,65 +0,0 @@ -_RocketHideoutJessieJamesText1:: - text "Not another step," - line "brat!@@" - -_RocketHideoutJessieJamesText2:: - text "How dare you" - line "humiliate us at" - cont "MT.MOON!" - - para "It's payback time," - line "you brat!" - done - -_RocketHideoutJessieJamesText3:: - text "Such" - line "a dreadful twerp!" - prompt - -_RocketHideoutJessieJamesText4:: - text "Looks like TEAM" - line "ROCKET's blasting" - cont "off again!@@" - -_RocketHideout4Text_4557a:: - text "So! I must say, I" - line "am impressed you" - cont "got here!" - done - -_RocketHideout4Text_4557f:: - text "WHAT!" - line "This cannot be!" - prompt - -_RocketHideout4Text_45584:: - text "I see that you" - line "raise #MON" - cont "with utmost care." - - para "A child like you" - line "would never" - cont "understand what I" - cont "hope to achieve." - - para "I shall step" - line "aside this time!" - - para "I hope we meet" - line "again..." - done - -_RocketHideout4BattleText4:: - text "The elevator" - line "doesn't work? Who" - cont "has the LIFT KEY?" - done - -_RocketHideout4EndBattleText4:: - text "No!" - prompt - -_RocketHideout4Text_455ec:: - text "Oh no! I dropped" - line "the LIFT KEY!" - done diff --git a/text/maps/RocketHideoutElevator.asm b/text/maps/RocketHideoutElevator.asm deleted file mode 100644 index 6f2aa638a..000000000 --- a/text/maps/RocketHideoutElevator.asm +++ /dev/null @@ -1,3 +0,0 @@ -_RocketElevatorText_4578b:: - text "It appears to" - line "need a key.@@" diff --git a/text/maps/Route1.asm b/text/maps/Route1.asm deleted file mode 100644 index 73188f094..000000000 --- a/text/maps/Route1.asm +++ /dev/null @@ -1,49 +0,0 @@ -_Route1ViridianMartSampleText:: - text "Hi! I work at a" - line "#MON MART." - - para "It's a convenient" - line "shop, so please" - cont "visit us in" - cont "VIRIDIAN CITY." - - para "I know, I'll give" - line "you a sample!" - cont "Here you go!" - prompt - -_Route1Text_1cae8:: - text " got" - line "@" - TX_RAM wcf4b - text "!@@" - -_Route1Text_1caee:: - text "We also carry" - line "# BALLs for" - cont "catching #MON!" - done - -_Route1Text_1caf3:: - text "You have too much" - line "stuff with you!" - done - -_Route1Text2:: - text "See those ledges" - line "along the road?" - - para "It's a bit scary," - line "but you can jump" - cont "from them." - - para "You can get back" - line "to PALLET TOWN" - cont "quicker that way." - done - -_Route1Text3:: - text "ROUTE 1" - line "PALLET TOWN -" - cont "VIRIDIAN CITY" - done diff --git a/text/maps/Route12Gate2F.asm b/text/maps/Route12Gate2F.asm deleted file mode 100644 index 5994b5ffe..000000000 --- a/text/maps/Route12Gate2F.asm +++ /dev/null @@ -1,42 +0,0 @@ -_TM39PreReceiveText:: - text "My #MON's" - line "ashes are stored" - cont "in #MON TOWER." - - para "You can have this" - line "TM. I don't need" - cont "it anymore..." - prompt - -_ReceivedTM39Text:: - text " received" - line "TM39!@@" - -_TM39ExplanationText:: - text "TM39 is a move" - line "called SWIFT." - - para "It's very accurate," - line "so use it during" - cont "battles you can't" - cont "afford to lose." - done - -_TM39NoRoomText:: - text "You don't have" - line "room for this." - done - -_Route12GateUpstairsText_495b8:: - text "Looked into the" - line "binoculars." - - para "A man fishing!" - done - -_Route12GateUpstairsText_495c4:: - text "Looked into the" - line "binoculars." - - para "It's #MON TOWER!" - done diff --git a/text/maps/Route12SuperRodHouse.asm b/text/maps/Route12SuperRodHouse.asm deleted file mode 100644 index 7dfaa74fa..000000000 --- a/text/maps/Route12SuperRodHouse.asm +++ /dev/null @@ -1,61 +0,0 @@ -_Route12HouseText_564c0:: - text "I'm the FISHING" - line "GURU's brother!" - - para "I simply Looove" - line "fishing!" - - para "Do you like to" - line "fish?" - done - -_Route12HouseText_564c5:: - text "Grand! I like" - line "your style!" - - para "Take this and" - line "fish, young one!" - - para " received" - line "a @" - TX_RAM wcf4b - text "!@@" - -_Route12HouseText_564ca:: - text "" - - para "Fishing is a way" - line "of life!" - - para "From the seas to" - line "rivers, go out" - cont "and land the big" - cont "one!" - done - -_Route12HouseText_564cf:: - text "Oh... That's so" - line "disappointing..." - done - -_Route12HouseText_564d4:: - text "Hello there," - line "!" - - para "Use the SUPER ROD" - line "in any water!" - cont "You can catch" - cont "different kinds" - cont "of #MON." - - para "Try fishing" - line "wherever you can!" - done - -_Route12HouseText_564d9:: - text "Oh no!" - - para "I had a gift for" - line "you, but you have" - cont "no room for it!" - done diff --git a/text/maps/Route15.asm b/text/maps/Route15.asm deleted file mode 100644 index a23b8500b..000000000 --- a/text/maps/Route15.asm +++ /dev/null @@ -1,171 +0,0 @@ -_Route15BattleText1:: - text "Let me try out the" - line "#MON I just" - cont "got in a trade!" - done - -_Route15EndBattleText1:: - text "Not" - line "good enough!" - prompt - -_Route15AfterBattleText1:: - text "You can't change" - line "the nickname of" - cont "any #MON you" - cont "get in a trade." - - para "Only the Original" - line "Trainer can." - done - -_Route15BattleText2:: - text "You look gentle," - line "so I think I can" - cont "beat you!" - done - -_Route15EndBattleText2:: - text "No," - line "wrong!" - prompt - -_Route15AfterBattleText2:: - text "I'm afraid of" - line "BIKERs, they look" - cont "so ugly and mean!" - done - -_Route15BattleText3:: - text "When I whistle, I" - line "can summon bird" - cont "#MON!" - done - -_Route15EndBattleText3:: - text "Ow!" - line "That's tragic!" - prompt - -_Route15AfterBattleText3:: - text "Maybe I'm not cut" - line "out for battles." - done - -_Route15BattleText4:: - text "Hmm? My birds are" - line "shivering! You're" - cont "good, aren't you?" - done - -_Route15EndBattleText4:: - text "Just" - line "as I thought!" - prompt - -_Route15AfterBattleText4:: - text "Did you know moves" - line "like EARTHQUAKE" - cont "don't have any" - cont "effect on birds?" - done - -_Route15BattleText5:: - text "Oh, you're a" - line "little cutie!" - done - -_Route15EndBattleText5:: - text "You looked" - line "so cute too!" - prompt - -_Route15AfterBattleText5:: - text "I forgive you!" - line "I can take it!" - done - -_Route15BattleText6:: - text "I raise #MON" - line "because I live" - cont "alone!" - done - -_Route15EndBattleText6:: - text "I didn't" - line "ask for this!" - prompt - -_Route15AfterBattleText6:: - text "I just like going" - line "home to be with" - cont "my #MON!" - done - -_Route15BattleText7:: - text "Hey kid! C'mon!" - line "I just got these!" - done - -_Route15EndBattleText7:: - text "Why" - line "not?" - prompt - -_Route15AfterBattleText7:: - text "You only live" - line "once, so I live" - cont "as an outlaw!" - cont "TEAM ROCKET RULES!" - done - -_Route15BattleText8:: - text "Fork over all your" - line "cash when you" - cont "lose to me, kid!" - done - -_Route15EndBattleText8:: - text "That" - line "can't be true!" - prompt - -_Route15AfterBattleText8:: - text "I was just joking" - line "about the money!" - done - -_Route15BattleText9:: - text "What's cool?" - line "Trading #MON!" - done - -_Route15EndBattleText9:: - text "I" - line "said trade!" - prompt - -_Route15AfterBattleText9:: - text "I trade #MON" - line "with my friends!" - done - -_Route15BattleText10:: - text "Want to play with" - line "my #MON?" - done - -_Route15EndBattleText10:: - text "I was" - line "too impatient!" - prompt - -_Route15AfterBattleText10:: - text "I'll go train with" - line "weaker people.@@" - -_Route15Text12:: - text "ROUTE 15" - line "West to FUCHSIA" - cont "CITY" - done diff --git a/text/maps/Route16FlyHouse.asm b/text/maps/Route16FlyHouse.asm deleted file mode 100644 index 77efde875..000000000 --- a/text/maps/Route16FlyHouse.asm +++ /dev/null @@ -1,31 +0,0 @@ -_Route16HouseText3:: - text "Oh, you found my" - line "secret retreat!" - - para "Please don't tell" - line "anyone I'm here." - cont "I'll make it up" - cont "to you with this!" - prompt - -_ReceivedHM02Text:: - text " received" - line "HM02!@@" - -_HM02ExplanationText:: - text "HM02 is FLY." - line "It will take you" - cont "back to any town." - - para "Put it to good" - line "use!" - done - -_HM02NoRoomText:: - text "You don't have any" - line "room for this." - done - -_Route16HouseText_1e652:: - text "FEAROW: Kyueen!" - done diff --git a/text/maps/Route22Gate.asm b/text/maps/Route22Gate.asm deleted file mode 100644 index ce3f6824c..000000000 --- a/text/maps/Route22Gate.asm +++ /dev/null @@ -1,20 +0,0 @@ -_Route22GateText_1e704:: - text "Only truly skilled" - line "trainers are" - cont "allowed through." - - para "You don't have the" - line "BOULDERBADGE yet!@@" - -_Route22GateText_1e715:: - text "" - - para "The rules are" - line "rules. I can't" - cont "let you pass." - done - -_Route22GateText_1e71a:: - text "Oh! That is the" - line "BOULDERBADGE!" - cont "Go right ahead!@@" diff --git a/text/maps/Route23.asm b/text/maps/Route23.asm deleted file mode 100644 index a7e534deb..000000000 --- a/text/maps/Route23.asm +++ /dev/null @@ -1,39 +0,0 @@ -_VictoryRoadGuardText1:: - text "You can pass here" - line "only if you have" - cont "the @" - TX_RAM wcd6d - text "!" - - para "You don't have the" - line "@" - TX_RAM wcd6d - text " yet!" - - para "You have to have" - line "it to get to" - cont "#MON LEAGUE!@@" - -_VictoryRoadGuardText2:: - text "You can pass here" - line "only if you have" - cont "the @" - TX_RAM wcd6d - text "!" - - para "Oh! That is the" - line "@" - TX_RAM wcd6d - text "!@@" - -_VictoryRoadGuardText_513a3:: - text "" - - para "OK then! Please," - line "go right ahead!" - done - -_Route23Text8:: - text "VICTORY ROAD GATE" - line "- #MON LEAGUE" - done diff --git a/text/maps/Route24.asm b/text/maps/Route24.asm deleted file mode 100644 index 0771aea3f..000000000 --- a/text/maps/Route24.asm +++ /dev/null @@ -1,184 +0,0 @@ -_Route24Text_51510:: - text "Congratulations!" - line "You beat our 5" - cont "contest trainers!@@" - -_Route24Text_51515:: - text "" - - para "You just earned a" - line "fabulous prize!" - prompt - -_Route24Text_5151a:: - text " received" - line "a @" - TX_RAM wcf4b - text "!@@" - -_Route24Text_51521:: - text "You don't have" - line "any room!" - done - -_Route24Text_51526:: - text "By the way, would" - line "you like to join" - cont "TEAM ROCKET?" - - para "We're a group" - line "dedicated to evil" - cont "using #MON!" - - para "Want to join?" - - para "Are you sure?" - - para "Come on, join us!" - - para "I'm telling you" - line "to join!" - - para "OK, you need" - line "convincing!" - - para "I'll make you an" - line "offer you can't" - cont "refuse!" - done - -_Route24Text_5152b:: - text "Arrgh!" - line "You are good!" - prompt - -_Route24Text_51530:: - text "With your ability," - line "you could become" - cont "a top leader in" - cont "TEAM ROCKET!" - done - -_Route24BattleText1:: - text "I saw your feat" - line "from the grass!" - done - -_Route24EndBattleText1:: - text "I" - line "thought not!" - prompt - -_Route24AfterBattleText1:: - text "I hid because the" - line "people on the" - cont "bridge scared me!" - done - -_Route24BattleText2:: - text "OK! I'm No. 5!" - line "I'll stomp you!" - done - -_Route24EndBattleText2:: - text "Whoa!" - line "Too much!" - prompt - -_Route24AfterBattleText2:: - text "I did my best, I" - line "have no regrets!" - done - -_Route24BattleText3:: - text "I'm No. 4!" - line "Getting tired?" - done - -_Route24EndBattleText3:: - text "I lost" - line "too!" - prompt - -_Route24AfterBattleText3:: - text "I did my best, so" - line "I've no regrets!" - done - -_Route24BattleText4:: - text "Here's No. 3!" - line "I won't be easy!" - done - -_Route24EndBattleText4:: - text "Ow!" - line "Stomped flat!" - prompt - -_Route24AfterBattleText4:: - text "I did my best, I" - line "have no regrets!" - done - -_Route24BattleText5:: - text "I'm second!" - line "Now it's serious!" - done - -_Route24EndBattleText5:: - text "How could I" - line "lose?" - prompt - -_Route24AfterBattleText5:: - text "I did my best, I" - line "have no regrets!" - done - -_Route24BattleText6:: - text "This is NUGGET" - line "BRIDGE! Beat us 5" - cont "trainers and win" - cont "a fabulous prize!" - - para "Think you got" - line "what it takes?" - done - -_Route24EndBattleText6:: - text "Whoo!" - line "Good stuff!" - prompt - -_Route24AfterBattleText6:: - text "I did my best, I" - line "have no regrets!" - done - -_Route24DamianText1:: - text "I'm not good at" - line "raising #MON." - - para "I should release" - line "my CHARMANDER" - cont "because I haven't" - cont "raised it well..." - - para "If you promise me" - line "you'll care for" - cont "it, it's yours." - done - -_Route24DamianText2:: - text "Take good care of" - line "my CHARMANDER!@@" - -_Route24DamianText3:: - text "Oh... I'd better" - line "release it then." - done - -_Route24DamianText4:: - text "How's CHARMANDER" - line "doing?" - done diff --git a/text/maps/SSAnne1FRooms.asm b/text/maps/SSAnne1FRooms.asm deleted file mode 100644 index 7a09303e3..000000000 --- a/text/maps/SSAnne1FRooms.asm +++ /dev/null @@ -1,104 +0,0 @@ -_SSAnne8Text8:: - text "WIGGLYTUFF: Puup" - line "pupuu!@@" - -_SSAnne8BattleText1:: - text "I travel alone" - line "on my journeys!" - - para "My #MON are my" - line "only friends!" - done - -_SSAnne8EndBattleText1:: - text "My, my" - line "friends..." - prompt - -_SSAnne8AfterBattleText1:: - text "You should be" - line "nice to friends!" - done - -_SSAnne8BattleText2:: - text "You pup! How dare" - line "you barge in!" - done - -_SSAnne8EndBattleText2:: - text "Humph!" - line "You rude child!" - prompt - -_SSAnne8AfterBattleText2:: - text "I wish to be left" - line "alone! Get out!" - done - -_SSAnne8BattleText3:: - text "I love #MON!" - line "Do you?" - done - -_SSAnne8EndBattleText3:: - text "Wow! " - line "You're great!" - prompt - -_SSAnne8AfterBattleText3:: - text "Let me be your" - line "friend, OK?" - - para "Then we can trade" - line "#MON!" - done - -_SSAnne8BattleText4:: - text "I collected these" - line "#MON from all" - cont "around the world!" - done - -_SSAnne8EndBattleText4:: - text "Oh no!" - line "I went around the" - cont "world for these!" - prompt - -_SSAnne8AfterBattleText4:: - text "You hurt my poor" - line "worldly #MON!" - - para "I demand that you" - line "heal them at a" - cont "#MON CENTER!" - done - -_SSAnne8Text5:: - text "Waiter, I would" - line "like a cherry pie" - cont "please!" - done - -_SSAnne8Text6:: - text "A cruise is so" - line "elegant yet cozy!" - done - -_SSAnne8Text7:: - text "I always travel" - line "with WIGGLYTUFF!" - done - -_SSAnne8Text9:: - text "We are cruising" - line "around the world." - done - -_SSAnne8Text11:: - text "Ssh! I'm a GLOBAL" - line "POLICE agent!" - - para "I'm on the trail" - line "of TEAM ROCKET!" - done diff --git a/text/maps/SSAnneB1FRooms.asm b/text/maps/SSAnneB1FRooms.asm deleted file mode 100644 index 7df629b5b..000000000 --- a/text/maps/SSAnneB1FRooms.asm +++ /dev/null @@ -1,112 +0,0 @@ -_SSAnne10Text8:: - text "MACHOKE: Gwoh!" - line "Goggoh!@@" - -_SSAnne10BattleText1:: - text "You know what they" - line "say about sailors" - cont "and fighting!" - done - -_SSAnne10EndBattleText1:: - text "Right!" - line "Good fight, mate!" - prompt - -_SSAnne10AfterBattleText1:: - text "Haha! Want to be" - line "a sailor, mate?" - done - -_SSAnne10BattleText2:: - text "My sailor's pride" - line "is at stake!" - done - -_SSAnne10EndBattleText2:: - text "Your" - line "spirit sank me!" - prompt - -_SSAnne10AfterBattleText2:: - text "Did you see the" - line "FISHING GURU in" - cont "VERMILION CITY?" - done - -_SSAnne10BattleText3:: - text "Us sailors have" - line "#MON too!" - done - -_SSAnne10EndBattleText3:: - text "OK, " - line "you're not bad." - prompt - -_SSAnne10AfterBattleText3:: - text "We caught all our" - line "#MON while" - cont "out at sea!" - done - -_SSAnne10BattleText4:: - text "I like feisty" - line "kids like you!@@" - -_SSAnne10EndBattleText4:: - text "Argh!" - line "Lost it!" - prompt - -_SSAnne10AfterBattleText4:: - text "Sea #MON live" - line "in deep water." - cont "You'll need a ROD!" - done - -_SSAnne10BattleText5:: - text "Matey, you're" - line "walking the plank" - cont "if you lose!" - done - -_SSAnne10EndBattleText5:: - text "Argh!" - line "Beaten by a kid!" - prompt - -_SSAnne10AfterBattleText5:: - text "Jellyfish some-" - line "times drift into" - cont "the ship." - done - -_SSAnne10BattleText6:: - text "Hello stranger!" - line "Stop and chat!" - - para "All my #MON" - line "are from the sea!" - done - -_SSAnne10EndBattleText6:: - text "Darn!" - line "I let that one" - cont "get away!" - prompt - -_SSAnne10AfterBattleText6:: - text "I was going to" - line "make you my" - cont "assistant too!" - done - -_SSAnne10Text7:: - text "My buddy, MACHOKE," - line "is super strong!" - - para "He has enough" - line "STRENGTH to move" - cont "big rocks!" - done diff --git a/text/maps/SSAnneCaptainsRoom.asm b/text/maps/SSAnneCaptainsRoom.asm deleted file mode 100644 index bbc52bd72..000000000 --- a/text/maps/SSAnneCaptainsRoom.asm +++ /dev/null @@ -1,62 +0,0 @@ -_SSAnne7RubText:: - text "CAPTAIN: Ooargh..." - line "I feel hideous..." - cont "Urrp! Seasick..." - - para " rubbed" - line "the CAPTAIN's" - cont "back!" - - para "Rub-rub..." - line "Rub-rub...@@" - -_ReceivingHM01Text:: - text "CAPTAIN: Whew!" - line "Thank you! I" - cont "feel much better!" - - para "You want to see" - line "my CUT technique?" - - para "I could show you" - line "if I wasn't ill..." - - para "I know! You can" - line "have this!" - - para "Teach it to your" - line "#MON and you" - cont "can see it CUT" - cont "anytime!" - prompt - -_ReceivedHM01Text:: - text " got" - line "@" - TX_RAM wcf4b - text "!@@" - -_SSAnne7Text_61932:: - text "CAPTAIN: Whew!" - - para "Now that I'm not" - line "sick anymore, I" - cont "guess it's time." - done - -_HM01NoRoomText:: - text "Oh no! You have" - line "no room for this!" - done - -_SSAnne7Text2:: - text "Yuck! Shouldn't" - line "have looked!" - done - -_SSAnne7Text3:: - text "How to Conquer" - line "Seasickness..." - cont "The CAPTAIN's" - cont "reading this!" - done diff --git a/text/maps/SafariZoneGate.asm b/text/maps/SafariZoneGate.asm deleted file mode 100644 index a426d132d..000000000 --- a/text/maps/SafariZoneGate.asm +++ /dev/null @@ -1,143 +0,0 @@ -_SafariZoneEntranceText1:: - text "Welcome to the" - line "SAFARI ZONE!" - done - -SafariZoneEntranceText_9e814:: - text "Leaving early?@@" - -_SafariZoneEntranceText_753bb:: - text "Please return any" - line "SAFARI BALLs you" - cont "have left." - done - -_SafariZoneEntranceText_753c0:: - text "Good Luck!" - done - -_SafariZoneEntranceText_753c5:: - text "Did you get a" - line "good haul?" - cont "Come again!" - done - -SafariZoneEntranceText_9e6e4:: - text "For just ¥500," - line "you can catch all" - cont "the #MON you" - cont "want in the park!" - - para "Would you like to" - line "join the hunt?@@" - -SafariZoneEntranceText_9e747:: - text "That'll be ¥@" - TX_BCD wPriceTemp, $c3 - text "," - line "please!" - - para "We only use a" - line "special # BALL" - cont "here." - - para " received" - line "30 SAFARI BALLs!@@" - -_SafariZoneEntranceText_75360:: - text "" - - para "We'll call you on" - line "the PA when you" - cont "run out of time" - cont "or SAFARI BALLs!" - done - -_SafariZoneEntranceText_75365:: - text "OK! Please come" - line "again!" - done - -_SafariZoneEntranceText_7536a:: - text "Oops! Not enough" - line "money!" - done - -_SafariZoneEntranceText_753e6:: - text "Hi! Is it your" - line "first time here?" - done - -_SafariZoneEntranceText_753eb:: - text "SAFARI ZONE has 4" - line "zones in it." - - para "Each zone has" - line "different kinds" - cont "of #MON. Use" - cont "SAFARI BALLs to" - cont "catch them!" - - para "When you run out" - line "of time or SAFARI" - cont "BALLs, it's game" - cont "over for you!" - - para "Before you go," - line "open an unused" - cont "#MON BOX so" - cont "there's room for" - cont "new #MON!" - done - -_SafariZoneEntranceText_753f0:: - text "Sorry, you're a" - line "regular here!" - done - -_SafariZoneLowCostText1:: - text "" - - para "Oh, all right, pay" - line "me what you have." - prompt - -_SafariZoneLowCostText2:: - text "But, I can't give" - line "you all 30 BALLs." - done - -_SafariZoneLowCostText3:: - text "" - - para "You're persistent," - line "aren't you?" - - para "OK, you can go in" - line "for free, but" - cont "just this once!@@" - -_SafariZoneLowCostText4:: - text "" - done - -_SafariZoneLowCostText5:: - text "I'm sorry, but you" - line "have to pay to" - cont "enter." - done - -_SafariZoneLowCostText6:: - text "You can't enter" - line "without paying!" - done - -_SafariZoneLowCostText7:: - text "I said, no money," - line "no entry!" - done - -_SafariZoneLowCostText8:: - text "Read my lips, NO!" - line "Get it?" - done diff --git a/text/maps/SafariZoneSecretHouse.asm b/text/maps/SafariZoneSecretHouse.asm deleted file mode 100644 index 3df79d908..000000000 --- a/text/maps/SafariZoneSecretHouse.asm +++ /dev/null @@ -1,44 +0,0 @@ -_SecretHouseText_4a350:: - text "Ah! Finally!" - - para "You're the first" - line "person to reach" - cont "the SECRET HOUSE!" - - para "I was getting" - line "worried that no" - cont "one would win our" - cont "campaign prize." - - para "Congratulations!" - line "You have won!" - prompt - -_ReceivedHM03Text:: - text " received" - line "@" - TX_RAM wcf4b - text "!@@" - -_HM03ExplanationText:: - text "HM03 is SURF!" - - para "#MON will be" - line "able to ferry you" - cont "across water!" - - para "And, this HM isn't" - line "disposable! You" - cont "can use it over" - cont "and over!" - - para "You're super lucky" - line "for winning this" - cont "fabulous prize!" - done - -_HM03NoRoomText:: - text "You don't have" - line "room for this" - cont "fabulous prize!" - done diff --git a/text/maps/SaffronCity.asm b/text/maps/SaffronCity.asm deleted file mode 100644 index a0422c8ce..000000000 --- a/text/maps/SaffronCity.asm +++ /dev/null @@ -1,151 +0,0 @@ -_SaffronCityText1:: - text "What do you want?" - line "Get lost!" - done - -_SaffronCityText2:: - text "BOSS said he'll" - line "take this town!" - done - -_SaffronCityText3:: - text "Get out of the" - line "way!" - done - -_SaffronCityText4:: - text "SAFFRON belongs" - line "to TEAM ROCKET!" - done - -_SaffronCityText5:: - text "Being evil makes" - line "me feel so alive!" - done - -_SaffronCityText6:: - text "Ow! Watch where" - line "you're walking!" - done - -_SaffronCityText7:: - text "With SILPH under" - line "control, we can" - cont "exploit #MON" - cont "around the world!" - done - -_SaffronCityText8:: - text "You beat TEAM" - line "ROCKET all alone?" - cont "That's amazing!" - done - -_SaffronCityText9:: - text "Yeah! TEAM ROCKET" - line "is gone!" - cont "It's safe to go" - cont "out again!" - done - -_SaffronCityText10:: - text "People should be" - line "flocking back to" - cont "SAFFRON now." - done - -_SaffronCityText11:: - text "I flew here on my" - line "PIDGEOT when I" - cont "read about SILPH." - - para "It's already over?" - line "I missed the" - cont "media action." - done - -_SaffronCityText12:: - text "PIDGEOT: Bi bibii!@@" - -_SaffronCityText13:: - text "I saw ROCKET" - line "BOSS escaping" - cont "SILPH's building." - done - -_SaffronCityText14:: - text "I'm a security" - line "guard." - - para "Suspicious kids I" - line "don't allow in!" - done - -_SaffronCityText15:: - text "..." - line "Snore..." - - para "Hah! He's taking" - line "a snooze!" - done - -_SaffronCityText16:: - text "SAFFRON CITY" - line "Shining, Golden" - cont "Land of Commerce" - done - -_SaffronCityText17:: - text "FIGHTING DOJO" - done - -_SaffronCityText18:: - text "SAFFRON CITY" - line "#MON GYM" - cont "LEADER: SABRINA" - - para "The Master of" - line "Psychic #MON!" - done - -_SaffronCityText20:: - text "TRAINER TIPS" - - para "FULL HEAL cures" - line "all ailments like" - cont "sleep and burns." - - para "It costs a bit" - line "more, but it's" - cont "more convenient." - done - -_SaffronCityText21:: - text "TRAINER TIPS" - - para "New GREAT BALL" - line "offers improved" - cont "capture rates." - - para "Try it on those" - line "hard-to-catch" - cont "#MON." - done - -_SaffronCityText22:: - text "SILPH CO." - line "OFFICE BUILDING" - done - -_SaffronCityText24:: - text "MR.PSYCHIC's" - line "HOUSE" - done - -_SaffronCityText25:: - text "SILPH's latest" - line "product!" - - para "Release to be" - line "determined..." - done diff --git a/text/maps/SaffronGym.asm b/text/maps/SaffronGym.asm deleted file mode 100644 index 52ea321b5..000000000 --- a/text/maps/SaffronGym.asm +++ /dev/null @@ -1,236 +0,0 @@ -_SaffronGymText_5d162:: - text "I had a vision of" - line "your arrival!" - - para "I have had psychic" - line "powers since I" - cont "was a child." - - para "I first learned" - line "to bend spoons" - cont "with my mind." - - para "I dislike fight-" - line "ing, but if you" - cont "wish, I will show" - cont "you my powers!" - done - -_SaffronGymText_5d167:: - text "I'm" - line "shocked!" - cont "But, a loss is a" - cont "loss." - - para "I admit I didn't" - line "work hard enough" - cont "to win!" - - para "You earned the" - line "MARSHBADGE!@@" - -_SaffronGymText_5d16e:: - text "Everyone has" - line "psychic power!" - cont "People just don't" - cont "realize it!" - done - -_SaffronGymText_5d173:: - text "The MARSHBADGE" - line "makes #MON up" - cont "to L70 obey you!" - - para "Stronger #MON" - line "will become wild," - cont "ignoring your" - cont "orders in battle!" - - para "Just don't raise" - line "your #MON too" - cont "much!" - - para "Wait, please take" - line "this TM with you!" - done - -ReceivedTM46Text:: - text " received" - line "TM46!@@" - -_TM46ExplanationText:: - text "" - - para "TM46 is PSYWAVE!" - line "It uses powerful" - cont "psychic waves to" - cont "inflict damage!" - done - -_TM46NoRoomText:: - text "Your pack is full" - line "of other items!" - done - -_SaffronGymText_5d1e6:: - text "Yo! Champ in" - line "making!" - - para "SABRINA's #MON" - line "use psychic power" - cont "instead of force!" - - para "Fighting #MON" - line "are weak against" - cont "psychic #MON!" - - para "They get creamed" - line "before they can" - cont "even aim a punch!" - done - -_SaffronGymText_5d1eb:: - text "Psychic power," - line "huh?" - - para "If I had that," - line "I'd make a bundle" - cont "at the slots!" - done - -_SaffronGymBattleText1:: - text "SABRINA is younger" - line "than I, but I" - cont "respect her!" - done - -_SaffronGymEndBattleText1:: - text "Not" - line "good enough!" - prompt - -_SaffronGymAfterBattleText1:: - text "In a battle of" - line "equals, the one" - cont "with the stronger" - cont "will wins!" - - para "If you wish" - line "to beat SABRINA," - cont "focus on winning!" - done - -_SaffronGymBattleText2:: - text "Does our unseen" - line "power scare you?" - done - -_SaffronGymEndBattleText2:: - text "I never" - line "foresaw this!" - prompt - -_SaffronGymAfterBattleText2:: - text "Psychic #MON" - line "fear only bugs!" - done - -_SaffronGymBattleText3:: - text "#MON take on" - line "the appearance of" - cont "their trainers." - - para "Your #MON must" - line "be tough, then!" - done - -_SaffronGymEndBattleText3:: - text "I knew" - line "it!" - prompt - -_SaffronGymAfterBattleText3:: - text "I must teach" - line "better techniques" - cont "to my #MON!" - done - -_SaffronGymBattleText4:: - text "You know that" - line "power alone isn't" - cont "enough!" - done - -_SaffronGymEndBattleText4:: - text "I don't" - line "believe this!" - prompt - -_SaffronGymAfterBattleText4:: - text "SABRINA just wiped" - line "out the KARATE" - cont "MASTER next door!" - done - -_SaffronGymBattleText5:: - text "You and I, our" - line "#MON shall" - cont "fight!" - done - -_SaffronGymEndBattleText5:: - text "I lost" - line "after all!" - prompt - -_SaffronGymAfterBattleText5:: - text "I knew that this" - line "was going to take" - cont "place." - done - -_SaffronGymBattleText6:: - text "SABRINA is young," - line "but she's also" - cont "our LEADER!" - - para "You won't reach" - line "her easily!" - done - -_SaffronGymEndBattleText6:: - text "I lost" - line "my concentration!" - prompt - -_SaffronGymAfterBattleText6:: - text "There used to be" - line "2 #MON GYMs in" - cont "SAFFRON." - - para "The FIGHTING DOJO" - line "next door lost" - cont "its GYM status" - cont "when we went and" - cont "creamed them!" - done - -_SaffronGymBattleText7:: - text "SAFFRON #MON" - line "GYM is famous for" - cont "its psychics!" - - para "You want to see" - line "SABRINA!" - cont "I can tell!" - done - -_SaffronGymEndBattleText7:: - text "Arrrgh!" - prompt - -_SaffronGymAfterBattleText7:: - text "That's right! I" - line "used telepathy to" - cont "read your mind!" - done diff --git a/text/maps/SaffronPidgeyHouse.asm b/text/maps/SaffronPidgeyHouse.asm deleted file mode 100644 index 214bf0897..000000000 --- a/text/maps/SaffronPidgeyHouse.asm +++ /dev/null @@ -1,26 +0,0 @@ -_SaffronHouse1Text1:: - text "Thank you for" - line "writing. I hope" - cont "to see you soon!" - - para "Hey! Don't look" - line "at my letter!" - done - -_SaffronHouse1Text2:: - text "PIDGEY: Kurukkoo!@@" - -_SaffronHouse1Text3:: - text "The COPYCAT is" - line "cute! I'm getting" - cont "her a # DOLL!" - done - -_SaffronHouse1Text4:: - text "I was given a PP" - line "UP as a gift." - - para "It's used for" - line "increasing the PP" - cont "of techniques!" - done diff --git a/text/maps/SeafoamIslandsB4F.asm b/text/maps/SeafoamIslandsB4F.asm deleted file mode 100644 index 608d165f7..000000000 --- a/text/maps/SeafoamIslandsB4F.asm +++ /dev/null @@ -1,13 +0,0 @@ -_ArticunoBattleText:: - text "Gyaoo!@@" - -_SeafoamIslands5Text4:: - text "Boulders might" - line "change the flow" - cont "of water!" - done - -_SeafoamIslands5Text5:: - text "DANGER" - line "Fast current!" - done diff --git a/text/maps/SilphCo10F.asm b/text/maps/SilphCo10F.asm deleted file mode 100644 index 098947645..000000000 --- a/text/maps/SilphCo10F.asm +++ /dev/null @@ -1,66 +0,0 @@ -_SilphCo10Text_5a1d3:: - text "Waaaaa!" - line "I'm scared!" - done - -_SilphCo10Text_5a1d8:: - text "Please keep quiet" - line "about my crying!" - done - -_SilphCo10BattleText1:: - text "Welcome to the" - line "10F! So good of" - cont "you to join me!" - done - -_SilphCo10EndBattleText1:: - text "I'm" - line "stunned!" - prompt - -_SilphCo10AfterBattleText1:: - text "Nice try, but the" - line "boardroom is up" - cont "one more floor!" - done - -_SilphCo10BattleText2:: - text "Enough of your" - line "silly games!" - done - -_SilphCo10EndBattleText2:: - text "No" - line "continues left!" - prompt - -_SilphCo10AfterBattleText2:: - text "Are you satisfied" - line "with beating me?" - cont "Then go on home!" - done - -_SilphCoJessieJamesText1:: - text "Hold it right" - line "there, brat!@@" - -_SilphCoJessieJamesText2:: - text "Our BOSS is in a" - line "meeting!" - - para "You better not" - line "disturb him!" - done - -_SilphCoJessieJamesText3:: - text "Like" - line "always..." - prompt - -_SilphCoJessieJamesText4:: - text "TEAM ROCKET, blast" - line "off at the speed" - cont "of light!" - - para "Again...@@" diff --git a/text/maps/SilphCo11F.asm b/text/maps/SilphCo11F.asm deleted file mode 100644 index d2bbde7d7..000000000 --- a/text/maps/SilphCo11F.asm +++ /dev/null @@ -1,114 +0,0 @@ -_SilphCoPresidentText:: - text "PRESIDENT: Thank" - line "you for saving" - cont "SILPH!" - - para "I will never" - line "forget you saved" - cont "us in our moment" - cont "of peril!" - - para "I have to thank" - line "you in some way!" - - para "Because I am rich," - line "I can give you" - cont "anything!" - - para "Here, maybe this" - line "will do!" - prompt - -_ReceivedSilphCoMasterBallText:: - text " got a" - line "@" - TX_RAM wcf4b - text "!@@" - -_SilphCo10Text_6231c:: - text "PRESIDENT: You" - line "can't buy that" - cont "anywhere!" - - para "It's our secret" - line "prototype MASTER" - cont "BALL!" - - para "It will catch any" - line "#MON without" - cont "fail!" - - para "You should be" - line "quiet about using" - cont "it, though." - done - -_SilphCoMasterBallNoRoomText:: - text "You have no" - line "room for this." - done - -_SilphCo11Text2:: - text "SECRETARY: Thank" - line "you for rescuing" - cont "all of us!" - - para "We admire your" - line "courage." - done - -_SilphCo11Text3:: - text "Ah, !" - line "So we meet again!" - - para "The PRESIDENT and" - line "I are discussing" - cont "a vital business" - cont "proposition." - - para "Keep your nose" - line "out of grown-up" - cont "matters..." - - para "or, experience a" - line "world of pain!" - done - -_SilphCo10Text_62330:: - text "Arrgh!!" - line "I lost again!?" - prompt - -_SilphCo10Text_62335:: - text "Blast it all!" - line "You ruined our" - cont "plans for SILPH!" - - para "But, TEAM ROCKET" - line "will never fall!" - - para "! Never" - line "forget that all" - cont "#MON exist" - cont "for TEAM ROCKET!" - - para "I must go, but I" - line "shall return!" - done - -_SilphCo11BattleText2:: - text "Halt! Do you have" - line "an appointment" - cont "with my BOSS?" - done - -_SilphCo11EndBattleText2:: - text "Gaah!" - line "Demolished!" - prompt - -_SilphCo11AfterBattleText2:: - text "Watch your step," - line "my BOSS likes his" - cont "#MON tough!" - done diff --git a/text/maps/SilphCo2F.asm b/text/maps/SilphCo2F.asm deleted file mode 100644 index 912bdef9e..000000000 --- a/text/maps/SilphCo2F.asm +++ /dev/null @@ -1,96 +0,0 @@ -_SilphCo2Text_59ded:: - text "Eeek!" - line "No! Stop! Help!" - - para "Oh, you're not" - line "with TEAM ROCKET." - cont "I thought..." - cont "I'm sorry. Here," - cont "please take this!" - prompt - -_ReceivedTM36Text:: - text " got" - line "@" - TX_RAM wcf4b - text "!@@" - -_TM36ExplanationText:: - text "TM36 is" - line "SELFDESTRUCT!" - - para "It's powerful, but" - line "the #MON that" - cont "uses it faints!" - cont "Be careful." - done - -_TM36NoRoomText:: - text "You don't have any" - line "room for this." - done - -_SilphCo2BattleText1:: - text "Help! I'm a SILPH" - line "employee." - done - -_SilphCo2EndBattleText1:: - text "How" - line "did you know I" - cont "was a ROCKET?" - prompt - -_SilphCo2AfterBattleText1:: - text "I work for both" - line "SILPH and TEAM" - cont "ROCKET!" - done - -_SilphCo2BattleText2:: - text "It's off limits" - line "here! Go home!" - done - -_SilphCo2EndBattleText2:: - text "You're" - line "good." - prompt - -_SilphCo2AfterBattleText2:: - text "Can you solve the" - line "maze in here?" - done - -_SilphCo2BattleText3:: - text "No kids are" - line "allowed in here!" - done - -_SilphCo2EndBattleText3:: - text "Tough!" - prompt - -_SilphCo2AfterBattleText3:: - text "Diamond-shaped" - line "tiles are" - cont "teleport blocks!" - - para "They're hi-tech" - line "transporters!" - done - -_SilphCo2BattleText4:: - text "Hey kid! What are" - line "you doing here?" - done - -_SilphCo2EndBattleText4:: - text "I goofed!" - prompt - -_SilphCo2AfterBattleText4:: - text "SILPH CO. will" - line "be merged with" - cont "TEAM ROCKET!" - done diff --git a/text/maps/VermilionCity.asm b/text/maps/VermilionCity.asm deleted file mode 100644 index 742d0c5d4..000000000 --- a/text/maps/VermilionCity.asm +++ /dev/null @@ -1,167 +0,0 @@ -_VermilionCityText1:: - text "We're careful" - line "about pollution!" - - para "We've heard GRIMER" - line "multiplies in" - cont "toxic sludge!" - done - -_VermilionCityTextDidYouSee:: - text "Did you see S.S." - line "ANNE moored in" - cont "the harbor?" - done - -_VermilionCityTextSSAnneDeparted:: - text "So, S.S.ANNE has" - line "departed!" - - para "She'll be back in" - line "about a year." - done - -_SSAnneWelcomeText4:: - text "Welcome to S.S." - line "ANNE!" - done - -_SSAnneWelcomeText9:: - text "Welcome to S.S." - line "ANNE!" - - para "Excuse me, do you" - line "have a ticket?" - prompt - -_SSAnneFlashedTicketText:: - text " flashed" - line "the S.S.TICKET!" - - para "Great! Welcome to" - line "S.S.ANNE!" - done - -_SSAnneNoTicketText:: - text " doesn't" - line "have the needed" - cont "S.S.TICKET." - - para "Sorry!" - - para "You need a ticket" - line "to get aboard." - done - -_SSAnneNotHereText:: - text "The ship set sail." - done - -_VermilionCityText4:: - text "I'm putting up a" - line "building on this" - cont "plot of land." - - para "My #MON is" - line "tamping the land." - done - -_VermilionCityText5:: - text "MACHOP: Guoh!" - line "Gogogoh!@@" - -_VermilionCityText15:: - text "" - para "A MACHOP is" - line "stomping the land" - cont "flat." - done - -_VermilionCityText6:: - text "S.S.ANNE is a" - line "famous luxury" - cont "cruise ship." - - para "We visit VERMILION" - line "once a year." - done - -_OfficerJennyText1:: - text "I just caught a" - line "SQUIRTLE that was" - cont "always getting" - cont "into mischief." - - para "I think it needs a" - line "good trainer to" - cont "set it straight." - done - -_OfficerJennyText2:: - text "You have the" - line "THUNDERBADGE!?" - - para "You must be a" - line "good trainer!" - - para "I just caught a" - line "SQUIRTLE that was" - cont "always getting" - cont "into mischief." - - para "Would you take" - line "good care of it?" - done - -_OfficerJennyText3:: - text "OK! Please treat" - line "SQUIRTLE right!@@" - -_OfficerJennyText4:: - text "Oh... What am I" - line "to do now?" - done - -_OfficerJennyText5:: - text "How is SQUIRTLE" - line "doing?" - done - -_VermilionCityText8:: - text "VERMILION CITY" - line "The Port of" - cont "Exquisite Sunsets" - done - -_VermilionCityText9:: - text "NOTICE!" - - para "ROUTE 12 may be" - line "blocked off by a" - cont "sleeping #MON." - - para "Detour through" - line "ROCK TUNNEL to" - cont "LAVENDER TOWN." - - para "VERMILION POLICE" - done - -_VermilionCityText12:: - text "#MON FAN CLUB" - line "All #MON fans" - cont "welcome!" - done - -_VermilionCityText13:: - text "VERMILION CITY" - line "#MON GYM" - cont "LEADER: LT.SURGE" - - para "The Lightning " - line "American!" - done - -_VermilionCityText14:: - text "VERMILION HARBOR" - done diff --git a/text/maps/VermilionDock.asm b/text/maps/VermilionDock.asm deleted file mode 100644 index 5d998e820..000000000 --- a/text/maps/VermilionDock.asm +++ /dev/null @@ -1,3 +0,0 @@ -_VermilionDockText1:: - text "" - done diff --git a/text/maps/VermilionGym.asm b/text/maps/VermilionGym.asm deleted file mode 100644 index 2d9654c86..000000000 --- a/text/maps/VermilionGym.asm +++ /dev/null @@ -1,166 +0,0 @@ -_LTSurgePreBattleText:: - text "Ten-hut! Welcome" - line "to VERMILION GYM!" - - para "Will you look at" - line "that, a pint-size" - cont "challenger!" - - para "Hahaha! You've got" - line "big and brassy" - cont "nerves to take me" - cont "on with your puny" - cont "power!" - - para "A #MON battle" - line "is war! I'll show" - cont "you, civilian!" - - para "I'll shock you" - line "into surrender!" - done - -_LTSurgePostBattleAdviceText:: - text "A little word of" - line "advice, kid!" - - para "Electricity is" - line "sure powerful!" - - para "But, it's useless" - line "against ground-" - cont "type #MON!" - done - -_LTSurgeThunderbadgeInfoText:: - text "The THUNDERBADGE" - line "cranks up your" - cont "#MON's SPEED!" - - para "It also lets your" - line "#MON FLY any-" - cont "time, kid!" - - para "You're special," - line "kid! Take this!" - done - -_ReceivedTM24Text:: - text " received " - line "@" - TX_RAM wcf4b - text "!@@" - -_TM24ExplanationText:: - text "" - - para "TM24 contains" - line "THUNDERBOLT!" - - para "Teach it to an" - line "electric #MON!" - done - -_TM24NoRoomText:: - text "Yo kid, make room" - line "in your pack!" - done - -_ReceivedThunderbadgeText:: - text "Whoa!" - - para "You're the real" - line "deal, kid!" - - para "Fine then, take" - line "the THUNDERBADGE!" - prompt - -_VermilionGymBattleText1:: - text "When I was in the" - line "Army, LT.SURGE" - cont "was my strict CO!" - done - -_VermilionGymEndBattleText1:: - text "Stop!" - line "You're very good!" - prompt - -_VermilionGymAfterBattleText1:: - text "The door won't" - line "open?" - - para "LT.SURGE always" - line "was cautious!" - done - -_VermilionGymBattleText2:: - text "I'm a lightweight," - line "but I'm good with" - cont "electricity!" - done - -_VermilionGymEndBattleText2:: - text "Fried!" - prompt - -_VermilionGymAfterBattleText2:: - text "OK, I'll talk!" - - para "LT.SURGE said he" - line "hid door switches" - cont "inside something!" - done - -_VermilionGymBattleText3:: - text "This is no place" - line "for kids!" - done - -_VermilionGymEndBattleText3:: - text "Wow!" - line "Surprised me!" - prompt - -_VermilionGymAfterBattleText3:: - text "LT.SURGE set up" - line "double locks!" - cont "Here's a hint!" - - para "When you open the" - line "1st lock, the 2nd" - cont "lock is right" - cont "next to it!" - done - -_VermilionGymFanPreBattleText:: - text "Yo! Champ in" - line "making!" - - para "LT.SURGE has a" - line "nickname. People" - cont "refer to him as" - cont "the Lightning" - cont "American!" - - para "He's an expert on" - line "electric #MON!" - - para "Birds and water" - line "#MON are at" - cont "risk! Beware of" - cont "paralysis too!" - - para "LT.SURGE is very" - line "cautious!" - - para "You'll have to" - line "break a code to" - cont "get to him!" - done - -_VermilionGymFanPostBattleText:: - text "Whew! That match" - line "was electric!" - done diff --git a/text/maps/VermilionOldRodHouse.asm b/text/maps/VermilionOldRodHouse.asm deleted file mode 100644 index 32526e36a..000000000 --- a/text/maps/VermilionOldRodHouse.asm +++ /dev/null @@ -1,54 +0,0 @@ -_VermilionHouse2Text_560b1:: - text "I'm the FISHING" - line "GURU!" - - para "I simply Looove" - line "fishing!" - - para "Do you like to" - line "fish?" - done - -_VermilionHouse2Text_560b6:: - text "Grand! I like" - line "your style!" - - para "Take this and" - line "fish, young one!" - - para " received" - line "an @" - TX_RAM wcf4b - text "!@@" - -_VermilionHouse2Text_560bb:: - text "" - - para "Fishing is a way" - line "of life!" - - para "From the seas to" - line "rivers, go out" - cont "and land the big" - cont "one, young one!" - done - -_VermilionHouse2Text_560c0:: - text "Oh... That's so" - line "disappointing..." - done - -_VermilionHouse2Text_560c5:: - text "Hello there," - line "!" - - para "How are the fish" - line "biting?" - done - -_VermilionHouse2Text_560ca:: - text "Oh no!" - - para "You have no room" - line "for my gift!" - done diff --git a/text/maps/VermilionPidgeyHouse.asm b/text/maps/VermilionPidgeyHouse.asm deleted file mode 100644 index 91c18708f..000000000 --- a/text/maps/VermilionPidgeyHouse.asm +++ /dev/null @@ -1,21 +0,0 @@ -_VermilionHouse1Text1:: - text "I'm getting my" - line "PIDGEY to fly a" - cont "letter to SAFFRON" - cont "in the north!" - done - -_VermilionHouse1Text2:: - text "PIDGEY: Kurukkoo!@@" - -_VermilionHouse1Text3:: - text "Dear PIPPI, I hope" - line "to see you soon." - - para "I heard SAFFRON" - line "has problems with" - cont "TEAM ROCKET." - - para "VERMILION appears" - line "to be safe." - done diff --git a/text/maps/VictoryRoad2F.asm b/text/maps/VictoryRoad2F.asm deleted file mode 100644 index ec9dcf4fe..000000000 --- a/text/maps/VictoryRoad2F.asm +++ /dev/null @@ -1,85 +0,0 @@ -_MoltresBattleText:: - text "Gyaoo!@@" - -_VictoryRoad2BattleText1:: - text "VICTORY ROAD is" - line "the final test" - cont "for trainers!" - done - -_VictoryRoad2EndBattleText1:: - text "Aiyah!" - prompt - -_VictoryRoad2AfterBattleText1:: - text "If you get stuck," - line "try moving some" - cont "boulders around!" - done - -_VictoryRoad2BattleText2:: - text "Ah, so you wish" - line "to challenge the" - cont "ELITE FOUR?" - done - -_VictoryRoad2EndBattleText2:: - text "You" - line "got me!" - prompt - -_VictoryRoad2AfterBattleText2:: - text " also came" - line "through here!" - done - -_VictoryRoad2BattleText3:: - text "Come on!" - line "I'll whip you!" - done - -_VictoryRoad2EndBattleText3:: - text "I got" - line "whipped!" - prompt - -_VictoryRoad2AfterBattleText3:: - text "You earned the" - line "right to be on" - cont "VICTORY ROAD!" - done - -_VictoryRoad2BattleText4:: - text "If you can get" - line "through here, you" - cont "can go meet the" - cont "ELITE FOUR!" - done - -_VictoryRoad2EndBattleText4:: - text "No!" - line "Unbelievable!" - prompt - -_VictoryRoad2AfterBattleText4:: - text "I can beat you" - line "when it comes to" - cont "knowledge about" - cont "#MON!" - done - -_VictoryRoad2BattleText5:: - text "Is VICTORY ROAD" - line "too tough?" - done - -_VictoryRoad2EndBattleText5:: - text "Well" - line "done!" - prompt - -_VictoryRoad2AfterBattleText5:: - text "Many trainers give" - line "up the challenge" - cont "here." - done diff --git a/text/maps/ViridianCity.asm b/text/maps/ViridianCity.asm deleted file mode 100644 index 22d5d7ba0..000000000 --- a/text/maps/ViridianCity.asm +++ /dev/null @@ -1,194 +0,0 @@ -_ViridianCityText_19219:: - text "First, you need" - line "to weaken the" - cont "target #MON." - done - -_ViridianCityText_1920a:: - text "Ahh, I've had my" - line "coffee now and I" - cont "feel great!" - - para "Sure, you can go" - line "through!" - - para "I'm sorry I was" - line "so rude to you!" - - para "I see you're using" - line "a #DEX." - - para "I'll show you how" - line "to catch #MON" - cont "as my apology." - done - -_OldManTextAfterBattle:: - text "That didn't work!" - line "I must be losing" - cont "my touch." - - para "I've run out of" - line "# BALLs too." - - para "I have to get some" - line "at #MON MART." - done - -_ViridianCityText1:: - text "Those # BALLs" - line "at your waist!" - cont "You have #MON!" - - para "It's great that" - line "you can carry and" - cont "use #MON any-" - cont "time, anywhere!" - done - -_ViridianCityText_19122:: - text "This #MON GYM" - line "is always closed." - - para "I wonder who the" - line "LEADER is?" - done - -_ViridianCityText_19127:: - text "VIRIDIAN GYM's" - line "LEADER returned!" - done - -_ViridianCityText_1914d:: - text "You want to know" - line "about the 2 kinds" - cont "of caterpillar" - cont "#MON?" - done - -_ViridianCityText_19152:: - text "Oh, OK then!" - done - -_ViridianCityText_19157:: - text "CATERPIE has no" - line "poison, but" - cont "WEEDLE does." - - para "Watch out for its" - line "POISON STING!" - done - -_ViridianCityText_19175:: - text "Oh Grandpa! Don't" - line "be so mean!" - cont "He hasn't had his" - cont "coffee yet." - done - -_ViridianCityText_1917a:: - text "When I go shop in" - line "PEWTER CITY, I" - cont "have to take the" - cont "winding trail in" - cont "VIRIDIAN FOREST." - done - -_ViridianCityText_19191:: - text "You can't go" - line "through here!" - - para "This is private" - line "property!" - done - -_ViridianCityText_191ca:: - text "Yawn!" - line "I must have dozed" - cont "off in the sun." - - para "I had this dream" - line "about a DROWZEE" - cont "eating my dream." - cont "What's this?" - cont "Where did this TM" - cont "come from?" - - para "This is spooky!" - line "Here, you can" - cont "have this TM." - prompt - -_ReceivedTM42Text:: - text " received" - line "TM42!@@" - -_TM42Explanation:: - text "TM42 contains" - line "DREAM EATER..." - cont "...Snore..." - done - -_TM42NoRoomText:: - text "You have too much" - line "stuff already." - done - -_OldManAgainText1:: - text "Hmm? You want me" - line "to show you how" - cont "to catch #MON" - cont "again?" - done - -_OldManAgainText2:: - text "Dandy! Watch what" - line "I do closely now!" - done - -_OldManAgainText3:: - text "Oh... I'm not good" - line "enough for you." - done - -_ViridianCityText8:: - text "VIRIDIAN CITY " - line "The Eternally" - cont "Green Paradise" - done - -_ViridianCityText9:: - text "TRAINER TIPS" - - para "Catch #MON" - line "and expand your" - cont "collection!" - - para "The more you have," - line "the easier it is" - cont "to fight!" - done - -_ViridianCityText10:: - text "TRAINER TIPS" - - para "The battle moves" - line "of #MON are" - cont "limited by their" - cont "POWER POINTs, PP." - - para "To replenish PP," - line "rest your tired" - cont "#MON at a" - cont "#MON CENTER!" - done - -_ViridianCityText13:: - text "VIRIDIAN CITY" - line "#MON GYM" - done - -_ViridianCityText14:: - text "The GYM's doors" - line "are locked..." - done diff --git a/text/maps/ViridianGym.asm b/text/maps/ViridianGym.asm deleted file mode 100644 index 53b78a0f2..000000000 --- a/text/maps/ViridianGym.asm +++ /dev/null @@ -1,237 +0,0 @@ -_ViridianGymText_74ace:: - text "Fwahahaha! This is" - line "my hideout!" - - para "I planned to" - line "resurrect TEAM" - cont "ROCKET here!" - - para "But, you have" - line "caught me again!" - cont "So be it! This" - cont "time, I'm not" - cont "holding back!" - - para "Once more, you" - line "shall face" - cont "GIOVANNI, the" - cont "greatest trainer!" - done - -_ViridianGymText_74ad3:: - text "Ha!" - line "That was a truly" - cont "intense fight!" - cont "You have won!" - cont "As proof, here is" - cont "the EARTHBADGE!@@" - -_ViridianGymText_74ad9:: - text "Having lost, I" - line "cannot face my" - cont "underlings!" - cont "TEAM ROCKET is" - cont "finished forever!" - - para "I will dedicate my" - line "life to the study" - cont "of #MON!" - - para "Let us meet again" - line "someday!" - cont "Farewell!@@" - -_ViridianGymText12:: - text "The EARTHBADGE" - line "makes #MON of" - cont "any level obey!" - - para "It is evidence of" - line "your mastery as a" - cont "#MON trainer!" - - para "With it, you can" - line "enter the #MON" - cont "LEAGUE!" - - para "It is my gift for" - line "your #MON" - cont "LEAGUE challenge!" - done - -_ReceivedTM27Text:: - text " received" - line "TM27!@@" - -_TM27ExplanationText:: - text "" - - para "TM27 is FISSURE!" - line "It will take out" - cont "#MON with just" - cont "one hit!" - - para "I made it when I" - line "ran the GYM here," - cont "too long ago..." - done - -_TM27NoRoomText:: - text "You do not have" - line "space for this!" - done - -_ViridianGymBattleText1:: - text "Heh! You must be" - line "running out of" - cont "steam by now!" - done - -_ViridianGymEndBattleText1:: - text "I" - line "ran out of gas!" - prompt - -_ViridianGymAfterBattleText1:: - text "You need power to" - line "keep up with our" - cont "GYM LEADER!" - done - -_ViridianGymBattleText2:: - text "Rrrroar! I'm" - line "working myself" - cont "into a rage!" - done - -_ViridianGymEndBattleText2:: - text "Wargh!" - prompt - -_ViridianGymAfterBattleText2:: - text "I'm still not" - line "worthy!" - done - -_ViridianGymBattleText3:: - text "#MON and I, we" - line "make wonderful" - cont "music together!" - done - -_ViridianGymEndBattleText3:: - text "You are in" - line "perfect harmony!" - prompt - -_ViridianGymAfterBattleText3:: - text "Do you know the" - line "identity of our" - cont "GYM LEADER?" - done - -_ViridianGymBattleText4:: - text "Karate is the" - line "ultimate form of" - cont "martial arts!" - done - -_ViridianGymEndBattleText4:: - text "Atcho!" - prompt - -_ViridianGymAfterBattleText4:: - text "If my #MON" - line "were as good at" - cont "Karate as I..." - done - -_ViridianGymBattleText5:: - text "The truly talented" - line "win with style!" - done - -_ViridianGymEndBattleText5:: - text "I" - line "lost my grip!" - prompt - -_ViridianGymAfterBattleText5:: - text "The LEADER will" - line "scold me!" - done - -_ViridianGymBattleText6:: - text "I'm the KARATE" - line "KING! Your fate" - cont "rests with me!" - done - -_ViridianGymEndBattleText6:: - text "Ayah!" - prompt - -_ViridianGymAfterBattleText6:: - text "#MON LEAGUE?" - line "You? Don't get" - cont "cocky!" - done - -_ViridianGymBattleText7:: - text "Your #MON will" - line "cower at the" - cont "crack of my whip!" - done - -_ViridianGymEndBattleText7:: - text "Yowch!" - line "Whiplash!" - prompt - -_ViridianGymAfterBattleText7:: - text "Wait! I was just" - line "careless!" - done - -_ViridianGymBattleText8:: - text "VIRIDIAN GYM was" - line "closed for a long" - cont "time, but now our" - cont "LEADER is back!" - done - -_ViridianGymEndBattleText8:: - text "I" - line "was beaten?" - prompt - -_ViridianGymAfterBattleText8:: - text "You can go on to" - line "#MON LEAGUE" - cont "only by defeating" - cont "our GYM LEADER!" - done - -_ViridianGymText_74bd4:: - text "Yo! Champ in" - line "making!" - - para "Even I don't know" - line "VIRIDIAN LEADER's" - cont "identity!" - - para "This will be the" - line "toughest of all" - cont "the GYM LEADERs!" - - para "I heard that the" - line "trainers here" - cont "like ground-type" - cont "#MON!" - done - -_ViridianGymText_74bd9:: - text "Blow me away!" - line "GIOVANNI was the" - cont "GYM LEADER here?" - done diff --git a/text/maps/ViridianMart.asm b/text/maps/ViridianMart.asm deleted file mode 100644 index 31a843ae8..000000000 --- a/text/maps/ViridianMart.asm +++ /dev/null @@ -1,32 +0,0 @@ -_ViridianMartText1:: - text "Okay! Say hi to" - line "PROF.OAK for me!" - done - -_ViridianMartText4:: - text "Hey! You came from" - line "PALLET TOWN?" - done - -ViridianMartParcelQuestText:: - text "You know PROF." - line "OAK, right?" - - para "His order came in." - line "Will you take it" - cont "to him?" - - para " got" - line "OAK's PARCEL!@@" - -_ViridianMartText2:: - text "This shop sells a" - line "lot of PARLYZ" - cont "HEALs." - done - -_ViridianMartText3:: - text "The shop finally" - line "has some POTIONs" - cont "in stock." - done diff --git a/text/maps/WardensHouse.asm b/text/maps/WardensHouse.asm deleted file mode 100644 index 7efddb906..000000000 --- a/text/maps/WardensHouse.asm +++ /dev/null @@ -1,84 +0,0 @@ -_WardenGibberishText1:: - text "WARDEN: Hif fuff" - line "hefifoo!" - - para "Ha lof ha feef ee" - line "hafahi ho. Heff" - cont "hee fwee!" - done - -_WardenGibberishText2:: - text "Ah howhee ho hoo!" - line "Eef ee hafahi ho!" - done - -_WardenGibberishText3:: - text "Ha? He ohay heh" - line "ha hoo ee haheh!" - done - -_WardenTeethText1:: - text " gave the" - line "GOLD TEETH to the" - cont "WARDEN!@@" - -_WardenTeethText2:: - text "" - - para "The WARDEN popped" - line "in his teeth!" - prompt - -_WardenThankYouText:: - text "WARDEN: Thanks," - line "kid! No one could" - cont "understand a word" - cont "that I said." - - para "I couldn't work" - line "that way." - cont "Let me give you" - cont "something for" - cont "your trouble." - prompt - -_ReceivedHM04Text:: - text " received" - line "@" - TX_RAM wcf4b - text "!@@" - -_HM04ExplanationText:: - text "WARDEN: HM04" - line "teaches STRENGTH!" - - para "It lets #MON" - line "move boulders" - cont "when you're out-" - cont "side of battle." - - para "Oh yes, did you" - line "find SECRET HOUSE" - cont "in SAFARI ZONE?" - - para "If you do, you" - line "win an HM!" - - para "I hear it's the" - line "rare SURF HM." - done - -_HM04NoRoomText:: - text "Your pack is" - line "stuffed full!" - done - -_FuchsiaHouse2Text_75176:: - text "#MON photos" - line "and fossils." - done - -_FuchsiaHouse2Text_7517b:: - text "Old #MON" - line "merchandise." - done diff --git a/text/monster_names.asm b/text/monster_names.asm deleted file mode 100755 index a62b1bd94..000000000 --- a/text/monster_names.asm +++ /dev/null @@ -1,191 +0,0 @@ -MonsterNames: - db "RHYDON@@@@" - db "KANGASKHAN" - db "NIDORAN♂@@" - db "CLEFAIRY@@" - db "SPEAROW@@@" - db "VOLTORB@@@" - db "NIDOKING@@" - db "SLOWBRO@@@" - db "IVYSAUR@@@" - db "EXEGGUTOR@" - db "LICKITUNG@" - db "EXEGGCUTE@" - db "GRIMER@@@@" - db "GENGAR@@@@" - db "NIDORAN♀@@" - db "NIDOQUEEN@" - db "CUBONE@@@@" - db "RHYHORN@@@" - db "LAPRAS@@@@" - db "ARCANINE@@" - db "MEW@@@@@@@" - db "GYARADOS@@" - db "SHELLDER@@" - db "TENTACOOL@" - db "GASTLY@@@@" - db "SCYTHER@@@" - db "STARYU@@@@" - db "BLASTOISE@" - db "PINSIR@@@@" - db "TANGELA@@@" - db "MISSINGNO." - db "MISSINGNO." - db "GROWLITHE@" - db "ONIX@@@@@@" - db "FEAROW@@@@" - db "PIDGEY@@@@" - db "SLOWPOKE@@" - db "KADABRA@@@" - db "GRAVELER@@" - db "CHANSEY@@@" - db "MACHOKE@@@" - db "MR.MIME@@@" - db "HITMONLEE@" - db "HITMONCHAN" - db "ARBOK@@@@@" - db "PARASECT@@" - db "PSYDUCK@@@" - db "DROWZEE@@@" - db "GOLEM@@@@@" - db "MISSINGNO." - db "MAGMAR@@@@" - db "MISSINGNO." - db "ELECTABUZZ" - db "MAGNETON@@" - db "KOFFING@@@" - db "MISSINGNO." - db "MANKEY@@@@" - db "SEEL@@@@@@" - db "DIGLETT@@@" - db "TAUROS@@@@" - db "MISSINGNO." - db "MISSINGNO." - db "MISSINGNO." - db "FARFETCH'D" - db "VENONAT@@@" - db "DRAGONITE@" - db "MISSINGNO." - db "MISSINGNO." - db "MISSINGNO." - db "DODUO@@@@@" - db "POLIWAG@@@" - db "JYNX@@@@@@" - db "MOLTRES@@@" - db "ARTICUNO@@" - db "ZAPDOS@@@@" - db "DITTO@@@@@" - db "MEOWTH@@@@" - db "KRABBY@@@@" - db "MISSINGNO." - db "MISSINGNO." - db "MISSINGNO." - db "VULPIX@@@@" - db "NINETALES@" - db "PIKACHU@@@" - db "RAICHU@@@@" - db "MISSINGNO." - db "MISSINGNO." - db "DRATINI@@@" - db "DRAGONAIR@" - db "KABUTO@@@@" - db "KABUTOPS@@" - db "HORSEA@@@@" - db "SEADRA@@@@" - db "MISSINGNO." - db "MISSINGNO." - db "SANDSHREW@" - db "SANDSLASH@" - db "OMANYTE@@@" - db "OMASTAR@@@" - db "JIGGLYPUFF" - db "WIGGLYTUFF" - db "EEVEE@@@@@" - db "FLAREON@@@" - db "JOLTEON@@@" - db "VAPOREON@@" - db "MACHOP@@@@" - db "ZUBAT@@@@@" - db "EKANS@@@@@" - db "PARAS@@@@@" - db "POLIWHIRL@" - db "POLIWRATH@" - db "WEEDLE@@@@" - db "KAKUNA@@@@" - db "BEEDRILL@@" - db "MISSINGNO." - db "DODRIO@@@@" - db "PRIMEAPE@@" - db "DUGTRIO@@@" - db "VENOMOTH@@" - db "DEWGONG@@@" - db "MISSINGNO." - db "MISSINGNO." - db "CATERPIE@@" - db "METAPOD@@@" - db "BUTTERFREE" - db "MACHAMP@@@" - db "MISSINGNO." - db "GOLDUCK@@@" - db "HYPNO@@@@@" - db "GOLBAT@@@@" - db "MEWTWO@@@@" - db "SNORLAX@@@" - db "MAGIKARP@@" - db "MISSINGNO." - db "MISSINGNO." - db "MUK@@@@@@@" - db "MISSINGNO." - db "KINGLER@@@" - db "CLOYSTER@@" - db "MISSINGNO." - db "ELECTRODE@" - db "CLEFABLE@@" - db "WEEZING@@@" - db "PERSIAN@@@" - db "MAROWAK@@@" - db "MISSINGNO." - db "HAUNTER@@@" - db "ABRA@@@@@@" - db "ALAKAZAM@@" - db "PIDGEOTTO@" - db "PIDGEOT@@@" - db "STARMIE@@@" - db "BULBASAUR@" - db "VENUSAUR@@" - db "TENTACRUEL" - db "MISSINGNO." - db "GOLDEEN@@@" - db "SEAKING@@@" - db "MISSINGNO." - db "MISSINGNO." - db "MISSINGNO." - db "MISSINGNO." - db "PONYTA@@@@" - db "RAPIDASH@@" - db "RATTATA@@@" - db "RATICATE@@" - db "NIDORINO@@" - db "NIDORINA@@" - db "GEODUDE@@@" - db "PORYGON@@@" - db "AERODACTYL" - db "MISSINGNO." - db "MAGNEMITE@" - db "MISSINGNO." - db "MISSINGNO." - db "CHARMANDER" - db "SQUIRTLE@@" - db "CHARMELEON" - db "WARTORTLE@" - db "CHARIZARD@" - db "MISSINGNO." - db "MISSINGNO." - db "MISSINGNO." - db "MISSINGNO." - db "ODDISH@@@@" - db "GLOOM@@@@@" - db "VILEPLUME@" - db "BELLSPROUT" - db "WEEPINBELL" - db "VICTREEBEL" diff --git a/text/oakspeech.asm b/text/oakspeech.asm deleted file mode 100644 index e006d16fa..000000000 --- a/text/oakspeech.asm +++ /dev/null @@ -1,55 +0,0 @@ -_OakSpeechText1:: - text "Hello there!" - line "Welcome to the" - cont "world of #MON!" - - para "My name is OAK!" - line "People call me" - cont "the #MON PROF!" - prompt - -_OakSpeechText2A:: - text "This world is" - line "inhabited by" - cont "creatures called" - cont "#MON!@@" - -_OakSpeechText2B:: - text $51,"For some people," - line "#MON are" - cont "pets. Others use" - cont "them for fights." - - para "Myself..." - - para "I study #MON" - line "as a profession." - prompt - -_IntroducePlayerText:: - text "First, what is" - line "your name?" - prompt - -_IntroduceRivalText:: - text "This is my grand-" - line "son. He's been" - cont "your rival since" - cont "you were a baby." - - para "...Erm, what is" - line "his name again?" - prompt - -_OakSpeechText3:: - text "!" - - para "Your very own" - line "#MON legend is" - cont "about to unfold!" - - para "A world of dreams" - line "and adventures" - cont "with #MON" - cont "awaits! Let's go!" - done diff --git a/text/pokedex_ratings.asm b/text/pokedex_ratings.asm index b94a98682..ce701f8a3 100644 --- a/text/pokedex_ratings.asm +++ b/text/pokedex_ratings.asm @@ -3,10 +3,10 @@ _DexCompletionText:: line "letion is:" para "@" - TX_NUM hDexRatingNumMonsSeen, 1, 3 + text_decimal hDexRatingNumMonsSeen, 1, 3 text " #MON seen" line "@" - TX_NUM hDexRatingNumMonsOwned, 1, 3 + text_decimal hDexRatingNumMonsOwned, 1, 3 text " #MON owned" para "PROF.OAK's" diff --git a/text/trainer_names.asm b/text/trainer_names.asm deleted file mode 100755 index 7736738bc..000000000 --- a/text/trainer_names.asm +++ /dev/null @@ -1,48 +0,0 @@ -TrainerNames: - db "YOUNGSTER@" - db "BUG CATCHER@" - db "LASS@" - db "SAILOR@" - db "JR.TRAINER♂@" - db "JR.TRAINER♀@" - db "POKéMANIAC@" - db "SUPER NERD@" - db "HIKER@" - db "BIKER@" - db "BURGLAR@" - db "ENGINEER@" - db "JUGGLER@" - db "FISHERMAN@" - db "SWIMMER@" - db "CUE BALL@" - db "GAMBLER@" - db "BEAUTY@" - db "PSYCHIC@" - db "ROCKER@" - db "JUGGLER@" - db "TAMER@" - db "BIRD KEEPER@" - db "BLACKBELT@" - db "RIVAL1@" - db "PROF.OAK@" - db "CHIEF@" - db "SCIENTIST@" - db "GIOVANNI@" - db "ROCKET@" - db "COOLTRAINER♂@" - db "COOLTRAINER♀@" - db "BRUNO@" - db "BROCK@" - db "MISTY@" - db "LT.SURGE@" - db "ERIKA@" - db "KOGA@" - db "BLAINE@" - db "SABRINA@" - db "GENTLEMAN@" - db "RIVAL2@" - db "RIVAL3@" - db "LORELEI@" - db "CHANNELER@" - db "AGATHA@" - db "LANCE@" diff --git a/text/type_names.asm b/text/type_names.asm deleted file mode 100755 index d94675b8a..000000000 --- a/text/type_names.asm +++ /dev/null @@ -1,48 +0,0 @@ -TypeNames: - - dw .Normal - dw .Fighting - dw .Flying - dw .Poison - dw .Ground - dw .Rock - dw .Bird - dw .Bug - dw .Ghost - - dw .Normal - dw .Normal - dw .Normal - dw .Normal - dw .Normal - dw .Normal - dw .Normal - dw .Normal - dw .Normal - dw .Normal - dw .Normal - - dw .Fire - dw .Water - dw .Grass - dw .Electric - dw .Psychic - dw .Ice - dw .Dragon - -.Normal: db "NORMAL@" -.Fighting: db "FIGHTING@" -.Flying: db "FLYING@" -.Poison: db "POISON@" -.Fire: db "FIRE@" -.Water: db "WATER@" -.Grass: db "GRASS@" -.Electric: db "ELECTRIC@" -.Psychic: db "PSYCHIC@" -.Ice: db "ICE@" -.Ground: db "GROUND@" -.Rock: db "ROCK@" -.Bird: db "BIRD@" -.Bug: db "BUG@" -.Ghost: db "GHOST@" -.Dragon: db "DRAGON@" diff --git a/text/unused_names.asm b/text/unused_names.asm deleted file mode 100644 index dd4c9a129..000000000 --- a/text/unused_names.asm +++ /dev/null @@ -1,20 +0,0 @@ -UnusedNames: - db "かみなりバッヂ@" - db "かいがらバッヂ@" - db "おじぞうバッヂ@" - db "はやぶさバッヂ@" - db "ひんやりバッヂ@" - db "なかよしバッヂ@" - db "バラバッヂ@" - db "ひのたまバッヂ@" - db "ゴールドバッヂ@" - db "たまご@" - db "ひよこ@" - db "ブロンズ@" - db "シルバー@" - db "ゴールド@" - db "プチキャプテン@" - db "キャプテン@" - db "プチマスター@" - db "マスター@" - db "エクセレント" ; note the lack of a terminator diff --git a/tools/gfx.c b/tools/gfx.c index 8c4066ab3..7d6dd0ee8 100644 --- a/tools/gfx.c +++ b/tools/gfx.c @@ -8,7 +8,7 @@ #include "common.h" static void usage(void) { - fprintf(stderr, "Usage: gfx [--trim-whitespace] [--remove-whitespace] [--interleave] [--remove-duplicates [--keep-whitespace]] [--remove-xflip] [--remove-yflip] [--png filename] [-d depth] [-h] [-o outfile] infile\n"); + fprintf(stderr, "Usage: gfx [--trim-whitespace] [--remove-whitespace] [--interleave] [--remove-duplicates [--keep-whitespace]] [--remove-xflip] [--remove-yflip] [--preserve indexes] [--png filename] [-d depth] [-h] [-o outfile] infile\n"); } static void error(char *message) { @@ -27,6 +27,8 @@ struct Options { int keep_whitespace; int remove_xflip; int remove_yflip; + int *preserved; + int num_preserved; char *png_file; }; @@ -43,11 +45,13 @@ void get_args(int argc, char *argv[]) { {"keep-whitespace", no_argument, &Options.keep_whitespace, 1}, {"remove-xflip", no_argument, &Options.remove_xflip, 1}, {"remove-yflip", no_argument, &Options.remove_yflip, 1}, + {"preserve", required_argument, 0, 'r'}, {"png", required_argument, 0, 'p'}, {"depth", required_argument, 0, 'd'}, {"help", no_argument, 0, 'h'}, {0} }; + char *token; for (int opt = 0; opt != -1;) { switch (opt = getopt_long(argc, argv, "ho:d:p:", long_options)) { case 'h': @@ -59,6 +63,15 @@ void get_args(int argc, char *argv[]) { case 'd': Options.depth = strtoul(optarg, NULL, 0); break; + case 'r': + token = strtok(optarg, ","); + while (token) { + Options.num_preserved++; + Options.preserved = realloc(Options.preserved, Options.num_preserved * sizeof(int)); + Options.preserved[Options.num_preserved-1] = strtoul(token, NULL, 0); + token = strtok(NULL, ","); + } + break; case 'p': Options.png_file = optarg; break; @@ -73,6 +86,23 @@ void get_args(int argc, char *argv[]) { } } +bool is_preserved(int index) { + for (int i = 0; i < Options.num_preserved; i++) { + if (Options.preserved[i] == index) { + return true; + } + } + return false; +} + +void shift_preserved(int removed_index) { + for (int i = 0; i < Options.num_preserved; i++) { + if (Options.preserved[i] >= removed_index) { + Options.preserved[i]--; + } + } +} + struct Graphic { int size; uint8_t *data; @@ -91,7 +121,7 @@ bool is_whitespace(uint8_t *tile, int tile_size) { void trim_whitespace(struct Graphic *graphic) { int tile_size = Options.depth * 8; for (int i = graphic->size - tile_size; i > 0; i -= tile_size) { - if (is_whitespace(&graphic->data[i], tile_size)) { + if (is_whitespace(&graphic->data[i], tile_size) && !is_preserved(i / tile_size)) { graphic->size = i; } else { break; @@ -102,9 +132,15 @@ void trim_whitespace(struct Graphic *graphic) { void remove_whitespace(struct Graphic *graphic) { int tile_size = Options.depth * 8; if (Options.interleave) tile_size *= 2; + + // Make sure we have a whole number of tiles, round down if required + graphic->size &= ~(tile_size - 1); + int i = 0; - for (int j = 0; i < graphic->size && j < graphic->size; i += tile_size, j += tile_size) { - while (is_whitespace(&graphic->data[j], tile_size)) { + for (int j = 0, d = 0; i < graphic->size && j < graphic->size; i += tile_size, j += tile_size) { + while (j < graphic->size && is_whitespace(&graphic->data[j], tile_size) && !is_preserved(j / tile_size - d)) { + shift_preserved(j / tile_size - d); + d++; j += tile_size; } if (j >= graphic->size) { @@ -136,11 +172,17 @@ void remove_duplicates(struct Graphic *graphic) { int tile_size = Options.depth * 8; if (Options.interleave) tile_size *= 2; int num_tiles = 0; - for (int i = 0, j = 0; i < graphic->size && j < graphic->size; i += tile_size, j += tile_size) { - while (tile_exists(&graphic->data[j], graphic->data, tile_size, num_tiles)) { - if (Options.keep_whitespace && is_whitespace(&graphic->data[j], tile_size)) { + + // Make sure we have a whole number of tiles, round down if required + graphic->size &= ~(tile_size - 1); + + for (int i = 0, j = 0, d = 0; i < graphic->size && j < graphic->size; i += tile_size, j += tile_size) { + while (j < graphic->size && tile_exists(&graphic->data[j], graphic->data, tile_size, num_tiles)) { + if ((Options.keep_whitespace && is_whitespace(&graphic->data[j], tile_size)) || is_preserved(j / tile_size - d)) { break; } + shift_preserved(j / tile_size - d); + d++; j += tile_size; } if (j >= graphic->size) { @@ -155,7 +197,8 @@ void remove_duplicates(struct Graphic *graphic) { } bool flip_exists(uint8_t *tile, uint8_t *tiles, int tile_size, int num_tiles, bool xflip, bool yflip) { - uint8_t *flip = calloc(tile_size, 1); + uint8_t flip[tile_size]; + memset(flip, 0, sizeof(flip)); int half_size = tile_size / 2; for (int i = 0; i < tile_size; i++) { int byte = i; @@ -183,11 +226,17 @@ void remove_flip(struct Graphic *graphic, bool xflip, bool yflip) { int tile_size = Options.depth * 8; if (Options.interleave) tile_size *= 2; int num_tiles = 0; - for (int i = 0, j = 0; i < graphic->size && j < graphic->size; i += tile_size, j += tile_size) { - while (flip_exists(&graphic->data[j], graphic->data, tile_size, num_tiles, xflip, yflip)) { - if (Options.keep_whitespace && is_whitespace(&graphic->data[j], tile_size)) { + + // Make sure we have a whole number of tiles, round down if required + graphic->size &= ~(tile_size - 1); + + for (int i = 0, j = 0, d = 0; i < graphic->size && j < graphic->size; i += tile_size, j += tile_size) { + while (j < graphic->size && flip_exists(&graphic->data[j], graphic->data, tile_size, num_tiles, xflip, yflip)) { + if ((Options.keep_whitespace && is_whitespace(&graphic->data[j], tile_size)) || is_preserved(j / tile_size - d)) { break; } + shift_preserved(j / tile_size - d); + d++; j += tile_size; } if (j >= graphic->size) { diff --git a/tools/pic.py b/tools/pic.py new file mode 100644 index 000000000..afc34c909 --- /dev/null +++ b/tools/pic.py @@ -0,0 +1,491 @@ +#!/usr/bin/env python2 +# -*- coding: utf-8 -*- + +""" +A library for use with compressed monster and trainer pics in pokered. +""" +from __future__ import absolute_import +from __future__ import division + +import os +import sys +import argparse +from math import sqrt + +from pokemontools import gfx + + +def bitflip(x, n): + r = 0 + while n: + r = (r << 1) | (x & 1) + x >>= 1 + n -= 1 + return r + + +class Decompressor: + """ + pokered pic decompression. + + Ported to python 2.7 from the python 3 code at https://github.com/magical/pokemon-sprites-rby. + """ + + table1 = [(2 << i) - 1 for i in range(16)] + table2 = [ + [0x0, 0x1, 0x3, 0x2, 0x7, 0x6, 0x4, 0x5, 0xf, 0xe, 0xc, 0xd, 0x8, 0x9, 0xb, 0xa], + [0xf, 0xe, 0xc, 0xd, 0x8, 0x9, 0xb, 0xa, 0x0, 0x1, 0x3, 0x2, 0x7, 0x6, 0x4, 0x5], # prev ^ 0xf + [0x0, 0x8, 0xc, 0x4, 0xe, 0x6, 0x2, 0xa, 0xf, 0x7, 0x3, 0xb, 0x1, 0x9, 0xd, 0x5], + [0xf, 0x7, 0x3, 0xb, 0x1, 0x9, 0xd, 0x5, 0x0, 0x8, 0xc, 0x4, 0xe, 0x6, 0x2, 0xa], # prev ^ 0xf + ] + table3 = [bitflip(i, 4) for i in range(16)] + + tilesize = 8 + + + def __init__(self, f, mirror=False, planar=True): + self.bs = fbitstream(f) + self.mirror = mirror + self.planar = planar + self.data = None + + def decompress(self): + rams = [[], []] + + self.sizex = self._readint(4) * self.tilesize + self.sizey = self._readint(4) + + self.size = self.sizex * self.sizey + + self.ramorder = self._readbit() + + r1 = self.ramorder + r2 = self.ramorder ^ 1 + + self._fillram(rams[r1]) + mode = self._readbit() + if mode: + mode += self._readbit() + self._fillram(rams[r2]) + + rams[0] = bytearray(bitgroups_to_bytes(rams[0])) + rams[1] = bytearray(bitgroups_to_bytes(rams[1])) + + if mode == 0: + self._decode(rams[0]) + self._decode(rams[1]) + elif mode == 1: + self._decode(rams[r1]) + self._xor(rams[r1], rams[r2]) + elif mode == 2: + self._decode(rams[r2], mirror=False) + self._decode(rams[r1]) + self._xor(rams[r1], rams[r2]) + else: + raise Exception("Invalid deinterlace mode!") + + data = [] + if self.planar: + for a, b in zip(rams[0], rams[1]): + data += [a, b] + self.data = bytearray(data) + else: + for a, b in zip(bitstream(rams[0]), bitstream(rams[1])): + data.append(a | (b << 1)) + self.data = bitgroups_to_bytes(data) + + def _fillram(self, ram): + mode = ['rle', 'data'][self._readbit()] + size = self.size * 4 + while len(ram) < size: + if mode == 'rle': + self._read_rle_chunk(ram) + mode = 'data' + elif mode == 'data': + self._read_data_chunk(ram, size) + mode = 'rle' + if len(ram) > size: + #ram = ram[:size] + raise ValueError(size, len(ram)) + + ram[:] = self._deinterlace_bitgroups(ram) + + def _read_rle_chunk(self, ram): + + i = 0 + while self._readbit(): + i += 1 + + n = self.table1[i] + a = self._readint(i + 1) + n += a + + for i in range(n): + ram.append(0) + + def _read_data_chunk(self, ram, size): + while 1: + bitgroup = self._readint(2) + if bitgroup == 0: + break + ram.append(bitgroup) + + if size <= len(ram): + break + + def _decode(self, ram, mirror=None): + if mirror is None: + mirror = self.mirror + + for x in range(self.sizex): + bit = 0 + for y in range(self.sizey): + i = y * self.sizex + x + a = (ram[i] >> 4) & 0xf + b = ram[i] & 0xf + + a = self.table2[bit][a] + bit = a & 1 + if mirror: + a = self.table3[a] + + b = self.table2[bit][b] + bit = b & 1 + if mirror: + b = self.table3[b] + + ram[i] = (a << 4) | b + + def _xor(self, ram1, ram2, mirror=None): + if mirror is None: + mirror = self.mirror + + for i in range(len(ram2)): + if mirror: + a = (ram2[i] >> 4) & 0xf + b = ram2[i] & 0xf + a = self.table3[a] + b = self.table3[b] + ram2[i] = (a << 4) | b + + ram2[i] ^= ram1[i] + + def _deinterlace_bitgroups(self, bits): + l = [] + for y in range(self.sizey): + for x in range(self.sizex): + i = 4 * y * self.sizex + x + for j in range(4): + l.append(bits[i]) + i += self.sizex + return l + + + def _readbit(self): + return next(self.bs) + + def _readint(self, count): + return readint(self.bs, count) + + +def fbitstream(f): + while 1: + char = f.read(1) + if not char: + break + byte = ord(char) + + for i in range(7, -1, -1): + yield (byte >> i) & 1 + +def bitstream(b): + for byte in b: + for i in range(7, -1, -1): + yield (byte >> i) & 1 + +def readint(bs, count): + n = 0 + while count: + n <<= 1 + n |= next(bs) + count -= 1 + return n + +def bitgroups_to_bytes(bits): + l = [] + for i in range(0, len(bits) - 3, 4): + n = ((bits[i + 0] << 6) + | (bits[i + 1] << 4) + | (bits[i + 2] << 2) + | (bits[i + 3] << 0)) + l.append(n) + return bytearray(l) + + +def bytes_to_bits(bytelist): + return list(bitstream(bytelist)) + + +class Compressor: + """ + pokered pic compression. + + Adapted from stag019's C compressor. + """ + + table1 = [(2 << i) - 1 for i in range(16)] + table2 = [ + [0x0, 0x1, 0x3, 0x2, 0x6, 0x7, 0x5, 0x4, 0xc, 0xd, 0xf, 0xe, 0xa, 0xb, 0x9, 0x8], + [0x8, 0x9, 0xb, 0xa, 0xe, 0xf, 0xd, 0xc, 0x4, 0x5, 0x7, 0x6, 0x2, 0x3, 0x1, 0x0], # reverse + ] + table3 = [bitflip(i, 4) for i in range(16)] + + def __init__(self, image, width=None, height=None): + self.image = bytearray(image) + self.size = len(self.image) + + planar_tile = 8 * 8 // 4 + tile_size = self.size // planar_tile + if height and not width: width = tile_size // height + elif width and not height: height = tile_size // width + elif not width and not height: width = height = int(sqrt(tile_size)) + self.width, self.height = width, height + + def compress(self): + """ + Compress the image five times (twice for each mode, except 0) + and use the smallest one (in bits). + """ + rams = [[],[]] + datas = [] + + for mode in range(3): + + # Order is redundant for mode 0. + + # While this seems like an optimization, + # it's actually required for 1:1 compression + # to the original compressed pics. + + # This appears to be the algorithm + # that Game Freak's compressor used. + + # Using order 0 instead of 1 breaks this feature. + + for order in range(2): + if mode == 0 and order == 0: + continue + for i in range(2): + rams[i] = self.image[i::2] + self._interpret_compress(rams, mode, order) + datas += [(self.data[:], int(self.which_bit))] + + # Pick the smallest pic, measured in bits. + datas = sorted(datas, key=lambda data_bit: (len(data_bit[0]), -data_bit[1])) + self.data, self.which_bit = datas[0] + + def _interpret_compress(self, rams, mode, order): + self.data = [] + self.which_bit = 0 + + r1 = order + r2 = order ^ 1 + + if mode == 0: + self._encode(rams[1]) + self._encode(rams[0]) + elif mode == 1: + self._xor(rams[r1], rams[r2]) + self._encode(rams[r1]) + elif mode == 2: + self._xor(rams[r1], rams[r2]) + self._encode(rams[r1]) + self._encode(rams[r2], mirror=False) + else: + raise Exception('invalid interlace mode!') + + self._writeint(self.height, 4) + self._writeint(self.width, 4) + + self._writebit(order) + + self._fillram(rams[r1]) + if mode == 0: + self._writebit(0) + else: + self._writebit(1) + self._writebit(mode - 1) + self._fillram(rams[r2]) + + def _fillram(self, ram): + rle = 0 + nums = 0 + bitgroups = [] + + for x in range(self.width): + for bit in range(0, 8, 2): + byte = x * self.height * 8 + for y in range(self.height * 8): + bitgroup = (ram[byte] >> (6 - bit)) & 3 + if bitgroup == 0: + if rle == 0: + self._writebit(0) + elif rle == 1: + nums += 1 + else: + self._data_packet(bitgroups) + self._writebit(0) + self._writebit(0) + rle = 1 + bitgroups = [] + else: + if rle == 0: + self._writebit(1) + elif rle == 1: + self._rle(nums) + rle = -1 + bitgroups += [bitgroup] + nums = 0 + byte += 1 + + if rle == 1: + self._rle(nums) + else: + self._data_packet(bitgroups) + + def _data_packet(self, bitgroups): + for bitgroup in bitgroups: + self._writebit((bitgroup >> 1) & 1) + self._writebit((bitgroup >> 0) & 1) + + def _rle(self, nums): + nums += 1 + + # Get the previous power of 2. + # Deriving the bitcount from that seems to be + # faster on average than using the lookup table. + v = nums + v += 1 + v |= v >> 1 + v |= v >> 2 + v |= v >> 4 + v |= v >> 8 + v |= v >> 16 + v -= v >> 1 + v -= 1 + number = nums - v + + bitcount = -1 + while v: + v >>= 1 + bitcount += 1 + + for j in range(bitcount): + self._writebit(1) + self._writebit(0) + for j in range(bitcount, -1, -1): + self._writebit((number >> j) & 1) + + def _encode(self, ram, mirror=None): + a = b = 0 + for i in range(len(ram)): + j = i // self.height + j += i % self.height * self.width * 8 + if i % self.height == 0: + b = 0 + + a = (ram[j] >> 4) & 0xf + table = b & 1 + code_1 = self.table2[table][a] + + b = ram[j] & 0xf + table = a & 1 + code_2 = self.table2[table][b] + + ram[j] = (code_1 << 4) | code_2 + + def _xor(self, ram1, ram2): + for i in range(len(ram2)): + ram2[i] ^= ram1[i] + + def _writebit(self, bit): + self.which_bit -= 1 + if self.which_bit == -1: + self.which_bit = 7 + self.data += [0] + if bit: self.data[-1] |= bit << self.which_bit + + def _writeint(self, num, size=None): + bits = [] + if size: + for i in range(size): + bits += [num & 1] + num >>= 1 + else: + while num > 0: + bits += [num & 1] + num >>= 1 + for bit in reversed(bits): + self._writebit(bit) + + +def decompress(f, offset=None, mirror=False): + """ + Decompress a pic given a file object. Return a planar 2bpp image. + + Optional: offset (for roms). + """ + if offset is not None: + f.seek(offset) + dcmp = Decompressor(f, mirror=mirror) + dcmp.decompress() + return dcmp.data + + +def compress(f): + """ + Compress a planar 2bpp into a pic. + """ + comp = Compressor(f) + comp.compress() + return comp.data + + +def decompress_file(filename): + """ + Decompress a pic given a filename. + Export the resulting planar 2bpp image to + """ + pic = open(filename, 'rb') + image = decompress(pic) + image = gfx.transpose_tiles(image) + image = bytearray(image) + output_filename = os.path.splitext(filename)[0] + '.2bpp' + with open(output_filename, 'wb') as out: + out.write(image) + +def compress_file(filename): + image = open(filename, 'rb').read() + image = gfx.transpose_tiles(image) + pic = compress(image) + pic = bytearray(pic) + output_filename = os.path.splitext(filename)[0] + '.pic' + with open(output_filename, 'wb') as out: + out.write(pic) + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument('mode') + ap.add_argument('filenames', nargs='*') + args = ap.parse_args() + + for filename in args.filenames: + if args.mode == 'decompress': + decompress_file(filename) + elif args.mode == 'compress': + compress_file(filename) + +if __name__ == '__main__': + main() + diff --git a/tools/unnamed.py b/tools/unnamed.py new file mode 100755 index 000000000..b2e9aea3f --- /dev/null +++ b/tools/unnamed.py @@ -0,0 +1,109 @@ +#!/usr/bin/env python3 + +from sys import stderr, exit +from subprocess import Popen, PIPE +from struct import unpack, calcsize +from enum import Enum + +class symtype(Enum): + LOCAL = 0 + IMPORT = 1 + EXPORT = 2 + +def unpack_file(fmt, file): + size = calcsize(fmt) + return unpack(fmt, file.read(size)) + +def read_string(file): + buf = bytearray() + while True: + b = file.read(1) + if b is None or b == b'\0': + return buf.decode() + else: + buf += b + + +# Fix broken pipe when using `head` +from signal import signal, SIGPIPE, SIG_DFL +signal(SIGPIPE,SIG_DFL) + +import argparse +parser = argparse.ArgumentParser(description="Parse the symfile to find unnamed symbols") +parser.add_argument('symfile', type=argparse.FileType('r'), help="the list of symbols") +parser.add_argument('-r', '--rootdir', type=str, help="scan the output files to obtain a list of files with unnamed symbols (NOTE: will rebuild objects as necessary)") +parser.add_argument('-l', '--list', type=int, default=0, help="output this many of each file's unnamed symbols (NOTE: requires -r)") +args = parser.parse_args() + +# Get list of object files +objects = None +if args.rootdir: + for line in Popen(["make", "-C", args.rootdir, "-s", "-p", "DEBUG=1"], + stdout=PIPE).stdout.read().decode().split("\n"): + if line.startswith("rom_obj := "): + objects = line[11:].strip().split() + break + else: + print("Error: Object files not found!", file=stderr) + exit(1) + +# Scan all unnamed symbols from the symfile +symbols_total = 0 +symbols = set() +for line in args.symfile: + line = line.split(";")[0].strip() + split = line.split(" ") + if len(split) < 2: + continue + + symbols_total += 1 + + symbol = " ".join(split[1:]).strip() + if symbol[-3:].lower() == split[0][-3:].lower(): + symbols.add(symbol) + +# If no object files were provided, just print what we know and exit +print("Unnamed pokeyellow symbols: %d (%.2f%% complete)" % (len(symbols), + (symbols_total - len(symbols)) / symbols_total * 100)) +if not objects: + for sym in symbols: + print(sym) + exit() + +# Count the amount of symbols in each file +files = {} +for objfile in objects: + f = open(objfile, "rb") + obj_ver = None + + magic = unpack_file("4s", f)[0] + if magic == b'RGB6': + obj_ver = 6 + elif magic == b'RGB9': + obj_ver = 10 + unpack_file("= 9) -wBattleTransitionCopyTilesOffset:: ; cd3d +wBattleTransitionCopyTilesOffset:: ; 2 bytes ; after 1 row/column has been copied, the offset to the next one to copy from -wInwardSpiralUpdateScreenCounter:: ; cd3d +wInwardSpiralUpdateScreenCounter:: ; counts down from 7 so that every time 7 more tiles of the spiral have been ; placed, the tile map buffer is copied to VRAM so that progress is visible -wHoFTeamIndex:: ; cd3d +wHoFTeamIndex:: -wSSAnneSmokeDriftAmount:: ; cd3d +wSSAnneSmokeDriftAmount:: ; multiplied by 16 to get the number of times to go right by 2 pixels -wRivalStarterTemp:: ; cd3d +wRivalStarterTemp:: -wBoxMonCounts:: ; cd3d +wBoxMonCounts:: ; 12 bytes ; array of the number of mons in each box -wDexMaxSeenMon:: ; cd3d +wDexMaxSeenMon:: -wPPRestoreItem:: ; cd3d +wPPRestoreItem:: -wWereAnyMonsAsleep:: ; cd3d +wWereAnyMonsAsleep:: -wCanPlaySlots:: ; cd3d +wCanPlaySlots:: -wNumShakes:: ; cd3d +wNumShakes:: -wDayCareStartLevel:: ; cd3d +wDayCareStartLevel:: ; the level of the mon at the time it entered day care -wWhichBadge:: ; cd3d +wWhichBadge:: -wPriceTemp:: ; cd3d +wPriceTemp:: ; 3-byte BCD number -wTitleScreenScene:: ; cd3d +wTitleScreenScene:: -wPlayerCharacterOAMTile:: ; cd3d +wPlayerCharacterOAMTile:: -wMoveDownSmallStarsOAMCount:: ; cd3d +wMoveDownSmallStarsOAMCount:: ; the number of small stars OAM entries to move down -wChargeMoveNum:: ; cd3d +wChargeMoveNum:: -wCoordIndex:: ; cd3d +wCoordIndex:: -wOptionsTextSpeedCursorX:: ; cd3d +wOptionsTextSpeedCursorX:: -wOptionsCursorLocation:: ; cd3d +wOptionsCursorLocation:: -wTrainerInfoTextBoxWidthPlus1:: ; cd3d +wTrainerInfoTextBoxWidthPlus1:: -wSwappedMenuItem:: ; cd3d +wSwappedMenuItem:: -wHoFMonSpecies:: ; cd3d +wHoFMonSpecies:: -wFieldMoves:: ; cd3d +wFieldMoves:: ; 4 bytes ; the current mon's field moves -wBadgeNumberTile:: ; cd3d +wBadgeNumberTile:: ; tile ID of the badge number being drawn -wRodResponse:: ; cd3d +wRodResponse:: ; 0 = no bite ; 1 = bite ; 2 = no fish on map -wWhichTownMapLocation:: ; cd3d +wWhichTownMapLocation:: -wStoppingWhichSlotMachineWheel:: ; cd3d +wStoppingWhichSlotMachineWheel:: ; which wheel the player is trying to stop ; 0 = none, 1 = wheel 1, 2 = wheel 2, 3 or greater = wheel 3 -wTradedPlayerMonSpecies:: ; cd3d +wTradedPlayerMonSpecies:: -wTradingWhichPlayerMon:: ; cd3d +wTradingWhichPlayerMon:: -wChangeBoxSavedMapTextPointer:: ; cd3d +wChangeBoxSavedMapTextPointer:: -wFlyAnimUsingCoordList:: ; cd3d +wFlyAnimUsingCoordList:: -wPlayerSpinInPlaceAnimFrameDelay:: ; cd3d +wPlayerSpinInPlaceAnimFrameDelay:: -wPlayerSpinWhileMovingUpOrDownAnimDeltaY:: ; cd3d +wPlayerSpinWhileMovingUpOrDownAnimDeltaY:: -wBoxNumString:: ; cd3d +wBoxNumString:: -wHiddenObjectFunctionArgument:: ; cd3d +wHiddenObjectFunctionArgument:: -wWhichTrade:: ; cd3d +wWhichTrade:: ; which entry from TradeMons to select -wTrainerSpriteOffset:: ; cd3d +wTrainerSpriteOffset:: -wUnusedCD3D:: ; cd3d +wUnusedCD3D:: ds 1 -wTitleScreenTimer:: ; cd3e +wTitleScreenTimer:: -wHUDPokeballGfxOffsetX:: ; cd3e +wHUDPokeballGfxOffsetX:: ; difference in X between the next ball and the current one -wBattleTransitionCircleScreenQuadrantX:: ; cd3e +wBattleTransitionCircleScreenQuadrantX:: ; 0 = left half (X < 10) ; 1 = right half (X >= 10) -wSSAnneSmokeX:: ; cd3e +wSSAnneSmokeX:: -wRivalStarterBallSpriteIndex:: ; cd3e +wRivalStarterBallSpriteIndex:: -wDayCareNumLevelsGrown:: ; cd3e +wDayCareNumLevelsGrown:: -wOptionsBattleAnimCursorX:: ; cd3e +wOptionsBattleAnimCursorX:: -wTrainerInfoTextBoxWidth:: ; cd3e +wTrainerInfoTextBoxWidth:: -wHoFPartyMonIndex:: ; cd3e +wHoFPartyMonIndex:: -wNumCreditsMonsDisplayed:: ; cd3e +wNumCreditsMonsDisplayed:: ; the number of credits mons that have been displayed so far -wBadgeNameTile:: ; cd3e +wBadgeNameTile:: ; first tile ID of the name being drawn -wFlyLocationsList:: ; cd3e -; 11 bytes plus $ff sentinel values at each end +wFlyLocationsList:: +; NUM_CITY_MAPS bytes plus $ff sentinel values at each end -wSlotMachineWheel1Offset:: ; cd3e +wSlotMachineWheel1Offset:: -wTradedEnemyMonSpecies:: ; cd3e +wTradedEnemyMonSpecies:: -wTradingWhichEnemyMon:: ; cd3e +wTradingWhichEnemyMon:: -wFlyAnimCounter:: ; cd3e +wFlyAnimCounter:: -wPlayerSpinInPlaceAnimFrameDelayDelta:: ; cd3e +wPlayerSpinInPlaceAnimFrameDelayDelta:: -wPlayerSpinWhileMovingUpOrDownAnimMaxY:: ; cd3e +wPlayerSpinWhileMovingUpOrDownAnimMaxY:: -wHiddenObjectFunctionRomBank:: ; cd3e +wHiddenObjectFunctionRomBank:: -wTrainerEngageDistance:: ; cd3e +wTrainerEngageDistance:: -wJigglypuffFacingDirections2:: ; cd3e +wJigglypuffFacingDirections2:: ds 1 -wHUDGraphicsTiles:: ; cd3f +wHUDGraphicsTiles:: ; 3 bytes -wDayCareTotalCost:: ; cd3f +wDayCareTotalCost:: ; 2-byte BCD number -wJigglypuffFacingDirections:: ; cd3f +wJigglypuffFacingDirections:: -wOptionsBattleStyleCursorX:: ; cd3f +wOptionsBattleStyleCursorX:: -wTrainerInfoTextBoxNextRowOffset:: ; cd3f +wTrainerInfoTextBoxNextRowOffset:: -wHoFMonLevel:: ; cd3f +wHoFMonLevel:: -wBadgeOrFaceTiles:: ; cd3f +wBadgeOrFaceTiles:: ; 8 bytes ; a list of the first tile IDs of each badge or face (depending on whether the ; badge is owned) to be drawn on the trainer screen -wSlotMachineWheel2Offset:: ; cd3f +wSlotMachineWheel2Offset:: -wNameOfPlayerMonToBeTraded:: ; cd3f +wNameOfPlayerMonToBeTraded:: -wFlyAnimBirdSpriteImageIndex:: ; cd3f +wFlyAnimBirdSpriteImageIndex:: -wPlayerSpinInPlaceAnimFrameDelayEndValue:: ; cd3f +wPlayerSpinInPlaceAnimFrameDelayEndValue:: -wPlayerSpinWhileMovingUpOrDownAnimFrameDelay:: ; cd3f +wPlayerSpinWhileMovingUpOrDownAnimFrameDelay:: -wHiddenObjectIndex:: ; cd3f +wHiddenObjectIndex:: -wTrainerFacingDirection:: ; cd3f +wTrainerFacingDirection:: ds 1 -wHoFMonOrPlayer:: ; cd40 +wHoFMonOrPlayer:: ; show mon or show player? ; 0 = mon ; 1 = player -wSlotMachineWheel3Offset:: ; cd40 +wSlotMachineWheel3Offset:: -wPlayerSpinInPlaceAnimSoundID:: ; cd40 +wPlayerSpinInPlaceAnimSoundID:: -wHiddenObjectY:: ; cd40 +wHiddenObjectY:: -wTrainerScreenY:: ; cd40 +wTrainerScreenY:: -wUnusedCD40:: ; cd40 +wOptionsCancelCursorX:: ds 1 -wDayCarePerLevelCost:: ; cd41 -; 2-byte BCD number (always set to $0100) +wDayCarePerLevelCost:: +; 2-byte BCD number (always set to $100) -wHoFTeamIndex2:: ; cd41 +wHoFTeamIndex2:: -wHiddenItemOrCoinsIndex:: ; cd41 +wHiddenItemOrCoinsIndex:: -wTradedPlayerMonOT:: ; cd41 +wTradedPlayerMonOT:: -wHiddenObjectX:: ; cd41 +wHiddenObjectX:: -wSlotMachineWinningSymbol:: ; cd41 +wSlotMachineWinningSymbol:: ; the OAM tile number of the upper left corner of the winning symbol minus 2 -wNumFieldMoves:: ; cd41 +wNumFieldMoves:: -wSlotMachineWheel1BottomTile:: ; cd41 +wSlotMachineWheel1BottomTile:: -wTrainerScreenX:: ; cd41 +wTrainerScreenX:: ds 1 ; a lot of the uses for these values use more than the said address -wHoFTeamNo:: ; cd42 +wHoFTeamNo:: -wSlotMachineWheel1MiddleTile:: ; cd42 +wSlotMachineWheel1MiddleTile:: -wFieldMovesLeftmostXCoord:: ; cd42 +wFieldMovesLeftmostXCoord:: -wcd42:: ; cd42 +wcd42:: ds 1 -wLastFieldMoveID:: ; cd43 +wLastFieldMoveID:: ; unused -wSlotMachineWheel1TopTile:: ; cd43 +wSlotMachineWheel1TopTile:: ds 1 -wSlotMachineWheel2BottomTile:: ; cd44 +wSlotMachineWheel2BottomTile:: ds 1 -wSlotMachineWheel2MiddleTile:: ; cd45 +wSlotMachineWheel2MiddleTile:: ds 1 -wTempCoins1:: ; cd46 +wTempCoins1:: ; 2 bytes ; temporary variable used to add payout amount to the player's coins -wSlotMachineWheel2TopTile:: ; cd46 +wSlotMachineWheel2TopTile:: ds 1 -wBattleTransitionSpiralDirection:: ; cd47 +wBattleTransitionSpiralDirection:: ; 0 = outward, 1 = inward -wSlotMachineWheel3BottomTile:: ; cd47 +wSlotMachineWheel3BottomTile:: ds 1 -wSlotMachineWheel3MiddleTile:: ; cd48 +wSlotMachineWheel3MiddleTile:: -wFacingDirectionList:: ; cd48 -; 4 bytes (also, the byte before the start of the list (cd47) is used a temp -; variable when the list is rotated) +wFacingDirectionList:: +; 4 bytes (also, the byte before the start of the list (wSlotMachineWheel3BottomTile) +; is used a temp variable when the list is rotated) ; used when spinning the player's sprite ds 1 -wSlotMachineWheel3TopTile:: ; cd49 +wSlotMachineWheel3TopTile:: wTempObtainedBadgesBooleans:: ; 8 bytes @@ -1382,85 +1300,85 @@ wTempObtainedBadgesBooleans:: ; one byte for each badge; 0 = not obtained, 1 = obtained ds 1 -wTempCoins2:: ; cd4a +wTempCoins2:: ; 2 bytes ; temporary variable used to subtract the bet amount from the player's coins -wPayoutCoins:: ; cd4a +wPayoutCoins:: ; 2 bytes ds 2 -wTradedPlayerMonOTID:: ; cd4c +wTradedPlayerMonOTID:: -wSlotMachineFlags:: ; cd4c +wSlotMachineFlags:: ; These flags are set randomly and control when the wheels stop. ; bit 6: allow the player to win in general ; bit 7: allow the player to win with 7 or bar (plus the effect of bit 6) ds 1 -wSlotMachineWheel1SlipCounter:: ; cd4d +wSlotMachineWheel1SlipCounter:: ; wheel 1 can "slip" while this is non-zero -wCutTile:: ; cd4d +wCutTile:: ; $3d = tree tile ; $52 = grass tile ds 1 -wSlotMachineWheel2SlipCounter:: ; cd4e +wSlotMachineWheel2SlipCounter:: ; wheel 2 can "slip" while this is non-zero -wTradedEnemyMonOT:: ; cd4e +wTradedEnemyMonOT:: ds 1 -wSavedPlayerScreenY:: ; cd4f +wSavedPlayerScreenY:: -wSlotMachineRerollCounter:: ; cd4f +wSlotMachineRerollCounter:: ; The remaining number of times wheel 3 will roll down a symbol until a match is ; found, when winning is enabled. It's initialized to 4 each bet. -wEmotionBubbleSpriteIndex:: ; cd4f +wEmotionBubbleSpriteIndex:: ; the index of the sprite the emotion bubble is to be displayed above ds 1 -wWhichEmotionBubble:: ; cd50 +wWhichEmotionBubble:: -wSlotMachineBet:: ; cd50 +wSlotMachineBet:: ; how many coins the player bet on the slot machine (1 to 3) -wSavedPlayerFacingDirection:: ; cd50 +wSavedPlayerFacingDirection:: -wWhichAnimationOffsets:: ; cd50 +wWhichAnimationOffsets:: ; 0 = cut animation, 1 = boulder dust animation ds 9 -wTradedEnemyMonOTID:: ; cd59 +wTradedEnemyMonOTID:: ds 2 -wStandingOnWarpPadOrHole:: ; cd5b +wStandingOnWarpPadOrHole:: ; 0 = neither ; 1 = warp pad ; 2 = hole -wOAMBaseTile:: ; cd5b +wOAMBaseTile:: -wGymTrashCanIndex:: ; cd5b +wGymTrashCanIndex:: ds 1 -wSymmetricSpriteOAMAttributes:: ; cd5c +wSymmetricSpriteOAMAttributes:: ds 1 -wMonPartySpriteSpecies:: ; cd5d +wMonPartySpriteSpecies:: ds 1 -wLeftGBMonSpecies:: ; cd5e +wLeftGBMonSpecies:: ; in the trade animation, the mon that leaves the left gameboy ds 1 -wRightGBMonSpecies:: ; cd5f +wRightGBMonSpecies:: ; in the trade animation, the mon that leaves the right gameboy ds 1 -wFlags_0xcd60:: ; cd60 +wFlags_0xcd60:: ; bit 0: is player engaged by trainer (to avoid being engaged by multiple trainers simultaneously) ; bit 1: boulder dust animation (from using Strength) pending ; bit 3: using generic PC @@ -1470,7 +1388,7 @@ wFlags_0xcd60:: ; cd60 ds 9 -wActionResultOrTookBattleTurn:: ; cd6a +wActionResultOrTookBattleTurn:: ; This has overlapping related uses. ; When the player tries to use an item or use certain field moves, 0 is stored ; when the attempt fails and 1 is stored when the attempt succeeds. @@ -1482,16 +1400,16 @@ wActionResultOrTookBattleTurn:: ; cd6a ; and the player is not allowed to make a move and the two uses are compatible. ds 1 -wJoyIgnore:: ; cd6b +wJoyIgnore:: ; Set buttons are ignored. ds 1 -wDownscaledMonSize:: ; cd6c +wDownscaledMonSize:: ; size of downscaled mon pic used in pokeball entering/exiting animation ; $00 = 5×5 ; $01 = 3×3 -wNumMovesMinusOne:: ; cd6c +wNumMovesMinusOne:: ; FormatMovesString stores the number of moves minus one here ds 1 @@ -1499,13 +1417,13 @@ UNION wcd6d:: ds 4 ; buffer for various data -wStatusScreenCurrentPP:: ; cd71 +wStatusScreenCurrentPP:: ; temp variable used to print a move's current PP on the status screen ds 1 ds 6 -wNormalMaxPPList:: ; cd78 +wNormalMaxPPList:: ; list of normal max PP (without PP up) values ds 9 @@ -1516,268 +1434,268 @@ wEvosMoves:: ds MAX_EVOLUTIONS * EVOLUTION_SIZE + 1 ENDU -wSerialOtherGameboyRandomNumberListBlock:: ; cd81 +wSerialOtherGameboyRandomNumberListBlock:: ; buffer for transferring the random number list generated by the other gameboy -wTileMapBackup2:: ; cd81 +wTileMapBackup2:: ; second buffer for temporarily saving and restoring current screen's tiles (e.g. if menus are drawn on top) ds 20 * 18 -wNamingScreenNameLength:: ; cee9 +wNamingScreenNameLength:: -wEvoOldSpecies:: ; cee9 +wEvoOldSpecies:: -wBuffer:: ; cee9 +wBuffer:: ; Temporary storage area of 30 bytes. -wTownMapCoords:: ; cee9 +wTownMapCoords:: ; lower nybble is x, upper nybble is y -wLearningMovesFromDayCare:: ; cee9 +wLearningMovesFromDayCare:: ; whether WriteMonMoves is being used to make a mon learn moves from day care ; non-zero if so -wChangeMonPicEnemyTurnSpecies:: ; cee9 +wChangeMonPicEnemyTurnSpecies:: -wHPBarMaxHP:: ; cee9 +wHPBarMaxHP:: ds 1 -wNamingScreenSubmitName:: ; ceea +wNamingScreenSubmitName:: ; non-zero when the player has chosen to submit the name -wChangeMonPicPlayerTurnSpecies:: ; ceea +wChangeMonPicPlayerTurnSpecies:: -wEvoNewSpecies:: ; ceea +wEvoNewSpecies:: ds 1 -wAlphabetCase:: ; ceeb +wAlphabetCase:: ; 0 = upper case ; 1 = lower case -wEvoMonTileOffset:: ; ceeb +wEvoMonTileOffset:: -wHPBarOldHP:: ; ceeb +wHPBarOldHP:: ds 1 -wEvoCancelled:: ; ceec +wEvoCancelled:: ds 1 -wNamingScreenLetter:: ; ceed +wNamingScreenLetter:: -wHPBarNewHP:: ; ceed +wHPBarNewHP:: ds 2 -wHPBarDelta:: ; ceef +wHPBarDelta:: ds 1 -wHPBarTempHP:: ; cef0 +wHPBarTempHP:: ds 2 ds 11 -wHPBarHPDifference:: ; cefd +wHPBarHPDifference:: ds 1 ds 7 -wAIItem:: ; cf05 +wAIItem:: ; the item that the AI used ds 1 -wUsedItemOnWhichPokemon:: ; cf06 +wUsedItemOnWhichPokemon:: ds 1 -wAnimSoundID:: ; cf07 +wAnimSoundID:: ; sound ID during battle animations ds 1 -wBankswitchHomeSavedROMBank:: ; cf08 +wBankswitchHomeSavedROMBank:: ; used as a storage value for the bank to return to after a BankswitchHome (bankswitch in homebank) ds 1 -wBankswitchHomeTemp:: ; cf09 +wBankswitchHomeTemp:: ; used as a temp storage value for the bank to switch to ds 1 -wBoughtOrSoldItemInMart:: ; cf0a +wBoughtOrSoldItemInMart:: ; 0 = nothing bought or sold in pokemart ; 1 = bought or sold something in pokemart ; this value is not used for anything ds 1 -wBattleResult:: ; cf0b +wBattleResult:: ; $00 - win ; $01 - lose ; $02 - draw ds 1 -wAutoTextBoxDrawingControl:: ; cf0c +wAutoTextBoxDrawingControl:: ; bit 0: if set, DisplayTextID automatically draws a text box ds 1 wcf0d:: ds 1 ; used with some overworld scripts (not exactly sure what it's used for) -wTilePlayerStandingOn:: ; cf0e +wTilePlayerStandingOn:: ; used in CheckForTilePairCollisions2 to store the tile the player is on ds 1 -wNPCNumScriptedSteps:: ds 1 ; cf0f +wNPCNumScriptedSteps:: ds 1 -wNPCMovementScriptFunctionNum:: ; cf10 +wNPCMovementScriptFunctionNum:: ; which script function within the pointer table indicated by ; wNPCMovementScriptPointerTableNum ds 1 -wTextPredefFlag:: ; cf11 +wTextPredefFlag:: ; bit 0: set when printing a text predef so that DisplayTextID doesn't switch ; to the current map's bank ds 1 -wPredefParentBank:: ; cf12 +wPredefParentBank:: ds 1 -wSpriteIndex:: ds 1 ; cf13 +wSpriteIndex:: ds 1 -wCurSpriteMovement2:: ; cf14 +wCurSpriteMovement2:: ; movement byte 2 of current sprite ds 1 ds 2 -wNPCMovementScriptSpriteOffset:: ; cf17 +wNPCMovementScriptSpriteOffset:: ; sprite offset of sprite being controlled by NPC movement script ds 1 -wScriptedNPCWalkCounter:: ; cf18 +wScriptedNPCWalkCounter:: ds 1 ds 1 -wOnSGB:: ; cf1a +wOnSGB:: ; if running on SGB, it's 1, else it's 0 ds 1 -wDefaultPaletteCommand:: ; cf1b +wDefaultPaletteCommand:: ds 1 -wPlayerHPBarColor:: ; cf1c +wPlayerHPBarColor:: -wWholeScreenPaletteMonSpecies:: ; cf1c +wWholeScreenPaletteMonSpecies:: ; species of the mon whose palette is used for the whole screen ds 1 -wEnemyHPBarColor:: ; cf1d +wEnemyHPBarColor:: ds 1 ; 0: green ; 1: yellow ; 2: red -wPartyMenuHPBarColors:: ; cf1e +wPartyMenuHPBarColors:: ds 6 -wStatusScreenHPBarColor:: ; cf25 +wStatusScreenHPBarColor:: ds 1 ds 7 -wCopyingSGBTileData:: ; cf2d +wCopyingSGBTileData:: -wWhichPartyMenuHPBar:: ; cf2d +wWhichPartyMenuHPBar:: -wPalPacket:: ; cf2d +wPalPacket:: ds 1 -wPartyMenuBlkPacket:: ; cf2e +wPartyMenuBlkPacket:: ; $30 bytes ds 9 -wPartyHPBarAttributes:: ; cf36 +wPartyHPBarAttributes:: ds 20 -wExpAmountGained:: ; cf4a +wExpAmountGained:: ; 2-byte big-endian number ; the total amount of exp a mon gained wcf4b:: ds 2 ; storage buffer for various strings -wGainBoostedExp:: ; cf4c +wGainBoostedExp:: ds 1 ds 17 -wGymCityName:: ; cf5e +wGymCityName:: ds 17 -wGymLeaderName:: ; cf6f +wGymLeaderName:: ds NAME_LENGTH -wItemList:: ; cf7a +wItemList:: ds 16 -wListPointer:: ; cf8a +wListPointer:: ds 2 -wUnusedCF8D:: ; cf8c +wUnusedCF8D:: ; 2 bytes ; used to store pointers, but never read ds 2 -wItemPrices:: ; cf8e +wItemPrices:: ds 2 -wcf91:: ds 1 ; used with a lot of things (too much to list here) ; cf90 +wcf91:: ds 1 ; used with a lot of things (too much to list here) -wWhichPokemon:: ; cf91 +wWhichPokemon:: ; which pokemon you selected ds 1 -wPrintItemPrices:: ; cf92 +wPrintItemPrices:: ; if non-zero, then print item prices when displaying lists ds 1 -wHPBarType:: ; cf93 +wHPBarType:: ; type of HP bar ; $00 = enemy HUD in battle ; $01 = player HUD in battle / status screen ; $02 = party menu -wListMenuID:: ; cf93 +wListMenuID:: ; ID used by DisplayListMenuID ds 1 -wRemoveMonFromBox:: ; cf94 +wRemoveMonFromBox:: ; if non-zero, RemovePokemon will remove the mon from the current box, ; else it will remove the mon from the party -wMoveMonType:: ; cf94 +wMoveMonType:: ; 0 = move from box to party ; 1 = move from party to box ; 2 = move from daycare to party ; 3 = move from party to daycare ds 1 -wItemQuantity:: ; cf95 +wItemQuantity:: ds 1 -wMaxItemQuantity:: ; cf96 +wMaxItemQuantity:: ds 1 ; LoadMonData copies mon data here -wLoadedMon:: party_struct wLoadedMon ; cf97 +wLoadedMon:: party_struct wLoadedMon -wFontLoaded:: ; cfc3 +wFontLoaded:: ; bit 0: The space in VRAM that is used to store walk animation tile patterns ; for the player and NPCs is in use for font tile patterns. ; This means that NPC movement must be disabled. ; The other bits are unused. ds 1 -wWalkCounter:: ; cfc4 +wWalkCounter:: ; walk animation counter ds 1 -wTileInFrontOfPlayer:: ; cfc5 +wTileInFrontOfPlayer:: ; background tile number in front of the player (either 1 or 2 steps ahead) ds 1 -wAudioFadeOutControl:: ; cfc6 +wAudioFadeOutControl:: ; The desired fade counter reload value is stored here prior to calling ; PlaySound in order to cause the current music to fade out before the new ; music begins playing. Storing 0 causes no fade out to occur and the new music @@ -1789,13 +1707,13 @@ wAudioFadeOutControl:: ; cfc6 ; audio, it zeroes this variable and starts playing the sound ID stored in it. ds 1 -wAudioFadeOutCounterReloadValue:: ; cfc7 +wAudioFadeOutCounterReloadValue:: ds 1 -wAudioFadeOutCounter:: ; cfc8 +wAudioFadeOutCounter:: ds 1 -wLastMusicSoundID:: ; cfc9 +wLastMusicSoundID:: ; This is used to determine whether the default music is already playing when ; attempting to play the default music (in order to avoid restarting the same ; music) and whether the music has already been stopped when attempting to @@ -1807,47 +1725,47 @@ wLastMusicSoundID:: ; cfc9 ; the music). ds 1 -wUpdateSpritesEnabled:: ; cfca +wUpdateSpritesEnabled:: ; $00 = causes sprites to be hidden and the value to change to $ff ; $01 = enabled ; $ff = disabled ; other values aren't used ds 1 -wEnemyMoveNum:: ; cfcb +wEnemyMoveNum:: ds 1 -wEnemyMoveEffect:: ; cfcc +wEnemyMoveEffect:: ds 1 -wEnemyMovePower:: ; cfcd +wEnemyMovePower:: ds 1 -wEnemyMoveType:: ; cfce +wEnemyMoveType:: ds 1 -wEnemyMoveAccuracy:: ; cfcf +wEnemyMoveAccuracy:: ds 1 -wEnemyMoveMaxPP:: ; cfd0 +wEnemyMoveMaxPP:: ds 1 -wPlayerMoveNum:: ; cfd1 +wPlayerMoveNum:: ds 1 -wPlayerMoveEffect:: ; cfd2 +wPlayerMoveEffect:: ds 1 -wPlayerMovePower:: ; cfd3 +wPlayerMovePower:: ds 1 -wPlayerMoveType:: ; cfd4 +wPlayerMoveType:: ds 1 -wPlayerMoveAccuracy:: ; cfd5 +wPlayerMoveAccuracy:: ds 1 -wPlayerMoveMaxPP:: ; cfd6 +wPlayerMoveMaxPP:: ds 1 -wEnemyMonSpecies2:: ; cfd7 +wEnemyMonSpecies2:: ds 1 -wBattleMonSpecies2:: ; cfd8 +wBattleMonSpecies2:: ds 1 -wEnemyMonNick:: ds NAME_LENGTH ; cfd9 +wEnemyMonNick:: ds NAME_LENGTH -wEnemyMon:: ; cfe4 +wEnemyMon:: ; The wEnemyMon struct reaches past 0xcfff, ; the end of wram bank 0 on cgb. ; This has no significance on dmg, where wram @@ -1883,64 +1801,64 @@ wEnemyMonBaseStats:: ds 5 wEnemyMonActualCatchRate:: ds 1 wEnemyMonBaseExp:: ds 1 -wBattleMonNick:: ds NAME_LENGTH ; d008 -wBattleMon:: battle_struct wBattleMon ; d013 +wBattleMonNick:: ds NAME_LENGTH +wBattleMon:: battle_struct wBattleMon -wTrainerClass:: ; d030 +wTrainerClass:: ds 1 ds 1 -wTrainerPicPointer:: ; d032 +wTrainerPicPointer:: ds 2 ds 1 -wTempMoveNameBuffer:: ; d035 +wTempMoveNameBuffer:: -wLearnMoveMonName:: ; d035 +wLearnMoveMonName:: ; The name of the mon that is learning a move. ds 16 -wTrainerBaseMoney:: ; d045 +wTrainerBaseMoney:: ; 2-byte BCD number ; money received after battle = base money × level of highest-level enemy mon ds 2 -wMissableObjectCounter:: ; d047 +wMissableObjectCounter:: ds 1 ds 1 -wTrainerName:: ; d049 +wTrainerName:: ; 13 bytes for the letters of the opposing trainer ; the name is terminated with $50 with possible ; unused trailing letters ds 13 -wIsInBattle:: ; d056 +wIsInBattle:: ; lost battle, this is -1 ; no battle, this is 0 ; wild battle, this is 1 ; trainer battle, this is 2 ds 1 -wPartyGainExpFlags:: ; d057 +wPartyGainExpFlags:: ; flags that indicate which party members should be be given exp when GainExperience is called flag_array 6 -wCurOpponent:: ; d058 +wCurOpponent:: ; in a wild battle, this is the species of pokemon ; in a trainer battle, this is the trainer class + OPP_ID_OFFSET ds 1 -wBattleType:: ; d059 +wBattleType:: ; in normal battle, this is 0 ; in old man battle, this is 1 ; in safari battle, this is 2 ds 1 -wDamageMultipliers:: ; d05a +wDamageMultipliers:: ; bits 0-6: Effectiveness ; $0 = immune ; $5 = not very effective @@ -1949,34 +1867,34 @@ wDamageMultipliers:: ; d05a ; bit 7: STAB ds 1 -wLoneAttackNo:: ; d05b +wLoneAttackNo:: ; which entry in LoneAttacks to use -wGymLeaderNo:: ; d05b +wGymLeaderNo:: ; it's actually the same thing as ^ ds 1 -wTrainerNo:: ; d05c +wTrainerNo:: ; which instance of [youngster, lass, etc] is this? ds 1 -wCriticalHitOrOHKO:: ; d05d +wCriticalHitOrOHKO:: ; $00 = normal attack ; $01 = critical hit ; $02 = successful OHKO ; $ff = failed OHKO ds 1 -wMoveMissed:: ; d05e +wMoveMissed:: ds 1 -wPlayerStatsToDouble:: ; d05f +wPlayerStatsToDouble:: ; always 0 ds 1 -wPlayerStatsToHalve:: ; d060 +wPlayerStatsToHalve:: ; always 0 ds 1 -wPlayerBattleStatus1:: ; d061 +wPlayerBattleStatus1:: ; bit 0 - bide ; bit 1 - thrash / petal dance ; bit 2 - attacking multiple times (e.g. double kick) @@ -1987,7 +1905,7 @@ wPlayerBattleStatus1:: ; d061 ; bit 7 - confusion ds 1 -wPlayerBattleStatus2:: ; d062 +wPlayerBattleStatus2:: ; bit 0 - X Accuracy effect ; bit 1 - protected by "mist" ; bit 2 - focus energy effect @@ -1997,104 +1915,104 @@ wPlayerBattleStatus2:: ; d062 ; bit 7 - leech seeded ds 1 -wPlayerBattleStatus3:: ; d063 +wPlayerBattleStatus3:: ; bit 0 - toxic ; bit 1 - light screen ; bit 2 - reflect ; bit 3 - transformed ds 1 -wEnemyStatsToDouble:: ; d064 +wEnemyStatsToDouble:: ; always 0 ds 1 -wEnemyStatsToHalve:: ; d065 +wEnemyStatsToHalve:: ; always 0 ds 1 -wEnemyBattleStatus1:: ; d066 +wEnemyBattleStatus1:: ds 1 -wEnemyBattleStatus2:: ; d067 +wEnemyBattleStatus2:: ds 1 -wEnemyBattleStatus3:: ; d068 +wEnemyBattleStatus3:: ds 1 -wPlayerNumAttacksLeft:: ; d069 +wPlayerNumAttacksLeft:: ; when the player is attacking multiple times, the number of attacks left ds 1 -wPlayerConfusedCounter:: ; d06a +wPlayerConfusedCounter:: ds 1 -wPlayerToxicCounter:: ; d06b +wPlayerToxicCounter:: ds 1 -wPlayerDisabledMove:: ; d06c +wPlayerDisabledMove:: ; high nibble: which move is disabled (1-4) ; low nibble: disable turns left ds 1 ds 1 -wEnemyNumAttacksLeft:: ; d06e +wEnemyNumAttacksLeft:: ; when the enemy is attacking multiple times, the number of attacks left ds 1 -wEnemyConfusedCounter:: ; d06f +wEnemyConfusedCounter:: ds 1 -wEnemyToxicCounter:: ; d070 +wEnemyToxicCounter:: ds 1 -wEnemyDisabledMove:: ; d071 +wEnemyDisabledMove:: ; high nibble: which move is disabled (1-4) ; low nibble: disable turns left ds 1 ds 1 -wPlayerNumHits:: ; d073 +wPlayerNumHits:: ; number of hits by player in attacks like Double Slap, etc. -wPlayerBideAccumulatedDamage:: ; d073 +wPlayerBideAccumulatedDamage:: ; the amount of damage accumulated by the player while biding (2 bytes) -wUnknownSerialCounter2:: ; d073 +wUnknownSerialCounter2:: ; 2 bytes ds 4 -wEscapedFromBattle:: ; d077 +wEscapedFromBattle:: ; non-zero when an item or move that allows escape from battle was used ds 1 -wAmountMoneyWon:: ; d078 +wAmountMoneyWon:: ; 3-byte BCD number -wObjectToHide:: ; d078 +wObjectToHide:: ds 1 -wObjectToShow:: ; d079 +wObjectToShow:: ds 1 ds 1 -wDefaultMap:: ; d07b +wDefaultMap:: ; the map you will start at when the debug bit is set -wMenuItemOffset:: ; d07b +wMenuItemOffset:: -wAnimationID:: ; d07b +wAnimationID:: ; ID number of the current battle animation ds 1 -wNamingScreenType:: ; d07c +wNamingScreenType:: -wPartyMenuTypeOrMessageID:: ; d07c +wPartyMenuTypeOrMessageID:: -wTempTilesetNumTiles:: ; d07c +wTempTilesetNumTiles:: ; temporary storage for the number of tiles in a tileset ds 1 -wSavedListScrollOffset:: ; d07d +wSavedListScrollOffset:: ; used by the pokemart code to save the existing value of wListScrollOffset ; so that it can be restored when the player is done with the pokemart NPC ds 1 @@ -2102,71 +2020,71 @@ wSavedListScrollOffset:: ; d07d ds 2 ; base coordinates of frame block -wBaseCoordX:: ; d080 +wBaseCoordX:: ds 1 -wBaseCoordY:: ; d081 +wBaseCoordY:: ds 1 ; low health alarm counter/enable ; high bit = enable, others = timer to cycle frequencies -wLowHealthAlarm:: ds 1 ; d082 +wLowHealthAlarm:: ds 1 -wFBTileCounter:: ; d083 +wFBTileCounter:: ; counts how many tiles of the current frame block have been drawn ds 1 -wMovingBGTilesCounter2:: ; d084 +wMovingBGTilesCounter2:: ds 1 -wSubAnimFrameDelay:: ; d085 +wSubAnimFrameDelay:: ; duration of each frame of the current subanimation in terms of screen refreshes ds 1 -wSubAnimCounter:: ; d086 +wSubAnimCounter:: ; counts the number of subentries left in the current subanimation ds 1 -wSaveFileStatus:: ; d087 +wSaveFileStatus:: ; 1 = no save file or save file is corrupted ; 2 = save file exists and no corruption has been detected ds 1 -wNumFBTiles:: ; d088 +wNumFBTiles:: ; number of tiles in current battle animation frame block ds 1 -wFlashScreenLongCounter:: ; d089 +wFlashScreenLongCounter:: -wSpiralBallsBaseY:: ; d089 +wSpiralBallsBaseY:: -wFallingObjectMovementByte:: ; d089 +wFallingObjectMovementByte:: ; bits 0-6: index into FallingObjects_DeltaXs array (0 - 8) ; bit 7: direction; 0 = right, 1 = left -wNumShootingBalls:: ; d089 +wNumShootingBalls:: -wTradedMonMovingRight:: ; d089 +wTradedMonMovingRight:: ; $01 if mon is moving from left gameboy to right gameboy; $00 if vice versa -wOptionsInitialized:: ; d089 +wOptionsInitialized:: -wNewSlotMachineBallTile:: ; d089 +wNewSlotMachineBallTile:: -wCoordAdjustmentAmount:: ; d089 +wCoordAdjustmentAmount:: ; how much to add to the X/Y coord -wUnusedD08A:: ; d089 +wUnusedD08A:: ds 1 -wSpiralBallsBaseX:: ; d08a +wSpiralBallsBaseX:: -wNumFallingObjects:: ; d08a +wNumFallingObjects:: -wSlideMonDelay:: ; d08a +wSlideMonDelay:: -wAnimCounter:: ; d08a +wAnimCounter:: ; generic counter variable for various animations -wSubAnimTransform:: ; d08a +wSubAnimTransform:: ; controls what transformations are applied to the subanimation ; 01: flip horizontally and vertically ; 02: flip horizontally and translate downwards 40 pixels @@ -2174,52 +2092,52 @@ wSubAnimTransform:: ; d08a ; 04: reverse the subanimation ds 1 -wEndBattleWinTextPointer:: ; d08b +wEndBattleWinTextPointer:: ds 2 -wEndBattleLoseTextPointer:: ; d08d +wEndBattleLoseTextPointer:: ds 2 ds 2 -wEndBattleTextRomBank:: ; d091 +wEndBattleTextRomBank:: ds 1 ds 1 -wSubAnimAddrPtr:: ; d093 +wSubAnimAddrPtr:: ; the address _of the address_ of the current subanimation entry ds 2 -wSlotMachineAllowMatchesCounter:: ; d095 +wSlotMachineAllowMatchesCounter:: ; If non-zero, the allow matches flag is always set. ; There is a 1/256 (~0.4%) chance that this value will be set to 60, which is ; the only way it can increase. Winning certain payout amounts will decrement it ; or zero it. -wSubAnimSubEntryAddr:: ; d095 +wSubAnimSubEntryAddr:: ; the address of the current subentry of the current subanimation ds 2 ds 2 -wOutwardSpiralTileMapPointer:: ; d099 +wOutwardSpiralTileMapPointer:: ds 1 -wPartyMenuAnimMonEnabled:: ; d09a +wPartyMenuAnimMonEnabled:: -wTownMapSpriteBlinkingEnabled:: ; d09a +wTownMapSpriteBlinkingEnabled:: ; non-zero when enabled. causes nest locations to blink on and off. ; the town selection cursor will blink regardless of what this value is -wUnusedD09B:: ; d09a +wUnusedD09B:: ds 1 -wFBDestAddr:: ; d09b +wFBDestAddr:: ; current destination address in OAM for frame blocks (big endian) ds 2 -wFBMode:: ; d09d +wFBMode:: ; controls how the frame blocks are put together to form frames ; specifically, after finishing drawing the frame block, the frame block's mode determines what happens ; 00: clean OAM buffer and delay @@ -2228,172 +2146,172 @@ wFBMode:: ; d09d ; 04: delay, without cleaning OAM buffer, and do not advance [wFBDestAddr], so that the next frame block will overwrite this one ds 1 -wLinkCableAnimBulgeToggle:: ; d09e +wLinkCableAnimBulgeToggle:: ; 0 = small ; 1 = big -wIntroNidorinoBaseTile:: ; d09e +wIntroNidorinoBaseTile:: -wOutwardSpiralCurrentDirection:: ; d09e +wOutwardSpiralCurrentDirection:: -wDropletTile:: ; d09e +wDropletTile:: -wNewTileBlockID:: ; d09e +wNewTileBlockID:: -wWhichBattleAnimTileset:: ; d09e +wWhichBattleAnimTileset:: -wSquishMonCurrentDirection:: ; d09e +wSquishMonCurrentDirection:: ; 0 = left ; 1 = right -wSlideMonUpBottomRowLeftTile:: ; d09e +wSlideMonUpBottomRowLeftTile:: ; the tile ID of the leftmost tile in the bottom row in AnimationSlideMonUp_ ds 1 -wDisableVBlankWYUpdate:: ds 1 ; if non-zero, don't update WY during V-blank ; d09f +wDisableVBlankWYUpdate:: ds 1 ; if non-zero, don't update WY during V-blank -wSpriteCurPosX:: ; d0a0 +wSpriteCurPosX:: ds 1 -wSpriteCurPosY:: ; d0a1 +wSpriteCurPosY:: ds 1 -wSpriteWidth:: ; d0a2 +wSpriteWidth:: ds 1 -wSpriteHeight:: ; d0a3 +wSpriteHeight:: ds 1 -wSpriteInputCurByte:: ; d0a4 +wSpriteInputCurByte:: ; current input byte ds 1 -wSpriteInputBitCounter:: ; d0a5 +wSpriteInputBitCounter:: ; bit offset of last read input bit ds 1 -wSpriteOutputBitOffset:: ; d0a6; determines where in the output byte the two bits are placed. Each byte contains four columns (2bpp data) +wSpriteOutputBitOffset:: ; determines where in the output byte the two bits are placed. Each byte contains four columns (2bpp data) ; 3 -> XX000000 1st column ; 2 -> 00XX0000 2nd column ; 1 -> 0000XX00 3rd column ; 0 -> 000000XX 4th column ds 1 -wSpriteLoadFlags:: ; d0a7 -; bit 0 determines used buffer (0 -> $a188, 1 -> $a310) +wSpriteLoadFlags:: +; bit 0 determines used buffer (0 -> sSpriteBuffer1, 1 -> sSpriteBuffer2) ; bit 1 loading last sprite chunk? (there are at most 2 chunks per load operation) ds 1 -wSpriteUnpackMode:: ; d0a8 +wSpriteUnpackMode:: ds 1 -wSpriteFlipped:: ; d0a9 +wSpriteFlipped:: ds 1 -wSpriteInputPtr:: ; d0aa +wSpriteInputPtr:: ; pointer to next input byte ds 2 -wSpriteOutputPtr:: ; d0ac +wSpriteOutputPtr:: ; pointer to current output byte ds 2 -wSpriteOutputPtrCached:: ; d0ae +wSpriteOutputPtrCached:: ; used to revert pointer for different bit offsets ds 2 -wSpriteDecodeTable0Ptr:: ; d0b0 +wSpriteDecodeTable0Ptr:: ; pointer to differential decoding table (assuming initial value 0) ds 2 -wSpriteDecodeTable1Ptr:: ; d0b2 +wSpriteDecodeTable1Ptr:: ; pointer to differential decoding table (assuming initial value 1) ds 2 -wd0b5:: ds 1 ; used as a temp storage area for Pokemon Species, and other Pokemon/Battle related things ; d0b4 +wd0b5:: ds 1 ; used as a temp storage area for Pokemon Species, and other Pokemon/Battle related things -wNameListType:: ; d0b5 +wNameListType:: ds 1 -wPredefBank:: ; d0b6 +wPredefBank:: ds 1 -wMonHeader:: ; d0b7 +wMonHeader:: -wMonHIndex:: ; d0b7 +wMonHIndex:: ; In the ROM base stats data structure, this is the dex number, but it is ; overwritten with the internal index number after the header is copied to WRAM. ds 1 -wMonHBaseStats:: ; d0b8 -wMonHBaseHP:: ; d0b8 +wMonHBaseStats:: +wMonHBaseHP:: ds 1 -wMonHBaseAttack:: ; d0b9 +wMonHBaseAttack:: ds 1 -wMonHBaseDefense:: ; d0ba +wMonHBaseDefense:: ds 1 -wMonHBaseSpeed:: ; d0bb +wMonHBaseSpeed:: ds 1 -wMonHBaseSpecial:: ; d0bc +wMonHBaseSpecial:: ds 1 -wMonHTypes:: ; d0bd -wMonHType1:: ; d0bd +wMonHTypes:: +wMonHType1:: ds 1 -wMonHType2:: ; d0be +wMonHType2:: ds 1 -wMonHCatchRate:: ; d0bf +wMonHCatchRate:: ds 1 -wMonHBaseEXP:: ; d0c0 +wMonHBaseEXP:: ds 1 -wMonHSpriteDim:: ; d0c1 +wMonHSpriteDim:: ds 1 -wMonHFrontSprite:: ; d0c2 +wMonHFrontSprite:: ds 2 -wMonHBackSprite:: ; d0c4 +wMonHBackSprite:: ds 2 -wMonHMoves:: ; d0c6 +wMonHMoves:: ds 4 -wMonHGrowthRate:: ; d0ca +wMonHGrowthRate:: ds 1 -wMonHLearnset:: ; d0cb +wMonHLearnset:: ; bit field flag_array 50 + 5 ds 1 -wSavedTilesetType:: ; d0d3 +wSavedTilesetType:: ; saved at the start of a battle and then written back at the end of the battle ds 1 ds 2 -wDamage:: ; d0d6 +wDamage:: ds 2 ds 2 -wRepelRemainingSteps:: ; d0da +wRepelRemainingSteps:: ds 1 -wMoves:: ; d0db +wMoves:: ; list of moves for FormatMovesString ds 4 -wMoveNum:: ; d0df +wMoveNum:: ds 1 -wMovesString:: ; d0e0 +wMovesString:: ds 56 -wUnusedD119:: ; d118 +wUnusedD119:: ds 1 -wWalkBikeSurfStateCopy:: ; d119 +wWalkBikeSurfStateCopy:: ; wWalkBikeSurfState is sometimes copied here, but it doesn't seem to be used for anything ds 1 -wInitListType:: ; d11a +wInitListType:: ; the type of list for InitList to init ds 1 -wCapturedMonSpecies:: ; d11b +wCapturedMonSpecies:: ; 0 if no mon was captured ds 1 -wFirstMonsNotOutYet:: ; d11c +wFirstMonsNotOutYet:: ; Non-zero when the first player mon and enemy mon haven't been sent out yet. ; It prevents the game from asking if the player wants to choose another mon ; when the enemy sends out their first mon and suppresses the "no will to fight" @@ -2401,78 +2319,78 @@ wFirstMonsNotOutYet:: ; d11c ; which will be the first mon sent out. ds 1 -wPokeBallCaptureCalcTemp:: ; d11e +wPokeBallCaptureCalcTemp:: ; lower nybble: number of shakes ; upper nybble: number of animations to play -wPokeBallAnimData:: ; d11d +wPokeBallAnimData:: -wUsingPPUp:: ; d11d +wUsingPPUp:: -wMaxPP:: ; d11d +wMaxPP:: ; 0 for player, non-zero for enemy -wCalculateWhoseStats:: ; d11d +wCalculateWhoseStats:: -wTypeEffectiveness:: ; d11d +wTypeEffectiveness:: -wMoveType:: ; d11d +wMoveType:: -wNumSetBits:: ; d11d +wNumSetBits:: wd11e:: ds 1 ; used as a Pokemon and Item storage value. Also used as an output value for CountSetBits -wForcePlayerToChooseMon:: ; d11e +wForcePlayerToChooseMon:: ; When this value is non-zero, the player isn't allowed to exit the party menu ; by pressing B and not choosing a mon. ds 1 -wNumRunAttempts:: ; d11f +wNumRunAttempts:: ; number of times the player has tried to run from battle ds 1 -wEvolutionOccurred:: ; d120 +wEvolutionOccurred:: ds 1 -wVBlankSavedROMBank:: ; d121 +wVBlankSavedROMBank:: ds 1 -wFarCopyDataSavedROMBank:: ; d122 +wFarCopyDataSavedROMBank:: ds 1 -wIsKeyItem:: ; d123 +wIsKeyItem:: ds 1 -wTextBoxID:: ; d124 +wTextBoxID:: ds 1 -wCurrentMapScriptFlags:: ds 1 ; not exactly sure what this is used for, but it seems to be used as a multipurpose temp flag value ; d125 +wCurrentMapScriptFlags:: ds 1 ; not exactly sure what this is used for, but it seems to be used as a multipurpose temp flag value -wCurEnemyLVL:: ; d126 +wCurEnemyLVL:: ds 1 -wItemListPointer:: ; d127 +wItemListPointer:: ; pointer to list of items terminated by $FF ds 2 -wListCount:: ; d129 +wListCount:: ; number of entries in a list ds 1 -wLinkState:: ; d12a +wLinkState:: ds 1 -wTwoOptionMenuID:: ; d12b +wTwoOptionMenuID:: ds 1 -wChosenMenuItem:: ; d12c +wChosenMenuItem:: ; the id of the menu item the player ultimately chose -wOutOfBattleBlackout:: ; d12c +wOutOfBattleBlackout:: ; non-zero when the whole party has fainted due to out-of-battle poison damage ds 1 -wMenuExitMethod:: ; d12d +wMenuExitMethod:: ; the way the user exited a menu ; for list menus and the buy/sell/quit menu: ; $01 = the user pressed A to choose a menu item @@ -2482,148 +2400,148 @@ wMenuExitMethod:: ; d12d ; $02 = the user pressed B or pressed A with the second menu item selected ds 1 -wDungeonWarpDataEntrySize:: ; d12e +wDungeonWarpDataEntrySize:: ; the size is always 6, so they didn't need a variable in RAM for this -wWhichPewterGuy:: ; d12e +wWhichPewterGuy:: ; 0 = museum guy ; 1 = gym guy -wWhichPrizeWindow:: ; d12e +wWhichPrizeWindow:: ; there are 3 windows, from 0 to 2 -wGymGateTileBlock:: ; d12e +wGymGateTileBlock:: ; a horizontal or vertical gate block ds 1 -wSavedSpriteScreenY:: ; d12f +wSavedSpriteScreenY:: ds 1 -wSavedSpriteScreenX:: ; d130 +wSavedSpriteScreenX:: ds 1 -wSavedSpriteMapY:: ; d131 +wSavedSpriteMapY:: ds 1 -wSavedSpriteMapX:: ; d132 +wSavedSpriteMapX:: ds 1 ds 5 -wWhichPrize:: ; d138 +wWhichPrize:: ds 1 -wIgnoreInputCounter:: ; d139 +wIgnoreInputCounter:: ; counts downward each frame ; when it hits 0, bit 5 (ignore input bit) of wd730 is reset ds 1 -wStepCounter:: ; d13a +wStepCounter:: ; counts down once every step ds 1 -wNumberOfNoRandomBattleStepsLeft:: ; d13b +wNumberOfNoRandomBattleStepsLeft:: ; after a battle, you have at least 3 steps before a random battle can occur ds 1 -wPrize1:: ; d13c +wPrize1:: ds 1 -wPrize2:: ; d13d +wPrize2:: ds 1 -wPrize3:: ; d13e +wPrize3:: ds 1 ds 1 -wSerialRandomNumberListBlock:: ; d140 +wSerialRandomNumberListBlock:: ; the first 7 bytes are the preamble -wPrize1Price:: ; d140 +wPrize1Price:: ds 2 -wPrize2Price:: ; d142 +wPrize2Price:: ds 2 -wPrize3Price:: ; d144 +wPrize3Price:: ds 2 ds 1 -wLinkBattleRandomNumberList:: ; d147 +wLinkBattleRandomNumberList:: ; shared list of 9 random numbers, indexed by wLinkBattleRandomNumberListIndex ds 10 -wSerialPlayerDataBlock:: ; d151 +wSerialPlayerDataBlock:: ; the first 6 bytes are the preamble -wPseudoItemID:: ; d151 +wPseudoItemID:: ; When a real item is being used, this is 0. ; When a move is acting as an item, this is the ID of the item it's acting as. ; For example, out-of-battle Dig is executed using a fake Escape Rope item. In ; that case, this would be ESCAPE_ROPE. ds 1 -wUnusedD153:: ; d152 +wUnusedD153:: ds 1 ds 2 -wEvoStoneItemID:: ; d155 +wEvoStoneItemID:: ds 1 -wSavedNPCMovementDirections2Index:: ; d156 +wSavedNPCMovementDirections2Index:: ds 1 -wPlayerName:: ; d157 +wPlayerName:: ds NAME_LENGTH wPartyDataStart:: -wPartyCount:: ds 1 ; d162 -wPartySpecies:: ds PARTY_LENGTH ; d163 -wPartyEnd:: ds 1 ; d169 +wPartyCount:: ds 1 +wPartySpecies:: ds PARTY_LENGTH +wPartyEnd:: ds 1 wPartyMons:: -wPartyMon1:: party_struct wPartyMon1 ; d16a -wPartyMon2:: party_struct wPartyMon2 ; d196 -wPartyMon3:: party_struct wPartyMon3 ; d1c2 -wPartyMon4:: party_struct wPartyMon4 ; d1ee -wPartyMon5:: party_struct wPartyMon5 ; d21a -wPartyMon6:: party_struct wPartyMon6 ; d246 - -wPartyMonOT:: ds NAME_LENGTH * PARTY_LENGTH ; d272 -wPartyMonNicks:: ds NAME_LENGTH * PARTY_LENGTH ; d2b4 - +wPartyMon1:: party_struct wPartyMon1 +wPartyMon2:: party_struct wPartyMon2 +wPartyMon3:: party_struct wPartyMon3 +wPartyMon4:: party_struct wPartyMon4 +wPartyMon5:: party_struct wPartyMon5 +wPartyMon6:: party_struct wPartyMon6 + +wPartyMonOT:: ds NAME_LENGTH * PARTY_LENGTH +wPartyMonNicks:: ds NAME_LENGTH * PARTY_LENGTH wPartyMonNicksEnd:: + wPartyDataEnd:: wMainDataStart:: -wPokedexOwned:: ; d2f5 +wPokedexOwned:: flag_array NUM_POKEMON wPokedexOwnedEnd:: -wPokedexSeen:: ; d309 +wPokedexSeen:: flag_array NUM_POKEMON wPokedexSeenEnd:: -wNumBagItems:: ; d31c +wNumBagItems:: ds 1 -wBagItems:: ; d31d +wBagItems:: ; item, quantity ds BAG_ITEM_CAPACITY * 2 ds 1 ; end -wPlayerMoney:: ; d346 +wPlayerMoney:: ds 3 ; BCD -wRivalName:: ; d349 +wRivalName:: ds NAME_LENGTH -wOptions:: ; d354 +wOptions:: ; bit 7 = battle animation ; 0: On ; 1: Off @@ -2636,287 +2554,287 @@ wOptions:: ; d354 ; 5: Slow ds 1 -wObtainedBadges:: ; d355 +wObtainedBadges:: flag_array 8 ds 1 -wLetterPrintingDelayFlags:: ; d357 +wLetterPrintingDelayFlags:: ; bit 0: If 0, limit the delay to 1 frame. Note that this has no effect if ; the delay has been disabled entirely through bit 1 of this variable ; or bit 6 of wd730. ; bit 1: If 0, no delay. ds 1 -wPlayerID:: ; d358 +wPlayerID:: ds 2 -wMapMusicSoundID:: ; d35a +wMapMusicSoundID:: ds 1 -wMapMusicROMBank:: ; d35b +wMapMusicROMBank:: ds 1 -wMapPalOffset:: ; d35c +wMapPalOffset:: ; offset subtracted from FadePal4 to get the background and object palettes for the current map ; normally, it is 0. it is 6 when Flash is needed, causing FadePal2 to be used instead of FadePal4 ds 1 -wCurMap:: ; d35d +wCurMap:: ds 1 -wCurrentTileBlockMapViewPointer:: ; d35e +wCurrentTileBlockMapViewPointer:: ; pointer to the upper left corner of the current view in the tile block map ds 2 -wYCoord:: ; d360 -; player’s position on the current map +wYCoord:: +; player's position on the current map ds 1 -wXCoord:: ; d361 +wXCoord:: ds 1 -wYBlockCoord:: ; d362 +wYBlockCoord:: ; player's y position (by block) ds 1 -wXBlockCoord:: ; d363 +wXBlockCoord:: ds 1 -wLastMap:: ; d364 +wLastMap:: ds 1 -wUnusedD366:: ; d365 +wUnusedD366:: ds 1 -wCurMapTileset:: ; d366 +wCurMapTileset:: ds 1 -wCurMapHeight:: ; d367 +wCurMapHeight:: ; blocks ds 1 -wCurMapWidth:: ; d368 +wCurMapWidth:: ; blocks ds 1 -wMapDataPtr:: ; d369 +wMapDataPtr:: ds 2 -wMapTextPtr:: ; d36b +wMapTextPtr:: ds 2 -wMapScriptPtr:: ; d36d +wMapScriptPtr:: ds 2 -wMapConnections:: ; d36f +wMapConnections:: ; connection byte ds 1 -wMapConn1Ptr:: ; d370 +wMapConn1Ptr:: ds 1 -wNorthConnectionStripSrc:: ; d371 +wNorthConnectionStripSrc:: ds 2 -wNorthConnectionStripDest:: ; d373 +wNorthConnectionStripDest:: ds 2 -wNorthConnectionStripWidth:: ; d375 +wNorthConnectionStripWidth:: ds 1 -wNorthConnectedMapWidth:: ; d376 +wNorthConnectedMapWidth:: ds 1 -wNorthConnectedMapYAlignment:: ; d377 +wNorthConnectedMapYAlignment:: ds 1 -wNorthConnectedMapXAlignment:: ; d378 +wNorthConnectedMapXAlignment:: ds 1 -wNorthConnectedMapViewPointer:: ; d379 +wNorthConnectedMapViewPointer:: ds 2 -wMapConn2Ptr:: ; d37b +wMapConn2Ptr:: ds 1 -wSouthConnectionStripSrc:: ; d37c +wSouthConnectionStripSrc:: ds 2 -wSouthConnectionStripDest:: ; d37e +wSouthConnectionStripDest:: ds 2 -wSouthConnectionStripWidth:: ; d380 +wSouthConnectionStripWidth:: ds 1 -wSouthConnectedMapWidth:: ; d381 +wSouthConnectedMapWidth:: ds 1 -wSouthConnectedMapYAlignment:: ; d382 +wSouthConnectedMapYAlignment:: ds 1 -wSouthConnectedMapXAlignment:: ; d383 +wSouthConnectedMapXAlignment:: ds 1 -wSouthConnectedMapViewPointer:: ; d384 +wSouthConnectedMapViewPointer:: ds 2 -wMapConn3Ptr:: ; d386 +wMapConn3Ptr:: ds 1 -wWestConnectionStripSrc:: ; d387 +wWestConnectionStripSrc:: ds 2 -wWestConnectionStripDest:: ; d389 +wWestConnectionStripDest:: ds 2 -wWestConnectionStripHeight:: ; d38b +wWestConnectionStripHeight:: ds 1 -wWestConnectedMapWidth:: ; d38c +wWestConnectedMapWidth:: ds 1 -wWestConnectedMapYAlignment:: ; d38d +wWestConnectedMapYAlignment:: ds 1 -wWestConnectedMapXAlignment:: ; d38e +wWestConnectedMapXAlignment:: ds 1 -wWestConnectedMapViewPointer:: ; d38f +wWestConnectedMapViewPointer:: ds 2 -wMapConn4Ptr:: ; d391 +wMapConn4Ptr:: ds 1 -wEastConnectionStripSrc:: ; d392 +wEastConnectionStripSrc:: ds 2 -wEastConnectionStripDest:: ; d394 +wEastConnectionStripDest:: ds 2 -wEastConnectionStripHeight:: ; d396 +wEastConnectionStripHeight:: ds 1 -wEastConnectedMapWidth:: ; d397 +wEastConnectedMapWidth:: ds 1 -wEastConnectedMapYAlignment:: ; d398 +wEastConnectedMapYAlignment:: ds 1 -wEastConnectedMapXAlignment:: ; d399 +wEastConnectedMapXAlignment:: ds 1 -wEastConnectedMapViewPointer:: ; d39a +wEastConnectedMapViewPointer:: ds 2 -wSpriteSet:: ; d39c +wSpriteSet:: ; sprite set for the current map (11 sprite picture ID's) ds 11 -wSpriteSetID:: ; d3a7 +wSpriteSetID:: ; sprite set ID for the current map ds 1 -wObjectDataPointerTemp:: ; d3a8 +wObjectDataPointerTemp:: ds 2 ds 2 -wMapBackgroundTile:: ; d3ac +wMapBackgroundTile:: ; the tile shown outside the boundaries of the map ds 1 -wNumberOfWarps:: ; d3ad +wNumberOfWarps:: ; number of warps in current map ds 1 -wWarpEntries:: ; d3ae +wWarpEntries:: ; current map warp entries ds 128 -wDestinationWarpID:: ; d42e +wDestinationWarpID:: ; if $ff, the player's coordinates are not updated when entering the map ds 1 -wPikachuOverworldStateFlags:: ds 1 ; d42f -wPikachuSpawnState:: ds 1 ; d430 -wd432:: ds 1 ; d431 -wd433:: ds 1 ; d432 -wd434:: ds 1 ; d433 -wd435:: ds 1 ; d434 -wd436:: ds 1 ; d435 -wPikachuFollowCommandBufferSize:: ds 1 ; d436 -wPikachuFollowCommandBuffer:: ds 16 ; d437 +wPikachuOverworldStateFlags:: ds 1 +wPikachuSpawnState:: ds 1 +wd432:: ds 1 +wd433:: ds 1 +wd434:: ds 1 +wd435:: ds 1 +wd436:: ds 1 +wPikachuFollowCommandBufferSize:: ds 1 +wPikachuFollowCommandBuffer:: ds 16 -wExpressionNumber:: ; d447 +wExpressionNumber:: ds 1 -wPikaPicAnimNumber:: ; d448 +wPikaPicAnimNumber:: ds 1 -wPikachuMovementScriptBank:: ds 1 ; d449 -wPikachuMovementScriptAddress:: dw ; d44a -wPikachuMovementFlags:: ; d44c +wPikachuMovementScriptBank:: ds 1 +wPikachuMovementScriptAddress:: dw +wPikachuMovementFlags:: ; bit 6 - spawn shadow ; bit 7 - signal end of command ds 1 UNION -wCurPikaMovementData:: ; d44d -wCurPikaMovementParam1:: ds 1 ; d44d -wCurPikaMovementFunc1:: ds 1 ; d44e -wCurPikaMovementParam2:: ds 1 ; d44f -wCurPikaMovementFunc2:: ds 1 ; d450 -wd451:: ds 1 ; d451 -wCurPikaMovementSpriteImageIdx:: ds 1 ; d452 -wPikaSpriteX:: ds 1 ; d453 -wPikaSpriteY:: ds 1 ; d454 -wPikachuMovementXOffset:: ds 1 ; d455 -wPikachuMovementYOffset:: ds 1 ; d456 -wPikachuStepTimer:: ds 1 ; d457 -wPikachuStepSubtimer:: ds 1 ; d458 +wCurPikaMovementData:: +wCurPikaMovementParam1:: ds 1 +wCurPikaMovementFunc1:: ds 1 +wCurPikaMovementParam2:: ds 1 +wCurPikaMovementFunc2:: ds 1 +wd451:: ds 1 +wCurPikaMovementSpriteImageIdx:: ds 1 +wPikaSpriteX:: ds 1 +wPikaSpriteY:: ds 1 +wPikachuMovementXOffset:: ds 1 +wPikachuMovementYOffset:: ds 1 +wPikachuStepTimer:: ds 1 +wPikachuStepSubtimer:: ds 1 ds 5 -wCurPikaMovementDataEnd:: ; d45e +wCurPikaMovementDataEnd:: NEXTU -wPikaPicAnimPointer:: dw ; d44d -wPikaPicAnimPointerSetupFinished:: ds 1 ; d44f -wPikaPicAnimCurGraphicID:: ds 1 ; d450 -wPikaPicAnimTimer:: ds 2 ; d451 -wPikaPicAnimDelay:: ds 1 ; d453 -wPikaPicPikaDrawStartX:: ds 1 ; d454 -wPikaPicPikaDrawStartY:: ds 1 ; d455 +wPikaPicAnimPointer:: dw +wPikaPicAnimPointerSetupFinished:: ds 1 +wPikaPicAnimCurGraphicID:: ds 1 +wPikaPicAnimTimer:: ds 2 +wPikaPicAnimDelay:: ds 1 +wPikaPicPikaDrawStartX:: ds 1 +wPikaPicPikaDrawStartY:: ds 1 -wCurPikaPicAnimObject:: ; d456 -wCurPikaPicAnimObjectVTileOffset:: db ; d456 -wCurPikaPicAnimObjectXOffset:: db ; d457 -wCurPikaPicAnimObjectYOffset:: db ; d458 -wCurPikaPicAnimObjectScriptIdx:: db ; d459 -wCurPikaPicAnimObjectFrameIdx:: db ; d45a -wCurPikaPicAnimObjectFrameTimer:: db ; d45b +wCurPikaPicAnimObject:: +wCurPikaPicAnimObjectVTileOffset:: db +wCurPikaPicAnimObjectXOffset:: db +wCurPikaPicAnimObjectYOffset:: db +wCurPikaPicAnimObjectScriptIdx:: db +wCurPikaPicAnimObjectFrameIdx:: db +wCurPikaPicAnimObjectFrameTimer:: db ds 1 -wCurPikaPicAnimObjectEnd:: ; d45d +wCurPikaPicAnimObjectEnd:: ds 18 ENDU -wPikachuHappiness:: ds 1 ; d46f -wPikachuMood:: ds 1 ; d470 -wd472:: ds 1 ; d471 -wd473:: ds 1 ; d472 +wPikachuHappiness:: ds 1 +wPikachuMood:: ds 1 +wd472:: ds 1 +wd473:: ds 1 ds 1 -wd475:: ds 1 ; d474 +wd475:: ds 1 ds 4 -wd47a:: ds 1 ; d479 +wd47a:: ds 1 ds 24 -wd492:: ds 1 ; d492 +wd492:: ds 1 ds 1 @@ -2924,359 +2842,359 @@ wSurfingMinigameHiScore:: ds 2 ; 4-digit BCD little-endian ds 1 wPrinterSettings:: ds 1 -wUnknownSerialFlag_d499:: ds 1 ; d498 -wPrinterConnectionOpen:: ds 1 ; d499 -wPrinterOpcode:: ds 1 ; d49a -wd49c:: ds 1 ; d49b +wUnknownSerialFlag_d499:: ds 1 +wPrinterConnectionOpen:: ds 1 +wPrinterOpcode:: ds 1 +wd49c:: ds 1 ds 19 -wNumSigns:: ; d4af +wNumSigns:: ; number of signs in the current map (up to 16) ds 1 -wSignCoords:: ; d4b0 +wSignCoords:: ; 2 bytes each ; Y, X ds 32 -wSignTextIDs:: ; d4d0 +wSignTextIDs:: ds 16 -wNumSprites:: ; d4e0 +wNumSprites:: ; number of sprites on the current map ds 1 ; these two variables track the X and Y offset in blocks from the last special warp used ; they don't seem to be used for anything -wYOffsetSinceLastSpecialWarp:: ; d4e1 +wYOffsetSinceLastSpecialWarp:: ds 1 -wXOffsetSinceLastSpecialWarp:: ; d4e2 +wXOffsetSinceLastSpecialWarp:: ds 1 -wMapSpriteData:: ; d4e3 +wMapSpriteData:: ; two bytes per sprite (movement byte 2, text ID) ds 32 -wMapSpriteExtraData:: ; d503 +wMapSpriteExtraData:: ; two bytes per sprite (trainer class/item ID, trainer set ID) ds 32 -wCurrentMapHeight2:: ; d523 +wCurrentMapHeight2:: ; map height in 2x2 meta-tiles ds 1 -wCurrentMapWidth2:: ; d524 +wCurrentMapWidth2:: ; map width in 2x2 meta-tiles ds 1 -wMapViewVRAMPointer:: ; d525 +wMapViewVRAMPointer:: ; the address of the upper left corner of the visible portion of the BG tile map in VRAM ds 2 ; In the comments for the player direction variables below, "moving" refers to ; both walking and changing facing direction without taking a step. -wPlayerMovingDirection:: ; d527 +wPlayerMovingDirection:: ; if the player is moving, the current direction ; if the player is not moving, zero ; map scripts write to this in order to change the player's facing direction ds 1 -wPlayerLastStopDirection:: ; d528 +wPlayerLastStopDirection:: ; the direction in which the player was moving before the player last stopped ds 1 -wPlayerDirection:: ; d529 +wPlayerDirection:: ; if the player is moving, the current direction ; if the player is not moving, the last the direction in which the player moved ds 1 -wTilesetBank:: ; d52a +wTilesetBank:: ds 1 -wTilesetBlocksPtr:: ; d52b +wTilesetBlocksPtr:: ; maps blocks (4x4 tiles) to tiles ds 2 -wTilesetGfxPtr:: ; d52d +wTilesetGfxPtr:: ds 2 -wTilesetCollisionPtr:: ; d52f +wTilesetCollisionPtr:: ; list of all walkable tiles ds 2 -wTilesetTalkingOverTiles:: ; d531 +wTilesetTalkingOverTiles:: ds 3 -wGrassTile:: ; d534 +wGrassTile:: ds 1 ds 4 -wNumBoxItems:: ; d539 +wNumBoxItems:: ds 1 -wBoxItems:: ; d53a +wBoxItems:: ; item, quantity ds PC_ITEM_CAPACITY * 2 ds 1 ; end -wCurrentBoxNum:: ; d59f +wCurrentBoxNum:: ; bits 0-6: box number ; bit 7: whether the player has changed boxes before ds 2 -wNumHoFTeams:: ; d5a1 +wNumHoFTeams:: ; number of HOF teams ds 1 -wUnusedD5A3:: ; d5a2 +wUnusedD5A3:: ds 1 -wPlayerCoins:: ; d5a3 +wPlayerCoins:: ds 2 ; BCD -wMissableObjectFlags:: ; d5a5 +wMissableObjectFlags:: ; bit array of missable objects. set = removed ds 32 -wMissableObjectFlagsEnd:: ; d5c5 +wMissableObjectFlagsEnd:: ds 7 -wd5cd:: ds 1 ; temp copy of c1x2 (sprite facing/anim) ; d5cc +wd5cd:: ds 1 ; temp copy of SPRITESTATEDATA1_IMAGEINDEX (used for sprite facing/anim) -wMissableObjectList:: ; d5cd +wMissableObjectList:: ; each entry consists of 2 bytes ; * the sprite ID (depending on the current map) ; * the missable object index (global, used for wMissableObjectFlags) ; terminated with $FF ds 17 * 2 -wGameProgressFlags:: ; d5e9 +wGameProgressFlags:: ; $c8 bytes -wOaksLabCurScript:: ; d5e9 +wOaksLabCurScript:: ds 1 -wPalletTownCurScript:: ; d5f0 +wPalletTownCurScript:: ds 1 ds 1 -wBluesHouseCurScript:: ; d5f2 +wBluesHouseCurScript:: ds 1 -wViridianCityCurScript:: ; d5f3 +wViridianCityCurScript:: ds 1 ds 2 -wPewterCityCurScript:: ; d5f6 +wPewterCityCurScript:: ds 1 -wRoute3CurScript:: ; d5f7 +wRoute3CurScript:: ds 1 -wRoute4CurScript:: ; d5f8 +wRoute4CurScript:: ds 1 -wFanClubCurScript:: ; d5f9 +wFanClubCurScript:: ds 1 -wViridianGymCurScript:: ; d5fa +wViridianGymCurScript:: ds 1 -wPewterGymCurScript:: ; d5fb +wPewterGymCurScript:: ds 1 -wCeruleanGymCurScript:: ; d5fc +wCeruleanGymCurScript:: ds 1 -wVermilionGymCurScript:: ; d5fd +wVermilionGymCurScript:: ds 1 -wCeladonGymCurScript:: ; d5fe +wCeladonGymCurScript:: ds 1 -wRoute6CurScript:: ; d5ff +wRoute6CurScript:: ds 1 -wRoute8CurScript:: ; d600 +wRoute8CurScript:: ds 1 -wRoute24CurScript:: ; d601 +wRoute24CurScript:: ds 1 -wRoute25CurScript:: ; d602 +wRoute25CurScript:: ds 1 -wRoute9CurScript:: ; d603 +wRoute9CurScript:: ds 1 -wRoute10CurScript:: ; d604 +wRoute10CurScript:: ds 1 -wMtMoon1FCurScript:: ; d605 +wMtMoon1FCurScript:: ds 1 -wMtMoonB2FCurScript:: ; d606 +wMtMoonB2FCurScript:: ds 1 -wSSAnne1FRoomsCurScript:: ; d607 +wSSAnne1FRoomsCurScript:: ds 1 -wSSAnne2FRoomsCurScript:: ; d608 +wSSAnne2FRoomsCurScript:: ds 1 -wRoute22CurScript:: ; d609 +wRoute22CurScript:: ds 1 ds 1 -wRedsHouse2FCurScript:: ; d60b +wRedsHouse2FCurScript:: ds 1 -wViridianMartCurScript:: ; d60c +wViridianMartCurScript:: ds 1 -wRoute22GateCurScript:: ; d60d +wRoute22GateCurScript:: ds 1 -wCeruleanCityCurScript:: ; d60e +wCeruleanCityCurScript:: ds 1 ds 7 -wSSAnneBowCurScript:: ; d616 +wSSAnneBowCurScript:: ds 1 -wViridianForestCurScript:: ; d617 +wViridianForestCurScript:: ds 1 -wMuseum1FCurScript:: ; d618 +wMuseum1FCurScript:: ds 1 -wRoute13CurScript:: ; d619 +wRoute13CurScript:: ds 1 -wRoute14CurScript:: ; d61a +wRoute14CurScript:: ds 1 -wRoute17CurScript:: ; d61b +wRoute17CurScript:: ds 1 -wRoute19CurScript:: ; d61c +wRoute19CurScript:: ds 1 -wRoute21CurScript:: ; d61d +wRoute21CurScript:: ds 1 -wSafariZoneGateCurScript:: ; d61e +wSafariZoneGateCurScript:: ds 1 -wRockTunnelB1FCurScript:: ; d61f +wRockTunnelB1FCurScript:: ds 1 -wRockTunnel1FCurScript:: ; d620 +wRockTunnel1FCurScript:: ds 1 ds 1 -wRoute11CurScript:: ; d622 +wRoute11CurScript:: ds 1 -wRoute12CurScript:: ; d623 +wRoute12CurScript:: ds 1 -wRoute15CurScript:: ; d624 +wRoute15CurScript:: ds 1 -wRoute16CurScript:: ; d625 +wRoute16CurScript:: ds 1 -wRoute18CurScript:: ; d626 +wRoute18CurScript:: ds 1 -wRoute20CurScript:: ; d627 +wRoute20CurScript:: ds 1 -wSSAnneB1FRoomsCurScript:: ; d628 +wSSAnneB1FRoomsCurScript:: ds 1 -wVermilionCityCurScript:: ; d629 +wVermilionCityCurScript:: ds 1 -wPokemonTower2FCurScript:: ; d62a +wPokemonTower2FCurScript:: ds 1 -wPokemonTower3FCurScript:: ; d62b +wPokemonTower3FCurScript:: ds 1 -wPokemonTower4FCurScript:: ; d62c +wPokemonTower4FCurScript:: ds 1 -wPokemonTower5FCurScript:: ; d62d +wPokemonTower5FCurScript:: ds 1 -wPokemonTower6FCurScript:: ; d62e +wPokemonTower6FCurScript:: ds 1 -wPokemonTower7FCurScript:: ; d62f +wPokemonTower7FCurScript:: ds 1 -wRocketHideoutB1FCurScript:: ; d630 +wRocketHideoutB1FCurScript:: ds 1 -wRocketHideoutB2FCurScript:: ; d631 +wRocketHideoutB2FCurScript:: ds 1 -wRocketHideoutB3FCurScript:: ; d632 +wRocketHideoutB3FCurScript:: ds 1 -wRocketHideoutB4FCurScript:: ; d633 +wRocketHideoutB4FCurScript:: ds 2 -wRoute6GateCurScript:: ; d635 +wRoute6GateCurScript:: ds 1 -wRoute8GateCurScript:: ; d636 +wRoute8GateCurScript:: ds 2 -wCinnabarIslandCurScript:: ; d638 +wCinnabarIslandCurScript:: ds 1 -wPokemonMansion1FCurScript:: ; d639 +wPokemonMansion1FCurScript:: ds 2 -wPokemonMansion2FCurScript:: ; d63b +wPokemonMansion2FCurScript:: ds 1 -wPokemonMansion3FCurScript:: ; d63c +wPokemonMansion3FCurScript:: ds 1 -wPokemonMansionB1FCurScript:: ; d63d +wPokemonMansionB1FCurScript:: ds 1 -wVictoryRoad2FCurScript:: ; d63e +wVictoryRoad2FCurScript:: ds 1 -wVictoryRoad3FCurScript:: ; d63f +wVictoryRoad3FCurScript:: ds 1 -wCeladonCityCurScript:: ; d640 +wCeladonCityCurScript:: ds 1 -wFightingDojoCurScript:: ; d641 +wFightingDojoCurScript:: ds 1 -wSilphCo2FCurScript:: ; d642 +wSilphCo2FCurScript:: ds 1 -wSilphCo3FCurScript:: ; d643 +wSilphCo3FCurScript:: ds 1 -wSilphCo4FCurScript:: ; d644 +wSilphCo4FCurScript:: ds 1 -wSilphCo5FCurScript:: ; d645 +wSilphCo5FCurScript:: ds 1 -wSilphCo6FCurScript:: ; d646 +wSilphCo6FCurScript:: ds 1 -wSilphCo7FCurScript:: ; d647 +wSilphCo7FCurScript:: ds 1 -wSilphCo8FCurScript:: ; d648 +wSilphCo8FCurScript:: ds 1 -wSilphCo9FCurScript:: ; d649 +wSilphCo9FCurScript:: ds 1 -wHallOfFameCurScript:: ; d64a +wHallOfFameCurScript:: ds 1 -wChampionsRoomCurScript:: ; d64b +wChampionsRoomCurScript:: ds 1 -wLoreleisRoomCurScript:: ; d64c +wLoreleisRoomCurScript:: ds 1 -wBrunosRoomCurScript:: ; d64d +wBrunosRoomCurScript:: ds 1 -wAgathasRoomCurScript:: ; d64e +wAgathasRoomCurScript:: ds 1 -wCeruleanCaveB1FCurScript:: ; d64f +wCeruleanCaveB1FCurScript:: ds 1 -wVictoryRoad1FCurScript:: ; d650 +wVictoryRoad1FCurScript:: ds 1 ds 1 -wLancesRoomCurScript:: ; d652 +wLancesRoomCurScript:: ds 1 ds 4 -wSilphCo10FCurScript:: ; d657 +wSilphCo10FCurScript:: ds 1 -wSilphCo11FCurScript:: ; d658 +wSilphCo11FCurScript:: ds 1 ds 1 -wFuchsiaGymCurScript:: ; d65a +wFuchsiaGymCurScript:: ds 1 -wSaffronGymCurScript:: ; d65b +wSaffronGymCurScript:: ds 1 ds 1 -wCinnabarGymCurScript:: ; d65d +wCinnabarGymCurScript:: ds 1 -wGameCornerCurScript:: ; d65e +wGameCornerCurScript:: ds 1 -wRoute16Gate1FCurScript:: ; d65f +wRoute16Gate1FCurScript:: ds 1 -wBillsHouseCurScript:: ; d660 +wBillsHouseCurScript:: ds 1 -wRoute5GateCurScript:: ; d661 +wRoute5GateCurScript:: ds 1 -wPowerPlantCurScript:: ; d662 -wRoute7GateCurScript:: ; d662 +wPowerPlantCurScript:: +wRoute7GateCurScript:: ; overload ds 1 ds 1 -wSSAnne2FCurScript:: ; d664 +wSSAnne2FCurScript:: ds 1 -wSeafoamIslandsB3FCurScript:: ; d665 +wSeafoamIslandsB3FCurScript:: ds 1 -wRoute23CurScript:: ; d666 +wRoute23CurScript:: ds 1 -wSeafoamIslandsB4FCurScript:: ; d667 +wSeafoamIslandsB4FCurScript:: ds 1 -wRoute18Gate1FCurScript:: ; d668 +wRoute18Gate1FCurScript:: ds 1 ds 78 -wGameProgressFlagsEnd:: ; d6b7 +wGameProgressFlagsEnd:: ds 56 -wObtainedHiddenItemsFlags:: ; d6ef +wObtainedHiddenItemsFlags:: ds 14 -wObtainedHiddenCoinsFlags:: ; d6fd +wObtainedHiddenCoinsFlags:: ds 2 -wWalkBikeSurfState:: ; d6ff +wWalkBikeSurfState:: ; $00 = walking ; $01 = biking ; $02 = surfing @@ -3284,71 +3202,71 @@ wWalkBikeSurfState:: ; d6ff ds 10 -wTownVisitedFlag:: ; d70a - flag_array 13 +wTownVisitedFlag:: + flag_array NUM_CITY_MAPS -wSafariSteps:: ; d70c +wSafariSteps:: ; starts at 502 ds 2 -wFossilItem:: ; d70e +wFossilItem:: ; item given to cinnabar lab ds 1 -wFossilMon:: ; d70f +wFossilMon:: ; mon that will result from the item ds 1 ds 2 -wEnemyMonOrTrainerClass:: ; d712 +wEnemyMonOrTrainerClass:: ; trainer classes start at OPP_ID_OFFSET ds 1 -wPlayerJumpingYScreenCoordsIndex:: ; d713 +wPlayerJumpingYScreenCoordsIndex:: ds 1 -wRivalStarter:: ; d714 +wRivalStarter:: ds 1 ds 1 -wPlayerStarter:: ; d716 +wPlayerStarter:: ds 1 -wBoulderSpriteIndex:: ; d717 +wBoulderSpriteIndex:: ; sprite index of the boulder the player is trying to push ds 1 -wLastBlackoutMap:: ; d718 +wLastBlackoutMap:: ds 1 -wDestinationMap:: ; d719 +wDestinationMap:: ; destination map (for certain types of special warps, not ordinary walking) ds 1 -wUnusedD71B:: ; d71a +wUnusedD71B:: ds 1 -wTileInFrontOfBoulderAndBoulderCollisionResult:: ; d71b +wTileInFrontOfBoulderAndBoulderCollisionResult:: ; used to store the tile in front of the boulder when trying to push a boulder ; also used to store the result of the collision check ($ff for a collision and $00 for no collision) ds 1 -wDungeonWarpDestinationMap:: ; d71c +wDungeonWarpDestinationMap:: ; destination map for dungeon warps ds 1 -wWhichDungeonWarp:: ; d71d +wWhichDungeonWarp:: ; which dungeon warp within the source map was used ds 1 -wUnusedD71F:: ; d71e +wUnusedD71F:: ds 1 ds 8 -wd728:: ; d727 +wd728:: ; bit 0: using Strength outside of battle ; bit 1: set by IsSurfingAllowed when surfing's allowed, but the caller resets it after checking the result ; bit 3: received Old Rod @@ -3360,19 +3278,19 @@ wd728:: ; d727 ds 1 -wBeatGymFlags:: ; d729 +wBeatGymFlags:: ; redundant because it matches wObtainedBadges ; used to determine whether to show name on statue and in two NPC text scripts ds 1 ds 1 -wd72c:: ; d72b +wd72c:: ; bit 0: if not set, the 3 minimum steps between random battles have passed ; bit 1: prevent audio fade out ds 1 -wd72d:: ; d72c +wd72d:: ; This variable is used for temporary flags and as the destination map when ; warping to the Trade Center or Colosseum. ; bit 0: sprite facing directions have been initialised in the Trade Center @@ -3385,7 +3303,7 @@ wd72d:: ; d72c ; battles anyway). ds 1 -wd72e:: ; d72d +wd72e:: ; bit 0: the player has received Lapras in the Silph Co. building ; bit 1: set in various places, but doesn't appear to have an effect ; bit 2: the player has healed pokemon at a pokemon center at least once @@ -3398,7 +3316,7 @@ wd72e:: ; d72d ds 1 -wd730:: ; d72f +wd730:: ; bit 0: NPC sprite being moved by script ; bit 5: ignore joypad input ; bit 6: print text with no delay between each letter @@ -3407,13 +3325,19 @@ wd730:: ; d72f ds 1 -wd732:: ; d731 +wd732:: ; bit 0: play time being counted -; bit 1: remnant of debug mode? not set by the game code. -; if it is set +; bit 1: remnant of debug mode; only set by the debug build. +; if it is set: ; 1. skips most of Prof. Oak's speech, and uses NINTEN as the player's name and SONY as the rival's name ; 2. does not have the player start in floor two of the player's house (instead sending them to [wLastMap]) ; 3. allows wild battles to be avoided by holding down B +; furthermore, in the debug build: +; 4. allows trainers to be avoided by holding down B +; 5. skips Safari Zone step counter by holding down B +; 6. skips the NPC who blocks Route 3 before beating Brock by holding down B +; 7. skips Cerulean City rival battle by holding down B +; 8. skips Pokémon Tower rival battle by holding down B ; bit 2: the target warp is a fly warp (bit 3 set or blacked out) or a dungeon warp (bit 4 set) ; bit 3: used warp pad, escape rope, dig, teleport, or fly, so the target warp is a "fly warp" ; bit 4: jumped into hole (Pokemon Mansion, Seafoam Islands, Victory Road) or went down waterfall (Seafoam Islands), so the target warp is a "dungeon warp" @@ -3421,7 +3345,7 @@ wd732:: ; d731 ; bit 6: map destination is [wLastBlackoutMap] (usually the last used pokemon center, but could be the player's house) ds 1 -wFlags_D733:: ; d732 +wFlags_D733:: ; bit 0: running a test battle ; bit 1: prevent music from changing when entering new map ; bit 2: skip the joypad check in CheckWarpsNoCollision (used for the forced warp down the waterfall in the Seafoam Islands) @@ -3430,15 +3354,15 @@ wFlags_D733:: ; d732 ; bit 7: used fly out of battle ds 1 -wBeatLorelei:: ; d733 +wBeatLorelei:: ; bit 1: set when you beat Lorelei and reset in Indigo Plateau lobby ; the game uses this to tell when Elite 4 events need to be reset ds 1 -wd735:: ; d734 +wd735:: ds 1 -wd736:: ; d735 +wd736:: ; bit 0: check if the player is standing on a door and make him walk down a step if so ; bit 1: the player is currently stepping down from a door ; bit 2: standing on a warp @@ -3446,73 +3370,64 @@ wd736:: ; d735 ; bit 7: player sprite spinning due to spin tiles (Rocket hideout / Viridian Gym) ds 1 -wCompletedInGameTradeFlags:: ; d736 +wCompletedInGameTradeFlags:: ds 2 ds 2 -wWarpedFromWhichWarp:: ; d73a +wWarpedFromWhichWarp:: ds 1 -wWarpedFromWhichMap:: ; d73b +wWarpedFromWhichMap:: ds 1 ds 2 -wCardKeyDoorY:: ; d73e +wCardKeyDoorY:: ds 1 -wCardKeyDoorX:: ; d73f +wCardKeyDoorX:: ds 1 ds 2 -wFirstLockTrashCanIndex:: ; d742 +wFirstLockTrashCanIndex:: ds 1 -wSecondLockTrashCanIndex:: ; d744 +wSecondLockTrashCanIndex:: ds 1 ds 2 -wEventFlags:: ; d746 -; below here are mostly in game flags +wEventFlags:: + flag_array NUM_EVENTS -; d74b -; bit 0: Prof. Oak has lead the player to the north end of his lab -; bit 1: Prof. Oak has asked the player to choose a pokemon -; bit 2: the player and the rival have received their pokemon -; bit 3: the player has battled the rival in Oak's lab -; bit 4: Prof. Oak has given the player 5 pokeballs -; bit 5: received pokedex - flag_array NUM_EVENT_FLAGS - -wLinkEnemyTrainerName:: ; d886 +wLinkEnemyTrainerName:: ; linked game's trainer name -wGrassRate:: ; d886 +wGrassRate:: ds 1 -wGrassMons:: ; d887 +wGrassMons:: ; ds 20 ds 11 ; Overload wGrassMons -wSerialEnemyDataBlock:: ; d892 +wSerialEnemyDataBlock:: ds 9 -wEnemyPartyCount:: ds 1 ; d89b -wEnemyPartyMons:: ds PARTY_LENGTH + 1 ; d89c +wEnemyPartyCount:: ds 1 +wEnemyPartyMons:: ds PARTY_LENGTH + 1 ; Overload enemy party data UNION -wWaterRate:: db ; d8a3 -wWaterMons:: db ; d8a4 +wWaterRate:: db +wWaterMons:: db NEXTU -wEnemyMons:: ; d8a3 +wEnemyMons:: wEnemyMon1:: party_struct wEnemyMon1 wEnemyMon2:: party_struct wEnemyMon2 wEnemyMon3:: party_struct wEnemyMon3 @@ -3520,86 +3435,88 @@ wEnemyMon4:: party_struct wEnemyMon4 wEnemyMon5:: party_struct wEnemyMon5 wEnemyMon6:: party_struct wEnemyMon6 -wEnemyMonOT:: ds NAME_LENGTH * PARTY_LENGTH ; d9ab -wEnemyMonNicks:: ds NAME_LENGTH * PARTY_LENGTH ; d9ed +wEnemyMonOT:: ds NAME_LENGTH * PARTY_LENGTH +wEnemyMonNicks:: ds NAME_LENGTH * PARTY_LENGTH ENDU -wTrainerHeaderPtr:: ; da2f +wTrainerHeaderPtr:: ds 2 ds 6 -wOpponentAfterWrongAnswer:: ; da37 +wOpponentAfterWrongAnswer:: ; the trainer the player must face after getting a wrong answer in the Cinnabar ; gym quiz -wUnusedDA38:: ; da37 +wUnusedDA38:: ds 1 -wCurMapScript:: ; da38 +wCurMapScript:: ; index of current map script, mostly used as index for function pointer array ; mostly copied from map-specific map script pointer and written back later ds 1 ds 7 -wPlayTimeHours:: ; da40 +wPlayTimeHours:: ds 1 -wPlayTimeMaxed:: ; da41 +wPlayTimeMaxed:: ds 1 -wPlayTimeMinutes:: ; da42 +wPlayTimeMinutes:: ds 1 -wPlayTimeSeconds:: ; da43 +wPlayTimeSeconds:: ds 1 -wPlayTimeFrames:: ; da44 +wPlayTimeFrames:: ds 1 -wSafariZoneGameOver:: ; da45 +wSafariZoneGameOver:: ds 1 -wNumSafariBalls:: ; da46 +wNumSafariBalls:: ds 1 -wDayCareInUse:: ; da47 +wDayCareInUse:: ; 0 if no pokemon is in the daycare ; 1 if pokemon is in the daycare ds 1 -wDayCareMonName:: ds NAME_LENGTH ; da48 -wDayCareMonOT:: ds NAME_LENGTH ; da53 +wDayCareMonName:: ds NAME_LENGTH +wDayCareMonOT:: ds NAME_LENGTH -wDayCareMon:: box_struct wDayCareMon ; da5e +wDayCareMon:: box_struct wDayCareMon wMainDataEnd:: wBoxDataStart:: -wNumInBox:: ds 1 ; da7f -wBoxSpecies:: ds MONS_PER_BOX + 1 ; da80 +wNumInBox:: ds 1 +wBoxSpecies:: ds MONS_PER_BOX + 1 wBoxMons:: -wBoxMon1:: box_struct wBoxMon1 ; da95 -wBoxMon2:: ds box_struct_length * (MONS_PER_BOX + -1) ; dab6 +wBoxMon1:: box_struct wBoxMon1 +wBoxMon2:: ds BOX_STRUCT_LENGTH * (MONS_PER_BOX - 1) -wBoxMonOT:: ds NAME_LENGTH * MONS_PER_BOX ; dd29 -wBoxMonNicks:: ds NAME_LENGTH * MONS_PER_BOX ; de05 -wBoxMonNicksEnd:: ; dee1 +wBoxMonOT:: ds NAME_LENGTH * MONS_PER_BOX +wBoxMonNicks:: ds NAME_LENGTH * MONS_PER_BOX +wBoxMonNicksEnd:: wBoxDataEnd:: -wGBCBasePalPointers:: ds NUM_ACTIVE_PALS * 2 ; dee1 -wGBCPal:: ds PAL_SIZE ; dee9 -wLastBGP:: ds 1 ; def1 -wLastOBP0:: ds 1 ; def2 -wLastOBP1:: ds 1 ; def3 -wdef5:: ds 1 ; def4 -wBGPPalsBuffer:: ds NUM_ACTIVE_PALS * PAL_SIZE ; def5 +wGBCBasePalPointers:: ds NUM_ACTIVE_PALS * 2 +wGBCPal:: ds PAL_SIZE +wLastBGP:: ds 1 +wLastOBP0:: ds 1 +wLastOBP1:: ds 1 +wdef5:: ds 1 +wBGPPalsBuffer:: ds NUM_ACTIVE_PALS * PAL_SIZE SECTION "Stack", WRAMX -wStack:: ; dfff +wStack:: INCLUDE "sram.asm" + +INCLUDE "hram.asm"