diff --git a/README.md b/README.md index ca03859..1c116b8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,73 @@ +# Johto Expansion Pak +This is a ROM Hack of Pokemon Crystal, playing upon the Kanto Expansion Pak's old philosophy. It adds Johto- and Kanto-related Pokemon to Crystal, more interesting locations, and QoL changes. + +If playing on an emulator, BGB is strongly recommended for its accuracy and features. Inaccurate emulators, such as VBA and TGB Dual, can experience unintended glitches. This hack is fully playable on official hardware as well. + +# New Pokemon +Using the Kanto Expansion Pak's original criteria, the ethos of the Johto Expansion Pak will be to add every "Johto- and Kanto-related Pokemon to Crystal without fundamentally changing the way the game is played." + +What falls under "Johto- and Kanto-related" is a Pokemon is the following, so long as they are, in fact, related: +- Is a regional variant (Eg. Hisuian Sneasel) +- Evolves from or into a Pokemon (eg. Tangrowth, Honchkrow) +- Was cut from the final game (eg. Bellignan, Tricules, Phandarin) +- Is a Paradox equivalent (eg. Walking Wake) +- Would qualify for the Kanto Expansion Pak (eg. Omegadge, Melmetal) + +Any Pokemon that you can think of that would come under this, is absolutely in. Dex total is 462! + +Mega Evolutions, Gigantamax forms, etc, are currently not in active consideration. + +The Fairy-type does exist. + +# Changes +## New Features +- There is now an enby character option named Topaz, purple-themed. +- There is a new Nihon region, based on the 1998 version before it got scrapped for Johto. +- The Fairy-type is now available, though Pokemon are not retroactively changed, per the Kanto Expansion Pak philosophy (you wouldn't want a Fairy-type Granbull pre-split, would you?) + +## QoL Changes +- A Trader NPC is available in a new Lake of Rage town area, allowing you to access trade evolutions natively. +- Instant text is now an option! +- Clock reset procedure is now like vanilla GS, requiring just Down + B. +- Tilesets now handle up to 255 titles (from 192), allowing for slightly nicer maps. +- Can now have up to 17 object events. + +## Map Changes +In general, there have been many wild encounter tweaks. View this document for details. (will link when hack is in a playable state) + +- Johto wild encounters have been changed to be more weighted towards Johto Pokemon; eg. Murkrow is available about Ecruteak at night, Misdreavus largely replaces Gastly, etc. +- Kanto wild encounters have generally higher levels to aid in improving the level curve. +- Viridian Forest has been restored. +- The Pewter Museum of Science has been restored. +- Cerulean Cave has been restored, complete with a Mewtwo fight! +- The Kanto Safari Zone map from the prototype has been restored. +- The prototype Lake of Rage village has been restored, complete with an Evolution Stone shop and Trader NPC! In general, it's themed around Pokemon evolution. + +## Item Changes +- Many evolution stones have been added to accomodate the Pokemon featured here, including the Heart and Poison Stones from the SpaceWorld demo! +- The Fairy Feather from Scarlet and Violet has been added to accomodate the Fairy type. + +# Credits +- Plague von Karma (Director, Kanto Expansion Pak Founder, Programming, Maps) +- Martha's Against Humanity (Kanto Expansion Pak ROM Hack Creator, Programmer) +- Zeta_Null (Repository Owner, Spriter, Programming) +- LadyMisticus (Documentation, Programming, Mapping) +- thornAvery (Programming) +- pret et al (LOTS of [Tutorials](https://github.com/pret/pokecrystal/wiki) that we used to get this off the ground!) +- Wiz (Nihon Pokemon names) +- Rezzo (GSC-specific advice) +- Old Dance Jacket (GSC-specific advice) + +# Sprite Credits +- Zeta_Null: Topaz sprites, numerous tileset bits, Omegadge, +- Martha's Against Humanity: Shi-Shi +- EyeDonutz: Walking Wake +- nuuk: (TBD) +- SCMidna: Munchlax +- Pokemon October et al: Bellignan, Caretorker, Inoshika, Bipulla, Sonegg, Kolta, Coinpur, Dodaerie, Bundra, Kiwooked, Koalyptus, Trebir +- Tom Wang: Gold/Chris running sprite +- Seasick: Kris running sprite + # 16-bit index expansion for Crystal This repository contains a modified Pokémon Crystal game, updated to handle 16-bit indexes. The main goal of this diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index 1c1be9a..0a7c1c1 100644 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -164,6 +164,7 @@ const KABUTO ; 8c const KABUTOPS ; 8d const AERODACTYL ; 8e + const MUNCHLAX const SNORLAX ; 8f const ARTICUNO ; 90 const ZAPDOS ; 91 diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index e301f23..191b40e 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -106,6 +106,9 @@ const SPRITE_STANDING_YOUNGSTER ; 66 const SPRITE_ENBY ; 67 const SPRITE_ENBY_BIKE ; 68 + const SPRITE_CHRIS_RUN ; 67 + const SPRITE_KRIS_RUN ; 68 + const SPRITE_TOPAZ_RUN ; 69 nice DEF NUM_OVERWORLD_SPRITES EQU const_value - 1 ; SpriteMons indexes (see data/sprites/sprite_mons.asm) diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm index 1f4ff68..e36def0 100644 --- a/constants/wram_constants.asm +++ b/constants/wram_constants.asm @@ -256,6 +256,7 @@ DEF PLAYER_BIKE EQU 1 DEF PLAYER_SKATE EQU 2 DEF PLAYER_SURF EQU 4 DEF PLAYER_SURF_PIKA EQU 8 +DEF PLAYER_RUN EQU 16 ; wCelebiEvent:: DEF CELEBIEVENT_FOREST_IS_RESTLESS_F EQU 2 diff --git a/data/pokemon/base_stats.asm b/data/pokemon/base_stats.asm index fd29220..0250a27 100644 --- a/data/pokemon/base_stats.asm +++ b/data/pokemon/base_stats.asm @@ -172,6 +172,7 @@ INCLUDE "data/pokemon/base_stats/omastar.asm" INCLUDE "data/pokemon/base_stats/kabuto.asm" INCLUDE "data/pokemon/base_stats/kabutops.asm" INCLUDE "data/pokemon/base_stats/aerodactyl.asm" +INCLUDE "data/pokemon/base_stats/munchlax.asm" INCLUDE "data/pokemon/base_stats/snorlax.asm" INCLUDE "data/pokemon/base_stats/articuno.asm" INCLUDE "data/pokemon/base_stats/zapdos.asm" diff --git a/data/pokemon/cries.asm b/data/pokemon/cries.asm index feefbe0..bc64bc1 100644 --- a/data/pokemon/cries.asm +++ b/data/pokemon/cries.asm @@ -151,6 +151,7 @@ PokemonCries:: mon_cry CRY_CATERPIE, 187, 192 ; KABUTO mon_cry CRY_FEAROW, 238, 129 ; KABUTOPS mon_cry CRY_VILEPLUME, 32, 368 ; AERODACTYL + mon_cry CRY_GRIMER, 101, 128 ; MUNCHLAX mon_cry CRY_GRIMER, 85, 129 ; SNORLAX mon_cry CRY_RAICHU, 128, 192 ; ARTICUNO mon_cry CRY_FEAROW, 255, 256 ; ZAPDOS @@ -260,6 +261,6 @@ PokemonCries:: mon_cry CRY_RAIKOU, -256, 384 ; TYRANITAR mon_cry CRY_TYPHLOSION, 0, 256 ; LUGIA mon_cry CRY_AIPOM, 0, 384 ; HO_OH - mon_cry CRY_NIDORAN_M, 0, 128 ; SHI_SHI (placeholder) + mon_cry CRY_NIDORAN_M, 0, 128 ; SHI_SHI (placeholder) mon_cry CRY_ENTEI, 330, 273 ; CELEBI assert_table_length NUM_POKEMON diff --git a/data/pokemon/dex_entries.asm b/data/pokemon/dex_entries.asm index 6b7c1ae..59843ed 100644 --- a/data/pokemon/dex_entries.asm +++ b/data/pokemon/dex_entries.asm @@ -153,6 +153,7 @@ OmastarPokedexEntry:: INCLUDE "data/pokemon/dex_entries/omastar.asm" KabutoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kabuto.asm" KabutopsPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kabutops.asm" AerodactylPokedexEntry:: INCLUDE "data/pokemon/dex_entries/aerodactyl.asm" +MunchlaxPokedexEntry:: INCLUDE "data/pokemon/dex_entries/munchlax.asm" SnorlaxPokedexEntry:: INCLUDE "data/pokemon/dex_entries/snorlax.asm" ArticunoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/articuno.asm" ZapdosPokedexEntry:: INCLUDE "data/pokemon/dex_entries/zapdos.asm" diff --git a/data/pokemon/dex_entries/munchlax.asm b/data/pokemon/dex_entries/munchlax.asm new file mode 100644 index 0000000..342e14b --- /dev/null +++ b/data/pokemon/dex_entries/munchlax.asm @@ -0,0 +1,10 @@ + db "BIG EATER@" ; species name + dw 200, 2315 ; height, weight + + db "In its desperation" + next "to gulp down food," + next "it forgets about" + + page "the food it has" + next "hidden under its" + next "fur.@" \ No newline at end of file diff --git a/data/pokemon/dex_entry_pointers.asm b/data/pokemon/dex_entry_pointers.asm index 45cbe5e..502b566 100644 --- a/data/pokemon/dex_entry_pointers.asm +++ b/data/pokemon/dex_entry_pointers.asm @@ -146,6 +146,7 @@ PokedexDataPointerTable: dba KabutoPokedexEntry dba KabutopsPokedexEntry dba AerodactylPokedexEntry + dba MunchlaxPokedexEntry dba SnorlaxPokedexEntry dba ArticunoPokedexEntry dba ZapdosPokedexEntry diff --git a/data/pokemon/dex_order_alpha.asm b/data/pokemon/dex_order_alpha.asm index 94284ab..53bc6cf 100644 --- a/data/pokemon/dex_order_alpha.asm +++ b/data/pokemon/dex_order_alpha.asm @@ -141,6 +141,7 @@ AlphabeticalPokedexOrder: dw MOLTRES dw MR__MIME dw MUK + dw MUNCHLAX dw MURKROW dw NATU dw NIDOKING diff --git a/data/pokemon/dex_order_new.asm b/data/pokemon/dex_order_new.asm index 094036a..684ca10 100644 --- a/data/pokemon/dex_order_new.asm +++ b/data/pokemon/dex_order_new.asm @@ -229,6 +229,7 @@ NewPokedexOrder: dw KABUTO dw KABUTOPS dw AERODACTYL + dw MUNCHLAX dw SNORLAX dw BULBASAUR dw IVYSAUR diff --git a/data/pokemon/egg_moves_kanto.asm b/data/pokemon/egg_moves_kanto.asm index 7d4f21c..1ae6925 100644 --- a/data/pokemon/egg_moves_kanto.asm +++ b/data/pokemon/egg_moves_kanto.asm @@ -146,6 +146,7 @@ EggMovePointers1: dw KabutoEggMoves dw NoEggMoves1 dw AerodactylEggMoves + dw MunchlaxEggMoves dw SnorlaxEggMoves dw NoEggMoves1 dw NoEggMoves1 @@ -585,6 +586,10 @@ AerodactylEggMoves: dw FORESIGHT dw -1 ; end +MunchlaxEggMoves: + dw LICK + dw -1 ; end + SnorlaxEggMoves: dw LICK dw -1 ; end diff --git a/data/pokemon/evos_attacks_kanto.asm b/data/pokemon/evos_attacks_kanto.asm index 889d184..173ef89 100644 --- a/data/pokemon/evos_attacks_kanto.asm +++ b/data/pokemon/evos_attacks_kanto.asm @@ -146,6 +146,7 @@ EvosAttacksPointers1:: dw KabutoEvosAttacks dw KabutopsEvosAttacks dw AerodactylEvosAttacks + dw MunchlaxEvosAttacks dw SnorlaxEvosAttacks dw ArticunoEvosAttacks dw ZapdosEvosAttacks @@ -2119,6 +2120,22 @@ AerodactylEvosAttacks: dbw 50, HYPER_BEAM db 0 ; no more level-up moves +MunchlaxEvosAttacks: + db EVOLVE_HAPPINESS, TR_ANYTIME, SNORLAX + db 0 ; no more evolutions + db 1, TACKLE + db 1, METRONOME + db 8, AMNESIA + db 15, DEFENSE_CURL + db 22, BELLY_DRUM + db 29, HEADBUTT + db 36, SCREECH + db 36, REST + db 43, BODY_SLAM + db 50, ROLLOUT + db 57, HYPER_BEAM + db 0 ; no more level-up moves + SnorlaxEvosAttacks: db 0 ; no more evolutions dbw 1, TACKLE diff --git a/data/pokemon/first_stages.asm b/data/pokemon/first_stages.asm index 8e26158..a528030 100644 --- a/data/pokemon/first_stages.asm +++ b/data/pokemon/first_stages.asm @@ -146,7 +146,8 @@ FirstEvoStages:: dw KABUTO dw KABUTO dw AERODACTYL - dw SNORLAX + dw MUNCHLAX + dw MUNCHLAX dw ARTICUNO ;90 dw ZAPDOS dw MOLTRES diff --git a/data/pokemon/gen1_base_special.asm b/data/pokemon/gen1_base_special.asm index c111c20..afff585 100644 --- a/data/pokemon/gen1_base_special.asm +++ b/data/pokemon/gen1_base_special.asm @@ -147,6 +147,7 @@ KantoMonSpecials: db 45 ; KABUTO db 70 ; KABUTOPS db 60 ; AERODACTYL + db 40 ; MUNCHLAX db 65 ; SNORLAX db 125 ; ARTICUNO db 125 ; ZAPDOS diff --git a/data/pokemon/gen1_order.asm b/data/pokemon/gen1_order.asm index 7a52ca0..7b68be0 100644 --- a/data/pokemon/gen1_order.asm +++ b/data/pokemon/gen1_order.asm @@ -256,4 +256,5 @@ Pokered_MonIndices: db BELLIGNAN db WALKING_WAKE db SHI_SHI + db MUNCHLAX assert_table_length NUM_POKEMON - 1 diff --git a/data/pokemon/menu_icons.asm b/data/pokemon/menu_icons.asm index 546b69a..948eab3 100644 --- a/data/pokemon/menu_icons.asm +++ b/data/pokemon/menu_icons.asm @@ -147,6 +147,7 @@ MonMenuIcons: db ICON_SHELL ; KABUTO db ICON_SHELL ; KABUTOPS db ICON_BIRD ; AERODACTYL + db ICON_SNORLAX ; MUNCHLAX db ICON_SNORLAX ; SNORLAX db ICON_BIRD ; ARTICUNO db ICON_BIRD ; ZAPDOS diff --git a/data/pokemon/names.asm b/data/pokemon/names.asm index 5030bd8..f8c0a1b 100644 --- a/data/pokemon/names.asm +++ b/data/pokemon/names.asm @@ -149,6 +149,7 @@ PokemonNames:: db "KABUTO@@@@" db "KABUTOPS@@" db "AERODACTYL" + db "MUNCHLAX@@" db "SNORLAX@@@" db "ARTICUNO@@" db "ZAPDOS@@@@" diff --git a/data/pokemon/palettes.asm b/data/pokemon/palettes.asm index b13ba62..af9746f 100644 --- a/data/pokemon/palettes.asm +++ b/data/pokemon/palettes.asm @@ -323,6 +323,8 @@ INCBIN "gfx/pokemon/kabutops/front.gbcpal", middle_colors INCLUDE "gfx/pokemon/kabutops/shiny.pal" INCBIN "gfx/pokemon/aerodactyl/front.gbcpal", middle_colors INCLUDE "gfx/pokemon/aerodactyl/shiny.pal" +INCBIN "gfx/pokemon/munchlax/front.gbcpal", middle_colors +INCLUDE "gfx/pokemon/munchlax/shiny.pal" INCBIN "gfx/pokemon/snorlax/front.gbcpal", middle_colors INCLUDE "gfx/pokemon/snorlax/shiny.pal" INCBIN "gfx/pokemon/articuno/front.gbcpal", middle_colors @@ -546,4 +548,5 @@ INCLUDE "gfx/pokemon/shi_shi/shiny.pal" INCBIN "gfx/pokemon/celebi/front.gbcpal", middle_colors INCLUDE "gfx/pokemon/celebi/shiny.pal" + assert_table_length NUM_POKEMON + 1 diff --git a/data/pokemon/pic_pointers.asm b/data/pokemon/pic_pointers.asm index 2c90846..996e07b 100644 --- a/data/pokemon/pic_pointers.asm +++ b/data/pokemon/pic_pointers.asm @@ -303,6 +303,8 @@ PokemonPicPointers:: dba KabutopsBackpic dba AerodactylFrontpic dba AerodactylBackpic + dba MunchlaxFrontpic + dba MunchlaxBackpic dba SnorlaxFrontpic dba SnorlaxBackpic dba ArticunoFrontpic diff --git a/data/sprites/player_sprites.asm b/data/sprites/player_sprites.asm index f442ede..3555e33 100644 --- a/data/sprites/player_sprites.asm +++ b/data/sprites/player_sprites.asm @@ -3,6 +3,7 @@ ChrisStateSprites: db PLAYER_BIKE, SPRITE_CHRIS_BIKE db PLAYER_SURF, SPRITE_SURF db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU + db PLAYER_RUN, SPRITE_CHRIS_RUN db -1 ; end KrisStateSprites: @@ -10,6 +11,7 @@ KrisStateSprites: db PLAYER_BIKE, SPRITE_KRIS_BIKE db PLAYER_SURF, SPRITE_SURF db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU + db PLAYER_RUN, SPRITE_KRIS_RUN db -1 ; end EnbyStateSprites: @@ -17,5 +19,6 @@ EnbyStateSprites: db PLAYER_BIKE, SPRITE_ENBY_BIKE db PLAYER_SURF, SPRITE_SURF db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU + db PLAYER_RUN, SPRITE_TOPAZ_RUN db -1 ; end \ No newline at end of file diff --git a/data/sprites/sprites.asm b/data/sprites/sprites.asm index c75fe02..c8b536d 100644 --- a/data/sprites/sprites.asm +++ b/data/sprites/sprites.asm @@ -111,4 +111,7 @@ OverworldSprites: overworld_sprite StandingYoungsterSpriteGFX, 12, STANDING_SPRITE, PAL_OW_BLUE overworld_sprite EnbySpriteGFX, 12, WALKING_SPRITE, PAL_OW_PURPLE overworld_sprite EnbyBikeSpriteGFX, 12, WALKING_SPRITE, PAL_OW_PURPLE + overworld_sprite ChrisRunSpriteGFX, 12, WALKING_SPRITE, PAL_OW_RED + overworld_sprite KrisRunSpriteGFX, 12, WALKING_SPRITE, PAL_OW_BLUE + overworld_sprite TopazRunSpriteGFX, 12, WALKING_SPRITE, PAL_OW_PURPLE assert_table_length NUM_OVERWORLD_SPRITES diff --git a/engine/overworld/events.asm b/engine/overworld/events.asm index f2b174b..a04e471 100644 --- a/engine/overworld/events.asm +++ b/engine/overworld/events.asm @@ -284,6 +284,14 @@ PlayerEvents: xor a ld [wLandmarkSignTimer], a + ; Have player stand (resets running sprite to standing if event starts while running) + ld a, [wPlayerState] + cp PLAYER_RUN + jr nz, .ok2 + ld a, PLAYER_NORMAL + ld [wPlayerState], a + farcall UpdatePlayerSprite + .ok2 scf ret diff --git a/engine/overworld/player_movement.asm b/engine/overworld/player_movement.asm index 0c39248..c29647e 100644 --- a/engine/overworld/player_movement.asm +++ b/engine/overworld/player_movement.asm @@ -276,7 +276,8 @@ DoPlayerMovement:: ; Downhill riding is slower when not moving down. call .BikeCheck - jr nz, .walk + ;jr nz, .walk + jr nz, .HandleWalkAndRun ld hl, wBikeFlags bit BIKEFLAGS_DOWNHILL_F, [hl] @@ -317,6 +318,25 @@ DoPlayerMovement:: xor a ret +.HandleWalkAndRun + ld a, [wWalkingDirection] + cp STANDING + jr z, .ensurewalk + ldh a, [hJoypadDown] + and B_BUTTON + cp B_BUTTON + jr nz, .ensurewalk + ld a, [wPlayerState] + cp PLAYER_RUN + call nz, .StartRunning + jr .fast + +.ensurewalk + ld a, [wPlayerState] + cp PLAYER_NORMAL + call nz, .StartWalking + jr .walk + .TrySurf: call .CheckSurfPerms ld [wWalkingIntoLand], a @@ -783,6 +803,22 @@ ENDM pop bc ret +.StartRunning: + ld a, PLAYER_RUN + ld [wPlayerState], a + push bc + farcall UpdatePlayerSprite + pop bc + ret + +.StartWalking: + ld a, PLAYER_NORMAL + ld [wPlayerState], a + push bc + farcall UpdatePlayerSprite + pop bc + ret + CheckStandingOnIce:: ld a, [wPlayerTurningDirection] cp 0 diff --git a/gfx/footprints.asm b/gfx/footprints.asm index 73d4354..4d5e66d 100644 --- a/gfx/footprints.asm +++ b/gfx/footprints.asm @@ -146,6 +146,7 @@ INCBIN "gfx/footprints/omastar.1bpp" INCBIN "gfx/footprints/kabuto.1bpp" INCBIN "gfx/footprints/kabutops.1bpp" INCBIN "gfx/footprints/aerodactyl.1bpp" +INCBIN "gfx/footprints/munchlax.1bpp" INCBIN "gfx/footprints/snorlax.1bpp" INCBIN "gfx/footprints/articuno.1bpp" INCBIN "gfx/footprints/zapdos.1bpp" @@ -263,4 +264,4 @@ INCBIN "gfx/footprints/254.1bpp" INCBIN "gfx/footprints/255.1bpp" INCBIN "gfx/footprints/256.1bpp" - assert_table_length $104 + assert_table_length $105 ; don't forget to update this diff --git a/gfx/footprints/munchlax.png b/gfx/footprints/munchlax.png new file mode 100644 index 0000000..a382d91 Binary files /dev/null and b/gfx/footprints/munchlax.png differ diff --git a/gfx/pics.asm b/gfx/pics.asm index 57f8edb..32ef690 100644 --- a/gfx/pics.asm +++ b/gfx/pics.asm @@ -723,6 +723,8 @@ WalkingWakeFrontpic: INCBIN "gfx/pokemon/walking_wake/front.animated.2bpp.lz" WalkingWakeBackpic: INCBIN "gfx/pokemon/walking_wake/back.2bpp.lz" ShiShiFrontpic: INCBIN "gfx/pokemon/shi_shi/front.animated.2bpp.lz" ShiShiBackpic: INCBIN "gfx/pokemon/shi_shi/back.2bpp.lz" +MunchlaxFrontpic: INCBIN "gfx/pokemon/munchlax/front.animated.2bpp.lz" +MunchlaxBackpic: INCBIN "gfx/pokemon/munchlax/back.2bpp.lz" INCBIN "gfx/pokemon/poliwag/back.2bpp.lz" INCBIN "gfx/pokemon/squirtle/back.2bpp.lz" INCBIN "gfx/pokemon/shuckle/back.2bpp.lz" diff --git a/gfx/pokemon/anim_pointers.asm b/gfx/pokemon/anim_pointers.asm index 3e39ac0..7ea2e69 100644 --- a/gfx/pokemon/anim_pointers.asm +++ b/gfx/pokemon/anim_pointers.asm @@ -145,6 +145,7 @@ AnimationPointers: dw KabutoAnimation dw KabutopsAnimation dw AerodactylAnimation + dw MunchlaxAnimation dw SnorlaxAnimation dw ArticunoAnimation dw ZapdosAnimation diff --git a/gfx/pokemon/anims.asm b/gfx/pokemon/anims.asm index f6807f5..8b99329 100644 --- a/gfx/pokemon/anims.asm +++ b/gfx/pokemon/anims.asm @@ -143,6 +143,7 @@ OmastarAnimation: INCLUDE "gfx/pokemon/omastar/anim.asm" KabutoAnimation: INCLUDE "gfx/pokemon/kabuto/anim.asm" KabutopsAnimation: INCLUDE "gfx/pokemon/kabutops/anim.asm" AerodactylAnimation: INCLUDE "gfx/pokemon/aerodactyl/anim.asm" +MunchlaxAnimation: INCLUDE "gfx/pokemon/munchlax/anim.asm" SnorlaxAnimation: INCLUDE "gfx/pokemon/snorlax/anim.asm" ArticunoAnimation: INCLUDE "gfx/pokemon/articuno/anim.asm" ZapdosAnimation: INCLUDE "gfx/pokemon/zapdos/anim.asm" diff --git a/gfx/pokemon/bitmask_pointers.asm b/gfx/pokemon/bitmask_pointers.asm index f7e77a9..8bb9833 100644 --- a/gfx/pokemon/bitmask_pointers.asm +++ b/gfx/pokemon/bitmask_pointers.asm @@ -145,6 +145,7 @@ BitmasksPointers: dw KabutoBitmasks dw KabutopsBitmasks dw AerodactylBitmasks + dw MunchlaxBitmasks dw SnorlaxBitmasks dw ArticunoBitmasks dw ZapdosBitmasks diff --git a/gfx/pokemon/bitmasks.asm b/gfx/pokemon/bitmasks.asm index 7b449cf..b4f7cb3 100644 --- a/gfx/pokemon/bitmasks.asm +++ b/gfx/pokemon/bitmasks.asm @@ -143,6 +143,7 @@ OmastarBitmasks: INCLUDE "gfx/pokemon/omastar/bitmask.asm" KabutoBitmasks: INCLUDE "gfx/pokemon/kabuto/bitmask.asm" KabutopsBitmasks: INCLUDE "gfx/pokemon/kabutops/bitmask.asm" AerodactylBitmasks: INCLUDE "gfx/pokemon/aerodactyl/bitmask.asm" +MunchlaxBitmasks: INCLUDE "gfx/pokemon/munchlax/bitmask.asm" SnorlaxBitmasks: INCLUDE "gfx/pokemon/snorlax/bitmask.asm" ArticunoBitmasks: INCLUDE "gfx/pokemon/articuno/bitmask.asm" ZapdosBitmasks: INCLUDE "gfx/pokemon/zapdos/bitmask.asm" diff --git a/gfx/pokemon/frame_pointers.asm b/gfx/pokemon/frame_pointers.asm index c78da85..deffd09 100644 --- a/gfx/pokemon/frame_pointers.asm +++ b/gfx/pokemon/frame_pointers.asm @@ -145,6 +145,7 @@ FramesPointers: dba KabutoFrames dba KabutopsFrames dba AerodactylFrames + dba MunchlaxFrames dba SnorlaxFrames dba ArticunoFrames dba ZapdosFrames diff --git a/gfx/pokemon/idle_pointers.asm b/gfx/pokemon/idle_pointers.asm index f773c78..9ed50ed 100644 --- a/gfx/pokemon/idle_pointers.asm +++ b/gfx/pokemon/idle_pointers.asm @@ -145,6 +145,7 @@ AnimationIdlePointers: dw KabutoAnimationIdle dw KabutopsAnimationIdle dw AerodactylAnimationIdle + dw MunchlaxAnimationIdle dw SnorlaxAnimationIdle dw ArticunoAnimationIdle dw ZapdosAnimationIdle diff --git a/gfx/pokemon/idles.asm b/gfx/pokemon/idles.asm index 0e74eed..a192b14 100644 --- a/gfx/pokemon/idles.asm +++ b/gfx/pokemon/idles.asm @@ -143,6 +143,7 @@ OmastarAnimationIdle: INCLUDE "gfx/pokemon/omastar/anim_idle.asm" KabutoAnimationIdle: INCLUDE "gfx/pokemon/kabuto/anim_idle.asm" KabutopsAnimationIdle: INCLUDE "gfx/pokemon/kabutops/anim_idle.asm" AerodactylAnimationIdle: INCLUDE "gfx/pokemon/aerodactyl/anim_idle.asm" +MunchlaxAnimationIdle: INCLUDE "gfx/pokemon/munchlax/anim_idle.asm" SnorlaxAnimationIdle: INCLUDE "gfx/pokemon/snorlax/anim_idle.asm" ArticunoAnimationIdle: INCLUDE "gfx/pokemon/articuno/anim_idle.asm" ZapdosAnimationIdle: INCLUDE "gfx/pokemon/zapdos/anim_idle.asm" diff --git a/gfx/pokemon/kanto_frames.asm b/gfx/pokemon/kanto_frames.asm index e45958f..658de5c 100644 --- a/gfx/pokemon/kanto_frames.asm +++ b/gfx/pokemon/kanto_frames.asm @@ -145,6 +145,7 @@ OmastarFrames: INCLUDE "gfx/pokemon/omastar/frames.asm" KabutoFrames: INCLUDE "gfx/pokemon/kabuto/frames.asm" KabutopsFrames: INCLUDE "gfx/pokemon/kabutops/frames.asm" AerodactylFrames: INCLUDE "gfx/pokemon/aerodactyl/frames.asm" +MunchlaxFrames: INCLUDE "gfx/pokemon/munchlax/frames.asm" SnorlaxFrames: INCLUDE "gfx/pokemon/snorlax/frames.asm" ArticunoFrames: INCLUDE "gfx/pokemon/articuno/frames.asm" ZapdosFrames: INCLUDE "gfx/pokemon/zapdos/frames.asm" diff --git a/gfx/pokemon/munchlax/anim.asm b/gfx/pokemon/munchlax/anim.asm new file mode 100644 index 0000000..432fb07 --- /dev/null +++ b/gfx/pokemon/munchlax/anim.asm @@ -0,0 +1,10 @@ + frame 0, 08 + frame 1, 08 + frame 0, 08 + frame 2, 24 + frame 3, 08 + frame 4, 08 + frame 3, 08 + frame 3, 08 + frame 0, 16 + endanim \ No newline at end of file diff --git a/gfx/pokemon/munchlax/anim_idle.asm b/gfx/pokemon/munchlax/anim_idle.asm new file mode 100644 index 0000000..4abd94d --- /dev/null +++ b/gfx/pokemon/munchlax/anim_idle.asm @@ -0,0 +1,4 @@ + frame 1, 08 + frame 0, 08 + frame 1, 08 + endanim \ No newline at end of file diff --git a/gfx/pokemon/munchlax/back.png b/gfx/pokemon/munchlax/back.png new file mode 100644 index 0000000..0600d59 Binary files /dev/null and b/gfx/pokemon/munchlax/back.png differ diff --git a/gfx/pokemon/munchlax/front.png b/gfx/pokemon/munchlax/front.png new file mode 100644 index 0000000..51f3950 Binary files /dev/null and b/gfx/pokemon/munchlax/front.png differ diff --git a/gfx/pokemon/munchlax/shiny.pal b/gfx/pokemon/munchlax/shiny.pal new file mode 100644 index 0000000..5c88669 --- /dev/null +++ b/gfx/pokemon/munchlax/shiny.pal @@ -0,0 +1,2 @@ + RGB 22, 22, 12 + RGB 07, 15, 25 \ No newline at end of file diff --git a/gfx/sprites.asm b/gfx/sprites.asm index a61bbe4..265bad4 100644 --- a/gfx/sprites.asm +++ b/gfx/sprites.asm @@ -112,3 +112,6 @@ SECTION "Sprites 3", ROMX EnbySpriteGFX:: INCBIN "gfx/sprites/enby.2bpp" EnbyBikeSpriteGFX:: INCBIN "gfx/sprites/enby_bike.2bpp" +ChrisRunSpriteGFX:: INCBIN "gfx/sprites/chris_run.2bpp" +KrisRunSpriteGFX:: INCBIN "gfx/sprites/kris_run.2bpp" +TopazRunSpriteGFX:: INCBIN "gfx/sprites/topaz_run.2bpp" \ No newline at end of file diff --git a/gfx/sprites/chris_run.png b/gfx/sprites/chris_run.png new file mode 100644 index 0000000..7018ea9 Binary files /dev/null and b/gfx/sprites/chris_run.png differ diff --git a/gfx/sprites/kris_run.png b/gfx/sprites/kris_run.png new file mode 100644 index 0000000..14e2a09 Binary files /dev/null and b/gfx/sprites/kris_run.png differ diff --git a/gfx/sprites/topaz_run.png b/gfx/sprites/topaz_run.png new file mode 100644 index 0000000..c1d6cfd Binary files /dev/null and b/gfx/sprites/topaz_run.png differ diff --git a/maps/PlayersHouse2F.asm b/maps/PlayersHouse2F.asm index 1095ffb..cc68b66 100644 --- a/maps/PlayersHouse2F.asm +++ b/maps/PlayersHouse2F.asm @@ -125,12 +125,12 @@ DebugPokemon1Script: DebugPokemon2Script: opentext - getmonname STRING_BUFFER_3, WEEPINBELL + getmonname STRING_BUFFER_3, MUNCHLAX writetext ReceivedDebugPokemonText playsound SFX_CAUGHT_MON waitsfx promptbutton - givepoke WEEPINBELL, 35, POISON_STONE + givepoke MUNCHLAX, 35, POISON_STONE closetext end