From 9b387cab7ec74bc045eb13e25b7ff81151995eb7 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Sun, 23 Apr 2023 21:25:45 +0100 Subject: [PATCH] Expanding on Pokemon icon usage This adds Pikachu, Cat, and "Small Bird" menu icons. The cat has a custom animation done by myself. The Jigglypuff in the Pokemon Centre now uses the new sprite, nice 'n' pretty. Officer Jenny is also in Cerulean. The Pokemon from Melanie's house in Yellow have been put in Mr. Fuji's House, given the purpose of the house in RB is different. I think it ends up fitting very nicely. Chansey has been given its proper sprite in Fuschia. Yellow didn't actually do this, as Chansey doesn't have a walk cycle, causing the stuff that exists to go unused. I wanted it, though, so I had Chansey just not walk and turn around. Oh, and it's in all the Pokemon Centres now. Yeah, that's a...lot of changed files. --- README.md | 1 + constants/icon_constants.asm | 6 +- constants/sprite_constants.asm | 1 + data/icon_pointers.asm | 10 ++- data/maps/objects/CeladonPokecenter.asm | 1 + .../objects/CeladonUniversityPokecenter.asm | 3 +- data/maps/objects/CeruleanCity.asm | 4 +- data/maps/objects/CeruleanPokecenter.asm | 1 + data/maps/objects/CinnabarPokecenter.asm | 1 + data/maps/objects/FuchsiaCity.asm | 2 +- data/maps/objects/FuchsiaPokecenter.asm | 1 + data/maps/objects/IndigoPlateauLobby.asm | 1 + data/maps/objects/LavenderPokecenter.asm | 1 + data/maps/objects/MrFujisHouse.asm | 5 +- data/maps/objects/MtMoonPokecenter.asm | 1 + data/maps/objects/PewterPokecenter.asm | 3 +- data/maps/objects/RockTunnelPokecenter.asm | 1 + data/maps/objects/SaffronPokecenter.asm | 1 + data/maps/objects/VermilionPokecenter.asm | 1 + data/maps/objects/ViridianPokecenter.asm | 1 + data/maps/sprite_sets.asm | 6 +- data/pokemon/menu_icons.asm | 34 +++---- data/sprites/sprites.asm | 1 + data/text/text_1.asm | 5 ++ engine/debug/debug_party.asm | 5 +- engine/events/pokecenter_chansey.asm | 11 +++ engine/gfx/mon_icons.asm | 85 ++++++++++-------- gfx/icons/cat.png | Bin 0 -> 314 bytes gfx/sprites.asm | 3 +- gfx/sprites/cat.png | Bin 720 -> 923 bytes gfx/sprites/daisy (1).png | Bin 277 -> 0 bytes gfx/sprites/smallbird.png | Bin 0 -> 883 bytes main.asm | 1 + scan_includes.exe.stackdump | 10 +-- scripts/CeladonPokecenter.asm | 6 ++ scripts/CeladonUniversityPokecenter.asm | 8 +- scripts/CeruleanPokecenter.asm | 5 ++ scripts/CinnabarPokecenter.asm | 6 ++ scripts/FuchsiaPokecenter.asm | 6 ++ scripts/IndigoPlateauLobby.asm | 6 ++ scripts/LavenderPokecenter.asm | 5 ++ scripts/MrFujisHouse.asm | 12 ++- scripts/MtMoonPokecenter.asm | 6 ++ scripts/PewterPokecenter.asm | 6 ++ scripts/RockTunnelPokecenter.asm | 8 +- scripts/SaffronPokecenter.asm | 6 ++ scripts/VermilionPokecenter.asm | 6 ++ scripts/ViridianPokecenter.asm | 6 ++ text/MrFujisHouse.asm | 9 +- 49 files changed, 231 insertions(+), 77 deletions(-) create mode 100644 engine/events/pokecenter_chansey.asm create mode 100644 gfx/icons/cat.png delete mode 100644 gfx/sprites/daisy (1).png create mode 100644 gfx/sprites/smallbird.png diff --git a/README.md b/README.md index 0c99d6de..224c6b8d 100644 --- a/README.md +++ b/README.md @@ -283,6 +283,7 @@ Credits * erosunica - Assistance with developing Celadon University & Citrine City, plus sources for various subjects. * Chatot4444 - Assisting with gym scaling code * ZumiIsawhat? - Restorations of beta OST +* FrenchOrange - Reconstructions of various overworld beta sprites. * Helix Chamber, RacieBeep, loumilouminosus, Orchid, GBCRetro, & catstorm26 - Prototype Pokémon sprites * Vortyne - Reused a bit of code from their pureRGB hack. Assisted in bug fixes. * jojobear13 & Mateo - Move deleter & move relearner functionality from Shin Pokered, followed [this guide](https://github.com/jojobear13/shinpokered/blob/master/how%20to%20guides/how%20to%20add%20the%20move%20relearner%26deleter.txt). Tweaks were made to make it compatible with the pokered version we worked off of. diff --git a/constants/icon_constants.asm b/constants/icon_constants.asm index 767e29c6..f71fc770 100644 --- a/constants/icon_constants.asm +++ b/constants/icon_constants.asm @@ -1,3 +1,4 @@ +; Backported from Yellow ; party menu icons ; used in MonPartySpritePointers (see data/icon_pointers.asm) const_def @@ -11,7 +12,10 @@ const ICON_GRASS ; $7 const ICON_SNAKE ; $8 const ICON_QUADRUPED ; $9 + const ICON_PIKACHU ; $A + const ICON_SMALL_BIRD; $0B + const ICON_CAT ; 0C -DEF ICON_TRADEBUBBLE EQU $e +DEF ICON_TRADEBUBBLE EQU $0e DEF ICONOFFSET EQU $40 ; difference between alternating icon frames' tile IDs diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index 8eb1c625..73c317e8 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -74,6 +74,7 @@ const SPRITE_JESSIE ; $45 const SPRITE_JAMES ; $46 const SPRITE_CAT + const SPRITE_SMALL_BIRD DEF FIRST_STILL_SPRITE EQU const_value const SPRITE_POKE_BALL ; $47 const SPRITE_FOSSIL ; $48 diff --git a/data/icon_pointers.asm b/data/icon_pointers.asm index fcb97fd7..cc81fb26 100644 --- a/data/icon_pointers.asm +++ b/data/icon_pointers.asm @@ -20,7 +20,11 @@ MonPartySpritePointers: mon_icon_header SnakeIconFrame1, 1, 1, ICON_SNAKE << 2 + 2 mon_icon_header QuadrupedIconFrame1, 0, 1, ICON_QUADRUPED << 2 mon_icon_header QuadrupedIconFrame1, 1, 1, ICON_QUADRUPED << 2 + 2 + mon_icon_header PikachuSprite, 0, 4, ICON_PIKACHU << 2 mon_icon_header TradeBubbleIconGFX, 0, 4, ICON_TRADEBUBBLE << 2 + mon_icon_header SmallBirdSprite, 0, 4, ICON_SMALL_BIRD << 2 + mon_icon_header CatIconFrame1, 0, 1, ICON_CAT << 2 + mon_icon_header CatIconFrame1, 1, 1, ICON_CAT << 2 + 2 mon_icon_header MonsterSprite, 0, 4, ICONOFFSET + ICON_MON << 2 mon_icon_header PokeBallSprite, 0, 8, ICONOFFSET + ICON_BALL << 2 mon_icon_header FairySprite, 0, 4, ICONOFFSET + ICON_FAIRY << 2 @@ -34,4 +38,8 @@ MonPartySpritePointers: mon_icon_header SnakeIconFrame2, 1, 1, ICONOFFSET + ICON_SNAKE << 2 + 2 mon_icon_header QuadrupedIconFrame2, 0, 1, ICONOFFSET + ICON_QUADRUPED << 2 mon_icon_header QuadrupedIconFrame2, 1, 1, ICONOFFSET + ICON_QUADRUPED << 2 + 2 - mon_icon_header TradeBubbleIconGFX, 4, 4, ICONOFFSET + ICON_TRADEBUBBLE << 2 \ No newline at end of file + mon_icon_header PikachuSprite, 12, 4, ICONOFFSET + ICON_PIKACHU << 2 + mon_icon_header TradeBubbleIconGFX, 4, 4, ICONOFFSET + ICON_TRADEBUBBLE << 2 + mon_icon_header SmallBirdSprite, 12, 4, ICONOFFSET + ICON_SMALL_BIRD << 2 + mon_icon_header CatIconFrame2, 0, 1, ICONOFFSET + ICON_CAT << 2 + mon_icon_header CatIconFrame2, 1, 1, ICONOFFSET + ICON_CAT << 2 + 2 diff --git a/data/maps/objects/CeladonPokecenter.asm b/data/maps/objects/CeladonPokecenter.asm index 790c4704..fcca6b7d 100644 --- a/data/maps/objects/CeladonPokecenter.asm +++ b/data/maps/objects/CeladonPokecenter.asm @@ -13,5 +13,6 @@ CeladonPokecenter_Object: object_event 10, 5, SPRITE_BEAUTY, WALK, ANY_DIR, 3 ; person object_event 11, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 4 ; person object_event 8, 3, SPRITE_GAMEBOY_KID, STAY, DOWN, 5 ; Sandslash Trader + object_event 4, 1, SPRITE_CHANSEY, STAY, DOWN, 6 ; Chansey def_warps_to CELADON_POKECENTER diff --git a/data/maps/objects/CeladonUniversityPokecenter.asm b/data/maps/objects/CeladonUniversityPokecenter.asm index 004f281e..016a8b66 100644 --- a/data/maps/objects/CeladonUniversityPokecenter.asm +++ b/data/maps/objects/CeladonUniversityPokecenter.asm @@ -12,6 +12,7 @@ CeladonUniversityPokecenter_Object: object_event 8, 3, SPRITE_SCIENTIST, STAY, LEFT_RIGHT, 2 ; person object_event 10, 5, SPRITE_MIDDLE_AGED_MAN, WALK, ANY_DIR, 3 ; spamton object_event 3, 5, SPRITE_SUPER_NERD, STAY, DOWN, 4 ; person - object_event 11, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 4 ; person + object_event 11, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 5 ; person + object_event 4, 1, SPRITE_CHANSEY, STAY, DOWN, 6 ; Chansey def_warps_to CELADON_UNIVERSITY_POKECENTER diff --git a/data/maps/objects/CeruleanCity.asm b/data/maps/objects/CeruleanCity.asm index 23863aa0..15d5b882 100644 --- a/data/maps/objects/CeruleanCity.asm +++ b/data/maps/objects/CeruleanCity.asm @@ -27,11 +27,11 @@ CeruleanCity_Object: object_event 31, 20, SPRITE_COOLTRAINER_M, STAY, DOWN, 3 ; person object_event 15, 18, SPRITE_SUPER_NERD, WALK, UP_DOWN, 4 ; person object_event 9, 21, SPRITE_SUPER_NERD, WALK, LEFT_RIGHT, 5 ; person - object_event 28, 12, SPRITE_GUARD, STAY, DOWN, 6 ; person + object_event 28, 12, SPRITE_OFFICER_JENNY, STAY, DOWN, 6 ; person object_event 29, 26, SPRITE_COOLTRAINER_F, STAY, LEFT, 7 ; person object_event 28, 26, SPRITE_MONSTER, STAY, DOWN, 8 ; person object_event 9, 27, SPRITE_COOLTRAINER_F, WALK, LEFT_RIGHT, 9 ; person object_event 4, 12, SPRITE_SUPER_NERD, STAY, DOWN, 10 ; person - object_event 27, 12, SPRITE_GUARD, STAY, DOWN, 11 ; person + object_event 27, 12, SPRITE_OFFICER_JENNY, STAY, DOWN, 11 ; person def_warps_to CERULEAN_CITY diff --git a/data/maps/objects/CeruleanPokecenter.asm b/data/maps/objects/CeruleanPokecenter.asm index 7884702d..ecb1918d 100644 --- a/data/maps/objects/CeruleanPokecenter.asm +++ b/data/maps/objects/CeruleanPokecenter.asm @@ -13,5 +13,6 @@ CeruleanPokecenter_Object: object_event 4, 3, SPRITE_GENTLEMAN, STAY, DOWN, 3 ; person object_event 11, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 4 ; person object_event 9, 3, SPRITE_GAMEBOY_KID, STAY, DOWN, 5 ; Ninetales Trader + object_event 4, 1, SPRITE_CHANSEY, STAY, DOWN, 6 ; Chansey def_warps_to CERULEAN_POKECENTER diff --git a/data/maps/objects/CinnabarPokecenter.asm b/data/maps/objects/CinnabarPokecenter.asm index a18d6ba0..759b5414 100644 --- a/data/maps/objects/CinnabarPokecenter.asm +++ b/data/maps/objects/CinnabarPokecenter.asm @@ -14,5 +14,6 @@ CinnabarPokecenter_Object: object_event 11, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 4 ; person object_event 9, 6, SPRITE_MIDDLE_AGED_MAN, STAY, DOWN, 5 ; spamton object_event 8, 3, SPRITE_GAMEBOY_KID, STAY, DOWN, 6 ; Muk Trader + object_event 4, 1, SPRITE_CHANSEY, STAY, DOWN, 7 ; Chansey def_warps_to CINNABAR_POKECENTER diff --git a/data/maps/objects/FuchsiaCity.asm b/data/maps/objects/FuchsiaCity.asm index c8ff36e6..9a495ef3 100644 --- a/data/maps/objects/FuchsiaCity.asm +++ b/data/maps/objects/FuchsiaCity.asm @@ -33,7 +33,7 @@ FuchsiaCity_Object: object_event 28, 17, SPRITE_GAMBLER, WALK, LEFT_RIGHT, 2 ; person object_event 30, 14, SPRITE_FISHER, STAY, DOWN, 3 ; person object_event 24, 8, SPRITE_YOUNGSTER, STAY, UP, 4 ; person - object_event 31, 5, SPRITE_FAIRY, WALK, ANY_DIR, 5 ; person + object_event 31, 5, SPRITE_CHANSEY, STAY, ANY_DIR, 5 ; person object_event 25, 6, SPRITE_POKE_BALL, STAY, NONE, 6 ; person object_event 12, 6, SPRITE_MONSTER, WALK, LEFT_RIGHT, 7 ; person object_event 30, 12, SPRITE_MONSTER, WALK, LEFT_RIGHT, 8 ; person diff --git a/data/maps/objects/FuchsiaPokecenter.asm b/data/maps/objects/FuchsiaPokecenter.asm index 0733908d..77585089 100644 --- a/data/maps/objects/FuchsiaPokecenter.asm +++ b/data/maps/objects/FuchsiaPokecenter.asm @@ -13,5 +13,6 @@ FuchsiaPokecenter_Object: object_event 6, 5, SPRITE_COOLTRAINER_F, WALK, LEFT_RIGHT, 3 ; person object_event 11, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 4 ; person object_event 7, 3, SPRITE_GAMEBOY_KID, STAY, DOWN, 5 ; Marowak Trader + object_event 4, 1, SPRITE_CHANSEY, STAY, DOWN, 6 ; Chansey def_warps_to FUCHSIA_POKECENTER diff --git a/data/maps/objects/IndigoPlateauLobby.asm b/data/maps/objects/IndigoPlateauLobby.asm index fb32c6b9..d0e9e520 100644 --- a/data/maps/objects/IndigoPlateauLobby.asm +++ b/data/maps/objects/IndigoPlateauLobby.asm @@ -15,5 +15,6 @@ IndigoPlateauLobby_Object: object_event 0, 5, SPRITE_CLERK, STAY, RIGHT, 4 ; person object_event 13, 6, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 5 ; person object_event 10, 7, SPRITE_GAMEBOY_KID, STAY, DOWN, 6 ; Exeggutor Trader + object_event 8, 5, SPRITE_CHANSEY, STAY, DOWN, 7 ; Chansey def_warps_to INDIGO_PLATEAU_LOBBY diff --git a/data/maps/objects/LavenderPokecenter.asm b/data/maps/objects/LavenderPokecenter.asm index e248471f..7aa91ded 100644 --- a/data/maps/objects/LavenderPokecenter.asm +++ b/data/maps/objects/LavenderPokecenter.asm @@ -13,5 +13,6 @@ LavenderPokecenter_Object: object_event 2, 6, SPRITE_LITTLE_GIRL, WALK, UP_DOWN, 3 ; person object_event 11, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 4 ; person object_event 9, 3, SPRITE_GAMEBOY_KID, STAY, DOWN, 5 ; Dugtrio Trader + object_event 4, 1, SPRITE_CHANSEY, STAY, DOWN, 6 ; Chansey def_warps_to LAVENDER_POKECENTER diff --git a/data/maps/objects/MrFujisHouse.asm b/data/maps/objects/MrFujisHouse.asm index c84b8637..5520d204 100644 --- a/data/maps/objects/MrFujisHouse.asm +++ b/data/maps/objects/MrFujisHouse.asm @@ -10,9 +10,10 @@ MrFujisHouse_Object: def_object_events object_event 3, 5, SPRITE_SUPER_NERD, STAY, NONE, 1 ; person object_event 6, 3, SPRITE_LITTLE_GIRL, STAY, DOWN, 2 ; person - object_event 6, 4, SPRITE_MONSTER, STAY, UP, 3 ; person - object_event 1, 3, SPRITE_MONSTER, STAY, NONE, 4 ; person + object_event 6, 4, SPRITE_SANDSHREW, STAY, UP, 3 ; person + object_event 1, 3, SPRITE_BULBASAUR, STAY, NONE, 4 ; person object_event 3, 1, SPRITE_MR_FUJI, STAY, NONE, 5 ; person object_event 3, 3, SPRITE_POKEDEX, STAY, NONE, 6 ; person + object_event 0, 4, SPRITE_ODDISH, STAY, NONE, 7 ; person def_warps_to MR_FUJIS_HOUSE diff --git a/data/maps/objects/MtMoonPokecenter.asm b/data/maps/objects/MtMoonPokecenter.asm index 382c67dd..ac3594ad 100644 --- a/data/maps/objects/MtMoonPokecenter.asm +++ b/data/maps/objects/MtMoonPokecenter.asm @@ -14,5 +14,6 @@ MtMoonPokecenter_Object: object_event 10, 6, SPRITE_MIDDLE_AGED_MAN, WALK, LEFT_RIGHT, 4 ; person object_event 7, 2, SPRITE_CLIPBOARD, STAY, NONE, 5 ; person object_event 11, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 6 ; person + object_event 4, 1, SPRITE_CHANSEY, STAY, DOWN, 7 ; Chansey def_warps_to MT_MOON_POKECENTER diff --git a/data/maps/objects/PewterPokecenter.asm b/data/maps/objects/PewterPokecenter.asm index 6cd7dd41..a2313eba 100644 --- a/data/maps/objects/PewterPokecenter.asm +++ b/data/maps/objects/PewterPokecenter.asm @@ -10,8 +10,9 @@ PewterPokecenter_Object: def_object_events object_event 3, 1, SPRITE_NURSE, STAY, DOWN, 1 ; person object_event 11, 7, SPRITE_GENTLEMAN, STAY, LEFT, 2 ; person - object_event 1, 3, SPRITE_FAIRY, STAY, DOWN, 3 ; person + object_event 1, 3, SPRITE_JIGGLYPUFF, STAY, DOWN, 3 ; person object_event 11, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 4 ; person object_event 7, 3, SPRITE_GAMEBOY_KID, STAY, DOWN, 5 ; Golem Trader + object_event 4, 1, SPRITE_CHANSEY, STAY, DOWN, 6 ; Chansey def_warps_to PEWTER_POKECENTER diff --git a/data/maps/objects/RockTunnelPokecenter.asm b/data/maps/objects/RockTunnelPokecenter.asm index a1daf723..d97c5404 100644 --- a/data/maps/objects/RockTunnelPokecenter.asm +++ b/data/maps/objects/RockTunnelPokecenter.asm @@ -13,5 +13,6 @@ RockTunnelPokecenter_Object: object_event 2, 5, SPRITE_FISHER, STAY, NONE, 3 ; person object_event 11, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 4 ; person object_event 9, 6, SPRITE_MIDDLE_AGED_MAN, STAY, DOWN, 5 ; spamton + object_event 4, 1, SPRITE_CHANSEY, STAY, DOWN, 6 ; Chansey def_warps_to ROCK_TUNNEL_POKECENTER diff --git a/data/maps/objects/SaffronPokecenter.asm b/data/maps/objects/SaffronPokecenter.asm index 76df57b9..b13b976c 100644 --- a/data/maps/objects/SaffronPokecenter.asm +++ b/data/maps/objects/SaffronPokecenter.asm @@ -13,5 +13,6 @@ SaffronPokecenter_Object: object_event 8, 3, SPRITE_GENTLEMAN, STAY, DOWN, 3 ; person object_event 11, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 4 ; person object_event 7, 3, SPRITE_GAMEBOY_KID, STAY, DOWN, 5 ; Raichu Trader + object_event 4, 1, SPRITE_CHANSEY, STAY, DOWN, 6 ; Chansey def_warps_to SAFFRON_POKECENTER diff --git a/data/maps/objects/VermilionPokecenter.asm b/data/maps/objects/VermilionPokecenter.asm index 61251452..7c09578d 100644 --- a/data/maps/objects/VermilionPokecenter.asm +++ b/data/maps/objects/VermilionPokecenter.asm @@ -13,5 +13,6 @@ VermilionPokecenter_Object: object_event 5, 4, SPRITE_SAILOR, STAY, NONE, 3 ; person object_event 11, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 4 ; person object_event 7, 3, SPRITE_GAMEBOY_KID, STAY, DOWN, 5 ; Persian Trader + object_event 4, 1, SPRITE_CHANSEY, STAY, DOWN, 6 ; Chansey def_warps_to VERMILION_POKECENTER diff --git a/data/maps/objects/ViridianPokecenter.asm b/data/maps/objects/ViridianPokecenter.asm index ab181992..55e85c99 100644 --- a/data/maps/objects/ViridianPokecenter.asm +++ b/data/maps/objects/ViridianPokecenter.asm @@ -13,5 +13,6 @@ ViridianPokecenter_Object: object_event 4, 3, SPRITE_COOLTRAINER_M, STAY, NONE, 3 ; person object_event 11, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 4 ; person object_event 7, 3, SPRITE_GAMEBOY_KID, STAY, DOWN, 5 ; Raticate Trader + object_event 4, 1, SPRITE_CHANSEY, STAY, DOWN, 6 ; Chansey def_warps_to VIRIDIAN_POKECENTER diff --git a/data/maps/sprite_sets.asm b/data/maps/sprite_sets.asm index fdfec4f9..47184cd4 100644 --- a/data/maps/sprite_sets.asm +++ b/data/maps/sprite_sets.asm @@ -66,6 +66,8 @@ SplitMapSpriteSets: SpriteSets: table_width SPRITE_SET_LENGTH, SpriteSets +; Useful note: The last entry in a spriteset doesn't move, presumably for the Old Man in Viridian. +; Unsure why Poke Balls don't use that space in other spritesets - consider experimenting. ; SPRITESET_PALLET_VIRIDIAN db SPRITE_BLUE db SPRITE_YOUNGSTER @@ -86,7 +88,7 @@ SpriteSets: db SPRITE_HIKER db SPRITE_MONSTER db SPRITE_BLUE - db SPRITE_GUARD + db SPRITE_OFFICER_JENNY db SPRITE_COOLTRAINER_F db SPRITE_COOLTRAINER_M db SPRITE_POKE_BALL @@ -186,7 +188,7 @@ SpriteSets: ; SPRITESET_FUCHSIA db SPRITE_BIRD db SPRITE_COOLTRAINER_M - db SPRITE_FAIRY + db SPRITE_CHANSEY db SPRITE_FISHER db SPRITE_GAMBLER db SPRITE_MONSTER diff --git a/data/pokemon/menu_icons.asm b/data/pokemon/menu_icons.asm index 318c08a7..7a4d677a 100644 --- a/data/pokemon/menu_icons.asm +++ b/data/pokemon/menu_icons.asm @@ -9,10 +9,10 @@ MonPartyData: nybble ICON_WATER ; Squirtle nybble ICON_WATER ; Wartortle nybble ICON_WATER ; Totartle - nybble ICON_FAIRY ; Pikachu - nybble ICON_FAIRY ; Raichu - nybble ICON_FAIRY ; Raichu-A - nybble ICON_FAIRY ; Gorochu + nybble ICON_PIKACHU ; Pikachu + nybble ICON_PIKACHU ; Raichu + nybble ICON_PIKACHU ; Raichu-A + nybble ICON_PIKACHU ; Gorochu nybble ICON_QUADRUPED ; Eevee nybble ICON_QUADRUPED ; Vaporeon nybble ICON_QUADRUPED ; Jolteon @@ -25,14 +25,14 @@ MonPartyData: nybble ICON_QUADRUPED ; Rattata nybble ICON_QUADRUPED ; Raticate nybble ICON_QUADRUPED ; Raticate-A - nybble ICON_BIRD ; Pidgey - nybble ICON_BIRD ; Pidgeotto + nybble ICON_SMALL_BIRD ; Pidgey + nybble ICON_SMALL_BIRD ; Pidgeotto nybble ICON_BIRD ; Pidgeot - nybble ICON_MON ; Konya - nybble ICON_MON ; Meowth - nybble ICON_MON ; Persian - nybble ICON_MON ; Persian-A - nybble ICON_MON ; Perrserker + nybble ICON_CAT ; Konya + nybble ICON_CAT ; Meowth + nybble ICON_CAT ; Persian + nybble ICON_CAT ; Persian-A + nybble ICON_CAT ; Perrserker nybble ICON_BUG ; Caterpie nybble ICON_BUG ; Metapod nybble ICON_BUG ; Butterfree @@ -42,7 +42,7 @@ MonPartyData: nybble ICON_BUG ; Kokana nybble ICON_BUG ; Kasanagi nybble ICON_BUG ; Carapthor - nybble ICON_BIRD ; Spearow + nybble ICON_SMALL_BIRD ; Spearow nybble ICON_BIRD ; Fearow nybble ICON_SNAKE ; Ekans nybble ICON_SNAKE ; Arbok @@ -118,9 +118,9 @@ MonPartyData: nybble ICON_WATER ; Wugtrio nybble ICON_SNAKE ; Onix nybble ICON_SNAKE ; Steelix - nybble ICON_QUADRUPED ; Kotora - nybble ICON_QUADRUPED ; Gaotora - nybble ICON_QUADRUPED ; Gorotora + nybble ICON_CAT ; Kotora + nybble ICON_CAT ; Gaotora + nybble ICON_CAT ; Gorotora - unsure about how fitting this is but they ARE tigers, so... nybble ICON_BALL ; Voltorb nybble ICON_BALL ; Electrode nybble ICON_BALL ; Electrode-H @@ -163,10 +163,10 @@ MonPartyData: nybble ICON_MON ; Marowak nybble ICON_MON ; Marowak-A nybble ICON_MON ; Guardia - nybble ICON_BIRD ; Farfetch'd + nybble ICON_SMALL_BIRD ; Farfetch'd nybble ICON_BIRD ; Madaamu nybble ICON_BIRD ; Sirfetch'd - nybble ICON_BIRD ; Doduo + nybble ICON_BIRD ; Doduo - it's flightless, so the current sprite fits better. nybble ICON_BIRD ; Dodrio nybble ICON_MON ; Grimer nybble ICON_MON ; Muk diff --git a/data/sprites/sprites.asm b/data/sprites/sprites.asm index 54b848d1..b38a76ce 100644 --- a/data/sprites/sprites.asm +++ b/data/sprites/sprites.asm @@ -79,6 +79,7 @@ SpriteSheetPointerTable: overworld_sprite JessieSprite, 12 ; SPRITE_JESSIE overworld_sprite JamesSprite, 12 ; SPRITE_JAMES overworld_sprite CatSprite, 12 ; SPRITE_CAT + overworld_sprite SmallBirdSprite, 12 ; SPRITE_SMALL_BIRD overworld_sprite PokeBallSprite, 4 ; SPRITE_POKE_BALL overworld_sprite FossilSprite, 4 ; SPRITE_FOSSIL overworld_sprite BoulderSprite, 4 ; SPRITE_BOULDER diff --git a/data/text/text_1.asm b/data/text/text_1.asm index 2acc6f68..7dac6d4f 100644 --- a/data/text/text_1.asm +++ b/data/text/text_1.asm @@ -147,3 +147,8 @@ _OaksAideNoRoomText:: text_ram wOaksAideRewardItemName text "." done + +_NurseChanseyText:: + text "CHANSEY: Chaaan" + line "sey!" + done diff --git a/engine/debug/debug_party.asm b/engine/debug/debug_party.asm index 0b0673cb..2e9261ac 100644 --- a/engine/debug/debug_party.asm +++ b/engine/debug/debug_party.asm @@ -24,9 +24,10 @@ IshiharaTeam: db EXEGGUTOR_A, 90 db RHYDON, 90 db KANGASKHAN, 90 - db NIDORAN_M, 50 IF DEF(_DEBUG) - db KOKANA, 50 + db FARFETCHD, 50 + db MEOWTH, 50 + db PIKACHU, 50 ENDC db -1 ; end diff --git a/engine/events/pokecenter_chansey.asm b/engine/events/pokecenter_chansey.asm new file mode 100644 index 00000000..d7c3a95b --- /dev/null +++ b/engine/events/pokecenter_chansey.asm @@ -0,0 +1,11 @@ +PokecenterChanseyText:: + ld hl, NurseChanseyText + call PrintText + ld a, CHANSEY + call PlayCry + call WaitForSoundToFinish + ret + +NurseChanseyText: + text_far _NurseChanseyText + text_end diff --git a/engine/gfx/mon_icons.asm b/engine/gfx/mon_icons.asm index 80ee40b6..66e5dd92 100644 --- a/engine/gfx/mon_icons.asm +++ b/engine/gfx/mon_icons.asm @@ -1,3 +1,4 @@ +;Backported from Yellow AnimatePartyMon_ForceSpeed1: xor a ld [wCurrentMenuItem], a @@ -91,7 +92,7 @@ PartyMonSpeeds: LoadMonPartySpriteGfx: ; Load mon party sprite tile patterns into VRAM during V-blank. ld hl, MonPartySpritePointers - ld a, $1c + ld a, $22 ; Number of pointers in the list in hex. eg. Yellow has 30, so 1E is used. LoadAnimSpriteGfx: ; Load animated sprite tile patterns into VRAM during V-blank. hl is the address @@ -130,7 +131,7 @@ LoadMonPartySpriteGfxWithLCDDisabled: ; LCD. call DisableLCD ld hl, MonPartySpritePointers - ld a, $1c + ld a, $24 ; Number of pointers in the list in hex. eg. Yellow has 30, so 1E is used. ld bc, $0 .loop push af @@ -151,7 +152,7 @@ LoadMonPartySpriteGfxWithLCDDisabled: inc hl ld d, [hl] pop hl - call FarCopyData2 + call FarCopyData pop hl pop bc ld a, $6 @@ -170,6 +171,8 @@ WriteMonPartySpriteOAMByPartyIndex: push de push bc ldh a, [hPartyMonIndex] + cp $ff + jr z, .asm_7191f ld hl, wPartySpecies ld e, a ld d, 0 @@ -183,6 +186,16 @@ WriteMonPartySpriteOAMByPartyIndex: pop hl ret +.asm_7191f + ld hl, wShadowOAM + ld de, wMonPartySpritesSavedOAM + ld bc, $60 + call CopyData + pop bc + pop de + pop hl + ret + WriteMonPartySpriteOAMBySpecies: ; Write OAM blocks for the party sprite of the species in ; [wMonPartySpriteSpecies]. @@ -193,43 +206,43 @@ WriteMonPartySpriteOAMBySpecies: ld [wOAMBaseTile], a jr WriteMonPartySpriteOAM -UnusedPartyMonSpriteFunction: +;UnusedPartyMonSpriteFunction: ; This function is unused and doesn't appear to do anything useful. It looks ; like it may have been intended to load the tile patterns and OAM data for ; the mon party sprite associated with the species in [wcf91]. ; However, its calculations are off and it loads garbage data. - ld a, [wcf91] - call GetPartyMonSpriteID - push af - ld hl, vSprites tile $00 - call .LoadTilePatterns - pop af - add $54 - ld hl, vSprites tile $04 - call .LoadTilePatterns - xor a - ld [wMonPartySpriteSpecies], a - jr WriteMonPartySpriteOAMBySpecies +; ld a, [wcf91] +; call GetPartyMonSpriteID +; push af +; ld hl, vSprites tile $00 +; call .LoadTilePatterns +; pop af +; add $5A +; ld hl, vSprites tile $04 +; call .LoadTilePatterns +; xor a +; ld [wMonPartySpriteSpecies], a +; jr WriteMonPartySpriteOAMBySpecies -.LoadTilePatterns - push hl - add a - ld c, a - ld b, 0 - ld hl, MonPartySpritePointers - add hl, bc - add hl, bc - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - pop hl - jp CopyVideoData +;.LoadTilePatterns +; push hl +; add a +; ld c, a +; ld b, 0 +; ld hl, MonPartySpritePointers +; add hl, bc +; add hl, bc +; add hl, bc +; ld a, [hli] +; ld e, a +; ld a, [hli] +; ld d, a +; ld a, [hli] +; ld c, a +; ld a, [hli] +; ld b, a +; pop hl +; jp CopyVideoData WriteMonPartySpriteOAM: ; Write the OAM blocks for the first animation frame into the OAM buffer and @@ -291,5 +304,7 @@ SnakeIconFrame1: INCBIN "gfx/icons/snake.2bpp", INC_FRAME_1 QuadrupedIconFrame1: INCBIN "gfx/icons/quadruped.2bpp", INC_FRAME_1 SnakeIconFrame2: INCBIN "gfx/icons/snake.2bpp", INC_FRAME_2 QuadrupedIconFrame2: INCBIN "gfx/icons/quadruped.2bpp", INC_FRAME_2 +CatIconFrame1: INCBIN "gfx/icons/cat.2bpp", INC_FRAME_1 +CatIconFrame2: INCBIN "gfx/icons/cat.2bpp", INC_FRAME_2 TradeBubbleIconGFX: INCBIN "gfx/trade/bubble.2bpp" \ No newline at end of file diff --git a/gfx/icons/cat.png b/gfx/icons/cat.png new file mode 100644 index 0000000000000000000000000000000000000000..6b4d624c6b99aabc8451aae348179e83c50e6819 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^96+qV!3HGtKUiJ>QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`ISV`@iy0XBj({-ZRBb+Kpx}8=7sn6_|Fe@W3bq<>u$+Zb;B zy_q#n_odZm)rxiTV^%Z)d zI(3F#5BplrQh854=jL9O1Fgz|Qdf4LDVfw@pv&Vjapq0dwG8_`jYF9a0lmiH>FVdQ I&MBb@0P7TXU;qFB literal 0 HcmV?d00001 diff --git a/gfx/sprites.asm b/gfx/sprites.asm index dd7b157b..9d41a270 100644 --- a/gfx/sprites.asm +++ b/gfx/sprites.asm @@ -87,4 +87,5 @@ ClefairySprite:: INCBIN "gfx/sprites/clefairy.2bpp" ChanseySprite:: INCBIN "gfx/sprites/chansey.2bpp" SurfingPikachuSprite:: INCBIN "gfx/sprites/surfing_pikachu.2bpp" JessieSprite:: INCBIN "gfx/sprites/jessie.2bpp" -JamesSprite:: INCBIN "gfx/sprites/james.2bpp" \ No newline at end of file +JamesSprite:: INCBIN "gfx/sprites/james.2bpp" +SmallBirdSprite:: INCBIN "gfx/sprites/smallbird.2bpp" diff --git a/gfx/sprites/cat.png b/gfx/sprites/cat.png index e56c01bc4f059a52481c82f1d70043925497dc57..0f01d4f0b69ebb1454cfc317286b8d1d914fe1fe 100644 GIT binary patch delta 865 zcmV-n1D^cQ1)B$u7Ybkq1^@s66w&gaks&mH129QMK~z{r?U(IsGBFT@0i`Nhp#2;}&DKKuH5z4|H@x7)3+3nB;rw=Le!=G^bOxR1}+a4#eRtux1e zNYFz-dNb-0n?Za3En84HkH=%!HrHH*S>|W^Ljiz!4?LM&0XG6KW#EYW^7-hW2C2Zf zx{pYGuoVVmuDEO@0FgIRB_AXLm638ee1A#+q#|rj_fsFpz{8n2gH#2Kl}I`Ib5hne z#*RDB5Ua5Ig|Y`jfuHV!1LA223Oig2+CDcWhb4IB}8G?NSJAVjw3GOL{~nkdb$Pok(<= z5TAPpk-%e=q6md~@l$Zz8tFJ6iyXkp<*4Fz3<61YxqgxmRStqG&ONx0h$tIqZ!0H@ zMsm0!k!g?Tx7&9JZ1{zdXPjhKIawWNslvn+x=Tsmj$2st0l-;(AM;XSs-Q|(g{0sp zl7gA+nTpg0lCF}ek<<%`=uI$x{v&Yl%vC+JIub#=mm_<6cAy)Bw)~Sx`9Pcjg`}T5 z&9|?q3UOS8+5RBlbSYUwwD~}amrmJ^hO_BLIE%D0-9-@Lgopb8XF}rQenG&7*w;WZ)i;9xM=B5-1&FvJPa&x9Wz5R6 zWJh!Y8Tq)1gw+wBdle!~fzO2$MW~_ve(pB{5)ows?QP{GjkDm2{D8PWLV!n?10#PI r)t27}%6y#v>Rma`3a5A#-knZg%e{FpfSV`w00000NkvXXu0mjfU6__E delta 660 zcmV;F0&D%72hatO7YaZK1^@s66MgrVks&mH0%b`=K~z{rt(M_!0x=AQY1I*63wB{3 zelrAPunR*VF$C@B_C+s_a|fcI6eZ_NUTnt~_;~!VnXudKqQBqo(U%}lvE6PT=kqxl z;~9$rx7#h+l0X@PT+dXYbOKs<#G-|&p9Wbe>x3+ zb~&9+;RRzFV{G!ki4bsI3z!IUTPU34@z~}P${;|$gyswau(nvR7!ZgYcvg9-2~M_a z&5%UAkc)z`?3tks*1|x{JuV9g5b{E*+=oFx$H;LxZl4N(yzogdvkyts1P^DnIKTsE z_6_Jc^Y$sU5T02K%<=HP{`!WF4s;TKIswQZS$7|J+%&%v)p9Oc2*gEv>{f+>jdwW* z<&C6Ws`2WL^eQ2s6BrUyz#Kn`sRy2iDktK9LeL3hs0ptN;V02bIagv9%hA(-50~#_rV~r#vp{iv#46V8p{jCOVz>d4ERYB0QRXXmO0bONBxbUQB}ryrem^_@NWfPQIJxq@oj83S&kH5Knd+ zWLvtahF>OUEwOCeg@8fX%~_v<2M#r!uXnfSYrXuOJrsEavb$}1A5@b|5Xj8jt(aaY zEX;YR7)tq7R+H#d`6vrXHK6Z*K$WO^=!6geCC=l{dC)VxD09G0`lG>^##nzaoCpEe z<+c_>{)iNk{yPy$DWLHTd4WI|!ZVA(=alyWV}BNvy-XrI(6XrPPOAguK@*o?j%uM3 uQ1+E&guIyKkrz@~iJG8i;R}D+Y`y_jgg_}(q18YD0000TafLppa=;WxUND-V{ths~7(4kA0I=bp4Jw*q*c$(C?5Z_+~L4{%{A8p>B zkG#S=?cr78(I(2EjRJ#4B{7=GF@`Hkjr%z-;Lf>5v)D2K80?n}h9Lt$qXi6nHK6M4 zv(`M(SR41iSxcWvikAv}K7E0xA~|s&+RK>8J7h%3JwN5AuLLfWw>^QGTuppVd|dde zbSyoeKKf*He0xO6gQer&5}@1*!Z$ b-Iaa-vd76BLd$}Q00000NkvXXu0mjfe_43J diff --git a/gfx/sprites/smallbird.png b/gfx/sprites/smallbird.png new file mode 100644 index 0000000000000000000000000000000000000000..6c7ad4dff4338cd431f16d1049446ffee4022dab GIT binary patch literal 883 zcmV-(1C0EMP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf0|-e(K~z{r-Ixn* z<1h?FlOR`24w)P>^%F9}h$3CJMu8#^@LC^oL{gI5?)kNGI>6=q{xydMS_qv4WTgm2iN(qKzbXU?=l<&aE@E4>Q{7uZ0p3H z$W#MAt}8SF&pZ2>fG9S4ocRiL6Q;wpy)$`oSG zRi=l3KbTU$FguNmWjir_k%aFx_#yI0CINSpQyg=Fau+Zp?CP3}9)VVuvFafFgX2-O z2x928{Zi46^Ioslw%ThOM6$i<^U&9PW!L1}?x` z!cO{8m54%(*V##T!JUD&B8glmjNib@5PVLTt3^P=Cw+C{W7y&Y!)5Xvh&gKkcZO1+ zA_@#eWWrO4L}!?Gp%TfQ;RC)%%Mrws0M|(%%RO$d+MLGWGGQ3cy~YG{JQC><#8reF z18pt9dn%$EWJJLx;CcJaTw(b0A5ixdDu{&adkV35d+1vrXtifsxwrLf!fo8=7~>7Y zIf&^vicaYbU!0R(`jYRY1%an6EeF5j~6+T#QmJ