Skip to content

Releases: ScoopDunk/ShinyGold

ShinyGold PureGold

Choose a tag to compare

@ScoopDunk ScoopDunk released this 17 Oct 01:05

ShinyGold: Pure Gold Edition

ShinyGold (Faithfully Fixed, Beta 5) rebuilt from source on the pret/pokefirered decompilation. The hack's custom content is removed, the Pokémon Gold/Silver content it replaced is restored, and a long list of bugs is fixed. ShinyGold's Johto and Kanto, graphics, music and 16 badges are kept, and the game plays as close to Gold/Silver as the FireRed engine allows.

ShinyGold's custom content has been removed and Gold/Silver content is restored. This is a 1:1 remake of Gold Version.

Patching

Apply ShinyGold_PureGold.bps to a clean Pokémon FireRed (USA) v1.0 ROM (CRC32 DD88761C), not to a ShinyGold ROM. Start a new game: ShinyGold saves load, but they continue on the wrong map because the map list changed. Saves from an earlier Pure Gold release carry over.

Bug fixes

Save data: saving after a link trade skipped the hack's extra save data, so turning the game off after a trade could lose story progress. The "save failed" screen overwrote that same data, the extra variable table had no bounds check, and loading could copy junk from damaged save sectors. The forced-shiny switch was stored inside a text buffer, so printing text could flip it. All fixed.

Crashes and map corruption: fixed three maps that pointed at corrupt layout data, a layout with a width of -1 that crashed the game, a layout partly overwritten by text, garbage border sizes, and tiles that were freed while still in use.

Broken map scripts: the hack's map tool wrote new script headers over old ones, leaving garbage "every frame" scripts that could jump into random data. They were in the Cherrygrove and Olivine Pokémon Centers, a New Bark Town building and Lance's room. The garbage is removed and the real scenes are kept.

Union Room: the hack had zeroed 7 bytes in the middle of the Union Room code, which could break trading there. FireRed's original code is back.

Ho-Oh: the Tin Tower roof script was damaged. Its "Gyaoo!" message was garbled, and Ho-Oh held Sacred Ash on only one of the two tiles that start the encounter. Ho-Oh is now as in Gold, at Lv 40 holding Sacred Ash.

Phone crash: a call with one of the phone contacts jumped outside the ROM once you had the seventh badge, which could crash the game. It now plays the intended message.

Roaming legendaries now keep all their IVs (the Gen 3 roamer IV bug).

FireRed leftovers that still fired:

  • The Viridian old-man catching tutorial, with a Radio-Visio gift, triggered when you stepped into a niche at the north edge of town.
  • A "HOLA!" test trigger was left in Cherrygrove, and a duplicate Guide Gent stood outside his house's walls.
  • Invisible FireRed trainers and objects stood at the Route 35 and Route 36 gates, Route 28, Route 46 and the Indigo Plateau. They included a hidden Fisher who gave a Master Ball and started a Lv 50 Gyarados battle. Six invisible swimmers were stacked on one Route 19 water tile.
  • NPCs mentioned Lorelei, Icefall Cave, Hoenn and trading with Ruby.

All of these are gone.

Trainer names (517 trainers): 136 placeholder names such as "24TRAINER/2" are now the real G/S phone-rematch trainers (Youngster Joey, Bug Catcher Wade and so on). "-EDIT-" and blank names get their G/S name, SILVER or the FireRed name. 352 names lose a stray "!" or padding spaces. The blank TEAM ROCKET and SCHOOL KID class names are filled in. Ecruteak Gym's Sage PING is now JEFFREY and Hiker RUSELL is now RUSSELL. The male Rocket in the Goldenrod warehouse no longer uses a female sprite.

Other fixes:

  • The S.S. Aqua no longer shows the Rocket Hideout map preview.
  • The Slowpoke Well Rocket's defeat text no longer starts halfway through a Lake of Rage line.
  • The rival's exit movement in Olivine no longer runs into text data.
  • Blacking out after healing in Cherrygrove or New Bark Town left you standing in the black outside the Pokémon Center. You now reappear in front of the nurse in every Pokémon Center, and Lavender Town respawns at its own Pokémon Center.
  • Sign typos fixed: VERMILION, DIGLETT'S, SEAFOAM ISLANDS.

Fixes from the full audit

A full audit (scripts, maps, game data and engine code, plus an emulator run that talked to every NPC and sign and stepped on every trigger) turned up the following. All of them were already in ShinyGold unless noted.

Pokémon Centers and Teleport: the Mahogany and Blackthorn Pokémon Centers set each other's heal point, so Teleport took you to the other town (from Blackthorn it could leave you stuck inside a rock in Mahogany), and visiting Mahogany's center unlocked Fly to Blackthorn before the Ice Path. The Cherrygrove and Olivine centers never set the heal point at all. Declining a heal at the Rock Tunnel and Lavender centers left the text box on screen and the other NPCs frozen. All fixed.

Cutscene leftovers: several scripts kept running garbage during their warp fade. The Slowpoke Well scene with Kurt executed random memory as script code, the Union Cave Lapras battle reset the phone and rematch timer, and a few scenes flashed stray text boxes. They now end cleanly.

Shiny lock: losing to the red Gyarados at the Lake of Rage left "forced shiny" mode on, so every Pokémon you met afterwards was shiny until you reset. Fixed.

Phone and rematches: one contact's call stopped halfway and froze nearby NPCs. The strongest rematch tier of every phone trainer depended on a junk flag that read palette memory, so it almost never happened; it now opens after you beat Blue. Picnicker Erin's top rematch used another trainer's team, and some rematch teams held a junk item that Thief could steal.

Items: many item balls shared their "picked up" flag with a different item or with a story event, so one made the other vanish. Most players lost the only Leftovers this way, and a Route 32 Great Ball could unlock the Game Corner without a Coin Case. Every item now has its own flag. The two items under Cianwood's rocks could be farmed forever, and a junk hidden item in the Ice Path gave 8 "????????". All fixed.

Pokémon data: the 13 Pokémon whose evolutions the hack changed (Poliwhirl, Kadabra, Machoke, Graveler, Slowpoke, Haunter, Onix, Seadra, Scyther, Eevee, Porygon, Feebas, Clamperl) had friendship 0 and other damaged data, so friendship evolutions like Politoed and Milotic took far longer. Restored.

Items that didn't work: the RAGECANDYBAR did nothing when used (it now heals 20 HP), and the EXPN CARD still worked as FireRed's Poké Flute, including unlimited use in battle.

Smaller fixes: Cut at one spot on Mt. Silver ran FireRed's Ruin Valley door code and left a blank tile; FireRed map-preview pictures showed on Johto places (Dark Cave showed the Power Plant, and so on); sound effects such as the phone ring stopped the map music; one Route 10 sign broke the battle music swap; the rival's portrait in some battles was the wrong rival; text lines that ran past the edge of the text box are rewrapped.

Ruins of Alph freeze: about one Unown encounter in five in the inner chamber froze the game (introduced by the Pure Gold edits). Fixed; Unown there come in every letter, and the chamber now has only Unown, as in Gold/Silver.

Kurt: the GS Ball and the Apricorn balls shared one step counter, so starting one restarted the other's wait. Each has its own now.

Route 2 now has Ledyba, Pidgeotto and Noctowl too. Gold/Silver have 15 species there and FireRed has 12 grass slots, so Beedrill, Ariados and Ledian are left out.

Brent's phone number: Pokémaniac Brent on Route 43 registered himself under Schoolboy Alan's phone slot, so taking his number could delete Alan's or make Brent call as Alan, and Brent's rematches never unlocked. Fixed.

Vanishing NPCs: dozens of invisible headbutt-tree events were stacked on single tiles in Ecruteak, Violet and Routes 33 and 34. Using one made the last person you talked to disappear until you left the area. Removed.

Unused content removed: an unreachable overgrown copy of New Bark Town is emptied, along with hundreds of objects, signs and triggers sealed inside walls or hidden for good, scenes that could never start, and the scripts, text, tilesets and layouts only they used. Map slots are kept, so Pure Gold saves still load where they were.

Old saves in changed places: continuing a save made inside a map whose people or objects changed in this release could make an NPC run the wrong script, or garbage that warped you into an empty room you couldn't leave. The game now notices and reloads the map around you. A save pointing at a map that no longer exists continues in New Bark Town instead of crashing.

Link battles: saving after a Cable Club battle didn't update the part of the save that holds the hack's extra variables, so it could fall out of step with the rest. Fixed.

Memory safety: leftover script bytes from ShinyGold that read past tables or wrote to random addresses are removed (they happened to be harmless in this build, but wouldn't stay that way). The forced-shiny switch can no longer turn an existing Pokémon into a Bad Egg.

Saving on flash carts: ShinyGold forced the Macronix flash chip id, so saving could fail on flash carts with a Sanyo chip. Flash detection is FireRed's again, so any chip FireRed supports works.

Always FireRed: the ROM identifies as FireRed (POKEMON FIRE, game code BPRE, FireRed version id), exactly like the original game, so other games, link partners, save tools and flash carts recognize it. The build refuses to make anything else.

Wild Pokémon

Every location that exists in Gold/Silver now uses that location's wild data (from pret/pokegold), with Gold and Silver merged so both versions' Pokémon can be caught in one game. Any other wild area only has Pokémon found in the wild in G/S. The game has no clock, so morning, day and night tables are blended by hours (6/8/10). Encounter rates are G/S's, converted to FireRed's scale. Headbutt and Rock Smash use the G/S data. Mahoga...

Read more

ShinyGold Original

Choose a tag to compare

@ScoopDunk ScoopDunk released this 17 Oct 01:03

ShinyGold (Original)

ShinyGold (Faithfully Fixed, Beta 5) rebuilt from source on the pret/pokefirered decompilation, with nothing changed: the same story, maps, Pokémon and bugs as the hack. It's here for reference and as a starting point for modding. To play, ShinyGold Fixed or ShinyGold: Pure Gold Edition is STRONGLY recommended.

Patching

Apply ShinyGold_Original.bps to a clean Pokémon FireRed (USA) v1.0 ROM (CRC32 DD88761C). The ROM is built from source, so it isn't byte-for-byte the same file as the original ShinyGold, but it's meant to play the same.

Known issues

All of ShinyGold's own bugs are still here. The ShinyGold Fixed release notes list them and what was done about each.

Credits: ShinyGold by its original authors. The engine is pret's pokefirered.

ShinyGold Fixed

Choose a tag to compare

@ScoopDunk ScoopDunk released this 17 Oct 01:00

ShinyGold Fixed

ShinyGold (Faithfully Fixed, Beta 5) rebuilt from source on the pret/pokefirered decompilation, with its bugs fixed. Everything ShinyGold has is kept as it is: the story, the custom characters and areas, the Battle Tower, the Trick House, the extra legendaries and gifts, and the hack's own wild Pokémon, Hoenn species included. For a version without the custom content, see ShinyGold: Pure Gold Edition.

Patching

Apply ShinyGold_Fixed.bps to a clean Pokémon FireRed (USA) v1.0 ROM (CRC32 DD88761C), not to a ShinyGold ROM. ShinyGold saves carry over: the map list and save format are unchanged. Items that got their own flag in this release may show up once more in an old save.

Bug fixes

Save data: saving after a link trade skipped the hack's extra save data, so turning the game off after a trade could lose story progress. The "save failed" screen overwrote that same data, the extra variable table had no bounds check, and loading could copy junk from damaged save sectors. The forced-shiny switch was stored inside a text buffer, so printing text could flip it. All fixed.

Crashes and map corruption: fixed three maps that pointed at corrupt layout data, a layout with a width of -1 that crashed the game, a layout partly overwritten by text, garbage border sizes, and tiles that were freed while still in use.

Broken map scripts: the hack's map tool wrote new script headers over old ones, leaving garbage "every frame" scripts that could jump into random data. They were in the Cherrygrove and Olivine Pokémon Centers, a New Bark Town building and Lance's room. The garbage is removed and the real scenes are kept.

Union Room: the hack had zeroed 7 bytes in the middle of the Union Room code, which could break trading there. FireRed's original code is back.

Phone crash: a call with one of the phone contacts jumped outside the ROM once you had the seventh badge, which could crash the game. It now plays the intended message.

Trick House: after you had collected every prize, talking to the Trick Master ran into an unfinished placeholder that could crash the game. He now gives his farewell and sends you out.

Blacking out: after healing in Cherrygrove or New Bark Town, a blackout left you standing in the black outside the Pokémon Center. You now reappear in front of the nurse in every Pokémon Center, and Lavender Town respawns at its own Pokémon Center instead of an unused FireRed one.

Ho-Oh: the Tin Tower roof script was damaged. Its "Gyaoo!" message was garbled, and Ho-Oh held Sacred Ash on only one of the two tiles that start the encounter. Now the message shows and Ho-Oh (Lv 45, as in ShinyGold) always holds Sacred Ash.

FireRed leftovers that still fired:

  • Six invisible FireRed swimmers stacked on one Route 19 water tile could start battles when you surfed past.
  • The Viridian old-man catching tutorial, with a Radio-Visio gift, triggered when you stepped into a niche at the north edge of town.
  • A "HOLA!" test trigger was left in Cherrygrove, and a duplicate Guide Gent stood outside his house's walls.
  • A Goldenrod boy talked about Lorelei and Icefall Cave, and the Olivine rival had FireRed's "sky at night" line.

All of these are gone.

Trainer names (517 trainers): 136 placeholder names such as "24TRAINER/2" are now the real G/S phone-rematch trainers (Youngster Joey, Bug Catcher Wade and so on). "-EDIT-" and blank names get their G/S name, SILVER or the FireRed name. 352 names lose a stray "!" or padding spaces. The blank TEAM ROCKET and SCHOOL KID class names are filled in. Ecruteak Gym's Sage PING is now JEFFREY and Hiker RUSELL is now RUSSELL. The male Rocket in the Goldenrod warehouse no longer uses a female sprite.

Other fixes:

  • The rival's exit movement in Olivine no longer runs into text data.
  • The Slowpoke Well Rocket's defeat text no longer starts halfway through a line about the Magikarp.
  • The S.S. Aqua no longer shows the Rocket Hideout map preview.
  • Typos fixed: VERMILION, DIGLETT'S, SEAFOAM ISLANDS.

Fixes from the full audit

A full audit (scripts, maps, game data and engine code, plus an emulator run that talked to every NPC and sign and stepped on every trigger) turned up the following. All of them were already in ShinyGold unless noted.

Pokémon Centers and Teleport: the Mahogany and Blackthorn Pokémon Centers set each other's heal point, so Teleport took you to the other town (from Blackthorn it could leave you stuck inside a rock in Mahogany), and visiting Mahogany's center unlocked Fly to Blackthorn before the Ice Path. The Cherrygrove and Olivine centers never set the heal point at all. Declining a heal at the Rock Tunnel and Lavender centers left the text box on screen and the other NPCs frozen. All fixed.

Cutscene leftovers: several scripts kept running garbage during their warp fade. The Slowpoke Well scene with Kurt executed random memory as script code, the Union Cave Lapras battle reset the phone and rematch timer, and a few scenes flashed stray text boxes. They now end cleanly.

Shiny lock: losing to the red Gyarados at the Lake of Rage left "forced shiny" mode on, so every Pokémon you met afterwards was shiny until you reset. Fixed.

Phone and rematches: one contact's call stopped halfway and froze nearby NPCs. The strongest rematch tier of every phone trainer depended on a junk flag that read palette memory, so it almost never happened; it now opens after you beat Blue. Picnicker Erin's top rematch used another trainer's team, and some rematch teams held a junk item that Thief could steal.

Items: many item balls shared their "picked up" flag with a different item or with a story event, so one made the other vanish. Most players lost the only Leftovers this way, and a Route 32 Great Ball could unlock the Game Corner without a Coin Case. Every item now has its own flag. The two items under Cianwood's rocks could be farmed forever, and a junk hidden item in the Ice Path gave 8 "????????". All fixed.

Pokémon data: the 13 Pokémon whose evolutions the hack changed (Poliwhirl, Kadabra, Machoke, Graveler, Slowpoke, Haunter, Onix, Seadra, Scyther, Eevee, Porygon, Feebas, Clamperl) had friendship 0 and other damaged data, so friendship evolutions like Politoed and Milotic took far longer. Restored.

Items that didn't work: the RAGECANDYBAR did nothing when used (it now heals 20 HP), and the EXPN CARD still worked as FireRed's Poke Flute, including unlimited use in battle.

Smaller fixes: Cut at one spot on Mt. Silver ran FireRed's Ruin Valley door code and left a blank tile; FireRed map-preview pictures showed on Johto places (Dark Cave showed the Power Plant, and so on); sound effects such as the phone ring stopped the map music; one Route 10 sign broke the battle music swap; the rival's portrait in some battles was the wrong rival; text lines that ran past the edge of the text box are rewrapped, and Rina's Route 25 victory line no longer runs into Dante's.

Unown: the Unown caves never had wild encounters (they were locked behind a FireRed flag that is never set), so wild Unown couldn't be caught. They now appear.

Fishing: the Super Rod in the Cerulean Gym pool and in Pallet Town's water hooked a "??????????" Lv 1 (an empty slot); Sweet Scent in one Ice Path room did the same. Fixed.

Route 43: talking to the boy before Ard's cutscene started FireRed's "Nya" double battle against SILVER's Lv 65–70 team. He now starts Ard's scene, and the tile that skipped the cutscene is covered.

Vermilion: the "lucky" gentleman paid out two prizes on one roll.

Shared trainers: Burglars Eddie and Duncan and a Rocket grunt in the Goldenrod Underground shared their battle flag with the Battle Tower burglar, a burglar on the sunken S.S. Aqua and a Silph Co. grunt, so beating one skipped the other. Each is a separate trainer now.

Brent's phone number: Pokemaniac Brent on Route 43 registered himself under Schoolboy Alan's phone slot, so taking his number could delete Alan's or make Brent call as Alan, and Brent's rematches never unlocked. Fixed.

Vanishing NPCs: dozens of invisible headbutt-tree events were stacked on single tiles in Ecruteak, Violet and Routes 33 and 34. Using one made the last person you talked to disappear until you left the area. Removed.

Carlos: his battle after Morty could be lost for good if you flew away from the gym door and came back along Route 37. Fixed.

Items: the Sea Cavern hidden Ultra Ball came back every time the Day-Care made an egg, and picking up the TwistedSpoon flipped the Route 12 fishing record sign. Both have their own flags now.

Region map: Route 26 ran FireRed's Birth Island scripts on every visit, which uncovered part of the third region map page. Removed.

Unused content removed: 78 maps nothing leads to (unfinished areas and FireRed leftovers) are emptied, along with hundreds of objects, signs and triggers sealed inside walls or hidden for good, scenes that could never start, and the scripts, text, tilesets and layouts only they used. Map slots are kept, so ShinyGold saves still load where they were.

Old saves in changed places: continuing a save made inside a map whose people or objects changed in this release could make an NPC run the wrong script, or garbage that warped you into an empty room you couldn't leave. The game now notices and reloads the map around you. A save pointing at a map that no longer exists continues in New Bark Town instead of crashing.

Link battles: saving after a Cable Club battle didn't update the part of the save that holds the hack's extra variables, so it could fall out of step with the rest. Fixed.

Memory safety: leftover script bytes from ShinyGold that read past tables or wrote to random addresses are removed (they happened to be harmless in this build, but wouldn't stay that way). The forced-shiny switch can no longer turn an existing Pokémon into a Bad Egg.

Saving on flash carts: ShinyGold forc...

Read more