• 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!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • 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] Getting stuck trying to hack FireRed to catch trainer Pokémon

  • 3
    Posts
    2
    Years
    • Seen May 2, 2023
    Hi everyone

    After spending two whole days on this platform trying to figure out how to get this done, I finally decided I better join and ask the question directly.
    Like many people before me I want to hack my FireRed v1.0 ROM to be able to capture trainer pokémon. I have found several resources on this and got stuck in a different way multiple times.

    https://www.pokecommunity.com/threads/357057
    For this one I need to edit the source code from what I can tell, I tried downloading the FireRed decomp but I cannot figure out where this specific piece of code needs to be replaced. Furthermore, the writer also says you must change some stuff about the pokeballs themselves and add an NPC which gives us a snatch item. Both of those things are not really explained and I have no idea how to perform them.

    https://www.pokecommunity.com/posts/8509596/
    https://www.pokecommunity.com/posts/8536920/
    This one seemed a lot less daunting. I used HexManiacAdvance to input the codes at the right places and found empty space using pksvUI to input the compiled hex codes in an empty spot. However, my ROM crashes when the pokédex opens after capturing a pokémon, so this was unsuccesfull.

    I have also tried using the old gameshark code but when I use a ball during a fight my pokemon's sprite gets replaced with a master ball and the game remains stuck.

    From what I've been reading online this does not seem to be a complicated hack to perform, but I am missing basically all experience to do much beyond what a written guide says. Those sometimes miss crucial steps which are probably obvious to more experiences users.

    So basically my question is as follows: could anyone tell me where in the firered decomp I need to change the script (I am able to make/compile the rom using WSL1 Ubuntu in windows btw) to add capturing trainer pokémon. Or any other method that is doable for a noob. (a psi hack would obviously be the easiest, but I understand that's a lot to ask of anyone).

    Edit: This post is probably similar to what I am looking for, but this one is for pokemon emerald.
    https://www.pokecommunity.com/threads/470908/
     
    Last edited:
    Hi everyone

    After spending two whole days on this platform trying to figure out how to get this done, I finally decided I better join and ask the question directly.
    Like many people before me I want to hack my FireRed v1.0 ROM to be able to capture trainer pokémon. I have found several resources on this and got stuck in a different way multiple times.

    https://www.pokecommunity.com/threads/357057
    For this one I need to edit the source code from what I can tell, I tried downloading the FireRed decomp but I cannot figure out where this specific piece of code needs to be replaced. Furthermore, the writer also says you must change some stuff about the pokeballs themselves and add an NPC which gives us a snatch item. Both of those things are not really explained and I have no idea how to perform them.

    https://www.pokecommunity.com/posts/8509596/
    https://www.pokecommunity.com/posts/8536920/
    This one seemed a lot less daunting. I used HexManiacAdvance to input the codes at the right places and found empty space using pksvUI to input the compiled hex codes in an empty spot. However, my ROM crashes when the pokédex opens after capturing a pokémon, so this was unsuccesfull.

    I have also tried using the old gameshark code but when I use a ball during a fight my pokemon's sprite gets replaced with a master ball and the game remains stuck.

    From what I've been reading online this does not seem to be a complicated hack to perform, but I am missing basically all experience to do much beyond what a written guide says. Those sometimes miss crucial steps which are probably obvious to more experiences users.

    So basically my question is as follows: could anyone tell me where in the firered decomp I need to change the script (I am able to make/compile the rom using WSL1 Ubuntu in windows btw) to add capturing trainer pokémon. Or any other method that is doable for a noob. (a psi hack would obviously be the easiest, but I understand that's a lot to ask of anyone).

    Edit: This post is probably similar to what I am looking for, but this one is for pokemon emerald.
    https://www.pokecommunity.com/threads/470908/

    The first link you posted is for rpgmaker essentials, which isn't rom hacking at all, so it's no surprise you can't figure that out

    The second seems like a perfectly viable solution. You had a bug with it, but it's likely you just made a mistake in the process. Likely in places where it says you need to place a reversed pointer +1 (this is a common beginner mistake). In any case, if you provide the exact steps you followed including the exact hex codes you pasted and which offsets you put them in, I'm happy to try them on my end and it shouldn't be hard to figure out what went wrong
     
    The first link you posted is for rpgmaker essentials, which isn't rom hacking at all, so it's no surprise you can't figure that out

    The second seems like a perfectly viable solution. You had a bug with it, but it's likely you just made a mistake in the process. Likely in places where it says you need to place a reversed pointer +1 (this is a common beginner mistake). In any case, if you provide the exact steps you followed including the exact hex codes you pasted and which offsets you put them in, I'm happy to try them on my end and it shouldn't be hard to figure out what went wrong

    Thanks for your reply! I have tried to take clear screenshots of the edits:

    The initial edits mentioned in this post are linked below https://www.pokecommunity.com/posts/8509596/
    0x2D496: E0 E0
    https://imgtr.ee/i/0lXG2

    0x40B36: 00 00 00 00 00
    https://imgtr.ee/i/0lgwz

    The fixes mentioned in this post are linked here https://www.pokecommunity.com/posts/8536920/
    Here i input the precompiled code from the post in empty space I located using pksvUI. The upper one is the pokedex update fix and the bottom one is the pokedex graphic fix
    https://imgtr.ee/i/0v7Vx

    This is the reverse pointer edit for the pokedex update fix
    https://imgtr.ee/i/0vGPJ

    This is the reverse pointed edit for the pokedex graphics fix
    https://imgtr.ee/i/0vO8i

    Thanks in advance for the willingness to reply!
     
    Thanks for your reply! I have tried to take clear screenshots of the edits:

    The initial edits mentioned in this post are linked below https://www.pokecommunity.com/posts/8509596/
    0x2D496: E0 E0
    https://imgtr.ee/i/0lXG2

    0x40B36: 00 00 00 00 00
    https://imgtr.ee/i/0lgwz

    The fixes mentioned in this post are linked here https://www.pokecommunity.com/posts/8536920/
    Here i input the precompiled code from the post in empty space I located using pksvUI. The upper one is the pokedex update fix and the bottom one is the pokedex graphic fix
    https://imgtr.ee/i/0v7Vx

    This is the reverse pointer edit for the pokedex update fix
    https://imgtr.ee/i/0vGPJ

    This is the reverse pointed edit for the pokedex graphics fix
    https://imgtr.ee/i/0vO8i

    Thanks in advance for the willingness to reply!

    Yeah at a glance it seems like you've messed up your reverse pointers as I suspected

    1) location = 0x74 00 00
    2) +1 = 74 00 01
    3) reverse = 01 00 74
    So 00 00 00 48 00 47 01 00 74 08 is what you insert at 0x2D95E

    1) location = 0x74 01 00
    2) +1 = 74 01 01
    3) reverse = 01 01 74
    So 00 48 00 47 01 01 74 08 is what you insert at 0x2D9DC
     
    Yeah at a glance it seems like you've messed up your reverse pointers as I suspected

    1) location = 0x74 00 00
    2) +1 = 74 00 01
    3) reverse = 01 00 74
    So 00 00 00 48 00 47 01 00 74 08 is what you insert at 0x2D95E

    1) location = 0x74 01 00
    2) +1 = 74 01 01
    3) reverse = 01 01 74
    So 00 48 00 47 01 01 74 08 is what you insert at 0x2D9DC

    I tried it and it works! Thanks a bunch!
     
    Back
    Top