Pokémon Heart & Soul brings the classic Johto Region and its iconic story to the world of modern GBA decomp hacking. Built on the Modern Emerald decomp, this project offers a fresh take on the GSC/HGSS experience, blending key aspects of the Gen 2 and Gen 4 games, while incorporating many modern QoL features, as well as some familiar Gen 3 mechanics.
Not only is Heart & Soul (HnS) a first-of-its-kind, fully completed, playtested, and largely faithful GSC remake / HGSS demake, it’s also completely open source, and is intended to be a base for a new generation of Johto rom hacks.
Features
- Generation 1-3 Pokémon, plus their later gen evolutions (excluding the Regis and Jirachi)
- Full Johto story and Kanto postgame from HGSS, including the Kimono Girls and Eusine
- Following Pokémon
- Overworld background Pokémon allow you to easily see the notable encounters on each route
- Day/Night System with variable encounters
- Dynamic overworld palettes
- HGSS Music
- Highly varied trainer teams and encounters, based on Crystal Legacy
- HMs do not need to be taught to a Pokémon in order for it to be used
- Apricons replaced with berries, Kurt will use them to make unique Pokéballs
- Timekeeping does not track days of the week, Everything is progression based
- 16 Gym leader rematches
- Two Safari Zones
- Unique surfing Pokémon sprites
- Customizable shiny rate
- Physical/special split is toggleable
- Fairy type is toggleable
- AutoRun and FastSurf are toggleable
- Quick run from wild battles using button combination
- Ball prompts for quick catching
- … and much more!
Setting Expectations
- Heart & Soul was designed as a traditional Pokémon experience, akin to the main-series games. It is not a difficulty hack, and does not have built-in features for non-traditional playstyles. Do not expect to see features like infinite rare candies, or built-in randomization or nuzlocking rules.
- Heart & Soul stands on the shoulders of giants. I am not an artist or a professional programmer, so much of the art and some of the code for this project was drawn from open source assets. I did my best to credit all sources below and in the game credits, but if you find any that I missed, please let me know in the Heart & Soul Discord.
- Heart & Soul has been rigorously playtested, (shoutout to the playtesters) but there still may be some small bugs. If you find any, please report them to the Heart & Soul Discord.
- There are a few GSC/HGSS features that were too complex or time consuming for me to implement in this project. See differences section below.
Differences from GSC/HGSS
- Radio is a standalone Key Item with limited functionality instead of a menu in the Pokégear
- Trainers will not offer their phone numbers, no way to rematch them
- Level curve is much improved
- Apricorns replaced with berries, berry ball catch boost is based on Type
- Strength boulder-in-hole puzzles replaced with Emerald Mach Bike puzzles
- No itemfinder and no hidden items
- Only 50 TMs (The ones from emerald)
- Swarms are replaced with a 5% Hoenn encounter on each route in Kanto
- Mom does not take your money
- Ruins of alph back room requirements are slightly altered
- No pokéathalon dome
- No trades in Kanto
Changelog
V2.0.5
Features
- Gym leader rematches, Elite four, and Red get new teams once the player has beaten SINJOH storyline
- Safari zone pokéblock feeders now attract pokemon with hidden abilities and perfect IVs in certain stats depending on which block is used. This is the only way in HnS to target IVs. More info below.
- Added an ingame map for the Sinjoh and Alola Isles regions that can be viewed from their respective pokemoncenters.
- Eggs are releasable
- Added small cutscenes to vermilion city and route 28 to point the player towards Sinjoh and Isles bonus content
- Bag pocket order now more closely resembles official pokemon games (items -> medicine -> balls -> TMs -> berries -> key items)
- Some Johto safari zone encounters have been swapped for ones with more interesting Hidden abilities (added ditto and eevee)
- Pokeblock feeder duration extended to 300 steps
- Pokeblock feeder range now encompasses the entire map
- Safari zone step limit doubled from 500 to 1000
- You now get access to more of the Johto safari zone earlier
- The pokeblock blend master won’t blend with you until after the elite four. He is too powerful
Bug Fixes
- Nuzlocke is disabled while in bug contest or safari zone
- Safari zone beldum catch rate fixed
- Non-safari-ball catch rates fixed in safari zone
- Fix safari zone quick run
- Changed the disclaimer when linking with another game (be careful, backup your save)
- Synchronize now applies to static encounters
- Mom respects your privacy and will not call if you have the match call setting turned off
- Battle factory doubles AI ‘stop hitting yourself’ fix
- Kurt’s slowpoke is no longer doing mitosis
- Red’s pikachu is now a “starter pikachu” from LGPE so it has buffed stats
- Mirror herb moved to the herb lady in goldenrod underground
- Added sign to new sinjoh hot springs cave to make the entrance more visible
- Bikers can turn right
- Randomizer abilities can only overwrite slots of existing abilities
- Can no longer withdraw fainted nuzlocke pokemon from pc
- Magikarp no longer thinks it’s a tentacruel
- Fix mt silver escape rope OOB
- A lot of music/sound effect adjustments
- L=A support for stat screen, move info
- You cannot soft reset in front of the daycare man to change the shininess of an egg. We added a compile-time configuration setting but did not turn it on. If you want to soft reset for eggs, compile the project yourself with the config turned on.
- Fix alt shiny aragonite surf sprite
- Fixed a blue screen in battle tent
- Fixed Sinjoh move tutor list
- Fixed some linking desyncs
- Fix starter appearance in credits
- No more ghost followers in cycling road
- X item use in battle fix
- Battle frontier OOB fix
- Battle frontier nature girl can differentiate between eggs and pokemon now
- Rob’s location fixed in pokegear
- Increase Steelix EV yield
- Elm can now differentiate between eggs and pokemon
- Haircut brothers give different friendship
- Bellchime trail door animation fix
- Battle tents BP earn is no longer silent
- Battle background earthquake animation fix
- Double battle invisibility fixed
- Mirror herb egg move transfer now works properly on pokemon with baby forms
- Fixed contest victory crash
- Fix link trainer card crash
- Learnset adjustments: too long, see github
V2.0.4
- Added gen1-3 vs gen1-9 randomizer setting. Defaults to Gen 1- 3; can be changed freely after starting the game at the PC challenge menu.
- EXP multiplier setting can be changed freely after starting the game at the PC challenge menu.
- Time of day ranges have been adjusted and consolidated: Night starts at 7pm (see docs)
- Gen1-9 Randomizer only: Gave new evolution methods to many Gen 5+ pokemon that were not evolvable in the previous version
- New Alt Shiny sprite for Dragonite, thanks Nettorizo
- Credits update
- Added back Kanto level caps (forgot to port from 1.2)
- Trainer rematch parties will now scale based on number of badges. Call frequency is unchanged. Basically, now you can reasonably farm rematches no matter what level you are.
- Added move deleter to Goldenrod
- Type effectiveness indicator will appear regardless of if you’ve seen the enemy pokemon
- When running mono-type challenge, nuzlocke encounters will not be used up if the species doesn’t have the correct type
- Mono-type challenge is now aware of a Pokémon’s evolutionary family and takes their types into consideration
- Mono-type run’s random starters will respond to the gen1-9 vs gen1-3 randomizer setting. Turn on random starters and toggle that setting for old behavior of Gen 1- 9 starters on mono-type run
- Static encounters now respond to static randomizer setting (forgot to port from 1.2)
- Unredacted bonus content from documentation
- Fixed broken rematch trainers: Gina, Irwin, Derek, Beverly
- Fixed blue screen in Sinjoh Lab
- Fixed bad exp splitting behavior when exp share is off, and pokemon are swapped in battle
- Fixed early Elm call
- Trainer card no longer looks inside pokemon eggs
- Fixed GS ball crash
- Randomized trainers now use moves specific to the pokemon they are using
- Pokedex search results and stat screen contest type fix
- Fixed random items setting
- Fixed mono dragon starter bug
- Text fixes
- Steelix OW sprite fix
- Kanto gym leader music fix
- Pokemon sent to box after fainting in nuzlocke will be translucent
- Killed bike hopping
- Goldenrod underground softlock fix
- Giveegg is now party limit-aware. Solo runs are no longer locked at Violet.
- Removed explosion from Regi’s movepool
- Added another pokeblock case obtain method to the safari zone gate
- Friendship indicator renders in front of pokemon sprite
- Collision fixes
- Galvantula no longer flies
- Mew now behaves correctly
- Fixed trainer hill trainer sprite mapping
- Ghost is special, Dark is physical without special split (forgot to port from 1.2)
- Fix battle tent crash
- Fix broken BP shop
- Fix BP exploit
- Elite four music fix
- First party pokemon with 4 HMs crash fix
- Berry submenu reorder
- Fixed honey safari bug
- Replace bottle cap in pickup pool since it had no use
- Fix mono-type roamer bug
- Random legendary pokemon don’t bypass nuzlocke encounter flag
- Exeggutor family: Confusion moved up; added Zen Headbutt later only
- Vileplume and Bellossom: Moonblast added
- Kabutops family: Leech Seed and Psycho Cut added
- Weavile family: Icicle Spear added
- Gliscor can fly
- Electivire: Added Volt Tackle
- Sunflora: Flamethrower TM access
- Politoed: Earth Power
- Electrode: Flash Cannon
- Tauros: Blaze Kick
- Noctowl: Hyper Voice
- Swinub family: Ice Ball
- Mamoswine: Icicle Spear
- Skarmory: Drill Peck
- Donphan: Rapid spin, play rough
- Miltank: Play Rough
V2.0.2
- Coin case 9999 freezing bug