From 14f08c941d59405ec7e41988d0e598e672b1a7ab Mon Sep 17 00:00:00 2001 From: Martha Schilling Date: Sun, 25 Aug 2024 19:39:01 +0100 Subject: [PATCH] The Big One Again Pushing everything I've done, currently doesn't build because the Galarian Birds filesize is too thicc for the section but I need to push this before I go mad --- README.md | 5 +- audio.asm | 3 +- audio/play_battle_music.asm | 9 +- constants/item_constants.asm | 18 +- constants/map_constants.asm | 4 +- constants/menu_constants.asm | 2 +- constants/music_constants.asm | 3 +- crysaudio/music/RBY/galarbirds.asm | 3053 +++++++++++++++++ crysaudio/music_pointers_red.asm | 3 +- data/credits/credits_text.asm | 6 +- data/items/key_items.asm | 6 +- data/items/use_overworld.asm | 5 +- data/maps/headers/FishingGuruHouse.asm | 2 + data/maps/headers/Route12SuperRodHouse.asm | 2 - data/maps/map_header_banks.asm | 2 +- data/maps/map_header_pointers.asm | 2 +- data/maps/objects/ChampionsRoom.asm | 6 +- ...SuperRodHouse.asm => FishingGuruHouse.asm} | 4 +- data/maps/objects/Route24.asm | 2 +- data/maps/town_map_entries.asm | 2 +- data/text/text_2.asm | 12 +- data/text/text_6.asm | 5 + data/trainers/parties.asm | 2 +- data/wild/fishing_rod.asm | 48 + data/wild/good_rod.asm | 5 - data/wild/super_rod.asm | 159 - engine/battle/core.asm | 185 + engine/battle/effects.asm | 1 - engine/battle/experience.asm | 70 + engine/debug/debug_party.asm | 2 +- engine/items/item_effects.asm | 128 +- engine/menus/players_pc.asm | 34 +- engine/menus/start_sub_menus.asm | 6 + engine/menus/swap_items.asm | 17 +- engine/movie/title.asm | 8 +- engine/overworld/movement.asm | 21 +- gfx/battle/battle_hud_3.png | Bin 93 -> 185 bytes gfx/blocksets/gym.bst | Bin 1856 -> 1936 bytes gfx/font.asm | 3 + gfx/font/exp_bar.png | Bin 0 -> 199 bytes gfx/pokemon/back/meltanb.png | Bin 407 -> 552 bytes gfx/pokemon/back/wiglettb.png | Bin 522 -> 541 bytes gfx/tilesets.asm | 10 +- home/list_menu.asm | 8 +- home/load_font.asm | 9 + maps.asm | 8 +- maps/ChampionsRoom.blk | 2 +- ...SuperRodHouse.blk => FishingGuruHouse.blk} | 0 ram/wram.asm | 8 +- scripts/ChampionsRoom.asm | 9 +- scripts/FishingGuruHouse.asm | 62 + scripts/Route12SuperRodHouse.asm | 62 - scripts/SilphGauntlet7F.asm | 2 +- text.asm | 2 +- ...SuperRodHouse.asm => FishingGuruHouse.asm} | 12 +- text/FuchsiaGym_2.asm | 2 +- text/VermilionGym_2.asm | 5 +- 57 files changed, 3676 insertions(+), 370 deletions(-) create mode 100644 crysaudio/music/RBY/galarbirds.asm create mode 100644 data/maps/headers/FishingGuruHouse.asm delete mode 100644 data/maps/headers/Route12SuperRodHouse.asm rename data/maps/objects/{Route12SuperRodHouse.asm => FishingGuruHouse.asm} (79%) create mode 100644 data/wild/fishing_rod.asm delete mode 100644 data/wild/good_rod.asm delete mode 100644 data/wild/super_rod.asm create mode 100644 gfx/font/exp_bar.png rename maps/{Route12SuperRodHouse.blk => FishingGuruHouse.blk} (100%) create mode 100644 scripts/FishingGuruHouse.asm delete mode 100644 scripts/Route12SuperRodHouse.asm rename text/{Route12SuperRodHouse.asm => FishingGuruHouse.asm} (83%) diff --git a/README.md b/README.md index 049dfb11..bcd6fec5 100644 --- a/README.md +++ b/README.md @@ -380,16 +380,19 @@ If you use our implementations of anything at all, it is encouraged to submit Pu * erosunica - Assistance with developing Celadon University & Citrine City, plus sources for various subjects. * Chatot4444 - Assisting with gym scaling code. * Enigami - Reworking the Battle Tent's RestoreTeam code to make it work properly. -* HeadBoiSkye - Helped with writing NPC dialogue and Pokédex entries for new Pokémon such as Orfry. +* HunnieBuns (originally HeadBoiSkye) - Helped with writing NPC dialogue and Pokédex entries for new Pokémon such as Orfry. * ZumiIsawhat? - Restorations of prototype OST. * FrenchOrange - Reconstructions of various overworld prototype sprites. * Helix Chamber (RacieBeep & Orchid) - Prototype Pokémon sprites. Precise credits are available [here](https://cdn.discordapp.com/attachments/1014321591657709569/1015347305483878521/unknown.png) and below. * Vortiene/Vortyne - Reused a bit of code from their pureRGB hack, including their Trainer AI, move animations and Pokedex stats page. Assisted in bug fixes. Used their sprite sheet generator. * wrulfy - Reused a bit of code from their Carmine Red hack to improve a handful of move animations, most notably Drill Peck and Horn Drill. Technical advice. +* TheSmithPlays - Reused a bit of code from their Yellow Legacy hack. +* ZuperZACH, Isona, Karlos, Reader Dragon, and Alakadoof - Sprite artists creating the set of improved backsprites taken from Yellow Legacy. * Pigu-A, RevoSucks, walle303 - Contributors to Pokemon Anniversary Red's repository, where we reused the Green/FemC sprites and the Battle Tent. * Rangi - Reused a bit of code from their Red* / Blue* hack to make HMs usable in the overworld, and generally being an amazing individual. * BGVC - Composed the original 4-channel version of the unused Koukan (trading) music. * Rainbow Metal Pigeon - Bug fix relating to Gym Leader rematches. +* SoupPotato - Borrowed code to make a functioning EXP bar. * SatoMew - Technical advice. * suloku - Technical advice regarding setting where you spawn after beating the Elite Four, Exp. All modernisation code * 大吟醸 (Daiginjo) - Assistance in translating the Tamamushi University Student Book, allowing for an accurate adaptation of the location. diff --git a/audio.asm b/audio.asm index 59f3d62e..69053194 100644 --- a/audio.asm +++ b/audio.asm @@ -384,7 +384,8 @@ INCLUDE "crysaudio/music/RBY/giovannisroom.asm" INCLUDE "crysaudio/music/RBY/rocketrby.asm" INCLUDE "crysaudio/music/RBY/giovannibattle.asm" INCLUDE "crysaudio/music/RBY/elitefourbattle.asm" -INCLUDE "crysaudio/music/RBY/champrival.asm" +; INCLUDE "crysaudio/music/RBY/champrival.asm" +INCLUDE "crysaudio/music/RBY/galarbirds.asm" SECTION "TCG Songs 1", ROMX diff --git a/audio/play_battle_music.asm b/audio/play_battle_music.asm index a4d831b2..60da526e 100644 --- a/audio/play_battle_music.asm +++ b/audio/play_battle_music.asm @@ -35,11 +35,11 @@ PlayBattleMusic:: cp DRAGONITE jp z, .legendaryBattle cp ARTICUNO_G - jp z, .legendaryBattle + jp z, .birdsBattle cp ZAPDOS_G - jp z, .legendaryBattle + jp z, .birdsBattle cp MOLTRES_G - jp z, .legendaryBattle + jp z, .birdsBattle cp OPP_ID_OFFSET jp c, .wildBattle cp OPP_YUJIROU @@ -107,6 +107,9 @@ PlayBattleMusic:: .legendaryBattle ld a, MUSIC_LEGENDARYBATTLE jr .playSong +.birdsBattle + ld a, MUSIC_GALAR_BIRDS + jr .playSong .wildBattle ld a, MUSIC_WILD_BATTLE .playSong diff --git a/constants/item_constants.asm b/constants/item_constants.asm index 9e4046eb..2549a452 100644 --- a/constants/item_constants.asm +++ b/constants/item_constants.asm @@ -85,25 +85,25 @@ DEF SAFARI_ROCK EQU $16 ; overload const LIFT_KEY ; $4A const EXP_ALL ; $4B const CANDY_JAR ; $4C - was old rod - const BOTTLE_CAP ; $4D - was good rod - const SUPER_ROD ; $4E + const BOTTLE_CAP ; $4D - was good rod + const FISHING_ROD ; $4E const PP_UP ; $4F const ETHER ; $50 const MAX_ETHER ; $51 const ELIXER ; $52 const MAX_ELIXER ; $53 const ICE_STONE ; $54 - const PROTECTOR ; $55 + const PROTECTOR ; $55 const POISON_STONE ; $56 const BLK_AUGURITE ; $57 const DUBIOUS_DISC ; $58 const CITRINE_PASS ; $59 - const OLD_SEA_MAP ; $5A - const UP_GRADE ; $5B - const METAL_COAT ; $5C - const MYSTERY_BOX ; $5D - const TEA ; $5E - const SILPHLETTER ; $5F + const OLD_SEA_MAP ; $5A + const UP_GRADE ; $5B + const METAL_COAT ; $5C + const MYSTERY_BOX ; $5D + const TEA ; $5E + const SILPHLETTER ; $5F DEF NUM_ITEMS EQU const_value - 1 ; elevator floors use item IDs diff --git a/constants/map_constants.asm b/constants/map_constants.asm index e4a607bc..154b4bc6 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -142,7 +142,7 @@ DEF FIRST_INDOOR_MAP EQU const_value map_const MT_MOON_CRATER, 25, 25 ; $77 - Was UNUSED_MAP_75 map_const HALL_OF_FAME, 5, 4 ; $78 map_const UNDERGROUND_PATH_NORTH_SOUTH, 4, 24 ; $79 ; UndergroundPathNorthSouth.blk is actually 4x23 - map_const CHAMPIONS_ROOM, 4, 4 ; $7A + map_const CHAMPIONS_ROOM, 5, 6 ; $7A map_const UNDERGROUND_PATH_WEST_EAST, 25, 4 ; $7B map_const CELADON_MART_1F, 10, 4 ; $7C map_const CELADON_MART_2F, 10, 4 ; $7D @@ -210,7 +210,7 @@ DEF FIRST_INDOOR_MAP EQU const_value map_const ROUTE_16_GATE_1F, 4, 7 ; $BB map_const ROUTE_16_GATE_2F, 4, 4 ; $BC map_const ROUTE_16_FLY_HOUSE, 4, 4 ; $BD - map_const ROUTE_12_SUPER_ROD_HOUSE, 4, 4 ; $BE + map_const FISHING_GURU_HOUSE, 4, 4 ; $BE map_const ROUTE_18_GATE_1F, 4, 5 ; $BF map_const ROUTE_18_GATE_2F, 4, 4 ; $C0 map_const SEAFOAM_ISLANDS_1F, 15, 9 ; $C1 diff --git a/constants/menu_constants.asm b/constants/menu_constants.asm index 9d7a3fc9..569bc05f 100644 --- a/constants/menu_constants.asm +++ b/constants/menu_constants.asm @@ -1,4 +1,4 @@ -DEF BAG_ITEM_CAPACITY EQU 30 +DEF BAG_ITEM_CAPACITY EQU 50 DEF PC_ITEM_CAPACITY EQU 50 ; text box IDs diff --git a/constants/music_constants.asm b/constants/music_constants.asm index 0369e749..51b1cb14 100644 --- a/constants/music_constants.asm +++ b/constants/music_constants.asm @@ -68,7 +68,8 @@ const MUSIC_ROCKET_RBY const MUSIC_GIOVANNI_BATTLE const MUSIC_ELITE_FOUR_BATTLE - const MUSIC_CHAMP_RIVAL + ; const MUSIC_CHAMP_RIVAL + const MUSIC_GALAR_BIRDS const NUM_SONGS diff --git a/crysaudio/music/RBY/galarbirds.asm b/crysaudio/music/RBY/galarbirds.asm new file mode 100644 index 00000000..edbff763 --- /dev/null +++ b/crysaudio/music/RBY/galarbirds.asm @@ -0,0 +1,3053 @@ +Music_GalarBirds: + channel_count 4 + channel 1, Music_GalarBirds_Ch1 + channel 2, Music_GalarBirds_Ch2 + channel 3, Music_GalarBirds_Ch3 + channel 4, Music_GalarBirds_Ch4 + +Music_GalarBirds_Ch1: + tempo 256 + volume 7, 7 + note_type 12, 15, 8 +.mainLoop: + tempo 110 + note_type 6, 15, 8 + octave 5 + vibrato 0, 0, 1 + duty_cycle 2 + note C#, 1 + rest 1 + octave 4 + note A#, 1 + rest 1 + note F_, 1 + rest 1 + note A#, 1 + rest 1 + octave 5 + volume_envelope 14, 8 + note C#, 1 + rest 1 + octave 4 + note A#, 1 + rest 1 + note F_, 1 + rest 1 + note A#, 1 + rest 1 + octave 5 + volume_envelope 13, 8 + note C#, 1 + rest 1 + octave 4 + note A#, 1 + rest 1 + note F_, 1 + rest 1 + note A#, 1 + rest 1 + octave 5 + volume_envelope 12, 8 + note C#, 1 + rest 1 + octave 4 + note A#, 1 + rest 1 + note F_, 1 + rest 1 + note A#, 1 + rest 1 + octave 5 + volume_envelope 11, 8 + note C#, 1 + rest 1 + octave 4 + note A#, 1 + rest 1 + note F_, 1 + rest 1 + note A#, 1 + rest 1 + octave 5 + volume_envelope 10, 8 + note C#, 1 + rest 1 + octave 4 + note A#, 1 + rest 1 + note F_, 1 + rest 1 + note A#, 1 + rest 1 + octave 5 + volume_envelope 9, 8 + note C#, 1 + rest 1 + octave 4 + note A#, 1 + rest 1 + note F_, 1 + rest 1 + note A#, 1 + rest 1 + octave 5 + volume_envelope 8, 8 + note C#, 1 + rest 1 + octave 4 + note A#, 1 + rest 1 + note F_, 1 + rest 1 + note A#, 1 + rest 1 + octave 5 + volume_envelope 7, 8 + note C#, 1 + rest 1 + octave 4 + note A#, 1 + rest 1 + note F_, 1 + rest 1 + note A#, 1 + rest 1 + octave 5 + volume_envelope 6, 8 + note C#, 1 + rest 1 + octave 4 + note A#, 1 + rest 1 + note F_, 1 + rest 1 + note A#, 1 + rest 1 + octave 5 + volume_envelope 5, 8 + note C#, 1 + rest 1 + octave 4 + note A#, 1 + rest 1 + note F_, 1 + rest 1 + note A#, 1 + rest 1 + octave 5 + volume_envelope 4, 8 + note C#, 1 + rest 1 + octave 4 + note A#, 1 + rest 1 + note F_, 1 + rest 1 + note A#, 1 + rest 1 + note_type 12, 10, 8 + note D_, 2 + rest 4 + octave 3 + note B_, 2 + rest 2 + octave 4 + note D_, 2 + rest 2 + octave 3 + note D_, 2 + rest 8 + octave 4 + volume_envelope 5, 8 + note A#, 1 + octave 5 + volume_envelope 6, 8 + note D#, 1 + volume_envelope 7, 8 + note F_, 1 + volume_envelope 8, 8 + note D#, 1 + volume_envelope 9, 8 + note F_, 1 + volume_envelope 10, 8 + note A#, 1 + octave 6 + note C_, 1 + octave 5 + note A#, 1 + note A#, 1 + octave 6 + note C_, 1 + octave 5 + volume_envelope 9, 8 + note A#, 1 + volume_envelope 8, 8 + note F_, 1 + volume_envelope 7, 8 + note F_, 1 + volume_envelope 6, 8 + note A#, 1 + volume_envelope 5, 8 + note F_, 1 + volume_envelope 4, 8 + note C_, 2 + volume_envelope 3, 8 + note F_, 1 + note C_, 1 + octave 4 + volume_envelope 2, 8 + note A#, 1 + note F_, 1 + volume_envelope 1, 8 + note C_, 1 + octave 3 + note A#, 1 + note F_, 1 + note C#, 1 + octave 2 + note A#, 1 + octave 3 + note C#, 1 + note D#, 1 + volume_envelope 2, 8 + note F_, 1 + note A#, 1 + octave 4 + volume_envelope 3, 8 + note C_, 1 + octave 3 + volume_envelope 4, 8 + note A#, 1 + octave 4 + volume_envelope 5, 8 + note C#, 1 + volume_envelope 6, 8 + note F_, 1 + volume_envelope 7, 8 + note F#, 1 + volume_envelope 8, 8 + note F_, 1 + volume_envelope 9, 8 + note A#, 1 + octave 5 + volume_envelope 10, 8 + note C_, 1 + note D#, 1 + note F_, 1 + note F#, 1 + note G#, 1 + note F#, 1 + volume_envelope 9, 8 + note C#, 1 + volume_envelope 8, 8 + note C#, 1 + volume_envelope 7, 8 + note F#, 1 + volume_envelope 6, 8 + note C#, 1 + octave 4 + volume_envelope 5, 8 + note F#, 1 + volume_envelope 4, 8 + note C#, 1 + volume_envelope 3, 8 + note G#, 1 + note F#, 1 + volume_envelope 2, 8 + note C#, 1 + note C#, 1 + volume_envelope 1, 8 + note F#, 1 + note C#, 1 + octave 3 + note F#, 1 + octave 5 +.loop1: + rest 4 + octave 3 + volume_envelope 1, 8 + vibrato 0, 0, 1 + duty_cycle 2 + note F_, 1 + volume_envelope 2, 8 + note A#, 1 + octave 4 + volume_envelope 3, 8 + note C_, 1 + octave 3 + volume_envelope 4, 8 + note A#, 1 + octave 4 + volume_envelope 5, 8 + note F_, 1 + volume_envelope 6, 8 + note A#, 1 + octave 5 + volume_envelope 7, 8 + note C_, 1 + octave 4 + volume_envelope 8, 8 + note A#, 1 + octave 5 + volume_envelope 9, 8 + note F_, 1 + volume_envelope 10, 8 + note A#, 1 + octave 6 + note C_, 1 + octave 5 + note A#, 1 + octave 6 + note C_, 1 + octave 5 + note A#, 1 + volume_envelope 9, 8 + note F_, 1 + octave 4 + volume_envelope 8, 8 + note A#, 1 + volume_envelope 7, 8 + note F_, 1 + volume_envelope 6, 8 + note A#, 1 + volume_envelope 5, 8 + note F_, 1 + octave 3 + volume_envelope 4, 8 + note A#, 1 + octave 4 + note C_, 1 + note F_, 1 + volume_envelope 3, 8 + note C_, 1 + octave 3 + note A#, 1 + volume_envelope 2, 8 + note F_, 1 + note A#, 1 + note F_, 1 + octave 2 + volume_envelope 1, 8 + note A#, 1 + rest 4 + octave 3 + note F_, 1 + volume_envelope 2, 8 + note A#, 1 + octave 4 + volume_envelope 3, 8 + note C_, 1 + octave 3 + volume_envelope 4, 8 + note A#, 1 + octave 4 + volume_envelope 5, 8 + note C#, 1 + volume_envelope 6, 8 + note F_, 1 + volume_envelope 7, 8 + note F#, 1 + volume_envelope 8, 8 + note F_, 1 + volume_envelope 9, 8 + note A#, 1 + octave 5 + volume_envelope 10, 8 + note C_, 1 + volume_envelope 11, 8 + note D#, 1 + note F_, 1 + note F#, 1 + octave 6 + note C#, 1 + octave 5 + note G#, 1 + volume_envelope 10, 8 + note F#, 1 + volume_envelope 9, 8 + note C#, 1 + volume_envelope 8, 8 + note F#, 1 + volume_envelope 7, 8 + note C#, 1 + octave 4 + volume_envelope 6, 8 + note F#, 1 + volume_envelope 5, 8 + note C#, 1 + volume_envelope 4, 8 + note G#, 1 + note F#, 1 + volume_envelope 3, 8 + note C#, 1 + note C#, 1 + volume_envelope 2, 8 + note F#, 1 + note C#, 1 + octave 3 + volume_envelope 1, 8 + note F#, 1 + octave 5 + sound_loop 3, .loop1 + rest 2 + volume_envelope 10, 8 + octave 3 + note A#, 2 + rest 6 + note A#, 2 + rest 6 + note A#, 2 + rest 4 + octave 2 + note A#, 2 + rest 2 + note A#, 2 + note A#, 1 + rest 1 + note A#, 2 + note A#, 1 + rest 1 + octave 3 + note F_, 2 + octave 2 + note A#, 1 + rest 1 + octave 3 + note A#, 2 + octave 2 + note A#, 2 + rest 4 + note B_, 2 + note B_, 1 + rest 5 + note A_, 2 + note A_, 1 + rest 5 + octave 4 +.loop2: + octave 3 + note A#, 2 + note G#, 2 + octave 2 + note A#, 2 + octave 4 + sound_loop 2, .loop2 + octave 3 + note G#, 2 + octave 2 + note A#, 2 + octave 3 + rest 8 + note F_, 16 + note E_, 16 + note G#, 8 + note G_, 8 + note F#, 4 + note F_, 4 + note E_, 4 + note A#, 12 + note F_, 8 + note E_, 8 + note F_, 4 + note E_, 2 + note F_, 8 + note F#, 4 + note G_, 2 + note G#, 2 + note A_, 4 + note A#, 6 + octave 4 + note_type 8, 10, 8 + note B_, 2 + note F#, 1 + rest 1 + note C#, 1 + rest 1 + octave 3 + note G#, 2 + note C#, 1 + note_type 12, 10, 8 + note C#, 1 + octave 4 + note_type 8, 10, 8 + note F#, 2 + note C#, 1 + rest 1 + octave 3 + note G_, 1 + rest 1 + note C#, 2 + octave 2 + note G#, 1 + rest 1 + note D_, 1 + rest 1 + note_type 1, 10, 8 + rest 16 + rest 16 + rest 4 + note_type 12, 10, 8 + rest 2 + octave 3 + volume_envelope 1, 8 + note F_, 1 + volume_envelope 2, 8 + note G_, 1 + volume_envelope 3, 8 + note G#, 1 + volume_envelope 4, 8 + note A#, 1 + octave 4 + volume_envelope 5, 8 + note C_, 1 + volume_envelope 6, 8 + note C#, 1 + note D#, 1 + volume_envelope 7, 8 + note F_, 1 + note G_, 1 + volume_envelope 8, 8 + note G#, 1 + note A#, 1 + octave 5 + volume_envelope 9, 8 + note C_, 1 + note C#, 1 + volume_envelope 10, 8 + note D#, 1 + note C#, 1 + volume_envelope 9, 8 + note C_, 1 + octave 4 + note A#, 1 + octave 5 + volume_envelope 8, 8 + note C_, 1 + octave 4 + note A#, 1 + volume_envelope 7, 8 + note G#, 1 + note G_, 1 + volume_envelope 6, 8 + note G#, 1 + note G_, 1 + volume_envelope 5, 8 + note F_, 1 + volume_envelope 4, 8 + note D#, 1 + volume_envelope 3, 8 + note F_, 1 + volume_envelope 2, 8 + note D#, 1 + volume_envelope 1, 8 + note C#, 1 + rest 8 + octave 3 + note G_, 1 + volume_envelope 2, 8 + note G#, 1 + volume_envelope 3, 8 + note A#, 1 + octave 4 + volume_envelope 4, 8 + note C_, 1 + volume_envelope 5, 8 + note C#, 1 + volume_envelope 6, 8 + note D#, 1 + note F_, 1 + volume_envelope 7, 8 + note G_, 1 + note G#, 1 + volume_envelope 8, 8 + note A#, 1 + octave 5 + note C_, 1 + volume_envelope 9, 8 + note C#, 1 + note D#, 1 + volume_envelope 10, 8 + note F_, 1 + note D#, 1 + volume_envelope 9, 8 + note C#, 1 + note C_, 1 + octave 4 + volume_envelope 8, 8 + note A#, 1 + octave 5 + volume_envelope 7, 8 + note C_, 1 + octave 4 + volume_envelope 6, 8 + note A#, 1 + volume_envelope 5, 8 + note G#, 1 + volume_envelope 4, 8 + note A#, 1 + volume_envelope 3, 8 + note G#, 1 + volume_envelope 2, 8 + note G_, 1 + rest 4 + octave 3 + volume_envelope 1, 8 + note F#, 1 + volume_envelope 2, 8 + note G#, 1 + volume_envelope 3, 8 + note A#, 1 + volume_envelope 4, 8 + note B_, 1 + octave 4 + volume_envelope 5, 8 + note C#, 1 + volume_envelope 6, 8 + note D#, 1 + note E_, 1 + volume_envelope 7, 8 + note F#, 1 + note G#, 1 + volume_envelope 8, 8 + note A#, 1 + note B_, 1 + octave 5 + volume_envelope 9, 8 + note C#, 1 + note D#, 1 + volume_envelope 10, 8 + note E_, 1 + note F#, 1 + note D#, 1 + volume_envelope 9, 8 + note E_, 1 + note D#, 1 + volume_envelope 8, 8 + note C#, 1 + octave 4 + note B_, 1 + volume_envelope 7, 8 + note A#, 1 + note B_, 1 + volume_envelope 6, 8 + note A#, 1 + volume_envelope 5, 8 + note G#, 1 + volume_envelope 4, 8 + note F#, 1 + volume_envelope 3, 8 + note G#, 1 + volume_envelope 2, 8 + note F#, 1 + volume_envelope 1, 8 + note E_, 1 + rest 6 + octave 3 + note F#, 1 + volume_envelope 2, 8 + note G#, 1 + volume_envelope 3, 8 + note A#, 1 + volume_envelope 4, 8 + note B_, 1 + octave 4 + volume_envelope 5, 8 + note C#, 1 + note D#, 1 + volume_envelope 6, 8 + note E_, 1 + note F#, 1 + volume_envelope 7, 8 + note G#, 1 + note A#, 1 + volume_envelope 8, 8 + note B_, 1 + octave 5 + note C#, 1 + volume_envelope 9, 8 + note D#, 1 + note E_, 1 + volume_envelope 10, 8 + note F#, 1 + note G#, 1 + note F#, 1 + volume_envelope 9, 8 + note E_, 1 + volume_envelope 8, 8 + note D#, 1 + volume_envelope 7, 8 + note E_, 1 + volume_envelope 6, 8 + note D#, 1 + volume_envelope 5, 8 + note C#, 1 + octave 4 + volume_envelope 4, 8 + note B_, 1 + volume_envelope 3, 8 + note A#, 1 + volume_envelope 2, 8 + note G#, 1 + volume_envelope 1, 8 + note G_, 1 + rest 4 + octave 3 + note A_, 1 + volume_envelope 2, 8 + note B_, 1 + octave 4 + volume_envelope 3, 8 + note C#, 1 + volume_envelope 4, 8 + note D_, 1 + volume_envelope 5, 8 + note E_, 1 + note F#, 1 + volume_envelope 6, 8 + note G_, 1 + note A_, 1 + volume_envelope 7, 8 + note B_, 1 + octave 5 + note C#, 1 + volume_envelope 8, 8 + note D_, 1 + note E_, 1 + volume_envelope 9, 8 + note F#, 1 + note G_, 1 + volume_envelope 10, 8 + note A_, 1 + note F#, 1 + volume_envelope 9, 8 + note G_, 1 + note F#, 1 + volume_envelope 8, 8 + note E_, 1 + note D_, 1 + volume_envelope 7, 8 + note C#, 1 + note D_, 1 + volume_envelope 6, 8 + note C#, 1 + octave 4 + volume_envelope 5, 8 + note B_, 1 + volume_envelope 4, 8 + note A_, 1 + volume_envelope 3, 8 + note B_, 1 + volume_envelope 2, 8 + note A_, 1 + volume_envelope 1, 8 + note G_, 1 + rest 6 + octave 3 + note A_, 1 + volume_envelope 2, 8 + note B_, 1 + octave 4 + volume_envelope 3, 8 + note C#, 1 + volume_envelope 4, 8 + note D_, 1 + note E_, 1 + volume_envelope 5, 8 + note F#, 1 + note G_, 1 + volume_envelope 6, 8 + note A_, 1 + note B_, 1 + octave 5 + volume_envelope 7, 8 + note C_, 1 + note D_, 1 + volume_envelope 8, 8 + note E_, 1 + note F#, 1 + volume_envelope 9, 8 + note G_, 1 + note A_, 1 + volume_envelope 10, 8 + note B_, 1 + note A_, 1 + volume_envelope 9, 8 + note G_, 1 + volume_envelope 8, 8 + note F#, 1 + volume_envelope 7, 8 + note E_, 1 + volume_envelope 6, 8 + note D_, 1 + volume_envelope 5, 8 + note C#, 1 + octave 4 + volume_envelope 4, 8 + note B_, 1 + volume_envelope 3, 8 + note A_, 1 + volume_envelope 2, 8 + note G_, 1 + volume_envelope 1, 8 + note F#, 1 + octave 3 + volume_envelope 10, 8 + note F_, 6 + note F_, 2 + rest 2 + note F_, 2 + rest 2 + note F_, 2 + note G_, 6 + note G_, 2 + rest 2 + note G_, 2 + rest 2 + note G_, 2 + note E_, 6 + note E_, 2 + rest 2 + note G_, 2 + rest 2 + note E_, 2 + note E_, 6 + note G_, 1 + rest 1 + note G_, 1 + rest 1 + note G_, 1 + rest 1 + note G_, 1 + rest 1 + note G_, 1 + rest 1 + octave 2 +.loop3: + note A_, 2 + note B_, 1 + rest 1 + octave 3 + note D_, 2 + octave 2 + note A_, 2 + note B_, 1 + rest 1 + octave 3 + note D_, 2 + octave 2 + note A_, 2 + note B_, 1 + rest 1 + note B_, 2 + note A_, 2 + note B_, 1 + rest 1 + octave 3 + note D_, 4 + octave 2 + note A_, 3 + rest 1 + note A#, 1 + rest 1 + note A_, 2 + note B_, 1 + rest 1 + octave 3 + note D_, 2 + octave 2 + note A_, 2 + note B_, 1 + rest 1 + octave 3 + note D_, 2 + octave 2 + note A_, 2 + note B_, 1 + rest 1 + note B_, 2 + note A_, 2 + note B_, 1 + rest 1 + octave 3 + note E_, 4 + note D_, 2 + octave 2 + note A_, 1 + rest 1 + note A_, 1 + note A_, 1 + sound_loop 4, .loop3 + rest 4 + octave 3 + volume_envelope 1, 8 +.loop4: + note F_, 1 + volume_envelope 2, 8 + note A#, 1 + octave 4 + volume_envelope 3, 8 + note C_, 1 + octave 3 + volume_envelope 4, 8 + note A#, 1 + octave 4 + volume_envelope 5, 8 + note F_, 1 + volume_envelope 6, 8 + note A#, 1 + octave 5 + volume_envelope 7, 8 + note C_, 1 + octave 4 + volume_envelope 8, 8 + note A#, 1 + octave 5 + volume_envelope 9, 8 + note F_, 1 + volume_envelope 10, 8 + note A#, 1 + octave 6 + note C_, 1 + octave 5 + note A#, 1 + octave 6 + note C_, 1 + octave 5 + note A#, 1 + volume_envelope 9, 8 + note F_, 1 + octave 4 + note A#, 1 + volume_envelope 8, 8 + note F_, 1 + note A#, 1 + volume_envelope 7, 8 + note F_, 1 + octave 3 + note A#, 1 + octave 4 + volume_envelope 6, 8 + note C_, 1 + note F_, 1 + volume_envelope 5, 8 + note C_, 1 + octave 3 + note A#, 1 + volume_envelope 4, 8 + note F_, 1 + volume_envelope 3, 8 + note A#, 1 + volume_envelope 2, 8 + note F_, 1 + octave 2 + volume_envelope 1, 8 + note A#, 1 + rest 4 + octave 3 + note F_, 1 + volume_envelope 2, 8 + note A#, 1 + octave 4 + volume_envelope 3, 8 + note C_, 1 + octave 3 + volume_envelope 4, 8 + note A#, 1 + octave 4 + volume_envelope 5, 8 + note C#, 1 + volume_envelope 6, 8 + note F#, 1 + volume_envelope 7, 8 + note G#, 1 + volume_envelope 8, 8 + note F#, 1 + octave 5 + volume_envelope 9, 8 + note C#, 1 + volume_envelope 10, 8 + note G#, 1 + note F#, 1 + note C#, 1 + note F#, 1 + octave 6 + note C#, 1 + octave 5 + note G#, 1 + volume_envelope 9, 8 + note F#, 1 + note C#, 1 + volume_envelope 8, 8 + note F#, 1 + note C#, 1 + octave 4 + volume_envelope 7, 8 + note F#, 1 + octave 3 + volume_envelope 6, 8 + note F#, 1 + octave 4 + volume_envelope 5, 8 + note C#, 1 + octave 3 + volume_envelope 4, 8 + note G#, 1 + volume_envelope 3, 8 + note C#, 1 + volume_envelope 2, 8 + note G#, 1 + volume_envelope 1, 8 + note C#, 1 + rest 6 + sound_loop 4, .loop4 + note F_, 1 + volume_envelope 2, 8 + note A#, 1 + octave 4 + volume_envelope 3, 8 + note C_, 1 + octave 3 + volume_envelope 4, 8 + note A#, 1 + octave 4 + volume_envelope 5, 8 + note F_, 1 + volume_envelope 6, 8 + note A#, 1 + octave 5 + volume_envelope 7, 8 + note C_, 1 + octave 4 + volume_envelope 8, 8 + note A#, 1 + octave 5 + volume_envelope 9, 8 + note F_, 1 + volume_envelope 10, 8 + note A#, 1 + octave 6 + note C_, 1 + octave 5 + note A#, 1 + octave 6 + note C_, 1 + octave 5 + note A#, 1 + volume_envelope 9, 8 + note F_, 1 + octave 4 + note A#, 1 + volume_envelope 8, 8 + note F_, 1 + note A#, 1 + volume_envelope 7, 8 + note F_, 1 + octave 3 + note A#, 1 + octave 4 + volume_envelope 6, 8 + note C_, 1 + note F_, 1 + volume_envelope 5, 8 + note C_, 1 + octave 3 + note A#, 1 + volume_envelope 4, 8 + note F_, 1 + volume_envelope 3, 8 + note A#, 1 + volume_envelope 2, 8 + note F_, 1 + octave 2 + volume_envelope 1, 8 + note A#, 1 + rest 4 + octave 3 + note F_, 1 + volume_envelope 2, 8 + note A#, 1 + octave 4 + volume_envelope 3, 8 + note C_, 1 + octave 3 + volume_envelope 4, 8 + note A#, 1 + octave 4 + volume_envelope 5, 8 + note C#, 1 + volume_envelope 6, 8 + note F#, 1 + volume_envelope 7, 8 + note G#, 1 + volume_envelope 8, 8 + note F#, 1 + octave 5 + volume_envelope 9, 8 + note C#, 1 + volume_envelope 10, 8 + note G#, 1 + note F#, 1 + note C#, 1 + note F#, 1 + octave 6 + note C#, 1 + octave 5 + note G#, 1 + volume_envelope 9, 8 + note F#, 1 + note C#, 1 + volume_envelope 8, 8 + note F#, 1 + note C#, 1 + octave 4 + volume_envelope 7, 8 + note F#, 1 + octave 3 + volume_envelope 6, 8 + note F#, 1 + octave 4 + volume_envelope 5, 8 + note C#, 1 + octave 3 + volume_envelope 4, 8 + note G#, 1 + volume_envelope 3, 8 + note C#, 1 + volume_envelope 2, 8 + note G#, 1 + volume_envelope 1, 8 + note C#, 1 + octave 2 + note F#, 1 + octave 3 + note C#, 1 + volume_envelope 10, 8 + note G_, 16 + note G_, 5 + rest 1 + note F_, 2 + note F#, 8 + note G#, 16 + note_type 6, 10, 8 + note A#, 1 + rest 1 + note F_, 1 + rest 1 + volume_envelope 11, 8 + note C#, 1 + rest 1 + note F_, 1 + rest 1 + volume_envelope 12, 8 + note C#, 1 + rest 1 + octave 2 + note A#, 1 + octave 3 + rest 1 + volume_envelope 13, 8 + note C#, 1 + rest 1 + note F_, 1 + rest 1 + volume_envelope 14, 8 + note A#, 1 + rest 1 + note F_, 1 + rest 1 + volume_envelope 15, 8 + note A#, 1 + rest 1 + octave 4 + note C#, 1 + rest 1 + note F_, 1 + rest 1 + note C#, 1 + rest 1 + note F_, 1 + rest 1 + note G#, 1 + rest 1 + octave 8 + note_type 12, 10, 8 + sound_loop 0, .mainLoop + +Music_GalarBirds_Ch2: + note_type 12, 15, 8 +.mainLoop: + duty_cycle 3 + vibrato 0, 1, 1 + octave 3 + volume_envelope 15, 7 + note A#, 6 + note A_, 6 + note F_, 4 + note G#, 6 + note G_, 6 + note D#, 4 + note F_, 6 + octave 2 + note B_, 4 + octave 3 + note F_, 4 + octave 2 + note B_, 2 + octave 3 + note B_, 6 + note F_, 4 + note B_, 4 + octave 2 + note B_, 2 + octave 3 + note A#, 16 + rest 16 +.loop1: + octave 2 + duty_cycle 2 + volume_envelope 6, 2 + note A#, 2 + octave 3 + note C#, 1 + note C_, 1 + note C#, 2 + note F_, 1 + note E_, 1 + note F_, 2 + note A#, 4 + note F#, 4 + octave 2 + note F_, 1 + note E_, 1 + note F_, 1 + rest 1 + note A#, 1 + note A_, 1 + note A#, 1 + rest 1 + octave 3 + note C#, 1 + note C_, 1 + note C#, 1 + rest 1 + note F_, 1 + note E_, 1 + sound_loop 2, .loop1 + octave 2 + duty_cycle 2 + volume_envelope 6, 2 + note A#, 2 + octave 3 + note C#, 1 + note C_, 1 + note C#, 1 + rest 1 + note F_, 1 + note E_, 1 + note F_, 2 + note A#, 4 + note F#, 10 + note_type 12, 9, 2 + octave 2 + note A#, 2 + octave 3 + note C#, 2 + note F_, 2 + note F#, 2 + note_type 6, 15, 7 + duty_cycle 3 + note F_, 1 + note F#, 1 + note_type 12, 15, 7 + note F_, 9 + note_type 6, 15, 7 + note F_, 1 + note F#, 1 + note_type 12, 15, 7 + note F_, 3 + note D#, 1 + note F_, 1 + note D#, 2 + rest 1 + note_type 1, 15, 7 + rest 12 + note_type 12, 15, 7 + note F_, 2 + rest 2 + note F#, 6 + note G#, 1 + note F#, 1 + note F_, 6 + octave 2 + note A#, 1 + note G#, 1 + note A#, 8 + rest 8 + octave 5 + note C#, 1 + note F#, 1 + note C#, 1 + octave 4 + note A#, 1 + note C#, 1 + note F#, 1 + note C#, 1 + octave 3 + note A#, 1 + octave 4 + rest 2 + note F_, 1 + note D#, 1 + note F_, 1 + note_type 6, 15, 7 + rest 2 + note_type 12, 15, 7 + note F_, 1 + rest 3 + note_type 6, 15, 7 + note F_, 1 + note F#, 1 + note_type 12, 15, 7 + note F_, 3 + note D#, 1 + note F_, 1 + note D#, 2 + rest 1 + note_type 1, 15, 7 + rest 12 + note_type 12, 15, 7 + note F_, 2 + rest 2 + note F#, 6 + note G#, 1 + note F#, 1 + note F_, 6 + octave 3 + note A#, 1 + note G#, 1 + octave 4 + note A#, 6 + note G#, 1 + note F#, 1 + note C_, 2 + note C#, 6 + note C#, 2 + note C#, 1 + rest 1 + note C#, 1 + note C#, 1 + note C#, 1 + note C#, 1 + rest 4 + octave 2 + note A#, 1 + octave 3 + note E_, 1 + note A_, 1 + octave 4 + note D_, 1 + note G_, 2 + octave 3 + rest 2 + note B_, 1 + note G_, 1 + note D_, 1 + octave 2 + note A_, 1 + rest 4 + octave 4 + note D#, 1 + octave 3 + note A#, 1 + note F_, 1 + note C_, 1 + octave 4 + note D_, 1 + octave 3 + note A_, 1 + note E_, 1 + octave 2 + note B_, 1 + rest 16 + octave 4 + note F#, 1 + note C#, 1 + octave 3 + note G#, 1 + note D#, 1 + octave 2 + note B_, 2 + octave 4 + rest 2 + note E_, 1 + octave 3 + note B_, 1 + note F#, 1 + note C#, 1 + octave 2 + note A_, 2 + octave 3 + rest 1 + note_type 6, 15, 7 + rest 2 + note_type 12, 15, 7 + note C#, 1 + octave 2 + note B_, 1 + note A#, 1 + note A_, 1 + note G#, 4 + octave 3 + rest 16 + volume_envelope 1, 7 + note F_, 1 + volume_envelope 3, 7 + note A#, 1 + octave 4 + volume_envelope 5, 7 + note C_, 1 + octave 3 + volume_envelope 6, 7 + note A#, 1 + octave 4 + volume_envelope 7, 7 + note F_, 1 + volume_envelope 8, 7 + note A#, 1 + octave 5 + volume_envelope 9, 7 + note C_, 1 + octave 4 + volume_envelope 10, 7 + note A#, 1 + octave 5 + volume_envelope 11, 7 + note F_, 1 + volume_envelope 12, 7 + note A#, 1 + octave 6 + volume_envelope 13, 7 + note C_, 1 + octave 5 + volume_envelope 14, 7 + note A#, 1 + octave 6 + volume_envelope 15, 7 + note C_, 1 + octave 5 + volume_envelope 14, 7 + note A#, 1 + volume_envelope 13, 7 + note F_, 1 + octave 4 + volume_envelope 12, 7 + note A#, 1 + volume_envelope 11, 7 + note F_, 1 + volume_envelope 10, 7 + note A#, 1 + volume_envelope 9, 7 + note F_, 1 + octave 3 + volume_envelope 8, 7 + note A#, 1 + octave 4 + volume_envelope 7, 7 + note C#, 1 + volume_envelope 6, 7 + note F_, 1 + volume_envelope 5, 7 + note C#, 1 + octave 3 + volume_envelope 4, 7 + note A#, 1 + volume_envelope 3, 7 + note F_, 1 + volume_envelope 2, 7 + note A#, 1 + volume_envelope 1, 7 + note F_, 1 + octave 2 + note A#, 1 + rest 8 + octave 4 + sound_call .sub1 + rest 8 + octave 4 + volume_envelope 7, 7 + note F_, 1 + volume_envelope 8, 7 + note A#, 1 + octave 5 + volume_envelope 9, 7 + note C_, 1 + octave 4 + volume_envelope 10, 7 + note A#, 1 + octave 5 + volume_envelope 11, 7 + note F_, 1 + volume_envelope 12, 7 + note A#, 1 + octave 6 + volume_envelope 13, 7 + note C_, 1 + octave 5 + volume_envelope 14, 7 + note A#, 1 + octave 6 + volume_envelope 15, 7 + note C_, 1 + octave 5 + volume_envelope 14, 7 + note A#, 1 + volume_envelope 13, 7 + note F_, 1 + octave 4 + volume_envelope 12, 7 + note A#, 1 + volume_envelope 11, 7 + note F_, 1 + volume_envelope 10, 7 + note A#, 1 + volume_envelope 9, 7 + note F_, 1 + octave 3 + volume_envelope 8, 7 + note A#, 1 + octave 4 + volume_envelope 7, 7 + note C#, 1 + volume_envelope 6, 7 + note F_, 1 + volume_envelope 5, 7 + note C#, 1 + octave 3 + volume_envelope 4, 7 + note A#, 1 + volume_envelope 3, 7 + note F_, 1 + volume_envelope 2, 7 + note A#, 1 + volume_envelope 1, 7 + note F_, 1 + octave 2 + note A#, 1 + rest 8 + octave 4 + sound_call .sub1 + note_type 12, 15, 7 + octave 3 + note C#, 12 + sound_call .sub2 + rest 1 + octave 3 + note D#, 8 + sound_call .sub2 + note_type 12, 15, 7 + rest 1 + octave 3 + note G_, 10 + rest 2 + note C_, 1 + octave 2 + note A#, 1 + octave 3 + note C_, 1 + rest 1 + note A#, 4 + note G#, 4 + note D#, 4 + note C_, 1 + octave 2 + note A#, 1 + octave 3 + note C_, 10 + octave 2 + note F_, 2 + note G#, 1 + rest 1 + octave 3 + note D#, 1 + note C#, 1 + note D#, 1 + rest 1 + note F#, 8 + octave 2 + note G#, 2 + note B_, 1 + rest 1 + octave 3 + note E_, 1 + note D_, 1 + note E_, 1 + rest 1 + octave 2 + note F#, 8 + rest 2 + note B_, 1 + octave 3 + note C#, 1 + note D#, 4 + octave 4 + note C#, 4 + octave 3 + note B_, 4 + note F#, 4 + note D#, 1 + note C#, 1 + note D#, 8 + rest 2 + octave 2 + note B_, 2 + octave 3 + note D_, 1 + rest 1 + note F#, 1 + note E_, 1 + note F#, 1 + rest 1 + note A_, 8 + octave 2 + note B_, 2 + octave 3 + note D_, 1 + rest 1 + note F#, 1 + note E_, 1 + note F#, 1 + rest 1 + octave 4 + note C#, 8 + octave 2 + note B_, 2 + octave 3 + note D_, 1 + rest 1 + note F#, 1 + note E_, 1 + note F#, 1 + rest 1 + octave 4 + note E_, 4 + note D_, 4 + octave 3 + note A_, 4 + note F#, 1 + note E_, 1 + note F#, 8 + rest 2 + octave 2 + note B_, 2 + octave 3 + note D_, 1 + rest 1 +.loop3: + volume_envelope 15, 7 + note A_, 6 + note G_, 2 + rest 2 + octave 4 + note C_, 2 + rest 2 + octave 3 + note F_, 2 + sound_loop 2, .loop3 + note A_, 6 + note G_, 2 + rest 2 + octave 4 + note C_, 2 + rest 2 + octave 3 + note G_, 2 + note A_, 4 + rest 2 + note E_, 1 + rest 1 + note E_, 1 + rest 1 + note E_, 1 + rest 1 + note E_, 1 + rest 1 + note E_, 1 + rest 1 + volume_envelope 8, 7 + note E_, 1 + rest 1 + volume_envelope 3, 7 + note E_, 1 + rest 16 + volume_envelope 1, 7 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 13 + note_type 6, 15, 7 + octave 4 + note F#, 1 + note G_, 1 + note_type 12, 15, 7 + note F#, 5 + octave 3 + note F#, 1 + note E_, 1 + note B_, 6 + octave 4 + note E_, 1 + note F#, 1 + note E_, 2 + rest 2 + note F#, 2 + rest 2 + note G_, 6 + note A_, 1 + note G_, 1 + note F#, 6 + octave 3 + note B_, 1 + note A_, 1 + note B_, 8 + rest 16 + octave 4 + note_type 6, 15, 7 + note F#, 1 + note G_, 1 + note_type 12, 15, 7 + note F#, 7 + note D_, 1 + rest 1 + note A_, 4 + note E_, 1 + note F#, 1 + note E_, 2 + rest 2 + note F#, 2 + rest 2 + note G_, 6 + note A_, 1 + note G_, 1 + note F#, 6 + note F_, 1 + note F#, 1 + note B_, 6 + note A_, 1 + note G_, 1 + note E_, 6 + note D_, 2 + rest 2 + octave 3 + note B_, 2 + rest 2 + octave 4 + note D_, 2 + note_type 6, 15, 7 + note F_, 1 + note F#, 1 + note_type 12, 15, 7 + note F_, 5 + octave 3 + note F_, 1 + note D#, 1 + note F_, 1 + note A#, 1 + octave 4 + note_type 6, 15, 7 + note F_, 1 + note F#, 1 + note_type 12, 15, 7 + note F_, 3 + note D#, 1 + note F_, 1 + note D#, 2 + rest 2 + note F_, 2 + rest 2 + note F#, 6 + note G#, 1 + note F#, 1 + note F_, 6 + octave 3 + note A#, 1 + note G#, 1 + note A#, 8 + rest 16 + rest 2 + octave 4 + note F_, 1 + note D#, 1 + note F_, 8 + octave 3 + note A#, 2 + octave 4 + note D#, 1 + note F_, 1 + note D#, 2 + octave 3 + note F#, 2 + octave 4 + note F_, 2 + rest 2 + note F#, 6 + note G#, 1 + note F#, 1 + note F_, 6 + note E_, 1 + note F_, 1 + note A#, 8 + rest 16 +.loop2: + note D#, 8 + note G_, 8 + note F#, 6 + note D_, 2 + note D#, 8 + note F_, 8 + note C#, 8 + note E_, 8 + note C_, 8 + sound_loop 3, .loop2 + octave 3 + note D#, 8 + note G_, 8 + note F#, 6 + note D_, 2 + note D#, 8 + note F_, 8 + note C#, 8 + octave 2 + note F#, 2 + note B_, 2 + octave 3 + note E_, 2 + note A_, 2 + octave 2 + note_type 8, 15, 7 + note A_, 2 + octave 3 + note D_, 2 + note G_, 2 + octave 4 + note_type 12, 15, 7 + note C_, 1 + note F_, 1 + note A#, 2 + octave 3 + sound_loop 0, .mainLoop + +.sub1: + note C#, 1 + volume_envelope 2, 7 + note F#, 1 + volume_envelope 3, 7 + note G#, 1 + volume_envelope 4, 7 + note F#, 1 + octave 5 + volume_envelope 6, 7 + note C#, 1 + volume_envelope 8, 7 + note G#, 1 + volume_envelope 10, 7 + note F#, 1 + volume_envelope 12, 7 + note C#, 1 + volume_envelope 14, 7 + note F#, 1 + octave 6 + volume_envelope 15, 7 + note C#, 1 + octave 5 + volume_envelope 14, 7 + note G#, 1 + volume_envelope 13, 7 + note F#, 1 + volume_envelope 12, 7 + note C#, 1 + volume_envelope 11, 7 + note F#, 1 + volume_envelope 10, 7 + note C#, 1 + octave 4 + volume_envelope 9, 7 + note F#, 1 + octave 3 + volume_envelope 8, 7 + note F#, 1 + octave 4 + volume_envelope 7, 7 + note C#, 1 + octave 3 + volume_envelope 6, 7 + note G#, 1 + volume_envelope 5, 7 + note F#, 1 + volume_envelope 4, 7 + note C#, 1 + volume_envelope 3, 7 + note F#, 1 + volume_envelope 2, 7 + note C#, 1 + octave 2 + volume_envelope 1, 7 + note F#, 1 + sound_ret + +.sub2: + octave 2 + note F_, 2 + note G#, 1 + rest 1 + octave 3 + note C_, 1 + octave 2 + note A#, 1 + octave 3 + note C_, 1 + octave 4 + sound_ret + +Music_GalarBirds_Ch3: + note_type 12, 1, 0 +.mainLoop: + octave 4 + volume_envelope 1, 2 + vibrato 0, 0, 0 + note C#, 2 + octave 3 + note C#, 1 + note C#, 1 + octave 4 + note C#, 1 + note C#, 1 + note C_, 2 + octave 3 + note C_, 1 + note C_, 1 + octave 4 + note C_, 1 + note C_, 1 + octave 3 + note G#, 2 + octave 2 + note G#, 1 + note G#, 1 + octave 3 + note B_, 2 + octave 2 + note B_, 1 + note B_, 1 + octave 3 + note B_, 1 + note B_, 1 + note A#, 2 + octave 2 + note A#, 1 + note A#, 1 + octave 3 + note A#, 1 + note A#, 1 + note F#, 2 + octave 2 + note G#, 1 + note G#, 1 + octave 3 + note G#, 2 + octave 2 + note A#, 1 + note A#, 1 + octave 3 + note G#, 1 + note G#, 1 + note D_, 2 + octave 2 + note D_, 1 + note D_, 1 + octave 3 + note G#, 2 + octave 2 + note G#, 1 + note G#, 1 + octave 3 + note D_, 2 + octave 4 + note D_, 2 + octave 3 + note D_, 1 + note D_, 1 + octave 4 + note D_, 1 + note D_, 1 + octave 3 + note B_, 2 + octave 2 + note B_, 1 + note B_, 1 + octave 4 + note D_, 2 + octave 3 + note D_, 1 + note D_, 1 + note F#, 2 + volume_envelope 1, 0 + octave 2 +.loop1: + volume_envelope 1, 2 + note A#, 2 + octave 3 + note F_, 1 + rest 1 + octave 2 + note A#, 2 + octave 3 + note F_, 1 + rest 1 + note E_, 2 + note F_, 1 + rest 1 + octave 2 + note A#, 2 + octave 3 + note F_, 1 + rest 1 + octave 2 + note B_, 2 + octave 3 + note F#, 1 + rest 1 + octave 2 + note B_, 2 + octave 3 + note F#, 1 + rest 1 + note F_, 1 + note F_, 1 + note F#, 1 + rest 1 + note G#, 1 + rest 1 + note F#, 1 + note F#, 1 + octave 2 + sound_loop 4, .loop1 + sound_call .sub1 + octave 2 + volume_envelope 1, 2 + sound_call .sub2 + octave 2 + sound_call .sub1 + note_type 12, 1, 0 + octave 2 + sound_call .sub2 + note_type 12, 1, 0 + octave 2 + sound_call .sub3 + rest 4 + octave 2 + sound_call .sub3 + note_type 12, 1, 0 + rest 4 + octave 2 + sound_call .sub3 + note_type 12, 1, 0 + rest 4 + octave 2 + volume_envelope 1, 2 + note A#, 2 + rest 2 + note A#, 2 + note A#, 1 + rest 1 + note A#, 2 + note A#, 1 + rest 1 + octave 3 + note F_, 2 + octave 2 + note A#, 1 + rest 1 + octave 3 + note A#, 2 + octave 2 + note A#, 2 + rest 4 + note B_, 2 + note B_, 1 + rest 5 + note A_, 2 + note A_, 1 + rest 5 + octave 3 +.loop2: + volume_envelope 1, 2 + note A#, 2 + note G#, 2 + octave 2 + note A#, 2 + octave 3 + sound_loop 2, .loop2 + octave 3 +.loop3: + volume_envelope 1, 2 + note G#, 2 + octave 2 + note A#, 2 + octave 3 + sound_loop 2, .loop3 + octave 3 + volume_envelope 1, 2 + note F_, 2 + note A#, 2 + note D#, 2 + note C#, 2 + note G#, 2 + note A#, 2 + note A#, 2 + octave 2 + note A#, 1 + rest 3 + octave 3 + note G#, 1 + note A#, 1 + octave 2 + note F#, 8 + octave 3 + note F#, 2 + octave 2 + note F#, 1 + rest 3 + octave 3 + note F_, 1 + note F#, 1 + note F#, 2 + octave 2 + note F#, 1 + rest 3 + note B_, 1 + octave 3 + note C#, 1 + note D_, 2 + octave 2 + note D_, 1 + rest 5 + octave 3 + note C#, 2 + octave 2 + note C#, 1 + rest 5 + octave 3 + note_type 8, 1, 2 + note B_, 1 + rest 1 + note C#, 1 + rest 1 + octave 2 + note F#, 1 + rest 1 + octave 3 + note G#, 2 + note A#, 2 + octave 2 + note A#, 2 + note_type 12, 1, 0 + sound_call .sub4 + octave 2 + note_type 12, 1, 0 + sound_call .sub4 + note_type 12, 1, 2 + octave 3 + note F_, 2 + note D#, 1 + note F_, 1 + octave 2 + note G#, 2 + rest 4 + note F#, 2 + octave 3 + note F#, 1 + octave 2 + rest 1 + note F#, 1 + rest 1 + note F#, 2 + rest 1 + note F#, 1 + note G#, 2 + rest 1 + note G#, 1 + rest 2 + note G#, 2 + octave 3 + note F#, 1 + octave 2 + rest 1 + note G#, 1 + rest 1 + note G#, 2 + rest 1 + note G#, 1 + note A_, 2 + rest 1 + note A_, 1 + note A_, 2 + octave 3 + note A_, 2 + octave 2 + note A#, 2 + octave 3 + note A#, 2 + octave 2 + note B_, 2 + octave 3 + note B_, 2 + note C_, 2 + octave 4 + note C_, 2 + octave 3 + sound_call .sub5 + rest 1 + octave 3 + sound_call .sub5 + note_type 12, 1, 0 + rest 1 + octave 4 + volume_envelope 1, 2 + note C#, 2 + octave 3 + note G#, 1 + rest 1 + sound_call .sub5 + note_type 12, 1, 0 + rest 1 + octave 3 + sound_call .sub6 + rest 1 + octave 3 + sound_call .sub6 + note_type 12, 1, 0 + rest 1 + octave 3 + volume_envelope 1, 2 + note D#, 2 + octave 4 + note D#, 1 + rest 1 + octave 3 + note C#, 2 + octave 4 + note C#, 1 + rest 1 + octave 2 +.loop4: + volume_envelope 1, 2 + note G#, 2 + octave 3 + note D#, 1 + rest 1 + octave 2 + sound_loop 5, .loop4 + octave 2 + volume_envelope 1, 2 + note G#, 2 + octave 3 + note C#, 1 + octave 2 + rest 1 + note G#, 2 + octave 3 + note C_, 1 + octave 2 + rest 1 + note G#, 2 + note A#, 1 + octave 3 + rest 1 +.loop5: + volume_envelope 1, 2 + note E_, 2 + note B_, 1 + rest 1 + sound_loop 2, .loop5 + volume_envelope 1, 2 + note E_, 2 + octave 4 + note D#, 1 + rest 1 + octave 3 + note E_, 2 + octave 4 + note C#, 1 + rest 1 + octave 3 + note F#, 2 + octave 4 + note C#, 1 + octave 3 + rest 1 + note F#, 2 + note B_, 1 + rest 1 + note F#, 2 + note A#, 1 + rest 1 + note F#, 2 + note G#, 1 + rest 1 + octave 2 +.loop8: + note B_, 2 + octave 3 + note F#, 1 + rest 1 + octave 2 + sound_loop 2, .loop8 + octave 3 + note F#, 2 + octave 4 + note D#, 1 + rest 1 + octave 3 + note B_, 2 + octave 4 + note C#, 1 + octave 2 + rest 1 + note B_, 2 + octave 3 + note B_, 1 + octave 2 + rest 1 + note B_, 2 + octave 3 + note A#, 1 + octave 2 + rest 1 + note B_, 2 + octave 3 + note G#, 1 + octave 2 + rest 1 + note B_, 2 + octave 3 + note F#, 1 + octave 2 + rest 1 +.loop6: + volume_envelope 1, 2 + note G_, 2 + octave 3 + note D_, 1 + rest 1 + octave 2 + sound_loop 3, .loop6 + octave 3 + volume_envelope 1, 2 + note G_, 2 + octave 2 + note G_, 1 + rest 1 + sound_call .sub7 + volume_envelope 1, 2 + note E_, 1 + rest 1 + octave 2 + sound_call .sub7 + note_type 12, 1, 2 + octave 4 + note C#, 1 + rest 1 + octave 3 +.loop9: + note D_, 2 + note A_, 1 + rest 1 + sound_loop 2, .loop9 + octave 4 + note D_, 2 + octave 3 + note A_, 1 + rest 1 + octave 4 + note D_, 2 + note F#, 1 + rest 1 + note D_, 2 + note E_, 1 + rest 1 + octave 3 + note D_, 2 + octave 4 + note D_, 1 + rest 1 + octave 3 + note C#, 2 + octave 4 + note C#, 1 + rest 1 + octave 2 + note B_, 2 + octave 3 + note B_, 1 + rest 1 + octave 2 + note A#, 6 + octave 3 + note D_, 4 + note F_, 4 + note A#, 2 + octave 4 + note C_, 6 + octave 3 + note A#, 4 + note A_, 4 + note G_, 2 + note A_, 6 + note G_, 4 + note F_, 4 + note E_, 2 + note A_, 2 + octave 2 + note A_, 1 + note A_, 1 + octave 3 +.loop7: + volume_envelope 1, 2 + note A_, 1 + octave 2 + note A_, 1 + note A_, 1 + note A_, 1 + octave 3 + sound_loop 3, .loop7 + octave 2 + volume_envelope 1, 2 + vibrato 2, 4, 2 + note A_, 2 + note B_, 1 + rest 1 + octave 3 + note D_, 2 + octave 2 + note A_, 1 + note A_, 1 + note B_, 1 + octave 3 + rest 1 + note D_, 2 + octave 2 + note A_, 2 + note B_, 1 + rest 1 + note B_, 2 + note A_, 2 + note B_, 1 + rest 1 + octave 3 + note D_, 4 + octave 2 + note A_, 1 + note A_, 1 + note A_, 1 + rest 1 + note A#, 1 + rest 1 + note A_, 2 + note B_, 1 + octave 3 + rest 1 + note D_, 2 + octave 2 + note A_, 1 + note A_, 1 + note B_, 1 + octave 3 + rest 1 + note D_, 2 + octave 2 + note A_, 2 + note B_, 1 + rest 1 + note B_, 2 + note A_, 2 + note B_, 1 + rest 1 + octave 3 + note E_, 4 + note D_, 2 + octave 2 + note A_, 1 + rest 1 + note A_, 1 + note A_, 1 + note B_, 2 + octave 3 + note B_, 2 + octave 2 + rest 2 + note B_, 2 + note B_, 2 + octave 3 + note A_, 2 + octave 2 + rest 4 + note B_, 2 + octave 3 + note A_, 2 + rest 2 + note G#, 2 + rest 2 + note F#, 4 + note F#, 2 + octave 2 + note E_, 2 + note F#, 2 + octave 3 + note C#, 2 + rest 2 + note E_, 2 + note F_, 2 + note A#, 2 + note B_, 2 + octave 4 + note C#, 1 + rest 1 + note F#, 2 + note C#, 1 + rest 1 + octave 3 + note F#, 2 + octave 2 + note F#, 2 + octave 3 + note A#, 2 + octave 4 + note C#, 2 + note D#, 1 + rest 1 + octave 2 + note B_, 2 + octave 1 + note B_, 1 + note B_, 1 + note B_, 4 + octave 2 + note B_, 2 + octave 3 + note E_, 1 + octave 2 + rest 1 + note B_, 2 + octave 3 + note F#, 1 + octave 2 + rest 1 + note B_, 2 + rest 2 + note B_, 1 + rest 1 + note B_, 2 + rest 2 + octave 3 + note F#, 2 + octave 2 + note B_, 2 + octave 3 + note B_, 2 + octave 2 + note B_, 2 + rest 2 + note B_, 1 + rest 1 + note B_, 2 + rest 2 + note B_, 2 + note B_, 2 + note B_, 2 +.loop10: + note B_, 2 + rest 2 + octave 3 + note B_, 1 + rest 1 + octave 2 + sound_loop 2, .loop10 + octave 2 + note B_, 2 + octave 3 + note B_, 1 + rest 1 + note B_, 2 + octave 2 + note B_, 1 + note B_, 1 + note B_, 4 + rest 2 + octave 3 + note B_, 2 + rest 2 + note B_, 2 + note B_, 4 + octave 2 + note B_, 2 + rest 4 + octave 3 + note B_, 2 + rest 2 + note B_, 2 + octave 2 + note B_, 2 + rest 2 + octave 3 + note B_, 2 + rest 4 + note B_, 2 + rest 2 + note B_, 2 + octave 2 + note B_, 2 + rest 2 + octave 3 + note B_, 2 + octave 2 + rest 4 + note B_, 2 + rest 2 + octave 3 + note B_, 2 + note A#, 2 + octave 2 + note A#, 1 + note A#, 1 + note A#, 4 + rest 2 + note A#, 2 + rest 2 + note A#, 2 + note A#, 2 + rest 2 + octave 3 + note A#, 1 + octave 2 + rest 1 + note A#, 2 + rest 2 + octave 3 + note A#, 1 + octave 2 + rest 1 + note A#, 2 + octave 3 + note A#, 2 + octave 2 + note A#, 2 + octave 3 + note A#, 2 + octave 4 + note C#, 2 + octave 3 + note F_, 2 + rest 2 + note F#, 2 + rest 2 + note G#, 2 + octave 2 + note A#, 2 + rest 2 + octave 3 + note A#, 1 + octave 2 + rest 1 + note A#, 2 + rest 2 + octave 3 + note A#, 1 + octave 2 + rest 1 + note A#, 2 + octave 3 + note A#, 2 + octave 2 + note A#, 2 + note A#, 1 + note A#, 1 + note A#, 4 + rest 2 + note A#, 2 + rest 2 + note A#, 2 + note A#, 2 + rest 2 + octave 3 + note A#, 1 + octave 2 + rest 1 + note A#, 2 + rest 2 + octave 3 + note A#, 1 + octave 2 + rest 1 + note A#, 2 + octave 3 + note A#, 2 + octave 2 + note A#, 2 + octave 3 + note A#, 2 + octave 4 + note C#, 2 + octave 3 + note F_, 2 + rest 2 + note F#, 2 + rest 2 + note G#, 2 + octave 2 +.loop11: + note A#, 2 + rest 2 + octave 2 + sound_loop 4, .loop11 + sound_call .sub8 + octave 2 +.loop13: + note A#, 2 + octave 3 + note F_, 1 + rest 1 + note A#, 2 + note F_, 1 + rest 1 + note E_, 2 + note F_, 1 + rest 1 + octave 2 + note A#, 2 + octave 3 + note F_, 1 + octave 2 + rest 1 + note B_, 2 + octave 3 + note F#, 1 + octave 2 + rest 1 + note B_, 2 + octave 3 + note F#, 1 + rest 1 + note F_, 2 + note F#, 1 + rest 1 + note G#, 2 + note F#, 1 + rest 1 + octave 2 + sound_loop 2, .loop13 + octave 2 + sound_call .sub8 + octave 2 + note_type 12, 1, 2 +.loop12: + note A#, 2 + octave 3 + note A#, 1 + rest 1 + octave 2 + sound_loop 16, .loop12 + note_type 12, 1, 2 + sound_loop 0, .mainLoop + +.sub1: + volume_envelope 1, 2 + note A#, 2 + octave 3 + note F_, 1 + rest 1 + octave 2 + note A#, 2 + octave 3 + note F_, 1 + rest 1 + note E_, 2 + note F_, 1 + rest 1 + octave 2 + note A#, 2 + octave 3 + note F_, 1 + rest 1 + octave 2 + note B_, 2 + octave 3 + note F#, 1 + rest 1 + octave 2 + note B_, 2 + octave 3 + note F#, 1 + rest 1 + note F_, 1 + note F_, 1 + note F#, 1 + rest 1 + note G#, 1 + rest 1 + note F#, 1 + note F#, 1 + sound_ret + +.sub2: + volume_envelope 1, 2 + note A#, 1 + note A#, 1 + octave 3 + note F_, 1 + rest 1 + octave 2 + note A#, 2 + octave 3 + note F_, 1 + rest 1 + note E_, 2 + note F_, 1 + rest 1 + octave 2 + note A#, 2 + octave 3 + note F_, 1 + rest 1 + note F#, 2 + note B_, 1 + rest 1 + note F#, 2 + note F#, 1 + rest 1 + octave 2 + note B_, 1 + note B_, 1 + octave 3 + note F#, 1 + rest 1 + note G#, 1 + rest 1 + note F#, 1 + note F#, 1 + sound_ret + +.sub3: + volume_envelope 1, 2 + note A#, 2 + octave 3 + note A#, 2 + sound_ret + +.sub4: + volume_envelope 1, 2 + note A#, 3 + note A#, 1 + note_type 1, 1, 0 + rest 16 + rest 8 + octave 3 + note_type 12, 1, 2 + note G#, 1 + note A#, 1 + sound_ret + +.sub5: + volume_envelope 1, 2 + note C#, 2 + note G#, 1 + sound_ret + +.sub6: + volume_envelope 1, 2 + note D#, 2 + note A#, 1 + sound_ret + +.sub7: + volume_envelope 1, 2 + note A_, 2 + octave 3 + note E_, 1 + rest 1 + note A_, 2 + sound_ret + +.sub8: + note A#, 2 + octave 3 + note F_, 1 + rest 1 + octave 2 + note A#, 2 + octave 3 + note F_, 1 + rest 1 + note E_, 2 + note F_, 1 + rest 1 + octave 2 + note A#, 2 + octave 3 + note F_, 1 + rest 1 + octave 2 + note B_, 2 + octave 3 + note F#, 1 + rest 1 + octave 2 + note B_, 2 + octave 3 + note F#, 1 + rest 1 + note F_, 2 + note F#, 1 + rest 1 + octave 2 + note B_, 2 + octave 3 + note F#, 1 + rest 1 + octave 2 + note A#, 2 + octave 3 + note F_, 1 + rest 1 + octave 2 + note A#, 2 + octave 3 + note F_, 1 + rest 1 + note E_, 2 + note F_, 1 + rest 1 + octave 2 + note A#, 2 + octave 3 + note F_, 1 + rest 1 + octave 2 + note B_, 2 + octave 3 + note F#, 1 + rest 1 + octave 2 + note B_, 2 + octave 3 + note F#, 1 + rest 1 + note F_, 2 + note F#, 1 + rest 1 + octave 2 + note B_, 2 + octave 3 + note F#, 1 + octave 4 + rest 1 + sound_ret + +Music_GalarBirds_Ch4: + toggle_noise 0 + drum_speed 12 +.mainLoop: + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + drum_speed 12 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + rest 16 + sound_loop 0, .mainLoop diff --git a/crysaudio/music_pointers_red.asm b/crysaudio/music_pointers_red.asm index f776403c..6940c767 100644 --- a/crysaudio/music_pointers_red.asm +++ b/crysaudio/music_pointers_red.asm @@ -62,4 +62,5 @@ Music: dba Music_RocketRBY dba Music_GiovanniBattle dba Music_EliteFourBattle - dba Music_ChampRival + ; dba Music_ChampRival + dba Music_GalarBirds diff --git a/data/credits/credits_text.asm b/data/credits/credits_text.asm index 4ed3585a..14492397 100644 --- a/data/credits/credits_text.asm +++ b/data/credits/credits_text.asm @@ -90,7 +90,7 @@ CreditsTextPointers: dw CredDannye dw CredEro dw CredBlueZangoose - dw CredSkye + dw CredHunnies dw CredChatot dw CredEni dw CredVort @@ -276,8 +276,8 @@ CredEro: db -4, "EROSUNICA@" CredBlueZangoose: db -5, "BLUEZANGOOSE@" -CredSkye: - db -5, "HEADBOISKYE@" +CredHunnies: + db -4, "HUNNIEBUNS@" CredChatot: db -4, "CHATOT4444@" CredEni: diff --git a/data/items/key_items.asm b/data/items/key_items.asm index bc07d1b8..d75267c8 100644 --- a/data/items/key_items.asm +++ b/data/items/key_items.asm @@ -74,10 +74,10 @@ KeyItemFlags: dbit TRUE ; SILPH_SCOPE dbit TRUE ; POKE_FLUTE dbit TRUE ; LIFT_KEY - dbit TRUE ; EXP_ALL - Did you know this wasn't a key item originally? Yeesh, what if someone sold or tossed it?? + dbit TRUE ; EXP_ALL - Did you know this wasn't a key item originally? Yeesh, what if someone sold or tossed it?? dbit TRUE ; was TRUE for OLD_ROD, now CANDY_JAR - dbit FALSE ; was GOOD_ROD & TRUE, now BOTTLE_CAP - dbit TRUE ; SUPER_ROD + dbit FALSE ; was GOOD_ROD & TRUE, now BOTTLE_CAP + dbit TRUE ; FISHING_ROD dbit FALSE ; PP_UP dbit FALSE ; ETHER dbit FALSE ; MAX_ETHER diff --git a/data/items/use_overworld.asm b/data/items/use_overworld.asm index 13f7f97a..f20b56b9 100644 --- a/data/items/use_overworld.asm +++ b/data/items/use_overworld.asm @@ -3,7 +3,6 @@ UsableItems_CloseMenu: db ESCAPE_ROPE db ITEMFINDER db POKE_FLUTE - ;db OLD_ROD no longer exists - ;db GOOD_ROD no longer exists - db SUPER_ROD + db FISHING_ROD + db POCKET_LAPRAS db -1 ; end diff --git a/data/maps/headers/FishingGuruHouse.asm b/data/maps/headers/FishingGuruHouse.asm new file mode 100644 index 00000000..32625010 --- /dev/null +++ b/data/maps/headers/FishingGuruHouse.asm @@ -0,0 +1,2 @@ + map_header FishingGuruHouse, FISHING_GURU_HOUSE, HOUSE, 0 + end_map_header diff --git a/data/maps/headers/Route12SuperRodHouse.asm b/data/maps/headers/Route12SuperRodHouse.asm deleted file mode 100644 index a904c839..00000000 --- a/data/maps/headers/Route12SuperRodHouse.asm +++ /dev/null @@ -1,2 +0,0 @@ - map_header Route12SuperRodHouse, ROUTE_12_SUPER_ROD_HOUSE, HOUSE, 0 - end_map_header diff --git a/data/maps/map_header_banks.asm b/data/maps/map_header_banks.asm index 99c25975..7161bc9f 100644 --- a/data/maps/map_header_banks.asm +++ b/data/maps/map_header_banks.asm @@ -192,7 +192,7 @@ MapHeaderBanks:: db BANK(Route16Gate1F_h) db BANK(Route16Gate2F_h) db BANK(Route16FlyHouse_h) - db BANK(Route12SuperRodHouse_h) + db BANK(FishingGuruHouse_h) db BANK(Route18Gate1F_h) db BANK(Route18Gate2F_h) db BANK(SeafoamIslands1F_h) diff --git a/data/maps/map_header_pointers.asm b/data/maps/map_header_pointers.asm index 41dd1682..ecabed91 100644 --- a/data/maps/map_header_pointers.asm +++ b/data/maps/map_header_pointers.asm @@ -192,7 +192,7 @@ MapHeaderPointers:: dw Route16Gate1F_h dw Route16Gate2F_h dw Route16FlyHouse_h - dw Route12SuperRodHouse_h + dw FishingGuruHouse_h dw Route18Gate1F_h dw Route18Gate2F_h dw SeafoamIslands1F_h diff --git a/data/maps/objects/ChampionsRoom.asm b/data/maps/objects/ChampionsRoom.asm index fa5efd8f..09fd3e5b 100644 --- a/data/maps/objects/ChampionsRoom.asm +++ b/data/maps/objects/ChampionsRoom.asm @@ -2,8 +2,8 @@ ChampionsRoom_Object: db $3 ; border block def_warp_events - warp_event 3, 7, LANCES_ROOM, 2 - warp_event 4, 7, LANCES_ROOM, 3 + warp_event 4, 11, LANCES_ROOM, 2 + warp_event 5, 11, LANCES_ROOM, 3 warp_event 3, 0, HALL_OF_FAME, 1 warp_event 4, 0, HALL_OF_FAME, 1 @@ -11,6 +11,6 @@ ChampionsRoom_Object: def_object_events object_event 4, 2, SPRITE_BLUE, STAY, DOWN, 1 ; person - object_event 3, 7, SPRITE_OAK, STAY, UP, 2 ; person + object_event 3, 8, SPRITE_OAK, STAY, UP, 2 ; person def_warps_to CHAMPIONS_ROOM diff --git a/data/maps/objects/Route12SuperRodHouse.asm b/data/maps/objects/FishingGuruHouse.asm similarity index 79% rename from data/maps/objects/Route12SuperRodHouse.asm rename to data/maps/objects/FishingGuruHouse.asm index bfa492f3..468caaac 100644 --- a/data/maps/objects/Route12SuperRodHouse.asm +++ b/data/maps/objects/FishingGuruHouse.asm @@ -1,4 +1,4 @@ -Route12SuperRodHouse_Object: +FishingGuruHouse_Object: db $a ; border block def_warp_events @@ -11,4 +11,4 @@ Route12SuperRodHouse_Object: object_event 2, 4, SPRITE_FISHING_GURU, STAY, RIGHT, 1 ; person object_event 5, 6, SPRITE_YOUNGSTER, WALK, LEFT, 2 ; person - def_warps_to ROUTE_12_SUPER_ROD_HOUSE + def_warps_to FISHING_GURU_HOUSE diff --git a/data/maps/objects/Route24.asm b/data/maps/objects/Route24.asm index 361db331..d8fa9e78 100644 --- a/data/maps/objects/Route24.asm +++ b/data/maps/objects/Route24.asm @@ -2,7 +2,7 @@ Route24_Object: db $2c ; border block def_warp_events - warp_event 5, 5, ROUTE_12_SUPER_ROD_HOUSE, 1 + warp_event 5, 5, FISHING_GURU_HOUSE, 1 def_bg_events diff --git a/data/maps/town_map_entries.asm b/data/maps/town_map_entries.asm index 1af608f0..dfdaab8e 100644 --- a/data/maps/town_map_entries.asm +++ b/data/maps/town_map_entries.asm @@ -111,7 +111,7 @@ InternalMapEntries: internal_map MR_PSYCHICS_HOUSE, 10, 5, SaffronCityName internal_map ROUTE_15_GATE_2F, 9, 13, Route15Name internal_map ROUTE_16_FLY_HOUSE, 4, 5, Route16Name - internal_map ROUTE_12_SUPER_ROD_HOUSE, 10, 1, Route24Name + internal_map FISHING_GURU_HOUSE, 10, 1, Route24Name internal_map ROUTE_18_GATE_2F, 7, 13, Route18Name internal_map SEAFOAM_ISLANDS_1F, 5, 15, SeafoamIslandsName internal_map ROUTE_22_GATE, 0, 7, Route22Name diff --git a/data/text/text_2.asm b/data/text/text_2.asm index 1356838d..070e38e8 100644 --- a/data/text/text_2.asm +++ b/data/text/text_2.asm @@ -674,7 +674,9 @@ _ViridianBlackboardSleepText:: cont "battles." para "Use AWAKENING to" - line "wake them up!" + line "wake it up, or" + cont "wait for it to" + cont "wake itself up!" prompt _ViridianBlackboardPoisonText:: @@ -695,11 +697,11 @@ _ViridianBlackboardPoisonText:: prompt _ViridianBlackboardPrlzText:: - text "Paralysis could" - line "make #MON" - cont "moves misfire!" + text "Paralysis may" + line "make a #MON" + cont "unable to act!" - para "It even lowers" + para "It also lowers" line "their SPEED!" para "Paralysis remains" diff --git a/data/text/text_6.asm b/data/text/text_6.asm index f5014ed3..6aaa7860 100644 --- a/data/text/text_6.asm +++ b/data/text/text_6.asm @@ -69,6 +69,11 @@ _SurfingGotOnText:: text "!" prompt +_SurfingGotOnLaprasText:: + text " got on" + line "LAPRAS!" + prompt + _SurfingNoPlaceToGetOffText:: text "There's no place" line "to get off!" diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm index b8f6e0ec..41a07db3 100644 --- a/data/trainers/parties.asm +++ b/data/trainers/parties.asm @@ -354,7 +354,7 @@ EngineerData: ; Celadon University db 52, GOLEM_A, 0 -; Super Rod encounter showcase, basically +; Fishing Rod encounter showcase, basically FisherData: ; SS Anne 2F Rooms db 17, GOLDEEN, TENTACOOL, KRABBY, 0 diff --git a/data/wild/fishing_rod.asm b/data/wild/fishing_rod.asm new file mode 100644 index 00000000..c1b04e28 --- /dev/null +++ b/data/wild/fishing_rod.asm @@ -0,0 +1,48 @@ +FishingRodSlots:: + db PALLET_TOWN, MAGIKARP, 5, ORFRY, 5, MAGIKARP, 7, ORFRY, 7 + db VIRIDIAN_CITY, MAGIKARP, 5, ORFRY, 5, MAGIKARP, 7, ORFRY, 7 + db ROUTE_22, MAGIKARP, 5, ORFRY, 5, MAGIKARP, 7, ORFRY, 7 + db ROUTE_4, MAGIKARP, 12, ORFRY, 12, POLIWAG, 12, PSYDUCK, 12 + db CERULEAN_CITY, MAGIKARP, 12, ORFRY, 12, POLIWAG, 12, PSYDUCK, 12 + db ROUTE_24, MAGIKARP, 12, ORFRY, 12, POLIWAG, 12, PSYDUCK, 12 + db ROUTE_25, MAGIKARP, 12, POLIWAG, 12, ORFRY, 12, CHEEP, 12 + db ROUTE_6, MAGIKARP, 12, ORFRY, 12, POLIWAG, 12, PSYDUCK, 12 + db VERMILION_CITY, MAGIKARP, 15, BLOTTLE, 15, CHEEP, 15, TENTACOOL, 15 + db VERMILION_DOCK, MAGIKARP, 15, BLOTTLE, 15, CHEEP, 15, TENTACOOL, 15 + db VERMILION_FERRY_DOCK, MAGIKARP, 15, BLOTTLE, 15, CHEEP, 15, TENTACOOL, 15 + db ROUTE_11, MAGIKARP, 15, BLOTTLE, 15, CHEEP, 15, TENTACOOL, 15 + db DIGLETTS_CAVE, WIGLETT, 18, WIGLETT, 19, WIGLETT, 20, WUGTRIO, 28 + db ROUTE_10, POLIWAG, 18, RIBBITO, 18, KRABBY, 18, SLOWPOKE, 18 + db ROCK_TUNNEL_1F, POLIWAG, 18, RIBBITO, 18, KRABBY, 18, SLOWPOKE, 18 + db ROUTE_12, POLIWAG, 18, RIBBITO, 18, KRABBY, 18, SLOWPOKE, 18 + db CELADON_CITY, MAGIKARP, 15, MAGIKARP, 18, GRIMER, 20, MAGIKARP, 20 + db CELADON_UNIVERSITY_OUTSIDE, MAGIKARP, 15, MAGIKARP, 18, GRIMER, 20, MAGIKARP, 20 + db ROUTE_13, BLOTTLE, 25, KRABBY, 25, HORSEA, 25, POLIWHIRL, 25 + db ROUTE_17, BLOTTLE, 25, KRABBY, 25, HORSEA, 25, POLIWHIRL, 25 + db ROUTE_18, BLOTTLE, 25, KRABBY, 25, HORSEA, 25, POLIWHIRL, 25 + db ROUTE_23, BLOTTLE, 25, KRABBY, 25, HORSEA, 25, POLIWHIRL, 25 + db FUCHSIA_CITY, BLOTTLE, 25, KRABBY, 25, HORSEA, 25, POLIWHIRL, 25 + db SAFARI_ZONE_CENTER, SLOWPOKE, 25, KRABBY, 25, DRATINI, 20, DRAGONAIR, 30 + db SAFARI_ZONE_EAST, SLOWPOKE, 25, KRABBY, 25, WEIRDUCK, 25, DRATINI, 20 + db SAFARI_ZONE_NORTH, SLOWPOKE, 25, KRABBY, 25, WEIRDUCK, 25, DRATINI, 20 + db SAFARI_ZONE_WEST, SLOWPOKE, 25, KRABBY, 25, WEIRDUCK, 25, DRATINI, 20 + db UNDERWATER_TUNNEL, SHELLDER, 30, STARYU, 30, CROAKOZUNA, 33, GOLDUCK, 33 + db ROUTE_19, GOLDEEN, 30, HORSEA, 30, SHELLDER, 30, STARYU, 30 + db ROUTE_20, GOLDEEN, 30, HORSEA, 30, SHELLDER, 30, STARYU, 30 + db ROUTE_21, GOLDEEN, 30, HORSEA, 30, SHELLDER, 30, STARYU, 30 + db SEAFOAM_ISLANDS_B3F, GOLDEEN, 30, HORSEA, 30, SHELLDER, 30, STARYU, 30 + db SEAFOAM_ISLANDS_B4F, GOLDEEN, 30, HORSEA, 30, SHELLDER, 30, STARYU, 30 + db CINNABAR_ISLAND, GOLDEEN, 30, HORSEA, 30, SHELLDER, 30, STARYU, 30 + db CINNABAR_VOLCANO_FLOORS, GROWLITHE, 32, MAGMAR, 35, MAGMAR, 35, MAGMAR, 36 + db CINNABAR_VOLCANO, MAGMAR, 35, MAGMAR, 35, MAGMAR, 36, ARCANINE, 38 + db BILLS_GARDEN, SQUIRTLE, 50, SQUIRTLE, 50, DRATINI, 50, DRAGONAIR, 50 + db MT_MOON_CRATER, SEAKING, 50, SLOWBRO, 50, CROAKOZUNA, 50, GYARADOS, 50 + db CITRINE_FERRY_DOCK, PENDRAKEN, 50, SEADRA, 50, KINGLER, 50, GYARADOS, 50 + db CITRINE_CITY, PENDRAKEN, 50, SEADRA, 50, KINGLER, 50, GYARADOS, 50 + db BRUNSWICK_TRAIL, PENDRAKEN, 50, SEADRA, 50, KINGLER, 50, GYARADOS, 50 + db GARNET_CAVERN_1F, PENDRAKEN, 50, SEADRA, 50, KINGLER, 50, GYARADOS, 50 + db GARNET_CAVERN_B1F, PENDRAKEN, 50, SEADRA, 50, KINGLER, 50, GYARADOS, 50 + db SILPH_GAUNTLET_5F, SLOWBRO, 50, KINGLER, 50, GOLDUCK, 50, DRAGONAIR, 50 + db CERULEAN_CAVE_1F, SEAKING, 50, SLOWBRO, 50, CROAKOZUNA, 50, GYARADOS, 50 + db CERULEAN_CAVE_B1F, SEAKING, 50, SLOWBRO, 50, CROAKOZUNA, 50, GYARADOS, 50 + db -1 ; end diff --git a/data/wild/good_rod.asm b/data/wild/good_rod.asm deleted file mode 100644 index 700a5516..00000000 --- a/data/wild/good_rod.asm +++ /dev/null @@ -1,5 +0,0 @@ -; random choice of 2 good rod encounters -GoodRodMons: - ; level, species - db 10, GOLDEEN - db 10, POLIWAG diff --git a/data/wild/super_rod.asm b/data/wild/super_rod.asm deleted file mode 100644 index 6246db04..00000000 --- a/data/wild/super_rod.asm +++ /dev/null @@ -1,159 +0,0 @@ -; super rod encounters -SuperRodData: - ; map, fishing group - dbw PALLET_TOWN, .Group1 - dbw VIRIDIAN_CITY, .Group1 - dbw CERULEAN_CITY, .Group2 - dbw VERMILION_CITY, .Group4 - dbw CELADON_CITY, .Group13 - dbw FUCHSIA_CITY, .Group6 - dbw CINNABAR_ISLAND, .Group9 - dbw CITRINE_CITY, .Group11 - dbw ROUTE_4, .Group2 - dbw ROUTE_6, .Group2 - dbw ROUTE_10, .Group5 - dbw ROUTE_11, .Group4 - dbw ROUTE_12, .Group5 - dbw ROUTE_13, .Group6 - dbw ROUTE_17, .Group6 - dbw ROUTE_18, .Group6 - dbw ROUTE_19, .Group9 - dbw ROUTE_20, .Group9 - dbw ROUTE_21, .Group9 - dbw ROUTE_22, .Group1 - dbw ROUTE_23, .Group6 - dbw ROUTE_24, .Group2 - dbw ROUTE_25, .Group3 - dbw BRUNSWICK_TRAIL, .Group11 - dbw VERMILION_DOCK, .Group4 - dbw VERMILION_FERRY_DOCK, .Group4 - dbw CITRINE_FERRY_DOCK, .Group11 - dbw SEAFOAM_ISLANDS_B3F, .Group9 - dbw SEAFOAM_ISLANDS_B4F, .Group9 - dbw SAFARI_ZONE_EAST, .Group7 - dbw SAFARI_ZONE_NORTH, .Group7 - dbw SAFARI_ZONE_WEST, .Group7 - dbw SAFARI_ZONE_CENTER, .Group7 - dbw CERULEAN_CAVE_2F, .Group12 - dbw CERULEAN_CAVE_B1F, .Group12 - dbw CERULEAN_CAVE_1F, .Group12 - dbw SILPH_GAUNTLET_5F, .Group7 - dbw ROCK_TUNNEL_1F, .Group5 - dbw CELADON_UNIVERSITY_OUTSIDE, .Group13 - dbw MT_MOON_CRATER, .Group12 - dbw DIGLETTS_CAVE, .Group14 - dbw BILLS_GARDEN, .Group8 - dbw UNDERWATER_TUNNEL, .Group10 - dbw GARNET_CAVERN_1F, .Group11 - dbw GARNET_CAVERN_2F, .Group11 - dbw GARNET_CAVERN_B1F, .Group11 - dbw CINNABAR_VOLCANO_FLOORS, .Group15 - dbw CINNABAR_VOLCANO, .Group15 - db -1 ; end - -; fishing groups -; number of monsters, followed by level/monster pairs - -.Group1: ; Pallet, Viridian & Route 22 - db 4 - db 5, MAGIKARP - db 7, MAGIKARP - db 5, ORFRY - db 7, ORFRY - -.Group2: ; Route 4, Cerulean, Route 24, Route 6 - db 4 - db 12, MAGIKARP - db 12, POLIWAG - db 12, ORFRY - db 12, PSYDUCK - -.Group3: ; Route 25 - db 4 - db 12, MAGIKARP - db 12, POLIWAG - db 12, ORFRY - db 12, CHEEP - -.Group4: ; Route 11, Vermilion - db 4 - db 15, BLOTTLE - db 15, MAGIKARP - db 15, TENTACOOL - db 15, CHEEP - -.Group5: ; Route 10, Route 12, Rock Tunnel - db 4 - db 20, RIBBITO - db 20, POLIWAG - db 20, SLOWPOKE - db 20, KRABBY - -.Group6: ; Route 13, Route 17, Route 18, Fuchsia, Route 23 - db 4 - db 25, HORSEA - db 25, POLIWHIRL - db 25, KRABBY - db 25, BLOTTLE - -.Group7: ; Safari Zone - db 4 - db 15, DRATINI - db 20, SLOWPOKE - db 25, KRABBY - db 25, WEIRDUCK - -.Group8: ; Bill's Garden - db 4 - db 50, SQUIRTLE - db 50, SQUIRTLE - db 50, DRATINI - db 50, DRATINI - -.Group9: ; Cinnabar, Route 19-21, Seafoam Islands - db 4 - db 30, STARYU - db 30, HORSEA - db 30, SHELLDER - db 30, GOLDEEN - -.Group10: ; Underwater Tunnel - db 4 - db 35, SHELLDER - db 35, STARYU - db 35, CROAKOZUNA - db 35, GOLDUCK - -.Group11: ; Citrine, Brunswick, Garnet - db 4 - db 50, KINGLER - db 50, SEADRA - db 50, PENDRAKEN - db 50, GYARADOS - -.Group12: ; Cerulean Cave, Mt Moon Crater - db 4 - db 50, SLOWBRO - db 50, SEAKING - db 50, GYARADOS - db 50, CROAKOZUNA - -.Group13: ; Celadon - db 4 - db 10, MAGIKARP - db 15, MAGIKARP - db 20, MAGIKARP - db 20, GRIMER - -.Group14: ; Diglett's Cave - db 4 - db 17, WIGLETT - db 18, WIGLETT - db 19, WIGLETT - db 20, WIGLETT - -.Group15: ; Cinnabar Volcano - db 3 - db 35, MAGMAR - db 37, MAGMAR - db 40, MAGMAR diff --git a/engine/battle/core.asm b/engine/battle/core.asm index f552e481..24afd5be 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -1936,6 +1936,7 @@ DrawPlayerHUDAndHPBar: hlcoord 10, 7 call CenterMonName call PlaceString + call PrintEXPBar ld hl, wBattleMonSpecies ld de, wLoadedMon ld bc, wBattleMonDVs - wBattleMonSpecies @@ -7308,3 +7309,187 @@ MeltanIncrement: MeltanFullJar: text_far _MeltanFullJar text_end + +PrintEXPBar: + call CalcEXPBarPixelLength + ld a, [hQuotient + 3] ; pixel length + ld [wEXPBarPixelLength], a + ld b, a + ld c, $08 + ld d, $08 + coord hl, 17, 11 +.loop + ld a, b + sub c + jr nc, .skip + ld c, b + jr .loop +.skip + ld b, a + ld a, $c0 + add c +.loop2 + ld [hld], a + dec d + ret z + ld a, b + and a + jr nz, .loop + ld a, $c0 + jr .loop2 + +CalcEXPBarPixelLength: + ld hl, wEXPBarKeepFullFlag + bit 0, [hl] + jr z, .start + res 0, [hl] + ld a, $40 + ld [hQuotient + 3], a + ret + +.start + ; get the base exp needed for the current level + ld a, [wPlayerBattleStatus3] + ld hl, wBattleMonSpecies + bit 3, a + jr z, .skip + ld hl, wPartyMon1 + call BattleMonPartyAttr +.skip + ld a, [hl] + ld [wd0b5], a + call GetMonHeader + ld a, [wBattleMonLevel] + ld d, a + ld hl, CalcExperience + ld b, BANK(CalcExperience) + call Bankswitch + ld hl, hMultiplicand + ld de, wEXPBarBaseEXP + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + + ; get the exp needed to gain a level + ld a, [wBattleMonLevel] + ld d, a + inc d + ld hl, CalcExperience + ld b, BANK(CalcExperience) + call Bankswitch + + ; get the address of the active Pokemon's current experience + ld hl, wPartyMon1Exp + call BattleMonPartyAttr + + ; current exp - base exp + ld b, h + ld c, l + ld hl, wEXPBarBaseEXP + ld de, wEXPBarCurEXP + call SubThreeByteNum + + ; exp needed - base exp + ld bc, hMultiplicand + ld hl, wEXPBarBaseEXP + ld de, wEXPBarNeededEXP + call SubThreeByteNum + + ; make the divisor an 8-bit number + ld hl, wEXPBarNeededEXP + ld de, wEXPBarCurEXP + 1 + ld a, [hli] + and a + jr z, .twoBytes + ld a, [hli] + ld [hld], a + dec hl + ld a, [hli] + ld [hld], a + ld a, [de] + inc de + ld [de], a + dec de + dec de + ld a, [de] + inc de + ld [de], a + dec de + xor a + ld [hli], a + ld [de], a + inc de +.twoBytes + ld a, [hl] + and a + jr z, .oneByte + srl a + ld [hli], a + ld a, [hl] + rr a + ld [hld], a + ld a, [de] + srl a + ld [de], a + inc de + ld a, [de] + rr a + ld [de], a + dec de + jr .twoBytes +.oneByte + + ; current exp * (8 tiles * 8 pixels) + ld hl, hMultiplicand + ld de, wEXPBarCurEXP + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + ld [hl], a + ld a, $40 + ld [hMultiplier], a + call Multiply + + ; product / needed exp = pixel length + ld a, [wEXPBarNeededEXP + 2] + ld [hDivisor], a + ld b, $04 + jp Divide + +; calculates the three byte number starting at [bc] +; minus the three byte number starting at [hl] +; and stores it into the three bytes starting at [de] +; assumes that [hl] is smaller than [bc] +SubThreeByteNum: + call .subByte + call .subByte +.subByte + ld a, [bc] + inc bc + sub [hl] + inc hl + ld [de], a + jr nc, .noCarry + dec de + ld a, [de] + dec a + ld [de], a + inc de +.noCarry + inc de + ret + +; return the address of the BattleMon's party struct attribute in hl +BattleMonPartyAttr: + ld a, [wPlayerMonNumber] + ld bc, wPartyMon2 - wPartyMon1 + jp AddNTimes diff --git a/engine/battle/effects.asm b/engine/battle/effects.asm index d35f3cab..5cc4b6a0 100644 --- a/engine/battle/effects.asm +++ b/engine/battle/effects.asm @@ -804,7 +804,6 @@ ThrashPetalDanceEffect: inc a ld [de], a ; set thrash/petal dance counter to 2 or 3 at random ldh a, [hWhoseTurn] - add SHRINKING_SQUARE_ANIM jp PlayBattleAnimation2 SwitchAndTeleportEffect: diff --git a/engine/battle/experience.asm b/engine/battle/experience.asm index 77a9728e..9ebed480 100644 --- a/engine/battle/experience.asm +++ b/engine/battle/experience.asm @@ -167,6 +167,7 @@ GainExperience: xor a ; PLAYER_PARTY_DATA ld [wMonDataLocation], a call LoadMonData + call AnimateEXPBar pop hl ld bc, wPartyMon1Level - wPartyMon1Exp add hl, bc @@ -177,6 +178,7 @@ GainExperience: ld [wTempLevel], a cp d jp z, .nextMon ; if level didn't change, go to next mon + call KeepEXPBarFull ld a, [wCurEnemyLVL] push af push hl @@ -399,3 +401,71 @@ GrewLevelText: text_far _GrewLevelText sound_level_up text_end + +AnimateEXPBarAgain: + call IsCurrentMonBattleMon + ret nz + xor a + ld [wEXPBarPixelLength], a + coord hl, 17, 11 + ld a, $c0 + ld c, $08 +.loop + ld [hld], a + dec c + jr nz, .loop +AnimateEXPBar: + call IsCurrentMonBattleMon + ret nz + ld a, SFX_HEAL_HP + call PlaySoundWaitForCurrent + ld hl, CalcEXPBarPixelLength + ld b, BANK(CalcEXPBarPixelLength) + call Bankswitch + ld hl, wEXPBarPixelLength + ld a, [hl] + ld b, a + ld a, [hQuotient + 3] + ld [hl], a + sub b + jr z, .done + ld b, a + ld c, $08 + coord hl, 17, 11 +.loop1 + ld a, [hl] + cp $c8 + jr nz, .loop2 + dec hl + dec c + jr z, .done + jr .loop1 +.loop2 + inc a + ld [hl], a + call DelayFrame + dec b + jr z, .done + jr .loop1 +.done + ld bc, $08 + coord hl, 10, 11 + ld de, wTileMapBackup + 10 + 11 * 20 + call CopyData + ld c, $20 + jp DelayFrames + +KeepEXPBarFull: + call IsCurrentMonBattleMon + ret nz + ld a, [wEXPBarKeepFullFlag] + set 0, a + ld [wEXPBarKeepFullFlag], a + ret + +IsCurrentMonBattleMon: + ld a, [wPlayerMonNumber] + ld b, a + ld a, [wWhichPokemon] + cp b + ret diff --git a/engine/debug/debug_party.asm b/engine/debug/debug_party.asm index d0c5b30d..ee5afa7c 100644 --- a/engine/debug/debug_party.asm +++ b/engine/debug/debug_party.asm @@ -196,7 +196,7 @@ DebugItemsList: db CARD_KEY, 1 db S_S_TICKET, 1 db CITRINE_PASS, 1 - db SUPER_ROD, 1 + db FISHING_ROD, 1 db COIN_CASE, 1 db POKE_FLUTE, 1 db SILPH_SCOPE, 1 diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm index 74371b72..e52dfef9 100644 --- a/engine/items/item_effects.asm +++ b/engine/items/item_effects.asm @@ -72,7 +72,7 @@ ItemUsePtrTable: dw ItemUseMedicine ; REVIVE dw ItemUseMedicine ; MAX_REVIVE dw ItemUseGuardSpec ; GUARD_SPEC - dw ItemUseSuperRepel ; SUPER_REPL + dw ItemUseSuperRepel ; SUPER_REPEL dw ItemUseMaxRepel ; MAX_REPEL dw ItemUseDireHit ; DIRE_HIT dw UnusableItem ; COIN @@ -92,10 +92,10 @@ ItemUsePtrTable: dw ItemUsePokeflute ; POKE_FLUTE dw UnusableItem ; LIFT_KEY dw UnusableItem ; EXP_ALL - dw ItemUseCandyJar ; was OLD_ROD, now CANDY_JAR - dw UnusableItem ; was GOOD_ROD, now BOTTLE_CAP - dw ItemUseSuperRod ; SUPER_ROD - dw ItemUsePPUp ; PP_UP (real one) + dw ItemUseCandyJar ; was OLD_ROD, now CANDY_JAR + dw UnusableItem ; was GOOD_ROD, now BOTTLE_CAP + dw ItemUseFishingRod ; FISHING_ROD + dw ItemUsePPUp ; PP_UP dw ItemUsePPRestore ; ETHER dw ItemUsePPRestore ; MAX_ETHER dw ItemUsePPRestore ; ELIXER @@ -110,11 +110,11 @@ ItemUsePtrTable: dw ItemUseEvoStone ; UP_GRADE dw ItemUseEvoStone ; METAL_COAT dw ItemUseMysteryBox ; MYSTERY_BOX - dw UnusableItem ; TEA - dw ItemUseLetter ; SILPHLETTER + dw UnusableItem ; TEA + dw ItemUseLetter ; SILPHLETTER dw UnusableItem ; FLOOR_B2F dw UnusableItem ; FLOOR_B1F - dw UnusableItem ; FLOOR_1F + dw UnusableItem ; FLOOR_1F dw UnusableItem ; FLOOR_2F dw UnusableItem ; FLOOR_3F dw UnusableItem ; FLOOR_4F @@ -851,6 +851,10 @@ SurfingGotOnText: text_far _SurfingGotOnText text_end +SurfingGotOnLaprasText: + text_far _SurfingGotOnLaprasText + text_end + SurfingNoPlaceToGetOffText: text_far _SurfingNoPlaceToGetOffText text_end @@ -1986,16 +1990,31 @@ CoinCaseNumCoinsText: ;INCLUDE "data/wild/good_rod.asm" -ItemUseSuperRod: +ItemUseFishingRod: call FishingInit jp c, ItemUseNotTime - call ReadSuperRodData - ld a, e + call ReadFishingRodData + ld c, e + ld b, d + ld a, $2 + ld [wRodResponse], a + ld a, c + and a ; are there fish in the map? + jr z, DoNotGenerateFishingEncounter ; if not, do not generate an encounter + ld a, $1 + ld [wRodResponse], a + call Random + and $1 + jr nz, RodResponse + xor a + ld [wRodResponse], a + jr DoNotGenerateFishingEncounter + RodResponse: ld [wRodResponse], a dec a ; is there a bite? - jr nz, .next + jr nz, DoNotGenerateFishingEncounter ; if yes, store level and species data ld a, 1 ld [wMoveMissed], a @@ -2004,7 +2023,7 @@ RodResponse: ld a, c ; species ld [wCurOpponent], a -.next +DoNotGenerateFishingEncounter: ld hl, wWalkBikeSurfState ld a, [hl] ; store the value in a push af @@ -2029,7 +2048,7 @@ FishingInit: ret c ld a, [wWalkBikeSurfState] cp 2 ; Surfing? - jr z, .surfing + jr z, .cannotFish call ItemUseReloadOverworldData ld hl, ItemUseText00 call PrintText @@ -2039,7 +2058,7 @@ FishingInit: call DelayFrames and a ret -.surfing +.cannotFish scf ; can't fish when surfing ret @@ -2971,52 +2990,47 @@ IsNextTileShoreOrWater: INCLUDE "data/tilesets/water_tilesets.asm" -ReadSuperRodData: -; return e = 2 if no fish on this map -; return e = 1 if a bite, bc = level,species -; return e = 0 if no bite +ReadFishingRodData: ld a, [wCurMap] - ld de, 3 ; each fishing group is three bytes wide - ld hl, SuperRodData - call IsInArray - jr c, .ReadFishingGroup - ld e, $2 ; $2 if no fishing groups found - ret - -.ReadFishingGroup -; hl points to the fishing group entry in the index - inc hl ; skip map id - - ; read fishing group address - ld a, [hli] - ld h, [hl] - ld l, a - - ld b, [hl] ; how many mons in group - inc hl ; point to data - ld e, $0 ; no bite yet - -.RandomLoop - call Random - srl a - ret c ; 50% chance of no battle - - and %11 ; 2-bit random number - cp b - jr nc, .RandomLoop ; if a is greater than the number of mons, regenerate - - ; get the mon - add a ld c, a - ld b, $0 - add hl, bc - ld b, [hl] ; level - inc hl - ld c, [hl] ; species - ld e, $1 ; $1 if there's a bite + ld hl, FishingRodSlots +.loop + ld a, [hli] + cp $ff + jr z, .notfound + cp c + jr z, .found + ld de, $8 + add hl, de + jr .loop +.found + call GenerateRandomFishingEncounter + ret +.notfound + ld de, $0 ret -INCLUDE "data/wild/super_rod.asm" +GenerateRandomFishingEncounter: + call Random + cp $66 + jr c, .asm_f5ed6 + inc hl + inc hl + cp $b2 + jr c, .asm_f5ed6 + inc hl + inc hl + cp $e5 + jr c, .asm_f5ed6 + inc hl + inc hl +.asm_f5ed6 + ld e, [hl] + inc hl + ld d, [hl] + ret + +INCLUDE "data/wild/fishing_rod.asm" ; reloads map view and processes sprite data ; for items that cause the overworld to be displayed diff --git a/engine/menus/players_pc.asm b/engine/menus/players_pc.asm index 5461be51..000f6661 100644 --- a/engine/menus/players_pc.asm +++ b/engine/menus/players_pc.asm @@ -72,6 +72,8 @@ ExitPlayerPC: call WaitForSoundToFinish .next ld hl, wFlags_0xcd60 + res 2, [hl] + res 4, [hl] res 5, [hl] call LoadScreenTilesFromBuffer2 xor a @@ -94,6 +96,9 @@ PlayerPCDeposit: call PrintText jp PlayerPCMenu .loop + ld hl, wFlags_0xcd60 + set 2, [hl] + res 4, [hl] ld hl, WhatToDepositText call PrintText ld hl, wNumBagItems @@ -106,6 +111,7 @@ PlayerPCDeposit: ld a, ITEMLISTMENU ld [wListMenuID], a call DisplayListMenuID + jp nz, .sortItems jp c, PlayerPCMenu call IsKeyItem ld a, 1 @@ -120,6 +126,9 @@ PlayerPCDeposit: cp $ff jp z, .loop .next + ld hl, wFlags_0xcd60 + res 2, [hl] + res 4, [hl] ld hl, wNumBoxItems call AddItemToInventory jr c, .roomAvailable @@ -136,7 +145,9 @@ PlayerPCDeposit: ld hl, ItemWasStoredText call PrintText jp .loop - +.sortItems + call SortItems + jp .loop PlayerPCWithdraw: xor a ld [wCurrentMenuItem], a @@ -148,6 +159,9 @@ PlayerPCWithdraw: call PrintText jp PlayerPCMenu .loop + ld hl, wFlags_0xcd60 + set 2, [hl] + set 4, [hl] ld hl, WhatToWithdrawText call PrintText ld hl, wNumBoxItems @@ -160,6 +174,7 @@ PlayerPCWithdraw: ld a, ITEMLISTMENU ld [wListMenuID], a call DisplayListMenuID + jp nz, .sortItems jp c, PlayerPCMenu call IsKeyItem ld a, 1 @@ -174,6 +189,9 @@ PlayerPCWithdraw: cp $ff jp z, .loop .next + ld hl, wFlags_0xcd60 + res 2, [hl] + res 4, [hl] ld hl, wNumBagItems call AddItemToInventory jr c, .roomAvailable @@ -190,7 +208,9 @@ PlayerPCWithdraw: ld hl, WithdrewItemText call PrintText jp .loop - +.sortItems + call SortItems + jp .loop PlayerPCToss: xor a ld [wCurrentMenuItem], a @@ -202,6 +222,9 @@ PlayerPCToss: call PrintText jp PlayerPCMenu .loop + ld hl, wFlags_0xcd60 + set 2, [hl] + set 4, [hl] ld hl, WhatToTossText call PrintText ld hl, wNumBoxItems @@ -216,6 +239,7 @@ PlayerPCToss: push hl call DisplayListMenuID pop hl + jp nz, .sortItems jp c, PlayerPCMenu push hl call IsKeyItem @@ -237,8 +261,14 @@ PlayerPCToss: cp $ff jp z, .loop .next + ld hl, wFlags_0xcd60 + res 2, [hl] + res 4, [hl] call TossItem ; disallows tossing key items jp .loop +.sortItems + call SortItems + jp .loop PlayersPCMenuEntries: db "WITHDRAW ITEM" diff --git a/engine/menus/start_sub_menus.asm b/engine/menus/start_sub_menus.asm index d6722d1c..2e0ed8b6 100644 --- a/engine/menus/start_sub_menus.asm +++ b/engine/menus/start_sub_menus.asm @@ -319,6 +319,9 @@ StartMenu_Item:: call PrintText jr .exitMenu .notInCableClubRoom + ld hl,wFlags_0xcd60 + set 2, [hl] + res 4, [hl] ld bc, wNumBagItems ld hl, wListPointer ld a, c @@ -336,6 +339,9 @@ StartMenu_Item:: ld [wBagSavedMenuItem], a jr nc, .choseItem .exitMenu + ld hl,wFlags_0xcd60 + res 2, [hl] + res 4, [hl] call LoadScreenTilesFromBuffer2 ; restore saved screen call LoadTextBoxTilePatterns call UpdateSprites diff --git a/engine/menus/swap_items.asm b/engine/menus/swap_items.asm index f012d1df..bc2446fe 100644 --- a/engine/menus/swap_items.asm +++ b/engine/menus/swap_items.asm @@ -179,7 +179,7 @@ SortItems:: ld de, 0 ld hl, ItemSortList ld b, [hl] ; This is the first item to check for - ld hl, wBagItems + call .ldHLbagorbox ld c, 0 ; Relative to wBagItems, this is where we'd like to begin swapping .loopCurrItemInBag ld a, [hl] ; Load the value of hl to a (which is an item number) and Increments to the quantity @@ -196,7 +196,7 @@ SortItems:: ld hl, ItemSortList add hl, de ld b, [hl] - ld hl, wBagItems ; Resets hl to start at the beginning of the bag + call .ldHLbagorbox ; Resets hl to start at the beginning of the bag ld a, b cp -1 ; Check if we got through all of the items, to the last one jr z, .finishedSwapping @@ -207,7 +207,7 @@ SortItems:: push de ld d, h ld e, l - ld hl, wBagItems + call .ldHLbagorbox ld a, b ld b, 0 add hl, bc ; hl now holds where we'd like to swap to @@ -240,6 +240,15 @@ SortItems:: pop de jr .findNextItem +;Allow for sorting both the bag and the item PC box +.ldHLbagorbox + ld hl, wBagItems + ld a, [wFlags_0xcd60] + bit 4, a + ret z + ld hl, wBoxItems + ret + SortItemsText:: text_far _SortItemsText db "@" @@ -255,7 +264,7 @@ NothingToSort:: ItemSortList:: ; Used Key Items db BICYCLE - db SUPER_ROD + db FISHING_ROD db POCKET_LAPRAS db ITEMFINDER db TOWN_MAP diff --git a/engine/movie/title.asm b/engine/movie/title.asm index 9120396d..1767ca0a 100644 --- a/engine/movie/title.asm +++ b/engine/movie/title.asm @@ -129,13 +129,13 @@ DisplayTitleScreen: call Random ldh a, [hRandomSub] cp 129 - jr c, .notshocks - ld a, SANDY_SHOCKS + jr c, .notscreamtail + ld a, SCREAM_TAIL ld [wTitleMonSpecies], a call LoadTitleMonSprite jr .skip -.notshocks - ld a, SCREAM_TAIL +.notscreamtail + ld a, SANDY_SHOCKS ld [wTitleMonSpecies], a call LoadTitleMonSprite .skip diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm index 4994c8fa..1857e91f 100644 --- a/engine/overworld/movement.asm +++ b/engine/overworld/movement.asm @@ -69,8 +69,25 @@ UpdatePlayerSprite: ld a, [hl] inc a ld [hl], a - cp 4 - jr nz, .calcImageIndex + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;joenote - If B is being held to go faster and full joypad is enabled (i.e. not in a cutscene), +;Then increase player animation speed by 25% + push bc + ld c, 4 + ld b, a + ld a, [wJoyIgnore] + and a + jr nz, .doneSpeed + ld a, [hJoyHeld] + and B_BUTTON + jr z, .doneSpeed + ld c, 3 +.doneSpeed + ld a, b + cp c + pop bc +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + jr c, .calcImageIndex ;joenote - prevents interframe counter from increasing forever xor a ld [hl], a inc hl diff --git a/gfx/battle/battle_hud_3.png b/gfx/battle/battle_hud_3.png index fd1c57f723439c2ca9076fab0eaeed67d3240226..de740f25d9175eef4ec6a68d9bc3a3e672f492a7 100644 GIT binary patch delta 168 zcma#u$v8oxo`a2nf#LB&`(z-+SRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv@3Vz$3Dl zfr0NZ2s0kfUy%Y7^z(Fa46*P}{=?70=XE OG=rzBpUXO@geCx>%`yl8 delta 75 zcmdnV7&}42m5Bieda5eqfRu`-i(^Q|t>hp7|M&m>|DQ*pOWw)wPdWorHCvqkYtnyq b<`6E1h#d-_miYR+f%JL0`njxgN@xNAy>}Tx diff --git a/gfx/blocksets/gym.bst b/gfx/blocksets/gym.bst index a8c8704138efcbd102b0b82c73fa96d933c17aae..12673176ed4b3c94bb55c23380d6d535882eb8d9 100644 GIT binary patch delta 88 zcmX@WH-UeH1A73I1uLtNuz-M)vY?=mv7n%eIzPXvDFQQD2nq@b3koVJtEd?nI|;z# b`GIN#?D+Xr)R`<)O@)M2O_h{YO^u8JJ^l;# delta 7 OcmbQhe}Hd;13Lf;-~wd; diff --git a/gfx/font.asm b/gfx/font.asm index fc2aff4f..6fb90bbb 100644 --- a/gfx/font.asm +++ b/gfx/font.asm @@ -7,6 +7,9 @@ ABTiles: INCBIN "gfx/font/AB.2bpp" HpBarAndStatusGraphics:: INCBIN "gfx/font/font_battle_extra.2bpp" HpBarAndStatusGraphicsEnd:: +EXPBarGraphics:: INCBIN "gfx/font/exp_bar.2bpp" +EXPBarGraphicsEnd:: + BattleHudTiles1: INCBIN "gfx/battle/battle_hud_1.1bpp" BattleHudTiles1End: BattleHudTiles2: INCBIN "gfx/battle/battle_hud_2.1bpp" diff --git a/gfx/font/exp_bar.png b/gfx/font/exp_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..073f4347ee75af1ebeedb44a9c07d406bf48a787 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^9ze{&!3HFww(ishQjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`ISV`@iy0XB4ude`@%$AjK*1PK7sn6}@3&J9axo}yIB)L%qWt&dsb+zN znk6~A?KtN|n@p1uv2xI7Gb|Ps{9c%<)i3?|$2q^cO>?WyR2?NMQuIw*Z#kmx<~rfxJHzuB$lLFB^RXvDF!10BNJT% zQ(YtD5JLkiV`D25V{HQiD+7a*)+Ko;8glbfGSez?YuJ%?<`PhY2Hb{{%-q!ClEmBs z+;)n6ke_gyCALEbw zYdD)~;QX)oY>L2RjsO4s6W+QfKC5Aw#k1{^zs8kI{}(MhC~%B%#^I2KO7-CfuLyh* aXHeF<96F`>;$)zE7(8A5T-G@yGywnriI<=N delta 276 zcmZ3%GM#yX3NK5#qpu?a!^VE@KZ&dp6&pI&hmX@z z#3*x>D^Q3rzsN6y@%*ClSwK#$r;B5V#O354{H#18#`_EmoF%@;uWc~!a&~^}*t0*} z+4-+y&wE9lIR_PvEpPbcpKvVp`TzQL4HD`%|Nl2gU{SLWoTIO_B;EOne+q#R* z*PE@6Pn;kwWu$8eL?$5ymR6?bR)&_^1_o9J2D(e$&YyTtTn$au0wVjXFK#-}7Yv@R KelF{r5}E)pvtxb$ diff --git a/gfx/pokemon/back/wiglettb.png b/gfx/pokemon/back/wiglettb.png index 9e6a1bcbc216ea5b8cfb5c7a5e13275c6e42167f..73b560ad9f78a3f07d681e74d3acf50161b3f1fe 100644 GIT binary patch delta 299 zcmeBTnaeUkWul3b>|q85zQc^i^H-!WFfg!}c>21szhD*TQq*a%)jvORvWk?6u7Rnp zk#UHjft9hbm5H&ofq|8Q!Aa|qyondZ{jkgKNIP>0Xq-lgYeY#(Vo9o1NoH2QPE;mnRV$7_s^mK6yk+|G?-d4!LK!EkZ8I3!xPuVP|Fk3WbOUxC{ z_#(A;k{GM&r1bhlNgiL%zNz-SrXcsZ*D$c+wbwx&pC&#H3C04;#|uKTIZckAlHjoI zU$Lr`dr8g0FVdQ&MBb@0Mq1XWB>pF delta 278 zcmbQs(#0}Cg_kAW(btiIVPik{pG4M)imtLp7#R4DFizFxlV)IGU@!6Xb!C6X!!0H& z@oKX0_KD3ZQbxLlKx7zVWMpMzX=P-rZD3$!VBiyOCN=S(I1X7`uD)fH)fhADyF6VS zLnJQOo-yP*WWd83z&$Nbb_cJ=SwRaCo*Y{i?o*->Ga?UJNVJ?CRET82LaV!(MV0vWpE!G0AGsh1UZ+~u;`}R3pQfH0hy?)?AU76*EvkJ+FD-X{7UEg3)|AE!L>SnIbE4_z6e=>Nw L`njxgN@xNAsg`3@ diff --git a/gfx/tilesets.asm b/gfx/tilesets.asm index aee94231..74d9fd0f 100644 --- a/gfx/tilesets.asm +++ b/gfx/tilesets.asm @@ -20,11 +20,6 @@ Plateau_Block:: INCBIN "gfx/blocksets/plateau.bst" SECTION "Tilesets 2", ROMX -Dojo_GFX:: -Gym_GFX:: INCBIN "gfx/tilesets/gym.2bpp" -Dojo_Block:: -Gym_Block:: INCBIN "gfx/blocksets/gym.bst" - Mart_GFX:: Pokecenter_GFX:: INCBIN "gfx/tilesets/pokecenter.2bpp" Mart_Block:: @@ -79,6 +74,11 @@ House_Block:: INCBIN "gfx/blocksets/house.bst" SECTION "Tilesets 5", ROMX +Dojo_GFX:: +Gym_GFX:: INCBIN "gfx/tilesets/gym.2bpp" +Dojo_Block:: +Gym_Block:: INCBIN "gfx/blocksets/gym.bst" + Cavern_GFX:: INCBIN "gfx/tilesets/cavern.2bpp" Cavern_Block:: INCBIN "gfx/blocksets/cavern.bst" diff --git a/home/list_menu.asm b/home/list_menu.asm index ad0089cf..91747ba4 100644 --- a/home/list_menu.asm +++ b/home/list_menu.asm @@ -50,7 +50,13 @@ DisplayListMenuID:: ld [wTopMenuItemY], a ld a, 5 ld [wTopMenuItemX], a - ld a, A_BUTTON | B_BUTTON | SELECT | START + ld a, [wFlags_0xcd60] + ld b, a + ld a, A_BUTTON | B_BUTTON | SELECT + bit 2, b + jr z, .noSortingOption + or a, START +.noSortingOption ld [wMenuWatchedKeys], a ld c, 10 call DelayFrames diff --git a/home/load_font.asm b/home/load_font.asm index 3b56d3a8..f9c6f6bf 100644 --- a/home/load_font.asm +++ b/home/load_font.asm @@ -39,9 +39,18 @@ LoadHpBarAndStatusTilePatterns:: ld de, vChars2 tile $62 ld bc, HpBarAndStatusGraphicsEnd - HpBarAndStatusGraphics ld a, BANK(HpBarAndStatusGraphics) + call FarCopyData ; if LCD is off, transfer all at once + ld hl, EXPBarGraphics + ld de, vChars1 tile $40 + ld bc, EXPBarGraphicsEnd - EXPBarGraphics + ld a, BANK(EXPBarGraphics) jp FarCopyData2 ; if LCD is off, transfer all at once .on ld de, HpBarAndStatusGraphics ld hl, vChars2 tile $62 lb bc, BANK(HpBarAndStatusGraphics), (HpBarAndStatusGraphicsEnd - HpBarAndStatusGraphics) / $10 + call CopyVideoData ; if LCD is on, transfer during V-blank + ld hl, EXPBarGraphics + ld de, vChars1 tile $40 + lb bc, BANK(EXPBarGraphics), (EXPBarGraphicsEnd - EXPBarGraphics) / $10 jp CopyVideoData ; if LCD is on, transfer during V-blank diff --git a/maps.asm b/maps.asm index 0f2940b7..8708969a 100644 --- a/maps.asm +++ b/maps.asm @@ -689,7 +689,7 @@ INCLUDE "data/maps/headers/Route21.asm" INCLUDE "data/maps/objects/Route21.asm" Route21_Blocks: INCBIN "maps/Route21.blk" -Route12SuperRodHouse_Blocks: INCBIN "maps/Route12SuperRodHouse.blk" +FishingGuruHouse_Blocks: INCBIN "maps/FishingGuruHouse.blk" Daycare_Blocks: INCBIN "maps/Daycare.blk" @@ -721,9 +721,9 @@ INCLUDE "data/maps/headers/Daycare.asm" INCLUDE "scripts/Daycare.asm" INCLUDE "data/maps/objects/Daycare.asm" -INCLUDE "data/maps/headers/Route12SuperRodHouse.asm" -INCLUDE "scripts/Route12SuperRodHouse.asm" -INCLUDE "data/maps/objects/Route12SuperRodHouse.asm" +INCLUDE "data/maps/headers/FishingGuruHouse.asm" +INCLUDE "scripts/FishingGuruHouse.asm" +INCLUDE "data/maps/objects/FishingGuruHouse.asm" SECTION "Maps 13", ROMX diff --git a/maps/ChampionsRoom.blk b/maps/ChampionsRoom.blk index 8e5d10d0..15fce5c6 100644 --- a/maps/ChampionsRoom.blk +++ b/maps/ChampionsRoom.blk @@ -1 +1 @@ -I12JKLKLR12o \ No newline at end of file +I1tuKux2uR1vwKuKu \ No newline at end of file diff --git a/maps/Route12SuperRodHouse.blk b/maps/FishingGuruHouse.blk similarity index 100% rename from maps/Route12SuperRodHouse.blk rename to maps/FishingGuruHouse.blk diff --git a/ram/wram.asm b/ram/wram.asm index 18e8fcbd..f78df62d 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -532,7 +532,13 @@ wLowHealthAlarmDisabled:: db wPlayerMonMinimized:: db - ds 13 + ds 2 + +wEXPBarPixelLength:: ds 1 +wEXPBarBaseEXP:: ds 3 +wEXPBarCurEXP:: ds 3 +wEXPBarNeededEXP:: ds 3 +wEXPBarKeepFullFlag:: ds 1 ; number of hits by enemy in attacks like Double Slap, etc. wEnemyNumHits:: ; db diff --git a/scripts/ChampionsRoom.asm b/scripts/ChampionsRoom.asm index ac447474..6370cb88 100644 --- a/scripts/ChampionsRoom.asm +++ b/scripts/ChampionsRoom.asm @@ -40,8 +40,8 @@ GaryScript1: ret GaryEntrance_RLEMovement: - db D_UP, 1 - db D_RIGHT, 1 + db D_UP, 2 + db D_UP, 2 db D_UP, 3 db -1 ; end @@ -159,14 +159,13 @@ OakEntranceAfterVictoryMovement: db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP db NPC_MOVEMENT_UP + db NPC_MOVEMENT_UP db -1 ; end GaryScript5: ld a, [wd730] bit 0, a ret nz - ld a, PLAYER_DIR_LEFT - ld [wPlayerMovingDirection], a ld a, $1 ldh [hSpriteIndex], a ld a, SPRITE_FACING_LEFT @@ -244,7 +243,7 @@ GaryScript9: ret WalkToHallOfFame_RLEMovment: - db D_UP, 4 + db D_UP, 5 db D_LEFT, 1 db -1 ; end diff --git a/scripts/FishingGuruHouse.asm b/scripts/FishingGuruHouse.asm new file mode 100644 index 00000000..b2e5cf8a --- /dev/null +++ b/scripts/FishingGuruHouse.asm @@ -0,0 +1,62 @@ +FishingGuruHouse_Script: + jp EnableAutoTextBoxDrawing + +FishingGuruHouse_TextPointers: + dw FishingGuruHouseText1 + dw JumpText + +FishingGuruHouseText1: + text_asm + ld a, [wd728] + bit 5, a ; received fishing rod? + jr nz, .got_item + ld hl, FishingGuruHouseText_564c0 + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .refused + lb bc, FISHING_ROD, 1 + call GiveItem + jr nc, .bag_full + ld hl, wd728 + set 5, [hl] ; received fishing rod + ld hl, FishingGuruHouseText_564c5 + jr .done +.bag_full + ld hl, FishingGuruHouseText_564d9 + jr .done +.refused + ld hl, FishingGuruHouseText_564cf + jr .done +.got_item + ld hl, FishingGuruHouseText_564d4 +.done + call PrintText + jp TextScriptEnd + +FishingGuruHouseText_564c0: + text_far _FishingGuruHouseText_564c0 + text_end + +FishingGuruHouseText_564c5: + text_far _FishingGuruHouseText_564c5 + sound_get_item_1 + text_far _FishingGuruHouseText_564ca + text_end + +FishingGuruHouseText_564cf: + text_far _FishingGuruHouseText_564cf + text_end + +FishingGuruHouseText_564d4: + text_far _FishingGuruHouseText_564d4 + text_end + +FishingGuruHouseText_564d9: + text_far _FishingGuruHouseText_564d9 + text_end + +JumpText: + text_far _JumpText + text_end diff --git a/scripts/Route12SuperRodHouse.asm b/scripts/Route12SuperRodHouse.asm deleted file mode 100644 index 28c41b7e..00000000 --- a/scripts/Route12SuperRodHouse.asm +++ /dev/null @@ -1,62 +0,0 @@ -Route12SuperRodHouse_Script: - jp EnableAutoTextBoxDrawing - -Route12SuperRodHouse_TextPointers: - dw Route12HouseText1 - dw JumpText - -Route12HouseText1: - text_asm - ld a, [wd728] - bit 5, a ; received super rod? - jr nz, .got_item - ld hl, Route12HouseText_564c0 - call PrintText - call YesNoChoice - ld a, [wCurrentMenuItem] - and a - jr nz, .refused - lb bc, SUPER_ROD, 1 - call GiveItem - jr nc, .bag_full - ld hl, wd728 - set 5, [hl] ; received super rod - ld hl, Route12HouseText_564c5 - jr .done -.bag_full - ld hl, Route12HouseText_564d9 - jr .done -.refused - ld hl, Route12HouseText_564cf - jr .done -.got_item - ld hl, Route12HouseText_564d4 -.done - call PrintText - jp TextScriptEnd - -Route12HouseText_564c0: - text_far _Route12HouseText_564c0 - text_end - -Route12HouseText_564c5: - text_far _Route12HouseText_564c5 - sound_get_item_1 - text_far _Route12HouseText_564ca - text_end - -Route12HouseText_564cf: - text_far _Route12HouseText_564cf - text_end - -Route12HouseText_564d4: - text_far _Route12HouseText_564d4 - text_end - -Route12HouseText_564d9: - text_far _Route12HouseText_564d9 - text_end - -JumpText: - text_far _JumpText - text_end diff --git a/scripts/SilphGauntlet7F.asm b/scripts/SilphGauntlet7F.asm index 3610c1e4..99d85710 100644 --- a/scripts/SilphGauntlet7F.asm +++ b/scripts/SilphGauntlet7F.asm @@ -107,7 +107,7 @@ ChiefScript4: ld [wMissableObjectIndex], a predef HideObject SetEvent EVENT_MEWTWO_UNLOCKED - ResetEventRange SILPH_GAUNTLET_EVENTS_START, SILPH_GAUNTLET_EVENTS_END, 1 + ResetEventRange EVENT_BEAT_GAUNTLET_YOUNGSTER, EVENT_BEAT_GAUNTLET_BLAINE ld a, $0 ld [wSilphGauntlet7FCurScript], a diff --git a/text.asm b/text.asm index 03b17ca7..67de110e 100644 --- a/text.asm +++ b/text.asm @@ -92,7 +92,7 @@ INCLUDE "text/Route11Gate2F.asm" INCLUDE "text/DiglettsCaveRoute11.asm" INCLUDE "text/Route12Gate1F.asm" INCLUDE "text/Route12Gate2F.asm" -INCLUDE "text/Route12SuperRodHouse.asm" +INCLUDE "text/FishingGuruHouse.asm" INCLUDE "text/Route15Gate1F.asm" INCLUDE "text/Route15Gate2F.asm" INCLUDE "text/Route16Gate1F.asm" diff --git a/text/Route12SuperRodHouse.asm b/text/FishingGuruHouse.asm similarity index 83% rename from text/Route12SuperRodHouse.asm rename to text/FishingGuruHouse.asm index 68d734d8..f0ccb8e7 100644 --- a/text/Route12SuperRodHouse.asm +++ b/text/FishingGuruHouse.asm @@ -1,4 +1,4 @@ -_Route12HouseText_564c0:: +_FishingGuruHouseText_564c0:: text "I'm the FISHING" line "GURU!" @@ -9,7 +9,7 @@ _Route12HouseText_564c0:: line "fish?" done -_Route12HouseText_564c5:: +_FishingGuruHouseText_564c5:: text "Grand! I like" line "your style!" @@ -22,7 +22,7 @@ _Route12HouseText_564c5:: text "!@" text_end -_Route12HouseText_564ca:: +_FishingGuruHouseText_564ca:: text_start para "Fishing is a way" @@ -34,12 +34,12 @@ _Route12HouseText_564ca:: cont "one!" done -_Route12HouseText_564cf:: +_FishingGuruHouseText_564cf:: text "Oh... That's so" line "disappointing..." done -_Route12HouseText_564d4:: +_FishingGuruHouseText_564d4:: text "Hello there," line "!" @@ -53,7 +53,7 @@ _Route12HouseText_564d4:: line "wherever you can!" done -_Route12HouseText_564d9:: +_FishingGuruHouseText_564d9:: text "Oh no!" para "I had a gift for" diff --git a/text/FuchsiaGym_2.asm b/text/FuchsiaGym_2.asm index 4f76173c..f570f3af 100644 --- a/text/FuchsiaGym_2.asm +++ b/text/FuchsiaGym_2.asm @@ -12,7 +12,7 @@ _KogaPostBattleAdviceText:: _KogaSoulBadgeInfoText:: text "Now that you have" line "the SOULBADGE," - cont "the DEFENSE of" + cont "the SPEED of" cont "your #MON" cont "increases!" diff --git a/text/VermilionGym_2.asm b/text/VermilionGym_2.asm index 883d7195..3fd79892 100644 --- a/text/VermilionGym_2.asm +++ b/text/VermilionGym_2.asm @@ -12,8 +12,9 @@ _LTSurgePostBattleAdviceText:: _LTSurgeThunderBadgeInfoText:: text "The THUNDERBADGE" - line "cranks up your" - cont "#MON's SPEED!" + line "cranks up the" + cont "DEFENSE of your" + cont "#MON!" para "It also lets your" line "#MON FLY any"