• 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.

Couple of Ideas

  • 31
    Posts
    4
    Years
    • Seen Oct 7, 2023
    I am working on my own hack of pokemon emerald (I used the pokeemerald-expansion decomp), and I have a few questions, but I'm not sure if they can be done without binary hacking (which I have no idea about).

    1. Can I/How do I put in extra move tutors & how would I make a TM shop?
    - Can I make the tutors reusable like in something such as the battle frontier?

    2. Is it possible to expand the number of TMs?

    3. Is it possible to make TMs infinite?

    4. Can I make it so that you don't need to teach an HM to a pokemon, just have the HM so you can use it (once the badge is obtained)?
    (this one isn't as vital, but I'd like to know if it is possible)

    5. Can I remove EVs?
    (also not that important, but I'm juggling the idea of removing them to make the game more interesting)

    Those are just some for now, if I have more I'll come back with some.
     
    I am working on my own hack of pokemon emerald (I used the pokeemerald-expansion decomp), and I have a few questions, but I'm not sure if they can be done without binary hacking (which I have no idea about).

    1. Can I/How do I put in extra move tutors & how would I make a TM shop?
    - Can I make the tutors reusable like in something such as the battle frontier?

    2. Is it possible to expand the number of TMs?

    3. Is it possible to make TMs infinite?

    4. Can I make it so that you don't need to teach an HM to a pokemon, just have the HM so you can use it (once the badge is obtained)?
    (this one isn't as vital, but I'd like to know if it is possible)

    5. Can I remove EVs?
    (also not that important, but I'm juggling the idea of removing them to make the game more interesting)

    Those are just some for now, if I have more I'll come back with some.

    Yes to all. I only personally know how to do a few of these changes, but I know for a fact that these have all been done in the past.

    1. For the move tutors, you would create additional NPCs/objects/etc. and have them operate in the exact same fashion as other move tutors, but give them access to different moves. For the TM shop, it would be just like any other shop, except it would offer TMs, and, assuming you make TMs infinite, you might choose to delete the TM from the shop's catalogue when the player buys it. But that's optional. And yes, it wouldn't be hard to make the tutors reusable.

    2. This would be as simple as adding any other item into existence, except you would copy the TM item functionality with whatever move the TM taught.

    3. Function name listed in this quote is now "Task_LearnedMove", assuming you're using the up-to-date pokeemerald expansion stuff.
    Spoiler:

    4. I've written up a way to add items that take the place of HMs. With a few minor tweaks, such as having the game check to see if you have the required HM rather than having the specific item and either removing the animation where the item is shown or swapping in the HM graphic for that animation, you'll be good to go. Here's the write up, if you want:
    Spoiler:

    5. Although I am still confident this can be done, that seems like a pretty hefty endeavor. Since EVs are used in many areas of the game (EV gain after battle, stat changes via EV items, etc.), you would have to cover a lot of ground to get it done. Again, not impossible, but it may be a bit tedious, unless you can find someone who's already done it.
     
    Yes to all. I only personally know how to do a few of these changes, but I know for a fact that these have all been done in the past.

    1. For the move tutors, you would create additional NPCs/objects/etc. and have them operate in the exact same fashion as other move tutors, but give them access to different moves. For the TM shop, it would be just like any other shop, except it would offer TMs, and, assuming you make TMs infinite, you might choose to delete the TM from the shop's catalogue when the player buys it. But that's optional. And yes, it wouldn't be hard to make the tutors reusable.

    2. This would be as simple as adding any other item into existence, except you would copy the TM item functionality with whatever move the TM taught.

    3. Function name listed in this quote is now "Task_LearnedMove", assuming you're using the up-to-date pokeemerald expansion stuff.
    Spoiler:


    4. I've written up a way to add items that take the place of HMs. With a few minor tweaks, such as having the game check to see if you have the required HM rather than having the specific item and either removing the animation where the item is shown or swapping in the HM graphic for that animation, you'll be good to go. Here's the write up, if you want:
    Spoiler:
    Spoiler:
     
    Thanks a lot! I just have one more question. By any chance, do you know how I could add new abilities in the game? (As in I make a new ability, I don't mean abilities from the newer games)
    1) Define them in include/constants/abilities.h
    2) Add their InGame name and description in src/data/text/abilities.h
    3) To add an effect, you'll have to check src/batttle_script_commands.c or src/battle_util.c depending on the type of ability you want to implement.

    Additionally, you may want or need to write BattleScripts to complement your abilities' effects. They go in data/battle_scripts_1.s and are defined in include/battle_scripts.h.

    Note: If you're not using the pokemon_expansion feature branch, you'll have to change the data type of multiple functions and variables from u8 to u16 if you want to have more than 255 abilities in your project.
     
    1) Define them in include/constants/abilities.h
    2) Add their InGame name and description in src/data/text/abilities.h
    3) To add an effect, you'll have to check src/batttle_script_commands.c or src/battle_util.c depending on the type of ability you want to implement.

    Additionally, you may want or need to write BattleScripts to complement your abilities' effects. They go in data/battle_scripts_1.s and are defined in include/battle_scripts.h.

    Note: If you're not using the pokemon_expansion feature branch, you'll have to change the data type of multiple functions and variables from u8 to u16 if you want to have more than 255 abilities in your project.

    I was able to add a simple spAttack doubling ability, as for more complex ones, I'll come to that if I think of any. By the way, do you know if it is possible to extend the name length of the abilities? I'm pretty sure the name length for abilities is capped out at 12, but it makes the name of my ability look stupid.
     
    I was able to add a simple spAttack doubling ability, as for more complex ones, I'll come to that if I think of any. By the way, do you know if it is possible to extend the name length of the abilities? I'm pretty sure the name length for abilities is capped out at 12, but it makes the name of my ability look stupid.
    Have you tried merely increasing the value of the ABILITY_NAME_LENGTH constant?
    Gut feeling says that should be enough, but I never really tried to do it myself.

    If you don't know where it's located, you can use a feature Git comes with, Git Grep. It lets you search for usages of words or sentences in a Git Project.
    Ex: git grep "ABILITY_NAME_LENGTH".
     
    Back
    Top