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 00000000..6b4d624c Binary files /dev/null and b/gfx/icons/cat.png differ 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 e56c01bc..0f01d4f0 100644 Binary files a/gfx/sprites/cat.png and b/gfx/sprites/cat.png differ diff --git a/gfx/sprites/daisy (1).png b/gfx/sprites/daisy (1).png deleted file mode 100644 index 84f330f1..00000000 Binary files a/gfx/sprites/daisy (1).png and /dev/null differ diff --git a/gfx/sprites/smallbird.png b/gfx/sprites/smallbird.png new file mode 100644 index 00000000..6c7ad4df Binary files /dev/null and b/gfx/sprites/smallbird.png differ diff --git a/main.asm b/main.asm index 980171e7..b2d87473 100644 --- a/main.asm +++ b/main.asm @@ -324,6 +324,7 @@ INCLUDE "engine/overworld/field_moves.asm" SECTION "In-Game Trade Zone", ROMX INCLUDE "engine/events/in_game_trades.asm" +INCLUDE "engine/events/pokecenter_chansey.asm" SECTION "Itemfinder 1", ROMX diff --git a/scan_includes.exe.stackdump b/scan_includes.exe.stackdump index e1d1cde1..55c78a89 100644 --- a/scan_includes.exe.stackdump +++ b/scan_includes.exe.stackdump @@ -1,15 +1,15 @@ Exception: STATUS_ACCESS_VIOLATION at rip=00100401246 -rax=FFFFFFF7FFF8C851 rbx=00000000000003A2 rcx=0000000800000010 -rdx=0000000000000000 rsi=00000008000636B3 rdi=0000000000000000 +rax=FFFFFFF7FFF970C1 rbx=0000000000000209 rcx=0000000800000010 +rdx=0000000000000000 rsi=0000000800058C12 rdi=0000000000000000 r8 =00000000FFFFC7C4 r9 =0000000000000000 r10=0000000100000000 -r11=0000000100401282 r12=00000008000737B0 r13=0000000100403148 +r11=0000000100401282 r12=0000000800068F40 r13=0000000100403148 r14=0000000000000000 r15=0000000000000001 rbp=0000000100403156 rsp=00000000FFFFCA60 -program=C:\cygwin64\home\chipp\kep-hack\tools\scan_includes.exe, pid 1047, thread main +program=C:\cygwin64\home\chipp\kep-hack\tools\scan_includes.exe, pid 2597, thread main cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B Stack trace: Frame Function Args -00100403156 00100401246 (008000636B3, 00000000022, 00100403166, 000FFFFCB90) +00100403156 00100401246 (00800058C12, 00000000022, 00100403166, 000FFFFCB90) 00100403156 00100401409 (00000000000, 00100000001, 00180227860, 00100407000) 00100403178 00100401C87 (00000000020, 00000000000, 00180049B11, 00180048A70) 000FFFFCD30 00180049B7D (00000000000, 00000000000, 00000000000, 00000000000) diff --git a/scripts/CeladonPokecenter.asm b/scripts/CeladonPokecenter.asm index 9a5b2671..5a6c67ce 100644 --- a/scripts/CeladonPokecenter.asm +++ b/scripts/CeladonPokecenter.asm @@ -8,6 +8,7 @@ CeladonPokecenter_TextPointers: dw CeladonPokecenterText3 dw CeladonTradeNurseText dw SandslashTrade + dw CeladonPokeCenterText4 CeladonTradeNurseText: script_cable_club_receptionist @@ -29,3 +30,8 @@ SandslashTrade: ld [wWhichTrade], a predef DoInGameTradeDialogue jp TextScriptEnd + +CeladonPokeCenterText4: + text_asm + callfar PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/CeladonUniversityPokecenter.asm b/scripts/CeladonUniversityPokecenter.asm index 716a3daf..73085f59 100644 --- a/scripts/CeladonUniversityPokecenter.asm +++ b/scripts/CeladonUniversityPokecenter.asm @@ -8,6 +8,7 @@ CeladonUniversityPokecenter_TextPointers: dw CuboneSalesmanText dw CeladonUniversityPokecenterText8 dw CeladonUniversityTradeNurseText + dw CeladonUniversityChansey CeladonUniversityTradeNurseText: script_cable_club_receptionist @@ -86,4 +87,9 @@ CuboneSalesmanText: CeladonUniversityPokecenterText8:: text_far _CeladonUniversityPokecenterText8 - text_end \ No newline at end of file + text_end + +CeladonUniversityChansey: + text_asm + callfar PokecenterChanseyText + jp TextScriptEnd \ No newline at end of file diff --git a/scripts/CeruleanPokecenter.asm b/scripts/CeruleanPokecenter.asm index d601f019..ffdc1c4b 100644 --- a/scripts/CeruleanPokecenter.asm +++ b/scripts/CeruleanPokecenter.asm @@ -8,6 +8,7 @@ CeruleanPokecenter_TextPointers: dw CeruleanPokecenterText3 dw CeruleanTradeNurseText dw NinetalesTrade + dw CeruleanPokecenterText4 CeruleanTradeNurseText: script_cable_club_receptionist @@ -30,3 +31,7 @@ NinetalesTrade: predef DoInGameTradeDialogue jp TextScriptEnd +CeruleanPokecenterText4: + text_asm + callfar PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/CinnabarPokecenter.asm b/scripts/CinnabarPokecenter.asm index 9b70282b..eddf5d55 100644 --- a/scripts/CinnabarPokecenter.asm +++ b/scripts/CinnabarPokecenter.asm @@ -9,6 +9,7 @@ CinnabarPokecenter_TextPointers: dw CinnabarTradeNurseText dw PoryZSalesmanText dw MukTrade + dw CinnabarPokecenterText4 CinnabarHealNurseText: script_pokecenter_nurse @@ -99,3 +100,8 @@ MukTrade: ld [wWhichTrade], a predef DoInGameTradeDialogue jp TextScriptEnd + +CinnabarPokecenterText4: + text_asm + callfar PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/FuchsiaPokecenter.asm b/scripts/FuchsiaPokecenter.asm index b924722e..24331966 100644 --- a/scripts/FuchsiaPokecenter.asm +++ b/scripts/FuchsiaPokecenter.asm @@ -8,6 +8,7 @@ FuchsiaPokecenter_TextPointers: dw FuchsiaPokecenterText3 dw FuchsiaTradeNurseText dw MarowakTrade + dw FuschiaPokecenterText4 FuchsiaHealNurseText: script_pokecenter_nurse @@ -29,3 +30,8 @@ MarowakTrade: ld [wWhichTrade], a predef DoInGameTradeDialogue jp TextScriptEnd + +FuschiaPokecenterText4: + text_asm + callfar PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/IndigoPlateauLobby.asm b/scripts/IndigoPlateauLobby.asm index 033c1558..25cad5ad 100644 --- a/scripts/IndigoPlateauLobby.asm +++ b/scripts/IndigoPlateauLobby.asm @@ -21,6 +21,7 @@ IndigoPlateauLobby_TextPointers: dw IndigoCashierText dw IndigoTradeNurseText dw ExeggutorTrade + dw IndigoPlateauLobbyText4 IndigoHealNurseText: script_pokecenter_nurse @@ -45,3 +46,8 @@ ExeggutorTrade: ld [wWhichTrade], a predef DoInGameTradeDialogue jp TextScriptEnd + +IndigoPlateauLobbyText4: + text_asm + callfar PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/LavenderPokecenter.asm b/scripts/LavenderPokecenter.asm index 36a88aba..21bf8329 100644 --- a/scripts/LavenderPokecenter.asm +++ b/scripts/LavenderPokecenter.asm @@ -8,6 +8,7 @@ LavenderPokecenter_TextPointers: dw LavenderPokecenterText3 dw LavenderTradeNurseText dw DugtrioTrade + dw LavenderPokecenterText4 LavenderTradeNurseText: script_cable_club_receptionist @@ -30,3 +31,7 @@ DugtrioTrade: predef DoInGameTradeDialogue jp TextScriptEnd +LavenderPokecenterText4: + text_asm + callfar PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/MrFujisHouse.asm b/scripts/MrFujisHouse.asm index 3ef3017a..69516986 100644 --- a/scripts/MrFujisHouse.asm +++ b/scripts/MrFujisHouse.asm @@ -9,6 +9,7 @@ MrFujisHouse_TextPointers: dw LavenderHouse1Text4 dw LavenderHouse1Text5 dw LavenderHouse1Text6 + dw LavenderHouse1Text7 LavenderHouse1Text1: text_asm @@ -55,14 +56,14 @@ LavenderHouse1Text_1d8f9: LavenderHouse1Text3: text_far _LavenderHouse1Text3 text_asm - ld a, PSYDUCK + ld a, SANDSHREW call PlayCry jp TextScriptEnd LavenderHouse1Text4: text_far _LavenderHouse1Text4 text_asm - ld a, NIDORINO + ld a, BULBASAUR call PlayCry jp TextScriptEnd @@ -110,3 +111,10 @@ MrFujiAfterFluteText: LavenderHouse1Text6: text_far _LavenderHouse1Text6 text_end + +LavenderHouse1Text7: + text_far _LavenderHouse1Text7 + text_asm + ld a, ODDISH + call PlayCry + jp TextScriptEnd diff --git a/scripts/MtMoonPokecenter.asm b/scripts/MtMoonPokecenter.asm index e4b881d1..247a802a 100644 --- a/scripts/MtMoonPokecenter.asm +++ b/scripts/MtMoonPokecenter.asm @@ -9,6 +9,7 @@ MtMoonPokecenter_TextPointers: dw MagikarpSalesmanText dw MtMoonPokecenterText5 dw MtMoonTradeNurseText + dw MtMoonPokecenterText6 MtMoonHealNurseText: script_pokecenter_nurse @@ -92,3 +93,8 @@ MtMoonPokecenterText5: MtMoonTradeNurseText: script_cable_club_receptionist + +MtMoonPokecenterText6: + text_asm + callfar PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/PewterPokecenter.asm b/scripts/PewterPokecenter.asm index 6ee55a94..aa7dc14f 100644 --- a/scripts/PewterPokecenter.asm +++ b/scripts/PewterPokecenter.asm @@ -8,6 +8,7 @@ PewterPokecenter_TextPointers: dw PewterJigglypuffText dw PewterTradeNurseText dw GolemTrade + dw PewterPokecenterText3 PewterHealNurseText: script_pokecenter_nurse @@ -97,3 +98,8 @@ GolemTrade: ld [wWhichTrade], a predef DoInGameTradeDialogue jp TextScriptEnd + +PewterPokecenterText3: + text_asm + callfar PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/RockTunnelPokecenter.asm b/scripts/RockTunnelPokecenter.asm index 4ce51d36..db2d3e3d 100644 --- a/scripts/RockTunnelPokecenter.asm +++ b/scripts/RockTunnelPokecenter.asm @@ -8,6 +8,7 @@ RockTunnelPokecenter_TextPointers: dw RockTunnelPokecenterText3 dw RockTunnelTradeNurseText dw DittoSalesmanText + dw RockTunnelPokecenterText4 RockTunnelHealNurseText: script_pokecenter_nurse @@ -86,4 +87,9 @@ DittoSalesmanText: .Text2 text_far _DittoSalesmanText2 - text_end \ No newline at end of file + text_end + +RockTunnelPokecenterText4: + text_asm + callfar PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/SaffronPokecenter.asm b/scripts/SaffronPokecenter.asm index e4bb0171..544fdcbd 100644 --- a/scripts/SaffronPokecenter.asm +++ b/scripts/SaffronPokecenter.asm @@ -8,6 +8,7 @@ SaffronPokecenter_TextPointers: dw SaffronPokecenterText3 dw SaffronTradeNurseText dw RaichuTrade + dw SaffronPokecenterText4 SaffronHealNurseText: script_pokecenter_nurse @@ -29,3 +30,8 @@ RaichuTrade: ld [wWhichTrade], a predef DoInGameTradeDialogue jp TextScriptEnd + +SaffronPokecenterText4: + text_asm + callfar PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/VermilionPokecenter.asm b/scripts/VermilionPokecenter.asm index a083d65e..c486b59e 100644 --- a/scripts/VermilionPokecenter.asm +++ b/scripts/VermilionPokecenter.asm @@ -8,6 +8,7 @@ VermilionPokecenter_TextPointers: dw VermilionPokecenterText3 dw VermilionTradeNurseText dw PersianTrade + dw VermillionPokeCenterText4 VermilionHealNurseText: script_pokecenter_nurse @@ -29,3 +30,8 @@ PersianTrade: ld [wWhichTrade], a predef DoInGameTradeDialogue jp TextScriptEnd + +VermillionPokeCenterText4: + text_asm + callfar PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/ViridianPokecenter.asm b/scripts/ViridianPokecenter.asm index 69a3b8ea..ee72fa9a 100644 --- a/scripts/ViridianPokecenter.asm +++ b/scripts/ViridianPokecenter.asm @@ -8,6 +8,7 @@ ViridianPokecenter_TextPointers: dw ViridianPokeCenterText3 dw ViridianTradeNurseText dw RaticateTrade + dw ViridianPokeCenterText4 ViridianHealNurseText: script_pokecenter_nurse @@ -29,3 +30,8 @@ RaticateTrade: ld [wWhichTrade], a predef DoInGameTradeDialogue jp TextScriptEnd + +ViridianPokeCenterText4: + text_asm + callfar PokecenterChanseyText + jp TextScriptEnd diff --git a/text/MrFujisHouse.asm b/text/MrFujisHouse.asm index 6c7f3439..20b6726d 100644 --- a/text/MrFujisHouse.asm +++ b/text/MrFujisHouse.asm @@ -28,11 +28,12 @@ _LavenderHouse1Text_1d8f9:: done _LavenderHouse1Text3:: - text "PSYDUCK: Gwappa!@" + text "SANDSHREW: Pikii!@" text_end _LavenderHouse1Text4:: - text "NIDORINO: Gaoo!@" + text "BULBASAUR: Bubba!" + line "Zoar!@" text_end _LavenderHouse1Text_1d94c:: @@ -87,3 +88,7 @@ _LavenderHouse1Text6:: para "Gone! It's been" line "clipped out!" done + +_LavenderHouse1Text7:: + text "ODDISH: Orddissh!@" + text_end