• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Please note that users with less than 6 posts will have their threads/posts go to the approval queue if it has links or messages. This counts edits made to threads/posts after they were already approved and is intentional anti-spam behavior that is unfortunately necessary. Once you reach 6 posts, this will no longer occur.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Yellow hack: Pokemon Yellow: Fort Knox Edition

  • 1
    Posts
    166
    Days
    • Seen Jan 14, 2024
    I've completed my first pass at a romhack of Pokemon Yellow trying to take a novel approach at vanilla bugfixes. This is Pokemon Yellow: Fort Knox Edition.

    Patch file available here:
    Original ROM: CRC32 7d527d62
    With Fort Knox Edition Patch: CRC32 da1d3dd0

    The goal of Fort Knox edition is to patch out known exploits, bugs, oversights, etc, with real infosec level fixes, primarily starting with ones that affect the speedrun route as I come from a speedrunning background administrating the Gen 1-3 speedrunning discord. Many of the changes are sourced from previous wikis made by pret which have gone defunct and from research by the Pokemon Speedrunning community. To note some of the more important changes:
    • A flag is added during save and quit to indicate if the user has turned off the console while saving, and if so prevent the save from being loaded.
    • The checksum to evaluate whether a save has become corrupted through sources like battery depletion is made more useful
    • Trainer fly is fixed
    • Badge boost reapplication is fixed, so you can't use X items to boost your other stats simultaneously and can't gain attack from getting string shot-ed on route 3
    • The order in which you obtain badge boosts is fixed to match the in game text and the gen 3 remake
    • The lavender tower poke doll sequence break is patched by marking the battle as a loss instead of a win
    • Two strategies are implemented in tandem to make RNG manipulation very difficult:
      • The RNG algorithm is replaced with a PRNG with known statistically validated randomness properties. This prevents issues like those recently discovered with catch rates and "DSUM" manipulation where the encounter slots act as a predetermined cycle which you can use to only walk in grass while specific pokemon are possible to encounter. These problems were caused by the original RNG algorithm having correlational effects where the value of one random number call is closely related to the value of the previous call.
      • The RNG Algorithm's seed state is saved along with the rest of game data, making it impossible to reset the game back to a known state to then perform an exact sequence of inputs to generate encounters with exact species and stats. Combined with the previous change this makes obtaining a Nidoran for a speedrun effectively require searching for one in the grass and with no guarantee of its stats.
    • Moves being 1/256 less likely to hit than intended including 100% moves
    • High critical hit rate moves and dire hit are made a flat 4x buff each instead of 8x and 1/4th
    • The Pikawalk buffer overflow is checked and prevented where having Pikachu fall asleep to Jigglypuff in the Pewter Center could be used to overflow the follow direction buffer and corrupt data.
    • Surge cans are made to consistently have a 2nd switch next to the first switch, which they tried to fix from Red but failed to
    • Lesser known bugs I've found personally while speedrunning including Fast Options and the Pikachu cutscene battle animation severity bug are patched
      • Fast options allows you to change all the menu options to the left or to the right if you press the direction the same frame on which you press A to open options.
      • The developers forgot that you don't have any Pokemon yet while adding the Pikachu cutscene and thus forgot that battles have an animation which tries to indicate the intensity or difficulty of the battle. This leads to the animation somehow using temp data from when you set your rival name in its determination of what your Pokemon's level is against the wild Pokemon's level. The hack avoids this undefined behavior by always making the transition the more intense type if you don't have any Pokemon in your party.
    • Getting Sand Attacked while Thrashing/Rage/Petal Dance doesn't repeatedly reduce your accuracy on successive turns
    There are several other known glitches that don't affect the speedrun route that have yet to be patched, and there's a known issue with Substitute I uncovered during test speedruns on the hack which you can watch here:

    If you're interested in helping contribute, pull requests are welcome on the project. I'm implementing the bugfixes as a compiler flag, so in the GitHub repo you can clearly see the changes required to fix a bug separated out from the original code.
     
    Last edited:
    Back
    Top