• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • 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.

[Script] Whited Out FireRed

  • 3
    Posts
    5
    Years
    • Seen Jan 30, 2023
    Hey guys! New user here. Hopefully someone is able to help me out.

    I'm wanting to make a difficult FireRed ROMhack in which the idea of Pokemon Centers are completely reworked. I'd like the completely get rid of the ability to completely heal your team for free, but I'm planning on making potions and ethers more plentiful and easily purchaseable in the game, but if a Pokemon faints, it won't be able to be revived without an actual Revive (which I'll have scattered around the overworld). I should be able to achieve most of this quite easily, just by editting Pokecenter scripts with XSE. One thing that I'm not sure of, is if/how I can change what happens when the player "whites out". It will send the player back home, and fully heal the Pokemon, which doesn't appear to be an easily accessible script through AdvanceMap. I'm hoping to change it to where instead of healing all Pokemon in the party, it will just heal the first one in the party (I know it would cause issues having all of your Pokemon fainted). Does anyone know if this is possible, and if so, how I'd go about doing this? I imagine it would take some use of a hex editor. Any help would be appreciated!
     
    Interesting idea. Thankfully you don't have to use a hex editor to do this as it can be achieved through scripting. There are two scripts that activate after wiping out: your mother's script at 0x1A8DD8 and the Pokemon Centre script at 0x1A8D97. Since the party Pokemon locations are at a fixed point in the RAM and we know how they're structured, it is easy to do a bit of RAM editing to set their health to zero. Here's two scripts that will set all of your Pokemon minus your starter's health to zero when you white out:

    Here's for the Pokemon Centre:
    Spoiler:


    And your mum:
    Spoiler:


    To explain what's going on here; you're basically messing with your Pokemon's HP in the RAM. Those 'writebytetooffset' commands are overwriting your Pokemon's current health with zeroes. There are ten of these commands as each Pokemon's health takes up two bytes worth of space, accounting for Pokemon with more than 255 health. Since you're lengthening the healing scripts, they need to be repointed, which is taken care of with the little excerpts at the beginning of each script. Those static pointers at the beginning are where the scripts begin in the base ROM, but it a hassle to find and edit the pointers to those locations every single time, so I like to edit the healing scripts this way. This script should work regardless of whether you have one Pokemon or six.

    Good luck with your hack~
     
    Last edited:
    Sorry for the super late reply here. With the worldwide health crisis, my job situation became more important than this project. I very much appreciate the detailed and thorough response! It's a tremendous help, and not sure I would have landed on that solution without some help. Thank you!

    I do have a new issue that I hadn't thought of, however. In order to achieve the game-play environment that I'm looking for, I want to get rid of all "free" heals that don't use resources. Another way that a pokemon can get healed, is by depositing it into a PC, and then pulling it back into your party. This is something that I hadn't really thought of. Not sure if there's a way of fixing this, really, as I don't think the game is set up to remember the health/PP of all Pokemon in the PC (correct me if I'm wrong). And even if there was, this feature I think is more of a fail-safe to prevent the player from filling their party with all fainted Pokemon, which is understandable.

    I don't know that I can brainstorm a solution to that issue, and maybe there isn't one. Anyone else have anything?
     
    Back
    Top