• 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!
  • Which Pokémon Masters protagonist do you like most? Let us know by casting a vote in our Masters favorite protagonist poll here!
  • Red, Hilda, Paxton, or Kellyn - 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✓] TMs Learnable Format in FireRed

  • 9
    Posts
    7
    Years
    I'm trying to change what TMs Pokemon can learn in FireRed, but I'm having trouble understanding how this is stored in the ROM.

    According to this ROM map, "TMs Learnable" is stored at 0x252bc8. I was hoping to find a list of pointers there, similar to how Moves Learnable by Leveling Up is stored (0x25D7B4): one pointer for each Pokemon, each of which points to a list of moves the Pokemon can learn. That doesn't appear to be the case here, and I'm unable to make heads or tails of the data that is stored there.

    Would anyone be able to explain what the format of this data is?
     
    Last edited:
    It's a table of bitfields; each entry in the table is eight bytes (or 64 bits) long, and there's one entry in the table per Pokemon. The first 58 bits in each entry correspond to the TM/HM moves that a Pokemon can learn. For example, if the first bit in an entry is set to one, a Pokemon will be able to learn the move taught by TM 01, but if it's set to zero, it will be incompatible with the TM.

    There's a separate table at 0x45A80C that stores the moves taught by the TMs.
     
    Back
    Top