summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRangi <35663410+Rangi42@users.noreply.github.com>2020-07-04 16:19:15 -0400
committerGitHub <noreply@github.com>2020-07-04 16:19:15 -0400
commit2718c36065e7eb201a149938bcdd51987c4e56b6 (patch)
tree4a1c0294193a497e15ec8e6be59390eb1f84b5d3
parentc85050497c1bd062e9cd40bf5b32fa3beca366cc (diff)
parent36f8cd1477b8ebe0537e99abd3ba53471a2e16c4 (diff)
Merge pull request #257 from Rangi42/master
More reorganization
-rw-r--r--INSTALL.md184
-rw-r--r--Makefile60
-rw-r--r--audio/engine_1.asm2
-rw-r--r--audio/engine_2.asm2
-rw-r--r--audio/engine_3.asm2
-rw-r--r--audio/music/yellow/meetjessiejames.asm308
-rw-r--r--audio/music/yellow/surfingpikachu.asm690
-rw-r--r--audio/music/yellow/yellowintro.asm484
-rw-r--r--audio/music/yellow/yellowunusedsong.asm326
-rw-r--r--audio/play_battle_music.asm4
-rw-r--r--audio/pokedex_rating_sfx.asm4
-rw-r--r--audio/wave_instruments.asm2
-rw-r--r--constants.asm21
-rw-r--r--constants/audio_constants.asm59
-rw-r--r--constants/battle_constants.asm51
-rwxr-xr-xconstants/connection_constants.asm9
-rw-r--r--constants/credits_constants.asm4
-rwxr-xr-xconstants/event_constants.asm5123
-rwxr-xr-xconstants/evolution_constants.asm9
-rw-r--r--constants/gfx_constants.asm17
-rw-r--r--constants/hardware_constants.asm29
-rwxr-xr-xconstants/hide_show_constants.asm3
-rw-r--r--constants/icon_constants.asm12
-rw-r--r--constants/input_constants.asm18
-rwxr-xr-xconstants/item_constants.asm4
-rwxr-xr-xconstants/list_constants.asm39
-rwxr-xr-xconstants/map_data_constants.asm14
-rw-r--r--constants/map_object_constants.asm14
-rw-r--r--constants/menu_constants.asm70
-rw-r--r--constants/misc_constants.asm206
-rw-r--r--constants/move_animation_constants.asm6
-rw-r--r--constants/move_constants.asm8
-rw-r--r--constants/move_effect_constants.asm6
-rw-r--r--constants/music_constants.asm60
-rwxr-xr-xconstants/palette_constants.asm37
-rw-r--r--constants/pokedex_constants.asm5
-rw-r--r--constants/pokemon_constants.asm6
-rwxr-xr-xconstants/pokemon_data_constants.asm28
-rw-r--r--constants/script_constants.asm12
-rw-r--r--constants/serial_constants.asm27
-rwxr-xr-xconstants/sprite_constants.asm30
-rw-r--r--constants/sprite_data_constants.asm22
-rwxr-xr-xconstants/status_constants.asm32
-rw-r--r--constants/text_constants.asm3
-rw-r--r--constants/tileset_constants.asm25
-rw-r--r--constants/tilesets.asm26
-rwxr-xr-xconstants/trainer_constants.asm4
-rwxr-xr-xconstants/type_constants.asm39
-rwxr-xr-xdata/base_stats.asm153
-rw-r--r--data/battle/stat_names.asm (renamed from text/stat_names.asm)0
-rwxr-xr-xdata/credits/credits_mons.asm (renamed from data/credit_mons.asm)0
-rwxr-xr-xdata/credits/credits_order.asm (renamed from data/credits_order.asm)0
-rwxr-xr-xdata/credits/credits_text.asm (renamed from text/credits_text.asm)0
-rw-r--r--data/effects_pointers.asm87
-rwxr-xr-xdata/events/hidden_coins.asm (renamed from data/hidden_coins.asm)0
-rwxr-xr-xdata/events/hidden_item_coords.asm (renamed from data/hidden_item_coords.asm)0
-rwxr-xr-xdata/events/hidden_objects.asm853
-rwxr-xr-xdata/events/prize_mon_levels.asm (renamed from data/prize_mon_levels.asm)0
-rwxr-xr-xdata/events/prizes.asm (renamed from data/prizes.asm)0
-rwxr-xr-xdata/events/slot_machine_wheels.asm (renamed from data/slot_machine_wheels.asm)0
-rwxr-xr-xdata/events/trades.asm (renamed from data/trades.asm)0
-rwxr-xr-xdata/evos_moves.asm2134
-rwxr-xr-xdata/hidden_objects.asm853
-rwxr-xr-xdata/hide_show_data.asm577
-rw-r--r--data/hm_moves.asm7
-rw-r--r--data/icon_pointers.asm (renamed from data/mon_party_sprite_pointers.asm)0
-rw-r--r--data/items/guard_drink_items.asm (renamed from data/guard_drink_items.asm)0
-rwxr-xr-xdata/items/key_items.asm (renamed from data/key_items.asm)0
-rwxr-xr-xdata/items/marts.asm (renamed from data/mart_inventories.asm)0
-rwxr-xr-xdata/items/names.asm (renamed from text/item_names.asm)0
-rwxr-xr-xdata/items/prices.asm (renamed from data/item_prices.asm)0
-rwxr-xr-xdata/items/tm_prices.asm (renamed from data/tm_prices.asm)0
-rw-r--r--data/items/use_overworld.asm (renamed from data/overworld_items.asm)0
-rw-r--r--data/items/use_party.asm (renamed from data/party_items.asm)0
-rw-r--r--data/items/vending_prices.asm (renamed from data/vending_prices.asm)0
-rwxr-xr-xdata/mapHeaders/AgathasRoom.asm8
-rwxr-xr-xdata/mapHeaders/BikeShop.asm8
-rwxr-xr-xdata/mapHeaders/BillsHouse.asm8
-rwxr-xr-xdata/mapHeaders/BluesHouse.asm8
-rwxr-xr-xdata/mapHeaders/BrunosRoom.asm8
-rwxr-xr-xdata/mapHeaders/CeladonChiefHouse.asm8
-rwxr-xr-xdata/mapHeaders/CeladonCity.asm10
-rwxr-xr-xdata/mapHeaders/CeladonDiner.asm8
-rwxr-xr-xdata/mapHeaders/CeladonGym.asm8
-rwxr-xr-xdata/mapHeaders/CeladonHotel.asm8
-rwxr-xr-xdata/mapHeaders/CeladonMansion1F.asm8
-rwxr-xr-xdata/mapHeaders/CeladonMansion2F.asm8
-rwxr-xr-xdata/mapHeaders/CeladonMansion3F.asm8
-rwxr-xr-xdata/mapHeaders/CeladonMansionRoof.asm8
-rwxr-xr-xdata/mapHeaders/CeladonMansionRoofHouse.asm8
-rwxr-xr-xdata/mapHeaders/CeladonMart1F.asm8
-rwxr-xr-xdata/mapHeaders/CeladonMart2F.asm8
-rwxr-xr-xdata/mapHeaders/CeladonMart3F.asm8
-rwxr-xr-xdata/mapHeaders/CeladonMart4F.asm8
-rwxr-xr-xdata/mapHeaders/CeladonMart5F.asm8
-rwxr-xr-xdata/mapHeaders/CeladonMartElevator.asm8
-rwxr-xr-xdata/mapHeaders/CeladonMartRoof.asm8
-rwxr-xr-xdata/mapHeaders/CeladonPokecenter.asm8
-rwxr-xr-xdata/mapHeaders/CeruleanBadgeHouse.asm8
-rwxr-xr-xdata/mapHeaders/CeruleanCave1F.asm8
-rwxr-xr-xdata/mapHeaders/CeruleanCave2F.asm8
-rwxr-xr-xdata/mapHeaders/CeruleanCaveB1F.asm8
-rwxr-xr-xdata/mapHeaders/CeruleanCity.asm12
-rwxr-xr-xdata/mapHeaders/CeruleanGym.asm8
-rwxr-xr-xdata/mapHeaders/CeruleanMart.asm8
-rwxr-xr-xdata/mapHeaders/CeruleanPokecenter.asm8
-rwxr-xr-xdata/mapHeaders/CeruleanTradeHouse.asm8
-rwxr-xr-xdata/mapHeaders/CeruleanTrashedHouse.asm8
-rwxr-xr-xdata/mapHeaders/ChampionsRoom.asm8
-rwxr-xr-xdata/mapHeaders/CinnabarGym.asm8
-rwxr-xr-xdata/mapHeaders/CinnabarIsland.asm10
-rwxr-xr-xdata/mapHeaders/CinnabarLab.asm8
-rwxr-xr-xdata/mapHeaders/CinnabarLabFossilRoom.asm8
-rwxr-xr-xdata/mapHeaders/CinnabarLabMetronomeRoom.asm8
-rwxr-xr-xdata/mapHeaders/CinnabarLabTradeRoom.asm8
-rwxr-xr-xdata/mapHeaders/CinnabarMart.asm8
-rwxr-xr-xdata/mapHeaders/CinnabarPokecenter.asm8
-rwxr-xr-xdata/mapHeaders/Colosseum.asm8
-rwxr-xr-xdata/mapHeaders/CopycatsHouse1F.asm8
-rwxr-xr-xdata/mapHeaders/CopycatsHouse2F.asm8
-rwxr-xr-xdata/mapHeaders/Daycare.asm8
-rwxr-xr-xdata/mapHeaders/DiglettsCave.asm8
-rwxr-xr-xdata/mapHeaders/DiglettsCaveRoute11.asm8
-rwxr-xr-xdata/mapHeaders/DiglettsCaveRoute2.asm8
-rwxr-xr-xdata/mapHeaders/FightingDojo.asm8
-rwxr-xr-xdata/mapHeaders/FuchsiaBillsGrandpasHouse.asm8
-rwxr-xr-xdata/mapHeaders/FuchsiaCity.asm11
-rwxr-xr-xdata/mapHeaders/FuchsiaGoodRodHouse.asm8
-rwxr-xr-xdata/mapHeaders/FuchsiaGym.asm8
-rwxr-xr-xdata/mapHeaders/FuchsiaMart.asm8
-rwxr-xr-xdata/mapHeaders/FuchsiaMeetingRoom.asm8
-rwxr-xr-xdata/mapHeaders/FuchsiaPokecenter.asm8
-rwxr-xr-xdata/mapHeaders/GameCorner.asm8
-rwxr-xr-xdata/mapHeaders/GameCornerPrizeRoom.asm8
-rwxr-xr-xdata/mapHeaders/HallOfFame.asm8
-rwxr-xr-xdata/mapHeaders/IndigoPlateau.asm9
-rwxr-xr-xdata/mapHeaders/IndigoPlateauLobby.asm8
-rwxr-xr-xdata/mapHeaders/LancesRoom.asm8
-rwxr-xr-xdata/mapHeaders/LavenderCuboneHouse.asm8
-rwxr-xr-xdata/mapHeaders/LavenderMart.asm8
-rwxr-xr-xdata/mapHeaders/LavenderPokecenter.asm8
-rwxr-xr-xdata/mapHeaders/LavenderTown.asm11
-rwxr-xr-xdata/mapHeaders/LoreleisRoom.asm8
-rwxr-xr-xdata/mapHeaders/MrFujisHouse.asm8
-rwxr-xr-xdata/mapHeaders/MrPsychicsHouse.asm8
-rwxr-xr-xdata/mapHeaders/MtMoon1F.asm8
-rwxr-xr-xdata/mapHeaders/MtMoonB1F.asm8
-rwxr-xr-xdata/mapHeaders/MtMoonB2F.asm8
-rwxr-xr-xdata/mapHeaders/MtMoonPokecenter.asm8
-rwxr-xr-xdata/mapHeaders/Museum1F.asm8
-rwxr-xr-xdata/mapHeaders/Museum2F.asm8
-rwxr-xr-xdata/mapHeaders/NameRatersHouse.asm8
-rwxr-xr-xdata/mapHeaders/OaksLab.asm8
-rwxr-xr-xdata/mapHeaders/PalletTown.asm10
-rwxr-xr-xdata/mapHeaders/PewterCity.asm10
-rwxr-xr-xdata/mapHeaders/PewterGym.asm8
-rwxr-xr-xdata/mapHeaders/PewterMart.asm8
-rwxr-xr-xdata/mapHeaders/PewterNidoranHouse.asm8
-rwxr-xr-xdata/mapHeaders/PewterPokecenter.asm8
-rwxr-xr-xdata/mapHeaders/PewterSpeechHouse.asm8
-rwxr-xr-xdata/mapHeaders/PokemonFanClub.asm8
-rwxr-xr-xdata/mapHeaders/PokemonMansion1F.asm8
-rwxr-xr-xdata/mapHeaders/PokemonMansion2F.asm8
-rwxr-xr-xdata/mapHeaders/PokemonMansion3F.asm8
-rwxr-xr-xdata/mapHeaders/PokemonMansionB1F.asm8
-rwxr-xr-xdata/mapHeaders/PokemonTower1F.asm8
-rwxr-xr-xdata/mapHeaders/PokemonTower2F.asm8
-rwxr-xr-xdata/mapHeaders/PokemonTower3F.asm8
-rwxr-xr-xdata/mapHeaders/PokemonTower4F.asm8
-rwxr-xr-xdata/mapHeaders/PokemonTower5F.asm8
-rwxr-xr-xdata/mapHeaders/PokemonTower6F.asm8
-rwxr-xr-xdata/mapHeaders/PokemonTower7F.asm8
-rwxr-xr-xdata/mapHeaders/PowerPlant.asm8
-rwxr-xr-xdata/mapHeaders/RedsHouse1F.asm8
-rwxr-xr-xdata/mapHeaders/RedsHouse2F.asm8
-rwxr-xr-xdata/mapHeaders/RockTunnel1F.asm8
-rwxr-xr-xdata/mapHeaders/RockTunnelB1F.asm8
-rwxr-xr-xdata/mapHeaders/RockTunnelPokecenter.asm8
-rwxr-xr-xdata/mapHeaders/RocketHideoutB1F.asm8
-rwxr-xr-xdata/mapHeaders/RocketHideoutB2F.asm8
-rwxr-xr-xdata/mapHeaders/RocketHideoutB3F.asm8
-rwxr-xr-xdata/mapHeaders/RocketHideoutB4F.asm8
-rwxr-xr-xdata/mapHeaders/RocketHideoutElevator.asm8
-rwxr-xr-xdata/mapHeaders/Route1.asm10
-rwxr-xr-xdata/mapHeaders/Route10.asm10
-rwxr-xr-xdata/mapHeaders/Route11.asm10
-rwxr-xr-xdata/mapHeaders/Route11Gate1F.asm8
-rwxr-xr-xdata/mapHeaders/Route11Gate2F.asm8
-rwxr-xr-xdata/mapHeaders/Route12.asm11
-rwxr-xr-xdata/mapHeaders/Route12Gate1F.asm8
-rwxr-xr-xdata/mapHeaders/Route12Gate2F.asm8
-rwxr-xr-xdata/mapHeaders/Route12SuperRodHouse.asm8
-rwxr-xr-xdata/mapHeaders/Route13.asm10
-rwxr-xr-xdata/mapHeaders/Route14.asm10
-rwxr-xr-xdata/mapHeaders/Route15.asm10
-rwxr-xr-xdata/mapHeaders/Route15Gate1F.asm8
-rwxr-xr-xdata/mapHeaders/Route15Gate2F.asm8
-rwxr-xr-xdata/mapHeaders/Route16.asm10
-rwxr-xr-xdata/mapHeaders/Route16FlyHouse.asm8
-rwxr-xr-xdata/mapHeaders/Route16Gate1F.asm8
-rwxr-xr-xdata/mapHeaders/Route16Gate2F.asm8
-rwxr-xr-xdata/mapHeaders/Route17.asm10
-rwxr-xr-xdata/mapHeaders/Route18.asm10
-rwxr-xr-xdata/mapHeaders/Route18Gate1F.asm8
-rwxr-xr-xdata/mapHeaders/Route18Gate2F.asm8
-rwxr-xr-xdata/mapHeaders/Route19.asm10
-rwxr-xr-xdata/mapHeaders/Route2.asm10
-rwxr-xr-xdata/mapHeaders/Route20.asm10
-rwxr-xr-xdata/mapHeaders/Route21.asm10
-rwxr-xr-xdata/mapHeaders/Route22.asm10
-rwxr-xr-xdata/mapHeaders/Route22Gate.asm8
-rwxr-xr-xdata/mapHeaders/Route23.asm10
-rwxr-xr-xdata/mapHeaders/Route24.asm10
-rwxr-xr-xdata/mapHeaders/Route25.asm9
-rwxr-xr-xdata/mapHeaders/Route2Gate.asm8
-rwxr-xr-xdata/mapHeaders/Route2TradeHouse.asm8
-rwxr-xr-xdata/mapHeaders/Route3.asm10
-rwxr-xr-xdata/mapHeaders/Route4.asm10
-rwxr-xr-xdata/mapHeaders/Route5.asm10
-rwxr-xr-xdata/mapHeaders/Route5Gate.asm8
-rwxr-xr-xdata/mapHeaders/Route6.asm10
-rwxr-xr-xdata/mapHeaders/Route6Gate.asm8
-rwxr-xr-xdata/mapHeaders/Route7.asm10
-rwxr-xr-xdata/mapHeaders/Route7Gate.asm8
-rwxr-xr-xdata/mapHeaders/Route8.asm10
-rwxr-xr-xdata/mapHeaders/Route8Gate.asm8
-rwxr-xr-xdata/mapHeaders/Route9.asm10
-rwxr-xr-xdata/mapHeaders/SSAnne1F.asm8
-rwxr-xr-xdata/mapHeaders/SSAnne1FRooms.asm8
-rwxr-xr-xdata/mapHeaders/SSAnne2F.asm8
-rwxr-xr-xdata/mapHeaders/SSAnne2FRooms.asm8
-rwxr-xr-xdata/mapHeaders/SSAnne3F.asm8
-rwxr-xr-xdata/mapHeaders/SSAnneB1F.asm8
-rwxr-xr-xdata/mapHeaders/SSAnneB1FRooms.asm8
-rwxr-xr-xdata/mapHeaders/SSAnneBow.asm8
-rwxr-xr-xdata/mapHeaders/SSAnneCaptainsRoom.asm8
-rwxr-xr-xdata/mapHeaders/SSAnneKitchen.asm8
-rwxr-xr-xdata/mapHeaders/SafariZoneCenter.asm8
-rwxr-xr-xdata/mapHeaders/SafariZoneCenterRestHouse.asm8
-rwxr-xr-xdata/mapHeaders/SafariZoneEast.asm8
-rwxr-xr-xdata/mapHeaders/SafariZoneEastRestHouse.asm8
-rwxr-xr-xdata/mapHeaders/SafariZoneGate.asm8
-rwxr-xr-xdata/mapHeaders/SafariZoneNorth.asm8
-rwxr-xr-xdata/mapHeaders/SafariZoneNorthRestHouse.asm8
-rwxr-xr-xdata/mapHeaders/SafariZoneSecretHouse.asm8
-rwxr-xr-xdata/mapHeaders/SafariZoneWest.asm8
-rwxr-xr-xdata/mapHeaders/SafariZoneWestRestHouse.asm8
-rwxr-xr-xdata/mapHeaders/SaffronCity.asm12
-rwxr-xr-xdata/mapHeaders/SaffronGym.asm8
-rwxr-xr-xdata/mapHeaders/SaffronMart.asm8
-rwxr-xr-xdata/mapHeaders/SaffronPidgeyHouse.asm8
-rwxr-xr-xdata/mapHeaders/SaffronPokecenter.asm8
-rwxr-xr-xdata/mapHeaders/SeafoamIslands1F.asm8
-rwxr-xr-xdata/mapHeaders/SeafoamIslandsB1F.asm8
-rwxr-xr-xdata/mapHeaders/SeafoamIslandsB2F.asm8
-rwxr-xr-xdata/mapHeaders/SeafoamIslandsB3F.asm8
-rwxr-xr-xdata/mapHeaders/SeafoamIslandsB4F.asm8
-rwxr-xr-xdata/mapHeaders/SilphCo10F.asm8
-rwxr-xr-xdata/mapHeaders/SilphCo11F.asm8
-rwxr-xr-xdata/mapHeaders/SilphCo1F.asm8
-rwxr-xr-xdata/mapHeaders/SilphCo2F.asm8
-rwxr-xr-xdata/mapHeaders/SilphCo3F.asm8
-rwxr-xr-xdata/mapHeaders/SilphCo4F.asm8
-rwxr-xr-xdata/mapHeaders/SilphCo5F.asm8
-rwxr-xr-xdata/mapHeaders/SilphCo6F.asm8
-rwxr-xr-xdata/mapHeaders/SilphCo7F.asm8
-rwxr-xr-xdata/mapHeaders/SilphCo8F.asm8
-rwxr-xr-xdata/mapHeaders/SilphCo9F.asm8
-rwxr-xr-xdata/mapHeaders/SilphCoElevator.asm8
-rwxr-xr-xdata/mapHeaders/TradeCenter.asm8
-rwxr-xr-xdata/mapHeaders/UndergroundPathNorthSouth.asm8
-rwxr-xr-xdata/mapHeaders/UndergroundPathRoute5.asm8
-rwxr-xr-xdata/mapHeaders/UndergroundPathRoute6.asm8
-rwxr-xr-xdata/mapHeaders/UndergroundPathRoute7.asm8
-rwxr-xr-xdata/mapHeaders/UndergroundPathRoute7Copy.asm8
-rwxr-xr-xdata/mapHeaders/UndergroundPathRoute8.asm8
-rwxr-xr-xdata/mapHeaders/UndergroundPathWestEast.asm8
-rwxr-xr-xdata/mapHeaders/VermilionCity.asm10
-rwxr-xr-xdata/mapHeaders/VermilionDock.asm8
-rwxr-xr-xdata/mapHeaders/VermilionGym.asm8
-rwxr-xr-xdata/mapHeaders/VermilionMart.asm8
-rwxr-xr-xdata/mapHeaders/VermilionOldRodHouse.asm8
-rwxr-xr-xdata/mapHeaders/VermilionPidgeyHouse.asm8
-rwxr-xr-xdata/mapHeaders/VermilionPokecenter.asm8
-rwxr-xr-xdata/mapHeaders/VermilionTradeHouse.asm8
-rwxr-xr-xdata/mapHeaders/VictoryRoad1F.asm8
-rwxr-xr-xdata/mapHeaders/VictoryRoad2F.asm8
-rwxr-xr-xdata/mapHeaders/VictoryRoad3F.asm8
-rwxr-xr-xdata/mapHeaders/ViridianCity.asm11
-rwxr-xr-xdata/mapHeaders/ViridianForest.asm8
-rwxr-xr-xdata/mapHeaders/ViridianForestNorthGate.asm8
-rwxr-xr-xdata/mapHeaders/ViridianForestSouthGate.asm8
-rwxr-xr-xdata/mapHeaders/ViridianGym.asm8
-rwxr-xr-xdata/mapHeaders/ViridianMart.asm8
-rwxr-xr-xdata/mapHeaders/ViridianNicknameHouse.asm8
-rwxr-xr-xdata/mapHeaders/ViridianPokecenter.asm8
-rwxr-xr-xdata/mapHeaders/ViridianSchoolHouse.asm8
-rwxr-xr-xdata/mapHeaders/WardensHouse.asm8
-rw-r--r--data/maps/dungeon_maps.asm (renamed from data/dungeon_maps.asm)0
-rwxr-xr-xdata/maps/force_bike_surf.asm (renamed from data/force_bike_surf.asm)0
-rwxr-xr-xdata/maps/headers/AgathasRoom.asm3
-rwxr-xr-xdata/maps/headers/BikeShop.asm3
-rwxr-xr-xdata/maps/headers/BillsHouse.asm3
-rwxr-xr-xdata/maps/headers/BluesHouse.asm3
-rwxr-xr-xdata/maps/headers/BrunosRoom.asm3
-rwxr-xr-xdata/maps/headers/CeladonChiefHouse.asm3
-rwxr-xr-xdata/maps/headers/CeladonCity.asm5
-rwxr-xr-xdata/maps/headers/CeladonDiner.asm3
-rwxr-xr-xdata/maps/headers/CeladonGym.asm3
-rwxr-xr-xdata/maps/headers/CeladonHotel.asm3
-rwxr-xr-xdata/maps/headers/CeladonMansion1F.asm3
-rwxr-xr-xdata/maps/headers/CeladonMansion2F.asm3
-rwxr-xr-xdata/maps/headers/CeladonMansion3F.asm3
-rwxr-xr-xdata/maps/headers/CeladonMansionRoof.asm3
-rwxr-xr-xdata/maps/headers/CeladonMansionRoofHouse.asm3
-rwxr-xr-xdata/maps/headers/CeladonMart1F.asm3
-rwxr-xr-xdata/maps/headers/CeladonMart2F.asm3
-rwxr-xr-xdata/maps/headers/CeladonMart3F.asm3
-rwxr-xr-xdata/maps/headers/CeladonMart4F.asm3
-rwxr-xr-xdata/maps/headers/CeladonMart5F.asm3
-rwxr-xr-xdata/maps/headers/CeladonMartElevator.asm3
-rwxr-xr-xdata/maps/headers/CeladonMartRoof.asm3
-rwxr-xr-xdata/maps/headers/CeladonPokecenter.asm3
-rwxr-xr-xdata/maps/headers/CeruleanBadgeHouse.asm3
-rwxr-xr-xdata/maps/headers/CeruleanCave1F.asm3
-rwxr-xr-xdata/maps/headers/CeruleanCave2F.asm3
-rwxr-xr-xdata/maps/headers/CeruleanCaveB1F.asm3
-rwxr-xr-xdata/maps/headers/CeruleanCity.asm7
-rwxr-xr-xdata/maps/headers/CeruleanGym.asm3
-rwxr-xr-xdata/maps/headers/CeruleanMart.asm3
-rwxr-xr-xdata/maps/headers/CeruleanPokecenter.asm3
-rwxr-xr-xdata/maps/headers/CeruleanTradeHouse.asm3
-rwxr-xr-xdata/maps/headers/CeruleanTrashedHouse.asm3
-rwxr-xr-xdata/maps/headers/ChampionsRoom.asm3
-rwxr-xr-xdata/maps/headers/CinnabarGym.asm3
-rwxr-xr-xdata/maps/headers/CinnabarIsland.asm5
-rwxr-xr-xdata/maps/headers/CinnabarLab.asm3
-rwxr-xr-xdata/maps/headers/CinnabarLabFossilRoom.asm3
-rwxr-xr-xdata/maps/headers/CinnabarLabMetronomeRoom.asm3
-rwxr-xr-xdata/maps/headers/CinnabarLabTradeRoom.asm3
-rwxr-xr-xdata/maps/headers/CinnabarMart.asm3
-rwxr-xr-xdata/maps/headers/CinnabarPokecenter.asm3
-rwxr-xr-xdata/maps/headers/Colosseum.asm3
-rwxr-xr-xdata/maps/headers/CopycatsHouse1F.asm3
-rwxr-xr-xdata/maps/headers/CopycatsHouse2F.asm3
-rwxr-xr-xdata/maps/headers/Daycare.asm3
-rwxr-xr-xdata/maps/headers/DiglettsCave.asm3
-rwxr-xr-xdata/maps/headers/DiglettsCaveRoute11.asm3
-rwxr-xr-xdata/maps/headers/DiglettsCaveRoute2.asm3
-rwxr-xr-xdata/maps/headers/FightingDojo.asm3
-rwxr-xr-xdata/maps/headers/FuchsiaBillsGrandpasHouse.asm3
-rwxr-xr-xdata/maps/headers/FuchsiaCity.asm6
-rwxr-xr-xdata/maps/headers/FuchsiaGoodRodHouse.asm3
-rwxr-xr-xdata/maps/headers/FuchsiaGym.asm3
-rwxr-xr-xdata/maps/headers/FuchsiaMart.asm3
-rwxr-xr-xdata/maps/headers/FuchsiaMeetingRoom.asm3
-rwxr-xr-xdata/maps/headers/FuchsiaPokecenter.asm3
-rwxr-xr-xdata/maps/headers/GameCorner.asm3
-rwxr-xr-xdata/maps/headers/GameCornerPrizeRoom.asm3
-rwxr-xr-xdata/maps/headers/HallOfFame.asm3
-rwxr-xr-xdata/maps/headers/IndigoPlateau.asm4
-rwxr-xr-xdata/maps/headers/IndigoPlateauLobby.asm3
-rwxr-xr-xdata/maps/headers/LancesRoom.asm3
-rwxr-xr-xdata/maps/headers/LavenderCuboneHouse.asm3
-rwxr-xr-xdata/maps/headers/LavenderMart.asm3
-rwxr-xr-xdata/maps/headers/LavenderPokecenter.asm3
-rwxr-xr-xdata/maps/headers/LavenderTown.asm6
-rwxr-xr-xdata/maps/headers/LoreleisRoom.asm3
-rwxr-xr-xdata/maps/headers/MrFujisHouse.asm3
-rwxr-xr-xdata/maps/headers/MrPsychicsHouse.asm3
-rwxr-xr-xdata/maps/headers/MtMoon1F.asm3
-rwxr-xr-xdata/maps/headers/MtMoonB1F.asm3
-rwxr-xr-xdata/maps/headers/MtMoonB2F.asm3
-rwxr-xr-xdata/maps/headers/MtMoonPokecenter.asm3
-rwxr-xr-xdata/maps/headers/Museum1F.asm3
-rwxr-xr-xdata/maps/headers/Museum2F.asm3
-rwxr-xr-xdata/maps/headers/NameRatersHouse.asm3
-rwxr-xr-xdata/maps/headers/OaksLab.asm3
-rwxr-xr-xdata/maps/headers/PalletTown.asm5
-rwxr-xr-xdata/maps/headers/PewterCity.asm5
-rwxr-xr-xdata/maps/headers/PewterGym.asm3
-rwxr-xr-xdata/maps/headers/PewterMart.asm3
-rwxr-xr-xdata/maps/headers/PewterNidoranHouse.asm3
-rwxr-xr-xdata/maps/headers/PewterPokecenter.asm3
-rwxr-xr-xdata/maps/headers/PewterSpeechHouse.asm3
-rwxr-xr-xdata/maps/headers/PokemonFanClub.asm3
-rwxr-xr-xdata/maps/headers/PokemonMansion1F.asm3
-rwxr-xr-xdata/maps/headers/PokemonMansion2F.asm3
-rwxr-xr-xdata/maps/headers/PokemonMansion3F.asm3
-rwxr-xr-xdata/maps/headers/PokemonMansionB1F.asm3
-rwxr-xr-xdata/maps/headers/PokemonTower1F.asm3
-rwxr-xr-xdata/maps/headers/PokemonTower2F.asm3
-rwxr-xr-xdata/maps/headers/PokemonTower3F.asm3
-rwxr-xr-xdata/maps/headers/PokemonTower4F.asm3
-rwxr-xr-xdata/maps/headers/PokemonTower5F.asm3
-rwxr-xr-xdata/maps/headers/PokemonTower6F.asm3
-rwxr-xr-xdata/maps/headers/PokemonTower7F.asm3
-rwxr-xr-xdata/maps/headers/PowerPlant.asm3
-rwxr-xr-xdata/maps/headers/RedsHouse1F.asm3
-rwxr-xr-xdata/maps/headers/RedsHouse2F.asm3
-rwxr-xr-xdata/maps/headers/RockTunnel1F.asm3
-rwxr-xr-xdata/maps/headers/RockTunnelB1F.asm3
-rwxr-xr-xdata/maps/headers/RockTunnelPokecenter.asm3
-rwxr-xr-xdata/maps/headers/RocketHideoutB1F.asm3
-rwxr-xr-xdata/maps/headers/RocketHideoutB2F.asm3
-rwxr-xr-xdata/maps/headers/RocketHideoutB3F.asm3
-rwxr-xr-xdata/maps/headers/RocketHideoutB4F.asm3
-rwxr-xr-xdata/maps/headers/RocketHideoutElevator.asm3
-rwxr-xr-xdata/maps/headers/Route1.asm5
-rwxr-xr-xdata/maps/headers/Route10.asm5
-rwxr-xr-xdata/maps/headers/Route11.asm5
-rwxr-xr-xdata/maps/headers/Route11Gate1F.asm3
-rwxr-xr-xdata/maps/headers/Route11Gate2F.asm3
-rwxr-xr-xdata/maps/headers/Route12.asm6
-rwxr-xr-xdata/maps/headers/Route12Gate1F.asm3
-rwxr-xr-xdata/maps/headers/Route12Gate2F.asm3
-rwxr-xr-xdata/maps/headers/Route12SuperRodHouse.asm3
-rwxr-xr-xdata/maps/headers/Route13.asm5
-rwxr-xr-xdata/maps/headers/Route14.asm5
-rwxr-xr-xdata/maps/headers/Route15.asm5
-rwxr-xr-xdata/maps/headers/Route15Gate1F.asm3
-rwxr-xr-xdata/maps/headers/Route15Gate2F.asm3
-rwxr-xr-xdata/maps/headers/Route16.asm5
-rwxr-xr-xdata/maps/headers/Route16FlyHouse.asm3
-rwxr-xr-xdata/maps/headers/Route16Gate1F.asm3
-rwxr-xr-xdata/maps/headers/Route16Gate2F.asm3
-rwxr-xr-xdata/maps/headers/Route17.asm5
-rwxr-xr-xdata/maps/headers/Route18.asm5
-rwxr-xr-xdata/maps/headers/Route18Gate1F.asm3
-rwxr-xr-xdata/maps/headers/Route18Gate2F.asm3
-rwxr-xr-xdata/maps/headers/Route19.asm5
-rwxr-xr-xdata/maps/headers/Route2.asm5
-rwxr-xr-xdata/maps/headers/Route20.asm5
-rwxr-xr-xdata/maps/headers/Route21.asm5
-rwxr-xr-xdata/maps/headers/Route22.asm5
-rwxr-xr-xdata/maps/headers/Route22Gate.asm3
-rwxr-xr-xdata/maps/headers/Route23.asm5
-rwxr-xr-xdata/maps/headers/Route24.asm5
-rwxr-xr-xdata/maps/headers/Route25.asm4
-rwxr-xr-xdata/maps/headers/Route2Gate.asm3
-rwxr-xr-xdata/maps/headers/Route2TradeHouse.asm3
-rwxr-xr-xdata/maps/headers/Route3.asm5
-rwxr-xr-xdata/maps/headers/Route4.asm5
-rwxr-xr-xdata/maps/headers/Route5.asm5
-rwxr-xr-xdata/maps/headers/Route5Gate.asm3
-rwxr-xr-xdata/maps/headers/Route6.asm5
-rwxr-xr-xdata/maps/headers/Route6Gate.asm3
-rwxr-xr-xdata/maps/headers/Route7.asm5
-rwxr-xr-xdata/maps/headers/Route7Gate.asm3
-rwxr-xr-xdata/maps/headers/Route8.asm5
-rwxr-xr-xdata/maps/headers/Route8Gate.asm3
-rwxr-xr-xdata/maps/headers/Route9.asm5
-rwxr-xr-xdata/maps/headers/SSAnne1F.asm3
-rwxr-xr-xdata/maps/headers/SSAnne1FRooms.asm3
-rwxr-xr-xdata/maps/headers/SSAnne2F.asm3
-rwxr-xr-xdata/maps/headers/SSAnne2FRooms.asm3
-rwxr-xr-xdata/maps/headers/SSAnne3F.asm3
-rwxr-xr-xdata/maps/headers/SSAnneB1F.asm3
-rwxr-xr-xdata/maps/headers/SSAnneB1FRooms.asm3
-rwxr-xr-xdata/maps/headers/SSAnneBow.asm3
-rwxr-xr-xdata/maps/headers/SSAnneCaptainsRoom.asm3
-rwxr-xr-xdata/maps/headers/SSAnneKitchen.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneCenter.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneCenterRestHouse.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneEast.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneEastRestHouse.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneGate.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneNorth.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneNorthRestHouse.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneSecretHouse.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneWest.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneWestRestHouse.asm3
-rwxr-xr-xdata/maps/headers/SaffronCity.asm7
-rwxr-xr-xdata/maps/headers/SaffronGym.asm3
-rwxr-xr-xdata/maps/headers/SaffronMart.asm3
-rwxr-xr-xdata/maps/headers/SaffronPidgeyHouse.asm3
-rwxr-xr-xdata/maps/headers/SaffronPokecenter.asm3
-rwxr-xr-xdata/maps/headers/SeafoamIslands1F.asm3
-rwxr-xr-xdata/maps/headers/SeafoamIslandsB1F.asm3
-rwxr-xr-xdata/maps/headers/SeafoamIslandsB2F.asm3
-rwxr-xr-xdata/maps/headers/SeafoamIslandsB3F.asm3
-rwxr-xr-xdata/maps/headers/SeafoamIslandsB4F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo10F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo11F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo1F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo2F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo3F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo4F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo5F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo6F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo7F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo8F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo9F.asm3
-rwxr-xr-xdata/maps/headers/SilphCoElevator.asm3
-rwxr-xr-xdata/maps/headers/TradeCenter.asm3
-rwxr-xr-xdata/maps/headers/UndergroundPathNorthSouth.asm3
-rwxr-xr-xdata/maps/headers/UndergroundPathRoute5.asm3
-rwxr-xr-xdata/maps/headers/UndergroundPathRoute6.asm3
-rwxr-xr-xdata/maps/headers/UndergroundPathRoute7.asm3
-rwxr-xr-xdata/maps/headers/UndergroundPathRoute7Copy.asm3
-rwxr-xr-xdata/maps/headers/UndergroundPathRoute8.asm3
-rwxr-xr-xdata/maps/headers/UndergroundPathWestEast.asm3
-rwxr-xr-xdata/maps/headers/VermilionCity.asm5
-rwxr-xr-xdata/maps/headers/VermilionDock.asm3
-rwxr-xr-xdata/maps/headers/VermilionGym.asm3
-rwxr-xr-xdata/maps/headers/VermilionMart.asm3
-rwxr-xr-xdata/maps/headers/VermilionOldRodHouse.asm3
-rwxr-xr-xdata/maps/headers/VermilionPidgeyHouse.asm3
-rwxr-xr-xdata/maps/headers/VermilionPokecenter.asm3
-rwxr-xr-xdata/maps/headers/VermilionTradeHouse.asm3
-rwxr-xr-xdata/maps/headers/VictoryRoad1F.asm3
-rwxr-xr-xdata/maps/headers/VictoryRoad2F.asm3
-rwxr-xr-xdata/maps/headers/VictoryRoad3F.asm3
-rwxr-xr-xdata/maps/headers/ViridianCity.asm6
-rwxr-xr-xdata/maps/headers/ViridianForest.asm3
-rwxr-xr-xdata/maps/headers/ViridianForestNorthGate.asm3
-rwxr-xr-xdata/maps/headers/ViridianForestSouthGate.asm3
-rwxr-xr-xdata/maps/headers/ViridianGym.asm3
-rwxr-xr-xdata/maps/headers/ViridianMart.asm3
-rwxr-xr-xdata/maps/headers/ViridianNicknameHouse.asm3
-rwxr-xr-xdata/maps/headers/ViridianPokecenter.asm3
-rwxr-xr-xdata/maps/headers/ViridianSchoolHouse.asm3
-rwxr-xr-xdata/maps/headers/WardensHouse.asm3
-rwxr-xr-xdata/maps/hide_show_data.asm577
-rwxr-xr-xdata/maps/map_header_banks.asm (renamed from data/map_header_banks.asm)0
-rwxr-xr-xdata/maps/map_header_pointers.asm (renamed from data/map_header_pointers.asm)0
-rwxr-xr-xdata/maps/names.asm (renamed from text/map_names.asm)0
-rwxr-xr-xdata/maps/objects/AgathasRoom.asm (renamed from data/mapObjects/AgathasRoom.asm)0
-rwxr-xr-xdata/maps/objects/BikeShop.asm (renamed from data/mapObjects/BikeShop.asm)0
-rwxr-xr-xdata/maps/objects/BillsHouse.asm (renamed from data/mapObjects/BillsHouse.asm)0
-rwxr-xr-xdata/maps/objects/BluesHouse.asm (renamed from data/mapObjects/BluesHouse.asm)0
-rwxr-xr-xdata/maps/objects/BrunosRoom.asm (renamed from data/mapObjects/BrunosRoom.asm)0
-rwxr-xr-xdata/maps/objects/CeladonChiefHouse.asm (renamed from data/mapObjects/CeladonChiefHouse.asm)0
-rwxr-xr-xdata/maps/objects/CeladonCity.asm (renamed from data/mapObjects/CeladonCity.asm)0
-rwxr-xr-xdata/maps/objects/CeladonDiner.asm (renamed from data/mapObjects/CeladonDiner.asm)0
-rwxr-xr-xdata/maps/objects/CeladonGym.asm (renamed from data/mapObjects/CeladonGym.asm)0
-rwxr-xr-xdata/maps/objects/CeladonHotel.asm (renamed from data/mapObjects/CeladonHotel.asm)0
-rwxr-xr-xdata/maps/objects/CeladonMansion1F.asm (renamed from data/mapObjects/CeladonMansion1F.asm)0
-rwxr-xr-xdata/maps/objects/CeladonMansion2F.asm (renamed from data/mapObjects/CeladonMansion2F.asm)0
-rwxr-xr-xdata/maps/objects/CeladonMansion3F.asm (renamed from data/mapObjects/CeladonMansion3F.asm)0
-rwxr-xr-xdata/maps/objects/CeladonMansionRoof.asm (renamed from data/mapObjects/CeladonMansionRoof.asm)0
-rwxr-xr-xdata/maps/objects/CeladonMansionRoofHouse.asm (renamed from data/mapObjects/CeladonMansionRoofHouse.asm)0
-rwxr-xr-xdata/maps/objects/CeladonMart1F.asm (renamed from data/mapObjects/CeladonMart1F.asm)0
-rwxr-xr-xdata/maps/objects/CeladonMart2F.asm (renamed from data/mapObjects/CeladonMart2F.asm)0
-rwxr-xr-xdata/maps/objects/CeladonMart3F.asm (renamed from data/mapObjects/CeladonMart3F.asm)0
-rwxr-xr-xdata/maps/objects/CeladonMart4F.asm (renamed from data/mapObjects/CeladonMart4F.asm)0
-rwxr-xr-xdata/maps/objects/CeladonMart5F.asm (renamed from data/mapObjects/CeladonMart5F.asm)0
-rwxr-xr-xdata/maps/objects/CeladonMartElevator.asm (renamed from data/mapObjects/CeladonMartElevator.asm)0
-rwxr-xr-xdata/maps/objects/CeladonMartRoof.asm (renamed from data/mapObjects/CeladonMartRoof.asm)0
-rwxr-xr-xdata/maps/objects/CeladonPokecenter.asm (renamed from data/mapObjects/CeladonPokecenter.asm)0
-rwxr-xr-xdata/maps/objects/CeruleanBadgeHouse.asm (renamed from data/mapObjects/CeruleanBadgeHouse.asm)0
-rwxr-xr-xdata/maps/objects/CeruleanCave1F.asm (renamed from data/mapObjects/CeruleanCave1F.asm)0
-rwxr-xr-xdata/maps/objects/CeruleanCave2F.asm (renamed from data/mapObjects/CeruleanCave2F.asm)0
-rwxr-xr-xdata/maps/objects/CeruleanCaveB1F.asm (renamed from data/mapObjects/CeruleanCaveB1F.asm)0
-rwxr-xr-xdata/maps/objects/CeruleanCity.asm (renamed from data/mapObjects/CeruleanCity.asm)0
-rwxr-xr-xdata/maps/objects/CeruleanGym.asm (renamed from data/mapObjects/CeruleanGym.asm)0
-rwxr-xr-xdata/maps/objects/CeruleanMart.asm (renamed from data/mapObjects/CeruleanMart.asm)0
-rwxr-xr-xdata/maps/objects/CeruleanPokecenter.asm (renamed from data/mapObjects/CeruleanPokecenter.asm)0
-rwxr-xr-xdata/maps/objects/CeruleanTradeHouse.asm (renamed from data/mapObjects/CeruleanTradeHouse.asm)0
-rwxr-xr-xdata/maps/objects/CeruleanTrashedHouse.asm (renamed from data/mapObjects/CeruleanTrashedHouse.asm)0
-rwxr-xr-xdata/maps/objects/ChampionsRoom.asm (renamed from data/mapObjects/ChampionsRoom.asm)0
-rwxr-xr-xdata/maps/objects/CinnabarGym.asm (renamed from data/mapObjects/CinnabarGym.asm)0
-rwxr-xr-xdata/maps/objects/CinnabarIsland.asm (renamed from data/mapObjects/CinnabarIsland.asm)0
-rwxr-xr-xdata/maps/objects/CinnabarLab.asm (renamed from data/mapObjects/CinnabarLab.asm)0
-rwxr-xr-xdata/maps/objects/CinnabarLabFossilRoom.asm (renamed from data/mapObjects/CinnabarLabFossilRoom.asm)0
-rwxr-xr-xdata/maps/objects/CinnabarLabMetronomeRoom.asm (renamed from data/mapObjects/CinnabarLabMetronomeRoom.asm)0
-rwxr-xr-xdata/maps/objects/CinnabarLabTradeRoom.asm (renamed from data/mapObjects/CinnabarLabTradeRoom.asm)0
-rwxr-xr-xdata/maps/objects/CinnabarMart.asm (renamed from data/mapObjects/CinnabarMart.asm)0
-rwxr-xr-xdata/maps/objects/CinnabarPokecenter.asm (renamed from data/mapObjects/CinnabarPokecenter.asm)0
-rwxr-xr-xdata/maps/objects/Colosseum.asm (renamed from data/mapObjects/Colosseum.asm)0
-rwxr-xr-xdata/maps/objects/CopycatsHouse1F.asm (renamed from data/mapObjects/CopycatsHouse1F.asm)0
-rwxr-xr-xdata/maps/objects/CopycatsHouse2F.asm (renamed from data/mapObjects/CopycatsHouse2F.asm)0
-rwxr-xr-xdata/maps/objects/Daycare.asm (renamed from data/mapObjects/Daycare.asm)0
-rwxr-xr-xdata/maps/objects/DiglettsCave.asm (renamed from data/mapObjects/DiglettsCave.asm)0
-rwxr-xr-xdata/maps/objects/DiglettsCaveRoute11.asm (renamed from data/mapObjects/DiglettsCaveRoute11.asm)0
-rwxr-xr-xdata/maps/objects/DiglettsCaveRoute2.asm (renamed from data/mapObjects/DiglettsCaveRoute2.asm)0
-rwxr-xr-xdata/maps/objects/FightingDojo.asm (renamed from data/mapObjects/FightingDojo.asm)0
-rwxr-xr-xdata/maps/objects/FuchsiaBillsGrandpasHouse.asm (renamed from data/mapObjects/FuchsiaBillsGrandpasHouse.asm)0
-rwxr-xr-xdata/maps/objects/FuchsiaCity.asm (renamed from data/mapObjects/FuchsiaCity.asm)0
-rwxr-xr-xdata/maps/objects/FuchsiaGoodRodHouse.asm (renamed from data/mapObjects/FuchsiaGoodRodHouse.asm)0
-rwxr-xr-xdata/maps/objects/FuchsiaGym.asm (renamed from data/mapObjects/FuchsiaGym.asm)0
-rwxr-xr-xdata/maps/objects/FuchsiaMart.asm (renamed from data/mapObjects/FuchsiaMart.asm)0
-rwxr-xr-xdata/maps/objects/FuchsiaMeetingRoom.asm (renamed from data/mapObjects/FuchsiaMeetingRoom.asm)0
-rwxr-xr-xdata/maps/objects/FuchsiaPokecenter.asm (renamed from data/mapObjects/FuchsiaPokecenter.asm)0
-rwxr-xr-xdata/maps/objects/GameCorner.asm (renamed from data/mapObjects/GameCorner.asm)0
-rwxr-xr-xdata/maps/objects/GameCornerPrizeRoom.asm (renamed from data/mapObjects/GameCornerPrizeRoom.asm)0
-rwxr-xr-xdata/maps/objects/HallOfFame.asm (renamed from data/mapObjects/HallOfFame.asm)0
-rwxr-xr-xdata/maps/objects/IndigoPlateau.asm (renamed from data/mapObjects/IndigoPlateau.asm)0
-rwxr-xr-xdata/maps/objects/IndigoPlateauLobby.asm (renamed from data/mapObjects/IndigoPlateauLobby.asm)0
-rwxr-xr-xdata/maps/objects/LancesRoom.asm (renamed from data/mapObjects/LancesRoom.asm)0
-rwxr-xr-xdata/maps/objects/LavenderCuboneHouse.asm (renamed from data/mapObjects/LavenderCuboneHouse.asm)0
-rwxr-xr-xdata/maps/objects/LavenderMart.asm (renamed from data/mapObjects/LavenderMart.asm)0
-rwxr-xr-xdata/maps/objects/LavenderPokecenter.asm (renamed from data/mapObjects/LavenderPokecenter.asm)0
-rwxr-xr-xdata/maps/objects/LavenderTown.asm (renamed from data/mapObjects/LavenderTown.asm)0
-rwxr-xr-xdata/maps/objects/LoreleisRoom.asm (renamed from data/mapObjects/LoreleisRoom.asm)0
-rwxr-xr-xdata/maps/objects/MrFujisHouse.asm (renamed from data/mapObjects/MrFujisHouse.asm)0
-rwxr-xr-xdata/maps/objects/MrPsychicsHouse.asm (renamed from data/mapObjects/MrPsychicsHouse.asm)0
-rwxr-xr-xdata/maps/objects/MtMoon1F.asm (renamed from data/mapObjects/MtMoon1F.asm)0
-rwxr-xr-xdata/maps/objects/MtMoonB1F.asm (renamed from data/mapObjects/MtMoonB1F.asm)0
-rwxr-xr-xdata/maps/objects/MtMoonB2F.asm (renamed from data/mapObjects/MtMoonB2F.asm)0
-rwxr-xr-xdata/maps/objects/MtMoonPokecenter.asm (renamed from data/mapObjects/MtMoonPokecenter.asm)0
-rwxr-xr-xdata/maps/objects/Museum1F.asm (renamed from data/mapObjects/Museum1F.asm)0
-rwxr-xr-xdata/maps/objects/Museum2F.asm (renamed from data/mapObjects/Museum2F.asm)0
-rwxr-xr-xdata/maps/objects/NameRatersHouse.asm (renamed from data/mapObjects/NameRatersHouse.asm)0
-rwxr-xr-xdata/maps/objects/OaksLab.asm (renamed from data/mapObjects/OaksLab.asm)0
-rwxr-xr-xdata/maps/objects/PalletTown.asm (renamed from data/mapObjects/PalletTown.asm)0
-rwxr-xr-xdata/maps/objects/PewterCity.asm (renamed from data/mapObjects/PewterCity.asm)0
-rwxr-xr-xdata/maps/objects/PewterGym.asm (renamed from data/mapObjects/PewterGym.asm)0
-rwxr-xr-xdata/maps/objects/PewterMart.asm (renamed from data/mapObjects/PewterMart.asm)0
-rwxr-xr-xdata/maps/objects/PewterNidoranHouse.asm (renamed from data/mapObjects/PewterNidoranHouse.asm)0
-rwxr-xr-xdata/maps/objects/PewterPokecenter.asm (renamed from data/mapObjects/PewterPokecenter.asm)0
-rwxr-xr-xdata/maps/objects/PewterSpeechHouse.asm (renamed from data/mapObjects/PewterSpeechHouse.asm)0
-rwxr-xr-xdata/maps/objects/PokemonFanClub.asm (renamed from data/mapObjects/PokemonFanClub.asm)0
-rwxr-xr-xdata/maps/objects/PokemonMansion1F.asm (renamed from data/mapObjects/PokemonMansion1F.asm)0
-rwxr-xr-xdata/maps/objects/PokemonMansion2F.asm (renamed from data/mapObjects/PokemonMansion2F.asm)0
-rwxr-xr-xdata/maps/objects/PokemonMansion3F.asm (renamed from data/mapObjects/PokemonMansion3F.asm)0
-rwxr-xr-xdata/maps/objects/PokemonMansionB1F.asm (renamed from data/mapObjects/PokemonMansionB1F.asm)0
-rwxr-xr-xdata/maps/objects/PokemonTower1F.asm (renamed from data/mapObjects/PokemonTower1F.asm)0
-rwxr-xr-xdata/maps/objects/PokemonTower2F.asm (renamed from data/mapObjects/PokemonTower2F.asm)0
-rwxr-xr-xdata/maps/objects/PokemonTower3F.asm (renamed from data/mapObjects/PokemonTower3F.asm)0
-rwxr-xr-xdata/maps/objects/PokemonTower4F.asm (renamed from data/mapObjects/PokemonTower4F.asm)0
-rwxr-xr-xdata/maps/objects/PokemonTower5F.asm (renamed from data/mapObjects/PokemonTower5F.asm)0
-rwxr-xr-xdata/maps/objects/PokemonTower6F.asm (renamed from data/mapObjects/PokemonTower6F.asm)0
-rwxr-xr-xdata/maps/objects/PokemonTower7F.asm (renamed from data/mapObjects/PokemonTower7F.asm)0
-rwxr-xr-xdata/maps/objects/PowerPlant.asm (renamed from data/mapObjects/PowerPlant.asm)0
-rwxr-xr-xdata/maps/objects/RedsHouse1F.asm (renamed from data/mapObjects/RedsHouse1F.asm)0
-rwxr-xr-xdata/maps/objects/RedsHouse2F.asm (renamed from data/mapObjects/RedsHouse2F.asm)0
-rwxr-xr-xdata/maps/objects/RockTunnel1F.asm (renamed from data/mapObjects/RockTunnel1F.asm)0
-rwxr-xr-xdata/maps/objects/RockTunnelB1F.asm (renamed from data/mapObjects/RockTunnelB1F.asm)0
-rwxr-xr-xdata/maps/objects/RockTunnelPokecenter.asm (renamed from data/mapObjects/RockTunnelPokecenter.asm)0
-rwxr-xr-xdata/maps/objects/RocketHideoutB1F.asm (renamed from data/mapObjects/RocketHideoutB1F.asm)0
-rwxr-xr-xdata/maps/objects/RocketHideoutB2F.asm (renamed from data/mapObjects/RocketHideoutB2F.asm)0
-rwxr-xr-xdata/maps/objects/RocketHideoutB3F.asm (renamed from data/mapObjects/RocketHideoutB3F.asm)0
-rwxr-xr-xdata/maps/objects/RocketHideoutB4F.asm (renamed from data/mapObjects/RocketHideoutB4F.asm)0
-rwxr-xr-xdata/maps/objects/RocketHideoutElevator.asm (renamed from data/mapObjects/RocketHideoutElevator.asm)0
-rwxr-xr-xdata/maps/objects/Route1.asm (renamed from data/mapObjects/Route1.asm)0
-rwxr-xr-xdata/maps/objects/Route10.asm (renamed from data/mapObjects/Route10.asm)0
-rwxr-xr-xdata/maps/objects/Route11.asm (renamed from data/mapObjects/Route11.asm)0
-rwxr-xr-xdata/maps/objects/Route11Gate1F.asm (renamed from data/mapObjects/Route11Gate1F.asm)0
-rwxr-xr-xdata/maps/objects/Route11Gate2F.asm (renamed from data/mapObjects/Route11Gate2F.asm)0
-rwxr-xr-xdata/maps/objects/Route12.asm (renamed from data/mapObjects/Route12.asm)0
-rwxr-xr-xdata/maps/objects/Route12Gate1F.asm (renamed from data/mapObjects/Route12Gate1F.asm)0
-rwxr-xr-xdata/maps/objects/Route12Gate2F.asm (renamed from data/mapObjects/Route12Gate2F.asm)0
-rwxr-xr-xdata/maps/objects/Route12SuperRodHouse.asm (renamed from data/mapObjects/Route12SuperRodHouse.asm)0
-rwxr-xr-xdata/maps/objects/Route13.asm (renamed from data/mapObjects/Route13.asm)0
-rwxr-xr-xdata/maps/objects/Route14.asm (renamed from data/mapObjects/Route14.asm)0
-rwxr-xr-xdata/maps/objects/Route15.asm (renamed from data/mapObjects/Route15.asm)0
-rwxr-xr-xdata/maps/objects/Route15Gate1F.asm (renamed from data/mapObjects/Route15Gate1F.asm)0
-rwxr-xr-xdata/maps/objects/Route15Gate2F.asm (renamed from data/mapObjects/Route15Gate2F.asm)0
-rwxr-xr-xdata/maps/objects/Route16.asm (renamed from data/mapObjects/Route16.asm)0
-rwxr-xr-xdata/maps/objects/Route16FlyHouse.asm (renamed from data/mapObjects/Route16FlyHouse.asm)0
-rwxr-xr-xdata/maps/objects/Route16Gate1F.asm (renamed from data/mapObjects/Route16Gate1F.asm)0
-rwxr-xr-xdata/maps/objects/Route16Gate2F.asm (renamed from data/mapObjects/Route16Gate2F.asm)0
-rwxr-xr-xdata/maps/objects/Route17.asm (renamed from data/mapObjects/Route17.asm)0
-rwxr-xr-xdata/maps/objects/Route18.asm (renamed from data/mapObjects/Route18.asm)0
-rwxr-xr-xdata/maps/objects/Route18Gate1F.asm (renamed from data/mapObjects/Route18Gate1F.asm)0
-rwxr-xr-xdata/maps/objects/Route18Gate2F.asm (renamed from data/mapObjects/Route18Gate2F.asm)0
-rwxr-xr-xdata/maps/objects/Route19.asm (renamed from data/mapObjects/Route19.asm)0
-rwxr-xr-xdata/maps/objects/Route2.asm (renamed from data/mapObjects/Route2.asm)0
-rwxr-xr-xdata/maps/objects/Route20.asm (renamed from data/mapObjects/Route20.asm)0
-rwxr-xr-xdata/maps/objects/Route21.asm (renamed from data/mapObjects/Route21.asm)0
-rwxr-xr-xdata/maps/objects/Route22.asm (renamed from data/mapObjects/Route22.asm)0
-rwxr-xr-xdata/maps/objects/Route22Gate.asm (renamed from data/mapObjects/Route22Gate.asm)0
-rwxr-xr-xdata/maps/objects/Route23.asm (renamed from data/mapObjects/Route23.asm)0
-rwxr-xr-xdata/maps/objects/Route24.asm (renamed from data/mapObjects/Route24.asm)0
-rwxr-xr-xdata/maps/objects/Route25.asm (renamed from data/mapObjects/Route25.asm)0
-rwxr-xr-xdata/maps/objects/Route2Gate.asm (renamed from data/mapObjects/Route2Gate.asm)0
-rwxr-xr-xdata/maps/objects/Route2TradeHouse.asm (renamed from data/mapObjects/Route2TradeHouse.asm)0
-rwxr-xr-xdata/maps/objects/Route3.asm (renamed from data/mapObjects/Route3.asm)0
-rwxr-xr-xdata/maps/objects/Route4.asm (renamed from data/mapObjects/Route4.asm)0
-rwxr-xr-xdata/maps/objects/Route5.asm (renamed from data/mapObjects/Route5.asm)0
-rwxr-xr-xdata/maps/objects/Route5Gate.asm (renamed from data/mapObjects/Route5Gate.asm)0
-rwxr-xr-xdata/maps/objects/Route6.asm (renamed from data/mapObjects/Route6.asm)0
-rwxr-xr-xdata/maps/objects/Route6Gate.asm (renamed from data/mapObjects/Route6Gate.asm)0
-rwxr-xr-xdata/maps/objects/Route7.asm (renamed from data/mapObjects/Route7.asm)0
-rwxr-xr-xdata/maps/objects/Route7Gate.asm (renamed from data/mapObjects/Route7Gate.asm)0
-rwxr-xr-xdata/maps/objects/Route8.asm (renamed from data/mapObjects/Route8.asm)0
-rwxr-xr-xdata/maps/objects/Route8Gate.asm (renamed from data/mapObjects/Route8Gate.asm)0
-rwxr-xr-xdata/maps/objects/Route9.asm (renamed from data/mapObjects/Route9.asm)0
-rwxr-xr-xdata/maps/objects/SSAnne1F.asm (renamed from data/mapObjects/SSAnne1F.asm)0
-rwxr-xr-xdata/maps/objects/SSAnne1FRooms.asm (renamed from data/mapObjects/SSAnne1FRooms.asm)0
-rwxr-xr-xdata/maps/objects/SSAnne2F.asm (renamed from data/mapObjects/SSAnne2F.asm)0
-rwxr-xr-xdata/maps/objects/SSAnne2FRooms.asm (renamed from data/mapObjects/SSAnne2FRooms.asm)0
-rwxr-xr-xdata/maps/objects/SSAnne3F.asm (renamed from data/mapObjects/SSAnne3F.asm)0
-rwxr-xr-xdata/maps/objects/SSAnneB1F.asm (renamed from data/mapObjects/SSAnneB1F.asm)0
-rwxr-xr-xdata/maps/objects/SSAnneB1FRooms.asm (renamed from data/mapObjects/SSAnneB1FRooms.asm)0
-rwxr-xr-xdata/maps/objects/SSAnneBow.asm (renamed from data/mapObjects/SSAnneBow.asm)0
-rwxr-xr-xdata/maps/objects/SSAnneCaptainsRoom.asm (renamed from data/mapObjects/SSAnneCaptainsRoom.asm)0
-rwxr-xr-xdata/maps/objects/SSAnneKitchen.asm (renamed from data/mapObjects/SSAnneKitchen.asm)0
-rwxr-xr-xdata/maps/objects/SafariZoneCenter.asm (renamed from data/mapObjects/SafariZoneCenter.asm)0
-rwxr-xr-xdata/maps/objects/SafariZoneCenterRestHouse.asm (renamed from data/mapObjects/SafariZoneCenterRestHouse.asm)0
-rwxr-xr-xdata/maps/objects/SafariZoneEast.asm (renamed from data/mapObjects/SafariZoneEast.asm)0
-rwxr-xr-xdata/maps/objects/SafariZoneEastRestHouse.asm (renamed from data/mapObjects/SafariZoneEastRestHouse.asm)0
-rwxr-xr-xdata/maps/objects/SafariZoneGate.asm (renamed from data/mapObjects/SafariZoneGate.asm)0
-rwxr-xr-xdata/maps/objects/SafariZoneNorth.asm (renamed from data/mapObjects/SafariZoneNorth.asm)0
-rwxr-xr-xdata/maps/objects/SafariZoneNorthRestHouse.asm (renamed from data/mapObjects/SafariZoneNorthRestHouse.asm)0
-rwxr-xr-xdata/maps/objects/SafariZoneSecretHouse.asm (renamed from data/mapObjects/SafariZoneSecretHouse.asm)0
-rwxr-xr-xdata/maps/objects/SafariZoneWest.asm (renamed from data/mapObjects/SafariZoneWest.asm)0
-rwxr-xr-xdata/maps/objects/SafariZoneWestRestHouse.asm (renamed from data/mapObjects/SafariZoneWestRestHouse.asm)0
-rwxr-xr-xdata/maps/objects/SaffronCity.asm (renamed from data/mapObjects/SaffronCity.asm)0
-rwxr-xr-xdata/maps/objects/SaffronGym.asm (renamed from data/mapObjects/SaffronGym.asm)0
-rwxr-xr-xdata/maps/objects/SaffronMart.asm (renamed from data/mapObjects/SaffronMart.asm)0
-rwxr-xr-xdata/maps/objects/SaffronPidgeyHouse.asm (renamed from data/mapObjects/SaffronPidgeyHouse.asm)0
-rwxr-xr-xdata/maps/objects/SaffronPokecenter.asm (renamed from data/mapObjects/SaffronPokecenter.asm)0
-rwxr-xr-xdata/maps/objects/SeafoamIslands1F.asm (renamed from data/mapObjects/SeafoamIslands1F.asm)0
-rwxr-xr-xdata/maps/objects/SeafoamIslandsB1F.asm (renamed from data/mapObjects/SeafoamIslandsB1F.asm)0
-rwxr-xr-xdata/maps/objects/SeafoamIslandsB2F.asm (renamed from data/mapObjects/SeafoamIslandsB2F.asm)0
-rwxr-xr-xdata/maps/objects/SeafoamIslandsB3F.asm (renamed from data/mapObjects/SeafoamIslandsB3F.asm)0
-rwxr-xr-xdata/maps/objects/SeafoamIslandsB4F.asm (renamed from data/mapObjects/SeafoamIslandsB4F.asm)0
-rwxr-xr-xdata/maps/objects/SilphCo10F.asm (renamed from data/mapObjects/SilphCo10F.asm)0
-rwxr-xr-xdata/maps/objects/SilphCo11F.asm (renamed from data/mapObjects/SilphCo11F.asm)0
-rwxr-xr-xdata/maps/objects/SilphCo1F.asm (renamed from data/mapObjects/SilphCo1F.asm)0
-rwxr-xr-xdata/maps/objects/SilphCo2F.asm (renamed from data/mapObjects/SilphCo2F.asm)0
-rwxr-xr-xdata/maps/objects/SilphCo3F.asm (renamed from data/mapObjects/SilphCo3F.asm)0
-rwxr-xr-xdata/maps/objects/SilphCo4F.asm (renamed from data/mapObjects/SilphCo4F.asm)0
-rwxr-xr-xdata/maps/objects/SilphCo5F.asm (renamed from data/mapObjects/SilphCo5F.asm)0
-rwxr-xr-xdata/maps/objects/SilphCo6F.asm (renamed from data/mapObjects/SilphCo6F.asm)0
-rwxr-xr-xdata/maps/objects/SilphCo7F.asm (renamed from data/mapObjects/SilphCo7F.asm)0
-rwxr-xr-xdata/maps/objects/SilphCo8F.asm (renamed from data/mapObjects/SilphCo8F.asm)0
-rwxr-xr-xdata/maps/objects/SilphCo9F.asm (renamed from data/mapObjects/SilphCo9F.asm)0
-rwxr-xr-xdata/maps/objects/SilphCoElevator.asm (renamed from data/mapObjects/SilphCoElevator.asm)0
-rwxr-xr-xdata/maps/objects/TradeCenter.asm (renamed from data/mapObjects/TradeCenter.asm)0
-rwxr-xr-xdata/maps/objects/UndergroundPathNorthSouth.asm (renamed from data/mapObjects/UndergroundPathNorthSouth.asm)0
-rwxr-xr-xdata/maps/objects/UndergroundPathRoute5.asm (renamed from data/mapObjects/UndergroundPathRoute5.asm)0
-rwxr-xr-xdata/maps/objects/UndergroundPathRoute6.asm (renamed from data/mapObjects/UndergroundPathRoute6.asm)0
-rwxr-xr-xdata/maps/objects/UndergroundPathRoute7.asm (renamed from data/mapObjects/UndergroundPathRoute7.asm)0
-rwxr-xr-xdata/maps/objects/UndergroundPathRoute7Copy.asm (renamed from data/mapObjects/UndergroundPathRoute7Copy.asm)0
-rwxr-xr-xdata/maps/objects/UndergroundPathRoute8.asm (renamed from data/mapObjects/UndergroundPathRoute8.asm)0
-rwxr-xr-xdata/maps/objects/UndergroundPathWestEast.asm (renamed from data/mapObjects/UndergroundPathWestEast.asm)0
-rwxr-xr-xdata/maps/objects/VermilionCity.asm (renamed from data/mapObjects/VermilionCity.asm)0
-rwxr-xr-xdata/maps/objects/VermilionDock.asm (renamed from data/mapObjects/VermilionDock.asm)0
-rwxr-xr-xdata/maps/objects/VermilionGym.asm (renamed from data/mapObjects/VermilionGym.asm)0
-rwxr-xr-xdata/maps/objects/VermilionMart.asm (renamed from data/mapObjects/VermilionMart.asm)0
-rwxr-xr-xdata/maps/objects/VermilionOldRodHouse.asm (renamed from data/mapObjects/VermilionOldRodHouse.asm)0
-rwxr-xr-xdata/maps/objects/VermilionPidgeyHouse.asm (renamed from data/mapObjects/VermilionPidgeyHouse.asm)0
-rwxr-xr-xdata/maps/objects/VermilionPokecenter.asm (renamed from data/mapObjects/VermilionPokecenter.asm)0
-rwxr-xr-xdata/maps/objects/VermilionTradeHouse.asm (renamed from data/mapObjects/VermilionTradeHouse.asm)0
-rwxr-xr-xdata/maps/objects/VictoryRoad1F.asm (renamed from data/mapObjects/VictoryRoad1F.asm)0
-rwxr-xr-xdata/maps/objects/VictoryRoad2F.asm (renamed from data/mapObjects/VictoryRoad2F.asm)0
-rwxr-xr-xdata/maps/objects/VictoryRoad3F.asm (renamed from data/mapObjects/VictoryRoad3F.asm)0
-rwxr-xr-xdata/maps/objects/ViridianCity.asm (renamed from data/mapObjects/ViridianCity.asm)0
-rwxr-xr-xdata/maps/objects/ViridianForest.asm (renamed from data/mapObjects/ViridianForest.asm)0
-rwxr-xr-xdata/maps/objects/ViridianForestNorthGate.asm (renamed from data/mapObjects/ViridianForestNorthGate.asm)0
-rwxr-xr-xdata/maps/objects/ViridianForestSouthGate.asm (renamed from data/mapObjects/ViridianForestSouthGate.asm)0
-rwxr-xr-xdata/maps/objects/ViridianGym.asm (renamed from data/mapObjects/ViridianGym.asm)0
-rwxr-xr-xdata/maps/objects/ViridianMart.asm (renamed from data/mapObjects/ViridianMart.asm)0
-rwxr-xr-xdata/maps/objects/ViridianNicknameHouse.asm (renamed from data/mapObjects/ViridianNicknameHouse.asm)0
-rwxr-xr-xdata/maps/objects/ViridianPokecenter.asm (renamed from data/mapObjects/ViridianPokecenter.asm)0
-rwxr-xr-xdata/maps/objects/ViridianSchoolHouse.asm (renamed from data/mapObjects/ViridianSchoolHouse.asm)0
-rwxr-xr-xdata/maps/objects/WardensHouse.asm (renamed from data/mapObjects/WardensHouse.asm)0
-rw-r--r--data/maps/rest_house_maps.asm (renamed from data/rest_house_maps.asm)0
-rwxr-xr-xdata/maps/songs.asm (renamed from data/map_songs.asm)0
-rwxr-xr-xdata/maps/special_warps.asm (renamed from data/special_warps.asm)0
-rwxr-xr-xdata/maps/sprite_sets.asm190
-rwxr-xr-xdata/maps/town_map_entries.asm (renamed from data/town_map_entries.asm)0
-rwxr-xr-xdata/maps/town_map_order.asm (renamed from data/town_map_order.asm)0
-rw-r--r--data/moves/animation_special_effect_pointers.asm (renamed from data/move_animation_pointers.asm)0
-rw-r--r--data/moves/animation_special_effects.asm (renamed from data/move_animation_special_effects.asm)0
-rwxr-xr-xdata/moves/animations.asm (renamed from data/animations.asm)0
-rw-r--r--data/moves/effects_pointers.asm87
-rw-r--r--data/moves/grammar.asm (renamed from data/move_grammar.asm)0
-rw-r--r--data/moves/hm_moves.asm10
-rwxr-xr-xdata/moves/moves.asm (renamed from data/moves.asm)0
-rw-r--r--data/moves/names.asm (renamed from text/move_names.asm)0
-rw-r--r--data/moves/sfx.asm (renamed from data/move_sfx.asm)0
-rwxr-xr-xdata/moves/tmhm_moves.asm (renamed from data/tms.asm)0
-rw-r--r--data/player_names.asm (renamed from text/player_names.asm)0
-rw-r--r--data/player_names_list.asm (renamed from text/player_names_list.asm)0
-rwxr-xr-xdata/pokemon/base_stats.asm153
-rw-r--r--data/pokemon/base_stats/abra.asm (renamed from data/baseStats/abra.asm)0
-rw-r--r--data/pokemon/base_stats/aerodactyl.asm (renamed from data/baseStats/aerodactyl.asm)0
-rw-r--r--data/pokemon/base_stats/alakazam.asm (renamed from data/baseStats/alakazam.asm)0
-rw-r--r--data/pokemon/base_stats/arbok.asm (renamed from data/baseStats/arbok.asm)0
-rw-r--r--data/pokemon/base_stats/arcanine.asm (renamed from data/baseStats/arcanine.asm)0
-rw-r--r--data/pokemon/base_stats/articuno.asm (renamed from data/baseStats/articuno.asm)0
-rw-r--r--data/pokemon/base_stats/beedrill.asm (renamed from data/baseStats/beedrill.asm)0
-rw-r--r--data/pokemon/base_stats/bellsprout.asm (renamed from data/baseStats/bellsprout.asm)0
-rw-r--r--data/pokemon/base_stats/blastoise.asm (renamed from data/baseStats/blastoise.asm)0
-rw-r--r--data/pokemon/base_stats/bulbasaur.asm (renamed from data/baseStats/bulbasaur.asm)0
-rw-r--r--data/pokemon/base_stats/butterfree.asm (renamed from data/baseStats/butterfree.asm)0
-rw-r--r--data/pokemon/base_stats/caterpie.asm (renamed from data/baseStats/caterpie.asm)0
-rw-r--r--data/pokemon/base_stats/chansey.asm (renamed from data/baseStats/chansey.asm)0
-rw-r--r--data/pokemon/base_stats/charizard.asm (renamed from data/baseStats/charizard.asm)0
-rw-r--r--data/pokemon/base_stats/charmander.asm (renamed from data/baseStats/charmander.asm)0
-rw-r--r--data/pokemon/base_stats/charmeleon.asm (renamed from data/baseStats/charmeleon.asm)0
-rw-r--r--data/pokemon/base_stats/clefable.asm (renamed from data/baseStats/clefable.asm)0
-rw-r--r--data/pokemon/base_stats/clefairy.asm (renamed from data/baseStats/clefairy.asm)0
-rw-r--r--data/pokemon/base_stats/cloyster.asm (renamed from data/baseStats/cloyster.asm)0
-rw-r--r--data/pokemon/base_stats/cubone.asm (renamed from data/baseStats/cubone.asm)0
-rw-r--r--data/pokemon/base_stats/dewgong.asm (renamed from data/baseStats/dewgong.asm)0
-rw-r--r--data/pokemon/base_stats/diglett.asm (renamed from data/baseStats/diglett.asm)0
-rw-r--r--data/pokemon/base_stats/ditto.asm (renamed from data/baseStats/ditto.asm)0
-rw-r--r--data/pokemon/base_stats/dodrio.asm (renamed from data/baseStats/dodrio.asm)0
-rw-r--r--data/pokemon/base_stats/doduo.asm (renamed from data/baseStats/doduo.asm)0
-rw-r--r--data/pokemon/base_stats/dragonair.asm (renamed from data/baseStats/dragonair.asm)0
-rw-r--r--data/pokemon/base_stats/dragonite.asm (renamed from data/baseStats/dragonite.asm)0
-rw-r--r--data/pokemon/base_stats/dratini.asm (renamed from data/baseStats/dratini.asm)0
-rw-r--r--data/pokemon/base_stats/drowzee.asm (renamed from data/baseStats/drowzee.asm)0
-rw-r--r--data/pokemon/base_stats/dugtrio.asm (renamed from data/baseStats/dugtrio.asm)0
-rw-r--r--data/pokemon/base_stats/eevee.asm (renamed from data/baseStats/eevee.asm)0
-rw-r--r--data/pokemon/base_stats/ekans.asm (renamed from data/baseStats/ekans.asm)0
-rw-r--r--data/pokemon/base_stats/electabuzz.asm (renamed from data/baseStats/electabuzz.asm)0
-rw-r--r--data/pokemon/base_stats/electrode.asm (renamed from data/baseStats/electrode.asm)0
-rw-r--r--data/pokemon/base_stats/exeggcute.asm (renamed from data/baseStats/exeggcute.asm)0
-rw-r--r--data/pokemon/base_stats/exeggutor.asm (renamed from data/baseStats/exeggutor.asm)0
-rw-r--r--data/pokemon/base_stats/farfetchd.asm (renamed from data/baseStats/farfetchd.asm)0
-rw-r--r--data/pokemon/base_stats/fearow.asm (renamed from data/baseStats/fearow.asm)0
-rw-r--r--data/pokemon/base_stats/flareon.asm (renamed from data/baseStats/flareon.asm)0
-rw-r--r--data/pokemon/base_stats/gastly.asm (renamed from data/baseStats/gastly.asm)0
-rw-r--r--data/pokemon/base_stats/gengar.asm (renamed from data/baseStats/gengar.asm)0
-rw-r--r--data/pokemon/base_stats/geodude.asm (renamed from data/baseStats/geodude.asm)0
-rw-r--r--data/pokemon/base_stats/gloom.asm (renamed from data/baseStats/gloom.asm)0
-rw-r--r--data/pokemon/base_stats/golbat.asm (renamed from data/baseStats/golbat.asm)0
-rw-r--r--data/pokemon/base_stats/goldeen.asm (renamed from data/baseStats/goldeen.asm)0
-rw-r--r--data/pokemon/base_stats/golduck.asm (renamed from data/baseStats/golduck.asm)0
-rw-r--r--data/pokemon/base_stats/golem.asm (renamed from data/baseStats/golem.asm)0
-rw-r--r--data/pokemon/base_stats/graveler.asm (renamed from data/baseStats/graveler.asm)0
-rw-r--r--data/pokemon/base_stats/grimer.asm (renamed from data/baseStats/grimer.asm)0
-rw-r--r--data/pokemon/base_stats/growlithe.asm (renamed from data/baseStats/growlithe.asm)0
-rw-r--r--data/pokemon/base_stats/gyarados.asm (renamed from data/baseStats/gyarados.asm)0
-rw-r--r--data/pokemon/base_stats/haunter.asm (renamed from data/baseStats/haunter.asm)0
-rw-r--r--data/pokemon/base_stats/hitmonchan.asm (renamed from data/baseStats/hitmonchan.asm)0
-rw-r--r--data/pokemon/base_stats/hitmonlee.asm (renamed from data/baseStats/hitmonlee.asm)0
-rw-r--r--data/pokemon/base_stats/horsea.asm (renamed from data/baseStats/horsea.asm)0
-rw-r--r--data/pokemon/base_stats/hypno.asm (renamed from data/baseStats/hypno.asm)0
-rw-r--r--data/pokemon/base_stats/ivysaur.asm (renamed from data/baseStats/ivysaur.asm)0
-rw-r--r--data/pokemon/base_stats/jigglypuff.asm (renamed from data/baseStats/jigglypuff.asm)0
-rw-r--r--data/pokemon/base_stats/jolteon.asm (renamed from data/baseStats/jolteon.asm)0
-rw-r--r--data/pokemon/base_stats/jynx.asm (renamed from data/baseStats/jynx.asm)0
-rw-r--r--data/pokemon/base_stats/kabuto.asm (renamed from data/baseStats/kabuto.asm)0
-rw-r--r--data/pokemon/base_stats/kabutops.asm (renamed from data/baseStats/kabutops.asm)0
-rw-r--r--data/pokemon/base_stats/kadabra.asm (renamed from data/baseStats/kadabra.asm)0
-rw-r--r--data/pokemon/base_stats/kakuna.asm (renamed from data/baseStats/kakuna.asm)0
-rw-r--r--data/pokemon/base_stats/kangaskhan.asm (renamed from data/baseStats/kangaskhan.asm)0
-rw-r--r--data/pokemon/base_stats/kingler.asm (renamed from data/baseStats/kingler.asm)0
-rw-r--r--data/pokemon/base_stats/koffing.asm (renamed from data/baseStats/koffing.asm)0
-rw-r--r--data/pokemon/base_stats/krabby.asm (renamed from data/baseStats/krabby.asm)0
-rw-r--r--data/pokemon/base_stats/lapras.asm (renamed from data/baseStats/lapras.asm)0
-rw-r--r--data/pokemon/base_stats/lickitung.asm (renamed from data/baseStats/lickitung.asm)0
-rw-r--r--data/pokemon/base_stats/machamp.asm (renamed from data/baseStats/machamp.asm)0
-rw-r--r--data/pokemon/base_stats/machoke.asm (renamed from data/baseStats/machoke.asm)0
-rw-r--r--data/pokemon/base_stats/machop.asm (renamed from data/baseStats/machop.asm)0
-rw-r--r--data/pokemon/base_stats/magikarp.asm (renamed from data/baseStats/magikarp.asm)0
-rw-r--r--data/pokemon/base_stats/magmar.asm (renamed from data/baseStats/magmar.asm)0
-rw-r--r--data/pokemon/base_stats/magnemite.asm (renamed from data/baseStats/magnemite.asm)0
-rw-r--r--data/pokemon/base_stats/magneton.asm (renamed from data/baseStats/magneton.asm)0
-rw-r--r--data/pokemon/base_stats/mankey.asm (renamed from data/baseStats/mankey.asm)0
-rw-r--r--data/pokemon/base_stats/marowak.asm (renamed from data/baseStats/marowak.asm)0
-rw-r--r--data/pokemon/base_stats/meowth.asm (renamed from data/baseStats/meowth.asm)0
-rw-r--r--data/pokemon/base_stats/metapod.asm (renamed from data/baseStats/metapod.asm)0
-rw-r--r--data/pokemon/base_stats/mew.asm (renamed from data/baseStats/mew.asm)0
-rw-r--r--data/pokemon/base_stats/mewtwo.asm (renamed from data/baseStats/mewtwo.asm)0
-rw-r--r--data/pokemon/base_stats/moltres.asm (renamed from data/baseStats/moltres.asm)0
-rw-r--r--data/pokemon/base_stats/mrmime.asm (renamed from data/baseStats/mrmime.asm)0
-rw-r--r--data/pokemon/base_stats/muk.asm (renamed from data/baseStats/muk.asm)0
-rw-r--r--data/pokemon/base_stats/nidoking.asm (renamed from data/baseStats/nidoking.asm)0
-rw-r--r--data/pokemon/base_stats/nidoqueen.asm (renamed from data/baseStats/nidoqueen.asm)0
-rw-r--r--data/pokemon/base_stats/nidoranf.asm (renamed from data/baseStats/nidoranf.asm)0
-rw-r--r--data/pokemon/base_stats/nidoranm.asm (renamed from data/baseStats/nidoranm.asm)0
-rw-r--r--data/pokemon/base_stats/nidorina.asm (renamed from data/baseStats/nidorina.asm)0
-rw-r--r--data/pokemon/base_stats/nidorino.asm (renamed from data/baseStats/nidorino.asm)0
-rw-r--r--data/pokemon/base_stats/ninetales.asm (renamed from data/baseStats/ninetales.asm)0
-rw-r--r--data/pokemon/base_stats/oddish.asm (renamed from data/baseStats/oddish.asm)0
-rw-r--r--data/pokemon/base_stats/omanyte.asm (renamed from data/baseStats/omanyte.asm)0
-rw-r--r--data/pokemon/base_stats/omastar.asm (renamed from data/baseStats/omastar.asm)0
-rw-r--r--data/pokemon/base_stats/onix.asm (renamed from data/baseStats/onix.asm)0
-rw-r--r--data/pokemon/base_stats/paras.asm (renamed from data/baseStats/paras.asm)0
-rw-r--r--data/pokemon/base_stats/parasect.asm (renamed from data/baseStats/parasect.asm)0
-rw-r--r--data/pokemon/base_stats/persian.asm (renamed from data/baseStats/persian.asm)0
-rw-r--r--data/pokemon/base_stats/pidgeot.asm (renamed from data/baseStats/pidgeot.asm)0
-rw-r--r--data/pokemon/base_stats/pidgeotto.asm (renamed from data/baseStats/pidgeotto.asm)0
-rw-r--r--data/pokemon/base_stats/pidgey.asm (renamed from data/baseStats/pidgey.asm)0
-rw-r--r--data/pokemon/base_stats/pikachu.asm (renamed from data/baseStats/pikachu.asm)0
-rw-r--r--data/pokemon/base_stats/pinsir.asm (renamed from data/baseStats/pinsir.asm)0
-rw-r--r--data/pokemon/base_stats/poliwag.asm (renamed from data/baseStats/poliwag.asm)0
-rw-r--r--data/pokemon/base_stats/poliwhirl.asm (renamed from data/baseStats/poliwhirl.asm)0
-rw-r--r--data/pokemon/base_stats/poliwrath.asm (renamed from data/baseStats/poliwrath.asm)0
-rw-r--r--data/pokemon/base_stats/ponyta.asm (renamed from data/baseStats/ponyta.asm)0
-rw-r--r--data/pokemon/base_stats/porygon.asm (renamed from data/baseStats/porygon.asm)0
-rw-r--r--data/pokemon/base_stats/primeape.asm (renamed from data/baseStats/primeape.asm)0
-rw-r--r--data/pokemon/base_stats/psyduck.asm (renamed from data/baseStats/psyduck.asm)0
-rw-r--r--data/pokemon/base_stats/raichu.asm (renamed from data/baseStats/raichu.asm)0
-rw-r--r--data/pokemon/base_stats/rapidash.asm (renamed from data/baseStats/rapidash.asm)0
-rw-r--r--data/pokemon/base_stats/raticate.asm (renamed from data/baseStats/raticate.asm)0
-rw-r--r--data/pokemon/base_stats/rattata.asm (renamed from data/baseStats/rattata.asm)0
-rw-r--r--data/pokemon/base_stats/rhydon.asm (renamed from data/baseStats/rhydon.asm)0
-rw-r--r--data/pokemon/base_stats/rhyhorn.asm (renamed from data/baseStats/rhyhorn.asm)0
-rw-r--r--data/pokemon/base_stats/sandshrew.asm (renamed from data/baseStats/sandshrew.asm)0
-rw-r--r--data/pokemon/base_stats/sandslash.asm (renamed from data/baseStats/sandslash.asm)0
-rw-r--r--data/pokemon/base_stats/scyther.asm (renamed from data/baseStats/scyther.asm)0
-rw-r--r--data/pokemon/base_stats/seadra.asm (renamed from data/baseStats/seadra.asm)0
-rw-r--r--data/pokemon/base_stats/seaking.asm (renamed from data/baseStats/seaking.asm)0
-rw-r--r--data/pokemon/base_stats/seel.asm (renamed from data/baseStats/seel.asm)0
-rw-r--r--data/pokemon/base_stats/shellder.asm (renamed from data/baseStats/shellder.asm)0
-rw-r--r--data/pokemon/base_stats/slowbro.asm (renamed from data/baseStats/slowbro.asm)0
-rw-r--r--data/pokemon/base_stats/slowpoke.asm (renamed from data/baseStats/slowpoke.asm)0
-rw-r--r--data/pokemon/base_stats/snorlax.asm (renamed from data/baseStats/snorlax.asm)0
-rw-r--r--data/pokemon/base_stats/spearow.asm (renamed from data/baseStats/spearow.asm)0
-rw-r--r--data/pokemon/base_stats/squirtle.asm (renamed from data/baseStats/squirtle.asm)0
-rw-r--r--data/pokemon/base_stats/starmie.asm (renamed from data/baseStats/starmie.asm)0
-rw-r--r--data/pokemon/base_stats/staryu.asm (renamed from data/baseStats/staryu.asm)0
-rw-r--r--data/pokemon/base_stats/tangela.asm (renamed from data/baseStats/tangela.asm)0
-rw-r--r--data/pokemon/base_stats/tauros.asm (renamed from data/baseStats/tauros.asm)0
-rw-r--r--data/pokemon/base_stats/tentacool.asm (renamed from data/baseStats/tentacool.asm)0
-rw-r--r--data/pokemon/base_stats/tentacruel.asm (renamed from data/baseStats/tentacruel.asm)0
-rw-r--r--data/pokemon/base_stats/vaporeon.asm (renamed from data/baseStats/vaporeon.asm)0
-rw-r--r--data/pokemon/base_stats/venomoth.asm (renamed from data/baseStats/venomoth.asm)0
-rw-r--r--data/pokemon/base_stats/venonat.asm (renamed from data/baseStats/venonat.asm)0
-rw-r--r--data/pokemon/base_stats/venusaur.asm (renamed from data/baseStats/venusaur.asm)0
-rw-r--r--data/pokemon/base_stats/victreebel.asm (renamed from data/baseStats/victreebel.asm)0
-rw-r--r--data/pokemon/base_stats/vileplume.asm (renamed from data/baseStats/vileplume.asm)0
-rw-r--r--data/pokemon/base_stats/voltorb.asm (renamed from data/baseStats/voltorb.asm)0
-rw-r--r--data/pokemon/base_stats/vulpix.asm (renamed from data/baseStats/vulpix.asm)0
-rw-r--r--data/pokemon/base_stats/wartortle.asm (renamed from data/baseStats/wartortle.asm)0
-rw-r--r--data/pokemon/base_stats/weedle.asm (renamed from data/baseStats/weedle.asm)0
-rw-r--r--data/pokemon/base_stats/weepinbell.asm (renamed from data/baseStats/weepinbell.asm)0
-rw-r--r--data/pokemon/base_stats/weezing.asm (renamed from data/baseStats/weezing.asm)0
-rw-r--r--data/pokemon/base_stats/wigglytuff.asm (renamed from data/baseStats/wigglytuff.asm)0
-rw-r--r--data/pokemon/base_stats/zapdos.asm (renamed from data/baseStats/zapdos.asm)0
-rw-r--r--data/pokemon/base_stats/zubat.asm (renamed from data/baseStats/zubat.asm)0
-rwxr-xr-xdata/pokemon/cries.asm (renamed from data/cries.asm)0
-rwxr-xr-xdata/pokemon/dex_entries.asm (renamed from data/pokedex_entries.asm)0
-rwxr-xr-xdata/pokemon/dex_order.asm (renamed from data/pokedex_order.asm)0
-rw-r--r--data/pokemon/dex_text.asm (renamed from text/pokedex.asm)0
-rwxr-xr-xdata/pokemon/evos_moves.asm2134
-rwxr-xr-xdata/pokemon/menu_icons.asm (renamed from data/mon_party_sprites.asm)0
-rw-r--r--data/pokemon/mew.asm14
-rwxr-xr-xdata/pokemon/names.asm (renamed from text/monster_names.asm)0
-rwxr-xr-xdata/pokemon/palettes.asm (renamed from data/mon_palettes.asm)0
-rwxr-xr-xdata/pokemon/title_mons.asm (renamed from data/title_mons.asm)0
-rw-r--r--data/predef_pointers.asm6
-rwxr-xr-xdata/sgb/sgb_border.asm (renamed from data/sgb_border.asm)0
-rwxr-xr-xdata/sgb/sgb_packets.asm (renamed from data/sgb_packets.asm)0
-rwxr-xr-xdata/sgb/sgb_palettes.asm (renamed from data/super_palettes.asm)0
-rwxr-xr-xdata/sprite_sets.asm551
-rw-r--r--data/sprites/facings.asm (renamed from data/facing.asm)0
-rw-r--r--data/sprites/sprites.asm360
-rw-r--r--data/text/alphabets.asm (renamed from text/alphabets.asm)0
-rw-r--r--data/text/dakutens.asm (renamed from text/dakutens.asm)0
-rw-r--r--data/text/text_1.asm145
-rw-r--r--data/text/text_2.asm1753
-rw-r--r--data/text/text_3.asm324
-rw-r--r--data/text/text_4.asm217
-rw-r--r--data/text/text_5.asm102
-rw-r--r--data/text/text_6.asm228
-rw-r--r--data/text/text_7.asm196
-rw-r--r--data/text/unused_names.asm20
-rw-r--r--data/text_predef_pointers.asm71
-rwxr-xr-xdata/tileset_headers.asm25
-rwxr-xr-xdata/tilesets/bike_riding_tilesets.asm (renamed from data/bike_riding_tilesets.asm)0
-rw-r--r--data/tilesets/bookshelf_tile_ids.asm (renamed from data/bookshelf_tile_ids.asm)0
-rw-r--r--data/tilesets/collision_tile_ids.asm (renamed from data/collision_tile_ids.asm)0
-rw-r--r--data/tilesets/cut_tree_blocks.asm (renamed from data/cut_tree_blocks.asm)0
-rw-r--r--data/tilesets/door_tile_ids.asm (renamed from data/door_tile_ids.asm)0
-rwxr-xr-xdata/tilesets/dungeon_tilesets.asm (renamed from data/dungeon_tilesets.asm)0
-rw-r--r--data/tilesets/ledge_tiles.asm (renamed from data/ledge_tiles.asm)0
-rwxr-xr-xdata/tilesets/tileset_headers.asm33
-rw-r--r--data/tilesets/warp_carpet_tile_ids.asm (renamed from data/warp_carpet_tile_ids.asm)0
-rw-r--r--data/tilesets/warp_pad_hole_tile_ids.asm (renamed from data/warp_pad_hole_tile_ids.asm)0
-rwxr-xr-xdata/tilesets/warp_tile_ids.asm (renamed from data/warp_tile_ids.asm)0
-rw-r--r--data/tilesets/water_tilesets.asm (renamed from data/water_tilesets.asm)0
-rw-r--r--data/trainer_ai_pointers.asm51
-rw-r--r--data/trainers/ai_pointers.asm52
-rwxr-xr-xdata/trainers/encounter_types.asm (renamed from data/trainer_types.asm)0
-rw-r--r--data/trainers/move_choices.asm (renamed from data/trainer_move_choices.asm)0
-rw-r--r--data/trainers/name_pointers.asm (renamed from text/trainer_name_pointers.asm)0
-rwxr-xr-xdata/trainers/names.asm (renamed from text/trainer_names.asm)0
-rwxr-xr-xdata/trainers/parties.asm (renamed from data/trainer_parties.asm)0
-rwxr-xr-xdata/trainers/pic_pointers_money.asm (renamed from data/trainer_pic_money_pointers.asm)0
-rwxr-xr-xdata/trainers/special_moves.asm (renamed from data/trainer_moves.asm)0
-rwxr-xr-xdata/types/names.asm (renamed from text/type_names.asm)0
-rwxr-xr-xdata/types/type_matchups.asm (renamed from data/type_effects.asm)0
-rwxr-xr-xdata/wild/good_rod.asm (renamed from data/good_rod.asm)0
-rwxr-xr-xdata/wild/grass_water.asm321
-rw-r--r--data/wild/maps/CeruleanCave1F.asm (renamed from data/wildPokemon/ceruleancave1.asm)0
-rw-r--r--data/wild/maps/CeruleanCave2F.asm (renamed from data/wildPokemon/ceruleancave2.asm)0
-rw-r--r--data/wild/maps/CeruleanCaveB1F.asm (renamed from data/wildPokemon/ceruleancaveb1.asm)0
-rwxr-xr-xdata/wild/maps/DiglettsCave.asm (renamed from data/wildPokemon/diglettscave.asm)0
-rwxr-xr-xdata/wild/maps/MtMoon1F.asm (renamed from data/wildPokemon/mtmoon1.asm)0
-rwxr-xr-xdata/wild/maps/MtMoonB1F.asm (renamed from data/wildPokemon/mtmoonb1.asm)0
-rwxr-xr-xdata/wild/maps/MtMoonB2F.asm (renamed from data/wildPokemon/mtmoonb2.asm)0
-rwxr-xr-xdata/wild/maps/PokemonMansion1F.asm (renamed from data/wildPokemon/mansion1.asm)0
-rwxr-xr-xdata/wild/maps/PokemonMansion2F.asm (renamed from data/wildPokemon/mansion2.asm)0
-rwxr-xr-xdata/wild/maps/PokemonMansion3F.asm (renamed from data/wildPokemon/mansion3.asm)0
-rwxr-xr-xdata/wild/maps/PokemonMansionB1F.asm (renamed from data/wildPokemon/mansionb1.asm)0
-rwxr-xr-xdata/wild/maps/PokemonTower1F.asm (renamed from data/wildPokemon/pokemontower1.asm)0
-rwxr-xr-xdata/wild/maps/PokemonTower2F.asm (renamed from data/wildPokemon/pokemontower2.asm)0
-rwxr-xr-xdata/wild/maps/PokemonTower3F.asm (renamed from data/wildPokemon/pokemontower3.asm)0
-rwxr-xr-xdata/wild/maps/PokemonTower4F.asm (renamed from data/wildPokemon/pokemontower4.asm)0
-rwxr-xr-xdata/wild/maps/PokemonTower5F.asm (renamed from data/wildPokemon/pokemontower5.asm)0
-rwxr-xr-xdata/wild/maps/PokemonTower6F.asm (renamed from data/wildPokemon/pokemontower6.asm)0
-rwxr-xr-xdata/wild/maps/PokemonTower7F.asm (renamed from data/wildPokemon/pokemontower7.asm)0
-rwxr-xr-xdata/wild/maps/PowerPlant.asm (renamed from data/wildPokemon/powerplant.asm)0
-rwxr-xr-xdata/wild/maps/RockTunnel1F.asm (renamed from data/wildPokemon/rocktunnel1.asm)0
-rwxr-xr-xdata/wild/maps/RockTunnelB1F.asm (renamed from data/wildPokemon/rocktunnel2.asm)0
-rwxr-xr-xdata/wild/maps/Route1.asm (renamed from data/wildPokemon/route1.asm)0
-rwxr-xr-xdata/wild/maps/Route10.asm (renamed from data/wildPokemon/route10.asm)0
-rwxr-xr-xdata/wild/maps/Route11.asm (renamed from data/wildPokemon/route11.asm)0
-rwxr-xr-xdata/wild/maps/Route12.asm (renamed from data/wildPokemon/route12.asm)0
-rwxr-xr-xdata/wild/maps/Route13.asm (renamed from data/wildPokemon/route13.asm)0
-rwxr-xr-xdata/wild/maps/Route14.asm (renamed from data/wildPokemon/route14.asm)0
-rwxr-xr-xdata/wild/maps/Route15.asm (renamed from data/wildPokemon/route15.asm)0
-rwxr-xr-xdata/wild/maps/Route16.asm (renamed from data/wildPokemon/route16.asm)0
-rwxr-xr-xdata/wild/maps/Route17.asm (renamed from data/wildPokemon/route17.asm)0
-rwxr-xr-xdata/wild/maps/Route18.asm (renamed from data/wildPokemon/route18.asm)0
-rwxr-xr-xdata/wild/maps/Route2.asm (renamed from data/wildPokemon/route2.asm)0
-rwxr-xr-xdata/wild/maps/Route21.asm (renamed from data/wildPokemon/route21.asm)0
-rwxr-xr-xdata/wild/maps/Route22.asm (renamed from data/wildPokemon/route22.asm)0
-rwxr-xr-xdata/wild/maps/Route23.asm (renamed from data/wildPokemon/route23.asm)0
-rwxr-xr-xdata/wild/maps/Route24.asm (renamed from data/wildPokemon/route24.asm)0
-rwxr-xr-xdata/wild/maps/Route25.asm (renamed from data/wildPokemon/route25.asm)0
-rwxr-xr-xdata/wild/maps/Route3.asm (renamed from data/wildPokemon/route3.asm)0
-rwxr-xr-xdata/wild/maps/Route4.asm (renamed from data/wildPokemon/route4.asm)0
-rwxr-xr-xdata/wild/maps/Route5.asm (renamed from data/wildPokemon/route5.asm)0
-rwxr-xr-xdata/wild/maps/Route6.asm (renamed from data/wildPokemon/route6.asm)0
-rwxr-xr-xdata/wild/maps/Route7.asm (renamed from data/wildPokemon/route7.asm)0
-rwxr-xr-xdata/wild/maps/Route8.asm (renamed from data/wildPokemon/route8.asm)0
-rwxr-xr-xdata/wild/maps/Route9.asm (renamed from data/wildPokemon/route9.asm)0
-rwxr-xr-xdata/wild/maps/SafariZoneCenter.asm (renamed from data/wildPokemon/safarizonecenter.asm)0
-rwxr-xr-xdata/wild/maps/SafariZoneEast.asm (renamed from data/wildPokemon/safarizone1.asm)0
-rwxr-xr-xdata/wild/maps/SafariZoneNorth.asm (renamed from data/wildPokemon/safarizone2.asm)0
-rwxr-xr-xdata/wild/maps/SafariZoneWest.asm (renamed from data/wildPokemon/safarizone3.asm)0
-rwxr-xr-xdata/wild/maps/SeaRoutes.asm (renamed from data/wildPokemon/waterpokemon.asm)0
-rwxr-xr-xdata/wild/maps/SeafoamIslands1F.asm (renamed from data/wildPokemon/seafoamisland1.asm)0
-rwxr-xr-xdata/wild/maps/SeafoamIslandsB1F.asm (renamed from data/wildPokemon/seafoamislandb1.asm)0
-rwxr-xr-xdata/wild/maps/SeafoamIslandsB2F.asm (renamed from data/wildPokemon/seafoamislandb2.asm)0
-rwxr-xr-xdata/wild/maps/SeafoamIslandsB3F.asm (renamed from data/wildPokemon/seafoamislandb3.asm)0
-rwxr-xr-xdata/wild/maps/SeafoamIslandsB4F.asm (renamed from data/wildPokemon/seafoamislandb4.asm)0
-rwxr-xr-xdata/wild/maps/VictoryRoad1F.asm (renamed from data/wildPokemon/victoryroad1.asm)0
-rwxr-xr-xdata/wild/maps/VictoryRoad2F.asm (renamed from data/wildPokemon/victoryroad2.asm)0
-rwxr-xr-xdata/wild/maps/VictoryRoad3F.asm (renamed from data/wildPokemon/victoryroad3.asm)0
-rwxr-xr-xdata/wild/maps/ViridianForest.asm (renamed from data/wildPokemon/viridianforest.asm)0
-rwxr-xr-xdata/wild/maps/nothing.asm (renamed from data/wildPokemon/nomons.asm)0
-rw-r--r--data/wild/probabilities.asm (renamed from data/wild_probabilities.asm)0
-rwxr-xr-xdata/wild/super_rod.asm (renamed from data/super_rod.asm)0
-rwxr-xr-xdata/wild_mons.asm321
-rwxr-xr-xengine/battle/animations.asm80
-rw-r--r--engine/battle/battle_transitions.asm20
-rw-r--r--engine/battle/common_text.asm22
-rwxr-xr-xengine/battle/core.asm358
-rw-r--r--engine/battle/effects.asm126
-rw-r--r--engine/battle/experience.asm32
-rw-r--r--engine/battle/ghost_marowak_anim.asm6
-rw-r--r--engine/battle/move_effects/conversion.asm2
-rw-r--r--engine/battle/move_effects/drain_hp.asm6
-rw-r--r--engine/battle/move_effects/focus_energy.asm2
-rw-r--r--engine/battle/move_effects/haze.asm2
-rw-r--r--engine/battle/move_effects/heal.asm6
-rw-r--r--engine/battle/move_effects/leech_seed.asm2
-rw-r--r--engine/battle/move_effects/mist.asm2
-rw-r--r--engine/battle/move_effects/one_hit_ko.asm2
-rw-r--r--engine/battle/move_effects/paralyze.asm2
-rw-r--r--engine/battle/move_effects/pay_day.asm24
-rw-r--r--engine/battle/move_effects/recoil.asm4
-rw-r--r--engine/battle/move_effects/reflect_light_screen.asm2
-rw-r--r--engine/battle/move_effects/substitute.asm2
-rw-r--r--engine/battle/move_effects/transform.asm8
-rw-r--r--engine/battle/print_type.asm2
-rw-r--r--engine/battle/save_trainer_name.asm2
-rw-r--r--engine/battle/scale_sprites.asm10
-rw-r--r--engine/battle/trainer_ai.asm24
-rw-r--r--engine/battle/unused_stats_functions.asm4
-rw-r--r--engine/battle/wild_encounters.asm2
-rw-r--r--engine/debug/test_battle.asm2
-rwxr-xr-xengine/events/cinnabar_lab.asm2
-rwxr-xr-xengine/events/diploma.asm4
-rwxr-xr-xengine/events/hidden_items.asm4
-rwxr-xr-xengine/events/hidden_object_functions14.asm100
-rwxr-xr-xengine/events/hidden_object_functions17.asm475
-rwxr-xr-xengine/events/hidden_object_functions18.asm198
-rwxr-xr-xengine/events/hidden_object_functions3.asm117
-rwxr-xr-xengine/events/hidden_object_functions7.asm467
-rw-r--r--engine/events/hidden_objects/bench_guys.asm124
-rw-r--r--engine/events/hidden_objects/bills_house_pc.asm134
-rw-r--r--engine/events/hidden_objects/blues_room.asm13
-rw-r--r--engine/events/hidden_objects/book_or_sculpture.asm21
-rw-r--r--engine/events/hidden_objects/bookshelves.asm39
-rw-r--r--engine/events/hidden_objects/cinnabar_gym_quiz.asm194
-rw-r--r--engine/events/hidden_objects/elevator.asm3
-rw-r--r--engine/events/hidden_objects/fighting_dojo.asm23
-rw-r--r--engine/events/hidden_objects/gym_statues.asm48
-rw-r--r--engine/events/hidden_objects/indigo_plateau_hq.asm10
-rw-r--r--engine/events/hidden_objects/indigo_plateau_statues.asm24
-rw-r--r--engine/events/hidden_objects/magazines.asm8
-rw-r--r--engine/events/hidden_objects/museum_fossils.asm52
-rw-r--r--engine/events/hidden_objects/new_bike.asm7
-rw-r--r--engine/events/hidden_objects/oaks_lab_email.asm10
-rw-r--r--engine/events/hidden_objects/oaks_lab_posters.asm29
-rw-r--r--engine/events/hidden_objects/pokecenter_pc.asm11
-rw-r--r--engine/events/hidden_objects/pokemon_stuff.asm3
-rw-r--r--engine/events/hidden_objects/reds_room.asm14
-rw-r--r--engine/events/hidden_objects/route_15_binoculars.asm14
-rw-r--r--engine/events/hidden_objects/safari_game.asm79
-rw-r--r--engine/events/hidden_objects/school_blackboard.asm222
-rw-r--r--engine/events/hidden_objects/school_notebooks.asm65
-rw-r--r--engine/events/hidden_objects/town_map.asm22
-rw-r--r--engine/events/hidden_objects/vermilion_gym_trash.asm169
-rwxr-xr-xengine/events/in_game_trades.asm2
-rw-r--r--engine/events/pick_up_item.asm4
-rwxr-xr-xengine/events/prize_menu.asm8
-rwxr-xr-xengine/events/saffron_guards.asm4
-rw-r--r--engine/events/set_blackout_map.asm2
-rwxr-xr-xengine/events/vending_machine.asm2
-rwxr-xr-xengine/gfx/hp_bar.asm16
-rwxr-xr-xengine/gfx/mon_icons.asm4
-rw-r--r--engine/gfx/oam_dma.asm4
-rwxr-xr-xengine/gfx/palettes.asm18
-rwxr-xr-xengine/gfx/screen_effects.asm12
-rwxr-xr-xengine/items/item_effects.asm112
-rwxr-xr-xengine/items/tm_prices.asm2
-rwxr-xr-xengine/items/tms.asm2
-rwxr-xr-xengine/items/town_map.asm6
-rwxr-xr-xengine/link/cable_club.asm16
-rwxr-xr-xengine/math/multiply_divide.asm158
-rw-r--r--engine/menus/display_text_id_init.asm6
-rwxr-xr-xengine/menus/main_menu.asm10
-rwxr-xr-xengine/menus/naming_screen.asm8
-rwxr-xr-xengine/menus/party_menu.asm14
-rwxr-xr-xengine/menus/pokedex.asm16
-rwxr-xr-xengine/menus/save.asm20
-rwxr-xr-xengine/menus/start_sub_menus.asm26
-rw-r--r--engine/menus/swap_items.asm8
-rwxr-xr-xengine/movie/credits.asm18
-rwxr-xr-xengine/movie/evolution.asm14
-rwxr-xr-xengine/movie/hall_of_fame.asm2
-rwxr-xr-xengine/movie/intro.asm4
-rwxr-xr-xengine/movie/oak_speech/oak_speech.asm24
-rwxr-xr-xengine/movie/oak_speech/oak_speech2.asm8
-rwxr-xr-xengine/movie/title.asm403
-rwxr-xr-xengine/movie/title2.asm (renamed from engine/movie/titlescreen2.asm)0
-rwxr-xr-xengine/movie/titlescreen.asm403
-rwxr-xr-xengine/movie/trade.asm36
-rwxr-xr-xengine/overworld/auto_movement.asm4
-rw-r--r--engine/overworld/clear_variables.asm2
-rwxr-xr-xengine/overworld/cut.asm2
-rwxr-xr-xengine/overworld/doors.asm2
-rwxr-xr-xengine/overworld/elevator.asm4
-rwxr-xr-xengine/overworld/healing_machine.asm4
-rwxr-xr-xengine/overworld/hidden_objects.asm16
-rwxr-xr-xengine/overworld/ledges.asm2
-rwxr-xr-xengine/overworld/map_sprites.asm7
-rw-r--r--engine/overworld/missable_objects.asm16
-rw-r--r--engine/overworld/movement.asm88
-rwxr-xr-xengine/overworld/player_animations.asm2
-rw-r--r--engine/overworld/player_state.asm38
-rw-r--r--engine/overworld/push_boulder.asm2
-rw-r--r--engine/overworld/special_warps.asm2
-rw-r--r--engine/overworld/sprite_collisions.asm52
-rw-r--r--engine/overworld/tilesets.asm6
-rwxr-xr-xengine/overworld/trainer_sight.asm28
-rwxr-xr-xengine/overworld/turn_sprite.asm6
-rw-r--r--engine/overworld/update_map.asm20
-rw-r--r--engine/overworld/wild_mons.asm8
-rw-r--r--engine/pokemon/add_mon.asm4
-rw-r--r--engine/pokemon/bills_pc.asm9
-rwxr-xr-xengine/pokemon/evos_moves.asm6
-rwxr-xr-xengine/pokemon/experience.asm50
-rwxr-xr-xengine/pokemon/learn_move.asm12
-rwxr-xr-xengine/pokemon/status_screen.asm10
-rwxr-xr-xengine/slots/game_corner_slots.asm2
-rwxr-xr-xengine/slots/slot_machine.asm4
-rw-r--r--gfx/fishing.asm4
-rw-r--r--gfx/font.asm31
-rw-r--r--gfx/pics.asm (renamed from pics.asm)0
-rw-r--r--gfx/player.asm3
-rw-r--r--gfx/sprites.asm (renamed from sprites.asm)0
-rw-r--r--gfx/tilesets.asm (renamed from tilesets.asm)0
-rw-r--r--gfx/trade.asm7
-rw-r--r--gfx/trainer_card.asm8
-rw-r--r--gfx/version.asm8
-rw-r--r--home.asm3169
-rw-r--r--home/audio.asm6
-rw-r--r--home/bankswitch.asm35
-rw-r--r--home/clear_sprites.asm21
-rw-r--r--home/copy.asm6
-rw-r--r--home/copy2.asm76
-rw-r--r--home/header.asm57
-rw-r--r--home/init.asm20
-rw-r--r--home/lcd.asm25
-rw-r--r--home/list_menu.asm526
-rw-r--r--home/move_mon.asm242
-rw-r--r--home/names.asm141
-rw-r--r--home/names2.asm93
-rw-r--r--home/overworld.asm50
-rw-r--r--home/overworld_text.asm31
-rw-r--r--home/pic.asm591
-rw-r--r--home/pics.asm196
-rw-r--r--home/pokemon.asm464
-rw-r--r--home/predef.asm8
-rw-r--r--home/predef_text.asm237
-rw-r--r--home/print_bcd.asm77
-rw-r--r--home/print_num.asm217
-rw-r--r--home/start.asm10
-rwxr-xr-xhome/start_menu.asm2
-rw-r--r--home/text.asm14
-rw-r--r--home/trainers.asm436
-rw-r--r--home/uncompress.asm591
-rw-r--r--home/vblank.asm22
-rw-r--r--home/vcopy.asm116
-rw-r--r--home/yes_no.asm40
-rw-r--r--hram.asm132
-rw-r--r--layout.link100
-rw-r--r--macros.asm16
-rwxr-xr-xmacros/asm_macros.asm192
-rwxr-xr-xmacros/audio_macros.asm214
-rwxr-xr-xmacros/code.asm9
-rw-r--r--macros/coords.asm65
-rwxr-xr-xmacros/data.asm62
-rwxr-xr-xmacros/data_macros.asm242
-rw-r--r--macros/enum.asm43
-rwxr-xr-xmacros/event_macros.asm441
-rw-r--r--macros/farcall.asm37
-rw-r--r--macros/predef.asm32
-rwxr-xr-xmacros/scripts/audio.asm186
-rwxr-xr-xmacros/scripts/events.asm471
-rw-r--r--macros/scripts/maps.asm184
-rwxr-xr-xmacros/scripts/text.asm78
-rwxr-xr-xmacros/text_macros.asm80
-rw-r--r--macros/wram.asm92
-rwxr-xr-xmain.asm129
-rw-r--r--maps.asm892
-rw-r--r--rgbdscheck.asm12
-rwxr-xr-xscripts/BikeShop.asm2
-rwxr-xr-xscripts/BillsHouse.asm12
-rwxr-xr-xscripts/CeladonGym.asm2
-rwxr-xr-xscripts/CeladonMart3F.asm2
-rwxr-xr-xscripts/CeruleanCaveB1F.asm2
-rwxr-xr-xscripts/CeruleanCity.asm16
-rwxr-xr-xscripts/CeruleanGym.asm2
-rwxr-xr-xscripts/ChampionsRoom.asm16
-rwxr-xr-xscripts/CinnabarGym.asm6
-rwxr-xr-xscripts/CopycatsHouse2F.asm2
-rwxr-xr-xscripts/FightingDojo.asm4
-rwxr-xr-xscripts/FuchsiaGym.asm2
-rwxr-xr-xscripts/GameCorner.asm6
-rwxr-xr-xscripts/HallOfFame.asm2
-rwxr-xr-xscripts/MtMoonB2F.asm6
-rwxr-xr-xscripts/OaksLab.asm66
-rwxr-xr-xscripts/PalletTown.asm10
-rwxr-xr-xscripts/PewterCity.asm28
-rwxr-xr-xscripts/PewterGym.asm2
-rwxr-xr-xscripts/PewterPokecenter.asm3
-rwxr-xr-xscripts/PokemonTower2F.asm8
-rwxr-xr-xscripts/PokemonTower7F.asm2
-rwxr-xr-xscripts/PowerPlant.asm2
-rwxr-xr-xscripts/RocketHideoutB4F.asm2
-rwxr-xr-xscripts/Route22.asm26
-rwxr-xr-xscripts/Route5Gate.asm4
-rwxr-xr-xscripts/Route6Gate.asm2
-rwxr-xr-xscripts/Route7Gate.asm2
-rwxr-xr-xscripts/Route8Gate.asm2
-rwxr-xr-xscripts/SSAnne2F.asm16
-rwxr-xr-xscripts/SSAnneCaptainsRoom.asm4
-rwxr-xr-xscripts/SaffronGym.asm2
-rwxr-xr-xscripts/SilphCo10F.asm2
-rwxr-xr-xscripts/SilphCo11F.asm16
-rwxr-xr-xscripts/SilphCo2F.asm8
-rwxr-xr-xscripts/SilphCo3F.asm2
-rwxr-xr-xscripts/SilphCo4F.asm8
-rwxr-xr-xscripts/SilphCo5F.asm2
-rwxr-xr-xscripts/SilphCo6F.asm2
-rwxr-xr-xscripts/SilphCo7F.asm20
-rwxr-xr-xscripts/SilphCo8F.asm8
-rwxr-xr-xscripts/SilphCo9F.asm8
-rwxr-xr-xscripts/TradeCenter.asm2
-rwxr-xr-xscripts/VermilionDock.asm8
-rwxr-xr-xscripts/VermilionGym.asm2
-rwxr-xr-xscripts/ViridianCity.asm32
-rwxr-xr-xscripts/ViridianGym.asm2
-rwxr-xr-xscripts/WardensHouse.asm4
-rw-r--r--text.asm3353
-rw-r--r--text/AgathasRoom.asm (renamed from text/maps/AgathasRoom.asm)0
-rw-r--r--text/BikeShop.asm (renamed from text/maps/BikeShop.asm)0
-rw-r--r--text/BillsHouse.asm (renamed from text/maps/BillsHouse.asm)0
-rw-r--r--text/BluesHouse.asm (renamed from text/maps/BluesHouse.asm)0
-rw-r--r--text/BrunosRoom.asm (renamed from text/maps/BrunosRoom.asm)0
-rw-r--r--text/CeladonChiefHouse.asm (renamed from text/maps/CeladonChiefHouse.asm)0
-rw-r--r--text/CeladonCity.asm (renamed from text/maps/CeladonCity.asm)0
-rw-r--r--text/CeladonDiner.asm (renamed from text/maps/CeladonDiner.asm)0
-rw-r--r--text/CeladonGym.asm (renamed from text/maps/CeladonGym.asm)0
-rw-r--r--text/CeladonHotel.asm (renamed from text/maps/CeladonHotel.asm)0
-rw-r--r--text/CeladonMansion1F.asm (renamed from text/maps/CeladonMansion1F.asm)0
-rw-r--r--text/CeladonMansion2F.asm (renamed from text/maps/CeladonMansion2F.asm)0
-rw-r--r--text/CeladonMansion3F.asm (renamed from text/maps/CeladonMansion3F.asm)0
-rw-r--r--text/CeladonMansionRoof.asm (renamed from text/maps/CeladonMansionRoof.asm)0
-rw-r--r--text/CeladonMansionRoofHouse.asm (renamed from text/maps/CeladonMansionRoofHouse.asm)0
-rw-r--r--text/CeladonMart1F.asm (renamed from text/maps/CeladonMart1F.asm)0
-rw-r--r--text/CeladonMart2F.asm (renamed from text/maps/CeladonMart2F.asm)0
-rw-r--r--text/CeladonMart3F.asm (renamed from text/maps/CeladonMart3F.asm)0
-rw-r--r--text/CeladonMart4F.asm (renamed from text/maps/CeladonMart4F.asm)0
-rw-r--r--text/CeladonMart5F.asm (renamed from text/maps/CeladonMart5F.asm)0
-rw-r--r--text/CeladonMartRoof.asm (renamed from text/maps/CeladonMartRoof.asm)0
-rw-r--r--text/CeladonPokecenter.asm (renamed from text/maps/CeladonPokecenter.asm)0
-rw-r--r--text/CeruleanBadgeHouse.asm (renamed from text/maps/CeruleanBadgeHouse.asm)0
-rw-r--r--text/CeruleanCaveB1F.asm (renamed from text/maps/CeruleanCaveB1F.asm)0
-rw-r--r--text/CeruleanCity.asm (renamed from text/maps/CeruleanCity.asm)0
-rw-r--r--text/CeruleanGym.asm (renamed from text/maps/CeruleanGym.asm)0
-rw-r--r--text/CeruleanMart.asm (renamed from text/maps/CeruleanMart.asm)0
-rw-r--r--text/CeruleanPokecenter.asm (renamed from text/maps/CeruleanPokecenter.asm)0
-rw-r--r--text/CeruleanTradeHouse.asm (renamed from text/maps/CeruleanTradeHouse.asm)0
-rw-r--r--text/CeruleanTrashedHouse.asm (renamed from text/maps/CeruleanTrashedHouse.asm)0
-rw-r--r--text/ChampionsRoom.asm (renamed from text/maps/ChampionsRoom.asm)0
-rw-r--r--text/CinnabarGym.asm (renamed from text/maps/CinnabarGym.asm)0
-rw-r--r--text/CinnabarIsland.asm (renamed from text/maps/CinnabarIsland.asm)0
-rw-r--r--text/CinnabarLab.asm (renamed from text/maps/CinnabarLab.asm)0
-rw-r--r--text/CinnabarLabFossilRoom.asm (renamed from text/maps/CinnabarLabFossilRoom.asm)0
-rw-r--r--text/CinnabarLabMetronomeRoom.asm (renamed from text/maps/CinnabarLabMetronomeRoom.asm)0
-rw-r--r--text/CinnabarLabTradeRoom.asm (renamed from text/maps/CinnabarLabTradeRoom.asm)0
-rw-r--r--text/CinnabarMart.asm (renamed from text/maps/CinnabarMart.asm)0
-rw-r--r--text/CinnabarPokecenter.asm (renamed from text/maps/CinnabarPokecenter.asm)0
-rw-r--r--text/CopycatsHouse1F.asm (renamed from text/maps/CopycatsHouse1F.asm)0
-rw-r--r--text/CopycatsHouse2F.asm (renamed from text/maps/CopycatsHouse2F.asm)0
-rw-r--r--text/Daycare.asm (renamed from text/maps/Daycare.asm)0
-rw-r--r--text/Daycare_2.asm (renamed from text/maps/Daycare_2.asm)0
-rw-r--r--text/DiglettsCaveRoute11.asm (renamed from text/maps/DiglettsCaveRoute11.asm)0
-rw-r--r--text/DiglettsCaveRoute2.asm (renamed from text/maps/DiglettsCaveRoute2.asm)0
-rw-r--r--text/FightingDojo.asm (renamed from text/maps/FightingDojo.asm)0
-rw-r--r--text/FuchsiaBillsGrandpasHouse.asm (renamed from text/maps/FuchsiaBillsGrandpasHouse.asm)0
-rw-r--r--text/FuchsiaCity.asm (renamed from text/maps/FuchsiaCity.asm)0
-rw-r--r--text/FuchsiaGoodRodHouse.asm (renamed from text/maps/FuchsiaGoodRodHouse.asm)0
-rw-r--r--text/FuchsiaGym.asm (renamed from text/maps/FuchsiaGym.asm)0
-rw-r--r--text/FuchsiaGym_2.asm (renamed from text/maps/FuchsiaGym_2.asm)0
-rw-r--r--text/FuchsiaMart.asm (renamed from text/maps/FuchsiaMart.asm)0
-rw-r--r--text/FuchsiaMeetingRoom.asm (renamed from text/maps/FuchsiaMeetingRoom.asm)0
-rw-r--r--text/FuchsiaPokecenter.asm (renamed from text/maps/FuchsiaPokecenter.asm)0
-rw-r--r--text/GameCorner.asm (renamed from text/maps/GameCorner.asm)0
-rw-r--r--text/GameCornerPrizeRoom.asm (renamed from text/maps/GameCornerPrizeRoom.asm)0
-rw-r--r--text/HallOfFame.asm (renamed from text/maps/HallOfFame.asm)0
-rw-r--r--text/IndigoPlateauLobby.asm (renamed from text/maps/IndigoPlateauLobby.asm)0
-rw-r--r--text/LancesRoom.asm (renamed from text/maps/LancesRoom.asm)0
-rw-r--r--text/LavenderCuboneHouse.asm (renamed from text/maps/LavenderCuboneHouse.asm)0
-rw-r--r--text/LavenderMart.asm (renamed from text/maps/LavenderMart.asm)0
-rw-r--r--text/LavenderPokecenter.asm (renamed from text/maps/LavenderPokecenter.asm)0
-rw-r--r--text/LavenderTown.asm (renamed from text/maps/LavenderTown.asm)0
-rw-r--r--text/LoreleisRoom.asm (renamed from text/maps/LoreleisRoom.asm)0
-rw-r--r--text/MrFujisHouse.asm (renamed from text/maps/MrFujisHouse.asm)0
-rw-r--r--text/MrPsychicsHouse.asm (renamed from text/maps/MrPsychicsHouse.asm)0
-rw-r--r--text/MtMoon1F.asm (renamed from text/maps/MtMoon1F.asm)0
-rw-r--r--text/MtMoonB1F.asm (renamed from text/maps/MtMoonB1F.asm)0
-rw-r--r--text/MtMoonB2F.asm (renamed from text/maps/MtMoonB2F.asm)0
-rw-r--r--text/MtMoonPokecenter.asm (renamed from text/maps/MtMoonPokecenter.asm)0
-rw-r--r--text/Museum1F.asm (renamed from text/maps/Museum1F.asm)0
-rw-r--r--text/Museum2F.asm (renamed from text/maps/Museum2F.asm)0
-rw-r--r--text/NameRatersHouse.asm (renamed from text/maps/NameRatersHouse.asm)0
-rw-r--r--text/OaksLab.asm (renamed from text/maps/OaksLab.asm)0
-rw-r--r--text/PalletTown.asm (renamed from text/maps/PalletTown.asm)0
-rw-r--r--text/PewterCity.asm (renamed from text/maps/PewterCity.asm)0
-rw-r--r--text/PewterGym.asm (renamed from text/maps/PewterGym.asm)0
-rw-r--r--text/PewterGym_2.asm (renamed from text/maps/PewterGym_2.asm)0
-rw-r--r--text/PewterMart.asm (renamed from text/maps/PewterMart.asm)0
-rw-r--r--text/PewterNidoranHouse.asm (renamed from text/maps/PewterNidoranHouse.asm)0
-rw-r--r--text/PewterPokecenter.asm (renamed from text/maps/PewterPokecenter.asm)0
-rw-r--r--text/PewterSpeechHouse.asm (renamed from text/maps/PewterSpeechHouse.asm)0
-rw-r--r--text/PokemonFanClub.asm (renamed from text/maps/PokemonFanClub.asm)0
-rw-r--r--text/PokemonMansion1F.asm (renamed from text/maps/PokemonMansion1F.asm)0
-rw-r--r--text/PokemonMansion2F.asm (renamed from text/maps/PokemonMansion2F.asm)0
-rw-r--r--text/PokemonMansion3F.asm (renamed from text/maps/PokemonMansion3F.asm)0
-rw-r--r--text/PokemonMansionB1F.asm (renamed from text/maps/PokemonMansionB1F.asm)0
-rw-r--r--text/PokemonTower1F.asm (renamed from text/maps/PokemonTower1F.asm)0
-rw-r--r--text/PokemonTower2F.asm (renamed from text/maps/PokemonTower2F.asm)0
-rw-r--r--text/PokemonTower3F.asm (renamed from text/maps/PokemonTower3F.asm)0
-rw-r--r--text/PokemonTower4F.asm (renamed from text/maps/PokemonTower4F.asm)0
-rw-r--r--text/PokemonTower5F.asm (renamed from text/maps/PokemonTower5F.asm)0
-rw-r--r--text/PokemonTower6F.asm (renamed from text/maps/PokemonTower6F.asm)0
-rw-r--r--text/PokemonTower7F.asm (renamed from text/maps/PokemonTower7F.asm)0
-rw-r--r--text/PowerPlant.asm (renamed from text/maps/PowerPlant.asm)0
-rw-r--r--text/RedsHouse1F.asm (renamed from text/maps/RedsHouse1F.asm)0
-rw-r--r--text/RockTunnel1F.asm (renamed from text/maps/RockTunnel1F.asm)0
-rw-r--r--text/RockTunnelB1F.asm (renamed from text/maps/RockTunnelB1F.asm)0
-rw-r--r--text/RockTunnelB1F_2.asm (renamed from text/maps/RockTunnelB1F_2.asm)0
-rw-r--r--text/RockTunnelPokecenter.asm (renamed from text/maps/RockTunnelPokecenter.asm)0
-rw-r--r--text/RocketHideoutB1F.asm (renamed from text/maps/RocketHideoutB1F.asm)0
-rw-r--r--text/RocketHideoutB2F.asm (renamed from text/maps/RocketHideoutB2F.asm)0
-rw-r--r--text/RocketHideoutB3F.asm (renamed from text/maps/RocketHideoutB3F.asm)0
-rw-r--r--text/RocketHideoutB4F.asm (renamed from text/maps/RocketHideoutB4F.asm)0
-rw-r--r--text/RocketHideoutElevator.asm (renamed from text/maps/RocketHideoutElevator.asm)0
-rw-r--r--text/Route1.asm (renamed from text/maps/Route1.asm)0
-rw-r--r--text/Route10.asm (renamed from text/maps/Route10.asm)0
-rw-r--r--text/Route11.asm (renamed from text/maps/Route11.asm)0
-rw-r--r--text/Route11Gate1F.asm (renamed from text/maps/Route11Gate1F.asm)0
-rw-r--r--text/Route11Gate2F.asm (renamed from text/maps/Route11Gate2F.asm)0
-rw-r--r--text/Route11_2.asm (renamed from text/maps/Route11_2.asm)0
-rw-r--r--text/Route12.asm (renamed from text/maps/Route12.asm)0
-rw-r--r--text/Route12Gate1F.asm (renamed from text/maps/Route12Gate1F.asm)0
-rw-r--r--text/Route12Gate2F.asm (renamed from text/maps/Route12Gate2F.asm)0
-rw-r--r--text/Route12SuperRodHouse.asm (renamed from text/maps/Route12SuperRodHouse.asm)0
-rw-r--r--text/Route13.asm (renamed from text/maps/Route13.asm)0
-rw-r--r--text/Route14.asm (renamed from text/maps/Route14.asm)0
-rw-r--r--text/Route15.asm (renamed from text/maps/Route15.asm)0
-rw-r--r--text/Route15Gate1F.asm (renamed from text/maps/Route15Gate1F.asm)0
-rw-r--r--text/Route15Gate2F.asm (renamed from text/maps/Route15Gate2F.asm)0
-rw-r--r--text/Route16.asm (renamed from text/maps/Route16.asm)0
-rw-r--r--text/Route16FlyHouse.asm (renamed from text/maps/Route16FlyHouse.asm)0
-rw-r--r--text/Route16Gate1F.asm (renamed from text/maps/Route16Gate1F.asm)0
-rw-r--r--text/Route16Gate2F.asm (renamed from text/maps/Route16Gate2F.asm)0
-rw-r--r--text/Route17.asm (renamed from text/maps/Route17.asm)0
-rw-r--r--text/Route18.asm (renamed from text/maps/Route18.asm)0
-rw-r--r--text/Route18Gate1F.asm (renamed from text/maps/Route18Gate1F.asm)0
-rw-r--r--text/Route18Gate2F.asm (renamed from text/maps/Route18Gate2F.asm)0
-rw-r--r--text/Route19.asm (renamed from text/maps/Route19.asm)0
-rw-r--r--text/Route2.asm (renamed from text/maps/Route2.asm)0
-rw-r--r--text/Route20.asm (renamed from text/maps/Route20.asm)0
-rw-r--r--text/Route21.asm (renamed from text/maps/Route21.asm)0
-rw-r--r--text/Route22.asm (renamed from text/maps/Route22.asm)0
-rw-r--r--text/Route22Gate.asm (renamed from text/maps/Route22Gate.asm)0
-rw-r--r--text/Route23.asm (renamed from text/maps/Route23.asm)0
-rw-r--r--text/Route24.asm (renamed from text/maps/Route24.asm)0
-rw-r--r--text/Route24_2.asm (renamed from text/maps/Route24_2.asm)0
-rw-r--r--text/Route25.asm (renamed from text/maps/Route25.asm)0
-rw-r--r--text/Route2Gate.asm (renamed from text/maps/Route2Gate.asm)0
-rw-r--r--text/Route2TradeHouse.asm (renamed from text/maps/Route2TradeHouse.asm)0
-rw-r--r--text/Route3.asm (renamed from text/maps/Route3.asm)0
-rw-r--r--text/Route4.asm (renamed from text/maps/Route4.asm)0
-rw-r--r--text/Route5.asm (renamed from text/maps/Route5.asm)0
-rw-r--r--text/Route6.asm (renamed from text/maps/Route6.asm)0
-rw-r--r--text/Route7.asm (renamed from text/maps/Route7.asm)0
-rw-r--r--text/Route8.asm (renamed from text/maps/Route8.asm)0
-rw-r--r--text/Route9.asm (renamed from text/maps/Route9.asm)0
-rw-r--r--text/SSAnne1F.asm (renamed from text/maps/SSAnne1F.asm)0
-rw-r--r--text/SSAnne1FRooms.asm (renamed from text/maps/SSAnne1FRooms.asm)0
-rw-r--r--text/SSAnne2F.asm (renamed from text/maps/SSAnne2F.asm)0
-rw-r--r--text/SSAnne2FRooms.asm (renamed from text/maps/SSAnne2FRooms.asm)0
-rw-r--r--text/SSAnne3F.asm (renamed from text/maps/SSAnne3F.asm)0
-rw-r--r--text/SSAnneB1FRooms.asm (renamed from text/maps/SSAnneB1FRooms.asm)0
-rw-r--r--text/SSAnneBow.asm (renamed from text/maps/SSAnneBow.asm)0
-rw-r--r--text/SSAnneCaptainsRoom.asm (renamed from text/maps/SSAnneCaptainsRoom.asm)0
-rw-r--r--text/SSAnneKitchen.asm (renamed from text/maps/SSAnneKitchen.asm)0
-rw-r--r--text/SafariZoneCenter.asm (renamed from text/maps/SafariZoneCenter.asm)0
-rw-r--r--text/SafariZoneCenterRestHouse.asm (renamed from text/maps/SafariZoneCenterRestHouse.asm)0
-rw-r--r--text/SafariZoneEast.asm (renamed from text/maps/SafariZoneEast.asm)0
-rw-r--r--text/SafariZoneEastRestHouse.asm (renamed from text/maps/SafariZoneEastRestHouse.asm)0
-rw-r--r--text/SafariZoneGate.asm (renamed from text/maps/SafariZoneGate.asm)0
-rw-r--r--text/SafariZoneNorth.asm (renamed from text/maps/SafariZoneNorth.asm)0
-rw-r--r--text/SafariZoneNorthRestHouse.asm (renamed from text/maps/SafariZoneNorthRestHouse.asm)0
-rw-r--r--text/SafariZoneSecretHouse.asm (renamed from text/maps/SafariZoneSecretHouse.asm)0
-rw-r--r--text/SafariZoneWest.asm (renamed from text/maps/SafariZoneWest.asm)0
-rw-r--r--text/SafariZoneWestRestHouse.asm (renamed from text/maps/SafariZoneWestRestHouse.asm)0
-rw-r--r--text/SaffronCity.asm (renamed from text/maps/SaffronCity.asm)0
-rw-r--r--text/SaffronGates.asm (renamed from text/maps/SaffronGates.asm)0
-rw-r--r--text/SaffronGym.asm (renamed from text/maps/SaffronGym.asm)0
-rw-r--r--text/SaffronMart.asm (renamed from text/maps/SaffronMart.asm)0
-rw-r--r--text/SaffronPidgeyHouse.asm (renamed from text/maps/SaffronPidgeyHouse.asm)0
-rw-r--r--text/SaffronPokecenter.asm (renamed from text/maps/SaffronPokecenter.asm)0
-rw-r--r--text/SeafoamIslandsB4F.asm (renamed from text/maps/SeafoamIslandsB4F.asm)0
-rw-r--r--text/SilphCo10F.asm (renamed from text/maps/SilphCo10F.asm)0
-rw-r--r--text/SilphCo11F.asm (renamed from text/maps/SilphCo11F.asm)0
-rw-r--r--text/SilphCo1F.asm (renamed from text/maps/SilphCo1F.asm)0
-rw-r--r--text/SilphCo2F.asm (renamed from text/maps/SilphCo2F.asm)0
-rw-r--r--text/SilphCo3F.asm (renamed from text/maps/SilphCo3F.asm)0
-rw-r--r--text/SilphCo4F.asm (renamed from text/maps/SilphCo4F.asm)0
-rw-r--r--text/SilphCo5F.asm (renamed from text/maps/SilphCo5F.asm)0
-rw-r--r--text/SilphCo5F_2.asm (renamed from text/maps/SilphCo5F_2.asm)0
-rw-r--r--text/SilphCo6F.asm (renamed from text/maps/SilphCo6F.asm)0
-rw-r--r--text/SilphCo7F.asm (renamed from text/maps/SilphCo7F.asm)0
-rw-r--r--text/SilphCo8F.asm (renamed from text/maps/SilphCo8F.asm)0
-rw-r--r--text/SilphCo9F.asm (renamed from text/maps/SilphCo9F.asm)0
-rw-r--r--text/UndergroundPathRoute6.asm (renamed from text/maps/UndergroundPathRoute6.asm)0
-rw-r--r--text/UndergroundPathRoute7.asm (renamed from text/maps/UndergroundPathRoute7.asm)0
-rw-r--r--text/UndergroundPathRoute7Copy.asm (renamed from text/maps/UndergroundPathRoute7Copy.asm)0
-rw-r--r--text/UndergroundPathRoute8.asm (renamed from text/maps/UndergroundPathRoute8.asm)0
-rw-r--r--text/VermilionCity.asm (renamed from text/maps/VermilionCity.asm)0
-rw-r--r--text/VermilionDock.asm (renamed from text/maps/VermilionDock.asm)0
-rw-r--r--text/VermilionGym.asm (renamed from text/maps/VermilionGym.asm)0
-rw-r--r--text/VermilionGym_2.asm (renamed from text/maps/VermilionGym_2.asm)0
-rw-r--r--text/VermilionMart.asm (renamed from text/maps/VermilionMart.asm)0
-rw-r--r--text/VermilionOldRodHouse.asm (renamed from text/maps/VermilionOldRodHouse.asm)0
-rw-r--r--text/VermilionPidgeyHouse.asm (renamed from text/maps/VermilionPidgeyHouse.asm)0
-rw-r--r--text/VermilionPokecenter.asm (renamed from text/maps/VermilionPokecenter.asm)0
-rw-r--r--text/VictoryRoad1F.asm (renamed from text/maps/VictoryRoad1F.asm)0
-rw-r--r--text/VictoryRoad2F.asm (renamed from text/maps/VictoryRoad2F.asm)0
-rw-r--r--text/VictoryRoad3F.asm (renamed from text/maps/VictoryRoad3F.asm)0
-rw-r--r--text/ViridianCity.asm (renamed from text/maps/ViridianCity.asm)0
-rw-r--r--text/ViridianForest.asm (renamed from text/maps/ViridianForest.asm)0
-rw-r--r--text/ViridianForestNorthGate.asm (renamed from text/maps/ViridianForestNorthGate.asm)0
-rw-r--r--text/ViridianForestSouthGate.asm (renamed from text/maps/ViridianForestSouthGate.asm)0
-rw-r--r--text/ViridianGym.asm (renamed from text/maps/ViridianGym.asm)0
-rw-r--r--text/ViridianMart.asm (renamed from text/maps/ViridianMart.asm)0
-rw-r--r--text/ViridianNicknameHouse.asm (renamed from text/maps/ViridianNicknameHouse.asm)0
-rw-r--r--text/ViridianPokecenter.asm (renamed from text/maps/ViridianPokecenter.asm)0
-rw-r--r--text/ViridianSchoolHouse.asm (renamed from text/maps/ViridianSchoolHouse.asm)0
-rw-r--r--text/WardensHouse.asm (renamed from text/maps/WardensHouse.asm)0
-rw-r--r--text/oakspeech.asm55
-rw-r--r--text/unused_names.asm20
-rwxr-xr-xwram.asm96
1484 files changed, 20579 insertions, 23244 deletions
diff --git a/INSTALL.md b/INSTALL.md
index c708a013..48b0fa7c 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,60 +1,180 @@
-# Linux
+# Instructions
- sudo apt-get install make git gcc
+These instructions explain how to set up the tools required to build **pokered**, including [**rgbds**](https://github.com/rednex/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/pokered
- cd pokered
-To build **pokered.gbc** and **pokeblue.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**.
-To build them individually:
+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 pokered within Windows. You'll have to change the **current working directory** every time you open WSL.
- make red
- make blue
+For example, if you want to store pokered in **C:\Users\\*\<user>*\Desktop**, enter this command:
+```bash
+cd /mnt/c/Users/<user>/Desktop
+```
-# Mac
+(The Windows `C:\` drive is called `/mnt/c/` in WSL. Replace *\<user>* in the example path with your username.)
-Get [**Homebrew**](http://brew.sh/).
+Then follow [the instructions for **Linux**](#linux).
-Then in **Terminal**, run:
+If this doesn't work, try following [the regular Windows instructions](#windows) below.
- xcode-select --install
- brew install rgbds
- git clone https://github.com/pret/pokered
- cd pokered
+## Windows
-To build **pokered.gbc** and **pokeblue.gbc**:
+Download [**Cygwin**](http://cygwin.com/install.html): **setup-x86_64.exe** for 64-bit Windows, **setup-x86.exe** for 32-bit.
- make
+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`
-# Windows
+Double click on the text that says "**Skip**" next to each package to select the most recent version to install.
-Download [**Cygwin**](http://cygwin.com/install.html): **setup-x86_64.exe** for 64-bit Windows, **setup-x86.exe** for 32-bit.
+Then download [**rgbds**](https://github.com/rednex/rgbds/releases/): the latest **win64.zip** or **win32.zip** release. Extract it and put all the `exe` and `dll` files individually in **C:\cygwin64\usr\local\bin**.
+
+**Note: If you already have an older rgbds, you will need to update to 0.4.0.** Ignore this if you have never installed rgbds before. If a version newer than 0.4.0 does not work, try downloading 0.4.0.
+
+Now open the **Cygwin terminal** and enter the following commands.
+
+Cygwin has its own file system that's within Windows, at **C:\cygwin64\home\\*\<user>***. If you don't want to store pokered there, you'll have to change the **current working directory** every time you open Cygwin.
+
+For example, if you want to store pokered in **C:\Users\\*\<user>*\Desktop**:
+
+```bash
+cd /cygdrive/c/Users/<user>/Desktop
+```
+
+(The Windows `C:\` drive is called `/cygdrive/c/` in Cygwin. Replace *\<user>* in the example path with your username.)
+
+Now you're ready to [build **pokered**](#build-pokered).
+
+
+## Mac OS X
+
+Install [**Homebrew**](https://brew.sh/). Follow the official instructions.
+
+Open **Terminal** and enter the following commands.
+
+To install **rgbds**:
+
+```bash
+brew install rgbds
+```
+
+Now you're ready to [build **pokered**](#build-pokered).
+
+
+## Linux
+
+Open **Terminal** and enter the following commands, depending on which distro you're using.
+
+### Debian or Ubuntu
+
+To install the software required for **pokered**:
+
+```bash
+sudo apt-get install make gcc git
+```
-Run setup and leave the default settings. At "Select Packages", choose to install the following:
+To install **rgbds**:
+
+```bash
+sudo apt-get install pkg-config flex bison libpng-dev
+git clone -b v0.4.0 --depth=1 https://github.com/rednex/rgbds
+sudo make -C rgbds install
+```
+
+### OpenSUSE
+
+To install the software required for **pokered**:
+
+```bash
+sudo zypper install make gcc git
+```
+
+To install **rgbds**:
+
+```bash
+sudo zypper install pkg-config flex bison libpng16-devel
+git clone -b v0.4.0 --depth=1 https://github.com/rednex/rgbds
+sudo make -C rgbds install
+```
+
+### Arch Linux
+
+To install the software required for **pokered**:
+
+```bash
+sudo pacman -S make gcc git
+```
+
+**rgbds** is available on the [AUR](https://aur.archlinux.org/packages/rgbds/).
+
+Alternatively, to install **rgbds** manually:
+
+```bash
+sudo pacman -S pkg-config flex bison libpng
+git clone -b v0.4.0 --depth=1 https://github.com/rednex/rgbds
+sudo make -C rgbds install
+```
+
+### Termux
+
+To install the software required for **pokered**:
+
+```bash
+sudo apt install make clang git sed
+```
+
+To install **rgbds**:
+
+```bash
+sudo apt install rgbds
+```
+
+### Other distros
+
+If your distro is not listed here, try to find the required software in its repositories:
- `make`
+- `gcc` (or `clang`)
- `git`
-- `gcc-core`
+- `rgbds`
+
+If `rgbds` is not available, you'll also need these:
+
+- `pkg-config`
+- `flex`
+- `bison`
+- `libpng` (and the development headers)
+
+To install **rgbds**:
+
+```bash
+git clone -b v0.4.0 --depth=1 https://github.com/rednex/rgbds
+sudo make -C rgbds install
+```
+
+Now you're ready to [build **pokered**](#build-pokered).
+
-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**.
+## Build pokered
-In the **Cygwin terminal**, enter these commands:
+To download the **pokered** source files:
- git clone https://github.com/pret/pokered
- cd pokered
+```bash
+git clone https://github.com/pret/pokered
+cd pokered
+```
To build **pokered.gbc** and **pokeblue.gbc**:
- make
+```bash
+make
+```
diff --git a/Makefile b/Makefile
index 9475c377..3e2a6e89 100644
--- a/Makefile
+++ b/Makefile
@@ -5,11 +5,11 @@ audio.o \
home.o \
main.o \
maps.o \
-pics.o \
-sprites.o \
text.o \
-tilesets.o \
wram.o \
+gfx/pics.o \
+gfx/sprites.o \
+gfx/tilesets.o
pokered_obj := $(rom_obj:.o=_red.o)
pokeblue_obj := $(rom_obj:.o=_blue.o)
@@ -35,48 +35,66 @@ RGBLINK ?= $(RGBDS)rgblink
.PHONY: all red blue clean tidy compare tools
all: $(roms)
-red: pokered.gbc
+red: pokered.gbc
blue: pokeblue.gbc
-# For contributors to make sure a change didn't affect the contents of the rom.
-compare: $(roms)
- @$(MD5) roms.md5
-
clean:
- rm -f $(roms) $(pokered_obj) $(pokeblue_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym)
- find . \( -iname '*.1bpp' -o -iname '*.2bpp' -o -iname '*.pic' \) -exec rm {} +
+ rm -f $(roms) $(pokered_obj) $(pokeblue_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym) rgbdscheck.o
+ find gfx \( -iname '*.1bpp' -o -iname '*.2bpp' -o -iname '*.pic' \) -delete
$(MAKE) clean -C tools/
tidy:
- rm -f $(roms) $(pokered_obj) $(pokeblue_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym)
+ rm -f $(roms) $(pokered_obj) $(pokeblue_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym) rgbdscheck.o
$(MAKE) clean -C tools/
+# For contributors to make sure a change didn't affect the original contents of the ROMs.
+compare: $(roms)
+ @$(MD5) roms.md5
+
tools:
$(MAKE) -C tools/
+RGBASMFLAGS = -h -Weverything
+# Create a sym/map for debug purposes if `make` run with `DEBUG=1`
+ifeq ($(DEBUG),1)
+RGBASMFLAGS += -E
+endif
+
+$(pokered_obj): RGBASMFLAGS += -D _RED
+$(pokeblue_obj): RGBASMFLAGS += -D _BLUE
+
+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)))
+
$(info $(shell $(MAKE) -C tools))
-endif
+# Dependencies for objects (drop _red and _blue from asm file basenames)
+$(foreach obj, $(pokered_obj), $(eval $(call DEP,$(obj),$(obj:_red.o=.asm))))
+$(foreach obj, $(pokeblue_obj), $(eval $(call DEP,$(obj),$(obj:_blue.o=.asm))))
-%.asm: ;
+endif
-%_red.o: dep = $(shell tools/scan_includes $(@D)/$*.asm)
-$(pokered_obj): %_red.o: %.asm $$(dep)
- $(RGBASM) -D _RED -h -o $@ $*.asm
-%_blue.o: dep = $(shell tools/scan_includes $(@D)/$*.asm)
-$(pokeblue_obj): %_blue.o: %.asm $$(dep)
- $(RGBASM) -D _BLUE -h -o $@ $*.asm
+%.asm: ;
pokered_opt = -jsv -k 01 -l 0x33 -m 0x13 -p 0 -r 03 -t "POKEMON RED"
pokeblue_opt = -jsv -k 01 -l 0x33 -m 0x13 -p 0 -r 03 -t "POKEMON BLUE"
-%.gbc: $$(%_obj)
- $(RGBLINK) -d -m $*.map -n $*.sym -l layout.link -o $@ $^
+%.gbc: $$(%_obj) layout.link
+ $(RGBLINK) -d -m $*.map -n $*.sym -l layout.link -o $@ $(filter %.o,$^)
$(RGBFIX) $($*_opt) $@
diff --git a/audio/engine_1.asm b/audio/engine_1.asm
index 0f76f576..20b992aa 100644
--- a/audio/engine_1.asm
+++ b/audio/engine_1.asm
@@ -925,7 +925,7 @@ 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
diff --git a/audio/engine_2.asm b/audio/engine_2.asm
index 2e0aad0d..864a8c21 100644
--- a/audio/engine_2.asm
+++ b/audio/engine_2.asm
@@ -936,7 +936,7 @@ Audio2_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
diff --git a/audio/engine_3.asm b/audio/engine_3.asm
index 771b44df..c0aaeaf8 100644
--- a/audio/engine_3.asm
+++ b/audio/engine_3.asm
@@ -925,7 +925,7 @@ Audio3_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
diff --git a/audio/music/yellow/meetjessiejames.asm b/audio/music/yellow/meetjessiejames.asm
deleted file mode 100644
index d1f9f795..00000000
--- a/audio/music/yellow/meetjessiejames.asm
+++ /dev/null
@@ -1,308 +0,0 @@
-Music_MeetJessieJames_Ch1::
- tempo 144
- volume 7, 7
- duty_cycle 3
- vibrato 8, 1, 4
- note_type 12, 11, 2
- octave 3
- note G#, 1
- note G_, 1
- note F#, 2
- note F_, 2
- note E_, 2
- note D#, 2
- note D_, 2
- note C#, 2
- note C_, 2
- note_type 12, 11, 6
- note D#, 12
- note C_, 4
-
-Music_MeetJessieJames_branch_83187::
- note_type 12, 11, 2
- octave 4
- note D_, 16
- rest 12
- note_type 12, 11, 4
- octave 3
- note A#, 4
- rest 16
- rest 8
- note_type 12, 11, 2
- octave 2
- note A_, 2
- octave 3
- note A#, 2
- note A_, 4
- note D_, 1
- note D#, 1
- note D#, 2
- note D#, 2
- note D_, 2
- note D#, 2
- note D_, 2
- note D#, 2
- note F_, 2
- note D_, 1
- note D#, 1
- note D#, 2
- note D#, 2
- note D_, 2
- octave 2
- note A#, 4
- note_type 12, 11, 4
- octave 3
- note B_, 4
- note_type 12, 11, 2
- note D_, 1
- note D#, 1
- note D#, 2
- note D#, 2
- note D_, 2
- note D#, 2
- note D_, 2
- note D#, 2
- note F_, 2
- note D_, 1
- note D#, 1
- note D#, 2
- note D#, 2
- note D_, 2
- octave 2
- note A#, 2
- octave 3
- note B_, 2
- note_type 12, 11, 4
- note A#, 4
- sound_loop 0, Music_MeetJessieJames_branch_83187
-
-
-Music_MeetJessieJames_Ch2::
- duty_cycle 3
- vibrato 6, 1, 5
- note_type 12, 12, 2
- octave 4
- note D_, 1
- note C#, 1
- note C_, 2
- octave 3
- note B_, 2
- note A#, 2
- note A_, 2
- note G#, 2
- note G_, 2
- note F#, 2
- note_type 12, 12, 7
- note A_, 12
- octave 4
- note C#, 4
-
-Music_MeetJessieJames_branch_831df::
- note_type 12, 12, 2
- octave 3
- note C#, 1
- note D_, 1
- note D_, 2
- note D_, 2
- note C#, 2
- note D_, 2
- note C#, 2
- note D_, 2
- note E_, 2
- note C#, 1
- note D_, 1
- note D_, 2
- note D_, 2
- note C#, 2
- octave 2
- note A_, 4
- note_type 12, 12, 5
- octave 4
- note C#, 4
- note_type 12, 12, 2
- note D_, 1
- octave 3
- note D_, 1
- note D_, 2
- note D_, 2
- note C#, 2
- note D_, 2
- note C#, 2
- note D_, 2
- note E_, 2
- note C#, 1
- note D_, 1
- note D_, 2
- note D_, 2
- note C#, 2
- note_type 12, 12, 6
- octave 4
- note D_, 8
- note_type 12, 12, 2
- note D#, 6
- note F_, 4
- note D#, 4
- octave 3
- note A#, 2
- octave 4
- note D#, 6
- note F_, 4
- note D#, 2
- note_type 12, 12, 5
- note D_, 4
- note_type 12, 12, 2
- note D#, 6
- note F_, 4
- note D#, 4
- octave 3
- note A#, 2
- octave 4
- note D#, 4
- note F_, 4
- note_type 12, 12, 5
- note D#, 8
- sound_loop 0, Music_MeetJessieJames_branch_831df
-
-
-Music_MeetJessieJames_Ch3::
- note_type 12, 1, 0
- rest 16
- rest 8
- octave 4
- note D_, 2
- octave 3
- note A_, 2
- octave 4
- note C_, 2
- note D#, 2
-
-Music_MeetJessieJames_branch_83235::
- note D_, 1
- rest 1
- note A_, 1
- rest 1
- note D_, 1
- rest 1
- note A_, 1
- rest 1
- note D_, 1
- rest 1
- note A_, 1
- rest 1
- note D_, 1
- rest 1
- note A_, 1
- rest 1
- note D_, 1
- rest 1
- note A_, 1
- rest 1
- note D_, 1
- rest 1
- note A_, 1
- rest 1
- note D_, 1
- rest 1
- note A#, 2
- note A_, 2
- note D#, 2
- note D_, 1
- rest 1
- note A_, 1
- rest 1
- note D_, 1
- rest 1
- note A_, 1
- rest 1
- note D_, 1
- rest 1
- note A_, 1
- rest 1
- note D_, 1
- rest 1
- note A_, 1
- rest 1
- note D_, 1
- rest 1
- note A_, 1
- rest 1
- note D_, 1
- rest 1
- note A_, 1
- rest 1
- note D_, 1
- rest 1
- octave 3
- note A_, 2
- octave 4
- note C_, 2
- note D_, 2
- note D#, 1
- rest 1
- note A#, 1
- rest 1
- note D#, 1
- rest 1
- note A#, 1
- rest 1
- note D#, 1
- rest 1
- note A#, 1
- rest 1
- note D#, 1
- rest 1
- note A#, 1
- rest 1
- note D#, 1
- rest 1
- note A#, 1
- rest 1
- note D#, 1
- rest 1
- note A#, 1
- rest 1
- note D#, 1
- rest 1
- octave 3
- note A#, 1
- rest 1
- octave 4
- note C#, 1
- rest 1
- note E_, 1
- rest 1
- note D#, 1
- rest 1
- note A#, 1
- rest 1
- note D#, 1
- rest 1
- note A#, 1
- rest 1
- note D#, 1
- rest 1
- note A#, 1
- rest 1
- note D#, 1
- rest 1
- note A#, 1
- rest 1
- note D#, 1
- rest 1
- note A#, 1
- rest 1
- note D#, 1
- rest 1
- note A#, 1
- rest 1
- note D#, 1
- rest 1
- octave 3
- note A#, 1
- rest 1
- octave 4
- note C#, 1
- rest 1
- note E_, 1
- rest 1
- sound_loop 0, Music_MeetJessieJames_branch_83235
diff --git a/audio/music/yellow/surfingpikachu.asm b/audio/music/yellow/surfingpikachu.asm
deleted file mode 100644
index 8e161443..00000000
--- a/audio/music/yellow/surfingpikachu.asm
+++ /dev/null
@@ -1,690 +0,0 @@
-Music_SurfingPikachu_Ch1::
- tempo 117
- volume 7, 7
- duty_cycle 3
- vibrato 8, 1, 4
- note_type 12, 11, 3
- octave 3
- note E_, 6
- note_type 12, 11, 2
- note F#, 2
- note_type 12, 11, 3
- note E_, 6
- note_type 12, 11, 2
- note F#, 16
- rest 2
- note_type 12, 11, 3
- note E_, 6
- note_type 12, 11, 2
- note A_, 2
- note_type 12, 11, 3
- note E_, 6
- note_type 12, 11, 2
- note A_, 14
- note_type 12, 11, 2
- note D#, 2
- note C#, 1
- note D#, 1
- octave 2
- note B_, 6
- octave 3
- note E_, 4
- note E_, 4
- note E_, 8
- note G#, 4
- note G#, 4
- note G#, 2
-
-Music_SurfingPikachu_branch_82d1a::
- note_type 12, 11, 3
- octave 3
- note G#, 4
- note E_, 4
- note F#, 4
- note E_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note D#, 2
- note E_, 2
- note D#, 2
- note C#, 6
- note F#, 2
- note A_, 8
- octave 2
- note B_, 6
- octave 3
- note E_, 2
- note G#, 8
- note G#, 4
- note E_, 4
- note F#, 4
- note E_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note G#, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note G#, 2
- note F#, 6
- note E_, 2
- note F#, 1
- rest 3
- note A_, 4
- duty_cycle 0
- note_type 12, 11, 2
- note G#, 1
- note F#, 1
- note G#, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note E_, 2
- note D#, 2
- note F#, 2
- note F#, 2
- note D#, 2
- note F#, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note B_, 1
- note A#, 1
- note B_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note G_, 2
- note G#, 2
- note A_, 2
- octave 4
- note C#, 2
- note C_, 2
- note C#, 3
- octave 3
- note F#, 1
- note A_, 2
- note G#, 2
- note F#, 2
- note A_, 2
- note E_, 3
- note E_, 1
- note B_, 2
- note A_, 2
- note G#, 6
- note E_, 1
- note F_, 1
- note F#, 2
- note F#, 2
- note D#, 2
- note F#, 2
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note B_, 1
- note A#, 1
- note B_, 2
- note G#, 2
- note E_, 2
- note G#, 2
- note G_, 2
- note G#, 2
- note A_, 2
- octave 4
- note C#, 2
- note C_, 2
- note C#, 3
- octave 3
- note F#, 1
- note A_, 2
- note G#, 2
- note A_, 2
- octave 4
- note D#, 2
- note E_, 2
- note E_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note E_, 1
- note D#, 1
- note E_, 8
- duty_cycle 3
- sound_loop 0, Music_SurfingPikachu_branch_82d1a
-
-
-Music_SurfingPikachu_Ch2::
- duty_cycle 3
- vibrato 6, 1, 5
- note_type 12, 12, 4
- octave 3
- note B_, 6
- note_type 12, 12, 2
- octave 4
- note E_, 2
- note_type 12, 12, 4
- octave 3
- note B_, 6
- note_type 12, 12, 2
- octave 4
- note E_, 2
- note_type 12, 11, 2
- octave 3
- note B_, 2
- octave 4
- note C#, 2
- note D#, 2
- note C#, 2
- octave 3
- note B_, 2
- note A_, 2
- note G#, 2
- note F#, 2
- note_type 12, 12, 4
- octave 4
- note C#, 6
- note_type 12, 12, 2
- note F#, 2
- note_type 12, 12, 4
- note C#, 6
- note_type 12, 12, 2
- note F#, 2
- note_type 12, 11, 2
- note C#, 2
- note D#, 2
- note E_, 2
- note D#, 2
- note C#, 2
- octave 3
- note B_, 2
- note A_, 2
- note G#, 2
- note_type 12, 12, 2
- note E_, 6
- note B_, 4
- note B_, 4
- note B_, 8
- note B_, 4
- note B_, 4
- note B_, 2
-
-Music_SurfingPikachu_branch_82de0::
- note_type 12, 12, 6
- octave 4
- note E_, 4
- octave 3
- note B_, 4
- note A_, 4
- octave 4
- note C#, 4
- octave 3
- note B_, 6
- note A_, 2
- note G#, 8
- note F#, 6
- note A_, 2
- octave 4
- note C#, 8
- octave 3
- note E_, 6
- note G#, 2
- note B_, 8
- octave 4
- note E_, 4
- octave 3
- note B_, 4
- note A_, 4
- octave 4
- note C#, 4
- octave 3
- note B_, 6
- octave 4
- note D#, 2
- note E_, 8
- note D#, 6
- note C#, 2
- note D#, 1
- rest 3
- note F#, 4
- note E_, 10
- note_type 12, 12, 6
- duty_cycle 2
- note E_, 2
- note D#, 2
- note C#, 2
- octave 3
- note B_, 6
- octave 4
- note C#, 2
- note D#, 4
- octave 3
- note B_, 4
- octave 4
- note E_, 6
- note F#, 2
- note G#, 8
- note A_, 6
- note G#, 2
- note A_, 4
- note F#, 4
- note G#, 10
- note E_, 2
- note D#, 2
- note C#, 2
- octave 3
- note B_, 6
- octave 4
- note C#, 2
- note D#, 4
- octave 3
- note B_, 4
- octave 4
- note E_, 6
- note F#, 2
- note G#, 8
- note A_, 4
- note F#, 4
- note D#, 4
- octave 5
- note C#, 4
- octave 4
- note B_, 8
- note_type 12, 12, 2
- octave 5
- note E_, 4
- note_type 12, 12, 6
- duty_cycle 3
- octave 3
- note B_, 1
- note A#, 1
- note B_, 1
- octave 4
- note C#, 1
- sound_loop 0, Music_SurfingPikachu_branch_82de0
-
-
-Music_SurfingPikachu_Ch3::
- note_type 12, 1, 0
- octave 4
- note B_, 6
- octave 5
- note C#, 1
- rest 1
- octave 4
- note B_, 6
- octave 5
- note C#, 1
- rest 1
- octave 4
- note B_, 1
- rest 1
- note A_, 1
- rest 1
- note G#, 1
- rest 1
- note A_, 1
- rest 1
- note B_, 1
- rest 1
- octave 5
- note C#, 1
- rest 1
- note D#, 1
- rest 1
- note C#, 1
- rest 1
- octave 4
- note A_, 6
- octave 5
- note C#, 1
- rest 1
- octave 4
- note A_, 6
- octave 5
- note C#, 1
- rest 1
- octave 4
- note A_, 1
- rest 1
- note G#, 1
- rest 1
- note F#, 1
- rest 1
- note E_, 1
- rest 1
- note F#, 1
- rest 1
- note G#, 1
- rest 1
- note A_, 1
- rest 1
- note G#, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- octave 3
- note B_, 1
- rest 1
- octave 4
- note C#, 1
- rest 1
- note D#, 1
- rest 1
-
-Music_SurfingPikachu_branch_82ea0::
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note F#, 1
- rest 1
- note A_, 1
- rest 1
- note F#, 1
- rest 1
- note A_, 1
- rest 1
- note F#, 1
- rest 1
- octave 5
- note C#, 1
- note C_, 1
- note C#, 1
- rest 1
- octave 4
- note F#, 1
- rest 1
- note E_, 1
- rest 1
- note G#, 1
- rest 1
- note E_, 1
- rest 1
- note G#, 1
- rest 1
- note E_, 1
- rest 1
- octave 5
- note E_, 1
- note D#, 1
- note E_, 1
- rest 1
- octave 4
- note D#, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note F#, 1
- rest 1
- note A_, 1
- rest 1
- note F#, 1
- rest 1
- note A_, 1
- rest 1
- note B_, 1
- rest 1
- note A_, 1
- rest 1
- note G#, 1
- rest 1
- note F#, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- octave 3
- note B_, 1
- rest 1
- octave 4
- note C#, 1
- rest 1
- note D_, 1
- rest 1
- note D#, 1
- rest 1
- note F#, 1
- rest 1
- octave 3
- note B_, 1
- rest 1
- octave 4
- note F#, 1
- rest 1
- note D#, 1
- rest 1
- note F#, 1
- rest 1
- octave 3
- note B_, 1
- rest 1
- octave 4
- note F#, 1
- rest 1
- note E_, 1
- rest 1
- note G#, 1
- rest 1
- octave 3
- note B_, 1
- rest 1
- octave 4
- note G#, 1
- rest 1
- note E_, 1
- rest 1
- note G#, 1
- rest 1
- octave 3
- note B_, 1
- rest 1
- octave 4
- note G#, 1
- rest 1
- note F#, 1
- rest 1
- note A_, 1
- rest 1
- note C#, 1
- rest 1
- note A_, 1
- rest 1
- note F#, 1
- rest 1
- note A_, 1
- rest 1
- note C#, 1
- rest 1
- note A_, 1
- rest 1
- note B_, 1
- note A#, 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note F#, 1
- rest 1
- note G#, 1
- rest 1
- octave 3
- note B_, 1
- rest 1
- octave 4
- note C#, 1
- rest 1
- note D_, 1
- rest 1
- note D#, 1
- rest 1
- note F#, 1
- rest 1
- octave 3
- note B_, 1
- rest 1
- octave 4
- note F#, 1
- rest 1
- note D#, 1
- rest 1
- note F#, 1
- rest 1
- octave 3
- note B_, 1
- rest 1
- octave 4
- note F#, 1
- rest 1
- note E_, 1
- rest 1
- note G#, 1
- rest 1
- octave 3
- note B_, 1
- rest 1
- octave 4
- note G#, 1
- rest 1
- note E_, 1
- rest 1
- note G#, 1
- rest 1
- octave 3
- note B_, 1
- rest 1
- octave 4
- note G#, 1
- rest 1
- note F#, 1
- rest 1
- note A_, 1
- rest 1
- note C#, 1
- rest 1
- note A_, 1
- rest 1
- note F#, 1
- rest 1
- note A_, 1
- rest 1
- note F#, 1
- rest 1
- note D#, 1
- rest 1
- note B_, 1
- rest 1
- note B_, 1
- rest 1
- note A_, 1
- rest 1
- note A_, 1
- rest 1
- note G#, 1
- rest 1
- octave 3
- note B_, 1
- rest 1
- octave 4
- note C#, 1
- rest 1
- note D#, 1
- rest 1
- sound_loop 0, Music_SurfingPikachu_branch_82ea0
diff --git a/audio/music/yellow/yellowintro.asm b/audio/music/yellow/yellowintro.asm
deleted file mode 100644
index bb741a22..00000000
--- a/audio/music/yellow/yellowintro.asm
+++ /dev/null
@@ -1,484 +0,0 @@
-Music_YellowIntro_Ch1::
- tempo 116
- volume 7, 7
- duty_cycle 3
- vibrato 8, 1, 4
- note_type 12, 11, 2
- octave 3
- note G#, 2
- note B_, 4
- note B_, 4
- note B_, 4
- note B_, 4
- note B_, 4
- note B_, 3
- note A#, 1
- note B_, 2
- note B_, 10
- note_type 12, 11, 6
- octave 4
- note C#, 1
- note C_, 1
- note C#, 10
- octave 3
- note G#, 1
- note G_, 1
- note G#, 4
- note B_, 4
- octave 4
- note E_, 4
- note F#, 8
- note E_, 8
- octave 3
- note A_, 4
- note B_, 4
- octave 4
- note C#, 4
- octave 3
- note B_, 4
- note G#, 6
- note_type 12, 11, 2
- note B_, 2
- note_type 12, 11, 6
- note G#, 6
- note_type 12, 11, 2
- note B_, 2
- note_type 12, 11, 6
- octave 4
- note E_, 6
- note_type 12, 11, 2
- note G#, 2
- note_type 12, 11, 6
- note E_, 6
- note_type 12, 11, 2
- note G#, 2
- note_type 12, 11, 6
- octave 3
- note A_, 4
- note F#, 4
- note A_, 4
- note B_, 4
- note F#, 4
- note G#, 4
- note A_, 2
- note G#, 2
- note F#, 2
- note D#, 2
- note_type 12, 11, 3
- note B_, 2
- octave 4
- note E_, 4
- note E_, 4
- note E_, 4
- note E_, 2
- note C#, 2
- note F#, 4
- note F#, 3
- note D#, 1
- note F#, 2
- note F#, 8
- note_type 12, 11, 6
- note F#, 1
- note F_, 1
- note F#, 8
- octave 3
- note B_, 1
- note A#, 1
- note B_, 8
- octave 4
- note F#, 1
- note F_, 1
- note F#, 2
- note_type 12, 11, 3
- note F#, 1
- note E_, 1
- note D#, 1
- note C#, 1
- note_type 12, 11, 2
- octave 3
- note B_, 16
- sound_ret
-
-
-Music_YellowIntro_Ch2::
- duty_cycle 2
- vibrato 6, 1, 5
- note_type 12, 12, 2
- octave 3
- note B_, 2
- octave 4
- note E_, 4
- note E_, 4
- note E_, 4
- note E_, 4
- note E_, 4
- note E_, 3
- note D#, 1
- note E_, 2
- note E_, 4
- note_type 12, 12, 5
- note G#, 1
- note G_, 1
- note G#, 10
- octave 3
- note B_, 1
- note A#, 1
- note B_, 6
- note_type 12, 12, 7
- octave 4
- note E_, 4
- note G#, 4
- note B_, 4
- octave 5
- note C#, 16
- octave 4
- note A_, 4
- note G#, 4
- note F#, 4
- note E_, 4
- octave 3
- note B_, 6
- note_type 12, 12, 2
- octave 4
- note E_, 2
- note_type 12, 12, 7
- octave 3
- note B_, 6
- note_type 12, 12, 2
- octave 4
- note E_, 2
- note_type 12, 12, 7
- note G#, 6
- note_type 12, 12, 2
- note B_, 2
- note_type 12, 12, 7
- note G#, 6
- note_type 12, 12, 2
- note B_, 2
- note_type 12, 12, 7
- note C#, 4
- octave 3
- note A_, 4
- octave 4
- note C#, 4
- note D#, 4
- note E_, 2
- note D#, 2
- note C#, 2
- note D#, 4
- note D#, 2
- note C#, 2
- octave 3
- note B_, 2
- note_type 12, 12, 3
- octave 4
- note E_, 2
- note G#, 4
- note G#, 4
- note G#, 4
- note G#, 2
- note F#, 2
- note A_, 4
- note A_, 3
- note F#, 1
- note A_, 2
- note A_, 4
- note_type 12, 12, 7
- note B_, 1
- note A#, 1
- note B_, 8
- note B_, 1
- note A#, 1
- note B_, 8
- note B_, 1
- note A#, 1
- note B_, 6
- note_type 12, 12, 3
- note B_, 1
- note A_, 1
- note G#, 1
- note F#, 1
- note_type 12, 12, 2
- note E_, 16
- sound_ret
-
-
-Music_YellowIntro_Ch3::
- note_type 12, 1, 0
- octave 4
- note E_, 1
- rest 1
- note G#, 1
- rest 1
- octave 3
- note B_, 1
- rest 1
- octave 4
- note G#, 1
- rest 1
- note E_, 1
- rest 1
- note G#, 1
- rest 1
- octave 3
- note B_, 1
- rest 1
- octave 4
- note G#, 1
- rest 1
- note E_, 1
- rest 1
- note G#, 1
- rest 1
- octave 3
- note B_, 1
- rest 1
- octave 4
- note G#, 1
- rest 1
- note E_, 1
- rest 1
- octave 3
- note B_, 1
- rest 1
- octave 4
- note C#, 1
- rest 1
- note D#, 1
- rest 1
- note G#, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note G#, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note G#, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note G#, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note F#, 1
- rest 1
- note A_, 1
- rest 1
- note C#, 1
- rest 1
- note A_, 1
- rest 1
- note F#, 1
- rest 1
- note A_, 1
- rest 1
- note C#, 1
- rest 1
- note A_, 1
- rest 1
- note A_, 1
- rest 1
- octave 5
- note C#, 1
- rest 1
- octave 4
- note F#, 1
- rest 1
- octave 5
- note C#, 1
- rest 1
- octave 4
- note A_, 1
- rest 1
- octave 5
- note C#, 1
- rest 1
- octave 4
- note F#, 1
- rest 1
- octave 5
- note C#, 1
- rest 1
- octave 4
- note B_, 1
- rest 1
- octave 5
- note E_, 1
- rest 1
- octave 4
- note G#, 1
- rest 1
- octave 5
- note E_, 1
- rest 1
- octave 4
- note B_, 1
- rest 1
- octave 5
- note E_, 1
- rest 1
- octave 4
- note G#, 1
- rest 1
- octave 5
- note E_, 1
- rest 1
- octave 4
- note G#, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note G#, 1
- rest 1
- note E_, 1
- rest 1
- note G#, 1
- rest 1
- note B_, 1
- rest 1
- note A_, 1
- rest 1
- octave 5
- note C#, 1
- rest 1
- octave 4
- note F#, 1
- rest 1
- octave 5
- note C#, 1
- rest 1
- octave 4
- note A_, 1
- rest 1
- octave 5
- note C#, 1
- rest 1
- octave 4
- note F#, 1
- rest 1
- octave 5
- note C#, 1
- rest 1
- octave 4
- note A_, 1
- rest 1
- octave 5
- note C#, 1
- rest 1
- octave 4
- note F#, 1
- rest 1
- octave 5
- note C#, 1
- rest 1
- octave 4
- note A_, 1
- rest 1
- octave 5
- note C#, 1
- rest 1
- octave 4
- note B_, 1
- rest 1
- note A_, 1
- rest 1
- note G#, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note G#, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note G#, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note G#, 1
- rest 1
- note B_, 1
- rest 1
- note E_, 1
- rest 1
- note B_, 1
- rest 1
- note A_, 1
- rest 1
- octave 5
- note E_, 1
- rest 1
- octave 4
- note E_, 1
- rest 1
- octave 5
- note E_, 1
- rest 1
- octave 4
- note A_, 1
- rest 1
- octave 5
- note E_, 1
- rest 1
- octave 4
- note E_, 1
- rest 1
- octave 5
- note E_, 1
- rest 1
- octave 4
- note A_, 1
- rest 1
- octave 5
- note F#, 1
- rest 1
- octave 4
- note F#, 1
- rest 1
- octave 5
- note C#, 1
- rest 3
- note F#, 1
- rest 1
- octave 4
- note F#, 1
- note G#, 1
- note A_, 1
- octave 5
- note C#, 1
- note E_, 1
- rest 15
- sound_ret
diff --git a/audio/music/yellow/yellowunusedsong.asm b/audio/music/yellow/yellowunusedsong.asm
deleted file mode 100644
index f1e4d18f..00000000
--- a/audio/music/yellow/yellowunusedsong.asm
+++ /dev/null
@@ -1,326 +0,0 @@
-Music_YellowUnusedSong_Ch1::
- tempo 140
- volume 7, 7
- duty_cycle 3
- vibrato 8, 1, 4
- note_type 8, 11, 2
- octave 3
- note A_, 6
- note A_, 2
- note A_, 2
- note A_, 2
- note A#, 6
- note A#, 6
- note G_, 6
- note G_, 6
- note A_, 6
- note E_, 6
- note A_, 6
- note A_, 2
- note A_, 2
- note A_, 2
- note A#, 6
- note A#, 6
- note A_, 6
- note G_, 6
- note A_, 12
-
-Music_YellowUnusedSong_branch_82fde::
- note A_, 6
- note A_, 2
- note A_, 2
- note A_, 2
- note A#, 6
- note A#, 6
- note G_, 6
- note G_, 6
- note A_, 6
- note E_, 6
- note A_, 6
- note A_, 2
- note A_, 2
- note A_, 2
- note A#, 6
- note A#, 6
- note G_, 6
- octave 4
- note D#, 6
- note D_, 12
- rest 16
- rest 16
- rest 16
- rest 16
- rest 16
- rest 16
- octave 3
- note A_, 6
- note A_, 2
- note A_, 2
- note A_, 2
- note A#, 6
- note A#, 6
- note G_, 6
- note G_, 6
- note A_, 6
- note E_, 6
- note A_, 6
- note A_, 2
- note A_, 2
- note A_, 2
- note A#, 6
- note A#, 6
- note A_, 6
- note G_, 6
- note A_, 12
- sound_loop 0, Music_YellowUnusedSong_branch_82fde
-
-
-Music_YellowUnusedSong_Ch2::
- duty_cycle 2
- note_type 8, 12, 2
- octave 4
- note D_, 6
- note D_, 2
- note D_, 2
- note D_, 2
- note D#, 6
- note D#, 6
- note C_, 6
- note C_, 6
- note D_, 6
- octave 3
- note A_, 6
- octave 4
- note D_, 6
- note D_, 2
- note D_, 2
- note D_, 2
- note D#, 6
- note D#, 6
- note D_, 6
- note A#, 6
- note A_, 12
-
-Music_YellowUnusedSong_branch_8302a::
- note D_, 6
- note D_, 2
- note D_, 2
- note D_, 2
- note D#, 6
- note D#, 6
- note C_, 6
- note C_, 6
- note D_, 6
- octave 3
- note A_, 6
- octave 4
- note D_, 6
- note D_, 2
- note D_, 2
- note D_, 2
- note D#, 6
- note D#, 6
- note C_, 6
- note G#, 6
- note G_, 12
- note_type 8, 9, 0
- octave 3
- note D#, 16
- note D#, 8
- note D#, 16
- note D#, 8
- octave 2
- note A#, 16
- note A#, 8
- octave 3
- note D#, 12
- note F_, 12
- note_type 8, 12, 2
- octave 4
- note D_, 6
- note D_, 2
- note D_, 2
- note D_, 2
- note D#, 6
- note D#, 6
- note C_, 6
- note C_, 6
- note D_, 6
- octave 3
- note A_, 6
- octave 4
- note D_, 6
- note D_, 2
- note D_, 2
- note D_, 2
- note D#, 6
- note D#, 6
- note D_, 6
- note A#, 6
- note A_, 12
- sound_loop 0, Music_YellowUnusedSong_branch_8302a
-
-
-Music_YellowUnusedSong_Ch3::
- note_type 12, 1, 0
- vibrato 2, 1, 5
- rest 16
- rest 12
- octave 4
- note C_, 4
- note D_, 8
- note D#, 8
- note G_, 8
- note A#, 8
-
-Music_YellowUnusedSong_branch_83075::
- note A_, 8
- note A#, 8
- note G_, 8
- note A_, 4
- note D_, 4
- note A_, 8
- note A#, 8
- octave 5
- note C#, 8
- note D_, 8
- note D#, 16
- note D#, 16
- octave 4
- note A#, 16
- octave 5
- note D#, 8
- note F_, 8
- octave 4
- note D_, 16
- note D_, 16
- octave 4
- note D_, 8
- note D#, 8
- note G_, 8
- note A#, 8
- sound_loop 0, Music_YellowUnusedSong_branch_83075
-
-
-Music_YellowUnusedSong_Ch4::
- drum_speed 12
- drum_note 3, 4
- drum_speed 8
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_speed 12
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 4
- drum_speed 8
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_speed 12
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 4
- drum_note 3, 4
-
-Music_YellowUnusedSong_branch_830c3::
- drum_note 3, 4
- drum_speed 8
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_speed 12
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 4
- drum_speed 8
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_speed 12
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 4
- drum_speed 8
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_speed 12
- drum_note 3, 4
- drum_speed 8
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_speed 12
- drum_note 3, 4
- drum_speed 8
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_speed 12
- drum_note 3, 4
- drum_speed 8
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_speed 12
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 4
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 4
- drum_speed 8
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_speed 12
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 4
- drum_speed 8
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_speed 12
- drum_note 3, 4
- drum_note 3, 4
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 2
- drum_note 3, 4
- drum_note 3, 4
- sound_loop 0, Music_YellowUnusedSong_branch_830c3
diff --git a/audio/play_battle_music.asm b/audio/play_battle_music.asm
index 35dd19ad..f8bfcd19 100644
--- a/audio/play_battle_music.asm
+++ b/audio/play_battle_music.asm
@@ -2,9 +2,9 @@ PlayBattleMusic::
xor a
ld [wAudioFadeOutControl], a
ld [wLowHealthAlarm], a
- dec a
+ dec a ; SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
- call PlaySound ; stop music
+ call PlaySound
call DelayFrame
ld c, BANK(Music_GymLeaderBattle)
ld a, [wGymLeaderNo]
diff --git a/audio/pokedex_rating_sfx.asm b/audio/pokedex_rating_sfx.asm
index a218d5e6..1b5dc4f0 100644
--- a/audio/pokedex_rating_sfx.asm
+++ b/audio/pokedex_rating_sfx.asm
@@ -1,5 +1,5 @@
PlayPokedexRatingSfx::
- ld a, [$ffdc]
+ ld a, [hDexRatingNumMonsOwned]
ld c, $0
ld hl, OwnedMonValues
.getSfxPointer
@@ -10,7 +10,7 @@ PlayPokedexRatingSfx::
jr .getSfxPointer
.gotSfxPointer
push bc
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySoundWaitForCurrent
pop bc
diff --git a/audio/wave_instruments.asm b/audio/wave_instruments.asm
index c915f18a..4a830f4b 100644
--- a/audio/wave_instruments.asm
+++ b/audio/wave_instruments.asm
@@ -13,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/constants.asm b/constants.asm
index c8e5a78d..b1395ea8 100644
--- a/constants.asm
+++ b/constants.asm
@@ -1,32 +1,41 @@
-INCLUDE "macros.asm"
INCLUDE "charmap.asm"
+INCLUDE "macros.asm"
+
INCLUDE "hram.asm"
INCLUDE "vram.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/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/tileset_constants.asm"
INCLUDE "constants/starter_mons.asm"
INCLUDE "constants/event_constants.asm"
INCLUDE "constants/text_constants.asm"
+INCLUDE "constants/menu_constants.asm"
diff --git a/constants/audio_constants.asm b/constants/audio_constants.asm
new file mode 100644
index 00000000..38719f92
--- /dev/null
+++ b/constants/audio_constants.asm
@@ -0,0 +1,59 @@
+; pitch
+ 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
+ const_def
+ const Ch1 ; 0
+ const Ch2 ; 1
+ const Ch3 ; 2
+ const Ch4 ; 3
+ const Ch5 ; 4
+ const Ch6 ; 5
+ const Ch7 ; 6
+ const Ch8 ; 7
+
+; 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
+
+; 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
diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm
new file mode 100644
index 00000000..e45ad7f1
--- /dev/null
+++ b/constants/battle_constants.asm
@@ -0,0 +1,51 @@
+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
+BATTLE_TYPE_NORMAL EQU 0
+BATTLE_TYPE_OLD_MAN EQU 1
+BATTLE_TYPE_SAFARI EQU 2
+
+; fixed damage constants
+SONICBOOM_DAMAGE EQU 20
+DRAGON_RAGE_DAMAGE EQU 40
+
+; 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/connection_constants.asm b/constants/connection_constants.asm
deleted file mode 100755
index 154c4163..00000000
--- 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 f5715072..c9d15e9b 100644
--- a/constants/credits_constants.asm
+++ b/constants/credits_constants.asm
@@ -1,5 +1,4 @@
-const_value = 0
-
+ const_def
const CRED_VERSION ; $00
const CRED_TAJIRI ; $01
const CRED_TA_OOTA ; $02
@@ -64,4 +63,3 @@ const_value = 0
const CRED_FUKUI ; $3D
const CRED_CLUB ; $3E
const CRED_PAAD ; $3F
-
diff --git a/constants/event_constants.asm b/constants/event_constants.asm
index 5b73012b..e8697daa 100755
--- a/constants/event_constants.asm
+++ b/constants/event_constants.asm
@@ -1,2562 +1,2561 @@
-const_value = 0
-
- 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_005 ; 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_0A8 ; 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_147 ; 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_565 ; 565, (D7F3, bit 5)
- const EVENT_566 ; 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_578 ; 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_GOT_DOME_FOSSIL ; 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)
+ const_def
+ const EVENT_FOLLOWED_OAK_INTO_LAB
+ const EVENT_001
+ const EVENT_002
+ const EVENT_HALL_OF_FAME_DEX_RATING
+ const EVENT_004
+ const EVENT_005
+ const EVENT_PALLET_AFTER_GETTING_POKEBALLS
+ const EVENT_007
+ const EVENT_008
+ const EVENT_009
+ const EVENT_00A
+ const EVENT_00B
+ const EVENT_00C
+ const EVENT_00D
+ const EVENT_00E
+ const EVENT_00F
+ const EVENT_010
+ const EVENT_011
+ const EVENT_012
+ const EVENT_013
+ const EVENT_014
+ const EVENT_015
+ const EVENT_016
+ const EVENT_017
+ const EVENT_GOT_TOWN_MAP
+ const EVENT_ENTERED_BLUES_HOUSE
+ const EVENT_DAISY_WALKING
+ const EVENT_01B
+ const EVENT_01C
+ const EVENT_01D
+ const EVENT_01E
+ const EVENT_01F
+ 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
+ const EVENT_VIRIDIAN_GYM_OPEN
+ const EVENT_GOT_TM42
+ const EVENT_02A
+ const EVENT_02B
+ const EVENT_02C
+ const EVENT_02D
+ const EVENT_02E
+ const EVENT_02F
+ const EVENT_030
+ const EVENT_031
+ const EVENT_032
+ const EVENT_033
+ const EVENT_034
+ const EVENT_035
+ const EVENT_036
+ const EVENT_037
+ const EVENT_OAK_GOT_PARCEL
+ const EVENT_GOT_OAKS_PARCEL
+ const EVENT_03A
+ const EVENT_03B
+ const EVENT_03C
+ const EVENT_03D
+ const EVENT_03E
+ const EVENT_03F
+ const EVENT_040
+ const EVENT_041
+ const EVENT_042
+ const EVENT_043
+ const EVENT_044
+ const EVENT_045
+ const EVENT_046
+ const EVENT_047
+ const EVENT_048
+ const EVENT_049
+ const EVENT_04A
+ const EVENT_04B
+ const EVENT_04C
+ const EVENT_04D
+ const EVENT_04E
+ const EVENT_04F
+ 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
+ const EVENT_05A
+ const EVENT_05B
+ const EVENT_05C
+ const EVENT_05D
+ const EVENT_05E
+ const EVENT_05F
+ const EVENT_060
+ const EVENT_061
+ const EVENT_062
+ const EVENT_063
+ const EVENT_064
+ const EVENT_065
+ const EVENT_066
+ const EVENT_067
+ const EVENT_BOUGHT_MUSEUM_TICKET
+ const EVENT_GOT_OLD_AMBER
+ const EVENT_06A
+ const EVENT_06B
+ const EVENT_06C
+ const EVENT_06D
+ const EVENT_06E
+ const EVENT_06F
+ const EVENT_070
+ const EVENT_071
+ const EVENT_BEAT_PEWTER_GYM_TRAINER_0
+ const EVENT_073
+ const EVENT_074
+ const EVENT_075
+ const EVENT_GOT_TM34
+ const EVENT_BEAT_BROCK
+ const EVENT_078
+ const EVENT_079
+ const EVENT_07A
+ const EVENT_07B
+ const EVENT_07C
+ const EVENT_07D
+ const EVENT_07E
+ const EVENT_07F
+ const EVENT_080
+ const EVENT_081
+ const EVENT_082
+ const EVENT_083
+ const EVENT_084
+ const EVENT_085
+ const EVENT_086
+ const EVENT_087
+ const EVENT_088
+ const EVENT_089
+ const EVENT_08A
+ const EVENT_08B
+ const EVENT_08C
+ const EVENT_08D
+ const EVENT_08E
+ const EVENT_08F
+ const EVENT_090
+ const EVENT_091
+ const EVENT_092
+ const EVENT_093
+ const EVENT_094
+ const EVENT_095
+ const EVENT_096
+ const EVENT_097
+ const EVENT_BEAT_CERULEAN_RIVAL
+ const EVENT_099
+ const EVENT_09A
+ const EVENT_09B
+ const EVENT_09C
+ const EVENT_09D
+ const EVENT_09E
+ const EVENT_09F
+ const EVENT_0A0
+ const EVENT_0A1
+ const EVENT_0A2
+ const EVENT_0A3
+ const EVENT_0A4
+ const EVENT_0A5
+ const EVENT_0A6
+ const EVENT_BEAT_CERULEAN_ROCKET_THIEF
+ const EVENT_0A8
+ const EVENT_0A9
+ const EVENT_0AA
+ const EVENT_0AB
+ const EVENT_0AC
+ const EVENT_0AD
+ const EVENT_0AE
+ const EVENT_0AF
+ const EVENT_0B0
+ const EVENT_0B1
+ const EVENT_0B2
+ const EVENT_0B3
+ const EVENT_0B4
+ const EVENT_0B5
+ const EVENT_0B6
+ const EVENT_0B7
+ const EVENT_0B8
+ const EVENT_0B9
+ const EVENT_BEAT_CERULEAN_GYM_TRAINER_0
+ const EVENT_BEAT_CERULEAN_GYM_TRAINER_1
+ const EVENT_0BC
+ const EVENT_0BD
+ const EVENT_GOT_TM11
+ const EVENT_BEAT_MISTY
+ const EVENT_GOT_BICYCLE
+ const EVENT_0C1
+ const EVENT_0C2
+ const EVENT_0C3
+ const EVENT_0C4
+ const EVENT_0C5
+ const EVENT_0C6
+ const EVENT_0C7
+ const EVENT_0C8
+ const EVENT_0C9
+ const EVENT_0CA
+ const EVENT_0CB
+ const EVENT_0CC
+ const EVENT_0CD
+ const EVENT_0CE
+ const EVENT_0CF
+ const EVENT_0D0
+ const EVENT_0D1
+ const EVENT_0D2
+ const EVENT_0D3
+ const EVENT_0D4
+ const EVENT_0D5
+ const EVENT_0D6
+ const EVENT_0D7
+ const EVENT_0D8
+ const EVENT_0D9
+ const EVENT_0DA
+ const EVENT_0DB
+ const EVENT_0DC
+ const EVENT_0DD
+ const EVENT_0DE
+ const EVENT_0DF
+ const EVENT_0E0
+ const EVENT_0E1
+ const EVENT_0E2
+ const EVENT_0E3
+ const EVENT_0E4
+ const EVENT_0E5
+ const EVENT_0E6
+ const EVENT_0E7
+ const EVENT_0E8
+ const EVENT_0E9
+ const EVENT_0EA
+ const EVENT_0EB
+ const EVENT_0EC
+ const EVENT_0ED
+ const EVENT_POKEMON_TOWER_RIVAL_ON_LEFT
+ const EVENT_BEAT_POKEMON_TOWER_RIVAL
+ const EVENT_0F0
+ const EVENT_BEAT_POKEMONTOWER_3_TRAINER_0
+ const EVENT_BEAT_POKEMONTOWER_3_TRAINER_1
+ const EVENT_BEAT_POKEMONTOWER_3_TRAINER_2
+ const EVENT_0F4
+ const EVENT_0F5
+ const EVENT_0F6
+ const EVENT_0F7
+ const EVENT_0F8
+ const EVENT_BEAT_POKEMONTOWER_4_TRAINER_0
+ const EVENT_BEAT_POKEMONTOWER_4_TRAINER_1
+ const EVENT_BEAT_POKEMONTOWER_4_TRAINER_2
+ const EVENT_0FC
+ const EVENT_0FD
+ const EVENT_0FE
+ const EVENT_0FF
+ const EVENT_100
+ const EVENT_101
+ 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 EVENT_106
+ const EVENT_IN_PURIFIED_ZONE
+ const EVENT_108
+ const EVENT_BEAT_POKEMONTOWER_6_TRAINER_0
+ const EVENT_BEAT_POKEMONTOWER_6_TRAINER_1
+ const EVENT_BEAT_POKEMONTOWER_6_TRAINER_2
+ const EVENT_10C
+ const EVENT_10D
+ const EVENT_10E
+ const EVENT_BEAT_GHOST_MAROWAK
+ const EVENT_110
+ const EVENT_BEAT_POKEMONTOWER_7_TRAINER_0
+ const EVENT_BEAT_POKEMONTOWER_7_TRAINER_1
+ const EVENT_BEAT_POKEMONTOWER_7_TRAINER_2
+ const EVENT_114
+ const EVENT_115
+ const EVENT_116
+ const EVENT_RESCUED_MR_FUJI_2
+ const EVENT_118
+ const EVENT_119
+ const EVENT_11A
+ const EVENT_11B
+ const EVENT_11C
+ const EVENT_11D
+ const EVENT_11E
+ const EVENT_11F
+ const EVENT_120
+ const EVENT_121
+ const EVENT_122
+ const EVENT_123
+ const EVENT_124
+ const EVENT_125
+ const EVENT_126
+ const EVENT_127
+ const EVENT_GOT_POKE_FLUTE
+ const EVENT_129
+ const EVENT_12A
+ const EVENT_12B
+ const EVENT_12C
+ const EVENT_12D
+ const EVENT_12E
+ const EVENT_12F
+ const EVENT_130
+ const EVENT_131
+ const EVENT_132
+ const EVENT_133
+ const EVENT_134
+ const EVENT_135
+ const EVENT_136
+ const EVENT_137
+ const EVENT_138
+ const EVENT_139
+ const EVENT_13A
+ const EVENT_13B
+ const EVENT_13C
+ const EVENT_13D
+ const EVENT_13E
+ const EVENT_13F
+ const EVENT_140
+ const EVENT_141
+ const EVENT_142
+ const EVENT_143
+ const EVENT_144
+ const EVENT_145
+ const EVENT_146
+ const EVENT_147
+ const EVENT_148
+ const EVENT_149
+ const EVENT_14A
+ const EVENT_14B
+ const EVENT_14C
+ const EVENT_14D
+ const EVENT_14E
+ const EVENT_14F
+ const EVENT_150
+ const EVENT_GOT_BIKE_VOUCHER
+ const EVENT_152
+ const EVENT_153
+ const EVENT_154
+ const EVENT_155
+ const EVENT_SEEL_FAN_BOAST
+ const EVENT_PIKACHU_FAN_BOAST
+ const EVENT_158
+ const EVENT_159
+ const EVENT_15A
+ const EVENT_15B
+ const EVENT_15C
+ const EVENT_15D
+ const EVENT_15E
+ const EVENT_15F
+ 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 EVENT_165
+ const EVENT_GOT_TM24
+ const EVENT_BEAT_LT_SURGE
+ const EVENT_168
+ const EVENT_169
+ const EVENT_16A
+ const EVENT_16B
+ const EVENT_16C
+ const EVENT_16D
+ const EVENT_16E
+ const EVENT_16F
+ const EVENT_170
+ const EVENT_171
+ const EVENT_172
+ const EVENT_173
+ const EVENT_174
+ const EVENT_175
+ const EVENT_176
+ const EVENT_177
+ const EVENT_178
+ const EVENT_179
+ const EVENT_17A
+ const EVENT_17B
+ const EVENT_17C
+ const EVENT_17D
+ const EVENT_17E
+ const EVENT_17F
+ const EVENT_GOT_TM41
+ const EVENT_181
+ const EVENT_182
+ const EVENT_183
+ const EVENT_184
+ const EVENT_185
+ const EVENT_186
+ const EVENT_187
+ const EVENT_188
+ const EVENT_189
+ const EVENT_18A
+ const EVENT_18B
+ const EVENT_GOT_TM13
+ const EVENT_GOT_TM48
+ const EVENT_GOT_TM49
+ const EVENT_GOT_TM18
+ const EVENT_190
+ const EVENT_191
+ const EVENT_192
+ const EVENT_193
+ const EVENT_194
+ const EVENT_195
+ const EVENT_196
+ const EVENT_197
+ const EVENT_198
+ const EVENT_199
+ const EVENT_19A
+ const EVENT_19B
+ const EVENT_19C
+ const EVENT_19D
+ const EVENT_19E
+ const EVENT_19F
+ const EVENT_1A0
+ const EVENT_1A1
+ const EVENT_1A2
+ const EVENT_1A3
+ const EVENT_1A4
+ const EVENT_1A5
+ const EVENT_1A6
+ const EVENT_1A7
+ 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 EVENT_1B1
+ const EVENT_1B2
+ const EVENT_1B3
+ const EVENT_1B4
+ const EVENT_1B5
+ const EVENT_1B6
+ const EVENT_1B7
+ 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 EVENT_1BD
+ const EVENT_1BE
+ const EVENT_1BF
+ const EVENT_1C0
+ const EVENT_1C1
+ const EVENT_1C2
+ const EVENT_1C3
+ const EVENT_1C4
+ const EVENT_1C5
+ const EVENT_1C6
+ const EVENT_1C7
+ const EVENT_1C8
+ const EVENT_1C9
+ const EVENT_1CA
+ const EVENT_1CB
+ const EVENT_1CC
+ const EVENT_1CD
+ const EVENT_1CE
+ const EVENT_1CF
+ const EVENT_1D0
+ const EVENT_1D1
+ const EVENT_1D2
+ const EVENT_1D3
+ const EVENT_1D4
+ const EVENT_1D5
+ const EVENT_1D6
+ const EVENT_1D7
+ const EVENT_1D8
+ const EVENT_1D9
+ const EVENT_1DA
+ const EVENT_1DB
+ const EVENT_1DC
+ const EVENT_1DD
+ const EVENT_1DE
+ const EVENT_1DF
+ const EVENT_GOT_COIN_CASE
+ const EVENT_1E1
+ const EVENT_1E2
+ const EVENT_1E3
+ const EVENT_1E4
+ const EVENT_1E5
+ const EVENT_1E6
+ const EVENT_1E7
+ const EVENT_1E8
+ const EVENT_1E9
+ const EVENT_1EA
+ const EVENT_1EB
+ const EVENT_1EC
+ const EVENT_1ED
+ const EVENT_1EE
+ const EVENT_1EF
+ const EVENT_1F0
+ const EVENT_1F1
+ const EVENT_1F2
+ const EVENT_1F3
+ const EVENT_1F4
+ const EVENT_1F5
+ const EVENT_1F6
+ const EVENT_1F7
+ const EVENT_1F8
+ const EVENT_1F9
+ const EVENT_1FA
+ const EVENT_1FB
+ const EVENT_1FC
+ const EVENT_1FD
+ const EVENT_1FE
+ const EVENT_1FF
+ const EVENT_200
+ const EVENT_201
+ const EVENT_202
+ const EVENT_203
+ const EVENT_204
+ const EVENT_205
+ const EVENT_206
+ const EVENT_207
+ const EVENT_208
+ const EVENT_209
+ const EVENT_20A
+ const EVENT_20B
+ const EVENT_20C
+ const EVENT_20D
+ const EVENT_20E
+ const EVENT_20F
+ const EVENT_210
+ const EVENT_211
+ const EVENT_212
+ const EVENT_213
+ const EVENT_214
+ const EVENT_215
+ const EVENT_216
+ const EVENT_217
+ const EVENT_218
+ const EVENT_219
+ const EVENT_21A
+ const EVENT_21B
+ const EVENT_21C
+ const EVENT_21D
+ const EVENT_21E
+ const EVENT_21F
+ const EVENT_220
+ const EVENT_221
+ const EVENT_222
+ const EVENT_223
+ const EVENT_224
+ const EVENT_225
+ const EVENT_226
+ const EVENT_227
+ const EVENT_228
+ const EVENT_229
+ const EVENT_22A
+ const EVENT_22B
+ const EVENT_22C
+ const EVENT_22D
+ const EVENT_22E
+ const EVENT_22F
+ const EVENT_230
+ const EVENT_231
+ const EVENT_232
+ const EVENT_233
+ const EVENT_234
+ const EVENT_235
+ const EVENT_236
+ const EVENT_237
+ const EVENT_GOT_HM04
+ const EVENT_GAVE_GOLD_TEETH
+ const EVENT_23A
+ const EVENT_23B
+ const EVENT_23C
+ const EVENT_23D
+ const EVENT_23E
+ const EVENT_23F
+ const EVENT_240
+ const EVENT_241
+ const EVENT_242
+ const EVENT_243
+ const EVENT_244
+ const EVENT_245
+ const EVENT_246
+ const EVENT_247
+ const EVENT_248
+ const EVENT_249
+ const EVENT_24A
+ const EVENT_24B
+ const EVENT_24C
+ const EVENT_24D
+ const EVENT_SAFARI_GAME_OVER
+ const EVENT_IN_SAFARI_ZONE
+ const EVENT_250
+ const EVENT_251
+ const EVENT_252
+ const EVENT_253
+ const EVENT_254
+ const EVENT_255
+ const EVENT_256
+ const EVENT_257
+ 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
+ const EVENT_260
+ const EVENT_261
+ const EVENT_262
+ const EVENT_263
+ const EVENT_264
+ const EVENT_265
+ const EVENT_266
+ const EVENT_267
+ const EVENT_268
+ const EVENT_269
+ const EVENT_26A
+ const EVENT_26B
+ const EVENT_26C
+ const EVENT_26D
+ const EVENT_26E
+ const EVENT_26F
+ const EVENT_270
+ const EVENT_271
+ const EVENT_272
+ const EVENT_273
+ const EVENT_274
+ const EVENT_275
+ const EVENT_276
+ const EVENT_277
+ const EVENT_MANSION_SWITCH_ON
+ const EVENT_279
+ const EVENT_27A
+ const EVENT_27B
+ const EVENT_27C
+ const EVENT_27D
+ const EVENT_27E
+ const EVENT_27F
+ const EVENT_280
+ const EVENT_281
+ const EVENT_282
+ const EVENT_283
+ const EVENT_284
+ const EVENT_285
+ const EVENT_286
+ const EVENT_287
+ const EVENT_288
+ const EVENT_BEAT_MANSION_1_TRAINER_0
+ const EVENT_28A
+ const EVENT_28B
+ const EVENT_28C
+ const EVENT_28D
+ const EVENT_28E
+ const EVENT_28F
+ const EVENT_290
+ const EVENT_291
+ const EVENT_292
+ const EVENT_293
+ const EVENT_294
+ const EVENT_295
+ const EVENT_296
+ const EVENT_297
+ 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 EVENT_2A1
+ const EVENT_2A2
+ const EVENT_2A3
+ const EVENT_2A4
+ const EVENT_2A5
+ const EVENT_2A6
+ 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 EVENT_2AF
+ const EVENT_2B0
+ const EVENT_2B1
+ const EVENT_2B2
+ const EVENT_2B3
+ const EVENT_2B4
+ const EVENT_2B5
+ const EVENT_2B6
+ const EVENT_2B7
+ const EVENT_2B8
+ const EVENT_2B9
+ const EVENT_2BA
+ const EVENT_2BB
+ const EVENT_2BC
+ const EVENT_2BD
+ const EVENT_2BE
+ const EVENT_2BF
+ const EVENT_2C0
+ const EVENT_2C1
+ const EVENT_2C2
+ const EVENT_2C3
+ const EVENT_2C4
+ const EVENT_2C5
+ const EVENT_2C6
+ const EVENT_2C7
+ const EVENT_2C8
+ const EVENT_2C9
+ const EVENT_2CA
+ const EVENT_2CB
+ const EVENT_2CC
+ const EVENT_2CD
+ const EVENT_2CE
+ const EVENT_2CF
+ const EVENT_2D0
+ const EVENT_2D1
+ const EVENT_2D2
+ const EVENT_2D3
+ const EVENT_2D4
+ const EVENT_2D5
+ const EVENT_2D6
+ const EVENT_GOT_TM35
+ const EVENT_2D8
+ const EVENT_2D9
+ const EVENT_2DA
+ const EVENT_2DB
+ const EVENT_2DC
+ const EVENT_2DD
+ const EVENT_2DE
+ const EVENT_2DF
+ const EVENT_GAVE_FOSSIL_TO_LAB
+ const EVENT_LAB_STILL_REVIVING_FOSSIL
+ const EVENT_LAB_HANDING_OVER_FOSSIL_MON
+ const EVENT_2E3
+ const EVENT_2E4
+ const EVENT_2E5
+ const EVENT_2E6
+ const EVENT_2E7
+ const EVENT_2E8
+ const EVENT_2E9
+ const EVENT_2EA
+ const EVENT_2EB
+ const EVENT_2EC
+ const EVENT_2ED
+ const EVENT_2EE
+ const EVENT_2EF
+ const EVENT_2F0
+ const EVENT_2F1
+ const EVENT_2F2
+ const EVENT_2F3
+ const EVENT_2F4
+ const EVENT_2F5
+ const EVENT_2F6
+ const EVENT_2F7
+ const EVENT_2F8
+ const EVENT_2F9
+ const EVENT_2FA
+ const EVENT_2FB
+ const EVENT_2FC
+ const EVENT_2FD
+ const EVENT_2FE
+ const EVENT_2FF
+ const EVENT_300
+ const EVENT_301
+ const EVENT_302
+ const EVENT_303
+ const EVENT_304
+ const EVENT_305
+ const EVENT_306
+ const EVENT_307
+ const EVENT_308
+ const EVENT_309
+ const EVENT_30A
+ const EVENT_30B
+ const EVENT_30C
+ const EVENT_30D
+ const EVENT_30E
+ const EVENT_30F
+ const EVENT_310
+ const EVENT_311
+ const EVENT_312
+ const EVENT_313
+ const EVENT_314
+ const EVENT_315
+ const EVENT_316
+ const EVENT_317
+ const EVENT_318
+ const EVENT_319
+ const EVENT_31A
+ const EVENT_31B
+ const EVENT_31C
+ const EVENT_31D
+ const EVENT_31E
+ const EVENT_31F
+ const EVENT_320
+ const EVENT_321
+ const EVENT_322
+ const EVENT_323
+ const EVENT_324
+ const EVENT_325
+ const EVENT_326
+ const EVENT_327
+ const EVENT_328
+ const EVENT_329
+ const EVENT_32A
+ const EVENT_32B
+ const EVENT_32C
+ const EVENT_32D
+ const EVENT_32E
+ const EVENT_32F
+ const EVENT_330
+ const EVENT_331
+ const EVENT_332
+ const EVENT_333
+ const EVENT_334
+ const EVENT_335
+ const EVENT_336
+ const EVENT_337
+ const EVENT_338
+ const EVENT_339
+ const EVENT_33A
+ const EVENT_33B
+ const EVENT_33C
+ const EVENT_33D
+ const EVENT_33E
+ const EVENT_33F
+ const EVENT_GOT_TM31
+ const EVENT_341
+ const EVENT_342
+ const EVENT_343
+ const EVENT_344
+ const EVENT_345
+ const EVENT_346
+ const EVENT_347
+ const EVENT_348
+ const EVENT_349
+ const EVENT_34A
+ const EVENT_34B
+ const EVENT_34C
+ const EVENT_34D
+ const EVENT_34E
+ const EVENT_34F
+ 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 EVENT_358
+ const EVENT_359
+ const EVENT_35A
+ const EVENT_35B
+ const EVENT_35C
+ const EVENT_35D
+ const EVENT_35E
+ const EVENT_35F
+ 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 EVENT_369
+ const EVENT_36A
+ const EVENT_36B
+ const EVENT_36C
+ const EVENT_36D
+ const EVENT_36E
+ const EVENT_36F
+ const EVENT_370
+ const EVENT_371
+ const EVENT_372
+ const EVENT_373
+ const EVENT_374
+ const EVENT_375
+ const EVENT_376
+ const EVENT_377
+ const EVENT_378
+ const EVENT_379
+ const EVENT_37A
+ const EVENT_37B
+ const EVENT_37C
+ const EVENT_37D
+ const EVENT_37E
+ const EVENT_37F
+ const EVENT_380
+ const EVENT_381
+ const EVENT_382
+ const EVENT_383
+ const EVENT_384
+ const EVENT_385
+ const EVENT_386
+ const EVENT_387
+ const EVENT_388
+ const EVENT_389
+ const EVENT_38A
+ const EVENT_38B
+ const EVENT_38C
+ const EVENT_38D
+ const EVENT_38E
+ const EVENT_38F
+ const EVENT_390
+ const EVENT_391
+ const EVENT_392
+ const EVENT_393
+ const EVENT_394
+ const EVENT_395
+ const EVENT_396
+ const EVENT_SILPH_CO_RECEPTIONIST_AT_DESK
+ const EVENT_398
+ const EVENT_399
+ const EVENT_39A
+ const EVENT_39B
+ const EVENT_39C
+ const EVENT_39D
+ const EVENT_39E
+ const EVENT_39F
+ const EVENT_3A0
+ const EVENT_3A1
+ const EVENT_3A2
+ const EVENT_3A3
+ const EVENT_3A4
+ const EVENT_3A5
+ const EVENT_3A6
+ const EVENT_3A7
+ const EVENT_3A8
+ const EVENT_3A9
+ const EVENT_3AA
+ const EVENT_3AB
+ const EVENT_3AC
+ const EVENT_3AD
+ const EVENT_3AE
+ const EVENT_3AF
+ const EVENT_GOT_TM29
+ const EVENT_3B1
+ const EVENT_3B2
+ const EVENT_3B3
+ const EVENT_3B4
+ const EVENT_3B5
+ const EVENT_3B6
+ const EVENT_3B7
+ const EVENT_3B8
+ const EVENT_3B9
+ const EVENT_3BA
+ const EVENT_3BB
+ const EVENT_3BC
+ const EVENT_3BD
+ const EVENT_3BE
+ const EVENT_3BF
+ const EVENT_GOT_POTION_SAMPLE
+ const EVENT_3C1
+ const EVENT_3C2
+ const EVENT_3C3
+ const EVENT_3C4
+ const EVENT_3C5
+ const EVENT_3C6
+ const EVENT_3C7
+ const EVENT_3C8
+ const EVENT_3C9
+ const EVENT_3CA
+ const EVENT_3CB
+ const EVENT_3CC
+ const EVENT_3CD
+ const EVENT_3CE
+ const EVENT_3CF
+ const EVENT_3D0
+ const EVENT_3D1
+ const EVENT_3D2
+ const EVENT_3D3
+ const EVENT_3D4
+ const EVENT_3D5
+ const EVENT_3D6
+ const EVENT_3D7
+ const EVENT_GOT_HM05
+ const EVENT_3D9
+ const EVENT_3DA
+ const EVENT_3DB
+ const EVENT_3DC
+ const EVENT_3DD
+ const EVENT_3DE
+ const EVENT_3DF
+ const EVENT_3E0
+ const EVENT_3E1
+ 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
+ const EVENT_3EA
+ const EVENT_3EB
+ const EVENT_3EC
+ const EVENT_3ED
+ const EVENT_3EE
+ const EVENT_3EF
+ const EVENT_3F0
+ const EVENT_3F1
+ const EVENT_BEAT_ROUTE_4_TRAINER_0
+ const EVENT_3F3
+ const EVENT_3F4
+ const EVENT_3F5
+ const EVENT_3F6
+ const EVENT_3F7
+ const EVENT_3F8
+ const EVENT_3F9
+ const EVENT_3FA
+ const EVENT_3FB
+ const EVENT_3FC
+ const EVENT_3FD
+ const EVENT_3FE
+ const EVENT_BOUGHT_MAGIKARP
+ const EVENT_400
+ const EVENT_401
+ const EVENT_402
+ const EVENT_403
+ const EVENT_404
+ const EVENT_405
+ const EVENT_406
+ const EVENT_407
+ const EVENT_408
+ const EVENT_409
+ const EVENT_40A
+ const EVENT_40B
+ const EVENT_40C
+ const EVENT_40D
+ const EVENT_40E
+ const EVENT_40F
+ const EVENT_410
+ 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
+ const EVENT_417
+ const EVENT_418
+ const EVENT_419
+ const EVENT_41A
+ const EVENT_41B
+ const EVENT_41C
+ const EVENT_41D
+ const EVENT_41E
+ const EVENT_41F
+ const EVENT_420
+ const EVENT_421
+ const EVENT_422
+ const EVENT_423
+ const EVENT_424
+ const EVENT_425
+ const EVENT_426
+ const EVENT_427
+ const EVENT_428
+ const EVENT_429
+ const EVENT_42A
+ const EVENT_42B
+ const EVENT_42C
+ const EVENT_42D
+ const EVENT_42E
+ const EVENT_42F
+ const EVENT_430
+ 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
+ const EVENT_43A
+ const EVENT_43B
+ const EVENT_43C
+ const EVENT_43D
+ const EVENT_43E
+ const EVENT_43F
+ const EVENT_440
+ 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
+ const EVENT_44A
+ const EVENT_44B
+ const EVENT_44C
+ const EVENT_44D
+ const EVENT_44E
+ const EVENT_44F
+ const EVENT_450
+ 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 EVENT_457
+ const EVENT_458
+ 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 EVENT_460
+ 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
+ const EVENT_46A
+ const EVENT_46B
+ const EVENT_46C
+ const EVENT_46D
+ const EVENT_46E
+ const EVENT_46F
+ const EVENT_470
+ 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 EVENT_47B
+ const EVENT_47C
+ const EVENT_47D
+ const EVENT_47E
+ const EVENT_GOT_ITEMFINDER
+ const EVENT_GOT_TM39
+ const EVENT_481
+ 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 EVENT_489
+ const EVENT_48A
+ const EVENT_48B
+ const EVENT_48C
+ const EVENT_48D
+ const EVENT_FIGHT_ROUTE12_SNORLAX
+ const EVENT_BEAT_ROUTE12_SNORLAX
+ const EVENT_490
+ 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
+ const EVENT_49B
+ const EVENT_49C
+ const EVENT_49D
+ const EVENT_49E
+ const EVENT_49F
+ const EVENT_4A0
+ 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
+ const EVENT_4AB
+ const EVENT_4AC
+ const EVENT_4AD
+ const EVENT_4AE
+ const EVENT_4AF
+ 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
+ const EVENT_4BB
+ const EVENT_4BC
+ const EVENT_4BD
+ const EVENT_4BE
+ const EVENT_4BF
+ const EVENT_4C0
+ 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 EVENT_4C7
+ const EVENT_FIGHT_ROUTE16_SNORLAX
+ const EVENT_BEAT_ROUTE16_SNORLAX
+ const EVENT_4CA
+ const EVENT_4CB
+ const EVENT_4CC
+ const EVENT_4CD
+ const EVENT_GOT_HM02
+ const EVENT_RESCUED_MR_FUJI
+ const EVENT_4D0
+ 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
+ const EVENT_4DB
+ const EVENT_4DC
+ const EVENT_4DD
+ const EVENT_4DE
+ const EVENT_4DF
+ const EVENT_4E0
+ const EVENT_BEAT_ROUTE_18_TRAINER_0
+ const EVENT_BEAT_ROUTE_18_TRAINER_1
+ const EVENT_BEAT_ROUTE_18_TRAINER_2
+ const EVENT_4E4
+ const EVENT_4E5
+ const EVENT_4E6
+ const EVENT_4E7
+ const EVENT_4E8
+ const EVENT_4E9
+ const EVENT_4EA
+ const EVENT_4EB
+ const EVENT_4EC
+ const EVENT_4ED
+ const EVENT_4EE
+ const EVENT_4EF
+ const EVENT_4F0
+ 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
+ const EVENT_4FB
+ const EVENT_4FC
+ const EVENT_4FD
+ const EVENT_4FE
+ const EVENT_4FF
+ 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 EVENT_50B
+ const EVENT_50C
+ const EVENT_50D
+ const EVENT_SEAFOAM1_BOULDER1_DOWN_HOLE
+ const EVENT_SEAFOAM1_BOULDER2_DOWN_HOLE
+ const EVENT_510
+ 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
+ const EVENT_51A
+ const EVENT_51B
+ const EVENT_51C
+ const EVENT_51D
+ const EVENT_51E
+ const EVENT_51F
+ const EVENT_1ST_ROUTE22_RIVAL_BATTLE
+ const EVENT_2ND_ROUTE22_RIVAL_BATTLE
+ const EVENT_522
+ const EVENT_523
+ const EVENT_524
+ const EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE
+ const EVENT_BEAT_ROUTE22_RIVAL_2ND_BATTLE
+ const EVENT_ROUTE22_RIVAL_WANTS_BATTLE
+ const EVENT_528
+ const EVENT_529
+ const EVENT_52A
+ const EVENT_52B
+ const EVENT_52C
+ const EVENT_52D
+ const EVENT_52E
+ const EVENT_52F
+ 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 EVENT_537
+ 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
+ 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 EVENT_548
+ const EVENT_NUGGET_REWARD_AVAILABLE
+ const EVENT_54A
+ const EVENT_54B
+ const EVENT_54C
+ const EVENT_54D
+ const EVENT_54E
+ 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 EVENT_55A
+ 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
+ const EVENT_560
+ const EVENT_561
+ const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_0
+ const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_1
+ const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_2
+ const EVENT_565
+ const EVENT_566
+ const EVENT_567
+ const EVENT_568
+ const EVENT_569
+ const EVENT_56A
+ const EVENT_56B
+ const EVENT_56C
+ const EVENT_56D
+ const EVENT_56E
+ const EVENT_56F
+ const EVENT_570
+ 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_578
+ 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_GOT_DOME_FOSSIL
+ const EVENT_GOT_HELIX_FOSSIL
+ const EVENT_580
+ const EVENT_581
+ const EVENT_582
+ const EVENT_583
+ const EVENT_584
+ const EVENT_585
+ const EVENT_586
+ const EVENT_587
+ const EVENT_588
+ const EVENT_589
+ const EVENT_58A
+ const EVENT_58B
+ const EVENT_58C
+ const EVENT_58D
+ const EVENT_58E
+ const EVENT_58F
+ const EVENT_590
+ const EVENT_591
+ const EVENT_592
+ const EVENT_593
+ const EVENT_594
+ const EVENT_595
+ const EVENT_596
+ const EVENT_597
+ const EVENT_598
+ const EVENT_599
+ const EVENT_59A
+ const EVENT_59B
+ const EVENT_59C
+ const EVENT_59D
+ const EVENT_59E
+ const EVENT_59F
+ const EVENT_5A0
+ const EVENT_5A1
+ const EVENT_5A2
+ const EVENT_5A3
+ const EVENT_5A4
+ const EVENT_5A5
+ const EVENT_5A6
+ const EVENT_5A7
+ const EVENT_5A8
+ const EVENT_5A9
+ const EVENT_5AA
+ const EVENT_5AB
+ const EVENT_5AC
+ const EVENT_5AD
+ const EVENT_5AE
+ const EVENT_5AF
+ const EVENT_5B0
+ const EVENT_5B1
+ const EVENT_5B2
+ const EVENT_5B3
+ const EVENT_5B4
+ const EVENT_5B5
+ const EVENT_5B6
+ const EVENT_5B7
+ const EVENT_5B8
+ const EVENT_5B9
+ const EVENT_5BA
+ const EVENT_5BB
+ const EVENT_5BC
+ const EVENT_5BD
+ const EVENT_5BE
+ const EVENT_5BF
+ const EVENT_5C0
+ const EVENT_5C1
+ const EVENT_5C2
+ const EVENT_5C3
+ const EVENT_BEAT_SS_ANNE_5_TRAINER_0
+ const EVENT_BEAT_SS_ANNE_5_TRAINER_1
+ const EVENT_5C6
+ const EVENT_5C7
+ const EVENT_5C8
+ const EVENT_5C9
+ const EVENT_5CA
+ const EVENT_5CB
+ const EVENT_5CC
+ const EVENT_5CD
+ const EVENT_5CE
+ const EVENT_5CF
+ const EVENT_5D0
+ const EVENT_5D1
+ const EVENT_5D2
+ const EVENT_5D3
+ const EVENT_5D4
+ const EVENT_5D5
+ const EVENT_5D6
+ const EVENT_5D7
+ const EVENT_5D8
+ const EVENT_5D9
+ const EVENT_5DA
+ const EVENT_5DB
+ const EVENT_5DC
+ const EVENT_5DD
+ const EVENT_5DE
+ const EVENT_5DF
+ 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 EVENT_5E6
+ const EVENT_5E7
+ const EVENT_5E8
+ const EVENT_5E9
+ const EVENT_5EA
+ const EVENT_5EB
+ const EVENT_5EC
+ const EVENT_5ED
+ const EVENT_5EE
+ const EVENT_5EF
+ const EVENT_5F0
+ 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 EVENT_5F5
+ const EVENT_5F6
+ const EVENT_5F7
+ const EVENT_5F8
+ const EVENT_5F9
+ const EVENT_5FA
+ const EVENT_5FB
+ const EVENT_5FC
+ const EVENT_5FD
+ const EVENT_5FE
+ const EVENT_5FF
+ const EVENT_600
+ 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 EVENT_605
+ const EVENT_606
+ const EVENT_607
+ const EVENT_608
+ const EVENT_609
+ const EVENT_60A
+ const EVENT_60B
+ const EVENT_60C
+ const EVENT_60D
+ const EVENT_60E
+ const EVENT_60F
+ const EVENT_610
+ 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
+ const EVENT_617
+ const EVENT_618
+ const EVENT_619
+ const EVENT_61A
+ const EVENT_61B
+ const EVENT_61C
+ const EVENT_61D
+ const EVENT_61E
+ const EVENT_61F
+ const EVENT_620
+ const EVENT_621
+ const EVENT_622
+ const EVENT_623
+ const EVENT_624
+ const EVENT_625
+ const EVENT_626
+ const EVENT_627
+ const EVENT_628
+ const EVENT_629
+ const EVENT_62A
+ const EVENT_62B
+ const EVENT_62C
+ const EVENT_62D
+ const EVENT_62E
+ const EVENT_62F
+ const EVENT_630
+ const EVENT_631
+ const EVENT_632
+ const EVENT_633
+ const EVENT_634
+ const EVENT_635
+ const EVENT_636
+ const EVENT_637
+ const EVENT_638
+ const EVENT_639
+ const EVENT_63A
+ const EVENT_63B
+ const EVENT_63C
+ const EVENT_63D
+ const EVENT_63E
+ const EVENT_63F
+ const EVENT_640
+ const EVENT_641
+ const EVENT_642
+ const EVENT_643
+ const EVENT_644
+ const EVENT_645
+ const EVENT_646
+ const EVENT_647
+ const EVENT_648
+ const EVENT_649
+ const EVENT_64A
+ const EVENT_64B
+ const EVENT_64C
+ const EVENT_64D
+ const EVENT_64E
+ const EVENT_64F
+ const EVENT_650
+ const EVENT_651
+ const EVENT_652
+ const EVENT_653
+ const EVENT_654
+ const EVENT_655
+ const EVENT_656
+ const EVENT_657
+ const EVENT_658
+ const EVENT_659
+ const EVENT_65A
+ const EVENT_65B
+ const EVENT_65C
+ const EVENT_65D
+ const EVENT_65E
+ const EVENT_65F
+ 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 EVENT_665
+ const EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH2
+ const EVENT_667
+ const EVENT_668
+ const EVENT_669
+ const EVENT_66A
+ const EVENT_66B
+ const EVENT_66C
+ const EVENT_66D
+ const EVENT_66E
+ const EVENT_66F
+ const EVENT_670
+ 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 EVENT_676
+ const EVENT_677
+ const EVENT_678
+ const EVENT_679
+ const EVENT_67A
+ const EVENT_67B
+ const EVENT_67C
+ const EVENT_67D
+ const EVENT_67E
+ const EVENT_67F
+ const EVENT_680
+ const EVENT_BEAT_ROCKET_HIDEOUT_2_TRAINER_0
+ const EVENT_682
+ const EVENT_683
+ const EVENT_684
+ const EVENT_685
+ const EVENT_686
+ const EVENT_687
+ const EVENT_688
+ const EVENT_689
+ const EVENT_68A
+ const EVENT_68B
+ const EVENT_68C
+ const EVENT_68D
+ const EVENT_68E
+ const EVENT_68F
+ const EVENT_690
+ const EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_0
+ const EVENT_BEAT_ROCKET_HIDEOUT_3_TRAINER_1
+ const EVENT_693
+ const EVENT_694
+ const EVENT_695
+ const EVENT_696
+ const EVENT_697
+ const EVENT_698
+ const EVENT_699
+ const EVENT_69A
+ const EVENT_69B
+ const EVENT_69C
+ const EVENT_69D
+ const EVENT_69E
+ const EVENT_69F
+ const EVENT_6A0
+ const EVENT_6A1
+ 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
+ const EVENT_6A8
+ const EVENT_6A9
+ const EVENT_6AA
+ const EVENT_6AB
+ const EVENT_6AC
+ const EVENT_6AD
+ const EVENT_6AE
+ const EVENT_6AF
+ const EVENT_6B0
+ const EVENT_6B1
+ const EVENT_6B2
+ const EVENT_6B3
+ const EVENT_6B4
+ const EVENT_6B5
+ const EVENT_6B6
+ const EVENT_6B7
+ const EVENT_6B8
+ const EVENT_6B9
+ const EVENT_6BA
+ const EVENT_6BB
+ const EVENT_6BC
+ const EVENT_6BD
+ const EVENT_6BE
+ const EVENT_6BF
+ const EVENT_6C0
+ const EVENT_6C1
+ const EVENT_6C2
+ const EVENT_6C3
+ const EVENT_6C4
+ const EVENT_6C5
+ const EVENT_6C6
+ const EVENT_6C7
+ const EVENT_6C8
+ const EVENT_6C9
+ const EVENT_6CA
+ const EVENT_6CB
+ const EVENT_6CC
+ const EVENT_6CD
+ const EVENT_6CE
+ const EVENT_6CF
+ const EVENT_6D0
+ const EVENT_6D1
+ const EVENT_6D2
+ const EVENT_6D3
+ const EVENT_6D4
+ const EVENT_6D5
+ const EVENT_6D6
+ const EVENT_6D7
+ const EVENT_6D8
+ const EVENT_6D9
+ const EVENT_6DA
+ const EVENT_6DB
+ const EVENT_6DC
+ const EVENT_6DD
+ const EVENT_6DE
+ const EVENT_6DF
+ const EVENT_6E0
+ const EVENT_6E1
+ const EVENT_6E2
+ const EVENT_6E3
+ const EVENT_6E4
+ const EVENT_6E5
+ const EVENT_6E6
+ const EVENT_6E7
+ const EVENT_6E8
+ const EVENT_6E9
+ const EVENT_6EA
+ const EVENT_6EB
+ const EVENT_6EC
+ const EVENT_6ED
+ const EVENT_6EE
+ const EVENT_6EF
+ const EVENT_6F0
+ const EVENT_6F1
+ 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 EVENT_6F6
+ const EVENT_6F7
+ const EVENT_6F8
+ const EVENT_6F9
+ const EVENT_6FA
+ const EVENT_6FB
+ const EVENT_6FC
+ const EVENT_SILPH_CO_2_UNLOCKED_DOOR1
+ const EVENT_SILPH_CO_2_UNLOCKED_DOOR2
+ const EVENT_GOT_TM36
+ const EVENT_700
+ const EVENT_701
+ const EVENT_BEAT_SILPH_CO_3F_TRAINER_0
+ const EVENT_BEAT_SILPH_CO_3F_TRAINER_1
+ const EVENT_704
+ const EVENT_705
+ const EVENT_706
+ const EVENT_707
+ const EVENT_SILPH_CO_3_UNLOCKED_DOOR1
+ const EVENT_SILPH_CO_3_UNLOCKED_DOOR2
+ const EVENT_70A
+ const EVENT_70B
+ const EVENT_70C
+ const EVENT_70D
+ const EVENT_70E
+ const EVENT_70F
+ const EVENT_710
+ const EVENT_711
+ 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 EVENT_715
+ const EVENT_716
+ const EVENT_717
+ const EVENT_SILPH_CO_4_UNLOCKED_DOOR1
+ const EVENT_SILPH_CO_4_UNLOCKED_DOOR2
+ const EVENT_71A
+ const EVENT_71B
+ const EVENT_71C
+ const EVENT_71D
+ const EVENT_71E
+ const EVENT_71F
+ const EVENT_720
+ const EVENT_721
+ 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 EVENT_726
+ const EVENT_727
+ const EVENT_SILPH_CO_5_UNLOCKED_DOOR1
+ const EVENT_SILPH_CO_5_UNLOCKED_DOOR2
+ const EVENT_SILPH_CO_5_UNLOCKED_DOOR3
+ const EVENT_72B
+ const EVENT_72C
+ const EVENT_72D
+ const EVENT_72E
+ const EVENT_72F
+ const EVENT_730
+ const EVENT_731
+ const EVENT_732
+ const EVENT_733
+ const EVENT_734
+ const EVENT_735
+ 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 EVENT_739
+ const EVENT_73A
+ const EVENT_73B
+ const EVENT_73C
+ const EVENT_73D
+ const EVENT_73E
+ const EVENT_SILPH_CO_6_UNLOCKED_DOOR
+ const EVENT_BEAT_SILPH_CO_RIVAL
+ const EVENT_741
+ const EVENT_742
+ const EVENT_743
+ const EVENT_744
+ 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 EVENT_749
+ const EVENT_74A
+ const EVENT_74B
+ const EVENT_SILPH_CO_7_UNLOCKED_DOOR1
+ const EVENT_SILPH_CO_7_UNLOCKED_DOOR2
+ const EVENT_SILPH_CO_7_UNLOCKED_DOOR3
+ const EVENT_74F
+ const EVENT_750
+ const EVENT_751
+ 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 EVENT_755
+ const EVENT_756
+ const EVENT_757
+ const EVENT_SILPH_CO_8_UNLOCKED_DOOR
+ const EVENT_759
+ const EVENT_75A
+ const EVENT_75B
+ const EVENT_75C
+ const EVENT_75D
+ const EVENT_75E
+ const EVENT_75F
+ const EVENT_760
+ const EVENT_761
+ 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 EVENT_765
+ const EVENT_766
+ const EVENT_767
+ 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 EVENT_76C
+ const EVENT_76D
+ const EVENT_76E
+ const EVENT_76F
+ const EVENT_770
+ const EVENT_BEAT_SILPH_CO_10F_TRAINER_0
+ const EVENT_BEAT_SILPH_CO_10F_TRAINER_1
+ const EVENT_773
+ const EVENT_774
+ const EVENT_775
+ const EVENT_776
+ const EVENT_777
+ const EVENT_SILPH_CO_10_UNLOCKED_DOOR
+ const EVENT_779
+ const EVENT_77A
+ const EVENT_77B
+ const EVENT_77C
+ const EVENT_77D
+ const EVENT_77E
+ const EVENT_77F
+ const EVENT_780
+ const EVENT_781
+ const EVENT_782
+ const EVENT_783
+ const EVENT_BEAT_SILPH_CO_11F_TRAINER_0
+ const EVENT_BEAT_SILPH_CO_11F_TRAINER_1
+ const EVENT_786
+ const EVENT_787
+ const EVENT_SILPH_CO_11_UNLOCKED_DOOR
+ const EVENT_789
+ const EVENT_78A
+ const EVENT_78B
+ const EVENT_78C
+ const EVENT_GOT_MASTER_BALL
+ const EVENT_78E
+ const EVENT_BEAT_SILPH_CO_GIOVANNI
+ const EVENT_790
+ const EVENT_791
+ const EVENT_792
+ const EVENT_793
+ const EVENT_794
+ const EVENT_795
+ const EVENT_796
+ const EVENT_797
+ const EVENT_798
+ const EVENT_799
+ const EVENT_79A
+ const EVENT_79B
+ const EVENT_79C
+ const EVENT_79D
+ const EVENT_79E
+ const EVENT_79F
+ const EVENT_7A0
+ const EVENT_7A1
+ const EVENT_7A2
+ const EVENT_7A3
+ const EVENT_7A4
+ const EVENT_7A5
+ const EVENT_7A6
+ const EVENT_7A7
+ const EVENT_7A8
+ const EVENT_7A9
+ const EVENT_7AA
+ const EVENT_7AB
+ const EVENT_7AC
+ const EVENT_7AD
+ const EVENT_7AE
+ const EVENT_7AF
+ const EVENT_7B0
+ const EVENT_7B1
+ const EVENT_7B2
+ const EVENT_7B3
+ const EVENT_7B4
+ const EVENT_7B5
+ const EVENT_7B6
+ const EVENT_7B7
+ const EVENT_7B8
+ const EVENT_7B9
+ const EVENT_7BA
+ const EVENT_7BB
+ const EVENT_7BC
+ const EVENT_7BD
+ const EVENT_7BE
+ const EVENT_7BF
+ const EVENT_7C0
+ const EVENT_7C1
+ const EVENT_7C2
+ const EVENT_7C3
+ const EVENT_7C4
+ const EVENT_7C5
+ const EVENT_7C6
+ const EVENT_7C7
+ const EVENT_7C8
+ const EVENT_7C9
+ const EVENT_7CA
+ const EVENT_7CB
+ const EVENT_7CC
+ const EVENT_7CD
+ const EVENT_7CE
+ const EVENT_7CF
+ const EVENT_7D0
+ const EVENT_7D1
+ const EVENT_7D2
+ const EVENT_7D3
+ const EVENT_7D4
+ const EVENT_7D5
+ const EVENT_7D6
+ const EVENT_7D7
+ const EVENT_7D8
+ const EVENT_7D9
+ const EVENT_7DA
+ const EVENT_7DB
+ const EVENT_7DC
+ const EVENT_7DD
+ const EVENT_7DE
+ const EVENT_7DF
+ const EVENT_7E0
+ const EVENT_7E1
+ const EVENT_7E2
+ const EVENT_7E3
+ const EVENT_7E4
+ const EVENT_7E5
+ const EVENT_7E6
+ const EVENT_7E7
+ const EVENT_7E8
+ const EVENT_7E9
+ const EVENT_7EA
+ const EVENT_7EB
+ const EVENT_7EC
+ const EVENT_7ED
+ const EVENT_7EE
+ const EVENT_7EF
+ const EVENT_7F0
+ const EVENT_7F1
+ const EVENT_7F2
+ const EVENT_7F3
+ const EVENT_7F4
+ const EVENT_7F5
+ const EVENT_7F6
+ const EVENT_7F7
+ const EVENT_7F8
+ const EVENT_7F9
+ const EVENT_7FA
+ const EVENT_7FB
+ const EVENT_7FC
+ const EVENT_7FD
+ const EVENT_7FE
+ const EVENT_7FF
+ const EVENT_800
+ const EVENT_BEAT_MANSION_2_TRAINER_0
+ const EVENT_802
+ const EVENT_803
+ const EVENT_804
+ const EVENT_805
+ const EVENT_806
+ const EVENT_807
+ const EVENT_808
+ const EVENT_809
+ const EVENT_80A
+ const EVENT_80B
+ const EVENT_80C
+ const EVENT_80D
+ const EVENT_80E
+ const EVENT_80F
+ const EVENT_810
+ const EVENT_BEAT_MANSION_3_TRAINER_0
+ const EVENT_BEAT_MANSION_3_TRAINER_1
+ const EVENT_813
+ const EVENT_814
+ const EVENT_815
+ const EVENT_816
+ const EVENT_817
+ const EVENT_818
+ const EVENT_819
+ const EVENT_81A
+ const EVENT_81B
+ const EVENT_81C
+ const EVENT_81D
+ const EVENT_81E
+ const EVENT_81F
+ const EVENT_820
+ const EVENT_BEAT_MANSION_4_TRAINER_0
+ const EVENT_BEAT_MANSION_4_TRAINER_1
+ const EVENT_823
+ const EVENT_824
+ const EVENT_825
+ const EVENT_826
+ const EVENT_827
+ const EVENT_828
+ const EVENT_829
+ const EVENT_82A
+ const EVENT_82B
+ const EVENT_82C
+ const EVENT_82D
+ const EVENT_82E
+ const EVENT_82F
+ const EVENT_830
+ const EVENT_831
+ const EVENT_832
+ const EVENT_833
+ const EVENT_834
+ const EVENT_835
+ const EVENT_836
+ const EVENT_837
+ const EVENT_838
+ const EVENT_839
+ const EVENT_83A
+ const EVENT_83B
+ const EVENT_83C
+ const EVENT_83D
+ const EVENT_83E
+ const EVENT_83F
+ const EVENT_840
+ const EVENT_841
+ const EVENT_842
+ const EVENT_843
+ const EVENT_844
+ const EVENT_845
+ const EVENT_846
+ const EVENT_847
+ const EVENT_848
+ const EVENT_849
+ const EVENT_84A
+ const EVENT_84B
+ const EVENT_84C
+ const EVENT_84D
+ const EVENT_84E
+ const EVENT_84F
+ const EVENT_850
+ const EVENT_851
+ const EVENT_852
+ const EVENT_853
+ const EVENT_854
+ const EVENT_855
+ const EVENT_856
+ const EVENT_857
+ const EVENT_858
+ const EVENT_859
+ const EVENT_85A
+ const EVENT_85B
+ const EVENT_85C
+ const EVENT_85D
+ const EVENT_85E
+ const EVENT_85F
+ const EVENT_860
+ const EVENT_861
+ const EVENT_862
+ const EVENT_863
+ const EVENT_864
+ const EVENT_865
+ const EVENT_866
+ const EVENT_867
+ const EVENT_868
+ const EVENT_869
+ const EVENT_86A
+ const EVENT_86B
+ const EVENT_86C
+ const EVENT_86D
+ const EVENT_86E
+ const EVENT_86F
+ const EVENT_870
+ const EVENT_871
+ const EVENT_872
+ const EVENT_873
+ const EVENT_874
+ const EVENT_875
+ const EVENT_876
+ const EVENT_877
+ const EVENT_878
+ const EVENT_879
+ const EVENT_87A
+ const EVENT_87B
+ const EVENT_87C
+ const EVENT_87D
+ const EVENT_87E
+ const EVENT_87F
+ const EVENT_GOT_HM03
+ const EVENT_881
+ const EVENT_882
+ const EVENT_883
+ const EVENT_884
+ const EVENT_885
+ const EVENT_886
+ const EVENT_887
+ const EVENT_888
+ const EVENT_889
+ const EVENT_88A
+ const EVENT_88B
+ const EVENT_88C
+ const EVENT_88D
+ const EVENT_88E
+ const EVENT_88F
+ const EVENT_890
+ const EVENT_891
+ const EVENT_892
+ const EVENT_893
+ const EVENT_894
+ const EVENT_895
+ const EVENT_896
+ const EVENT_897
+ const EVENT_898
+ const EVENT_899
+ const EVENT_89A
+ const EVENT_89B
+ const EVENT_89C
+ const EVENT_89D
+ const EVENT_89E
+ const EVENT_89F
+ const EVENT_8A0
+ const EVENT_8A1
+ const EVENT_8A2
+ const EVENT_8A3
+ const EVENT_8A4
+ const EVENT_8A5
+ const EVENT_8A6
+ const EVENT_8A7
+ const EVENT_8A8
+ const EVENT_8A9
+ const EVENT_8AA
+ const EVENT_8AB
+ const EVENT_8AC
+ const EVENT_8AD
+ const EVENT_8AE
+ const EVENT_8AF
+ const EVENT_8B0
+ const EVENT_8B1
+ const EVENT_8B2
+ const EVENT_8B3
+ const EVENT_8B4
+ const EVENT_8B5
+ const EVENT_8B6
+ const EVENT_8B7
+ const EVENT_8B8
+ const EVENT_8B9
+ const EVENT_8BA
+ const EVENT_8BB
+ const EVENT_8BC
+ const EVENT_8BD
+ const EVENT_8BE
+ const EVENT_8BF
+ const EVENT_8C0
+ const EVENT_BEAT_MEWTWO
+ const EVENT_8C2
+ const EVENT_8C3
+ const EVENT_8C4
+ const EVENT_8C5
+ const EVENT_8C6
+ const EVENT_8C7
+ const EVENT_8C8
+ const EVENT_8C9
+ const EVENT_8CA
+ const EVENT_8CB
+ const EVENT_8CC
+ const EVENT_8CD
+ const EVENT_8CE
+ const EVENT_8CF
+ const EVENT_8D0
+ const EVENT_8D1
+ const EVENT_8D2
+ const EVENT_8D3
+ const EVENT_8D4
+ const EVENT_8D5
+ const EVENT_8D6
+ const EVENT_8D7
+ const EVENT_8D8
+ const EVENT_8D9
+ const EVENT_8DA
+ const EVENT_8DB
+ const EVENT_8DC
+ const EVENT_8DD
+ const EVENT_8DE
+ const EVENT_8DF
+ const ELITE4_EVENTS_START
+ const EVENT_BEAT_LORELEIS_ROOM_TRAINER_0
+ const EVENT_8E2
+ const EVENT_8E3
+ const EVENT_8E4
+ const EVENT_8E5
+ const EVENT_AUTOWALKED_INTO_LORELEIS_ROOM
+ const EVENT_8E7
+ const EVENT_8E8
+ const EVENT_BEAT_BRUNOS_ROOM_TRAINER_0
+ const EVENT_8EA
+ const EVENT_8EB
+ const EVENT_8EC
+ const EVENT_8ED
+ const EVENT_AUTOWALKED_INTO_BRUNOS_ROOM
+ const EVENT_8EF
+ const EVENT_8F0
+ const EVENT_BEAT_AGATHAS_ROOM_TRAINER_0
+ const EVENT_8F2
+ const EVENT_8F3
+ const EVENT_8F4
+ const EVENT_8F5
+ const EVENT_AUTOWALKED_INTO_AGATHAS_ROOM
+ const EVENT_8F7
+ const EVENT_8F8
+ const EVENT_BEAT_LANCES_ROOM_TRAINER_0
+ const EVENT_8FA
+ const EVENT_8FB
+ const EVENT_8FC
+ const EVENT_8FD
+ const EVENT_BEAT_LANCE
+ const EVENT_LANCES_ROOM_LOCK_DOOR
+ const EVENT_900
+ const EVENT_BEAT_CHAMPION_RIVAL
+ const EVENT_902
+ const EVENT_903
+ const EVENT_904
+ const EVENT_905
+ const EVENT_906
+ const ELITE4_CHAMPION_EVENTS_END
+ const EVENT_908
+ const EVENT_909
+ const EVENT_90A
+ const EVENT_90B
+ const EVENT_90C
+ const EVENT_90D
+ const EVENT_90E
+ const EVENT_90F
+ const EVENT_910
+ const EVENT_BEAT_VICTORY_ROAD_1_TRAINER_0
+ const EVENT_BEAT_VICTORY_ROAD_1_TRAINER_1
+ const EVENT_913
+ const EVENT_914
+ const EVENT_915
+ const EVENT_916
+ const EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH
+ const EVENT_918
+ const EVENT_919
+ const EVENT_91A
+ const EVENT_91B
+ const EVENT_91C
+ const EVENT_91D
+ const EVENT_91E
+ const EVENT_91F
+ const EVENT_920
+ const EVENT_921
+ const EVENT_922
+ const EVENT_923
+ const EVENT_924
+ const EVENT_925
+ const EVENT_926
+ const EVENT_927
+ const EVENT_928
+ const EVENT_929
+ const EVENT_92A
+ const EVENT_92B
+ const EVENT_92C
+ const EVENT_92D
+ const EVENT_92E
+ const EVENT_92F
+ const EVENT_930
+ const EVENT_931
+ const EVENT_932
+ const EVENT_933
+ const EVENT_934
+ const EVENT_935
+ const EVENT_936
+ const EVENT_937
+ const EVENT_938
+ const EVENT_939
+ const EVENT_93A
+ const EVENT_93B
+ const EVENT_93C
+ const EVENT_93D
+ const EVENT_93E
+ const EVENT_93F
+ const EVENT_940
+ const EVENT_941
+ const EVENT_942
+ const EVENT_943
+ const EVENT_944
+ const EVENT_945
+ const EVENT_946
+ const EVENT_947
+ const EVENT_948
+ const EVENT_949
+ const EVENT_94A
+ const EVENT_94B
+ const EVENT_94C
+ const EVENT_94D
+ const EVENT_94E
+ const EVENT_94F
+ const EVENT_950
+ const EVENT_951
+ const EVENT_952
+ const EVENT_953
+ const EVENT_954
+ const EVENT_955
+ const EVENT_956
+ const EVENT_957
+ const EVENT_958
+ const EVENT_959
+ const EVENT_95A
+ const EVENT_95B
+ const EVENT_95C
+ const EVENT_95D
+ const EVENT_95E
+ const EVENT_95F
+ const EVENT_960
+ const EVENT_961
+ const EVENT_962
+ const EVENT_963
+ const EVENT_964
+ const EVENT_965
+ const EVENT_966
+ const EVENT_967
+ const EVENT_968
+ const EVENT_969
+ const EVENT_96A
+ const EVENT_96B
+ const EVENT_96C
+ const EVENT_96D
+ const EVENT_96E
+ const EVENT_96F
+ const EVENT_970
+ const EVENT_971
+ const EVENT_972
+ const EVENT_973
+ const EVENT_974
+ const EVENT_975
+ const EVENT_976
+ const EVENT_977
+ const EVENT_978
+ const EVENT_979
+ const EVENT_97A
+ const EVENT_97B
+ const EVENT_97C
+ const EVENT_97D
+ const EVENT_97E
+ const EVENT_97F
+ const EVENT_980
+ const EVENT_981
+ const EVENT_982
+ const EVENT_983
+ const EVENT_984
+ const EVENT_985
+ const EVENT_986
+ const EVENT_987
+ const EVENT_988
+ const EVENT_989
+ const EVENT_98A
+ const EVENT_98B
+ const EVENT_98C
+ const EVENT_98D
+ const EVENT_98E
+ const EVENT_98F
+ const EVENT_990
+ const EVENT_991
+ const EVENT_992
+ const EVENT_993
+ const EVENT_994
+ const EVENT_995
+ const EVENT_996
+ const EVENT_997
+ const EVENT_998
+ const EVENT_999
+ const EVENT_99A
+ const EVENT_99B
+ const EVENT_99C
+ const EVENT_99D
+ const EVENT_99E
+ const EVENT_99F
+ const EVENT_9A0
+ const EVENT_9A1
+ const EVENT_9A2
+ const EVENT_9A3
+ const EVENT_9A4
+ const EVENT_9A5
+ const EVENT_9A6
+ const EVENT_9A7
+ const EVENT_9A8
+ const EVENT_9A9
+ const EVENT_9AA
+ const EVENT_9AB
+ const EVENT_9AC
+ const EVENT_9AD
+ const EVENT_9AE
+ const EVENT_9AF
+ const EVENT_9B0
+ 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
+ const EVENT_9B9
+ const EVENT_9BA
+ const EVENT_9BB
+ const EVENT_9BC
+ const EVENT_9BD
+ const EVENT_9BE
+ const EVENT_9BF
+ const EVENT_SEAFOAM2_BOULDER1_DOWN_HOLE
+ const EVENT_SEAFOAM2_BOULDER2_DOWN_HOLE
+ const EVENT_9C2
+ const EVENT_9C3
+ const EVENT_9C4
+ const EVENT_9C5
+ const EVENT_9C6
+ const EVENT_9C7
+ const EVENT_SEAFOAM3_BOULDER1_DOWN_HOLE
+ const EVENT_SEAFOAM3_BOULDER2_DOWN_HOLE
+ const EVENT_9CA
+ const EVENT_9CB
+ const EVENT_9CC
+ const EVENT_9CD
+ const EVENT_9CE
+ const EVENT_9CF
+ const EVENT_SEAFOAM4_BOULDER1_DOWN_HOLE
+ const EVENT_SEAFOAM4_BOULDER2_DOWN_HOLE
+ const EVENT_9D2
+ const EVENT_9D3
+ const EVENT_9D4
+ const EVENT_9D5
+ const EVENT_9D6
+ const EVENT_9D7
+ const EVENT_9D8
+ const EVENT_9D9
+ const EVENT_BEAT_ARTICUNO
+ const EVENT_9DB
+ const EVENT_9DC
+ const EVENT_9DD
+ const EVENT_9DE
+ const EVENT_9DF
+ const EVENT_9E0
+ const EVENT_9E1
+ const EVENT_9E2
+ const EVENT_9E3
+ const EVENT_9E4
+ const EVENT_9E5
+ const EVENT_9E6
+ const EVENT_9E7
+ const EVENT_9E8
+ const EVENT_9E9
+ const EVENT_9EA
+ const EVENT_9EB
+ const EVENT_9EC
+ const EVENT_9ED
+ const EVENT_9EE
+ const EVENT_9EF
+ const EVENT_9F0
+ const EVENT_9F1
+ const EVENT_9F2
+ const EVENT_9F3
+ const EVENT_9F4
+ const EVENT_9F5
+ const EVENT_9F6
+ const EVENT_9F7
+ const EVENT_9F8
+ const EVENT_9F9
+ const EVENT_9FA
+ const EVENT_9FB
+ const EVENT_9FC
+ const EVENT_9FD
+ const EVENT_9FE
+ const EVENT_9FF
diff --git a/constants/evolution_constants.asm b/constants/evolution_constants.asm
deleted file mode 100755
index 86c466d8..00000000
--- 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 00000000..04671ecb
--- /dev/null
+++ b/constants/gfx_constants.asm
@@ -0,0 +1,17 @@
+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)
+
+; HP bar
+HP_BAR_GREEN EQU 0
+HP_BAR_YELLOW EQU 1
+HP_BAR_RED EQU 2
diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm
index 9f2aa1b7..993a02f5 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 805d16ec..1aeb9149 100755
--- a/constants/hide_show_constants.asm
+++ b/constants/hide_show_constants.asm
@@ -4,8 +4,7 @@
; (they are either items or sprites that deactivate after battle
; and are detected in wMissableObjectList)
-const_value = 0
-
+ const_def
const HS_PALLET_TOWN_OAK ; 00
const HS_LYING_OLD_MAN ; 01
const HS_OLD_MAN ; 02
diff --git a/constants/icon_constants.asm b/constants/icon_constants.asm
new file mode 100644
index 00000000..b96c516d
--- /dev/null
+++ b/constants/icon_constants.asm
@@ -0,0 +1,12 @@
+; party menu icons
+ 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
diff --git a/constants/input_constants.asm b/constants/input_constants.asm
new file mode 100644
index 00000000..d7aae05b
--- /dev/null
+++ b/constants/input_constants.asm
@@ -0,0 +1,18 @@
+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_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
diff --git a/constants/item_constants.asm b/constants/item_constants.asm
index fe6fcb15..a0c32d14 100755
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -1,5 +1,5 @@
-const_value = 1
-
+ const_def
+ const NO_ITEM ; $00
const MASTER_BALL ; $01
const ULTRA_BALL ; $02
const GREAT_BALL ; $03
diff --git a/constants/list_constants.asm b/constants/list_constants.asm
index 7e26a6b6..380df21c 100755
--- a/constants/list_constants.asm
+++ b/constants/list_constants.asm
@@ -1,20 +1,23 @@
-; 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
+ 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_data_constants.asm b/constants/map_data_constants.asm
new file mode 100755
index 00000000..4b98bdb3
--- /dev/null
+++ b/constants/map_data_constants.asm
@@ -0,0 +1,14 @@
+; 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
+
+; tileset environments
+INDOOR EQU 0
+CAVE EQU 1
+OUTDOOR EQU 2
diff --git a/constants/map_object_constants.asm b/constants/map_object_constants.asm
new file mode 100644
index 00000000..f5fc952b
--- /dev/null
+++ b/constants/map_object_constants.asm
@@ -0,0 +1,14 @@
+; different kinds of people events
+ITEM EQU $80
+TRAINER EQU $40
+
+WALK EQU $FE
+STAY EQU $FF
+
+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 00000000..75cbe54c
--- /dev/null
+++ b/constants/menu_constants.asm
@@ -0,0 +1,70 @@
+BAG_ITEM_CAPACITY EQU 20
+PC_ITEM_CAPACITY EQU 50
+
+; 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
+
+; 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
diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm
index d6a935f8..6e4c5f93 100644
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -1,208 +1,8 @@
-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
-
-; 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
-
-; 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
diff --git a/constants/move_animation_constants.asm b/constants/move_animation_constants.asm
index 27658c83..d2025f4e 100644
--- a/constants/move_animation_constants.asm
+++ b/constants/move_animation_constants.asm
@@ -1,8 +1,6 @@
-; subanimations
+; special effects that are part of move animations
-const_value = $D8
-
-; special effects, prefaced with "SE" for "Special Effect"
+ const_def $D8
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
diff --git a/constants/move_constants.asm b/constants/move_constants.asm
index dfbb500e..5dd06a41 100644
--- a/constants/move_constants.asm
+++ b/constants/move_constants.asm
@@ -1,5 +1,5 @@
-const_value = 1
-
+ const_def
+ const NO_MOVE ; 00
const POUND ; 01
const KARATE_CHOP ; 02
const DOUBLESLAP ; 03
@@ -165,9 +165,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 b66772d1..36a60a41 100644
--- a/constants/move_effect_constants.asm
+++ b/constants/move_effect_constants.asm
@@ -2,8 +2,8 @@
; {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
+ const_def
const NO_ADDITIONAL_EFFECT ; $00
const UNUSED_EFFECT_01 ; $01
const POISON_SIDE_EFFECT1 ; $02
@@ -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 de91352e..3f3f111e 100644
--- a/constants/music_constants.asm
+++ b/constants/music_constants.asm
@@ -1,50 +1,3 @@
-; 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"
-
-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.
music_const: MACRO
@@ -103,6 +56,7 @@ ENDM
music_const MUSIC_MEET_MALE_TRAINER, Music_MeetMaleTrainer
; AUDIO_1 AUDIO_2 AUDIO_3
+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
@@ -122,6 +76,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
@@ -160,6 +117,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
@@ -204,6 +162,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
@@ -214,6 +173,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
@@ -263,6 +224,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
@@ -275,3 +238,6 @@ 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"
+
+SFX_STOP_ALL_MUSIC EQU $ff
diff --git a/constants/palette_constants.asm b/constants/palette_constants.asm
index 1413ad98..c0c397ee 100755
--- a/constants/palette_constants.asm
+++ b/constants/palette_constants.asm
@@ -5,25 +5,28 @@
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
+ 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
+ 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 b80547f7..e462586e 100644
--- a/constants/pokedex_constants.asm
+++ b/constants/pokedex_constants.asm
@@ -1,5 +1,4 @@
-const_value = 1
-
+ const_def 1
const DEX_BULBASAUR ; 1
const DEX_IVYSAUR ; 2
const DEX_VENUSAUR ; 3
@@ -152,4 +151,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 f8a38731..7abdd4d3 100644
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -1,5 +1,5 @@
-const_value = 1
-
+ const_def
+ const NO_MON ; $00
const RHYDON ; $01
const KANGASKHAN ; $02
const NIDORAN_M ; $03
@@ -191,4 +191,4 @@ const_value = 1
const WEEPINBELL ; $BD
const VICTREEBEL ; $BE
-NUM_POKEMON_INDEXES EQU const_value + -1
+NUM_POKEMON_INDEXES EQU const_value - 1
diff --git a/constants/pokemon_data_constants.asm b/constants/pokemon_data_constants.asm
new file mode 100755
index 00000000..c5245026
--- /dev/null
+++ b/constants/pokemon_data_constants.asm
@@ -0,0 +1,28 @@
+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.
+PLAYER_PARTY_DATA EQU 0
+ENEMY_PARTY_DATA EQU 1
+BOX_DATA EQU 2
+DAYCARE_DATA EQU 3
+BATTLE_MON_DATA EQU 4
+
+
+; See data/pokemon/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/script_constants.asm b/constants/script_constants.asm
new file mode 100644
index 00000000..c04e9ca0
--- /dev/null
+++ b/constants/script_constants.asm
@@ -0,0 +1,12 @@
+; emotion bubbles
+EXCLAMATION_BUBBLE EQU 0
+QUESTION_BUBBLE EQU 1
+SMILE_BUBBLE EQU 2
+
+; slot symbols
+SLOTS7 EQU $0200
+SLOTSBAR EQU $0604
+SLOTSCHERRY EQU $0A08
+SLOTSFISH EQU $0E0C
+SLOTSBIRD EQU $1210
+SLOTSMOUSE EQU $1614
diff --git a/constants/serial_constants.asm b/constants/serial_constants.asm
new file mode 100644
index 00000000..a6aae315
--- /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 54d2f191..939ab2df 100755
--- a/constants/sprite_constants.asm
+++ b/constants/sprite_constants.asm
@@ -1,20 +1,6 @@
-; pokemon's overworld sprites
-const_value = 0
-
- 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
-
; overworld sprites
-const_value = 1
-
+ const_def
+ const SPRITE_NONE ; $00
const SPRITE_RED ; $01
const SPRITE_BLUE ; $02
const SPRITE_OAK ; $03
@@ -87,15 +73,3 @@ const_value = 1
const SPRITE_LYING_OLD_MAN_UNUSED_1 ; $46
const SPRITE_LYING_OLD_MAN_UNUSED_2 ; $47
const SPRITE_LYING_OLD_MAN ; $48
-
-; 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
diff --git a/constants/sprite_data_constants.asm b/constants/sprite_data_constants.asm
new file mode 100644
index 00000000..48a34446
--- /dev/null
+++ b/constants/sprite_data_constants.asm
@@ -0,0 +1,22 @@
+; sprite facing directions
+SPRITE_FACING_DOWN EQU $00
+SPRITE_FACING_UP EQU $04
+SPRITE_FACING_LEFT EQU $08
+SPRITE_FACING_RIGHT EQU $0C
+
+NPC_MOVEMENT_DOWN EQU $00
+NPC_MOVEMENT_UP EQU $40
+NPC_MOVEMENT_LEFT EQU $80
+NPC_MOVEMENT_RIGHT EQU $C0
+
+; 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)
diff --git a/constants/status_constants.asm b/constants/status_constants.asm
deleted file mode 100755
index 25babb82..00000000
--- 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 3cddce26..a3ef2012 100644
--- a/constants/text_constants.asm
+++ b/constants/text_constants.asm
@@ -1,3 +1,6 @@
+NAME_LENGTH EQU 11
+ITEM_NAME_LENGTH EQU 13
+
; special text IDs
TEXT_MON_FAINTED EQU $d0
TEXT_BLACKED_OUT EQU $d1
diff --git a/constants/tileset_constants.asm b/constants/tileset_constants.asm
new file mode 100644
index 00000000..33d59fcb
--- /dev/null
+++ b/constants/tileset_constants.asm
@@ -0,0 +1,25 @@
+ 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
diff --git a/constants/tilesets.asm b/constants/tilesets.asm
deleted file mode 100644
index f10e4d92..00000000
--- a/constants/tilesets.asm
+++ /dev/null
@@ -1,26 +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
diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm
index d936aa06..6e4c2f18 100755
--- a/constants/trainer_constants.asm
+++ b/constants/trainer_constants.asm
@@ -6,8 +6,8 @@ OPP_\1 EQU const_value + OPP_ID_OFFSET
const_value = const_value + 1
ENDM
-const_value = 1
-
+ const_def
+ trainer_const NOBODY ; $00
trainer_const YOUNGSTER ; $01
trainer_const BUG_CATCHER ; $02
trainer_const LASS ; $03
diff --git a/constants/type_constants.asm b/constants/type_constants.asm
index b36dc179..c94d5c39 100755
--- a/constants/type_constants.asm
+++ b/constants/type_constants.asm
@@ -1,16 +1,23 @@
-; 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
+ 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_value = $14
+
+SPECIAL EQU const_value
+ const FIRE ; $14
+ const WATER ; $15
+ const GRASS ; $16
+ const ELECTRIC ; $17
+ const PSYCHIC ; $18
+ const ICE ; $19
+ const DRAGON ; $1A
diff --git a/data/base_stats.asm b/data/base_stats.asm
deleted file mode 100755
index 7aa36735..00000000
--- a/data/base_stats.asm
+++ /dev/null
@@ -1,153 +0,0 @@
-BaseStats::
-MonBaseStats::
-INCLUDE "data/baseStats/bulbasaur.asm"
-MonBaseStatsEnd::
-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"
diff --git a/text/stat_names.asm b/data/battle/stat_names.asm
index 854780c6..854780c6 100644
--- a/text/stat_names.asm
+++ b/data/battle/stat_names.asm
diff --git a/data/credit_mons.asm b/data/credits/credits_mons.asm
index 23142f9f..23142f9f 100755
--- a/data/credit_mons.asm
+++ b/data/credits/credits_mons.asm
diff --git a/data/credits_order.asm b/data/credits/credits_order.asm
index 20b9137f..20b9137f 100755
--- a/data/credits_order.asm
+++ b/data/credits/credits_order.asm
diff --git a/text/credits_text.asm b/data/credits/credits_text.asm
index a68c33d3..a68c33d3 100755
--- a/text/credits_text.asm
+++ b/data/credits/credits_text.asm
diff --git a/data/effects_pointers.asm b/data/effects_pointers.asm
deleted file mode 100644
index 0d36e887..00000000
--- a/data/effects_pointers.asm
+++ /dev/null
@@ -1,87 +0,0 @@
-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
diff --git a/data/hidden_coins.asm b/data/events/hidden_coins.asm
index b7358572..b7358572 100755
--- a/data/hidden_coins.asm
+++ b/data/events/hidden_coins.asm
diff --git a/data/hidden_item_coords.asm b/data/events/hidden_item_coords.asm
index 6b911dea..6b911dea 100755
--- a/data/hidden_item_coords.asm
+++ b/data/events/hidden_item_coords.asm
diff --git a/data/events/hidden_objects.asm b/data/events/hidden_objects.asm
new file mode 100755
index 00000000..8fc539ef
--- /dev/null
+++ b/data/events/hidden_objects.asm
@@ -0,0 +1,853 @@
+HiddenObjectMaps:
+ db REDS_HOUSE_2F
+ db BLUES_HOUSE
+ db OAKS_LAB
+ db VIRIDIAN_POKECENTER
+ db VIRIDIAN_MART
+ db VIRIDIAN_SCHOOL_HOUSE
+ db VIRIDIAN_GYM
+ db MUSEUM_1F
+ db PEWTER_GYM
+ db PEWTER_MART
+ db PEWTER_POKECENTER
+ db CERULEAN_POKECENTER
+ db CERULEAN_GYM
+ db CERULEAN_MART
+ db LAVENDER_POKECENTER
+ db VERMILION_POKECENTER
+ db VERMILION_GYM
+ db CELADON_MANSION_2F
+ db CELADON_POKECENTER
+ db CELADON_GYM
+ db GAME_CORNER
+ db CELADON_HOTEL
+ db FUCHSIA_POKECENTER
+ db FUCHSIA_GYM
+ db CINNABAR_GYM
+ db CINNABAR_POKECENTER
+ db SAFFRON_GYM
+ db MT_MOON_POKECENTER
+ db ROCK_TUNNEL_POKECENTER
+ db TRADE_CENTER
+ db COLOSSEUM
+ db VIRIDIAN_FOREST
+ db MT_MOON_B2F
+ db INDIGO_PLATEAU
+ db ROUTE_25
+ db ROUTE_9
+ db SS_ANNE_KITCHEN
+ db SS_ANNE_B1F_ROOMS
+ db ROCKET_HIDEOUT_B1F
+ db ROCKET_HIDEOUT_B3F
+ db ROCKET_HIDEOUT_B4F
+ db SAFFRON_POKECENTER
+ db POKEMON_TOWER_5F
+ db ROUTE_13
+ db SAFARI_ZONE_GATE
+ db SAFARI_ZONE_WEST
+ db SILPH_CO_5F
+ db SILPH_CO_9F
+ db COPYCATS_HOUSE_2F
+ db CERULEAN_CAVE_1F
+ db CERULEAN_CAVE_B1F
+ db POWER_PLANT
+ db SEAFOAM_ISLANDS_B2F
+ db SEAFOAM_ISLANDS_B4F
+ db POKEMON_MANSION_1F
+ db POKEMON_MANSION_3F
+ db ROUTE_23
+ db VICTORY_ROAD_2F
+ db UNUSED_MAP_6F
+ db BILLS_HOUSE
+ db VIRIDIAN_CITY
+ db SAFARI_ZONE_WEST_REST_HOUSE
+ db SAFARI_ZONE_EAST_REST_HOUSE
+ db SAFARI_ZONE_NORTH_REST_HOUSE
+ db ROUTE_15_GATE_2F
+ db MR_FUJIS_HOUSE
+ db CELADON_MANSION_ROOF_HOUSE
+ db FIGHTING_DOJO
+ db ROUTE_10
+ db INDIGO_PLATEAU_LOBBY
+ db CINNABAR_LAB_FOSSIL_ROOM
+ db BIKE_SHOP
+ db ROUTE_11
+ db ROUTE_12
+ db POKEMON_MANSION_2F
+ db POKEMON_MANSION_B1F
+ db SILPH_CO_11F
+ db ROUTE_17
+ db UNDERGROUND_PATH_NORTH_SOUTH
+ db UNDERGROUND_PATH_WEST_EAST
+ db CELADON_CITY
+ db SEAFOAM_ISLANDS_B3F
+ db VERMILION_CITY
+ db CERULEAN_CITY
+ db ROUTE_4
+ db $FF
+
+HiddenObjectPointers:
+; each of these pointers is for the corresponding map in HiddenObjectMaps
+ dw RedsHouse2FHiddenObjects
+ dw BluesHouseHiddenObjects
+ dw OaksLabHiddenObjects
+ dw ViridianPokecenterHiddenObjects
+ dw ViridianMartHiddenObjects
+ dw ViridianSchoolHiddenObjects
+ dw ViridianGymHiddenObjects
+ dw Museum1FHiddenObjects
+ dw PewterGymHiddenObjects
+ dw PewterMartHiddenObjects
+ dw PewterPokecenterHiddenObjects
+ dw CeruleanPokecenterHiddenObjects
+ dw CeruleanGymHiddenObjects
+ dw CeruleanMartHiddenObjects
+ dw LavenderPokecenterHiddenObjects
+ dw VermilionPokecenterHiddenObjects
+ dw VermilionGymHiddenObjects
+ dw CeladonMansion2HiddenObjects
+ dw CeladonPokecenterHiddenObjects
+ dw CeladonGymHiddenObjects
+ dw GameCornerHiddenObjects
+ dw CeladonHotelHiddenObjects
+ dw FuchsiaPokecenterHiddenObjects
+ dw FuchsiaGymHiddenObjects
+ dw CinnabarGymHiddenObjects
+ dw CinnabarPokecenterHiddenObjects
+ dw SaffronGymHiddenObjects
+ dw MtMoonPokecenterHiddenObjects
+ dw RockTunnelPokecenterHiddenObjects
+ dw TradeCenterHiddenObjects
+ dw ColosseumHiddenObjects
+ dw ViridianForestHiddenObjects
+ dw MtMoon3HiddenObjects
+ dw IndigoPlateauHiddenObjects
+ dw Route25HiddenObjects
+ dw Route9HiddenObjects
+ dw SSAnne6HiddenObjects
+ dw SSAnne10HiddenObjects
+ dw RocketHideout1HiddenObjects
+ dw RocketHideout3HiddenObjects
+ dw RocketHideout4HiddenObjects
+ dw SaffronPokecenterHiddenObjects
+ dw PokemonTower5HiddenObjects
+ dw Route13HiddenObjects
+ dw SafariZoneEntranceHiddenObjects
+ dw SafariZoneWestHiddenObjects
+ dw SilphCo5FHiddenObjects
+ dw SilphCo9FHiddenObjects
+ dw CopycatsHouse2FHiddenObjects
+ dw CeruleanCave1HiddenObjects
+ dw CeruleanCave3HiddenObjects
+ dw PowerPlantHiddenObjects
+ dw SeafoamIslands3HiddenObjects
+ dw SeafoamIslands5HiddenObjects
+ dw Mansion1HiddenObjects
+ dw Mansion3HiddenObjects
+ dw Route23HiddenObjects
+ dw VictoryRoad2HiddenObjects
+ dw Unused6FHiddenObjects
+ dw BillsHouseHiddenObjects
+ dw ViridianCityHiddenObjects
+ dw SafariZoneRestHouse2HiddenObjects
+ dw SafariZoneRestHouse3HiddenObjects
+ dw SafariZoneRestHouse4HiddenObjects
+ dw Route15GateUpstairsHiddenObjects
+ dw LavenderHouse1HiddenObjects
+ dw CeladonMansion5HiddenObjects
+ dw FightingDojoHiddenObjects
+ dw Route10HiddenObjects
+ dw IndigoPlateauLobbyHiddenObjects
+ dw CinnabarLab4HiddenObjects
+ dw BikeShopHiddenObjects
+ dw Route11HiddenObjects
+ dw Route12HiddenObjects
+ dw Mansion2HiddenObjects
+ dw Mansion4HiddenObjects
+ dw SilphCo11FHiddenObjects
+ dw Route17HiddenObjects
+ dw UndergroundPathNsHiddenObjects
+ dw UndergroundPathWeHiddenObjects
+ dw CeladonCityHiddenObjects
+ dw SeafoamIslands4HiddenObjects
+ dw VermilionCityHiddenObjects
+ dw CeruleanCityHiddenObjects
+ dw Route4HiddenObjects
+
+; format: y-coord, x-coord, text id/item id, object routine
+TradeCenterHiddenObjects:
+ db $04,$05,$d0
+ db BANK(CableClubRightGameboy)
+ dw CableClubRightGameboy
+ db $04,$04,$d0
+ db BANK(CableClubLeftGameboy)
+ dw CableClubLeftGameboy
+ db $FF
+ColosseumHiddenObjects:
+ db $04,$05,$d0
+ db BANK(CableClubRightGameboy)
+ dw CableClubRightGameboy
+ db $04,$04,$d0
+ db BANK(CableClubLeftGameboy)
+ dw CableClubLeftGameboy
+ db $FF
+RedsHouse2FHiddenObjects:
+ db $01,$00,$04
+ dbw BANK(OpenRedsPC), OpenRedsPC
+ db $05,$03,$d0
+ dbw BANK(PrintRedSNESText), PrintRedSNESText
+ db $FF
+BluesHouseHiddenObjects:
+ db $01,$00,$04
+ db BANK(PrintBookcaseText)
+ dw PrintBookcaseText
+ db $01,$01,$04
+ db BANK(PrintBookcaseText)
+ dw PrintBookcaseText
+ db $01,$07,$04
+ db BANK(PrintBookcaseText)
+ dw PrintBookcaseText
+ db $FF
+OaksLabHiddenObjects:
+ db $00,$04,$04
+ db BANK(DisplayOakLabLeftPoster)
+ dw DisplayOakLabLeftPoster
+ db $00,$05,$04
+ db BANK(DisplayOakLabRightPoster)
+ dw DisplayOakLabRightPoster
+ db $01,$00,$04
+ db BANK(DisplayOakLabEmailText)
+ dw DisplayOakLabEmailText
+ db $01,$01,$04
+ db BANK(DisplayOakLabEmailText)
+ dw DisplayOakLabEmailText
+ db $FF
+ViridianPokecenterHiddenObjects:
+ db $04,$00,$08
+ db BANK(PrintBenchGuyText)
+ dw PrintBenchGuyText
+ db $03,$0d,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $FF
+ViridianMartHiddenObjects:
+ db $FF
+ViridianSchoolHiddenObjects:
+ db $04,$03,(ViridianSchoolNotebook_id - TextPredefs) / 2 + 1
+ db BANK(PrintNotebookText)
+ dw PrintNotebookText
+ db $00,$03,(ViridianSchoolBlackboard_id - TextPredefs) / 2 + 1
+ db BANK(PrintBlackboardLinkCableText)
+ dw PrintBlackboardLinkCableText
+ db $FF
+ViridianGymHiddenObjects:
+ db $0f,$0f,$04
+ dbw BANK(GymStatues),GymStatues
+ db $0f,$12,$04
+ dbw BANK(GymStatues),GymStatues
+ db $FF
+Museum1FHiddenObjects:
+ db $03,$02,$04
+ dbw BANK(AerodactylFossil), AerodactylFossil
+ db $06,$02,$04
+ dbw BANK(KabutopsFossil), KabutopsFossil
+ db $FF
+PewterGymHiddenObjects:
+ db $0a,$03,$04
+ dbw BANK(GymStatues),GymStatues
+ db $0a,$06,$04
+ dbw BANK(GymStatues),GymStatues
+ db $FF
+PewterMartHiddenObjects:
+ db $FF
+PewterPokecenterHiddenObjects:
+ db $04,$00,$08
+ db BANK(PrintBenchGuyText)
+ dw PrintBenchGuyText
+ db $03,$0d,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $FF
+CeruleanPokecenterHiddenObjects:
+ db $04,$00,$08
+ db BANK(PrintBenchGuyText)
+ dw PrintBenchGuyText
+ db $03,$0d,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $FF
+CeruleanGymHiddenObjects:
+ db $0b,$03,$04
+ dbw BANK(GymStatues),GymStatues
+ db $0b,$06,$04
+ dbw BANK(GymStatues),GymStatues
+ db $FF
+CeruleanMartHiddenObjects:
+ db $FF
+LavenderPokecenterHiddenObjects:
+ db $04,$00,$08
+ db BANK(PrintBenchGuyText)
+ dw PrintBenchGuyText
+ db $03,$0d,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $FF
+VermilionPokecenterHiddenObjects:
+ db $03,$0d,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $04,$00,$04
+ db BANK(PrintBenchGuyText)
+ dw PrintBenchGuyText
+ db $FF
+VermilionGymHiddenObjects:
+ db $0e,$03,$04
+ dbw BANK(GymStatues), GymStatues
+ db $0e,$06,$04
+ dbw BANK(GymStatues), GymStatues
+ db $01,$06,$00
+ dbw BANK(PrintTrashText), PrintTrashText
+ db $07,$01,$00
+ dbw BANK(GymTrashScript), GymTrashScript
+ db $09,$01,$01
+ dbw BANK(GymTrashScript), GymTrashScript
+ db $0b,$01,$02
+ dbw BANK(GymTrashScript), GymTrashScript
+ db $07,$03,$03
+ dbw BANK(GymTrashScript), GymTrashScript
+ db $09,$03,$04
+ dbw BANK(GymTrashScript), GymTrashScript
+ db $0b,$03,$05
+ dbw BANK(GymTrashScript), GymTrashScript
+ db $07,$05,$06
+ dbw BANK(GymTrashScript), GymTrashScript
+ db $09,$05,$07
+ dbw BANK(GymTrashScript), GymTrashScript
+ db $0b,$05,$08
+ dbw BANK(GymTrashScript), GymTrashScript
+ db $07,$07,$09
+ dbw BANK(GymTrashScript), GymTrashScript
+ db $09,$07,$0a
+ dbw BANK(GymTrashScript), GymTrashScript
+ db $0b,$07,$0b
+ dbw BANK(GymTrashScript), GymTrashScript
+ db $07,$09,$0c
+ dbw BANK(GymTrashScript), GymTrashScript
+ db $09,$09,$0d
+ dbw BANK(GymTrashScript), GymTrashScript
+ db $0b,$09,$0e
+ dbw BANK(GymTrashScript), GymTrashScript
+ db $FF
+CeladonMansion2HiddenObjects:
+ db $05,$00,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $FF
+CeladonPokecenterHiddenObjects:
+ db $04,$00,$08
+ db BANK(PrintBenchGuyText)
+ dw PrintBenchGuyText
+ db $03,$0d,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $FF
+CeladonGymHiddenObjects:
+ db $0f,$03,$04
+ dbw BANK(GymStatues),GymStatues
+ db $0f,$06,$04
+ dbw BANK(GymStatues),GymStatues
+ db $FF
+GameCornerHiddenObjects:
+ db $0f,$12,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0e,$12,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0d,$12,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0c,$12,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0b,$12,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0a,$12,$ff ; "Someone's Keys"
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0a,$0d,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0b,$0d,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0c,$0d,$fe ; "Out To Lunch"
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0d,$0d,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0e,$0d,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0f,$0d,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0f,$0c,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0e,$0c,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0d,$0c,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0c,$0c,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0b,$0c,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0a,$0c,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0a,$07,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0b,$07,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0c,$07,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0d,$07,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0e,$07,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0f,$07,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0f,$06,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0e,$06,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0d,$06,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0c,$06,$fd ; "Out Of Order"
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0b,$06,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0a,$06,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0a,$01,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0b,$01,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0c,$01,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0d,$01,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0e,$01,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $0f,$01,$d0
+ dbw BANK(StartSlotMachine), StartSlotMachine
+ db $08,$00,COIN+10
+ dbw BANK(HiddenCoins),HiddenCoins
+ db $10,$01,COIN+10
+ dbw BANK(HiddenCoins),HiddenCoins
+ db $0b,$03,COIN+20
+ dbw BANK(HiddenCoins),HiddenCoins
+ db $0e,$03,COIN+10
+ dbw BANK(HiddenCoins),HiddenCoins
+ db $0c,$04,COIN+10
+ dbw BANK(HiddenCoins),HiddenCoins
+ db $0c,$09,COIN+20
+ dbw BANK(HiddenCoins),HiddenCoins
+ db $0f,$09,COIN+10
+ dbw BANK(HiddenCoins),HiddenCoins
+ db $0e,$10,COIN+10
+ dbw BANK(HiddenCoins),HiddenCoins
+ db $10,$0a,COIN+10
+ dbw BANK(HiddenCoins),HiddenCoins
+ db $07,$0b,COIN+40
+ dbw BANK(HiddenCoins),HiddenCoins
+ db $08,$0f,COIN+100
+ dbw BANK(HiddenCoins),HiddenCoins
+ db $0f,$0c,COIN+10
+ dbw BANK(HiddenCoins),HiddenCoins
+ db $FF
+CeladonHotelHiddenObjects:
+ db $03,$0d,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $04,$00,$08
+ db BANK(PrintBenchGuyText)
+ dw PrintBenchGuyText
+ db $FF
+FuchsiaPokecenterHiddenObjects:
+ db $03,$0d,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $04,$00,$04
+ db BANK(PrintBenchGuyText)
+ dw PrintBenchGuyText
+ db $FF
+FuchsiaGymHiddenObjects:
+ db $0f,$03,$04
+ dbw BANK(GymStatues),GymStatues
+ db $0f,$06,$04
+ dbw BANK(GymStatues),GymStatues
+ db $FF
+CinnabarGymHiddenObjects:
+ db $0d,$11,$04
+ dbw BANK(GymStatues),GymStatues
+ db $07,$0f,$01
+ db BANK(PrintCinnabarQuiz)
+ dw PrintCinnabarQuiz
+ db $01,$0a,$12
+ db BANK(PrintCinnabarQuiz)
+ dw PrintCinnabarQuiz
+ db $07,$09,$13
+ db BANK(PrintCinnabarQuiz)
+ dw PrintCinnabarQuiz
+ db $0d,$09,$14
+ db BANK(PrintCinnabarQuiz)
+ dw PrintCinnabarQuiz
+ db $0d,$01,$05
+ db BANK(PrintCinnabarQuiz)
+ dw PrintCinnabarQuiz
+ db $07,$01,$16
+ db BANK(PrintCinnabarQuiz)
+ dw PrintCinnabarQuiz
+ db $FF
+CinnabarPokecenterHiddenObjects:
+ db $04,$00,$04
+ db BANK(PrintBenchGuyText)
+ dw PrintBenchGuyText
+ db $03,$0d,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $FF
+SaffronGymHiddenObjects:
+ db $0f,$09,$04
+ dbw BANK(GymStatues),GymStatues
+ db $FF
+MtMoonPokecenterHiddenObjects:
+ db $04,$00,$08
+ db BANK(PrintBenchGuyText)
+ dw PrintBenchGuyText
+ db $03,$0d,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $FF
+RockTunnelPokecenterHiddenObjects:
+ db $04,$00,$08
+ db BANK(PrintBenchGuyText)
+ dw PrintBenchGuyText
+ db $03,$0d,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $FF
+ViridianForestHiddenObjects:
+ db $12,$01,POTION
+ dbw BANK(HiddenItems),HiddenItems
+ db $2a,$10,ANTIDOTE
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+MtMoon3HiddenObjects:
+ db $0c,$12,MOON_STONE
+ dbw BANK(HiddenItems),HiddenItems
+ db $09,$21,ETHER
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+IndigoPlateauHiddenObjects:
+ db $0d,$08,$ff
+ db BANK(PrintIndigoPlateauHQText)
+ dw PrintIndigoPlateauHQText
+ db $0d,$0b,$00
+ db BANK(PrintIndigoPlateauHQText)
+ dw PrintIndigoPlateauHQText
+ db $FF
+Route25HiddenObjects:
+ db $03,$26,ETHER
+ dbw BANK(HiddenItems),HiddenItems
+ db $01,$0a,ELIXER
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+Route9HiddenObjects:
+ db $07,$0e,ETHER
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+SSAnne6HiddenObjects:
+ db $05,$0d,$00
+ dbw BANK(PrintTrashText), PrintTrashText
+ db $07,$0d,$00
+ dbw BANK(PrintTrashText), PrintTrashText
+ db $09,$0d,GREAT_BALL
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+SSAnne10HiddenObjects:
+ db $01,$03,HYPER_POTION
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+Route10HiddenObjects:
+ db $11,$09,SUPER_POTION
+ dbw BANK(HiddenItems),HiddenItems
+ db $35,$10,MAX_ETHER
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+RocketHideout1HiddenObjects:
+ db $0f,$15,PP_UP
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+RocketHideout3HiddenObjects:
+ db $11,$1b,NUGGET
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+RocketHideout4HiddenObjects:
+ db $01,$19,SUPER_POTION
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+SaffronPokecenterHiddenObjects:
+ db $04,$00,$04
+ db BANK(PrintBenchGuyText)
+ dw PrintBenchGuyText
+ db $03,$0d,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $FF
+PokemonTower5HiddenObjects:
+ db $0c,$04,ELIXER
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+Route13HiddenObjects:
+ db $0e,$01,PP_UP
+ dbw BANK(HiddenItems),HiddenItems
+ db $0d,$10,CALCIUM
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+SafariZoneEntranceHiddenObjects:
+ db $01,$0a,NUGGET
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+SafariZoneWestHiddenObjects:
+ db $05,$06,REVIVE
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+SilphCo5FHiddenObjects:
+ db $03,$0c,ELIXER
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+SilphCo9FHiddenObjects:
+ db $0f,$02,MAX_POTION
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+CopycatsHouse2FHiddenObjects:
+ db $01,$01,NUGGET
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+CeruleanCave1HiddenObjects:
+ db $0b,$0e,RARE_CANDY
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+CeruleanCave3HiddenObjects:
+ db $03,$1b,ULTRA_BALL
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+PowerPlantHiddenObjects:
+ db $10,$11,MAX_ELIXER
+ dbw BANK(HiddenItems),HiddenItems
+ db $01,$0c,PP_UP
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+SeafoamIslands3HiddenObjects:
+ db $0f,$0f,NUGGET
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+SeafoamIslands5HiddenObjects:
+ db $11,$19,ULTRA_BALL
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+Mansion1HiddenObjects:
+ db $10,$08,MOON_STONE
+ dbw BANK(HiddenItems),HiddenItems
+ db $05,$02,$04
+ db BANK(Mansion1Script_Switches)
+ dw Mansion1Script_Switches
+ db $FF
+Mansion2HiddenObjects:
+ db $0b,$02,$04
+ db BANK(Mansion2Script_Switches)
+ dw Mansion2Script_Switches
+ db $FF
+Mansion3HiddenObjects:
+ db $09,$01,MAX_REVIVE
+ dbw BANK(HiddenItems),HiddenItems
+ db $05,$0a,$04
+ db BANK(Mansion3Script_Switches)
+ dw Mansion3Script_Switches
+ db $FF
+Mansion4HiddenObjects:
+ db $09,$01,RARE_CANDY
+ dbw BANK(HiddenItems),HiddenItems
+ db $03,$14,$04
+ db BANK(Mansion4Script_Switches)
+ dw Mansion4Script_Switches
+ db $19,$12,$04
+ db BANK(Mansion4Script_Switches)
+ dw Mansion4Script_Switches
+ db $FF
+Route23HiddenObjects:
+ db $2c,$09,FULL_RESTORE
+ dbw BANK(HiddenItems),HiddenItems
+ db $46,$13,ULTRA_BALL
+ dbw BANK(HiddenItems),HiddenItems
+ db $5a,$08,MAX_ETHER
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+VictoryRoad2HiddenObjects:
+ db $02,$05,ULTRA_BALL
+ dbw BANK(HiddenItems),HiddenItems
+ db $07,$1a,FULL_RESTORE
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+Unused6FHiddenObjects:
+ db $0b,$0e,MAX_ELIXER
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+BillsHouseHiddenObjects:
+ db $04,$01,$04
+ dbw BANK(BillsHousePC), BillsHousePC
+ db $FF
+ViridianCityHiddenObjects:
+ db $04,$0e,POTION
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+SafariZoneRestHouse2HiddenObjects:
+ db $04,$00,$08
+ db BANK(PrintBenchGuyText)
+ dw PrintBenchGuyText
+ db $03,$0d,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $FF
+SafariZoneRestHouse3HiddenObjects:
+ db $04,$00,$08
+ db BANK(PrintBenchGuyText)
+ dw PrintBenchGuyText
+ db $03,$0d,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $FF
+SafariZoneRestHouse4HiddenObjects:
+ db $04,$00,$08
+ db BANK(PrintBenchGuyText)
+ dw PrintBenchGuyText
+ db $03,$0d,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $FF
+Route15GateUpstairsHiddenObjects:
+ db $02,$01,$04
+ db BANK(Route15GateLeftBinoculars)
+ dw Route15GateLeftBinoculars
+ db $FF
+LavenderHouse1HiddenObjects:
+ db $01,$00,$00
+ db BANK(PrintMagazinesText)
+ dw PrintMagazinesText
+ db $01,$01,$00
+ db BANK(PrintMagazinesText)
+ dw PrintMagazinesText
+ db $01,$07,$00
+ db BANK(PrintMagazinesText)
+ dw PrintMagazinesText
+ db $FF
+CeladonMansion5HiddenObjects:
+ db $00,$03,(LinkCableHelp_id - TextPredefs) / 2 + 1
+ db BANK(PrintBlackboardLinkCableText)
+ dw PrintBlackboardLinkCableText
+ db $00,$04,(LinkCableHelp_id - TextPredefs) / 2 + 1
+ db BANK(PrintBlackboardLinkCableText)
+ dw PrintBlackboardLinkCableText
+ db $04,$03,(TMNotebook_id - TextPredefs) / 2 + 1
+ db BANK(PrintNotebookText)
+ dw PrintNotebookText
+ db $FF
+FightingDojoHiddenObjects:
+ db $09,$03,$04
+ db BANK(PrintFightingDojoText)
+ dw PrintFightingDojoText
+ db $09,$06,$04
+ db BANK(PrintFightingDojoText)
+ dw PrintFightingDojoText
+ db $00,$04,$04
+ db BANK(PrintFightingDojoText2)
+ dw PrintFightingDojoText2
+ db $00,$05,$04
+ db BANK(PrintFightingDojoText3)
+ dw PrintFightingDojoText3
+ db $FF
+IndigoPlateauLobbyHiddenObjects:
+ db $07,$0f,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $FF
+CinnabarLab4HiddenObjects:
+ db $04,$00,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $04,$02,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $FF
+BikeShopHiddenObjects:
+ db $00,$01,$d0
+ dbw BANK(PrintNewBikeText), PrintNewBikeText
+ db $01,$02,$d0
+ dbw BANK(PrintNewBikeText), PrintNewBikeText
+ db $02,$01,$d0
+ dbw BANK(PrintNewBikeText), PrintNewBikeText
+ db $02,$03,$d0
+ dbw BANK(PrintNewBikeText), PrintNewBikeText
+ db $04,$00,$d0
+ dbw BANK(PrintNewBikeText), PrintNewBikeText
+ db $05,$01,$d0
+ dbw BANK(PrintNewBikeText), PrintNewBikeText
+ db $FF
+Route11HiddenObjects:
+ db $05,$30,ESCAPE_ROPE
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+Route12HiddenObjects:
+ db $3f,$02,HYPER_POTION
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+SilphCo11FHiddenObjects:
+ db $0c,$0a,$04
+ db BANK(OpenPokemonCenterPC)
+ dw OpenPokemonCenterPC
+ db $FF
+Route17HiddenObjects:
+ db $0e,$0f,RARE_CANDY
+ dbw BANK(HiddenItems),HiddenItems
+ db $2d,$08,FULL_RESTORE
+ dbw BANK(HiddenItems),HiddenItems
+ db $48,$11,PP_UP
+ dbw BANK(HiddenItems),HiddenItems
+ db $5b,$04,MAX_REVIVE
+ dbw BANK(HiddenItems),HiddenItems
+ db $79,$08,MAX_ELIXER
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+UndergroundPathNsHiddenObjects:
+ db $04,$03,FULL_RESTORE
+ dbw BANK(HiddenItems),HiddenItems
+ db $22,$04,X_SPECIAL
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+UndergroundPathWeHiddenObjects:
+ db $02,$0c,NUGGET
+ dbw BANK(HiddenItems),HiddenItems
+ db $05,$15,ELIXER
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+CeladonCityHiddenObjects:
+ db $0f,$30,PP_UP
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+SeafoamIslands4HiddenObjects:
+ db $10,$09,MAX_ELIXER
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+VermilionCityHiddenObjects:
+ db $0b,$0e,MAX_ETHER
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+CeruleanCityHiddenObjects:
+ db $08,$0f,RARE_CANDY
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
+Route4HiddenObjects:
+ db $03,$28,GREAT_BALL
+ dbw BANK(HiddenItems),HiddenItems
+ db $FF
diff --git a/data/prize_mon_levels.asm b/data/events/prize_mon_levels.asm
index bffa4440..bffa4440 100755
--- a/data/prize_mon_levels.asm
+++ b/data/events/prize_mon_levels.asm
diff --git a/data/prizes.asm b/data/events/prizes.asm
index 1120c0d0..1120c0d0 100755
--- a/data/prizes.asm
+++ b/data/events/prizes.asm
diff --git a/data/slot_machine_wheels.asm b/data/events/slot_machine_wheels.asm
index 88a89822..88a89822 100755
--- a/data/slot_machine_wheels.asm
+++ b/data/events/slot_machine_wheels.asm
diff --git a/data/trades.asm b/data/events/trades.asm
index cf0fcbfd..cf0fcbfd 100755
--- a/data/trades.asm
+++ b/data/events/trades.asm
diff --git a/data/evos_moves.asm b/data/evos_moves.asm
deleted file mode 100755
index 26f09b87..00000000
--- a/data/evos_moves.asm
+++ /dev/null
@@ -1,2134 +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 14, POISON_STING
- db 21, FOCUS_ENERGY
- db 29, FURY_ATTACK
- db 36, HORN_DRILL
- db 43, DOUBLE_KICK
- 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 14, POISON_STING
- 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 14, POISON_STING
- db 21, TAIL_WHIP
- db 29, BITE
- db 36, FURY_SWIPES
- db 43, DOUBLE_KICK
- db 0
-
-NidoqueenEvosMoves:
-; Evolutions
- db 0
-; Learnset
- db 8, SCRATCH
- db 14, POISON_STING
- db 23, BODY_SLAM
- db 0
-
-CuboneEvosMoves:
-; Evolutions
- db EV_LEVEL, 28, MAROWAK
- db 0
-; Learnset
- 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 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 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 29, ABSORB
- db 32, POISONPOWDER
- db 36, STUN_SPORE
- db 39, SLEEP_POWDER
- db 45, SLAM
- db 49, 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 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 15, KARATE_CHOP
- db 21, FURY_SWIPES
- db 27, FOCUS_ENERGY
- db 33, SEISMIC_TOSS
- db 39, THRASH
- 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 24, 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 9, THUNDER_WAVE
- db 16, QUICK_ATTACK
- db 26, SWIFT
- db 33, AGILITY
- db 43, THUNDER
- 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 27, QUICK_ATTACK
- db 31, TAIL_WHIP
- db 37, BITE
- db 45, TAKE_DOWN
- db 0
-
-FlareonEvosMoves:
-; Evolutions
- db 0
-; Learnset
- db 27, QUICK_ATTACK
- db 31, EMBER
- db 37, TAIL_WHIP
- db 40, BITE
- db 42, LEER
- db 44, FIRE_SPIN
- db 48, RAGE
- db 54, FLAMETHROWER
- db 0
-
-JolteonEvosMoves:
-; Evolutions
- db 0
-; Learnset
- db 27, QUICK_ATTACK
- db 31, THUNDERSHOCK
- db 37, TAIL_WHIP
- db 40, THUNDER_WAVE
- db 42, DOUBLE_KICK
- db 44, AGILITY
- db 48, PIN_MISSILE
- db 54, THUNDER
- db 0
-
-VaporeonEvosMoves:
-; Evolutions
- db 0
-; Learnset
- db 27, QUICK_ATTACK
- db 31, WATER_GUN
- db 37, TAIL_WHIP
- db 40, BITE
- db 42, ACID_ARMOR
- db 44, HAZE
- db 48, MIST
- db 54, 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 15, KARATE_CHOP
- db 21, FURY_SWIPES
- db 27, FOCUS_ENERGY
- db 37, SEISMIC_TOSS
- db 46, THRASH
- 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 24, 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 0
-
-ButterfreeEvosMoves:
-; Evolutions
- db 0
-; Learnset
- db 12, CONFUSION
- db 15, POISONPOWDER
- db 16, STUN_SPORE
- db 17, SLEEP_POWDER
- db 21, SUPERSONIC
- db 26, WHIRLWIND
- db 32, 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 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 14, POISON_STING
- db 23, FOCUS_ENERGY
- db 32, FURY_ATTACK
- db 41, HORN_DRILL
- db 50, DOUBLE_KICK
- db 0
-
-NidorinaEvosMoves:
-; Evolutions
- db EV_ITEM, MOON_STONE, 1, NIDOQUEEN
- db 0
-; Learnset
- db 8, SCRATCH
- db 14, POISON_STING
- db 23, TAIL_WHIP
- db 32, BITE
- db 41, FURY_SWIPES
- db 50, DOUBLE_KICK
- 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/hidden_objects.asm b/data/hidden_objects.asm
deleted file mode 100755
index 737947a7..00000000
--- a/data/hidden_objects.asm
+++ /dev/null
@@ -1,853 +0,0 @@
-HiddenObjectMaps:
- db REDS_HOUSE_2F
- db BLUES_HOUSE
- db OAKS_LAB
- db VIRIDIAN_POKECENTER
- db VIRIDIAN_MART
- db VIRIDIAN_SCHOOL_HOUSE
- db VIRIDIAN_GYM
- db MUSEUM_1F
- db PEWTER_GYM
- db PEWTER_MART
- db PEWTER_POKECENTER
- db CERULEAN_POKECENTER
- db CERULEAN_GYM
- db CERULEAN_MART
- db LAVENDER_POKECENTER
- db VERMILION_POKECENTER
- db VERMILION_GYM
- db CELADON_MANSION_2F
- db CELADON_POKECENTER
- db CELADON_GYM
- db GAME_CORNER
- db CELADON_HOTEL
- db FUCHSIA_POKECENTER
- db FUCHSIA_GYM
- db CINNABAR_GYM
- db CINNABAR_POKECENTER
- db SAFFRON_GYM
- db MT_MOON_POKECENTER
- db ROCK_TUNNEL_POKECENTER
- db TRADE_CENTER
- db COLOSSEUM
- db VIRIDIAN_FOREST
- db MT_MOON_B2F
- db INDIGO_PLATEAU
- db ROUTE_25
- db ROUTE_9
- db SS_ANNE_KITCHEN
- db SS_ANNE_B1F_ROOMS
- db ROCKET_HIDEOUT_B1F
- db ROCKET_HIDEOUT_B3F
- db ROCKET_HIDEOUT_B4F
- db SAFFRON_POKECENTER
- db POKEMON_TOWER_5F
- db ROUTE_13
- db SAFARI_ZONE_GATE
- db SAFARI_ZONE_WEST
- db SILPH_CO_5F
- db SILPH_CO_9F
- db COPYCATS_HOUSE_2F
- db CERULEAN_CAVE_1F
- db CERULEAN_CAVE_B1F
- db POWER_PLANT
- db SEAFOAM_ISLANDS_B2F
- db SEAFOAM_ISLANDS_B4F
- db POKEMON_MANSION_1F
- db POKEMON_MANSION_3F
- db ROUTE_23
- db VICTORY_ROAD_2F
- db UNUSED_MAP_6F
- db BILLS_HOUSE
- db VIRIDIAN_CITY
- db SAFARI_ZONE_WEST_REST_HOUSE
- db SAFARI_ZONE_EAST_REST_HOUSE
- db SAFARI_ZONE_NORTH_REST_HOUSE
- db ROUTE_15_GATE_2F
- db MR_FUJIS_HOUSE
- db CELADON_MANSION_ROOF_HOUSE
- db FIGHTING_DOJO
- db ROUTE_10
- db INDIGO_PLATEAU_LOBBY
- db CINNABAR_LAB_FOSSIL_ROOM
- db BIKE_SHOP
- db ROUTE_11
- db ROUTE_12
- db POKEMON_MANSION_2F
- db POKEMON_MANSION_B1F
- db SILPH_CO_11F
- db ROUTE_17
- db UNDERGROUND_PATH_NORTH_SOUTH
- db UNDERGROUND_PATH_WEST_EAST
- db CELADON_CITY
- db SEAFOAM_ISLANDS_B3F
- db VERMILION_CITY
- db CERULEAN_CITY
- db ROUTE_4
- db $FF
-
-HiddenObjectPointers:
-; each of these pointers is for the corresponding map in HiddenObjectMaps
- dw RedsHouse2FHiddenObjects
- dw BluesHouseHiddenObjects
- dw OaksLabHiddenObjects
- dw ViridianPokecenterHiddenObjects
- dw ViridianMartHiddenObjects
- dw ViridianSchoolHiddenObjects
- dw ViridianGymHiddenObjects
- dw Museum1FHiddenObjects
- dw PewterGymHiddenObjects
- dw PewterMartHiddenObjects
- dw PewterPokecenterHiddenObjects
- dw CeruleanPokecenterHiddenObjects
- dw CeruleanGymHiddenObjects
- dw CeruleanMartHiddenObjects
- dw LavenderPokecenterHiddenObjects
- dw VermilionPokecenterHiddenObjects
- dw VermilionGymHiddenObjects
- dw CeladonMansion2HiddenObjects
- dw CeladonPokecenterHiddenObjects
- dw CeladonGymHiddenObjects
- dw GameCornerHiddenObjects
- dw CeladonHotelHiddenObjects
- dw FuchsiaPokecenterHiddenObjects
- dw FuchsiaGymHiddenObjects
- dw CinnabarGymHiddenObjects
- dw CinnabarPokecenterHiddenObjects
- dw SaffronGymHiddenObjects
- dw MtMoonPokecenterHiddenObjects
- dw RockTunnelPokecenterHiddenObjects
- dw TradeCenterHiddenObjects
- dw ColosseumHiddenObjects
- dw ViridianForestHiddenObjects
- dw MtMoon3HiddenObjects
- dw IndigoPlateauHiddenObjects
- dw Route25HiddenObjects
- dw Route9HiddenObjects
- dw SSAnne6HiddenObjects
- dw SSAnne10HiddenObjects
- dw RocketHideout1HiddenObjects
- dw RocketHideout3HiddenObjects
- dw RocketHideout4HiddenObjects
- dw SaffronPokecenterHiddenObjects
- dw PokemonTower5HiddenObjects
- dw Route13HiddenObjects
- dw SafariZoneEntranceHiddenObjects
- dw SafariZoneWestHiddenObjects
- dw SilphCo5FHiddenObjects
- dw SilphCo9FHiddenObjects
- dw CopycatsHouse2FHiddenObjects
- dw CeruleanCave1HiddenObjects
- dw CeruleanCave3HiddenObjects
- dw PowerPlantHiddenObjects
- dw SeafoamIslands3HiddenObjects
- dw SeafoamIslands5HiddenObjects
- dw Mansion1HiddenObjects
- dw Mansion3HiddenObjects
- dw Route23HiddenObjects
- dw VictoryRoad2HiddenObjects
- dw Unused6FHiddenObjects
- dw BillsHouseHiddenObjects
- dw ViridianCityHiddenObjects
- dw SafariZoneRestHouse2HiddenObjects
- dw SafariZoneRestHouse3HiddenObjects
- dw SafariZoneRestHouse4HiddenObjects
- dw Route15GateUpstairsHiddenObjects
- dw LavenderHouse1HiddenObjects
- dw CeladonMansion5HiddenObjects
- dw FightingDojoHiddenObjects
- dw Route10HiddenObjects
- dw IndigoPlateauLobbyHiddenObjects
- dw CinnabarLab4HiddenObjects
- dw BikeShopHiddenObjects
- dw Route11HiddenObjects
- dw Route12HiddenObjects
- dw Mansion2HiddenObjects
- dw Mansion4HiddenObjects
- dw SilphCo11FHiddenObjects
- dw Route17HiddenObjects
- dw UndergroundPathNsHiddenObjects
- dw UndergroundPathWeHiddenObjects
- dw CeladonCityHiddenObjects
- dw SeafoamIslands4HiddenObjects
- dw VermilionCityHiddenObjects
- dw CeruleanCityHiddenObjects
- dw Route4HiddenObjects
-
-; format: y-coord, x-coord, text id/item id, object routine
-TradeCenterHiddenObjects:
- db $04,$05,$d0
- db BANK(CableClubRightGameboy)
- dw CableClubRightGameboy
- db $04,$04,$d0
- db BANK(CableClubLeftGameboy)
- dw CableClubLeftGameboy
- db $FF
-ColosseumHiddenObjects:
- db $04,$05,$d0
- db BANK(CableClubRightGameboy)
- dw CableClubRightGameboy
- db $04,$04,$d0
- db BANK(CableClubLeftGameboy)
- dw CableClubLeftGameboy
- db $FF
-RedsHouse2FHiddenObjects:
- db $01,$00,$04
- dbw BANK(OpenRedsPC), OpenRedsPC
- db $05,$03,$d0
- dbw BANK(PrintRedSNESText), PrintRedSNESText
- db $FF
-BluesHouseHiddenObjects:
- db $01,$00,$04
- db BANK(PrintBookcaseText)
- dw PrintBookcaseText
- db $01,$01,$04
- db BANK(PrintBookcaseText)
- dw PrintBookcaseText
- db $01,$07,$04
- db BANK(PrintBookcaseText)
- dw PrintBookcaseText
- db $FF
-OaksLabHiddenObjects:
- db $00,$04,$04
- db BANK(DisplayOakLabLeftPoster)
- dw DisplayOakLabLeftPoster
- db $00,$05,$04
- db BANK(DisplayOakLabRightPoster)
- dw DisplayOakLabRightPoster
- db $01,$00,$04
- db BANK(DisplayOakLabEmailText)
- dw DisplayOakLabEmailText
- db $01,$01,$04
- db BANK(DisplayOakLabEmailText)
- dw DisplayOakLabEmailText
- db $FF
-ViridianPokecenterHiddenObjects:
- db $04,$00,$08
- db Bank(PrintBenchGuyText)
- dw PrintBenchGuyText
- db $03,$0d,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $FF
-ViridianMartHiddenObjects:
- db $FF
-ViridianSchoolHiddenObjects:
- db $04,$03,(ViridianSchoolNotebook_id - TextPredefs) / 2 + 1
- db Bank(PrintNotebookText)
- dw PrintNotebookText
- db $00,$03,(ViridianSchoolBlackboard_id - TextPredefs) / 2 + 1
- db BANK(PrintBlackboardLinkCableText)
- dw PrintBlackboardLinkCableText
- db $FF
-ViridianGymHiddenObjects:
- db $0f,$0f,$04
- dbw BANK(GymStatues),GymStatues
- db $0f,$12,$04
- dbw BANK(GymStatues),GymStatues
- db $FF
-Museum1FHiddenObjects:
- db $03,$02,$04
- dbw BANK(AerodactylFossil), AerodactylFossil
- db $06,$02,$04
- dbw BANK(KabutopsFossil), KabutopsFossil
- db $FF
-PewterGymHiddenObjects:
- db $0a,$03,$04
- dbw BANK(GymStatues),GymStatues
- db $0a,$06,$04
- dbw BANK(GymStatues),GymStatues
- db $FF
-PewterMartHiddenObjects:
- db $FF
-PewterPokecenterHiddenObjects:
- db $04,$00,$08
- db Bank(PrintBenchGuyText)
- dw PrintBenchGuyText
- db $03,$0d,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $FF
-CeruleanPokecenterHiddenObjects:
- db $04,$00,$08
- db Bank(PrintBenchGuyText)
- dw PrintBenchGuyText
- db $03,$0d,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $FF
-CeruleanGymHiddenObjects:
- db $0b,$03,$04
- dbw BANK(GymStatues),GymStatues
- db $0b,$06,$04
- dbw BANK(GymStatues),GymStatues
- db $FF
-CeruleanMartHiddenObjects:
- db $FF
-LavenderPokecenterHiddenObjects:
- db $04,$00,$08
- db Bank(PrintBenchGuyText)
- dw PrintBenchGuyText
- db $03,$0d,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $FF
-VermilionPokecenterHiddenObjects:
- db $03,$0d,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $04,$00,$04
- db Bank(PrintBenchGuyText)
- dw PrintBenchGuyText
- db $FF
-VermilionGymHiddenObjects:
- db $0e,$03,$04
- dbw BANK(GymStatues), GymStatues
- db $0e,$06,$04
- dbw BANK(GymStatues), GymStatues
- db $01,$06,$00
- dbw BANK(PrintTrashText), PrintTrashText
- db $07,$01,$00
- dbw BANK(GymTrashScript), GymTrashScript
- db $09,$01,$01
- dbw BANK(GymTrashScript), GymTrashScript
- db $0b,$01,$02
- dbw BANK(GymTrashScript), GymTrashScript
- db $07,$03,$03
- dbw BANK(GymTrashScript), GymTrashScript
- db $09,$03,$04
- dbw BANK(GymTrashScript), GymTrashScript
- db $0b,$03,$05
- dbw BANK(GymTrashScript), GymTrashScript
- db $07,$05,$06
- dbw BANK(GymTrashScript), GymTrashScript
- db $09,$05,$07
- dbw BANK(GymTrashScript), GymTrashScript
- db $0b,$05,$08
- dbw BANK(GymTrashScript), GymTrashScript
- db $07,$07,$09
- dbw BANK(GymTrashScript), GymTrashScript
- db $09,$07,$0a
- dbw BANK(GymTrashScript), GymTrashScript
- db $0b,$07,$0b
- dbw BANK(GymTrashScript), GymTrashScript
- db $07,$09,$0c
- dbw BANK(GymTrashScript), GymTrashScript
- db $09,$09,$0d
- dbw BANK(GymTrashScript), GymTrashScript
- db $0b,$09,$0e
- dbw BANK(GymTrashScript), GymTrashScript
- db $FF
-CeladonMansion2HiddenObjects:
- db $05,$00,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $FF
-CeladonPokecenterHiddenObjects:
- db $04,$00,$08
- db Bank(PrintBenchGuyText)
- dw PrintBenchGuyText
- db $03,$0d,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $FF
-CeladonGymHiddenObjects:
- db $0f,$03,$04
- dbw BANK(GymStatues),GymStatues
- db $0f,$06,$04
- dbw BANK(GymStatues),GymStatues
- db $FF
-GameCornerHiddenObjects:
- db $0f,$12,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0e,$12,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0d,$12,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0c,$12,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0b,$12,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0a,$12,$ff ; "Someone's Keys"
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0a,$0d,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0b,$0d,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0c,$0d,$fe ; "Out To Lunch"
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0d,$0d,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0e,$0d,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0f,$0d,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0f,$0c,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0e,$0c,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0d,$0c,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0c,$0c,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0b,$0c,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0a,$0c,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0a,$07,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0b,$07,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0c,$07,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0d,$07,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0e,$07,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0f,$07,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0f,$06,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0e,$06,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0d,$06,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0c,$06,$fd ; "Out Of Order"
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0b,$06,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0a,$06,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0a,$01,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0b,$01,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0c,$01,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0d,$01,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0e,$01,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $0f,$01,$d0
- dbw BANK(StartSlotMachine), StartSlotMachine
- db $08,$00,COIN+10
- dbw BANK(HiddenCoins),HiddenCoins
- db $10,$01,COIN+10
- dbw BANK(HiddenCoins),HiddenCoins
- db $0b,$03,COIN+20
- dbw BANK(HiddenCoins),HiddenCoins
- db $0e,$03,COIN+10
- dbw BANK(HiddenCoins),HiddenCoins
- db $0c,$04,COIN+10
- dbw BANK(HiddenCoins),HiddenCoins
- db $0c,$09,COIN+20
- dbw BANK(HiddenCoins),HiddenCoins
- db $0f,$09,COIN+10
- dbw BANK(HiddenCoins),HiddenCoins
- db $0e,$10,COIN+10
- dbw BANK(HiddenCoins),HiddenCoins
- db $10,$0a,COIN+10
- dbw BANK(HiddenCoins),HiddenCoins
- db $07,$0b,COIN+40
- dbw BANK(HiddenCoins),HiddenCoins
- db $08,$0f,COIN+100
- dbw BANK(HiddenCoins),HiddenCoins
- db $0f,$0c,COIN+10
- dbw BANK(HiddenCoins),HiddenCoins
- db $FF
-CeladonHotelHiddenObjects:
- db $03,$0d,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $04,$00,$08
- db Bank(PrintBenchGuyText)
- dw PrintBenchGuyText
- db $FF
-FuchsiaPokecenterHiddenObjects:
- db $03,$0d,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $04,$00,$04
- db Bank(PrintBenchGuyText)
- dw PrintBenchGuyText
- db $FF
-FuchsiaGymHiddenObjects:
- db $0f,$03,$04
- dbw BANK(GymStatues),GymStatues
- db $0f,$06,$04
- dbw BANK(GymStatues),GymStatues
- db $FF
-CinnabarGymHiddenObjects:
- db $0d,$11,$04
- dbw BANK(GymStatues),GymStatues
- db $07,$0f,$01
- db Bank(PrintCinnabarQuiz)
- dw PrintCinnabarQuiz
- db $01,$0a,$12
- db Bank(PrintCinnabarQuiz)
- dw PrintCinnabarQuiz
- db $07,$09,$13
- db Bank(PrintCinnabarQuiz)
- dw PrintCinnabarQuiz
- db $0d,$09,$14
- db Bank(PrintCinnabarQuiz)
- dw PrintCinnabarQuiz
- db $0d,$01,$05
- db Bank(PrintCinnabarQuiz)
- dw PrintCinnabarQuiz
- db $07,$01,$16
- db Bank(PrintCinnabarQuiz)
- dw PrintCinnabarQuiz
- db $FF
-CinnabarPokecenterHiddenObjects:
- db $04,$00,$04
- db Bank(PrintBenchGuyText)
- dw PrintBenchGuyText
- db $03,$0d,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $FF
-SaffronGymHiddenObjects:
- db $0f,$09,$04
- dbw BANK(GymStatues),GymStatues
- db $FF
-MtMoonPokecenterHiddenObjects:
- db $04,$00,$08
- db Bank(PrintBenchGuyText)
- dw PrintBenchGuyText
- db $03,$0d,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $FF
-RockTunnelPokecenterHiddenObjects:
- db $04,$00,$08
- db Bank(PrintBenchGuyText)
- dw PrintBenchGuyText
- db $03,$0d,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $FF
-ViridianForestHiddenObjects:
- db $12,$01,POTION
- dbw BANK(HiddenItems),HiddenItems
- db $2a,$10,ANTIDOTE
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-MtMoon3HiddenObjects:
- db $0c,$12,MOON_STONE
- dbw BANK(HiddenItems),HiddenItems
- db $09,$21,ETHER
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-IndigoPlateauHiddenObjects:
- db $0d,$08,$ff
- db BANK(PrintIndigoPlateauHQText)
- dw PrintIndigoPlateauHQText
- db $0d,$0b,$00
- db BANK(PrintIndigoPlateauHQText)
- dw PrintIndigoPlateauHQText
- db $FF
-Route25HiddenObjects:
- db $03,$26,ETHER
- dbw BANK(HiddenItems),HiddenItems
- db $01,$0a,ELIXER
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-Route9HiddenObjects:
- db $07,$0e,ETHER
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-SSAnne6HiddenObjects:
- db $05,$0d,$00
- dbw BANK(PrintTrashText), PrintTrashText
- db $07,$0d,$00
- dbw BANK(PrintTrashText), PrintTrashText
- db $09,$0d,GREAT_BALL
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-SSAnne10HiddenObjects:
- db $01,$03,HYPER_POTION
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-Route10HiddenObjects:
- db $11,$09,SUPER_POTION
- dbw BANK(HiddenItems),HiddenItems
- db $35,$10,MAX_ETHER
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-RocketHideout1HiddenObjects:
- db $0f,$15,PP_UP
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-RocketHideout3HiddenObjects:
- db $11,$1b,NUGGET
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-RocketHideout4HiddenObjects:
- db $01,$19,SUPER_POTION
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-SaffronPokecenterHiddenObjects:
- db $04,$00,$04
- db Bank(PrintBenchGuyText)
- dw PrintBenchGuyText
- db $03,$0d,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $FF
-PokemonTower5HiddenObjects:
- db $0c,$04,ELIXER
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-Route13HiddenObjects:
- db $0e,$01,PP_UP
- dbw BANK(HiddenItems),HiddenItems
- db $0d,$10,CALCIUM
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-SafariZoneEntranceHiddenObjects:
- db $01,$0a,NUGGET
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-SafariZoneWestHiddenObjects:
- db $05,$06,REVIVE
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-SilphCo5FHiddenObjects:
- db $03,$0c,ELIXER
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-SilphCo9FHiddenObjects:
- db $0f,$02,MAX_POTION
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-CopycatsHouse2FHiddenObjects:
- db $01,$01,NUGGET
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-CeruleanCave1HiddenObjects:
- db $0b,$0e,RARE_CANDY
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-CeruleanCave3HiddenObjects:
- db $03,$1b,ULTRA_BALL
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-PowerPlantHiddenObjects:
- db $10,$11,MAX_ELIXER
- dbw BANK(HiddenItems),HiddenItems
- db $01,$0c,PP_UP
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-SeafoamIslands3HiddenObjects:
- db $0f,$0f,NUGGET
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-SeafoamIslands5HiddenObjects:
- db $11,$19,ULTRA_BALL
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-Mansion1HiddenObjects:
- db $10,$08,MOON_STONE
- dbw BANK(HiddenItems),HiddenItems
- db $05,$02,$04
- db BANK(Mansion1Script_Switches)
- dw Mansion1Script_Switches
- db $FF
-Mansion2HiddenObjects:
- db $0b,$02,$04
- db BANK(Mansion2Script_Switches)
- dw Mansion2Script_Switches
- db $FF
-Mansion3HiddenObjects:
- db $09,$01,MAX_REVIVE
- dbw BANK(HiddenItems),HiddenItems
- db $05,$0a,$04
- db BANK(Mansion3Script_Switches)
- dw Mansion3Script_Switches
- db $FF
-Mansion4HiddenObjects:
- db $09,$01,RARE_CANDY
- dbw BANK(HiddenItems),HiddenItems
- db $03,$14,$04
- db BANK(Mansion4Script_Switches)
- dw Mansion4Script_Switches
- db $19,$12,$04
- db BANK(Mansion4Script_Switches)
- dw Mansion4Script_Switches
- db $FF
-Route23HiddenObjects:
- db $2c,$09,FULL_RESTORE
- dbw BANK(HiddenItems),HiddenItems
- db $46,$13,ULTRA_BALL
- dbw BANK(HiddenItems),HiddenItems
- db $5a,$08,MAX_ETHER
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-VictoryRoad2HiddenObjects:
- db $02,$05,ULTRA_BALL
- dbw BANK(HiddenItems),HiddenItems
- db $07,$1a,FULL_RESTORE
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-Unused6FHiddenObjects:
- db $0b,$0e,MAX_ELIXER
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-BillsHouseHiddenObjects:
- db $04,$01,$04
- dbw BANK(BillsHousePC), BillsHousePC
- db $FF
-ViridianCityHiddenObjects:
- db $04,$0e,POTION
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-SafariZoneRestHouse2HiddenObjects:
- db $04,$00,$08
- db Bank(PrintBenchGuyText)
- dw PrintBenchGuyText
- db $03,$0d,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $FF
-SafariZoneRestHouse3HiddenObjects:
- db $04,$00,$08
- db Bank(PrintBenchGuyText)
- dw PrintBenchGuyText
- db $03,$0d,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $FF
-SafariZoneRestHouse4HiddenObjects:
- db $04,$00,$08
- db Bank(PrintBenchGuyText)
- dw PrintBenchGuyText
- db $03,$0d,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $FF
-Route15GateUpstairsHiddenObjects:
- db $02,$01,$04
- db BANK(Route15GateLeftBinoculars)
- dw Route15GateLeftBinoculars
- db $FF
-LavenderHouse1HiddenObjects:
- db $01,$00,$00
- db BANK(PrintMagazinesText)
- dw PrintMagazinesText
- db $01,$01,$00
- db BANK(PrintMagazinesText)
- dw PrintMagazinesText
- db $01,$07,$00
- db BANK(PrintMagazinesText)
- dw PrintMagazinesText
- db $FF
-CeladonMansion5HiddenObjects:
- db $00,$03,(LinkCableHelp_id - TextPredefs) / 2 + 1
- db BANK(PrintBlackboardLinkCableText)
- dw PrintBlackboardLinkCableText
- db $00,$04,(LinkCableHelp_id - TextPredefs) / 2 + 1
- db BANK(PrintBlackboardLinkCableText)
- dw PrintBlackboardLinkCableText
- db $04,$03,(TMNotebook_id - TextPredefs) / 2 + 1
- db Bank(PrintNotebookText)
- dw PrintNotebookText
- db $FF
-FightingDojoHiddenObjects:
- db $09,$03,$04
- db BANK(PrintFightingDojoText)
- dw PrintFightingDojoText
- db $09,$06,$04
- db BANK(PrintFightingDojoText)
- dw PrintFightingDojoText
- db $00,$04,$04
- db BANK(PrintFightingDojoText2)
- dw PrintFightingDojoText2
- db $00,$05,$04
- db BANK(PrintFightingDojoText3)
- dw PrintFightingDojoText3
- db $FF
-IndigoPlateauLobbyHiddenObjects:
- db $07,$0f,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $FF
-CinnabarLab4HiddenObjects:
- db $04,$00,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $04,$02,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $FF
-BikeShopHiddenObjects:
- db $00,$01,$d0
- dbw BANK(PrintNewBikeText), PrintNewBikeText
- db $01,$02,$d0
- dbw BANK(PrintNewBikeText), PrintNewBikeText
- db $02,$01,$d0
- dbw BANK(PrintNewBikeText), PrintNewBikeText
- db $02,$03,$d0
- dbw BANK(PrintNewBikeText), PrintNewBikeText
- db $04,$00,$d0
- dbw BANK(PrintNewBikeText), PrintNewBikeText
- db $05,$01,$d0
- dbw BANK(PrintNewBikeText), PrintNewBikeText
- db $FF
-Route11HiddenObjects:
- db $05,$30,ESCAPE_ROPE
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-Route12HiddenObjects:
- db $3f,$02,HYPER_POTION
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-SilphCo11FHiddenObjects:
- db $0c,$0a,$04
- db BANK(OpenPokemonCenterPC)
- dw OpenPokemonCenterPC
- db $FF
-Route17HiddenObjects:
- db $0e,$0f,RARE_CANDY
- dbw BANK(HiddenItems),HiddenItems
- db $2d,$08,FULL_RESTORE
- dbw BANK(HiddenItems),HiddenItems
- db $48,$11,PP_UP
- dbw BANK(HiddenItems),HiddenItems
- db $5b,$04,MAX_REVIVE
- dbw BANK(HiddenItems),HiddenItems
- db $79,$08,MAX_ELIXER
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-UndergroundPathNsHiddenObjects:
- db $04,$03,FULL_RESTORE
- dbw BANK(HiddenItems),HiddenItems
- db $22,$04,X_SPECIAL
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-UndergroundPathWeHiddenObjects:
- db $02,$0c,NUGGET
- dbw BANK(HiddenItems),HiddenItems
- db $05,$15,ELIXER
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-CeladonCityHiddenObjects:
- db $0f,$30,PP_UP
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-SeafoamIslands4HiddenObjects:
- db $10,$09,MAX_ELIXER
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-VermilionCityHiddenObjects:
- db $0b,$0e,MAX_ETHER
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-CeruleanCityHiddenObjects:
- db $08,$0f,RARE_CANDY
- dbw BANK(HiddenItems),HiddenItems
- db $FF
-Route4HiddenObjects:
- db $03,$28,GREAT_BALL
- dbw BANK(HiddenItems),HiddenItems
- db $FF
diff --git a/data/hide_show_data.asm b/data/hide_show_data.asm
deleted file mode 100755
index 7f4593ca..00000000
--- a/data/hide_show_data.asm
+++ /dev/null
@@ -1,577 +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 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 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 $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
-Show equ $15
-
-MapHSXX:
- db $FF,$FF,$FF
-MapHS00:
- db PALLET_TOWN,$01,Hide
-MapHS01:
- db VIRIDIAN_CITY,$05,Show
- db VIRIDIAN_CITY,$07,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,Show
- db OAKS_LAB,$04,Show
- db OAKS_LAB,$05,Hide
- db OAKS_LAB,$06,Show
- db OAKS_LAB,$07,Show
- db OAKS_LAB,$08,Hide
-MapHS2D:
- db VIRIDIAN_GYM,$01,Show
- db VIRIDIAN_GYM,$0B,Show
-MapHS34:
- db MUSEUM_1F,$05,Show
-MapHSE4:
- db CERULEAN_CAVE_1F,$01,Show
- db CERULEAN_CAVE_1F,$02,Show
- db CERULEAN_CAVE_1F,$03,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,Show
- db POKEMON_TOWER_7F,$02,Show
- db POKEMON_TOWER_7F,$03,Show
- db POKEMON_TOWER_7F,$04,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,$05,Show
- db VIRIDIAN_FOREST,$06,Show
- db VIRIDIAN_FOREST,$07,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,$06,Show
- db MT_MOON_B2F,$07,Show
- db MT_MOON_B2F,$08,Show
- db MT_MOON_B2F,$09,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,$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
-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
-MapHSE3:
- db CERULEAN_CAVE_B1F,$01,Show
- db CERULEAN_CAVE_B1F,$02,Show
- db CERULEAN_CAVE_B1F,$03,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
-
- db $FF,$01,Show
diff --git a/data/hm_moves.asm b/data/hm_moves.asm
deleted file mode 100644
index d72eddfe..00000000
--- a/data/hm_moves.asm
+++ /dev/null
@@ -1,7 +0,0 @@
-HMMoveArray:
- db CUT
- db FLY
- db SURF
- db STRENGTH
- db FLASH
- db -1
diff --git a/data/mon_party_sprite_pointers.asm b/data/icon_pointers.asm
index b615798e..b615798e 100644
--- a/data/mon_party_sprite_pointers.asm
+++ b/data/icon_pointers.asm
diff --git a/data/guard_drink_items.asm b/data/items/guard_drink_items.asm
index effef203..effef203 100644
--- a/data/guard_drink_items.asm
+++ b/data/items/guard_drink_items.asm
diff --git a/data/key_items.asm b/data/items/key_items.asm
index afa586af..afa586af 100755
--- a/data/key_items.asm
+++ b/data/items/key_items.asm
diff --git a/data/mart_inventories.asm b/data/items/marts.asm
index 35ae2e9d..35ae2e9d 100755
--- a/data/mart_inventories.asm
+++ b/data/items/marts.asm
diff --git a/text/item_names.asm b/data/items/names.asm
index 0c07fe5d..0c07fe5d 100755
--- a/text/item_names.asm
+++ b/data/items/names.asm
diff --git a/data/item_prices.asm b/data/items/prices.asm
index f3d8f76b..f3d8f76b 100755
--- a/data/item_prices.asm
+++ b/data/items/prices.asm
diff --git a/data/tm_prices.asm b/data/items/tm_prices.asm
index ccc8be05..ccc8be05 100755
--- a/data/tm_prices.asm
+++ b/data/items/tm_prices.asm
diff --git a/data/overworld_items.asm b/data/items/use_overworld.asm
index c2c244fe..c2c244fe 100644
--- a/data/overworld_items.asm
+++ b/data/items/use_overworld.asm
diff --git a/data/party_items.asm b/data/items/use_party.asm
index 0126ed5e..0126ed5e 100644
--- a/data/party_items.asm
+++ b/data/items/use_party.asm
diff --git a/data/vending_prices.asm b/data/items/vending_prices.asm
index 9a473cc9..9a473cc9 100644
--- a/data/vending_prices.asm
+++ b/data/items/vending_prices.asm
diff --git a/data/mapHeaders/AgathasRoom.asm b/data/mapHeaders/AgathasRoom.asm
deleted file mode 100755
index 6e31225c..00000000
--- 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 ea6f8d60..00000000
--- 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 e58cbd5b..00000000
--- 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 bc9ed3de..00000000
--- 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 03398603..00000000
--- 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 e29f722f..00000000
--- 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 f2ce1831..00000000
--- 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 14501d83..00000000
--- 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 b64c5e19..00000000
--- 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 ecc943c2..00000000
--- 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 b13f76a7..00000000
--- 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 33493510..00000000
--- 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 89d0cfe6..00000000
--- 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 7f7fa4ac..00000000
--- 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 de6771b7..00000000
--- 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 d392f8a7..00000000
--- 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 ff39a08c..00000000
--- 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 2bdd384f..00000000
--- 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 d03bde7a..00000000
--- 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 e0f9c436..00000000
--- 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 391f65fd..00000000
--- 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 38f863f1..00000000
--- 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 5b945d50..00000000
--- 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 eaf77bb7..00000000
--- 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 0ab0ecf0..00000000
--- 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 4002e73a..00000000
--- 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 e3e9980f..00000000
--- 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 23206c0a..00000000
--- 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 32bb563f..00000000
--- 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 106b664c..00000000
--- 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 d81c0183..00000000
--- 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 171586fa..00000000
--- 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 b9d53cdb..00000000
--- 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 c6794804..00000000
--- 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 96154af7..00000000
--- 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 3489fe3c..00000000
--- 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 ffa3a037..00000000
--- 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 8e833f70..00000000
--- 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 35169504..00000000
--- 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 a18e6eed..00000000
--- 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 aac1c69f..00000000
--- 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 d9ade14c..00000000
--- 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 3375e0f1..00000000
--- 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 b68728ae..00000000
--- 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 1c7d9af9..00000000
--- 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 4f2e41e7..00000000
--- 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 9742d306..00000000
--- 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 ac9082ed..00000000
--- 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 1279e89f..00000000
--- 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 da8a589a..00000000
--- 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 cbef462c..00000000
--- 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 1b247678..00000000
--- 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 fd2e36b4..00000000
--- 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 ffc5c0fe..00000000
--- 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 b9c0d938..00000000
--- 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 a3198eea..00000000
--- 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 beea4fc2..00000000
--- 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 6965e276..00000000
--- 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 035f1112..00000000
--- 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 7752ddb5..00000000
--- 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 b5dcf3de..00000000
--- 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 dc32f7d1..00000000
--- 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 5373f010..00000000
--- 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 6d883655..00000000
--- 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 500287b4..00000000
--- 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 2c87b401..00000000
--- 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 67a88189..00000000
--- 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 d580d9fe..00000000
--- 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 ee82e49c..00000000
--- 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 ec559ec7..00000000
--- 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 37c0ba59..00000000
--- 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 c14d35d0..00000000
--- 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 cce8454b..00000000
--- 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 31f7ec7a..00000000
--- 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 f0c967aa..00000000
--- 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 9ab38801..00000000
--- 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 a727b334..00000000
--- 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 ceee34eb..00000000
--- 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 72d138e7..00000000
--- 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 17d1d2f3..00000000
--- 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 94cdd401..00000000
--- 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 962634f4..00000000
--- 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 9900360b..00000000
--- 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 5738cb64..00000000
--- 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 9cc2d360..00000000
--- 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 251ac2c4..00000000
--- 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 b3bebb5f..00000000
--- 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 d532db2a..00000000
--- 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 e8887551..00000000
--- 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 08ec13f4..00000000
--- 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 99b129e8..00000000
--- 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 ce0ea13d..00000000
--- 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 a495b30f..00000000
--- 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 b6932406..00000000
--- 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 f51e6990..00000000
--- 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 5fa1a035..00000000
--- 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 90fc1d8b..00000000
--- 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 3cb4efcd..00000000
--- 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 b13008ae..00000000
--- 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 8824ebf2..00000000
--- 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 8dd5929b..00000000
--- 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 36cd7f37..00000000
--- 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 3d0bbed0..00000000
--- 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 4d875a1b..00000000
--- 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 0d56f2a1..00000000
--- 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 e71fcff1..00000000
--- 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 05ad471a..00000000
--- 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 6221dddd..00000000
--- 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 20d389ab..00000000
--- 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 5759483b..00000000
--- 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 6b95cebc..00000000
--- 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 0f26b117..00000000
--- 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 b408b5a7..00000000
--- 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 284105fa..00000000
--- 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 dbce0ab9..00000000
--- 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 f4e2330d..00000000
--- 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 70357a3a..00000000
--- 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 fb85dd60..00000000
--- 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 d1484f6b..00000000
--- 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 5f66a521..00000000
--- 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 d3f5a377..00000000
--- 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 87b05105..00000000
--- 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 be436134..00000000
--- 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 6bc41d1d..00000000
--- 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 16bbb30b..00000000
--- 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 600101c9..00000000
--- 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 32bdb541..00000000
--- 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 e0b5daef..00000000
--- 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 d04288d5..00000000
--- 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 cf8c6d6a..00000000
--- 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 2b6c8ca2..00000000
--- 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 6dc96c4e..00000000
--- 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 03455c54..00000000
--- 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 81e749e0..00000000
--- 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 083652cc..00000000
--- 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 b0fae3e4..00000000
--- 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 1bc27a5f..00000000
--- 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 acb98d40..00000000
--- 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 d8da8583..00000000
--- 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 68581910..00000000
--- 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 98dc7aed..00000000
--- 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 a84b5bf9..00000000
--- 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 d0d27d9c..00000000
--- 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 5a0e0cd4..00000000
--- 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 d5de72b4..00000000
--- 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 85cb1054..00000000
--- 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 e5896518..00000000
--- 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 cb12c75a..00000000
--- 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 d8400dae..00000000
--- 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 482e12f9..00000000
--- 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 7599276b..00000000
--- 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 a0aef316..00000000
--- 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 3b82a4ed..00000000
--- 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 14260765..00000000
--- 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 aef34599..00000000
--- 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 12ecca80..00000000
--- 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 22ddfa03..00000000
--- 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 28f0bbe3..00000000
--- 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 3d439984..00000000
--- 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 1b1be8cb..00000000
--- 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 78522804..00000000
--- 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 e4c6c472..00000000
--- 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 a6e98bc3..00000000
--- 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 3dc9fba2..00000000
--- 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 4f9c0989..00000000
--- 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 4afa17c4..00000000
--- 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 49d56b52..00000000
--- 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 a8364c74..00000000
--- 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 faf16451..00000000
--- 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 1db35d37..00000000
--- 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 00fd7d91..00000000
--- 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 6b630df3..00000000
--- 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 c7a498de..00000000
--- 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 d9ca460d..00000000
--- 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 d8c477a4..00000000
--- 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 8e2e8b47..00000000
--- 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 18f7a7de..00000000
--- 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 67df46fa..00000000
--- 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 e1a667b6..00000000
--- 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 d8074e20..00000000
--- 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 2976a45b..00000000
--- 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 fcc98db5..00000000
--- 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 be016e65..00000000
--- 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 c16255dd..00000000
--- 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 0109677e..00000000
--- 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 c9a21b17..00000000
--- 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 bd027dba..00000000
--- 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 6f45da8d..00000000
--- 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 355aa258..00000000
--- 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 732248ac..00000000
--- 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 116e0342..00000000
--- 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 6d1c7faf..00000000
--- 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 3465e2fc..00000000
--- 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 5bf164da..00000000
--- 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 584cf3c6..00000000
--- 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 1443d875..00000000
--- 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 769bd1c0..00000000
--- 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 f2a5beb7..00000000
--- 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 b8120ef4..00000000
--- 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 2ccdac57..00000000
--- 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 a1971c3c..00000000
--- 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 1d50c103..00000000
--- 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 8026c214..00000000
--- 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 0eb0edac..00000000
--- 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 0b5913f1..00000000
--- 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 2fc1c79a..00000000
--- 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 88a6e5d8..00000000
--- 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 d355805a..00000000
--- 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 face28d6..00000000
--- 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 cadd14b2..00000000
--- 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 239a8de3..00000000
--- 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 a0138cb2..00000000
--- 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 32133afa..00000000
--- 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 5dc56820..00000000
--- 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 557b99ed..00000000
--- 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 1fd4ac7d..00000000
--- 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 65d587f8..00000000
--- 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 136a13b5..00000000
--- 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 341caa86..00000000
--- 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 db817b2f..00000000
--- 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 203abf06..00000000
--- 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 fdf1090a..00000000
--- 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 6c6b0f6c..00000000
--- 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/dungeon_maps.asm b/data/maps/dungeon_maps.asm
index 118cf46b..118cf46b 100644
--- a/data/dungeon_maps.asm
+++ b/data/maps/dungeon_maps.asm
diff --git a/data/force_bike_surf.asm b/data/maps/force_bike_surf.asm
index fb352aa9..fb352aa9 100755
--- a/data/force_bike_surf.asm
+++ b/data/maps/force_bike_surf.asm
diff --git a/data/maps/headers/AgathasRoom.asm b/data/maps/headers/AgathasRoom.asm
new file mode 100755
index 00000000..d04e0cfd
--- /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/maps/headers/BikeShop.asm b/data/maps/headers/BikeShop.asm
new file mode 100755
index 00000000..b4b520e2
--- /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 00000000..6063175d
--- /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 00000000..33cee254
--- /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 00000000..a0b2d4fd
--- /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 00000000..34f17273
--- /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 00000000..6faa6f48
--- /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 00000000..b18d9633
--- /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 00000000..2302c65a
--- /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 00000000..2339c14d
--- /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 00000000..45970028
--- /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 00000000..d5e3e77b
--- /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 00000000..7566caad
--- /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 00000000..9cbae6f6
--- /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 00000000..cb80fac8
--- /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 00000000..30bd9ba9
--- /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 00000000..d78dfe28
--- /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 00000000..ad415eee
--- /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 00000000..b9ce5b34
--- /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 00000000..04d65b2b
--- /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 00000000..2a98ccb0
--- /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 00000000..823ff25f
--- /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 00000000..378a41ec
--- /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 00000000..47a97b14
--- /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 00000000..7c80bbeb
--- /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 00000000..353e265b
--- /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 00000000..d759aa6b
--- /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 00000000..c925713c
--- /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 00000000..b1010ac3
--- /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 00000000..2ee31666
--- /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 00000000..b79e7aff
--- /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 00000000..20970b77
--- /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 00000000..192a4195
--- /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 00000000..aadc70a6
--- /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 00000000..cc6dc1d7
--- /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 00000000..a94498be
--- /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 00000000..e8081e75
--- /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 00000000..3cb88437
--- /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 00000000..d77338c8
--- /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 00000000..c23d9c15
--- /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 00000000..c68d582a
--- /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 00000000..d910133b
--- /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 00000000..faf03eb4
--- /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 00000000..532cef93
--- /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 00000000..38b1fbbb
--- /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 00000000..dabeedd9
--- /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 00000000..d3777d31
--- /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 00000000..d8bdd704
--- /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 00000000..86f5ae35
--- /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 00000000..7ecadc57
--- /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 00000000..10ba48e9
--- /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 00000000..6028bce0
--- /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 00000000..d21611c1
--- /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 00000000..44be2971
--- /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 00000000..120fe305
--- /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 00000000..a5ab4f04
--- /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 00000000..c1c683bd
--- /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 00000000..ad367b93
--- /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 00000000..4668cbb8
--- /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 00000000..e2dc3fb3
--- /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 00000000..ff394dfe
--- /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 00000000..b13afa12
--- /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 00000000..0b69970e
--- /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 00000000..dfd38ff1
--- /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 00000000..82c239e6
--- /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 00000000..c0cd0adf
--- /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 00000000..7c1c9c46
--- /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 00000000..feff946c
--- /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 00000000..023cb501
--- /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 00000000..628db044
--- /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 00000000..8de2be3e
--- /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 00000000..9c97b5c7
--- /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 00000000..0ed1f96e
--- /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 00000000..0425eae7
--- /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 00000000..d92176d2
--- /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 00000000..d5bf8918
--- /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 00000000..3f9010f0
--- /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 00000000..42bb76e8
--- /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 00000000..2745bdc1
--- /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 00000000..268adb7a
--- /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 00000000..a1659e42
--- /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 00000000..c9b24eb2
--- /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 00000000..ee2e46ca
--- /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 00000000..4e420bf8
--- /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 00000000..a378d61e
--- /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 00000000..b4ff8e1c
--- /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 00000000..9407f956
--- /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 00000000..deb7c84f
--- /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 00000000..e4baa709
--- /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 00000000..0aae67e6
--- /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 00000000..185fd2c0
--- /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 00000000..5a6046c8
--- /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 00000000..49ebc4e7
--- /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 00000000..0eb9a0d6
--- /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 00000000..e58c63c6
--- /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 00000000..ba53347b
--- /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 00000000..bd9f839b
--- /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 00000000..88d82ae2
--- /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 00000000..018bdc80
--- /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 00000000..10332e2c
--- /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 00000000..268ee645
--- /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 00000000..7b13f647
--- /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 00000000..a873854b
--- /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 00000000..521a6693
--- /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 00000000..ab2a965d
--- /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 00000000..0a04b00e
--- /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 00000000..11512c01
--- /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 00000000..90ece237
--- /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 00000000..6eeb0347
--- /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 00000000..ba498b0a
--- /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 00000000..d8f2e72f
--- /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 00000000..aa97b791
--- /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 00000000..560d38db
--- /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 00000000..931ddf1d
--- /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 00000000..047a670c
--- /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 00000000..e1366736
--- /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 00000000..2195a9b1
--- /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 00000000..242aaa02
--- /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 00000000..c0c39c56
--- /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 00000000..28a811d2
--- /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 00000000..a23d15a0
--- /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 00000000..8ca89872
--- /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 00000000..423c7af2
--- /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 00000000..240b6df4
--- /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 00000000..74fd1b7f
--- /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 00000000..ed889f4b
--- /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 00000000..5e853299
--- /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 00000000..34573051
--- /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 00000000..2847e0e3
--- /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 00000000..f25fa700
--- /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 00000000..7f01c804
--- /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 00000000..521eef69
--- /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 00000000..3495b785
--- /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 00000000..803bf217
--- /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 00000000..e235efa1
--- /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 00000000..a9d1dd37
--- /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 00000000..e1535c9d
--- /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 00000000..faf53660
--- /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 00000000..1873d19b
--- /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 00000000..730d8f2d
--- /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 00000000..b9937dad
--- /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 00000000..ddbd7783
--- /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 00000000..6c43171a
--- /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 00000000..ea84090c
--- /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 00000000..a0115533
--- /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 00000000..956aa4d6
--- /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 00000000..f80b57c8
--- /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 00000000..8368c3fe
--- /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 00000000..e9b9b16d
--- /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 00000000..8df9e023
--- /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 00000000..f6a320a4
--- /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 00000000..c1ed9225
--- /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 00000000..80d25e2d
--- /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 00000000..8bdd8d00
--- /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 00000000..b2fe14d7
--- /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 00000000..2d349e4c
--- /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 00000000..f391a0cd
--- /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 00000000..c21d7cff
--- /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 00000000..1b8b4620
--- /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 00000000..2195e970
--- /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 00000000..a24f930d
--- /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 00000000..47e84fbe
--- /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 00000000..ccc58ed1
--- /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 00000000..a866003f
--- /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 00000000..c23e9334
--- /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 00000000..1f8d76c6
--- /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 00000000..7816460d
--- /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 00000000..32639d22
--- /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 00000000..ec083803
--- /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 00000000..630577c4
--- /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 00000000..a1117d09
--- /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 00000000..e4618e1d
--- /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 00000000..ee1f71e4
--- /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 00000000..14ee3323
--- /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 00000000..f03132d2
--- /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 00000000..e9f8dde7
--- /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 00000000..9b250050
--- /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 00000000..db530549
--- /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 00000000..589eef93
--- /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 00000000..f7e624ed
--- /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 00000000..b57da3c0
--- /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 00000000..bae1e3a2
--- /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 00000000..7a6786e7
--- /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 00000000..72eaaca2
--- /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 00000000..4c4ac97d
--- /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 00000000..7dc44a55
--- /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 00000000..99e4aa15
--- /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 00000000..8eed0f9a
--- /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 00000000..3b40c360
--- /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 00000000..3d2b3b8c
--- /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 00000000..1591837a
--- /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 00000000..e676fa86
--- /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 00000000..89f0300a
--- /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 00000000..4dd9cd9f
--- /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 00000000..268d76b2
--- /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 00000000..4bb03c79
--- /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 00000000..18287254
--- /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 00000000..67772543
--- /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 00000000..d70548ed
--- /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 00000000..30bb70a8
--- /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 00000000..102d8413
--- /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 00000000..05976e87
--- /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 00000000..e211562c
--- /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 00000000..9a9b61c2
--- /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 00000000..ca75b8c1
--- /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 00000000..5777db4b
--- /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 00000000..f9c890e0
--- /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 00000000..afb81784
--- /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 00000000..af9827ac
--- /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 00000000..3cb82c47
--- /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 00000000..dae95f16
--- /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 00000000..99079ad3
--- /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 00000000..bc15cad7
--- /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 00000000..0771cc81
--- /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 00000000..d531ec86
--- /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 00000000..5bfcd6ed
--- /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 00000000..87a49284
--- /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 00000000..640a71b6
--- /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 00000000..817b5265
--- /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 00000000..5a7c272f
--- /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 00000000..daac19f3
--- /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 00000000..f5b77212
--- /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 00000000..08216f59
--- /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 00000000..bc89d600
--- /dev/null
+++ b/data/maps/hide_show_data.asm
@@ -0,0 +1,577 @@
+; 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 -1.
+; 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 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 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 -1 ; end
+
+; 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
+Show equ $15
+
+MapHSXX:
+ db $FF,$FF,$FF
+MapHS00:
+ db PALLET_TOWN,$01,Hide
+MapHS01:
+ db VIRIDIAN_CITY,$05,Show
+ db VIRIDIAN_CITY,$07,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,Show
+ db OAKS_LAB,$04,Show
+ db OAKS_LAB,$05,Hide
+ db OAKS_LAB,$06,Show
+ db OAKS_LAB,$07,Show
+ db OAKS_LAB,$08,Hide
+MapHS2D:
+ db VIRIDIAN_GYM,$01,Show
+ db VIRIDIAN_GYM,$0B,Show
+MapHS34:
+ db MUSEUM_1F,$05,Show
+MapHSE4:
+ db CERULEAN_CAVE_1F,$01,Show
+ db CERULEAN_CAVE_1F,$02,Show
+ db CERULEAN_CAVE_1F,$03,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,Show
+ db POKEMON_TOWER_7F,$02,Show
+ db POKEMON_TOWER_7F,$03,Show
+ db POKEMON_TOWER_7F,$04,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,$05,Show
+ db VIRIDIAN_FOREST,$06,Show
+ db VIRIDIAN_FOREST,$07,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,$06,Show
+ db MT_MOON_B2F,$07,Show
+ db MT_MOON_B2F,$08,Show
+ db MT_MOON_B2F,$09,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,$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
+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
+MapHSE3:
+ db CERULEAN_CAVE_B1F,$01,Show
+ db CERULEAN_CAVE_B1F,$02,Show
+ db CERULEAN_CAVE_B1F,$03,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
+
+ db $FF,$01,Show
diff --git a/data/map_header_banks.asm b/data/maps/map_header_banks.asm
index d698cfee..d698cfee 100755
--- a/data/map_header_banks.asm
+++ b/data/maps/map_header_banks.asm
diff --git a/data/map_header_pointers.asm b/data/maps/map_header_pointers.asm
index 9d85eaae..9d85eaae 100755
--- a/data/map_header_pointers.asm
+++ b/data/maps/map_header_pointers.asm
diff --git a/text/map_names.asm b/data/maps/names.asm
index c2642942..c2642942 100755
--- a/text/map_names.asm
+++ b/data/maps/names.asm
diff --git a/data/mapObjects/AgathasRoom.asm b/data/maps/objects/AgathasRoom.asm
index 4a82e78d..4a82e78d 100755
--- a/data/mapObjects/AgathasRoom.asm
+++ b/data/maps/objects/AgathasRoom.asm
diff --git a/data/mapObjects/BikeShop.asm b/data/maps/objects/BikeShop.asm
index 9f21ab3e..9f21ab3e 100755
--- a/data/mapObjects/BikeShop.asm
+++ b/data/maps/objects/BikeShop.asm
diff --git a/data/mapObjects/BillsHouse.asm b/data/maps/objects/BillsHouse.asm
index c8f708cb..c8f708cb 100755
--- a/data/mapObjects/BillsHouse.asm
+++ b/data/maps/objects/BillsHouse.asm
diff --git a/data/mapObjects/BluesHouse.asm b/data/maps/objects/BluesHouse.asm
index 45ca1286..45ca1286 100755
--- a/data/mapObjects/BluesHouse.asm
+++ b/data/maps/objects/BluesHouse.asm
diff --git a/data/mapObjects/BrunosRoom.asm b/data/maps/objects/BrunosRoom.asm
index dde1e2dd..dde1e2dd 100755
--- a/data/mapObjects/BrunosRoom.asm
+++ b/data/maps/objects/BrunosRoom.asm
diff --git a/data/mapObjects/CeladonChiefHouse.asm b/data/maps/objects/CeladonChiefHouse.asm
index 88850f35..88850f35 100755
--- a/data/mapObjects/CeladonChiefHouse.asm
+++ b/data/maps/objects/CeladonChiefHouse.asm
diff --git a/data/mapObjects/CeladonCity.asm b/data/maps/objects/CeladonCity.asm
index 005fc61e..005fc61e 100755
--- a/data/mapObjects/CeladonCity.asm
+++ b/data/maps/objects/CeladonCity.asm
diff --git a/data/mapObjects/CeladonDiner.asm b/data/maps/objects/CeladonDiner.asm
index 0a4a895d..0a4a895d 100755
--- a/data/mapObjects/CeladonDiner.asm
+++ b/data/maps/objects/CeladonDiner.asm
diff --git a/data/mapObjects/CeladonGym.asm b/data/maps/objects/CeladonGym.asm
index 98fce576..98fce576 100755
--- a/data/mapObjects/CeladonGym.asm
+++ b/data/maps/objects/CeladonGym.asm
diff --git a/data/mapObjects/CeladonHotel.asm b/data/maps/objects/CeladonHotel.asm
index f4aa1305..f4aa1305 100755
--- a/data/mapObjects/CeladonHotel.asm
+++ b/data/maps/objects/CeladonHotel.asm
diff --git a/data/mapObjects/CeladonMansion1F.asm b/data/maps/objects/CeladonMansion1F.asm
index 1abd434c..1abd434c 100755
--- a/data/mapObjects/CeladonMansion1F.asm
+++ b/data/maps/objects/CeladonMansion1F.asm
diff --git a/data/mapObjects/CeladonMansion2F.asm b/data/maps/objects/CeladonMansion2F.asm
index 09c94d29..09c94d29 100755
--- a/data/mapObjects/CeladonMansion2F.asm
+++ b/data/maps/objects/CeladonMansion2F.asm
diff --git a/data/mapObjects/CeladonMansion3F.asm b/data/maps/objects/CeladonMansion3F.asm
index 32701f14..32701f14 100755
--- a/data/mapObjects/CeladonMansion3F.asm
+++ b/data/maps/objects/CeladonMansion3F.asm
diff --git a/data/mapObjects/CeladonMansionRoof.asm b/data/maps/objects/CeladonMansionRoof.asm
index 353b0b96..353b0b96 100755
--- a/data/mapObjects/CeladonMansionRoof.asm
+++ b/data/maps/objects/CeladonMansionRoof.asm
diff --git a/data/mapObjects/CeladonMansionRoofHouse.asm b/data/maps/objects/CeladonMansionRoofHouse.asm
index b6a6149f..b6a6149f 100755
--- a/data/mapObjects/CeladonMansionRoofHouse.asm
+++ b/data/maps/objects/CeladonMansionRoofHouse.asm
diff --git a/data/mapObjects/CeladonMart1F.asm b/data/maps/objects/CeladonMart1F.asm
index 2037369a..2037369a 100755
--- a/data/mapObjects/CeladonMart1F.asm
+++ b/data/maps/objects/CeladonMart1F.asm
diff --git a/data/mapObjects/CeladonMart2F.asm b/data/maps/objects/CeladonMart2F.asm
index 2f5f428e..2f5f428e 100755
--- a/data/mapObjects/CeladonMart2F.asm
+++ b/data/maps/objects/CeladonMart2F.asm
diff --git a/data/mapObjects/CeladonMart3F.asm b/data/maps/objects/CeladonMart3F.asm
index 6dfce535..6dfce535 100755
--- a/data/mapObjects/CeladonMart3F.asm
+++ b/data/maps/objects/CeladonMart3F.asm
diff --git a/data/mapObjects/CeladonMart4F.asm b/data/maps/objects/CeladonMart4F.asm
index 18ba3bdc..18ba3bdc 100755
--- a/data/mapObjects/CeladonMart4F.asm
+++ b/data/maps/objects/CeladonMart4F.asm
diff --git a/data/mapObjects/CeladonMart5F.asm b/data/maps/objects/CeladonMart5F.asm
index fb1201c9..fb1201c9 100755
--- a/data/mapObjects/CeladonMart5F.asm
+++ b/data/maps/objects/CeladonMart5F.asm
diff --git a/data/mapObjects/CeladonMartElevator.asm b/data/maps/objects/CeladonMartElevator.asm
index 9688daef..9688daef 100755
--- a/data/mapObjects/CeladonMartElevator.asm
+++ b/data/maps/objects/CeladonMartElevator.asm
diff --git a/data/mapObjects/CeladonMartRoof.asm b/data/maps/objects/CeladonMartRoof.asm
index 05cef2d4..05cef2d4 100755
--- a/data/mapObjects/CeladonMartRoof.asm
+++ b/data/maps/objects/CeladonMartRoof.asm
diff --git a/data/mapObjects/CeladonPokecenter.asm b/data/maps/objects/CeladonPokecenter.asm
index da5d595f..da5d595f 100755
--- a/data/mapObjects/CeladonPokecenter.asm
+++ b/data/maps/objects/CeladonPokecenter.asm
diff --git a/data/mapObjects/CeruleanBadgeHouse.asm b/data/maps/objects/CeruleanBadgeHouse.asm
index 62a6873b..62a6873b 100755
--- a/data/mapObjects/CeruleanBadgeHouse.asm
+++ b/data/maps/objects/CeruleanBadgeHouse.asm
diff --git a/data/mapObjects/CeruleanCave1F.asm b/data/maps/objects/CeruleanCave1F.asm
index f9670482..f9670482 100755
--- a/data/mapObjects/CeruleanCave1F.asm
+++ b/data/maps/objects/CeruleanCave1F.asm
diff --git a/data/mapObjects/CeruleanCave2F.asm b/data/maps/objects/CeruleanCave2F.asm
index f8312da0..f8312da0 100755
--- a/data/mapObjects/CeruleanCave2F.asm
+++ b/data/maps/objects/CeruleanCave2F.asm
diff --git a/data/mapObjects/CeruleanCaveB1F.asm b/data/maps/objects/CeruleanCaveB1F.asm
index 461f77aa..461f77aa 100755
--- a/data/mapObjects/CeruleanCaveB1F.asm
+++ b/data/maps/objects/CeruleanCaveB1F.asm
diff --git a/data/mapObjects/CeruleanCity.asm b/data/maps/objects/CeruleanCity.asm
index d5adcfd7..d5adcfd7 100755
--- a/data/mapObjects/CeruleanCity.asm
+++ b/data/maps/objects/CeruleanCity.asm
diff --git a/data/mapObjects/CeruleanGym.asm b/data/maps/objects/CeruleanGym.asm
index 96713648..96713648 100755
--- a/data/mapObjects/CeruleanGym.asm
+++ b/data/maps/objects/CeruleanGym.asm
diff --git a/data/mapObjects/CeruleanMart.asm b/data/maps/objects/CeruleanMart.asm
index 4659375f..4659375f 100755
--- a/data/mapObjects/CeruleanMart.asm
+++ b/data/maps/objects/CeruleanMart.asm
diff --git a/data/mapObjects/CeruleanPokecenter.asm b/data/maps/objects/CeruleanPokecenter.asm
index f65db52c..f65db52c 100755
--- a/data/mapObjects/CeruleanPokecenter.asm
+++ b/data/maps/objects/CeruleanPokecenter.asm
diff --git a/data/mapObjects/CeruleanTradeHouse.asm b/data/maps/objects/CeruleanTradeHouse.asm
index a4a46e9b..a4a46e9b 100755
--- a/data/mapObjects/CeruleanTradeHouse.asm
+++ b/data/maps/objects/CeruleanTradeHouse.asm
diff --git a/data/mapObjects/CeruleanTrashedHouse.asm b/data/maps/objects/CeruleanTrashedHouse.asm
index 44b7cf20..44b7cf20 100755
--- a/data/mapObjects/CeruleanTrashedHouse.asm
+++ b/data/maps/objects/CeruleanTrashedHouse.asm
diff --git a/data/mapObjects/ChampionsRoom.asm b/data/maps/objects/ChampionsRoom.asm
index 1e0cb7f4..1e0cb7f4 100755
--- a/data/mapObjects/ChampionsRoom.asm
+++ b/data/maps/objects/ChampionsRoom.asm
diff --git a/data/mapObjects/CinnabarGym.asm b/data/maps/objects/CinnabarGym.asm
index ab204d43..ab204d43 100755
--- a/data/mapObjects/CinnabarGym.asm
+++ b/data/maps/objects/CinnabarGym.asm
diff --git a/data/mapObjects/CinnabarIsland.asm b/data/maps/objects/CinnabarIsland.asm
index 1932e134..1932e134 100755
--- a/data/mapObjects/CinnabarIsland.asm
+++ b/data/maps/objects/CinnabarIsland.asm
diff --git a/data/mapObjects/CinnabarLab.asm b/data/maps/objects/CinnabarLab.asm
index deb5d8ed..deb5d8ed 100755
--- a/data/mapObjects/CinnabarLab.asm
+++ b/data/maps/objects/CinnabarLab.asm
diff --git a/data/mapObjects/CinnabarLabFossilRoom.asm b/data/maps/objects/CinnabarLabFossilRoom.asm
index d31502e6..d31502e6 100755
--- a/data/mapObjects/CinnabarLabFossilRoom.asm
+++ b/data/maps/objects/CinnabarLabFossilRoom.asm
diff --git a/data/mapObjects/CinnabarLabMetronomeRoom.asm b/data/maps/objects/CinnabarLabMetronomeRoom.asm
index 37f93d43..37f93d43 100755
--- a/data/mapObjects/CinnabarLabMetronomeRoom.asm
+++ b/data/maps/objects/CinnabarLabMetronomeRoom.asm
diff --git a/data/mapObjects/CinnabarLabTradeRoom.asm b/data/maps/objects/CinnabarLabTradeRoom.asm
index 449cc914..449cc914 100755
--- a/data/mapObjects/CinnabarLabTradeRoom.asm
+++ b/data/maps/objects/CinnabarLabTradeRoom.asm
diff --git a/data/mapObjects/CinnabarMart.asm b/data/maps/objects/CinnabarMart.asm
index af88ddf0..af88ddf0 100755
--- a/data/mapObjects/CinnabarMart.asm
+++ b/data/maps/objects/CinnabarMart.asm
diff --git a/data/mapObjects/CinnabarPokecenter.asm b/data/maps/objects/CinnabarPokecenter.asm
index 9583ef2a..9583ef2a 100755
--- a/data/mapObjects/CinnabarPokecenter.asm
+++ b/data/maps/objects/CinnabarPokecenter.asm
diff --git a/data/mapObjects/Colosseum.asm b/data/maps/objects/Colosseum.asm
index 18762584..18762584 100755
--- a/data/mapObjects/Colosseum.asm
+++ b/data/maps/objects/Colosseum.asm
diff --git a/data/mapObjects/CopycatsHouse1F.asm b/data/maps/objects/CopycatsHouse1F.asm
index cb4dbb0b..cb4dbb0b 100755
--- a/data/mapObjects/CopycatsHouse1F.asm
+++ b/data/maps/objects/CopycatsHouse1F.asm
diff --git a/data/mapObjects/CopycatsHouse2F.asm b/data/maps/objects/CopycatsHouse2F.asm
index 18b56419..18b56419 100755
--- a/data/mapObjects/CopycatsHouse2F.asm
+++ b/data/maps/objects/CopycatsHouse2F.asm
diff --git a/data/mapObjects/Daycare.asm b/data/maps/objects/Daycare.asm
index c58c83e4..c58c83e4 100755
--- a/data/mapObjects/Daycare.asm
+++ b/data/maps/objects/Daycare.asm
diff --git a/data/mapObjects/DiglettsCave.asm b/data/maps/objects/DiglettsCave.asm
index b4fd0af8..b4fd0af8 100755
--- a/data/mapObjects/DiglettsCave.asm
+++ b/data/maps/objects/DiglettsCave.asm
diff --git a/data/mapObjects/DiglettsCaveRoute11.asm b/data/maps/objects/DiglettsCaveRoute11.asm
index a4c70f06..a4c70f06 100755
--- a/data/mapObjects/DiglettsCaveRoute11.asm
+++ b/data/maps/objects/DiglettsCaveRoute11.asm
diff --git a/data/mapObjects/DiglettsCaveRoute2.asm b/data/maps/objects/DiglettsCaveRoute2.asm
index 0567fee6..0567fee6 100755
--- a/data/mapObjects/DiglettsCaveRoute2.asm
+++ b/data/maps/objects/DiglettsCaveRoute2.asm
diff --git a/data/mapObjects/FightingDojo.asm b/data/maps/objects/FightingDojo.asm
index fdc7b838..fdc7b838 100755
--- a/data/mapObjects/FightingDojo.asm
+++ b/data/maps/objects/FightingDojo.asm
diff --git a/data/mapObjects/FuchsiaBillsGrandpasHouse.asm b/data/maps/objects/FuchsiaBillsGrandpasHouse.asm
index 363b56f9..363b56f9 100755
--- a/data/mapObjects/FuchsiaBillsGrandpasHouse.asm
+++ b/data/maps/objects/FuchsiaBillsGrandpasHouse.asm
diff --git a/data/mapObjects/FuchsiaCity.asm b/data/maps/objects/FuchsiaCity.asm
index 09c97b02..09c97b02 100755
--- a/data/mapObjects/FuchsiaCity.asm
+++ b/data/maps/objects/FuchsiaCity.asm
diff --git a/data/mapObjects/FuchsiaGoodRodHouse.asm b/data/maps/objects/FuchsiaGoodRodHouse.asm
index 390447c8..390447c8 100755
--- a/data/mapObjects/FuchsiaGoodRodHouse.asm
+++ b/data/maps/objects/FuchsiaGoodRodHouse.asm
diff --git a/data/mapObjects/FuchsiaGym.asm b/data/maps/objects/FuchsiaGym.asm
index 5d707d53..5d707d53 100755
--- a/data/mapObjects/FuchsiaGym.asm
+++ b/data/maps/objects/FuchsiaGym.asm
diff --git a/data/mapObjects/FuchsiaMart.asm b/data/maps/objects/FuchsiaMart.asm
index cfa71d8d..cfa71d8d 100755
--- a/data/mapObjects/FuchsiaMart.asm
+++ b/data/maps/objects/FuchsiaMart.asm
diff --git a/data/mapObjects/FuchsiaMeetingRoom.asm b/data/maps/objects/FuchsiaMeetingRoom.asm
index 9130d920..9130d920 100755
--- a/data/mapObjects/FuchsiaMeetingRoom.asm
+++ b/data/maps/objects/FuchsiaMeetingRoom.asm
diff --git a/data/mapObjects/FuchsiaPokecenter.asm b/data/maps/objects/FuchsiaPokecenter.asm
index 73dc529d..73dc529d 100755
--- a/data/mapObjects/FuchsiaPokecenter.asm
+++ b/data/maps/objects/FuchsiaPokecenter.asm
diff --git a/data/mapObjects/GameCorner.asm b/data/maps/objects/GameCorner.asm
index 2704f6ab..2704f6ab 100755
--- a/data/mapObjects/GameCorner.asm
+++ b/data/maps/objects/GameCorner.asm
diff --git a/data/mapObjects/GameCornerPrizeRoom.asm b/data/maps/objects/GameCornerPrizeRoom.asm
index 35cd3ac8..35cd3ac8 100755
--- a/data/mapObjects/GameCornerPrizeRoom.asm
+++ b/data/maps/objects/GameCornerPrizeRoom.asm
diff --git a/data/mapObjects/HallOfFame.asm b/data/maps/objects/HallOfFame.asm
index 3762d871..3762d871 100755
--- a/data/mapObjects/HallOfFame.asm
+++ b/data/maps/objects/HallOfFame.asm
diff --git a/data/mapObjects/IndigoPlateau.asm b/data/maps/objects/IndigoPlateau.asm
index 1447be11..1447be11 100755
--- a/data/mapObjects/IndigoPlateau.asm
+++ b/data/maps/objects/IndigoPlateau.asm
diff --git a/data/mapObjects/IndigoPlateauLobby.asm b/data/maps/objects/IndigoPlateauLobby.asm
index ea113a16..ea113a16 100755
--- a/data/mapObjects/IndigoPlateauLobby.asm
+++ b/data/maps/objects/IndigoPlateauLobby.asm
diff --git a/data/mapObjects/LancesRoom.asm b/data/maps/objects/LancesRoom.asm
index 6f22631a..6f22631a 100755
--- a/data/mapObjects/LancesRoom.asm
+++ b/data/maps/objects/LancesRoom.asm
diff --git a/data/mapObjects/LavenderCuboneHouse.asm b/data/maps/objects/LavenderCuboneHouse.asm
index 96f1b3ba..96f1b3ba 100755
--- a/data/mapObjects/LavenderCuboneHouse.asm
+++ b/data/maps/objects/LavenderCuboneHouse.asm
diff --git a/data/mapObjects/LavenderMart.asm b/data/maps/objects/LavenderMart.asm
index df14ad39..df14ad39 100755
--- a/data/mapObjects/LavenderMart.asm
+++ b/data/maps/objects/LavenderMart.asm
diff --git a/data/mapObjects/LavenderPokecenter.asm b/data/maps/objects/LavenderPokecenter.asm
index 89e25571..89e25571 100755
--- a/data/mapObjects/LavenderPokecenter.asm
+++ b/data/maps/objects/LavenderPokecenter.asm
diff --git a/data/mapObjects/LavenderTown.asm b/data/maps/objects/LavenderTown.asm
index 4aead666..4aead666 100755
--- a/data/mapObjects/LavenderTown.asm
+++ b/data/maps/objects/LavenderTown.asm
diff --git a/data/mapObjects/LoreleisRoom.asm b/data/maps/objects/LoreleisRoom.asm
index 06450bb4..06450bb4 100755
--- a/data/mapObjects/LoreleisRoom.asm
+++ b/data/maps/objects/LoreleisRoom.asm
diff --git a/data/mapObjects/MrFujisHouse.asm b/data/maps/objects/MrFujisHouse.asm
index 5b6ca2a6..5b6ca2a6 100755
--- a/data/mapObjects/MrFujisHouse.asm
+++ b/data/maps/objects/MrFujisHouse.asm
diff --git a/data/mapObjects/MrPsychicsHouse.asm b/data/maps/objects/MrPsychicsHouse.asm
index 01f9e11c..01f9e11c 100755
--- a/data/mapObjects/MrPsychicsHouse.asm
+++ b/data/maps/objects/MrPsychicsHouse.asm
diff --git a/data/mapObjects/MtMoon1F.asm b/data/maps/objects/MtMoon1F.asm
index 56820161..56820161 100755
--- a/data/mapObjects/MtMoon1F.asm
+++ b/data/maps/objects/MtMoon1F.asm
diff --git a/data/mapObjects/MtMoonB1F.asm b/data/maps/objects/MtMoonB1F.asm
index a8365ba7..a8365ba7 100755
--- a/data/mapObjects/MtMoonB1F.asm
+++ b/data/maps/objects/MtMoonB1F.asm
diff --git a/data/mapObjects/MtMoonB2F.asm b/data/maps/objects/MtMoonB2F.asm
index 27b2383f..27b2383f 100755
--- a/data/mapObjects/MtMoonB2F.asm
+++ b/data/maps/objects/MtMoonB2F.asm
diff --git a/data/mapObjects/MtMoonPokecenter.asm b/data/maps/objects/MtMoonPokecenter.asm
index b23703e6..b23703e6 100755
--- a/data/mapObjects/MtMoonPokecenter.asm
+++ b/data/maps/objects/MtMoonPokecenter.asm
diff --git a/data/mapObjects/Museum1F.asm b/data/maps/objects/Museum1F.asm
index 1cfd2c68..1cfd2c68 100755
--- a/data/mapObjects/Museum1F.asm
+++ b/data/maps/objects/Museum1F.asm
diff --git a/data/mapObjects/Museum2F.asm b/data/maps/objects/Museum2F.asm
index 80815820..80815820 100755
--- a/data/mapObjects/Museum2F.asm
+++ b/data/maps/objects/Museum2F.asm
diff --git a/data/mapObjects/NameRatersHouse.asm b/data/maps/objects/NameRatersHouse.asm
index da95bc43..da95bc43 100755
--- a/data/mapObjects/NameRatersHouse.asm
+++ b/data/maps/objects/NameRatersHouse.asm
diff --git a/data/mapObjects/OaksLab.asm b/data/maps/objects/OaksLab.asm
index fa78ccdf..fa78ccdf 100755
--- a/data/mapObjects/OaksLab.asm
+++ b/data/maps/objects/OaksLab.asm
diff --git a/data/mapObjects/PalletTown.asm b/data/maps/objects/PalletTown.asm
index 68b01175..68b01175 100755
--- a/data/mapObjects/PalletTown.asm
+++ b/data/maps/objects/PalletTown.asm
diff --git a/data/mapObjects/PewterCity.asm b/data/maps/objects/PewterCity.asm
index e1a3eecb..e1a3eecb 100755
--- a/data/mapObjects/PewterCity.asm
+++ b/data/maps/objects/PewterCity.asm
diff --git a/data/mapObjects/PewterGym.asm b/data/maps/objects/PewterGym.asm
index 538c3923..538c3923 100755
--- a/data/mapObjects/PewterGym.asm
+++ b/data/maps/objects/PewterGym.asm
diff --git a/data/mapObjects/PewterMart.asm b/data/maps/objects/PewterMart.asm
index 9b983316..9b983316 100755
--- a/data/mapObjects/PewterMart.asm
+++ b/data/maps/objects/PewterMart.asm
diff --git a/data/mapObjects/PewterNidoranHouse.asm b/data/maps/objects/PewterNidoranHouse.asm
index f00317d1..f00317d1 100755
--- a/data/mapObjects/PewterNidoranHouse.asm
+++ b/data/maps/objects/PewterNidoranHouse.asm
diff --git a/data/mapObjects/PewterPokecenter.asm b/data/maps/objects/PewterPokecenter.asm
index 2b375bf9..2b375bf9 100755
--- a/data/mapObjects/PewterPokecenter.asm
+++ b/data/maps/objects/PewterPokecenter.asm
diff --git a/data/mapObjects/PewterSpeechHouse.asm b/data/maps/objects/PewterSpeechHouse.asm
index e7134cb5..e7134cb5 100755
--- a/data/mapObjects/PewterSpeechHouse.asm
+++ b/data/maps/objects/PewterSpeechHouse.asm
diff --git a/data/mapObjects/PokemonFanClub.asm b/data/maps/objects/PokemonFanClub.asm
index e1f175f0..e1f175f0 100755
--- a/data/mapObjects/PokemonFanClub.asm
+++ b/data/maps/objects/PokemonFanClub.asm
diff --git a/data/mapObjects/PokemonMansion1F.asm b/data/maps/objects/PokemonMansion1F.asm
index 109b5b8e..109b5b8e 100755
--- a/data/mapObjects/PokemonMansion1F.asm
+++ b/data/maps/objects/PokemonMansion1F.asm
diff --git a/data/mapObjects/PokemonMansion2F.asm b/data/maps/objects/PokemonMansion2F.asm
index 6c0cc5f8..6c0cc5f8 100755
--- a/data/mapObjects/PokemonMansion2F.asm
+++ b/data/maps/objects/PokemonMansion2F.asm
diff --git a/data/mapObjects/PokemonMansion3F.asm b/data/maps/objects/PokemonMansion3F.asm
index 7c8c9c22..7c8c9c22 100755
--- a/data/mapObjects/PokemonMansion3F.asm
+++ b/data/maps/objects/PokemonMansion3F.asm
diff --git a/data/mapObjects/PokemonMansionB1F.asm b/data/maps/objects/PokemonMansionB1F.asm
index ac232799..ac232799 100755
--- a/data/mapObjects/PokemonMansionB1F.asm
+++ b/data/maps/objects/PokemonMansionB1F.asm
diff --git a/data/mapObjects/PokemonTower1F.asm b/data/maps/objects/PokemonTower1F.asm
index cf62836b..cf62836b 100755
--- a/data/mapObjects/PokemonTower1F.asm
+++ b/data/maps/objects/PokemonTower1F.asm
diff --git a/data/mapObjects/PokemonTower2F.asm b/data/maps/objects/PokemonTower2F.asm
index 5ce437d1..5ce437d1 100755
--- a/data/mapObjects/PokemonTower2F.asm
+++ b/data/maps/objects/PokemonTower2F.asm
diff --git a/data/mapObjects/PokemonTower3F.asm b/data/maps/objects/PokemonTower3F.asm
index 79b83f88..79b83f88 100755
--- a/data/mapObjects/PokemonTower3F.asm
+++ b/data/maps/objects/PokemonTower3F.asm
diff --git a/data/mapObjects/PokemonTower4F.asm b/data/maps/objects/PokemonTower4F.asm
index db86c02c..db86c02c 100755
--- a/data/mapObjects/PokemonTower4F.asm
+++ b/data/maps/objects/PokemonTower4F.asm
diff --git a/data/mapObjects/PokemonTower5F.asm b/data/maps/objects/PokemonTower5F.asm
index b482871f..b482871f 100755
--- a/data/mapObjects/PokemonTower5F.asm
+++ b/data/maps/objects/PokemonTower5F.asm
diff --git a/data/mapObjects/PokemonTower6F.asm b/data/maps/objects/PokemonTower6F.asm
index 823fe78a..823fe78a 100755
--- a/data/mapObjects/PokemonTower6F.asm
+++ b/data/maps/objects/PokemonTower6F.asm
diff --git a/data/mapObjects/PokemonTower7F.asm b/data/maps/objects/PokemonTower7F.asm
index 79cb5b0d..79cb5b0d 100755
--- a/data/mapObjects/PokemonTower7F.asm
+++ b/data/maps/objects/PokemonTower7F.asm
diff --git a/data/mapObjects/PowerPlant.asm b/data/maps/objects/PowerPlant.asm
index a8548b1c..a8548b1c 100755
--- a/data/mapObjects/PowerPlant.asm
+++ b/data/maps/objects/PowerPlant.asm
diff --git a/data/mapObjects/RedsHouse1F.asm b/data/maps/objects/RedsHouse1F.asm
index a54b5411..a54b5411 100755
--- a/data/mapObjects/RedsHouse1F.asm
+++ b/data/maps/objects/RedsHouse1F.asm
diff --git a/data/mapObjects/RedsHouse2F.asm b/data/maps/objects/RedsHouse2F.asm
index 98e9c236..98e9c236 100755
--- a/data/mapObjects/RedsHouse2F.asm
+++ b/data/maps/objects/RedsHouse2F.asm
diff --git a/data/mapObjects/RockTunnel1F.asm b/data/maps/objects/RockTunnel1F.asm
index 1cf5a12f..1cf5a12f 100755
--- a/data/mapObjects/RockTunnel1F.asm
+++ b/data/maps/objects/RockTunnel1F.asm
diff --git a/data/mapObjects/RockTunnelB1F.asm b/data/maps/objects/RockTunnelB1F.asm
index f562168e..f562168e 100755
--- a/data/mapObjects/RockTunnelB1F.asm
+++ b/data/maps/objects/RockTunnelB1F.asm
diff --git a/data/mapObjects/RockTunnelPokecenter.asm b/data/maps/objects/RockTunnelPokecenter.asm
index a7619f7f..a7619f7f 100755
--- a/data/mapObjects/RockTunnelPokecenter.asm
+++ b/data/maps/objects/RockTunnelPokecenter.asm
diff --git a/data/mapObjects/RocketHideoutB1F.asm b/data/maps/objects/RocketHideoutB1F.asm
index 99537510..99537510 100755
--- a/data/mapObjects/RocketHideoutB1F.asm
+++ b/data/maps/objects/RocketHideoutB1F.asm
diff --git a/data/mapObjects/RocketHideoutB2F.asm b/data/maps/objects/RocketHideoutB2F.asm
index 36fe9289..36fe9289 100755
--- a/data/mapObjects/RocketHideoutB2F.asm
+++ b/data/maps/objects/RocketHideoutB2F.asm
diff --git a/data/mapObjects/RocketHideoutB3F.asm b/data/maps/objects/RocketHideoutB3F.asm
index 6169dbed..6169dbed 100755
--- a/data/mapObjects/RocketHideoutB3F.asm
+++ b/data/maps/objects/RocketHideoutB3F.asm
diff --git a/data/mapObjects/RocketHideoutB4F.asm b/data/maps/objects/RocketHideoutB4F.asm
index be353f25..be353f25 100755
--- a/data/mapObjects/RocketHideoutB4F.asm
+++ b/data/maps/objects/RocketHideoutB4F.asm
diff --git a/data/mapObjects/RocketHideoutElevator.asm b/data/maps/objects/RocketHideoutElevator.asm
index bc4fd7ff..bc4fd7ff 100755
--- a/data/mapObjects/RocketHideoutElevator.asm
+++ b/data/maps/objects/RocketHideoutElevator.asm
diff --git a/data/mapObjects/Route1.asm b/data/maps/objects/Route1.asm
index 0815fe67..0815fe67 100755
--- a/data/mapObjects/Route1.asm
+++ b/data/maps/objects/Route1.asm
diff --git a/data/mapObjects/Route10.asm b/data/maps/objects/Route10.asm
index 12850577..12850577 100755
--- a/data/mapObjects/Route10.asm
+++ b/data/maps/objects/Route10.asm
diff --git a/data/mapObjects/Route11.asm b/data/maps/objects/Route11.asm
index 5ed232f5..5ed232f5 100755
--- a/data/mapObjects/Route11.asm
+++ b/data/maps/objects/Route11.asm
diff --git a/data/mapObjects/Route11Gate1F.asm b/data/maps/objects/Route11Gate1F.asm
index 5c4a120c..5c4a120c 100755
--- a/data/mapObjects/Route11Gate1F.asm
+++ b/data/maps/objects/Route11Gate1F.asm
diff --git a/data/mapObjects/Route11Gate2F.asm b/data/maps/objects/Route11Gate2F.asm
index bf305bba..bf305bba 100755
--- a/data/mapObjects/Route11Gate2F.asm
+++ b/data/maps/objects/Route11Gate2F.asm
diff --git a/data/mapObjects/Route12.asm b/data/maps/objects/Route12.asm
index a9d84cf0..a9d84cf0 100755
--- a/data/mapObjects/Route12.asm
+++ b/data/maps/objects/Route12.asm
diff --git a/data/mapObjects/Route12Gate1F.asm b/data/maps/objects/Route12Gate1F.asm
index 94f6b91a..94f6b91a 100755
--- a/data/mapObjects/Route12Gate1F.asm
+++ b/data/maps/objects/Route12Gate1F.asm
diff --git a/data/mapObjects/Route12Gate2F.asm b/data/maps/objects/Route12Gate2F.asm
index cc6c1c19..cc6c1c19 100755
--- a/data/mapObjects/Route12Gate2F.asm
+++ b/data/maps/objects/Route12Gate2F.asm
diff --git a/data/mapObjects/Route12SuperRodHouse.asm b/data/maps/objects/Route12SuperRodHouse.asm
index 458378a2..458378a2 100755
--- a/data/mapObjects/Route12SuperRodHouse.asm
+++ b/data/maps/objects/Route12SuperRodHouse.asm
diff --git a/data/mapObjects/Route13.asm b/data/maps/objects/Route13.asm
index 3f460901..3f460901 100755
--- a/data/mapObjects/Route13.asm
+++ b/data/maps/objects/Route13.asm
diff --git a/data/mapObjects/Route14.asm b/data/maps/objects/Route14.asm
index 565e587f..565e587f 100755
--- a/data/mapObjects/Route14.asm
+++ b/data/maps/objects/Route14.asm
diff --git a/data/mapObjects/Route15.asm b/data/maps/objects/Route15.asm
index f52cc1b8..f52cc1b8 100755
--- a/data/mapObjects/Route15.asm
+++ b/data/maps/objects/Route15.asm
diff --git a/data/mapObjects/Route15Gate1F.asm b/data/maps/objects/Route15Gate1F.asm
index 23b1f5a7..23b1f5a7 100755
--- a/data/mapObjects/Route15Gate1F.asm
+++ b/data/maps/objects/Route15Gate1F.asm
diff --git a/data/mapObjects/Route15Gate2F.asm b/data/maps/objects/Route15Gate2F.asm
index 162f2b1f..162f2b1f 100755
--- a/data/mapObjects/Route15Gate2F.asm
+++ b/data/maps/objects/Route15Gate2F.asm
diff --git a/data/mapObjects/Route16.asm b/data/maps/objects/Route16.asm
index fb23e6ca..fb23e6ca 100755
--- a/data/mapObjects/Route16.asm
+++ b/data/maps/objects/Route16.asm
diff --git a/data/mapObjects/Route16FlyHouse.asm b/data/maps/objects/Route16FlyHouse.asm
index ec493fef..ec493fef 100755
--- a/data/mapObjects/Route16FlyHouse.asm
+++ b/data/maps/objects/Route16FlyHouse.asm
diff --git a/data/mapObjects/Route16Gate1F.asm b/data/maps/objects/Route16Gate1F.asm
index 1d5baa1d..1d5baa1d 100755
--- a/data/mapObjects/Route16Gate1F.asm
+++ b/data/maps/objects/Route16Gate1F.asm
diff --git a/data/mapObjects/Route16Gate2F.asm b/data/maps/objects/Route16Gate2F.asm
index 5914f854..5914f854 100755
--- a/data/mapObjects/Route16Gate2F.asm
+++ b/data/maps/objects/Route16Gate2F.asm
diff --git a/data/mapObjects/Route17.asm b/data/maps/objects/Route17.asm
index f5bc4307..f5bc4307 100755
--- a/data/mapObjects/Route17.asm
+++ b/data/maps/objects/Route17.asm
diff --git a/data/mapObjects/Route18.asm b/data/maps/objects/Route18.asm
index 8bacd6c0..8bacd6c0 100755
--- a/data/mapObjects/Route18.asm
+++ b/data/maps/objects/Route18.asm
diff --git a/data/mapObjects/Route18Gate1F.asm b/data/maps/objects/Route18Gate1F.asm
index 83cb386a..83cb386a 100755
--- a/data/mapObjects/Route18Gate1F.asm
+++ b/data/maps/objects/Route18Gate1F.asm
diff --git a/data/mapObjects/Route18Gate2F.asm b/data/maps/objects/Route18Gate2F.asm
index e48ec3b8..e48ec3b8 100755
--- a/data/mapObjects/Route18Gate2F.asm
+++ b/data/maps/objects/Route18Gate2F.asm
diff --git a/data/mapObjects/Route19.asm b/data/maps/objects/Route19.asm
index 9b39618e..9b39618e 100755
--- a/data/mapObjects/Route19.asm
+++ b/data/maps/objects/Route19.asm
diff --git a/data/mapObjects/Route2.asm b/data/maps/objects/Route2.asm
index b27ad199..b27ad199 100755
--- a/data/mapObjects/Route2.asm
+++ b/data/maps/objects/Route2.asm
diff --git a/data/mapObjects/Route20.asm b/data/maps/objects/Route20.asm
index 7bceef97..7bceef97 100755
--- a/data/mapObjects/Route20.asm
+++ b/data/maps/objects/Route20.asm
diff --git a/data/mapObjects/Route21.asm b/data/maps/objects/Route21.asm
index b7759b59..b7759b59 100755
--- a/data/mapObjects/Route21.asm
+++ b/data/maps/objects/Route21.asm
diff --git a/data/mapObjects/Route22.asm b/data/maps/objects/Route22.asm
index 56e759fd..56e759fd 100755
--- a/data/mapObjects/Route22.asm
+++ b/data/maps/objects/Route22.asm
diff --git a/data/mapObjects/Route22Gate.asm b/data/maps/objects/Route22Gate.asm
index 3f693c7f..3f693c7f 100755
--- a/data/mapObjects/Route22Gate.asm
+++ b/data/maps/objects/Route22Gate.asm
diff --git a/data/mapObjects/Route23.asm b/data/maps/objects/Route23.asm
index b510c285..b510c285 100755
--- a/data/mapObjects/Route23.asm
+++ b/data/maps/objects/Route23.asm
diff --git a/data/mapObjects/Route24.asm b/data/maps/objects/Route24.asm
index 8ef0d2b9..8ef0d2b9 100755
--- a/data/mapObjects/Route24.asm
+++ b/data/maps/objects/Route24.asm
diff --git a/data/mapObjects/Route25.asm b/data/maps/objects/Route25.asm
index a85f85ca..a85f85ca 100755
--- a/data/mapObjects/Route25.asm
+++ b/data/maps/objects/Route25.asm
diff --git a/data/mapObjects/Route2Gate.asm b/data/maps/objects/Route2Gate.asm
index a7feb780..a7feb780 100755
--- a/data/mapObjects/Route2Gate.asm
+++ b/data/maps/objects/Route2Gate.asm
diff --git a/data/mapObjects/Route2TradeHouse.asm b/data/maps/objects/Route2TradeHouse.asm
index 89ece3ea..89ece3ea 100755
--- a/data/mapObjects/Route2TradeHouse.asm
+++ b/data/maps/objects/Route2TradeHouse.asm
diff --git a/data/mapObjects/Route3.asm b/data/maps/objects/Route3.asm
index 372ea6cf..372ea6cf 100755
--- a/data/mapObjects/Route3.asm
+++ b/data/maps/objects/Route3.asm
diff --git a/data/mapObjects/Route4.asm b/data/maps/objects/Route4.asm
index 4ab88f8f..4ab88f8f 100755
--- a/data/mapObjects/Route4.asm
+++ b/data/maps/objects/Route4.asm
diff --git a/data/mapObjects/Route5.asm b/data/maps/objects/Route5.asm
index df2c8c03..df2c8c03 100755
--- a/data/mapObjects/Route5.asm
+++ b/data/maps/objects/Route5.asm
diff --git a/data/mapObjects/Route5Gate.asm b/data/maps/objects/Route5Gate.asm
index e0e06a1d..e0e06a1d 100755
--- a/data/mapObjects/Route5Gate.asm
+++ b/data/maps/objects/Route5Gate.asm
diff --git a/data/mapObjects/Route6.asm b/data/maps/objects/Route6.asm
index fc2d7e24..fc2d7e24 100755
--- a/data/mapObjects/Route6.asm
+++ b/data/maps/objects/Route6.asm
diff --git a/data/mapObjects/Route6Gate.asm b/data/maps/objects/Route6Gate.asm
index 8ed96d04..8ed96d04 100755
--- a/data/mapObjects/Route6Gate.asm
+++ b/data/maps/objects/Route6Gate.asm
diff --git a/data/mapObjects/Route7.asm b/data/maps/objects/Route7.asm
index 182904ef..182904ef 100755
--- a/data/mapObjects/Route7.asm
+++ b/data/maps/objects/Route7.asm
diff --git a/data/mapObjects/Route7Gate.asm b/data/maps/objects/Route7Gate.asm
index 7f1afe0a..7f1afe0a 100755
--- a/data/mapObjects/Route7Gate.asm
+++ b/data/maps/objects/Route7Gate.asm
diff --git a/data/mapObjects/Route8.asm b/data/maps/objects/Route8.asm
index 137d70a0..137d70a0 100755
--- a/data/mapObjects/Route8.asm
+++ b/data/maps/objects/Route8.asm
diff --git a/data/mapObjects/Route8Gate.asm b/data/maps/objects/Route8Gate.asm
index 3bba95a0..3bba95a0 100755
--- a/data/mapObjects/Route8Gate.asm
+++ b/data/maps/objects/Route8Gate.asm
diff --git a/data/mapObjects/Route9.asm b/data/maps/objects/Route9.asm
index a991c0c7..a991c0c7 100755
--- a/data/mapObjects/Route9.asm
+++ b/data/maps/objects/Route9.asm
diff --git a/data/mapObjects/SSAnne1F.asm b/data/maps/objects/SSAnne1F.asm
index 3e454f06..3e454f06 100755
--- a/data/mapObjects/SSAnne1F.asm
+++ b/data/maps/objects/SSAnne1F.asm
diff --git a/data/mapObjects/SSAnne1FRooms.asm b/data/maps/objects/SSAnne1FRooms.asm
index 617d2a55..617d2a55 100755
--- a/data/mapObjects/SSAnne1FRooms.asm
+++ b/data/maps/objects/SSAnne1FRooms.asm
diff --git a/data/mapObjects/SSAnne2F.asm b/data/maps/objects/SSAnne2F.asm
index 6abd5ac4..6abd5ac4 100755
--- a/data/mapObjects/SSAnne2F.asm
+++ b/data/maps/objects/SSAnne2F.asm
diff --git a/data/mapObjects/SSAnne2FRooms.asm b/data/maps/objects/SSAnne2FRooms.asm
index ebb053a8..ebb053a8 100755
--- a/data/mapObjects/SSAnne2FRooms.asm
+++ b/data/maps/objects/SSAnne2FRooms.asm
diff --git a/data/mapObjects/SSAnne3F.asm b/data/maps/objects/SSAnne3F.asm
index f0bfc17b..f0bfc17b 100755
--- a/data/mapObjects/SSAnne3F.asm
+++ b/data/maps/objects/SSAnne3F.asm
diff --git a/data/mapObjects/SSAnneB1F.asm b/data/maps/objects/SSAnneB1F.asm
index fe54ea24..fe54ea24 100755
--- a/data/mapObjects/SSAnneB1F.asm
+++ b/data/maps/objects/SSAnneB1F.asm
diff --git a/data/mapObjects/SSAnneB1FRooms.asm b/data/maps/objects/SSAnneB1FRooms.asm
index 1d31b89c..1d31b89c 100755
--- a/data/mapObjects/SSAnneB1FRooms.asm
+++ b/data/maps/objects/SSAnneB1FRooms.asm
diff --git a/data/mapObjects/SSAnneBow.asm b/data/maps/objects/SSAnneBow.asm
index 8873c8f8..8873c8f8 100755
--- a/data/mapObjects/SSAnneBow.asm
+++ b/data/maps/objects/SSAnneBow.asm
diff --git a/data/mapObjects/SSAnneCaptainsRoom.asm b/data/maps/objects/SSAnneCaptainsRoom.asm
index 545656cc..545656cc 100755
--- a/data/mapObjects/SSAnneCaptainsRoom.asm
+++ b/data/maps/objects/SSAnneCaptainsRoom.asm
diff --git a/data/mapObjects/SSAnneKitchen.asm b/data/maps/objects/SSAnneKitchen.asm
index b5771e68..b5771e68 100755
--- a/data/mapObjects/SSAnneKitchen.asm
+++ b/data/maps/objects/SSAnneKitchen.asm
diff --git a/data/mapObjects/SafariZoneCenter.asm b/data/maps/objects/SafariZoneCenter.asm
index e54cec74..e54cec74 100755
--- a/data/mapObjects/SafariZoneCenter.asm
+++ b/data/maps/objects/SafariZoneCenter.asm
diff --git a/data/mapObjects/SafariZoneCenterRestHouse.asm b/data/maps/objects/SafariZoneCenterRestHouse.asm
index 9eda9970..9eda9970 100755
--- a/data/mapObjects/SafariZoneCenterRestHouse.asm
+++ b/data/maps/objects/SafariZoneCenterRestHouse.asm
diff --git a/data/mapObjects/SafariZoneEast.asm b/data/maps/objects/SafariZoneEast.asm
index df612ea9..df612ea9 100755
--- a/data/mapObjects/SafariZoneEast.asm
+++ b/data/maps/objects/SafariZoneEast.asm
diff --git a/data/mapObjects/SafariZoneEastRestHouse.asm b/data/maps/objects/SafariZoneEastRestHouse.asm
index e7c68343..e7c68343 100755
--- a/data/mapObjects/SafariZoneEastRestHouse.asm
+++ b/data/maps/objects/SafariZoneEastRestHouse.asm
diff --git a/data/mapObjects/SafariZoneGate.asm b/data/maps/objects/SafariZoneGate.asm
index 6749b45b..6749b45b 100755
--- a/data/mapObjects/SafariZoneGate.asm
+++ b/data/maps/objects/SafariZoneGate.asm
diff --git a/data/mapObjects/SafariZoneNorth.asm b/data/maps/objects/SafariZoneNorth.asm
index 9eda7b4b..9eda7b4b 100755
--- a/data/mapObjects/SafariZoneNorth.asm
+++ b/data/maps/objects/SafariZoneNorth.asm
diff --git a/data/mapObjects/SafariZoneNorthRestHouse.asm b/data/maps/objects/SafariZoneNorthRestHouse.asm
index 34b3ab4f..34b3ab4f 100755
--- a/data/mapObjects/SafariZoneNorthRestHouse.asm
+++ b/data/maps/objects/SafariZoneNorthRestHouse.asm
diff --git a/data/mapObjects/SafariZoneSecretHouse.asm b/data/maps/objects/SafariZoneSecretHouse.asm
index 2a5fc22d..2a5fc22d 100755
--- a/data/mapObjects/SafariZoneSecretHouse.asm
+++ b/data/maps/objects/SafariZoneSecretHouse.asm
diff --git a/data/mapObjects/SafariZoneWest.asm b/data/maps/objects/SafariZoneWest.asm
index 7faced72..7faced72 100755
--- a/data/mapObjects/SafariZoneWest.asm
+++ b/data/maps/objects/SafariZoneWest.asm
diff --git a/data/mapObjects/SafariZoneWestRestHouse.asm b/data/maps/objects/SafariZoneWestRestHouse.asm
index 9f1bc0ed..9f1bc0ed 100755
--- a/data/mapObjects/SafariZoneWestRestHouse.asm
+++ b/data/maps/objects/SafariZoneWestRestHouse.asm
diff --git a/data/mapObjects/SaffronCity.asm b/data/maps/objects/SaffronCity.asm
index b8d3a9cf..b8d3a9cf 100755
--- a/data/mapObjects/SaffronCity.asm
+++ b/data/maps/objects/SaffronCity.asm
diff --git a/data/mapObjects/SaffronGym.asm b/data/maps/objects/SaffronGym.asm
index 1869421a..1869421a 100755
--- a/data/mapObjects/SaffronGym.asm
+++ b/data/maps/objects/SaffronGym.asm
diff --git a/data/mapObjects/SaffronMart.asm b/data/maps/objects/SaffronMart.asm
index c376f2de..c376f2de 100755
--- a/data/mapObjects/SaffronMart.asm
+++ b/data/maps/objects/SaffronMart.asm
diff --git a/data/mapObjects/SaffronPidgeyHouse.asm b/data/maps/objects/SaffronPidgeyHouse.asm
index 65a851bf..65a851bf 100755
--- a/data/mapObjects/SaffronPidgeyHouse.asm
+++ b/data/maps/objects/SaffronPidgeyHouse.asm
diff --git a/data/mapObjects/SaffronPokecenter.asm b/data/maps/objects/SaffronPokecenter.asm
index e54fd76b..e54fd76b 100755
--- a/data/mapObjects/SaffronPokecenter.asm
+++ b/data/maps/objects/SaffronPokecenter.asm
diff --git a/data/mapObjects/SeafoamIslands1F.asm b/data/maps/objects/SeafoamIslands1F.asm
index 8707ee0a..8707ee0a 100755
--- a/data/mapObjects/SeafoamIslands1F.asm
+++ b/data/maps/objects/SeafoamIslands1F.asm
diff --git a/data/mapObjects/SeafoamIslandsB1F.asm b/data/maps/objects/SeafoamIslandsB1F.asm
index 426ca0c3..426ca0c3 100755
--- a/data/mapObjects/SeafoamIslandsB1F.asm
+++ b/data/maps/objects/SeafoamIslandsB1F.asm
diff --git a/data/mapObjects/SeafoamIslandsB2F.asm b/data/maps/objects/SeafoamIslandsB2F.asm
index 9c1a7898..9c1a7898 100755
--- a/data/mapObjects/SeafoamIslandsB2F.asm
+++ b/data/maps/objects/SeafoamIslandsB2F.asm
diff --git a/data/mapObjects/SeafoamIslandsB3F.asm b/data/maps/objects/SeafoamIslandsB3F.asm
index d194e1cd..d194e1cd 100755
--- a/data/mapObjects/SeafoamIslandsB3F.asm
+++ b/data/maps/objects/SeafoamIslandsB3F.asm
diff --git a/data/mapObjects/SeafoamIslandsB4F.asm b/data/maps/objects/SeafoamIslandsB4F.asm
index 62d88b0c..62d88b0c 100755
--- a/data/mapObjects/SeafoamIslandsB4F.asm
+++ b/data/maps/objects/SeafoamIslandsB4F.asm
diff --git a/data/mapObjects/SilphCo10F.asm b/data/maps/objects/SilphCo10F.asm
index 1c8948d3..1c8948d3 100755
--- a/data/mapObjects/SilphCo10F.asm
+++ b/data/maps/objects/SilphCo10F.asm
diff --git a/data/mapObjects/SilphCo11F.asm b/data/maps/objects/SilphCo11F.asm
index 7a1dff73..7a1dff73 100755
--- a/data/mapObjects/SilphCo11F.asm
+++ b/data/maps/objects/SilphCo11F.asm
diff --git a/data/mapObjects/SilphCo1F.asm b/data/maps/objects/SilphCo1F.asm
index fc040091..fc040091 100755
--- a/data/mapObjects/SilphCo1F.asm
+++ b/data/maps/objects/SilphCo1F.asm
diff --git a/data/mapObjects/SilphCo2F.asm b/data/maps/objects/SilphCo2F.asm
index bc30d78d..bc30d78d 100755
--- a/data/mapObjects/SilphCo2F.asm
+++ b/data/maps/objects/SilphCo2F.asm
diff --git a/data/mapObjects/SilphCo3F.asm b/data/maps/objects/SilphCo3F.asm
index f45cdf81..f45cdf81 100755
--- a/data/mapObjects/SilphCo3F.asm
+++ b/data/maps/objects/SilphCo3F.asm
diff --git a/data/mapObjects/SilphCo4F.asm b/data/maps/objects/SilphCo4F.asm
index 3d865bbc..3d865bbc 100755
--- a/data/mapObjects/SilphCo4F.asm
+++ b/data/maps/objects/SilphCo4F.asm
diff --git a/data/mapObjects/SilphCo5F.asm b/data/maps/objects/SilphCo5F.asm
index c10f17c8..c10f17c8 100755
--- a/data/mapObjects/SilphCo5F.asm
+++ b/data/maps/objects/SilphCo5F.asm
diff --git a/data/mapObjects/SilphCo6F.asm b/data/maps/objects/SilphCo6F.asm
index ad2ac32f..ad2ac32f 100755
--- a/data/mapObjects/SilphCo6F.asm
+++ b/data/maps/objects/SilphCo6F.asm
diff --git a/data/mapObjects/SilphCo7F.asm b/data/maps/objects/SilphCo7F.asm
index 255f4b33..255f4b33 100755
--- a/data/mapObjects/SilphCo7F.asm
+++ b/data/maps/objects/SilphCo7F.asm
diff --git a/data/mapObjects/SilphCo8F.asm b/data/maps/objects/SilphCo8F.asm
index d05c7844..d05c7844 100755
--- a/data/mapObjects/SilphCo8F.asm
+++ b/data/maps/objects/SilphCo8F.asm
diff --git a/data/mapObjects/SilphCo9F.asm b/data/maps/objects/SilphCo9F.asm
index 28ef5f10..28ef5f10 100755
--- a/data/mapObjects/SilphCo9F.asm
+++ b/data/maps/objects/SilphCo9F.asm
diff --git a/data/mapObjects/SilphCoElevator.asm b/data/maps/objects/SilphCoElevator.asm
index 9c4b5a79..9c4b5a79 100755
--- a/data/mapObjects/SilphCoElevator.asm
+++ b/data/maps/objects/SilphCoElevator.asm
diff --git a/data/mapObjects/TradeCenter.asm b/data/maps/objects/TradeCenter.asm
index e6df8087..e6df8087 100755
--- a/data/mapObjects/TradeCenter.asm
+++ b/data/maps/objects/TradeCenter.asm
diff --git a/data/mapObjects/UndergroundPathNorthSouth.asm b/data/maps/objects/UndergroundPathNorthSouth.asm
index 35e21cca..35e21cca 100755
--- a/data/mapObjects/UndergroundPathNorthSouth.asm
+++ b/data/maps/objects/UndergroundPathNorthSouth.asm
diff --git a/data/mapObjects/UndergroundPathRoute5.asm b/data/maps/objects/UndergroundPathRoute5.asm
index af71ebb4..af71ebb4 100755
--- a/data/mapObjects/UndergroundPathRoute5.asm
+++ b/data/maps/objects/UndergroundPathRoute5.asm
diff --git a/data/mapObjects/UndergroundPathRoute6.asm b/data/maps/objects/UndergroundPathRoute6.asm
index 5a40ade2..5a40ade2 100755
--- a/data/mapObjects/UndergroundPathRoute6.asm
+++ b/data/maps/objects/UndergroundPathRoute6.asm
diff --git a/data/mapObjects/UndergroundPathRoute7.asm b/data/maps/objects/UndergroundPathRoute7.asm
index 4666e0c9..4666e0c9 100755
--- a/data/mapObjects/UndergroundPathRoute7.asm
+++ b/data/maps/objects/UndergroundPathRoute7.asm
diff --git a/data/mapObjects/UndergroundPathRoute7Copy.asm b/data/maps/objects/UndergroundPathRoute7Copy.asm
index c020646e..c020646e 100755
--- a/data/mapObjects/UndergroundPathRoute7Copy.asm
+++ b/data/maps/objects/UndergroundPathRoute7Copy.asm
diff --git a/data/mapObjects/UndergroundPathRoute8.asm b/data/maps/objects/UndergroundPathRoute8.asm
index 8be0d474..8be0d474 100755
--- a/data/mapObjects/UndergroundPathRoute8.asm
+++ b/data/maps/objects/UndergroundPathRoute8.asm
diff --git a/data/mapObjects/UndergroundPathWestEast.asm b/data/maps/objects/UndergroundPathWestEast.asm
index fa064aca..fa064aca 100755
--- a/data/mapObjects/UndergroundPathWestEast.asm
+++ b/data/maps/objects/UndergroundPathWestEast.asm
diff --git a/data/mapObjects/VermilionCity.asm b/data/maps/objects/VermilionCity.asm
index b1e1a005..b1e1a005 100755
--- a/data/mapObjects/VermilionCity.asm
+++ b/data/maps/objects/VermilionCity.asm
diff --git a/data/mapObjects/VermilionDock.asm b/data/maps/objects/VermilionDock.asm
index 6f07554a..6f07554a 100755
--- a/data/mapObjects/VermilionDock.asm
+++ b/data/maps/objects/VermilionDock.asm
diff --git a/data/mapObjects/VermilionGym.asm b/data/maps/objects/VermilionGym.asm
index 4ace83be..4ace83be 100755
--- a/data/mapObjects/VermilionGym.asm
+++ b/data/maps/objects/VermilionGym.asm
diff --git a/data/mapObjects/VermilionMart.asm b/data/maps/objects/VermilionMart.asm
index 74bcf35f..74bcf35f 100755
--- a/data/mapObjects/VermilionMart.asm
+++ b/data/maps/objects/VermilionMart.asm
diff --git a/data/mapObjects/VermilionOldRodHouse.asm b/data/maps/objects/VermilionOldRodHouse.asm
index f5b4b96a..f5b4b96a 100755
--- a/data/mapObjects/VermilionOldRodHouse.asm
+++ b/data/maps/objects/VermilionOldRodHouse.asm
diff --git a/data/mapObjects/VermilionPidgeyHouse.asm b/data/maps/objects/VermilionPidgeyHouse.asm
index 0e820f86..0e820f86 100755
--- a/data/mapObjects/VermilionPidgeyHouse.asm
+++ b/data/maps/objects/VermilionPidgeyHouse.asm
diff --git a/data/mapObjects/VermilionPokecenter.asm b/data/maps/objects/VermilionPokecenter.asm
index d2142045..d2142045 100755
--- a/data/mapObjects/VermilionPokecenter.asm
+++ b/data/maps/objects/VermilionPokecenter.asm
diff --git a/data/mapObjects/VermilionTradeHouse.asm b/data/maps/objects/VermilionTradeHouse.asm
index 30212b2a..30212b2a 100755
--- a/data/mapObjects/VermilionTradeHouse.asm
+++ b/data/maps/objects/VermilionTradeHouse.asm
diff --git a/data/mapObjects/VictoryRoad1F.asm b/data/maps/objects/VictoryRoad1F.asm
index cc0c47ce..cc0c47ce 100755
--- a/data/mapObjects/VictoryRoad1F.asm
+++ b/data/maps/objects/VictoryRoad1F.asm
diff --git a/data/mapObjects/VictoryRoad2F.asm b/data/maps/objects/VictoryRoad2F.asm
index 55559bca..55559bca 100755
--- a/data/mapObjects/VictoryRoad2F.asm
+++ b/data/maps/objects/VictoryRoad2F.asm
diff --git a/data/mapObjects/VictoryRoad3F.asm b/data/maps/objects/VictoryRoad3F.asm
index 2eb42417..2eb42417 100755
--- a/data/mapObjects/VictoryRoad3F.asm
+++ b/data/maps/objects/VictoryRoad3F.asm
diff --git a/data/mapObjects/ViridianCity.asm b/data/maps/objects/ViridianCity.asm
index 32fe8d3a..32fe8d3a 100755
--- a/data/mapObjects/ViridianCity.asm
+++ b/data/maps/objects/ViridianCity.asm
diff --git a/data/mapObjects/ViridianForest.asm b/data/maps/objects/ViridianForest.asm
index cbcb6ff8..cbcb6ff8 100755
--- a/data/mapObjects/ViridianForest.asm
+++ b/data/maps/objects/ViridianForest.asm
diff --git a/data/mapObjects/ViridianForestNorthGate.asm b/data/maps/objects/ViridianForestNorthGate.asm
index 81e7fece..81e7fece 100755
--- a/data/mapObjects/ViridianForestNorthGate.asm
+++ b/data/maps/objects/ViridianForestNorthGate.asm
diff --git a/data/mapObjects/ViridianForestSouthGate.asm b/data/maps/objects/ViridianForestSouthGate.asm
index 76f87e51..76f87e51 100755
--- a/data/mapObjects/ViridianForestSouthGate.asm
+++ b/data/maps/objects/ViridianForestSouthGate.asm
diff --git a/data/mapObjects/ViridianGym.asm b/data/maps/objects/ViridianGym.asm
index e3fd17bd..e3fd17bd 100755
--- a/data/mapObjects/ViridianGym.asm
+++ b/data/maps/objects/ViridianGym.asm
diff --git a/data/mapObjects/ViridianMart.asm b/data/maps/objects/ViridianMart.asm
index b3e7fee5..b3e7fee5 100755
--- a/data/mapObjects/ViridianMart.asm
+++ b/data/maps/objects/ViridianMart.asm
diff --git a/data/mapObjects/ViridianNicknameHouse.asm b/data/maps/objects/ViridianNicknameHouse.asm
index aaf20a91..aaf20a91 100755
--- a/data/mapObjects/ViridianNicknameHouse.asm
+++ b/data/maps/objects/ViridianNicknameHouse.asm
diff --git a/data/mapObjects/ViridianPokecenter.asm b/data/maps/objects/ViridianPokecenter.asm
index 43b73e68..43b73e68 100755
--- a/data/mapObjects/ViridianPokecenter.asm
+++ b/data/maps/objects/ViridianPokecenter.asm
diff --git a/data/mapObjects/ViridianSchoolHouse.asm b/data/maps/objects/ViridianSchoolHouse.asm
index 01f2465d..01f2465d 100755
--- a/data/mapObjects/ViridianSchoolHouse.asm
+++ b/data/maps/objects/ViridianSchoolHouse.asm
diff --git a/data/mapObjects/WardensHouse.asm b/data/maps/objects/WardensHouse.asm
index d8445738..d8445738 100755
--- a/data/mapObjects/WardensHouse.asm
+++ b/data/maps/objects/WardensHouse.asm
diff --git a/data/rest_house_maps.asm b/data/maps/rest_house_maps.asm
index 2feb89d3..2feb89d3 100644
--- a/data/rest_house_maps.asm
+++ b/data/maps/rest_house_maps.asm
diff --git a/data/map_songs.asm b/data/maps/songs.asm
index 28e17223..28e17223 100755
--- a/data/map_songs.asm
+++ b/data/maps/songs.asm
diff --git a/data/special_warps.asm b/data/maps/special_warps.asm
index 6b536b67..6b536b67 100755
--- a/data/special_warps.asm
+++ b/data/maps/special_warps.asm
diff --git a/data/maps/sprite_sets.asm b/data/maps/sprite_sets.asm
new file mode 100755
index 00000000..faba21b5
--- /dev/null
+++ b/data/maps/sprite_sets.asm
@@ -0,0 +1,190 @@
+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_BLUE
+ db SPRITE_BUG_CATCHER
+ db SPRITE_GIRL
+ db SPRITE_FISHER2
+ db SPRITE_BLACK_HAIR_BOY_1
+ db SPRITE_GAMBLER
+ db SPRITE_SEEL
+ db SPRITE_OAK
+ db SPRITE_SWIMMER
+ db SPRITE_BALL
+ db SPRITE_LYING_OLD_MAN
+
+; sprite set $02
+ db SPRITE_BUG_CATCHER
+ db SPRITE_ROCKET
+ db SPRITE_BLACK_HAIR_BOY_2
+ db SPRITE_HIKER
+ db SPRITE_SLOWBRO
+ db SPRITE_BLUE
+ db SPRITE_GUARD
+ db SPRITE_LASS
+ db SPRITE_BLACK_HAIR_BOY_1
+ db SPRITE_BALL
+ db SPRITE_LYING_OLD_MAN_UNUSED_2
+
+; sprite set $03
+ 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_GUARD
+ db SPRITE_BALL
+ db SPRITE_LYING_OLD_MAN_UNUSED_2
+
+; sprite set $04
+ db SPRITE_FOULARD_WOMAN
+ db SPRITE_BLACK_HAIR_BOY_2
+ db SPRITE_BUG_CATCHER
+ db SPRITE_GAMBLER
+ db SPRITE_SLOWBRO
+ db SPRITE_GUARD
+ 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_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_GUARD
+ db SPRITE_ROCKET
+ db SPRITE_BALL
+ db SPRITE_SNORLAX
+
+; sprite set $06
+ db SPRITE_BUG_CATCHER
+ 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_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_SLOWBRO
+ db SPRITE_BALL
+ db SPRITE_LYING_OLD_MAN_UNUSED_2
+
+; sprite set $08
+ 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_SLOWBRO
+ db SPRITE_BALL
+ db SPRITE_SNORLAX
+
+; sprite set $09
+ 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_BLACK_HAIR_BOY_2
+ db SPRITE_BALL
+ db SPRITE_SNORLAX
+
+; sprite set $0a
+ db SPRITE_BIRD
+ db SPRITE_BLACK_HAIR_BOY_1
+ db SPRITE_CLEFAIRY
+ 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
diff --git a/data/town_map_entries.asm b/data/maps/town_map_entries.asm
index 63ebd51b..63ebd51b 100755
--- a/data/town_map_entries.asm
+++ b/data/maps/town_map_entries.asm
diff --git a/data/town_map_order.asm b/data/maps/town_map_order.asm
index a082c376..a082c376 100755
--- a/data/town_map_order.asm
+++ b/data/maps/town_map_order.asm
diff --git a/data/move_animation_pointers.asm b/data/moves/animation_special_effect_pointers.asm
index ba607141..ba607141 100644
--- a/data/move_animation_pointers.asm
+++ b/data/moves/animation_special_effect_pointers.asm
diff --git a/data/move_animation_special_effects.asm b/data/moves/animation_special_effects.asm
index 9dfb5645..9dfb5645 100644
--- a/data/move_animation_special_effects.asm
+++ b/data/moves/animation_special_effects.asm
diff --git a/data/animations.asm b/data/moves/animations.asm
index 8c388afd..8c388afd 100755
--- a/data/animations.asm
+++ b/data/moves/animations.asm
diff --git a/data/moves/effects_pointers.asm b/data/moves/effects_pointers.asm
new file mode 100644
index 00000000..02f6e5c6
--- /dev/null
+++ b/data/moves/effects_pointers.asm
@@ -0,0 +1,87 @@
+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 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 ; 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 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/move_grammar.asm b/data/moves/grammar.asm
index 8113ab7c..8113ab7c 100644
--- a/data/move_grammar.asm
+++ b/data/moves/grammar.asm
diff --git a/data/moves/hm_moves.asm b/data/moves/hm_moves.asm
new file mode 100644
index 00000000..4f14b8df
--- /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.asm b/data/moves/moves.asm
index 44859681..44859681 100755
--- a/data/moves.asm
+++ b/data/moves/moves.asm
diff --git a/text/move_names.asm b/data/moves/names.asm
index f8706ee3..f8706ee3 100644
--- a/text/move_names.asm
+++ b/data/moves/names.asm
diff --git a/data/move_sfx.asm b/data/moves/sfx.asm
index 28ad0b63..28ad0b63 100644
--- a/data/move_sfx.asm
+++ b/data/moves/sfx.asm
diff --git a/data/tms.asm b/data/moves/tmhm_moves.asm
index 23c1685e..23c1685e 100755
--- a/data/tms.asm
+++ b/data/moves/tmhm_moves.asm
diff --git a/text/player_names.asm b/data/player_names.asm
index f57c9877..f57c9877 100644
--- a/text/player_names.asm
+++ b/data/player_names.asm
diff --git a/text/player_names_list.asm b/data/player_names_list.asm
index 56075df0..56075df0 100644
--- a/text/player_names_list.asm
+++ b/data/player_names_list.asm
diff --git a/data/pokemon/base_stats.asm b/data/pokemon/base_stats.asm
new file mode 100755
index 00000000..809ae8eb
--- /dev/null
+++ b/data/pokemon/base_stats.asm
@@ -0,0 +1,153 @@
+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"
diff --git a/data/baseStats/abra.asm b/data/pokemon/base_stats/abra.asm
index dfb446ca..dfb446ca 100644
--- a/data/baseStats/abra.asm
+++ b/data/pokemon/base_stats/abra.asm
diff --git a/data/baseStats/aerodactyl.asm b/data/pokemon/base_stats/aerodactyl.asm
index 564fc831..564fc831 100644
--- a/data/baseStats/aerodactyl.asm
+++ b/data/pokemon/base_stats/aerodactyl.asm
diff --git a/data/baseStats/alakazam.asm b/data/pokemon/base_stats/alakazam.asm
index 57f7f516..57f7f516 100644
--- a/data/baseStats/alakazam.asm
+++ b/data/pokemon/base_stats/alakazam.asm
diff --git a/data/baseStats/arbok.asm b/data/pokemon/base_stats/arbok.asm
index 1e88289f..1e88289f 100644
--- a/data/baseStats/arbok.asm
+++ b/data/pokemon/base_stats/arbok.asm
diff --git a/data/baseStats/arcanine.asm b/data/pokemon/base_stats/arcanine.asm
index c661cc88..c661cc88 100644
--- a/data/baseStats/arcanine.asm
+++ b/data/pokemon/base_stats/arcanine.asm
diff --git a/data/baseStats/articuno.asm b/data/pokemon/base_stats/articuno.asm
index 6265c654..6265c654 100644
--- a/data/baseStats/articuno.asm
+++ b/data/pokemon/base_stats/articuno.asm
diff --git a/data/baseStats/beedrill.asm b/data/pokemon/base_stats/beedrill.asm
index 516f5747..516f5747 100644
--- a/data/baseStats/beedrill.asm
+++ b/data/pokemon/base_stats/beedrill.asm
diff --git a/data/baseStats/bellsprout.asm b/data/pokemon/base_stats/bellsprout.asm
index 42c1a22c..42c1a22c 100644
--- a/data/baseStats/bellsprout.asm
+++ b/data/pokemon/base_stats/bellsprout.asm
diff --git a/data/baseStats/blastoise.asm b/data/pokemon/base_stats/blastoise.asm
index 1e073c26..1e073c26 100644
--- a/data/baseStats/blastoise.asm
+++ b/data/pokemon/base_stats/blastoise.asm
diff --git a/data/baseStats/bulbasaur.asm b/data/pokemon/base_stats/bulbasaur.asm
index 08e171ef..08e171ef 100644
--- a/data/baseStats/bulbasaur.asm
+++ b/data/pokemon/base_stats/bulbasaur.asm
diff --git a/data/baseStats/butterfree.asm b/data/pokemon/base_stats/butterfree.asm
index 2f0dae18..2f0dae18 100644
--- a/data/baseStats/butterfree.asm
+++ b/data/pokemon/base_stats/butterfree.asm
diff --git a/data/baseStats/caterpie.asm b/data/pokemon/base_stats/caterpie.asm
index 75270144..75270144 100644
--- a/data/baseStats/caterpie.asm
+++ b/data/pokemon/base_stats/caterpie.asm
diff --git a/data/baseStats/chansey.asm b/data/pokemon/base_stats/chansey.asm
index 7f0cf16e..7f0cf16e 100644
--- a/data/baseStats/chansey.asm
+++ b/data/pokemon/base_stats/chansey.asm
diff --git a/data/baseStats/charizard.asm b/data/pokemon/base_stats/charizard.asm
index c0df120e..c0df120e 100644
--- a/data/baseStats/charizard.asm
+++ b/data/pokemon/base_stats/charizard.asm
diff --git a/data/baseStats/charmander.asm b/data/pokemon/base_stats/charmander.asm
index a296b609..a296b609 100644
--- a/data/baseStats/charmander.asm
+++ b/data/pokemon/base_stats/charmander.asm
diff --git a/data/baseStats/charmeleon.asm b/data/pokemon/base_stats/charmeleon.asm
index 62e8eb89..62e8eb89 100644
--- a/data/baseStats/charmeleon.asm
+++ b/data/pokemon/base_stats/charmeleon.asm
diff --git a/data/baseStats/clefable.asm b/data/pokemon/base_stats/clefable.asm
index 407a5170..407a5170 100644
--- a/data/baseStats/clefable.asm
+++ b/data/pokemon/base_stats/clefable.asm
diff --git a/data/baseStats/clefairy.asm b/data/pokemon/base_stats/clefairy.asm
index 2e3bbf92..2e3bbf92 100644
--- a/data/baseStats/clefairy.asm
+++ b/data/pokemon/base_stats/clefairy.asm
diff --git a/data/baseStats/cloyster.asm b/data/pokemon/base_stats/cloyster.asm
index 9b79bd78..9b79bd78 100644
--- a/data/baseStats/cloyster.asm
+++ b/data/pokemon/base_stats/cloyster.asm
diff --git a/data/baseStats/cubone.asm b/data/pokemon/base_stats/cubone.asm
index 776a771c..776a771c 100644
--- a/data/baseStats/cubone.asm
+++ b/data/pokemon/base_stats/cubone.asm
diff --git a/data/baseStats/dewgong.asm b/data/pokemon/base_stats/dewgong.asm
index 59ab04b0..59ab04b0 100644
--- a/data/baseStats/dewgong.asm
+++ b/data/pokemon/base_stats/dewgong.asm
diff --git a/data/baseStats/diglett.asm b/data/pokemon/base_stats/diglett.asm
index da8648d8..da8648d8 100644
--- a/data/baseStats/diglett.asm
+++ b/data/pokemon/base_stats/diglett.asm
diff --git a/data/baseStats/ditto.asm b/data/pokemon/base_stats/ditto.asm
index aff87275..aff87275 100644
--- a/data/baseStats/ditto.asm
+++ b/data/pokemon/base_stats/ditto.asm
diff --git a/data/baseStats/dodrio.asm b/data/pokemon/base_stats/dodrio.asm
index baf1fd8a..baf1fd8a 100644
--- a/data/baseStats/dodrio.asm
+++ b/data/pokemon/base_stats/dodrio.asm
diff --git a/data/baseStats/doduo.asm b/data/pokemon/base_stats/doduo.asm
index 33d1506a..33d1506a 100644
--- a/data/baseStats/doduo.asm
+++ b/data/pokemon/base_stats/doduo.asm
diff --git a/data/baseStats/dragonair.asm b/data/pokemon/base_stats/dragonair.asm
index 9d8ab0c2..9d8ab0c2 100644
--- a/data/baseStats/dragonair.asm
+++ b/data/pokemon/base_stats/dragonair.asm
diff --git a/data/baseStats/dragonite.asm b/data/pokemon/base_stats/dragonite.asm
index 22653bcc..22653bcc 100644
--- a/data/baseStats/dragonite.asm
+++ b/data/pokemon/base_stats/dragonite.asm
diff --git a/data/baseStats/dratini.asm b/data/pokemon/base_stats/dratini.asm
index c377c217..c377c217 100644
--- a/data/baseStats/dratini.asm
+++ b/data/pokemon/base_stats/dratini.asm
diff --git a/data/baseStats/drowzee.asm b/data/pokemon/base_stats/drowzee.asm
index 075158c4..075158c4 100644
--- a/data/baseStats/drowzee.asm
+++ b/data/pokemon/base_stats/drowzee.asm
diff --git a/data/baseStats/dugtrio.asm b/data/pokemon/base_stats/dugtrio.asm
index 86a55e22..86a55e22 100644
--- a/data/baseStats/dugtrio.asm
+++ b/data/pokemon/base_stats/dugtrio.asm
diff --git a/data/baseStats/eevee.asm b/data/pokemon/base_stats/eevee.asm
index d5cbaa9b..d5cbaa9b 100644
--- a/data/baseStats/eevee.asm
+++ b/data/pokemon/base_stats/eevee.asm
diff --git a/data/baseStats/ekans.asm b/data/pokemon/base_stats/ekans.asm
index 94295b51..94295b51 100644
--- a/data/baseStats/ekans.asm
+++ b/data/pokemon/base_stats/ekans.asm
diff --git a/data/baseStats/electabuzz.asm b/data/pokemon/base_stats/electabuzz.asm
index 5a1bc59f..5a1bc59f 100644
--- a/data/baseStats/electabuzz.asm
+++ b/data/pokemon/base_stats/electabuzz.asm
diff --git a/data/baseStats/electrode.asm b/data/pokemon/base_stats/electrode.asm
index 86b023c3..86b023c3 100644
--- a/data/baseStats/electrode.asm
+++ b/data/pokemon/base_stats/electrode.asm
diff --git a/data/baseStats/exeggcute.asm b/data/pokemon/base_stats/exeggcute.asm
index 6499362a..6499362a 100644
--- a/data/baseStats/exeggcute.asm
+++ b/data/pokemon/base_stats/exeggcute.asm
diff --git a/data/baseStats/exeggutor.asm b/data/pokemon/base_stats/exeggutor.asm
index 17b1f6a6..17b1f6a6 100644
--- a/data/baseStats/exeggutor.asm
+++ b/data/pokemon/base_stats/exeggutor.asm
diff --git a/data/baseStats/farfetchd.asm b/data/pokemon/base_stats/farfetchd.asm
index ffbb70f1..ffbb70f1 100644
--- a/data/baseStats/farfetchd.asm
+++ b/data/pokemon/base_stats/farfetchd.asm
diff --git a/data/baseStats/fearow.asm b/data/pokemon/base_stats/fearow.asm
index d03722ba..d03722ba 100644
--- a/data/baseStats/fearow.asm
+++ b/data/pokemon/base_stats/fearow.asm
diff --git a/data/baseStats/flareon.asm b/data/pokemon/base_stats/flareon.asm
index 8ebe4ede..8ebe4ede 100644
--- a/data/baseStats/flareon.asm
+++ b/data/pokemon/base_stats/flareon.asm
diff --git a/data/baseStats/gastly.asm b/data/pokemon/base_stats/gastly.asm
index b68d431b..b68d431b 100644
--- a/data/baseStats/gastly.asm
+++ b/data/pokemon/base_stats/gastly.asm
diff --git a/data/baseStats/gengar.asm b/data/pokemon/base_stats/gengar.asm
index bdbe5de6..bdbe5de6 100644
--- a/data/baseStats/gengar.asm
+++ b/data/pokemon/base_stats/gengar.asm
diff --git a/data/baseStats/geodude.asm b/data/pokemon/base_stats/geodude.asm
index 9ffd1c86..9ffd1c86 100644
--- a/data/baseStats/geodude.asm
+++ b/data/pokemon/base_stats/geodude.asm
diff --git a/data/baseStats/gloom.asm b/data/pokemon/base_stats/gloom.asm
index 6c08287e..6c08287e 100644
--- a/data/baseStats/gloom.asm
+++ b/data/pokemon/base_stats/gloom.asm
diff --git a/data/baseStats/golbat.asm b/data/pokemon/base_stats/golbat.asm
index de93ee3f..de93ee3f 100644
--- a/data/baseStats/golbat.asm
+++ b/data/pokemon/base_stats/golbat.asm
diff --git a/data/baseStats/goldeen.asm b/data/pokemon/base_stats/goldeen.asm
index 32c89599..32c89599 100644
--- a/data/baseStats/goldeen.asm
+++ b/data/pokemon/base_stats/goldeen.asm
diff --git a/data/baseStats/golduck.asm b/data/pokemon/base_stats/golduck.asm
index 6f2cc6a9..6f2cc6a9 100644
--- a/data/baseStats/golduck.asm
+++ b/data/pokemon/base_stats/golduck.asm
diff --git a/data/baseStats/golem.asm b/data/pokemon/base_stats/golem.asm
index b5506372..b5506372 100644
--- a/data/baseStats/golem.asm
+++ b/data/pokemon/base_stats/golem.asm
diff --git a/data/baseStats/graveler.asm b/data/pokemon/base_stats/graveler.asm
index 0525c587..0525c587 100644
--- a/data/baseStats/graveler.asm
+++ b/data/pokemon/base_stats/graveler.asm
diff --git a/data/baseStats/grimer.asm b/data/pokemon/base_stats/grimer.asm
index 63533c00..63533c00 100644
--- a/data/baseStats/grimer.asm
+++ b/data/pokemon/base_stats/grimer.asm
diff --git a/data/baseStats/growlithe.asm b/data/pokemon/base_stats/growlithe.asm
index 9bf5e036..9bf5e036 100644
--- a/data/baseStats/growlithe.asm
+++ b/data/pokemon/base_stats/growlithe.asm
diff --git a/data/baseStats/gyarados.asm b/data/pokemon/base_stats/gyarados.asm
index 3cd2e213..3cd2e213 100644
--- a/data/baseStats/gyarados.asm
+++ b/data/pokemon/base_stats/gyarados.asm
diff --git a/data/baseStats/haunter.asm b/data/pokemon/base_stats/haunter.asm
index 879b75d4..879b75d4 100644
--- a/data/baseStats/haunter.asm
+++ b/data/pokemon/base_stats/haunter.asm
diff --git a/data/baseStats/hitmonchan.asm b/data/pokemon/base_stats/hitmonchan.asm
index f34bf086..f34bf086 100644
--- a/data/baseStats/hitmonchan.asm
+++ b/data/pokemon/base_stats/hitmonchan.asm
diff --git a/data/baseStats/hitmonlee.asm b/data/pokemon/base_stats/hitmonlee.asm
index 2590bfb0..2590bfb0 100644
--- a/data/baseStats/hitmonlee.asm
+++ b/data/pokemon/base_stats/hitmonlee.asm
diff --git a/data/baseStats/horsea.asm b/data/pokemon/base_stats/horsea.asm
index ecf98197..ecf98197 100644
--- a/data/baseStats/horsea.asm
+++ b/data/pokemon/base_stats/horsea.asm
diff --git a/data/baseStats/hypno.asm b/data/pokemon/base_stats/hypno.asm
index 9d251cd6..9d251cd6 100644
--- a/data/baseStats/hypno.asm
+++ b/data/pokemon/base_stats/hypno.asm
diff --git a/data/baseStats/ivysaur.asm b/data/pokemon/base_stats/ivysaur.asm
index f90549b9..f90549b9 100644
--- a/data/baseStats/ivysaur.asm
+++ b/data/pokemon/base_stats/ivysaur.asm
diff --git a/data/baseStats/jigglypuff.asm b/data/pokemon/base_stats/jigglypuff.asm
index 0a6bdf49..0a6bdf49 100644
--- a/data/baseStats/jigglypuff.asm
+++ b/data/pokemon/base_stats/jigglypuff.asm
diff --git a/data/baseStats/jolteon.asm b/data/pokemon/base_stats/jolteon.asm
index 1752354b..1752354b 100644
--- a/data/baseStats/jolteon.asm
+++ b/data/pokemon/base_stats/jolteon.asm
diff --git a/data/baseStats/jynx.asm b/data/pokemon/base_stats/jynx.asm
index f82796e5..f82796e5 100644
--- a/data/baseStats/jynx.asm
+++ b/data/pokemon/base_stats/jynx.asm
diff --git a/data/baseStats/kabuto.asm b/data/pokemon/base_stats/kabuto.asm
index fc2df213..fc2df213 100644
--- a/data/baseStats/kabuto.asm
+++ b/data/pokemon/base_stats/kabuto.asm
diff --git a/data/baseStats/kabutops.asm b/data/pokemon/base_stats/kabutops.asm
index ca35e56a..ca35e56a 100644
--- a/data/baseStats/kabutops.asm
+++ b/data/pokemon/base_stats/kabutops.asm
diff --git a/data/baseStats/kadabra.asm b/data/pokemon/base_stats/kadabra.asm
index 652f762a..652f762a 100644
--- a/data/baseStats/kadabra.asm
+++ b/data/pokemon/base_stats/kadabra.asm
diff --git a/data/baseStats/kakuna.asm b/data/pokemon/base_stats/kakuna.asm
index 4a7ec5b4..4a7ec5b4 100644
--- a/data/baseStats/kakuna.asm
+++ b/data/pokemon/base_stats/kakuna.asm
diff --git a/data/baseStats/kangaskhan.asm b/data/pokemon/base_stats/kangaskhan.asm
index 381c8879..381c8879 100644
--- a/data/baseStats/kangaskhan.asm
+++ b/data/pokemon/base_stats/kangaskhan.asm
diff --git a/data/baseStats/kingler.asm b/data/pokemon/base_stats/kingler.asm
index d4b426fb..d4b426fb 100644
--- a/data/baseStats/kingler.asm
+++ b/data/pokemon/base_stats/kingler.asm
diff --git a/data/baseStats/koffing.asm b/data/pokemon/base_stats/koffing.asm
index ca3e1029..ca3e1029 100644
--- a/data/baseStats/koffing.asm
+++ b/data/pokemon/base_stats/koffing.asm
diff --git a/data/baseStats/krabby.asm b/data/pokemon/base_stats/krabby.asm
index d1839d26..d1839d26 100644
--- a/data/baseStats/krabby.asm
+++ b/data/pokemon/base_stats/krabby.asm
diff --git a/data/baseStats/lapras.asm b/data/pokemon/base_stats/lapras.asm
index 17b80461..17b80461 100644
--- a/data/baseStats/lapras.asm
+++ b/data/pokemon/base_stats/lapras.asm
diff --git a/data/baseStats/lickitung.asm b/data/pokemon/base_stats/lickitung.asm
index 5c772dd3..5c772dd3 100644
--- a/data/baseStats/lickitung.asm
+++ b/data/pokemon/base_stats/lickitung.asm
diff --git a/data/baseStats/machamp.asm b/data/pokemon/base_stats/machamp.asm
index 825766a6..825766a6 100644
--- a/data/baseStats/machamp.asm
+++ b/data/pokemon/base_stats/machamp.asm
diff --git a/data/baseStats/machoke.asm b/data/pokemon/base_stats/machoke.asm
index 9bc5df42..9bc5df42 100644
--- a/data/baseStats/machoke.asm
+++ b/data/pokemon/base_stats/machoke.asm
diff --git a/data/baseStats/machop.asm b/data/pokemon/base_stats/machop.asm
index a691183a..a691183a 100644
--- a/data/baseStats/machop.asm
+++ b/data/pokemon/base_stats/machop.asm
diff --git a/data/baseStats/magikarp.asm b/data/pokemon/base_stats/magikarp.asm
index 5185e3f0..5185e3f0 100644
--- a/data/baseStats/magikarp.asm
+++ b/data/pokemon/base_stats/magikarp.asm
diff --git a/data/baseStats/magmar.asm b/data/pokemon/base_stats/magmar.asm
index b24f519c..b24f519c 100644
--- a/data/baseStats/magmar.asm
+++ b/data/pokemon/base_stats/magmar.asm
diff --git a/data/baseStats/magnemite.asm b/data/pokemon/base_stats/magnemite.asm
index f7fe0b00..f7fe0b00 100644
--- a/data/baseStats/magnemite.asm
+++ b/data/pokemon/base_stats/magnemite.asm
diff --git a/data/baseStats/magneton.asm b/data/pokemon/base_stats/magneton.asm
index 7c32d059..7c32d059 100644
--- a/data/baseStats/magneton.asm
+++ b/data/pokemon/base_stats/magneton.asm
diff --git a/data/baseStats/mankey.asm b/data/pokemon/base_stats/mankey.asm
index 07b961c5..07b961c5 100644
--- a/data/baseStats/mankey.asm
+++ b/data/pokemon/base_stats/mankey.asm
diff --git a/data/baseStats/marowak.asm b/data/pokemon/base_stats/marowak.asm
index a2c5a4c6..a2c5a4c6 100644
--- a/data/baseStats/marowak.asm
+++ b/data/pokemon/base_stats/marowak.asm
diff --git a/data/baseStats/meowth.asm b/data/pokemon/base_stats/meowth.asm
index aa1904ba..aa1904ba 100644
--- a/data/baseStats/meowth.asm
+++ b/data/pokemon/base_stats/meowth.asm
diff --git a/data/baseStats/metapod.asm b/data/pokemon/base_stats/metapod.asm
index cf4f52b7..cf4f52b7 100644
--- a/data/baseStats/metapod.asm
+++ b/data/pokemon/base_stats/metapod.asm
diff --git a/data/baseStats/mew.asm b/data/pokemon/base_stats/mew.asm
index f89a2864..f89a2864 100644
--- a/data/baseStats/mew.asm
+++ b/data/pokemon/base_stats/mew.asm
diff --git a/data/baseStats/mewtwo.asm b/data/pokemon/base_stats/mewtwo.asm
index 6e85291d..6e85291d 100644
--- a/data/baseStats/mewtwo.asm
+++ b/data/pokemon/base_stats/mewtwo.asm
diff --git a/data/baseStats/moltres.asm b/data/pokemon/base_stats/moltres.asm
index 4c54cf44..4c54cf44 100644
--- a/data/baseStats/moltres.asm
+++ b/data/pokemon/base_stats/moltres.asm
diff --git a/data/baseStats/mrmime.asm b/data/pokemon/base_stats/mrmime.asm
index 95f2655a..95f2655a 100644
--- a/data/baseStats/mrmime.asm
+++ b/data/pokemon/base_stats/mrmime.asm
diff --git a/data/baseStats/muk.asm b/data/pokemon/base_stats/muk.asm
index 45f7921f..45f7921f 100644
--- a/data/baseStats/muk.asm
+++ b/data/pokemon/base_stats/muk.asm
diff --git a/data/baseStats/nidoking.asm b/data/pokemon/base_stats/nidoking.asm
index 7d5ff438..7d5ff438 100644
--- a/data/baseStats/nidoking.asm
+++ b/data/pokemon/base_stats/nidoking.asm
diff --git a/data/baseStats/nidoqueen.asm b/data/pokemon/base_stats/nidoqueen.asm
index 9b635e3e..9b635e3e 100644
--- a/data/baseStats/nidoqueen.asm
+++ b/data/pokemon/base_stats/nidoqueen.asm
diff --git a/data/baseStats/nidoranf.asm b/data/pokemon/base_stats/nidoranf.asm
index f58e971d..f58e971d 100644
--- a/data/baseStats/nidoranf.asm
+++ b/data/pokemon/base_stats/nidoranf.asm
diff --git a/data/baseStats/nidoranm.asm b/data/pokemon/base_stats/nidoranm.asm
index 2c5374ba..2c5374ba 100644
--- a/data/baseStats/nidoranm.asm
+++ b/data/pokemon/base_stats/nidoranm.asm
diff --git a/data/baseStats/nidorina.asm b/data/pokemon/base_stats/nidorina.asm
index ae7681c4..ae7681c4 100644
--- a/data/baseStats/nidorina.asm
+++ b/data/pokemon/base_stats/nidorina.asm
diff --git a/data/baseStats/nidorino.asm b/data/pokemon/base_stats/nidorino.asm
index c9c87c25..c9c87c25 100644
--- a/data/baseStats/nidorino.asm
+++ b/data/pokemon/base_stats/nidorino.asm
diff --git a/data/baseStats/ninetales.asm b/data/pokemon/base_stats/ninetales.asm
index 88d95329..88d95329 100644
--- a/data/baseStats/ninetales.asm
+++ b/data/pokemon/base_stats/ninetales.asm
diff --git a/data/baseStats/oddish.asm b/data/pokemon/base_stats/oddish.asm
index d0309427..d0309427 100644
--- a/data/baseStats/oddish.asm
+++ b/data/pokemon/base_stats/oddish.asm
diff --git a/data/baseStats/omanyte.asm b/data/pokemon/base_stats/omanyte.asm
index 33541539..33541539 100644
--- a/data/baseStats/omanyte.asm
+++ b/data/pokemon/base_stats/omanyte.asm
diff --git a/data/baseStats/omastar.asm b/data/pokemon/base_stats/omastar.asm
index dfd5c7a2..dfd5c7a2 100644
--- a/data/baseStats/omastar.asm
+++ b/data/pokemon/base_stats/omastar.asm
diff --git a/data/baseStats/onix.asm b/data/pokemon/base_stats/onix.asm
index a0ad840e..a0ad840e 100644
--- a/data/baseStats/onix.asm
+++ b/data/pokemon/base_stats/onix.asm
diff --git a/data/baseStats/paras.asm b/data/pokemon/base_stats/paras.asm
index 47d2d490..47d2d490 100644
--- a/data/baseStats/paras.asm
+++ b/data/pokemon/base_stats/paras.asm
diff --git a/data/baseStats/parasect.asm b/data/pokemon/base_stats/parasect.asm
index 8e39c90e..8e39c90e 100644
--- a/data/baseStats/parasect.asm
+++ b/data/pokemon/base_stats/parasect.asm
diff --git a/data/baseStats/persian.asm b/data/pokemon/base_stats/persian.asm
index 40a9d70c..40a9d70c 100644
--- a/data/baseStats/persian.asm
+++ b/data/pokemon/base_stats/persian.asm
diff --git a/data/baseStats/pidgeot.asm b/data/pokemon/base_stats/pidgeot.asm
index 9c770dd6..9c770dd6 100644
--- a/data/baseStats/pidgeot.asm
+++ b/data/pokemon/base_stats/pidgeot.asm
diff --git a/data/baseStats/pidgeotto.asm b/data/pokemon/base_stats/pidgeotto.asm
index 1a2962e7..1a2962e7 100644
--- a/data/baseStats/pidgeotto.asm
+++ b/data/pokemon/base_stats/pidgeotto.asm
diff --git a/data/baseStats/pidgey.asm b/data/pokemon/base_stats/pidgey.asm
index ca167e3b..ca167e3b 100644
--- a/data/baseStats/pidgey.asm
+++ b/data/pokemon/base_stats/pidgey.asm
diff --git a/data/baseStats/pikachu.asm b/data/pokemon/base_stats/pikachu.asm
index 36391ed8..36391ed8 100644
--- a/data/baseStats/pikachu.asm
+++ b/data/pokemon/base_stats/pikachu.asm
diff --git a/data/baseStats/pinsir.asm b/data/pokemon/base_stats/pinsir.asm
index db749370..db749370 100644
--- a/data/baseStats/pinsir.asm
+++ b/data/pokemon/base_stats/pinsir.asm
diff --git a/data/baseStats/poliwag.asm b/data/pokemon/base_stats/poliwag.asm
index a4e260ba..a4e260ba 100644
--- a/data/baseStats/poliwag.asm
+++ b/data/pokemon/base_stats/poliwag.asm
diff --git a/data/baseStats/poliwhirl.asm b/data/pokemon/base_stats/poliwhirl.asm
index 706bd498..706bd498 100644
--- a/data/baseStats/poliwhirl.asm
+++ b/data/pokemon/base_stats/poliwhirl.asm
diff --git a/data/baseStats/poliwrath.asm b/data/pokemon/base_stats/poliwrath.asm
index 6f7d4b78..6f7d4b78 100644
--- a/data/baseStats/poliwrath.asm
+++ b/data/pokemon/base_stats/poliwrath.asm
diff --git a/data/baseStats/ponyta.asm b/data/pokemon/base_stats/ponyta.asm
index 667d3cc9..667d3cc9 100644
--- a/data/baseStats/ponyta.asm
+++ b/data/pokemon/base_stats/ponyta.asm
diff --git a/data/baseStats/porygon.asm b/data/pokemon/base_stats/porygon.asm
index 71a37154..71a37154 100644
--- a/data/baseStats/porygon.asm
+++ b/data/pokemon/base_stats/porygon.asm
diff --git a/data/baseStats/primeape.asm b/data/pokemon/base_stats/primeape.asm
index 2d00ee76..2d00ee76 100644
--- a/data/baseStats/primeape.asm
+++ b/data/pokemon/base_stats/primeape.asm
diff --git a/data/baseStats/psyduck.asm b/data/pokemon/base_stats/psyduck.asm
index 163f851e..163f851e 100644
--- a/data/baseStats/psyduck.asm
+++ b/data/pokemon/base_stats/psyduck.asm
diff --git a/data/baseStats/raichu.asm b/data/pokemon/base_stats/raichu.asm
index c2c0c6a9..c2c0c6a9 100644
--- a/data/baseStats/raichu.asm
+++ b/data/pokemon/base_stats/raichu.asm
diff --git a/data/baseStats/rapidash.asm b/data/pokemon/base_stats/rapidash.asm
index 53dcbe4a..53dcbe4a 100644
--- a/data/baseStats/rapidash.asm
+++ b/data/pokemon/base_stats/rapidash.asm
diff --git a/data/baseStats/raticate.asm b/data/pokemon/base_stats/raticate.asm
index 157b22bb..157b22bb 100644
--- a/data/baseStats/raticate.asm
+++ b/data/pokemon/base_stats/raticate.asm
diff --git a/data/baseStats/rattata.asm b/data/pokemon/base_stats/rattata.asm
index 5dfafddb..5dfafddb 100644
--- a/data/baseStats/rattata.asm
+++ b/data/pokemon/base_stats/rattata.asm
diff --git a/data/baseStats/rhydon.asm b/data/pokemon/base_stats/rhydon.asm
index 9f611a83..9f611a83 100644
--- a/data/baseStats/rhydon.asm
+++ b/data/pokemon/base_stats/rhydon.asm
diff --git a/data/baseStats/rhyhorn.asm b/data/pokemon/base_stats/rhyhorn.asm
index b7fc9137..b7fc9137 100644
--- a/data/baseStats/rhyhorn.asm
+++ b/data/pokemon/base_stats/rhyhorn.asm
diff --git a/data/baseStats/sandshrew.asm b/data/pokemon/base_stats/sandshrew.asm
index a098678e..a098678e 100644
--- a/data/baseStats/sandshrew.asm
+++ b/data/pokemon/base_stats/sandshrew.asm
diff --git a/data/baseStats/sandslash.asm b/data/pokemon/base_stats/sandslash.asm
index c596265c..c596265c 100644
--- a/data/baseStats/sandslash.asm
+++ b/data/pokemon/base_stats/sandslash.asm
diff --git a/data/baseStats/scyther.asm b/data/pokemon/base_stats/scyther.asm
index 303a33c1..303a33c1 100644
--- a/data/baseStats/scyther.asm
+++ b/data/pokemon/base_stats/scyther.asm
diff --git a/data/baseStats/seadra.asm b/data/pokemon/base_stats/seadra.asm
index cd9bbc3f..cd9bbc3f 100644
--- a/data/baseStats/seadra.asm
+++ b/data/pokemon/base_stats/seadra.asm
diff --git a/data/baseStats/seaking.asm b/data/pokemon/base_stats/seaking.asm
index c14b095b..c14b095b 100644
--- a/data/baseStats/seaking.asm
+++ b/data/pokemon/base_stats/seaking.asm
diff --git a/data/baseStats/seel.asm b/data/pokemon/base_stats/seel.asm
index 64c0cd7f..64c0cd7f 100644
--- a/data/baseStats/seel.asm
+++ b/data/pokemon/base_stats/seel.asm
diff --git a/data/baseStats/shellder.asm b/data/pokemon/base_stats/shellder.asm
index c051f2f5..c051f2f5 100644
--- a/data/baseStats/shellder.asm
+++ b/data/pokemon/base_stats/shellder.asm
diff --git a/data/baseStats/slowbro.asm b/data/pokemon/base_stats/slowbro.asm
index 51d3f564..51d3f564 100644
--- a/data/baseStats/slowbro.asm
+++ b/data/pokemon/base_stats/slowbro.asm
diff --git a/data/baseStats/slowpoke.asm b/data/pokemon/base_stats/slowpoke.asm
index 60e47ea8..60e47ea8 100644
--- a/data/baseStats/slowpoke.asm
+++ b/data/pokemon/base_stats/slowpoke.asm
diff --git a/data/baseStats/snorlax.asm b/data/pokemon/base_stats/snorlax.asm
index c1d47cd6..c1d47cd6 100644
--- a/data/baseStats/snorlax.asm
+++ b/data/pokemon/base_stats/snorlax.asm
diff --git a/data/baseStats/spearow.asm b/data/pokemon/base_stats/spearow.asm
index 9b8db91d..9b8db91d 100644
--- a/data/baseStats/spearow.asm
+++ b/data/pokemon/base_stats/spearow.asm
diff --git a/data/baseStats/squirtle.asm b/data/pokemon/base_stats/squirtle.asm
index 639809f9..639809f9 100644
--- a/data/baseStats/squirtle.asm
+++ b/data/pokemon/base_stats/squirtle.asm
diff --git a/data/baseStats/starmie.asm b/data/pokemon/base_stats/starmie.asm
index 23858638..23858638 100644
--- a/data/baseStats/starmie.asm
+++ b/data/pokemon/base_stats/starmie.asm
diff --git a/data/baseStats/staryu.asm b/data/pokemon/base_stats/staryu.asm
index ffbb1f21..ffbb1f21 100644
--- a/data/baseStats/staryu.asm
+++ b/data/pokemon/base_stats/staryu.asm
diff --git a/data/baseStats/tangela.asm b/data/pokemon/base_stats/tangela.asm
index 65570b3c..65570b3c 100644
--- a/data/baseStats/tangela.asm
+++ b/data/pokemon/base_stats/tangela.asm
diff --git a/data/baseStats/tauros.asm b/data/pokemon/base_stats/tauros.asm
index e66980d7..e66980d7 100644
--- a/data/baseStats/tauros.asm
+++ b/data/pokemon/base_stats/tauros.asm
diff --git a/data/baseStats/tentacool.asm b/data/pokemon/base_stats/tentacool.asm
index 0b1b840d..0b1b840d 100644
--- a/data/baseStats/tentacool.asm
+++ b/data/pokemon/base_stats/tentacool.asm
diff --git a/data/baseStats/tentacruel.asm b/data/pokemon/base_stats/tentacruel.asm
index ef82c764..ef82c764 100644
--- a/data/baseStats/tentacruel.asm
+++ b/data/pokemon/base_stats/tentacruel.asm
diff --git a/data/baseStats/vaporeon.asm b/data/pokemon/base_stats/vaporeon.asm
index a01c9ade..a01c9ade 100644
--- a/data/baseStats/vaporeon.asm
+++ b/data/pokemon/base_stats/vaporeon.asm
diff --git a/data/baseStats/venomoth.asm b/data/pokemon/base_stats/venomoth.asm
index 7518f31e..7518f31e 100644
--- a/data/baseStats/venomoth.asm
+++ b/data/pokemon/base_stats/venomoth.asm
diff --git a/data/baseStats/venonat.asm b/data/pokemon/base_stats/venonat.asm
index 1e88d9ae..1e88d9ae 100644
--- a/data/baseStats/venonat.asm
+++ b/data/pokemon/base_stats/venonat.asm
diff --git a/data/baseStats/venusaur.asm b/data/pokemon/base_stats/venusaur.asm
index bda8a528..bda8a528 100644
--- a/data/baseStats/venusaur.asm
+++ b/data/pokemon/base_stats/venusaur.asm
diff --git a/data/baseStats/victreebel.asm b/data/pokemon/base_stats/victreebel.asm
index ce528805..ce528805 100644
--- a/data/baseStats/victreebel.asm
+++ b/data/pokemon/base_stats/victreebel.asm
diff --git a/data/baseStats/vileplume.asm b/data/pokemon/base_stats/vileplume.asm
index 2ec67131..2ec67131 100644
--- a/data/baseStats/vileplume.asm
+++ b/data/pokemon/base_stats/vileplume.asm
diff --git a/data/baseStats/voltorb.asm b/data/pokemon/base_stats/voltorb.asm
index 6cb55714..6cb55714 100644
--- a/data/baseStats/voltorb.asm
+++ b/data/pokemon/base_stats/voltorb.asm
diff --git a/data/baseStats/vulpix.asm b/data/pokemon/base_stats/vulpix.asm
index 9285df13..9285df13 100644
--- a/data/baseStats/vulpix.asm
+++ b/data/pokemon/base_stats/vulpix.asm
diff --git a/data/baseStats/wartortle.asm b/data/pokemon/base_stats/wartortle.asm
index ce37e7b3..ce37e7b3 100644
--- a/data/baseStats/wartortle.asm
+++ b/data/pokemon/base_stats/wartortle.asm
diff --git a/data/baseStats/weedle.asm b/data/pokemon/base_stats/weedle.asm
index 7434d93a..7434d93a 100644
--- a/data/baseStats/weedle.asm
+++ b/data/pokemon/base_stats/weedle.asm
diff --git a/data/baseStats/weepinbell.asm b/data/pokemon/base_stats/weepinbell.asm
index 48e18a31..48e18a31 100644
--- a/data/baseStats/weepinbell.asm
+++ b/data/pokemon/base_stats/weepinbell.asm
diff --git a/data/baseStats/weezing.asm b/data/pokemon/base_stats/weezing.asm
index 21779741..21779741 100644
--- a/data/baseStats/weezing.asm
+++ b/data/pokemon/base_stats/weezing.asm
diff --git a/data/baseStats/wigglytuff.asm b/data/pokemon/base_stats/wigglytuff.asm
index 4f7fec95..4f7fec95 100644
--- a/data/baseStats/wigglytuff.asm
+++ b/data/pokemon/base_stats/wigglytuff.asm
diff --git a/data/baseStats/zapdos.asm b/data/pokemon/base_stats/zapdos.asm
index 560f78c4..560f78c4 100644
--- a/data/baseStats/zapdos.asm
+++ b/data/pokemon/base_stats/zapdos.asm
diff --git a/data/baseStats/zubat.asm b/data/pokemon/base_stats/zubat.asm
index 55b7ac4c..55b7ac4c 100644
--- a/data/baseStats/zubat.asm
+++ b/data/pokemon/base_stats/zubat.asm
diff --git a/data/cries.asm b/data/pokemon/cries.asm
index 1fc9960f..1fc9960f 100755
--- a/data/cries.asm
+++ b/data/pokemon/cries.asm
diff --git a/data/pokedex_entries.asm b/data/pokemon/dex_entries.asm
index 495a8e33..495a8e33 100755
--- a/data/pokedex_entries.asm
+++ b/data/pokemon/dex_entries.asm
diff --git a/data/pokedex_order.asm b/data/pokemon/dex_order.asm
index 0e293946..0e293946 100755
--- a/data/pokedex_order.asm
+++ b/data/pokemon/dex_order.asm
diff --git a/text/pokedex.asm b/data/pokemon/dex_text.asm
index 65f3d89d..65f3d89d 100644
--- a/text/pokedex.asm
+++ b/data/pokemon/dex_text.asm
diff --git a/data/pokemon/evos_moves.asm b/data/pokemon/evos_moves.asm
new file mode 100755
index 00000000..51f6b244
--- /dev/null
+++ b/data/pokemon/evos_moves.asm
@@ -0,0 +1,2134 @@
+; 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 14, POISON_STING
+ db 21, FOCUS_ENERGY
+ db 29, FURY_ATTACK
+ db 36, HORN_DRILL
+ db 43, DOUBLE_KICK
+ 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 14, POISON_STING
+ 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 14, POISON_STING
+ db 21, TAIL_WHIP
+ db 29, BITE
+ db 36, FURY_SWIPES
+ db 43, DOUBLE_KICK
+ db 0
+
+NidoqueenEvosMoves:
+; Evolutions
+ db 0
+; Learnset
+ db 8, SCRATCH
+ db 14, POISON_STING
+ db 23, BODY_SLAM
+ db 0
+
+CuboneEvosMoves:
+; Evolutions
+ db EV_LEVEL, 28, MAROWAK
+ db 0
+; Learnset
+ 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 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 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 29, ABSORB
+ db 32, POISONPOWDER
+ db 36, STUN_SPORE
+ db 39, SLEEP_POWDER
+ db 45, SLAM
+ db 49, 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 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 15, KARATE_CHOP
+ db 21, FURY_SWIPES
+ db 27, FOCUS_ENERGY
+ db 33, SEISMIC_TOSS
+ db 39, THRASH
+ 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 24, 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 9, THUNDER_WAVE
+ db 16, QUICK_ATTACK
+ db 26, SWIFT
+ db 33, AGILITY
+ db 43, THUNDER
+ 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 27, QUICK_ATTACK
+ db 31, TAIL_WHIP
+ db 37, BITE
+ db 45, TAKE_DOWN
+ db 0
+
+FlareonEvosMoves:
+; Evolutions
+ db 0
+; Learnset
+ db 27, QUICK_ATTACK
+ db 31, EMBER
+ db 37, TAIL_WHIP
+ db 40, BITE
+ db 42, LEER
+ db 44, FIRE_SPIN
+ db 48, RAGE
+ db 54, FLAMETHROWER
+ db 0
+
+JolteonEvosMoves:
+; Evolutions
+ db 0
+; Learnset
+ db 27, QUICK_ATTACK
+ db 31, THUNDERSHOCK
+ db 37, TAIL_WHIP
+ db 40, THUNDER_WAVE
+ db 42, DOUBLE_KICK
+ db 44, AGILITY
+ db 48, PIN_MISSILE
+ db 54, THUNDER
+ db 0
+
+VaporeonEvosMoves:
+; Evolutions
+ db 0
+; Learnset
+ db 27, QUICK_ATTACK
+ db 31, WATER_GUN
+ db 37, TAIL_WHIP
+ db 40, BITE
+ db 42, ACID_ARMOR
+ db 44, HAZE
+ db 48, MIST
+ db 54, 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 15, KARATE_CHOP
+ db 21, FURY_SWIPES
+ db 27, FOCUS_ENERGY
+ db 37, SEISMIC_TOSS
+ db 46, THRASH
+ 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 24, 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 0
+
+ButterfreeEvosMoves:
+; Evolutions
+ db 0
+; Learnset
+ db 12, CONFUSION
+ db 15, POISONPOWDER
+ db 16, STUN_SPORE
+ db 17, SLEEP_POWDER
+ db 21, SUPERSONIC
+ db 26, WHIRLWIND
+ db 32, 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 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 14, POISON_STING
+ db 23, FOCUS_ENERGY
+ db 32, FURY_ATTACK
+ db 41, HORN_DRILL
+ db 50, DOUBLE_KICK
+ db 0
+
+NidorinaEvosMoves:
+; Evolutions
+ db EV_ITEM, MOON_STONE, 1, NIDOQUEEN
+ db 0
+; Learnset
+ db 8, SCRATCH
+ db 14, POISON_STING
+ db 23, TAIL_WHIP
+ db 32, BITE
+ db 41, FURY_SWIPES
+ db 50, DOUBLE_KICK
+ 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/mon_party_sprites.asm b/data/pokemon/menu_icons.asm
index 471ee846..471ee846 100755
--- a/data/mon_party_sprites.asm
+++ b/data/pokemon/menu_icons.asm
diff --git a/data/pokemon/mew.asm b/data/pokemon/mew.asm
new file mode 100644
index 00000000..ad8cb9b8
--- /dev/null
+++ b/data/pokemon/mew.asm
@@ -0,0 +1,14 @@
+; Mew's pics and base data are not grouped with the other Pokémon
+; because it was a last-minute addition "as a kind of prank".
+; Shigeki Morimoto explained in an Iwata Asks interview:
+; "We put Mew in right at the very end. The cartridge was really full and
+; there wasn't room for much more on there. Then the debug features which
+; weren't going to be included in the final version of the game were removed,
+; creating a miniscule 300 bytes of free space. So we thought that we could
+; slot Mew in there. What we did would be unthinkable nowadays!"
+; http://iwataasks.nintendo.com/interviews/#/ds/pokemon/0/0
+
+MewPicFront:: INCBIN "gfx/pokemon/front/mew.pic"
+MewPicBack:: INCBIN "gfx/pokemon/back/mewb.pic"
+
+INCLUDE "data/pokemon/base_stats/mew.asm"
diff --git a/text/monster_names.asm b/data/pokemon/names.asm
index 83a45b77..83a45b77 100755
--- a/text/monster_names.asm
+++ b/data/pokemon/names.asm
diff --git a/data/mon_palettes.asm b/data/pokemon/palettes.asm
index 8c4d0bc0..8c4d0bc0 100755
--- a/data/mon_palettes.asm
+++ b/data/pokemon/palettes.asm
diff --git a/data/title_mons.asm b/data/pokemon/title_mons.asm
index c5d94301..c5d94301 100755
--- a/data/title_mons.asm
+++ b/data/pokemon/title_mons.asm
diff --git a/data/predef_pointers.asm b/data/predef_pointers.asm
index 5ce797e0..9d206a48 100644
--- a/data/predef_pointers.asm
+++ b/data/predef_pointers.asm
@@ -1,3 +1,9 @@
+add_predef: MACRO
+\1Predef::
+ db BANK(\1)
+ dw \1
+ENDM
+
PredefPointers::
; these are pointers to ASM routines.
; they appear to be used in overworld map scripts.
diff --git a/data/sgb_border.asm b/data/sgb/sgb_border.asm
index aa11a326..aa11a326 100755
--- a/data/sgb_border.asm
+++ b/data/sgb/sgb_border.asm
diff --git a/data/sgb_packets.asm b/data/sgb/sgb_packets.asm
index cae91883..cae91883 100755
--- a/data/sgb_packets.asm
+++ b/data/sgb/sgb_packets.asm
diff --git a/data/super_palettes.asm b/data/sgb/sgb_palettes.asm
index 97f1d8ec..97f1d8ec 100755
--- a/data/super_palettes.asm
+++ b/data/sgb/sgb_palettes.asm
diff --git a/data/sprite_sets.asm b/data/sprite_sets.asm
deleted file mode 100755
index 5b0e1e00..00000000
--- a/data/sprite_sets.asm
+++ /dev/null
@@ -1,551 +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_BLUE
- db SPRITE_BUG_CATCHER
- db SPRITE_GIRL
- db SPRITE_FISHER2
- db SPRITE_BLACK_HAIR_BOY_1
- db SPRITE_GAMBLER
- db SPRITE_SEEL
- db SPRITE_OAK
- db SPRITE_SWIMMER
- db SPRITE_BALL
- db SPRITE_LYING_OLD_MAN
-
-; sprite set $02
- db SPRITE_BUG_CATCHER
- db SPRITE_ROCKET
- db SPRITE_BLACK_HAIR_BOY_2
- db SPRITE_HIKER
- db SPRITE_SLOWBRO
- db SPRITE_BLUE
- db SPRITE_GUARD
- db SPRITE_LASS
- db SPRITE_BLACK_HAIR_BOY_1
- db SPRITE_BALL
- db SPRITE_LYING_OLD_MAN_UNUSED_2
-
-; sprite set $03
- 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_GUARD
- db SPRITE_BALL
- db SPRITE_LYING_OLD_MAN_UNUSED_2
-
-; sprite set $04
- db SPRITE_FOULARD_WOMAN
- db SPRITE_BLACK_HAIR_BOY_2
- db SPRITE_BUG_CATCHER
- db SPRITE_GAMBLER
- db SPRITE_SLOWBRO
- db SPRITE_GUARD
- 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_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_GUARD
- db SPRITE_ROCKET
- db SPRITE_BALL
- db SPRITE_SNORLAX
-
-; sprite set $06
- db SPRITE_BUG_CATCHER
- 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_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_SLOWBRO
- db SPRITE_BALL
- db SPRITE_LYING_OLD_MAN_UNUSED_2
-
-; sprite set $08
- 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_SLOWBRO
- db SPRITE_BALL
- db SPRITE_SNORLAX
-
-; sprite set $09
- 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_BLACK_HAIR_BOY_2
- db SPRITE_BALL
- db SPRITE_SNORLAX
-
-; sprite set $0a
- db SPRITE_BIRD
- db SPRITE_BLACK_HAIR_BOY_1
- db SPRITE_CLEFAIRY
- 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_OAK_SCIENTIST_AIDE
- dw OakAideSprite
- db $c0 ; byte count
- db BANK(OakAideSprite)
-
- ; 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)
-
- ; $32
- dw GuardSprite
- db $c0 ; byte count
- db BANK(GuardSprite)
-
- ; 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_GAMEBOY_KID
- dw GameboyKidSprite
- db $c0 ; byte count
- db BANK(GameboyKidSprite)
-
- ; SPRITE_GAMEBOY_KID_COPY
- 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_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/facing.asm b/data/sprites/facings.asm
index c412247a..c412247a 100644
--- a/data/facing.asm
+++ b/data/sprites/facings.asm
diff --git a/data/sprites/sprites.asm b/data/sprites/sprites.asm
new file mode 100644
index 00000000..9a6f383f
--- /dev/null
+++ b/data/sprites/sprites.asm
@@ -0,0 +1,360 @@
+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_OAK_SCIENTIST_AIDE
+ dw OakAideSprite
+ db $c0 ; byte count
+ db BANK(OakAideSprite)
+
+ ; 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)
+
+ ; $32
+ dw GuardSprite
+ db $c0 ; byte count
+ db BANK(GuardSprite)
+
+ ; 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_GAMEBOY_KID
+ dw GameboyKidSprite
+ db $c0 ; byte count
+ db BANK(GameboyKidSprite)
+
+ ; SPRITE_GAMEBOY_KID_COPY
+ 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_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/text/alphabets.asm b/data/text/alphabets.asm
index 9799a7e6..9799a7e6 100644
--- a/text/alphabets.asm
+++ b/data/text/alphabets.asm
diff --git a/text/dakutens.asm b/data/text/dakutens.asm
index f3bf4854..f3bf4854 100644
--- a/text/dakutens.asm
+++ b/data/text/dakutens.asm
diff --git a/data/text/text_1.asm b/data/text/text_1.asm
new file mode 100644
index 00000000..1ab54da3
--- /dev/null
+++ b/data/text/text_1.asm
@@ -0,0 +1,145 @@
+_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 "<PLAYER> 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, <PLAYER>! 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 "<PLAYER> 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
diff --git a/data/text/text_2.asm b/data/text/text_2.asm
new file mode 100644
index 00000000..01e8641b
--- /dev/null
+++ b/data/text/text_2.asm
@@ -0,0 +1,1753 @@
+_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
+
+_TradeWentToText::
+ TX_RAM wcf4b
+ text " went"
+ line "to @"
+ TX_RAM wLinkEnemyTrainerName
+ text "."
+ done
+
+_TradeForText::
+ text "For <PLAYER>'s"
+ line "@"
+ TX_RAM wcf4b
+ text ","
+ done
+
+_TradeSendsText::
+ TX_RAM wLinkEnemyTrainerName
+ text " sends"
+ line "@"
+ TX_RAM wcd6d
+ text "."
+ done
+
+_TradeWavesFarewellText::
+ TX_RAM wLinkEnemyTrainerName
+ 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 wLinkEnemyTrainerName
+ text " will"
+ line "trade @"
+ TX_RAM wcd6d
+ text ""
+ done
+
+_TradeforText::
+ text "for <PLAYER>'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 "<RIVAL>"
+ done
+
+_GymStatueText2::
+ TX_RAM wGymCityName
+ text ""
+ line "#MON GYM"
+ cont "LEADER: @"
+ TX_RAM wGymLeaderName
+ text ""
+
+ para "WINNING TRAINERS:"
+ line "<RIVAL>"
+ cont "<PLAYER>"
+ 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
+
+_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 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
+
+_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 "<PLAYER> 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 "<PLAYER> 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
+
+_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 "<PLAYER> found"
+ line "@"
+ TX_RAM wcd6d
+ text "!@@"
+
+_HiddenItemBagFullText::
+ text "But, <PLAYER> has"
+ line "no more room for"
+ cont "other items!"
+ done
+
+_FoundHiddenCoinsText::
+ text "<PLAYER> found"
+ line "@"
+ TX_BCD hCoins, 2 | LEADING_ZEROES | LEFT_ALIGN
+ text " coins!@@"
+
+_FoundHiddenCoins2Text::
+ text "<PLAYER> 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 "<USER>'s"
+ line "hurt by poison!"
+ prompt
+
+_HurtByBurnText::
+ text "<USER>'s"
+ line "hurt by the burn!"
+ prompt
+
+_HurtByLeechSeedText::
+ text "LEECH SEED saps"
+ line "<USER>!"
+ prompt
+
+_EnemyMonFaintedText::
+ text "Enemy @"
+ TX_RAM wEnemyMonNick
+ text ""
+ line "fainted!"
+ prompt
+
+_MoneyForWinningText::
+ text "<PLAYER> got ¥@"
+ TX_BCD wAmountMoneyWon, 3 | LEADING_ZEROES | LEFT_ALIGN
+ text ""
+ line "for winning!"
+ prompt
+
+_TrainerDefeatedText::
+ text "<PLAYER> defeated"
+ line "@"
+ TX_RAM wTrainerName
+ text "!"
+ prompt
+
+_PlayerMonFaintedText::
+ TX_RAM wBattleMonNick
+ text ""
+ line "fainted!"
+ prompt
+
+_UseNextMonText::
+ text "Use next #MON?"
+ done
+
+_Sony1WinText::
+ text "<RIVAL>: Yeah! Am"
+ line "I great or what?"
+ prompt
+
+_PlayerBlackedOutText2::
+ text "<PLAYER> is out of"
+ line "useable #MON!"
+
+ para "<PLAYER> blacked"
+ line "out!"
+ prompt
+
+_LinkBattleLostText::
+ text "<PLAYER> 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 <PLAYER>"
+ 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
+
+_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 "<USER>"
+ line "is fast asleep!"
+ prompt
+
+_WokeUpText::
+ text "<USER>"
+ line "woke up!"
+ prompt
+
+_IsFrozenText::
+ text "<USER>"
+ line "is frozen solid!"
+ prompt
+
+_FullyParalyzedText::
+ text "<USER>'s"
+ line "fully paralyzed!"
+ prompt
+
+_FlinchedText::
+ text "<USER>"
+ line "flinched!"
+ prompt
+
+_MustRechargeText::
+ text "<USER>"
+ line "must recharge!"
+ prompt
+
+_DisabledNoMoreText::
+ text "<USER>'s"
+ line "disabled no more!"
+ prompt
+
+_IsConfusedText::
+ text "<USER>"
+ line "is confused!"
+ prompt
+
+_HurtItselfText::
+ text "It hurt itself in"
+ line "its confusion!"
+ prompt
+
+_ConfusedNoMoreText::
+ text "<USER>'s"
+ line "confused no more!"
+ prompt
+
+_SavingEnergyText::
+ text "<USER>"
+ line "is saving energy!"
+ prompt
+
+_UnleashedEnergyText::
+ text "<USER>"
+ line "unleashed energy!"
+ prompt
+
+_ThrashingAboutText::
+ text "<USER>'s"
+ line "thrashing about!"
+ done
+
+_AttackContinuesText::
+ text "<USER>'s"
+ line "attack continues!"
+ done
+
+_CantMoveText::
+ text "<USER>"
+ line "can't move!"
+ prompt
+
+_MoveIsDisabledText::
+ text "<USER>'s"
+ line "@"
+ TX_RAM wcd6d
+ text " is"
+ cont "disabled!"
+ prompt
+
+_MonName1Text::
+ text "<USER>@@"
+
+_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 "<USER>'s"
+ line "attack missed!"
+ prompt
+
+_KeptGoingAndCrashedText::
+ text "<USER>"
+ line "kept going and"
+ cont "crashed!"
+ prompt
+
+_UnaffectedText::
+ text "<TARGET>'s"
+ line "unaffected!"
+ prompt
+
+_DoesntAffectMonText::
+ text "It doesn't affect"
+ line "<TARGET>!"
+ 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 "<TARGET>!"
+ prompt
+
+_SubstituteBrokeText::
+ text "<TARGET>'s"
+ line "SUBSTITUTE broke!"
+ prompt
+
+_BuildingRageText::
+ text "<USER>'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 "!@@"
+
+_WildMonAppearedText::
+ text "Wild @"
+ TX_RAM wEnemyMonNick
+ text ""
+ line "appeared!"
+ prompt
+
+_HookedMonAttackedText::
+ text "The hooked"
+ line "@"
+ TX_RAM wEnemyMonNick
+ text ""
+ cont "attacked!"
+ prompt
+
+_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
+
+_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
+
+; money related
+_PickUpPayDayMoneyText::
+ text "<PLAYER> 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
+
+_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 "Use TM on 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 "<PLAYER> 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 "<PLAYER> 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
+
+_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
+
+_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
+
+_WhereWouldYouLikeText::
+ text "Where would you"
+ line "like to go?"
+ done
+
+_PleaseWaitText::
+ text "OK, please wait"
+ line "just a moment."
+ done
+
+_LinkCanceledText::
+ text "The link was"
+ line "canceled."
+ 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!@@"
+
+_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 "<PLAYER>!"
+
+ 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 @"
+ TX_RAM wcd6d
+ text "?"
+ done
+
+_YourNameIsText::
+ text "Right! So your"
+ line "name is <PLAYER>!"
+ prompt
+
+_HisNameIsText::
+ text "That's right! I"
+ line "remember now! His"
+ cont "name is <RIVAL>!"
+ prompt
+
+_WillBeTradedText::
+ TX_RAM wNameOfPlayerMonToBeTraded
+ text " and"
+ line "@"
+ TX_RAM wcd6d
+ text " will"
+ cont "be traded."
+ done
+
+_Char00Text::
+ TX_NUM hSpriteIndexOrTextID,1,2
+ text " ERROR."
+ done
+
+_Char55Text::
+ text $4B,"@@"
diff --git a/data/text/text_3.asm b/data/text/text_3.asm
new file mode 100644
index 00000000..3b2ff787
--- /dev/null
+++ b/data/text/text_3.asm
@@ -0,0 +1,324 @@
+_FileDataDestroyedText::
+ text "The file data is"
+ line "destroyed!"
+ prompt
+
+_WouldYouLikeToSaveText::
+ text "Would you like to"
+ line "SAVE the game?"
+ done
+
+_GameSavedText::
+ text "<PLAYER> 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 "<pkmn> 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
+
+_IsEvolvingText::
+ text "What? @"
+ TX_RAM wcf4b
+ text ""
+ line "is evolving!"
+ done
+
+_FellAsleepText::
+ text "<TARGET>"
+ line "fell asleep!"
+ prompt
+
+_AlreadyAsleepText::
+ text "<TARGET>'s"
+ line "already asleep!"
+ prompt
+
+_PoisonedText::
+ text "<TARGET>"
+ line "was poisoned!"
+ prompt
+
+_BadlyPoisonedText::
+ text "<TARGET>'s"
+ line "badly poisoned!"
+ prompt
+
+_BurnedText::
+ text "<TARGET>"
+ line "was burned!"
+ prompt
+
+_FrozenText::
+ text "<TARGET>"
+ line "was frozen solid!"
+ prompt
+
+_FireDefrostedText::
+ text "Fire defrosted"
+ line "<TARGET>!"
+ prompt
+
+_MonsStatsRoseText::
+ text "<USER>'s"
+ line "@"
+ TX_RAM wcf4b
+ text "@@"
+
+_GreatlyRoseText::
+ text $4c, "greatly@@"
+
+_RoseText::
+ text " rose!"
+ prompt
+
+_MonsStatsFellText::
+ text "<TARGET>'s"
+ line "@"
+ TX_RAM wcf4b
+ text "@@"
+
+_GreatlyFellText::
+ text $4c, "greatly@@"
+
+_FellText::
+ text " fell!"
+ prompt
+
+_RanFromBattleText::
+ text "<USER>"
+ line "ran from battle!"
+ prompt
+
+_RanAwayScaredText::
+ text "<TARGET>"
+ line "ran away scared!"
+ prompt
+
+_WasBlownAwayText::
+ text "<TARGET>"
+ line "was blown away!"
+ prompt
+
+_ChargeMoveEffectText::
+ text "<USER>@@"
+
+_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 "<TARGET>"
+ line "became confused!"
+ prompt
+
+_MimicLearnedMoveText::
+ text "<USER>"
+ line "learned"
+ cont "@"
+ TX_RAM wcd6d
+ text "!"
+ prompt
+
+_MoveWasDisabledText::
+ text "<TARGET>'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 "<TARGET>!"
+ prompt
+
+_IsUnaffectedText::
+ text "<TARGET>"
+ line "is unaffected!"
+ prompt
+
+_ParalyzedMayNotAttackText::
+ text "<TARGET>'s"
+ line "paralyzed! It may"
+ cont "not attack!"
+ prompt
+
+_SubstituteText::
+ text "It created a"
+ line "SUBSTITUTE!"
+ prompt
+
+_HasSubstituteText::
+ text "<USER>"
+ line "has a SUBSTITUTE!"
+ prompt
+
+_TooWeakSubstituteText::
+ text "Too weak to make"
+ line "a SUBSTITUTE!"
+ prompt
+
+_CoinsScatteredText::
+ text "Coins scattered"
+ line "everywhere!"
+ prompt
+
+_GettingPumpedText::
+ text "<USER>'s"
+ line "getting pumped!"
+ prompt
+
+_WasSeededText::
+ text "<TARGET>"
+ line "was seeded!"
+ prompt
+
+_EvadedAttackText::
+ text "<TARGET>"
+ line "evaded attack!"
+ prompt
+
+_HitWithRecoilText::
+ text "<USER>'s"
+ line "hit with recoil!"
+ prompt
+
+_ConvertedTypeText::
+ text "Converted type to"
+ line "<TARGET>'s!"
+ prompt
+
+_StatusChangesEliminatedText::
+ text "All STATUS changes"
+ line "are eliminated!"
+ prompt
+
+_StartedSleepingEffect::
+ text "<USER>"
+ line "started sleeping!"
+ done
+
+_FellAsleepBecameHealthyText::
+ text "<USER>"
+ line "fell asleep and"
+ cont "became healthy!"
+ done
+
+_RegainedHealthText::
+ text "<USER>"
+ line "regained health!"
+ prompt
+
+_TransformedText::
+ text "<USER>"
+ line "transformed into"
+ cont "@"
+ TX_RAM wcd6d
+ text "!"
+ prompt
+
+_LightScreenProtectedText::
+ text "<USER>'s"
+ line "protected against"
+ cont "special attacks!"
+ prompt
+
+_ReflectGainedArmorText::
+ text "<USER>"
+ line "gained armor!"
+ prompt
+
+_ShroudedInMistText::
+ text "<USER>'s"
+ line "shrouded in mist!"
+ prompt
+
+_SuckedHealthText::
+ text "Sucked health from"
+ line "<TARGET>!"
+ prompt
+
+_DreamWasEatenText::
+ text "<TARGET>'s"
+ line "dream was eaten!"
+ prompt
+
+_TradeCenterText1::
+ text "!"
+ done
+
+_ColosseumText1::
+ text "!"
+ done
diff --git a/data/text/text_4.asm b/data/text/text_4.asm
new file mode 100644
index 00000000..6ec22680
--- /dev/null
+++ b/data/text/text_4.asm
@@ -0,0 +1,217 @@
+_PokemartGreetingText::
+ text "Hi there!"
+ next "May I help you?"
+ done
+
+_PokemonFaintedText::
+ TX_RAM wcd6d
+ text ""
+ line "fainted!"
+ done
+
+_PlayerBlackedOutText::
+ text "<PLAYER> is out of"
+ line "useable #MON!"
+
+ para "<PLAYER> 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
+
+_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
+
+_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
diff --git a/data/text/text_5.asm b/data/text/text_5.asm
new file mode 100644
index 00000000..26a11a40
--- /dev/null
+++ b/data/text/text_5.asm
@@ -0,0 +1,102 @@
+_CableClubNPCPleaseComeAgainText::
+ text "Please come again!"
+ done
+
+_CableClubNPCMakingPreparationsText::
+ text "We're making"
+ line "preparations."
+ cont "Please wait."
+ done
+
+_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
+
+_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
+
+_GotMonText::
+ text "<PLAYER> got"
+ line "@"
+ TX_RAM wcd6d
+ text "!@@"
+
+_SentToBoxText::
+ 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
diff --git a/data/text/text_6.asm b/data/text/text_6.asm
new file mode 100644
index 00000000..45c553cd
--- /dev/null
+++ b/data/text/text_6.asm
@@ -0,0 +1,228 @@
+_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 "<PLAYER> got on"
+ line "@"
+ TX_RAM wcd6d
+ text "!"
+ prompt
+
+_SurfingNoPlaceToGetOffText::
+ text "There's no place"
+ line "to get off!"
+ 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 "<PLAYER> threw"
+ line "some BAIT."
+ done
+
+_ThrewRockText::
+ text "<PLAYER> 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 "<PLAYER> 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: <PLAYER>!"
+ 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
diff --git a/data/text/text_7.asm b/data/text/text_7.asm
new file mode 100644
index 00000000..e836fc8e
--- /dev/null
+++ b/data/text/text_7.asm
@@ -0,0 +1,196 @@
+_ItemUseText001::
+ text "<PLAYER> used@@"
+
+_ItemUseText002::
+ TX_RAM wcf4b
+ text "!"
+ done
+
+_GotOnBicycleText1::
+ text "<PLAYER> got on the@@"
+
+_GotOnBicycleText2::
+ TX_RAM wcf4b
+ text "!"
+ prompt
+
+_GotOffBicycleText1::
+ text "<PLAYER> 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 "<PLAYER> 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 "The @"
+ TX_RAM wInGameTradeGiveMonName
+ text " you"
+ line "traded to me"
+
+ para "went and evolved!"
+ 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
diff --git a/data/text/unused_names.asm b/data/text/unused_names.asm
new file mode 100644
index 00000000..e629c44e
--- /dev/null
+++ b/data/text/unused_names.asm
@@ -0,0 +1,20 @@
+UnusedNames::
+ 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
+ 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_predef_pointers.asm b/data/text_predef_pointers.asm
new file mode 100644
index 00000000..bbe9c8d8
--- /dev/null
+++ b/data/text_predef_pointers.asm
@@ -0,0 +1,71 @@
+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 GymStatueText1 ; 0C
+ add_tx_pre GymStatueText2 ; 0D
+ add_tx_pre BookcaseText ; 0E
+ add_tx_pre ViridianCityPokecenterBenchGuyText ; 0F
+ add_tx_pre PewterCityPokecenterBenchGuyText ; 10
+ add_tx_pre CeruleanCityPokecenterBenchGuyText ; 11
+ add_tx_pre LavenderCityPokecenterBenchGuyText ; 12
+ add_tx_pre VermilionCityPokecenterBenchGuyText ; 13
+ add_tx_pre CeladonCityPokecenterBenchGuyText ; 14
+ add_tx_pre CeladonCityHotelText ; 15
+ add_tx_pre FuchsiaCityPokecenterBenchGuyText ; 16
+ add_tx_pre CinnabarIslandPokecenterBenchGuyText ; 17
+ add_tx_pre SaffronCityPokecenterBenchGuyText ; 18
+ add_tx_pre MtMoonPokecenterBenchGuyText ; 19
+ add_tx_pre RockTunnelPokecenterBenchGuyText ; 1A
+ add_tx_pre UnusedBenchGuyText1 ; 1B XXX unused
+ add_tx_pre UnusedBenchGuyText2 ; 1C XXX unused
+ add_tx_pre UnusedBenchGuyText3 ; 1D XXX unused
+ add_tx_pre UnusedPredefText ; 1E XXX unused
+ add_tx_pre PokemonCenterPCText ; 1F
+ add_tx_pre ViridianSchoolNotebook ; 20
+ add_tx_pre ViridianSchoolBlackboard ; 21
+ add_tx_pre JustAMomentText ; 22
+ add_tx_pre OpenBillsPCText ; 23
+ add_tx_pre FoundHiddenItemText ; 24
+ add_tx_pre HiddenItemBagFullText ; 25 XXX unused
+ add_tx_pre VermilionGymTrashText ; 26
+ add_tx_pre IndigoPlateauHQText ; 27
+ add_tx_pre GameCornerOutOfOrderText ; 28
+ add_tx_pre GameCornerOutToLunchText ; 29
+ add_tx_pre GameCornerSomeonesKeysText ; 2A
+ add_tx_pre FoundHiddenCoinsText ; 2B
+ add_tx_pre DroppedHiddenCoinsText ; 2C
+ add_tx_pre BillsHouseMonitorText ; 2D
+ add_tx_pre BillsHouseInitiatedText ; 2E
+ add_tx_pre BillsHousePokemonList ; 2F
+ add_tx_pre MagazinesText ; 30
+ add_tx_pre CinnabarGymQuiz ; 31
+ add_tx_pre GameCornerNoCoinsText ; 32
+ add_tx_pre GameCornerCoinCaseText ; 33
+ add_tx_pre LinkCableHelp ; 34
+ add_tx_pre TMNotebook ; 35
+ add_tx_pre FightingDojoText ; 36
+ add_tx_pre EnemiesOnEverySideText ; 37
+ add_tx_pre WhatGoesAroundComesAroundText ; 38
+ add_tx_pre NewBicycleText ; 39
+ add_tx_pre IndigoPlateauStatues ; 3A
+ add_tx_pre VermilionGymTrashSuccessText1 ; 3B
+ add_tx_pre VermilionGymTrashSuccessText2 ; 3C XXX unused
+ add_tx_pre VermilionGymTrashSuccessText3 ; 3D
+ add_tx_pre VermilionGymTrashFailText ; 3E
+ add_tx_pre TownMapText ; 3F
+ add_tx_pre BookOrSculptureText ; 40
+ add_tx_pre ElevatorText ; 41
+ add_tx_pre PokemonStuffText ; 42
diff --git a/data/tileset_headers.asm b/data/tileset_headers.asm
deleted file mode 100755
index d8e0d9b4..00000000
--- a/data/tileset_headers.asm
+++ /dev/null
@@ -1,25 +0,0 @@
-Tilesets:
- 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
- tileset Forest_Block, Forest_GFX, Forest_Coll, $FF,$FF,$FF, $20, CAVE
- tileset RedsHouse2_Block, RedsHouse2_GFX, RedsHouse2_Coll, $FF,$FF,$FF, $FF, INDOOR
- tileset Dojo_Block, Dojo_GFX, Dojo_Coll, $3A,$FF,$FF, $FF, OUTDOOR
- tileset Pokecenter_Block, Pokecenter_GFX, Pokecenter_Coll, $18,$19,$1E, $FF, INDOOR
- tileset Gym_Block, Gym_GFX, Gym_Coll, $3A,$FF,$FF, $FF, OUTDOOR
- tileset House_Block, House_GFX, House_Coll, $FF,$FF,$FF, $FF, INDOOR
- tileset ForestGate_Block, ForestGate_GFX, ForestGate_Coll, $17,$32,$FF, $FF, INDOOR
- tileset Museum_Block, Museum_GFX, Museum_Coll, $17,$32,$FF, $FF, INDOOR
- tileset Underground_Block, Underground_GFX, Underground_Coll, $FF,$FF,$FF, $FF, INDOOR
- tileset Gate_Block, Gate_GFX, Gate_Coll, $17,$32,$FF, $FF, INDOOR
- tileset Ship_Block, Ship_GFX, Ship_Coll, $FF,$FF,$FF, $FF, CAVE
- tileset ShipPort_Block, ShipPort_GFX, ShipPort_Coll, $FF,$FF,$FF, $FF, CAVE
- tileset Cemetery_Block, Cemetery_GFX, Cemetery_Coll, $12,$FF,$FF, $FF, INDOOR
- tileset Interior_Block, Interior_GFX, Interior_Coll, $FF,$FF,$FF, $FF, INDOOR
- tileset Cavern_Block, Cavern_GFX, Cavern_Coll, $FF,$FF,$FF, $FF, CAVE
- tileset Lobby_Block, Lobby_GFX, Lobby_Coll, $15,$36,$FF, $FF, INDOOR
- tileset Mansion_Block, Mansion_GFX, Mansion_Coll, $FF,$FF,$FF, $FF, INDOOR
- tileset Lab_Block, Lab_GFX, Lab_Coll, $FF,$FF,$FF, $FF, INDOOR
- tileset Club_Block, Club_GFX, Club_Coll, $07,$17,$FF, $FF, INDOOR
- tileset Facility_Block, Facility_GFX, Facility_Coll, $12,$FF,$FF, $FF, CAVE
- tileset Plateau_Block, Plateau_GFX, Plateau_Coll, $FF,$FF,$FF, $45, CAVE
diff --git a/data/bike_riding_tilesets.asm b/data/tilesets/bike_riding_tilesets.asm
index 48c2cee6..48c2cee6 100755
--- a/data/bike_riding_tilesets.asm
+++ b/data/tilesets/bike_riding_tilesets.asm
diff --git a/data/bookshelf_tile_ids.asm b/data/tilesets/bookshelf_tile_ids.asm
index 535bf8e9..535bf8e9 100644
--- a/data/bookshelf_tile_ids.asm
+++ b/data/tilesets/bookshelf_tile_ids.asm
diff --git a/data/collision_tile_ids.asm b/data/tilesets/collision_tile_ids.asm
index c18a7e72..c18a7e72 100644
--- a/data/collision_tile_ids.asm
+++ b/data/tilesets/collision_tile_ids.asm
diff --git a/data/cut_tree_blocks.asm b/data/tilesets/cut_tree_blocks.asm
index eb63a712..eb63a712 100644
--- a/data/cut_tree_blocks.asm
+++ b/data/tilesets/cut_tree_blocks.asm
diff --git a/data/door_tile_ids.asm b/data/tilesets/door_tile_ids.asm
index 686e418c..686e418c 100644
--- a/data/door_tile_ids.asm
+++ b/data/tilesets/door_tile_ids.asm
diff --git a/data/dungeon_tilesets.asm b/data/tilesets/dungeon_tilesets.asm
index 01e86714..01e86714 100755
--- a/data/dungeon_tilesets.asm
+++ b/data/tilesets/dungeon_tilesets.asm
diff --git a/data/ledge_tiles.asm b/data/tilesets/ledge_tiles.asm
index b742af1a..b742af1a 100644
--- a/data/ledge_tiles.asm
+++ b/data/tilesets/ledge_tiles.asm
diff --git a/data/tilesets/tileset_headers.asm b/data/tilesets/tileset_headers.asm
new file mode 100755
index 00000000..8f825330
--- /dev/null
+++ b/data/tilesets/tileset_headers.asm
@@ -0,0 +1,33 @@
+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:
+ 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
+ tileset Forest_Block, Forest_GFX, Forest_Coll, $FF,$FF,$FF, $20, CAVE
+ tileset RedsHouse2_Block, RedsHouse2_GFX, RedsHouse2_Coll, $FF,$FF,$FF, $FF, INDOOR
+ tileset Dojo_Block, Dojo_GFX, Dojo_Coll, $3A,$FF,$FF, $FF, OUTDOOR
+ tileset Pokecenter_Block, Pokecenter_GFX, Pokecenter_Coll, $18,$19,$1E, $FF, INDOOR
+ tileset Gym_Block, Gym_GFX, Gym_Coll, $3A,$FF,$FF, $FF, OUTDOOR
+ tileset House_Block, House_GFX, House_Coll, $FF,$FF,$FF, $FF, INDOOR
+ tileset ForestGate_Block, ForestGate_GFX, ForestGate_Coll, $17,$32,$FF, $FF, INDOOR
+ tileset Museum_Block, Museum_GFX, Museum_Coll, $17,$32,$FF, $FF, INDOOR
+ tileset Underground_Block, Underground_GFX, Underground_Coll, $FF,$FF,$FF, $FF, INDOOR
+ tileset Gate_Block, Gate_GFX, Gate_Coll, $17,$32,$FF, $FF, INDOOR
+ tileset Ship_Block, Ship_GFX, Ship_Coll, $FF,$FF,$FF, $FF, CAVE
+ tileset ShipPort_Block, ShipPort_GFX, ShipPort_Coll, $FF,$FF,$FF, $FF, CAVE
+ tileset Cemetery_Block, Cemetery_GFX, Cemetery_Coll, $12,$FF,$FF, $FF, INDOOR
+ tileset Interior_Block, Interior_GFX, Interior_Coll, $FF,$FF,$FF, $FF, INDOOR
+ tileset Cavern_Block, Cavern_GFX, Cavern_Coll, $FF,$FF,$FF, $FF, CAVE
+ tileset Lobby_Block, Lobby_GFX, Lobby_Coll, $15,$36,$FF, $FF, INDOOR
+ tileset Mansion_Block, Mansion_GFX, Mansion_Coll, $FF,$FF,$FF, $FF, INDOOR
+ tileset Lab_Block, Lab_GFX, Lab_Coll, $FF,$FF,$FF, $FF, INDOOR
+ tileset Club_Block, Club_GFX, Club_Coll, $07,$17,$FF, $FF, INDOOR
+ tileset Facility_Block, Facility_GFX, Facility_Coll, $12,$FF,$FF, $FF, CAVE
+ tileset Plateau_Block, Plateau_GFX, Plateau_Coll, $FF,$FF,$FF, $45, CAVE
diff --git a/data/warp_carpet_tile_ids.asm b/data/tilesets/warp_carpet_tile_ids.asm
index 6f312bc7..6f312bc7 100644
--- a/data/warp_carpet_tile_ids.asm
+++ b/data/tilesets/warp_carpet_tile_ids.asm
diff --git a/data/warp_pad_hole_tile_ids.asm b/data/tilesets/warp_pad_hole_tile_ids.asm
index 3e2c1890..3e2c1890 100644
--- a/data/warp_pad_hole_tile_ids.asm
+++ b/data/tilesets/warp_pad_hole_tile_ids.asm
diff --git a/data/warp_tile_ids.asm b/data/tilesets/warp_tile_ids.asm
index 6fd326cc..6fd326cc 100755
--- a/data/warp_tile_ids.asm
+++ b/data/tilesets/warp_tile_ids.asm
diff --git a/data/water_tilesets.asm b/data/tilesets/water_tilesets.asm
index 00f0ab1f..00f0ab1f 100644
--- a/data/water_tilesets.asm
+++ b/data/tilesets/water_tilesets.asm
diff --git a/data/trainer_ai_pointers.asm b/data/trainer_ai_pointers.asm
deleted file mode 100644
index d7cb5f19..00000000
--- a/data/trainer_ai_pointers.asm
+++ /dev/null
@@ -1,51 +0,0 @@
-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
diff --git a/data/trainers/ai_pointers.asm b/data/trainers/ai_pointers.asm
new file mode 100644
index 00000000..26f3001e
--- /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 ; 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
diff --git a/data/trainer_types.asm b/data/trainers/encounter_types.asm
index cc7ca605..cc7ca605 100755
--- a/data/trainer_types.asm
+++ b/data/trainers/encounter_types.asm
diff --git a/data/trainer_move_choices.asm b/data/trainers/move_choices.asm
index ccbae448..ccbae448 100644
--- a/data/trainer_move_choices.asm
+++ b/data/trainers/move_choices.asm
diff --git a/text/trainer_name_pointers.asm b/data/trainers/name_pointers.asm
index aa5e72d3..aa5e72d3 100644
--- a/text/trainer_name_pointers.asm
+++ b/data/trainers/name_pointers.asm
diff --git a/text/trainer_names.asm b/data/trainers/names.asm
index d8e1f550..d8e1f550 100755
--- a/text/trainer_names.asm
+++ b/data/trainers/names.asm
diff --git a/data/trainer_parties.asm b/data/trainers/parties.asm
index e448d431..e448d431 100755
--- a/data/trainer_parties.asm
+++ b/data/trainers/parties.asm
diff --git a/data/trainer_pic_money_pointers.asm b/data/trainers/pic_pointers_money.asm
index 85f34497..85f34497 100755
--- a/data/trainer_pic_money_pointers.asm
+++ b/data/trainers/pic_pointers_money.asm
diff --git a/data/trainer_moves.asm b/data/trainers/special_moves.asm
index 2e7b52a5..2e7b52a5 100755
--- a/data/trainer_moves.asm
+++ b/data/trainers/special_moves.asm
diff --git a/text/type_names.asm b/data/types/names.asm
index d94675b8..d94675b8 100755
--- a/text/type_names.asm
+++ b/data/types/names.asm
diff --git a/data/type_effects.asm b/data/types/type_matchups.asm
index 1321a3d9..1321a3d9 100755
--- a/data/type_effects.asm
+++ b/data/types/type_matchups.asm
diff --git a/data/good_rod.asm b/data/wild/good_rod.asm
index 6c23f402..6c23f402 100755
--- a/data/good_rod.asm
+++ b/data/wild/good_rod.asm
diff --git a/data/wild/grass_water.asm b/data/wild/grass_water.asm
new file mode 100755
index 00000000..9dc41f82
--- /dev/null
+++ b/data/wild/grass_water.asm
@@ -0,0 +1,321 @@
+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 WaterMons ; ROUTE_19
+ dw WaterMons ; 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 -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 == 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/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/SeaRoutes.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/wildPokemon/ceruleancave1.asm b/data/wild/maps/CeruleanCave1F.asm
index 20e8643a..20e8643a 100644
--- a/data/wildPokemon/ceruleancave1.asm
+++ b/data/wild/maps/CeruleanCave1F.asm
diff --git a/data/wildPokemon/ceruleancave2.asm b/data/wild/maps/CeruleanCave2F.asm
index 5afe55ac..5afe55ac 100644
--- a/data/wildPokemon/ceruleancave2.asm
+++ b/data/wild/maps/CeruleanCave2F.asm
diff --git a/data/wildPokemon/ceruleancaveb1.asm b/data/wild/maps/CeruleanCaveB1F.asm
index 245d5912..245d5912 100644
--- a/data/wildPokemon/ceruleancaveb1.asm
+++ b/data/wild/maps/CeruleanCaveB1F.asm
diff --git a/data/wildPokemon/diglettscave.asm b/data/wild/maps/DiglettsCave.asm
index 37512687..37512687 100755
--- a/data/wildPokemon/diglettscave.asm
+++ b/data/wild/maps/DiglettsCave.asm
diff --git a/data/wildPokemon/mtmoon1.asm b/data/wild/maps/MtMoon1F.asm
index 44b34c45..44b34c45 100755
--- a/data/wildPokemon/mtmoon1.asm
+++ b/data/wild/maps/MtMoon1F.asm
diff --git a/data/wildPokemon/mtmoonb1.asm b/data/wild/maps/MtMoonB1F.asm
index 5c0d8a53..5c0d8a53 100755
--- a/data/wildPokemon/mtmoonb1.asm
+++ b/data/wild/maps/MtMoonB1F.asm
diff --git a/data/wildPokemon/mtmoonb2.asm b/data/wild/maps/MtMoonB2F.asm
index cbf97e7e..cbf97e7e 100755
--- a/data/wildPokemon/mtmoonb2.asm
+++ b/data/wild/maps/MtMoonB2F.asm
diff --git a/data/wildPokemon/mansion1.asm b/data/wild/maps/PokemonMansion1F.asm
index 22ad032b..22ad032b 100755
--- a/data/wildPokemon/mansion1.asm
+++ b/data/wild/maps/PokemonMansion1F.asm
diff --git a/data/wildPokemon/mansion2.asm b/data/wild/maps/PokemonMansion2F.asm
index 985474fc..985474fc 100755
--- a/data/wildPokemon/mansion2.asm
+++ b/data/wild/maps/PokemonMansion2F.asm
diff --git a/data/wildPokemon/mansion3.asm b/data/wild/maps/PokemonMansion3F.asm
index 9c5521ae..9c5521ae 100755
--- a/data/wildPokemon/mansion3.asm
+++ b/data/wild/maps/PokemonMansion3F.asm
diff --git a/data/wildPokemon/mansionb1.asm b/data/wild/maps/PokemonMansionB1F.asm
index 83266ddd..83266ddd 100755
--- a/data/wildPokemon/mansionb1.asm
+++ b/data/wild/maps/PokemonMansionB1F.asm
diff --git a/data/wildPokemon/pokemontower1.asm b/data/wild/maps/PokemonTower1F.asm
index df951e70..df951e70 100755
--- a/data/wildPokemon/pokemontower1.asm
+++ b/data/wild/maps/PokemonTower1F.asm
diff --git a/data/wildPokemon/pokemontower2.asm b/data/wild/maps/PokemonTower2F.asm
index dcbe0da0..dcbe0da0 100755
--- a/data/wildPokemon/pokemontower2.asm
+++ b/data/wild/maps/PokemonTower2F.asm
diff --git a/data/wildPokemon/pokemontower3.asm b/data/wild/maps/PokemonTower3F.asm
index 135ed84f..135ed84f 100755
--- a/data/wildPokemon/pokemontower3.asm
+++ b/data/wild/maps/PokemonTower3F.asm
diff --git a/data/wildPokemon/pokemontower4.asm b/data/wild/maps/PokemonTower4F.asm
index 0c84b0cf..0c84b0cf 100755
--- a/data/wildPokemon/pokemontower4.asm
+++ b/data/wild/maps/PokemonTower4F.asm
diff --git a/data/wildPokemon/pokemontower5.asm b/data/wild/maps/PokemonTower5F.asm
index 440dbf8d..440dbf8d 100755
--- a/data/wildPokemon/pokemontower5.asm
+++ b/data/wild/maps/PokemonTower5F.asm
diff --git a/data/wildPokemon/pokemontower6.asm b/data/wild/maps/PokemonTower6F.asm
index 553fdb5d..553fdb5d 100755
--- a/data/wildPokemon/pokemontower6.asm
+++ b/data/wild/maps/PokemonTower6F.asm
diff --git a/data/wildPokemon/pokemontower7.asm b/data/wild/maps/PokemonTower7F.asm
index 0f7e66e9..0f7e66e9 100755
--- a/data/wildPokemon/pokemontower7.asm
+++ b/data/wild/maps/PokemonTower7F.asm
diff --git a/data/wildPokemon/powerplant.asm b/data/wild/maps/PowerPlant.asm
index 35eece95..35eece95 100755
--- a/data/wildPokemon/powerplant.asm
+++ b/data/wild/maps/PowerPlant.asm
diff --git a/data/wildPokemon/rocktunnel1.asm b/data/wild/maps/RockTunnel1F.asm
index a36f2092..a36f2092 100755
--- a/data/wildPokemon/rocktunnel1.asm
+++ b/data/wild/maps/RockTunnel1F.asm
diff --git a/data/wildPokemon/rocktunnel2.asm b/data/wild/maps/RockTunnelB1F.asm
index 2fc7ef94..2fc7ef94 100755
--- a/data/wildPokemon/rocktunnel2.asm
+++ b/data/wild/maps/RockTunnelB1F.asm
diff --git a/data/wildPokemon/route1.asm b/data/wild/maps/Route1.asm
index f618c34f..f618c34f 100755
--- a/data/wildPokemon/route1.asm
+++ b/data/wild/maps/Route1.asm
diff --git a/data/wildPokemon/route10.asm b/data/wild/maps/Route10.asm
index 34e0b5ee..34e0b5ee 100755
--- a/data/wildPokemon/route10.asm
+++ b/data/wild/maps/Route10.asm
diff --git a/data/wildPokemon/route11.asm b/data/wild/maps/Route11.asm
index 9e4e3644..9e4e3644 100755
--- a/data/wildPokemon/route11.asm
+++ b/data/wild/maps/Route11.asm
diff --git a/data/wildPokemon/route12.asm b/data/wild/maps/Route12.asm
index 45dfbc9d..45dfbc9d 100755
--- a/data/wildPokemon/route12.asm
+++ b/data/wild/maps/Route12.asm
diff --git a/data/wildPokemon/route13.asm b/data/wild/maps/Route13.asm
index 2a1a6cb5..2a1a6cb5 100755
--- a/data/wildPokemon/route13.asm
+++ b/data/wild/maps/Route13.asm
diff --git a/data/wildPokemon/route14.asm b/data/wild/maps/Route14.asm
index aad5aa48..aad5aa48 100755
--- a/data/wildPokemon/route14.asm
+++ b/data/wild/maps/Route14.asm
diff --git a/data/wildPokemon/route15.asm b/data/wild/maps/Route15.asm
index b4762230..b4762230 100755
--- a/data/wildPokemon/route15.asm
+++ b/data/wild/maps/Route15.asm
diff --git a/data/wildPokemon/route16.asm b/data/wild/maps/Route16.asm
index c2421c50..c2421c50 100755
--- a/data/wildPokemon/route16.asm
+++ b/data/wild/maps/Route16.asm
diff --git a/data/wildPokemon/route17.asm b/data/wild/maps/Route17.asm
index 8dffd9a3..8dffd9a3 100755
--- a/data/wildPokemon/route17.asm
+++ b/data/wild/maps/Route17.asm
diff --git a/data/wildPokemon/route18.asm b/data/wild/maps/Route18.asm
index 47bd247d..47bd247d 100755
--- a/data/wildPokemon/route18.asm
+++ b/data/wild/maps/Route18.asm
diff --git a/data/wildPokemon/route2.asm b/data/wild/maps/Route2.asm
index ad958ea5..ad958ea5 100755
--- a/data/wildPokemon/route2.asm
+++ b/data/wild/maps/Route2.asm
diff --git a/data/wildPokemon/route21.asm b/data/wild/maps/Route21.asm
index 3cc73ba0..3cc73ba0 100755
--- a/data/wildPokemon/route21.asm
+++ b/data/wild/maps/Route21.asm
diff --git a/data/wildPokemon/route22.asm b/data/wild/maps/Route22.asm
index 750a2f4e..750a2f4e 100755
--- a/data/wildPokemon/route22.asm
+++ b/data/wild/maps/Route22.asm
diff --git a/data/wildPokemon/route23.asm b/data/wild/maps/Route23.asm
index a057d24d..a057d24d 100755
--- a/data/wildPokemon/route23.asm
+++ b/data/wild/maps/Route23.asm
diff --git a/data/wildPokemon/route24.asm b/data/wild/maps/Route24.asm
index 3a745f36..3a745f36 100755
--- a/data/wildPokemon/route24.asm
+++ b/data/wild/maps/Route24.asm
diff --git a/data/wildPokemon/route25.asm b/data/wild/maps/Route25.asm
index 4884fa64..4884fa64 100755
--- a/data/wildPokemon/route25.asm
+++ b/data/wild/maps/Route25.asm
diff --git a/data/wildPokemon/route3.asm b/data/wild/maps/Route3.asm
index dea820a4..dea820a4 100755
--- a/data/wildPokemon/route3.asm
+++ b/data/wild/maps/Route3.asm
diff --git a/data/wildPokemon/route4.asm b/data/wild/maps/Route4.asm
index 624d58de..624d58de 100755
--- a/data/wildPokemon/route4.asm
+++ b/data/wild/maps/Route4.asm
diff --git a/data/wildPokemon/route5.asm b/data/wild/maps/Route5.asm
index cb8c583b..cb8c583b 100755
--- a/data/wildPokemon/route5.asm
+++ b/data/wild/maps/Route5.asm
diff --git a/data/wildPokemon/route6.asm b/data/wild/maps/Route6.asm
index 92512ffb..92512ffb 100755
--- a/data/wildPokemon/route6.asm
+++ b/data/wild/maps/Route6.asm
diff --git a/data/wildPokemon/route7.asm b/data/wild/maps/Route7.asm
index 559c98ee..559c98ee 100755
--- a/data/wildPokemon/route7.asm
+++ b/data/wild/maps/Route7.asm
diff --git a/data/wildPokemon/route8.asm b/data/wild/maps/Route8.asm
index 8a0bfa31..8a0bfa31 100755
--- a/data/wildPokemon/route8.asm
+++ b/data/wild/maps/Route8.asm
diff --git a/data/wildPokemon/route9.asm b/data/wild/maps/Route9.asm
index 716589b0..716589b0 100755
--- a/data/wildPokemon/route9.asm
+++ b/data/wild/maps/Route9.asm
diff --git a/data/wildPokemon/safarizonecenter.asm b/data/wild/maps/SafariZoneCenter.asm
index 0cd5323a..0cd5323a 100755
--- a/data/wildPokemon/safarizonecenter.asm
+++ b/data/wild/maps/SafariZoneCenter.asm
diff --git a/data/wildPokemon/safarizone1.asm b/data/wild/maps/SafariZoneEast.asm
index 3d77b6fe..3d77b6fe 100755
--- a/data/wildPokemon/safarizone1.asm
+++ b/data/wild/maps/SafariZoneEast.asm
diff --git a/data/wildPokemon/safarizone2.asm b/data/wild/maps/SafariZoneNorth.asm
index c1b6a547..c1b6a547 100755
--- a/data/wildPokemon/safarizone2.asm
+++ b/data/wild/maps/SafariZoneNorth.asm
diff --git a/data/wildPokemon/safarizone3.asm b/data/wild/maps/SafariZoneWest.asm
index 47b6a102..47b6a102 100755
--- a/data/wildPokemon/safarizone3.asm
+++ b/data/wild/maps/SafariZoneWest.asm
diff --git a/data/wildPokemon/waterpokemon.asm b/data/wild/maps/SeaRoutes.asm
index 07c6a187..07c6a187 100755
--- a/data/wildPokemon/waterpokemon.asm
+++ b/data/wild/maps/SeaRoutes.asm
diff --git a/data/wildPokemon/seafoamisland1.asm b/data/wild/maps/SeafoamIslands1F.asm
index 3c431f9a..3c431f9a 100755
--- a/data/wildPokemon/seafoamisland1.asm
+++ b/data/wild/maps/SeafoamIslands1F.asm
diff --git a/data/wildPokemon/seafoamislandb1.asm b/data/wild/maps/SeafoamIslandsB1F.asm
index 6f96f240..6f96f240 100755
--- a/data/wildPokemon/seafoamislandb1.asm
+++ b/data/wild/maps/SeafoamIslandsB1F.asm
diff --git a/data/wildPokemon/seafoamislandb2.asm b/data/wild/maps/SeafoamIslandsB2F.asm
index 7191fea9..7191fea9 100755
--- a/data/wildPokemon/seafoamislandb2.asm
+++ b/data/wild/maps/SeafoamIslandsB2F.asm
diff --git a/data/wildPokemon/seafoamislandb3.asm b/data/wild/maps/SeafoamIslandsB3F.asm
index 9778c0e9..9778c0e9 100755
--- a/data/wildPokemon/seafoamislandb3.asm
+++ b/data/wild/maps/SeafoamIslandsB3F.asm
diff --git a/data/wildPokemon/seafoamislandb4.asm b/data/wild/maps/SeafoamIslandsB4F.asm
index 3948470b..3948470b 100755
--- a/data/wildPokemon/seafoamislandb4.asm
+++ b/data/wild/maps/SeafoamIslandsB4F.asm
diff --git a/data/wildPokemon/victoryroad1.asm b/data/wild/maps/VictoryRoad1F.asm
index 60aae31a..60aae31a 100755
--- a/data/wildPokemon/victoryroad1.asm
+++ b/data/wild/maps/VictoryRoad1F.asm
diff --git a/data/wildPokemon/victoryroad2.asm b/data/wild/maps/VictoryRoad2F.asm
index 580d644d..580d644d 100755
--- a/data/wildPokemon/victoryroad2.asm
+++ b/data/wild/maps/VictoryRoad2F.asm
diff --git a/data/wildPokemon/victoryroad3.asm b/data/wild/maps/VictoryRoad3F.asm
index 80d7ef3e..80d7ef3e 100755
--- a/data/wildPokemon/victoryroad3.asm
+++ b/data/wild/maps/VictoryRoad3F.asm
diff --git a/data/wildPokemon/viridianforest.asm b/data/wild/maps/ViridianForest.asm
index ae9a5a70..ae9a5a70 100755
--- a/data/wildPokemon/viridianforest.asm
+++ b/data/wild/maps/ViridianForest.asm
diff --git a/data/wildPokemon/nomons.asm b/data/wild/maps/nothing.asm
index ce7f7ede..ce7f7ede 100755
--- a/data/wildPokemon/nomons.asm
+++ b/data/wild/maps/nothing.asm
diff --git a/data/wild_probabilities.asm b/data/wild/probabilities.asm
index 9d4704c6..9d4704c6 100644
--- a/data/wild_probabilities.asm
+++ b/data/wild/probabilities.asm
diff --git a/data/super_rod.asm b/data/wild/super_rod.asm
index d3d64632..d3d64632 100755
--- a/data/super_rod.asm
+++ b/data/wild/super_rod.asm
diff --git a/data/wild_mons.asm b/data/wild_mons.asm
deleted file mode 100755
index e089a582..00000000
--- a/data/wild_mons.asm
+++ /dev/null
@@ -1,321 +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 WaterMons ; ROUTE_19
- dw WaterMons ; 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 $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/waterpokemon.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/engine/battle/animations.asm b/engine/battle/animations.asm
index fcc3c99f..ee476ce9 100755
--- a/engine/battle/animations.asm
+++ b/engine/battle/animations.asm
@@ -163,7 +163,7 @@ DrawFrameBlock:
PlayAnimation:
xor a
- ld [$FF8B], a ; it looks like nothing reads this
+ ld [hROMBankTemp], a ; it looks like nothing reads this
ld [wSubAnimTransform], a
ld a, [wAnimationID] ; get animation number
dec a
@@ -308,7 +308,7 @@ LoadSubanimation:
; sets the transform to the subanimation type if it's the enemy's turn
GetSubanimationTransform1:
ld b, a
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, b
ret nz
@@ -319,7 +319,7 @@ GetSubanimationTransform1:
; 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
GetSubanimationTransform2:
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, 2 << 5
ret z
@@ -421,7 +421,7 @@ MoveAnimation:
ShareMoveAnimations:
; some moves just reuse animations from status conditions
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ret z
@@ -649,7 +649,7 @@ DoSpecialEffectByAnimationId:
pop hl
ret
-INCLUDE "data/move_animation_special_effects.asm"
+INCLUDE "data/moves/animation_special_effects.asm"
DoBallTossSpecialEffects:
ld a, [wcf91]
@@ -911,7 +911,7 @@ TailWhipAnimationUnused:
ld c, 20
jp DelayFrames
-INCLUDE "data/move_animation_pointers.asm"
+INCLUDE "data/moves/animation_special_effect_pointers.asm"
AnimationDelay10:
ld c, 10
@@ -920,16 +920,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]
+ ld a, [hWhoseTurn]
push af
xor 1
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
ld de, .returnAddress
push de
jp hl
.returnAddress
pop af
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
ret
; flashes the screen for an extended period (48 frames)
@@ -1133,7 +1133,7 @@ _AnimationWaterDroplets:
AnimationSlideMonUp:
; Slides the mon's sprite upwards.
ld c, 7
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
coord hl, 1, 6
coord de, 1, 5
@@ -1201,7 +1201,7 @@ _AnimationSlideMonUp:
jr nz, .slideLoop
; Fill in the bottom row of the mon pic with the next row's tile IDs.
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
coord hl, 1, 11
jr z, .next
@@ -1370,7 +1370,7 @@ 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]
+ ld a, [hWhoseTurn]
and a
coord hl, 0, 5
coord de, 2, 5
@@ -1418,7 +1418,7 @@ 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]
+ ld a, [hWhoseTurn]
and a
coord hl, 2, 5
jr z, .next
@@ -1434,7 +1434,7 @@ AnimationMoveMonHorizontally:
AnimationResetMonPosition:
; Resets the mon's sprites to be located at the normal coordinates.
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, 5 * SCREEN_WIDTH + 2
jr z, .next
@@ -1446,7 +1446,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]
+ ld a, [hWhoseTurn]
and a
jr z, .playerTurn
ld a, -40
@@ -1530,7 +1530,7 @@ AnimationSquishMonPic:
ld c, 4
.loop
push bc
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .playerTurn
coord hl, 16, 0
@@ -1583,7 +1583,7 @@ _AnimationSquishMonPic:
AnimationShootBallsUpward:
; Shoots one pillar of "energy" balls upwards. Used in Teleport/Sky Attack
; animations.
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .playerTurn
lb bc, 0, 16 * 8
@@ -1651,7 +1651,7 @@ _AnimationShootBallsUpward:
AnimationShootManyBallsUpward:
; Shoots several pillars of "energy" balls upward.
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld hl, UpwardBallsAnimXCoordinatesPlayerTurn
ld a, $50 ; y coordinate for "energy" ball pillar
@@ -1735,7 +1735,7 @@ AnimationSlideMonDownAndHide:
jr nz, .loop
call AnimationHideMonPic
ld hl, wTempPic
- ld bc, $0310
+ ld bc, $310
xor a
call FillMemory
jp CopyTempPicToMonPic
@@ -1743,7 +1743,7 @@ 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]
+ ld a, [hWhoseTurn]
and a
jr z, .playerTurn
coord hl, 12, 0
@@ -1758,7 +1758,7 @@ _AnimationSlideMonOff:
.rowLoop ; iterates once for each row
ld c, 8
.tileLoop ; iterates once for each tile in the row
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .playerTurn2
call .EnemyNextTile
@@ -1821,7 +1821,7 @@ AnimationSlideMonHalfOff:
jp Delay3
CopyTempPicToMonPic:
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld hl, vBackPic ; player turn
jr z, .next
@@ -1837,7 +1837,7 @@ AnimationWavyScreen:
call BattleAnimCopyTileMapToVRAM
call Delay3
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld a, SCREEN_HEIGHT_PIXELS
ld [hWY], a
ld d, $80 ; terminator
@@ -1865,7 +1865,7 @@ AnimationWavyScreen:
call SaveScreenTilesToBuffer2
call ClearScreen
ld a, 1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Delay3
call LoadScreenTilesFromBuffer2
ld hl, vBGMap1
@@ -1896,9 +1896,9 @@ 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]
+ ld a, [hWhoseTurn]
and a
jr z, .playerTurn
ld hl, SlowbroSprite ; facing down sprite
@@ -1932,12 +1932,12 @@ AnimationSubstitute:
jp AnimationShowMonPic
CopySlowbroSpriteData:
- ld bc, $0010
+ ld bc, $10
ld a, BANK(SlowbroSprite)
jp FarCopyData2
HideSubstituteShowMonAnim:
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld hl, wPlayerMonMinimized
ld a, [wPlayerBattleStatus2]
@@ -1987,7 +1987,7 @@ AnimationTransformMon:
ld [wChangeMonPicEnemyTurnSpecies], a
ChangeMonPic:
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .playerTurn
ld a, [wChangeMonPicEnemyTurnSpecies]
@@ -2020,11 +2020,11 @@ ChangeMonPic:
AnimationHideEnemyMonPic:
; Hides the enemy mon's sprite
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld hl, AnimationHideMonPic
call CallWithTurnFlipped
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
jp Delay3
InitMultipleObjectsOAM:
@@ -2050,7 +2050,7 @@ InitMultipleObjectsOAM:
AnimationHideMonPic:
; Hides the mon's sprite.
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .playerTurn
ld a, 12
@@ -2078,7 +2078,7 @@ ClearMonPicFromTileMap:
; in order to show only a portion of the mon sprite.
GetMonSpriteTileMapPointerFromRowCount:
push de
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr nz, .enemyTurn
ld a, 20 * 5 + 1
@@ -2166,7 +2166,7 @@ GetMoveSound:
ld b, a
call IsCryMove
jr nc, .NotCryMove
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr nz, .next
ld a, [wBattleMonSpecies] ; get number of current monster
@@ -2208,10 +2208,10 @@ IsCryMove:
scf
ret
-INCLUDE "data/move_sfx.asm"
+INCLUDE "data/moves/sfx.asm"
CopyPicTiles:
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, $31 ; base tile ID of player mon sprite
jr z, .next
@@ -2235,7 +2235,7 @@ CopyDownscaledMonTiles:
CopyTileIDs_NoBGTransfer:
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
; fall through
; b = number of rows
@@ -2261,7 +2261,7 @@ CopyTileIDs:
dec b
jr nz, .rowLoop
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
pop hl
ret
@@ -2624,9 +2624,9 @@ ShakeEnemyHUD_ShakeBG:
BattleAnimCopyTileMapToVRAM:
ld a, h
- ld [H_AUTOBGTRANSFERDEST + 1], a
+ ld [hAutoBGTransferDest + 1], a
ld a, l
- ld [H_AUTOBGTRANSFERDEST], a
+ ld [hAutoBGTransferDest], a
jp Delay3
TossBallAnimation:
diff --git a/engine/battle/battle_transitions.asm b/engine/battle/battle_transitions.asm
index 62b023b0..98e87dc0 100644
--- a/engine/battle/battle_transitions.asm
+++ b/engine/battle/battle_transitions.asm
@@ -1,6 +1,6 @@
BattleTransition:
ld a, 1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Delay3
xor a
ld [hWY], a
@@ -151,7 +151,7 @@ GetBattleTransitionID_IsDungeonMap:
res 2, c
ret
-INCLUDE "data/dungeon_maps.asm"
+INCLUDE "data/maps/dungeon_maps.asm"
LoadBattleTransitionTile:
ld hl, vChars1 + $7f0
@@ -349,7 +349,7 @@ BattleTransition_Shrink:
.loop
push bc
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
coord hl, 0, 7
coord de, 0, 8
ld bc, -SCREEN_WIDTH * 2
@@ -367,7 +367,7 @@ BattleTransition_Shrink:
ld bc, 2
call BattleTransition_CopyTiles2
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld c, 6
call DelayFrames
pop bc
@@ -381,7 +381,7 @@ BattleTransition_Shrink:
BattleTransition_Split:
ld c, SCREEN_HEIGHT / 2
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
.loop
push bc
coord hl, 0, 16
@@ -496,7 +496,7 @@ BattleTransition_VerticalStripes:
coord hl, 0, 0
coord de, 1, 17
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
.loop
push bc
push hl
@@ -535,7 +535,7 @@ BattleTransition_HorizontalStripes:
coord hl, 0, 0
coord de, 19, 1
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
.loop
push bc
push hl
@@ -582,7 +582,7 @@ BattleTransition_FlashScreen:
ld b, $3
call BattleTransition_FlashScreen_
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ret
BattleTransition_Circle_Sub1:
@@ -601,10 +601,10 @@ BattleTransition_Circle_Sub1:
BattleTransition_TransferDelay3:
ld a, 1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Delay3
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ret
; used for low level wild non-dungeon battles
diff --git a/engine/battle/common_text.asm b/engine/battle/common_text.asm
index e541d604..e8998414 100644
--- a/engine/battle/common_text.asm
+++ b/engine/battle/common_text.asm
@@ -101,16 +101,16 @@ PrintSendOutMonMessage:
ld hl, GoText
jr z, .printText
xor a
- ld [H_MULTIPLICAND], a
+ ld [hMultiplicand], a
ld hl, wEnemyMonHP
ld a, [hli]
ld [wLastSwitchInEnemyMonHP], a
- ld [H_MULTIPLICAND + 1], a
+ ld [hMultiplicand + 1], a
ld a, [hl]
ld [wLastSwitchInEnemyMonHP + 1], a
- ld [H_MULTIPLICAND + 2], a
+ ld [hMultiplicand + 2], a
ld a, 25
- ld [H_MULTIPLIER], a
+ ld [hMultiplier], a
call Multiply
ld hl, wEnemyMonMaxHP
ld a, [hli]
@@ -121,9 +121,9 @@ PrintSendOutMonMessage:
rr b
ld a, b
ld b, 4
- ld [H_DIVISOR], a ; enemy mon max HP divided by 4
+ ld [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
+ ld 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
@@ -179,14 +179,14 @@ PlayerMon2Text:
dec hl
ld a, [de]
sub b
- ld [H_MULTIPLICAND + 2], a
+ ld [hMultiplicand + 2], a
dec de
ld b, [hl]
ld a, [de]
sbc b
- ld [H_MULTIPLICAND + 1], a
+ ld [hMultiplicand + 1], a
ld a, 25
- ld [H_MULTIPLIER], a
+ ld [hMultiplier], a
call Multiply
ld hl, wEnemyMonMaxHP
ld a, [hli]
@@ -197,11 +197,11 @@ PlayerMon2Text:
rr b
ld a, b
ld b, 4
- ld [H_DIVISOR], a
+ ld [hDivisor], a
call Divide
pop bc
pop de
- ld a, [H_QUOTIENT + 3] ; a = ((LastSwitchInEnemyMonHP - CurrentEnemyMonHP) / 25) / (EnemyMonMaxHP / 4)
+ ld 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.
diff --git a/engine/battle/core.asm b/engine/battle/core.asm
index 75841ccf..6881aef5 100755
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -57,7 +57,7 @@ SlidePlayerAndEnemySilhouettesOnScreen:
ld [wUpdateSpritesEnabled], a
call Delay3
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld b, $70
ld c, $90
ld a, c
@@ -83,7 +83,7 @@ SlidePlayerAndEnemySilhouettesOnScreen:
dec c
jr nz, .slideSilhouettesLoop
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld a, $31
ld [hStartTileID], a
coord hl, 1, 5
@@ -92,7 +92,7 @@ SlidePlayerAndEnemySilhouettesOnScreen:
ld [hWY], a
ld [rWY], a
inc a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Delay3
ld b, SET_PAL_BATTLE
call RunPaletteCommand
@@ -266,7 +266,7 @@ EnemyRan:
ld a, SFX_RUN
call PlaySoundWaitForCurrent
xor a
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
jpab AnimationSlideEnemyMonOff
WildRanText:
@@ -412,7 +412,7 @@ MainInBattleLoop:
jr .playerMovesFirst
.enemyMovesFirst
ld a, $1
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
callab TrainerAI
jr c, .AIActionUsedEnemyFirst
call ExecuteEnemyMove
@@ -450,7 +450,7 @@ MainInBattleLoop:
jp z, HandlePlayerMonFainted
call DrawHUDsAndHPBars
ld a, $1
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
callab TrainerAI
jr c, .AIActionUsedPlayerFirst
call ExecuteEnemyMove
@@ -470,7 +470,7 @@ MainInBattleLoop:
HandlePoisonBurnLeechSeed:
ld hl, wBattleMonHP
ld de, wBattleMonStatus
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .playersTurn
ld hl, wEnemyMonHP
@@ -495,7 +495,7 @@ HandlePoisonBurnLeechSeed:
call HandlePoisonBurnLeechSeed_DecreaseOwnHP
.notBurnedOrPoisoned
ld de, wPlayerBattleStatus2
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .playersTurn2
ld de, wEnemyBattleStatus2
@@ -504,16 +504,16 @@ HandlePoisonBurnLeechSeed:
add a
jr nc, .notLeechSeeded
push hl
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
push af
xor $1
- ld [H_WHOSETURN], a
+ ld [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
+ ld [hWhoseTurn], a
pop hl
call HandlePoisonBurnLeechSeed_DecreaseOwnHP
call HandlePoisonBurnLeechSeed_IncreaseEnemyHP
@@ -571,7 +571,7 @@ HandlePoisonBurnLeechSeed_DecreaseOwnHP:
.nonZeroDamage
ld hl, wPlayerBattleStatus3
ld de, wPlayerToxicCounter
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .playersTurn
ld hl, wEnemyBattleStatus3
@@ -582,7 +582,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
@@ -618,7 +618,7 @@ HandlePoisonBurnLeechSeed_DecreaseOwnHP:
HandlePoisonBurnLeechSeed_IncreaseEnemyHP:
push hl
ld hl, wEnemyMonMaxHP
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .playersTurn
ld hl, wBattleMonMaxHP
@@ -655,19 +655,19 @@ HandlePoisonBurnLeechSeed_IncreaseEnemyHP:
ld [hl], a
ld [wHPBarNewHP], a
.noOverfullHeal
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
xor $1
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
call UpdateCurMonHPBar
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
xor $1
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
pop hl
ret
UpdateCurMonHPBar:
coord hl, 10, 9 ; tile pointer to player HP bar
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, $1
jr z, .playersTurn
@@ -958,7 +958,7 @@ TrainerDefeatedText:
PlayBattleVictoryMusic:
push af
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySoundWaitForCurrent
ld c, BANK(Music_DefeatedTrainer)
@@ -1177,7 +1177,7 @@ LinkBattleLostText:
db "@"
; 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
@@ -1230,7 +1230,7 @@ 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
ld c, a
@@ -1508,29 +1508,29 @@ TryRunningFromBattle:
inc a
ld [wNumRunAttempts], a
ld a, [hli]
- ld [H_MULTIPLICAND + 1], a
+ ld [hMultiplicand + 1], a
ld a, [hl]
- ld [H_MULTIPLICAND + 2], a
+ ld [hMultiplicand + 2], a
ld a, [de]
ld [hEnemySpeed], a
inc de
ld a, [de]
ld [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
+ ld [hMultiplicand], a
ld a, 32
- ld [H_MULTIPLIER], a
+ ld [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, [hProduct + 2]
+ ld [hDividend], a
+ ld a, [hProduct + 3]
+ ld [hDividend + 1], a
ld a, [hEnemySpeed]
ld b, a
ld a, [hEnemySpeed + 1]
@@ -1541,10 +1541,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)
+ ld [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]
+ ld a, [hQuotient + 2]
and a ; is the quotient greater than 256?
jr nz, .canEscape ; if so, the player can escape
ld a, [wNumRunAttempts]
@@ -1554,15 +1554,15 @@ TryRunningFromBattle:
dec c
jr z, .compareWithRandomValue
ld b, 30
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
add b
- ld [H_QUOTIENT + 3], a
+ ld [hQuotient + 3], a
jr c, .canEscape
jr .loop
.compareWithRandomValue
call BattleRandom
ld b, a
- ld a, [H_QUOTIENT + 3]
+ ld 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
@@ -1754,7 +1754,7 @@ SendOutMon:
ld hl, wEnemyBattleStatus1
res USING_TRAPPING_MOVE, [hl]
ld a, $1
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
ld a, POOF_ANIM
call PlayMoveAnimation
coord hl, 4, 11
@@ -1812,7 +1812,7 @@ DrawHUDsAndHPBars:
DrawPlayerHUDAndHPBar:
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
coord hl, 9, 7
lb bc, 5, 11
call ClearScreenArea
@@ -1845,7 +1845,7 @@ DrawPlayerHUDAndHPBar:
coord hl, 10, 9
predef DrawHP
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld hl, wPlayerHPBarColor
call GetBattleHealthBarColor
ld hl, wBattleMonHP
@@ -1873,7 +1873,7 @@ DrawPlayerHUDAndHPBar:
DrawEnemyHUDAndHPBar:
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
coord hl, 0, 0
lb bc, 4, 12
call ClearScreenArea
@@ -1895,9 +1895,9 @@ DrawEnemyHUDAndHPBar:
.skipPrintLevel
ld hl, wEnemyMonHP
ld a, [hli]
- ld [H_MULTIPLICAND + 1], a
+ ld [hMultiplicand + 1], a
ld a, [hld]
- ld [H_MULTIPLICAND + 2], a
+ ld [hMultiplicand + 2], a
or [hl] ; is current HP zero?
jr nz, .hpNonzero
; current HP is 0
@@ -1908,45 +1908,45 @@ DrawEnemyHUDAndHPBar:
jp .drawHPBar
.hpNonzero
xor a
- ld [H_MULTIPLICAND], a
+ ld [hMultiplicand], a
ld a, 48
- ld [H_MULTIPLIER], a
+ ld [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
+ ld [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]
+ ld a, [hDivisor]
srl b
rr a
srl b
rr a
- ld [H_DIVISOR], a
- ld a, [H_PRODUCT + 2]
+ ld [hDivisor], a
+ ld a, [hProduct + 2]
ld b, a
srl b
- ld a, [H_PRODUCT + 3]
+ ld a, [hProduct + 3]
rr a
srl b
rr a
- ld [H_PRODUCT + 3], a
+ ld [hProduct + 3], a
ld a, b
- ld [H_PRODUCT + 2], a
+ ld [hProduct + 2], a
.doDivide
- ld a, [H_PRODUCT + 2]
- ld [H_DIVIDEND], a
- ld a, [H_PRODUCT + 3]
- ld [H_DIVIDEND + 1], a
+ ld a, [hProduct + 2]
+ ld [hDividend], a
+ ld a, [hProduct + 3]
+ ld [hDividend + 1], a
ld a, $2
ld b, a
call Divide ; divide (current HP * 48) by max HP
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
; set variables for DrawHPBar
ld e, a
ld a, $6
@@ -1958,7 +1958,7 @@ DrawEnemyHUDAndHPBar:
coord hl, 2, 2
call DrawHPBar
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld hl, wEnemyHPBarColor
GetBattleHealthBarColor:
@@ -2469,13 +2469,13 @@ MoveSelectionMenu:
.writemoves
ld de, wMovesString
- ld a, [hFlags_0xFFF6]
+ ld a, [hFlagsFFF6]
set 2, a
- ld [hFlags_0xFFF6], a
+ ld [hFlagsFFF6], a
call PlaceString
- ld a, [hFlags_0xFFF6]
+ ld a, [hFlagsFFF6]
res 2, a
- ld [hFlags_0xFFF6], a
+ ld [hFlagsFFF6], a
ret
.regularmenu
@@ -2595,10 +2595,10 @@ SelectMenuItem:
call AddNTimes
ld [hl], "▷"
.select
- ld hl, hFlags_0xFFF6
+ ld hl, hFlagsFFF6
set 1, [hl]
call HandleMenuInput
- ld hl, hFlags_0xFFF6
+ ld hl, hFlagsFFF6
res 1, [hl]
bit 6, a
jp nz, SelectMenuItem_CursorUp ; up
@@ -2825,7 +2825,7 @@ SwapMovesInMenu:
PrintMenuItem:
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
coord hl, 0, 8
ld b, 3
ld c, 9
@@ -2847,7 +2847,7 @@ PrintMenuItem:
ld hl, wCurrentMenuItem
dec [hl]
xor a
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
ld hl, wBattleMonMoves
ld a, [wCurrentMenuItem]
ld c, a
@@ -2891,7 +2891,7 @@ PrintMenuItem:
predef PrintMoveType
.moveDisabled
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
jp Delay3
DisabledText:
@@ -3043,7 +3043,7 @@ LinkBattleExchangeData:
ExecutePlayerMove:
xor a
- ld [H_WHOSETURN], a ; set player's turn
+ ld [hWhoseTurn], a ; set player's turn
ld a, [wPlayerSelectedMove]
inc a
jp z, ExecutePlayerMoveDone ; for selected move = FF, skip most of player's turn
@@ -3252,7 +3252,7 @@ PrintGhostText:
; print the ghost battle messages
call IsGhostBattle
ret nz
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr nz, .Ghost
ld a, [wBattleMonStatus] ; player’s turn
@@ -3619,7 +3619,7 @@ CantMoveText:
PrintMoveIsDisabledText:
ld hl, wPlayerSelectedMove
ld de, wPlayerBattleStatus1
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .removeChargingUp
inc hl
@@ -3675,11 +3675,11 @@ HandleSelfConfusionDamage:
xor a
ld [wAnimationType], a
inc a
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
call PlayMoveAnimation
call DrawPlayerHUDAndHPBar
xor a
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
jp ApplyDamageToPlayerPokemon
PrintMonName1Text:
@@ -3694,7 +3694,7 @@ PrintMonName1Text:
MonName1Text:
TX_FAR _MonName1Text
TX_ASM
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, [wPlayerMoveNum]
ld hl, wPlayerUsedMove
@@ -3814,11 +3814,11 @@ DetermineExclamationPointTextNum:
pop bc
ret
-INCLUDE "data/move_grammar.asm"
+INCLUDE "data/moves/grammar.asm"
PrintMoveFailureText:
ld de, wPlayerMoveEffect
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .playersTurn
ld de, wEnemyMoveEffect
@@ -3866,7 +3866,7 @@ PrintMoveFailureText:
call PrintText
ld b, $4
predef PredefShakeScreenHorizontally
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr nz, .enemyTurn
jp ApplyDamageToPlayerPokemon
@@ -4139,7 +4139,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
@@ -4160,9 +4160,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]
+ ld a, [hProduct + 2]
ld b, a
- ld a, [H_PRODUCT + 3]
+ ld a, [hProduct + 3]
ld c, a
push bc
ld hl, wPartyMon1Attack
@@ -4192,9 +4192,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]
+ ld a, [hProduct + 2]
ld b, a
- ld a, [H_PRODUCT + 3]
+ ld a, [hProduct + 3]
ld c, a
push bc
ld hl, wPartyMon1Special
@@ -4252,7 +4252,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
@@ -4281,7 +4281,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
@@ -4313,7 +4313,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
@@ -4371,9 +4371,9 @@ GetEnemyMonStat:
ld bc, wEnemyMon2 - wEnemyMon1
call AddNTimes
ld a, [hli]
- ld [H_MULTIPLICAND + 1], a
+ ld [hMultiplicand + 1], a
ld a, [hl]
- ld [H_MULTIPLICAND + 2], a
+ ld [hMultiplicand + 2], a
pop bc
pop de
ret
@@ -4404,7 +4404,7 @@ CalculateDamage:
; d: base power
; e: level
- ld a, [H_WHOSETURN] ; whose turn?
+ ld a, [hWhoseTurn] ; whose turn?
and a
ld a, [wPlayerMoveEffect]
jr z, .effect
@@ -4436,7 +4436,7 @@ CalculateDamage:
.skipbp
xor a
- ld hl, H_DIVIDEND
+ ld hl, hDividend
ldi [hl], a
ldi [hl], a
ld [hl], a
@@ -4487,41 +4487,41 @@ CalculateDamage:
ld hl, wDamage
ld b, [hl]
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
add b
- ld [H_QUOTIENT + 3], a
+ ld [hQuotient + 3], a
jr nc, .asm_3dfd0
- ld a, [H_QUOTIENT + 2]
+ ld a, [hQuotient + 2]
inc a
- ld [H_QUOTIENT + 2], a
+ ld [hQuotient + 2], a
and a
jr z, .asm_3e004
.asm_3dfd0
- ld a, [H_QUOTIENT]
+ ld a, [hQuotient]
ld b, a
- ld a, [H_QUOTIENT + 1]
+ ld a, [hQuotient + 1]
or a
jr nz, .asm_3e004
- ld a, [H_QUOTIENT + 2]
+ ld a, [hQuotient + 2]
cp 998 / $100
jr c, .asm_3dfe8
cp 998 / $100 + 1
jr nc, .asm_3e004
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
cp 998 % $100
jr nc, .asm_3e004
.asm_3dfe8
inc hl
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
ld b, [hl]
add b
ld [hld], a
- ld a, [H_QUOTIENT + 2]
+ ld a, [hQuotient + 2]
ld b, [hl]
adc b
ld [hl], a
@@ -4573,7 +4573,7 @@ INCLUDE "data/battle/unused_critical_hit_moves.asm"
CriticalHitTest:
xor a
ld [wCriticalHitOrOHKO], a
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, [wEnemyMonSpecies]
jr nz, .handleEnemy
@@ -4584,7 +4584,7 @@ CriticalHitTest:
ld a, [wMonHBaseSpeed]
ld b, a
srl b ; (effective (base speed/2))
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld hl, wPlayerMovePower
ld de, wPlayerBattleStatus2
@@ -4646,7 +4646,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
+ ld a, [hWhoseTurn] ; whose turn
and a
; player's turn
ld hl, wEnemySelectedMove
@@ -4954,7 +4954,7 @@ AttackSubstitute:
; values for player turn
ld de, wEnemySubstituteHP
ld bc, wEnemyBattleStatus2
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .applyDamageToSubstitute
; values for enemy turn
@@ -4979,14 +4979,14 @@ AttackSubstitute:
ld hl, SubstituteBrokeText
call PrintText
; flip whose turn it is for the next function call
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
xor $01
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
callab HideSubstituteShowMonAnim ; animate the substitute breaking
; flip the turn back to the way it was
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
xor $01
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
ld hl, wPlayerMoveEffect ; value for player's turn
and a
jr z, .nullifyEffect
@@ -5010,7 +5010,7 @@ HandleBuildingRage:
ld hl, wEnemyBattleStatus2
ld de, wEnemyMonStatMods
ld bc, wEnemyMoveNum
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .next
; values for the enemy turn
@@ -5023,9 +5023,9 @@ HandleBuildingRage:
ld a, [de]
cp $0d ; maximum stat modifier value
ret z ; return if attack modifier is already maxed
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
xor $01 ; flip turn for the stat modifier raising function
- ld [H_WHOSETURN], a
+ ld [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
@@ -5042,9 +5042,9 @@ 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]
+ ld a, [hWhoseTurn]
xor $01 ; flip turn back to the way it was
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
ret
BuildingRageText:
@@ -5060,7 +5060,7 @@ MirrorMoveCopyMove:
; 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]
+ ld a, [hWhoseTurn]
and a
; values for player turn
ld a, [wEnemyUsedMove]
@@ -5113,7 +5113,7 @@ MetronomePickMove:
; values for player turn
ld de, wPlayerMoveNum
ld hl, wPlayerSelectedMove
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .pickMoveLoop
; values for enemy turn
@@ -5135,7 +5135,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]
+ ld a, [hWhoseTurn]
and a
; values for player turn
ld hl, wBattleMonPP
@@ -5154,7 +5154,7 @@ IncrementMovePP:
ld h, d
ld l, e
add hl, bc
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, [wPlayerMonNumber] ; value for player turn
jr z, .updatePP
@@ -5178,7 +5178,7 @@ AdjustDamageForMoveType:
ld e, [hl] ; e = type 2 of defender
ld a, [wPlayerMoveType]
ld [wMoveType], a
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .next
; values for enemy turn
@@ -5242,25 +5242,25 @@ AdjustDamageForMoveType:
and $80
ld b, a
ld a, [hl] ; a = damage multiplier
- ld [H_MULTIPLIER], a
+ ld [hMultiplier], a
add b
ld [wDamageMultipliers], a
xor a
- ld [H_MULTIPLICAND], a
+ ld [hMultiplicand], a
ld hl, wDamage
ld a, [hli]
- ld [H_MULTIPLICAND + 1], a
+ ld [hMultiplicand + 1], a
ld a, [hld]
- ld [H_MULTIPLICAND + 2], a
+ ld [hMultiplicand + 2], a
call Multiply
ld a, 10
- ld [H_DIVISOR], a
+ ld [hDivisor], a
ld b, $04
call Divide
- ld a, [H_QUOTIENT + 2]
+ ld a, [hQuotient + 2]
ld [hli], a
ld b, a
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
ld [hl], a
or b ; is damage 0?
jr nz, .skipTypeImmunity
@@ -5317,7 +5317,7 @@ AIGetTypeEffectiveness:
ld [wTypeEffectiveness], 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:
@@ -5325,7 +5325,7 @@ MoveHitTest:
ld hl, wEnemyBattleStatus1
ld de, wPlayerMoveEffect
ld bc, wEnemyMonStatus
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .dreamEaterCheck
; enemy's turn
@@ -5345,8 +5345,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
@@ -5354,7 +5354,7 @@ MoveHitTest:
.checkForDigOrFlyStatus
bit INVULNERABLE, [hl]
jp nz, .moveMissed
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr nz, .enemyTurn
.playerTurn
@@ -5408,7 +5408,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]
+ ld a, [hWhoseTurn]
and a
jr z, .doAccuracyCheck
ld a, [wEnemyMoveAccuracy]
@@ -5427,7 +5427,7 @@ MoveHitTest:
ld [hl], a
inc a
ld [wMoveMissed], a
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .playerTurn2
.enemyTurn2
@@ -5442,7 +5442,7 @@ MoveHitTest:
; values for player turn
CalcHitChance:
ld hl, wPlayerMoveAccuracy
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, [wPlayerMonAccuracyMod]
ld b, a
@@ -5462,10 +5462,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
+ ld [hMultiplicand], a
+ ld [hMultiplicand + 1], a
ld a, [hl]
- ld [H_MULTIPLICAND + 2], a ; set multiplicand to move accuracy
+ ld [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
@@ -5480,29 +5480,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
+ ld [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
+ ld [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]
+ ld a, [hQuotient + 3]
ld b, a
- ld a, [H_QUOTIENT + 2]
+ ld a, [hQuotient + 2]
or b
jp nz, .nextCalculation
; make sure the result is always at least one
- ld [H_QUOTIENT + 2], a
+ ld [hQuotient + 2], a
ld a, $01
- ld [H_QUOTIENT + 3], a
+ ld [hQuotient + 3], a
.nextCalculation
ld b, c
dec d
jr nz, .loop
- ld a, [H_QUOTIENT + 2]
+ ld a, [hQuotient + 2]
and a ; is the calculated hit chance over 0xFF?
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
jr z, .storeAccuracy
; if calculated hit chance over 0xFF
ld a, $ff ; set the hit chance to 0xFF
@@ -5522,29 +5522,29 @@ RandomizeDamage:
ret c ; return if damage is equal to 0 or 1
.DamageGreaterThanOne
xor a
- ld [H_MULTIPLICAND], a
+ ld [hMultiplicand], a
dec hl
ld a, [hli]
- ld [H_MULTIPLICAND + 1], a
+ ld [hMultiplicand + 1], a
ld a, [hl]
- ld [H_MULTIPLICAND + 2], a
+ ld [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
+ ld [hMultiplier], a
call Multiply ; multiply damage by the random number, which is in the range [217, 255]
ld a, 255
- ld [H_DIVISOR], a
+ ld [hDivisor], a
ld b, $4
call Divide ; divide the result by 255
; store the modified damage
- ld a, [H_QUOTIENT + 2]
+ ld a, [hQuotient + 2]
ld hl, wDamage
ld [hli], a
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
ld [hl], a
ret
@@ -5900,11 +5900,11 @@ CheckEnemyStatusConditions:
ld [hl], a
xor a
ld [wAnimationType], a
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
ld a, POUND
call PlayMoveAnimation
ld a, $1
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
call ApplyDamageToEnemyPokemon
jr .monHurtItselfOrFullyParalysed
.checkIfTriedToUseDisabledMove
@@ -6051,7 +6051,7 @@ CheckEnemyStatusConditions:
ret
GetCurrentMove:
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jp z, .player
ld de, wEnemyMoveNum
@@ -6257,13 +6257,13 @@ DoBattleTransitionAndInitBattleVariables:
predef BattleTransition
callab LoadHudAndHpBarAndStatusTilePatterns
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld a, $ff
ld [wUpdateSpritesEnabled], a
call ClearSprites
call ClearScreen
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld [hWY], a
ld [rWY], a
ld [hTilesetType], a
@@ -6335,17 +6335,17 @@ LoadPlayerBackPic:
ld de, vBackPic
call InterlaceMergeSpriteBuffers
ld a, $a
- ld [$0], a
+ ld [MBC1SRamEnable], a
xor a
- ld [$4000], a
+ ld [MBC1SRamBank], a
ld hl, vSprites
ld de, sSpriteBuffer1
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
ld b, a
ld c, 7 * 7
call CopyVideoData
xor a
- ld [$0], a
+ ld [MBC1SRamEnable], a
ld a, $31
ld [hStartTileID], a
coord hl, 1, 5
@@ -6367,12 +6367,12 @@ ApplyBurnAndParalysisPenaltiesToEnemy:
xor a
ApplyBurnAndParalysisPenalties:
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
call QuarterSpeedDueToParalysis
jp HalveAttackDueToBurn
QuarterSpeedDueToParalysis:
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .playerTurn
.enemyTurn ; quarter the player's speed
@@ -6415,7 +6415,7 @@ QuarterSpeedDueToParalysis:
ret
HalveAttackDueToBurn:
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .playerTurn
.enemyTurn ; halve the player's attack
@@ -6505,35 +6505,35 @@ CalculateModifiedStat:
ld b, 0
add hl, bc
xor a
- ld [H_MULTIPLICAND], a
+ ld [hMultiplicand], a
ld a, [de]
- ld [H_MULTIPLICAND + 1], a
+ ld [hMultiplicand + 1], a
inc de
ld a, [de]
- ld [H_MULTIPLICAND + 2], a
+ ld [hMultiplicand + 2], a
ld a, [hli]
- ld [H_MULTIPLIER], a
+ ld [hMultiplier], a
call Multiply
ld a, [hl]
- ld [H_DIVISOR], a
+ ld [hDivisor], a
ld b, $4
call Divide
pop hl
- ld a, [H_DIVIDEND + 3]
+ ld a, [hDividend + 3]
sub 999 % $100
- ld a, [H_DIVIDEND + 2]
+ ld a, [hDividend + 2]
sbc 999 / $100
jp c, .storeNewStatValue
; cap the stat at 999
ld a, 999 / $100
- ld [H_DIVIDEND + 2], a
+ ld [hDividend + 2], a
ld a, 999 % $100
- ld [H_DIVIDEND + 3], a
+ ld [hDividend + 3], a
.storeNewStatValue
- ld a, [H_DIVIDEND + 2]
+ ld a, [hDividend + 2]
ld [hli], a
ld b, a
- ld a, [H_DIVIDEND + 3]
+ ld a, [hDividend + 3]
ld [hl], a
or b
jr nz, .done
@@ -6683,7 +6683,7 @@ BattleRandom:
HandleExplodingAnimation:
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld hl, wEnemyMonType1
ld de, wEnemyBattleStatus1
@@ -6826,18 +6826,18 @@ _InitBattleCommon:
call RunPaletteCommand
call SlidePlayerAndEnemySilhouettesOnScreen
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld hl, .emptyString
call PrintText
call SaveScreenTilesToBuffer1
call ClearScreen
ld a, $98
- ld [H_AUTOBGTRANSFERDEST + 1], a
+ ld [hAutoBGTransferDest + 1], a
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Delay3
ld a, $9c
- ld [H_AUTOBGTRANSFERDEST + 1], a
+ ld [hAutoBGTransferDest + 1], a
call LoadScreenTilesFromBuffer1
coord hl, 9, 7
lb bc, 5, 10
@@ -6870,9 +6870,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
@@ -6998,6 +6998,6 @@ LoadMonBackPic:
ld hl, vSprites
ld de, vBackPic
ld c, (2*SPRITEBUFFERSIZE)/16 ; count of 16-byte chunks to be copied
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
ld b, a
jp CopyVideoData
diff --git a/engine/battle/effects.asm b/engine/battle/effects.asm
index 8bb22a1c..0a1eb61c 100644
--- a/engine/battle/effects.asm
+++ b/engine/battle/effects.asm
@@ -4,7 +4,7 @@ JumpMoveEffect:
ret
_JumpMoveEffect:
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, [wPlayerMoveEffect]
jr z, .next1
@@ -21,12 +21,12 @@ _JumpMoveEffect:
ld l, a
jp hl ; jump to special effect handler
-INCLUDE "data/effects_pointers.asm"
+INCLUDE "data/moves/effects_pointers.asm"
SleepEffect:
ld de, wEnemyMonStatus
ld bc, wEnemyBattleStatus2
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jp z, .sleepEffect
ld de, wBattleMonStatus
@@ -78,7 +78,7 @@ AlreadyAsleepText:
PoisonEffect:
ld hl, wEnemyMonStatus
ld de, wPlayerMoveEffect
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .poisonEffect
ld hl, wBattleMonStatus
@@ -121,7 +121,7 @@ PoisonEffect:
set 3, [hl] ; mon is now poisoned
push de
dec de
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld b, ANIM_C7
ld hl, wPlayerBattleStatus3
@@ -175,7 +175,7 @@ DrainHPEffect:
ExplodeEffect:
ld hl, wBattleMonHP
ld de, wPlayerBattleStatus2
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .faintUser
ld hl, wEnemyMonHP
@@ -196,7 +196,7 @@ FreezeBurnParalyzeEffect:
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]
+ ld a, [hWhoseTurn]
and a
jp nz, opponentAttacker
ld a, [wEnemyMonStatus]
@@ -308,7 +308,7 @@ 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]
+ ld a, [hWhoseTurn]
and a
jr nz, .opponent
;player [attacker]
@@ -346,7 +346,7 @@ FireDefrostedText:
StatModifierUpEffect:
ld hl, wPlayerMonStatMods
ld de, wPlayerMoveEffect
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .statModifierUpEffect
ld hl, wEnemyMonStatMods
@@ -382,7 +382,7 @@ StatModifierUpEffect:
push hl
ld hl, wBattleMonAttack + 1
ld de, wPlayerMonUnmodifiedAttack
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .pointToStats
ld hl, wEnemyMonAttack + 1
@@ -417,35 +417,35 @@ StatModifierUpEffect:
add hl, bc
pop bc
xor a
- ld [H_MULTIPLICAND], a
+ ld [hMultiplicand], a
ld a, [de]
- ld [H_MULTIPLICAND + 1], a
+ ld [hMultiplicand + 1], a
inc de
ld a, [de]
- ld [H_MULTIPLICAND + 2], a
+ ld [hMultiplicand + 2], a
ld a, [hli]
- ld [H_MULTIPLIER], a
+ ld [hMultiplier], a
call Multiply
ld a, [hl]
- ld [H_DIVISOR], a
+ ld [hDivisor], a
ld b, $4
call Divide
pop hl
; cap at 999
- ld a, [H_PRODUCT + 3]
+ ld a, [hProduct + 3]
sub 999 % $100
- ld a, [H_PRODUCT + 2]
+ ld a, [hProduct + 2]
sbc 999 / $100
jp c, UpdateStat
ld a, 999 / $100
- ld [H_MULTIPLICAND + 1], a
+ ld [hMultiplicand + 1], a
ld a, 999 % $100
- ld [H_MULTIPLICAND + 2], a
+ ld [hMultiplicand + 2], a
UpdateStat:
- ld a, [H_PRODUCT + 2]
+ ld a, [hProduct + 2]
ld [hli], a
- ld a, [H_PRODUCT + 3]
+ ld a, [hProduct + 3]
ld [hl], a
pop hl
UpdateStatDone:
@@ -455,7 +455,7 @@ UpdateStatDone:
ld hl, wPlayerBattleStatus2
ld de, wPlayerMoveNum
ld bc, wPlayerMonMinimized
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .asm_3f4e6
ld hl, wEnemyBattleStatus2
@@ -488,7 +488,7 @@ UpdateStatDone:
pop af
call nz, Bankswitch
.applyBadgeBoostsAndStatusPenalties
- ld a, [H_WHOSETURN]
+ ld 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)
@@ -511,7 +511,7 @@ MonsStatsRoseText:
TX_FAR _MonsStatsRoseText
TX_ASM
ld hl, GreatlyRoseText
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, [wPlayerMoveEffect]
jr z, .playerTurn
@@ -534,7 +534,7 @@ StatModifierDownEffect:
ld hl, wEnemyMonStatMods
ld de, wPlayerMoveEffect
ld bc, wEnemyBattleStatus1
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .statModifierDownEffect
ld hl, wPlayerMonStatMods
@@ -601,7 +601,7 @@ StatModifierDownEffect:
push de
ld hl, wEnemyMonAttack + 1
ld de, wEnemyMonUnmodifiedAttack
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .pointToStat
ld hl, wBattleMonAttack + 1
@@ -637,33 +637,33 @@ StatModifierDownEffect:
add hl, bc
pop bc
xor a
- ld [H_MULTIPLICAND], a
+ ld [hMultiplicand], a
ld a, [de]
- ld [H_MULTIPLICAND + 1], a
+ ld [hMultiplicand + 1], a
inc de
ld a, [de]
- ld [H_MULTIPLICAND + 2], a
+ ld [hMultiplicand + 2], a
ld a, [hli]
- ld [H_MULTIPLIER], a
+ ld [hMultiplier], a
call Multiply
ld a, [hl]
- ld [H_DIVISOR], a
+ ld [hDivisor], a
ld b, $4
call Divide
pop hl
- ld a, [H_PRODUCT + 3]
+ ld a, [hProduct + 3]
ld b, a
- ld a, [H_PRODUCT + 2]
+ ld a, [hProduct + 2]
or b
jp nz, UpdateLoweredStat
- ld [H_MULTIPLICAND + 1], a
+ ld [hMultiplicand + 1], a
ld a, $1
- ld [H_MULTIPLICAND + 2], a
+ ld [hMultiplicand + 2], a
UpdateLoweredStat:
- ld a, [H_PRODUCT + 2]
+ ld a, [hProduct + 2]
ld [hli], a
- ld a, [H_PRODUCT + 3]
+ ld a, [hProduct + 3]
ld [hl], a
pop de
pop hl
@@ -678,7 +678,7 @@ UpdateLoweredStatDone:
jr nc, .ApplyBadgeBoostsAndStatusPenalties
call PlayCurrentMoveAnimation2
.ApplyBadgeBoostsAndStatusPenalties
- ld a, [H_WHOSETURN]
+ ld 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)
@@ -713,7 +713,7 @@ MonsStatsFellText:
TX_FAR _MonsStatsFellText
TX_ASM
ld hl, FellText
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, [wPlayerMoveEffect]
jr z, .playerTurn
@@ -751,7 +751,7 @@ PrintStatText:
ld bc, $a
jp CopyData
-INCLUDE "text/stat_names.asm"
+INCLUDE "data/battle/stat_names.asm"
INCLUDE "data/battle/stat_modifiers.asm"
@@ -759,7 +759,7 @@ BideEffect:
ld hl, wPlayerBattleStatus1
ld de, wPlayerBideAccumulatedDamage
ld bc, wPlayerNumAttacksLeft
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .bideEffect
ld hl, wEnemyBattleStatus1
@@ -778,14 +778,14 @@ BideEffect:
inc a
inc a
ld [bc], a ; set Bide counter to 2 or 3 at random
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
add XSTATITEM_ANIM
jp PlayBattleAnimation2
ThrashPetalDanceEffect:
ld hl, wPlayerBattleStatus1
ld de, wPlayerNumAttacksLeft
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .thrashPetalDanceEffect
ld hl, wEnemyBattleStatus1
@@ -797,12 +797,12 @@ ThrashPetalDanceEffect:
inc a
inc a
ld [de], a ; set thrash/petal dance counter to 2 or 3 at random
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
add ANIM_B0
jp PlayBattleAnimation2
SwitchAndTeleportEffect:
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr nz, .handleEnemy
ld a, [wIsInBattle]
@@ -920,7 +920,7 @@ TwoToFiveAttacksEffect:
ld hl, wPlayerBattleStatus1
ld de, wPlayerNumAttacksLeft
ld bc, wPlayerNumHits
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .twoToFiveAttacksEffect
ld hl, wEnemyBattleStatus1
@@ -931,7 +931,7 @@ TwoToFiveAttacksEffect:
ret nz
set ATTACKING_MULTIPLE_TIMES, [hl] ; mon is now attacking multiple times
ld hl, wPlayerMoveEffect
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .setNumberOfHits
ld hl, wEnemyMoveEffect
@@ -967,7 +967,7 @@ FlinchSideEffect:
ret nz
ld hl, wEnemyBattleStatus1
ld de, wPlayerMoveEffect
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .flinchSideEffect
ld hl, wPlayerBattleStatus1
@@ -992,7 +992,7 @@ OneHitKOEffect:
ChargeEffect:
ld hl, wPlayerBattleStatus1
ld de, wPlayerMoveEffect
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld b, XSTATITEM_ANIM
jr z, .chargeEffect
@@ -1074,7 +1074,7 @@ DugAHoleText:
TrappingEffect:
ld hl, wPlayerBattleStatus1
ld de, wPlayerNumAttacksLeft
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .trappingEffect
ld hl, wEnemyBattleStatus1
@@ -1120,7 +1120,7 @@ ConfusionEffect:
jr nz, ConfusionEffectFailed
ConfusionSideEffectSuccess:
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld hl, wEnemyBattleStatus1
ld bc, wEnemyConfusedCounter
@@ -1164,7 +1164,7 @@ SubstituteEffect:
HyperBeamEffect:
ld hl, wPlayerBattleStatus2
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .hyperBeamEffect
ld hl, wEnemyBattleStatus2
@@ -1175,7 +1175,7 @@ HyperBeamEffect:
ClearHyperBeam:
push hl
ld hl, wEnemyBattleStatus2
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .playerTurn
ld hl, wPlayerBattleStatus2
@@ -1186,7 +1186,7 @@ ClearHyperBeam:
RageEffect:
ld hl, wPlayerBattleStatus2
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .player
ld hl, wEnemyBattleStatus2
@@ -1201,7 +1201,7 @@ MimicEffect:
ld a, [wMoveMissed]
and a
jr nz, .mimicMissed
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld hl, wBattleMonMoves
ld a, [wPlayerBattleStatus1]
@@ -1226,7 +1226,7 @@ MimicEffect:
and a
jr z, .getRandomMove
ld d, a
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld hl, wBattleMonMoves
ld a, [wPlayerMoveListIndex]
@@ -1284,7 +1284,7 @@ DisableEffect:
jr nz, .moveMissed
ld de, wEnemyDisabledMove
ld hl, wEnemyMonMoves
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .disableEffect
ld de, wPlayerDisabledMove
@@ -1307,7 +1307,7 @@ DisableEffect:
jr z, .pickMoveToDisable ; loop until a non-00 move slot is found
ld [wd11e], a ; store move number
push hl
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld hl, wBattleMonPP
jr nz, .enemyTurn
@@ -1345,7 +1345,7 @@ DisableEffect:
ld [de], a
call PlayCurrentMoveAnimation2
ld hl, wPlayerDisabledMoveNumber
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr nz, .printDisableText
inc hl ; wEnemyDisabledMoveNumber
@@ -1430,7 +1430,7 @@ ParalyzedMayNotAttackText:
CheckTargetSubstitute:
push hl
ld hl, wEnemyBattleStatus2
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .next1
ld hl, wPlayerBattleStatus2
@@ -1442,7 +1442,7 @@ CheckTargetSubstitute:
PlayCurrentMoveAnimation2:
; animation at MOVENUM will be played unless MOVENUM is 0
; plays wAnimationType 3 or 6
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, [wPlayerMoveNum]
jr z, .notEnemyTurn
@@ -1454,7 +1454,7 @@ PlayCurrentMoveAnimation2:
PlayBattleAnimation2:
; play animation ID at a and animation type 6 or 3
ld [wAnimationID], a
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, $6
jr z, .storeAnimationType
@@ -1468,7 +1468,7 @@ PlayCurrentMoveAnimation:
; resets wAnimationType
xor a
ld [wAnimationType], a
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, [wPlayerMoveNum]
jr z, .notEnemyTurn
diff --git a/engine/battle/experience.asm b/engine/battle/experience.asm
index 24748338..c628ae32 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
+ ld [hMultiplicand], a
+ ld [hMultiplicand + 1], a
ld a, [wEnemyMonBaseExp]
- ld [H_MULTIPLICAND + 2], a
+ ld [hMultiplicand + 2], a
ld a, [wEnemyMonLevel]
- ld [H_MULTIPLIER], a
+ ld [hMultiplier], a
call Multiply
ld a, 7
- ld [H_DIVISOR], a
+ ld [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]
+ ld a, [hQuotient + 3]
ld [wExpAmountGained + 1], a
add b
ld [hld], a
ld b, [hl]
- ld a, [H_QUOTIENT + 2]
+ ld a, [hQuotient + 2]
ld [wExpAmountGained], a
adc b
ld [hl], a
@@ -311,14 +311,14 @@ DivideExpDataByNumMonsGainingExp:
ld c, wEnemyMonBaseExp + 1 - wEnemyMonBaseStats
.divideLoop
xor a
- ld [H_DIVIDEND], a
+ ld [hDividend], a
ld a, [hl]
- ld [H_DIVIDEND + 1], a
+ ld [hDividend + 1], a
ld a, [wd11e]
- ld [H_DIVISOR], a
+ ld [hDivisor], a
ld b, $2
call Divide ; divide value by number of mons gaining exp
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
ld [hli], a
dec c
jr nz, .divideLoop
@@ -326,17 +326,17 @@ DivideExpDataByNumMonsGainingExp:
; multiplies exp by 1.5
BoostExp:
- ld a, [H_QUOTIENT + 2]
+ ld a, [hQuotient + 2]
ld b, a
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
ld c, a
srl b
rr c
add c
- ld [H_QUOTIENT + 3], a
- ld a, [H_QUOTIENT + 2]
+ ld [hQuotient + 3], a
+ ld a, [hQuotient + 2]
adc b
- ld [H_QUOTIENT + 2], a
+ ld [hQuotient + 2], a
ret
GainedText:
diff --git a/engine/battle/ghost_marowak_anim.asm b/engine/battle/ghost_marowak_anim.asm
index 7adb20d8..28f536ca 100644
--- a/engine/battle/ghost_marowak_anim.asm
+++ b/engine/battle/ghost_marowak_anim.asm
@@ -9,12 +9,12 @@ MarowakAnim:
call ClearScreenArea
call Delay3
xor a
- ld [H_AUTOBGTRANSFERENABLED], a ; disable BG transfer so we don't see the Marowak too soon
+ ld [hAutoBGTransferEnabled], a ; disable BG transfer so we don't see the Marowak too soon
; replace ghost pic with Marowak in BG
ld a, MAROWAK
ld [wChangeMonPicEnemyTurnSpecies], a
ld a, $1
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
callab ChangeMonPic
; alternate between black and light grey 8 times.
; this makes the ghost's body appear to flash
@@ -44,7 +44,7 @@ MarowakAnim:
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
+ ld [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/move_effects/conversion.asm b/engine/battle/move_effects/conversion.asm
index f23c3d70..8c41f914 100644
--- a/engine/battle/move_effects/conversion.asm
+++ b/engine/battle/move_effects/conversion.asm
@@ -1,7 +1,7 @@
ConversionEffect_:
ld hl, wEnemyMonType1
ld de, wBattleMonType1
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, [wEnemyBattleStatus1]
jr z, .conversionEffect
diff --git a/engine/battle/move_effects/drain_hp.asm b/engine/battle/move_effects/drain_hp.asm
index e5f4681a..60d23a95 100644
--- a/engine/battle/move_effects/drain_hp.asm
+++ b/engine/battle/move_effects/drain_hp.asm
@@ -14,7 +14,7 @@ DrainHPEffect_:
.getAttackerHP
ld hl, wBattleMonHP
ld de, wBattleMonMaxHP
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jp z, .addDamageToAttackerHP
ld hl, wEnemyMonHP
@@ -69,7 +69,7 @@ DrainHPEffect_:
ld [wHPBarNewHP+1], a
inc de
.next
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
coord hl, 10, 9
ld a, $1
@@ -83,7 +83,7 @@ DrainHPEffect_:
predef DrawEnemyHUDAndHPBar
callab ReadPlayerMonCurHPAndStatus
ld hl, SuckedHealthText
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, [wPlayerMoveEffect]
jr z, .next3
diff --git a/engine/battle/move_effects/focus_energy.asm b/engine/battle/move_effects/focus_energy.asm
index 16dad7bb..af4a6521 100644
--- a/engine/battle/move_effects/focus_energy.asm
+++ b/engine/battle/move_effects/focus_energy.asm
@@ -1,6 +1,6 @@
FocusEnergyEffect_:
ld hl, wPlayerBattleStatus2
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .notEnemy
ld hl, wEnemyBattleStatus2
diff --git a/engine/battle/move_effects/haze.asm b/engine/battle/move_effects/haze.asm
index 47723ba2..bd73d249 100644
--- a/engine/battle/move_effects/haze.asm
+++ b/engine/battle/move_effects/haze.asm
@@ -15,7 +15,7 @@ HazeEffect_:
; cure non-volatile status, but only for the target
ld hl, wEnemyMonStatus
ld de, wEnemySelectedMove
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .cureStatuses
ld hl, wBattleMonStatus
diff --git a/engine/battle/move_effects/heal.asm b/engine/battle/move_effects/heal.asm
index 2e68acc0..8042bc63 100644
--- a/engine/battle/move_effects/heal.asm
+++ b/engine/battle/move_effects/heal.asm
@@ -1,5 +1,5 @@
HealEffect_:
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld de, wBattleMonHP
ld hl, wBattleMonMaxHP
@@ -27,7 +27,7 @@ HealEffect_:
ld c, 50
call DelayFrames
ld hl, wBattleMonStatus
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .restEffect
ld hl, wEnemyMonStatus
@@ -87,7 +87,7 @@ HealEffect_:
.playAnim
ld hl, PlayCurrentMoveAnimation
call BankswitchEtoF
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
coord hl, 10, 9
ld a, $1
diff --git a/engine/battle/move_effects/leech_seed.asm b/engine/battle/move_effects/leech_seed.asm
index f4d3ee9c..981f5da9 100644
--- a/engine/battle/move_effects/leech_seed.asm
+++ b/engine/battle/move_effects/leech_seed.asm
@@ -5,7 +5,7 @@ LeechSeedEffect_:
jr nz, .moveMissed
ld hl, wEnemyBattleStatus2
ld de, wEnemyMonType1
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .leechSeedEffect
ld hl, wPlayerBattleStatus2
diff --git a/engine/battle/move_effects/mist.asm b/engine/battle/move_effects/mist.asm
index 65070a3e..6373770d 100644
--- a/engine/battle/move_effects/mist.asm
+++ b/engine/battle/move_effects/mist.asm
@@ -1,6 +1,6 @@
MistEffect_:
ld hl, wPlayerBattleStatus2
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .mistEffect
ld hl, wEnemyBattleStatus2
diff --git a/engine/battle/move_effects/one_hit_ko.asm b/engine/battle/move_effects/one_hit_ko.asm
index 827e2197..347a4c7b 100644
--- a/engine/battle/move_effects/one_hit_ko.asm
+++ b/engine/battle/move_effects/one_hit_ko.asm
@@ -7,7 +7,7 @@ OneHitKOEffect_:
ld [wCriticalHitOrOHKO], a
ld hl, wBattleMonSpeed + 1
ld de, wEnemyMonSpeed + 1
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .compareSpeed
ld hl, wEnemyMonSpeed + 1
diff --git a/engine/battle/move_effects/paralyze.asm b/engine/battle/move_effects/paralyze.asm
index 95979ae6..b01aa5cf 100644
--- a/engine/battle/move_effects/paralyze.asm
+++ b/engine/battle/move_effects/paralyze.asm
@@ -1,7 +1,7 @@
ParalyzeEffect_:
ld hl, wEnemyMonStatus
ld de, wPlayerMoveType
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jp z, .next
ld hl, wBattleMonStatus
diff --git a/engine/battle/move_effects/pay_day.asm b/engine/battle/move_effects/pay_day.asm
index e5daf014..5bdb86da 100644
--- a/engine/battle/move_effects/pay_day.asm
+++ b/engine/battle/move_effects/pay_day.asm
@@ -2,7 +2,7 @@ PayDayEffect_:
xor a
ld hl, wcd6d
ld [hli], a
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, [wBattleMonLevel]
jr z, .payDayEffect
@@ -10,28 +10,28 @@ PayDayEffect_:
.payDayEffect
; level * 2
add a
- ld [H_DIVIDEND + 3], a
+ ld [hDividend + 3], a
xor a
- ld [H_DIVIDEND], a
- ld [H_DIVIDEND + 1], a
- ld [H_DIVIDEND + 2], a
+ ld [hDividend], a
+ ld [hDividend + 1], a
+ ld [hDividend + 2], a
; convert to BCD
ld a, 100
- ld [H_DIVISOR], a
+ ld [hDivisor], a
ld b, $4
call Divide
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
ld [hli], a
- ld a, [H_REMAINDER]
- ld [H_DIVIDEND + 3], a
+ ld a, [hRemainder]
+ ld [hDividend + 3], a
ld a, 10
- ld [H_DIVISOR], a
+ ld [hDivisor], a
ld b, $4
call Divide
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
swap a
ld b, a
- ld a, [H_REMAINDER]
+ ld a, [hRemainder]
add b
ld [hl], a
ld de, wTotalPayDayMoney + 2
diff --git a/engine/battle/move_effects/recoil.asm b/engine/battle/move_effects/recoil.asm
index 0f2f087b..e94f8043 100644
--- a/engine/battle/move_effects/recoil.asm
+++ b/engine/battle/move_effects/recoil.asm
@@ -1,5 +1,5 @@
RecoilEffect_:
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, [wPlayerMoveNum]
ld hl, wBattleMonMaxHP
@@ -54,7 +54,7 @@ RecoilEffect_:
ld [hl], a
.getHPBarCoords
coord hl, 10, 9
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
ld a, $1
jr z, .updateHPBar
diff --git a/engine/battle/move_effects/reflect_light_screen.asm b/engine/battle/move_effects/reflect_light_screen.asm
index 2805a969..7693a348 100644
--- a/engine/battle/move_effects/reflect_light_screen.asm
+++ b/engine/battle/move_effects/reflect_light_screen.asm
@@ -1,7 +1,7 @@
ReflectLightScreenEffect_:
ld hl, wPlayerBattleStatus3
ld de, wPlayerMoveEffect
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .reflectLightScreenEffect
ld hl, wEnemyBattleStatus3
diff --git a/engine/battle/move_effects/substitute.asm b/engine/battle/move_effects/substitute.asm
index 1bb6c887..a1cd11b2 100644
--- a/engine/battle/move_effects/substitute.asm
+++ b/engine/battle/move_effects/substitute.asm
@@ -4,7 +4,7 @@ SubstituteEffect_:
ld hl, wBattleMonMaxHP
ld de, wPlayerSubstituteHP
ld bc, wPlayerBattleStatus2
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .notEnemy
ld hl, wEnemyMonMaxHP
diff --git a/engine/battle/move_effects/transform.asm b/engine/battle/move_effects/transform.asm
index 9a5de9cc..1b459910 100644
--- a/engine/battle/move_effects/transform.asm
+++ b/engine/battle/move_effects/transform.asm
@@ -3,7 +3,7 @@ TransformEffect_:
ld de, wEnemyMonSpecies
ld bc, wEnemyBattleStatus3
ld a, [wEnemyBattleStatus1]
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr nz, .hitTest
ld hl, wEnemyMonSpecies
@@ -18,7 +18,7 @@ TransformEffect_:
push de
push bc
ld hl, wPlayerBattleStatus2
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .transformEffect
ld hl, wEnemyBattleStatus2
@@ -64,7 +64,7 @@ TransformEffect_:
inc bc
inc bc
call CopyData
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .next
; save enemy mon DVs at wTransformedEnemyMonOriginalDVs
@@ -128,7 +128,7 @@ TransformEffect_:
jp PrintText
.copyBasedOnTurn
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
and a
jr z, .gotStatsOrModsToCopy
push hl
diff --git a/engine/battle/print_type.asm b/engine/battle/print_type.asm
index f717f871..7da0dc8c 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/save_trainer_name.asm b/engine/battle/save_trainer_name.asm
index 78e53b87..4d40fd82 100644
--- a/engine/battle/save_trainer_name.asm
+++ b/engine/battle/save_trainer_name.asm
@@ -18,4 +18,4 @@ SaveTrainerName::
jr nz, .CopyCharacter
ret
-INCLUDE "text/trainer_name_pointers.asm"
+INCLUDE "data/trainers/name_pointers.asm"
diff --git a/engine/battle/scale_sprites.asm b/engine/battle/scale_sprites.asm
index 98521528..11967ba1 100644
--- a/engine/battle/scale_sprites.asm
+++ b/engine/battle/scale_sprites.asm
@@ -17,7 +17,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
@@ -32,7 +32,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
@@ -41,16 +41,16 @@ ScaleFirstThreeSpriteColumnsByTwo:
ScaleLastSpriteColumnByTwo:
ld a, 4*8 - 4 ; $1c, 4 tiles minus 4 unused rows
- ld [H_SPRITEINTERLACECOUNTER], a
+ ld [hSpriteInterlaceCounter], a
ld bc, -1
.columnInnerLoop
ld a, [de]
dec de
swap a ; only high nybble contains information
call ScalePixelsByTwo
- ld a, [H_SPRITEINTERLACECOUNTER]
+ ld a, [hSpriteInterlaceCounter]
dec a
- ld [H_SPRITEINTERLACECOUNTER], a
+ ld [hSpriteInterlaceCounter], a
jr nz, .columnInnerLoop
dec de ; skip last 4 rows of new column
dec de
diff --git a/engine/battle/trainer_ai.asm b/engine/battle/trainer_ai.asm
index 2850b9c2..d61b44f8 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
@@ -273,19 +273,19 @@ ReadMove:
pop hl
ret
-INCLUDE "data/trainer_move_choices.asm"
+INCLUDE "data/trainers/move_choices.asm"
-INCLUDE "data/trainer_pic_money_pointers.asm"
+INCLUDE "data/trainers/pic_pointers_money.asm"
-INCLUDE "text/trainer_names.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:
and a
@@ -319,7 +319,7 @@ TrainerAI:
call Random
jp hl
-INCLUDE "data/trainer_ai_pointers.asm"
+INCLUDE "data/trainers/ai_pointers.asm"
JugglerAI:
cp 25 percent + 1
@@ -655,17 +655,17 @@ AIUseDireHit: ; unused
AICheckIfHPBelowFraction:
; return carry if enemy trainer's current HP is below 1 / a of the maximum
- ld [H_DIVISOR], a
+ ld [hDivisor], a
ld hl, wEnemyMonMaxHP
ld a, [hli]
- ld [H_DIVIDEND], a
+ ld [hDividend], a
ld a, [hl]
- ld [H_DIVIDEND + 1], a
+ ld [hDividend + 1], a
ld b, 2
call Divide
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
ld c, a
- ld a, [H_QUOTIENT + 2]
+ ld a, [hQuotient + 2]
ld b, a
ld hl, wEnemyMonHP + 1
ld a, [hld]
diff --git a/engine/battle/unused_stats_functions.asm b/engine/battle/unused_stats_functions.asm
index 55f78fd3..fb3422c7 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]
+ ld 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]
+ ld 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 93409051..9d6fcb8d 100644
--- a/engine/battle/wild_encounters.asm
+++ b/engine/battle/wild_encounters.asm
@@ -101,4 +101,4 @@ TryDoWildEncounter:
xor a
ret
-INCLUDE "data/wild_probabilities.asm"
+INCLUDE "data/wild/probabilities.asm"
diff --git a/engine/debug/test_battle.asm b/engine/debug/test_battle.asm
index d9dcf1fa..92d6e4a9 100644
--- a/engine/debug/test_battle.asm
+++ b/engine/debug/test_battle.asm
@@ -41,5 +41,5 @@ TestBattle:
; do it all again.
ld a, 1
ld [wUpdateSpritesEnabled], a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
jr .loop
diff --git a/engine/events/cinnabar_lab.asm b/engine/events/cinnabar_lab.asm
index e642840d..e1598f98 100755
--- a/engine/events/cinnabar_lab.asm
+++ b/engine/events/cinnabar_lab.asm
@@ -35,7 +35,7 @@ GiveFossilToCinnabarLab::
ld e, a
add hl, de
ld a, [hl]
- ld [$ffdb], a
+ ld [hItemToRemoveID], a
cp DOME_FOSSIL
jr z, .choseDomeFossil
cp HELIX_FOSSIL
diff --git a/engine/events/diploma.asm b/engine/events/diploma.asm
index e53ef58f..53d78e57 100755
--- a/engine/events/diploma.asm
+++ b/engine/events/diploma.asm
@@ -9,7 +9,7 @@ DisplayDiploma::
call DisableLCD
ld hl, CircleTile
ld de, vChars2 + $700
- ld bc, $0010
+ ld bc, $10
ld a, BANK(CircleTile)
call FarCopyData2
coord hl, 0, 0
@@ -73,7 +73,7 @@ UnusedPlayerNameLengthFunc:
; Unused function that does a calculation involving the length of the player's
; name.
ld hl, wPlayerName
- ld bc, $ff00
+ lb bc, $ff, $00
.loop
ld a, [hli]
cp "@"
diff --git a/engine/events/hidden_items.asm b/engine/events/hidden_items.asm
index e40b0ac7..ad954c9f 100755
--- a/engine/events/hidden_items.asm
+++ b/engine/events/hidden_items.asm
@@ -18,7 +18,7 @@ HiddenItems:
call GetItemName
tx_pre_jump FoundHiddenItemText
-INCLUDE "data/hidden_item_coords.asm"
+INCLUDE "data/events/hidden_item_coords.asm"
FoundHiddenItemText::
TX_FAR _FoundHiddenItemText
@@ -118,7 +118,7 @@ HiddenCoins:
.done
jp PrintPredefTextID
-INCLUDE "data/hidden_coins.asm"
+INCLUDE "data/events/hidden_coins.asm"
FoundHiddenCoinsText::
TX_FAR _FoundHiddenCoinsText
diff --git a/engine/events/hidden_object_functions14.asm b/engine/events/hidden_object_functions14.asm
deleted file mode 100755
index 9e14c6a7..00000000
--- a/engine/events/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, [wSpriteStateData1 + 9]
- cp SPRITE_FACING_UP
- ret nz
- call EnableAutoTextBoxDrawing
- tx_pre_jump IndigoPlateauHQText
-
-IndigoPlateauHQText::
- TX_FAR _IndigoPlateauHQText
- db "@"
diff --git a/engine/events/hidden_object_functions17.asm b/engine/events/hidden_object_functions17.asm
deleted file mode 100755
index bb2a358c..00000000
--- a/engine/events/hidden_object_functions17.asm
+++ /dev/null
@@ -1,475 +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, [wSpriteStateData1 + 9]
- cp SPRITE_FACING_UP
- ret nz
- call EnableAutoTextBoxDrawing
- tx_pre Route15UpstairsBinocularsText
- ld a, ARTICUNO
- ld [wcf91], a
- call PlayCry
- jp DisplayMonFrontSpriteInBox
-
-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 "@"
-
-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
- ld b, 8
- ld c, 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
-
- ld hl, GymTrashCans
- ld a, [wGymTrashCanIndex]
- ; * 5
- ld b, a
- add a
- add a
- add b
-
- ld d, 0
- ld e, a
- add hl, de
- ld a, [hli]
-
-; There is a bug in this code. It should calculate a value in the range [0, 3]
-; but if the mask and random number don't have any 1 bits in common, then
-; the result of the AND will be 0. When 1 is subtracted from that, the value
-; will become $ff. This will result in 255 being added to hl, which will cause
-; hl to point to one of the zero bytes that pad the end of the ROM bank.
-; Trash can 0 was intended to be able to have the second lock only when the
-; first lock was in trash can 1 or 3. However, due to this bug, trash can 0 can
-; have the second lock regardless of which trash can had the first lock.
-
- ld [hGymTrashCanRandNumMask], a
- push hl
- call Random
- swap a
- ld b, a
- ld a, [hGymTrashCanRandNumMask]
- and b
- dec a
- pop hl
-
- ld d, 0
- ld e, a
- add hl, de
- ld a, [hl]
- and $f
- ld [wSecondLockTrashCanIndex], a
-
- tx_pre_id VermilionGymTrashSuccessText1
- jr .done
-
-.trySecondLock
- ld a, [wSecondLockTrashCanIndex]
- ld b, a
- ld a, [wGymTrashCanIndex]
- 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
-; (but see the comment above explaining a bug regarding this)
-; Note that the mask is simply the number of valid trash can indices that
-; follow. The remaining bytes are filled with 0 to pad the length of each entry
-; to 5 bytes.
- db 2, 1, 3, 0, 0 ; 0
- db 3, 0, 2, 4, 0 ; 1
- db 2, 1, 5, 0, 0 ; 2
- db 3, 0, 4, 6, 0 ; 3
- db 4, 1, 3, 5, 7 ; 4
- db 3, 2, 4, 8, 0 ; 5
- db 3, 3, 7, 9, 0 ; 6
- db 4, 4, 6, 8, 10 ; 7
- db 3, 5, 7, 11, 0 ; 8
- db 3, 6, 10, 12, 0 ; 9
- db 4, 7, 9, 11, 13 ; 10
- db 3, 8, 10, 14, 0 ; 11
- db 2, 9, 13, 0, 0 ; 12
- db 3, 10, 12, 14, 0 ; 13
- db 2, 11, 13, 0, 0 ; 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/events/hidden_object_functions18.asm b/engine/events/hidden_object_functions18.asm
deleted file mode 100755
index c0e5aa34..00000000
--- a/engine/events/hidden_object_functions18.asm
+++ /dev/null
@@ -1,198 +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, [wSpriteStateData1 + 9]
- 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, [wSpriteStateData1 + 9]
- 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 $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, [wSpriteStateData1 + 9]
- 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/events/hidden_object_functions3.asm b/engine/events/hidden_object_functions3.asm
deleted file mode 100755
index 1237e960..00000000
--- a/engine/events/hidden_object_functions3.asm
+++ /dev/null
@@ -1,117 +0,0 @@
-; prints text for bookshelves in buildings without sign events
-PrintBookshelfText::
- ld a, [wSpriteStateData1 + 9] ; 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
-
-INCLUDE "data/bookshelf_tile_ids.asm"
-
-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/events/hidden_object_functions7.asm b/engine/events/hidden_object_functions7.asm
deleted file mode 100755
index e18b9570..00000000
--- a/engine/events/hidden_object_functions7.asm
+++ /dev/null
@@ -1,467 +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
- dec a
- call PlaySound
- 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, [wSpriteStateData1 + 9]
- cp SPRITE_FACING_UP
- ret nz
- call EnableAutoTextBoxDrawing
- tx_pre_jump CinnabarGymQuiz
-
-CinnabarGymQuiz::
- TX_ASM
- xor a
- ld [wOpponentAfterWrongAnswer], a
- ld a, [wHiddenObjectFunctionArgument]
- push af
- and $f
- ld [hGymGateIndex], a
- pop af
- and $f0
- swap a
- ld [$ffdc], a
- ld hl, CinnabarGymQuizIntroText
- 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
-
-CinnabarGymQuizIntroText:
- TX_FAR _CinnabarGymQuizIntroText
- 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 "@"
-
-CinnabarGymGateFlagAction:
- EventFlagAddress hl, EVENT_CINNABAR_GYM_GATE0_UNLOCKED
- predef_jump FlagActionPredef
-
-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
- 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 "@"
-
-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
- predef ReplaceTileBlock
- ld hl, hGymGateIndex
- dec [hl]
- jr nz, .loop
- 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
-
-PrintMagazinesText:
- call EnableAutoTextBoxDrawing
- tx_pre MagazinesText
- ret
-
-MagazinesText::
- TX_FAR _MagazinesText
- db "@"
-
-BillsHousePC:
- call EnableAutoTextBoxDrawing
- ld a, [wSpriteStateData1 + 9]
- 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
- ld a, $ff
- ld [wNewSoundID], a
- call PlaySound
- 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
- ld b, 10
- ld c, 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, [wSpriteStateData1 + 9]
- cp SPRITE_FACING_UP
- ret nz
- call EnableAutoTextBoxDrawing
- tx_pre_jump OakLabEmailText
-
-OakLabEmailText::
- TX_FAR _OakLabEmailText
- db "@"
diff --git a/engine/events/hidden_objects/bench_guys.asm b/engine/events/hidden_objects/bench_guys.asm
new file mode 100644
index 00000000..995b5929
--- /dev/null
+++ b/engine/events/hidden_objects/bench_guys.asm
@@ -0,0 +1,124 @@
+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, [wSpriteStateData1 + 9]
+ 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 $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 "@"
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 00000000..836aace0
--- /dev/null
+++ b/engine/events/hidden_objects/bills_house_pc.asm
@@ -0,0 +1,134 @@
+BillsHousePC:
+ call EnableAutoTextBoxDrawing
+ ld a, [wSpriteStateData1 + 9]
+ 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
+ ld a, SFX_STOP_ALL_MUSIC
+ ld [wNewSoundID], a
+ call PlaySound
+ 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
+ ld b, 10
+ ld c, 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 "@"
diff --git a/engine/events/hidden_objects/blues_room.asm b/engine/events/hidden_objects/blues_room.asm
new file mode 100644
index 00000000..879a7ac8
--- /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::
+ TX_FAR _BookcaseText
+ db "@"
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 00000000..2d6f278a
--- /dev/null
+++ b/engine/events/hidden_objects/book_or_sculpture.asm
@@ -0,0 +1,21 @@
+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 "@"
diff --git a/engine/events/hidden_objects/bookshelves.asm b/engine/events/hidden_objects/bookshelves.asm
new file mode 100644
index 00000000..eaf744ff
--- /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, [wSpriteStateData1 + 9] ; 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 [hFFDB], a
+ ret
+.nextBookshelfEntry1
+ inc hl
+.nextBookshelfEntry2
+ inc hl
+ jr .loop
+.noMatch
+ ld a, $ff
+ ld [hFFDB], a
+ jpba 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 00000000..6404717e
--- /dev/null
+++ b/engine/events/hidden_objects/cinnabar_gym_quiz.asm
@@ -0,0 +1,194 @@
+PrintCinnabarQuiz:
+ ld a, [wSpriteStateData1 + 9]
+ cp SPRITE_FACING_UP
+ ret nz
+ call EnableAutoTextBoxDrawing
+ tx_pre_jump CinnabarGymQuiz
+
+CinnabarGymQuiz::
+ TX_ASM
+ xor a
+ ld [wOpponentAfterWrongAnswer], a
+ ld a, [wHiddenObjectFunctionArgument]
+ push af
+ and $f
+ ld [hGymGateIndex], a
+ pop af
+ and $f0
+ swap a
+ ld [hGymGateAnswer], a
+ ld hl, CinnabarGymQuizIntroText
+ 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
+
+CinnabarGymQuizIntroText:
+ TX_FAR _CinnabarGymQuizIntroText
+ 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 "@"
+
+CinnabarGymGateFlagAction:
+ EventFlagAddress hl, EVENT_CINNABAR_GYM_GATE0_UNLOCKED
+ predef_jump FlagActionPredef
+
+CinnabarGymQuiz_1ea92:
+ call YesNoChoice
+ ld a, [hGymGateAnswer]
+ ld c, a
+ ld a, [wCurrentMenuItem]
+ cp c
+ jr nz, .wrongAnswer
+ ld hl, wCurrentMapScriptFlags
+ set 5, [hl]
+ ld a, [hGymGateIndex]
+ ld [hBackupGymGateIndex], a
+ ld hl, CinnabarGymQuizCorrectText
+ call PrintText
+ ld 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
+ 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
+ ret
+
+CinnabarGymQuizCorrectText:
+ TX_SFX_ITEM_1
+ TX_FAR _CinnabarGymQuizCorrectText
+ TX_BLINK
+ TX_ASM
+
+ ld 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:
+ TX_FAR _CinnabarGymQuizIncorrectText
+ db "@"
+
+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 [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
+ predef ReplaceTileBlock
+ ld hl, hGymGateIndex
+ dec [hl]
+ jr nz, .loop
+ 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
diff --git a/engine/events/hidden_objects/elevator.asm b/engine/events/hidden_objects/elevator.asm
new file mode 100644
index 00000000..e72ca44b
--- /dev/null
+++ b/engine/events/hidden_objects/elevator.asm
@@ -0,0 +1,3 @@
+ElevatorText::
+ TX_FAR _ElevatorText
+ db "@"
diff --git a/engine/events/hidden_objects/fighting_dojo.asm b/engine/events/hidden_objects/fighting_dojo.asm
new file mode 100644
index 00000000..94d4871d
--- /dev/null
+++ b/engine/events/hidden_objects/fighting_dojo.asm
@@ -0,0 +1,23 @@
+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 "@"
diff --git a/engine/events/hidden_objects/gym_statues.asm b/engine/events/hidden_objects/gym_statues.asm
new file mode 100644
index 00000000..e9a407b2
--- /dev/null
+++ b/engine/events/hidden_objects/gym_statues.asm
@@ -0,0 +1,48 @@
+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, [wSpriteStateData1 + 9]
+ 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 "@"
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 00000000..d0d0b8c2
--- /dev/null
+++ b/engine/events/hidden_objects/indigo_plateau_hq.asm
@@ -0,0 +1,10 @@
+PrintIndigoPlateauHQText:
+ ld a, [wSpriteStateData1 + 9]
+ cp SPRITE_FACING_UP
+ ret nz
+ call EnableAutoTextBoxDrawing
+ tx_pre_jump IndigoPlateauHQText
+
+IndigoPlateauHQText::
+ TX_FAR _IndigoPlateauHQText
+ db "@"
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 00000000..62b31e0a
--- /dev/null
+++ b/engine/events/hidden_objects/indigo_plateau_statues.asm
@@ -0,0 +1,24 @@
+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 "@"
diff --git a/engine/events/hidden_objects/magazines.asm b/engine/events/hidden_objects/magazines.asm
new file mode 100644
index 00000000..af31b317
--- /dev/null
+++ b/engine/events/hidden_objects/magazines.asm
@@ -0,0 +1,8 @@
+PrintMagazinesText:
+ call EnableAutoTextBoxDrawing
+ tx_pre MagazinesText
+ ret
+
+MagazinesText::
+ TX_FAR _MagazinesText
+ db "@"
diff --git a/engine/events/hidden_objects/museum_fossils.asm b/engine/events/hidden_objects/museum_fossils.asm
new file mode 100644
index 00000000..8636418c
--- /dev/null
+++ b/engine/events/hidden_objects/museum_fossils.asm
@@ -0,0 +1,52 @@
+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 "@"
+
+DisplayMonFrontSpriteInBox:
+; Displays a pokemon's front sprite in a pop-up window.
+; [wcf91] = pokemon internal id number
+ ld a, 1
+ ld [hAutoBGTransferEnabled], 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
diff --git a/engine/events/hidden_objects/new_bike.asm b/engine/events/hidden_objects/new_bike.asm
new file mode 100644
index 00000000..7836262e
--- /dev/null
+++ b/engine/events/hidden_objects/new_bike.asm
@@ -0,0 +1,7 @@
+PrintNewBikeText:
+ call EnableAutoTextBoxDrawing
+ tx_pre_jump NewBicycleText
+
+NewBicycleText::
+ TX_FAR _NewBicycleText
+ db "@"
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 00000000..c59ff9ac
--- /dev/null
+++ b/engine/events/hidden_objects/oaks_lab_email.asm
@@ -0,0 +1,10 @@
+DisplayOakLabEmailText:
+ ld a, [wSpriteStateData1 + 9]
+ cp SPRITE_FACING_UP
+ ret nz
+ call EnableAutoTextBoxDrawing
+ tx_pre_jump OakLabEmailText
+
+OakLabEmailText::
+ TX_FAR _OakLabEmailText
+ db "@"
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 00000000..0fe21cf3
--- /dev/null
+++ b/engine/events/hidden_objects/oaks_lab_posters.asm
@@ -0,0 +1,29 @@
+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 "@"
diff --git a/engine/events/hidden_objects/pokecenter_pc.asm b/engine/events/hidden_objects/pokecenter_pc.asm
new file mode 100644
index 00000000..c1225d3a
--- /dev/null
+++ b/engine/events/hidden_objects/pokecenter_pc.asm
@@ -0,0 +1,11 @@
+OpenPokemonCenterPC:
+ ld a, [wSpriteStateData1 + 9]
+ 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/events/hidden_objects/pokemon_stuff.asm b/engine/events/hidden_objects/pokemon_stuff.asm
new file mode 100644
index 00000000..b78b2500
--- /dev/null
+++ b/engine/events/hidden_objects/pokemon_stuff.asm
@@ -0,0 +1,3 @@
+PokemonStuffText::
+ TX_FAR _PokemonStuffText
+ db "@"
diff --git a/engine/events/hidden_objects/reds_room.asm b/engine/events/hidden_objects/reds_room.asm
new file mode 100644
index 00000000..b124f9c6
--- /dev/null
+++ b/engine/events/hidden_objects/reds_room.asm
@@ -0,0 +1,14 @@
+PrintRedSNESText:
+ call EnableAutoTextBoxDrawing
+ tx_pre_jump RedBedroomSNESText
+
+RedBedroomSNESText::
+ TX_FAR _RedBedroomSNESText
+ db "@"
+
+OpenRedsPC:
+ call EnableAutoTextBoxDrawing
+ tx_pre_jump RedBedroomPCText
+
+RedBedroomPCText::
+ TX_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 00000000..b380bb33
--- /dev/null
+++ b/engine/events/hidden_objects/route_15_binoculars.asm
@@ -0,0 +1,14 @@
+Route15GateLeftBinoculars:
+ ld a, [wSpriteStateData1 + 9]
+ cp SPRITE_FACING_UP
+ ret nz
+ call EnableAutoTextBoxDrawing
+ tx_pre Route15UpstairsBinocularsText
+ ld a, ARTICUNO
+ ld [wcf91], a
+ call PlayCry
+ jp DisplayMonFrontSpriteInBox
+
+Route15UpstairsBinocularsText::
+ TX_FAR _Route15UpstairsBinocularsText
+ db "@"
diff --git a/engine/events/hidden_objects/safari_game.asm b/engine/events/hidden_objects/safari_game.asm
new file mode 100644
index 00000000..68fc943f
--- /dev/null
+++ b/engine/events/hidden_objects/safari_game.asm
@@ -0,0 +1,79 @@
+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
+ dec a ; SFX_STOP_ALL_MUSIC
+ call PlaySound
+ 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 "@"
diff --git a/engine/events/hidden_objects/school_blackboard.asm b/engine/events/hidden_objects/school_blackboard.asm
new file mode 100644
index 00000000..4cd48d23
--- /dev/null
+++ b/engine/events/hidden_objects/school_blackboard.asm
@@ -0,0 +1,222 @@
+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
+ ld b, 8
+ ld c, 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 "@"
diff --git a/engine/events/hidden_objects/school_notebooks.asm b/engine/events/hidden_objects/school_notebooks.asm
new file mode 100644
index 00000000..f5cc1341
--- /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::
+ 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 "@"
diff --git a/engine/events/hidden_objects/town_map.asm b/engine/events/hidden_objects/town_map.asm
new file mode 100644
index 00000000..31e75d0d
--- /dev/null
+++ b/engine/events/hidden_objects/town_map.asm
@@ -0,0 +1,22 @@
+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 [hAutoBGTransferEnabled], a
+ call LoadFontTilePatterns
+ callba DisplayTownMap
+ ld hl, wd730
+ res 6, [hl]
+ ld de, TextScriptEnd
+ push de
+ ld 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 00000000..c2d22cd5
--- /dev/null
+++ b/engine/events/hidden_objects/vermilion_gym_trash.asm
@@ -0,0 +1,169 @@
+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
+
+ ld hl, GymTrashCans
+ ld a, [wGymTrashCanIndex]
+ ; * 5
+ ld b, a
+ add a
+ add a
+ add b
+
+ ld d, 0
+ ld e, a
+ add hl, de
+ ld a, [hli]
+
+; There is a bug in this code. It should calculate a value in the range [0, 3]
+; but if the mask and random number don't have any 1 bits in common, then
+; the result of the AND will be 0. When 1 is subtracted from that, the value
+; will become $ff. This will result in 255 being added to hl, which will cause
+; hl to point to one of the zero bytes that pad the end of the ROM bank.
+; Trash can 0 was intended to be able to have the second lock only when the
+; first lock was in trash can 1 or 3. However, due to this bug, trash can 0 can
+; have the second lock regardless of which trash can had the first lock.
+
+ ld [hGymTrashCanRandNumMask], a
+ push hl
+ call Random
+ swap a
+ ld b, a
+ ld a, [hGymTrashCanRandNumMask]
+ and b
+ dec a
+ pop hl
+
+ ld d, 0
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ and $f
+ ld [wSecondLockTrashCanIndex], a
+
+ tx_pre_id VermilionGymTrashSuccessText1
+ jr .done
+
+.trySecondLock
+ ld a, [wSecondLockTrashCanIndex]
+ ld b, a
+ ld a, [wGymTrashCanIndex]
+ 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
+; (but see the comment above explaining a bug regarding this)
+; Note that the mask is simply the number of valid trash can indices that
+; follow. The remaining bytes are filled with 0 to pad the length of each entry
+; to 5 bytes.
+ db 2, 1, 3, 0, 0 ; 0
+ db 3, 0, 2, 4, 0 ; 1
+ db 2, 1, 5, 0, 0 ; 2
+ db 3, 0, 4, 6, 0 ; 3
+ db 4, 1, 3, 5, 7 ; 4
+ db 3, 2, 4, 8, 0 ; 5
+ db 3, 3, 7, 9, 0 ; 6
+ db 4, 4, 6, 8, 10 ; 7
+ db 3, 5, 7, 11, 0 ; 8
+ db 3, 6, 10, 12, 0 ; 9
+ db 4, 7, 9, 11, 13 ; 10
+ db 3, 8, 10, 14, 0 ; 11
+ db 2, 9, 13, 0, 0 ; 12
+ db 3, 10, 12, 14, 0 ; 13
+ db 2, 11, 13, 0, 0 ; 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/events/in_game_trades.asm b/engine/events/in_game_trades.asm
index c01bc3c3..c1466485 100755
--- a/engine/events/in_game_trades.asm
+++ b/engine/events/in_game_trades.asm
@@ -84,7 +84,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
diff --git a/engine/events/pick_up_item.asm b/engine/events/pick_up_item.asm
index 9f19100a..5a658f22 100644
--- a/engine/events/pick_up_item.asm
+++ b/engine/events/pick_up_item.asm
@@ -15,7 +15,7 @@ PickUpItem:
.isMissable
ld a, [hl]
- ld [$ffdb], a
+ ld [hMissableObjectIndex], a
ld hl, wMapSpriteExtraData
ld a, [hSpriteIndexOrTextID]
@@ -30,7 +30,7 @@ PickUpItem:
call GiveItem
jr nc, .BagFull
- ld a, [$ffdb]
+ ld a, [hMissableObjectIndex]
ld [wMissableObjectIndex], a
predef HideObject
ld a, 1
diff --git a/engine/events/prize_menu.asm b/engine/events/prize_menu.asm
index 5e08bb8f..5a00a89e 100755
--- a/engine/events/prize_menu.asm
+++ b/engine/events/prize_menu.asm
@@ -131,10 +131,8 @@ GetPrizeMenuId:
coord hl, 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
@@ -145,7 +143,7 @@ GetPrizeMenuId:
ld c, (1 << 7 | 2)
jp PrintBCDNumber
-INCLUDE "data/prizes.asm"
+INCLUDE "data/events/prizes.asm"
PrintPrizePrice:
coord hl, 11, 0
@@ -303,4 +301,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
index 091cfa1a..59c2725c 100755
--- a/engine/events/saffron_guards.asm
+++ b/engine/events/saffron_guards.asm
@@ -2,7 +2,7 @@ RemoveGuardDrink::
ld hl, GuardDrinksList
.drinkLoop
ld a, [hli]
- ld [$ffdb], a
+ ld [hItemToRemoveID], a
and a
ret z
push hl
@@ -12,4 +12,4 @@ RemoveGuardDrink::
jr z, .drinkLoop
jpba RemoveItemByID
-INCLUDE "data/guard_drink_items.asm"
+INCLUDE "data/items/guard_drink_items.asm"
diff --git a/engine/events/set_blackout_map.asm b/engine/events/set_blackout_map.asm
index 14f0ba28..e8460240 100644
--- a/engine/events/set_blackout_map.asm
+++ b/engine/events/set_blackout_map.asm
@@ -22,4 +22,4 @@ SetLastBlackoutMap:
pop hl
ret
-INCLUDE "data/rest_house_maps.asm"
+INCLUDE "data/maps/rest_house_maps.asm"
diff --git a/engine/events/vending_machine.asm b/engine/events/vending_machine.asm
index 554c5d4f..4a39f7b9 100755
--- a/engine/events/vending_machine.asm
+++ b/engine/events/vending_machine.asm
@@ -130,4 +130,4 @@ LoadVendingMachineItem:
ld [hVendingMachinePrice + 2], a
ret
-INCLUDE "data/vending_prices.asm"
+INCLUDE "data/items/vending_prices.asm"
diff --git a/engine/gfx/hp_bar.asm b/engine/gfx/hp_bar.asm
index 221bd7a9..4b91da58 100755
--- a/engine/gfx/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]
+ ld a, [hMultiplicand+1]
ld b, a
- ld a, [H_MULTIPLICAND+2]
+ ld a, [hMultiplicand+2]
srl b ; divide multiplication result as well
rr a
srl b
rr a
- ld [H_MULTIPLICAND+2], a
+ ld [hMultiplicand+2], a
ld a, b
- ld [H_MULTIPLICAND+1], a
+ ld [hMultiplicand+1], a
.maxHPSmaller256
ld a, e
- ld [H_DIVISOR], a
+ ld [hDivisor], a
ld b, $4
call Divide
- ld a, [H_MULTIPLICAND+2]
+ ld a, [hMultiplicand+2]
ld e, a ; e = bc * 48 / de (num of pixels of HP bar)
pop hl
and a
@@ -213,7 +213,7 @@ UpdateHPBar_PrintHPNumber:
ld a, [wHPBarOldHP + 1]
ld [wHPBarTempHP], a
push hl
- ld a, [hFlags_0xFFF6]
+ ld a, [hFlagsFFF6]
bit 0, a
jr z, .asm_fb15
ld de, $9
diff --git a/engine/gfx/mon_icons.asm b/engine/gfx/mon_icons.asm
index d2913715..7a96b36c 100755
--- a/engine/gfx/mon_icons.asm
+++ b/engine/gfx/mon_icons.asm
@@ -162,7 +162,7 @@ LoadMonPartySpriteGfxWithLCDDisabled:
jr nz, .loop
jp EnableLCD
-INCLUDE "data/mon_party_sprite_pointers.asm"
+INCLUDE "data/icon_pointers.asm"
WriteMonPartySpriteOAMByPartyIndex:
; Write OAM blocks for the party mon in [hPartyMonIndex].
@@ -278,7 +278,7 @@ GetPartyMonSpriteID:
srl a
ret
-INCLUDE "data/mon_party_sprites.asm"
+INCLUDE "data/pokemon/menu_icons.asm"
INC_FRAME_1 EQUS "0, $20"
INC_FRAME_2 EQUS "$20, $20"
diff --git a/engine/gfx/oam_dma.asm b/engine/gfx/oam_dma.asm
index b0d64675..aeea4c01 100644
--- a/engine/gfx/oam_dma.asm
+++ b/engine/gfx/oam_dma.asm
@@ -1,12 +1,12 @@
WriteDMACodeToHRAM::
; Since no other memory is available during OAM DMA,
; DMARoutine is copied to HRAM and executed there.
- ld c, $ff80 % $100
+ ld c, hDMARoutine % $100
ld b, DMARoutineEnd - DMARoutine
ld hl, DMARoutine
.copy
ld a, [hli]
- ld [$ff00+c], a
+ ldh [c], a
inc c
dec b
jr nz, .copy
diff --git a/engine/gfx/palettes.asm b/engine/gfx/palettes.asm
index 39991d48..58e08e86 100755
--- a/engine/gfx/palettes.asm
+++ b/engine/gfx/palettes.asm
@@ -1,11 +1,11 @@
_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
+ 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
@@ -632,10 +632,10 @@ CopySGBBorderTiles:
jr nz, .tileLoop
ret
-INCLUDE "data/sgb_packets.asm"
+INCLUDE "data/sgb/sgb_packets.asm"
-INCLUDE "data/mon_palettes.asm"
+INCLUDE "data/pokemon/palettes.asm"
-INCLUDE "data/super_palettes.asm"
+INCLUDE "data/sgb/sgb_palettes.asm"
-INCLUDE "data/sgb_border.asm"
+INCLUDE "data/sgb/sgb_border.asm"
diff --git a/engine/gfx/screen_effects.asm b/engine/gfx/screen_effects.asm
index 95f0ea25..0d3806c1 100755
--- a/engine/gfx/screen_effects.asm
+++ b/engine/gfx/screen_effects.asm
@@ -19,7 +19,7 @@ PredefShakeScreenVertically:
ld [wDisableVBlankWYUpdate], a
xor a
.loop
- ld [$ff96], a
+ ld [hMutateWY], a
call .MutateWY
call .MutateWY
dec b
@@ -30,9 +30,9 @@ PredefShakeScreenVertically:
ret
.MutateWY
- ld a, [$ff96]
+ ld a, [hMutateWY]
xor b
- ld [$ff96], a
+ ld [hMutateWY], a
ld [rWY], a
ld c, 3
jp DelayFrames
@@ -43,7 +43,7 @@ PredefShakeScreenHorizontally:
call GetPredefRegisters
xor a
.loop
- ld [$ff97], a
+ ld [hMutateWX], a
call .MutateWX
ld c, 1
call DelayFrames
@@ -58,9 +58,9 @@ PredefShakeScreenHorizontally:
ret
.MutateWX
- ld a, [$ff97]
+ ld a, [hMutateWX]
xor b
- ld [$ff97], a
+ ld [hMutateWX], a
bit 7, a
jr z, .skipZeroing
xor a ; zero a if it's negative
diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm
index 6e7bed1e..7e2aa227 100755
--- a/engine/items/item_effects.asm
+++ b/engine/items/item_effects.asm
@@ -239,14 +239,14 @@ ItemUseBall:
; Calculate MaxHP * 255.
xor a
- ld [H_MULTIPLICAND], a
+ ld [hMultiplicand], a
ld hl, wEnemyMonMaxHP
ld a, [hli]
- ld [H_MULTIPLICAND + 1], a
+ ld [hMultiplicand + 1], a
ld a, [hl]
- ld [H_MULTIPLICAND + 2], a
+ ld [hMultiplicand + 2], a
ld a, 255
- ld [H_MULTIPLIER], a
+ ld [hMultiplier], a
call Multiply
; Determine BallFactor. It's 8 for Great Balls and 12 for the others.
@@ -260,7 +260,7 @@ ItemUseBall:
; Note that the results of all division operations are floored.
; Calculate (MaxHP * 255) / BallFactor.
- ld [H_DIVISOR], a
+ ld [hDivisor], a
ld b, 4 ; number of bytes in dividend
call Divide
@@ -281,17 +281,17 @@ ItemUseBall:
.skip2
; Let W = ((MaxHP * 255) / BallFactor) / max(HP / 4, 1). Calculate W.
- ld [H_DIVISOR], a
+ ld [hDivisor], 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]
+; If W > 255, store 255 in [hQuotient + 3].
+; Let X = min(W, 255) = [hQuotient + 3].
+ ld a, [hQuotient + 2]
and a
jr z, .skip3
ld a, 255
- ld [H_QUOTIENT + 3], a
+ ld [hQuotient + 3], a
.skip3
pop bc ; b = Rand1 - Status
@@ -302,7 +302,7 @@ ItemUseBall:
jr c, .failedToCapture
; If W > 255, the ball captures the Pokémon.
- ld a, [H_QUOTIENT + 2]
+ ld a, [hQuotient + 2]
and a
jr nz, .captured
@@ -310,7 +310,7 @@ ItemUseBall:
; If Rand2 > X, the ball fails to capture the Pokémon.
ld b, a
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
cp b
jr c, .failedToCapture
@@ -318,17 +318,17 @@ ItemUseBall:
jr .skipShakeCalculations
.failedToCapture
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
ld [wPokeBallCaptureCalcTemp], a ; Save X.
; Calculate CatchRate * 100.
xor a
- ld [H_MULTIPLICAND], a
- ld [H_MULTIPLICAND + 1], a
+ ld [hMultiplicand], a
+ ld [hMultiplicand + 1], a
ld a, [wEnemyMonActualCatchRate]
- ld [H_MULTIPLICAND + 2], a
+ ld [hMultiplicand + 2], a
ld a, 100
- ld [H_MULTIPLIER], a
+ ld [hMultiplier], a
call Multiply
; Determine BallFactor2.
@@ -349,26 +349,26 @@ ItemUseBall:
.skip4
; Let Y = (CatchRate * 100) / BallFactor2. Calculate Y.
ld a, b
- ld [H_DIVISOR], a
+ ld [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.
- ld a, [H_QUOTIENT + 2]
+ ld a, [hQuotient + 2]
and a
ld b, $63 ; 3 shakes
jr nz, .setAnimData
; Calculate X * Y.
ld a, [wPokeBallCaptureCalcTemp]
- ld [H_MULTIPLIER], a
+ ld [hMultiplier], a
call Multiply
; Calculate (X * Y) / 255.
ld a, 255
- ld [H_DIVISOR], a
+ ld [hDivisor], a
ld b, 4
call Divide
@@ -386,19 +386,19 @@ ItemUseBall:
.addAilmentValue
; If the Pokémon has a status ailment, add Status2.
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
add b
- ld [H_QUOTIENT + 3], a
+ ld [hQuotient + 3], a
.skip5
; Finally determine the number of shakes.
-; Let Z = ((X * Y) / 255) + Status2 = [H_QUOTIENT + 3].
+; 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
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
cp 10
ld b, $20
jr c, .setAnimData
@@ -422,7 +422,7 @@ ItemUseBall:
ld a, TOSS_ANIM
ld [wAnimationID], a
xor a
- ld [H_WHOSETURN], a
+ ld [hWhoseTurn], a
ld [wAnimationType], a
ld [wDamageMultipliers], a
ld a, [wWhichPokemon]
@@ -1018,18 +1018,18 @@ ItemUseMedicine:
call AddNTimes
ld a, [hli]
ld [wHPBarMaxHP + 1], a
- ld [H_DIVIDEND], a
+ ld [hDividend], a
ld a, [hl]
ld [wHPBarMaxHP], a
- ld [H_DIVIDEND + 1], a
+ ld [hDividend + 1], a
ld a, 5
- ld [H_DIVISOR], a
+ ld [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
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
push af
ld b, a
ld a, [hl]
@@ -1037,7 +1037,7 @@ ItemUseMedicine:
sub b
ld [hld], a
ld [wHPBarNewHP], a
- ld a, [H_QUOTIENT + 2]
+ ld a, [hQuotient + 2]
ld b, a
ld a, [hl]
ld [wHPBarOldHP+1], a
@@ -1050,15 +1050,15 @@ ItemUseMedicine:
call AddNTimes ; calculate coordinates of HP bar of pokemon that used Softboiled
ld a, SFX_HEAL_HP
call PlaySoundWaitForCurrent
- ld a, [hFlags_0xFFF6]
+ ld a, [hFlagsFFF6]
set 0, a
- ld [hFlags_0xFFF6], a
+ ld [hFlagsFFF6], a
ld a, $02
ld [wHPBarType], a
predef UpdateHPBar2 ; animate HP bar decrease of pokemon that used Softboiled
- ld a, [hFlags_0xFFF6]
+ ld a, [hFlagsFFF6]
res 0, a
- ld [hFlags_0xFFF6], a
+ ld [hFlagsFFF6], a
pop af
ld b, a ; store heal amount (1/5 of max HP)
ld hl, wHPBarOldHP + 1
@@ -1200,15 +1200,15 @@ ItemUseMedicine:
jr z, .playStatusAilmentCuringSound
ld a, SFX_HEAL_HP
call PlaySoundWaitForCurrent
- ld a, [hFlags_0xFFF6]
+ ld a, [hFlagsFFF6]
set 0, a
- ld [hFlags_0xFFF6], a
+ ld [hFlagsFFF6], a
ld a, $02
ld [wHPBarType], a
predef UpdateHPBar2 ; animate the HP bar lengthening
- ld a, [hFlags_0xFFF6]
+ ld a, [hFlagsFFF6]
res 0, a
- ld [hFlags_0xFFF6], a
+ ld [hFlagsFFF6], a
ld a, REVIVE_MSG
ld [wPartyMenuTypeOrMessageID], a
ld a, [wcf91]
@@ -1224,13 +1224,13 @@ ItemUseMedicine:
call PlaySoundWaitForCurrent
.showHealingItemMessage
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], 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 [hAutoBGTransferEnabled], a
ld c, 50
call DelayFrames
call WaitForTextScrollButtonPress
@@ -1341,7 +1341,7 @@ ItemUseMedicine:
push hl
push de
ld d, a
- callab CalcExperience ; calculate experience for next level and store it at $ff96
+ callab CalcExperience ; calculate experience for next level and store it at hExperience
pop de
pop hl
ld bc, wPartyMon1Exp - wPartyMon1Level
@@ -1459,7 +1459,7 @@ BaitRockCommon:
ld [wAnimationID], a
xor a
ld [wAnimationType], a
- ld [H_WHOSETURN], a
+ ld [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
@@ -1698,7 +1698,7 @@ ItemUseXStat:
call LoadScreenTilesFromBuffer1 ; restore saved screen
call Delay3
xor a
- ld [H_WHOSETURN], a ; set turn to player's turn
+ ld [hWhoseTurn], a ; set turn to player's turn
callba StatModifierUpEffect ; do stat increase move
pop hl
pop af
@@ -1844,8 +1844,8 @@ PlayedFluteHadEffectText:
and a
jr nz, .done
; play out-of-battle pokeflute music
- ld a, $ff
- call PlaySound ; turn off music
+ ld a, SFX_STOP_ALL_MUSIC
+ call PlaySound
ld a, SFX_POKEFLUTE
ld c, BANK(SFX_Pokeflute)
call PlayMusic
@@ -1901,7 +1901,7 @@ ItemUseGoodRod:
xor 1
jr RodResponse
-INCLUDE "data/good_rod.asm"
+INCLUDE "data/wild/good_rod.asm"
ItemUseSuperRod:
call FishingInit
@@ -2463,13 +2463,13 @@ RestoreBonusPP:
AddBonusPP:
push bc
ld a, [de] ; normal max PP of move
- ld [H_DIVIDEND + 3], a
+ ld [hDividend + 3], a
xor a
- ld [H_DIVIDEND], a
- ld [H_DIVIDEND + 1], a
- ld [H_DIVIDEND + 2], a
+ ld [hDividend], a
+ ld [hDividend + 1], a
+ ld [hDividend + 2], a
ld a, 5
- ld [H_DIVISOR], a
+ ld [hDivisor], a
ld b, 4
call Divide
ld a, [hl] ; move PP
@@ -2480,7 +2480,7 @@ AddBonusPP:
srl a
ld c, a ; c = number of PP Ups used
.loop
- ld a, [H_QUOTIENT + 3]
+ ld 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
@@ -2686,7 +2686,7 @@ IsKeyItem_::
ld [wIsKeyItem], a
ret
-INCLUDE "data/key_items.asm"
+INCLUDE "data/items/key_items.asm"
SendNewMonToBox:
ld de, wNumInBox
@@ -2881,7 +2881,7 @@ IsNextTileShoreOrWater:
and a
ret
-INCLUDE "data/water_tilesets.asm"
+INCLUDE "data/tilesets/water_tilesets.asm"
ReadSuperRodData:
; return e = 2 if no fish on this map
@@ -2928,7 +2928,7 @@ ReadSuperRodData:
ld e, $1 ; $1 if there's a bite
ret
-INCLUDE "data/super_rod.asm"
+INCLUDE "data/wild/super_rod.asm"
; reloads map view and processes sprite data
; for items that cause the overworld to be displayed
diff --git a/engine/items/tm_prices.asm b/engine/items/tm_prices.asm
index c359dc1d..85531bab 100755
--- a/engine/items/tm_prices.asm
+++ b/engine/items/tm_prices.asm
@@ -22,4 +22,4 @@ GetMachinePrice::
ld [hItemPrice + 2], a
ret
-INCLUDE "data/tm_prices.asm"
+INCLUDE "data/items/tm_prices.asm"
diff --git a/engine/items/tms.asm b/engine/items/tms.asm
index da1b5e72..ea7fbcad 100755
--- a/engine/items/tms.asm
+++ b/engine/items/tms.asm
@@ -33,4 +33,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
index 84a92994..285dbfa5 100755
--- a/engine/items/town_map.asm
+++ b/engine/items/town_map.asm
@@ -103,7 +103,7 @@ DisplayTownMap:
ld [wWhichTownMapLocation], a
jp .townMapLoop
-INCLUDE "data/town_map_order.asm"
+INCLUDE "data/maps/town_map_order.asm"
TownMapCursor:
INCBIN "gfx/town_map/town_map_cursor.1bpp"
@@ -581,9 +581,9 @@ LoadTownMapEntry:
ld l, a
ret
-INCLUDE "data/town_map_entries.asm"
+INCLUDE "data/maps/town_map_entries.asm"
-INCLUDE "text/map_names.asm"
+INCLUDE "data/maps/names.asm"
MonNestIcon:
INCBIN "gfx/town_map/mon_nest_icon.1bpp"
diff --git a/engine/link/cable_club.asm b/engine/link/cable_club.asm
index 141ed396..58008a94 100755
--- a/engine/link/cable_club.asm
+++ b/engine/link/cable_club.asm
@@ -139,7 +139,7 @@ CableClub_DoBattleOrTradeAgain:
call Serial_ExchangeBytes
ld a, (1 << SERIAL) | (1 << TIMER) | (1 << VBLANK)
ld [rIE], a
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
call PlaySound
ld a, [hSerialConnectionStatus]
cp USING_INTERNAL_CLOCK
@@ -261,7 +261,7 @@ CableClub_DoBattleOrTradeAgain:
ld [wUnusedCF8D + 1], a
xor a
ld [wTradeCenterPointerTableIndex], a
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
call PlaySound
ld a, [hSerialConnectionStatus]
cp USING_INTERNAL_CLOCK
@@ -338,10 +338,10 @@ TradeCenter_SelectMon:
ld a, 1
ld [wTopMenuItemX], a
.enemyMonMenu_HandleInput
- ld hl, hFlags_0xFFF6
+ ld hl, hFlagsFFF6
set 1, [hl]
call HandleMenuInput
- ld hl, hFlags_0xFFF6
+ ld hl, hFlagsFFF6
res 1, [hl]
and a
jp z, .getNewInput
@@ -403,10 +403,10 @@ TradeCenter_SelectMon:
lb bc, 6, 1
call ClearScreenArea
.playerMonMenu_HandleInput
- ld hl, hFlags_0xFFF6
+ ld hl, hFlagsFFF6
set 1, [hl]
call HandleMenuInput
- ld hl, hFlags_0xFFF6
+ ld hl, hFlagsFFF6
res 1, [hl]
and a ; was anything pressed?
jr nz, .playerMonMenu_SomethingPressed
@@ -663,7 +663,7 @@ TradeCenter_PrintPartyListNames:
push de
push hl
ld a, c
- ld [$ff95], a
+ ld [hPastLeadingZeros], a
call GetMonName
pop hl
call PlaceString
@@ -903,7 +903,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
diff --git a/engine/math/multiply_divide.asm b/engine/math/multiply_divide.asm
index 6cdc6c87..8bbc20a1 100755
--- a/engine/math/multiply_divide.asm
+++ b/engine/math/multiply_divide.asm
@@ -2,142 +2,142 @@ _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
+ ld [hProduct], a
+ ld [hMultiplyBuffer], a
+ ld [hMultiplyBuffer+1], a
+ ld [hMultiplyBuffer+2], a
+ ld [hMultiplyBuffer+3], a
.loop
- ld a, [H_MULTIPLIER]
+ ld a, [hMultiplier]
srl a
- ld [H_MULTIPLIER], a ; (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
+ ld [hMultiplier], a ; (aliases: hDivisor, hMultiplier, hPowerOf10)
jr nc, .smallMultiplier
- ld a, [H_MULTIPLYBUFFER+3]
+ ld a, [hMultiplyBuffer+3]
ld c, a
- ld a, [H_MULTIPLICAND+2]
+ ld a, [hMultiplicand+2]
add c
- ld [H_MULTIPLYBUFFER+3], a
- ld a, [H_MULTIPLYBUFFER+2]
+ ld [hMultiplyBuffer+3], a
+ ld a, [hMultiplyBuffer+2]
ld c, a
- ld a, [H_MULTIPLICAND+1]
+ ld a, [hMultiplicand+1]
adc c
- ld [H_MULTIPLYBUFFER+2], a
- ld a, [H_MULTIPLYBUFFER+1]
+ ld [hMultiplyBuffer+2], a
+ ld a, [hMultiplyBuffer+1]
ld c, a
- ld a, [H_MULTIPLICAND] ; (aliases: H_MULTIPLICAND)
+ ld a, [hMultiplicand] ; (aliases: hMultiplicand)
adc c
- ld [H_MULTIPLYBUFFER+1], a
- ld a, [H_MULTIPLYBUFFER]
+ ld [hMultiplyBuffer+1], a
+ ld a, [hMultiplyBuffer]
ld c, a
- ld a, [H_PRODUCT] ; (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
+ ld a, [hProduct] ; (aliases: hProduct, hPastLeadingZeros, hQuotient)
adc c
- ld [H_MULTIPLYBUFFER], a
+ ld [hMultiplyBuffer], a
.smallMultiplier
dec b
jr z, .done
- ld a, [H_MULTIPLICAND+2]
+ ld a, [hMultiplicand+2]
sla a
- ld [H_MULTIPLICAND+2], a
- ld a, [H_MULTIPLICAND+1]
+ ld [hMultiplicand+2], a
+ ld a, [hMultiplicand+1]
rl a
- ld [H_MULTIPLICAND+1], a
- ld a, [H_MULTIPLICAND]
+ ld [hMultiplicand+1], a
+ ld a, [hMultiplicand]
rl a
- ld [H_MULTIPLICAND], a
- ld a, [H_PRODUCT]
+ ld [hMultiplicand], a
+ ld a, [hProduct]
rl a
- ld [H_PRODUCT], a
+ ld [hProduct], a
jr .loop
.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
+ ld a, [hMultiplyBuffer+3]
+ ld [hProduct+3], a
+ ld a, [hMultiplyBuffer+2]
+ ld [hProduct+2], a
+ ld a, [hMultiplyBuffer+1]
+ ld [hProduct+1], a
+ ld a, [hMultiplyBuffer]
+ ld [hProduct], 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 [hDivideBuffer], a
+ ld [hDivideBuffer+1], a
+ ld [hDivideBuffer+2], a
+ ld [hDivideBuffer+3], a
+ ld [hDivideBuffer+4], a
ld a, $9
ld e, a
.asm_37db3
- ld a, [H_DIVIDEBUFFER]
+ ld a, [hDivideBuffer]
ld c, a
- ld a, [H_DIVIDEND+1] ; (aliases: H_MULTIPLICAND)
+ ld a, [hDividend+1] ; (aliases: hMultiplicand)
sub c
ld d, a
- ld a, [H_DIVISOR] ; (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
+ ld a, [hDivisor] ; (aliases: hDivisor, hMultiplier, hPowerOf10)
ld c, a
- ld a, [H_DIVIDEND] ; (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
+ ld a, [hDividend] ; (aliases: hProduct, hPastLeadingZeros, hQuotient)
sbc c
jr c, .asm_37dce
- ld [H_DIVIDEND], a ; (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
+ ld [hDividend], a ; (aliases: hProduct, hPastLeadingZeros, hQuotient)
ld a, d
- ld [H_DIVIDEND+1], a ; (aliases: H_MULTIPLICAND)
- ld a, [H_DIVIDEBUFFER+4]
+ ld [hDividend+1], a ; (aliases: hMultiplicand)
+ ld a, [hDivideBuffer+4]
inc a
- ld [H_DIVIDEBUFFER+4], a
+ ld [hDivideBuffer+4], a
jr .asm_37db3
.asm_37dce
ld a, b
cp $1
jr z, .asm_37e18
- ld a, [H_DIVIDEBUFFER+4]
+ ld a, [hDivideBuffer+4]
sla a
- ld [H_DIVIDEBUFFER+4], a
- ld a, [H_DIVIDEBUFFER+3]
+ ld [hDivideBuffer+4], a
+ ld a, [hDivideBuffer+3]
rl a
- ld [H_DIVIDEBUFFER+3], a
- ld a, [H_DIVIDEBUFFER+2]
+ ld [hDivideBuffer+3], a
+ ld a, [hDivideBuffer+2]
rl a
- ld [H_DIVIDEBUFFER+2], a
- ld a, [H_DIVIDEBUFFER+1]
+ ld [hDivideBuffer+2], a
+ ld a, [hDivideBuffer+1]
rl a
- ld [H_DIVIDEBUFFER+1], a
+ ld [hDivideBuffer+1], a
dec e
jr nz, .asm_37e04
ld a, $8
ld e, a
- ld a, [H_DIVIDEBUFFER]
- ld [H_DIVISOR], a ; (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
+ ld a, [hDivideBuffer]
+ ld [hDivisor], a ; (aliases: hDivisor, hMultiplier, hPowerOf10)
xor a
- ld [H_DIVIDEBUFFER], a
- ld a, [H_DIVIDEND+1] ; (aliases: H_MULTIPLICAND)
- ld [H_DIVIDEND], a ; (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
- ld a, [H_DIVIDEND+2]
- ld [H_DIVIDEND+1], a ; (aliases: H_MULTIPLICAND)
- ld a, [H_DIVIDEND+3]
- ld [H_DIVIDEND+2], a
+ ld [hDivideBuffer], a
+ ld a, [hDividend+1] ; (aliases: hMultiplicand)
+ ld [hDividend], a ; (aliases: hProduct, hPastLeadingZeros, hQuotient)
+ ld a, [hDividend+2]
+ ld [hDividend+1], a ; (aliases: hMultiplicand)
+ ld a, [hDividend+3]
+ ld [hDividend+2], a
.asm_37e04
ld a, e
cp $1
jr nz, .asm_37e0a
dec b
.asm_37e0a
- ld a, [H_DIVISOR] ; (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
+ ld a, [hDivisor] ; (aliases: hDivisor, hMultiplier, hPowerOf10)
srl a
- ld [H_DIVISOR], a ; (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
- ld a, [H_DIVIDEBUFFER]
+ ld [hDivisor], a ; (aliases: hDivisor, hMultiplier, hPowerOf10)
+ ld a, [hDivideBuffer]
rr a
- ld [H_DIVIDEBUFFER], a
+ ld [hDivideBuffer], a
jr .asm_37db3
.asm_37e18
- ld a, [H_DIVIDEND+1] ; (aliases: H_MULTIPLICAND)
- ld [H_REMAINDER], a ; (aliases: H_DIVISOR, H_MULTIPLIER, H_POWEROFTEN)
- 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 ; (aliases: H_MULTIPLICAND)
- ld a, [H_DIVIDEBUFFER+1]
- ld [H_DIVIDEND], a ; (aliases: H_PRODUCT, H_PASTLEADINGZEROES, H_QUOTIENT)
+ ld a, [hDividend+1] ; (aliases: hMultiplicand)
+ ld [hRemainder], a ; (aliases: hDivisor, hMultiplier, hPowerOf10)
+ ld a, [hDivideBuffer+4]
+ ld [hQuotient+3], a
+ ld a, [hDivideBuffer+3]
+ ld [hQuotient+2], a
+ ld a, [hDivideBuffer+2]
+ ld [hQuotient+1], a ; (aliases: hMultiplicand)
+ ld a, [hDivideBuffer+1]
+ ld [hDividend], a ; (aliases: hProduct, hPastLeadingZeros, hQuotient)
ret
diff --git a/engine/menus/display_text_id_init.asm b/engine/menus/display_text_id_init.asm
index 5043ad22..45c76f9c 100644
--- a/engine/menus/display_text_id_init.asm
+++ b/engine/menus/display_text_id_init.asm
@@ -43,7 +43,7 @@ DisplayTextIDInit::
; the original direction they were facing must be restored after the dialogue is over
ld hl, wSpriteStateData1 + $19
ld c, $0f
- ld de, $0010
+ ld de, $10
.spriteFacingDirectionCopyLoop
ld a, [hl]
inc h
@@ -55,7 +55,7 @@ DisplayTextIDInit::
; 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 de, $10
ld c, e
.spriteStandStillLoop
ld a, [hl]
@@ -74,5 +74,5 @@ DisplayTextIDInit::
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
+ ld [hAutoBGTransferEnabled], a ; enable continuous WRAM to VRAM transfer each V-blank
ret
diff --git a/engine/menus/main_menu.asm b/engine/menus/main_menu.asm
index 8eda6744..fe82ec4a 100755
--- a/engine/menus/main_menu.asm
+++ b/engine/menus/main_menu.asm
@@ -342,7 +342,7 @@ CableClubOptionsText:
DisplayContinueGameInfo:
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
coord hl, 4, 7
ld b, 8
ld c, 14
@@ -360,13 +360,13 @@ DisplayContinueGameInfo:
coord hl, 13, 15
call PrintPlayTime
ld a, 1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld c, 30
jp DelayFrames
PrintSaveScreenText:
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
coord hl, 4, 0
ld b, $8
ld c, $e
@@ -386,7 +386,7 @@ PrintSaveScreenText:
coord hl, 13, 8
call PrintPlayTime
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld c, 30
jp DelayFrames
@@ -463,7 +463,7 @@ DisplayOptionMenu:
ld a, [wOptionsTextSpeedCursorX] ; text speed cursor X coordinate
ld [wTopMenuItemX], a
ld a, $01
- ld [H_AUTOBGTRANSFERENABLED], a ; enable auto background transfer
+ ld [hAutoBGTransferEnabled], a ; enable auto background transfer
call Delay3
.loop
call PlaceMenuCursor
diff --git a/engine/menus/naming_screen.asm b/engine/menus/naming_screen.asm
index 2b86d6f4..efeab4c3 100755
--- a/engine/menus/naming_screen.asm
+++ b/engine/menus/naming_screen.asm
@@ -337,7 +337,7 @@ ED_TileEnd:
PrintAlphabet:
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld a, [wAlphabetCase]
and a
ld de, LowerCaseAlphabet
@@ -362,10 +362,10 @@ PrintAlphabet:
jr nz, .outerLoop
call PlaceString
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
jp Delay3
-INCLUDE "text/alphabets.asm"
+INCLUDE "data/text/alphabets.asm"
PrintNicknameAndUnderscores:
call CalcStringLength
@@ -435,7 +435,7 @@ DakutensAndHandakutens:
ld [wNamingScreenLetter], a
ret
-INCLUDE "text/dakutens.asm"
+INCLUDE "data/text/dakutens.asm"
; calculates the length of the string at wcf4b and stores it in c
CalcStringLength:
diff --git a/engine/menus/party_menu.asm b/engine/menus/party_menu.asm
index 41b6074b..9ae5706e 100755
--- a/engine/menus/party_menu.asm
+++ b/engine/menus/party_menu.asm
@@ -19,7 +19,7 @@
; f8: leveled up
DrawPartyMenu_::
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call ClearScreen
call UpdateSprites
callba LoadMonPartySpriteGfxWithLCDDisabled ; load pokemon icon graphics
@@ -88,14 +88,14 @@ RedrawPartyMenu_::
pop hl
push hl
ld bc, SCREEN_WIDTH + 1 ; down 1 row and right 1 column
- ld a, [hFlags_0xFFF6]
+ ld a, [hFlagsFFF6]
set 0, a
- ld [hFlags_0xFFF6], a
+ ld [hFlagsFFF6], a
add hl, bc
predef DrawHP2 ; draw HP bar and prints current / max HP
- ld a, [hFlags_0xFFF6]
+ ld a, [hFlagsFFF6]
res 0, a
- ld [hFlags_0xFFF6], a
+ ld [hFlagsFFF6], a
call SetPartyMenuHPBarColor ; color the HP bar (on SGB)
pop hl
jr .printLevel
@@ -213,7 +213,7 @@ RedrawPartyMenu_::
pop af
ld [hl], a
ld a, 1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Delay3
jp GBPalNormal
.printItemUseMessage
@@ -318,7 +318,7 @@ SetPartyMenuHPBarColor:
ld b, 0
add hl, bc
call GetHealthBarColor
- ld b, UPDATE_PARTY_MENU_BLK_PACKET
+ ld b, SET_PAL_PARTY_MENU_HP_BARS
call RunPaletteCommand
ld hl, wWhichPartyMenuHPBar
inc [hl]
diff --git a/engine/menus/pokedex.asm b/engine/menus/pokedex.asm
index 8e1fd480..baf656b6 100755
--- a/engine/menus/pokedex.asm
+++ b/engine/menus/pokedex.asm
@@ -156,7 +156,7 @@ HandlePokedexSideMenu:
; sets carry flag if player presses A, unsets carry flag if player presses B
HandlePokedexListMenu:
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
; draw the horizontal line separating the seen and owned amounts from the menu
coord hl, 15, 8
ld a, "─"
@@ -216,7 +216,7 @@ HandlePokedexListMenu:
ld [wDexMaxSeenMon], a
.loop
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
coord hl, 4, 2
lb bc, 14, 10
call ClearScreenArea
@@ -280,7 +280,7 @@ HandlePokedexListMenu:
dec d
jr nz, .printPokemonLoop
ld a, 01
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Delay3
call GBPalNormal
call HandleMenuInput
@@ -566,11 +566,11 @@ ShowPokedexDataInternal:
pop hl
inc hl ; hl = address of pokedex description text
coord bc, 1, 11
- ld a, 2
- ld [$fff4], a
+ ld a, %10
+ ld [hClearLetterPrintingDelayFlags], a
call TextCommandProcessor ; print pokedex description text
xor a
- ld [$fff4], a
+ ld [hClearLetterPrintingDelayFlags], a
.waitForButtonPress
call JoypadLowSensitivity
ld a, [hJoy5]
@@ -623,7 +623,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
@@ -662,4 +662,4 @@ IndexToPokedex:
pop bc
ret
-INCLUDE "data/pokedex_order.asm"
+INCLUDE "data/pokemon/dex_order.asm"
diff --git a/engine/menus/save.asm b/engine/menus/save.asm
index 33a7ba8d..ee73c850 100755
--- a/engine/menus/save.asm
+++ b/engine/menus/save.asm
@@ -351,10 +351,10 @@ ChangeBox::
call z, EmptyAllSRAMBoxes ; if so, empty all boxes in SRAM
call DisplayChangeBoxMenu
call UpdateSprites
- ld hl, hFlags_0xFFF6
+ ld hl, hFlagsFFF6
set 1, [hl]
call HandleMenuInput
- ld hl, hFlags_0xFFF6
+ ld hl, hFlagsFFF6
res 1, [hl]
bit 1, a ; pressed b
ret nz
@@ -420,7 +420,7 @@ CopyBoxToOrFromSRAM:
DisplayChangeBoxMenu:
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld a, A_BUTTON | B_BUTTON
ld [wMenuWatchedKeys], a
ld a, 11
@@ -445,12 +445,12 @@ DisplayChangeBoxMenu:
ld b, 12
ld c, 7
call TextBoxBorder
- ld hl, hFlags_0xFFF6
+ ld hl, hFlagsFFF6
set 2, [hl]
ld de, BoxNames
coord hl, 13, 1
call PlaceString
- ld hl, hFlags_0xFFF6
+ ld hl, hFlagsFFF6
res 2, [hl]
ld a, [wCurrentBoxNum]
and $7f
@@ -486,7 +486,7 @@ DisplayChangeBoxMenu:
dec a
jr nz, .loop
ld a, 1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ret
ChooseABoxText:
@@ -601,9 +601,9 @@ 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
ld a, $0a
ld [MBC1SRamEnable], a
ld a, $01
@@ -702,7 +702,7 @@ 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/menus/start_sub_menus.asm b/engine/menus/start_sub_menus.asm
index b81769a2..526540df 100755
--- a/engine/menus/start_sub_menus.asm
+++ b/engine/menus/start_sub_menus.asm
@@ -239,21 +239,21 @@ StartMenu_Pokemon::
ld bc, wPartyMon2 - wPartyMon1
call AddNTimes
ld a, [hli]
- ld [H_DIVIDEND], a
+ ld [hDividend], a
ld a, [hl]
- ld [H_DIVIDEND + 1], a
+ ld [hDividend + 1], a
ld a, 5
- ld [H_DIVISOR], a
+ ld [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]
+ ld a, [hQuotient + 3]
sub b
ld b, [hl]
- ld a, [H_QUOTIENT + 2]
+ ld a, [hQuotient + 2]
sbc b
jp nc, .notHealthyEnough
ld a, [wPartyAndBillsPCSavedMenuItem]
@@ -446,9 +446,9 @@ CannotGetOffHereText:
TX_FAR _CannotGetOffHereText
db "@"
-INCLUDE "data/party_items.asm"
+INCLUDE "data/items/use_party.asm"
-INCLUDE "data/overworld_items.asm"
+INCLUDE "data/items/use_overworld.asm"
StartMenu_TrainerInfo::
call GBPalWhiteOut
@@ -491,12 +491,12 @@ DrawTrainerInfo:
call CopyData
ld hl, TrainerInfoTextBoxTileGraphics ; trainer info text box tile patterns
ld de, vChars2 + $770
- ld bc, $0080
+ ld bc, $80
push bc
call TrainerInfo_FarCopyData
ld hl, BlankLeaderNames
ld de, vChars2 + $600
- ld bc, $0170
+ ld bc, $170
call TrainerInfo_FarCopyData
pop bc
ld hl, BadgeNumbersTileGraphics ; badge number tile patterns
@@ -504,14 +504,14 @@ DrawTrainerInfo:
call TrainerInfo_FarCopyData
ld hl, GymLeaderFaceAndBadgeTileGraphics ; gym leader face and badge tile patterns
ld de, vChars2 + $200
- ld bc, $0400
+ ld bc, $400
ld a, $03
call FarCopyData2
ld hl, TextBoxGraphics
- ld de, $00d0
+ ld de, $d0
add hl, de ; hl = colon tile pattern
ld de, vChars1 + $560
- ld bc, $0010
+ ld bc, $10
ld a, $04
push bc
call FarCopyData2
@@ -648,7 +648,7 @@ StartMenu_SaveReset::
StartMenu_Option::
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call ClearScreen
call UpdateSprites
callab DisplayOptionMenu
diff --git a/engine/menus/swap_items.asm b/engine/menus/swap_items.asm
index 826fe60b..8b793ea1 100644
--- a/engine/menus/swap_items.asm
+++ b/engine/menus/swap_items.asm
@@ -77,18 +77,18 @@ HandleItemListSwapping::
cp b
jr z, .swapSameItemType
.swapDifferentItems
- ld [$ff95], a ; [$ff95] = second item ID
+ ld [hSwapItemID], a ; save second item ID
ld a, [hld]
- ld [$ff96], a ; [$ff96] = second item quantity
+ ld [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]
+ ld a, [hSwapItemQuantity]
ld [de], a ; put second item quantity in first item slot
dec de
- ld a, [$ff95]
+ ld 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/movie/credits.asm b/engine/movie/credits.asm
index f820aae3..4ba50615 100755
--- a/engine/movie/credits.asm
+++ b/engine/movie/credits.asm
@@ -21,7 +21,7 @@ HallOfFamePC:
ld a, %11000000
ld [rBGP], a
call EnableLCD
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
call PlaySoundWaitForCurrent
ld c, BANK(Music_Credits)
ld a, MUSIC_CREDITS
@@ -47,7 +47,7 @@ FadeInCreditsText:
DisplayCreditsMon:
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call SaveScreenTilesToBuffer1
call FillMiddleOfScreenWithWhite
@@ -67,7 +67,7 @@ DisplayCreditsMon:
ld hl, vBGMap0 + $c
call CreditsCopyTileMapToVRAM
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call LoadScreenTilesFromBuffer1
ld hl, vBGMap0
call CreditsCopyTileMapToVRAM
@@ -104,7 +104,7 @@ DisplayCreditsMon:
ld [rBGP], a
ret
-INCLUDE "data/credit_mons.asm"
+INCLUDE "data/credits/credits_mons.asm"
ScrollCreditsMonLeft:
ld h, b
@@ -138,11 +138,11 @@ HoFGBPalettes:
CreditsCopyTileMapToVRAM:
ld a, l
- ld [H_AUTOBGTRANSFERDEST], a
+ ld [hAutoBGTransferDest], a
ld a, h
- ld [H_AUTOBGTRANSFERDEST + 1], a
+ ld [hAutoBGTransferDest + 1], a
ld a, 1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
jp Delay3
ZeroMemory:
@@ -261,9 +261,9 @@ TheEndTextString:
db $60," ",$62," ",$64," ",$64," ",$66," ",$68,"@"
db $61," ",$63," ",$65," ",$65," ",$67," ",$69,"@"
-INCLUDE "data/credits_order.asm"
+INCLUDE "data/credits/credits_order.asm"
-INCLUDE "text/credits_text.asm"
+INCLUDE "data/credits/credits_text.asm"
TheEndGfx:
INCBIN "gfx/intro_credits/the_end.2bpp"
diff --git a/engine/movie/evolution.asm b/engine/movie/evolution.asm
index 731735c5..1e3aaad4 100755
--- a/engine/movie/evolution.asm
+++ b/engine/movie/evolution.asm
@@ -9,16 +9,16 @@ EvolveMon:
xor a
ld [wLowHealthAlarm], a
ld [wChannelSoundIDs + Ch5], a
- dec a
+ dec a ; SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld a, SFX_TINK
call PlaySound
call Delay3
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld [hTilesetType], a
ld a, [wEvoOldSpecies]
ld [wWholeScreenPaletteMonSpecies], a
@@ -37,7 +37,7 @@ EvolveMon:
ld [wd0b5], a
call Evolution_LoadPic
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld a, [wEvoOldSpecies]
call PlayCry
call WaitForSoundToFinish
@@ -67,7 +67,7 @@ EvolveMon:
ld a, [wEvoNewSpecies]
.done
ld [wWholeScreenPaletteMonSpecies], a
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
ld a, [wWholeScreenPaletteMonSpecies]
@@ -117,7 +117,7 @@ Evolution_BackAndForthAnim:
Evolution_ChangeMonPic:
push bc
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
coord hl, 7, 2
lb bc, 7, 7
ld de, SCREEN_WIDTH - 7
@@ -134,7 +134,7 @@ Evolution_ChangeMonPic:
dec b
jr nz, .loop
ld a, 1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Delay3
pop bc
ret
diff --git a/engine/movie/hall_of_fame.asm b/engine/movie/hall_of_fame.asm
index 3c9b1723..d874b2fd 100755
--- a/engine/movie/hall_of_fame.asm
+++ b/engine/movie/hall_of_fame.asm
@@ -24,7 +24,7 @@ AnimateHallOfFame:
ld [wLetterPrintingDelayFlags], a ; no delay
ld [wHoFMonOrPlayer], a ; mon
inc a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld hl, wNumHoFTeams
ld a, [hl]
inc a
diff --git a/engine/movie/intro.asm b/engine/movie/intro.asm
index 9a13c96f..a8151ab4 100755
--- a/engine/movie/intro.asm
+++ b/engine/movie/intro.asm
@@ -14,13 +14,13 @@ PlayIntro:
xor a
ld [hJoyHeld], a
inc a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call PlayShootingStar
call PlayIntroScene
call GBFadeOutToWhite
xor a
ld [hSCX], a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call ClearSprites
call DelayFrame
ret
diff --git a/engine/movie/oak_speech/oak_speech.asm b/engine/movie/oak_speech/oak_speech.asm
index b1acfb65..578cf3b2 100755
--- a/engine/movie/oak_speech/oak_speech.asm
+++ b/engine/movie/oak_speech/oak_speech.asm
@@ -32,8 +32,8 @@ SetDefaultNames:
jp CopyData
OakSpeech:
- ld a, $FF
- call PlaySound ; stop music
+ ld a, SFX_STOP_ALL_MUSIC
+ call PlaySound
ld a, BANK(Music_Routes2)
ld c, a
ld a, MUSIC_ROUTES2
@@ -57,7 +57,7 @@ OakSpeech:
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:
call GBFadeOutToWhite
call ClearScreen
ld de, RedPicFront
- lb bc, Bank(RedPicFront), $00
+ lb bc, BANK(RedPicFront), $00
call IntroDisplayPicCenteredOrUpperRight
call MovePicLeft
ld hl, IntroducePlayerText
@@ -85,7 +85,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
@@ -95,7 +95,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]
@@ -104,12 +104,12 @@ OakSpeech:
ld hl, OakSpeechText3
call PrintText
.next
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, SFX_SHRINK
call PlaySound
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ld c, 4
call DelayFrames
@@ -126,18 +126,18 @@ OakSpeech:
lb bc, BANK(ShrinkPic2), $00
call IntroDisplayPicCenteredOrUpperRight
call ResetPlayerSpriteData
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, BANK(Music_PalletTown)
ld [wAudioROMBank], a
ld [wAudioSavedROMBank], a
ld a, 10
ld [wAudioFadeOutControl], a
- ld a, $FF
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
- call PlaySound ; stop music
+ call PlaySound
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ld c, 20
call DelayFrames
diff --git a/engine/movie/oak_speech/oak_speech2.asm b/engine/movie/oak_speech/oak_speech2.asm
index fdc9ffa3..8c4a896b 100755
--- a/engine/movie/oak_speech/oak_speech2.asm
+++ b/engine/movie/oak_speech/oak_speech2.asm
@@ -107,7 +107,7 @@ OakSpeechSlidePicCommon:
ld e, l
.loop
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld a, [hSlideDirection]
and a
jr nz, .slideLeft
@@ -134,7 +134,7 @@ OakSpeechSlidePicCommon:
ld [hl], a
.next3
ld a, 1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Delay3
ld a, [hSlidingRegionSize]
ld c, a
@@ -187,7 +187,7 @@ DisplayIntroNameTextBox:
.namestring
db "NAME@"
-INCLUDE "text/player_names.asm"
+INCLUDE "data/player_names.asm"
GetDefaultName:
; a = name index
@@ -213,7 +213,7 @@ GetDefaultName:
ld bc, $14
jp CopyData
-INCLUDE "text/player_names_list.asm"
+INCLUDE "data/player_names_list.asm"
TextTerminator_6b20:
db "@"
diff --git a/engine/movie/title.asm b/engine/movie/title.asm
new file mode 100755
index 00000000..9cbe5494
--- /dev/null
+++ b/engine/movie/title.asm
@@ -0,0 +1,403 @@
+; copy text of fixed length NAME_LENGTH (like player name, rival name, mon names, ...)
+CopyFixedLengthText:
+ ld bc, NAME_LENGTH
+ jp CopyData
+
+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 [hAutoBGTransferEnabled], 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
+ ld hl, NintendoCopyrightLogoGraphics
+ ld de, vTitleLogo2 + $100
+ ld bc, $50
+ ld a, BANK(NintendoCopyrightLogoGraphics)
+ call FarCopyData2
+ ld hl, GamefreakLogoGraphics
+ ld de, vTitleLogo2 + $100 + $50
+ ld bc, $90
+ ld a, BANK(GamefreakLogoGraphics)
+ call FarCopyData2
+ ld hl, PokemonLogoGraphics
+ ld de, vTitleLogo
+ ld bc, $600
+ ld a, BANK(PokemonLogoGraphics)
+ call FarCopyData2 ; first chunk
+ ld hl, PokemonLogoGraphics+$600
+ ld de, vTitleLogo2
+ ld bc, $100
+ ld a, BANK(PokemonLogoGraphics)
+ call FarCopyData2 ; second chunk
+ ld hl, Version_GFX
+ ld de, vChars2 + $600 - (Version_GFXEnd - Version_GFX - $50)
+ ld bc, Version_GFXEnd - Version_GFX
+ ld a, BANK(Version_GFX)
+ call FarCopyDataDouble
+ call ClearBothBGMaps
+
+; place tiles for pokemon logo (except for the last row)
+ coord hl, 2, 1
+ ld a, $80
+ ld de, SCREEN_WIDTH
+ ld c, 6
+.pokemonLogoTileLoop
+ ld b, $10
+ push hl
+.pokemonLogoTileRowLoop ; place tiles for one row
+ ld [hli], a
+ inc a
+ dec b
+ jr nz, .pokemonLogoTileRowLoop
+ pop hl
+ add hl, de
+ dec c
+ jr nz, .pokemonLogoTileLoop
+
+; place tiles for the last row of the pokemon logo
+ coord hl, 2, 7
+ ld a, $31
+ ld b, $10
+.pokemonLogoLastTileRowLoop
+ ld [hli], a
+ inc a
+ dec b
+ jr nz, .pokemonLogoLastTileRowLoop
+
+ call DrawPlayerCharacter
+
+; put a pokeball in the player's hand
+ ld hl, wOAMBuffer + $28
+ ld a, $74
+ ld [hl], a
+
+; place tiles for title screen copyright
+ coord hl, 2, 17
+ ld de, .tileScreenCopyrightTiles
+ ld b, $10
+.tileScreenCopyrightTilesLoop
+ ld a, [de]
+ ld [hli], a
+ inc de
+ dec b
+ jr nz, .tileScreenCopyrightTilesLoop
+
+ jr .next
+
+.tileScreenCopyrightTiles
+ db $41,$42,$43,$42,$44,$42,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E ; ©'95.'96.'98 GAME FREAK inc.
+
+.next
+ call SaveScreenTilesToBuffer2
+ call LoadScreenTilesFromBuffer2
+ call EnableLCD
+IF DEF(_RED)
+ ld a, CHARMANDER ; which Pokemon to show first on the title screen
+ENDC
+IF DEF(_BLUE)
+ ld a, SQUIRTLE ; which Pokemon to show first on the title screen
+ENDC
+
+ ld [wTitleMonSpecies], a
+ call LoadTitleMonSprite
+ ld a, (vBGMap0 + $300) / $100
+ 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, %11100100
+ ld [rOBP0], a
+
+; 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
+
+.finishedBouncingPokemonLogo
+ call LoadScreenTilesFromBuffer1
+ ld c, 36
+ call DelayFrames
+ ld a, SFX_INTRO_WHOOSH
+ call PlaySound
+
+; scroll game version in from the right
+ call PrintGameVersionOnTitleScreen
+ ld a, SCREEN_HEIGHT_PIXELS
+ ld [hWY], a
+ ld d, 144
+.scrollTitleScreenGameVersionLoop
+ ld h, d
+ ld l, 64
+ call ScrollTitleScreenGameVersion
+ ld h, 0
+ ld l, 80
+ call ScrollTitleScreenGameVersion
+ ld a, d
+ add 4
+ ld d, a
+ and a
+ jr nz, .scrollTitleScreenGameVersionLoop
+
+ ld a, vBGMap1 / $100
+ call TitleScreenCopyTileMapToVRAM
+ call LoadScreenTilesFromBuffer2
+ call PrintGameVersionOnTitleScreen
+ call Delay3
+ call WaitForSoundToFinish
+ ld a, MUSIC_TITLE_SCREEN
+ ld [wNewSoundID], a
+ call PlaySound
+ xor a
+ ld [wUnusedCC5B], a
+
+; Keep scrolling in new mons indefinitely until the user performs input.
+.awaitUserInterruptionLoop
+ ld c, 200
+ call CheckForUserInterruption
+ jr c, .finishedWaiting
+ call TitleScreenScrollInMon
+ ld c, 1
+ call CheckForUserInterruption
+ jr c, .finishedWaiting
+ callba TitleScreenAnimateBallIfStarterOut
+ call TitleScreenPickNewMon
+ jr .awaitUserInterruptionLoop
+
+.finishedWaiting
+ ld a, [wTitleMonSpecies]
+ call PlayCry
+ call WaitForSoundToFinish
+ call GBPalWhiteOutWithDelay3
+ call ClearSprites
+ xor a
+ ld [hWY], a
+ inc a
+ ld [hAutoBGTransferEnabled], 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
+
+.doClearSaveDialogue
+ jpba DoClearSaveDialogue
+
+TitleScreenPickNewMon:
+ ld a, vBGMap0 / $100
+ call TitleScreenCopyTileMapToVRAM
+
+.loop
+; Keep looping until a mon different from the current one is picked.
+ call Random
+ and $f
+ ld c, a
+ ld b, 0
+ ld hl, TitleMons
+ add hl, bc
+ ld a, [hl]
+ ld hl, wTitleMonSpecies
+
+; Can't be the same as before.
+ cp [hl]
+ jr z, .loop
+
+ ld [hl], a
+ call LoadTitleMonSprite
+
+ ld a, $90
+ ld [hWY], a
+ ld d, 1 ; scroll out
+ callba TitleScroll
+ ret
+
+TitleScreenScrollInMon:
+ ld d, 0 ; scroll in
+ callba TitleScroll
+ xor a
+ ld [hWY], a
+ ret
+
+ScrollTitleScreenGameVersion:
+.wait
+ ld a, [rLY]
+ cp l
+ jr nz, .wait
+
+ ld a, h
+ ld [rSCX], a
+
+.wait2
+ ld a, [rLY]
+ cp h
+ jr z, .wait2
+ ret
+
+DrawPlayerCharacter:
+ ld hl, PlayerCharacterTitleGraphics
+ ld de, vSprites
+ ld bc, PlayerCharacterTitleGraphicsEnd - PlayerCharacterTitleGraphics
+ ld a, BANK(PlayerCharacterTitleGraphics)
+ call FarCopyData2
+ call ClearSprites
+ xor a
+ ld [wPlayerCharacterOAMTile], a
+ ld hl, wOAMBuffer
+ lb de, $60, $5a
+ ld b, 7
+.loop
+ push de
+ ld c, 5
+.innerLoop
+ ld a, d
+ ld [hli], a ; Y
+ ld a, e
+ ld [hli], a ; X
+ add 8
+ ld e, a
+ ld a, [wPlayerCharacterOAMTile]
+ ld [hli], a ; tile
+ inc a
+ ld [wPlayerCharacterOAMTile], a
+ inc hl
+ dec c
+ jr nz, .innerLoop
+ pop de
+ ld a, 8
+ add d
+ ld d, a
+ dec b
+ jr nz, .loop
+ ret
+
+ClearBothBGMaps:
+ ld hl, vBGMap0
+ ld bc, $400 * 2
+ ld a, " "
+ jp FillMemory
+
+LoadTitleMonSprite:
+ ld [wcf91], a
+ ld [wd0b5], a
+ coord hl, 5, 10
+ call GetMonHeader
+ jp LoadFrontSpriteByMonIndex
+
+TitleScreenCopyTileMapToVRAM:
+ ld [hAutoBGTransferDest + 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), (GamefreakLogoGraphicsEnd - NintendoCopyrightLogoGraphics) / $10
+ call CopyVideoData
+ coord hl, 2, 7
+ ld de, CopyrightTextString
+ jp PlaceString
+
+CopyrightTextString:
+ db $60,$61,$62,$61,$63,$61,$64,$7F,$65,$66,$67,$68,$69,$6A ; ©'95.'96.'98 Nintendo
+ next $60,$61,$62,$61,$63,$61,$64,$7F,$6B,$6C,$6D,$6E,$6F,$70,$71,$72 ; ©'95.'96.'98 Creatures inc.
+ next $60,$61,$62,$61,$63,$61,$64,$7F,$73,$74,$75,$76,$77,$78,$79,$7A,$7B ; ©'95.'96.'98 GAME FREAK inc.
+ db "@"
+
+INCLUDE "data/pokemon/title_mons.asm"
+
+; prints version text (red, blue)
+PrintGameVersionOnTitleScreen:
+ coord hl, 7, 8
+ ld de, VersionOnTitleScreenText
+ jp PlaceString
+
+; these point to special tiles specifically loaded for that purpose and are not usual text
+VersionOnTitleScreenText:
+IF DEF(_RED)
+ db $60,$61,$7F,$65,$66,$67,$68,$69,"@" ; "Red Version"
+ENDC
+IF DEF(_BLUE)
+ db $61,$62,$63,$64,$65,$66,$67,$68,"@" ; "Blue Version"
+ENDC
+
+NintenText: db "NINTEN@"
+SonyText: db "SONY@"
diff --git a/engine/movie/titlescreen2.asm b/engine/movie/title2.asm
index 2346fcc5..2346fcc5 100755
--- a/engine/movie/titlescreen2.asm
+++ b/engine/movie/title2.asm
diff --git a/engine/movie/titlescreen.asm b/engine/movie/titlescreen.asm
deleted file mode 100755
index c30f83a9..00000000
--- a/engine/movie/titlescreen.asm
+++ /dev/null
@@ -1,403 +0,0 @@
-; copy text of fixed length NAME_LENGTH (like player name, rival name, mon names, ...)
-CopyFixedLengthText:
- ld bc, NAME_LENGTH
- jp CopyData
-
-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
- ld hl, NintendoCopyrightLogoGraphics
- ld de, vTitleLogo2 + $100
- ld bc, $50
- ld a, BANK(NintendoCopyrightLogoGraphics)
- call FarCopyData2
- ld hl, GamefreakLogoGraphics
- ld de, vTitleLogo2 + $100 + $50
- ld bc, $90
- ld a, BANK(GamefreakLogoGraphics)
- call FarCopyData2
- ld hl, PokemonLogoGraphics
- ld de, vTitleLogo
- ld bc, $600
- ld a, BANK(PokemonLogoGraphics)
- call FarCopyData2 ; first chunk
- ld hl, PokemonLogoGraphics+$600
- ld de, vTitleLogo2
- ld bc, $100
- ld a, BANK(PokemonLogoGraphics)
- call FarCopyData2 ; second chunk
- ld hl, Version_GFX
- ld de, vChars2 + $600 - (Version_GFXEnd - Version_GFX - $50)
- ld bc, Version_GFXEnd - Version_GFX
- ld a, BANK(Version_GFX)
- call FarCopyDataDouble
- call ClearBothBGMaps
-
-; place tiles for pokemon logo (except for the last row)
- coord hl, 2, 1
- ld a, $80
- ld de, SCREEN_WIDTH
- ld c, 6
-.pokemonLogoTileLoop
- ld b, $10
- push hl
-.pokemonLogoTileRowLoop ; place tiles for one row
- ld [hli], a
- inc a
- dec b
- jr nz, .pokemonLogoTileRowLoop
- pop hl
- add hl, de
- dec c
- jr nz, .pokemonLogoTileLoop
-
-; place tiles for the last row of the pokemon logo
- coord hl, 2, 7
- ld a, $31
- ld b, $10
-.pokemonLogoLastTileRowLoop
- ld [hli], a
- inc a
- dec b
- jr nz, .pokemonLogoLastTileRowLoop
-
- call DrawPlayerCharacter
-
-; put a pokeball in the player's hand
- ld hl, wOAMBuffer + $28
- ld a, $74
- ld [hl], a
-
-; place tiles for title screen copyright
- coord hl, 2, 17
- ld de, .tileScreenCopyrightTiles
- ld b, $10
-.tileScreenCopyrightTilesLoop
- ld a, [de]
- ld [hli], a
- inc de
- dec b
- jr nz, .tileScreenCopyrightTilesLoop
-
- jr .next
-
-.tileScreenCopyrightTiles
- db $41,$42,$43,$42,$44,$42,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E ; ©'95.'96.'98 GAME FREAK inc.
-
-.next
- call SaveScreenTilesToBuffer2
- call LoadScreenTilesFromBuffer2
- call EnableLCD
-IF DEF(_RED)
- ld a, CHARMANDER ; which Pokemon to show first on the title screen
-ENDC
-IF DEF(_BLUE)
- ld a, SQUIRTLE ; which Pokemon to show first on the title screen
-ENDC
-
- ld [wTitleMonSpecies], a
- call LoadTitleMonSprite
- ld a, (vBGMap0 + $300) / $100
- 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, %11100100
- ld [rOBP0], a
-
-; 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
-
-.finishedBouncingPokemonLogo
- call LoadScreenTilesFromBuffer1
- ld c, 36
- call DelayFrames
- ld a, SFX_INTRO_WHOOSH
- call PlaySound
-
-; scroll game version in from the right
- call PrintGameVersionOnTitleScreen
- ld a, SCREEN_HEIGHT_PIXELS
- ld [hWY], a
- ld d, 144
-.scrollTitleScreenGameVersionLoop
- ld h, d
- ld l, 64
- call ScrollTitleScreenGameVersion
- ld h, 0
- ld l, 80
- call ScrollTitleScreenGameVersion
- ld a, d
- add 4
- ld d, a
- and a
- jr nz, .scrollTitleScreenGameVersionLoop
-
- ld a, vBGMap1 / $100
- call TitleScreenCopyTileMapToVRAM
- call LoadScreenTilesFromBuffer2
- call PrintGameVersionOnTitleScreen
- call Delay3
- call WaitForSoundToFinish
- ld a, MUSIC_TITLE_SCREEN
- ld [wNewSoundID], a
- call PlaySound
- xor a
- ld [wUnusedCC5B], a
-
-; Keep scrolling in new mons indefinitely until the user performs input.
-.awaitUserInterruptionLoop
- ld c, 200
- call CheckForUserInterruption
- jr c, .finishedWaiting
- call TitleScreenScrollInMon
- ld c, 1
- call CheckForUserInterruption
- jr c, .finishedWaiting
- callba TitleScreenAnimateBallIfStarterOut
- call TitleScreenPickNewMon
- jr .awaitUserInterruptionLoop
-
-.finishedWaiting
- ld a, [wTitleMonSpecies]
- call PlayCry
- call WaitForSoundToFinish
- 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
-
-.doClearSaveDialogue
- jpba DoClearSaveDialogue
-
-TitleScreenPickNewMon:
- ld a, vBGMap0 / $100
- call TitleScreenCopyTileMapToVRAM
-
-.loop
-; Keep looping until a mon different from the current one is picked.
- call Random
- and $f
- ld c, a
- ld b, 0
- ld hl, TitleMons
- add hl, bc
- ld a, [hl]
- ld hl, wTitleMonSpecies
-
-; Can't be the same as before.
- cp [hl]
- jr z, .loop
-
- ld [hl], a
- call LoadTitleMonSprite
-
- ld a, $90
- ld [hWY], a
- ld d, 1 ; scroll out
- callba TitleScroll
- ret
-
-TitleScreenScrollInMon:
- ld d, 0 ; scroll in
- callba TitleScroll
- xor a
- ld [hWY], a
- ret
-
-ScrollTitleScreenGameVersion:
-.wait
- ld a, [rLY]
- cp l
- jr nz, .wait
-
- ld a, h
- ld [rSCX], a
-
-.wait2
- ld a, [rLY]
- cp h
- jr z, .wait2
- ret
-
-DrawPlayerCharacter:
- ld hl, PlayerCharacterTitleGraphics
- ld de, vSprites
- ld bc, PlayerCharacterTitleGraphicsEnd - PlayerCharacterTitleGraphics
- ld a, BANK(PlayerCharacterTitleGraphics)
- call FarCopyData2
- call ClearSprites
- xor a
- ld [wPlayerCharacterOAMTile], a
- ld hl, wOAMBuffer
- ld de, $605a
- ld b, 7
-.loop
- push de
- ld c, 5
-.innerLoop
- ld a, d
- ld [hli], a ; Y
- ld a, e
- ld [hli], a ; X
- add 8
- ld e, a
- ld a, [wPlayerCharacterOAMTile]
- ld [hli], a ; tile
- inc a
- ld [wPlayerCharacterOAMTile], a
- inc hl
- dec c
- jr nz, .innerLoop
- pop de
- ld a, 8
- add d
- ld d, a
- dec b
- jr nz, .loop
- ret
-
-ClearBothBGMaps:
- ld hl, vBGMap0
- ld bc, $400 * 2
- ld a, " "
- jp FillMemory
-
-LoadTitleMonSprite:
- ld [wcf91], a
- ld [wd0b5], a
- coord hl, 5, 10
- call GetMonHeader
- jp LoadFrontSpriteByMonIndex
-
-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), (GamefreakLogoGraphicsEnd - NintendoCopyrightLogoGraphics) / $10
- call CopyVideoData
- coord hl, 2, 7
- ld de, CopyrightTextString
- jp PlaceString
-
-CopyrightTextString:
- db $60,$61,$62,$61,$63,$61,$64,$7F,$65,$66,$67,$68,$69,$6A ; ©'95.'96.'98 Nintendo
- next $60,$61,$62,$61,$63,$61,$64,$7F,$6B,$6C,$6D,$6E,$6F,$70,$71,$72 ; ©'95.'96.'98 Creatures inc.
- next $60,$61,$62,$61,$63,$61,$64,$7F,$73,$74,$75,$76,$77,$78,$79,$7A,$7B ; ©'95.'96.'98 GAME FREAK inc.
- db "@"
-
-INCLUDE "data/title_mons.asm"
-
-; prints version text (red, blue)
-PrintGameVersionOnTitleScreen:
- coord hl, 7, 8
- ld de, VersionOnTitleScreenText
- jp PlaceString
-
-; these point to special tiles specifically loaded for that purpose and are not usual text
-VersionOnTitleScreenText:
-IF DEF(_RED)
- db $60,$61,$7F,$65,$66,$67,$68,$69,"@" ; "Red Version"
-ENDC
-IF DEF(_BLUE)
- db $61,$62,$63,$64,$65,$66,$67,$68,"@" ; "Blue Version"
-ENDC
-
-NintenText: db "NINTEN@"
-SonyText: db "SONY@"
diff --git a/engine/movie/trade.asm b/engine/movie/trade.asm
index 8bc8e3bc..6af6f2e3 100755
--- a/engine/movie/trade.asm
+++ b/engine/movie/trade.asm
@@ -137,10 +137,10 @@ Trade_Delay100:
Trade_CopyTileMapToVRAM:
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Delay3
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ret
Trade_Delay80:
@@ -184,7 +184,7 @@ LoadTradingGFXAndMonNames:
ld [rOBP0], a
call EnableLCD
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld a, [wTradedPlayerMonSpecies]
ld [wd11e], a
call GetMonName
@@ -231,7 +231,7 @@ Trade_ShowPlayerMon:
ld [rWX], a
ld [hSCX], a
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
coord hl, 4, 0
ld b, 6
ld c, 10
@@ -261,7 +261,7 @@ Trade_ShowPlayerMon:
ld a, [wTradedPlayerMonSpecies]
call PlayCry
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ret
Trade_DrawOpenEndOfLinkCable:
@@ -336,13 +336,13 @@ Trade_AnimateBallEnteringLinkCable:
.ballSpriteReachedEdgeOfScreen
call ClearSprites
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call ClearScreen
ld b, $98
call CopyScreenTileBufferToVRAM
call Delay3
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ret
Trade_BallInsideLinkCableOAM:
@@ -360,13 +360,13 @@ Trade_ShowEnemyMon:
call Trade_PrintEnemyMonInfoText
call Trade_CopyTileMapToVRAM
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld a, [wTradedEnemyMonSpecies]
call Trade_LoadMonSprite
ld a, TRADE_BALL_POOF_ANIM
call Trade_ShowAnimation
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld a, [wTradedEnemyMonSpecies]
call PlayCry
call Trade_Delay100
@@ -397,7 +397,7 @@ Trade_AnimLeftToRight:
ld b, $6
call Trade_AnimMonMoveHorizontal
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Trade_DrawCableAcrossScreen
ld b, $4
call Trade_AnimMonMoveHorizontal
@@ -405,7 +405,7 @@ Trade_AnimLeftToRight:
ld b, $6
call Trade_AnimMonMoveHorizontal
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Trade_AnimMonMoveVertical
jp ClearSprites
@@ -430,7 +430,7 @@ Trade_AnimRightToLeft:
ld b, $6
call Trade_AnimMonMoveHorizontal
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Trade_DrawCableAcrossScreen
ld b, $4
call Trade_AnimMonMoveHorizontal
@@ -438,16 +438,16 @@ Trade_AnimRightToLeft:
ld b, $6
call Trade_AnimMonMoveHorizontal
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
jp ClearSprites
Trade_InitGameboyTransferGfx:
; Initialises the graphics for showing a mon moving between gameboys.
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call ClearScreen
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Trade_LoadMonPartySpriteGfx
call DelayFrame
ld a, %10101011
@@ -731,9 +731,9 @@ Trade_LoadMonSprite:
ld b, SET_PAL_POKEMON_WHOLE_SCREEN
ld c, 0
call RunPaletteCommand
- ld a, [H_AUTOBGTRANSFERENABLED]
+ ld a, [hAutoBGTransferEnabled]
xor $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call GetMonHeader
coord hl, 7, 2
call LoadFlippedFrontSpriteByMonIndex
@@ -743,7 +743,7 @@ Trade_LoadMonSprite:
Trade_ShowClearedWindow:
; clears the window and covers the BG entirely with the window
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call ClearScreen
ld a, %11100011
ld [rLCDC], a
diff --git a/engine/overworld/auto_movement.asm b/engine/overworld/auto_movement.asm
index e478c9ad..421e3180 100755
--- a/engine/overworld/auto_movement.asm
+++ b/engine/overworld/auto_movement.asm
@@ -66,7 +66,7 @@ PalletMovementScript_OakMoveLeft:
call FillMemory
ld [hl], $ff
ld a, [wSpriteIndex]
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld de, wNPCMovementDirections2
call MoveSprite
ld a, $1
@@ -282,7 +282,7 @@ FreezeEnemyTrainerSprite::
jr .loop
.notRival
ld a, [wSpriteIndex]
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
jp SetSpriteMovementBytesToFF
RivalIDs:
diff --git a/engine/overworld/clear_variables.asm b/engine/overworld/clear_variables.asm
index 32dc85cd..b5a1f4a0 100644
--- a/engine/overworld/clear_variables.asm
+++ b/engine/overworld/clear_variables.asm
@@ -3,7 +3,7 @@ ClearVariablesOnEnterMap::
ld [hWY], a
ld [rWY], a
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld [wStepCounter], a
ld [wLoneAttackNo], a
ld [hJoyPressed], a
diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm
index f61ca65f..c75fbbb6 100755
--- a/engine/overworld/cut.asm
+++ b/engine/overworld/cut.asm
@@ -248,4 +248,4 @@ ReplaceTreeTileBlock:
ld [hl], a
ret
-INCLUDE "data/cut_tree_blocks.asm"
+INCLUDE "data/tilesets/cut_tree_blocks.asm"
diff --git a/engine/overworld/doors.asm b/engine/overworld/doors.asm
index 1339430a..ed893773 100755
--- a/engine/overworld/doors.asm
+++ b/engine/overworld/doors.asm
@@ -25,4 +25,4 @@ IsPlayerStandingOnDoorTile:
and a
ret
-INCLUDE "data/door_tile_ids.asm"
+INCLUDE "data/tilesets/door_tile_ids.asm"
diff --git a/engine/overworld/elevator.asm b/engine/overworld/elevator.asm
index d36e2f2c..05ca08c9 100755
--- a/engine/overworld/elevator.asm
+++ b/engine/overworld/elevator.asm
@@ -4,7 +4,7 @@ ShakeElevator::
ld de, SCREEN_HEIGHT * $20
call ShakeElevatorRedrawRow
call Delay3
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
call PlaySound
ld a, [hSCY]
ld d, a
@@ -27,7 +27,7 @@ ShakeElevator::
jr nz, .shakeLoop
ld a, d
ld [hSCY], a
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
call PlaySound
ld c, BANK(SFX_Safari_Zone_PA)
ld a, SFX_SAFARI_ZONE_PA
diff --git a/engine/overworld/healing_machine.asm b/engine/overworld/healing_machine.asm
index 510f963b..836af44d 100755
--- a/engine/overworld/healing_machine.asm
+++ b/engine/overworld/healing_machine.asm
@@ -17,7 +17,7 @@ AnimateHealingMachine:
call CopyHealingMachineOAM
ld a, 4
ld [wAudioFadeOutControl], a
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
.waitLoop
@@ -38,7 +38,7 @@ AnimateHealingMachine:
cp BANK(Audio3_UpdateMusic)
ld [wAudioSavedROMBank], a
jr nz, .next
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
ld a, BANK(Music_PkmnHealed)
diff --git a/engine/overworld/hidden_objects.asm b/engine/overworld/hidden_objects.asm
index c93f2e1b..a19694e0 100755
--- a/engine/overworld/hidden_objects.asm
+++ b/engine/overworld/hidden_objects.asm
@@ -14,14 +14,14 @@ IsPlayerOnDungeonWarp::
set 4, [hl]
ret
-; if a hidden object was found, stores $00 in [$ffee], else stores $ff
+; if a hidden object was found, stores $00 in [hFoundHiddenObject], else stores $ff
CheckForHiddenObject::
- ld hl, $ffeb
+ ld hl, hFoundHiddenObjectOrBookshelf
xor a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
+ ld [hli], a ; [hFoundHiddenObjectOrBookshelf]
+ ld [hli], a ; [hSavedMapTextPtr]
+ ld [hli], a ; [hSavedMapTextPtr + 1]
+ ld [hl], a ; [hFoundHiddenObject]
ld de, $0
ld hl, HiddenObjectMaps
.hiddenMapLoop
@@ -81,7 +81,7 @@ CheckForHiddenObject::
ret
.noMatch
ld a, $ff
- ld [$ffee], a
+ ld [hFoundHiddenObject], a
ret
; checks if the coordinates in front of the player's sprite match Y in b and X in c
@@ -130,4 +130,4 @@ CheckIfCoordsInFrontOfPlayerMatch:
ld [hCoordsInFrontOfPlayerMatch], a
ret
-INCLUDE "data/hidden_objects.asm"
+INCLUDE "data/events/hidden_objects.asm"
diff --git a/engine/overworld/ledges.asm b/engine/overworld/ledges.asm
index 290c8c80..c56914f6 100755
--- a/engine/overworld/ledges.asm
+++ b/engine/overworld/ledges.asm
@@ -54,7 +54,7 @@ HandleLedges::
call PlaySound
ret
-INCLUDE "data/ledge_tiles.asm"
+INCLUDE "data/tilesets/ledge_tiles.asm"
LoadHoppingShadowOAM:
ld hl, vChars1 + $7f0
diff --git a/engine/overworld/map_sprites.asm b/engine/overworld/map_sprites.asm
index 19e25435..904e9b04 100755
--- a/engine/overworld/map_sprites.asm
+++ b/engine/overworld/map_sprites.asm
@@ -133,8 +133,7 @@ LoadMapSpriteTilePatterns:
jr nc, .fourTileSpriteVRAMAddr
ld d, a
dec d
-; Equivalent to multiplying $C0 (number of bytes in 12 tiles) times the VRAM
-; slot and adding the result to $8000 (the VRAM base address).
+; vSprites += [hVRAMSlot] * $C0 (the number of bytes in 12 tiles)
.calculateVRAMAddrLoop
add hl, bc
dec d
@@ -437,4 +436,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 7d6de545..a89fcb54 100644
--- a/engine/overworld/missable_objects.asm
+++ b/engine/overworld/missable_objects.asm
@@ -31,19 +31,19 @@ LoadMissableObjects:
sub d
ld h, a
ld a, h
- ld [H_DIVIDEND], a
+ ld [hDividend], a
ld a, l
- ld [H_DIVIDEND+1], a
+ ld [hDividend+1], a
xor a
- ld [H_DIVIDEND+2], a
- ld [H_DIVIDEND+3], a
+ ld [hDividend+2], a
+ ld [hDividend+3], a
ld a, $3
- ld [H_DIVISOR], a
+ ld [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]
+ ld a, [hDividend+3]
ld c, a ; store global offset in c
ld de, wMissableObjectList
pop hl
@@ -99,7 +99,7 @@ InitializeMissableObjectsFlags:
; tests if current sprite is a missable object that is hidden/has been removed
IsObjectHidden:
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
swap a
ld b, a
ld hl, wMissableObjectList
@@ -120,7 +120,7 @@ IsObjectHidden:
.notHidden
xor a
.hidden
- ld [$ffe5], a
+ ld [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 f272f497..6c354779 100644
--- a/engine/overworld/movement.asm
+++ b/engine/overworld/movement.asm
@@ -63,7 +63,7 @@ UpdatePlayerSprite:
ld a, [wd736]
bit 7, a ; is the player sprite spinning due to a spin tile?
jr nz, .skipSpriteAnim
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $7
ld l, a
ld a, [hl]
@@ -103,7 +103,7 @@ UpdatePlayerSprite:
UnusedReadSpriteDataFunction:
push bc
push af
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
ld c, a
pop af
add c
@@ -112,7 +112,7 @@ UnusedReadSpriteDataFunction:
ret
UpdateNPCSprite:
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
swap a
dec a
add a
@@ -122,7 +122,7 @@ UpdateNPCSprite:
ld a, [hl] ; read movement byte 2
ld [wCurSpriteMovement2], a
ld h, $c1
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
ld l, a
inc l
ld a, [hl] ; c1x1
@@ -131,7 +131,7 @@ UpdateNPCSprite:
call CheckSpriteAvailability
ret c ; if sprite is invisible, on tile >=MAP_TILESET_SIZE, in grass or player is currently walking
ld h, $c1
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
ld l, a
inc l
ld a, [hl] ; c1x1
@@ -151,7 +151,7 @@ UpdateNPCSprite:
ret nz ; don't do anything yet if player is currently moving (redundant, already tested in CheckSpriteAvailability)
call InitializeSpriteScreenPosition
ld h, $c2
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $6
ld l, a
ld a, [hl] ; c2x6: movement byte 1
@@ -264,11 +264,11 @@ ChangeFacingDirection:
TryWalking:
push hl
ld h, $c1
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $9
ld l, a
ld [hl], c ; c1x9 (update facing direction)
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $3
ld l, a
ld [hl], d ; c1x3 (update Y movement delta)
@@ -282,7 +282,7 @@ TryWalking:
pop de
ret c ; cannot walk there (reinitialization of delay values already done)
ld h, $c2
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $4
ld l, a
ld a, [hl] ; c2x4: Y position
@@ -291,7 +291,7 @@ TryWalking:
ld a, [hl] ; c2x5: X position
add e
ld [hl], a ; update X position
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
ld l, a
ld [hl], $10 ; c2x0=16: walk animation counter
dec h
@@ -301,7 +301,7 @@ TryWalking:
; update the walking animation parameters for a sprite that is currently walking
UpdateSpriteInWalkingAnimation:
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $7
ld l, a
ld a, [hl] ; c1x7 (counter until next walk animation frame)
@@ -317,7 +317,7 @@ UpdateSpriteInWalkingAnimation:
and $3
ld [hl], a ; advance to next animation frame every 4 ticks (16 ticks total for one step)
.noNextAnimationFrame
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $3
ld l, a
ld a, [hli] ; c1x3 (movement Y delta)
@@ -330,7 +330,7 @@ UpdateSpriteInWalkingAnimation:
ld a, [hl] ; c1x6 (screen X position)
add b
ld [hl], a ; update screen X position
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
ld l, a
inc h
ld a, [hl] ; c2x0 (walk animation counter)
@@ -343,7 +343,7 @@ UpdateSpriteInWalkingAnimation:
ld a, [hl] ; c2x6 (movement byte 1)
cp $fe
jr nc, .initNextMovementCounter ; values $fe and $ff
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
inc a
ld l, a
dec h
@@ -351,14 +351,14 @@ UpdateSpriteInWalkingAnimation:
ret
.initNextMovementCounter
call Random
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $8
ld l, a
ld 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 a, [hCurrentSpriteOffset]
inc a
ld l, a
ld [hl], $2 ; c1x1 = 2 (movement status)
@@ -375,7 +375,7 @@ UpdateSpriteInWalkingAnimation:
; update delay value (c2x8) for sprites in the delayed state (c1x1)
UpdateSpriteMovementDelay:
ld h, $c2
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $6
ld l, a
ld a, [hl] ; c2x6: movement byte 1
@@ -390,13 +390,13 @@ UpdateSpriteMovementDelay:
jr nz, notYetMoving
.moving
dec h
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
inc a
ld l, a
ld [hl], $1 ; c1x1 = 1 (mark as ready to move)
notYetMoving:
ld h, wSpriteStateData1 / $100
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $8
ld l, a
ld [hl], $0 ; c1x8 = 0 (walk animation frame)
@@ -429,7 +429,7 @@ MakeNPCFacePlayer:
.notFacingRight
ld c, SPRITE_FACING_LEFT
.facingDirectionDetermined
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $9
ld l, a
ld [hl], c ; c1x9: set facing direction
@@ -440,7 +440,7 @@ InitializeSpriteStatus:
inc l
ld [hl], $ff ; $c1x2: set sprite image to $ff (invisible/off screen)
inc h
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $2
ld l, a
ld a, $8
@@ -451,7 +451,7 @@ InitializeSpriteStatus:
; calculates the sprite's screen position form its map position and the player position
InitializeSpriteScreenPosition:
ld h, wSpriteStateData2 / $100
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $4
ld l, a
ld a, [wYCoord]
@@ -475,17 +475,17 @@ InitializeSpriteScreenPosition:
; tests if sprite is off screen or otherwise unable to do anything
CheckSpriteAvailability:
predef IsObjectHidden
- ld a, [$ffe5]
+ ld a, [hIsHiddenMissableObject]
and a
jp nz, .spriteInvisible
ld h, wSpriteStateData2 / $100
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $6
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]
+ ld a, [hCurrentSpriteOffset]
add $4
ld l, a
ld b, [hl] ; c2x4: Y pos (+4)
@@ -527,7 +527,7 @@ CheckSpriteAvailability:
jr c, .spriteVisible ; standing on tile with ID >=MAP_TILESET_SIZE (top right tile)
.spriteInvisible
ld h, wSpriteStateData1 / $100
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $2
ld l, a
ld [hl], $ff ; c1x2
@@ -540,7 +540,7 @@ CheckSpriteAvailability:
jr nz, .done ; if player is currently walking, we're done
call UpdateSpriteImage
inc h
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $7
ld l, a
ld a, [wGrassTile]
@@ -556,7 +556,7 @@ CheckSpriteAvailability:
UpdateSpriteImage:
ld h, $c1
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $8
ld l, a
ld a, [hli] ; c1x8: walk animation frame
@@ -564,10 +564,10 @@ UpdateSpriteImage:
ld a, [hl] ; c1x9: facing direction
add b
ld b, a
- ld a, [$ff93] ; current sprite offset
+ ld a, [hTilePlayerStandingOn]
add b
ld b, a
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $2
ld l, a
ld [hl], b ; c1x2: sprite to display
@@ -581,7 +581,7 @@ UpdateSpriteImage:
; set carry on failure, clears carry on success
CanWalkOntoTile:
ld h, wSpriteStateData2 / $100
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $6
ld l, a
ld a, [hl] ; c2x6 (movement byte 1)
@@ -602,14 +602,14 @@ CanWalkOntoTile:
cp c
jr nz, .tilePassableLoop
ld h, $c2
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $6
ld l, a
ld a, [hl] ; $c2x6 (movement byte 1)
inc a
jr z, .impassable ; if $ff, no movement allowed (however, changing direction is)
ld h, wSpriteStateData1 / $100
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $4
ld l, a
ld a, [hli] ; c1x4 (screen Y pos)
@@ -628,14 +628,14 @@ CanWalkOntoTile:
pop bc
pop de
ld h, wSpriteStateData1 / $100
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $c
ld l, a
ld a, [hl] ; c1xc (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]
+ ld a, [hCurrentSpriteOffset]
add $2
ld l, a
ld a, [hli] ; c2x2 (sprite Y displacement, initialized at $8, keep track of where a sprite did go)
@@ -666,7 +666,7 @@ CanWalkOntoTile:
ret
.impassable
ld h, $c1
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
inc a
ld l, a
ld [hl], $2 ; c1x1 = 2 (set movement status to delayed)
@@ -677,7 +677,7 @@ CanWalkOntoTile:
inc l
ld [hl], a ; c1x5 = 0 (clear X movement delta)
inc h
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $8
ld l, a
call Random
@@ -692,7 +692,7 @@ CanWalkOntoTile:
; hl: output pointer
GetTileSpriteStandsOn:
ld h, wSpriteStateData1 / $100
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $4
ld l, a
ld a, [hli] ; c1x4: screen Y position
@@ -784,7 +784,7 @@ DoScriptedNPCMovement:
ld a, [hl]
add b
ld [hl], a
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $9
ld l, a
ld a, c
@@ -817,7 +817,7 @@ GetSpriteScreenXPointer:
GetSpriteScreenXYPointerCommon:
ld hl, wSpriteStateData1
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add l
add b
ld l, a
@@ -825,7 +825,7 @@ GetSpriteScreenXYPointerCommon:
AnimScriptedNPCMovement:
ld hl, wSpriteStateData2
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $e
ld l, a
ld a, [hl] ; VRAM slot
@@ -833,7 +833,7 @@ AnimScriptedNPCMovement:
swap a
ld b, a
ld hl, wSpriteStateData1
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $9
ld l, a
ld a, [hl] ; facing direction
@@ -852,7 +852,7 @@ AnimScriptedNPCMovement:
ld [hSpriteVRAMSlotAndFacing], a
call AdvanceScriptedNPCAnimFrameCounter
ld hl, wSpriteStateData1
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $2
ld l, a
ld a, [hSpriteVRAMSlotAndFacing]
@@ -863,7 +863,7 @@ AnimScriptedNPCMovement:
ret
AdvanceScriptedNPCAnimFrameCounter:
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $7
ld l, a
ld a, [hl] ; intra-animation frame counter
diff --git a/engine/overworld/player_animations.asm b/engine/overworld/player_animations.asm
index 0ac4f3b2..a3f6e051 100755
--- a/engine/overworld/player_animations.asm
+++ b/engine/overworld/player_animations.asm
@@ -373,7 +373,7 @@ IsPlayerStandingOnWarpPadOrHole::
ld [wStandingOnWarpPadOrHole], a
ret
-INCLUDE "data/warp_pad_hole_tile_ids.asm"
+INCLUDE "data/tilesets/warp_pad_hole_tile_ids.asm"
FishingAnim:
ld c, 10
diff --git a/engine/overworld/player_state.asm b/engine/overworld/player_state.asm
index 23da664c..ea24fdc1 100644
--- a/engine/overworld/player_state.asm
+++ b/engine/overworld/player_state.asm
@@ -82,7 +82,7 @@ CheckForceBikeOrSurf::
ld [wWalkBikeSurfStateCopy], a
jp ForceBikeOrSurf
-INCLUDE "data/force_bike_surf.asm"
+INCLUDE "data/maps/force_bike_surf.asm"
IsPlayerFacingEdgeOfMap::
push hl
@@ -176,7 +176,7 @@ IsWarpTileInFrontOfPlayer::
pop hl
ret
-INCLUDE "data/warp_carpet_tile_ids.asm"
+INCLUDE "data/tilesets/warp_carpet_tile_ids.asm"
IsSSAnneBowWarpTileInFrontOfPlayer:
ld a, [wTileInFrontOfPlayer]
@@ -215,7 +215,7 @@ IsPlayerStandingOnDoorTileOrWarpTile::
pop hl
ret
-INCLUDE "data/warp_tile_ids.asm"
+INCLUDE "data/tilesets/warp_tile_ids.asm"
PrintSafariZoneSteps::
ld a, [wCurMap]
@@ -297,7 +297,7 @@ _GetTileAndCoordsInFrontOfPlayer:
GetTileTwoStepsInFrontOfPlayer:
xor a
- ld [$ffdb], a
+ ld [hPlayerFacing], a
ld hl, wYCoord
ld a, [hli]
ld d, a
@@ -306,7 +306,7 @@ GetTileTwoStepsInFrontOfPlayer:
and a ; cp SPRITE_FACING_DOWN
jr nz, .notFacingDown
; facing down
- ld hl, $ffdb
+ ld hl, hPlayerFacing
set 0, [hl]
aCoord 8, 13
inc d
@@ -315,7 +315,7 @@ GetTileTwoStepsInFrontOfPlayer:
cp SPRITE_FACING_UP
jr nz, .notFacingUp
; facing up
- ld hl, $ffdb
+ ld hl, hPlayerFacing
set 1, [hl]
aCoord 8, 5
dec d
@@ -324,7 +324,7 @@ GetTileTwoStepsInFrontOfPlayer:
cp SPRITE_FACING_LEFT
jr nz, .notFacingLeft
; facing left
- ld hl, $ffdb
+ ld hl, hPlayerFacing
set 2, [hl]
aCoord 4, 9
dec e
@@ -333,7 +333,7 @@ GetTileTwoStepsInFrontOfPlayer:
cp SPRITE_FACING_RIGHT
jr nz, .storeTile
; facing right
- ld hl, $ffdb
+ ld hl, hPlayerFacing
set 3, [hl]
aCoord 12, 9
inc e
@@ -378,33 +378,33 @@ CheckForBoulderCollisionWithSprites:
ld hl, wSpriteStateData2 + $14
add hl, de
ld a, [hli] ; map Y position
- ld [$ffdc], a
+ ld [hPlayerYCoord], a
ld a, [hl] ; map X position
- ld [$ffdd], a
+ ld [hPlayerXCoord], a
ld a, [wNumSprites]
ld c, a
ld de, $f
ld hl, wSpriteStateData2 + $14
- ld a, [$ffdb]
+ ld a, [hPlayerFacing]
and $3 ; facing up or down?
jr z, .pushingHorizontallyLoop
.pushingVerticallyLoop
inc hl
- ld a, [$ffdd]
+ ld a, [hPlayerXCoord]
cp [hl]
jr nz, .nextSprite1 ; if X coordinates don't match
dec hl
ld a, [hli]
ld b, a
- ld a, [$ffdb]
+ ld a, [hPlayerFacing]
rrca
jr c, .pushingDown
; pushing up
- ld a, [$ffdc]
+ ld a, [hPlayerYCoord]
dec a
jr .compareYCoords
.pushingDown
- ld a, [$ffdc]
+ ld a, [hPlayerYCoord]
inc a
.compareYCoords
cp b
@@ -417,19 +417,19 @@ CheckForBoulderCollisionWithSprites:
.pushingHorizontallyLoop
ld a, [hli]
ld b, a
- ld a, [$ffdc]
+ ld a, [hPlayerYCoord]
cp b
jr nz, .nextSprite2
ld b, [hl]
- ld a, [$ffdb]
+ ld a, [hPlayerFacing]
bit 2, a
jr nz, .pushingLeft
; pushing right
- ld a, [$ffdd]
+ ld a, [hPlayerXCoord]
inc a
jr .compareXCoords
.pushingLeft
- ld a, [$ffdd]
+ ld a, [hPlayerXCoord]
dec a
.compareXCoords
cp b
diff --git a/engine/overworld/push_boulder.asm b/engine/overworld/push_boulder.asm
index c45554f1..e4dd91cf 100644
--- a/engine/overworld/push_boulder.asm
+++ b/engine/overworld/push_boulder.asm
@@ -92,7 +92,7 @@ DoBoulderDustAnimation::
call ResetBoulderPushFlags
set 7, [hl]
ld a, [wBoulderSpriteIndex]
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call GetSpriteMovementByte2Pointer
ld [hl], $10
ld a, SFX_CUT
diff --git a/engine/overworld/special_warps.asm b/engine/overworld/special_warps.asm
index eee85402..042146f9 100644
--- a/engine/overworld/special_warps.asm
+++ b/engine/overworld/special_warps.asm
@@ -146,4 +146,4 @@ LoadSpecialWarpData:
ld [wDestinationWarpID], a
ret
-INCLUDE "data/special_warps.asm"
+INCLUDE "data/maps/special_warps.asm"
diff --git a/engine/overworld/sprite_collisions.asm b/engine/overworld/sprite_collisions.asm
index 0e6b2d06..c5ff8ebb 100644
--- a/engine/overworld/sprite_collisions.asm
+++ b/engine/overworld/sprite_collisions.asm
@@ -6,7 +6,7 @@ _UpdateSprites::
ld l, a
sub $e
ld c, a
- ld [H_CURRENTSPRITEOFFSET], a
+ ld [hCurrentSpriteOffset], a
ld a, [hl]
and a
jr z, .skipSprite ; tests $c2Xe
@@ -31,17 +31,17 @@ _UpdateSprites::
UpdateNonPlayerSprite:
dec a
swap a
- ld [$ff93], a ; $10 * sprite#
+ ld [hTilePlayerStandingOn], a ; $10 * sprite#
ld a, [wNPCMovementScriptSpriteOffset] ; some sprite offset?
ld b, a
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
cp b
jr nz, .unequal
jp DoScriptedNPCMovement
.unequal
jp UpdateNPCSprite
-; This detects if the current sprite (whose offset is at H_CURRENTSPRITEOFFSET)
+; 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. $c1i0).
; The loop sprite's offset will labelled with j (e.g. $c1j0).
@@ -54,7 +54,7 @@ DetectCollisionBetweenSprites:
nop
ld h, wSpriteStateData1 / $100
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add wSpriteStateData1 % $100
ld l, a
@@ -79,7 +79,7 @@ DetectCollisionBetweenSprites:
and $f0
or c
- ld [$ff90], a ; store Y coordinate adjusted for direction of movement
+ ld [hFF90], a ; store Y coordinate adjusted for direction of movement
ld a, [hli] ; a = [$c1i5] (delta X) (-1, 0, or 1)
call SetSpriteCollisionValues
@@ -92,7 +92,7 @@ DetectCollisionBetweenSprites:
and $f0
or c
- ld [$ff91], a ; store X coordinate adjusted for direction of movement
+ ld [hFF91], a ; store X coordinate adjusted for direction of movement
ld a, l
add 7
@@ -102,18 +102,18 @@ DetectCollisionBetweenSprites:
ld [hld], a ; zero [$c1id] XXX what's [$c1id] for?
ld [hld], a ; zero [$c1ic] (directions in which collisions occurred)
- ld a, [$ff91]
+ ld a, [hFF91]
ld [hld], a ; [$c1ib] = adjusted X coordinate
- ld a, [$ff90]
+ ld a, [hFF90]
ld [hl], a ; [$c1ia] = adjusted Y coordinate
xor a ; zero the loop counter
.loop
- ld [$ff8f], a ; store loop counter
+ ld [hFF8F], a ; store loop counter
swap a
ld e, a
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
cp e ; does the loop sprite match the current sprite?
jp z, .next ; go to the next sprite if they match
@@ -128,7 +128,7 @@ DetectCollisionBetweenSprites:
inc a
jp z, .next ; go the next sprite if offscreen
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add 10
ld l, a
@@ -154,7 +154,7 @@ DetectCollisionBetweenSprites:
cpl
inc a
.noCarry1
- ld [$ff90], a ; store the distance between the two sprites' adjusted Y values
+ ld [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 [$c1ic],
@@ -176,11 +176,11 @@ DetectCollisionBetweenSprites:
ld b, 9
.next1
- ld a, [$ff90] ; a = distance between adjusted Y coordinates
+ ld a, [hFF90] ; a = distance between adjusted Y coordinates
sub b
- ld [$ff92], a ; store distance adjusted using sprite i's direction
+ ld [hFF92], 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
+ ld [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.
@@ -193,7 +193,7 @@ DetectCollisionBetweenSprites:
ld b, 9
.next2
- ld a, [$ff92] ; a = distance adjusted using sprite i's direction
+ ld 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
@@ -225,7 +225,7 @@ DetectCollisionBetweenSprites:
cpl
inc a
.noCarry2
- ld [$ff91], a ; store the distance between the two sprites' adjusted X values
+ ld [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 [$c1ic],
@@ -247,11 +247,11 @@ DetectCollisionBetweenSprites:
ld b, 9
.next3
- ld a, [$ff91] ; a = distance between adjusted X coordinates
+ ld a, [hFF91] ; a = distance between adjusted X coordinates
sub b
- ld [$ff92], a ; store distance adjusted using sprite i's direction
+ ld [hFF92], 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
+ ld [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.
@@ -264,15 +264,15 @@ DetectCollisionBetweenSprites:
ld b, 9
.next4
- ld a, [$ff92] ; a = distance adjusted using sprite i's direction
+ ld 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, [$ff91] ; a = 7 or 9 depending on sprite i's delta X
+ ld a, [hFF91] ; 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
+ ld 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.
@@ -294,7 +294,7 @@ DetectCollisionBetweenSprites:
; set bit in [$c1ie] or [$c1if] to indicate which sprite the collision occurred with
inc l
inc l
- ld a, [$ff8f] ; a = loop counter
+ ld a, [hFF8F] ; a = loop counter
ld de, SpriteCollisionBitTable
add a
add e
@@ -311,7 +311,7 @@ DetectCollisionBetweenSprites:
ld [hl], a
.next
- ld a, [$ff8f] ; a = loop counter
+ ld a, [hFF8F] ; a = loop counter
inc a
cp $10
jp nz, .loop
diff --git a/engine/overworld/tilesets.asm b/engine/overworld/tilesets.asm
index 6e33974f..88147233 100644
--- a/engine/overworld/tilesets.asm
+++ b/engine/overworld/tilesets.asm
@@ -25,7 +25,7 @@ LoadTilesetHeader:
ld a, [hl]
ld [hTilesetType], a
xor a
- ld [$ffd8], a
+ ld [hMovingBGTilesCounter1], a
pop hl
ld a, [wCurMapTileset]
push hl
@@ -55,6 +55,6 @@ LoadTilesetHeader:
.done
ret
-INCLUDE "data/dungeon_tilesets.asm"
+INCLUDE "data/tilesets/dungeon_tilesets.asm"
-INCLUDE "data/tileset_headers.asm"
+INCLUDE "data/tilesets/tileset_headers.asm"
diff --git a/engine/overworld/trainer_sight.asm b/engine/overworld/trainer_sight.asm
index 5a68b627..81978c35 100755
--- a/engine/overworld/trainer_sight.asm
+++ b/engine/overworld/trainer_sight.asm
@@ -2,26 +2,26 @@ _GetSpritePosition1::
ld hl, wSpriteStateData1
ld de, $4
ld a, [wSpriteIndex]
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call GetSpriteDataPointer
ld a, [hli] ; c1x4 (screen Y pos)
- ld [$ffeb], a
+ ld [hSpriteScreenYCoord], a
inc hl
ld a, [hl] ; c1x6 (screen X pos)
- ld [$ffec], a
+ ld [hSpriteScreenXCoord], a
ld de, (wSpriteStateData2 + $4) - (wSpriteStateData1 + $6)
add hl, de
ld a, [hli] ; c2x4 (map Y pos)
- ld [$ffed], a
+ ld [hSpriteMapYCoord], a
ld a, [hl] ; c2x5 (map X pos)
- ld [$ffee], a
+ ld [hSpriteMapXCoord], a
ret
_GetSpritePosition2::
ld hl, wSpriteStateData1
ld de, $4
ld a, [wSpriteIndex]
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call GetSpriteDataPointer
ld a, [hli] ; c1x4 (screen Y pos)
ld [wSavedSpriteScreenY], a
@@ -40,18 +40,18 @@ _SetSpritePosition1::
ld hl, wSpriteStateData1
ld de, $4
ld a, [wSpriteIndex]
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call GetSpriteDataPointer
- ld a, [$ffeb] ; c1x4 (screen Y pos)
+ ld a, [hSpriteScreenYCoord] ; c1x4 (screen Y pos)
ld [hli], a
inc hl
- ld a, [$ffec] ; c1x6 (screen X pos)
+ ld a, [hSpriteScreenXCoord] ; c1x6 (screen X pos)
ld [hl], a
ld de, (wSpriteStateData2 + $4) - (wSpriteStateData1 + $6)
add hl, de
- ld a, [$ffed] ; c2x4 (map Y pos)
+ ld a, [hSpriteMapYCoord] ; c2x4 (map Y pos)
ld [hli], a
- ld a, [$ffee] ; c2x5 (map X pos)
+ ld a, [hSpriteMapXCoord] ; c2x5 (map X pos)
ld [hl], a
ret
@@ -59,7 +59,7 @@ _SetSpritePosition2::
ld hl, wSpriteStateData1
ld de, 4
ld a, [wSpriteIndex]
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call GetSpriteDataPointer
ld a, [wSavedSpriteScreenY]
ld [hli], a ; c1x4 (screen Y pos)
@@ -144,7 +144,7 @@ TrainerWalkUpToPlayer::
call FillMemory ; write the necessary steps to reach player
ld [hl], $ff ; write end of list sentinel
ld a, [wSpriteIndex]
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
jp MoveSprite_
; input: de = offset within sprite entry
@@ -152,7 +152,7 @@ TrainerWalkUpToPlayer::
GetSpriteDataPointer:
push de
add hl, de
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
swap a
ld d, $0
ld e, a
diff --git a/engine/overworld/turn_sprite.asm b/engine/overworld/turn_sprite.asm
index c7f7712b..bef26537 100755
--- a/engine/overworld/turn_sprite.asm
+++ b/engine/overworld/turn_sprite.asm
@@ -1,12 +1,12 @@
UpdateSpriteFacingOffsetAndDelayMovement::
ld h, $c2
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $8
ld l, a
ld a, $7f ; maximum movement delay
ld [hl], a ; c2x8 (movement delay)
dec h
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $9
ld l, a
ld a, [hld] ; c1x9 (facing direction)
@@ -14,7 +14,7 @@ UpdateSpriteFacingOffsetAndDelayMovement::
xor a
ld [hld], a
ld [hl], a ; c1x8 (walk animation frame)
- ld a, [H_CURRENTSPRITEOFFSET]
+ ld a, [hCurrentSpriteOffset]
add $2
ld l, a
ld a, [hl] ; c1x2 (facing and animation table offset)
diff --git a/engine/overworld/update_map.asm b/engine/overworld/update_map.asm
index 8577b9e7..92ae2b10 100644
--- a/engine/overworld/update_map.asm
+++ b/engine/overworld/update_map.asm
@@ -50,12 +50,12 @@ RedrawMapView:
ld a, [wIsInBattle]
inc a
ret z
- ld a, [H_AUTOBGTRANSFERENABLED]
+ ld a, [hAutoBGTransferEnabled]
push af
ld a, [hTilesetType]
push af
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld [hTilesetType], a ; no flower/water BG tile animations
call LoadCurrentMapView
call RunDefaultPaletteCommand
@@ -63,7 +63,7 @@ RedrawMapView:
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)
+ ld [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]
+ ld 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
+ ld a, [hRedrawMapViewRowOffset]
ld c, a
.calcVRAMAddrLoop
add hl, de
@@ -104,7 +104,7 @@ RedrawMapView:
ld a, REDRAW_ROW
ld [hRedrawRowOrColumnMode], a
call DelayFrame
- ld hl, $ffbe
+ ld hl, hRedrawMapViewRowOffset
inc [hl]
inc [hl]
pop hl
@@ -114,7 +114,7 @@ RedrawMapView:
pop af
ld [hTilesetType], a
pop af
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ret
CompareHLWithBC:
diff --git a/engine/overworld/wild_mons.asm b/engine/overworld/wild_mons.asm
index df4d3121..2593e0ec 100644
--- a/engine/overworld/wild_mons.asm
+++ b/engine/overworld/wild_mons.asm
@@ -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/pokemon/add_mon.asm b/engine/pokemon/add_mon.asm
index 7627136b..8d0a6495 100644
--- a/engine/pokemon/add_mon.asm
+++ b/engine/pokemon/add_mon.asm
@@ -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]
+ ld a, [hMultiplicand+1]
ld [de], a
inc de
- ld a, [H_MULTIPLICAND+2]
+ ld a, [hMultiplicand+2]
ld [de], a
inc de
xor a
diff --git a/engine/pokemon/bills_pc.asm b/engine/pokemon/bills_pc.asm
index e5855f1d..d9a329f5 100644
--- a/engine/pokemon/bills_pc.asm
+++ b/engine/pokemon/bills_pc.asm
@@ -1,6 +1,6 @@
DisplayPCMainMenu::
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call SaveScreenTilesToBuffer2
ld a, [wNumHoFTeams]
and a
@@ -82,7 +82,7 @@ DisplayPCMainMenu::
ld [wCurrentMenuItem], a
ld [wLastMenuItem], a
ld a, 1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ret
SomeonesPCText: db "SOMEONE's PC@"
@@ -168,7 +168,7 @@ BillsPCMenu:
ld de, BoxNoPCText
call PlaceString
ld a, 1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Delay3
call HandleMenuInput
bit 1, a
@@ -376,7 +376,8 @@ KnowsHMMove::
and a
ret
-INCLUDE "data/hm_moves.asm"
+HMMoveArray:
+INCLUDE "data/moves/hm_moves.asm"
DisplayDepositWithdrawMenu:
coord hl, 9, 10
diff --git a/engine/pokemon/evos_moves.asm b/engine/pokemon/evos_moves.asm
index f50f8081..36f135cc 100755
--- a/engine/pokemon/evos_moves.asm
+++ b/engine/pokemon/evos_moves.asm
@@ -120,12 +120,12 @@ Evolution_PartyMonLoop: ; loop over party mons
ld c, 50
call DelayFrames
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
coord hl, 0, 0
lb bc, 12, 20
call ClearScreenArea
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld a, $ff
ld [wUpdateSpritesEnabled], a
call ClearSprites
@@ -510,4 +510,4 @@ WriteMonMoves_ShiftMoveData:
Evolution_FlagAction:
predef_jump FlagActionPredef
-INCLUDE "data/evos_moves.asm"
+INCLUDE "data/pokemon/evos_moves.asm"
diff --git a/engine/pokemon/experience.asm b/engine/pokemon/experience.asm
index 3ee4b2a8..76e6b88b 100755
--- a/engine/pokemon/experience.asm
+++ b/engine/pokemon/experience.asm
@@ -38,58 +38,58 @@ CalcExperience::
add hl, bc
call CalcDSquared
ld a, d
- ld [H_MULTIPLIER], a
+ ld [hMultiplier], a
call Multiply
ld a, [hl]
and $f0
swap a
- ld [H_MULTIPLIER], a
+ ld [hMultiplier], a
call Multiply
ld a, [hli]
and $f
- ld [H_DIVISOR], a
+ ld [hDivisor], a
ld b, $4
call Divide
- ld a, [H_QUOTIENT + 1]
+ ld a, [hQuotient + 1]
push af
- ld a, [H_QUOTIENT + 2]
+ ld a, [hQuotient + 2]
push af
- ld a, [H_QUOTIENT + 3]
+ ld a, [hQuotient + 3]
push af
call CalcDSquared
ld a, [hl]
and $7f
- ld [H_MULTIPLIER], a
+ ld [hMultiplier], a
call Multiply
- ld a, [H_PRODUCT + 1]
+ ld a, [hProduct + 1]
push af
- ld a, [H_PRODUCT + 2]
+ ld a, [hProduct + 2]
push af
- ld a, [H_PRODUCT + 3]
+ ld a, [hProduct + 3]
push af
ld a, [hli]
push af
xor a
- ld [H_MULTIPLICAND], a
- ld [H_MULTIPLICAND + 1], a
+ ld [hMultiplicand], a
+ ld [hMultiplicand + 1], a
ld a, d
- ld [H_MULTIPLICAND + 2], a
+ ld [hMultiplicand + 2], a
ld a, [hli]
- ld [H_MULTIPLIER], a
+ ld [hMultiplier], a
call Multiply
ld b, [hl]
- ld a, [H_PRODUCT + 3]
+ ld a, [hProduct + 3]
sub b
- ld [H_PRODUCT + 3], a
+ ld [hProduct + 3], a
ld b, $0
- ld a, [H_PRODUCT + 2]
+ ld a, [hProduct + 2]
sbc b
- ld [H_PRODUCT + 2], a
- ld a, [H_PRODUCT + 1]
+ ld [hProduct + 2], a
+ ld a, [hProduct + 1]
sbc b
- ld [H_PRODUCT + 1], a
+ ld [hProduct + 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
+; 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
@@ -139,11 +139,11 @@ CalcExperience::
; calculates d*d
CalcDSquared:
xor a
- ld [H_MULTIPLICAND], a
- ld [H_MULTIPLICAND + 1], a
+ ld [hMultiplicand], a
+ ld [hMultiplicand + 1], a
ld a, d
- ld [H_MULTIPLICAND + 2], a
- ld [H_MULTIPLIER], a
+ ld [hMultiplicand + 2], a
+ ld [hMultiplier], a
jp Multiply
INCLUDE "data/growth_rates.asm"
diff --git a/engine/pokemon/learn_move.asm b/engine/pokemon/learn_move.asm
index 53c7f87e..09413c9b 100755
--- a/engine/pokemon/learn_move.asm
+++ b/engine/pokemon/learn_move.asm
@@ -126,13 +126,13 @@ TryingToLearn:
call TextBoxBorder
coord hl, 6, 8
ld de, wMovesString
- ld a, [hFlags_0xFFF6]
+ ld a, [hFlagsFFF6]
set 2, a
- ld [hFlags_0xFFF6], a
+ ld [hFlagsFFF6], a
call PlaceString
- ld a, [hFlags_0xFFF6]
+ ld a, [hFlagsFFF6]
res 2, a
- ld [hFlags_0xFFF6], a
+ ld [hFlagsFFF6], a
ld hl, wTopMenuItemY
ld a, 8
ld [hli], a ; wTopMenuItemY
@@ -146,10 +146,10 @@ TryingToLearn:
ld a, A_BUTTON | B_BUTTON
ld [hli], a ; wMenuWatchedKeys
ld [hl], 0 ; wLastMenuItem
- ld hl, hFlags_0xFFF6
+ ld hl, hFlagsFFF6
set 1, [hl]
call HandleMenuInput
- ld hl, hFlags_0xFFF6
+ ld hl, hFlagsFFF6
res 1, [hl]
push af
call LoadScreenTilesFromBuffer1
diff --git a/engine/pokemon/status_screen.asm b/engine/pokemon/status_screen.asm
index 20bee0ee..b262a8b7 100755
--- a/engine/pokemon/status_screen.asm
+++ b/engine/pokemon/status_screen.asm
@@ -40,7 +40,7 @@ DrawHP_:
push hl
call DrawHPBar
pop hl
- ld a, [hFlags_0xFFF6]
+ ld a, [hFlagsFFF6]
bit 0, a
jr z, .printFractionBelowBar
ld bc, $9 ; right of bar
@@ -254,7 +254,7 @@ PrintStatsBox:
ld c, 8
call TextBoxBorder ; Draws the box
coord hl, 1, 9 ; Start printing stats from here
- ld bc, $0019 ; Number offset
+ ld bc, $19 ; Number offset
jr .PrintStats
.DifferentBox
coord hl, 9, 2
@@ -262,7 +262,7 @@ PrintStatsBox:
ld c, 9
call TextBoxBorder
coord hl, 11, 3
- ld bc, $0018
+ ld bc, $18
.PrintStats
push bc
push hl
@@ -299,7 +299,7 @@ StatusScreen2:
push af
xor a
ld [hTilesetType], a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld bc, NUM_MOVES + 1
ld hl, wMoves
call FillMemory
@@ -424,7 +424,7 @@ StatusScreen2:
coord hl, 9, 1
call PlaceString
ld a, $1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Delay3
call WaitForTextScrollButtonPress ; wait for button
pop af
diff --git a/engine/slots/game_corner_slots.asm b/engine/slots/game_corner_slots.asm
index 2108695f..d95d20a3 100755
--- a/engine/slots/game_corner_slots.asm
+++ b/engine/slots/game_corner_slots.asm
@@ -22,7 +22,7 @@ StartSlotMachine:
ld a, 250
.next
ld [wSlotMachineSevenAndBarModeChance], a
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
ld [wSlotMachineSavedROMBank], a
call PromptUserToPlaySlots
ret
diff --git a/engine/slots/slot_machine.asm b/engine/slots/slot_machine.asm
index 0a92c69b..c3de5dd2 100755
--- a/engine/slots/slot_machine.asm
+++ b/engine/slots/slot_machine.asm
@@ -31,7 +31,7 @@ PromptUserToPlaySlots:
xor a
ld [wSlotMachineAllowMatchesCounter], a
ld hl, wStoppingWhichSlotMachineWheel
- ld bc, $0014
+ ld bc, $14
call FillMemory
call MainSlotMachineLoop
ld hl, wd730
@@ -881,7 +881,7 @@ SlotMachineMap:
INCBIN "gfx/slots/slots.tilemap"
SlotMachineMapEnd:
-INCLUDE "data/slot_machine_wheels.asm"
+INCLUDE "data/events/slot_machine_wheels.asm"
SlotMachineTiles1:
IF DEF(_RED)
diff --git a/gfx/fishing.asm b/gfx/fishing.asm
new file mode 100644
index 00000000..0a040262
--- /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 00000000..b3dda1e7
--- /dev/null
+++ b/gfx/font.asm
@@ -0,0 +1,31 @@
+PokemonLogoGraphics: INCBIN "gfx/title/pokemon_logo.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/intro_credits/copyright.2bpp"
+
+GamefreakLogoGraphics: INCBIN "gfx/title/gamefreak_inc.2bpp"
+GamefreakLogoGraphicsEnd:
+
+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/pics.asm b/gfx/pics.asm
index 0e2adc24..0e2adc24 100644
--- a/pics.asm
+++ b/gfx/pics.asm
diff --git a/gfx/player.asm b/gfx/player.asm
new file mode 100644
index 00000000..188daaf2
--- /dev/null
+++ b/gfx/player.asm
@@ -0,0 +1,3 @@
+RedPicFront:: INCBIN "gfx/player/red.pic"
+ShrinkPic1:: INCBIN "gfx/player/shrink1.pic"
+ShrinkPic2:: INCBIN "gfx/player/shrink2.pic"
diff --git a/sprites.asm b/gfx/sprites.asm
index 4548bbe3..4548bbe3 100644
--- a/sprites.asm
+++ b/gfx/sprites.asm
diff --git a/tilesets.asm b/gfx/tilesets.asm
index f64dc20a..f64dc20a 100644
--- a/tilesets.asm
+++ b/gfx/tilesets.asm
diff --git a/gfx/trade.asm b/gfx/trade.asm
new file mode 100644
index 00000000..e5d8db05
--- /dev/null
+++ b/gfx/trade.asm
@@ -0,0 +1,7 @@
+TradingAnimationGraphics:
+INCBIN "gfx/trade/game_boy.2bpp"
+INCBIN "gfx/trade/link_cable.2bpp"
+TradingAnimationGraphicsEnd:
+
+TradingAnimationGraphics2: INCBIN "gfx/trade/cable_ball.2bpp"
+TradingAnimationGraphics2End:
diff --git a/gfx/trainer_card.asm b/gfx/trainer_card.asm
new file mode 100644
index 00000000..7484e4ee
--- /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/version.asm b/gfx/version.asm
new file mode 100644
index 00000000..6f49bca9
--- /dev/null
+++ b/gfx/version.asm
@@ -0,0 +1,8 @@
+Version_GFX:
+IF DEF(_RED)
+ INCBIN "gfx/title/red_version.1bpp" ; 10 tiles
+ENDC
+IF DEF(_BLUE)
+ INCBIN "gfx/title/blue_version.1bpp" ; 8 tiles
+ENDC
+Version_GFXEnd:
diff --git a/home.asm b/home.asm
index dfa1bec2..19101c9a 100644
--- a/home.asm
+++ b/home.asm
@@ -1,120 +1,24 @@
INCLUDE "constants.asm"
-; 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
-
-; Hardware interrupts
-SECTION "vblank", ROM0
- jp VBlank
-SECTION "hblank", ROM0
- rst $38
-SECTION "timer", ROM0
- jp Timer
-SECTION "serial", ROM0
- jp Serial
-SECTION "joypad", ROM0
- reti
+SECTION "NULL", ROM0
+NULL::
+INCLUDE "home/header.asm"
-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
-
-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
-
-Start::
- cp GBC
- jr z, .gbc
- xor a
- jr .ok
-.gbc
- ld a, 0
-.ok
- ld [wGBC], a
- jp Init
-
+SECTION "Home", ROM0
+INCLUDE "home/start.asm"
INCLUDE "home/joypad.asm"
-INCLUDE "data/map_header_pointers.asm"
+INCLUDE "data/maps/map_header_pointers.asm"
INCLUDE "home/overworld.asm"
CheckForUserInterruption::
@@ -149,10 +53,10 @@ CheckForUserInterruption::
; a = ID of destination warp within destination map
LoadDestinationWarpPosition::
ld b, a
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, [wPredefParentBank]
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ld a, b
add a
@@ -164,753 +68,14 @@ LoadDestinationWarpPosition::
ld de, wCurrentTileBlockMapViewPointer
call CopyData
pop af
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- ret
-
-
-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::
- 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
- ld a, Bank(CopyUncompressedPicToHL)
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- xor a
- ld [hStartTileID], a
- call CopyUncompressedPicToHL
- xor a
- ld [wSpriteFlipped], a
- pop af
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- ret
-
-
-PlayCry::
-; Play monster a's cry.
- call GetCryData
- call PlaySound
- jp WaitForSoundToFinish
-
-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::
- 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]
- 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_
- call PlaceUnfilledArrowMenuCursor
- ld b, a
- xor a
- ld [wPartyMenuAnimMonEnabled], a
- ld a, [wCurrentMenuItem]
- ld [wPartyAndBillsPCSavedMenuItem], a
- ld hl, wd730
- res 6, [hl] ; turn on letter printing delay
- ld a, [wMenuItemToSwap]
- 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
-.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
- jr HandlePartyMenuInput
-.handleSwap
- ld a, [wCurrentMenuItem]
- ld [wWhichPokemon], a
- callba SwitchPartyMon
- jr HandlePartyMenuInput
-
-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::
- ld a, [H_LOADEDROMBANK]
- push af
- ld a, BANK(PrintStatusAilment)
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- call PrintStatusAilment ; print status condition
- pop bc
- ld a, b
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- ret
-
-; 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]
- ret
-
-; copies the base stat data of a pokemon to wMonHeader
-; INPUT:
-; [wd0b5] = pokemon ID
-GetMonHeader::
- ld a, [H_LOADEDROMBANK]
- push af
- ld a, BANK(BaseStats)
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- 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
- jr .done
-.mew
- ld hl, MewBaseStats
- ld de, wMonHeader
- ld bc, MonBaseStatsEnd - MonBaseStats
- ld a, BANK(MewBaseStats)
- call FarCopyData
-.done
- ld a, [wd0b5]
- ld [wMonHIndex], a
- pop af
- ld [wd11e], a
- pop hl
- pop de
- pop bc
- pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
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
-
-; 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
-
-; 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
- 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
- xor a
- ld [$4000], a
- 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)
- 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::
- ld a, [H_SPRITEOFFSET]
- ld b, $0
- ld c, a
- add hl, bc
- ld a, [H_SPRITEWIDTH]
-.columnLoop
- 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
- 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::
- xor a
- ld [$4000], a
- 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
- jp CopyVideoData
-
-
-INCLUDE "data/collision_tile_ids.asm"
+INCLUDE "home/pokemon.asm"
+INCLUDE "home/print_bcd.asm"
+INCLUDE "home/pics.asm"
+INCLUDE "data/tilesets/collision_tile_ids.asm"
INCLUDE "home/copy2.asm"
INCLUDE "home/text.asm"
INCLUDE "home/vcopy.asm"
@@ -921,58 +86,24 @@ INCLUDE "home/serial.asm"
INCLUDE "home/timer.asm"
INCLUDE "home/audio.asm"
-
UpdateSprites::
ld a, [wUpdateSpritesEnabled]
dec a
ret nz
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
- ld a, Bank(_UpdateSprites)
- ld [H_LOADEDROMBANK], a
+ ld a, BANK(_UpdateSprites)
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
call _UpdateSprites
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
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"
-
+INCLUDE "data/items/marts.asm"
+INCLUDE "home/overworld_text.asm"
+INCLUDE "home/uncompress.asm"
ResetPlayerSpriteData::
ld hl, wSpriteStateData1
@@ -1035,7 +166,7 @@ FadeOutAudio::
ld b, a
xor a
ld [wAudioFadeOutControl], a
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
ld a, [wAudioSavedROMBank]
@@ -1044,244 +175,7 @@ FadeOutAudio::
ld [wNewSoundID], a
jp PlaySound
-; 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_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
- add l
- ld l, a
- jr nc, .noCarry
- inc h
-.noCarry
- 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
- sla e
- 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
- ld a, BANK(InitMapSprites)
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- 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
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- jp UpdateSprites
-
-DisplayPokemartDialogue::
- push hl
- ld hl, PokemartGreetingText
- call PrintText
- pop hl
- inc hl
- call LoadItemList
- ld a, PRICEDITEMLISTMENU
- ld [wListMenuID], a
- ld a, [H_LOADEDROMBANK]
- push af
- ld a, Bank(DisplayPokemartDialogue_)
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- call DisplayPokemartDialogue_
- pop af
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- 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
- ld a, [H_LOADEDROMBANK]
- push af
- ld a, Bank(DisplayPokemonCenterDialogue_)
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- call DisplayPokemonCenterDialogue_
- pop af
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- 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
- jp HoldTextDisplayOpen
-
-PlayerBlackedOutText::
- TX_FAR _PlayerBlackedOutText
- db "@"
-
-DisplayRepelWoreOffText::
- ld hl, RepelWoreOffText
- call PrintText
- jp AfterDisplayingTextID
-
-RepelWoreOffText::
- TX_FAR _RepelWoreOffText
- db "@"
-
+INCLUDE "home/predef_text.asm"
INCLUDE "home/start_menu.asm"
; function to count how many bits are set in a string of bytes
@@ -1333,14 +227,14 @@ AddAmountSoldToMoney::
; [wWhichPokemon] = index (within the inventory) of the item to remove
; [wItemQuantity] = quantity to remove
RemoveItemFromInventory::
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, BANK(RemoveItemFromInventory_)
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
call RemoveItemFromInventory_
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ret
@@ -1352,692 +246,25 @@ RemoveItemFromInventory::
; sets carry flag if successful, unsets carry flag if unsuccessful
AddItemToInventory::
push bc
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, BANK(AddItemToInventory_)
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
call AddItemToInventory_
pop bc
ld a, b
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- 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, 80
- 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
- ld b, 1 ; height
- ld c, 3 ; width
- ld a, [wListMenuID]
- cp PRICEDITEMLISTMENU
- jr nz, .drawTextBox
-; text box dimensions/coordinates for quantity and price
- coord hl, 7, 9
- ld b, 1 ; height
- ld c, 11 ; 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
- ld b, 9
- ld c, 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
- sla 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
- sla 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 [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
- 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
+INCLUDE "home/list_menu.asm"
+INCLUDE "home/names.asm"
; reloads text box tile patterns, current map view, and tileset tile patterns
ReloadMapData::
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, [wCurMap]
call SwitchToMapRomBank
@@ -2047,13 +274,13 @@ ReloadMapData::
call LoadTilesetTilePatternData
call EnableLCD
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ret
; reloads tileset tile patterns
ReloadTilesetTilePatterns::
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, [wCurMap]
call SwitchToMapRomBank
@@ -2061,7 +288,7 @@ ReloadTilesetTilePatterns::
call LoadTilesetTilePatternData
call EnableLCD
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ret
@@ -2098,15 +325,15 @@ UseItem::
; OUTPUT:
; clears carry flag if the item is tossed, sets carry flag if not
TossItem::
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, BANK(TossItem_)
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
call TossItem_
pop de
ld a, d
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ret
@@ -2132,15 +359,15 @@ IsKeyItem::
; [wTextBoxID] = text box ID
; b, c = y, x cursor position (TWO_OPTION_MENU only)
DisplayTextBoxID::
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, BANK(DisplayTextBoxID_)
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
call DisplayTextBoxID_
pop bc
ld a, b
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ret
@@ -2174,15 +401,15 @@ RunNPCMovementScript::
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, [wNPCMovementScriptBank]
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ld a, [wNPCMovementScriptFunctionNum]
call CallFunctionInTable
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ret
@@ -2199,442 +426,7 @@ 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
-
-; only engage withe trainer if the player is not already
-; engaged with another trainer
-; XXX unused?
-CheckIfAlreadyEngaged::
- ld a, [wFlags_0xcd60]
- bit 0, a
- ret nz
- call EngageMapTrainer
- xor a
- ret
-
-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
- ld a, $ff
- call PlaySound
- 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"
+INCLUDE "home/trainers.asm"
; checks if the player's coordinates match an arrow movement tile's coordinates
; and if so, decodes the RLE movement data
@@ -2719,7 +511,7 @@ SetSpriteFacingDirectionAndDelay::
SetSpriteFacingDirection::
ld a, $9
- ld [H_SPRITEDATAOFFSET], a
+ ld [hSpriteDataOffset], a
call GetPointerWithinSpriteStateData1
ld a, [hSpriteFacingDirection]
ld [hl], a
@@ -2774,14 +566,14 @@ CheckCoords::
; tests if a boulder's coordinates are in a specified array
; INPUT:
; hl = address of array
-; [H_SPRITEINDEX] = index of boulder sprite
+; [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, wSpriteStateData2 + $04
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
swap a
ld d, $0
ld e, a
@@ -2803,9 +595,9 @@ GetPointerWithinSpriteStateData2::
ld h, $c2
_GetPointerWithinSpriteStateData:
- ld a, [H_SPRITEDATAOFFSET]
+ ld a, [hSpriteDataOffset]
ld b, a
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
swap a
add b
ld l, a
@@ -2842,7 +634,7 @@ DecodeRLEList::
inc a ; include sentinel in counting
ret
-; sets movement byte 1 for sprite [H_SPRITEINDEX] to $FE and byte 2 to [hSpriteMovementByte2]
+; sets movement byte 1 for sprite [hSpriteIndex] to $FE and byte 2 to [hSpriteMovementByte2]
SetSpriteMovementBytesToFE::
push hl
call GetSpriteMovementByte1Pointer
@@ -2853,7 +645,7 @@ SetSpriteMovementBytesToFE::
pop hl
ret
-; sets both movement bytes for sprite [H_SPRITEINDEX] to $FF
+; sets both movement bytes for sprite [hSpriteIndex] to $FF
SetSpriteMovementBytesToFF::
push hl
call GetSpriteMovementByte1Pointer
@@ -2863,20 +655,20 @@ SetSpriteMovementBytesToFF::
pop hl
ret
-; returns the sprite movement byte 1 pointer for sprite [H_SPRITEINDEX] in hl
+; returns the sprite movement byte 1 pointer for sprite [hSpriteIndex] in hl
GetSpriteMovementByte1Pointer::
ld h, $C2
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
swap a
add 6
ld l, a
ret
-; returns the sprite movement byte 2 pointer for sprite [H_SPRITEINDEX] in hl
+; returns the sprite movement byte 2 pointer for sprite [hSpriteIndex] in hl
GetSpriteMovementByte2Pointer::
push de
ld hl, wMapSpriteData
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
dec a
add a
ld d, 0
@@ -2890,7 +682,7 @@ GetTrainerInformation::
ld a, [wLinkState]
and a
jr nz, .linkBattle
- ld a, Bank(TrainerPicAndMoneyPointers)
+ ld a, BANK(TrainerPicAndMoneyPointers)
call BankswitchHome
ld a, [wTrainerClass]
dec a
@@ -2937,83 +729,8 @@ HasEnoughCoins::
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]
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- ret
-
-BankswitchBack::
-; returns from BankswitchHome
- ld a, [wBankswitchHomeSavedROMBank]
- 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
- ld bc, .Return
- push bc
- jp hl
-.Return
- pop bc
- ld a, b
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- ret
-
-; displays yes/no choice
-; yes -> set carry
-YesNoChoice::
- call SaveScreenTilesToBuffer1
- call InitYesNoTextBoxParameters
- jr DisplayYesNoChoice
-
-Func_35f4::
- 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
+INCLUDE "home/bankswitch.asm"
+INCLUDE "home/yes_no.asm"
; calculates the difference |a-b|, setting carry flag if a<b
CalcDifference::
@@ -3025,7 +742,7 @@ CalcDifference::
ret
MoveSprite::
-; move the sprite [H_SPRITEINDEX] with the movement pointed to by de
+; move the sprite [hSpriteIndex] with the movement pointed to by de
; actually only copies the movement data to wNPCMovementDirections for later
call SetSpriteMovementBytesToFF
MoveSprite_::
@@ -3081,7 +798,6 @@ DivideBytes::
pop hl
ret
-
LoadFontTilePatterns::
ld a, [rLCDC]
bit 7, a ; is the LCD enabled?
@@ -3130,7 +846,6 @@ LoadHpBarAndStatusTilePatterns::
lb bc, BANK(HpBarAndStatusGraphics), (HpBarAndStatusGraphicsEnd - HpBarAndStatusGraphics) / $10
jp CopyVideoData ; if LCD is on, transfer during V-blank
-
FillMemory::
; Fill bc bytes at hl with a.
push de
@@ -3145,7 +860,6 @@ FillMemory::
pop de
ret
-
UncompressSpriteFromDE::
; Decompress pic at a:de.
ld hl, wSpriteInputPtr
@@ -3164,13 +878,13 @@ SaveScreenTilesToBuffer2::
LoadScreenTilesFromBuffer2::
call LoadScreenTilesFromBuffer2DisableBGTransfer
ld a, 1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ret
-; loads screen tiles stored in wTileMapBackup2 but leaves H_AUTOBGTRANSFERENABLED disabled
+; loads screen tiles stored in wTileMapBackup2 but leaves hAutoBGTransferEnabled disabled
LoadScreenTilesFromBuffer2DisableBGTransfer::
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld hl, wTileMapBackup2
coord de, 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
@@ -3185,13 +899,13 @@ SaveScreenTilesToBuffer1::
LoadScreenTilesFromBuffer1::
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld hl, wTileMapBackup
coord de, 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call CopyData
ld a, 1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ret
DelayFrames::
@@ -3226,104 +940,12 @@ WaitForSoundToFinish::
pop hl
ret
-NamePointers::
- dw MonsterNames
- dw MoveNames
- dw UnusedNames
- 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 HM_01
- jp nc, GetMachineName
-
- ld a, [H_LOADEDROMBANK]
- 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]
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- 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]
- ld [$ff96], a
- ld a, [hl]
- ld [$ff95], a
- ld a, [$ff95]
- ld h, a
- ld a, [$ff96]
- 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, $0014
- call CopyData
-.gotPtr
- ld a, e
- ld [wUnusedCF8D], a
- ld a, d
- ld [wUnusedCF8D + 1], a
- pop de
- pop bc
- pop hl
- pop af
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- ret
+INCLUDE "home/names2.asm"
GetItemPrice::
; Stores item's price as BCD at hItemPrice (3 bytes)
; Input: [wcf91] = item id
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, [wListMenuID]
cp MOVESLISTMENU
@@ -3331,7 +953,7 @@ GetItemPrice::
jr nz, .ok
ld a, $f ; hardcoded Bank
.ok
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ld hl, wItemPrices
ld a, [hli]
@@ -3354,14 +976,14 @@ GetItemPrice::
ld [hItemPrice], a
jr .done
.getTMPrice
- ld a, Bank(GetMachinePrice)
- ld [H_LOADEDROMBANK], a
+ ld a, BANK(GetMachinePrice)
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
call GetMachinePrice
.done
ld de, hItemPrice
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ret
@@ -3408,10 +1030,10 @@ JoypadLowSensitivity::
jr z, .noNewlyPressedButtons
.newlyPressedButtons
ld a, 30 ; half a second delay
- ld [H_FRAMECOUNTER], a
+ ld [hFrameCounter], a
ret
.noNewlyPressedButtons
- ld a, [H_FRAMECOUNTER]
+ ld a, [hFrameCounter]
and a ; is the delay over?
jr z, .delayOver
.delayNotOver
@@ -3430,18 +1052,18 @@ JoypadLowSensitivity::
ld [hJoy5], a
.setShortDelay
ld a, 5 ; 1/12 of a second delay
- ld [H_FRAMECOUNTER], a
+ ld [hFrameCounter], a
ret
WaitForTextScrollButtonPress::
- ld a, [H_DOWNARROWBLINKCNT1]
+ ld a, [hDownArrowBlinkCount1]
push af
- ld a, [H_DOWNARROWBLINKCNT2]
+ ld a, [hDownArrowBlinkCount2]
push af
xor a
- ld [H_DOWNARROWBLINKCNT1], a
+ ld [hDownArrowBlinkCount1], a
ld a, $6
- ld [H_DOWNARROWBLINKCNT2], a
+ ld [hDownArrowBlinkCount2], a
.loop
push hl
ld a, [wTownMapSpriteBlinkingEnabled]
@@ -3458,9 +1080,9 @@ WaitForTextScrollButtonPress::
and A_BUTTON | B_BUTTON
jr z, .loop
pop af
- ld [H_DOWNARROWBLINKCNT2], a
+ ld [hDownArrowBlinkCount2], a
pop af
- ld [H_DOWNARROWBLINKCNT1], a
+ ld [hDownArrowBlinkCount1], a
ret
; (unless in link battle) waits for A or B being pressed and outputs the scrolling sound effect
@@ -3503,14 +1125,14 @@ Divide::
push hl
push de
push bc
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
- ld a, Bank(_Divide)
- ld [H_LOADEDROMBANK], a
+ ld a, BANK(_Divide)
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
call _Divide
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
pop bc
pop de
@@ -3535,11 +1157,11 @@ PrintLetterDelay::
jr z, .waitOneFrame
ld a, [wOptions]
and $f
- ld [H_FRAMECOUNTER], a
+ ld [hFrameCounter], a
jr .checkButtons
.waitOneFrame
ld a, 1
- ld [H_FRAMECOUNTER], a
+ ld [hFrameCounter], a
.checkButtons
call Joypad
ld a, [hJoyHeld]
@@ -3554,7 +1176,7 @@ PrintLetterDelay::
call DelayFrame
jr .done
.buttonsNotPressed ; if neither A nor B is pressed
- ld a, [H_FRAMECOUNTER]
+ ld a, [hFrameCounter]
and a
jr nz, .checkButtons
.done
@@ -3578,248 +1200,7 @@ CopyDataUntil::
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::
- jpab _RemovePokemon
-
-AddPartyMon::
- push hl
- push de
- push bc
- callba _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
- ld a, [H_MULTIPLICAND+1]
- ld [de], a
- inc de
- ld a, [H_MULTIPLICAND+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
- ld [H_MULTIPLICAND], a
- ld [H_MULTIPLICAND+1], a
- inc b ; increment current stat exp bonus
- ld a, b
- cp $ff
- jr z, .statExpDone
- ld [H_MULTIPLICAND+2], a
- ld [H_MULTIPLIER], a
- call Multiply
- ld a, [hld]
- ld d, a
- ld a, [$ff98]
- sub d
- ld a, [hli]
- ld d, a
- ld a, [$ff97]
- 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
- ld [H_MULTIPLICAND+2], a
- ld a, d
- ld [H_MULTIPLICAND+1], a
- xor a
- ld [H_MULTIPLICAND], a
- ld a, [wCurEnemyLVL]
- ld [H_MULTIPLIER], a
- call Multiply ; ((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level
- ld a, [H_MULTIPLICAND]
- ld [H_DIVIDEND], a
- ld a, [H_MULTIPLICAND+1]
- ld [H_DIVIDEND+1], a
- ld a, [H_MULTIPLICAND+2]
- ld [H_DIVIDEND+2], a
- ld a, $64
- ld [H_DIVISOR], 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
- ld a, [H_MULTIPLICAND+2]
- add b
- ld [H_MULTIPLICAND+2], a
- jr nc, .noCarry3
- ld a, [H_MULTIPLICAND+1]
- inc a
- ld [H_MULTIPLICAND+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
- ld a, [H_MULTIPLICAND+2]
- add b
- ld [H_MULTIPLICAND+2], a
- jr nc, .noCarry4
- ld a, [H_MULTIPLICAND+1]
- inc a ; non-HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + 5
- ld [H_MULTIPLICAND+1], a ; HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + Level + 10
-.noCarry4
- ld a, [H_MULTIPLICAND+1] ; check for overflow (>999)
- 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::
- ld a, [H_LOADEDROMBANK]
- push af
- ld a, BANK(_AddEnemyMonToPlayerParty)
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- call _AddEnemyMonToPlayerParty
- pop bc
- ld a, b
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- ret
-
-MoveMon::
- ld a, [H_LOADEDROMBANK]
- push af
- ld a, BANK(_MoveMon)
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- call _MoveMon
- pop bc
- ld a, b
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- ret
+INCLUDE "home/move_mon.asm"
; 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
@@ -3897,14 +1278,14 @@ HandleMenuInput::
ld [wPartyMenuAnimMonEnabled], a
HandleMenuInput_::
- ld a, [H_DOWNARROWBLINKCNT1]
+ ld a, [hDownArrowBlinkCount1]
push af
- ld a, [H_DOWNARROWBLINKCNT2]
+ ld a, [hDownArrowBlinkCount2]
push af ; save existing values on stack
xor a
- ld [H_DOWNARROWBLINKCNT1], a ; blinking down arrow timing value 1
+ ld [hDownArrowBlinkCount1], a ; blinking down arrow timing value 1
ld a, 6
- ld [H_DOWNARROWBLINKCNT2], a ; blinking down arrow timing value 2
+ ld [hDownArrowBlinkCount2], a ; blinking down arrow timing value 2
.loop1
xor a
ld [wAnimCounter], a ; counter for pokemon shaking animation
@@ -3933,9 +1314,9 @@ HandleMenuInput_::
.giveUpWaiting
; if a key wasn't pressed within the specified number of checks
pop af
- ld [H_DOWNARROWBLINKCNT2], a
+ ld [hDownArrowBlinkCount2], a
pop af
- ld [H_DOWNARROWBLINKCNT1], a ; restore previous values
+ ld [hDownArrowBlinkCount1], a ; restore previous values
xor a
ld [wMenuWrappingEnabled], a ; disable menu wrapping
ret
@@ -3997,9 +1378,9 @@ HandleMenuInput_::
call PlaySound
.skipPlayingSound
pop af
- ld [H_DOWNARROWBLINKCNT2], a
+ ld [hDownArrowBlinkCount2], a
pop af
- ld [H_DOWNARROWBLINKCNT1], a ; restore previous values
+ ld [hDownArrowBlinkCount1], a ; restore previous values
xor a
ld [wMenuWrappingEnabled], a ; disable menu wrapping
ld a, [hJoy5]
@@ -4030,7 +1411,7 @@ PlaceMenuCursor::
and a ; was the previous menu id 0?
jr z, .checkForArrow1
push af
- ld a, [hFlags_0xFFF6]
+ ld a, [hFlagsFFF6]
bit 1, a ; is the menu double spaced?
jr z, .doubleSpaced1
ld bc, 20
@@ -4056,7 +1437,7 @@ PlaceMenuCursor::
and a
jr z, .checkForArrow2
push af
- ld a, [hFlags_0xFFF6]
+ ld a, [hFlagsFFF6]
bit 1, a ; is the menu double spaced?
jr z, .doubleSpaced2
ld bc, 20
@@ -4110,7 +1491,7 @@ EraseMenuCursor::
; 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 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.
@@ -4123,36 +1504,36 @@ HandleDownArrowBlinkTiming::
cp b
jr nz, .downArrowOff
.downArrowOn
- ld a, [H_DOWNARROWBLINKCNT1]
+ ld a, [hDownArrowBlinkCount1]
dec a
- ld [H_DOWNARROWBLINKCNT1], a
+ ld [hDownArrowBlinkCount1], a
ret nz
- ld a, [H_DOWNARROWBLINKCNT2]
+ ld a, [hDownArrowBlinkCount2]
dec a
- ld [H_DOWNARROWBLINKCNT2], a
+ ld [hDownArrowBlinkCount2], a
ret nz
ld a, " "
ld [hl], a
ld a, $ff
- ld [H_DOWNARROWBLINKCNT1], a
+ ld [hDownArrowBlinkCount1], a
ld a, $06
- ld [H_DOWNARROWBLINKCNT2], a
+ ld [hDownArrowBlinkCount2], a
ret
.downArrowOff
- ld a, [H_DOWNARROWBLINKCNT1]
+ ld a, [hDownArrowBlinkCount1]
and a
ret z
dec a
- ld [H_DOWNARROWBLINKCNT1], a
+ ld [hDownArrowBlinkCount1], a
ret nz
dec a
- ld [H_DOWNARROWBLINKCNT1], a
- ld a, [H_DOWNARROWBLINKCNT2]
+ ld [hDownArrowBlinkCount1], a
+ ld a, [hDownArrowBlinkCount2]
dec a
- ld [H_DOWNARROWBLINKCNT2], a
+ ld [hDownArrowBlinkCount2], a
ret nz
ld a, $06
- ld [H_DOWNARROWBLINKCNT2], a
+ ld [hDownArrowBlinkCount2], a
ld a, "▼"
ld [hl], a
ret
@@ -4187,225 +1568,7 @@ PrintText_NoCreatingTextBox::
coord bc, 1, 14
jp TextCommandProcessor
-
-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
-
+INCLUDE "home/print_num.asm"
CallFunctionInTable::
; Call function a in jumptable hl.
@@ -4429,7 +1592,6 @@ CallFunctionInTable::
pop hl
ret
-
IsInArray::
; Search an array at hl for the value in a.
; Entry size is de bytes.
@@ -4456,7 +1618,6 @@ IsInRestOfArray::
scf
ret
-
RestoreScreenTilesAndReloadTilePatterns::
call ClearSprites
ld a, $1
@@ -4467,7 +1628,6 @@ RestoreScreenTilesAndReloadTilePatterns::
call RunDefaultPaletteCommand
jr Delay3
-
GBPalWhiteOutWithDelay3::
call GBPalWhiteOut
@@ -4493,9 +1653,8 @@ GBPalWhiteOut::
ld [rOBP1], a
ret
-
RunDefaultPaletteCommand::
- ld b, $ff
+ ld b, SET_PAL_DEFAULT
RunPaletteCommand::
ld a, [wOnSGB]
and a
@@ -4537,7 +1696,6 @@ ReloadMapSpriteTilePatterns::
call LoadFontTilePatterns
jp UpdateSprites
-
GiveItem::
; Give player quantity c of item b,
; and copy the item's name to wcf4b.
@@ -4565,7 +1723,6 @@ GivePokemon::
ld [wMonDataLocation], a
jpba _GivePokemon
-
Random::
; Return a random number in a.
; For battles, use BattleRandom.
@@ -4579,30 +1736,28 @@ Random::
pop hl
ret
-
INCLUDE "home/predef.asm"
-
UpdateCinnabarGymGateTileBlocks::
jpba UpdateCinnabarGymGateTileBlocks_
CheckForHiddenObjectOrBookshelfOrCardKeyDoor::
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, [hJoyHeld]
bit 0, a ; A button
jr z, .nothingFound
; A button is pressed
- ld a, Bank(CheckForHiddenObject)
+ ld a, BANK(CheckForHiddenObject)
ld [MBC1RomBank], a
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
call CheckForHiddenObject
- ld a, [$ffee]
+ ld a, [hFoundHiddenObject]
and a
jr nz, .hiddenObjectNotFound
ld a, [wHiddenObjectFunctionRomBank]
ld [MBC1RomBank], a
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld de, .returnAddress
push de
jp hl
@@ -4611,16 +1766,16 @@ CheckForHiddenObjectOrBookshelfOrCardKeyDoor::
jr .done
.hiddenObjectNotFound
callba PrintBookshelfText
- ld a, [$ffdb]
+ ld a, [hFFDB]
and a
jr z, .done
.nothingFound
ld a, $ff
.done
- ld [$ffeb], a
+ ld [hFoundHiddenObjectOrBookshelf], a
pop af
ld [MBC1RomBank], a
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ret
PrintPredefTextID::
@@ -4633,89 +1788,21 @@ PrintPredefTextID::
RestoreMapTextPointer::
ld hl, wMapTextPtr
- ld a, [$ffec]
+ ld a, [hSavedMapTextPtr]
ld [hli], a
- ld a, [$ffec + 1]
+ ld a, [hSavedMapTextPtr + 1]
ld [hl], a
ret
SetMapTextPointer::
ld a, [wMapTextPtr]
- ld [$ffec], a
+ ld [hSavedMapTextPtr], a
ld a, [wMapTextPtr + 1]
- ld [$ffec + 1], a
+ ld [hSavedMapTextPtr + 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 GymStatueText1 ; 0C
- add_tx_pre GymStatueText2 ; 0D
- add_tx_pre BookcaseText ; 0E
- add_tx_pre ViridianCityPokecenterBenchGuyText ; 0F
- add_tx_pre PewterCityPokecenterBenchGuyText ; 10
- add_tx_pre CeruleanCityPokecenterBenchGuyText ; 11
- add_tx_pre LavenderCityPokecenterBenchGuyText ; 12
- add_tx_pre VermilionCityPokecenterBenchGuyText ; 13
- add_tx_pre CeladonCityPokecenterBenchGuyText ; 14
- add_tx_pre CeladonCityHotelText ; 15
- add_tx_pre FuchsiaCityPokecenterBenchGuyText ; 16
- add_tx_pre CinnabarIslandPokecenterBenchGuyText ; 17
- add_tx_pre SaffronCityPokecenterBenchGuyText ; 18
- add_tx_pre MtMoonPokecenterBenchGuyText ; 19
- add_tx_pre RockTunnelPokecenterBenchGuyText ; 1A
- add_tx_pre UnusedBenchGuyText1 ; 1B XXX unused
- add_tx_pre UnusedBenchGuyText2 ; 1C XXX unused
- add_tx_pre UnusedBenchGuyText3 ; 1D XXX unused
- add_tx_pre UnusedPredefText ; 1E XXX unused
- add_tx_pre PokemonCenterPCText ; 1F
- add_tx_pre ViridianSchoolNotebook ; 20
- add_tx_pre ViridianSchoolBlackboard ; 21
- add_tx_pre JustAMomentText ; 22
- add_tx_pre OpenBillsPCText ; 23
- add_tx_pre FoundHiddenItemText ; 24
- add_tx_pre HiddenItemBagFullText ; 25 XXX unused
- add_tx_pre VermilionGymTrashText ; 26
- add_tx_pre IndigoPlateauHQText ; 27
- add_tx_pre GameCornerOutOfOrderText ; 28
- add_tx_pre GameCornerOutToLunchText ; 29
- add_tx_pre GameCornerSomeonesKeysText ; 2A
- add_tx_pre FoundHiddenCoinsText ; 2B
- add_tx_pre DroppedHiddenCoinsText ; 2C
- add_tx_pre BillsHouseMonitorText ; 2D
- add_tx_pre BillsHouseInitiatedText ; 2E
- add_tx_pre BillsHousePokemonList ; 2F
- add_tx_pre MagazinesText ; 30
- add_tx_pre CinnabarGymQuiz ; 31
- add_tx_pre GameCornerNoCoinsText ; 32
- add_tx_pre GameCornerCoinCaseText ; 33
- add_tx_pre LinkCableHelp ; 34
- add_tx_pre TMNotebook ; 35
- add_tx_pre FightingDojoText ; 36
- add_tx_pre EnemiesOnEverySideText ; 37
- add_tx_pre WhatGoesAroundComesAroundText ; 38
- add_tx_pre NewBicycleText ; 39
- add_tx_pre IndigoPlateauStatues ; 3A
- add_tx_pre VermilionGymTrashSuccessText1 ; 3B
- add_tx_pre VermilionGymTrashSuccessText2 ; 3C XXX unused
- add_tx_pre VermilionGymTrashSuccessText3 ; 3D
- add_tx_pre VermilionGymTrashFailText ; 3E
- add_tx_pre TownMapText ; 3F
- add_tx_pre BookOrSculptureText ; 40
- add_tx_pre ElevatorText ; 41
- add_tx_pre PokemonStuffText ; 42
+INCLUDE "data/text_predef_pointers.asm"
diff --git a/home/audio.asm b/home/audio.asm
index 242f038b..04f0276d 100644
--- a/home/audio.asm
+++ b/home/audio.asm
@@ -170,10 +170,10 @@ PlaySound::
.noFadeOut
xor a
ld [wNewSoundID], a
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
ld [hSavedROMBank], a
ld a, [wAudioROMBank]
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
cp BANK(Audio1_PlaySound)
jr nz, .checkForAudio2
@@ -198,7 +198,7 @@ PlaySound::
.next2
ld a, [hSavedROMBank]
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
jr .done
diff --git a/home/bankswitch.asm b/home/bankswitch.asm
new file mode 100644
index 00000000..086ca2f3
--- /dev/null
+++ b/home/bankswitch.asm
@@ -0,0 +1,35 @@
+BankswitchHome::
+; switches to bank # in a
+; Only use this when in the home bank!
+ ld [wBankswitchHomeTemp], a
+ ld a, [hLoadedROMBank]
+ ld [wBankswitchHomeSavedROMBank], a
+ ld a, [wBankswitchHomeTemp]
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ ret
+
+BankswitchBack::
+; returns from BankswitchHome
+ ld a, [wBankswitchHomeSavedROMBank]
+ ld [hLoadedROMBank], 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, [hLoadedROMBank]
+ push af
+ ld a, b
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ ld bc, .Return
+ push bc
+ jp hl
+.Return
+ pop bc
+ ld a, b
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ ret
diff --git a/home/clear_sprites.asm b/home/clear_sprites.asm
new file mode 100644
index 00000000..34f4b4ec
--- /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/copy.asm b/home/copy.asm
index be9c8c0c..910f508b 100644
--- a/home/copy.asm
+++ b/home/copy.asm
@@ -1,14 +1,14 @@
FarCopyData::
; Copy bc bytes from a:hl to de.
ld [wBuffer], a
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, [wBuffer]
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
call CopyData
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ret
diff --git a/home/copy2.asm b/home/copy2.asm
index d4f35668..521223b6 100644
--- a/home/copy2.asm
+++ b/home/copy2.asm
@@ -2,24 +2,24 @@ FarCopyData2::
; Identical to FarCopyData, but uses hROMBankTemp
; as temp space instead of wBuffer.
ld [hROMBankTemp], a
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, [hROMBankTemp]
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
call CopyData
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ret
FarCopyData3::
; Copy bc bytes from a:de to hl.
ld [hROMBankTemp], a
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, [hROMBankTemp]
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
push hl
push de
@@ -31,7 +31,7 @@ FarCopyData3::
pop de
pop hl
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ret
@@ -39,10 +39,10 @@ FarCopyDataDouble::
; Expand bc bytes of 1bpp image data
; from a:hl to 2bpp data at de.
ld [hROMBankTemp], a
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, [hROMBankTemp]
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
.loop
ld a, [hli]
@@ -55,7 +55,7 @@ FarCopyDataDouble::
or b
jr nz, .loop
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ret
@@ -64,27 +64,27 @@ CopyVideoData::
; tiles from b:de to hl, 8 tiles at a time.
; This takes c/8 frames.
- ld a, [H_AUTOBGTRANSFERENABLED]
+ ld a, [hAutoBGTransferEnabled]
push af
xor a ; disable auto-transfer while copying
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
ld [hROMBankTemp], a
ld a, b
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ld a, e
- ld [H_VBCOPYSRC], a
+ ld [hVBlankCopySource], a
ld a, d
- ld [H_VBCOPYSRC + 1], a
+ ld [hVBlankCopySource + 1], a
ld a, l
- ld [H_VBCOPYDEST], a
+ ld [hVBlankCopyDest], a
ld a, h
- ld [H_VBCOPYDEST + 1], a
+ ld [hVBlankCopyDest + 1], a
.loop
ld a, c
@@ -92,18 +92,18 @@ CopyVideoData::
jr nc, .keepgoing
.done
- ld [H_VBCOPYSIZE], a
+ ld [hVBlankCopySize], a
call DelayFrame
ld a, [hROMBankTemp]
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
pop af
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ret
.keepgoing
ld a, 8
- ld [H_VBCOPYSIZE], a
+ ld [hVBlankCopySize], a
call DelayFrame
ld a, c
sub 8
@@ -114,26 +114,26 @@ 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]
+ ld a, [hAutoBGTransferEnabled]
push af
xor a ; disable auto-transfer while copying
- ld [H_AUTOBGTRANSFERENABLED], a
- ld a, [H_LOADEDROMBANK]
+ ld [hAutoBGTransferEnabled], a
+ ld a, [hLoadedROMBank]
ld [hROMBankTemp], a
ld a, b
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ld a, e
- ld [H_VBCOPYDOUBLESRC], a
+ ld [hVBlankCopyDoubleSource], a
ld a, d
- ld [H_VBCOPYDOUBLESRC + 1], a
+ ld [hVBlankCopyDoubleSource + 1], a
ld a, l
- ld [H_VBCOPYDOUBLEDEST], a
+ ld [hVBlankCopyDoubleDest], a
ld a, h
- ld [H_VBCOPYDOUBLEDEST + 1], a
+ ld [hVBlankCopyDoubleDest + 1], a
.loop
ld a, c
@@ -141,18 +141,18 @@ CopyVideoDataDouble::
jr nc, .keepgoing
.done
- ld [H_VBCOPYDOUBLESIZE], a
+ ld [hVBlankCopyDoubleSize], a
call DelayFrame
ld a, [hROMBankTemp]
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
pop af
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ret
.keepgoing
ld a, 8
- ld [H_VBCOPYDOUBLESIZE], a
+ ld [hVBlankCopyDoubleSize], a
call DelayFrame
ld a, c
sub 8
@@ -200,16 +200,16 @@ CopyScreenTileBufferToVRAM::
.setup
ld a, d
- ld [H_VBCOPYBGSRC+1], a
+ ld [hVBlankCopyBGSource+1], a
call GetRowColAddressBgMap
ld a, l
- ld [H_VBCOPYBGDEST], a
+ ld [hVBlankCopyBGDest], a
ld a, h
- ld [H_VBCOPYBGDEST+1], a
+ ld [hVBlankCopyBGDest+1], a
ld a, c
- ld [H_VBCOPYBGNUMROWS], a
+ ld [hVBlankCopyBGNumRows], a
ld a, e
- ld [H_VBCOPYBGSRC], a
+ ld [hVBlankCopyBGSource], a
ret
ClearScreen::
diff --git a/home/header.asm b/home/header.asm
new file mode 100644
index 00000000..047f97f4
--- /dev/null
+++ b/home/header.asm
@@ -0,0 +1,57 @@
+; rst vectors (unused)
+
+SECTION "rst0", ROM0[$0000]
+ rst $38
+
+SECTION "rst8", ROM0[$0008]
+ rst $38
+
+SECTION "rst10", ROM0[$0010]
+ rst $38
+
+SECTION "rst18", ROM0[$0018]
+ rst $38
+
+SECTION "rst20", ROM0[$0020]
+ rst $38
+
+SECTION "rst28", ROM0[$0028]
+ rst $38
+
+SECTION "rst30", ROM0[$0030]
+ rst $38
+
+SECTION "rst38", ROM0[$0038]
+ rst $38
+
+
+; Game Boy hardware interrupts
+
+SECTION "vblank", ROM0[$0040]
+ jp VBlank
+
+SECTION "lcd", ROM0[$0048]
+ rst $38
+
+SECTION "timer", ROM0[$0050]
+ jp Timer
+
+SECTION "serial", ROM0[$0058]
+ jp Serial
+
+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 - @, $00
diff --git a/home/init.asm b/home/init.asm
index 9e3e2c82..83238bad 100644
--- a/home/init.asm
+++ b/home/init.asm
@@ -41,8 +41,8 @@ rLCDC_DEFAULT EQU %11100011
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,14 +53,14 @@ rLCDC_DEFAULT EQU %11100011
call ClearVram
- ld hl, $ff80
- ld bc, $ffff - $ff80
+ ld hl, HRAM_Begin
+ ld bc, HRAM_End - HRAM_Begin
call FillMemory
call ClearSprites
- ld a, Bank(WriteDMACodeToHRAM)
- ld [H_LOADEDROMBANK], a
+ ld a, BANK(WriteDMACodeToHRAM)
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
call WriteDMACodeToHRAM
@@ -101,9 +101,9 @@ rLCDC_DEFAULT EQU %11100011
ld [wAudioROMBank], a
ld [wAudioSavedROMBank], a
ld a, $9c
- ld [H_AUTOBGTRANSFERDEST + 1], a
+ ld [hAutoBGTransferDest + 1], a
xor a
- ld [H_AUTOBGTRANSFERDEST], a
+ ld [hAutoBGTransferDest], a
dec a
ld [wUpdateSpritesEnabled], a
@@ -119,8 +119,8 @@ rLCDC_DEFAULT EQU %11100011
jp SetDefaultNamesBeforeTitlescreen
ClearVram::
- ld hl, $8000
- ld bc, $2000
+ ld hl, VRAM_Begin
+ ld bc, VRAM_End - VRAM_Begin
xor a
jp FillMemory
diff --git a/home/lcd.asm b/home/lcd.asm
new file mode 100644
index 00000000..e88a42b3
--- /dev/null
+++ b/home/lcd.asm
@@ -0,0 +1,25 @@
+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
diff --git a/home/list_menu.asm b/home/list_menu.asm
new file mode 100644
index 00000000..4ce973b2
--- /dev/null
+++ b/home/list_menu.asm
@@ -0,0 +1,526 @@
+; INPUT:
+; [wListMenuID] = list menu ID
+; [wListPointer] = address of the list (2 bytes)
+DisplayListMenuID::
+ xor a
+ ld [hAutoBGTransferEnabled], 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 [hAutoBGTransferEnabled], a ; disable transfer
+ call PrintListMenuEntries
+ ld a, 1
+ ld [hAutoBGTransferEnabled], 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, 80
+ 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
+ ld b, 1 ; height
+ ld c, 3 ; width
+ ld a, [wListMenuID]
+ cp PRICEDITEMLISTMENU
+ jr nz, .drawTextBox
+; text box dimensions/coordinates for quantity and price
+ coord hl, 7, 9
+ ld b, 1 ; height
+ ld c, 11 ; 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
+ ld b, 9
+ ld c, 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
+ sla 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, $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
+ sla 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@"
diff --git a/home/move_mon.asm b/home/move_mon.asm
new file mode 100644
index 00000000..e13ebf4e
--- /dev/null
+++ b/home/move_mon.asm
@@ -0,0 +1,242 @@
+; 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::
+ jpab _RemovePokemon
+
+AddPartyMon::
+ push hl
+ push de
+ push bc
+ callba _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
+ ld a, [hMultiplicand+1]
+ ld [de], a
+ inc de
+ ld 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
+ ld [hMultiplicand], a
+ ld [hMultiplicand+1], a
+ inc b ; increment current stat exp bonus
+ ld a, b
+ cp $ff
+ jr z, .statExpDone
+ ld [hMultiplicand+2], a
+ ld [hMultiplier], a
+ call Multiply
+ ld a, [hld]
+ ld d, a
+ ld a, [hProduct + 3]
+ sub d
+ ld a, [hli]
+ ld d, a
+ ld 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
+ ld [hMultiplicand+2], a
+ ld a, d
+ ld [hMultiplicand+1], a
+ xor a
+ ld [hMultiplicand], a
+ ld a, [wCurEnemyLVL]
+ ld [hMultiplier], a
+ call Multiply ; ((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level
+ ld a, [hMultiplicand]
+ ld [hDividend], a
+ ld a, [hMultiplicand+1]
+ ld [hDividend+1], a
+ ld a, [hMultiplicand+2]
+ ld [hDividend+2], a
+ ld a, $64
+ ld [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
+ ld a, [hMultiplicand+2]
+ add b
+ ld [hMultiplicand+2], a
+ jr nc, .noCarry3
+ ld a, [hMultiplicand+1]
+ inc a
+ ld [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
+ ld a, [hMultiplicand+2]
+ add b
+ ld [hMultiplicand+2], a
+ jr nc, .noCarry4
+ ld a, [hMultiplicand+1]
+ inc a ; non-HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + 5
+ ld [hMultiplicand+1], a ; HP: (((Base + IV) * 2 + ceil(Sqrt(stat exp)) / 4) * Level) / 100 + Level + 10
+.noCarry4
+ ld a, [hMultiplicand+1] ; check for overflow (>999)
+ cp 999 / $100 + 1
+ jr nc, .overflow
+ cp 999 / $100
+ jr c, .noOverflow
+ ld a, [hMultiplicand+2]
+ cp 999 % $100 + 1
+ jr c, .noOverflow
+.overflow
+ ld a, 999 / $100 ; overflow: cap at 999
+ ld [hMultiplicand+1], a
+ ld a, 999 % $100
+ ld [hMultiplicand+2], a
+.noOverflow
+ pop bc
+ pop de
+ pop hl
+ ret
+
+AddEnemyMonToPlayerParty::
+ ld a, [hLoadedROMBank]
+ push af
+ ld a, BANK(_AddEnemyMonToPlayerParty)
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ call _AddEnemyMonToPlayerParty
+ pop bc
+ ld a, b
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ ret
+
+MoveMon::
+ ld a, [hLoadedROMBank]
+ push af
+ ld a, BANK(_MoveMon)
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ call _MoveMon
+ pop bc
+ ld a, b
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ ret
diff --git a/home/names.asm b/home/names.asm
new file mode 100644
index 00000000..cbc8910b
--- /dev/null
+++ b/home/names.asm
@@ -0,0 +1,141 @@
+GetMonName::
+ push hl
+ ld a, [hLoadedROMBank]
+ push af
+ ld a, BANK(MonsterNames)
+ ld [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
+ ld [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 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::
+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 00000000..319febd3
--- /dev/null
+++ b/home/names2.asm
@@ -0,0 +1,93 @@
+NamePointers::
+ dw MonsterNames
+ dw MoveNames
+ dw UnusedNames
+ 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 HM_01
+ jp nc, GetMachineName
+
+ ld 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]
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ 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]
+ ld [hSwapTemp + 1], a
+ ld a, [hl]
+ ld [hSwapTemp], a
+ ld a, [hSwapTemp]
+ ld h, a
+ ld 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
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ ret
diff --git a/home/overworld.asm b/home/overworld.asm
index b96efcb4..79e4ea97 100644
--- a/home/overworld.asm
+++ b/home/overworld.asm
@@ -88,7 +88,7 @@ OverworldLoopLessDelay::
call IsPlayerCharacterBeingControlledByGame
jr nz, .checkForOpponent
call CheckForHiddenObjectOrBookshelfOrCardKeyDoor
- ld a, [$ffeb]
+ ld a, [hFoundHiddenObjectOrBookshelf]
and a
jp z, OverworldLoop ; jump if a hidden object or bookshelf was found, but not if a card key door was found
call IsSpriteOrSignInFrontOfPlayer
@@ -762,8 +762,8 @@ HandleBlackOut::
call StopMusic
ld hl, wd72e
res 5, [hl]
- ld a, Bank(ResetStatusAndHalveMoneyOnBlackout) ; also Bank(SpecialWarpIn) and Bank(SpecialEnterMap)
- ld [H_LOADEDROMBANK], a
+ ld a, BANK(ResetStatusAndHalveMoneyOnBlackout) ; also BANK(SpecialWarpIn) and BANK(SpecialEnterMap)
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
call ResetStatusAndHalveMoneyOnBlackout
call SpecialWarpIn
@@ -772,7 +772,7 @@ HandleBlackOut::
StopMusic::
ld [wAudioFadeOutControl], a
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
.wait
@@ -793,8 +793,8 @@ HandleFlyWarpOrDungeonWarp::
set 2, [hl] ; fly warp or dungeon warp
res 5, [hl] ; forced to ride bike
call LeaveMapAnim
- ld a, Bank(SpecialWarpIn)
- ld [H_LOADEDROMBANK], a
+ ld a, BANK(SpecialWarpIn)
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
call SpecialWarpIn
jp SpecialEnterMap
@@ -867,7 +867,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::
@@ -1372,10 +1372,10 @@ TilePairCollisionsWater::
; 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]
+ ld a, [hLoadedROMBank]
push af
ld a, [wTilesetBank] ; tile data ROM bank
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a ; switch to ROM bank that contains tile data
ld a, [wCurrentTileBlockMapViewPointer] ; address of upper left corner of current map view
ld e, a
@@ -1424,18 +1424,18 @@ 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
@@ -1457,7 +1457,7 @@ LoadCurrentMapView::
dec b
jr nz, .rowLoop2
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a ; restore previous ROM bank
ret
@@ -1739,7 +1739,7 @@ ScheduleSouthRowRedraw::
ld l, a
ld a, [wMapViewVRAMPointer + 1]
ld h, a
- ld bc, $0200
+ ld bc, $200
add hl, bc
ld a, h
and $03
@@ -1835,7 +1835,7 @@ DrawTileBlock::
ld a, [de]
ld [hl], a
inc de
- ld bc, $0015
+ ld bc, $15
add hl, bc
pop bc
dec c
@@ -2180,7 +2180,7 @@ LoadMapHeader::
jr nz, .zeroSpriteDataLoop
; initialize all C100-C1FF sprite entries to disabled (other than player's)
ld hl, wSpriteStateData1 + $12
- ld de, $0010
+ ld de, $10
ld c, $0f
.disableSpriteEntriesLoop
ld [hl], $ff
@@ -2291,10 +2291,10 @@ LoadMapHeader::
ld a, [wCurMap]
ld c, a
ld b, $00
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, BANK(MapSongBanks)
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ld hl, MapSongBanks
add hl, bc
@@ -2304,7 +2304,7 @@ LoadMapHeader::
ld a, [hl]
ld [wMapMusicROMBank], a ; music 2
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ret
@@ -2322,7 +2322,7 @@ CopyMapConnectionHeader::
; function to load map data
LoadMapData::
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
call DisableLCD
ld a, $98
@@ -2377,7 +2377,7 @@ LoadMapData::
call PlayDefaultMusicFadeOutCurrent
.restoreRomBank
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ret
@@ -2388,15 +2388,15 @@ SwitchToMapRomBank::
push bc
ld c, a
ld b, $00
- ld a, Bank(MapHeaderBanks)
+ ld a, BANK(MapHeaderBanks)
call BankswitchHome ; switch to ROM bank 3
ld hl, MapHeaderBanks
add hl, bc
ld a, [hl]
- ld [$ffe8], a ; save map ROM bank
+ ld [hMapROMBank], a ; save map ROM bank
call BankswitchBack
- ld a, [$ffe8]
- ld [H_LOADEDROMBANK], a
+ ld a, [hMapROMBank]
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a ; switch to map ROM bank
pop bc
pop hl
diff --git a/home/overworld_text.asm b/home/overworld_text.asm
new file mode 100644
index 00000000..b32335f7
--- /dev/null
+++ b/home/overworld_text.asm
@@ -0,0 +1,31 @@
+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
diff --git a/home/pic.asm b/home/pic.asm
deleted file mode 100644
index a1c18e8a..00000000
--- a/home/pic.asm
+++ /dev/null
@@ -1,591 +0,0 @@
-; bankswitches and runs _UncompressSpriteData
-; bank is given in a, sprite input stream is pointed to in wSpriteInputPtr
-UncompressSpriteData::
- ld b, a
- ld a, [H_LOADEDROMBANK]
- push af
- ld a, b
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- ld a, SRAM_ENABLE
- ld [MBC1SRamEnable], a
- xor a
- ld [MBC1SRamBank], a
- call _UncompressSpriteData
- pop af
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- ret
-
-; initializes necessary data to load a sprite and runs UncompressSpriteDataLoop
-_UncompressSpriteData::
- ld hl, sSpriteBuffer1
- ld c, (2*SPRITEBUFFERSIZE) % $100
- ld b, (2*SPRITEBUFFERSIZE) / $100
- 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/pics.asm b/home/pics.asm
new file mode 100644
index 00000000..c6d99cbb
--- /dev/null
+++ b/home/pics.asm
@@ -0,0 +1,196 @@
+; 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
+ ld [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)
+ ld [hSpriteOffset], a
+ ld a, c
+ swap a
+ and $f
+ ld b, a
+ add a
+ add a
+ add a ; 8*tiles is height in bytes
+ ld [hSpriteHeight], a
+ ld a, $7
+ sub b ; 7-h ; skip for vertical center (in tiles, relative to current column)
+ ld b, a
+ ld 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)
+ ld [hSpriteOffset], a
+ xor a
+ ld [MBC1SRamBank], a
+ 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)
+ 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::
+ ld a, [hSpriteOffset]
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hSpriteWidth]
+.columnLoop
+ push af
+ push hl
+ ld 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::
+ xor a
+ ld [MBC1SRamBank], a
+ 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 [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
+ ld a, [hSpriteInterlaceCounter]
+ dec a
+ ld [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
+ ld a, [hLoadedROMBank]
+ ld b, a
+ jp CopyVideoData
diff --git a/home/pokemon.asm b/home/pokemon.asm
new file mode 100644
index 00000000..141baa65
--- /dev/null
+++ b/home/pokemon.asm
@@ -0,0 +1,464 @@
+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::
+ 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, [hLoadedROMBank]
+ push af
+ ld a, BANK(CopyUncompressedPicToHL)
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ xor a
+ ld [hStartTileID], a
+ call CopyUncompressedPicToHL
+ xor a
+ ld [wSpriteFlipped], a
+ pop af
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ ret
+
+
+PlayCry::
+; Play monster a's cry.
+ call GetCryData
+ call PlaySound
+ jp WaitForSoundToFinish
+
+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::
+ 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]
+ 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_
+ call PlaceUnfilledArrowMenuCursor
+ ld b, a
+ xor a
+ ld [wPartyMenuAnimMonEnabled], a
+ ld a, [wCurrentMenuItem]
+ ld [wPartyAndBillsPCSavedMenuItem], a
+ ld hl, wd730
+ res 6, [hl] ; turn on letter printing delay
+ ld a, [wMenuItemToSwap]
+ 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
+.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
+ jr HandlePartyMenuInput
+.handleSwap
+ ld a, [wCurrentMenuItem]
+ ld [wWhichPokemon], a
+ callba SwitchPartyMon
+ jr HandlePartyMenuInput
+
+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::
+ ld a, [hLoadedROMBank]
+ push af
+ ld a, BANK(PrintStatusAilment)
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ call PrintStatusAilment ; print status condition
+ pop bc
+ ld a, b
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ ret
+
+; 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]
+ ret
+
+; copies the base stat data of a pokemon to wMonHeader
+; INPUT:
+; [wd0b5] = pokemon ID
+GetMonHeader::
+ ld a, [hLoadedROMBank]
+ push af
+ ld a, BANK(BaseStats)
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ 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
+ jr .done
+.mew
+ ld hl, MewBaseStats
+ ld de, wMonHeader
+ ld bc, MonBaseStatsEnd - MonBaseStats
+ ld a, BANK(MewBaseStats)
+ call FarCopyData
+.done
+ ld a, [wd0b5]
+ ld [wMonHIndex], a
+ pop af
+ ld [wd11e], a
+ pop hl
+ pop de
+ pop bc
+ pop af
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ 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 9bb9be74..4f0c37d9 100644
--- a/home/predef.asm
+++ b/home/predef.asm
@@ -8,18 +8,18 @@ Predef::
; A hack for LoadDestinationWarpPosition.
; See LoadTilesetHeader (predef $19).
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
ld [wPredefParentBank], a
push af
ld a, BANK(GetPredefPointer)
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
call GetPredefPointer
ld a, [wPredefBank]
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ld de, .done
@@ -28,7 +28,7 @@ Predef::
.done
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ret
diff --git a/home/predef_text.asm b/home/predef_text.asm
new file mode 100644
index 00000000..059e23ab
--- /dev/null
+++ b/home/predef_text.asm
@@ -0,0 +1,237 @@
+; this function is used to display sign messages, sprite dialog, etc.
+; INPUT: [hSpriteIndexOrTextID] = sprite ID or text ID
+DisplayTextID::
+ ld a, [hLoadedROMBank]
+ 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 [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
+ ld a, [hSpriteIndexOrTextID] ; text ID
+ ld [wSpriteIndex], a
+ and a
+ jp z, DisplayStartMenu
+ 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
+ add l
+ ld l, a
+ jr nc, .noCarry
+ inc h
+.noCarry
+ 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
+ sla e
+ 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 [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, wSpriteStateData2 + $19
+ ld c, $0f
+ ld de, $10
+.restoreSpriteFacingDirectionLoop
+ ld a, [hl]
+ dec h
+ ld [hl], a
+ inc h
+ add hl, de
+ dec c
+ jr nz, .restoreSpriteFacingDirectionLoop
+ ld a, BANK(InitMapSprites)
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ 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
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ jp UpdateSprites
+
+DisplayPokemartDialogue::
+ push hl
+ ld hl, PokemartGreetingText
+ call PrintText
+ pop hl
+ inc hl
+ call LoadItemList
+ ld a, PRICEDITEMLISTMENU
+ ld [wListMenuID], a
+ ld a, [hLoadedROMBank]
+ push af
+ ld a, BANK(DisplayPokemartDialogue_)
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ call DisplayPokemartDialogue_
+ pop af
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ 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 [hItemPrice], a
+ ld [hItemPrice + 1], a
+ ld [hItemPrice + 2], a
+
+ inc hl
+ ld a, [hLoadedROMBank]
+ push af
+ ld a, BANK(DisplayPokemonCenterDialogue_)
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ call DisplayPokemonCenterDialogue_
+ pop af
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ 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
+ jp HoldTextDisplayOpen
+
+PlayerBlackedOutText::
+ TX_FAR _PlayerBlackedOutText
+ db "@"
+
+DisplayRepelWoreOffText::
+ ld hl, RepelWoreOffText
+ call PrintText
+ jp AfterDisplayingTextID
+
+RepelWoreOffText::
+ TX_FAR _RepelWoreOffText
+ db "@"
diff --git a/home/print_bcd.asm b/home/print_bcd.asm
new file mode 100644
index 00000000..38aedd3c
--- /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 00000000..5155977b
--- /dev/null
+++ b/home/print_num.asm
@@ -0,0 +1,217 @@
+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 [hPastLeadingZeros], a
+ ld [hNumToPrint], a
+ ld [hNumToPrint + 1], a
+ ld a, b
+ and $f
+ cp 1
+ jr z, .byte
+ cp 2
+ jr z, .word
+.long
+ ld a, [de]
+ ld [hNumToPrint], a
+ inc de
+ ld a, [de]
+ ld [hNumToPrint + 1], a
+ inc de
+ ld a, [de]
+ ld [hNumToPrint + 2], a
+ jr .start
+
+.word
+ ld a, [de]
+ ld [hNumToPrint + 1], a
+ inc de
+ ld a, [de]
+ ld [hNumToPrint + 2], a
+ jr .start
+
+.byte
+ ld a, [de]
+ ld [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
+ ld [hPowerOf10 + 0], a
+
+if (\1) / $100
+ ld a, \1 / $100 % $100
+else xor a
+endc
+ ld [hPowerOf10 + 1], a
+
+ ld a, \1 / $1 % $100
+ ld [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
+ ld a, [hNumToPrint + 2]
+.mod
+ cp 10
+ jr c, .ok
+ sub 10
+ inc c
+ jr .mod
+.ok
+
+ ld b, a
+ ld a, [hPastLeadingZeros]
+ or c
+ ld [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
+ ld a, [hPowerOf10]
+ ld b, a
+ ld a, [hNumToPrint]
+ ld [hSavedNumToPrint], a
+ cp b
+ jr c, .underflow0
+ sub b
+ ld [hNumToPrint], a
+ ld a, [hPowerOf10 + 1]
+ ld b, a
+ ld a, [hNumToPrint + 1]
+ ld [hSavedNumToPrint + 1], a
+ cp b
+ jr nc, .noborrow1
+
+ ld a, [hNumToPrint]
+ or 0
+ jr z, .underflow1
+ dec a
+ ld [hNumToPrint], a
+ ld a, [hNumToPrint + 1]
+.noborrow1
+
+ sub b
+ ld [hNumToPrint + 1], a
+ ld a, [hPowerOf10 + 2]
+ ld b, a
+ ld a, [hNumToPrint + 2]
+ ld [hSavedNumToPrint + 2], a
+ cp b
+ jr nc, .noborrow2
+
+ ld a, [hNumToPrint + 1]
+ and a
+ jr nz, .borrowed
+
+ ld a, [hNumToPrint]
+ and a
+ jr z, .underflow2
+ dec a
+ ld [hNumToPrint], a
+ xor a
+.borrowed
+
+ dec a
+ ld [hNumToPrint + 1], a
+ ld a, [hNumToPrint + 2]
+.noborrow2
+ sub b
+ ld [hNumToPrint + 2], a
+ inc c
+ jr .loop
+
+.underflow2
+ ld a, [hSavedNumToPrint + 1]
+ ld [hNumToPrint + 1], a
+.underflow1
+ ld a, [hSavedNumToPrint]
+ ld [hNumToPrint], a
+.underflow0
+ ld a, [hPastLeadingZeros]
+ or c
+ jr z, .PrintLeadingZero
+
+ ld a, "0"
+ add c
+ ld [hl], a
+ ld [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
+ ld a, [hPastLeadingZeros]
+ and a
+ ret z
+.inc
+ inc hl
+ ret
diff --git a/home/start.asm b/home/start.asm
new file mode 100644
index 00000000..448b6362
--- /dev/null
+++ b/home/start.asm
@@ -0,0 +1,10 @@
+_Start::
+ cp GBC
+ jr z, .gbc
+ xor a
+ jr .ok
+.gbc
+ ld a, 0
+.ok
+ ld [wGBC], a
+ jp Init
diff --git a/home/start_menu.asm b/home/start_menu.asm
index eb4b4f2d..38333644 100755
--- a/home/start_menu.asm
+++ b/home/start_menu.asm
@@ -1,6 +1,6 @@
DisplayStartMenu::
ld a, BANK(StartMenu_Pokedex)
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
ld a, [wWalkBikeSurfState] ; walking/biking/surfing
ld [wWalkBikeSurfStateCopy], a
diff --git a/home/text.asm b/home/text.asm
index 9db81530..0d2ed0a2 100644
--- a/home/text.asm
+++ b/home/text.asm
@@ -62,7 +62,7 @@ Char4ETest::
cp $4E ; next
jr nz, .char4FTest
ld bc, 2 * SCREEN_WIDTH
- ld a, [hFlags_0xFFF6]
+ ld a, [hFlagsFFF6]
bit 2, a
jr z, .ok
ld bc, SCREEN_WIDTH
@@ -180,7 +180,7 @@ Char59::
; or
; player active monster’s name
; (like Char5A but flipped)
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
xor 1
jr MonsterNameCharsCommon
@@ -189,7 +189,7 @@ Char5A::
; player active monster’s name
; or
; enemy active monster’s name, prefixed with “Enemy ”
- ld a, [H_WHOSETURN]
+ ld a, [hWhoseTurn]
MonsterNameCharsCommon::
push de
and a
@@ -365,7 +365,7 @@ TextCommandProcessor::
push af
set 1, a
ld e, a
- ld a, [$fff4]
+ ld a, [hClearLetterPrintingDelayFlags]
xor e
ld [wLetterPrintingDelayFlags], a
ld a, c
@@ -675,14 +675,14 @@ TextCommand0D::
; BB = bank
TextCommand17::
pop hl
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
push af
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
ld a, [hli]
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
push hl
ld l, e
@@ -690,7 +690,7 @@ TextCommand17::
call TextCommandProcessor
pop hl
pop af
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
jp NextTextCommand
diff --git a/home/trainers.asm b/home/trainers.asm
new file mode 100644
index 00000000..9c3519a2
--- /dev/null
+++ b/home/trainers.asm
@@ -0,0 +1,436 @@
+; 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, [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
+ ld a, [hLoadedROMBank]
+ push af
+ ld a, [wEndBattleTextRomBank]
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ push hl
+ callba SaveTrainerName
+ ld hl, TrainerEndBattleText
+ call PrintText
+ pop hl
+ pop af
+ ld [hLoadedROMBank], 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
+
+; only engage with the trainer if the player is not already
+; engaged with another trainer
+; XXX unused?
+CheckIfAlreadyEngaged::
+ ld a, [wFlags_0xcd60]
+ bit 0, a
+ ret nz
+ call EngageMapTrainer
+ xor a
+ ret
+
+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
+ ld a, SFX_STOP_ALL_MUSIC
+ call PlaySound
+ 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/uncompress.asm b/home/uncompress.asm
new file mode 100644
index 00000000..cfc39f0f
--- /dev/null
+++ b/home/uncompress.asm
@@ -0,0 +1,591 @@
+; bankswitches and runs _UncompressSpriteData
+; bank is given in a, sprite input stream is pointed to in wSpriteInputPtr
+UncompressSpriteData::
+ ld b, a
+ ld a, [hLoadedROMBank]
+ push af
+ ld a, b
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ ld a, SRAM_ENABLE
+ ld [MBC1SRamEnable], a
+ xor a
+ ld [MBC1SRamBank], a
+ call _UncompressSpriteData
+ pop af
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ ret
+
+; initializes necessary data to load a sprite and runs UncompressSpriteDataLoop
+_UncompressSpriteData::
+ ld hl, sSpriteBuffer1
+ ld c, (2*SPRITEBUFFERSIZE) % $100
+ ld b, (2*SPRITEBUFFERSIZE) / $100
+ 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/vblank.asm b/home/vblank.asm
index e80fba75..78f5f69d 100644
--- a/home/vblank.asm
+++ b/home/vblank.asm
@@ -5,7 +5,7 @@ VBlank::
push de
push hl
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
ld [wVBlankSavedROMBank], a
ld a, [hSCX]
@@ -26,9 +26,9 @@ VBlank::
call VBlankCopy
call VBlankCopyDouble
call UpdateMovingBgTiles
- call $ff80 ; hOAMDMA
+ call hDMARoutine
ld a, BANK(PrepareOAMData)
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
call PrepareOAMData
@@ -36,24 +36,24 @@ VBlank::
call Random
- ld a, [H_VBLANKOCCURRED]
+ ld a, [hVBlankOccurred]
and a
jr z, .skipZeroing
xor a
- ld [H_VBLANKOCCURRED], a
+ ld [hVBlankOccurred], a
.skipZeroing
- ld a, [H_FRAMECOUNTER]
+ ld a, [hFrameCounter]
and a
jr z, .skipDec
dec a
- ld [H_FRAMECOUNTER], a
+ ld [hFrameCounter], a
.skipDec
call FadeOutAudio
ld a, [wAudioROMBank] ; music ROM bank
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
cp BANK(Audio1_UpdateMusic)
@@ -79,7 +79,7 @@ VBlank::
call z, ReadJoypad
ld a, [wVBlankSavedROMBank]
- ld [H_LOADEDROMBANK], a
+ ld [hLoadedROMBank], a
ld [MBC1RomBank], a
pop hl
@@ -96,10 +96,10 @@ DelayFrame::
NOT_VBLANKED EQU 1
ld a, NOT_VBLANKED
- ld [H_VBLANKOCCURRED], a
+ ld [hVBlankOccurred], a
.halt
halt
- ld a, [H_VBLANKOCCURRED]
+ ld a, [hVBlankOccurred]
and a
jr nz, .halt
ret
diff --git a/home/vcopy.asm b/home/vcopy.asm
index 3f49ad3e..a6213b32 100644
--- a/home/vcopy.asm
+++ b/home/vcopy.asm
@@ -120,15 +120,15 @@ RedrawRowOrColumn::
; the above function, RedrawRowOrColumn, is used when walking to
; improve efficiency.
AutoBgMapTransfer::
- ld a, [H_AUTOBGTRANSFERENABLED]
+ ld a, [hAutoBGTransferEnabled]
and a
ret z
ld hl, sp + 0
ld a, h
- ld [H_SPTEMP], a
+ ld [hSPTemp], a
ld a, l
- ld [H_SPTEMP + 1], a ; save stack pinter
- ld a, [H_AUTOBGTRANSFERPORTION]
+ ld [hSPTemp + 1], a ; save stack pinter
+ ld a, [hAutoBGTransferPortion]
and a
jr z, .transferTopThird
dec a
@@ -136,9 +136,9 @@ AutoBgMapTransfer::
.transferBottomThird
coord hl, 0, 12
ld sp, hl
- ld a, [H_AUTOBGTRANSFERDEST + 1]
+ ld a, [hAutoBGTransferDest + 1]
ld h, a
- ld a, [H_AUTOBGTRANSFERDEST]
+ ld a, [hAutoBGTransferDest]
ld l, a
ld de, (12 * 32)
add hl, de
@@ -147,24 +147,24 @@ AutoBgMapTransfer::
.transferTopThird
coord hl, 0, 0
ld sp, hl
- ld a, [H_AUTOBGTRANSFERDEST + 1]
+ ld a, [hAutoBGTransferDest + 1]
ld h, a
- ld a, [H_AUTOBGTRANSFERDEST]
+ ld a, [hAutoBGTransferDest]
ld l, a
ld a, TRANSFERMIDDLE
jr .doTransfer
.transferMiddleThird
coord hl, 0, 6
ld sp, hl
- ld a, [H_AUTOBGTRANSFERDEST + 1]
+ ld a, [hAutoBGTransferDest + 1]
ld h, a
- ld a, [H_AUTOBGTRANSFERDEST]
+ ld a, [hAutoBGTransferDest]
ld l, a
ld de, (6 * 32)
add hl, de
ld a, TRANSFERBOTTOM
.doTransfer
- ld [H_AUTOBGTRANSFERPORTION], a ; store next portion
+ ld [hAutoBGTransferPortion], a ; store next portion
ld b, 6
TransferBgRows::
@@ -192,73 +192,73 @@ TransferBgRows::
dec b
jr nz, TransferBgRows
- ld a, [H_SPTEMP]
+ ld a, [hSPTemp]
ld h, a
- ld a, [H_SPTEMP + 1]
+ ld a, [hSPTemp + 1]
ld l, 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
+ ld a, [hVBlankCopyBGSource] ; doubles as enabling byte
and a
ret z
ld hl, sp + 0
ld a, h
- ld [H_SPTEMP], a
+ ld [hSPTemp], a
ld a, l
- ld [H_SPTEMP + 1], a ; save stack pointer
- ld a, [H_VBCOPYBGSRC]
+ ld [hSPTemp + 1], a ; save stack pointer
+ ld a, [hVBlankCopyBGSource]
ld l, a
- ld a, [H_VBCOPYBGSRC + 1]
+ ld a, [hVBlankCopyBGSource + 1]
ld h, a
ld sp, hl
- ld a, [H_VBCOPYBGDEST]
+ ld a, [hVBlankCopyBGDest]
ld l, a
- ld a, [H_VBCOPYBGDEST + 1]
+ ld a, [hVBlankCopyBGDest + 1]
ld h, a
- ld a, [H_VBCOPYBGNUMROWS]
+ ld a, [hVBlankCopyBGNumRows]
ld b, a
xor a
- ld [H_VBCOPYBGSRC], a ; disable transfer so it doesn't continue next V-blank
+ ld [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]
+ ld a, [hVBlankCopyDoubleSize]
and a
ret z
ld hl, sp + 0
ld a, h
- ld [H_SPTEMP], a
+ ld [hSPTemp], a
ld a, l
- ld [H_SPTEMP + 1], a
+ ld [hSPTemp + 1], a
- ld a, [H_VBCOPYDOUBLESRC]
+ ld a, [hVBlankCopyDoubleSource]
ld l, a
- ld a, [H_VBCOPYDOUBLESRC + 1]
+ ld a, [hVBlankCopyDoubleSource + 1]
ld h, a
ld sp, hl
- ld a, [H_VBCOPYDOUBLEDEST]
+ ld a, [hVBlankCopyDoubleDest]
ld l, a
- ld a, [H_VBCOPYDOUBLEDEST + 1]
+ ld a, [hVBlankCopyDoubleDest + 1]
ld h, a
- ld a, [H_VBCOPYDOUBLESIZE]
+ ld a, [hVBlankCopyDoubleSize]
ld b, a
xor a ; transferred
- ld [H_VBCOPYDOUBLESIZE], a
+ ld [hVBlankCopyDoubleSize], a
.loop
rept 3
@@ -286,19 +286,19 @@ VBlankCopyDouble::
jr nz, .loop
ld a, l
- ld [H_VBCOPYDOUBLEDEST], a
+ ld [hVBlankCopyDoubleDest], a
ld a, h
- ld [H_VBCOPYDOUBLEDEST + 1], a
+ ld [hVBlankCopyDoubleDest + 1], a
ld hl, sp + 0
ld a, l
- ld [H_VBCOPYDOUBLESRC], a
+ ld [hVBlankCopyDoubleSource], a
ld a, h
- ld [H_VBCOPYDOUBLESRC + 1], a
+ ld [hVBlankCopyDoubleSource + 1], a
- ld a, [H_SPTEMP]
+ ld a, [hSPTemp]
ld h, a
- ld a, [H_SPTEMP + 1]
+ ld a, [hSPTemp + 1]
ld l, a
ld sp, hl
@@ -306,37 +306,37 @@ 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]
+ ld a, [hVBlankCopySize]
and a
ret z
ld hl, sp + 0
ld a, h
- ld [H_SPTEMP], a
+ ld [hSPTemp], a
ld a, l
- ld [H_SPTEMP + 1], a
+ ld [hSPTemp + 1], a
- ld a, [H_VBCOPYSRC]
+ ld a, [hVBlankCopySource]
ld l, a
- ld a, [H_VBCOPYSRC + 1]
+ ld a, [hVBlankCopySource + 1]
ld h, a
ld sp, hl
- ld a, [H_VBCOPYDEST]
+ ld a, [hVBlankCopyDest]
ld l, a
- ld a, [H_VBCOPYDEST + 1]
+ ld a, [hVBlankCopyDest + 1]
ld h, a
- ld a, [H_VBCOPYSIZE]
+ ld a, [hVBlankCopySize]
ld b, a
xor a ; transferred
- ld [H_VBCOPYSIZE], a
+ ld [hVBlankCopySize], a
.loop
rept 7
@@ -356,19 +356,19 @@ VBlankCopy::
jr nz, .loop
ld a, l
- ld [H_VBCOPYDEST], a
+ ld [hVBlankCopyDest], a
ld a, h
- ld [H_VBCOPYDEST + 1], a
+ ld [hVBlankCopyDest + 1], a
ld hl, sp + 0
ld a, l
- ld [H_VBCOPYSRC], a
+ ld [hVBlankCopySource], a
ld a, h
- ld [H_VBCOPYSRC + 1], a
+ ld [hVBlankCopySource + 1], a
- ld a, [H_SPTEMP]
+ ld a, [hSPTemp]
ld h, a
- ld a, [H_SPTEMP + 1]
+ ld a, [hSPTemp + 1]
ld l, a
ld sp, hl
diff --git a/home/yes_no.asm b/home/yes_no.asm
new file mode 100644
index 00000000..61aa1390
--- /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_35f4::
+ 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
diff --git a/hram.asm b/hram.asm
index 4beca9c4..ab18b8c9 100644
--- a/hram.asm
+++ b/hram.asm
@@ -1,3 +1,5 @@
+hDMARoutine EQU $FF80
+
hSoftReset EQU $FF8A
; Initialized to 16.
; Decremented each input iteration if the player
@@ -26,17 +28,17 @@ hSlideAmount EQU $FF8B
hRLEByteValue EQU $FF8B
-H_SPRITEWIDTH EQU $FF8B ; in tiles
-H_SPRITEINTERLACECOUNTER EQU $FF8B
-H_SPRITEHEIGHT EQU $FF8C ; in tiles
-H_SPRITEOFFSET EQU $FF8D
+hSpriteWidth EQU $FF8B ; in tiles
+hSpriteInterlaceCounter EQU $FF8B
+hSpriteHeight EQU $FF8C ; in tiles
+hSpriteOffset EQU $FF8D
; counters for blinking down arrow
-H_DOWNARROWBLINKCNT1 EQU $FF8B
-H_DOWNARROWBLINKCNT2 EQU $FF8C
+hDownArrowBlinkCount1 EQU $FF8B
+hDownArrowBlinkCount2 EQU $FF8C
-H_SPRITEDATAOFFSET EQU $FF8B
-H_SPRITEINDEX EQU $FF8C
+hSpriteDataOffset EQU $FF8B
+hSpriteIndex EQU $FF8C
hMapStride EQU $FF8B
hMapWidth EQU $FF8C
@@ -81,6 +83,11 @@ hOAMBufferOffset EQU $FF90
hSpriteScreenX EQU $FF91
hSpriteScreenY EQU $FF92
+hFF8F EQU $FF8F
+hFF90 EQU $FF90
+hFF91 EQU $FF91
+hFF92 EQU $FF92
+
hTilePlayerStandingOn EQU $FF93
hSpritePriority EQU $FF94
@@ -90,35 +97,41 @@ hSignCoordPointer EQU $FF95
hNPCMovementDirections2Index EQU $FF95
+hSwapItemID EQU $FF95
+hSwapItemQuantity EQU $FF96
+
; CalcPositionOfPlayerRelativeToNPC
hNPCSpriteOffset EQU $FF95
-; temp value used when swapping bytes
+; temp value used when swapping bytes or words
hSwapTemp EQU $FF95
hExperience EQU $FF96 ; 3 bytes, big endian
+hMutateWY EQU $FF96
+hMutateWX EQU $FF97
+
; 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
+hMultiplicand EQU $FF96 ; 3 bytes
+hMultiplier EQU $FF99 ; 1 byte
+hProduct 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
+hDividend EQU $FF95 ; 4 bytes
+hDivisor EQU $FF99 ; 1 byte
+hQuotient EQU $FF95 ; 4 bytes
+hRemainder EQU $FF99 ; 1 byte
-H_DIVIDEBUFFER EQU $FF9A
+hDivideBuffer EQU $FF9A
-H_MULTIPLYBUFFER EQU $FF9B
+hMultiplyBuffer EQU $FF9B
; 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 EQU $FF95 ; last char printed
+hNumToPrint EQU $FF96 ; 3 bytes
+hPowerOf10 EQU $FF99 ; 3 bytes
+hSavedNumToPrint EQU $FF9C ; 3 bytes
; distance in steps between NPC and player
hNPCPlayerYDistance EQU $FF95
@@ -183,14 +196,14 @@ hJoy5 EQU $FFB5
hJoy6 EQU $FFB6
hJoy7 EQU $FFB7
-H_LOADEDROMBANK EQU $FFB8
+hLoadedROMBank EQU $FFB8
hSavedROMBank EQU $FFB9
; is automatic background transfer during V-blank enabled?
; if nonzero, yes
; if zero, no
-H_AUTOBGTRANSFERENABLED EQU $FFBA
+hAutoBGTransferEnabled EQU $FFBA
TRANSFERTOP EQU 0
TRANSFERMIDDLE EQU 1
@@ -199,45 +212,47 @@ TRANSFERBOTTOM EQU 2
; 00 = top third of background
; 01 = middle third of background
; 02 = bottom third of background
-H_AUTOBGTRANSFERPORTION EQU $FFBB
+hAutoBGTransferPortion EQU $FFBB
; the destination address of the automatic background transfer
-H_AUTOBGTRANSFERDEST EQU $FFBC ; 2 bytes
+hAutoBGTransferDest EQU $FFBC ; 2 bytes
+
+hRedrawMapViewRowOffset EQU $FFBE
; temporary storage for stack pointer during memory transfers that use pop
; to increase speed
-H_SPTEMP EQU $FFBF ; 2 bytes
+hSPTemp EQU $FFBF ; 2 bytes
; 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 EQU $FFC1 ; 2 bytes
; destination address for VBlankCopyBgMap function
-H_VBCOPYBGDEST EQU $FFC3 ; 2 bytes
+hVBlankCopyBGDest EQU $FFC3 ; 2 bytes
; number of rows for VBlankCopyBgMap to copy
-H_VBCOPYBGNUMROWS EQU $FFC5
+hVBlankCopyBGNumRows EQU $FFC5
; size of VBlankCopy transfer in 16-byte units
-H_VBCOPYSIZE EQU $FFC6
+hVBlankCopySize EQU $FFC6
; source address for VBlankCopy function
-H_VBCOPYSRC EQU $FFC7
+hVBlankCopySource EQU $FFC7
; destination address for VBlankCopy function
-H_VBCOPYDEST EQU $FFC9
+hVBlankCopyDest EQU $FFC9
; size of source data for VBlankCopyDouble in 8-byte units
-H_VBCOPYDOUBLESIZE EQU $FFCB
+hVBlankCopyDoubleSize EQU $FFCB
; source address for VBlankCopyDouble function
-H_VBCOPYDOUBLESRC EQU $FFCC
+hVBlankCopyDoubleSource EQU $FFCC
; destination address for VBlankCopyDouble function
-H_VBCOPYDOUBLEDEST EQU $FFCE
+hVBlankCopyDoubleDest EQU $FFCE
; controls whether a row or column of 2x2 tile blocks is redrawn in V-blank
; 00 = no redraw
@@ -253,12 +268,12 @@ hRedrawRowOrColumnDest EQU $FFD1
hRandomAdd EQU $FFD3
hRandomSub EQU $FFD4
-H_FRAMECOUNTER EQU $FFD5 ; decremented every V-blank (used for delays)
+hFrameCounter EQU $FFD5 ; 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 EQU $FFD6
; 00 = indoor
; 01 = cave
@@ -268,11 +283,12 @@ hTilesetType EQU $FFD7
hMovingBGTilesCounter1 EQU $FFD8
-H_CURRENTSPRITEOFFSET EQU $FFDA ; multiple of $10
+hCurrentSpriteOffset EQU $FFDA ; multiple of $10
hItemCounter EQU $FFDB
-hGymGateIndex EQU $FFDB
+hGymGateIndex EQU $FFDB
+hGymGateAnswer EQU $FFDC
hGymTrashCanRandNumMask EQU $FFDB
@@ -285,40 +301,70 @@ hDexRatingNumMonsOwned EQU $FFDC
; $FF = player cancelled
hOaksAideResult EQU $FFDB
+hSavedCoordIndex EQU $FFDB
+
hOaksAideRequirement EQU $FFDB ; required number of owned mons
hOaksAideRewardItem EQU $FFDC
hOaksAideNumMonsOwned EQU $FFDD
+hPlayerFacing EQU $FFDB
+hPlayerYCoord EQU $FFDC
+hPlayerXCoord EQU $FFDD
+
+hMissableObjectIndex EQU $FFDB
+
hItemToRemoveID EQU $FFDB
hItemToRemoveIndex EQU $FFDC
hVendingMachineItem EQU $FFDB
hVendingMachinePrice EQU $FFDC ; 3-byte BCD number
+hFFDB EQU $FFDB
+hFFDC EQU $FFDC
+
+hBackupGymGateIndex EQU $FFE0
+
+hUnlockedSilphCoDoors EQU $FFE0
+
; the first tile ID in a sequence of tile IDs that increase by 1 each step
hStartTileID EQU $FFE1
hNewPartyLength EQU $FFE4
+hIsHiddenMissableObject EQU $FFE5
+
hDividend2 EQU $FFE5
hDivisor2 EQU $FFE6
hQuotient2 EQU $FFE7
+hMapROMBank EQU $FFE8
+
hSpriteVRAMSlotAndFacing EQU $FFE9
hCoordsInFrontOfPlayerMatch EQU $FFEA
hSpriteAnimFrameCounter EQU $FFEA
-H_WHOSETURN EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn
+hSpriteScreenYCoord EQU $FFEB
+hSpriteScreenXCoord EQU $FFEC
+hSpriteMapYCoord EQU $FFED
+hSpriteMapXCoord EQU $FFEE
+
+hFoundHiddenObjectOrBookshelf EQU $FFEB
+hFoundHiddenObject EQU $FFEE
+
+hSavedMapTextPtr EQU $FFEC
+
+hWhoseTurn EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn
+
+hClearLetterPrintingDelayFlags EQU $FFF4
; bit 0: draw HP fraction to the right of bar instead of below (for party menu)
; bit 1: menu is double spaced
-hFlags_0xFFF6 EQU $FFF6
+hFlagsFFF6 EQU $FFF6
hFieldMoveMonMenuTopMenuItemX EQU $FFF7
hDisableJoypadPolling EQU $FFF9
hJoyInput EQU $FFF8
-
diff --git a/layout.link b/layout.link
index 6391c9d5..d4473435 100644
--- a/layout.link
+++ b/layout.link
@@ -1,59 +1,43 @@
ROM0
org $0000
- "rst 00"
-
+ "NULL"
+ org $0000
+ "rst0"
org $0008
- "rst 08"
-
+ "rst8"
org $0010
- "rst 10"
-
+ "rst10"
org $0018
- "rst 18"
-
+ "rst18"
org $0020
- "rst 20"
-
+ "rst20"
org $0028
- "rst 28"
-
+ "rst28"
org $0030
- "rst 30"
-
+ "rst30"
org $0038
- "rst 38"
-
+ "rst38"
org $0040
"vblank"
-
org $0048
- "hblank"
-
+ "lcd"
org $0050
"timer"
-
org $0058
"serial"
-
org $0060
"joypad"
; $0061
- "Home"
-
+ "High Home"
org $100
- "Entry"
- ; $0104
"Header"
-
org $150
- "Main"
+ "Home"
ROMX $1
- org $4000
"bank1"
ROMX $2
- org $4000
"Sound Effect Headers 1"
"Music Headers 1"
"Sound Effects 1"
@@ -61,36 +45,30 @@ ROMX $2
"Music 1"
ROMX $3
- org $4000
"bank3"
ROMX $4
- org $4000
"NPC Sprites 1"
"Graphics (BANK 4)"
"Battle (BANK 4)"
ROMX $5
- org $4000
"NPC Sprites 2"
"Battle (BANK 5)"
ROMX $6
- org $4000
"Maps 1"
"bank6_1"
"Maps 2"
"bank6_2"
ROMX $7
- org $4000
"Maps 3"
"bank7_1"
"Maps 4"
"bank7_2"
ROMX $8
- org $4000
"Sound Effect Headers 2"
"Music Headers 2"
"Sound Effects 2"
@@ -100,113 +78,92 @@ ROMX $8
"Music 2"
ROMX $9
- org $4000
"Pics 1"
"Battle (BANK 9)"
ROMX $A
- org $4000
"Pics 2"
"Battle (BANK A)"
ROMX $B
- org $4000
"Pics 3"
"Battle (BANK B)"
ROMX $C
- org $4000
"Pics 4"
"Battle (BANK C)"
ROMX $D
- org $4000
"Pics 5"
"Battle (BANK D)"
ROMX $E
- org $4000
"bankE"
ROMX $F
- org $4000
"bankF"
ROMX $10
- org $4000
"bank10"
ROMX $11
- org $4000
"Maps 5"
"bank11_1"
"Maps 6"
"bank11_2"
ROMX $12
- org $4000
"Maps 7"
"bank12"
"Maps 8"
ROMX $13
- org $4000
"Pics 6"
"Maps 9"
"bank13"
ROMX $14
- org $4000
"Maps 10"
"bank14"
ROMX $15
- org $4000
"Maps 11"
"bank15_1"
"Maps 12"
"bank15_2"
ROMX $16
- org $4000
"Maps 13"
"bank16_1"
"Maps 14"
"bank16_2"
ROMX $17
- org $4000
"Maps 15"
"bank17_1"
"Maps 16"
"bank17_2"
ROMX $18
- org $4000
"Maps 17"
"bank18_1"
"Maps 18"
"bank18_2"
ROMX $19
- org $4000
"Tilesets 1"
ROMX $1A
- org $4000
"bank1A"
"Tilesets 2"
ROMX $1B
- org $4000
"Tilesets 3"
ROMX $1C
- org $4000
"bank1C"
ROMX $1D
- org $4000
"Maps 19"
"bank1D_1"
"Maps 20"
@@ -215,11 +172,9 @@ ROMX $1D
"bank1D_3"
ROMX $1E
- org $4000
"bank1E"
ROMX $1F
- org $4000
"Sound Effect Headers 3"
"Music Headers 3"
"Sound Effects 3"
@@ -227,81 +182,60 @@ ROMX $1F
"Music 3"
ROMX $20
- org $4000
"Text 1"
ROMX $21
- org $4000
"Text 2"
ROMX $22
- org $4000
"Text 3"
ROMX $23
- org $4000
"Text 4"
ROMX $24
- org $4000
"Text 5"
ROMX $25
- org $4000
"Text 6"
ROMX $26
- org $4000
"Text 7"
ROMX $27
- org $4000
"Text 8"
ROMX $28
- org $4000
"Text 9"
ROMX $29
- org $4000
"Text 10"
ROMX $2A
- org $4000
"Text 11"
ROMX $2B
- org $4000
"Pokedex Text"
ROMX $2C
- org $4000
"Move Names"
WRAM0
- org $c000
"WRAM Bank 0"
-
org $c100
"Sprite State Data"
"OAM Buffer"
-
org $dfff
"Stack"
-SRAM 0
- org $a000
+SRAM $0
"Sprite Buffers"
-SRAM 1
- org $a000
+SRAM $1
"Save Data"
-SRAM 2
- org $a000
+SRAM $2
"Saved Boxes 1"
-SRAM 3
- org $a000
+SRAM $3
"Saved Boxes 2"
-
diff --git a/macros.asm b/macros.asm
index b779ec5f..a092d25c 100644
--- a/macros.asm
+++ b/macros.asm
@@ -1,5 +1,11 @@
-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/enum.asm"
+INCLUDE "macros/predef.asm"
+INCLUDE "macros/farcall.asm"
+INCLUDE "macros/data.asm"
+INCLUDE "macros/code.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"
diff --git a/macros/asm_macros.asm b/macros/asm_macros.asm
deleted file mode 100755
index d3f00b0c..00000000
--- a/macros/asm_macros.asm
+++ /dev/null
@@ -1,192 +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)
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
- call \1
- pop af
- ld [H_LOADEDROMBANK], a
- ld [MBC1RomBank], a
-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 95b9ecbc..00000000
--- 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 00000000..8b7d6184
--- /dev/null
+++ b/macros/code.asm
@@ -0,0 +1,9 @@
+; 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
diff --git a/macros/coords.asm b/macros/coords.asm
new file mode 100644
index 00000000..302260d7
--- /dev/null
+++ b/macros/coords.asm
@@ -0,0 +1,65 @@
+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
diff --git a/macros/data.asm b/macros/data.asm
new file mode 100755
index 00000000..54d1d561
--- /dev/null
+++ b/macros/data.asm
@@ -0,0 +1,62 @@
+; 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"
+
+RGB: MACRO
+ dw (\3 << 10 | \2 << 5 | \1)
+ENDM
+
+tmlearn: MACRO
+x = 0
+ REPT _NARG
+IF \1 != 0
+x = x | (1 << ((\1 - 1) % 8))
+ENDC
+ SHIFT
+ ENDR
+ db x
+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 ee5cb8f0..00000000
--- 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/enum.asm b/macros/enum.asm
new file mode 100644
index 00000000..8fe5b534
--- /dev/null
+++ b/macros/enum.asm
@@ -0,0 +1,43 @@
+; Enumerate variables
+
+enum_start: MACRO
+if _NARG >= 1
+__enum__ = \1
+else
+__enum__ = 0
+endc
+if _NARG >= 2
+__enumdir__ = \2
+else
+__enumdir__ = 1
+endc
+ENDM
+
+enum: MACRO
+\1 EQU __enum__
+__enum__ = __enum__ + __enumdir__
+ENDM
+
+enum_set: MACRO
+__enum__ = \1
+ENDM
+
+; Enumerate constants
+
+const_def: MACRO
+if _NARG >= 1
+const_value = \1
+else
+const_value = 0
+endc
+ENDM
+
+const: MACRO
+\1 EQU const_value
+const_value = const_value + 1
+ENDM
+
+shift_const: MACRO
+\1 EQU (1 << const_value)
+const_value = const_value + 1
+ENDM
diff --git a/macros/event_macros.asm b/macros/event_macros.asm
deleted file mode 100755
index 20027209..00000000
--- a/macros/event_macros.asm
+++ /dev/null
@@ -1,441 +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
-
-;\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
-
-;\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
-
-; 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 00000000..885f8c66
--- /dev/null
+++ b/macros/farcall.asm
@@ -0,0 +1,37 @@
+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
+
+homecall: MACRO
+ ld a, [hLoadedROMBank]
+ push af
+ ld a, BANK(\1)
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ call \1
+ pop af
+ ld [hLoadedROMBank], a
+ ld [MBC1RomBank], a
+ENDM
diff --git a/macros/predef.asm b/macros/predef.asm
new file mode 100644
index 00000000..d86582d1
--- /dev/null
+++ b/macros/predef.asm
@@ -0,0 +1,32 @@
+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
diff --git a/macros/scripts/audio.asm b/macros/scripts/audio.asm
new file mode 100755
index 00000000..8a250c63
--- /dev/null
+++ b/macros/scripts/audio.asm
@@ -0,0 +1,186 @@
+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
+
+; 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/scripts/events.asm b/macros/scripts/events.asm
new file mode 100755
index 00000000..c5f90107
--- /dev/null
+++ b/macros/scripts/events.asm
@@ -0,0 +1,471 @@
+;\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
+
+
+;\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
+
+
+;\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
+
+
+; 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 00000000..a30561b9
--- /dev/null
+++ b/macros/scripts/maps.asm
@@ -0,0 +1,184 @@
+;\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
+
+;\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 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 "\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 "\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 "\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 "\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 00000000..732a22d4
--- /dev/null
+++ b/macros/scripts/text.asm
@@ -0,0 +1,78 @@
+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/text_macros.asm b/macros/text_macros.asm
deleted file mode 100755
index 21e02634..00000000
--- 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 00000000..7a9b4a6a
--- /dev/null
+++ b/macros/wram.asm
@@ -0,0 +1,92 @@
+; 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
+ ds 6
+\1End::
+ENDM
+
+spritestatedata2: MACRO
+\1WalkAnimationCounter:: db
+ ds 1
+\1YDisplacement:: db
+\1XDisplacement:: db
+\1MapY:: db
+\1MapX:: db
+\1MovementByte1:: db
+\1GrassPriority:: db
+\1MovementDelay:: db
+ ds 5
+\1ImageBaseOffset:: db
+ ds 1
+\1End::
+ENDM
diff --git a/main.asm b/main.asm
index 1c3b5800..b325a343 100755
--- a/main.asm
+++ b/main.asm
@@ -3,19 +3,15 @@ INCLUDE "constants.asm"
SECTION "bank1", ROMX
-INCLUDE "data/facing.asm"
+INCLUDE "data/sprites/facings.asm"
INCLUDE "engine/events/black_out.asm"
-
-MewPicFront:: INCBIN "gfx/pokemon/front/mew.pic"
-MewPicBack:: INCBIN "gfx/pokemon/back/mewb.pic"
-INCLUDE "data/baseStats/mew.asm"
-
+INCLUDE "data/pokemon/mew.asm"
INCLUDE "engine/battle/safari_zone.asm"
-INCLUDE "engine/movie/titlescreen.asm"
+INCLUDE "engine/movie/title.asm"
INCLUDE "engine/pokemon/load_mon_data.asm"
-INCLUDE "data/item_prices.asm"
-INCLUDE "text/item_names.asm"
-INCLUDE "text/unused_names.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/gfx/oam_dma.asm"
INCLUDE "engine/link/print_waiting_text.asm"
@@ -49,14 +45,14 @@ INCLUDE "engine/events/display_pokedex.asm"
SECTION "bank3", ROMX
INCLUDE "engine/joypad.asm"
-INCLUDE "data/map_songs.asm"
-INCLUDE "data/map_header_banks.asm"
+INCLUDE "data/maps/songs.asm"
+INCLUDE "data/maps/map_header_banks.asm"
INCLUDE "engine/overworld/clear_variables.asm"
INCLUDE "engine/overworld/player_state.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/field_move_messages.asm"
INCLUDE "engine/items/inventory.asm"
INCLUDE "engine/overworld/wild_mons.asm"
@@ -74,33 +70,17 @@ 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_object_functions3.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 "Graphics (BANK 4)", ROMX
-PokemonLogoGraphics: INCBIN "gfx/title/pokemon_logo.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/intro_credits/copyright.2bpp"
-GamefreakLogoGraphics: INCBIN "gfx/title/gamefreak_inc.2bpp"
-GamefreakLogoGraphicsEnd:
-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:
+INCLUDE "gfx/font.asm"
SECTION "Battle (BANK 4)", ROMX
@@ -108,11 +88,7 @@ SECTION "Battle (BANK 4)", ROMX
INCLUDE "engine/overworld/is_player_just_outside_map.asm"
INCLUDE "engine/pokemon/status_screen.asm"
INCLUDE "engine/menus/party_menu.asm"
-
-RedPicFront:: INCBIN "gfx/player/red.pic"
-ShrinkPic1:: INCBIN "gfx/player/shrink1.pic"
-ShrinkPic2:: INCBIN "gfx/player/shrink2.pic"
-
+INCLUDE "gfx/player.asm"
INCLUDE "engine/overworld/turn_sprite.asm"
INCLUDE "engine/menus/start_sub_menus.asm"
INCLUDE "engine/items/tms.asm"
@@ -149,7 +125,7 @@ INCLUDE "engine/overworld/ledges.asm"
SECTION "bank7_1", ROMX
-INCLUDE "text/monster_names.asm"
+INCLUDE "data/pokemon/names.asm"
INCLUDE "engine/movie/oak_speech/clear_save.asm"
INCLUDE "engine/events/elevator.asm"
@@ -157,7 +133,13 @@ INCLUDE "engine/events/elevator.asm"
SECTION "bank7_2", ROMX
INCLUDE "engine/menus/oaks_pc.asm"
-INCLUDE "engine/events/hidden_object_functions7.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"
SECTION "Bill's PC", ROMX
@@ -180,13 +162,7 @@ INCLUDE "engine/battle/move_effects/leech_seed.asm"
SECTION "Battle (BANK B)", ROMX
INCLUDE "engine/battle/display_effectiveness.asm"
-
-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"
-
+INCLUDE "gfx/trainer_card.asm"
INCLUDE "engine/items/tmhm.asm"
INCLUDE "engine/battle/scale_sprites.asm"
INCLUDE "engine/battle/move_effects/pay_day.asm"
@@ -201,7 +177,7 @@ INCLUDE "engine/battle/move_effects/one_hit_ko.asm"
SECTION "Battle (BANK D)", ROMX
-INCLUDE "engine/movie/titlescreen2.asm"
+INCLUDE "engine/movie/title2.asm"
INCLUDE "engine/battle/link_battle_versus_text.asm"
INCLUDE "engine/slots/slot_machine.asm"
INCLUDE "engine/events/pewter_guys.asm"
@@ -211,23 +187,14 @@ INCLUDE "engine/slots/game_corner_slots.asm"
SECTION "bankE", ROMX
-INCLUDE "data/moves.asm"
-INCLUDE "data/base_stats.asm"
-INCLUDE "data/cries.asm"
+INCLUDE "data/moves/moves.asm"
+INCLUDE "data/pokemon/base_stats.asm"
+INCLUDE "data/pokemon/cries.asm"
INCLUDE "engine/battle/unused_stats_functions.asm"
INCLUDE "engine/battle/scroll_draw_trainer_pic.asm"
INCLUDE "engine/battle/trainer_ai.asm"
INCLUDE "engine/battle/draw_hud_pokeball_gfx.asm"
-
-TradingAnimationGraphics:
-INCBIN "gfx/trade/game_boy.2bpp"
-INCBIN "gfx/trade/link_cable.2bpp"
-TradingAnimationGraphicsEnd:
-
-; Pokeball traveling through the link cable.
-TradingAnimationGraphics2: INCBIN "gfx/trade/cable_ball.2bpp"
-TradingAnimationGraphics2End:
-
+INCLUDE "gfx/trade.asm"
INCLUDE "engine/pokemon/evos_moves.asm"
INCLUDE "engine/battle/move_effects/heal.asm"
INCLUDE "engine/battle/move_effects/transform.asm"
@@ -275,7 +242,9 @@ INCLUDE "engine/battle/init_battle_variables.asm"
INCLUDE "engine/battle/move_effects/paralyze.asm"
INCLUDE "engine/events/card_key.asm"
INCLUDE "engine/events/prize_menu.asm"
-INCLUDE "engine/events/hidden_object_functions14.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"
SECTION "bank15_1", ROMX
@@ -309,7 +278,11 @@ INCLUDE "engine/events/starter_dex.asm"
SECTION "bank17_2", ROMX
INCLUDE "engine/pokemon/set_types.asm"
-INCLUDE "engine/events/hidden_object_functions17.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/school_blackboard.asm"
+INCLUDE "engine/events/hidden_objects/vermilion_gym_trash.asm"
SECTION "bank18_1", ROMX
@@ -319,21 +292,16 @@ INCLUDE "engine/events/cinnabar_lab.asm"
SECTION "bank18_2", ROMX
-INCLUDE "engine/events/hidden_object_functions18.asm"
+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"
SECTION "bank1A", ROMX
INCLUDE "engine/battle/decrement_pp.asm"
-
-Version_GFX:
-IF DEF(_RED)
- INCBIN "gfx/title/red_version.1bpp" ; 10 tiles
-ENDC
-IF DEF(_BLUE)
- INCBIN "gfx/title/blue_version.1bpp" ; 8 tiles
-ENDC
-Version_GFXEnd:
+INCLUDE "gfx/version.asm"
SECTION "bank1C", ROMX
@@ -374,13 +342,8 @@ SECTION "bank1E", ROMX
INCLUDE "engine/battle/animations.asm"
INCLUDE "engine/overworld/cut2.asm"
INCLUDE "engine/overworld/dust_smoke.asm"
-
-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"
-
-INCLUDE "data/animations.asm"
+INCLUDE "gfx/fishing.asm"
+INCLUDE "data/moves/animations.asm"
INCLUDE "engine/movie/evolution.asm"
INCLUDE "engine/overworld/elevator.asm"
INCLUDE "engine/items/tm_prices.asm"
diff --git a/maps.asm b/maps.asm
index 8b3cbea4..4f00f451 100644
--- a/maps.asm
+++ b/maps.asm
@@ -3,33 +3,33 @@ INCLUDE "constants.asm"
SECTION "Maps 1", ROMX
-INCLUDE "data/mapHeaders/CeladonCity.asm"
-INCLUDE "data/mapObjects/CeladonCity.asm"
+INCLUDE "data/maps/headers/CeladonCity.asm"
+INCLUDE "data/maps/objects/CeladonCity.asm"
CeladonCity_Blocks: INCBIN "maps/CeladonCity.blk"
-INCLUDE "data/mapHeaders/PalletTown.asm"
-INCLUDE "data/mapObjects/PalletTown.asm"
+INCLUDE "data/maps/headers/PalletTown.asm"
+INCLUDE "data/maps/objects/PalletTown.asm"
PalletTown_Blocks: INCBIN "maps/PalletTown.blk"
-INCLUDE "data/mapHeaders/ViridianCity.asm"
-INCLUDE "data/mapObjects/ViridianCity.asm"
+INCLUDE "data/maps/headers/ViridianCity.asm"
+INCLUDE "data/maps/objects/ViridianCity.asm"
ViridianCity_Blocks: INCBIN "maps/ViridianCity.blk"
-INCLUDE "data/mapHeaders/PewterCity.asm"
+INCLUDE "data/maps/headers/PewterCity.asm"
ds 1
-INCLUDE "data/mapObjects/PewterCity.asm"
+INCLUDE "data/maps/objects/PewterCity.asm"
PewterCity_Blocks: INCBIN "maps/PewterCity.blk"
-INCLUDE "data/mapHeaders/CeruleanCity.asm"
-INCLUDE "data/mapObjects/CeruleanCity.asm"
+INCLUDE "data/maps/headers/CeruleanCity.asm"
+INCLUDE "data/maps/objects/CeruleanCity.asm"
CeruleanCity_Blocks: INCBIN "maps/CeruleanCity.blk"
-INCLUDE "data/mapHeaders/VermilionCity.asm"
-INCLUDE "data/mapObjects/VermilionCity.asm"
+INCLUDE "data/maps/headers/VermilionCity.asm"
+INCLUDE "data/maps/objects/VermilionCity.asm"
VermilionCity_Blocks: INCBIN "maps/VermilionCity.blk"
-INCLUDE "data/mapHeaders/FuchsiaCity.asm"
-INCLUDE "data/mapObjects/FuchsiaCity.asm"
+INCLUDE "data/maps/headers/FuchsiaCity.asm"
+INCLUDE "data/maps/objects/FuchsiaCity.asm"
FuchsiaCity_Blocks: INCBIN "maps/FuchsiaCity.blk"
@@ -43,45 +43,45 @@ INCLUDE "scripts/VermilionCity.asm"
INCLUDE "scripts/CeladonCity.asm"
INCLUDE "scripts/FuchsiaCity.asm"
-INCLUDE "data/mapHeaders/BluesHouse.asm"
+INCLUDE "data/maps/headers/BluesHouse.asm"
INCLUDE "scripts/BluesHouse.asm"
-INCLUDE "data/mapObjects/BluesHouse.asm"
+INCLUDE "data/maps/objects/BluesHouse.asm"
BluesHouse_Blocks: INCBIN "maps/BluesHouse.blk"
-INCLUDE "data/mapHeaders/VermilionTradeHouse.asm"
+INCLUDE "data/maps/headers/VermilionTradeHouse.asm"
INCLUDE "scripts/VermilionTradeHouse.asm"
-INCLUDE "data/mapObjects/VermilionTradeHouse.asm"
+INCLUDE "data/maps/objects/VermilionTradeHouse.asm"
VermilionTradeHouse_Blocks: INCBIN "maps/VermilionTradeHouse.blk"
-INCLUDE "data/mapHeaders/IndigoPlateauLobby.asm"
+INCLUDE "data/maps/headers/IndigoPlateauLobby.asm"
INCLUDE "scripts/IndigoPlateauLobby.asm"
-INCLUDE "data/mapObjects/IndigoPlateauLobby.asm"
+INCLUDE "data/maps/objects/IndigoPlateauLobby.asm"
IndigoPlateauLobby_Blocks: INCBIN "maps/IndigoPlateauLobby.blk"
-INCLUDE "data/mapHeaders/SilphCo4F.asm"
+INCLUDE "data/maps/headers/SilphCo4F.asm"
INCLUDE "scripts/SilphCo4F.asm"
-INCLUDE "data/mapObjects/SilphCo4F.asm"
+INCLUDE "data/maps/objects/SilphCo4F.asm"
SilphCo4F_Blocks: INCBIN "maps/SilphCo4F.blk"
-INCLUDE "data/mapHeaders/SilphCo5F.asm"
+INCLUDE "data/maps/headers/SilphCo5F.asm"
INCLUDE "scripts/SilphCo5F.asm"
-INCLUDE "data/mapObjects/SilphCo5F.asm"
+INCLUDE "data/maps/objects/SilphCo5F.asm"
SilphCo5F_Blocks: INCBIN "maps/SilphCo5F.blk"
-INCLUDE "data/mapHeaders/SilphCo6F.asm"
+INCLUDE "data/maps/headers/SilphCo6F.asm"
INCLUDE "scripts/SilphCo6F.asm"
-INCLUDE "data/mapObjects/SilphCo6F.asm"
+INCLUDE "data/maps/objects/SilphCo6F.asm"
SilphCo6F_Blocks: INCBIN "maps/SilphCo6F.blk"
SECTION "Maps 3", ROMX
-INCLUDE "data/mapHeaders/CinnabarIsland.asm"
-INCLUDE "data/mapObjects/CinnabarIsland.asm"
+INCLUDE "data/maps/headers/CinnabarIsland.asm"
+INCLUDE "data/maps/objects/CinnabarIsland.asm"
CinnabarIsland_Blocks: INCBIN "maps/CinnabarIsland.blk"
-INCLUDE "data/mapHeaders/Route1.asm"
-INCLUDE "data/mapObjects/Route1.asm"
+INCLUDE "data/maps/headers/Route1.asm"
+INCLUDE "data/maps/objects/Route1.asm"
Route1_Blocks: INCBIN "maps/Route1.blk"
UndergroundPathRoute8_Blocks: INCBIN "maps/UndergroundPathRoute8.blk"
@@ -116,143 +116,143 @@ INCLUDE "scripts/CinnabarIsland.asm"
INCLUDE "scripts/Route1.asm"
-INCLUDE "data/mapHeaders/OaksLab.asm"
+INCLUDE "data/maps/headers/OaksLab.asm"
INCLUDE "scripts/OaksLab.asm"
-INCLUDE "data/mapObjects/OaksLab.asm"
+INCLUDE "data/maps/objects/OaksLab.asm"
-INCLUDE "data/mapHeaders/ViridianMart.asm"
+INCLUDE "data/maps/headers/ViridianMart.asm"
INCLUDE "scripts/ViridianMart.asm"
-INCLUDE "data/mapObjects/ViridianMart.asm"
+INCLUDE "data/maps/objects/ViridianMart.asm"
ViridianMart_Blocks: INCBIN "maps/ViridianMart.blk"
-INCLUDE "data/mapHeaders/ViridianSchoolHouse.asm"
+INCLUDE "data/maps/headers/ViridianSchoolHouse.asm"
INCLUDE "scripts/ViridianSchoolHouse.asm"
-INCLUDE "data/mapObjects/ViridianSchoolHouse.asm"
+INCLUDE "data/maps/objects/ViridianSchoolHouse.asm"
-INCLUDE "data/mapHeaders/ViridianNicknameHouse.asm"
+INCLUDE "data/maps/headers/ViridianNicknameHouse.asm"
ds 1
INCLUDE "scripts/ViridianNicknameHouse.asm"
-INCLUDE "data/mapObjects/ViridianNicknameHouse.asm"
+INCLUDE "data/maps/objects/ViridianNicknameHouse.asm"
-INCLUDE "data/mapHeaders/PewterNidoranHouse.asm"
+INCLUDE "data/maps/headers/PewterNidoranHouse.asm"
INCLUDE "scripts/PewterNidoranHouse.asm"
-INCLUDE "data/mapObjects/PewterNidoranHouse.asm"
+INCLUDE "data/maps/objects/PewterNidoranHouse.asm"
-INCLUDE "data/mapHeaders/PewterSpeechHouse.asm"
+INCLUDE "data/maps/headers/PewterSpeechHouse.asm"
INCLUDE "scripts/PewterSpeechHouse.asm"
-INCLUDE "data/mapObjects/PewterSpeechHouse.asm"
+INCLUDE "data/maps/objects/PewterSpeechHouse.asm"
-INCLUDE "data/mapHeaders/CeruleanTrashedHouse.asm"
+INCLUDE "data/maps/headers/CeruleanTrashedHouse.asm"
INCLUDE "scripts/CeruleanTrashedHouse.asm"
-INCLUDE "data/mapObjects/CeruleanTrashedHouse.asm"
+INCLUDE "data/maps/objects/CeruleanTrashedHouse.asm"
-INCLUDE "data/mapHeaders/CeruleanTradeHouse.asm"
+INCLUDE "data/maps/headers/CeruleanTradeHouse.asm"
INCLUDE "scripts/CeruleanTradeHouse.asm"
-INCLUDE "data/mapObjects/CeruleanTradeHouse.asm"
+INCLUDE "data/maps/objects/CeruleanTradeHouse.asm"
-INCLUDE "data/mapHeaders/BikeShop.asm"
+INCLUDE "data/maps/headers/BikeShop.asm"
INCLUDE "scripts/BikeShop.asm"
-INCLUDE "data/mapObjects/BikeShop.asm"
+INCLUDE "data/maps/objects/BikeShop.asm"
BikeShop_Blocks: INCBIN "maps/BikeShop.blk"
-INCLUDE "data/mapHeaders/MrFujisHouse.asm"
+INCLUDE "data/maps/headers/MrFujisHouse.asm"
INCLUDE "scripts/MrFujisHouse.asm"
-INCLUDE "data/mapObjects/MrFujisHouse.asm"
+INCLUDE "data/maps/objects/MrFujisHouse.asm"
-INCLUDE "data/mapHeaders/LavenderCuboneHouse.asm"
+INCLUDE "data/maps/headers/LavenderCuboneHouse.asm"
INCLUDE "scripts/LavenderCuboneHouse.asm"
-INCLUDE "data/mapObjects/LavenderCuboneHouse.asm"
+INCLUDE "data/maps/objects/LavenderCuboneHouse.asm"
-INCLUDE "data/mapHeaders/NameRatersHouse.asm"
+INCLUDE "data/maps/headers/NameRatersHouse.asm"
INCLUDE "scripts/NameRatersHouse.asm"
-INCLUDE "data/mapObjects/NameRatersHouse.asm"
+INCLUDE "data/maps/objects/NameRatersHouse.asm"
-INCLUDE "data/mapHeaders/VermilionPidgeyHouse.asm"
+INCLUDE "data/maps/headers/VermilionPidgeyHouse.asm"
INCLUDE "scripts/VermilionPidgeyHouse.asm"
-INCLUDE "data/mapObjects/VermilionPidgeyHouse.asm"
+INCLUDE "data/maps/objects/VermilionPidgeyHouse.asm"
-INCLUDE "data/mapHeaders/VermilionDock.asm"
+INCLUDE "data/maps/headers/VermilionDock.asm"
INCLUDE "scripts/VermilionDock.asm"
-INCLUDE "data/mapObjects/VermilionDock.asm"
+INCLUDE "data/maps/objects/VermilionDock.asm"
VermilionDock_Blocks: INCBIN "maps/VermilionDock.blk"
-INCLUDE "data/mapHeaders/CeladonMansionRoofHouse.asm"
+INCLUDE "data/maps/headers/CeladonMansionRoofHouse.asm"
INCLUDE "scripts/CeladonMansionRoofHouse.asm"
-INCLUDE "data/mapObjects/CeladonMansionRoofHouse.asm"
+INCLUDE "data/maps/objects/CeladonMansionRoofHouse.asm"
-INCLUDE "data/mapHeaders/FuchsiaMart.asm"
+INCLUDE "data/maps/headers/FuchsiaMart.asm"
INCLUDE "scripts/FuchsiaMart.asm"
-INCLUDE "data/mapObjects/FuchsiaMart.asm"
+INCLUDE "data/maps/objects/FuchsiaMart.asm"
FuchsiaMart_Blocks: INCBIN "maps/FuchsiaMart.blk"
-INCLUDE "data/mapHeaders/SaffronPidgeyHouse.asm"
+INCLUDE "data/maps/headers/SaffronPidgeyHouse.asm"
INCLUDE "scripts/SaffronPidgeyHouse.asm"
-INCLUDE "data/mapObjects/SaffronPidgeyHouse.asm"
+INCLUDE "data/maps/objects/SaffronPidgeyHouse.asm"
-INCLUDE "data/mapHeaders/MrPsychicsHouse.asm"
+INCLUDE "data/maps/headers/MrPsychicsHouse.asm"
INCLUDE "scripts/MrPsychicsHouse.asm"
-INCLUDE "data/mapObjects/MrPsychicsHouse.asm"
+INCLUDE "data/maps/objects/MrPsychicsHouse.asm"
-INCLUDE "data/mapHeaders/DiglettsCaveRoute2.asm"
+INCLUDE "data/maps/headers/DiglettsCaveRoute2.asm"
INCLUDE "scripts/DiglettsCaveRoute2.asm"
-INCLUDE "data/mapObjects/DiglettsCaveRoute2.asm"
+INCLUDE "data/maps/objects/DiglettsCaveRoute2.asm"
-INCLUDE "data/mapHeaders/Route2TradeHouse.asm"
+INCLUDE "data/maps/headers/Route2TradeHouse.asm"
INCLUDE "scripts/Route2TradeHouse.asm"
-INCLUDE "data/mapObjects/Route2TradeHouse.asm"
+INCLUDE "data/maps/objects/Route2TradeHouse.asm"
-INCLUDE "data/mapHeaders/Route5Gate.asm"
+INCLUDE "data/maps/headers/Route5Gate.asm"
INCLUDE "scripts/Route5Gate.asm"
-INCLUDE "data/mapObjects/Route5Gate.asm"
+INCLUDE "data/maps/objects/Route5Gate.asm"
Route5Gate_Blocks: INCBIN "maps/Route5Gate.blk"
-INCLUDE "data/mapHeaders/Route6Gate.asm"
+INCLUDE "data/maps/headers/Route6Gate.asm"
INCLUDE "scripts/Route6Gate.asm"
-INCLUDE "data/mapObjects/Route6Gate.asm"
+INCLUDE "data/maps/objects/Route6Gate.asm"
Route6Gate_Blocks: INCBIN "maps/Route6Gate.blk"
-INCLUDE "data/mapHeaders/Route7Gate.asm"
+INCLUDE "data/maps/headers/Route7Gate.asm"
INCLUDE "scripts/Route7Gate.asm"
-INCLUDE "data/mapObjects/Route7Gate.asm"
+INCLUDE "data/maps/objects/Route7Gate.asm"
Route7Gate_Blocks: INCBIN "maps/Route7Gate.blk"
-INCLUDE "data/mapHeaders/Route8Gate.asm"
+INCLUDE "data/maps/headers/Route8Gate.asm"
INCLUDE "scripts/Route8Gate.asm"
-INCLUDE "data/mapObjects/Route8Gate.asm"
+INCLUDE "data/maps/objects/Route8Gate.asm"
Route8Gate_Blocks: INCBIN "maps/Route8Gate.blk"
-INCLUDE "data/mapHeaders/UndergroundPathRoute8.asm"
+INCLUDE "data/maps/headers/UndergroundPathRoute8.asm"
INCLUDE "scripts/UndergroundPathRoute8.asm"
-INCLUDE "data/mapObjects/UndergroundPathRoute8.asm"
+INCLUDE "data/maps/objects/UndergroundPathRoute8.asm"
-INCLUDE "data/mapHeaders/PowerPlant.asm"
+INCLUDE "data/maps/headers/PowerPlant.asm"
INCLUDE "scripts/PowerPlant.asm"
-INCLUDE "data/mapObjects/PowerPlant.asm"
+INCLUDE "data/maps/objects/PowerPlant.asm"
PowerPlant_Blocks: INCBIN "maps/PowerPlant.blk"
-INCLUDE "data/mapHeaders/DiglettsCaveRoute11.asm"
+INCLUDE "data/maps/headers/DiglettsCaveRoute11.asm"
INCLUDE "scripts/DiglettsCaveRoute11.asm"
-INCLUDE "data/mapObjects/DiglettsCaveRoute11.asm"
+INCLUDE "data/maps/objects/DiglettsCaveRoute11.asm"
-INCLUDE "data/mapHeaders/Route16FlyHouse.asm"
+INCLUDE "data/maps/headers/Route16FlyHouse.asm"
INCLUDE "scripts/Route16FlyHouse.asm"
-INCLUDE "data/mapObjects/Route16FlyHouse.asm"
+INCLUDE "data/maps/objects/Route16FlyHouse.asm"
-INCLUDE "data/mapHeaders/Route22Gate.asm"
+INCLUDE "data/maps/headers/Route22Gate.asm"
INCLUDE "scripts/Route22Gate.asm"
-INCLUDE "data/mapObjects/Route22Gate.asm"
+INCLUDE "data/maps/objects/Route22Gate.asm"
Route22Gate_Blocks: INCBIN "maps/Route22Gate.blk"
-INCLUDE "data/mapHeaders/BillsHouse.asm"
+INCLUDE "data/maps/headers/BillsHouse.asm"
INCLUDE "scripts/BillsHouse.asm"
-INCLUDE "data/mapObjects/BillsHouse.asm"
+INCLUDE "data/maps/objects/BillsHouse.asm"
BillsHouse_Blocks: INCBIN "maps/BillsHouse.blk"
SECTION "Maps 5", ROMX
-INCLUDE "data/mapHeaders/LavenderTown.asm"
-INCLUDE "data/mapObjects/LavenderTown.asm"
+INCLUDE "data/maps/headers/LavenderTown.asm"
+INCLUDE "data/maps/objects/LavenderTown.asm"
LavenderTown_Blocks: INCBIN "maps/LavenderTown.blk"
ViridianPokecenter_Blocks: INCBIN "maps/ViridianPokecenter.blk"
@@ -267,136 +267,136 @@ INCLUDE "scripts/LavenderTown.asm"
SECTION "Maps 6", ROMX
-INCLUDE "data/mapHeaders/ViridianPokecenter.asm"
+INCLUDE "data/maps/headers/ViridianPokecenter.asm"
INCLUDE "scripts/ViridianPokecenter.asm"
-INCLUDE "data/mapObjects/ViridianPokecenter.asm"
+INCLUDE "data/maps/objects/ViridianPokecenter.asm"
-INCLUDE "data/mapHeaders/PokemonMansion1F.asm"
+INCLUDE "data/maps/headers/PokemonMansion1F.asm"
INCLUDE "scripts/PokemonMansion1F.asm"
-INCLUDE "data/mapObjects/PokemonMansion1F.asm"
+INCLUDE "data/maps/objects/PokemonMansion1F.asm"
PokemonMansion1F_Blocks: INCBIN "maps/PokemonMansion1F.blk"
-INCLUDE "data/mapHeaders/RockTunnel1F.asm"
+INCLUDE "data/maps/headers/RockTunnel1F.asm"
INCLUDE "scripts/RockTunnel1F.asm"
-INCLUDE "data/mapObjects/RockTunnel1F.asm"
+INCLUDE "data/maps/objects/RockTunnel1F.asm"
RockTunnel1F_Blocks: INCBIN "maps/RockTunnel1F.blk"
-INCLUDE "data/mapHeaders/SeafoamIslands1F.asm"
+INCLUDE "data/maps/headers/SeafoamIslands1F.asm"
INCLUDE "scripts/SeafoamIslands1F.asm"
-INCLUDE "data/mapObjects/SeafoamIslands1F.asm"
+INCLUDE "data/maps/objects/SeafoamIslands1F.asm"
SeafoamIslands1F_Blocks: INCBIN "maps/SeafoamIslands1F.blk"
-INCLUDE "data/mapHeaders/SSAnne3F.asm"
+INCLUDE "data/maps/headers/SSAnne3F.asm"
INCLUDE "scripts/SSAnne3F.asm"
-INCLUDE "data/mapObjects/SSAnne3F.asm"
+INCLUDE "data/maps/objects/SSAnne3F.asm"
SSAnne3F_Blocks: INCBIN "maps/SSAnne3F.blk"
-INCLUDE "data/mapHeaders/VictoryRoad3F.asm"
+INCLUDE "data/maps/headers/VictoryRoad3F.asm"
INCLUDE "scripts/VictoryRoad3F.asm"
-INCLUDE "data/mapObjects/VictoryRoad3F.asm"
+INCLUDE "data/maps/objects/VictoryRoad3F.asm"
VictoryRoad3F_Blocks: INCBIN "maps/VictoryRoad3F.blk"
-INCLUDE "data/mapHeaders/RocketHideoutB1F.asm"
+INCLUDE "data/maps/headers/RocketHideoutB1F.asm"
INCLUDE "scripts/RocketHideoutB1F.asm"
-INCLUDE "data/mapObjects/RocketHideoutB1F.asm"
+INCLUDE "data/maps/objects/RocketHideoutB1F.asm"
RocketHideoutB1F_Blocks: INCBIN "maps/RocketHideoutB1F.blk"
-INCLUDE "data/mapHeaders/RocketHideoutB2F.asm"
+INCLUDE "data/maps/headers/RocketHideoutB2F.asm"
INCLUDE "scripts/RocketHideoutB2F.asm"
-INCLUDE "data/mapObjects/RocketHideoutB2F.asm"
+INCLUDE "data/maps/objects/RocketHideoutB2F.asm"
RocketHideoutB2F_Blocks: INCBIN "maps/RocketHideoutB2F.blk"
-INCLUDE "data/mapHeaders/RocketHideoutB3F.asm"
+INCLUDE "data/maps/headers/RocketHideoutB3F.asm"
INCLUDE "scripts/RocketHideoutB3F.asm"
-INCLUDE "data/mapObjects/RocketHideoutB3F.asm"
+INCLUDE "data/maps/objects/RocketHideoutB3F.asm"
RocketHideoutB3F_Blocks: INCBIN "maps/RocketHideoutB3F.blk"
-INCLUDE "data/mapHeaders/RocketHideoutB4F.asm"
+INCLUDE "data/maps/headers/RocketHideoutB4F.asm"
INCLUDE "scripts/RocketHideoutB4F.asm"
-INCLUDE "data/mapObjects/RocketHideoutB4F.asm"
+INCLUDE "data/maps/objects/RocketHideoutB4F.asm"
RocketHideoutB4F_Blocks: INCBIN "maps/RocketHideoutB4F.blk"
-INCLUDE "data/mapHeaders/RocketHideoutElevator.asm"
+INCLUDE "data/maps/headers/RocketHideoutElevator.asm"
INCLUDE "scripts/RocketHideoutElevator.asm"
-INCLUDE "data/mapObjects/RocketHideoutElevator.asm"
+INCLUDE "data/maps/objects/RocketHideoutElevator.asm"
RocketHideoutElevator_Blocks: INCBIN "maps/RocketHideoutElevator.blk"
-INCLUDE "data/mapHeaders/SilphCoElevator.asm"
+INCLUDE "data/maps/headers/SilphCoElevator.asm"
INCLUDE "scripts/SilphCoElevator.asm"
-INCLUDE "data/mapObjects/SilphCoElevator.asm"
+INCLUDE "data/maps/objects/SilphCoElevator.asm"
SilphCoElevator_Blocks: INCBIN "maps/SilphCoElevator.blk"
-INCLUDE "data/mapHeaders/SafariZoneEast.asm"
+INCLUDE "data/maps/headers/SafariZoneEast.asm"
INCLUDE "scripts/SafariZoneEast.asm"
-INCLUDE "data/mapObjects/SafariZoneEast.asm"
+INCLUDE "data/maps/objects/SafariZoneEast.asm"
SafariZoneEast_Blocks: INCBIN "maps/SafariZoneEast.blk"
-INCLUDE "data/mapHeaders/SafariZoneNorth.asm"
+INCLUDE "data/maps/headers/SafariZoneNorth.asm"
INCLUDE "scripts/SafariZoneNorth.asm"
-INCLUDE "data/mapObjects/SafariZoneNorth.asm"
+INCLUDE "data/maps/objects/SafariZoneNorth.asm"
SafariZoneNorth_Blocks: INCBIN "maps/SafariZoneNorth.blk"
-INCLUDE "data/mapHeaders/SafariZoneCenter.asm"
+INCLUDE "data/maps/headers/SafariZoneCenter.asm"
INCLUDE "scripts/SafariZoneCenter.asm"
-INCLUDE "data/mapObjects/SafariZoneCenter.asm"
+INCLUDE "data/maps/objects/SafariZoneCenter.asm"
SafariZoneCenter_Blocks: INCBIN "maps/SafariZoneCenter.blk"
-INCLUDE "data/mapHeaders/SafariZoneCenterRestHouse.asm"
+INCLUDE "data/maps/headers/SafariZoneCenterRestHouse.asm"
INCLUDE "scripts/SafariZoneCenterRestHouse.asm"
-INCLUDE "data/mapObjects/SafariZoneCenterRestHouse.asm"
+INCLUDE "data/maps/objects/SafariZoneCenterRestHouse.asm"
-INCLUDE "data/mapHeaders/SafariZoneWestRestHouse.asm"
+INCLUDE "data/maps/headers/SafariZoneWestRestHouse.asm"
INCLUDE "scripts/SafariZoneWestRestHouse.asm"
-INCLUDE "data/mapObjects/SafariZoneWestRestHouse.asm"
+INCLUDE "data/maps/objects/SafariZoneWestRestHouse.asm"
-INCLUDE "data/mapHeaders/SafariZoneEastRestHouse.asm"
+INCLUDE "data/maps/headers/SafariZoneEastRestHouse.asm"
INCLUDE "scripts/SafariZoneEastRestHouse.asm"
-INCLUDE "data/mapObjects/SafariZoneEastRestHouse.asm"
+INCLUDE "data/maps/objects/SafariZoneEastRestHouse.asm"
-INCLUDE "data/mapHeaders/SafariZoneNorthRestHouse.asm"
+INCLUDE "data/maps/headers/SafariZoneNorthRestHouse.asm"
INCLUDE "scripts/SafariZoneNorthRestHouse.asm"
-INCLUDE "data/mapObjects/SafariZoneNorthRestHouse.asm"
+INCLUDE "data/maps/objects/SafariZoneNorthRestHouse.asm"
-INCLUDE "data/mapHeaders/CeruleanCave2F.asm"
+INCLUDE "data/maps/headers/CeruleanCave2F.asm"
INCLUDE "scripts/CeruleanCave2F.asm"
-INCLUDE "data/mapObjects/CeruleanCave2F.asm"
+INCLUDE "data/maps/objects/CeruleanCave2F.asm"
CeruleanCave2F_Blocks: INCBIN "maps/CeruleanCave2F.blk"
-INCLUDE "data/mapHeaders/CeruleanCaveB1F.asm"
+INCLUDE "data/maps/headers/CeruleanCaveB1F.asm"
INCLUDE "scripts/CeruleanCaveB1F.asm"
-INCLUDE "data/mapObjects/CeruleanCaveB1F.asm"
+INCLUDE "data/maps/objects/CeruleanCaveB1F.asm"
CeruleanCaveB1F_Blocks: INCBIN "maps/CeruleanCaveB1F.blk"
-INCLUDE "data/mapHeaders/RockTunnelB1F.asm"
+INCLUDE "data/maps/headers/RockTunnelB1F.asm"
INCLUDE "scripts/RockTunnelB1F.asm"
-INCLUDE "data/mapObjects/RockTunnelB1F.asm"
+INCLUDE "data/maps/objects/RockTunnelB1F.asm"
RockTunnelB1F_Blocks: INCBIN "maps/RockTunnelB1F.blk"
-INCLUDE "data/mapHeaders/SeafoamIslandsB1F.asm"
+INCLUDE "data/maps/headers/SeafoamIslandsB1F.asm"
INCLUDE "scripts/SeafoamIslandsB1F.asm"
-INCLUDE "data/mapObjects/SeafoamIslandsB1F.asm"
+INCLUDE "data/maps/objects/SeafoamIslandsB1F.asm"
SeafoamIslandsB1F_Blocks: INCBIN "maps/SeafoamIslandsB1F.blk"
-INCLUDE "data/mapHeaders/SeafoamIslandsB2F.asm"
+INCLUDE "data/maps/headers/SeafoamIslandsB2F.asm"
INCLUDE "scripts/SeafoamIslandsB2F.asm"
-INCLUDE "data/mapObjects/SeafoamIslandsB2F.asm"
+INCLUDE "data/maps/objects/SeafoamIslandsB2F.asm"
SeafoamIslandsB2F_Blocks: INCBIN "maps/SeafoamIslandsB2F.blk"
-INCLUDE "data/mapHeaders/SeafoamIslandsB3F.asm"
+INCLUDE "data/maps/headers/SeafoamIslandsB3F.asm"
INCLUDE "scripts/SeafoamIslandsB3F.asm"
-INCLUDE "data/mapObjects/SeafoamIslandsB3F.asm"
+INCLUDE "data/maps/objects/SeafoamIslandsB3F.asm"
SeafoamIslandsB3F_Blocks: INCBIN "maps/SeafoamIslandsB3F.blk"
-INCLUDE "data/mapHeaders/SeafoamIslandsB4F.asm"
+INCLUDE "data/maps/headers/SeafoamIslandsB4F.asm"
INCLUDE "scripts/SeafoamIslandsB4F.asm"
-INCLUDE "data/mapObjects/SeafoamIslandsB4F.asm"
+INCLUDE "data/maps/objects/SeafoamIslandsB4F.asm"
SeafoamIslandsB4F_Blocks: INCBIN "maps/SeafoamIslandsB4F.blk"
SECTION "Maps 7", ROMX
-INCLUDE "data/mapHeaders/Route7.asm"
-INCLUDE "data/mapObjects/Route7.asm"
+INCLUDE "data/maps/headers/Route7.asm"
+INCLUDE "data/maps/objects/Route7.asm"
Route7_Blocks: INCBIN "maps/Route7.blk"
CeladonPokecenter_Blocks:
@@ -418,203 +418,203 @@ SECTION "Maps 8", ROMX
INCLUDE "scripts/Route7.asm"
-INCLUDE "data/mapHeaders/RedsHouse1F.asm"
+INCLUDE "data/maps/headers/RedsHouse1F.asm"
INCLUDE "scripts/RedsHouse1F.asm"
-INCLUDE "data/mapObjects/RedsHouse1F.asm"
+INCLUDE "data/maps/objects/RedsHouse1F.asm"
RedsHouse1F_Blocks: INCBIN "maps/RedsHouse1F.blk"
-INCLUDE "data/mapHeaders/CeladonMart3F.asm"
+INCLUDE "data/maps/headers/CeladonMart3F.asm"
INCLUDE "scripts/CeladonMart3F.asm"
-INCLUDE "data/mapObjects/CeladonMart3F.asm"
+INCLUDE "data/maps/objects/CeladonMart3F.asm"
CeladonMart3F_Blocks: INCBIN "maps/CeladonMart3F.blk"
-INCLUDE "data/mapHeaders/CeladonMart4F.asm"
+INCLUDE "data/maps/headers/CeladonMart4F.asm"
INCLUDE "scripts/CeladonMart4F.asm"
-INCLUDE "data/mapObjects/CeladonMart4F.asm"
+INCLUDE "data/maps/objects/CeladonMart4F.asm"
CeladonMart4F_Blocks: INCBIN "maps/CeladonMart4F.blk"
-INCLUDE "data/mapHeaders/CeladonMartRoof.asm"
+INCLUDE "data/maps/headers/CeladonMartRoof.asm"
INCLUDE "scripts/CeladonMartRoof.asm"
-INCLUDE "data/mapObjects/CeladonMartRoof.asm"
+INCLUDE "data/maps/objects/CeladonMartRoof.asm"
CeladonMartRoof_Blocks: INCBIN "maps/CeladonMartRoof.blk"
-INCLUDE "data/mapHeaders/CeladonMartElevator.asm"
+INCLUDE "data/maps/headers/CeladonMartElevator.asm"
INCLUDE "scripts/CeladonMartElevator.asm"
-INCLUDE "data/mapObjects/CeladonMartElevator.asm"
+INCLUDE "data/maps/objects/CeladonMartElevator.asm"
CeladonMartElevator_Blocks: INCBIN "maps/CeladonMartElevator.blk"
-INCLUDE "data/mapHeaders/CeladonMansion1F.asm"
+INCLUDE "data/maps/headers/CeladonMansion1F.asm"
INCLUDE "scripts/CeladonMansion1F.asm"
-INCLUDE "data/mapObjects/CeladonMansion1F.asm"
+INCLUDE "data/maps/objects/CeladonMansion1F.asm"
CeladonMansion1F_Blocks: INCBIN "maps/CeladonMansion1F.blk"
-INCLUDE "data/mapHeaders/CeladonMansion2F.asm"
+INCLUDE "data/maps/headers/CeladonMansion2F.asm"
INCLUDE "scripts/CeladonMansion2F.asm"
-INCLUDE "data/mapObjects/CeladonMansion2F.asm"
+INCLUDE "data/maps/objects/CeladonMansion2F.asm"
CeladonMansion2F_Blocks: INCBIN "maps/CeladonMansion2F.blk"
-INCLUDE "data/mapHeaders/CeladonMansion3F.asm"
+INCLUDE "data/maps/headers/CeladonMansion3F.asm"
INCLUDE "scripts/CeladonMansion3F.asm"
-INCLUDE "data/mapObjects/CeladonMansion3F.asm"
+INCLUDE "data/maps/objects/CeladonMansion3F.asm"
CeladonMansion3F_Blocks: INCBIN "maps/CeladonMansion3F.blk"
-INCLUDE "data/mapHeaders/CeladonMansionRoof.asm"
+INCLUDE "data/maps/headers/CeladonMansionRoof.asm"
INCLUDE "scripts/CeladonMansionRoof.asm"
-INCLUDE "data/mapObjects/CeladonMansionRoof.asm"
+INCLUDE "data/maps/objects/CeladonMansionRoof.asm"
CeladonMansionRoof_Blocks: INCBIN "maps/CeladonMansionRoof.blk"
-INCLUDE "data/mapHeaders/CeladonPokecenter.asm"
+INCLUDE "data/maps/headers/CeladonPokecenter.asm"
INCLUDE "scripts/CeladonPokecenter.asm"
-INCLUDE "data/mapObjects/CeladonPokecenter.asm"
+INCLUDE "data/maps/objects/CeladonPokecenter.asm"
-INCLUDE "data/mapHeaders/CeladonGym.asm"
+INCLUDE "data/maps/headers/CeladonGym.asm"
INCLUDE "scripts/CeladonGym.asm"
-INCLUDE "data/mapObjects/CeladonGym.asm"
+INCLUDE "data/maps/objects/CeladonGym.asm"
CeladonGym_Blocks: INCBIN "maps/CeladonGym.blk"
-INCLUDE "data/mapHeaders/GameCorner.asm"
+INCLUDE "data/maps/headers/GameCorner.asm"
INCLUDE "scripts/GameCorner.asm"
-INCLUDE "data/mapObjects/GameCorner.asm"
+INCLUDE "data/maps/objects/GameCorner.asm"
GameCorner_Blocks: INCBIN "maps/GameCorner.blk"
-INCLUDE "data/mapHeaders/CeladonMart5F.asm"
+INCLUDE "data/maps/headers/CeladonMart5F.asm"
INCLUDE "scripts/CeladonMart5F.asm"
-INCLUDE "data/mapObjects/CeladonMart5F.asm"
+INCLUDE "data/maps/objects/CeladonMart5F.asm"
CeladonMart5F_Blocks: INCBIN "maps/CeladonMart5F.blk"
-INCLUDE "data/mapHeaders/GameCornerPrizeRoom.asm"
+INCLUDE "data/maps/headers/GameCornerPrizeRoom.asm"
INCLUDE "scripts/GameCornerPrizeRoom.asm"
-INCLUDE "data/mapObjects/GameCornerPrizeRoom.asm"
+INCLUDE "data/maps/objects/GameCornerPrizeRoom.asm"
GameCornerPrizeRoom_Blocks: INCBIN "maps/GameCornerPrizeRoom.blk"
-INCLUDE "data/mapHeaders/CeladonDiner.asm"
+INCLUDE "data/maps/headers/CeladonDiner.asm"
INCLUDE "scripts/CeladonDiner.asm"
-INCLUDE "data/mapObjects/CeladonDiner.asm"
+INCLUDE "data/maps/objects/CeladonDiner.asm"
CeladonDiner_Blocks: INCBIN "maps/CeladonDiner.blk"
-INCLUDE "data/mapHeaders/CeladonChiefHouse.asm"
+INCLUDE "data/maps/headers/CeladonChiefHouse.asm"
INCLUDE "scripts/CeladonChiefHouse.asm"
-INCLUDE "data/mapObjects/CeladonChiefHouse.asm"
+INCLUDE "data/maps/objects/CeladonChiefHouse.asm"
CeladonChiefHouse_Blocks: INCBIN "maps/CeladonChiefHouse.blk"
-INCLUDE "data/mapHeaders/CeladonHotel.asm"
+INCLUDE "data/maps/headers/CeladonHotel.asm"
INCLUDE "scripts/CeladonHotel.asm"
-INCLUDE "data/mapObjects/CeladonHotel.asm"
+INCLUDE "data/maps/objects/CeladonHotel.asm"
CeladonHotel_Blocks: INCBIN "maps/CeladonHotel.blk"
-INCLUDE "data/mapHeaders/MtMoonPokecenter.asm"
+INCLUDE "data/maps/headers/MtMoonPokecenter.asm"
INCLUDE "scripts/MtMoonPokecenter.asm"
-INCLUDE "data/mapObjects/MtMoonPokecenter.asm"
+INCLUDE "data/maps/objects/MtMoonPokecenter.asm"
-INCLUDE "data/mapHeaders/RockTunnelPokecenter.asm"
+INCLUDE "data/maps/headers/RockTunnelPokecenter.asm"
INCLUDE "scripts/RockTunnelPokecenter.asm"
-INCLUDE "data/mapObjects/RockTunnelPokecenter.asm"
+INCLUDE "data/maps/objects/RockTunnelPokecenter.asm"
-INCLUDE "data/mapHeaders/Route11Gate1F.asm"
+INCLUDE "data/maps/headers/Route11Gate1F.asm"
INCLUDE "scripts/Route11Gate1F.asm"
-INCLUDE "data/mapObjects/Route11Gate1F.asm"
+INCLUDE "data/maps/objects/Route11Gate1F.asm"
-INCLUDE "data/mapHeaders/Route11Gate2F.asm"
+INCLUDE "data/maps/headers/Route11Gate2F.asm"
INCLUDE "scripts/Route11Gate2F.asm"
-INCLUDE "data/mapObjects/Route11Gate2F.asm"
+INCLUDE "data/maps/objects/Route11Gate2F.asm"
-INCLUDE "data/mapHeaders/Route12Gate1F.asm"
+INCLUDE "data/maps/headers/Route12Gate1F.asm"
INCLUDE "scripts/Route12Gate1F.asm"
-INCLUDE "data/mapObjects/Route12Gate1F.asm"
+INCLUDE "data/maps/objects/Route12Gate1F.asm"
Route12Gate1F_Blocks: INCBIN "maps/Route12Gate1F.blk"
-INCLUDE "data/mapHeaders/Route12Gate2F.asm"
+INCLUDE "data/maps/headers/Route12Gate2F.asm"
INCLUDE "scripts/Route12Gate2F.asm"
-INCLUDE "data/mapObjects/Route12Gate2F.asm"
+INCLUDE "data/maps/objects/Route12Gate2F.asm"
-INCLUDE "data/mapHeaders/Route15Gate1F.asm"
+INCLUDE "data/maps/headers/Route15Gate1F.asm"
INCLUDE "scripts/Route15Gate1F.asm"
-INCLUDE "data/mapObjects/Route15Gate1F.asm"
+INCLUDE "data/maps/objects/Route15Gate1F.asm"
-INCLUDE "data/mapHeaders/Route15Gate2F.asm"
+INCLUDE "data/maps/headers/Route15Gate2F.asm"
INCLUDE "scripts/Route15Gate2F.asm"
-INCLUDE "data/mapObjects/Route15Gate2F.asm"
+INCLUDE "data/maps/objects/Route15Gate2F.asm"
-INCLUDE "data/mapHeaders/Route16Gate1F.asm"
+INCLUDE "data/maps/headers/Route16Gate1F.asm"
INCLUDE "scripts/Route16Gate1F.asm"
-INCLUDE "data/mapObjects/Route16Gate1F.asm"
+INCLUDE "data/maps/objects/Route16Gate1F.asm"
Route16Gate1F_Blocks: INCBIN "maps/Route16Gate1F.blk"
-INCLUDE "data/mapHeaders/Route16Gate2F.asm"
+INCLUDE "data/maps/headers/Route16Gate2F.asm"
INCLUDE "scripts/Route16Gate2F.asm"
-INCLUDE "data/mapObjects/Route16Gate2F.asm"
+INCLUDE "data/maps/objects/Route16Gate2F.asm"
-INCLUDE "data/mapHeaders/Route18Gate1F.asm"
+INCLUDE "data/maps/headers/Route18Gate1F.asm"
INCLUDE "scripts/Route18Gate1F.asm"
-INCLUDE "data/mapObjects/Route18Gate1F.asm"
+INCLUDE "data/maps/objects/Route18Gate1F.asm"
-INCLUDE "data/mapHeaders/Route18Gate2F.asm"
+INCLUDE "data/maps/headers/Route18Gate2F.asm"
INCLUDE "scripts/Route18Gate2F.asm"
-INCLUDE "data/mapObjects/Route18Gate2F.asm"
+INCLUDE "data/maps/objects/Route18Gate2F.asm"
-INCLUDE "data/mapHeaders/MtMoon1F.asm"
+INCLUDE "data/maps/headers/MtMoon1F.asm"
INCLUDE "scripts/MtMoon1F.asm"
-INCLUDE "data/mapObjects/MtMoon1F.asm"
+INCLUDE "data/maps/objects/MtMoon1F.asm"
MtMoon1F_Blocks: INCBIN "maps/MtMoon1F.blk"
-INCLUDE "data/mapHeaders/MtMoonB2F.asm"
+INCLUDE "data/maps/headers/MtMoonB2F.asm"
INCLUDE "scripts/MtMoonB2F.asm"
-INCLUDE "data/mapObjects/MtMoonB2F.asm"
+INCLUDE "data/maps/objects/MtMoonB2F.asm"
MtMoonB2F_Blocks: INCBIN "maps/MtMoonB2F.blk"
-INCLUDE "data/mapHeaders/SafariZoneWest.asm"
+INCLUDE "data/maps/headers/SafariZoneWest.asm"
INCLUDE "scripts/SafariZoneWest.asm"
-INCLUDE "data/mapObjects/SafariZoneWest.asm"
+INCLUDE "data/maps/objects/SafariZoneWest.asm"
SafariZoneWest_Blocks: INCBIN "maps/SafariZoneWest.blk"
-INCLUDE "data/mapHeaders/SafariZoneSecretHouse.asm"
+INCLUDE "data/maps/headers/SafariZoneSecretHouse.asm"
INCLUDE "scripts/SafariZoneSecretHouse.asm"
-INCLUDE "data/mapObjects/SafariZoneSecretHouse.asm"
+INCLUDE "data/maps/objects/SafariZoneSecretHouse.asm"
SafariZoneSecretHouse_Blocks: INCBIN "maps/SafariZoneSecretHouse.blk"
SECTION "Maps 9", ROMX
-INCLUDE "data/mapHeaders/TradeCenter.asm"
+INCLUDE "data/maps/headers/TradeCenter.asm"
INCLUDE "scripts/TradeCenter.asm"
-INCLUDE "data/mapObjects/TradeCenter.asm"
+INCLUDE "data/maps/objects/TradeCenter.asm"
TradeCenter_Blocks: INCBIN "maps/TradeCenter.blk"
-INCLUDE "data/mapHeaders/Colosseum.asm"
+INCLUDE "data/maps/headers/Colosseum.asm"
INCLUDE "scripts/Colosseum.asm"
-INCLUDE "data/mapObjects/Colosseum.asm"
+INCLUDE "data/maps/objects/Colosseum.asm"
Colosseum_Blocks: INCBIN "maps/Colosseum.blk"
SECTION "Maps 10", ROMX
-INCLUDE "data/mapHeaders/Route22.asm"
-INCLUDE "data/mapObjects/Route22.asm"
+INCLUDE "data/maps/headers/Route22.asm"
+INCLUDE "data/maps/objects/Route22.asm"
Route22_Blocks: INCBIN "maps/Route22.blk"
-INCLUDE "data/mapHeaders/Route20.asm"
-INCLUDE "data/mapObjects/Route20.asm"
+INCLUDE "data/maps/headers/Route20.asm"
+INCLUDE "data/maps/objects/Route20.asm"
Route20_Blocks: INCBIN "maps/Route20.blk"
-INCLUDE "data/mapHeaders/Route23.asm"
-INCLUDE "data/mapObjects/Route23.asm"
+INCLUDE "data/maps/headers/Route23.asm"
+INCLUDE "data/maps/objects/Route23.asm"
Route23_Blocks: INCBIN "maps/Route23.blk"
-INCLUDE "data/mapHeaders/Route24.asm"
-INCLUDE "data/mapObjects/Route24.asm"
+INCLUDE "data/maps/headers/Route24.asm"
+INCLUDE "data/maps/objects/Route24.asm"
Route24_Blocks: INCBIN "maps/Route24.blk"
-INCLUDE "data/mapHeaders/Route25.asm"
-INCLUDE "data/mapObjects/Route25.asm"
+INCLUDE "data/maps/headers/Route25.asm"
+INCLUDE "data/maps/objects/Route25.asm"
Route25_Blocks: INCBIN "maps/Route25.blk"
-INCLUDE "data/mapHeaders/IndigoPlateau.asm"
+INCLUDE "data/maps/headers/IndigoPlateau.asm"
INCLUDE "scripts/IndigoPlateau.asm"
-INCLUDE "data/mapObjects/IndigoPlateau.asm"
+INCLUDE "data/maps/objects/IndigoPlateau.asm"
IndigoPlateau_Blocks: INCBIN "maps/IndigoPlateau.blk"
-INCLUDE "data/mapHeaders/SaffronCity.asm"
-INCLUDE "data/mapObjects/SaffronCity.asm"
+INCLUDE "data/maps/headers/SaffronCity.asm"
+INCLUDE "data/maps/objects/SaffronCity.asm"
SaffronCity_Blocks: INCBIN "maps/SaffronCity.blk"
INCLUDE "scripts/SaffronCity.asm"
@@ -624,77 +624,77 @@ INCLUDE "scripts/Route23.asm"
INCLUDE "scripts/Route24.asm"
INCLUDE "scripts/Route25.asm"
-INCLUDE "data/mapHeaders/VictoryRoad2F.asm"
+INCLUDE "data/maps/headers/VictoryRoad2F.asm"
INCLUDE "scripts/VictoryRoad2F.asm"
-INCLUDE "data/mapObjects/VictoryRoad2F.asm"
+INCLUDE "data/maps/objects/VictoryRoad2F.asm"
VictoryRoad2F_Blocks: INCBIN "maps/VictoryRoad2F.blk"
-INCLUDE "data/mapHeaders/MtMoonB1F.asm"
+INCLUDE "data/maps/headers/MtMoonB1F.asm"
INCLUDE "scripts/MtMoonB1F.asm"
-INCLUDE "data/mapObjects/MtMoonB1F.asm"
+INCLUDE "data/maps/objects/MtMoonB1F.asm"
MtMoonB1F_Blocks: INCBIN "maps/MtMoonB1F.blk"
-INCLUDE "data/mapHeaders/SilphCo7F.asm"
+INCLUDE "data/maps/headers/SilphCo7F.asm"
INCLUDE "scripts/SilphCo7F.asm"
-INCLUDE "data/mapObjects/SilphCo7F.asm"
+INCLUDE "data/maps/objects/SilphCo7F.asm"
SilphCo7F_Blocks: INCBIN "maps/SilphCo7F.blk"
-INCLUDE "data/mapHeaders/PokemonMansion2F.asm"
+INCLUDE "data/maps/headers/PokemonMansion2F.asm"
INCLUDE "scripts/PokemonMansion2F.asm"
-INCLUDE "data/mapObjects/PokemonMansion2F.asm"
+INCLUDE "data/maps/objects/PokemonMansion2F.asm"
PokemonMansion2F_Blocks: INCBIN "maps/PokemonMansion2F.blk"
-INCLUDE "data/mapHeaders/PokemonMansion3F.asm"
+INCLUDE "data/maps/headers/PokemonMansion3F.asm"
INCLUDE "scripts/PokemonMansion3F.asm"
-INCLUDE "data/mapObjects/PokemonMansion3F.asm"
+INCLUDE "data/maps/objects/PokemonMansion3F.asm"
PokemonMansion3F_Blocks: INCBIN "maps/PokemonMansion3F.blk"
-INCLUDE "data/mapHeaders/PokemonMansionB1F.asm"
+INCLUDE "data/maps/headers/PokemonMansionB1F.asm"
INCLUDE "scripts/PokemonMansionB1F.asm"
-INCLUDE "data/mapObjects/PokemonMansionB1F.asm"
+INCLUDE "data/maps/objects/PokemonMansionB1F.asm"
PokemonMansionB1F_Blocks: INCBIN "maps/PokemonMansionB1F.blk"
SECTION "Maps 11", ROMX
-INCLUDE "data/mapHeaders/Route2.asm"
-INCLUDE "data/mapObjects/Route2.asm"
+INCLUDE "data/maps/headers/Route2.asm"
+INCLUDE "data/maps/objects/Route2.asm"
Route2_Blocks: INCBIN "maps/Route2.blk"
-INCLUDE "data/mapHeaders/Route3.asm"
-INCLUDE "data/mapObjects/Route3.asm"
+INCLUDE "data/maps/headers/Route3.asm"
+INCLUDE "data/maps/objects/Route3.asm"
Route3_Blocks: INCBIN "maps/Route3.blk"
-INCLUDE "data/mapHeaders/Route4.asm"
-INCLUDE "data/mapObjects/Route4.asm"
+INCLUDE "data/maps/headers/Route4.asm"
+INCLUDE "data/maps/objects/Route4.asm"
Route4_Blocks: INCBIN "maps/Route4.blk"
-INCLUDE "data/mapHeaders/Route5.asm"
-INCLUDE "data/mapObjects/Route5.asm"
+INCLUDE "data/maps/headers/Route5.asm"
+INCLUDE "data/maps/objects/Route5.asm"
Route5_Blocks: INCBIN "maps/Route5.blk"
-INCLUDE "data/mapHeaders/Route9.asm"
-INCLUDE "data/mapObjects/Route9.asm"
+INCLUDE "data/maps/headers/Route9.asm"
+INCLUDE "data/maps/objects/Route9.asm"
Route9_Blocks: INCBIN "maps/Route9.blk"
-INCLUDE "data/mapHeaders/Route13.asm"
-INCLUDE "data/mapObjects/Route13.asm"
+INCLUDE "data/maps/headers/Route13.asm"
+INCLUDE "data/maps/objects/Route13.asm"
Route13_Blocks: INCBIN "maps/Route13.blk"
-INCLUDE "data/mapHeaders/Route14.asm"
-INCLUDE "data/mapObjects/Route14.asm"
+INCLUDE "data/maps/headers/Route14.asm"
+INCLUDE "data/maps/objects/Route14.asm"
Route14_Blocks: INCBIN "maps/Route14.blk"
-INCLUDE "data/mapHeaders/Route17.asm"
-INCLUDE "data/mapObjects/Route17.asm"
+INCLUDE "data/maps/headers/Route17.asm"
+INCLUDE "data/maps/objects/Route17.asm"
Route17_Blocks: INCBIN "maps/Route17.blk"
-INCLUDE "data/mapHeaders/Route19.asm"
-INCLUDE "data/mapObjects/Route19.asm"
+INCLUDE "data/maps/headers/Route19.asm"
+INCLUDE "data/maps/objects/Route19.asm"
Route19_Blocks: INCBIN "maps/Route19.blk"
-INCLUDE "data/mapHeaders/Route21.asm"
-INCLUDE "data/mapObjects/Route21.asm"
+INCLUDE "data/maps/headers/Route21.asm"
+INCLUDE "data/maps/objects/Route21.asm"
Route21_Blocks: INCBIN "maps/Route21.blk"
VermilionOldRodHouse_Blocks:
@@ -717,65 +717,65 @@ INCLUDE "scripts/Route17.asm"
INCLUDE "scripts/Route19.asm"
INCLUDE "scripts/Route21.asm"
-INCLUDE "data/mapHeaders/VermilionOldRodHouse.asm"
+INCLUDE "data/maps/headers/VermilionOldRodHouse.asm"
INCLUDE "scripts/VermilionOldRodHouse.asm"
-INCLUDE "data/mapObjects/VermilionOldRodHouse.asm"
+INCLUDE "data/maps/objects/VermilionOldRodHouse.asm"
-INCLUDE "data/mapHeaders/CeladonMart2F.asm"
+INCLUDE "data/maps/headers/CeladonMart2F.asm"
INCLUDE "scripts/CeladonMart2F.asm"
-INCLUDE "data/mapObjects/CeladonMart2F.asm"
+INCLUDE "data/maps/objects/CeladonMart2F.asm"
CeladonMart2F_Blocks: INCBIN "maps/CeladonMart2F.blk"
-INCLUDE "data/mapHeaders/FuchsiaGoodRodHouse.asm"
+INCLUDE "data/maps/headers/FuchsiaGoodRodHouse.asm"
INCLUDE "scripts/FuchsiaGoodRodHouse.asm"
-INCLUDE "data/mapObjects/FuchsiaGoodRodHouse.asm"
+INCLUDE "data/maps/objects/FuchsiaGoodRodHouse.asm"
-INCLUDE "data/mapHeaders/Daycare.asm"
+INCLUDE "data/maps/headers/Daycare.asm"
INCLUDE "scripts/Daycare.asm"
-INCLUDE "data/mapObjects/Daycare.asm"
+INCLUDE "data/maps/objects/Daycare.asm"
-INCLUDE "data/mapHeaders/Route12SuperRodHouse.asm"
+INCLUDE "data/maps/headers/Route12SuperRodHouse.asm"
INCLUDE "scripts/Route12SuperRodHouse.asm"
-INCLUDE "data/mapObjects/Route12SuperRodHouse.asm"
+INCLUDE "data/maps/objects/Route12SuperRodHouse.asm"
-INCLUDE "data/mapHeaders/SilphCo8F.asm"
+INCLUDE "data/maps/headers/SilphCo8F.asm"
INCLUDE "scripts/SilphCo8F.asm"
-INCLUDE "data/mapObjects/SilphCo8F.asm"
+INCLUDE "data/maps/objects/SilphCo8F.asm"
SilphCo8F_Blocks: INCBIN "maps/SilphCo8F.blk"
SECTION "Maps 13", ROMX
-INCLUDE "data/mapHeaders/Route6.asm"
-INCLUDE "data/mapObjects/Route6.asm"
+INCLUDE "data/maps/headers/Route6.asm"
+INCLUDE "data/maps/objects/Route6.asm"
Route6_Blocks: INCBIN "maps/Route6.blk"
-INCLUDE "data/mapHeaders/Route8.asm"
-INCLUDE "data/mapObjects/Route8.asm"
+INCLUDE "data/maps/headers/Route8.asm"
+INCLUDE "data/maps/objects/Route8.asm"
Route8_Blocks: INCBIN "maps/Route8.blk"
-INCLUDE "data/mapHeaders/Route10.asm"
-INCLUDE "data/mapObjects/Route10.asm"
+INCLUDE "data/maps/headers/Route10.asm"
+INCLUDE "data/maps/objects/Route10.asm"
Route10_Blocks: INCBIN "maps/Route10.blk"
-INCLUDE "data/mapHeaders/Route11.asm"
-INCLUDE "data/mapObjects/Route11.asm"
+INCLUDE "data/maps/headers/Route11.asm"
+INCLUDE "data/maps/objects/Route11.asm"
Route11_Blocks: INCBIN "maps/Route11.blk"
-INCLUDE "data/mapHeaders/Route12.asm"
-INCLUDE "data/mapObjects/Route12.asm"
+INCLUDE "data/maps/headers/Route12.asm"
+INCLUDE "data/maps/objects/Route12.asm"
Route12_Blocks: INCBIN "maps/Route12.blk"
-INCLUDE "data/mapHeaders/Route15.asm"
-INCLUDE "data/mapObjects/Route15.asm"
+INCLUDE "data/maps/headers/Route15.asm"
+INCLUDE "data/maps/objects/Route15.asm"
Route15_Blocks: INCBIN "maps/Route15.blk"
-INCLUDE "data/mapHeaders/Route16.asm"
-INCLUDE "data/mapObjects/Route16.asm"
+INCLUDE "data/maps/headers/Route16.asm"
+INCLUDE "data/maps/objects/Route16.asm"
Route16_Blocks: INCBIN "maps/Route16.blk"
-INCLUDE "data/mapHeaders/Route18.asm"
-INCLUDE "data/mapObjects/Route18.asm"
+INCLUDE "data/maps/headers/Route18.asm"
+INCLUDE "data/maps/objects/Route18.asm"
Route18_Blocks: INCBIN "maps/Route18.blk"
INCBIN "maps/UnusedPokecenterCopy.blk"
@@ -792,34 +792,34 @@ INCLUDE "scripts/Route15.asm"
INCLUDE "scripts/Route16.asm"
INCLUDE "scripts/Route18.asm"
-INCLUDE "data/mapHeaders/PokemonFanClub.asm"
+INCLUDE "data/maps/headers/PokemonFanClub.asm"
INCLUDE "scripts/PokemonFanClub.asm"
-INCLUDE "data/mapObjects/PokemonFanClub.asm"
+INCLUDE "data/maps/objects/PokemonFanClub.asm"
PokemonFanClub_Blocks: INCBIN "maps/PokemonFanClub.blk"
-INCLUDE "data/mapHeaders/SilphCo2F.asm"
+INCLUDE "data/maps/headers/SilphCo2F.asm"
INCLUDE "scripts/SilphCo2F.asm"
-INCLUDE "data/mapObjects/SilphCo2F.asm"
+INCLUDE "data/maps/objects/SilphCo2F.asm"
SilphCo2F_Blocks: INCBIN "maps/SilphCo2F.blk"
-INCLUDE "data/mapHeaders/SilphCo3F.asm"
+INCLUDE "data/maps/headers/SilphCo3F.asm"
INCLUDE "scripts/SilphCo3F.asm"
-INCLUDE "data/mapObjects/SilphCo3F.asm"
+INCLUDE "data/maps/objects/SilphCo3F.asm"
SilphCo3F_Blocks: INCBIN "maps/SilphCo3F.blk"
-INCLUDE "data/mapHeaders/SilphCo10F.asm"
+INCLUDE "data/maps/headers/SilphCo10F.asm"
INCLUDE "scripts/SilphCo10F.asm"
-INCLUDE "data/mapObjects/SilphCo10F.asm"
+INCLUDE "data/maps/objects/SilphCo10F.asm"
SilphCo10F_Blocks: INCBIN "maps/SilphCo10F.blk"
-INCLUDE "data/mapHeaders/LancesRoom.asm"
+INCLUDE "data/maps/headers/LancesRoom.asm"
INCLUDE "scripts/LancesRoom.asm"
-INCLUDE "data/mapObjects/LancesRoom.asm"
+INCLUDE "data/maps/objects/LancesRoom.asm"
LancesRoom_Blocks: INCBIN "maps/LancesRoom.blk"
-INCLUDE "data/mapHeaders/HallOfFame.asm"
+INCLUDE "data/maps/headers/HallOfFame.asm"
INCLUDE "scripts/HallOfFame.asm"
-INCLUDE "data/mapObjects/HallOfFame.asm"
+INCLUDE "data/maps/objects/HallOfFame.asm"
HallOfFame_Blocks: INCBIN "maps/HallOfFame.blk"
@@ -851,128 +851,128 @@ Route2Gate_Blocks:
ViridianForestSouthGate_Blocks:
ViridianForestNorthGate_Blocks: INCBIN "maps/ViridianForestNorthGate.blk"
-INCLUDE "data/mapHeaders/RedsHouse2F.asm"
+INCLUDE "data/maps/headers/RedsHouse2F.asm"
INCLUDE "scripts/RedsHouse2F.asm"
-INCLUDE "data/mapObjects/RedsHouse2F.asm"
+INCLUDE "data/maps/objects/RedsHouse2F.asm"
SECTION "Maps 16", ROMX
-INCLUDE "data/mapHeaders/Museum1F.asm"
+INCLUDE "data/maps/headers/Museum1F.asm"
INCLUDE "scripts/Museum1F.asm"
-INCLUDE "data/mapObjects/Museum1F.asm"
+INCLUDE "data/maps/objects/Museum1F.asm"
-INCLUDE "data/mapHeaders/Museum2F.asm"
+INCLUDE "data/maps/headers/Museum2F.asm"
INCLUDE "scripts/Museum2F.asm"
-INCLUDE "data/mapObjects/Museum2F.asm"
+INCLUDE "data/maps/objects/Museum2F.asm"
-INCLUDE "data/mapHeaders/PewterGym.asm"
+INCLUDE "data/maps/headers/PewterGym.asm"
INCLUDE "scripts/PewterGym.asm"
-INCLUDE "data/mapObjects/PewterGym.asm"
+INCLUDE "data/maps/objects/PewterGym.asm"
PewterGym_Blocks: INCBIN "maps/PewterGym.blk"
-INCLUDE "data/mapHeaders/PewterPokecenter.asm"
+INCLUDE "data/maps/headers/PewterPokecenter.asm"
INCLUDE "scripts/PewterPokecenter.asm"
-INCLUDE "data/mapObjects/PewterPokecenter.asm"
+INCLUDE "data/maps/objects/PewterPokecenter.asm"
-INCLUDE "data/mapHeaders/CeruleanPokecenter.asm"
+INCLUDE "data/maps/headers/CeruleanPokecenter.asm"
INCLUDE "scripts/CeruleanPokecenter.asm"
-INCLUDE "data/mapObjects/CeruleanPokecenter.asm"
+INCLUDE "data/maps/objects/CeruleanPokecenter.asm"
CeruleanPokecenter_Blocks: INCBIN "maps/CeruleanPokecenter.blk"
-INCLUDE "data/mapHeaders/CeruleanGym.asm"
+INCLUDE "data/maps/headers/CeruleanGym.asm"
INCLUDE "scripts/CeruleanGym.asm"
-INCLUDE "data/mapObjects/CeruleanGym.asm"
+INCLUDE "data/maps/objects/CeruleanGym.asm"
CeruleanGym_Blocks: INCBIN "maps/CeruleanGym.blk"
-INCLUDE "data/mapHeaders/CeruleanMart.asm"
+INCLUDE "data/maps/headers/CeruleanMart.asm"
INCLUDE "scripts/CeruleanMart.asm"
-INCLUDE "data/mapObjects/CeruleanMart.asm"
+INCLUDE "data/maps/objects/CeruleanMart.asm"
-INCLUDE "data/mapHeaders/LavenderPokecenter.asm"
+INCLUDE "data/maps/headers/LavenderPokecenter.asm"
INCLUDE "scripts/LavenderPokecenter.asm"
-INCLUDE "data/mapObjects/LavenderPokecenter.asm"
+INCLUDE "data/maps/objects/LavenderPokecenter.asm"
-INCLUDE "data/mapHeaders/LavenderMart.asm"
+INCLUDE "data/maps/headers/LavenderMart.asm"
INCLUDE "scripts/LavenderMart.asm"
-INCLUDE "data/mapObjects/LavenderMart.asm"
+INCLUDE "data/maps/objects/LavenderMart.asm"
-INCLUDE "data/mapHeaders/VermilionPokecenter.asm"
+INCLUDE "data/maps/headers/VermilionPokecenter.asm"
INCLUDE "scripts/VermilionPokecenter.asm"
-INCLUDE "data/mapObjects/VermilionPokecenter.asm"
+INCLUDE "data/maps/objects/VermilionPokecenter.asm"
-INCLUDE "data/mapHeaders/VermilionMart.asm"
+INCLUDE "data/maps/headers/VermilionMart.asm"
INCLUDE "scripts/VermilionMart.asm"
-INCLUDE "data/mapObjects/VermilionMart.asm"
+INCLUDE "data/maps/objects/VermilionMart.asm"
-INCLUDE "data/mapHeaders/VermilionGym.asm"
+INCLUDE "data/maps/headers/VermilionGym.asm"
INCLUDE "scripts/VermilionGym.asm"
-INCLUDE "data/mapObjects/VermilionGym.asm"
+INCLUDE "data/maps/objects/VermilionGym.asm"
VermilionGym_Blocks: INCBIN "maps/VermilionGym.blk"
-INCLUDE "data/mapHeaders/CopycatsHouse2F.asm"
+INCLUDE "data/maps/headers/CopycatsHouse2F.asm"
INCLUDE "scripts/CopycatsHouse2F.asm"
-INCLUDE "data/mapObjects/CopycatsHouse2F.asm"
+INCLUDE "data/maps/objects/CopycatsHouse2F.asm"
-INCLUDE "data/mapHeaders/FightingDojo.asm"
+INCLUDE "data/maps/headers/FightingDojo.asm"
INCLUDE "scripts/FightingDojo.asm"
-INCLUDE "data/mapObjects/FightingDojo.asm"
+INCLUDE "data/maps/objects/FightingDojo.asm"
FightingDojo_Blocks: INCBIN "maps/FightingDojo.blk"
-INCLUDE "data/mapHeaders/SaffronGym.asm"
+INCLUDE "data/maps/headers/SaffronGym.asm"
INCLUDE "scripts/SaffronGym.asm"
-INCLUDE "data/mapObjects/SaffronGym.asm"
+INCLUDE "data/maps/objects/SaffronGym.asm"
SaffronGym_Blocks: INCBIN "maps/SaffronGym.blk"
-INCLUDE "data/mapHeaders/SaffronMart.asm"
+INCLUDE "data/maps/headers/SaffronMart.asm"
INCLUDE "scripts/SaffronMart.asm"
-INCLUDE "data/mapObjects/SaffronMart.asm"
+INCLUDE "data/maps/objects/SaffronMart.asm"
-INCLUDE "data/mapHeaders/SilphCo1F.asm"
+INCLUDE "data/maps/headers/SilphCo1F.asm"
INCLUDE "scripts/SilphCo1F.asm"
-INCLUDE "data/mapObjects/SilphCo1F.asm"
+INCLUDE "data/maps/objects/SilphCo1F.asm"
SilphCo1F_Blocks: INCBIN "maps/SilphCo1F.blk"
-INCLUDE "data/mapHeaders/SaffronPokecenter.asm"
+INCLUDE "data/maps/headers/SaffronPokecenter.asm"
INCLUDE "scripts/SaffronPokecenter.asm"
-INCLUDE "data/mapObjects/SaffronPokecenter.asm"
+INCLUDE "data/maps/objects/SaffronPokecenter.asm"
-INCLUDE "data/mapHeaders/ViridianForestNorthGate.asm"
+INCLUDE "data/maps/headers/ViridianForestNorthGate.asm"
INCLUDE "scripts/ViridianForestNorthGate.asm"
-INCLUDE "data/mapObjects/ViridianForestNorthGate.asm"
+INCLUDE "data/maps/objects/ViridianForestNorthGate.asm"
-INCLUDE "data/mapHeaders/Route2Gate.asm"
+INCLUDE "data/maps/headers/Route2Gate.asm"
INCLUDE "scripts/Route2Gate.asm"
-INCLUDE "data/mapObjects/Route2Gate.asm"
+INCLUDE "data/maps/objects/Route2Gate.asm"
-INCLUDE "data/mapHeaders/ViridianForestSouthGate.asm"
+INCLUDE "data/maps/headers/ViridianForestSouthGate.asm"
INCLUDE "scripts/ViridianForestSouthGate.asm"
-INCLUDE "data/mapObjects/ViridianForestSouthGate.asm"
+INCLUDE "data/maps/objects/ViridianForestSouthGate.asm"
-INCLUDE "data/mapHeaders/UndergroundPathRoute5.asm"
+INCLUDE "data/maps/headers/UndergroundPathRoute5.asm"
INCLUDE "scripts/UndergroundPathRoute5.asm"
-INCLUDE "data/mapObjects/UndergroundPathRoute5.asm"
+INCLUDE "data/maps/objects/UndergroundPathRoute5.asm"
-INCLUDE "data/mapHeaders/UndergroundPathRoute6.asm"
+INCLUDE "data/maps/headers/UndergroundPathRoute6.asm"
INCLUDE "scripts/UndergroundPathRoute6.asm"
-INCLUDE "data/mapObjects/UndergroundPathRoute6.asm"
+INCLUDE "data/maps/objects/UndergroundPathRoute6.asm"
-INCLUDE "data/mapHeaders/UndergroundPathRoute7.asm"
+INCLUDE "data/maps/headers/UndergroundPathRoute7.asm"
INCLUDE "scripts/UndergroundPathRoute7.asm"
-INCLUDE "data/mapObjects/UndergroundPathRoute7.asm"
+INCLUDE "data/maps/objects/UndergroundPathRoute7.asm"
-INCLUDE "data/mapHeaders/UndergroundPathRoute7Copy.asm"
+INCLUDE "data/maps/headers/UndergroundPathRoute7Copy.asm"
INCLUDE "scripts/UndergroundPathRoute7Copy.asm"
-INCLUDE "data/mapObjects/UndergroundPathRoute7Copy.asm"
+INCLUDE "data/maps/objects/UndergroundPathRoute7Copy.asm"
-INCLUDE "data/mapHeaders/SilphCo9F.asm"
+INCLUDE "data/maps/headers/SilphCo9F.asm"
INCLUDE "scripts/SilphCo9F.asm"
-INCLUDE "data/mapObjects/SilphCo9F.asm"
+INCLUDE "data/maps/objects/SilphCo9F.asm"
SilphCo9F_Blocks: INCBIN "maps/SilphCo9F.blk"
-INCLUDE "data/mapHeaders/VictoryRoad1F.asm"
+INCLUDE "data/maps/headers/VictoryRoad1F.asm"
INCLUDE "scripts/VictoryRoad1F.asm"
-INCLUDE "data/mapObjects/VictoryRoad1F.asm"
+INCLUDE "data/maps/objects/VictoryRoad1F.asm"
VictoryRoad1F_Blocks: INCBIN "maps/VictoryRoad1F.blk"
@@ -987,114 +987,114 @@ UndergroundPathWestEast_Blocks: INCBIN "maps/UndergroundPathWestEast.blk"
SSAnneB1FRooms_Blocks:
SSAnne2FRooms_Blocks: INCBIN "maps/SSAnne2FRooms.blk"
-INCLUDE "data/mapHeaders/PokemonTower1F.asm"
+INCLUDE "data/maps/headers/PokemonTower1F.asm"
INCLUDE "scripts/PokemonTower1F.asm"
-INCLUDE "data/mapObjects/PokemonTower1F.asm"
+INCLUDE "data/maps/objects/PokemonTower1F.asm"
PokemonTower1F_Blocks: INCBIN "maps/PokemonTower1F.blk"
-INCLUDE "data/mapHeaders/PokemonTower2F.asm"
+INCLUDE "data/maps/headers/PokemonTower2F.asm"
INCLUDE "scripts/PokemonTower2F.asm"
-INCLUDE "data/mapObjects/PokemonTower2F.asm"
+INCLUDE "data/maps/objects/PokemonTower2F.asm"
PokemonTower2F_Blocks: INCBIN "maps/PokemonTower2F.blk"
-INCLUDE "data/mapHeaders/PokemonTower3F.asm"
+INCLUDE "data/maps/headers/PokemonTower3F.asm"
INCLUDE "scripts/PokemonTower3F.asm"
-INCLUDE "data/mapObjects/PokemonTower3F.asm"
+INCLUDE "data/maps/objects/PokemonTower3F.asm"
PokemonTower3F_Blocks: INCBIN "maps/PokemonTower3F.blk"
-INCLUDE "data/mapHeaders/PokemonTower4F.asm"
+INCLUDE "data/maps/headers/PokemonTower4F.asm"
INCLUDE "scripts/PokemonTower4F.asm"
-INCLUDE "data/mapObjects/PokemonTower4F.asm"
+INCLUDE "data/maps/objects/PokemonTower4F.asm"
PokemonTower4F_Blocks: INCBIN "maps/PokemonTower4F.blk"
-INCLUDE "data/mapHeaders/PokemonTower5F.asm"
+INCLUDE "data/maps/headers/PokemonTower5F.asm"
INCLUDE "scripts/PokemonTower5F.asm"
-INCLUDE "data/mapObjects/PokemonTower5F.asm"
+INCLUDE "data/maps/objects/PokemonTower5F.asm"
PokemonTower5F_Blocks: INCBIN "maps/PokemonTower5F.blk"
-INCLUDE "data/mapHeaders/PokemonTower6F.asm"
+INCLUDE "data/maps/headers/PokemonTower6F.asm"
INCLUDE "scripts/PokemonTower6F.asm"
-INCLUDE "data/mapObjects/PokemonTower6F.asm"
+INCLUDE "data/maps/objects/PokemonTower6F.asm"
PokemonTower6F_Blocks: INCBIN "maps/PokemonTower6F.blk"
INCBIN "maps/UnusedEmptyMap.blk"
-INCLUDE "data/mapHeaders/PokemonTower7F.asm"
+INCLUDE "data/maps/headers/PokemonTower7F.asm"
INCLUDE "scripts/PokemonTower7F.asm"
-INCLUDE "data/mapObjects/PokemonTower7F.asm"
+INCLUDE "data/maps/objects/PokemonTower7F.asm"
PokemonTower7F_Blocks: INCBIN "maps/PokemonTower7F.blk"
-INCLUDE "data/mapHeaders/CeladonMart1F.asm"
+INCLUDE "data/maps/headers/CeladonMart1F.asm"
INCLUDE "scripts/CeladonMart1F.asm"
-INCLUDE "data/mapObjects/CeladonMart1F.asm"
+INCLUDE "data/maps/objects/CeladonMart1F.asm"
CeladonMart1F_Blocks: INCBIN "maps/CeladonMart1F.blk"
SECTION "Maps 18", ROMX
-INCLUDE "data/mapHeaders/ViridianForest.asm"
+INCLUDE "data/maps/headers/ViridianForest.asm"
INCLUDE "scripts/ViridianForest.asm"
-INCLUDE "data/mapObjects/ViridianForest.asm"
+INCLUDE "data/maps/objects/ViridianForest.asm"
-INCLUDE "data/mapHeaders/SSAnne1F.asm"
+INCLUDE "data/maps/headers/SSAnne1F.asm"
INCLUDE "scripts/SSAnne1F.asm"
-INCLUDE "data/mapObjects/SSAnne1F.asm"
+INCLUDE "data/maps/objects/SSAnne1F.asm"
SSAnne1F_Blocks: INCBIN "maps/SSAnne1F.blk"
-INCLUDE "data/mapHeaders/SSAnne2F.asm"
+INCLUDE "data/maps/headers/SSAnne2F.asm"
INCLUDE "scripts/SSAnne2F.asm"
-INCLUDE "data/mapObjects/SSAnne2F.asm"
+INCLUDE "data/maps/objects/SSAnne2F.asm"
SSAnne2F_Blocks: INCBIN "maps/SSAnne2F.blk"
-INCLUDE "data/mapHeaders/SSAnneB1F.asm"
+INCLUDE "data/maps/headers/SSAnneB1F.asm"
INCLUDE "scripts/SSAnneB1F.asm"
-INCLUDE "data/mapObjects/SSAnneB1F.asm"
+INCLUDE "data/maps/objects/SSAnneB1F.asm"
SSAnneB1F_Blocks: INCBIN "maps/SSAnneB1F.blk"
-INCLUDE "data/mapHeaders/SSAnneBow.asm"
+INCLUDE "data/maps/headers/SSAnneBow.asm"
INCLUDE "scripts/SSAnneBow.asm"
-INCLUDE "data/mapObjects/SSAnneBow.asm"
+INCLUDE "data/maps/objects/SSAnneBow.asm"
SSAnneBow_Blocks: INCBIN "maps/SSAnneBow.blk"
-INCLUDE "data/mapHeaders/SSAnneKitchen.asm"
+INCLUDE "data/maps/headers/SSAnneKitchen.asm"
INCLUDE "scripts/SSAnneKitchen.asm"
-INCLUDE "data/mapObjects/SSAnneKitchen.asm"
+INCLUDE "data/maps/objects/SSAnneKitchen.asm"
SSAnneKitchen_Blocks: INCBIN "maps/SSAnneKitchen.blk"
-INCLUDE "data/mapHeaders/SSAnneCaptainsRoom.asm"
+INCLUDE "data/maps/headers/SSAnneCaptainsRoom.asm"
INCLUDE "scripts/SSAnneCaptainsRoom.asm"
-INCLUDE "data/mapObjects/SSAnneCaptainsRoom.asm"
+INCLUDE "data/maps/objects/SSAnneCaptainsRoom.asm"
SSAnneCaptainsRoom_Blocks: INCBIN "maps/SSAnneCaptainsRoom.blk"
-INCLUDE "data/mapHeaders/SSAnne1FRooms.asm"
+INCLUDE "data/maps/headers/SSAnne1FRooms.asm"
INCLUDE "scripts/SSAnne1FRooms.asm"
-INCLUDE "data/mapObjects/SSAnne1FRooms.asm"
+INCLUDE "data/maps/objects/SSAnne1FRooms.asm"
SSAnne1FRooms_Blocks: INCBIN "maps/SSAnne1FRooms.blk"
-INCLUDE "data/mapHeaders/SSAnne2FRooms.asm"
+INCLUDE "data/maps/headers/SSAnne2FRooms.asm"
INCLUDE "scripts/SSAnne2FRooms.asm"
-INCLUDE "data/mapObjects/SSAnne2FRooms.asm"
+INCLUDE "data/maps/objects/SSAnne2FRooms.asm"
-INCLUDE "data/mapHeaders/SSAnneB1FRooms.asm"
+INCLUDE "data/maps/headers/SSAnneB1FRooms.asm"
INCLUDE "scripts/SSAnneB1FRooms.asm"
-INCLUDE "data/mapObjects/SSAnneB1FRooms.asm"
+INCLUDE "data/maps/objects/SSAnneB1FRooms.asm"
-INCLUDE "data/mapHeaders/UndergroundPathNorthSouth.asm"
+INCLUDE "data/maps/headers/UndergroundPathNorthSouth.asm"
INCLUDE "scripts/UndergroundPathNorthSouth.asm"
-INCLUDE "data/mapObjects/UndergroundPathNorthSouth.asm"
+INCLUDE "data/maps/objects/UndergroundPathNorthSouth.asm"
-INCLUDE "data/mapHeaders/UndergroundPathWestEast.asm"
+INCLUDE "data/maps/headers/UndergroundPathWestEast.asm"
INCLUDE "scripts/UndergroundPathWestEast.asm"
-INCLUDE "data/mapObjects/UndergroundPathWestEast.asm"
+INCLUDE "data/maps/objects/UndergroundPathWestEast.asm"
-INCLUDE "data/mapHeaders/DiglettsCave.asm"
+INCLUDE "data/maps/headers/DiglettsCave.asm"
INCLUDE "scripts/DiglettsCave.asm"
-INCLUDE "data/mapObjects/DiglettsCave.asm"
+INCLUDE "data/maps/objects/DiglettsCave.asm"
DiglettsCave_Blocks: INCBIN "maps/DiglettsCave.blk"
-INCLUDE "data/mapHeaders/SilphCo11F.asm"
+INCLUDE "data/maps/headers/SilphCo11F.asm"
INCLUDE "scripts/SilphCo11F.asm"
-INCLUDE "data/mapObjects/SilphCo11F.asm"
+INCLUDE "data/maps/objects/SilphCo11F.asm"
SilphCo11F_Blocks: INCBIN "maps/SilphCo11F.blk"
@@ -1117,108 +1117,108 @@ SECTION "Maps 20", ROMX
INCLUDE "scripts/CeruleanCity_2.asm"
-INCLUDE "data/mapHeaders/ViridianGym.asm"
+INCLUDE "data/maps/headers/ViridianGym.asm"
INCLUDE "scripts/ViridianGym.asm"
-INCLUDE "data/mapObjects/ViridianGym.asm"
+INCLUDE "data/maps/objects/ViridianGym.asm"
ViridianGym_Blocks: INCBIN "maps/ViridianGym.blk"
-INCLUDE "data/mapHeaders/PewterMart.asm"
+INCLUDE "data/maps/headers/PewterMart.asm"
INCLUDE "scripts/PewterMart.asm"
-INCLUDE "data/mapObjects/PewterMart.asm"
+INCLUDE "data/maps/objects/PewterMart.asm"
-INCLUDE "data/mapHeaders/CeruleanCave1F.asm"
+INCLUDE "data/maps/headers/CeruleanCave1F.asm"
INCLUDE "scripts/CeruleanCave1F.asm"
-INCLUDE "data/mapObjects/CeruleanCave1F.asm"
+INCLUDE "data/maps/objects/CeruleanCave1F.asm"
CeruleanCave1F_Blocks: INCBIN "maps/CeruleanCave1F.blk"
-INCLUDE "data/mapHeaders/CeruleanBadgeHouse.asm"
+INCLUDE "data/maps/headers/CeruleanBadgeHouse.asm"
INCLUDE "scripts/CeruleanBadgeHouse.asm"
-INCLUDE "data/mapObjects/CeruleanBadgeHouse.asm"
+INCLUDE "data/maps/objects/CeruleanBadgeHouse.asm"
SECTION "Maps 21", ROMX
-INCLUDE "data/mapHeaders/FuchsiaBillsGrandpasHouse.asm"
+INCLUDE "data/maps/headers/FuchsiaBillsGrandpasHouse.asm"
INCLUDE "scripts/FuchsiaBillsGrandpasHouse.asm"
-INCLUDE "data/mapObjects/FuchsiaBillsGrandpasHouse.asm"
+INCLUDE "data/maps/objects/FuchsiaBillsGrandpasHouse.asm"
-INCLUDE "data/mapHeaders/FuchsiaPokecenter.asm"
+INCLUDE "data/maps/headers/FuchsiaPokecenter.asm"
INCLUDE "scripts/FuchsiaPokecenter.asm"
-INCLUDE "data/mapObjects/FuchsiaPokecenter.asm"
+INCLUDE "data/maps/objects/FuchsiaPokecenter.asm"
-INCLUDE "data/mapHeaders/WardensHouse.asm"
+INCLUDE "data/maps/headers/WardensHouse.asm"
INCLUDE "scripts/WardensHouse.asm"
-INCLUDE "data/mapObjects/WardensHouse.asm"
+INCLUDE "data/maps/objects/WardensHouse.asm"
WardensHouse_Blocks: INCBIN "maps/WardensHouse.blk"
-INCLUDE "data/mapHeaders/SafariZoneGate.asm"
+INCLUDE "data/maps/headers/SafariZoneGate.asm"
INCLUDE "scripts/SafariZoneGate.asm"
-INCLUDE "data/mapObjects/SafariZoneGate.asm"
+INCLUDE "data/maps/objects/SafariZoneGate.asm"
SafariZoneGate_Blocks: INCBIN "maps/SafariZoneGate.blk"
-INCLUDE "data/mapHeaders/FuchsiaGym.asm"
+INCLUDE "data/maps/headers/FuchsiaGym.asm"
INCLUDE "scripts/FuchsiaGym.asm"
-INCLUDE "data/mapObjects/FuchsiaGym.asm"
+INCLUDE "data/maps/objects/FuchsiaGym.asm"
FuchsiaGym_Blocks: INCBIN "maps/FuchsiaGym.blk"
-INCLUDE "data/mapHeaders/FuchsiaMeetingRoom.asm"
+INCLUDE "data/maps/headers/FuchsiaMeetingRoom.asm"
INCLUDE "scripts/FuchsiaMeetingRoom.asm"
-INCLUDE "data/mapObjects/FuchsiaMeetingRoom.asm"
+INCLUDE "data/maps/objects/FuchsiaMeetingRoom.asm"
FuchsiaMeetingRoom_Blocks: INCBIN "maps/FuchsiaMeetingRoom.blk"
-INCLUDE "data/mapHeaders/CinnabarGym.asm"
+INCLUDE "data/maps/headers/CinnabarGym.asm"
INCLUDE "scripts/CinnabarGym.asm"
-INCLUDE "data/mapObjects/CinnabarGym.asm"
+INCLUDE "data/maps/objects/CinnabarGym.asm"
CinnabarGym_Blocks: INCBIN "maps/CinnabarGym.blk"
-INCLUDE "data/mapHeaders/CinnabarLab.asm"
+INCLUDE "data/maps/headers/CinnabarLab.asm"
INCLUDE "scripts/CinnabarLab.asm"
-INCLUDE "data/mapObjects/CinnabarLab.asm"
+INCLUDE "data/maps/objects/CinnabarLab.asm"
CinnabarLab_Blocks: INCBIN "maps/CinnabarLab.blk"
-INCLUDE "data/mapHeaders/CinnabarLabTradeRoom.asm"
+INCLUDE "data/maps/headers/CinnabarLabTradeRoom.asm"
INCLUDE "scripts/CinnabarLabTradeRoom.asm"
-INCLUDE "data/mapObjects/CinnabarLabTradeRoom.asm"
+INCLUDE "data/maps/objects/CinnabarLabTradeRoom.asm"
CinnabarLabTradeRoom_Blocks: INCBIN "maps/CinnabarLabTradeRoom.blk"
-INCLUDE "data/mapHeaders/CinnabarLabMetronomeRoom.asm"
+INCLUDE "data/maps/headers/CinnabarLabMetronomeRoom.asm"
INCLUDE "scripts/CinnabarLabMetronomeRoom.asm"
-INCLUDE "data/mapObjects/CinnabarLabMetronomeRoom.asm"
+INCLUDE "data/maps/objects/CinnabarLabMetronomeRoom.asm"
CinnabarLabMetronomeRoom_Blocks: INCBIN "maps/CinnabarLabMetronomeRoom.blk"
-INCLUDE "data/mapHeaders/CinnabarLabFossilRoom.asm"
+INCLUDE "data/maps/headers/CinnabarLabFossilRoom.asm"
INCLUDE "scripts/CinnabarLabFossilRoom.asm"
-INCLUDE "data/mapObjects/CinnabarLabFossilRoom.asm"
+INCLUDE "data/maps/objects/CinnabarLabFossilRoom.asm"
CinnabarLabFossilRoom_Blocks: INCBIN "maps/CinnabarLabFossilRoom.blk"
-INCLUDE "data/mapHeaders/CinnabarPokecenter.asm"
+INCLUDE "data/maps/headers/CinnabarPokecenter.asm"
INCLUDE "scripts/CinnabarPokecenter.asm"
-INCLUDE "data/mapObjects/CinnabarPokecenter.asm"
+INCLUDE "data/maps/objects/CinnabarPokecenter.asm"
-INCLUDE "data/mapHeaders/CinnabarMart.asm"
+INCLUDE "data/maps/headers/CinnabarMart.asm"
INCLUDE "scripts/CinnabarMart.asm"
-INCLUDE "data/mapObjects/CinnabarMart.asm"
+INCLUDE "data/maps/objects/CinnabarMart.asm"
-INCLUDE "data/mapHeaders/CopycatsHouse1F.asm"
+INCLUDE "data/maps/headers/CopycatsHouse1F.asm"
INCLUDE "scripts/CopycatsHouse1F.asm"
-INCLUDE "data/mapObjects/CopycatsHouse1F.asm"
+INCLUDE "data/maps/objects/CopycatsHouse1F.asm"
-INCLUDE "data/mapHeaders/ChampionsRoom.asm"
+INCLUDE "data/maps/headers/ChampionsRoom.asm"
INCLUDE "scripts/ChampionsRoom.asm"
-INCLUDE "data/mapObjects/ChampionsRoom.asm"
+INCLUDE "data/maps/objects/ChampionsRoom.asm"
ChampionsRoom_Blocks: INCBIN "maps/ChampionsRoom.blk"
-INCLUDE "data/mapHeaders/LoreleisRoom.asm"
+INCLUDE "data/maps/headers/LoreleisRoom.asm"
INCLUDE "scripts/LoreleisRoom.asm"
-INCLUDE "data/mapObjects/LoreleisRoom.asm"
+INCLUDE "data/maps/objects/LoreleisRoom.asm"
LoreleisRoom_Blocks: INCBIN "maps/LoreleisRoom.blk"
-INCLUDE "data/mapHeaders/BrunosRoom.asm"
+INCLUDE "data/maps/headers/BrunosRoom.asm"
INCLUDE "scripts/BrunosRoom.asm"
-INCLUDE "data/mapObjects/BrunosRoom.asm"
+INCLUDE "data/maps/objects/BrunosRoom.asm"
BrunosRoom_Blocks: INCBIN "maps/BrunosRoom.blk"
-INCLUDE "data/mapHeaders/AgathasRoom.asm"
+INCLUDE "data/maps/headers/AgathasRoom.asm"
INCLUDE "scripts/AgathasRoom.asm"
-INCLUDE "data/mapObjects/AgathasRoom.asm"
+INCLUDE "data/maps/objects/AgathasRoom.asm"
AgathasRoom_Blocks: INCBIN "maps/AgathasRoom.blk"
diff --git a/rgbdscheck.asm b/rgbdscheck.asm
new file mode 100644
index 00000000..d10f8d50
--- /dev/null
+++ b/rgbdscheck.asm
@@ -0,0 +1,12 @@
+; pokered requires rgbds 0.4.0 or newer.
+MAJOR EQU 0
+MINOR EQU 4
+PATCH EQU 0
+
+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/scripts/BikeShop.asm b/scripts/BikeShop.asm
index 71149759..2661ca70 100755
--- a/scripts/BikeShop.asm
+++ b/scripts/BikeShop.asm
@@ -23,7 +23,7 @@ BikeShopText1:
call GiveItem
jr nc, .BagFull
ld a, BIKE_VOUCHER
- ld [$ffdb], a
+ ld [hItemToRemoveID], a
callba RemoveItemByID
SetEvent EVENT_GOT_BICYCLE
ld hl, BikeShopText_1d824
diff --git a/scripts/BillsHouse.asm b/scripts/BillsHouse.asm
index 74efc960..395694a3 100755
--- a/scripts/BillsHouse.asm
+++ b/scripts/BillsHouse.asm
@@ -23,7 +23,7 @@ BillsHouseScript1:
ld de, MovementData_1e7a0
.notDown
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call MoveSprite
ld a, $2
ld [wBillsHouseCurScript], a
@@ -66,13 +66,13 @@ BillsHouseScript3:
ld a, $2
ld [wSpriteIndex], a
ld a, $c
- ld [$ffeb], a
+ ld [hSpriteScreenYCoord], a
ld a, $40
- ld [$ffec], a
+ ld [hSpriteScreenXCoord], a
ld a, $6
- ld [$ffed], a
+ ld [hSpriteMapYCoord], a
ld a, $5
- ld [$ffee], a
+ ld [hSpriteMapXCoord], a
call SetSpritePosition1
ld a, HS_BILL_1
ld [wMissableObjectIndex], a
@@ -80,7 +80,7 @@ BillsHouseScript3:
ld c, 8
call DelayFrames
ld a, $2
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld de, MovementData_1e807
call MoveSprite
ld a, $4
diff --git a/scripts/CeladonGym.asm b/scripts/CeladonGym.asm
index 50c02196..e2665555 100755
--- a/scripts/CeladonGym.asm
+++ b/scripts/CeladonGym.asm
@@ -170,7 +170,7 @@ CeladonGymText1:
ld hl, CeladonGymText_48a63
ld de, CeladonGymText_48a63
call SaveEndBattleTextPointers
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
diff --git a/scripts/CeladonMart3F.asm b/scripts/CeladonMart3F.asm
index e7e216d9..c8d8b509 100755
--- a/scripts/CeladonMart3F.asm
+++ b/scripts/CeladonMart3F.asm
@@ -74,7 +74,7 @@ CeladonMart3Text5:
TX_FAR _CeladonMart3Text5
db "@"
-CeladonMart3Text12
+CeladonMart3Text12:
CeladonMart3Text10:
CeladonMart3Text8:
CeladonMart3Text6:
diff --git a/scripts/CeruleanCaveB1F.asm b/scripts/CeruleanCaveB1F.asm
index a570ab18..9017bec3 100755
--- a/scripts/CeruleanCaveB1F.asm
+++ b/scripts/CeruleanCaveB1F.asm
@@ -7,7 +7,7 @@ CeruleanCaveB1F_Script:
ld [wCeruleanCaveB1FCurScript], a
ret
-CeruleanCaveB1F_ScriptPointers
+CeruleanCaveB1F_ScriptPointers:
dw CheckFightingMapTrainers
dw DisplayEnemyTrainerTextAndStartBattle
dw EndTrainerBattle
diff --git a/scripts/CeruleanCity.asm b/scripts/CeruleanCity.asm
index 117ec4da..61dd03f6 100755
--- a/scripts/CeruleanCity.asm
+++ b/scripts/CeruleanCity.asm
@@ -64,7 +64,7 @@ CeruleanCityScript0:
ld a, [wWalkBikeSurfState]
and a
jr z, .asm_19512
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
.asm_19512
@@ -79,9 +79,9 @@ CeruleanCityScript0:
cp $14
jr z, .asm_19535
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, $5
- ld [H_SPRITEDATAOFFSET], a
+ ld [hSpriteDataOffset], a
call GetPointerWithinSpriteStateData2
ld [hl], $19
.asm_19535
@@ -90,7 +90,7 @@ CeruleanCityScript0:
predef ShowObject
ld de, CeruleanCityMovement1
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call MoveSprite
ld a, $1
ld [wCeruleanCityCurScript], a
@@ -114,7 +114,7 @@ CeruleanCityMovement1:
CeruleanCityScript_1955d:
ld a, 1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
xor a ; SPRITE_FACING_DOWN
ld [hSpriteFacingDirection], a
jp SetSpriteFacingDirectionAndDelay ; face object
@@ -171,12 +171,12 @@ CeruleanCityScript2:
ld a, $1
ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStart
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call SetSpriteMovementBytesToFF
ld a, [wXCoord]
cp $14
@@ -187,7 +187,7 @@ CeruleanCityScript2:
ld de, CeruleanCityMovement3
.asm_195f3
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call MoveSprite
ld a, $3
ld [wCeruleanCityCurScript], a
diff --git a/scripts/CeruleanGym.asm b/scripts/CeruleanGym.asm
index c4aaf7de..a3a8f18d 100755
--- a/scripts/CeruleanGym.asm
+++ b/scripts/CeruleanGym.asm
@@ -121,7 +121,7 @@ CeruleanGymText1:
ld hl, CeruleanGymText_5c7d8
ld de, CeruleanGymText_5c7d8
call SaveEndBattleTextPointers
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
diff --git a/scripts/ChampionsRoom.asm b/scripts/ChampionsRoom.asm
index e3cdc6d2..506dc525 100755
--- a/scripts/ChampionsRoom.asm
+++ b/scripts/ChampionsRoom.asm
@@ -101,7 +101,7 @@ GaryScript3:
ld [hSpriteIndexOrTextID], a
call GaryScript_760c8
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call SetSpriteMovementBytesToFF
ld a, $4
ld [wChampionsRoomCurScript], a
@@ -113,11 +113,11 @@ GaryScript4:
ld [hSpriteIndexOrTextID], a
call GaryScript_760c8
ld a, $2
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call SetSpriteMovementBytesToFF
ld de, OakEntranceAfterVictoryMovement
ld a, $2
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call MoveSprite
ld a, HS_CHAMPIONS_ROOM_OAK
ld [wMissableObjectIndex], a
@@ -141,12 +141,12 @@ GaryScript5:
ld a, PLAYER_DIR_LEFT
ld [wPlayerMovingDirection], a
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, SPRITE_FACING_LEFT
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $2
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
xor a ; SPRITE_FACING_DOWN
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
@@ -159,7 +159,7 @@ GaryScript5:
GaryScript6:
ld a, $2
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, SPRITE_FACING_RIGHT
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
@@ -172,7 +172,7 @@ GaryScript6:
GaryScript7:
ld a, $2
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
xor a ; SPRITE_FACING_DOWN
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
@@ -181,7 +181,7 @@ GaryScript7:
call GaryScript_760c8
ld de, OakExitGaryRoomMovement
ld a, $2
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call MoveSprite
ld a, $8
ld [wChampionsRoomCurScript], a
diff --git a/scripts/CinnabarGym.asm b/scripts/CinnabarGym.asm
index f8be5823..08bbbe8b 100755
--- a/scripts/CinnabarGym.asm
+++ b/scripts/CinnabarGym.asm
@@ -50,7 +50,7 @@ CinnabarGymScript0:
ld a, [wOpponentAfterWrongAnswer]
and a
ret z
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
cp $4
jr nz, .asm_757c3
ld a, PLAYER_DIR_DOWN
@@ -96,7 +96,7 @@ CinnabarGymScript2:
cp $ff
jp z, CinnabarGymScript_75792
ld a, [wTrainerHeaderFlagBit]
- ld [$ffdb], a
+ ld [hGymGateIndex], a
AdjustEventBit EVENT_BEAT_CINNABAR_GYM_TRAINER_0, 2
ld c, a
ld b, FLAG_TEST
@@ -111,7 +111,7 @@ CinnabarGymScript2:
call WaitForSoundToFinish
.asm_7581b
ld a, [wTrainerHeaderFlagBit]
- ld [$ffdb], a
+ ld [hGymGateIndex], a
AdjustEventBit EVENT_BEAT_CINNABAR_GYM_TRAINER_0, 2
ld c, a
ld b, FLAG_SET
diff --git a/scripts/CopycatsHouse2F.asm b/scripts/CopycatsHouse2F.asm
index b43234c3..64612535 100755
--- a/scripts/CopycatsHouse2F.asm
+++ b/scripts/CopycatsHouse2F.asm
@@ -29,7 +29,7 @@ CopycatsHouse2FText1:
ld hl, ReceivedTM31Text
call PrintText
ld a, POKE_DOLL
- ld [$ffdb], a
+ ld [hItemToRemoveID], a
callba RemoveItemByID
SetEvent EVENT_GOT_TM31
jr .asm_62ecd
diff --git a/scripts/FightingDojo.asm b/scripts/FightingDojo.asm
index fc691dba..acedbbfe 100755
--- a/scripts/FightingDojo.asm
+++ b/scripts/FightingDojo.asm
@@ -43,7 +43,7 @@ FightingDojoScript1:
ld a, PLAYER_DIR_RIGHT
ld [wPlayerMovingDirection], a
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, SPRITE_FACING_LEFT
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
@@ -62,7 +62,7 @@ FightingDojoScript3:
ld a, PLAYER_DIR_RIGHT
ld [wPlayerMovingDirection], a
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, SPRITE_FACING_LEFT
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
diff --git a/scripts/FuchsiaGym.asm b/scripts/FuchsiaGym.asm
index 15f016af..d0917106 100755
--- a/scripts/FuchsiaGym.asm
+++ b/scripts/FuchsiaGym.asm
@@ -161,7 +161,7 @@ FuchsiaGymText1:
ld hl, KogaAfterBattleText
ld de, KogaAfterBattleText
call SaveEndBattleTextPointers
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
diff --git a/scripts/GameCorner.asm b/scripts/GameCorner.asm
index 265508e0..57f18ac7 100755
--- a/scripts/GameCorner.asm
+++ b/scripts/GameCorner.asm
@@ -60,7 +60,7 @@ CeladonGameCornerScript1:
ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $b
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call SetSpriteMovementBytesToFF
ld de, MovementData_48c5a
ld a, [wYCoord]
@@ -75,7 +75,7 @@ CeladonGameCornerScript1:
ld de, MovementData_48c63
.asm_48c4d
ld a, $b
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call MoveSprite
ld a, $2
ld [wGameCornerCurScript], a
@@ -418,7 +418,7 @@ CeladonGameCornerText11:
ld hl, CeladonGameCornerText_48ed3
ld de, CeladonGameCornerText_48ed3
call SaveEndBattleTextPointers
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
diff --git a/scripts/HallOfFame.asm b/scripts/HallOfFame.asm
index af424089..14b4f15e 100755
--- a/scripts/HallOfFame.asm
+++ b/scripts/HallOfFame.asm
@@ -79,7 +79,7 @@ HallofFameRoomScript1:
ld a, PLAYER_DIR_RIGHT
ld [wPlayerMovingDirection], a
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call SetSpriteMovementBytesToFF
ld a, SPRITE_FACING_LEFT
ld [hSpriteFacingDirection], a
diff --git a/scripts/MtMoonB2F.asm b/scripts/MtMoonB2F.asm
index 863d9d22..3a9ec99f 100755
--- a/scripts/MtMoonB2F.asm
+++ b/scripts/MtMoonB2F.asm
@@ -88,7 +88,7 @@ MtMoon3Script3:
MtMoon3Script4:
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call SetSpriteMovementBytesToFF
ld hl, CoordsData_49dea
call ArePlayerCoordsInArray
@@ -102,7 +102,7 @@ MtMoon3Script4:
ld de, MovementData_49df8
.asm_49dda
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call MoveSprite
ld a, $5
ld [wMtMoonB2FCurScript], a
@@ -222,7 +222,7 @@ MtMoon3Text1:
ld hl, MtMoon3Text_49f8a
ld de, MtMoon3Text_49f8a
call SaveEndBattleTextPointers
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
diff --git a/scripts/OaksLab.asm b/scripts/OaksLab.asm
index 11abdf65..b3347849 100755
--- a/scripts/OaksLab.asm
+++ b/scripts/OaksLab.asm
@@ -48,7 +48,7 @@ OaksLabScript0:
OaksLabScript1:
ld a, $8
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld de, OakEntryMovement
call MoveSprite
@@ -86,12 +86,12 @@ OaksLabScript3:
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
xor a
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $5
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
xor a
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
@@ -111,7 +111,7 @@ OaksLabScript4:
SetEvent EVENT_FOLLOWED_OAK_INTO_LAB
SetEvent EVENT_FOLLOWED_OAK_INTO_LAB_2
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, SPRITE_FACING_UP
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
@@ -155,12 +155,12 @@ OaksLabScript6:
cp $6
ret nz
ld a, $5
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
xor a ; SPRITE_FACING_DOWN
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
xor a
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
@@ -254,9 +254,9 @@ OaksLabScript8:
jr nz, .moveBlue
push hl
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, $4
- ld [H_SPRITEDATAOFFSET], a
+ ld [hSpriteDataOffset], a
call GetPointerWithinSpriteStateData1
push hl
ld [hl], $4c
@@ -281,7 +281,7 @@ OaksLabScript8:
.moveBlue
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call MoveSprite
ld a, $9
@@ -295,7 +295,7 @@ OaksLabScript9:
ld a, $fc
ld [wJoyIgnore], a
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, SPRITE_FACING_UP
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
@@ -324,7 +324,7 @@ OaksLabScript9:
ld [wd11e], a
call GetMonName
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, SPRITE_FACING_UP
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
@@ -344,7 +344,7 @@ OaksLabScript10:
cp $6
ret nz
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
xor a ; SPRITE_FACING_DOWN
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
@@ -368,7 +368,7 @@ OaksLabScript10:
predef FindPathToPlayer
ld de, wNPCMovementDirections2
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call MoveSprite
ld a, $b
@@ -424,7 +424,7 @@ OaksLabScript12:
ld [wSpriteIndex], a
call SetSpritePosition1
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
xor a ; SPRITE_FACING_DOWN
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
@@ -443,7 +443,7 @@ OaksLabScript13:
call DisplayTextID
callba Music_RivalAlternateStart
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld de, .RivalExitMovement
call MoveSprite
ld a, [wXCoord]
@@ -510,7 +510,7 @@ OaksLabScript15:
xor a
ld [hJoyHeld], a
call EnableAutoTextBoxDrawing
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStart
@@ -530,7 +530,7 @@ OaksLabScript15:
call FillMemory
ld [hl], $ff
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld de, wNPCMovementDirections2
call MoveSprite
@@ -540,12 +540,12 @@ OaksLabScript15:
OaksLabScript_1cefd:
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, SPRITE_FACING_UP
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $8
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
xor a ; SPRITE_FACING_DOWN
ld [hSpriteFacingDirection], a
jp SetSpriteFacingDirectionAndDelay
@@ -588,7 +588,7 @@ OaksLabScript16:
ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, SPRITE_FACING_RIGHT
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
@@ -611,12 +611,12 @@ OaksLabScript16:
xor a ; NPC_MOVEMENT_DOWN
call FillMemory
ld [hl], $ff
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStart
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld de, wNPCMovementDirections2
call MoveSprite
@@ -652,7 +652,7 @@ OaksLabScript18:
OaksLabScript_RemoveParcel:
ld hl, wBagItems
- ld bc, $0000
+ ld bc, 0
.loop
ld a, [hli]
cp $ff
@@ -672,9 +672,9 @@ OaksLabScript_RemoveParcel:
OaksLabScript_1d02b:
ld a, $7c
- ld [$ffeb], a
+ ld [hSpriteScreenYCoord], a
ld a, $8
- ld [$ffee], a
+ ld [hSpriteMapXCoord], a
ld a, [wYCoord]
cp $3
jr nz, .asm_1d045
@@ -703,9 +703,9 @@ OaksLabScript_1d02b:
.asm_1d066
ld a, $20
.asm_1d068
- ld [$ffec], a
+ ld [hSpriteScreenXCoord], a
ld a, b
- ld [$ffed], a
+ ld [hSpriteMapYCoord], a
ld a, $1
ld [wSpriteIndex], a
call SetSpritePosition1
@@ -840,15 +840,15 @@ OaksLabText39:
OaksLabScript_1d157:
ld a, $5
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, $9
- ld [H_SPRITEDATAOFFSET], a
+ ld [hSpriteDataOffset], a
call GetPointerWithinSpriteStateData1
ld [hl], SPRITE_FACING_DOWN
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, $9
- ld [H_SPRITEDATAOFFSET], a
+ ld [hSpriteDataOffset], a
call GetPointerWithinSpriteStateData1
ld [hl], SPRITE_FACING_RIGHT
ld hl, wd730
@@ -947,9 +947,9 @@ OaksLabReceivedMonText:
OaksLabScript_1d22d:
ld a, $5
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, $9
- ld [H_SPRITEDATAOFFSET], a
+ ld [hSpriteDataOffset], a
call GetPointerWithinSpriteStateData1
ld [hl], $0
ld hl, OaksLabLastMonText
diff --git a/scripts/PalletTown.asm b/scripts/PalletTown.asm
index 5ad7d40f..ff500ca0 100755
--- a/scripts/PalletTown.asm
+++ b/scripts/PalletTown.asm
@@ -27,8 +27,8 @@ PalletTownScript0:
ld [hJoyHeld], a
ld a, PLAYER_DIR_DOWN
ld [wPlayerMovingDirection], a
- ld a, $FF
- call PlaySound ; stop music
+ ld a, SFX_STOP_ALL_MUSIC
+ call PlaySound
ld a, BANK(Music_MeetProfOak)
ld c, a
ld a, MUSIC_MEET_PROF_OAK ; “oak appears” music
@@ -61,7 +61,7 @@ PalletTownScript1:
PalletTownScript2:
ld a, 1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, SPRITE_FACING_UP
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
@@ -79,7 +79,7 @@ PalletTownScript2:
predef FindPathToPlayer ; load Oak’s movement into wNPCMovementDirections2
ld de, wNPCMovementDirections2
ld a, 1 ; oak
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call MoveSprite
ld a, $FF
ld [wJoyIgnore], a
@@ -111,7 +111,7 @@ PalletTownScript3:
ld [wNPCMovementScriptFunctionNum], a
ld a, 1
ld [wNPCMovementScriptPointerTableNum], a
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
ld [wNPCMovementScriptBank], a
; trigger the next script
diff --git a/scripts/PewterCity.asm b/scripts/PewterCity.asm
index 18296675..86037c13 100755
--- a/scripts/PewterCity.asm
+++ b/scripts/PewterCity.asm
@@ -44,7 +44,7 @@ PewterCityScript1:
and a
ret nz
ld a, $3
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, SPRITE_FACING_UP
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
@@ -58,18 +58,18 @@ PewterCityScript1:
ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $3c
- ld [$ffeb], a
+ ld [hSpriteScreenYCoord], a
ld a, $30
- ld [$ffec], a
+ ld [hSpriteScreenXCoord], a
ld a, $c
- ld [$ffed], a
+ ld [hSpriteMapYCoord], a
ld a, $11
- ld [$ffee], a
+ ld [hSpriteMapXCoord], a
ld a, $3
ld [wSpriteIndex], a
call SetSpritePosition1
ld a, $3
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld de, MovementData_PewterMuseumGuyExit
call MoveSprite
ld a, $2
@@ -112,7 +112,7 @@ PewterCityScript4:
and a
ret nz
ld a, $5
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, SPRITE_FACING_LEFT
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
@@ -126,18 +126,18 @@ PewterCityScript4:
ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $3c
- ld [$ffeb], a
+ ld [hSpriteScreenYCoord], a
ld a, $40
- ld [$ffec], a
+ ld [hSpriteScreenXCoord], a
ld a, $16
- ld [$ffed], a
+ ld [hSpriteMapYCoord], a
ld a, $10
- ld [$ffee], a
+ ld [hSpriteMapXCoord], a
ld a, $5
ld [wSpriteIndex], a
call SetSpritePosition1
ld a, $5
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld de, MovementData_PewterGymGuyExit
call MoveSprite
ld a, $5
@@ -220,7 +220,7 @@ PewterCityText3:
ld [wNPCMovementScriptFunctionNum], a
ld a, $2
ld [wNPCMovementScriptPointerTableNum], a
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
ld [wNPCMovementScriptBank], a
ld a, $3
ld [wSpriteIndex], a
@@ -284,7 +284,7 @@ PewterCityText5:
ld [wNPCMovementScriptFunctionNum], a
ld a, $3
ld [wNPCMovementScriptPointerTableNum], a
- ld a, [H_LOADEDROMBANK]
+ ld a, [hLoadedROMBank]
ld [wNPCMovementScriptBank], a
ld a, $5
ld [wSpriteIndex], a
diff --git a/scripts/PewterGym.asm b/scripts/PewterGym.asm
index cf02b141..643fe41c 100755
--- a/scripts/PewterGym.asm
+++ b/scripts/PewterGym.asm
@@ -120,7 +120,7 @@ PewterGymText1:
ld hl, PewterGymText_5c4bc
ld de, PewterGymText_5c4bc
call SaveEndBattleTextPointers
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
diff --git a/scripts/PewterPokecenter.asm b/scripts/PewterPokecenter.asm
index 22d2fb6b..be933fee 100755
--- a/scripts/PewterPokecenter.asm
+++ b/scripts/PewterPokecenter.asm
@@ -21,7 +21,8 @@ PewterJigglypuffText:
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
ld hl, .Text
call PrintText
- StopAllMusic
+ ld a, SFX_STOP_ALL_MUSIC
+ call PlaySound
ld c, 32
call DelayFrames
ld hl, JigglypuffFacingDirections
diff --git a/scripts/PokemonTower2F.asm b/scripts/PokemonTower2F.asm
index 81f4c0b3..cc00d938 100755
--- a/scripts/PokemonTower2F.asm
+++ b/scripts/PokemonTower2F.asm
@@ -22,7 +22,7 @@ PokemonTower2Script0:
ld hl, CoordsData_6055e
call ArePlayerCoordsInArray
ret nc
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
ld c, BANK(Music_MeetRival)
@@ -41,7 +41,7 @@ PokemonTower2Script0:
.asm_60544
ld [wPlayerMovingDirection], a
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, b
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
@@ -74,9 +74,9 @@ PokemonTower2Script1:
ld de, MovementData_605a9
.asm_60589
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call MoveSprite
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStart
diff --git a/scripts/PokemonTower7F.asm b/scripts/PokemonTower7F.asm
index 4b2a1827..fa2ca9bc 100755
--- a/scripts/PokemonTower7F.asm
+++ b/scripts/PokemonTower7F.asm
@@ -107,7 +107,7 @@ PokemonTower7Script_60db6:
ld d, [hl]
ld e, a
ld a, [wSpriteIndex]
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
jp MoveSprite
.asm_60dde
inc hl
diff --git a/scripts/PowerPlant.asm b/scripts/PowerPlant.asm
index 35b4893f..f720b6f8 100755
--- a/scripts/PowerPlant.asm
+++ b/scripts/PowerPlant.asm
@@ -7,7 +7,7 @@ PowerPlant_Script:
ld [wPowerPlantCurScript], a
ret
-PowerPlant_ScriptPointers
+PowerPlant_ScriptPointers:
dw CheckFightingMapTrainers
dw DisplayEnemyTrainerTextAndStartBattle
dw EndTrainerBattle
diff --git a/scripts/RocketHideoutB4F.asm b/scripts/RocketHideoutB4F.asm
index b2ce21f4..71fe7d1c 100755
--- a/scripts/RocketHideoutB4F.asm
+++ b/scripts/RocketHideoutB4F.asm
@@ -125,7 +125,7 @@ RocketHideout4Text1:
ld hl, RocketHideout4Text_4557f
ld de, RocketHideout4Text_4557f
call SaveEndBattleTextPointers
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
diff --git a/scripts/Route22.asm b/scripts/Route22.asm
index 7226e509..8fde2d42 100755
--- a/scripts/Route22.asm
+++ b/scripts/Route22.asm
@@ -88,7 +88,7 @@ Route22Script0:
ld a, [wWalkBikeSurfState]
and a
jr z, .asm_50f4e
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
.asm_50f4e
@@ -96,7 +96,7 @@ Route22Script0:
ld a, MUSIC_MEET_RIVAL
call PlayMusic
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call Route22MoveRivalSprite
ld a, $1
ld [wRoute22CurScript], a
@@ -118,7 +118,7 @@ Route22Script1:
.asm_50f7a
ld [hSpriteFacingDirection], a
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call SetSpriteFacingDirectionAndDelay
xor a
ld [wJoyIgnore], a
@@ -159,7 +159,7 @@ Route22Script2:
.done
ld [hSpriteFacingDirection], a
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call SetSpriteFacingDirectionAndDelay
ld a, $f0
ld [wJoyIgnore], a
@@ -167,7 +167,7 @@ Route22Script2:
ld a, $1
ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStart
@@ -191,7 +191,7 @@ Route22Script_5100d:
ld de, Route22RivalExitMovementData2
Route22MoveRival1:
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
jp MoveSprite
Route22RivalExitMovementData1:
@@ -241,16 +241,16 @@ Route22Script_5104e:
ld a, [wWalkBikeSurfState]
and a
jr z, .skipYVisibilityTesta
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
.skipYVisibilityTesta
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateTempo
ld a, $2
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call Route22MoveRivalSprite
ld a, $4
ld [wRoute22CurScript], a
@@ -261,7 +261,7 @@ Route22Script4:
bit 0, a
ret nz
ld a, $2
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, [wcf0d]
cp $1
jr nz, .asm_510a1
@@ -305,7 +305,7 @@ Route22Script5:
cp $ff
jp z, Route22Script_50ece
ld a, $2
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, [wcf0d]
cp $1
jr nz, .asm_510fb
@@ -326,7 +326,7 @@ Route22Script5:
ld a, $2
ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStartAndTempo
@@ -350,7 +350,7 @@ Route22Script_51142:
ld de, MovementData_5114d
Route22MoveRival2:
ld a, $2
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
jp MoveSprite
MovementData_5114c:
diff --git a/scripts/Route5Gate.asm b/scripts/Route5Gate.asm
index bc763dfd..e5d86b97 100755
--- a/scripts/Route5Gate.asm
+++ b/scripts/Route5Gate.asm
@@ -27,7 +27,7 @@ Route5GateScript0:
xor a
ld [hJoyHeld], a
callba RemoveGuardDrink
- ld a, [$ffdb]
+ ld a, [hItemToRemoveID]
and a
jr nz, .asm_1df82
ld a, $2
@@ -74,7 +74,7 @@ Route5GateText1:
bit 6, a
jr nz, .asm_88856
callba RemoveGuardDrink
- ld a, [$ffdb]
+ ld a, [hItemToRemoveID]
and a
jr nz, .asm_768a2
ld hl, Route5GateText2
diff --git a/scripts/Route6Gate.asm b/scripts/Route6Gate.asm
index 348f61ac..6b00eddb 100755
--- a/scripts/Route6Gate.asm
+++ b/scripts/Route6Gate.asm
@@ -21,7 +21,7 @@ Route6GateScript0:
xor a
ld [hJoyHeld], a
callba RemoveGuardDrink
- ld a, [$ffdb]
+ ld a, [hItemToRemoveID]
and a
jr nz, .asm_1e080
ld a, $2
diff --git a/scripts/Route7Gate.asm b/scripts/Route7Gate.asm
index 724172c5..06c5c91b 100755
--- a/scripts/Route7Gate.asm
+++ b/scripts/Route7Gate.asm
@@ -33,7 +33,7 @@ Route7GateScript0:
xor a
ld [hJoyHeld], a
callba RemoveGuardDrink
- ld a, [$ffdb]
+ ld a, [hItemToRemoveID]
and a
jr nz, .asm_1e15a
ld a, $2
diff --git a/scripts/Route8Gate.asm b/scripts/Route8Gate.asm
index 8ecea68e..80b8b9a4 100755
--- a/scripts/Route8Gate.asm
+++ b/scripts/Route8Gate.asm
@@ -32,7 +32,7 @@ Route8GateScript0:
xor a
ld [hJoyHeld], a
callba RemoveGuardDrink
- ld a, [$ffdb]
+ ld a, [hItemToRemoveID]
and a
jr nz, .asm_1e220
ld a, $2
diff --git a/scripts/SSAnne2F.asm b/scripts/SSAnne2F.asm
index ba900748..face08d8 100755
--- a/scripts/SSAnne2F.asm
+++ b/scripts/SSAnne2F.asm
@@ -24,26 +24,26 @@ SSAnne2Script0:
ld hl, CoordsData_61411
call ArePlayerCoordsInArray
ret nc
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
ld c, BANK(Music_MeetRival)
ld a, MUSIC_MEET_RIVAL
call PlayMusic
ld a, [wCoordIndex]
- ld [$ffdb], a
+ ld [hSavedCoordIndex], a
ld a, HS_SS_ANNE_2F_RIVAL
ld [wMissableObjectIndex], a
predef ShowObject
call Delay3
ld a, $2
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call SetSpriteMovementBytesToFF
xor a
ld [hJoyHeld], a
ld a, $f0
ld [wJoyIgnore], a
- ld a, [$ffdb]
+ ld a, [hSavedCoordIndex]
cp $2
jr nz, .asm_61400
ld de, MovementData_6140c
@@ -83,7 +83,7 @@ SSAnne2Script_61416:
.asm_61427
ld [hSpriteFacingDirection], a
ld a, $2
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
jp SetSpriteFacingDirectionAndDelay
SSAnne2Script1:
@@ -132,7 +132,7 @@ SSAnne2Script2:
ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $2
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call SetSpriteMovementBytesToFF
ld a, [wXCoord]
cp $25
@@ -143,9 +143,9 @@ SSAnne2Script2:
ld de, MovementData_614b7
.asm_6149a
ld a, $2
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call MoveSprite
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStart
diff --git a/scripts/SSAnneCaptainsRoom.asm b/scripts/SSAnneCaptainsRoom.asm
index de0272e4..6078ccf0 100755
--- a/scripts/SSAnneCaptainsRoom.asm
+++ b/scripts/SSAnneCaptainsRoom.asm
@@ -48,10 +48,10 @@ SSAnne7RubText:
cp BANK(Audio3_UpdateMusic)
ld [wAudioSavedROMBank], a
jr nz, .asm_61908
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
- ld a, Bank(Music_PkmnHealed)
+ ld a, BANK(Music_PkmnHealed)
ld [wAudioROMBank], a
.asm_61908
ld a, MUSIC_PKMN_HEALED
diff --git a/scripts/SaffronGym.asm b/scripts/SaffronGym.asm
index 0539d613..8842472c 100755
--- a/scripts/SaffronGym.asm
+++ b/scripts/SaffronGym.asm
@@ -171,7 +171,7 @@ SaffronGymText1:
ld hl, SaffronGymText_5d167
ld de, SaffronGymText_5d167
call SaveEndBattleTextPointers
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
diff --git a/scripts/SilphCo10F.asm b/scripts/SilphCo10F.asm
index 40506682..92d95de1 100755
--- a/scripts/SilphCo10F.asm
+++ b/scripts/SilphCo10F.asm
@@ -28,7 +28,7 @@ SilphCo10GateCoords:
db $FF
SilphCo10Text_5a176:
- ld a, [$ffe0]
+ ld a, [hUnlockedSilphCoDoors]
and a
ret z
SetEvent EVENT_SILPH_CO_10_UNLOCKED_DOOR
diff --git a/scripts/SilphCo11F.asm b/scripts/SilphCo11F.asm
index 483082a1..116b528f 100755
--- a/scripts/SilphCo11F.asm
+++ b/scripts/SilphCo11F.asm
@@ -35,14 +35,14 @@ SilphCo11Script_62137:
ld a, [hl]
ld c, a
xor a
- ld [$ffe0], a
+ ld [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
@@ -60,11 +60,11 @@ SilphCo11Script_62137:
ret
.asm_6215f
xor a
- ld [$ffe0], a
+ ld [hUnlockedSilphCoDoors], a
ret
SilphCo11Script_62163:
- ld a, [$ffe0]
+ ld a, [hUnlockedSilphCoDoors]
and a
ret z
SetEvent EVENT_SILPH_CO_11_UNLOCKED_DOOR
@@ -178,7 +178,7 @@ SilphCo11Script0:
ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $3
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call SetSpriteMovementBytesToFF
ld de, MovementData_62216
call MoveSprite
@@ -199,7 +199,7 @@ MovementData_62216:
SilphCo11Script_6221a:
ld [wPlayerMovingDirection], a
ld a, $3
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, b
ld [hSpriteFacingDirection], a
jp SetSpriteFacingDirectionAndDelay
@@ -239,7 +239,7 @@ SilphCo11Script3:
bit 0, a
ret nz
ld a, $3
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call SetSpriteMovementBytesToFF
ld a, [wcf0d]
cp $1
@@ -263,7 +263,7 @@ SilphCo11Script4:
ld hl, SilphCo10Text_62330
ld de, SilphCo10Text_62330
call SaveEndBattleTextPointers
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
diff --git a/scripts/SilphCo2F.asm b/scripts/SilphCo2F.asm
index 5fd542cb..0ff7cee3 100755
--- a/scripts/SilphCo2F.asm
+++ b/scripts/SilphCo2F.asm
@@ -45,14 +45,14 @@ SilphCo2Script_59d43:
ld a, [hl]
ld c, a
xor a
- ld [$ffe0], a
+ ld [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
+ ld [hUnlockedSilphCoDoors], a
ret
SilphCo2Script_59d6f:
EventFlagAddress hl, EVENT_SILPH_CO_2_UNLOCKED_DOOR1
- ld a, [$ffe0]
+ ld a, [hUnlockedSilphCoDoors]
and a
ret z
cp $1
diff --git a/scripts/SilphCo3F.asm b/scripts/SilphCo3F.asm
index 42b5d611..3b6b1da8 100755
--- a/scripts/SilphCo3F.asm
+++ b/scripts/SilphCo3F.asm
@@ -39,7 +39,7 @@ SilphCo3GateCoords:
SilphCo3Script_59fad:
EventFlagAddress hl, EVENT_SILPH_CO_3_UNLOCKED_DOOR1
- ld a, [$ffe0]
+ ld a, [hUnlockedSilphCoDoors]
and a
ret z
cp $1
diff --git a/scripts/SilphCo4F.asm b/scripts/SilphCo4F.asm
index 7d5072f6..61288277 100755
--- a/scripts/SilphCo4F.asm
+++ b/scripts/SilphCo4F.asm
@@ -45,14 +45,14 @@ SilphCo4Script_19d5d:
ld a, [hl]
ld c, a
xor a
- ld [$ffe0], a
+ ld [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
+ ld [hUnlockedSilphCoDoors], a
ret
SilphCo4Script_19d89:
EventFlagAddress hl, EVENT_SILPH_CO_4_UNLOCKED_DOOR1
- ld a, [$ffe0]
+ ld a, [hUnlockedSilphCoDoors]
and a
ret z
cp $1
diff --git a/scripts/SilphCo5F.asm b/scripts/SilphCo5F.asm
index d9deda5b..39d7235b 100755
--- a/scripts/SilphCo5F.asm
+++ b/scripts/SilphCo5F.asm
@@ -49,7 +49,7 @@ SilphCo5GateCoords:
SilphCo5Script_19f9e:
EventFlagAddress hl, EVENT_SILPH_CO_5_UNLOCKED_DOOR1
- ld a, [$ffe0]
+ ld a, [hUnlockedSilphCoDoors]
and a
ret z
cp $1
diff --git a/scripts/SilphCo6F.asm b/scripts/SilphCo6F.asm
index ddbcba79..9e6ffaf1 100755
--- a/scripts/SilphCo6F.asm
+++ b/scripts/SilphCo6F.asm
@@ -28,7 +28,7 @@ SilphCo6GateCoords:
db $FF
SilphCo6Script_1a1e6:
- ld a, [$ffe0]
+ ld a, [hUnlockedSilphCoDoors]
and a
ret z
SetEvent EVENT_SILPH_CO_6_UNLOCKED_DOOR
diff --git a/scripts/SilphCo7F.asm b/scripts/SilphCo7F.asm
index e7594663..4966bba6 100755
--- a/scripts/SilphCo7F.asm
+++ b/scripts/SilphCo7F.asm
@@ -55,14 +55,14 @@ SilphCo7Text_51bc8:
ld a, [hl]
ld c, a
xor a
- ld [$ffe0], a
+ ld [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
+ ld [hUnlockedSilphCoDoors], a
ret
SilphCo7Text_51bf4:
EventFlagAddress hl, EVENT_SILPH_CO_7_UNLOCKED_DOOR1
- ld a, [$ffe0]
+ ld a, [hUnlockedSilphCoDoors]
and a
ret z
cp $1
@@ -130,7 +130,7 @@ SilphCo7Script0:
ld [wJoyIgnore], a
ld a, PLAYER_DIR_DOWN
ld [wPlayerMovingDirection], a
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
ld c, BANK(Music_MeetRival)
@@ -140,7 +140,7 @@ SilphCo7Script0:
ld [hSpriteIndexOrTextID], a
call DisplayTextID
ld a, $9
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call SetSpriteMovementBytesToFF
ld de, MovementData_51c7d
ld a, [wCoordIndex]
@@ -150,7 +150,7 @@ SilphCo7Script0:
inc de
.asm_51c6c
ld a, $9
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call MoveSprite
ld a, $3
jp SilphCo7Text_51c10
@@ -212,14 +212,14 @@ SilphCo7Script4:
ld a, PLAYER_DIR_DOWN
ld [wPlayerMovingDirection], a
ld a, $9
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
ld a, SPRITE_FACING_UP
ld [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
ld a, $f
ld [hSpriteIndexOrTextID], a
call DisplayTextID
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wNewSoundID], a
call PlaySound
callba Music_RivalAlternateStart
@@ -230,7 +230,7 @@ SilphCo7Script4:
ld de, MovementData_51d1a
.asm_51d0e
ld a, $9
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call MoveSprite
ld a, $5
jp SilphCo7Text_51c10
diff --git a/scripts/SilphCo8F.asm b/scripts/SilphCo8F.asm
index ce6579f7..b1c32a34 100755
--- a/scripts/SilphCo8F.asm
+++ b/scripts/SilphCo8F.asm
@@ -35,14 +35,14 @@ SilphCo8Script_56541:
ld a, [hl]
ld c, a
xor a
- ld [$ffe0], a
+ ld [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
+ ld [hUnlockedSilphCoDoors], a
ret
SilphCo8Script_5656d:
- ld a, [$ffe0]
+ ld a, [hUnlockedSilphCoDoors]
and a
ret z
SetEvent EVENT_SILPH_CO_8_UNLOCKED_DOOR
diff --git a/scripts/SilphCo9F.asm b/scripts/SilphCo9F.asm
index 66291e98..d9fdc625 100755
--- a/scripts/SilphCo9F.asm
+++ b/scripts/SilphCo9F.asm
@@ -65,14 +65,14 @@ SilphCo9Script_5d837:
ld a, [hl]
ld c, a
xor a
- ld [$ffe0], a
+ ld [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
+ ld [hUnlockedSilphCoDoors], a
ret
SilphCo9Script_5d863:
EventFlagAddress hl, EVENT_SILPH_CO_9_UNLOCKED_DOOR1
- ld a, [$ffe0]
+ ld a, [hUnlockedSilphCoDoors]
and a
ret z
cp $1
diff --git a/scripts/TradeCenter.asm b/scripts/TradeCenter.asm
index ddb3061e..3201c8cd 100755
--- a/scripts/TradeCenter.asm
+++ b/scripts/TradeCenter.asm
@@ -8,7 +8,7 @@ TradeCenter_Script:
.next
ld [hSpriteFacingDirection], a
ld a, $1
- ld [H_SPRITEINDEX], a
+ ld [hSpriteIndex], a
call SetSpriteFacingDirection
ld hl, wd72d
bit 0, [hl]
diff --git a/scripts/VermilionDock.asm b/scripts/VermilionDock.asm
index 65b66c52..90fef6b2 100755
--- a/scripts/VermilionDock.asm
+++ b/scripts/VermilionDock.asm
@@ -38,7 +38,7 @@ VermilionDock_Script:
VermilionDock_1db9b:
SetEventForceReuseHL EVENT_SS_ANNE_LEFT
- ld a, $ff
+ ld a, SFX_STOP_ALL_MUSIC
ld [wJoyIgnore], a
ld [wNewSoundID], a
call PlaySound
@@ -57,10 +57,10 @@ VermilionDock_1db9b:
ld a, $14 ; water tile
call FillMemory
ld a, 1
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
call Delay3
xor a
- ld [H_AUTOBGTRANSFERENABLED], a
+ ld [hAutoBGTransferEnabled], a
ld [wSSAnneSmokeDriftAmount], a
ld [rOBP1], a
ld a, 88
@@ -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
diff --git a/scripts/VermilionGym.asm b/scripts/VermilionGym.asm
index 0af37945..1569fb55 100755
--- a/scripts/VermilionGym.asm
+++ b/scripts/VermilionGym.asm
@@ -150,7 +150,7 @@ LTSurgeText:
ld hl, ReceivedThunderbadgeText
ld de, ReceivedThunderbadgeText
call SaveEndBattleTextPointers
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
diff --git a/scripts/ViridianCity.asm b/scripts/ViridianCity.asm
index 643431a4..c3eb9a79 100755
--- a/scripts/ViridianCity.asm
+++ b/scripts/ViridianCity.asm
@@ -59,14 +59,14 @@ ViridianCityScript_1903d:
ret
ViridianCityScript1:
- ld a, [wSpriteStateData1 + $34]
- ld [$ffeb], a
- ld a, [wSpriteStateData1 + $36]
- ld [$ffec], a
- ld a, [wSpriteStateData2 + $34]
- ld [$ffed], a
- ld a, [wSpriteStateData2 + $35]
- ld [$ffee], a
+ ld a, [wSprite03StateData1YPixels]
+ ld [hSpriteScreenYCoord], a
+ ld a, [wSprite03StateData1XPixels]
+ ld [hSpriteScreenXCoord], a
+ ld a, [wSprite03StateData2MapY]
+ ld [hSpriteMapYCoord], a
+ ld a, [wSprite03StateData2MapX]
+ ld [hSpriteMapXCoord], a
xor a
ld [wListScrollOffset], a
@@ -82,14 +82,14 @@ ViridianCityScript1:
ret
ViridianCityScript2:
- ld a, [$ffeb]
- ld [wSpriteStateData1 + $34], a
- ld a, [$ffec]
- ld [wSpriteStateData1 + $36], a
- ld a, [$ffed]
- ld [wSpriteStateData2 + $34], a
- ld a, [$ffee]
- ld [wSpriteStateData2 + $35], a
+ ld a, [hSpriteScreenYCoord]
+ ld [wSprite03StateData1YPixels], a
+ ld a, [hSpriteScreenXCoord]
+ ld [wSprite03StateData1XPixels], a
+ ld a, [hSpriteMapYCoord]
+ ld [wSprite03StateData2MapY], a
+ ld a, [hSpriteMapXCoord]
+ ld [wSprite03StateData2MapX], a
call UpdateSprites
call Delay3
xor a
diff --git a/scripts/ViridianGym.asm b/scripts/ViridianGym.asm
index b0f94b9d..40e6a57f 100755
--- a/scripts/ViridianGym.asm
+++ b/scripts/ViridianGym.asm
@@ -289,7 +289,7 @@ ViridianGymText1:
ld hl, ViridianGymText_74ad3
ld de, ViridianGymText_74ad3
call SaveEndBattleTextPointers
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
ld [wSpriteIndex], a
call EngageMapTrainer
call InitBattleEnemyParameters
diff --git a/scripts/WardensHouse.asm b/scripts/WardensHouse.asm
index 69e199c9..015d137f 100755
--- a/scripts/WardensHouse.asm
+++ b/scripts/WardensHouse.asm
@@ -32,7 +32,7 @@ FuchsiaHouse2Text1:
ld hl, WardenTeethText1
call PrintText
ld a, GOLD_TEETH
- ld [$ffdb], a
+ ld [hItemToRemoveID], a
callba RemoveItemByID
SetEvent EVENT_GAVE_GOLD_TEETH
.asm_60cba
@@ -95,7 +95,7 @@ HM04NoRoomText:
FuchsiaHouse2Text5:
FuchsiaHouse2Text4:
TX_ASM
- ld a, [H_SPRITEINDEX]
+ ld a, [hSpriteIndex]
cp $4
ld hl, FuchsiaHouse2Text_7517b
jr nz, .asm_4c9a2
diff --git a/text.asm b/text.asm
index a426de39..d15f258a 100644
--- a/text.asm
+++ b/text.asm
@@ -1,3189 +1,280 @@
-INCLUDE "macros.asm"
-INCLUDE "charmap.asm"
-
-INCLUDE "hram.asm"
-
-INCLUDE "constants/text_constants.asm"
+INCLUDE "constants.asm"
SECTION "Text 1", ROMX
-_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 "<PLAYER> 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, <PLAYER>! 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 "<PLAYER> 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
-
-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 "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"
SECTION "Text 2", ROMX
-INCLUDE "text/maps/SilphCo5F_2.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"
-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/SilphCo5F_2.asm"
+INCLUDE "text/SilphCo6F.asm"
+INCLUDE "text/SilphCo7F.asm"
+INCLUDE "text/SilphCo8F.asm"
+INCLUDE "text/SilphCo9F.asm"
+INCLUDE "text/SilphCo10F.asm"
+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"
SECTION "Text 3", ROMX
-INCLUDE "text/maps/RockTunnelB1F_2.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
-
-_TradeWentToText::
- TX_RAM wcf4b
- text " went"
- line "to @"
- TX_RAM wLinkEnemyTrainerName
- text "."
- done
-
-_TradeForText::
- text "For <PLAYER>'s"
- line "@"
- TX_RAM wcf4b
- text ","
- done
-
-_TradeSendsText::
- TX_RAM wLinkEnemyTrainerName
- text " sends"
- line "@"
- TX_RAM wcd6d
- text "."
- done
-
-_TradeWavesFarewellText::
- TX_RAM wLinkEnemyTrainerName
- 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 wLinkEnemyTrainerName
- text " will"
- line "trade @"
- TX_RAM wcd6d
- text ""
- done
-
-_TradeforText::
- text "for <PLAYER>'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 "<RIVAL>"
- done
-
-_GymStatueText2::
- TX_RAM wGymCityName
- text ""
- line "#MON GYM"
- cont "LEADER: @"
- TX_RAM wGymLeaderName
- text ""
-
- para "WINNING TRAINERS:"
- line "<RIVAL>"
- cont "<PLAYER>"
- 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
-
-_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 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
-
-_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 "<PLAYER> 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 "<PLAYER> 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
-
-_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 "<PLAYER> found"
- line "@"
- TX_RAM wcd6d
- text "!@@"
-
-_HiddenItemBagFullText::
- text "But, <PLAYER> has"
- line "no more room for"
- cont "other items!"
- done
-
-_FoundHiddenCoinsText::
- text "<PLAYER> found"
- line "@"
- TX_BCD hCoins, 2 | LEADING_ZEROES | LEFT_ALIGN
- text " coins!@@"
-
-_FoundHiddenCoins2Text::
- text "<PLAYER> 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 "<USER>'s"
- line "hurt by poison!"
- prompt
-
-_HurtByBurnText::
- text "<USER>'s"
- line "hurt by the burn!"
- prompt
-
-_HurtByLeechSeedText::
- text "LEECH SEED saps"
- line "<USER>!"
- prompt
-
-_EnemyMonFaintedText::
- text "Enemy @"
- TX_RAM wEnemyMonNick
- text ""
- line "fainted!"
- prompt
-
-_MoneyForWinningText::
- text "<PLAYER> got ¥@"
- TX_BCD wAmountMoneyWon, 3 | LEADING_ZEROES | LEFT_ALIGN
- text ""
- line "for winning!"
- prompt
-
-_TrainerDefeatedText::
- text "<PLAYER> defeated"
- line "@"
- TX_RAM wTrainerName
- text "!"
- prompt
-
-_PlayerMonFaintedText::
- TX_RAM wBattleMonNick
- text ""
- line "fainted!"
- prompt
-
-_UseNextMonText::
- text "Use next #MON?"
- done
-
-_Sony1WinText::
- text "<RIVAL>: Yeah! Am"
- line "I great or what?"
- prompt
-
-_PlayerBlackedOutText2::
- text "<PLAYER> is out of"
- line "useable #MON!"
-
- para "<PLAYER> blacked"
- line "out!"
- prompt
-
-_LinkBattleLostText::
- text "<PLAYER> 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 <PLAYER>"
- 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
-
-_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 "<USER>"
- line "is fast asleep!"
- prompt
-
-_WokeUpText::
- text "<USER>"
- line "woke up!"
- prompt
-
-_IsFrozenText::
- text "<USER>"
- line "is frozen solid!"
- prompt
-
-_FullyParalyzedText::
- text "<USER>'s"
- line "fully paralyzed!"
- prompt
-
-_FlinchedText::
- text "<USER>"
- line "flinched!"
- prompt
-
-_MustRechargeText::
- text "<USER>"
- line "must recharge!"
- prompt
-
-_DisabledNoMoreText::
- text "<USER>'s"
- line "disabled no more!"
- prompt
-
-_IsConfusedText::
- text "<USER>"
- line "is confused!"
- prompt
-
-_HurtItselfText::
- text "It hurt itself in"
- line "its confusion!"
- prompt
-
-_ConfusedNoMoreText::
- text "<USER>'s"
- line "confused no more!"
- prompt
-
-_SavingEnergyText::
- text "<USER>"
- line "is saving energy!"
- prompt
-
-_UnleashedEnergyText::
- text "<USER>"
- line "unleashed energy!"
- prompt
-
-_ThrashingAboutText::
- text "<USER>'s"
- line "thrashing about!"
- done
-
-_AttackContinuesText::
- text "<USER>'s"
- line "attack continues!"
- done
-
-_CantMoveText::
- text "<USER>"
- line "can't move!"
- prompt
-
-_MoveIsDisabledText::
- text "<USER>'s"
- line "@"
- TX_RAM wcd6d
- text " is"
- cont "disabled!"
- prompt
-
-_MonName1Text::
- text "<USER>@@"
-
-_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 "<USER>'s"
- line "attack missed!"
- prompt
-
-_KeptGoingAndCrashedText::
- text "<USER>"
- line "kept going and"
- cont "crashed!"
- prompt
-
-_UnaffectedText::
- text "<TARGET>'s"
- line "unaffected!"
- prompt
-
-_DoesntAffectMonText::
- text "It doesn't affect"
- line "<TARGET>!"
- 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 "<TARGET>!"
- prompt
-
-_SubstituteBrokeText::
- text "<TARGET>'s"
- line "SUBSTITUTE broke!"
- prompt
-
-_BuildingRageText::
- text "<USER>'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 "!@@"
-
-_WildMonAppearedText::
- text "Wild @"
- TX_RAM wEnemyMonNick
- text ""
- line "appeared!"
- prompt
-
-_HookedMonAttackedText::
- text "The hooked"
- line "@"
- TX_RAM wEnemyMonNick
- text ""
- cont "attacked!"
- prompt
-
-_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 " @@"
+INCLUDE "text/RockTunnelB1F_2.asm"
+INCLUDE "text/SeafoamIslandsB4F.asm"
-_EnoughText::
- text "enough!@@"
+INCLUDE "data/text/text_2.asm"
-_OKExclamationText::
- text "OK!@@"
-
-_GoodText::
- text "good!@@"
-
-_ComeBackText::
- text ""
- line "Come back!"
- done
-
-_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
-
-; money related
-_PickUpPayDayMoneyText::
- text "<PLAYER> 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
-
-_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 "Use TM on 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 "<PLAYER> 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 "<PLAYER> 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
-
-_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
-
-_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
-
-_WhereWouldYouLikeText::
- text "Where would you"
- line "like to go?"
- done
-
-_PleaseWaitText::
- text "OK, please wait"
- line "just a moment."
- done
-
-_LinkCanceledText::
- text "The link was"
- line "canceled."
- 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 <PLAYER>!"
- prompt
-
-_HisNameIsText::
- text "That's right! I"
- line "remember now! His"
- cont "name is <RIVAL>!"
- prompt
-
-_WillBeTradedText::
- TX_RAM wNameOfPlayerMonToBeTraded
- text " and"
- line "@"
- TX_RAM wcd6d
- text " will"
- cont "be traded."
- done
-
-_Char00Text::
- TX_NUM hSpriteIndexOrTextID,1,2
- text " ERROR."
- done
-
-_Char55Text::
- text $4B,"@@"
-
-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/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"
SECTION "Text 4", ROMX
-INCLUDE "text/maps/Daycare_2.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/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"
-INCLUDE "text/maps/Route10.asm"
-INCLUDE "text/maps/Route11.asm"
+INCLUDE "text/Daycare_2.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/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"
+INCLUDE "text/Route10.asm"
+INCLUDE "text/Route11.asm"
SECTION "Text 5", ROMX
-INCLUDE "text/maps/Route11_2.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/Route11_2.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"
SECTION "Text 6", ROMX
-INCLUDE "text/maps/Route24_2.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
-
-_GameSavedText::
- text "<PLAYER> 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 "<pkmn> 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
-
-_IsEvolvingText::
- text "What? @"
- TX_RAM wcf4b
- text ""
- line "is evolving!"
- done
-
-_FellAsleepText::
- text "<TARGET>"
- line "fell asleep!"
- prompt
-
-_AlreadyAsleepText::
- text "<TARGET>'s"
- line "already asleep!"
- prompt
-
-_PoisonedText::
- text "<TARGET>"
- line "was poisoned!"
- prompt
-
-_BadlyPoisonedText::
- text "<TARGET>'s"
- line "badly poisoned!"
- prompt
-
-_BurnedText::
- text "<TARGET>"
- line "was burned!"
- prompt
-
-_FrozenText::
- text "<TARGET>"
- line "was frozen solid!"
- prompt
-
-_FireDefrostedText::
- text "Fire defrosted"
- line "<TARGET>!"
- prompt
-
-_MonsStatsRoseText::
- text "<USER>'s"
- line "@"
- TX_RAM wcf4b
- text "@@"
-
-_GreatlyRoseText::
- text $4c, "greatly@@"
-
-_RoseText::
- text " rose!"
- prompt
-
-_MonsStatsFellText::
- text "<TARGET>'s"
- line "@"
- TX_RAM wcf4b
- text "@@"
-
-_GreatlyFellText::
- text $4c, "greatly@@"
-
-_FellText::
- text " fell!"
- prompt
-
-_RanFromBattleText::
- text "<USER>"
- line "ran from battle!"
- prompt
-
-_RanAwayScaredText::
- text "<TARGET>"
- line "ran away scared!"
- prompt
-
-_WasBlownAwayText::
- text "<TARGET>"
- line "was blown away!"
- prompt
-
-_ChargeMoveEffectText::
- text "<USER>@@"
-
-_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 "<TARGET>"
- line "became confused!"
- prompt
-
-_MimicLearnedMoveText::
- text "<USER>"
- line "learned"
- cont "@"
- TX_RAM wcd6d
- text "!"
- prompt
-
-_MoveWasDisabledText::
- text "<TARGET>'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 "<TARGET>!"
- prompt
-
-_IsUnaffectedText::
- text "<TARGET>"
- line "is unaffected!"
- prompt
-
-_ParalyzedMayNotAttackText::
- text "<TARGET>'s"
- line "paralyzed! It may"
- cont "not attack!"
- prompt
-
-_SubstituteText::
- text "It created a"
- line "SUBSTITUTE!"
- prompt
-
-_HasSubstituteText::
- text "<USER>"
- line "has a SUBSTITUTE!"
- prompt
-
-_TooWeakSubstituteText::
- text "Too weak to make"
- line "a SUBSTITUTE!"
- prompt
-
-_CoinsScatteredText::
- text "Coins scattered"
- line "everywhere!"
- prompt
-
-_GettingPumpedText::
- text "<USER>'s"
- line "getting pumped!"
- prompt
-
-_WasSeededText::
- text "<TARGET>"
- line "was seeded!"
- prompt
-
-_EvadedAttackText::
- text "<TARGET>"
- line "evaded attack!"
- prompt
-
-_HitWithRecoilText::
- text "<USER>'s"
- line "hit with recoil!"
- prompt
-
-_ConvertedTypeText::
- text "Converted type to"
- line "<TARGET>'s!"
- prompt
-
-_StatusChangesEliminatedText::
- text "All STATUS changes"
- line "are eliminated!"
- prompt
-
-_StartedSleepingEffect::
- text "<USER>"
- line "started sleeping!"
- done
-
-_FellAsleepBecameHealthyText::
- text "<USER>"
- line "fell asleep and"
- cont "became healthy!"
- done
-
-_RegainedHealthText::
- text "<USER>"
- line "regained health!"
- prompt
-
-_TransformedText::
- text "<USER>"
- line "transformed into"
- cont "@"
- TX_RAM wcd6d
- text "!"
- prompt
-
-_LightScreenProtectedText::
- text "<USER>'s"
- line "protected against"
- cont "special attacks!"
- prompt
+INCLUDE "text/Route24_2.asm"
+INCLUDE "text/Route25.asm"
-_ReflectGainedArmorText::
- text "<USER>"
- line "gained armor!"
- prompt
+INCLUDE "data/text/text_3.asm"
-_ShroudedInMistText::
- text "<USER>'s"
- line "shrouded in mist!"
- prompt
-
-_SuckedHealthText::
- text "Sucked health from"
- line "<TARGET>!"
- prompt
-
-_DreamWasEatenText::
- text "<TARGET>'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 "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/RedsHouse1F.asm"
+INCLUDE "text/BluesHouse.asm"
+INCLUDE "text/OaksLab.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"
SECTION "Text 7", ROMX
-INCLUDE "text/maps/PewterGym_2.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"
-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/PewterGym_2.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"
+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"
SECTION "Text 8", ROMX
-INCLUDE "text/maps/VermilionGym_2.asm"
-INCLUDE "text/maps/VermilionPidgeyHouse.asm"
-INCLUDE "text/maps/VermilionDock.asm"
-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"
-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/VermilionGym_2.asm"
+INCLUDE "text/VermilionPidgeyHouse.asm"
+INCLUDE "text/VermilionDock.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"
+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"
SECTION "Text 9", ROMX
-INCLUDE "text/maps/FuchsiaGym_2.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"
-
-_PokemartGreetingText::
- text "Hi there!"
- next "May I help you?"
- done
-
-_PokemonFaintedText::
- TX_RAM wcd6d
- text ""
- line "fainted!"
- done
-
-_PlayerBlackedOutText::
- text "<PLAYER> is out of"
- line "useable #MON!"
-
- para "<PLAYER> 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
-
-_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
-
-_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
+INCLUDE "text/FuchsiaGym_2.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_4.asm"
SECTION "Text 10", ROMX
-_CableClubNPCPleaseComeAgainText::
- text "Please come again!"
- done
-
-_CableClubNPCMakingPreparationsText::
- text "We're making"
- line "preparations."
- cont "Please wait."
- done
-
-_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
-
-_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
-
-_GotMonText::
- text "<PLAYER> got"
- line "@"
- TX_RAM wcd6d
- text "!@@"
-
-_SentToBoxText::
- 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
+INCLUDE "data/text/text_5.asm"
-_ItemUseBallText05::
- text "All right!"
- line "@"
- TX_RAM wEnemyMonNick
- text " was"
- cont "caught!@@"
+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"
-_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 "<PLAYER> got on"
- line "@"
- TX_RAM wcd6d
- text "!"
- prompt
-
-_SurfingNoPlaceToGetOffText::
- text "There's no place"
- line "to get off!"
- 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 "<PLAYER> threw"
- line "some BAIT."
- done
-
-_ThrewRockText::
- text "<PLAYER> 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 "<PLAYER> 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: <PLAYER>!"
- 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
+INCLUDE "data/text/text_6.asm"
SECTION "Text 11", ROMX
-_ItemUseText001::
- text "<PLAYER> used@@"
-
-_ItemUseText002::
- TX_RAM wcf4b
- text "!"
- done
-
-_GotOnBicycleText1::
- text "<PLAYER> got on the@@"
-
-_GotOnBicycleText2::
- TX_RAM wcf4b
- text "!"
- prompt
-
-_GotOffBicycleText1::
- text "<PLAYER> 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 "<PLAYER> 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 "The @"
- TX_RAM wInGameTradeGiveMonName
- text " you"
- line "traded to me"
-
- para "went and evolved!"
- 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
+INCLUDE "data/text/text_7.asm"
SECTION "Pokedex Text", ROMX
-INCLUDE "text/pokedex.asm"
+INCLUDE "data/pokemon/dex_text.asm"
SECTION "Move Names", ROMX
-INCLUDE "text/move_names.asm"
+INCLUDE "data/moves/names.asm"
diff --git a/text/maps/AgathasRoom.asm b/text/AgathasRoom.asm
index 9ef5059a..9ef5059a 100644
--- a/text/maps/AgathasRoom.asm
+++ b/text/AgathasRoom.asm
diff --git a/text/maps/BikeShop.asm b/text/BikeShop.asm
index 86799865..86799865 100644
--- a/text/maps/BikeShop.asm
+++ b/text/BikeShop.asm
diff --git a/text/maps/BillsHouse.asm b/text/BillsHouse.asm
index 5ece48d7..5ece48d7 100644
--- a/text/maps/BillsHouse.asm
+++ b/text/BillsHouse.asm
diff --git a/text/maps/BluesHouse.asm b/text/BluesHouse.asm
index 1898636a..1898636a 100644
--- a/text/maps/BluesHouse.asm
+++ b/text/BluesHouse.asm
diff --git a/text/maps/BrunosRoom.asm b/text/BrunosRoom.asm
index 9c493c4a..9c493c4a 100644
--- a/text/maps/BrunosRoom.asm
+++ b/text/BrunosRoom.asm
diff --git a/text/maps/CeladonChiefHouse.asm b/text/CeladonChiefHouse.asm
index 19e59bd6..19e59bd6 100644
--- a/text/maps/CeladonChiefHouse.asm
+++ b/text/CeladonChiefHouse.asm
diff --git a/text/maps/CeladonCity.asm b/text/CeladonCity.asm
index 1dbd5cdf..1dbd5cdf 100644
--- a/text/maps/CeladonCity.asm
+++ b/text/CeladonCity.asm
diff --git a/text/maps/CeladonDiner.asm b/text/CeladonDiner.asm
index dc5e9350..dc5e9350 100644
--- a/text/maps/CeladonDiner.asm
+++ b/text/CeladonDiner.asm
diff --git a/text/maps/CeladonGym.asm b/text/CeladonGym.asm
index d6586035..d6586035 100644
--- a/text/maps/CeladonGym.asm
+++ b/text/CeladonGym.asm
diff --git a/text/maps/CeladonHotel.asm b/text/CeladonHotel.asm
index f2eb059e..f2eb059e 100644
--- a/text/maps/CeladonHotel.asm
+++ b/text/CeladonHotel.asm
diff --git a/text/maps/CeladonMansion1F.asm b/text/CeladonMansion1F.asm
index fc175cd5..fc175cd5 100644
--- a/text/maps/CeladonMansion1F.asm
+++ b/text/CeladonMansion1F.asm
diff --git a/text/maps/CeladonMansion2F.asm b/text/CeladonMansion2F.asm
index b2ecb4fa..b2ecb4fa 100644
--- a/text/maps/CeladonMansion2F.asm
+++ b/text/CeladonMansion2F.asm
diff --git a/text/maps/CeladonMansion3F.asm b/text/CeladonMansion3F.asm
index c8858281..c8858281 100644
--- a/text/maps/CeladonMansion3F.asm
+++ b/text/CeladonMansion3F.asm
diff --git a/text/maps/CeladonMansionRoof.asm b/text/CeladonMansionRoof.asm
index c8fd7ec8..c8fd7ec8 100644
--- a/text/maps/CeladonMansionRoof.asm
+++ b/text/CeladonMansionRoof.asm
diff --git a/text/maps/CeladonMansionRoofHouse.asm b/text/CeladonMansionRoofHouse.asm
index dab81a8d..dab81a8d 100644
--- a/text/maps/CeladonMansionRoofHouse.asm
+++ b/text/CeladonMansionRoofHouse.asm
diff --git a/text/maps/CeladonMart1F.asm b/text/CeladonMart1F.asm
index 8d805edc..8d805edc 100644
--- a/text/maps/CeladonMart1F.asm
+++ b/text/CeladonMart1F.asm
diff --git a/text/maps/CeladonMart2F.asm b/text/CeladonMart2F.asm
index 74869902..74869902 100644
--- a/text/maps/CeladonMart2F.asm
+++ b/text/CeladonMart2F.asm
diff --git a/text/maps/CeladonMart3F.asm b/text/CeladonMart3F.asm
index 8211750d..8211750d 100644
--- a/text/maps/CeladonMart3F.asm
+++ b/text/CeladonMart3F.asm
diff --git a/text/maps/CeladonMart4F.asm b/text/CeladonMart4F.asm
index 78fa0b66..78fa0b66 100644
--- a/text/maps/CeladonMart4F.asm
+++ b/text/CeladonMart4F.asm
diff --git a/text/maps/CeladonMart5F.asm b/text/CeladonMart5F.asm
index 1871194b..1871194b 100644
--- a/text/maps/CeladonMart5F.asm
+++ b/text/CeladonMart5F.asm
diff --git a/text/maps/CeladonMartRoof.asm b/text/CeladonMartRoof.asm
index 1ed52e86..1ed52e86 100644
--- a/text/maps/CeladonMartRoof.asm
+++ b/text/CeladonMartRoof.asm
diff --git a/text/maps/CeladonPokecenter.asm b/text/CeladonPokecenter.asm
index a04f51c9..a04f51c9 100644
--- a/text/maps/CeladonPokecenter.asm
+++ b/text/CeladonPokecenter.asm
diff --git a/text/maps/CeruleanBadgeHouse.asm b/text/CeruleanBadgeHouse.asm
index 9d701443..9d701443 100644
--- a/text/maps/CeruleanBadgeHouse.asm
+++ b/text/CeruleanBadgeHouse.asm
diff --git a/text/maps/CeruleanCaveB1F.asm b/text/CeruleanCaveB1F.asm
index 0918a3ce..0918a3ce 100644
--- a/text/maps/CeruleanCaveB1F.asm
+++ b/text/CeruleanCaveB1F.asm
diff --git a/text/maps/CeruleanCity.asm b/text/CeruleanCity.asm
index f0d2c29e..f0d2c29e 100644
--- a/text/maps/CeruleanCity.asm
+++ b/text/CeruleanCity.asm
diff --git a/text/maps/CeruleanGym.asm b/text/CeruleanGym.asm
index 1d1d6d1c..1d1d6d1c 100644
--- a/text/maps/CeruleanGym.asm
+++ b/text/CeruleanGym.asm
diff --git a/text/maps/CeruleanMart.asm b/text/CeruleanMart.asm
index 86a74588..86a74588 100644
--- a/text/maps/CeruleanMart.asm
+++ b/text/CeruleanMart.asm
diff --git a/text/maps/CeruleanPokecenter.asm b/text/CeruleanPokecenter.asm
index 497fbce3..497fbce3 100644
--- a/text/maps/CeruleanPokecenter.asm
+++ b/text/CeruleanPokecenter.asm
diff --git a/text/maps/CeruleanTradeHouse.asm b/text/CeruleanTradeHouse.asm
index b606613b..b606613b 100644
--- a/text/maps/CeruleanTradeHouse.asm
+++ b/text/CeruleanTradeHouse.asm
diff --git a/text/maps/CeruleanTrashedHouse.asm b/text/CeruleanTrashedHouse.asm
index f79540ae..f79540ae 100644
--- a/text/maps/CeruleanTrashedHouse.asm
+++ b/text/CeruleanTrashedHouse.asm
diff --git a/text/maps/ChampionsRoom.asm b/text/ChampionsRoom.asm
index 61050565..61050565 100644
--- a/text/maps/ChampionsRoom.asm
+++ b/text/ChampionsRoom.asm
diff --git a/text/maps/CinnabarGym.asm b/text/CinnabarGym.asm
index 1b531571..1b531571 100644
--- a/text/maps/CinnabarGym.asm
+++ b/text/CinnabarGym.asm
diff --git a/text/maps/CinnabarIsland.asm b/text/CinnabarIsland.asm
index 352ab8ea..352ab8ea 100644
--- a/text/maps/CinnabarIsland.asm
+++ b/text/CinnabarIsland.asm
diff --git a/text/maps/CinnabarLab.asm b/text/CinnabarLab.asm
index a93a484d..a93a484d 100644
--- a/text/maps/CinnabarLab.asm
+++ b/text/CinnabarLab.asm
diff --git a/text/maps/CinnabarLabFossilRoom.asm b/text/CinnabarLabFossilRoom.asm
index 95bde685..95bde685 100644
--- a/text/maps/CinnabarLabFossilRoom.asm
+++ b/text/CinnabarLabFossilRoom.asm
diff --git a/text/maps/CinnabarLabMetronomeRoom.asm b/text/CinnabarLabMetronomeRoom.asm
index fa04677f..fa04677f 100644
--- a/text/maps/CinnabarLabMetronomeRoom.asm
+++ b/text/CinnabarLabMetronomeRoom.asm
diff --git a/text/maps/CinnabarLabTradeRoom.asm b/text/CinnabarLabTradeRoom.asm
index 196124e7..196124e7 100644
--- a/text/maps/CinnabarLabTradeRoom.asm
+++ b/text/CinnabarLabTradeRoom.asm
diff --git a/text/maps/CinnabarMart.asm b/text/CinnabarMart.asm
index 42a41d06..42a41d06 100644
--- a/text/maps/CinnabarMart.asm
+++ b/text/CinnabarMart.asm
diff --git a/text/maps/CinnabarPokecenter.asm b/text/CinnabarPokecenter.asm
index cf481764..cf481764 100644
--- a/text/maps/CinnabarPokecenter.asm
+++ b/text/CinnabarPokecenter.asm
diff --git a/text/maps/CopycatsHouse1F.asm b/text/CopycatsHouse1F.asm
index 3ec2b151..3ec2b151 100644
--- a/text/maps/CopycatsHouse1F.asm
+++ b/text/CopycatsHouse1F.asm
diff --git a/text/maps/CopycatsHouse2F.asm b/text/CopycatsHouse2F.asm
index 561b2ac5..561b2ac5 100644
--- a/text/maps/CopycatsHouse2F.asm
+++ b/text/CopycatsHouse2F.asm
diff --git a/text/maps/Daycare.asm b/text/Daycare.asm
index 2759c798..2759c798 100644
--- a/text/maps/Daycare.asm
+++ b/text/Daycare.asm
diff --git a/text/maps/Daycare_2.asm b/text/Daycare_2.asm
index 20c0e5ad..20c0e5ad 100644
--- a/text/maps/Daycare_2.asm
+++ b/text/Daycare_2.asm
diff --git a/text/maps/DiglettsCaveRoute11.asm b/text/DiglettsCaveRoute11.asm
index ecd3225e..ecd3225e 100644
--- a/text/maps/DiglettsCaveRoute11.asm
+++ b/text/DiglettsCaveRoute11.asm
diff --git a/text/maps/DiglettsCaveRoute2.asm b/text/DiglettsCaveRoute2.asm
index a04bbef7..a04bbef7 100644
--- a/text/maps/DiglettsCaveRoute2.asm
+++ b/text/DiglettsCaveRoute2.asm
diff --git a/text/maps/FightingDojo.asm b/text/FightingDojo.asm
index 3df069c1..3df069c1 100644
--- a/text/maps/FightingDojo.asm
+++ b/text/FightingDojo.asm
diff --git a/text/maps/FuchsiaBillsGrandpasHouse.asm b/text/FuchsiaBillsGrandpasHouse.asm
index 7b6556b1..7b6556b1 100644
--- a/text/maps/FuchsiaBillsGrandpasHouse.asm
+++ b/text/FuchsiaBillsGrandpasHouse.asm
diff --git a/text/maps/FuchsiaCity.asm b/text/FuchsiaCity.asm
index a90d0021..a90d0021 100644
--- a/text/maps/FuchsiaCity.asm
+++ b/text/FuchsiaCity.asm
diff --git a/text/maps/FuchsiaGoodRodHouse.asm b/text/FuchsiaGoodRodHouse.asm
index b1b8b2f2..b1b8b2f2 100644
--- a/text/maps/FuchsiaGoodRodHouse.asm
+++ b/text/FuchsiaGoodRodHouse.asm
diff --git a/text/maps/FuchsiaGym.asm b/text/FuchsiaGym.asm
index 9108fc79..9108fc79 100644
--- a/text/maps/FuchsiaGym.asm
+++ b/text/FuchsiaGym.asm
diff --git a/text/maps/FuchsiaGym_2.asm b/text/FuchsiaGym_2.asm
index f7b39d9c..f7b39d9c 100644
--- a/text/maps/FuchsiaGym_2.asm
+++ b/text/FuchsiaGym_2.asm
diff --git a/text/maps/FuchsiaMart.asm b/text/FuchsiaMart.asm
index 574898ce..574898ce 100644
--- a/text/maps/FuchsiaMart.asm
+++ b/text/FuchsiaMart.asm
diff --git a/text/maps/FuchsiaMeetingRoom.asm b/text/FuchsiaMeetingRoom.asm
index 10675ead..10675ead 100644
--- a/text/maps/FuchsiaMeetingRoom.asm
+++ b/text/FuchsiaMeetingRoom.asm
diff --git a/text/maps/FuchsiaPokecenter.asm b/text/FuchsiaPokecenter.asm
index a0def7eb..a0def7eb 100644
--- a/text/maps/FuchsiaPokecenter.asm
+++ b/text/FuchsiaPokecenter.asm
diff --git a/text/maps/GameCorner.asm b/text/GameCorner.asm
index 1e59f83e..1e59f83e 100644
--- a/text/maps/GameCorner.asm
+++ b/text/GameCorner.asm
diff --git a/text/maps/GameCornerPrizeRoom.asm b/text/GameCornerPrizeRoom.asm
index 6b2bb537..6b2bb537 100644
--- a/text/maps/GameCornerPrizeRoom.asm
+++ b/text/GameCornerPrizeRoom.asm
diff --git a/text/maps/HallOfFame.asm b/text/HallOfFame.asm
index c799268b..c799268b 100644
--- a/text/maps/HallOfFame.asm
+++ b/text/HallOfFame.asm
diff --git a/text/maps/IndigoPlateauLobby.asm b/text/IndigoPlateauLobby.asm
index 8487e29a..8487e29a 100644
--- a/text/maps/IndigoPlateauLobby.asm
+++ b/text/IndigoPlateauLobby.asm
diff --git a/text/maps/LancesRoom.asm b/text/LancesRoom.asm
index ed3dcada..ed3dcada 100644
--- a/text/maps/LancesRoom.asm
+++ b/text/LancesRoom.asm
diff --git a/text/maps/LavenderCuboneHouse.asm b/text/LavenderCuboneHouse.asm
index 66cc85a5..66cc85a5 100644
--- a/text/maps/LavenderCuboneHouse.asm
+++ b/text/LavenderCuboneHouse.asm
diff --git a/text/maps/LavenderMart.asm b/text/LavenderMart.asm
index 222712c6..222712c6 100644
--- a/text/maps/LavenderMart.asm
+++ b/text/LavenderMart.asm
diff --git a/text/maps/LavenderPokecenter.asm b/text/LavenderPokecenter.asm
index 3aa7b67d..3aa7b67d 100644
--- a/text/maps/LavenderPokecenter.asm
+++ b/text/LavenderPokecenter.asm
diff --git a/text/maps/LavenderTown.asm b/text/LavenderTown.asm
index 19b6c8c8..19b6c8c8 100644
--- a/text/maps/LavenderTown.asm
+++ b/text/LavenderTown.asm
diff --git a/text/maps/LoreleisRoom.asm b/text/LoreleisRoom.asm
index fdbb55b4..fdbb55b4 100644
--- a/text/maps/LoreleisRoom.asm
+++ b/text/LoreleisRoom.asm
diff --git a/text/maps/MrFujisHouse.asm b/text/MrFujisHouse.asm
index f903eb6a..f903eb6a 100644
--- a/text/maps/MrFujisHouse.asm
+++ b/text/MrFujisHouse.asm
diff --git a/text/maps/MrPsychicsHouse.asm b/text/MrPsychicsHouse.asm
index 7be2e11e..7be2e11e 100644
--- a/text/maps/MrPsychicsHouse.asm
+++ b/text/MrPsychicsHouse.asm
diff --git a/text/maps/MtMoon1F.asm b/text/MtMoon1F.asm
index 761a5240..761a5240 100644
--- a/text/maps/MtMoon1F.asm
+++ b/text/MtMoon1F.asm
diff --git a/text/maps/MtMoonB1F.asm b/text/MtMoonB1F.asm
index 755fa583..755fa583 100644
--- a/text/maps/MtMoonB1F.asm
+++ b/text/MtMoonB1F.asm
diff --git a/text/maps/MtMoonB2F.asm b/text/MtMoonB2F.asm
index 472649b9..472649b9 100644
--- a/text/maps/MtMoonB2F.asm
+++ b/text/MtMoonB2F.asm
diff --git a/text/maps/MtMoonPokecenter.asm b/text/MtMoonPokecenter.asm
index 7bc99dae..7bc99dae 100644
--- a/text/maps/MtMoonPokecenter.asm
+++ b/text/MtMoonPokecenter.asm
diff --git a/text/maps/Museum1F.asm b/text/Museum1F.asm
index 16431bda..16431bda 100644
--- a/text/maps/Museum1F.asm
+++ b/text/Museum1F.asm
diff --git a/text/maps/Museum2F.asm b/text/Museum2F.asm
index 4f34a249..4f34a249 100644
--- a/text/maps/Museum2F.asm
+++ b/text/Museum2F.asm
diff --git a/text/maps/NameRatersHouse.asm b/text/NameRatersHouse.asm
index 65d3e8a4..65d3e8a4 100644
--- a/text/maps/NameRatersHouse.asm
+++ b/text/NameRatersHouse.asm
diff --git a/text/maps/OaksLab.asm b/text/OaksLab.asm
index 7a6f57b7..7a6f57b7 100644
--- a/text/maps/OaksLab.asm
+++ b/text/OaksLab.asm
diff --git a/text/maps/PalletTown.asm b/text/PalletTown.asm
index d5eda74f..d5eda74f 100644
--- a/text/maps/PalletTown.asm
+++ b/text/PalletTown.asm
diff --git a/text/maps/PewterCity.asm b/text/PewterCity.asm
index 14240c9e..14240c9e 100644
--- a/text/maps/PewterCity.asm
+++ b/text/PewterCity.asm
diff --git a/text/maps/PewterGym.asm b/text/PewterGym.asm
index 6426dd72..6426dd72 100644
--- a/text/maps/PewterGym.asm
+++ b/text/PewterGym.asm
diff --git a/text/maps/PewterGym_2.asm b/text/PewterGym_2.asm
index 5312e4f2..5312e4f2 100644
--- a/text/maps/PewterGym_2.asm
+++ b/text/PewterGym_2.asm
diff --git a/text/maps/PewterMart.asm b/text/PewterMart.asm
index 0d5b07a2..0d5b07a2 100644
--- a/text/maps/PewterMart.asm
+++ b/text/PewterMart.asm
diff --git a/text/maps/PewterNidoranHouse.asm b/text/PewterNidoranHouse.asm
index 450e8372..450e8372 100644
--- a/text/maps/PewterNidoranHouse.asm
+++ b/text/PewterNidoranHouse.asm
diff --git a/text/maps/PewterPokecenter.asm b/text/PewterPokecenter.asm
index 6a1b373e..6a1b373e 100644
--- a/text/maps/PewterPokecenter.asm
+++ b/text/PewterPokecenter.asm
diff --git a/text/maps/PewterSpeechHouse.asm b/text/PewterSpeechHouse.asm
index 615536f7..615536f7 100644
--- a/text/maps/PewterSpeechHouse.asm
+++ b/text/PewterSpeechHouse.asm
diff --git a/text/maps/PokemonFanClub.asm b/text/PokemonFanClub.asm
index 4827f2e8..4827f2e8 100644
--- a/text/maps/PokemonFanClub.asm
+++ b/text/PokemonFanClub.asm
diff --git a/text/maps/PokemonMansion1F.asm b/text/PokemonMansion1F.asm
index a3c517fb..a3c517fb 100644
--- a/text/maps/PokemonMansion1F.asm
+++ b/text/PokemonMansion1F.asm
diff --git a/text/maps/PokemonMansion2F.asm b/text/PokemonMansion2F.asm
index 378efb30..378efb30 100644
--- a/text/maps/PokemonMansion2F.asm
+++ b/text/PokemonMansion2F.asm
diff --git a/text/maps/PokemonMansion3F.asm b/text/PokemonMansion3F.asm
index 70331fdf..70331fdf 100644
--- a/text/maps/PokemonMansion3F.asm
+++ b/text/PokemonMansion3F.asm
diff --git a/text/maps/PokemonMansionB1F.asm b/text/PokemonMansionB1F.asm
index 1bc1ef89..1bc1ef89 100644
--- a/text/maps/PokemonMansionB1F.asm
+++ b/text/PokemonMansionB1F.asm
diff --git a/text/maps/PokemonTower1F.asm b/text/PokemonTower1F.asm
index 50a2cd29..50a2cd29 100644
--- a/text/maps/PokemonTower1F.asm
+++ b/text/PokemonTower1F.asm
diff --git a/text/maps/PokemonTower2F.asm b/text/PokemonTower2F.asm
index 79323001..79323001 100644
--- a/text/maps/PokemonTower2F.asm
+++ b/text/PokemonTower2F.asm
diff --git a/text/maps/PokemonTower3F.asm b/text/PokemonTower3F.asm
index 67098e6b..67098e6b 100644
--- a/text/maps/PokemonTower3F.asm
+++ b/text/PokemonTower3F.asm
diff --git a/text/maps/PokemonTower4F.asm b/text/PokemonTower4F.asm
index 771325a0..771325a0 100644
--- a/text/maps/PokemonTower4F.asm
+++ b/text/PokemonTower4F.asm
diff --git a/text/maps/PokemonTower5F.asm b/text/PokemonTower5F.asm
index b329118d..b329118d 100644
--- a/text/maps/PokemonTower5F.asm
+++ b/text/PokemonTower5F.asm
diff --git a/text/maps/PokemonTower6F.asm b/text/PokemonTower6F.asm
index 7532d56d..7532d56d 100644
--- a/text/maps/PokemonTower6F.asm
+++ b/text/PokemonTower6F.asm
diff --git a/text/maps/PokemonTower7F.asm b/text/PokemonTower7F.asm
index 704a71eb..704a71eb 100644
--- a/text/maps/PokemonTower7F.asm
+++ b/text/PokemonTower7F.asm
diff --git a/text/maps/PowerPlant.asm b/text/PowerPlant.asm
index e5df6674..e5df6674 100644
--- a/text/maps/PowerPlant.asm
+++ b/text/PowerPlant.asm
diff --git a/text/maps/RedsHouse1F.asm b/text/RedsHouse1F.asm
index 07768af9..07768af9 100644
--- a/text/maps/RedsHouse1F.asm
+++ b/text/RedsHouse1F.asm
diff --git a/text/maps/RockTunnel1F.asm b/text/RockTunnel1F.asm
index 472c52f8..472c52f8 100644
--- a/text/maps/RockTunnel1F.asm
+++ b/text/RockTunnel1F.asm
diff --git a/text/maps/RockTunnelB1F.asm b/text/RockTunnelB1F.asm
index 1a565eb3..1a565eb3 100644
--- a/text/maps/RockTunnelB1F.asm
+++ b/text/RockTunnelB1F.asm
diff --git a/text/maps/RockTunnelB1F_2.asm b/text/RockTunnelB1F_2.asm
index e8e45a7f..e8e45a7f 100644
--- a/text/maps/RockTunnelB1F_2.asm
+++ b/text/RockTunnelB1F_2.asm
diff --git a/text/maps/RockTunnelPokecenter.asm b/text/RockTunnelPokecenter.asm
index 0fc249ff..0fc249ff 100644
--- a/text/maps/RockTunnelPokecenter.asm
+++ b/text/RockTunnelPokecenter.asm
diff --git a/text/maps/RocketHideoutB1F.asm b/text/RocketHideoutB1F.asm
index 36117804..36117804 100644
--- a/text/maps/RocketHideoutB1F.asm
+++ b/text/RocketHideoutB1F.asm
diff --git a/text/maps/RocketHideoutB2F.asm b/text/RocketHideoutB2F.asm
index c13c3593..c13c3593 100644
--- a/text/maps/RocketHideoutB2F.asm
+++ b/text/RocketHideoutB2F.asm
diff --git a/text/maps/RocketHideoutB3F.asm b/text/RocketHideoutB3F.asm
index a146a383..a146a383 100644
--- a/text/maps/RocketHideoutB3F.asm
+++ b/text/RocketHideoutB3F.asm
diff --git a/text/maps/RocketHideoutB4F.asm b/text/RocketHideoutB4F.asm
index f3ba43f3..f3ba43f3 100644
--- a/text/maps/RocketHideoutB4F.asm
+++ b/text/RocketHideoutB4F.asm
diff --git a/text/maps/RocketHideoutElevator.asm b/text/RocketHideoutElevator.asm
index 6f2aa638..6f2aa638 100644
--- a/text/maps/RocketHideoutElevator.asm
+++ b/text/RocketHideoutElevator.asm
diff --git a/text/maps/Route1.asm b/text/Route1.asm
index 73188f09..73188f09 100644
--- a/text/maps/Route1.asm
+++ b/text/Route1.asm
diff --git a/text/maps/Route10.asm b/text/Route10.asm
index 057ddcb5..057ddcb5 100644
--- a/text/maps/Route10.asm
+++ b/text/Route10.asm
diff --git a/text/maps/Route11.asm b/text/Route11.asm
index 13e37bdf..13e37bdf 100644
--- a/text/maps/Route11.asm
+++ b/text/Route11.asm
diff --git a/text/maps/Route11Gate1F.asm b/text/Route11Gate1F.asm
index ef371d06..ef371d06 100644
--- a/text/maps/Route11Gate1F.asm
+++ b/text/Route11Gate1F.asm
diff --git a/text/maps/Route11Gate2F.asm b/text/Route11Gate2F.asm
index 10236081..10236081 100644
--- a/text/maps/Route11Gate2F.asm
+++ b/text/Route11Gate2F.asm
diff --git a/text/maps/Route11_2.asm b/text/Route11_2.asm
index b9b68d6d..b9b68d6d 100644
--- a/text/maps/Route11_2.asm
+++ b/text/Route11_2.asm
diff --git a/text/maps/Route12.asm b/text/Route12.asm
index 82696fda..82696fda 100644
--- a/text/maps/Route12.asm
+++ b/text/Route12.asm
diff --git a/text/maps/Route12Gate1F.asm b/text/Route12Gate1F.asm
index 51d75539..51d75539 100644
--- a/text/maps/Route12Gate1F.asm
+++ b/text/Route12Gate1F.asm
diff --git a/text/maps/Route12Gate2F.asm b/text/Route12Gate2F.asm
index 95a89527..95a89527 100644
--- a/text/maps/Route12Gate2F.asm
+++ b/text/Route12Gate2F.asm
diff --git a/text/maps/Route12SuperRodHouse.asm b/text/Route12SuperRodHouse.asm
index 7dfaa74f..7dfaa74f 100644
--- a/text/maps/Route12SuperRodHouse.asm
+++ b/text/Route12SuperRodHouse.asm
diff --git a/text/maps/Route13.asm b/text/Route13.asm
index e2718919..e2718919 100644
--- a/text/maps/Route13.asm
+++ b/text/Route13.asm
diff --git a/text/maps/Route14.asm b/text/Route14.asm
index 18e85ed4..18e85ed4 100644
--- a/text/maps/Route14.asm
+++ b/text/Route14.asm
diff --git a/text/maps/Route15.asm b/text/Route15.asm
index a23b8500..a23b8500 100644
--- a/text/maps/Route15.asm
+++ b/text/Route15.asm
diff --git a/text/maps/Route15Gate1F.asm b/text/Route15Gate1F.asm
index 0a526142..0a526142 100644
--- a/text/maps/Route15Gate1F.asm
+++ b/text/Route15Gate1F.asm
diff --git a/text/maps/Route15Gate2F.asm b/text/Route15Gate2F.asm
index ade4a358..ade4a358 100644
--- a/text/maps/Route15Gate2F.asm
+++ b/text/Route15Gate2F.asm
diff --git a/text/maps/Route16.asm b/text/Route16.asm
index 45265829..45265829 100644
--- a/text/maps/Route16.asm
+++ b/text/Route16.asm
diff --git a/text/maps/Route16FlyHouse.asm b/text/Route16FlyHouse.asm
index 77efde87..77efde87 100644
--- a/text/maps/Route16FlyHouse.asm
+++ b/text/Route16FlyHouse.asm
diff --git a/text/maps/Route16Gate1F.asm b/text/Route16Gate1F.asm
index f548977f..f548977f 100644
--- a/text/maps/Route16Gate1F.asm
+++ b/text/Route16Gate1F.asm
diff --git a/text/maps/Route16Gate2F.asm b/text/Route16Gate2F.asm
index d76b70ca..d76b70ca 100644
--- a/text/maps/Route16Gate2F.asm
+++ b/text/Route16Gate2F.asm
diff --git a/text/maps/Route17.asm b/text/Route17.asm
index a0affd90..a0affd90 100644
--- a/text/maps/Route17.asm
+++ b/text/Route17.asm
diff --git a/text/maps/Route18.asm b/text/Route18.asm
index d09caf82..d09caf82 100644
--- a/text/maps/Route18.asm
+++ b/text/Route18.asm
diff --git a/text/maps/Route18Gate1F.asm b/text/Route18Gate1F.asm
index f2f51039..f2f51039 100644
--- a/text/maps/Route18Gate1F.asm
+++ b/text/Route18Gate1F.asm
diff --git a/text/maps/Route18Gate2F.asm b/text/Route18Gate2F.asm
index 0fd2de09..0fd2de09 100644
--- a/text/maps/Route18Gate2F.asm
+++ b/text/Route18Gate2F.asm
diff --git a/text/maps/Route19.asm b/text/Route19.asm
index 244e31d0..244e31d0 100644
--- a/text/maps/Route19.asm
+++ b/text/Route19.asm
diff --git a/text/maps/Route2.asm b/text/Route2.asm
index dd7becc0..dd7becc0 100644
--- a/text/maps/Route2.asm
+++ b/text/Route2.asm
diff --git a/text/maps/Route20.asm b/text/Route20.asm
index 1ccf0b6c..1ccf0b6c 100644
--- a/text/maps/Route20.asm
+++ b/text/Route20.asm
diff --git a/text/maps/Route21.asm b/text/Route21.asm
index 3451953f..3451953f 100644
--- a/text/maps/Route21.asm
+++ b/text/Route21.asm
diff --git a/text/maps/Route22.asm b/text/Route22.asm
index 3a1d28f0..3a1d28f0 100644
--- a/text/maps/Route22.asm
+++ b/text/Route22.asm
diff --git a/text/maps/Route22Gate.asm b/text/Route22Gate.asm
index ce3f6824..ce3f6824 100644
--- a/text/maps/Route22Gate.asm
+++ b/text/Route22Gate.asm
diff --git a/text/maps/Route23.asm b/text/Route23.asm
index a7e534de..a7e534de 100644
--- a/text/maps/Route23.asm
+++ b/text/Route23.asm
diff --git a/text/maps/Route24.asm b/text/Route24.asm
index c14b689a..c14b689a 100644
--- a/text/maps/Route24.asm
+++ b/text/Route24.asm
diff --git a/text/maps/Route24_2.asm b/text/Route24_2.asm
index 325dea13..325dea13 100644
--- a/text/maps/Route24_2.asm
+++ b/text/Route24_2.asm
diff --git a/text/maps/Route25.asm b/text/Route25.asm
index 325ab348..325ab348 100644
--- a/text/maps/Route25.asm
+++ b/text/Route25.asm
diff --git a/text/maps/Route2Gate.asm b/text/Route2Gate.asm
index 566830f8..566830f8 100644
--- a/text/maps/Route2Gate.asm
+++ b/text/Route2Gate.asm
diff --git a/text/maps/Route2TradeHouse.asm b/text/Route2TradeHouse.asm
index 46fc1062..46fc1062 100644
--- a/text/maps/Route2TradeHouse.asm
+++ b/text/Route2TradeHouse.asm
diff --git a/text/maps/Route3.asm b/text/Route3.asm
index 966a0786..966a0786 100644
--- a/text/maps/Route3.asm
+++ b/text/Route3.asm
diff --git a/text/maps/Route4.asm b/text/Route4.asm
index 0a36f4cd..0a36f4cd 100644
--- a/text/maps/Route4.asm
+++ b/text/Route4.asm
diff --git a/text/maps/Route5.asm b/text/Route5.asm
index 54ff0f84..54ff0f84 100644
--- a/text/maps/Route5.asm
+++ b/text/Route5.asm
diff --git a/text/maps/Route6.asm b/text/Route6.asm
index c48b5d3d..c48b5d3d 100644
--- a/text/maps/Route6.asm
+++ b/text/Route6.asm
diff --git a/text/maps/Route7.asm b/text/Route7.asm
index 6500be96..6500be96 100644
--- a/text/maps/Route7.asm
+++ b/text/Route7.asm
diff --git a/text/maps/Route8.asm b/text/Route8.asm
index 57a9a5f9..57a9a5f9 100644
--- a/text/maps/Route8.asm
+++ b/text/Route8.asm
diff --git a/text/maps/Route9.asm b/text/Route9.asm
index 9975000d..9975000d 100644
--- a/text/maps/Route9.asm
+++ b/text/Route9.asm
diff --git a/text/maps/SSAnne1F.asm b/text/SSAnne1F.asm
index 2bbdcbac..2bbdcbac 100644
--- a/text/maps/SSAnne1F.asm
+++ b/text/SSAnne1F.asm
diff --git a/text/maps/SSAnne1FRooms.asm b/text/SSAnne1FRooms.asm
index 7a09303e..7a09303e 100644
--- a/text/maps/SSAnne1FRooms.asm
+++ b/text/SSAnne1FRooms.asm
diff --git a/text/maps/SSAnne2F.asm b/text/SSAnne2F.asm
index 58d804ba..58d804ba 100644
--- a/text/maps/SSAnne2F.asm
+++ b/text/SSAnne2F.asm
diff --git a/text/maps/SSAnne2FRooms.asm b/text/SSAnne2FRooms.asm
index a9be8cee..a9be8cee 100644
--- a/text/maps/SSAnne2FRooms.asm
+++ b/text/SSAnne2FRooms.asm
diff --git a/text/maps/SSAnne3F.asm b/text/SSAnne3F.asm
index 76490594..76490594 100644
--- a/text/maps/SSAnne3F.asm
+++ b/text/SSAnne3F.asm
diff --git a/text/maps/SSAnneB1FRooms.asm b/text/SSAnneB1FRooms.asm
index 7df629b5..7df629b5 100644
--- a/text/maps/SSAnneB1FRooms.asm
+++ b/text/SSAnneB1FRooms.asm
diff --git a/text/maps/SSAnneBow.asm b/text/SSAnneBow.asm
index 76cd5631..76cd5631 100644
--- a/text/maps/SSAnneBow.asm
+++ b/text/SSAnneBow.asm
diff --git a/text/maps/SSAnneCaptainsRoom.asm b/text/SSAnneCaptainsRoom.asm
index 7bf004da..7bf004da 100644
--- a/text/maps/SSAnneCaptainsRoom.asm
+++ b/text/SSAnneCaptainsRoom.asm
diff --git a/text/maps/SSAnneKitchen.asm b/text/SSAnneKitchen.asm
index 7fcc9973..7fcc9973 100644
--- a/text/maps/SSAnneKitchen.asm
+++ b/text/SSAnneKitchen.asm
diff --git a/text/maps/SafariZoneCenter.asm b/text/SafariZoneCenter.asm
index 09918f93..09918f93 100644
--- a/text/maps/SafariZoneCenter.asm
+++ b/text/SafariZoneCenter.asm
diff --git a/text/maps/SafariZoneCenterRestHouse.asm b/text/SafariZoneCenterRestHouse.asm
index b6c87818..b6c87818 100644
--- a/text/maps/SafariZoneCenterRestHouse.asm
+++ b/text/SafariZoneCenterRestHouse.asm
diff --git a/text/maps/SafariZoneEast.asm b/text/SafariZoneEast.asm
index eebe5de7..eebe5de7 100644
--- a/text/maps/SafariZoneEast.asm
+++ b/text/SafariZoneEast.asm
diff --git a/text/maps/SafariZoneEastRestHouse.asm b/text/SafariZoneEastRestHouse.asm
index d5f7abc8..d5f7abc8 100644
--- a/text/maps/SafariZoneEastRestHouse.asm
+++ b/text/SafariZoneEastRestHouse.asm
diff --git a/text/maps/SafariZoneGate.asm b/text/SafariZoneGate.asm
index 5c143891..5c143891 100644
--- a/text/maps/SafariZoneGate.asm
+++ b/text/SafariZoneGate.asm
diff --git a/text/maps/SafariZoneNorth.asm b/text/SafariZoneNorth.asm
index 1e148f0b..1e148f0b 100644
--- a/text/maps/SafariZoneNorth.asm
+++ b/text/SafariZoneNorth.asm
diff --git a/text/maps/SafariZoneNorthRestHouse.asm b/text/SafariZoneNorthRestHouse.asm
index 93f02c8f..93f02c8f 100644
--- a/text/maps/SafariZoneNorthRestHouse.asm
+++ b/text/SafariZoneNorthRestHouse.asm
diff --git a/text/maps/SafariZoneSecretHouse.asm b/text/SafariZoneSecretHouse.asm
index 3df79d90..3df79d90 100644
--- a/text/maps/SafariZoneSecretHouse.asm
+++ b/text/SafariZoneSecretHouse.asm
diff --git a/text/maps/SafariZoneWest.asm b/text/SafariZoneWest.asm
index dcb2fe6c..dcb2fe6c 100644
--- a/text/maps/SafariZoneWest.asm
+++ b/text/SafariZoneWest.asm
diff --git a/text/maps/SafariZoneWestRestHouse.asm b/text/SafariZoneWestRestHouse.asm
index 94802b13..94802b13 100644
--- a/text/maps/SafariZoneWestRestHouse.asm
+++ b/text/SafariZoneWestRestHouse.asm
diff --git a/text/maps/SaffronCity.asm b/text/SaffronCity.asm
index a0422c8c..a0422c8c 100644
--- a/text/maps/SaffronCity.asm
+++ b/text/SaffronCity.asm
diff --git a/text/maps/SaffronGates.asm b/text/SaffronGates.asm
index 9bb4601f..9bb4601f 100644
--- a/text/maps/SaffronGates.asm
+++ b/text/SaffronGates.asm
diff --git a/text/maps/SaffronGym.asm b/text/SaffronGym.asm
index 6f49a331..6f49a331 100644
--- a/text/maps/SaffronGym.asm
+++ b/text/SaffronGym.asm
diff --git a/text/maps/SaffronMart.asm b/text/SaffronMart.asm
index a43b0d94..a43b0d94 100644
--- a/text/maps/SaffronMart.asm
+++ b/text/SaffronMart.asm
diff --git a/text/maps/SaffronPidgeyHouse.asm b/text/SaffronPidgeyHouse.asm
index 214bf089..214bf089 100644
--- a/text/maps/SaffronPidgeyHouse.asm
+++ b/text/SaffronPidgeyHouse.asm
diff --git a/text/maps/SaffronPokecenter.asm b/text/SaffronPokecenter.asm
index 6548aff8..6548aff8 100644
--- a/text/maps/SaffronPokecenter.asm
+++ b/text/SaffronPokecenter.asm
diff --git a/text/maps/SeafoamIslandsB4F.asm b/text/SeafoamIslandsB4F.asm
index 608d165f..608d165f 100644
--- a/text/maps/SeafoamIslandsB4F.asm
+++ b/text/SeafoamIslandsB4F.asm
diff --git a/text/maps/SilphCo10F.asm b/text/SilphCo10F.asm
index e916c64a..e916c64a 100644
--- a/text/maps/SilphCo10F.asm
+++ b/text/SilphCo10F.asm
diff --git a/text/maps/SilphCo11F.asm b/text/SilphCo11F.asm
index fbaa6086..fbaa6086 100644
--- a/text/maps/SilphCo11F.asm
+++ b/text/SilphCo11F.asm
diff --git a/text/maps/SilphCo1F.asm b/text/SilphCo1F.asm
index 1ef80189..1ef80189 100644
--- a/text/maps/SilphCo1F.asm
+++ b/text/SilphCo1F.asm
diff --git a/text/maps/SilphCo2F.asm b/text/SilphCo2F.asm
index bd87630a..bd87630a 100644
--- a/text/maps/SilphCo2F.asm
+++ b/text/SilphCo2F.asm
diff --git a/text/maps/SilphCo3F.asm b/text/SilphCo3F.asm
index b6a023f9..b6a023f9 100644
--- a/text/maps/SilphCo3F.asm
+++ b/text/SilphCo3F.asm
diff --git a/text/maps/SilphCo4F.asm b/text/SilphCo4F.asm
index 5b484ec7..5b484ec7 100644
--- a/text/maps/SilphCo4F.asm
+++ b/text/SilphCo4F.asm
diff --git a/text/maps/SilphCo5F.asm b/text/SilphCo5F.asm
index dab42539..dab42539 100644
--- a/text/maps/SilphCo5F.asm
+++ b/text/SilphCo5F.asm
diff --git a/text/maps/SilphCo5F_2.asm b/text/SilphCo5F_2.asm
index 3c1b8ead..3c1b8ead 100644
--- a/text/maps/SilphCo5F_2.asm
+++ b/text/SilphCo5F_2.asm
diff --git a/text/maps/SilphCo6F.asm b/text/SilphCo6F.asm
index 90456b5c..90456b5c 100644
--- a/text/maps/SilphCo6F.asm
+++ b/text/SilphCo6F.asm
diff --git a/text/maps/SilphCo7F.asm b/text/SilphCo7F.asm
index 1cc2bc30..1cc2bc30 100644
--- a/text/maps/SilphCo7F.asm
+++ b/text/SilphCo7F.asm
diff --git a/text/maps/SilphCo8F.asm b/text/SilphCo8F.asm
index fabae5e6..fabae5e6 100644
--- a/text/maps/SilphCo8F.asm
+++ b/text/SilphCo8F.asm
diff --git a/text/maps/SilphCo9F.asm b/text/SilphCo9F.asm
index fd1aa91c..fd1aa91c 100644
--- a/text/maps/SilphCo9F.asm
+++ b/text/SilphCo9F.asm
diff --git a/text/maps/UndergroundPathRoute6.asm b/text/UndergroundPathRoute6.asm
index dacc44f7..dacc44f7 100644
--- a/text/maps/UndergroundPathRoute6.asm
+++ b/text/UndergroundPathRoute6.asm
diff --git a/text/maps/UndergroundPathRoute7.asm b/text/UndergroundPathRoute7.asm
index 5cde3614..5cde3614 100644
--- a/text/maps/UndergroundPathRoute7.asm
+++ b/text/UndergroundPathRoute7.asm
diff --git a/text/maps/UndergroundPathRoute7Copy.asm b/text/UndergroundPathRoute7Copy.asm
index 4e0dc3ca..4e0dc3ca 100644
--- a/text/maps/UndergroundPathRoute7Copy.asm
+++ b/text/UndergroundPathRoute7Copy.asm
diff --git a/text/maps/UndergroundPathRoute8.asm b/text/UndergroundPathRoute8.asm
index da785c8e..da785c8e 100644
--- a/text/maps/UndergroundPathRoute8.asm
+++ b/text/UndergroundPathRoute8.asm
diff --git a/text/maps/VermilionCity.asm b/text/VermilionCity.asm
index 1cbc535c..1cbc535c 100644
--- a/text/maps/VermilionCity.asm
+++ b/text/VermilionCity.asm
diff --git a/text/maps/VermilionDock.asm b/text/VermilionDock.asm
index 5d998e82..5d998e82 100644
--- a/text/maps/VermilionDock.asm
+++ b/text/VermilionDock.asm
diff --git a/text/maps/VermilionGym.asm b/text/VermilionGym.asm
index 14e0bcea..14e0bcea 100644
--- a/text/maps/VermilionGym.asm
+++ b/text/VermilionGym.asm
diff --git a/text/maps/VermilionGym_2.asm b/text/VermilionGym_2.asm
index 50da9719..50da9719 100644
--- a/text/maps/VermilionGym_2.asm
+++ b/text/VermilionGym_2.asm
diff --git a/text/maps/VermilionMart.asm b/text/VermilionMart.asm
index 10743989..10743989 100644
--- a/text/maps/VermilionMart.asm
+++ b/text/VermilionMart.asm
diff --git a/text/maps/VermilionOldRodHouse.asm b/text/VermilionOldRodHouse.asm
index 32526e36..32526e36 100644
--- a/text/maps/VermilionOldRodHouse.asm
+++ b/text/VermilionOldRodHouse.asm
diff --git a/text/maps/VermilionPidgeyHouse.asm b/text/VermilionPidgeyHouse.asm
index 91c18708..91c18708 100644
--- a/text/maps/VermilionPidgeyHouse.asm
+++ b/text/VermilionPidgeyHouse.asm
diff --git a/text/maps/VermilionPokecenter.asm b/text/VermilionPokecenter.asm
index c9e9a581..c9e9a581 100644
--- a/text/maps/VermilionPokecenter.asm
+++ b/text/VermilionPokecenter.asm
diff --git a/text/maps/VictoryRoad1F.asm b/text/VictoryRoad1F.asm
index 1523db88..1523db88 100644
--- a/text/maps/VictoryRoad1F.asm
+++ b/text/VictoryRoad1F.asm
diff --git a/text/maps/VictoryRoad2F.asm b/text/VictoryRoad2F.asm
index ec9dcf4f..ec9dcf4f 100644
--- a/text/maps/VictoryRoad2F.asm
+++ b/text/VictoryRoad2F.asm
diff --git a/text/maps/VictoryRoad3F.asm b/text/VictoryRoad3F.asm
index 07e0be70..07e0be70 100644
--- a/text/maps/VictoryRoad3F.asm
+++ b/text/VictoryRoad3F.asm
diff --git a/text/maps/ViridianCity.asm b/text/ViridianCity.asm
index 67ab5c40..67ab5c40 100644
--- a/text/maps/ViridianCity.asm
+++ b/text/ViridianCity.asm
diff --git a/text/maps/ViridianForest.asm b/text/ViridianForest.asm
index 813b193a..813b193a 100644
--- a/text/maps/ViridianForest.asm
+++ b/text/ViridianForest.asm
diff --git a/text/maps/ViridianForestNorthGate.asm b/text/ViridianForestNorthGate.asm
index ab6a5a1d..ab6a5a1d 100644
--- a/text/maps/ViridianForestNorthGate.asm
+++ b/text/ViridianForestNorthGate.asm
diff --git a/text/maps/ViridianForestSouthGate.asm b/text/ViridianForestSouthGate.asm
index c1a8df22..c1a8df22 100644
--- a/text/maps/ViridianForestSouthGate.asm
+++ b/text/ViridianForestSouthGate.asm
diff --git a/text/maps/ViridianGym.asm b/text/ViridianGym.asm
index 4c7b5207..4c7b5207 100644
--- a/text/maps/ViridianGym.asm
+++ b/text/ViridianGym.asm
diff --git a/text/maps/ViridianMart.asm b/text/ViridianMart.asm
index 61750afe..61750afe 100644
--- a/text/maps/ViridianMart.asm
+++ b/text/ViridianMart.asm
diff --git a/text/maps/ViridianNicknameHouse.asm b/text/ViridianNicknameHouse.asm
index 757f597a..757f597a 100644
--- a/text/maps/ViridianNicknameHouse.asm
+++ b/text/ViridianNicknameHouse.asm
diff --git a/text/maps/ViridianPokecenter.asm b/text/ViridianPokecenter.asm
index 4ac18bf6..4ac18bf6 100644
--- a/text/maps/ViridianPokecenter.asm
+++ b/text/ViridianPokecenter.asm
diff --git a/text/maps/ViridianSchoolHouse.asm b/text/ViridianSchoolHouse.asm
index f6041e0d..f6041e0d 100644
--- a/text/maps/ViridianSchoolHouse.asm
+++ b/text/ViridianSchoolHouse.asm
diff --git a/text/maps/WardensHouse.asm b/text/WardensHouse.asm
index 7efddb90..7efddb90 100644
--- a/text/maps/WardensHouse.asm
+++ b/text/WardensHouse.asm
diff --git a/text/oakspeech.asm b/text/oakspeech.asm
deleted file mode 100644
index e006d16f..00000000
--- 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 "<PLAYER>!"
-
- 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/unused_names.asm b/text/unused_names.asm
deleted file mode 100644
index 4aca7ca2..00000000
--- 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 "エクセレント"
diff --git a/wram.asm b/wram.asm
index 40e1604a..e2fa05a6 100755
--- a/wram.asm
+++ b/wram.asm
@@ -1,63 +1,6 @@
INCLUDE "constants.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
+INCLUDE "macros/wram.asm"
SECTION "WRAM Bank 0", WRAM0
@@ -228,21 +171,6 @@ wSpriteStateData1::
; C1xD
; C1xE
; C1xF
-spritestatedata1: MACRO
-\1PictureID:: db
-\1MovementStatus:: db
-\1ImageIndex:: db
-\1YStepVector:: db
-\1YPixels:: db
-\1XStepVector:: db
-\1XPixels:: db
-\1IntraAnimFrameCounter:: db
-\1AnimFrameCounter:: db
-\1FacingDirection:: db
- ds 6
-\1End::
-endm
-
wSpritePlayerStateData1:: spritestatedata1 wSpritePlayerStateData1
wSprite01StateData1:: spritestatedata1 wSprite01StateData1
wSprite02StateData1:: spritestatedata1 wSprite02StateData1
@@ -280,22 +208,6 @@ wSpriteStateData2::
; C2xD
; C2xE: sprite image base offset (in video ram, player always has value 1, used to compute c1x2)
; C2xF
-spritestatedata2: MACRO
-\1WalkAnimationCounter:: db
- ds 1
-\1YDisplacement:: db
-\1XDisplacement:: db
-\1MapY:: db
-\1MapX:: db
-\1MovementByte1:: db
-\1GrassPriority:: db
-\1MovementDelay:: db
- ds 5
-\1ImageBaseOffset:: db
- ds 1
-\1End::
-endm
-
wSpritePlayerStateData2:: spritestatedata2 wSpritePlayerStateData2
wSprite01StateData2:: spritestatedata2 wSprite01StateData2
wSprite02StateData2:: spritestatedata2 wSprite02StateData2
@@ -1050,7 +962,7 @@ wOptionsCancelCursorX::
ds 1
wDayCarePerLevelCost::
-; 2-byte BCD number (always set to $0100)
+; 2-byte BCD number (always set to $100)
wHoFTeamIndex2::
@@ -1985,7 +1897,7 @@ wSpriteOutputBitOffset:: ; determines where in the output byte the two bits are
ds 1
wSpriteLoadFlags::
-; bit 0 determines used buffer (0 -> $a188, 1 -> $a310)
+; 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::
@@ -3185,7 +3097,7 @@ wBoxSpecies:: ds MONS_PER_BOX + 1
wBoxMons::
wBoxMon1:: box_struct wBoxMon1
-wBoxMon2:: ds box_struct_length * (MONS_PER_BOX + -1)
+wBoxMon2:: ds BOX_STRUCT_LENGTH * (MONS_PER_BOX - 1)
wBoxMonOT:: ds NAME_LENGTH * MONS_PER_BOX
wBoxMonNicks:: ds NAME_LENGTH * MONS_PER_BOX