Pokemon Origin HeartGold
Pokemon Origin HeartGold changelog
English patch history from RC1 to RC8: translation changes, crash fixes, evolution changes and known limitations for the v4.0.3 game.
Content reviewed
Current English patch: v1.0.0-rc8. These releases are based on Chinese v4.0.3. The original game has a separate development history; future 4.1 plans are not a released update.
Download the current patch. Older patches are not offered here.
1.0.0-rc8
Corrects difficulty behavior, story freezes, tutor lessons, evolution items, Petilil’s Hisuian evolution and several money checks. Some optional fixes remain disabled.
Official 1.0.0-rc8 release notes
Release changes and retained limitations
Historical notes from this release, including the translation team’s tools and tests. They do not describe tools or tests performed by this fansite. Early findings may have been refined later; use Known Issues for the selected version’s guidance.
Difficulty and training
- The Trainer-battle item setting is now ITEMS DEFAULT / ALL. DEFAULT follows the original Chinese rules, including Berries, Flutes, Potion, Super Potion, drinks, Heal Powder and Berry Juice. ALL adds twenty medicines. RC7’s LIMITED setting was stricter and is superseded.
- With SHARE OFF, a held Exp. Share still gives its holder the intended bench EXP and EVs. Other nonparticipants receive neither. CAP still applies.
- All three settings now apply in story battles you may lose without ending the story, such as Blue before Brock’s Gym. Losing still continues the story as before.
Story, battle and display fixes
- The Victory Road arch near the final-chapter stairs no longer freezes while characters finish walking. The translation team reports confirmation on melonDS and a DS Lite; other hardware and Delta remain untested.
- Weekday siblings’ ribbon scenes end normally. Cynthia’s Pallet Town scenes take the Snow Mail they check for and use her own busy reply; this does not establish that every romance branch is reachable.
- Player names are restored in many affected dialogue lines, including Clair’s photo offer, the Pallet Town photographer, Brock, gifts and greetings. This is not a claim that every possible line has been verified.
- Faint cries and falling sounds return on both sides. Damage-hit sounds return, with effectiveness-dependent volume; one-hit KOs and hits on substitutes remain silent.
- The Pallet Town photographer declines when the party has no healthy Pokemon. Losing to Giovanni at the Mt. Silver hot spring gives a normal whiteout.
- Scripted Double Battles started with fewer than two Pokemon become Singles. Forest of Time arrival and Marauder scenes only run during the Sammy chapter, avoiding the bug-hunt trigger conflict.
- Stationary Pokemon sprites are corrected. Route 21’s two Lairon send-in lines now name Lairon; a later Onix remark and cry remain original-game inconsistencies. Celadon’s Skitty child names Fluffy Tail. Bounce’s English description now matches its existing one-turn behavior.
Evolutions, teachers and prices
- Petilil levels up holding a Black Belt by day directly into Hisuian Lilligant.
- Ice Stone and Dragon Scale can be used from the Bag for their documented evolutions. Cracked Pot, Galarica Cuff/Wreath, both Apples and both Armors also gain USE, but remain unobtainable. Held-item evolutions otherwise keep their rules.
- The Blackthorn tutor teaches Play Rough; the Saffron Dojo teaches Volt Switch whether a move slot is empty or full. The Rock Tunnel Dusk Ball tutor now calls Pollen Puff by its name; his Signal Beam joke remains.
- Goldenrod’s ideal-Pokemon reading requires $10,000, the S.S. Anne Frustration TM requires $4,000, the raised Game Corner option gives 500 coins for $50,000, and the younger Haircut Brother accepts $300.
Still not fixed in the standard patch
The S.S. Anne softlock, trainer Ability corrections, Safari Zone closure and Route 3 Misty actor corrections remain switched off. For multi-item rewards, check the quantity in your Bag; do not rely on the reward-message change listed in the release notes. The original Pidgeot loan loss, Sprout Tower unchecked offerings, Misty love-letter branch and Deoxys loss behavior remain unchanged. Keep the Known Issues precautions.
Updating and verification limits
Apply RC8 to a fresh clean HeartGold USA source, back up your battery save and load that save rather than an older save state. The official release README confirms the difficulty options are included. Automated release checks and selected emulator/hardware cases do not establish a complete playthrough, general hardware/Delta support or multiplayer compatibility.
1.0.0-rc7
Introduces independent ITEMS, SHARE and CAP options; fixes Lugia’s entrance, zero-PP Struggle, targeting and several battle and story problems. RC8 later revises the ITEMS rules and held Exp. Share behavior.
Official 1.0.0-rc7 release notes
Release changes and retained limitations
Historical notes from this release, including the translation team’s tools and tests. They do not describe tools or tests performed by this fansite. Early findings may have been refined later; use Known Issues for the selected version’s guidance.
Optional difficulty settings
- A second Options page adds ITEMS LIMITED / ALL, SHARE ON / OFF, and CAP OFF / ON. These are historical RC7 labels: RC8 replaces LIMITED with DEFAULT and restores the original allowed-item rules.
- SHARE OFF stops benched EXP and EVs. RC8 later restores the held Exp. Share exception.
- CAP follows Gym progression and limits battle EXP. Already over-cap Pokemon remain usable, excess EXP is not banked, and Rare Candy and Day Care retain their behavior.
- Startup notices update the translation credits and release information.
Battle and story corrections
- Lugia’s arrival after Lawrence’s first Whirl Islands battle no longer crashes. This is separate from Lugia’s one-chance capture warning.
- Double Battle target selection and directional navigation improve, including keeping Cancel selected.
- Choosing FIGHT uses Struggle when every known move has zero PP.
- Losing to the Rock Tunnel corner child or Pokemon Tower Magcargo causes a normal blackout.
- Healing HP bars work correctly after switching; party status displays reflect new conditions and cures, including Heal Bell and Aromatherapy. Multi-hit knockouts wait for the HP bar to finish.
- Cute Charm applies infatuation. Battle-message side prefixes match the Pokemon named.
- Pryce checks actual weather-changing Abilities, rather than rejecting a fixed species list.
- Honey Gather collects Honey after battle again. Honey Gather and Pickup announce a reward only when it was added to the Bag.
Updating and limits
Use a clean HeartGold USA source and a backed-up battery save. This release included the optional difficulty settings, but some behaviors were subsequently corrected in RC8. Public native validation was incomplete; hardware and Delta were untested, and multiplayer was excluded. See the current Download instructions and Known Issues.
1.0.0-rc6
Adds the text-speed option, fixes several freezes and battle messages, restores evolution moves, and changes Boldore and Gurdurr to level-up evolutions. Real-console compatibility is not yet verified.
Complete translation-team release notes
Historical notes from this release, including the translation team’s tools and tests. They do not describe tools or tests performed by this fansite. Early findings may have been refined later; use Known Issues for the selected version’s guidance.
Tester release. Adds a text speed option and the anti-piracy fix for real hardware, and fixes freezes and battle bugs of the original hack that players reported. 3,985 strings in 478 text banks differ from rc5.
Added
- Options has a seventh row, TEXT SPEED: NORMAL or FAST. NORMAL is the hack's original text speed. FAST prints up to three letters per frame when the frame has room and is never slower than NORMAL. New games start on FAST; existing saves read as NORMAL. Text speed is an optional addition to the Chinese hack, so it is an exception to the translation project’s usual policy of leaving the original game unchanged.
Changed
- Text prints faster in towns and routes at both settings. In maps where the hack's game loop runs at 30 fps, text used to print one letter every two frames; it now prints one per frame, as in the US game on FAST. Pauses counted in text printer turns, including auto-advance waits, are about half as long in those scenes.
- Pokégear calls wait for A or B on every page, also right after a battle. The hack's battle code leaves auto-advance on. Other text shown right after a battle may still advance by itself.
- Real DS, DSi and 3DS hardware support is being tested: six of the hack's anti-piracy checks now return the genuine-cartridge result. Nothing changes on emulators. Not yet tested on any real console or flashcart.
- Translation: every string with Chinese text (60,800) was reread against the Chinese, clause by clause, with its scene. 2,192 lines changed, mostly for meaning, dropped or added content and softened tone. Hack text slips that the game itself proves wrong are fixed with the user's approval in 51 lines, e.g. refusals for a full party that said "Bag" now say "party", and battle and system messages whose Chinese contradicts what the game does (Rest, Toxic, the Day-Care level, blackout). Yellow calls you "Big Bro" or "Big Sis", as in the Chinese; Earl speaks plainly.
- Line breaks in 762 strings are rebalanced; the wording is unchanged. The last page of 156 questions now leaves room for the prompt icons, and 612 strings no longer show a page with a single word on it.
Fixed
- Overworld freeze when certain objects come on screen: in the Team Rocket hideout under Mahogany Town (walking towards the camera ambush), on Five Island and on Seven Island. An object asked for an animation frame its texture doesn't have, and the game crashed (seen on melonDS and reported on iOS Delta; DeSmuME happened to keep going). Such an object now keeps the texture it already shows. A Bell Tower object can hit the same problem, but only in a state forced during testing. The untouched Chinese hack freezes in the same places, so this is a bug of the original hack; fixing it is a user-approved exception to "hack bugs are reported, not fixed".
- Black screen or freeze with Bulbasaur as the following Pokémon next to water, e.g. at the Viridian City pond (reported on iOS Delta). A freeze reported on Route 22 next to Misty (Delta, melonDS) is probably the same bug: the faulty lookup shows at that pond with Bulbasaur following. The game looked up the wrong graphics for Bulbasaur's reflection in the water, one Pokémon off the range of following Pokémon, and read an empty pointer; Bulbasaur now uses its own graphics like every other following Pokémon, and no other Pokémon changes. Checked on melonDS (the game hung before the fix and no longer does) and DeSmuME; not tested on hardware. The untouched Chinese hack does the same, so this is a bug of the original hack; fixing it is a user-approved exception to "hack bugs are reported, not fixed".
- Pallet Town, your house: after you take Poliwag along, the game now asks "Give Poliwag a nickname?" instead of naming Poliwhirl. The Chinese hack names Poliwhirl here too, although you receive a Poliwag; the English is corrected with the user's approval.
- Route 5 Underground Path, after the underground battles (playing as a girl): when the police officer arrives, Red no longer says "Officer! Thank goodness you got here in time!" twice in a row. The Chinese hack repeats the line too; the English drops the repeat with the user's approval.
- Chinese characters and the wrong Pokémon in battle text: after Nature Power the game said "The foe's (错误)Pikachu's accuracy rose drastically!" (seen on Route 24, naming your first party Pokémon even when it was benched), and every turn a Pokémon was infatuated by Attract it said "The foe's (错误)<your Pokémon> fell in love with!". Nature Power now says "Nature Power turned into Earthquake!" (or whichever move it calls), and the infatuation line names the infatuated Pokémon and the one it is in love with, on both sides, in wild, trainer and double battles. Both lines got the wrong data in the original hack. (错误) means "error": it is the hack's own marker for a message that names no valid Pokémon, written into the battle code rather than the message text; it now reads "(Error) " should any other message still reach it. Checked on DeSmuME and melonDS. The untouched Chinese hack does the same, so these are bugs of the original hack; fixing them is a user-approved exception to "hack bugs are reported, not fixed". Six battle lines (accuracy rose drastically, fell in love with) now break earlier so they still fit with the marker.
- Pokémon now learn their evolution moves when they evolve, as in modern games: Crobat gets Cross Poison, Charizard Air Slash, Gyarados Bite, and so on for every species the hack gives one (reported on Discord by several players). The hack's move lists include these moves, but the game only ever looked for moves of the Pokémon's current level, so they were skipped and only the Move Reminder could teach them. On evolution the game now offers the evolution moves first and then the moves of the new level, with the usual "wants to learn" question and the forget-a-move screen when the Pokémon already knows four moves. Each move is offered once, so a move you decline is not asked for again. This works for every kind of evolution (Rare Candy, level-up after a battle, stones, trades and the rest); ordinary level-ups and the Day Care are unchanged. The untouched Chinese hack has the same bug; fixing it is a user-approved exception to "hack bugs are reported, not fixed".
- Freeze in the Safari Zone: with two or more Pokémon that can battle, about one wild encounter in four turned into a broken Double Battle against one real Pokémon and an invisible, nameless second opponent, and the game froze (stuck at the command menu in DeSmuME, a crash in melonDS; reported on Discord and DraStic). Safari Zone encounters are now always single battles; random wild Double Battles elsewhere are unchanged, and the Bug-Catching Contest was never affected (you enter it with one Pokémon). The untouched Chinese hack does the same, so this is a bug of the original hack; fixing it is a user-approved exception to "hack bugs are reported, not fixed".
- Type-change messages in battle named the last move used instead of the new type, e.g. "Kecleon transformed into the Air Slash type!" after Color Change, "…into the Soak type!" after Soak, or the move's name after Protean (reported on Discord). The game never filled in the type's name, so the message showed whatever word was left over, usually the move from the message before. It now names the new type ("Kecleon transformed into the Flying type!") wherever a move or Ability turns a Pokémon into a single type (Color Change, Protean, Soak, Conversion, Camouflage, Magic Powder and the like). The same goes for "… type was added to …" after Trick-or-Treat and Forest's Curse, which named the move too. The type change itself was always right. Checked in DeSmuME with all of these, and with Soak on melonDS. It shares its code space with the "(Error)" fix above. The untouched Chinese hack does the same, so this is a bug of the original hack; fixing it is a user-approved exception to "hack bugs are reported, not fixed".
- Boldore and Gurdurr only evolved by trading, so Gigalith could not be obtained without a trade partner. Boldore now evolves into Gigalith at Lv 35 and Gurdurr into Conkeldurr at Lv 40, the levels the hack author's own species sheet gives; trading them no longer evolves them. Checked in DeSmuME and melonDS 1.1 (a Rare Candy at Lv 34 / Lv 39 evolves them; before the fix it did not). The untouched Chinese hack has the trade evolutions, so this is a data error of the original hack; fixing it is a user-approved exception to "hack bugs are reported, not fixed" for data errors the author's own documentation proves.
- Screens and labels: on the summary's IV/EV panel the IV numbers no longer run into "Defense" and "Sp. Atk". The PC box shows full Pokémon names. The Pokédex search and list bars no longer show garbled labels, and the details tab and its page header read DATA. In battle, the FIGHT label clears the lead Pokémon's icon, the INFO panel shows every Ability ("Abil.:") and the turns left, and the INFO descriptions fit their panel. Pokédex categories, Bag descriptions and Pokégear map lines fit their windows, and 56 battle messages are laid out so a long name and move still fit.
Added (tools)
- Patch organization: each code, data, text and graphics fix now has its own documentation and supporting records. A shared set of automated checks validates these changes, builds the game and compares file hashes.
- The translation team’s save editor and emulator tests now share the same save-data handling, with additional checks to keep their results consistent.
Known issues
- Downgrade: a save made with this version and then used in the Chinese hack or an older English patch may show an unusual MUSIC SPEED value, because text speed shares the old 4-bit options field. Set TEXT SPEED to NORMAL and save before downgrading.
- Tested with automated checks in DeSmuME; the fixes above that say so were also checked in melonDS 1.1. The text speed tests did not cover cutscenes, the intro and credits, radio and TV, mail and the naming screen. No full second-emulator pass and no hardware test.
1.0.0-rc5
Repairs blank descriptions, long dialogue and the Chain Logger graphic; improves translation, Easy Chat words and names. No code, script, map or Pokemon data changed from RC4.
The changelog is dated 4 October 2026; the release was published on .
Complete translation-team release notes
Historical notes from this release, including the translation team’s tools and tests. They do not describe tools or tests performed by this fansite. Early findings may have been refined later; use Known Issues for the selected version’s guidance.
Tester release. 233 strings in 62 banks and one graphic differ from rc4: no code, script, map or Pokémon data changed.
Fixed
- Blank item and move descriptions in the Bag, shops and the battle Bag: 17 English descriptions (Scope Lens, Sticky Barb, Lucky Egg, Soothe Bell, Focus Band, Shed Shell…) were longer than the 114-character buffer those screens copy into, so the game left the box empty. They are shortened to fit; a new check (
description-length checks) measures every description against the buffer read from the game's own code. - Three long dialogues were longer than the 1,024-character buffer for field messages, so the game skipped them and could show missing or old text: the League briefing that sends you to the Bell Tower, Whirl Islands, Dark Cave and Lake of Rage, the Lightning Whip lecture and the Marcel and Sunflora story. Each one was retranslated from the Chinese with as few changes as possible to fit.
- Chain Logger (link-capture) bar: the English graphic used tiles the screen never loads, so it drew garbage. It now stays within the loaded tiles, as the Chinese does (F002).
- Translation fixes from a review of the QA warnings against the Chinese (user-approved): the Plate inscription about a third Pokémon; the movers' Machop → Machoke option; four TM descriptions in the Battle Points prize list (Shadow Ball, Bulk Up, Calm Mind…) and the Air Cutter tutor now give the stat stages and critical-hit stage the Chinese gives; Curse now says "non-Ghost types"; the Route 29 comparison, the Relay Run's three Pokémon, the three circles, the Pokéathlon jump with three Pokémon; the Trainer House rules (one at a time, Pokémon under Lv. 50 unchanged); the Azalea Town TV top 3 (Sea Hare Well, Kurt the Poké Ball maker); the Goldenrod sign now says Poké Mart, as the Chinese does; the tackle-record announcements address you; the Cerulean Gym clue; the bicycle commercial; the Battle Hall line now says Single Battle, as the Chinese does.
- Easy Chat: 11 words that shared their English with another word (three "I"s, "YOU", "WOW", "OK"…) are now distinct, so passwords and the word picker are unambiguous. New words: THIS GUY, THIS OLD MAN, YOURS TRULY, YOU THERE, LAD, OOOH, UH-HUH, HOWDY, I WON'T, COME ON IN, PERFECTION.
- Trainer names: Gus → Grady (no longer clashes with the other Gus) and Nick → Nate (matches his dialogue).
- The Mt. Moon couple's song is replaced with hum lines (under the translation team’s song policy). A line about the player is gender-neutral, and the Route 11 grass-cutter is no longer called a boy. The Quagsire thief's menu option now names Quagsire's Poké Ball. Smaller fixes: a certificate's line breaks, MooMoo Farm, the debug slot labels.
- 50 Japanese leftover messages (Contest judging, dance and reception text; four Pokéwalker messages) were blank in English, as in US HeartGold. Blanking dropped the hack's control codes, including two YES/NO prompts, which could break a scene if one were ever shown. They are now translated from the Japanese with every code kept. Pryce's double-size shout in the Mahogany Town hostage scene is one line on one page again, as in the Chinese.
Changed
- Anime and manga quotes now use the canon English wording, checked against Bulbapedia. Team Rocket's motto, Cassidy & Butch's motto and their parodies use the original-series English dub lines ("Prepare for trouble!" … "Meowth! That's right!"); Team Rocket's defeat line is "Looks like Team Rocket's blasting off again!"; Misty is a "Water Pokémon Master"; Crystal's Smoochum is Chumee (VIZ); Goh's catch line follows the dub.
Added (tools)
- the translation team’s internal notes: one release gate with an auditable JSON report. It runs the tool and docs tests, translation QA, the build-artifact check, the description-buffer check, the static text checks (binary structure, change boundaries, control codes and buffer sizes for every message), the native text-loading sweep, and the emulator scenarios.
- Emulator scenarios (bag, full bag, Town Map, mart, party, summary, move order, card, battle…) that play the same save on the Chinese ROM and our build. They check the heaps, allocations, rejected text copies, the party and move state, and that text appears in selected screen regions.
translation-warning review(reconciles QA warnings against the reviewed ledgers) and a local review site for proposed fixes.
Documentation
player documentationregenerated with fixes from a review against the scripts and the Chinese sources: species sources (771 of 1,025 national-dex species), items, trainers, encounters, trades and tutors. Evolutions the hack's code never checks are marked as not possible.
Known issues in the original hack, new since the rc4 notes (reported, not fixed)
61 new findings, all in the translation team’s internal notes and the register. Highlights:
- Evolution methods the code never checks: Nosepass and Eevee by location, Pancham, Galarian Farfetch'd and Yamask, Gimmighoul, Kubfu, White-Striped Basculin, Pawmo, Rellor and Finizen can't evolve that way.
- After Protean or Soak, the type-change message names the move instead of the type. The battle code is the hack's own.
- Radio quiz: pressing B on a question counts as a right answer. Buena shows the lottery line after a right answer but gives no prize. Uxie's quiz accepts 14 for question 4.
- Morty's optional 6-on-6 team has three Lv. 1 Pokémon. Yellow's Singles option runs a Double Battle, and Lex's Doubles option runs a Single Battle. Agatha's and Lance's rematches show Koga's and Lorin's names.
- Missables and shared flags: the Seafoam post-game Rocket scene removes the Articuno you could still catch before the Hall of Fame (TM14); the Unown Report never progresses; the Route 17 Shiny Stone can't be obtained; several quests share one flag or variable.
- The Game Corner charges 50,000 for 50 coins. Lantern riddles: a wrong answer at riddle 4 or 5 repeats riddles 2–5. The stats-page hint says L/R, but only L opens the IV/EV panel.
Known issues (ours)
- The battle emulator scenarios (
battle,battle_switch) can't yet confirm every battle checkpoint; their memory and text checks pass.
Verification
Release gate (release checks, all checks) on the rc5 build: 453 tool tests and 25 docs tests pass; translation QA 0 errors; 16 of 18 emulator scenarios pass and the 2 battle scenarios are incomplete, with 0 memory or text findings in any; the build artifact, description buffers (0 overflows) and native text loading (76,862 entries) pass; the static text check finds 0 control-code failures in 76,862 strings (it reports "incomplete" because it can't prove a maximum length for every runtime variable). The ROM differs from rc4 only in the message archive and the link-capture graphic. All 233 changed strings were reread against the Chinese (or the Japanese, for the leftovers).
1.0.0-rc4
Fixes crashes in the Pokemon summary and after double-size shouts, including scenes involving Misty and Gyarados. Changes how English messages are loaded to avoid overflowing screen memory.
Complete translation-team release notes
Historical notes from this release, including the translation team’s tools and tests. They do not describe tools or tests performed by this fansite. Early findings may have been refined later; use Known Issues for the selected version’s guidance.
Fixed
- Crash when switching Pokémon on the summary screen's skills page, and a bag that was 108 bytes from the same crash. The English text banks are up to 3× the size of the Chinese ones, and screens that loaded whole banks into their fixed memory ran out. Text is now always read line by line (code patch
msgload-all, ), so no screen loads a whole bank any more. See the translation team’s internal notes. - Crash after double-size shouts (e.g. Misty and Gyarados on Route 3, Mt. Moon, Vermilion): 27 lines broke a line inside double-size text, which is drawn below the text box and corrupts memory. Each shout is now one line per page, as in the Chinese. QA counts double-size lines as two lines.
Added
- the translation team’s internal notes: lists every whole-bank text load in the code, and plays menu scenarios on the Chinese ROM and our build in DeSmuME to compare how much memory each screen has left, and checks the game's heaps for corruption (run before every release).
1.0.0-rc3
Corrects names, misleading instructions, signposts and line breaks. Adds game reference documentation and records known issues in the original hack.
Complete translation-team release notes
Historical notes from this release, including the translation team’s tools and tests. They do not describe tools or tests performed by this fansite. Early findings may have been refined later; use Known Issues for the selected version’s guidance.
Tester release.
Fixed
- Applied 390 line fixes (614 strings) from an external review. Most were official US lines kept although the hack had changed the Chinese. Highlights: the Lake of Rage Speed quiz now names Blaziken/Flaaffy, as in the game, so the answer matches; wrong species, move and item names (Muk, Aqua Jet, Ariados, Adrenaline Orb…); remaining softened swearing restored; reversed or misleading instructions; inches → centimetres in fishing records.
- Renames to official names: A.J., Lara, Suzie, Bebe, Casey, and Kimono Girl Sakura (吔 renders as 樱). 精英训练家 is Ace Trainer everywhere.
- Town and route signposts with a map graphic now fit their 160 px box (62 signs).
- 85 lines where "Pokémon Center/League", Mt./Prof. or Lv. were split from the next word are rewrapped. Bare "Nidoran" now carries ♀/♂ as the Chinese does. 27 inconsistent renderings of identical Chinese are unified.
- Greetings follow the hack's Chinese ("Hello!"). A player-pronoun line is gender-neutral.
Added
- QA checks: split honorifics and abbreviations (error), species and move names not in the glossary (error), mid-sentence page breaks (warning),
translation consistency checks(identical Chinese, different English), anddecision-register checks(register references).
Documentation (Phase B)
- Player documentation generated from the hack ROM's own data: Pokémon, moves, wild encounters, items, trainers, trades, tutors and the Move Reminder (
player documentation, regenerate with the translation team’s internal notes). - A row-by-row cross-check of the ROM against the hack team's spreadsheets (English versions of the sheets are kept local, not published) against the ROM (the translation team’s internal notes) and a cross-reference of the docs against the scripts and dialogue (the translation team’s internal notes).
Known issues in the original hack found by Phase B (reported, not fixed)
- The Rock Tunnel move tutor promises Signal Beam but teaches Pollen Puff.
- The Saffron Dojo tutor probably teaches Charge instead of Volt Switch to a Pokémon with fewer than four moves (verify in game).
- TM46 Thief has no source in the game, and 255 national-dex species from Gen 5 on can't be obtained.
1.0.0-rc2
Fixes long Trainer names in battle and the Rocket HQ PC-puzzle hint. Records the translation team’s early script and integrity review, along with original-game issues known at that time.
Complete translation-team release notes
Historical notes from this release, including the translation team’s tools and tests. They do not describe tools or tests performed by this fansite. Early findings may have been refined later; use Known Issues for the selected version’s guidance.
Fixed
- Trainer names longer than 7 characters (58 names, e.g. Giovanni, Lt. Surge, Prof. Oak) showed garbage in battle. They are now stored compressed, as in the US ROM, which fits up to 10 characters; the Frontier Brain VS-screen names stay plain. QA now enforces both limits.
- The Rocket HQ PC-puzzle hint now says ‘What it stands on’, matching the Chinese 立身之处 (the answer is the Pokémon's leg counts, 1-4-2-4-6).
Known issues in the original hack (reported, not fixed; see the translation team’s internal notes)
- The seven weekday siblings (Monica…Sunny) probably freeze the game when handing over their ribbon, once all seven have been met.
- Two story flags are written past the flag array into save data, and one may mark Weezing as caught in the Pokédex.
- The Blackthorn move tutor promises Play Rough but teaches Flail.
- Legendary encounters come back after every Hall of Fame even if already caught. A few NPC lines never appear.
Verified (Phase A)
- Softlock audit: all 966 event-script files decoded; no dead end found on the main story path, and every menu that allows B releases the player.
- Only text, fonts, the listed graphics and the documented code patches differ from the Chinese hack. No event script, map, trainer or encounter data changed.
- In-game trade names, gift nicknames, passwords (all menu- or index-based), quiz answer order, and the naming-screen buffers all work with the English text. See the translation team’s internal notes.
1.0.0-rc1
The first complete English release candidate: story and system text, translated graphics and restored English naming limits. Some checks were automated; in-game verification was still incomplete.
Complete translation-team release notes
Historical notes from this release, including the translation team’s tools and tests. They do not describe tools or tests performed by this fansite. Early findings may have been refined later; use Known Issues for the selected version’s guidance.
First complete English release candidate. The final 1.0.0 follows after the script/quest integrity audit (see Known issues).
Text
- Translated all Chinese text in the game's two message archives (
a/0/2/7: 817 banks;battle_string.narc: 4 banks), 67,078 translatable strings (100%). - Story: the whole Kanto half (Pallet Town → Indigo Plateau → Mt. Silver), the Alto Mare island chain, and the whole Johto half (New Bark → Sinjoh Ruins / Reversal Cave), including every partner, gender and choice branch.
- Systems: menus, battle messages (vanilla plus the hack's own), trainer names and classes, locations, Pokédex categories and all 1,440 Pokédex entries, and the move, item, ability and berry descriptions.
- Side content: trainer battle text, walking-Pokémon reactions, phone calls, radio, TV, Battle Frontier (facilities, Brains, trainer speeches), Pokéathlon, Easy Chat, mail, minigames and link/Wi-Fi screens, plus unused Diamond/Pearl/Platinum/SoulSilver leftovers.
- Hardcoded text outside the archives (the outfit chooser in overlay 58) is translated.
- Official US HeartGold text is kept wherever the hack left a line unchanged (17,237 strings), with names modernised.
- u/Shake69's partial v3 English was used as translation memory (with permission), and every line was reviewed and most were rewritten.
Translation policy
- The English follows the hack's Chinese, not vanilla HeartGold. Tone is kept faithful: swearing, innuendo, dark and political content stay at full strength.
- Suspected bugs in the hack's own text are translated as written and listed in the translation team’s internal notes (236 findings, including one gameplay bug: the Blackthorn move tutor teaches Flail instead of the promised Play Rough). Plain character typos are translated as intended and still listed.
- Modern official names in mixed case (Bulbasaur, Poké Ball). Menu labels use the US all-caps style.
- Song lyrics are never translated. They're replaced with short description lines. Team Rocket's and Cassidy & Butch's mottos use the project's own wording.
- All 1,325 decisions live in the decision register (
the translation team’s decision records), with a review document (review document), a CSV and a change history.
Graphics
- English type icons for battle, the summary screen and the move relearner. The FAIRY icon comes from hg-engine.
- Status icons (PAR/FRZ/SLP/PSN/BRN) on the battle HP box, party and summary screens.
- Pokédex type badges, header and buttons; touch YES/NO buttons; naming screen labels; trainer card; Pokégear calendar; bag labels; weather banners; battle info panel (Ⓑ EXIT / ✚✚ SWAP).
- Japanese leftovers from the hack's Japanese base were restored to US art: WIN/LOSE/DRAW, CANCEL, START, Pokéathlon instruction screens.
- Bilingual title screen: the original 起源心金 logo with an "Origin HeartGold" subtitle in the game's own font.
- Sources: the US ROM first, then hg-engine. A few labels (weather SNOW/DOWNPOUR/HARSH SUN/WINDS, some Pokédex and trainer-card letters) are composed from existing game glyphs because no English art exists; the naming tabs' QWE/abc letters and the Pokédex button "N" are drawn in the style of the existing labels. See the translation team’s internal notes.
- Restored the US glyphs for … “ ”, which the hack had widened to 12 px.
Gameplay changes (localisation only)
- Name lengths restored to US limits: 7 characters for trainers, 10 for Pokémon (the hack allows 5).
- Naming keyboard: the Chinese pinyin input is removed, and the keyboard opens on ABC. The tabs are ABC / abc / QWE / 1♪.
- No other behaviour changes. As in the original hack, there is no nickname prompt after catching a Pokémon (use the Name Rater).
Tooling
- QA now enforces the real menu window widths (touch menus and window menus), measured from the game's code.
text extraction and insertion tools: extract and insert the hack's text with its Chinese character table, round-tripping byte for byte.translation workspace: the translation workspace.translation checks: pixel-accurate width and line checks per box type, tag checks, glossary checks and line wrapping.decision register: the decision register.findings report: the hack-findings report.build tool: one reproducible build (text, glyphs, graphics, hardcoded strings, code patches, verification) that produces the xdelta patch.graphics toolsandcode patching tools: graphics and code patching, each checked against expected bytes.
Known issues
- Some lines are checked only by tooling, not in game. the translation team’s internal notes lists 68 things to verify in melonDS.
- Not yet done (planned before 1.0.0): an audit of the event scripts for softlocks, and checks that trades, gifts, passwords and quests still work with the English text; plus Pokémon Legacy-style documentation generated from the ROM data and cross-checked against the author's spreadsheets.
- Move descriptions that disagree with the moves' real data are kept as the hack wrote them and listed in the translation team’s internal notes.
- Foreign-language Pokédex text (FR/DE/IT/ES) that the game carries for traded Pokémon is left as is.
Credits
Original hack: 雁南飞TB (Yannanfei TB). v4: Alex (hg-engine). Chinese patches: u/riap0526. v3 English: u/Shake69. Graphics: hg-engine contributors. Character table: Xzonn. See project overview and the translation team’s internal notes.