From 7b980123fd826f9a6e40e076f998837adc3c749b Mon Sep 17 00:00:00 2001 From: Egon370 <97806632+Egon370@users.noreply.github.com> Date: Fri, 26 Apr 2024 09:13:57 -0700 Subject: [PATCH 1/7] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0412e857..049dfb11 100644 --- a/README.md +++ b/README.md @@ -229,7 +229,7 @@ Many non-multiplayer, non-battle related bugs have been fixed. Battle-related bu - Some grammar tweaks have been made (eg. If a move is disabled, it now has an upper-case D instead of a lower-case one.) - Blaine is no longer addicted to Super Potions. - CoolTrainerF no longer switches a lot. -- Transformed Pokemon aren't presumed to be Dittos! Mew and Animon function correctly with this at play. +- Transformed Pokemon aren't presumed to be Dittos! Mew and Mimmeo function correctly with this at play. - Status curing items don't remove modifiers anymore. - Learning new moves plays the sound in the correct bank. - Falling through a hole on a bike now properly resets the music, as you fall off a bike when going down. @@ -311,7 +311,7 @@ Kanto Prototype Pokemon: - Cheep -> Jabetta | L30 - Coinpur -> Meowth | L14 - Decilla -> Gawarhed | L40 -- Gyopin -> Goldeen | L16 +- Orfry -> Goldeen | L16 - Gentlarva -> Pupal | L7 - Pupal -> Carapthor | L10 - Kotora -> Gaotora -> Gorotora | L16, L36 From 14f08c941d59405ec7e41988d0e598e672b1a7ab Mon Sep 17 00:00:00 2001 From: Martha Schilling Date: Sun, 25 Aug 2024 19:39:01 +0100 Subject: [PATCH 2/7] 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" From f9ff97cd9dc3167789483e482beefec7c10a5383 Mon Sep 17 00:00:00 2001 From: Martha Schilling Date: Sun, 25 Aug 2024 19:56:26 +0100 Subject: [PATCH 3/7] Update play_battle_music.asm --- audio/play_battle_music.asm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/audio/play_battle_music.asm b/audio/play_battle_music.asm index 60da526e..51a02d87 100644 --- a/audio/play_battle_music.asm +++ b/audio/play_battle_music.asm @@ -26,6 +26,8 @@ PlayBattleMusic:: jp z, .legendaryBattle cp OMEGADGE jp z, .legendaryBattle + cp ARCANINE + jp z, .legendaryBattle cp SNORLAX ; Just like LGPE. Snorlax is basically a legendary in RBY, so I love this. jp z, .legendaryBattle cp DRATINI ; In the Tajiri lore, the Dratini family is considered legendary. Also, we have a static Dragonite. I think the appearance of Dratini in the Safari Zone with this theme could also add some reeeeeal nice hype to the whole ordeal. From 6292c39217565d4bf42ee9e43fb9fcbf2e65608d Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Sun, 25 Aug 2024 21:21:55 +0100 Subject: [PATCH 4/7] This should end it! - Entei - Fixed up the Fishing Rod encounters. - Finished the Pocket Lapras - Farfetch'd on Route 13 and 15 - L50 Chansey on Victory Road 3F for Repel trick grinding - Changed Surge's text to be way, way more accurate to the differences between American and Japanese relations at the time. See file for more details. - Fixed the build error with the new Galarian Bird track --- audio.asm | 4 +- data/text/text_6.asm | 2 +- data/wild/fishing_rod.asm | 82 ++++++++++++++++---------------- data/wild/maps/Route13.asm | 2 +- data/wild/maps/Route15.asm | 2 +- data/wild/maps/VictoryRoad3F.asm | 2 +- engine/items/item_effects.asm | 9 ++++ engine/menus/start_sub_menus.asm | 8 ++++ engine/overworld/field_moves.asm | 8 ++++ ram/wram.asm | 2 +- text/SilphGauntlet6F.asm | 40 +++++++++++----- 11 files changed, 103 insertions(+), 58 deletions(-) diff --git a/audio.asm b/audio.asm index 69053194..9ccd9b69 100644 --- a/audio.asm +++ b/audio.asm @@ -384,7 +384,9 @@ 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" + +SECTION "RBY Songs 5", ROMX INCLUDE "crysaudio/music/RBY/galarbirds.asm" SECTION "TCG Songs 1", ROMX diff --git a/data/text/text_6.asm b/data/text/text_6.asm index 6aaa7860..b09659ce 100644 --- a/data/text/text_6.asm +++ b/data/text/text_6.asm @@ -69,7 +69,7 @@ _SurfingGotOnText:: text "!" prompt -_SurfingGotOnLaprasText:: +_SurfingGotOnLaprasText:: ; i cringed irl doing it this way pls understand i do not like this either - pvk text " got on" line "LAPRAS!" prompt diff --git a/data/wild/fishing_rod.asm b/data/wild/fishing_rod.asm index c1b04e28..231ca16d 100644 --- a/data/wild/fishing_rod.asm +++ b/data/wild/fishing_rod.asm @@ -1,48 +1,48 @@ FishingRodSlots:: - db PALLET_TOWN, MAGIKARP, 5, ORFRY, 5, MAGIKARP, 7, ORFRY, 7 + db PALLET_TOWN, MAGIKARP, 7, ORFRY, 6, MAGIKARP, 8, 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_22, MAGIKARP, 6, ORFRY, 5, MAGIKARP, 7, ORFRY, 7 + db ROUTE_4, MAGIKARP, 12, ORFRY, 12, POLIWAG, 12, PSYDUCK, 13 + db CERULEAN_CITY, MAGIKARP, 11, ORFRY, 14, POLIWAG, 13, STARYU, 13 + db ROUTE_24, MAGIKARP, 12, ORFRY, 13, POLIWAG, 12, PSYDUCK, 12 + db ROUTE_25, MAGIKARP, 11, 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 VERMILION_CITY, GOLDEEN, 14, SHELLDER, 13, CHEEP, 15, TENTACOOL, 13 + db VERMILION_DOCK, MAGIKARP, 15, BLOTTLE, 13, CHEEP, 15, TENTACOOL, 15 + db VERMILION_FERRY_DOCK, MAGIKARP, 16, BLOTTLE, 14, CHEEP, 13, TENTACOOL, 14 + db ROUTE_11, WIGLETT, 15, KRABBY, 15, CHEEP, 14, TENTACOOL, 13 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 ROUTE_10, POLIWAG, 17, RIBBITO, 17, KRABBY, 19, SLOWPOKE, 18 + db ROCK_TUNNEL_1F, POLIWAG, 16, RIBBITO, 16, KRABBY, 17, SLOWPOKE, 17 + db ROUTE_12, POLIWAG, 18, RIBBITO, 15, KRABBY, 17, SLOWPOKE, 19 + db CELADON_CITY, MAGIKARP, 15, MAGIKARP, 17, GRIMER, 20, MAGIKARP, 20 + db CELADON_UNIVERSITY_OUTSIDE, MAGIKARP, 14, MAGIKARP, 18, GRIMER, 21, MAGIKARP, 19 + db ROUTE_13, PSYDUCK, 25, KRABBY, 25, HORSEA, 24, POLIWHIRL, 26 + db ROUTE_17, CHEEP, 25, KRABBY, 25, HORSEA, 25, POLIWHIRL, 25 + db ROUTE_18, CHEEP, 26, KRABBY, 27, HORSEA, 26, POLIWHIRL, 27 + db ROUTE_23, SLOWBRO, 23, KINGLER, 24, HORSEA, 22, POLIWHIRL, 25 + db FUCHSIA_CITY, GRIMER, 25, KRABBY, 25, HORSEA, 25, GYARADOS, 26 + db SAFARI_ZONE_CENTER, SLOWPOKE, 25, KRABBY, 26, DRATINI, 23, DRAGONAIR, 30 + db SAFARI_ZONE_EAST, SLOWPOKE, 24, KRABBY, 24, WEIRDUCK, 22, DRATINI, 19 + db SAFARI_ZONE_NORTH, SLOWPOKE, 26, KRABBY, 25, WEIRDUCK, 23, DRATINI, 21 + db SAFARI_ZONE_WEST, SLOWPOKE, 23, KRABBY, 27, WEIRDUCK, 24, DRATINI, 20 + db UNDERWATER_TUNNEL, SHELLDER, 30, STARYU, 29, JABETTA, 33, GOLDUCK, 34 + db ROUTE_19, STARYU, 31, HORSEA, 31, SHELLDER, 31, SHARPOON, 32 + db ROUTE_20, STARYU, 33, HORSEA, 33, SHELLDER, 33, SHARPOON, 34 + db ROUTE_21, STARYU, 31, HORSEA, 32, SHELLDER, 31, SHARPOON, 32 + db SEAFOAM_ISLANDS_B3F, KRABBY, 31, SEEL, 31, SHELLDER, 32, STARYU, 33 + db SEAFOAM_ISLANDS_B4F, KRABBY, 32, SEEL, 33, SHELLDER, 33, LAPRAS, 35 ; fish for nessie if ur stupid enough - pvk + db CINNABAR_ISLAND, STARYU, 30, HORSEA, 30, SHELLDER, 30, SHARPOON, 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 BILLS_GARDEN, SQUIRTLE, 52, SQUIRTLE, 51, DRATINI, 50, DRAGONAIR, 53 + db MT_MOON_CRATER, KABUTOPS, 49, OMASTAR, 49, SEAKING, 50, GYARADOS, 53 + db CITRINE_FERRY_DOCK, PENDRAKEN, 48, TENTACRUEL, 49, KINGLER, 51, SHARPOON, 50 + db CITRINE_CITY, PENDRAKEN, 48, TENTACRUEL, 49, KINGLER, 52, SHARPOON, 51 + db BRUNSWICK_TRAIL, STARYU, 48, SEADRA, 49, GOLDUCK, 50, POLIWRATH, 50 + db GARNET_CAVERN_1F, PENDRAKEN, 50, SEADRA, 49, POLIWRATH, 53, GYARADOS, 54 + db GARNET_CAVERN_B1F, PENDRAKEN, 51, SEADRA, 48, POLITOED, 52, GYARADOS, 55 + db SILPH_GAUNTLET_5F, SLOWBRO, 50, KINGLER, 51, GOLDUCK, 51, DRAGONAIR, 52 + db CERULEAN_CAVE_1F, SHARPOON, 62, SLOWBRO, 64, CROAKOZUNA, 64, GYARADOS, 65 + db CERULEAN_CAVE_B1F, SHARPOON, 62, SLOWKING, 64, CROAKOZUNA, 64, GYARADOS, 65 db -1 ; end diff --git a/data/wild/maps/Route13.asm b/data/wild/maps/Route13.asm index effa7bda..8811ab72 100644 --- a/data/wild/maps/Route13.asm +++ b/data/wild/maps/Route13.asm @@ -1,7 +1,7 @@ Route13WildMons: def_grass_wildmons 20 ; encounter rate db 24, ODDISH - db 25, PIDGEOTTO + db 25, FARFETCHD db 23, BELLSPROUT db 24, VENONAT db 24, VENONAT diff --git a/data/wild/maps/Route15.asm b/data/wild/maps/Route15.asm index 5fabb7e7..b62c4ae2 100644 --- a/data/wild/maps/Route15.asm +++ b/data/wild/maps/Route15.asm @@ -2,7 +2,7 @@ Route15WildMons: def_grass_wildmons 15 ; encounter rate db 24, BELLSPROUT db 26, VENONAT - db 25, SPEAROW + db 25, FARFETCHD db 25, DITTO db 22, BELLSPROUT db 28, ODDISH diff --git a/data/wild/maps/VictoryRoad3F.asm b/data/wild/maps/VictoryRoad3F.asm index 69dc2164..e6c59c72 100644 --- a/data/wild/maps/VictoryRoad3F.asm +++ b/data/wild/maps/VictoryRoad3F.asm @@ -7,7 +7,7 @@ VictoryRoad3FWildMons: db 43, RHYHORN db 43, GOLBAT db 44, GAVILLAIN - db 44, SANDSLASH + db 50, CHANSEY ; Possible to Repel Trick, used for grinding. db 44, PARASECT db 45, HITMONCHAN ; LGPE Rare Spawn end_grass_wildmons diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm index e52dfef9..631e6a8f 100644 --- a/engine/items/item_effects.asm +++ b/engine/items/item_effects.asm @@ -782,8 +782,17 @@ ItemUseLapras: ld a, 2 ld [wWalkBikeSurfState], a ; change player state to surfing call PlayDefaultMusic ; play surfing music + + ; no jimmy i will NOT make a new item + ld hl, SurfingGotOnLaprasText + ld a, [wSurfMonItemSwitch] ; check if the mon item switch has been set + and a + jr z, .skip + ld hl, SurfingGotOnText +.skip ; now shut the fuck up jp PrintText + .tryToStopSurfing xor a ldh [hSpriteIndexOrTextID], a diff --git a/engine/menus/start_sub_menus.asm b/engine/menus/start_sub_menus.asm index 2e0ed8b6..65f91873 100644 --- a/engine/menus/start_sub_menus.asm +++ b/engine/menus/start_sub_menus.asm @@ -165,6 +165,14 @@ StartMenu_Pokemon:: bit 1, [hl] res 1, [hl] jp z, .loop + + ; this makes it so the pokemon shows up instead of pocket lapras + ; no visible effect when using surf, it's actually for the item effect later + ; it makes it so I don't have to make a craptastic new function that falls through, which would require a new item, which is so unimaginably cringe i would fall off my chair and die + ; - pvk + ld a, 1 + ld [wSurfMonItemSwitch], a + ld a, POCKET_LAPRAS ld [wcf91], a ld [wPseudoItemID], a diff --git a/engine/overworld/field_moves.asm b/engine/overworld/field_moves.asm index 9cfaf19b..3b62572c 100644 --- a/engine/overworld/field_moves.asm +++ b/engine/overworld/field_moves.asm @@ -33,10 +33,18 @@ TrySurf: and a jr nz, .no2 call GetPartyMonName2 + + ; pocket lapras illusion maintenance service + ld a, 1 + ld [wSurfMonItemSwitch], a + ld a, POCKET_LAPRAS ld [wcf91], a ld [wPseudoItemID], a call UseItem + ; pocket lapras stuff + xor a + ld [wSurfMonItemSwitch], a .yes2 call CloseFieldMoveTextBox .yes diff --git a/ram/wram.asm b/ram/wram.asm index f78df62d..321eb92d 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -1465,7 +1465,7 @@ wEndBattleLoseTextPointer:: dw ds 2 wEndBattleTextRomBank:: db - ds 1 +wSurfMonItemSwitch:: db ; i cant be fucked making a new item just do it this way - pvk ; the address _of the address_ of the current subanimation entry wSubAnimAddrPtr:: dw diff --git a/text/SilphGauntlet6F.asm b/text/SilphGauntlet6F.asm index b133b004..3dba8aa1 100644 --- a/text/SilphGauntlet6F.asm +++ b/text/SilphGauntlet6F.asm @@ -69,7 +69,7 @@ _SilphGauntlet6FBattleText3:: cont "saved me during" cont "the war! They" cont "even powered my" - cont "plane!" + cont "Thunderchief!" ; Republic F-105 Thunderchief - Vietnam aircraft, referencing the FRLG Fame Checker, but also adding clarity for the player to figure out which war Surge was in. para "I'll zap you for" line "real this time!" @@ -83,19 +83,37 @@ _SilphGauntlet6FEndBattleText3:: line "a gallon, now!" prompt +; Originally, we wanted Surge to talk about being Major. +; But we realised RG Blaine wears a WWII-era Japanese uniform. +; Ergo, Blaine should loathe Surge for manning American war bases. + ; The implication is that Surge works at an American war base in Japan. Post-war, these propped up to ensure Japan never does what it did again. In modern-day, these are super controversial. Blaine, being a soldier, would get extremely mad. + ; Thus, we give Surge an explanation for being in Kanto at all... + ; While also giving a haunting backstory to RG Blaine's design. + ; This requires a lot of historical knowledge to get right, but we want to adequately represent Surge and Blaine's war uniforms. + ; This would make Surge around 40 years old, and Blaine around 60-70 years old. _SilphGauntlet6FAfterBattleText3:: - text "Huh? BLAINE?" - line "Oh, man!" + text "Huh? BLAINE? Oh," + line "man!" - para "He won't tell you" ; Referring to Blaine's original design. - line "this, but he was" - cont "my mentor!" + para "Ever since I told" + line "him where I work," + cont "he's got his" + cont "pants in a bunch!" ; s/o Megachiroptera for giving the american version of this saying - para "Once, the higher-" ; Commentary on the German, French, and Chinese translations. - line "ups demoted me" - cont "to MAJOR SURGE," - cont "but BLAINE got" - cont "me reinstated!" + para "Something about" + line "that war, maybe?" ; World War II + + para "C'mon, I wasn't" + line "even born yet!" ; This explains the age gap. He fought in the Vietnam War, deployed from the Japanese base. + + ; Old text. + ; We wanted to reference the Chinese and German translations. + ; But Surge is too young, and American, so the relations wouldn't work. +; para "Once, the higher-" +; line "ups demoted me" ; Old text from before we looked at the context of RG Blaine. +; cont "to MAJOR SURGE," +; cont "but BLAINE got" +; cont "me reinstated!" done From 8aa3247cd53f008845d18a5837d1547fc8844547 Mon Sep 17 00:00:00 2001 From: Martha Schilling Date: Mon, 2 Sep 2024 09:29:54 +0100 Subject: [PATCH 5/7] OOPS - Fixed an issue where Giovanni's Room could not be exited (thanks pawtism for making me aware of this) --- data/maps/objects/GiovannisRoom.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/maps/objects/GiovannisRoom.asm b/data/maps/objects/GiovannisRoom.asm index 29169233..80f277f5 100644 --- a/data/maps/objects/GiovannisRoom.asm +++ b/data/maps/objects/GiovannisRoom.asm @@ -3,7 +3,7 @@ GiovannisRoom_Object: def_warp_events warp_event 5, 4, VIRIDIAN_GYM, 3 - warp_event 15, 4, VIRIDIAN_CITY, 6 + warp_event 17, 4, VIRIDIAN_CITY, 6 def_bg_events @@ -12,7 +12,7 @@ GiovannisRoom_Object: object_event 17, 8, SPRITE_PAPER, STAY, RIGHT, 2 object_event 17, 15, SPRITE_PAPER, STAY, DOWN, 3 object_event 14, 24, SPRITE_PAPER, STAY, RIGHT, 4 - object_event 16, 4, SPRITE_POKE_BALL, STAY, NONE, 5, TM_EARTHQUAKE + object_event 18, 4, SPRITE_POKE_BALL, STAY, NONE, 5, TM_EARTHQUAKE object_event 5, 22, SPRITE_POKE_BALL, STAY, NONE, 6, PROTECTOR def_warps_to GIOVANNIS_ROOM From 347ee318521871ec31132068291e600e41431c36 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Tue, 3 Sep 2024 17:46:04 +0100 Subject: [PATCH 6/7] Fix Oak's Lab pikavee starterballs not disappearing This was actually really really really easy to fix and I have no idea how it never got fixed This finishes KEP 1.3. --- scripts/OaksLab.asm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/OaksLab.asm b/scripts/OaksLab.asm index 15469cf3..3bb9c4d9 100644 --- a/scripts/OaksLab.asm +++ b/scripts/OaksLab.asm @@ -365,6 +365,8 @@ OaksLabScript9: ; This is where Blue picks up the ball and removes the sprite. cp $7 jr nz, .rivalDidNotChoseBall4 ld a, HS_STARTER_BALL_4 + ld [wMissableObjectIndex], a + predef HideObject ld a, HS_DAMIEN ; This makes the starter gifts show up if you and your rival picked Pikachu and Eevee. It used to be coded differently but for some reason they still showed up if you picked Charmander or Squirtle, so I had to change it. ld [wMissableObjectIndex], a predef ShowObject @@ -374,6 +376,8 @@ OaksLabScript9: ; This is where Blue picks up the ball and removes the sprite. jr .hideBallAndContinue .rivalDidNotChoseBall4 ld a, HS_STARTER_BALL_5 + ld [wMissableObjectIndex], a + predef HideObject ld a, HS_DAMIEN ld [wMissableObjectIndex], a predef ShowObject From 316c8bf7d3e3873113f196c8313ec9a7ee0f298f Mon Sep 17 00:00:00 2001 From: Martha Schilling Date: Tue, 3 Sep 2024 20:53:07 +0100 Subject: [PATCH 7/7] Final README update - Adds the Galarian Bird theme, crediting LuciShrimp. - Removes the line mentioning Yellow Legacy's back sprites, as I decided against importing them in due to a bit of a style clash between them and the beta/custom sprites. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bcd6fec5..9133e437 100644 --- a/README.md +++ b/README.md @@ -116,8 +116,9 @@ New Areas New Music ==== - Mewtwo has its own battle theme: A demake of the iconic Stadium track! It features some creative deviations to give it a distinct Game Boy feel while fitting with Mewtwo's mystique. Composed by LuciShrimp. -- Mew and the Legendary Birds have their own battle theme, a demake of the FireRed/LeafGreen pitch-shifted remix. Not simply pitching it up, percussion elements have been added to give it that rustic FRLG "feel" that distinguishes it from the original games. Composed by LuciShrimp. +- Mew and the Kantonian Legendary Birds have their own battle theme, a demake of the FireRed/LeafGreen pitch-shifted remix. Not simply pitching it up, percussion elements have been added to give it that rustic FRLG "feel" that distinguishes it from the original games. Composed by LuciShrimp. - Limited static encounters, such as the two sleeping Snorlax, and the restored prototype Omega, also use this theme. + - The Galarian Legendary Birds have a demake of their Sword and Shield battle theme instead! Composed by LuciShrimp. - Mt. Moon Crater uses a demake of Scarlet and Violet's Area Zero theme! Composed by LuciShrimp. - Team Rocket's battle theme from GSC has been backported with some small changes to give it more of an RBY feel. Plays during Rocket Grunt fights, including Jessie and James, as well as the initial 2 Giovanni battles. Composed by LuciShrimp. - In addition to the aforementioned Team Rocket battle theme, a slower, pitched-down arrangement plays when battling Giovanni in his gym, as well as against a postgame boss. Composed by LuciShrimp and Martha's Against Humanity. @@ -387,7 +388,6 @@ If you use our implementations of anything at all, it is encouraged to submit Pu * 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.