• 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] Stuck on Adding Abilities

  • 29
    Posts
    8
    Years
    • Seen Feb 27, 2025
    So i followed the ability resource thread and was able to compile and make the .bins and insert the data into my rom. now how do i access it and put it in. i have pge, do i use that? and how?

    this is the last thing it told me to do

    " Running the Rountine from your ROM.
    In your script have "callasm 0xRoutineAddress +1".
    So if I had inserted my routine at 0x720000, I would have the command "callasm 0x720001". That's all there is to compiling and using ASM routines.

    If you still don't understand, I would advise you to go and play outside instead :) "

    but i don't know how to do that. can someone possibly help please?
     
    If you inserted the routine data at offset 0x720000, then you'll have to use 'callasm 0x7200001' to run it.
     
    don't know what that is and i don't know where to run it.
    I would advise you to go and play outside instead
    first off, if you're inserting abilities, there is no way that you are going to have to callasm anything unless if its a more complicated one with battle scripts
    so let's take a look at sturdy's updated ability

    Sturdy
    Spoiler:

    all you have to do is compile it, insert it into your rom (NOTING THE OFFSET DOWN), and then follow the instructions present at the bottom:
    #insert 01 48 00 47 00 00 xx xx xx 08 1A 4A at 01F1E2
    where xx xx xx is the offset you noted earlier + 1, split up into groups of two, and the last and first sections switched. for example, i have mine at 71A240.
    71A240
    71A241
    71 A2 41
    41 A2 71 = xx xx xx
     
    I would advise you to go and play outside instead
    first off, if you're inserting abilities, there is no way that you are going to have to callasm anything unless if its a more complicated one with battle scripts
    so let's take a look at sturdy's updated ability



    all you have to do is compile it, insert it into your rom (NOTING THE OFFSET DOWN), and then follow the instructions present at the bottom:
    #insert 01 48 00 47 00 00 xx xx xx 08 1A 4A at 01F1E2
    where xx xx xx is the offset you noted earlier + 1, split up into groups of two, and the last and first sections switched. for example, i have mine at 71A240.
    71A240
    71A241
    71 A2 41
    41 A2 71 = xx xx xx

    for mine (emerald) it tells me to put at 069888. there is no 069888 though. the closest is 00069880.
     
    for mine (emerald) it tells me to put at 069888. there is no 069888 though. the closest is 00069880.
    that's exactly what you are looking for
    one thing to note about pokémon on the gba is that the roms never exceed 0x01000000 in the vanilla state; this can be expanded later but that is a conversation for a later date.
    in the circumstance that a person references an address like 0x08XXXXXX, it is referring to the first 16 mb of the rom (up to 0x1000000), and should be considered 0x00XXXXXX
     
    that's exactly what you are looking for
    one thing to note about pokémon on the gba is that the roms never exceed 0x01000000 in the vanilla state; this can be expanded later but that is a conversation for a later date.
    in the circumstance that a person references an address like 0x08XXXXXX, it is referring to the first 16 mb of the rom (up to 0x1000000), and should be considered 0x00XXXXXX

    at 00069880 there is already data there, but it told me to put it in a free space. what do i do? and once i put it in then what do i do?
     
    at 00069880 there is already data there, but it told me to put it in a free space. what do i do? and once i put it in then what do i do?
    put the .bin into free space by copying it and then paste-writing it (ctrl + b) into an area with a lot of FF. this is an area with free space, space that is unused.
    after that, you just follow his instructions: overwrite the data at 069880 with whatever he tells you to~
     
    put the .bin into free space by copying it and then paste-writing it (ctrl + b) into an area with a lot of FF. this is an area with free space, space that is unused.
    after that, you just follow his instructions: overwrite the data at 069880 with whatever he tells you to~

    my offset number is 0141E070 which is numbers. what do i do? it won't fit in that 6 ex thing.
     
    my offset number is 0141E070 which is numbers. what do i do? it won't fit in that 6 ex thing.
    well
    change the 01 to an 09 and do the pair thing except now delete the 08 afterwards. now it will look like
    71 E0 41 09
    although i have no idea why you are there
     
    well
    change the 01 to an 09 and do the pair thing except now delete the 08 afterwards. now it will look like
    71 E0 41 09
    although i have no idea why you are there

    okay, done. now how do i get the abilities to show up in the game or pge?
     
    well
    change the 01 to an 09 and do the pair thing except now delete the 08 afterwards. now it will look like
    71 E0 41 09
    although i have no idea why you are there

    do i use this

    #org @start
    lock
    faceplayer
    callasm 0xyouroffset
    buffernumber 0x0 lastresult
    msgbox @msg 0x2
    release
    end

    #org @msg

    what values do i put in there and do i put this in a notepad file and when i do that where do i put it. none of these tutorials talk about scripting and how to actually put it in the game or even how to find it once you do.
     
    okay, done. now how do i get the abilities to show up in the game or pge?
    congrats, you updated sturdy's ability. one ability.
    every routine with a new ability will tell you to edit a certain index somewhere that checks the ability's index. it must be said that the abilities themseles do not do anything, the battle engine checks for their presence and then executes a bit of code if present. when we updated sturdy's effect, all we did was change the code to the custom code that mrdollsteak made by branching off.
    you will want to follow this to add new ability indices.
     
    congrats, you updated sturdy's ability. one ability.
    every routine with a new ability will tell you to edit a certain index somewhere that checks the ability's index. it must be said that the abilities themseles do not do anything, the battle engine checks for their presence and then executes a bit of code if present. when we updated sturdy's effect, all we did was change the code to the custom code that mrdollsteak made by branching off.
    you will want to follow this to add new ability indices.

    but the data i put in was for sniper, technician, slowstart, and Defeatist all at the same time. which one is being used and how do i know if sturdy is what is changed
     
    but the data i put in was for sniper, technician, slowstart, and Defeatist all at the same time. which one is being used and how do i know if sturdy is what is changed
    then follow the instructions as they are :P

    the routine:
    Emerald
    Spoiler:

    i annotated what you need to change for your specific hack~
    really, the only way to tell if something is changed is if the effect is observed :P in this case, it would be sturdy still activating at full hp subsequent times
    here it would be the activation of any sort of ability that you added with the index defined above
     
    then follow the instructions as they are :P

    the routine:
    Emerald
    Spoiler:

    i annotated what you need to change for your specific hack~
    really, the only way to tell if something is changed is if the effect is observed :P in this case, it would be sturdy still activating at full hp subsequent times
    here it would be the activation of any sort of ability that you added with the index defined above

    it wants me to change my .ini but i don't have a .ini
     
    Back
    Top