ROM Hack Pokémon Sacred Gold & Storm Silver

  • Thread starter Thread starter Drayano
  • Start date Start date
  • Views Views 5,613,913
  • Replies Replies 2,282
  • Likes Likes 61
I signed up here to report on how I solved the Safari Zone gate issues for my save plus the additional findings along the way. I did use AI in the process of solving my issue and the following content was authored by AI based on that work:

Sacred Gold — Safari Zone arc (R47/R48 + D47 Gate) flag regression: full save-repair recipe

I hit a save state where the entire Safari Zone Rocket arc had reverted — Routes 47 and 48 both had their grunts back, and the Safari Zone Gate (D47) was permanently blocked by the two door grunts — despite the arc being well past in my playthrough. The in-game Olivine flag-fixer NPC did not restore any of it. Tracing through the save with DSPRE Reloaded + a Node save-editor:

What got reset
  • Every "grunt defeated" visibility flag the arc's completion scripts set, across both the routes and the gate: 0x3FDF, 0x3FE0, 0x3FE3, 0x3FE4, 0x3FE5, 0x3FE6, 0x3FE8. All seven were cleared.
  • 0x3FE1 stayed set (it's set earlier in the arc), and 0x3FFF (the arc master) also stayed set — which is why scripted progression past the arc still worked, masking the regression.
  • 0x3FE7 is a transient flag set during R47 and cleared at the arc finale — its correct done-state is OFF, so don't restore it.

Where the flags map on D47 (header 174), Event File 168
  • Door-blocking grunts: Overworlds 15 and 16, both visibility flag 0x3FE0 (decimal 16352), trigger script 18 on contact. This is the flag specifically controlling the gate door — easy to overlook because it's separate from the route grunts' flags.
  • Post-arc ally NPCs (OW 17/18/19) hang off 0x3FDF, separate from the door pair.
  • The "Run script 22 when Var 24880 (0x6130) is 0" trigger on the same map is a red herring for this bug — 0x6130 is shared with the Saffron Rocket-grunt arc (Saffron's Script 22 writes 0x612E/F/130 as a contiguous trio), and in my case it was already 2 from Saffron. The door grunts persist purely on the flag, not the trigger.

Save-level workaround (if you're stuck)
  • Set 0x3FDF, 0x3FE0, 0x3FE3, 0x3FE4, 0x3FE5, 0x3FE6, 0x3FE8. Leave 0x3FE7 clear. Recompute the P1 general-block checksum: CRC16-CCITT-FALSE over [0x40000, 0x4F618), stored u16 LE at 0x4F626.
  • PKHeX can't reach the 0x3FE_ range flags in HGSS — it caps the flag spinner below that — so this needs a small Node or Python script, not the editor UI.
  • Restoring the whole 0x3FE_ region as a blanket fix (~57 flags) causes a black-screen crash on Safari-area load. The fix has to be targeted to the seven flags above.

What's actually wrong (best guess)
  • Some event during my playthrough cleared all seven of these flags as a group. I can't pinpoint the trigger — possibly a scripted reset elsewhere, possibly an emulator/save-sync issue on my end.
  • Whatever the cause, the in-game Olivine flag-fixer NPC's restore list does not cover this arc (it didn't repair any of the seven for me). Lowest-risk ROM-side patch would be to add this seven-flag set to the fixer's restore list, gated on 0x3FFF being set so it only re-applies after the arc was supposed to be complete.

Happy to share the Node save-editor / DSPRE .ev parser scripts I wrote if useful.
CC: @DeadSkullzJr @Drayano
 
Last edited by TwistedMaro,

Site & Scene News

Popular threads in this forum