“Pokemon Heart & Soul” is a Completed GBA Rom Hack made by Lil Dill. Explore Johto in Pokemon Heart & Soul on GBA, with modern features, QoL upgrades, and classic vibes!
Pokemon Heart & Soul Completed GBA Rom Hack
- Creator: Lil Dill
- Base ROM: Emerald
- Language: English
- Released on: August 26, 2025
- Latest Version: v1.2.1
- Last Updated On: December 01, 2025
- Status: Completed
Also Check Out: Pokemon Colors
Description
Pokemon 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!
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
- Greatly improved level curve
- 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
Developer’s Note:
Development for this project was primarily (95%) a solo-effort that consumed almost all of my free time for the last year. I am not a professional programmer or artist, but I did my best to make the game that I wanted to play. If you’d like to improve, expand upon, or make your own version of HnS, feel free to take advantage of the open source! Please direct any questions to the (Heart & Soul Discord). I hope you enjoy!
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, 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.
Future Plans
I plan to take a step back from this project once the initial wave of inevitable post-release bugs are fixed. Over the course of the playtest, the dev team has grown from 1 to 6, and an effort to port the whole project to pokeemerald expansion is underway.
Recommended Emulators
- For PC/Mac: mGBA
- For Android: pizzaboy, Lemuroid, Retroarch w/ mGBA core.
- For IOS: Delta, Retroarch w/ mGBA core, Ignited.
- For Linux Handheld Devices: Retroarch w/ mGBA core.
Changelog
Version 1.2.1
Bug Fixes:
- Rival name should no longer be reset if you save for the first time after naming him. If you were affected by this bug, you can now change your rival’s name at the TV in the name rater’s house in goldenrod.
- Updating will no longer revert your shiny colors setting to vanilla. If you were affected by this bug, you can now toggle the setting at the bookshelf in the name rater’s house in goldenrod.
- A variety of nuzlocke, randomizer, and mono type fixes
- Random items won’t begin until after receiving balls from Elm’s aide
- No EVs challenge will now end after Red
- Synchronize now works on fishing (removed a little known chain fishing mechanic)
- Text, grammer, spelling fixes
- Fixed partner battle text
- Fixed very rare Totodile of Terror bug that caused crashing on the first wild battle
- Fixed the reception gate door animation on the route 28 side
- Replaced some location music for parity with HGSS
- Rocket hideout statues should turn off after getting the HM from Lance
- Pond battle background fixed
- Violet city poliwag is no longer omnipotent
- Removed Togepi from starter pool on randomizer or mono type challenge to prevent softlocks
- Fixed secret swinub cutscene game crash in ice path
- Updated some trainer overworld sprites to match their battle pics
- Added wall clock to lake of rage house to prevent temporary softlock
- Synced time based evolution time ranges to the 1.2 time of day ranges
Version 1.2.0
Challenge Menu:
- Added Nuzlocke settings page
- Added Randomzier settings page
- Added Special Challenges page
- Added a Challenge Menu Viewer to the PC so that you can see your selected challenges after game start
- Updated much of the text for parity with Modern Emerald 3.2
Gameplay:
- Added the Battle Frontier from Emerald. This includes the improvements made in Modern Emerald. Access it from either port after returning the Machine Part in Kanto. You can also fly there on subsequent visits.
- Moved Battle Tower from Route 41 to Battle Frontier
- Added Trainer Hill and Battle Tents to Route 41
- Added Contest Hall to Viridian City
- Redesigned Whirl Islands to make Lugia’s home feel as special and unique as Ho-oh’s. This includes new encounters.
- Redesigned Mt. Moon cave for parity with FireRed
- Added Jirachi
- Added Kanto wild, trainer, and gym leader battle music from HGSS
- Name your rival (new saves only)
- Overworld pokemon are now more animated
- Added glow effects to many overworld objects, especially at night
- Standardized the Day/Night cycle. Day:6am-6pm Night:6pm-6am. Sunrise/Sunset:5-7am/pm. Overworld pokemon, wild encounters, and battle backgrounds, and new lighting should reflect these changes.
- Added a unique battle background palette for Sunrise/Sunset
- Added new original sprites for Gold and Kris in the overworld
- Added new battle front pic for Gold and Sage trainer
- Changed Saffron Dojo Raichu to a Pidgeot
- New sprites for Johto Badges
Options Menu:
- Added Gen 4 ‘Battle UI’ option
- Added Gen 1 ‘Recharge Move’ option
Bug Fixes:
- Many dialogue fixes
- Many tile/collision fixes
- Many overworld sprite fixes
- Type chart is now 1:1 with Gen 6+ type chart (Read the Docs)
- Losing at the league will now respawn you at the league
- Surfing pokémon now match their walking counterparts more closely
- Rewinding the clock will no longer trap you in the past
- Maxing out your clock will now result in rollover to 001:00 to prevent the 999:59 time freeze
- Rage candy bar sell price nerfed. Y’all could not keep quiet.
- Fixed an issue that prevented Raikou from respawning after league clears if he had been caught
- Vermilion city Suicune event fixes
- Sabrina now gives marsh badge, Janine gives soul badge (purely cosmetic fix)
- Starter Pokemon Follower now appears in Elm’s lab immediately after choosing
- A lot more that I don’t remember
Misc:
- Added Dennis
- Added headbutt encounters to route 13
- Updated Credits to reflect new devs, artists, and playtesters
Learnsets:
- Buffed the learnsets of over 100 pokemon to elevate under-performers and fill in some of the notorious gaps in the gen 3 learnests. See the github patchnotes for specifics.
Version 1.1.6 Hotfix update
- Fixed extremely rare Sprout Tower softlock (thank you Bullis!)
- Fixed an exploit that allowed you to skip the chosen box legendary kimono scene
- Special dratini from 100%ing the Elder’s quiz should always be shiny now
- Fixed seafoam islands nighttime encounters
Version 1.1.5
- Fixed Safari Zone Gate Fly flag (If you were between Olivine and SZG when updating, please enter and exit SZG from the south entrance, making sure to fully cross the bridge a few times. This will give you the fly flag for SZG.)
- Added flash to title screen version number
- Updated version number to 1.1.5
Game Related Stuff
Download Pokemon Heart & Soul
Previous versions
Screenshots




Credits
Lead Developer / Game Director
- Lil Dill
Developers
- TixoRebel
- InfiniteBacon42
- Exclsior
- Phantonomy
- DaniRainbow
Playtesters
- MearaTheDigger
- Kingofrocks
- Ferropexola
- Scarred-Healer13
- ShigyNinja
- Liquid Justice
- aktatertot
- Faintful
- piobrando
- Shortino
- Chronotakular
- NoVa x CerberuS
- Czarwardy
- TeggyDave
- HenryChess
- Inner Rhymes
- Astralaria
- GPie
- BillyNaing
- Penkachu
- Emma M
- Casper
- Marzi
- leob0505
- Sayu
- RavePossum
- Brick
- KinoKuma
- BlackBelt Jiraiya
Open Source Assets Used:
Engine & Codebase
– pokeemerald – pret
– Modern Emerald — Resetes12
– pokeemerald-expansion
Art — Sprites
– Crystal Dust — Sierraffinity
– AveonTrainer
– PurpleZaffre
– BatimaTheBat
Art — Tilesets
– Crystal Advance — Kertra
– Ekat99
– TheDeadHeroAlistair
– Johto Redrawn Team
Maps / Map References
– Crystal Advance — Kertra
– Fire Gold — blackfragrant
– SkidMarc25
Gameplay
– Crystal Legacy — TSP (TheSmithPlays)
Special Systems / Visuals
– Surfing Pokémon overworlds – slawter666, wally-217

wanted Gen 1 to 9 dex
Loving the game so far. But only problem is emulator compatibility myboy having issue
myboy is too old modern codes (rom development) are not suitable for myboy
Version 1.2.0 is out!! Please update!!