• 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!
  • Dawn, Gloria, Juliana, or Summer - which Pokémon protagonist is your favorite? Let us know by voting in our poll!
  • 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.

[ASM & Hex] [Solved] Infinite TM Usage in Fire Red

Bhima

Hackrom Improver/Remaker
  • 12
    Posts
    8
    Years
    Hello, everyone!

    I've browsed through a lot of solutions and no one was able to properly answer it, and this is 100% needed in the hack I intend to do (a 386 fire red one with massive improvements, or just improve an existing one).

    I need to exactly know how to modify the hex values to make TMs reusable infinitely in Fire Red (NOT EMERALD), since there's no exact solution as the hex values are missing in my rom.

    Let me explain:
    0x124EA0
    0x124F6C
    0x125C74

    I currently have to change these hex numbers from A9 to 90. That's easy, just find them, write 90 and save. However, The only one that I can find in my USA rom is the first one. The other two are completely missing and unfindable. This also happens in the Omega Fire Red one. I simply cannot find these hex numbers, and they're the exact same. Thus, I think Omega Fire Red is based off the USA version.

    Question: What are the two hex numbers I am missing to change to 90 and make TM infinite use? I would really like some help, since I am currently hardstuck here and cannot go forward from this point on. Are they different numbers? Do you know them? Do I just use another region ROM?

    Thank you for the help!

    Edit: I am currently using HxD Hex Editor which is very helpful. However, I cannot find the 2 last hex numbers, only the first one.
     
    Last edited:
    Stupid question incoming, are those addresses rather than particular bytes to search for in the binary? I ask, because I would find it pretty weird to be replacing the final byte of three-byte blocks because of the way assembly works on the GBA (basically all instructions are either 2 or 4 bytes big, so 3 is a weird number).
     
    Stupid question incoming, are those addresses rather than particular bytes to search for in the binary? I ask, because I would find it pretty weird to be replacing the final byte of three-byte blocks because of the way assembly works on the GBA (basically all instructions are either 2 or 4 bytes big, so 3 is a weird number).

    That's actually not a stupid question because I'm 100% ignorant and I have no idea on how to change it aside from "just search this exact thing and write 90 and press save" lmao. You actually brought a good point I'm unaware of, so I will drop a picture so you can see what I'm referring to so that you can help out better.
     

    Attachments

    • [PokeCommunity.com] [Solved] Infinite TM Usage in Fire Red
      Sense títol.png
      52.1 KB · Views: 62
    That's actually not a stupid question because I'm 100% ignorant and I have no idea on how to change it aside from "just search this exact thing and write 90 and press save" lmao. You actually brought a good point I'm unaware of, so I will drop a picture so you can see what I'm referring to so that you can help out better.

    I'm pretty much as ignorant as you, got some ideas about programming in general but very little about ROM hacking or hex editing. But if it was an address then I'm talking about those numbers down the side of your screen, you can see they're missing the final digit which you can find in the column headers. So you'd be searching for 124EA0 on the left, and then change the first column; then 124F60 and the thirteenth column, etc? You might also be able to press Ctrl-G (for goto) or something?
     
    I'm pretty much as ignorant as you, got some ideas about programming in general but very little about ROM hacking or hex editing. But if it was an address then I'm talking about those numbers down the side of your screen, you can see they're missing the final digit which you can find in the column headers. So you'd be searching for 124EA0 on the left, and then change the first column; then 124F60 and the thirteenth column, etc? You might also be able to press Ctrl-G (for goto) or something?

    Lmao you actually just gave me a good tip and I just realised how this hex editing works. I never realised it's the A9 column on the top. https://i.imgur.com/9QSMCC7.gif is the gif I used as reference from another Pokecommunity post. I basically do literally that, just search for them, write 90, save the change, go for the next one. It's the only thing I'm supposed to do. However, I can only find the first of three numbers, which is... awkward.
     
    I mean that looks good? You needed to change three bytes (the ones at 0x124EA0, 0x124F6C, and 0x125C74) to 90, and you did? Maybe they weren't A9 before, I didn't catch the original values in your gif. Anyway, good luck!
     
    I mean that looks good? You needed to change three bytes (the ones at 0x124EA0, 0x124F6C, and 0x125C74) to 90, and you did? Maybe they weren't A9 before, I didn't catch the original values in your gif. Anyway, good luck!

    Thank you :) it's not my gif though, it's another person's as I mentioned. I needed to change these three bites as it is done in the gif. However, as you can see, the first one is the only one I can find (4EA0), but I cannot find the last two. The user in the gif was able to, but I cannot find the others.
     
    Thank you :) it's not my gif though, it's another person's as I mentioned. I needed to change these three bites as it is done in the gif. However, as you can see, the first one is the only one I can find (4EA0), but I cannot find the last two. The user in the gif was able to, but I cannot find the others.

    Oh! Sorry, I misunderstood. In the gif it looks like they have some sort of "goto" command where you can type in the exact address, so maybe try searching the menus to see if you have something similar? Anyway, I'm off to bed now but fingers crossed you can sort it out :)
     
    Last edited:
    Oh! Sorry, I misunderstood. In the gif it looks like they have some sort of "goto" command where you can type in the exact address, so maybe try searching the menus to see if you have something similar? Anyway, I'm off to bed now but fingers crossed you can sort it out :)

    Goodnight, buddy! Yeah, that's what I'm doing, I'm using the go to function to find them. I still can't find them *smashes head against the table* but I might find a solution soon since I have an idea. I will post it if I find it :)
     
    Goodnight, buddy! Yeah, that's what I'm doing, I'm using the go to function to find them. I still can't find them *smashes head against the table* but I might find a solution soon since I have an idea. I will post it if I find it :)

    I think you're using search, not goto. You don't want to find literally some bytes that are 12 4E A0, you want the single byte at 0x124EA0 that currently is an A9 so you can change it to 90? Buuut I couldn't say for sure! Hopefully you'll find it soon :)
     
    I think you're using search, not goto. You don't want to find literally some bytes that are 12 4E A0, you want the single byte at 0x124EA0 that currently is an A9 so you can change it to 90? Buuut I couldn't say for sure! Hopefully you'll find it soon :)

    I hope I don't wake you up with the notification, but for anyone who wants to solve this issue:

    Open HxD, open the rom, go to the "go to" option. IMPORTANT: DO NOT USE THE FIND/SEARCH OPTION. Go straight to "go to".

    Search the exact part (124EA0). In that moment, make sure you write 90, and then proceed to search the next two offsets as it shows in the gif: https://i.imgur.com/9QSMCC7.gif. I had to redownload the entire program with a different version so that it worked, but it finally works :). After you do what it says in the gif (thanks to the original user) save immediately in the top left and close hxd. Test it immediately by making your starter able to learn Roar (via PGE or YAPE) and use a gameshark to reach celadon and buy the cheap TM. You will know if it worked if the TM is still in the bag.

    Thank you for the help and suggestions! You can close this thread now :)
     
    Last edited:
    Back
    Top